Package gnu.expr

Class ExpVisitor<R,D>

java.lang.Object
gnu.expr.ExpVisitor<R,D>
All Implemented Interfaces:
SourceLocator, SourceLocator, Locator
Direct Known Subclasses:
ExpExpVisitor, PushApply

public class ExpVisitor<R,D> extends Object implements SourceLocator
Class for doing a tree-visit over an Expression tree.
  • Field Details

    • messages

      protected SourceMessages messages
    • currentLambda

      protected LambdaExp currentLambda
    • exitValue

      protected Object exitValue
      If exitValue is set to non-null, the visit stops.
  • Constructor Details

    • ExpVisitor

      public ExpVisitor()
  • Method Details

    • getCompilation

      public Compilation getCompilation()
      Get the Compilation associated with this visitor.
    • getLanguage

      public Language getLanguage()
    • getMessages

      public SourceMessages getMessages()
    • defaultValue

      protected R defaultValue(Expression r, D d)
    • visitExpression

      protected R visitExpression(Expression exp, D d)
    • setContext

      public void setContext(Compilation comp)
    • visit

      public R visit(Expression exp, D d)
      Call the visit method of argument Expression. Could call Expression's visit directly, but this allows us to interpose a method call on each Expression. We use it to note the Expression's line number. Should not need to be overridden; if you do, you may also want to override visitExps.
    • visit

      public static <R, D> R visit(ExpVisitor<R,D> visitor, Expression exp, D d)
    • update

      protected Expression update(Expression exp, R r)
    • visitApplyExp

      protected R visitApplyExp(ApplyExp exp, D d)
    • visitIfExp

      protected R visitIfExp(IfExp exp, D d)
    • visitCaseExp

      protected R visitCaseExp(CaseExp exp, D d)
    • visitDeclarationType

      protected void visitDeclarationType(Declaration decl)
    • visitDeclarationTypes

      protected final void visitDeclarationTypes(ScopeExp exp)
    • visitScopeExp

      protected R visitScopeExp(ScopeExp exp, D d)
    • visitLetExp

      protected R visitLetExp(LetExp exp, D d)
    • visitLambdaExp

      protected R visitLambdaExp(LambdaExp exp, D d)
    • visitClassExp

      protected R visitClassExp(ClassExp exp, D d)
    • visitObjectExp

      protected R visitObjectExp(ObjectExp exp, D d)
    • visitModuleExp

      protected R visitModuleExp(ModuleExp exp, D d)
    • visitSetExp

      protected R visitSetExp(SetExp exp, D d)
    • visitTryExp

      protected R visitTryExp(TryExp exp, D d)
    • visitBeginExp

      protected R visitBeginExp(BeginExp exp, D d)
    • visitQuoteExp

      protected R visitQuoteExp(QuoteExp exp, D d)
    • visitReferenceExp

      protected R visitReferenceExp(ReferenceExp exp, D d)
    • visitThisExp

      protected R visitThisExp(ThisExp exp, D d)
    • visitSynchronizedExp

      protected R visitSynchronizedExp(SynchronizedExp exp, D d)
    • visitBlockExp

      protected R visitBlockExp(BlockExp exp, D d)
    • visitExitExp

      protected R visitExitExp(ExitExp exp, D d)
    • visitFluidLetExp

      protected R visitFluidLetExp(FluidLetExp exp, D d)
    • visitLangExp

      protected R visitLangExp(LangExp exp, D d)
    • getExitValue

      public Object getExitValue()
    • getCurrentLambda

      public final LambdaExp getCurrentLambda()
    • visitAndUpdate

      public Expression visitAndUpdate(Expression exp, D d)
    • visitExps

      public Expression[] visitExps(Expression[] exps, D d)
    • visitExps

      public Expression[] visitExps(Expression[] exps, int n, D d)
      Call visit on the Expressions in an array. However, the visit method is inlined for speed.
    • visitDefaultArgs

      public void visitDefaultArgs(LambdaExp exp, D d)
    • error

      public void error(char kind, String message)
    • noteError

      public Expression noteError(String message)
    • getFileName

      public final String getFileName()
      Description copied from interface: SourceLocator
      Normally same as getSystemId.
      Specified by:
      getFileName in interface SourceLocator
    • getLineNumber

      public final int getLineNumber()
      Description copied from interface: SourceLocator
      Return current line number. Normally the same as getStartLine(). The "first" line is line 1; unknown is -1.
      Specified by:
      getLineNumber in interface Locator
      Specified by:
      getLineNumber in interface SourceLocator
      Specified by:
      getLineNumber in interface SourceLocator
    • getColumnNumber

      public final int getColumnNumber()
      Description copied from interface: SourceLocator
      Return current column number. Normally the same as getStartColumn(). The "first" column is column 1; unknown is -1.
      Specified by:
      getColumnNumber in interface Locator
      Specified by:
      getColumnNumber in interface SourceLocator
      Specified by:
      getColumnNumber in interface SourceLocator
    • getStartLine

      public final int getStartLine()
      Description copied from interface: SourceLocator
      Line number (one-origin) of start of range; unknown/unspecified is -1.
      Specified by:
      getStartLine in interface SourceLocator
    • getStartColumn

      public final int getStartColumn()
      Description copied from interface: SourceLocator
      Column (one-origin) of start of range; unknown/unspecified is -1.
      Specified by:
      getStartColumn in interface SourceLocator
    • getEndLine

      public final int getEndLine()
      Description copied from interface: SourceLocator
      Line number (one-origin) of end of range; unknown/unspecified is -1.
      Specified by:
      getEndLine in interface SourceLocator
    • getEndColumn

      public final int getEndColumn()
      Description copied from interface: SourceLocator
      Column (one-origin) of end of range; unknown/unspecified is -1.
      Specified by:
      getEndColumn in interface SourceLocator
    • getPublicId

      public String getPublicId()
      Specified by:
      getPublicId in interface Locator
      Specified by:
      getPublicId in interface SourceLocator
      Specified by:
      getPublicId in interface SourceLocator
    • getSystemId

      public String getSystemId()
      Specified by:
      getSystemId in interface Locator
      Specified by:
      getSystemId in interface SourceLocator
      Specified by:
      getSystemId in interface SourceLocator
    • isStableSourceLocation

      public boolean isStableSourceLocation()
      Normally same as getSystemId.
      Specified by:
      isStableSourceLocation in interface SourceLocator
    • setFile

      public void setFile(String filename)
    • setLine

      public void setLine(int line)
    • setColumn

      public void setColumn(int column)
    • setLine

      public void setLine(String filename, int line, int column)