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

package uk.co.zonetora.fj.ast.analysis;

import uk.co.zonetora.fj.ast.node.*;

public interface Analysis extends Switch
{
    Object getIn(Node node);
    void setIn(Node node, Object in);
    Object getOut(Node node);
    void setOut(Node node, Object out);

    void caseStart(Start node);
    void caseAProg(AProg node);
    void caseAClassDecl(AClassDecl node);
    void caseAFieldDecl(AFieldDecl node);
    void caseAConstructorDecl(AConstructorDecl node);
    void caseAMethodDecl(AMethodDecl node);
    void caseAParamArgsParamDeclList(AParamArgsParamDeclList node);
    void caseAEmptyParamDeclList(AEmptyParamDeclList node);
    void caseAIdentParamArg(AIdentParamArg node);
    void caseAThisParamArg(AThisParamArg node);
    void caseACommaParamArgList(ACommaParamArgList node);
    void caseAFieldListFieldList(AFieldListFieldList node);
    void caseAEmptyFieldList(AEmptyFieldList node);
    void caseAFieldName(AFieldName node);
    void caseACommaField(ACommaField node);
    void caseAThisFieldAssig(AThisFieldAssig node);
    void caseANonLeftRecTermTerm(ANonLeftRecTermTerm node);
    void caseAFieldAccessTerm(AFieldAccessTerm node);
    void caseAMethodCallTerm(AMethodCallTerm node);
    void caseACastTerm(ACastTerm node);
    void caseAVariableNonLeftRecTerm(AVariableNonLeftRecTerm node);
    void caseAThisNonLeftRecTerm(AThisNonLeftRecTerm node);
    void caseAObjectCreationNonLeftRecTerm(AObjectCreationNonLeftRecTerm node);
    void caseABracketNonLeftRecTerm(ABracketNonLeftRecTerm node);
    void caseATermListTermList(ATermListTermList node);
    void caseAEmptyTermList(AEmptyTermList node);
    void caseACommaTerm(ACommaTerm node);

    void caseTTclass(TTclass node);
    void caseTExtends(TExtends node);
    void caseTSuper(TSuper node);
    void caseTThis(TThis node);
    void caseTNew(TNew node);
    void caseTReturn(TReturn node);
    void caseTLBrace(TLBrace node);
    void caseTRBrace(TRBrace node);
    void caseTSemicolon(TSemicolon node);
    void caseTComma(TComma node);
    void caseTLPar(TLPar node);
    void caseTRPar(TRPar node);
    void caseTLSq(TLSq node);
    void caseTRSq(TRSq node);
    void caseTPeriod(TPeriod node);
    void caseTEq(TEq node);
    void caseTNewLine(TNewLine node);
    void caseTBlank(TBlank node);
    void caseTIdentifier(TIdentifier node);
    void caseEOF(EOF node);
}
