@Override
    public void caseAClassDef(AClassDef node)
    {
        inAClassDef(node);
        if(node.getClassKw() != null)
        {
            node.getClassKw().apply(this);
        }
        if(node.getStid() != null)
        {
            node.getStid().apply(this);
        }
        if(node.getInheritsFrom() != null)
        {
            node.getInheritsFrom().apply(this);
        }
        if(node.getIs() != null)
        {
            node.getIs().apply(this);
        }
        if(node.getNewlines() != null)
        {
            node.getNewlines().apply(this);
        }
        {
            List<PVarDecl> copy = new ArrayList<PVarDecl>(node.getVarDecl());
            for(PVarDecl e : copy)
            {
                e.apply(this);
            }
        }
        {
            List<PMethodDecl> copy = new ArrayList<PMethodDecl>(node.getMethodDecl());
            for(PMethodDecl e : copy)
            {
                e.apply(this);
            }
        }
        if(node.getEnd() != null)
        {
            node.getEnd().apply(this);
        }
        if(node.getEndid() != null)
        {
            node.getEndid().apply(this);
        }
        outAClassDef(node);
    }