@Override
    public void caseAProgramas(AProgramas node)
    {
        inAProgramas(node);
        {
            List<PComando> copy = new ArrayList<PComando>(node.getComando());
            Collections.reverse(copy);
            for(PComando e : copy)
            {
                e.apply(this);
            }
        }
        {
            List<PDeclaracao> copy = new ArrayList<PDeclaracao>(node.getDeclaracao());
            Collections.reverse(copy);
            for(PDeclaracao e : copy)
            {
                e.apply(this);
            }
        }
        if(node.getIdentificador() != null)
        {
            node.getIdentificador().apply(this);
        }
        outAProgramas(node);
    }