@Override
    public void caseAClassdecl(AClassdecl node)
    {
        inAClassdecl(node);
        if(node.getRM() != null)
        {
            node.getRM().apply(this);
        }
        {
            List<PMethoddecl> copy = new ArrayList<PMethoddecl>(node.getMethoddecl());
            Collections.reverse(copy);
            for(PMethoddecl e : copy)
            {
                e.apply(this);
            }
        }
        {
            List<PVardecl> copy = new ArrayList<PVardecl>(node.getVardecl());
            Collections.reverse(copy);
            for(PVardecl e : copy)
            {
                e.apply(this);
            }
        }
        if(node.getLM() != null)
        {
            node.getLM().apply(this);
        }
        if(node.getIdentifier() != null)
        {
            node.getIdentifier().apply(this);
        }
        if(node.getClasstag() != null)
        {
            node.getClasstag().apply(this);
        }
        outAClassdecl(node);
    }