/* This file was generated by SableCC (http://www.sablecc.org/). */

package MONAViewer.monalanguage.analysis;

import java.util.*;
import MONAViewer.monalanguage.node.*;

public class DepthFirstAdapter extends AnalysisAdapter
{
    public void inStart(Start node)
    {
        defaultIn(node);
    }

    public void outStart(Start node)
    {
        defaultOut(node);
    }

    public void defaultIn(Node node)
    {
    }

    public void defaultOut(Node node)
    {
    }

    public void caseStart(Start node)
    {
        inStart(node);
        node.getPStart().apply(this);
        node.getEOF().apply(this);
        outStart(node);
    }

    public void inAStart(AStart node)
    {
        defaultIn(node);
    }

    public void outAStart(AStart node)
    {
        defaultOut(node);
    }

    public void caseAStart(AStart node)
    {
        inAStart(node);
        if(node.getHeader() != null)
        {
            node.getHeader().apply(this);
        }
        {
            Object temp[] = node.getDeclaration().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PDeclaration) temp[i]).apply(this);
            }
        }
        outAStart(node);
    }
    public void inAStrHeader(AStrHeader node)
    {
        defaultIn(node);
    }

    public void outAStrHeader(AStrHeader node)
    {
        defaultOut(node);
    }

    public void caseAStrHeader(AStrHeader node)
    {
        inAStrHeader(node);
        outAStrHeader(node);
    }
    public void inATreeHeader(ATreeHeader node)
    {
        defaultIn(node);
    }

    public void outATreeHeader(ATreeHeader node)
    {
        defaultOut(node);
    }

    public void caseATreeHeader(ATreeHeader node)
    {
        inATreeHeader(node);
        outATreeHeader(node);
    }
    public void inAM2lstrHeader(AM2lstrHeader node)
    {
        defaultIn(node);
    }

    public void outAM2lstrHeader(AM2lstrHeader node)
    {
        defaultOut(node);
    }

    public void caseAM2lstrHeader(AM2lstrHeader node)
    {
        inAM2lstrHeader(node);
        outAM2lstrHeader(node);
    }
    public void inAM2ltreeHeader(AM2ltreeHeader node)
    {
        defaultIn(node);
    }

    public void outAM2ltreeHeader(AM2ltreeHeader node)
    {
        defaultOut(node);
    }

    public void caseAM2ltreeHeader(AM2ltreeHeader node)
    {
        inAM2ltreeHeader(node);
        outAM2ltreeHeader(node);
    }
    public void inAAssertDeclaration(AAssertDeclaration node)
    {
        defaultIn(node);
    }

    public void outAAssertDeclaration(AAssertDeclaration node)
    {
        defaultOut(node);
    }

    public void caseAAssertDeclaration(AAssertDeclaration node)
    {
        inAAssertDeclaration(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outAAssertDeclaration(node);
    }
    public void inAGuideDeclaration(AGuideDeclaration node)
    {
        defaultIn(node);
    }

    public void outAGuideDeclaration(AGuideDeclaration node)
    {
        defaultOut(node);
    }

    public void caseAGuideDeclaration(AGuideDeclaration node)
    {
        inAGuideDeclaration(node);
        {
            Object temp[] = node.getFunc().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PFunc) temp[i]).apply(this);
            }
        }
        outAGuideDeclaration(node);
    }
    public void inAUniverseDeclaration(AUniverseDeclaration node)
    {
        defaultIn(node);
    }

    public void outAUniverseDeclaration(AUniverseDeclaration node)
    {
        defaultOut(node);
    }

    public void caseAUniverseDeclaration(AUniverseDeclaration node)
    {
        inAUniverseDeclaration(node);
        {
            Object temp[] = node.getUniv().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PUniv) temp[i]).apply(this);
            }
        }
        outAUniverseDeclaration(node);
    }
    public void inADefault1Declaration(ADefault1Declaration node)
    {
        defaultIn(node);
    }

    public void outADefault1Declaration(ADefault1Declaration node)
    {
        defaultOut(node);
    }

    public void caseADefault1Declaration(ADefault1Declaration node)
    {
        inADefault1Declaration(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outADefault1Declaration(node);
    }
    public void inADefault2Declaration(ADefault2Declaration node)
    {
        defaultIn(node);
    }

    public void outADefault2Declaration(ADefault2Declaration node)
    {
        defaultOut(node);
    }

    public void caseADefault2Declaration(ADefault2Declaration node)
    {
        inADefault2Declaration(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outADefault2Declaration(node);
    }
    public void inAConstDeclaration(AConstDeclaration node)
    {
        defaultIn(node);
    }

    public void outAConstDeclaration(AConstDeclaration node)
    {
        defaultOut(node);
    }

    public void caseAConstDeclaration(AConstDeclaration node)
    {
        inAConstDeclaration(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        if(node.getArithExp() != null)
        {
            node.getArithExp().apply(this);
        }
        outAConstDeclaration(node);
    }
    public void inAVar0Declaration(AVar0Declaration node)
    {
        defaultIn(node);
    }

    public void outAVar0Declaration(AVar0Declaration node)
    {
        defaultOut(node);
    }

    public void caseAVar0Declaration(AVar0Declaration node)
    {
        inAVar0Declaration(node);
        {
            Object temp[] = node.getNameWhere().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PNameWhere) temp[i]).apply(this);
            }
        }
        outAVar0Declaration(node);
    }
    public void inAVar1Declaration(AVar1Declaration node)
    {
        defaultIn(node);
    }

    public void outAVar1Declaration(AVar1Declaration node)
    {
        defaultOut(node);
    }

    public void caseAVar1Declaration(AVar1Declaration node)
    {
        inAVar1Declaration(node);
        {
            Object temp[] = node.getUniv().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((TName) temp[i]).apply(this);
            }
        }
        {
            Object temp[] = node.getNameWhere().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PNameWhere) temp[i]).apply(this);
            }
        }
        outAVar1Declaration(node);
    }
    public void inAVar2Declaration(AVar2Declaration node)
    {
        defaultIn(node);
    }

    public void outAVar2Declaration(AVar2Declaration node)
    {
        defaultOut(node);
    }

    public void caseAVar2Declaration(AVar2Declaration node)
    {
        inAVar2Declaration(node);
        {
            Object temp[] = node.getUniv().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((TName) temp[i]).apply(this);
            }
        }
        {
            Object temp[] = node.getNameWhere().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PNameWhere) temp[i]).apply(this);
            }
        }
        outAVar2Declaration(node);
    }
    public void inATreeDeclaration(ATreeDeclaration node)
    {
        defaultIn(node);
    }

    public void outATreeDeclaration(ATreeDeclaration node)
    {
        defaultOut(node);
    }

    public void caseATreeDeclaration(ATreeDeclaration node)
    {
        inATreeDeclaration(node);
        {
            Object temp[] = node.getUniv().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((TName) temp[i]).apply(this);
            }
        }
        {
            Object temp[] = node.getNameWhere().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PNameWhere) temp[i]).apply(this);
            }
        }
        outATreeDeclaration(node);
    }
    public void inAPredDeclaration(APredDeclaration node)
    {
        defaultIn(node);
    }

    public void outAPredDeclaration(APredDeclaration node)
    {
        defaultOut(node);
    }

    public void caseAPredDeclaration(APredDeclaration node)
    {
        inAPredDeclaration(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        {
            Object temp[] = node.getPar().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PPar) temp[i]).apply(this);
            }
        }
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outAPredDeclaration(node);
    }
    public void inAMacroDeclaration(AMacroDeclaration node)
    {
        defaultIn(node);
    }

    public void outAMacroDeclaration(AMacroDeclaration node)
    {
        defaultOut(node);
    }

    public void caseAMacroDeclaration(AMacroDeclaration node)
    {
        inAMacroDeclaration(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        {
            Object temp[] = node.getPar().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PPar) temp[i]).apply(this);
            }
        }
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outAMacroDeclaration(node);
    }
    public void inAExpDeclaration(AExpDeclaration node)
    {
        defaultIn(node);
    }

    public void outAExpDeclaration(AExpDeclaration node)
    {
        defaultOut(node);
    }

    public void caseAExpDeclaration(AExpDeclaration node)
    {
        inAExpDeclaration(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outAExpDeclaration(node);
    }
    public void inAVerifyDeclaration(AVerifyDeclaration node)
    {
        defaultIn(node);
    }

    public void outAVerifyDeclaration(AVerifyDeclaration node)
    {
        defaultOut(node);
    }

    public void caseAVerifyDeclaration(AVerifyDeclaration node)
    {
        inAVerifyDeclaration(node);
        if(node.getString() != null)
        {
            node.getString().apply(this);
        }
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outAVerifyDeclaration(node);
    }
    public void inAExecuteDeclaration(AExecuteDeclaration node)
    {
        defaultIn(node);
    }

    public void outAExecuteDeclaration(AExecuteDeclaration node)
    {
        defaultOut(node);
    }

    public void caseAExecuteDeclaration(AExecuteDeclaration node)
    {
        inAExecuteDeclaration(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outAExecuteDeclaration(node);
    }
    public void inAIncludeDeclaration(AIncludeDeclaration node)
    {
        defaultIn(node);
    }

    public void outAIncludeDeclaration(AIncludeDeclaration node)
    {
        defaultOut(node);
    }

    public void caseAIncludeDeclaration(AIncludeDeclaration node)
    {
        inAIncludeDeclaration(node);
        if(node.getString() != null)
        {
            node.getString().apply(this);
        }
        outAIncludeDeclaration(node);
    }
    public void inALastposDeclaration(ALastposDeclaration node)
    {
        defaultIn(node);
    }

    public void outALastposDeclaration(ALastposDeclaration node)
    {
        defaultOut(node);
    }

    public void caseALastposDeclaration(ALastposDeclaration node)
    {
        inALastposDeclaration(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        outALastposDeclaration(node);
    }
    public void inAAllposDeclaration(AAllposDeclaration node)
    {
        defaultIn(node);
    }

    public void outAAllposDeclaration(AAllposDeclaration node)
    {
        defaultOut(node);
    }

    public void caseAAllposDeclaration(AAllposDeclaration node)
    {
        inAAllposDeclaration(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        outAAllposDeclaration(node);
    }
    public void inATypeDeclaration(ATypeDeclaration node)
    {
        defaultIn(node);
    }

    public void outATypeDeclaration(ATypeDeclaration node)
    {
        defaultOut(node);
    }

    public void caseATypeDeclaration(ATypeDeclaration node)
    {
        inATypeDeclaration(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        {
            Object temp[] = node.getVar().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PVar) temp[i]).apply(this);
            }
        }
        outATypeDeclaration(node);
    }
    public void inAEx0Exp(AEx0Exp node)
    {
        defaultIn(node);
    }

    public void outAEx0Exp(AEx0Exp node)
    {
        defaultOut(node);
    }

    public void caseAEx0Exp(AEx0Exp node)
    {
        inAEx0Exp(node);
        {
            Object temp[] = node.getNameWhere().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PNameWhere) temp[i]).apply(this);
            }
        }
        outAEx0Exp(node);
    }
    public void inAEx1Exp(AEx1Exp node)
    {
        defaultIn(node);
    }

    public void outAEx1Exp(AEx1Exp node)
    {
        defaultOut(node);
    }

    public void caseAEx1Exp(AEx1Exp node)
    {
        inAEx1Exp(node);
        {
            Object temp[] = node.getUniv().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((TName) temp[i]).apply(this);
            }
        }
        {
            Object temp[] = node.getNameWhere().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PNameWhere) temp[i]).apply(this);
            }
        }
        outAEx1Exp(node);
    }
    public void inAEx2Exp(AEx2Exp node)
    {
        defaultIn(node);
    }

    public void outAEx2Exp(AEx2Exp node)
    {
        defaultOut(node);
    }

    public void caseAEx2Exp(AEx2Exp node)
    {
        inAEx2Exp(node);
        {
            Object temp[] = node.getUniv().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((TName) temp[i]).apply(this);
            }
        }
        {
            Object temp[] = node.getNameWhere().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PNameWhere) temp[i]).apply(this);
            }
        }
        outAEx2Exp(node);
    }
    public void inAAll0Exp(AAll0Exp node)
    {
        defaultIn(node);
    }

    public void outAAll0Exp(AAll0Exp node)
    {
        defaultOut(node);
    }

    public void caseAAll0Exp(AAll0Exp node)
    {
        inAAll0Exp(node);
        {
            Object temp[] = node.getNameWhere().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PNameWhere) temp[i]).apply(this);
            }
        }
        outAAll0Exp(node);
    }
    public void inAAll1Exp(AAll1Exp node)
    {
        defaultIn(node);
    }

    public void outAAll1Exp(AAll1Exp node)
    {
        defaultOut(node);
    }

    public void caseAAll1Exp(AAll1Exp node)
    {
        inAAll1Exp(node);
        {
            Object temp[] = node.getUniv().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((TName) temp[i]).apply(this);
            }
        }
        {
            Object temp[] = node.getNameWhere().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PNameWhere) temp[i]).apply(this);
            }
        }
        outAAll1Exp(node);
    }
    public void inAAll2Exp(AAll2Exp node)
    {
        defaultIn(node);
    }

    public void outAAll2Exp(AAll2Exp node)
    {
        defaultOut(node);
    }

    public void caseAAll2Exp(AAll2Exp node)
    {
        inAAll2Exp(node);
        {
            Object temp[] = node.getUniv().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((TName) temp[i]).apply(this);
            }
        }
        {
            Object temp[] = node.getNameWhere().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PNameWhere) temp[i]).apply(this);
            }
        }
        outAAll2Exp(node);
    }
    public void inAQuantExp(AQuantExp node)
    {
        defaultIn(node);
    }

    public void outAQuantExp(AQuantExp node)
    {
        defaultOut(node);
    }

    public void caseAQuantExp(AQuantExp node)
    {
        inAQuantExp(node);
        {
            Object temp[] = node.getQ().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PExp) temp[i]).apply(this);
            }
        }
        if(node.getTail() != null)
        {
            node.getTail().apply(this);
        }
        outAQuantExp(node);
    }
    public void inANameExp(ANameExp node)
    {
        defaultIn(node);
    }

    public void outANameExp(ANameExp node)
    {
        defaultOut(node);
    }

    public void caseANameExp(ANameExp node)
    {
        inANameExp(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        outANameExp(node);
    }
    public void inAUnivrootExp(AUnivrootExp node)
    {
        defaultIn(node);
    }

    public void outAUnivrootExp(AUnivrootExp node)
    {
        defaultOut(node);
    }

    public void caseAUnivrootExp(AUnivrootExp node)
    {
        inAUnivrootExp(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        outAUnivrootExp(node);
    }
    public void inACallExp(ACallExp node)
    {
        defaultIn(node);
    }

    public void outACallExp(ACallExp node)
    {
        defaultOut(node);
    }

    public void caseACallExp(ACallExp node)
    {
        inACallExp(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        {
            Object temp[] = node.getExp().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PExp) temp[i]).apply(this);
            }
        }
        outACallExp(node);
    }
    public void inATrueExp(ATrueExp node)
    {
        defaultIn(node);
    }

    public void outATrueExp(ATrueExp node)
    {
        defaultOut(node);
    }

    public void caseATrueExp(ATrueExp node)
    {
        inATrueExp(node);
        outATrueExp(node);
    }
    public void inAFalseExp(AFalseExp node)
    {
        defaultIn(node);
    }

    public void outAFalseExp(AFalseExp node)
    {
        defaultOut(node);
    }

    public void caseAFalseExp(AFalseExp node)
    {
        inAFalseExp(node);
        outAFalseExp(node);
    }
    public void inARootPredExp(ARootPredExp node)
    {
        defaultIn(node);
    }

    public void outARootPredExp(ARootPredExp node)
    {
        defaultOut(node);
    }

    public void caseARootPredExp(ARootPredExp node)
    {
        inARootPredExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        {
            Object temp[] = node.getName().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((TName) temp[i]).apply(this);
            }
        }
        outARootPredExp(node);
    }
    public void inAEmptyPredExp(AEmptyPredExp node)
    {
        defaultIn(node);
    }

    public void outAEmptyPredExp(AEmptyPredExp node)
    {
        defaultOut(node);
    }

    public void caseAEmptyPredExp(AEmptyPredExp node)
    {
        inAEmptyPredExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outAEmptyPredExp(node);
    }
    public void inAIntExp(AIntExp node)
    {
        defaultIn(node);
    }

    public void outAIntExp(AIntExp node)
    {
        defaultOut(node);
    }

    public void caseAIntExp(AIntExp node)
    {
        inAIntExp(node);
        if(node.getInt() != null)
        {
            node.getInt().apply(this);
        }
        outAIntExp(node);
    }
    public void inAEmptyExp(AEmptyExp node)
    {
        defaultIn(node);
    }

    public void outAEmptyExp(AEmptyExp node)
    {
        defaultOut(node);
    }

    public void caseAEmptyExp(AEmptyExp node)
    {
        inAEmptyExp(node);
        outAEmptyExp(node);
    }
    public void inASetExp(ASetExp node)
    {
        defaultIn(node);
    }

    public void outASetExp(ASetExp node)
    {
        defaultOut(node);
    }

    public void caseASetExp(ASetExp node)
    {
        inASetExp(node);
        if(node.getSetBody() != null)
        {
            node.getSetBody().apply(this);
        }
        outASetExp(node);
    }
    public void inAImportExp(AImportExp node)
    {
        defaultIn(node);
    }

    public void outAImportExp(AImportExp node)
    {
        defaultOut(node);
    }

    public void caseAImportExp(AImportExp node)
    {
        inAImportExp(node);
        if(node.getString() != null)
        {
            node.getString().apply(this);
        }
        {
            Object temp[] = node.getMapEntry().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PMapEntry) temp[i]).apply(this);
            }
        }
        outAImportExp(node);
    }
    public void inAExportExp(AExportExp node)
    {
        defaultIn(node);
    }

    public void outAExportExp(AExportExp node)
    {
        defaultOut(node);
    }

    public void caseAExportExp(AExportExp node)
    {
        inAExportExp(node);
        if(node.getString() != null)
        {
            node.getString().apply(this);
        }
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outAExportExp(node);
    }
    public void inAPrefixExp(APrefixExp node)
    {
        defaultIn(node);
    }

    public void outAPrefixExp(APrefixExp node)
    {
        defaultOut(node);
    }

    public void caseAPrefixExp(APrefixExp node)
    {
        inAPrefixExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outAPrefixExp(node);
    }
    public void inAInstatespaceExp(AInstatespaceExp node)
    {
        defaultIn(node);
    }

    public void outAInstatespaceExp(AInstatespaceExp node)
    {
        defaultOut(node);
    }

    public void caseAInstatespaceExp(AInstatespaceExp node)
    {
        inAInstatespaceExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        {
            Object temp[] = node.getName().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((TName) temp[i]).apply(this);
            }
        }
        outAInstatespaceExp(node);
    }
    public void inAVariantExp(AVariantExp node)
    {
        defaultIn(node);
    }

    public void outAVariantExp(AVariantExp node)
    {
        defaultOut(node);
    }

    public void caseAVariantExp(AVariantExp node)
    {
        inAVariantExp(node);
        if(node.getL() != null)
        {
            node.getL().apply(this);
        }
        if(node.getR() != null)
        {
            node.getR().apply(this);
        }
        if(node.getN1() != null)
        {
            node.getN1().apply(this);
        }
        if(node.getN2() != null)
        {
            node.getN2().apply(this);
        }
        outAVariantExp(node);
    }
    public void inASuccExp(ASuccExp node)
    {
        defaultIn(node);
    }

    public void outASuccExp(ASuccExp node)
    {
        defaultOut(node);
    }

    public void caseASuccExp(ASuccExp node)
    {
        inASuccExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        if(node.getN1() != null)
        {
            node.getN1().apply(this);
        }
        if(node.getN2() != null)
        {
            node.getN2().apply(this);
        }
        if(node.getN3() != null)
        {
            node.getN3().apply(this);
        }
        outASuccExp(node);
    }
    public void inAWellFormedTreeExp(AWellFormedTreeExp node)
    {
        defaultIn(node);
    }

    public void outAWellFormedTreeExp(AWellFormedTreeExp node)
    {
        defaultOut(node);
    }

    public void caseAWellFormedTreeExp(AWellFormedTreeExp node)
    {
        inAWellFormedTreeExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outAWellFormedTreeExp(node);
    }
    public void inATypeExp(ATypeExp node)
    {
        defaultIn(node);
    }

    public void outATypeExp(ATypeExp node)
    {
        defaultOut(node);
    }

    public void caseATypeExp(ATypeExp node)
    {
        inATypeExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        outATypeExp(node);
    }
    public void inASometypeExp(ASometypeExp node)
    {
        defaultIn(node);
    }

    public void outASometypeExp(ASometypeExp node)
    {
        defaultOut(node);
    }

    public void caseASometypeExp(ASometypeExp node)
    {
        inASometypeExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outASometypeExp(node);
    }
    public void inAConsttreeExp(AConsttreeExp node)
    {
        defaultIn(node);
    }

    public void outAConsttreeExp(AConsttreeExp node)
    {
        defaultOut(node);
    }

    public void caseAConsttreeExp(AConsttreeExp node)
    {
        inAConsttreeExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        if(node.getConstnode() != null)
        {
            node.getConstnode().apply(this);
        }
        outAConsttreeExp(node);
    }
    public void inATreerootExp(ATreerootExp node)
    {
        defaultIn(node);
    }

    public void outATreerootExp(ATreerootExp node)
    {
        defaultOut(node);
    }

    public void caseATreerootExp(ATreerootExp node)
    {
        inATreerootExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outATreerootExp(node);
    }
    public void inARestrictExp(ARestrictExp node)
    {
        defaultIn(node);
    }

    public void outARestrictExp(ARestrictExp node)
    {
        defaultOut(node);
    }

    public void caseARestrictExp(ARestrictExp node)
    {
        inARestrictExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outARestrictExp(node);
    }
    public void inADotExp(ADotExp node)
    {
        defaultIn(node);
    }

    public void outADotExp(ADotExp node)
    {
        defaultOut(node);
    }

    public void caseADotExp(ADotExp node)
    {
        inADotExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        if(node.getInt() != null)
        {
            node.getInt().apply(this);
        }
        outADotExp(node);
    }
    public void inAUpExp(AUpExp node)
    {
        defaultIn(node);
    }

    public void outAUpExp(AUpExp node)
    {
        defaultOut(node);
    }

    public void caseAUpExp(AUpExp node)
    {
        inAUpExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outAUpExp(node);
    }
    public void inAMultExp(AMultExp node)
    {
        defaultIn(node);
    }

    public void outAMultExp(AMultExp node)
    {
        defaultOut(node);
    }

    public void caseAMultExp(AMultExp node)
    {
        inAMultExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        if(node.getArithExp() != null)
        {
            node.getArithExp().apply(this);
        }
        outAMultExp(node);
    }
    public void inADivExp(ADivExp node)
    {
        defaultIn(node);
    }

    public void outADivExp(ADivExp node)
    {
        defaultOut(node);
    }

    public void caseADivExp(ADivExp node)
    {
        inADivExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        if(node.getArithExp() != null)
        {
            node.getArithExp().apply(this);
        }
        outADivExp(node);
    }
    public void inAPlusModuloExp(APlusModuloExp node)
    {
        defaultIn(node);
    }

    public void outAPlusModuloExp(APlusModuloExp node)
    {
        defaultOut(node);
    }

    public void caseAPlusModuloExp(APlusModuloExp node)
    {
        inAPlusModuloExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        if(node.getArithExp() != null)
        {
            node.getArithExp().apply(this);
        }
        if(node.getM() != null)
        {
            node.getM().apply(this);
        }
        outAPlusModuloExp(node);
    }
    public void inAMinusModuloExp(AMinusModuloExp node)
    {
        defaultIn(node);
    }

    public void outAMinusModuloExp(AMinusModuloExp node)
    {
        defaultOut(node);
    }

    public void caseAMinusModuloExp(AMinusModuloExp node)
    {
        inAMinusModuloExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        if(node.getArithExp() != null)
        {
            node.getArithExp().apply(this);
        }
        if(node.getM() != null)
        {
            node.getM().apply(this);
        }
        outAMinusModuloExp(node);
    }
    public void inAPlusExp(APlusExp node)
    {
        defaultIn(node);
    }

    public void outAPlusExp(APlusExp node)
    {
        defaultOut(node);
    }

    public void caseAPlusExp(APlusExp node)
    {
        inAPlusExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        if(node.getArithExp() != null)
        {
            node.getArithExp().apply(this);
        }
        outAPlusExp(node);
    }
    public void inAMinusExp(AMinusExp node)
    {
        defaultIn(node);
    }

    public void outAMinusExp(AMinusExp node)
    {
        defaultOut(node);
    }

    public void caseAMinusExp(AMinusExp node)
    {
        inAMinusExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        if(node.getArithExp() != null)
        {
            node.getArithExp().apply(this);
        }
        outAMinusExp(node);
    }
    public void inASetminusExp(ASetminusExp node)
    {
        defaultIn(node);
    }

    public void outASetminusExp(ASetminusExp node)
    {
        defaultOut(node);
    }

    public void caseASetminusExp(ASetminusExp node)
    {
        inASetminusExp(node);
        if(node.getL() != null)
        {
            node.getL().apply(this);
        }
        if(node.getR() != null)
        {
            node.getR().apply(this);
        }
        outASetminusExp(node);
    }
    public void inAInterExp(AInterExp node)
    {
        defaultIn(node);
    }

    public void outAInterExp(AInterExp node)
    {
        defaultOut(node);
    }

    public void caseAInterExp(AInterExp node)
    {
        inAInterExp(node);
        if(node.getL() != null)
        {
            node.getL().apply(this);
        }
        if(node.getR() != null)
        {
            node.getR().apply(this);
        }
        outAInterExp(node);
    }
    public void inAUnionExp(AUnionExp node)
    {
        defaultIn(node);
    }

    public void outAUnionExp(AUnionExp node)
    {
        defaultOut(node);
    }

    public void caseAUnionExp(AUnionExp node)
    {
        inAUnionExp(node);
        if(node.getL() != null)
        {
            node.getL().apply(this);
        }
        if(node.getR() != null)
        {
            node.getR().apply(this);
        }
        outAUnionExp(node);
    }
    public void inAMinExp(AMinExp node)
    {
        defaultIn(node);
    }

    public void outAMinExp(AMinExp node)
    {
        defaultOut(node);
    }

    public void caseAMinExp(AMinExp node)
    {
        inAMinExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outAMinExp(node);
    }
    public void inAMaxExp(AMaxExp node)
    {
        defaultIn(node);
    }

    public void outAMaxExp(AMaxExp node)
    {
        defaultOut(node);
    }

    public void caseAMaxExp(AMaxExp node)
    {
        inAMaxExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outAMaxExp(node);
    }
    public void inALessExp(ALessExp node)
    {
        defaultIn(node);
    }

    public void outALessExp(ALessExp node)
    {
        defaultOut(node);
    }

    public void caseALessExp(ALessExp node)
    {
        inALessExp(node);
        if(node.getL() != null)
        {
            node.getL().apply(this);
        }
        if(node.getR() != null)
        {
            node.getR().apply(this);
        }
        outALessExp(node);
    }
    public void inALesseqExp(ALesseqExp node)
    {
        defaultIn(node);
    }

    public void outALesseqExp(ALesseqExp node)
    {
        defaultOut(node);
    }

    public void caseALesseqExp(ALesseqExp node)
    {
        inALesseqExp(node);
        if(node.getL() != null)
        {
            node.getL().apply(this);
        }
        if(node.getR() != null)
        {
            node.getR().apply(this);
        }
        outALesseqExp(node);
    }
    public void inAGreatereqExp(AGreatereqExp node)
    {
        defaultIn(node);
    }

    public void outAGreatereqExp(AGreatereqExp node)
    {
        defaultOut(node);
    }

    public void caseAGreatereqExp(AGreatereqExp node)
    {
        inAGreatereqExp(node);
        if(node.getL() != null)
        {
            node.getL().apply(this);
        }
        if(node.getR() != null)
        {
            node.getR().apply(this);
        }
        outAGreatereqExp(node);
    }
    public void inAGreaterExp(AGreaterExp node)
    {
        defaultIn(node);
    }

    public void outAGreaterExp(AGreaterExp node)
    {
        defaultOut(node);
    }

    public void caseAGreaterExp(AGreaterExp node)
    {
        inAGreaterExp(node);
        if(node.getL() != null)
        {
            node.getL().apply(this);
        }
        if(node.getR() != null)
        {
            node.getR().apply(this);
        }
        outAGreaterExp(node);
    }
    public void inAEqualExp(AEqualExp node)
    {
        defaultIn(node);
    }

    public void outAEqualExp(AEqualExp node)
    {
        defaultOut(node);
    }

    public void caseAEqualExp(AEqualExp node)
    {
        inAEqualExp(node);
        if(node.getL() != null)
        {
            node.getL().apply(this);
        }
        if(node.getR() != null)
        {
            node.getR().apply(this);
        }
        outAEqualExp(node);
    }
    public void inANotequalExp(ANotequalExp node)
    {
        defaultIn(node);
    }

    public void outANotequalExp(ANotequalExp node)
    {
        defaultOut(node);
    }

    public void caseANotequalExp(ANotequalExp node)
    {
        inANotequalExp(node);
        if(node.getL() != null)
        {
            node.getL().apply(this);
        }
        if(node.getR() != null)
        {
            node.getR().apply(this);
        }
        outANotequalExp(node);
    }
    public void inASubExp(ASubExp node)
    {
        defaultIn(node);
    }

    public void outASubExp(ASubExp node)
    {
        defaultOut(node);
    }

    public void caseASubExp(ASubExp node)
    {
        inASubExp(node);
        if(node.getL() != null)
        {
            node.getL().apply(this);
        }
        if(node.getR() != null)
        {
            node.getR().apply(this);
        }
        outASubExp(node);
    }
    public void inAInExp(AInExp node)
    {
        defaultIn(node);
    }

    public void outAInExp(AInExp node)
    {
        defaultOut(node);
    }

    public void caseAInExp(AInExp node)
    {
        inAInExp(node);
        if(node.getL() != null)
        {
            node.getL().apply(this);
        }
        if(node.getR() != null)
        {
            node.getR().apply(this);
        }
        outAInExp(node);
    }
    public void inANotinExp(ANotinExp node)
    {
        defaultIn(node);
    }

    public void outANotinExp(ANotinExp node)
    {
        defaultOut(node);
    }

    public void caseANotinExp(ANotinExp node)
    {
        inANotinExp(node);
        if(node.getL() != null)
        {
            node.getL().apply(this);
        }
        if(node.getR() != null)
        {
            node.getR().apply(this);
        }
        outANotinExp(node);
    }
    public void inANotExp(ANotExp node)
    {
        defaultIn(node);
    }

    public void outANotExp(ANotExp node)
    {
        defaultOut(node);
    }

    public void caseANotExp(ANotExp node)
    {
        inANotExp(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outANotExp(node);
    }
    public void inAAndExp(AAndExp node)
    {
        defaultIn(node);
    }

    public void outAAndExp(AAndExp node)
    {
        defaultOut(node);
    }

    public void caseAAndExp(AAndExp node)
    {
        inAAndExp(node);
        if(node.getL() != null)
        {
            node.getL().apply(this);
        }
        if(node.getR() != null)
        {
            node.getR().apply(this);
        }
        outAAndExp(node);
    }
    public void inAOrExp(AOrExp node)
    {
        defaultIn(node);
    }

    public void outAOrExp(AOrExp node)
    {
        defaultOut(node);
    }

    public void caseAOrExp(AOrExp node)
    {
        inAOrExp(node);
        if(node.getL() != null)
        {
            node.getL().apply(this);
        }
        if(node.getR() != null)
        {
            node.getR().apply(this);
        }
        outAOrExp(node);
    }
    public void inAImplExp(AImplExp node)
    {
        defaultIn(node);
    }

    public void outAImplExp(AImplExp node)
    {
        defaultOut(node);
    }

    public void caseAImplExp(AImplExp node)
    {
        inAImplExp(node);
        if(node.getL() != null)
        {
            node.getL().apply(this);
        }
        if(node.getR() != null)
        {
            node.getR().apply(this);
        }
        outAImplExp(node);
    }
    public void inABiimplExp(ABiimplExp node)
    {
        defaultIn(node);
    }

    public void outABiimplExp(ABiimplExp node)
    {
        defaultOut(node);
    }

    public void caseABiimplExp(ABiimplExp node)
    {
        inABiimplExp(node);
        if(node.getL() != null)
        {
            node.getL().apply(this);
        }
        if(node.getR() != null)
        {
            node.getR().apply(this);
        }
        outABiimplExp(node);
    }
    public void inALet0Exp(ALet0Exp node)
    {
        defaultIn(node);
    }

    public void outALet0Exp(ALet0Exp node)
    {
        defaultOut(node);
    }

    public void caseALet0Exp(ALet0Exp node)
    {
        inALet0Exp(node);
        {
            Object temp[] = node.getDef().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PDef) temp[i]).apply(this);
            }
        }
        if(node.getIn() != null)
        {
            node.getIn().apply(this);
        }
        outALet0Exp(node);
    }
    public void inALet1Exp(ALet1Exp node)
    {
        defaultIn(node);
    }

    public void outALet1Exp(ALet1Exp node)
    {
        defaultOut(node);
    }

    public void caseALet1Exp(ALet1Exp node)
    {
        inALet1Exp(node);
        {
            Object temp[] = node.getDef().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PDef) temp[i]).apply(this);
            }
        }
        if(node.getIn() != null)
        {
            node.getIn().apply(this);
        }
        outALet1Exp(node);
    }
    public void inALet2Exp(ALet2Exp node)
    {
        defaultIn(node);
    }

    public void outALet2Exp(ALet2Exp node)
    {
        defaultOut(node);
    }

    public void caseALet2Exp(ALet2Exp node)
    {
        inALet2Exp(node);
        {
            Object temp[] = node.getDef().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PDef) temp[i]).apply(this);
            }
        }
        if(node.getIn() != null)
        {
            node.getIn().apply(this);
        }
        outALet2Exp(node);
    }
    public void inADef(ADef node)
    {
        defaultIn(node);
    }

    public void outADef(ADef node)
    {
        defaultOut(node);
    }

    public void caseADef(ADef node)
    {
        inADef(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outADef(node);
    }
    public void inAPlusArithExp(APlusArithExp node)
    {
        defaultIn(node);
    }

    public void outAPlusArithExp(APlusArithExp node)
    {
        defaultOut(node);
    }

    public void caseAPlusArithExp(APlusArithExp node)
    {
        inAPlusArithExp(node);
        if(node.getL() != null)
        {
            node.getL().apply(this);
        }
        if(node.getR() != null)
        {
            node.getR().apply(this);
        }
        outAPlusArithExp(node);
    }
    public void inAMinusArithExp(AMinusArithExp node)
    {
        defaultIn(node);
    }

    public void outAMinusArithExp(AMinusArithExp node)
    {
        defaultOut(node);
    }

    public void caseAMinusArithExp(AMinusArithExp node)
    {
        inAMinusArithExp(node);
        if(node.getL() != null)
        {
            node.getL().apply(this);
        }
        if(node.getR() != null)
        {
            node.getR().apply(this);
        }
        outAMinusArithExp(node);
    }
    public void inAMultArithExp(AMultArithExp node)
    {
        defaultIn(node);
    }

    public void outAMultArithExp(AMultArithExp node)
    {
        defaultOut(node);
    }

    public void caseAMultArithExp(AMultArithExp node)
    {
        inAMultArithExp(node);
        if(node.getL() != null)
        {
            node.getL().apply(this);
        }
        if(node.getR() != null)
        {
            node.getR().apply(this);
        }
        outAMultArithExp(node);
    }
    public void inADivArithExp(ADivArithExp node)
    {
        defaultIn(node);
    }

    public void outADivArithExp(ADivArithExp node)
    {
        defaultOut(node);
    }

    public void caseADivArithExp(ADivArithExp node)
    {
        inADivArithExp(node);
        if(node.getL() != null)
        {
            node.getL().apply(this);
        }
        if(node.getR() != null)
        {
            node.getR().apply(this);
        }
        outADivArithExp(node);
    }
    public void inANegArithExp(ANegArithExp node)
    {
        defaultIn(node);
    }

    public void outANegArithExp(ANegArithExp node)
    {
        defaultOut(node);
    }

    public void caseANegArithExp(ANegArithExp node)
    {
        inANegArithExp(node);
        if(node.getArithExp() != null)
        {
            node.getArithExp().apply(this);
        }
        outANegArithExp(node);
    }
    public void inAIntegerArithExp(AIntegerArithExp node)
    {
        defaultIn(node);
    }

    public void outAIntegerArithExp(AIntegerArithExp node)
    {
        defaultOut(node);
    }

    public void caseAIntegerArithExp(AIntegerArithExp node)
    {
        inAIntegerArithExp(node);
        if(node.getInt() != null)
        {
            node.getInt().apply(this);
        }
        outAIntegerArithExp(node);
    }
    public void inAConstArithExp(AConstArithExp node)
    {
        defaultIn(node);
    }

    public void outAConstArithExp(AConstArithExp node)
    {
        defaultOut(node);
    }

    public void caseAConstArithExp(AConstArithExp node)
    {
        inAConstArithExp(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        outAConstArithExp(node);
    }
    public void inAFunc(AFunc node)
    {
        defaultIn(node);
    }

    public void outAFunc(AFunc node)
    {
        defaultOut(node);
    }

    public void caseAFunc(AFunc node)
    {
        inAFunc(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        if(node.getN1() != null)
        {
            node.getN1().apply(this);
        }
        if(node.getN2() != null)
        {
            node.getN2().apply(this);
        }
        outAFunc(node);
    }
    public void inABitsUniv(ABitsUniv node)
    {
        defaultIn(node);
    }

    public void outABitsUniv(ABitsUniv node)
    {
        defaultOut(node);
    }

    public void caseABitsUniv(ABitsUniv node)
    {
        inABitsUniv(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        if(node.getInt() != null)
        {
            node.getInt().apply(this);
        }
        outABitsUniv(node);
    }
    public void inAQUniv(AQUniv node)
    {
        defaultIn(node);
    }

    public void outAQUniv(AQUniv node)
    {
        defaultOut(node);
    }

    public void caseAQUniv(AQUniv node)
    {
        inAQUniv(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        if(node.getU() != null)
        {
            node.getU().apply(this);
        }
        outAQUniv(node);
    }
    public void inANameUniv(ANameUniv node)
    {
        defaultIn(node);
    }

    public void outANameUniv(ANameUniv node)
    {
        defaultOut(node);
    }

    public void caseANameUniv(ANameUniv node)
    {
        inANameUniv(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        outANameUniv(node);
    }
    public void inANameWhere(ANameWhere node)
    {
        defaultIn(node);
    }

    public void outANameWhere(ANameWhere node)
    {
        defaultOut(node);
    }

    public void caseANameWhere(ANameWhere node)
    {
        inANameWhere(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outANameWhere(node);
    }
    public void inAVar0Par(AVar0Par node)
    {
        defaultIn(node);
    }

    public void outAVar0Par(AVar0Par node)
    {
        defaultOut(node);
    }

    public void caseAVar0Par(AVar0Par node)
    {
        inAVar0Par(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        outAVar0Par(node);
    }
    public void inAVar1Par(AVar1Par node)
    {
        defaultIn(node);
    }

    public void outAVar1Par(AVar1Par node)
    {
        defaultOut(node);
    }

    public void caseAVar1Par(AVar1Par node)
    {
        inAVar1Par(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outAVar1Par(node);
    }
    public void inAVar2Par(AVar2Par node)
    {
        defaultIn(node);
    }

    public void outAVar2Par(AVar2Par node)
    {
        defaultOut(node);
    }

    public void caseAVar2Par(AVar2Par node)
    {
        inAVar2Par(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outAVar2Par(node);
    }
    public void inAUniversePar(AUniversePar node)
    {
        defaultIn(node);
    }

    public void outAUniversePar(AUniversePar node)
    {
        defaultOut(node);
    }

    public void caseAUniversePar(AUniversePar node)
    {
        inAUniversePar(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        outAUniversePar(node);
    }
    public void inAParPar(AParPar node)
    {
        defaultIn(node);
    }

    public void outAParPar(AParPar node)
    {
        defaultOut(node);
    }

    public void caseAParPar(AParPar node)
    {
        inAParPar(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outAParPar(node);
    }
    public void inAPwhere(APwhere node)
    {
        defaultIn(node);
    }

    public void outAPwhere(APwhere node)
    {
        defaultOut(node);
    }

    public void caseAPwhere(APwhere node)
    {
        inAPwhere(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outAPwhere(node);
    }
    public void inAVar(AVar node)
    {
        defaultIn(node);
    }

    public void outAVar(AVar node)
    {
        defaultOut(node);
    }

    public void caseAVar(AVar node)
    {
        inAVar(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        {
            Object temp[] = node.getComponent().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PComponent) temp[i]).apply(this);
            }
        }
        outAVar(node);
    }
    public void inAComponent(AComponent node)
    {
        defaultIn(node);
    }

    public void outAComponent(AComponent node)
    {
        defaultOut(node);
    }

    public void caseAComponent(AComponent node)
    {
        inAComponent(node);
        if(node.getN1() != null)
        {
            node.getN1().apply(this);
        }
        if(node.getN2() != null)
        {
            node.getN2().apply(this);
        }
        outAComponent(node);
    }
    public void inAExpSetBody(AExpSetBody node)
    {
        defaultIn(node);
    }

    public void outAExpSetBody(AExpSetBody node)
    {
        defaultOut(node);
    }

    public void caseAExpSetBody(AExpSetBody node)
    {
        inAExpSetBody(node);
        if(node.getExp() != null)
        {
            node.getExp().apply(this);
        }
        outAExpSetBody(node);
    }
    public void inAIntervalSetBody(AIntervalSetBody node)
    {
        defaultIn(node);
    }

    public void outAIntervalSetBody(AIntervalSetBody node)
    {
        defaultOut(node);
    }

    public void caseAIntervalSetBody(AIntervalSetBody node)
    {
        inAIntervalSetBody(node);
        outAIntervalSetBody(node);
    }
    public void inAMapEntry(AMapEntry node)
    {
        defaultIn(node);
    }

    public void outAMapEntry(AMapEntry node)
    {
        defaultOut(node);
    }

    public void caseAMapEntry(AMapEntry node)
    {
        inAMapEntry(node);
        if(node.getN1() != null)
        {
            node.getN1().apply(this);
        }
        if(node.getN2() != null)
        {
            node.getN2().apply(this);
        }
        outAMapEntry(node);
    }
    public void inACallConstnode(ACallConstnode node)
    {
        defaultIn(node);
    }

    public void outACallConstnode(ACallConstnode node)
    {
        defaultOut(node);
    }

    public void caseACallConstnode(ACallConstnode node)
    {
        inACallConstnode(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        {
            Object temp[] = node.getConstnode().toArray();
            for(int i = 0; i < temp.length; i++)
            {
                ((PConstnode) temp[i]).apply(this);
            }
        }
        outACallConstnode(node);
    }
    public void inANameConstnode(ANameConstnode node)
    {
        defaultIn(node);
    }

    public void outANameConstnode(ANameConstnode node)
    {
        defaultOut(node);
    }

    public void caseANameConstnode(ANameConstnode node)
    {
        inANameConstnode(node);
        if(node.getName() != null)
        {
            node.getName().apply(this);
        }
        outANameConstnode(node);
    }
}
