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.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface gnu.text.SourceLocator
SourceLocator.Simple
-
-
Field Summary
Fields Modifier and Type Field Description protected LambdaExpcurrentLambdaprotected ObjectexitValueIf exitValue is set to non-null, the visit stops.protected SourceMessagesmessages
-
Constructor Summary
Constructors Constructor Description ExpVisitor()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected RdefaultValue(Expression r, D d)voiderror(char kind, String message)intgetColumnNumber()Return current column number.CompilationgetCompilation()Get the Compilation associated with this visitor.LambdaExpgetCurrentLambda()intgetEndColumn()Column (one-origin) of end of range; unknown/unspecified is -1.intgetEndLine()Line number (one-origin) of end of range; unknown/unspecified is -1.ObjectgetExitValue()StringgetFileName()Normally same as getSystemId.LanguagegetLanguage()intgetLineNumber()Return current line number.SourceMessagesgetMessages()StringgetPublicId()intgetStartColumn()Column (one-origin) of start of range; unknown/unspecified is -1.intgetStartLine()Line number (one-origin) of start of range; unknown/unspecified is -1.StringgetSystemId()booleanisStableSourceLocation()Normally same as getSystemId.ExpressionnoteError(String message)voidsetColumn(int column)voidsetContext(Compilation comp)voidsetFile(String filename)voidsetLine(int line)voidsetLine(String filename, int line, int column)protected Expressionupdate(Expression exp, R r)Rvisit(Expression exp, D d)Call the visit method of argument Expression.static <R,D>
Rvisit(ExpVisitor<R,D> visitor, Expression exp, D d)ExpressionvisitAndUpdate(Expression exp, D d)protected RvisitApplyExp(ApplyExp exp, D d)protected RvisitBeginExp(BeginExp exp, D d)protected RvisitBlockExp(BlockExp exp, D d)protected RvisitCaseExp(CaseExp exp, D d)protected RvisitClassExp(ClassExp exp, D d)protected voidvisitDeclarationType(Declaration decl)protected voidvisitDeclarationTypes(ScopeExp exp)voidvisitDefaultArgs(LambdaExp exp, D d)protected RvisitExitExp(ExitExp exp, D d)protected RvisitExpression(Expression exp, D d)Expression[]visitExps(Expression[] exps, int n, D d)Call visit on the Expressions in an array.Expression[]visitExps(Expression[] exps, D d)protected RvisitFluidLetExp(FluidLetExp exp, D d)protected RvisitIfExp(IfExp exp, D d)protected RvisitLambdaExp(LambdaExp exp, D d)protected RvisitLangExp(LangExp exp, D d)protected RvisitLetExp(LetExp exp, D d)protected RvisitModuleExp(ModuleExp exp, D d)protected RvisitObjectExp(ObjectExp exp, D d)protected RvisitQuoteExp(QuoteExp exp, D d)protected RvisitReferenceExp(ReferenceExp exp, D d)protected RvisitScopeExp(ScopeExp exp, D d)protected RvisitSetExp(SetExp exp, D d)protected RvisitSynchronizedExp(SynchronizedExp exp, D d)protected RvisitThisExp(ThisExp exp, D d)protected RvisitTryExp(TryExp exp, D d)
-
-
-
Field Detail
-
messages
protected SourceMessages messages
-
currentLambda
protected LambdaExp currentLambda
-
exitValue
protected Object exitValue
If exitValue is set to non-null, the visit stops.
-
-
Method Detail
-
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)
-
visitDeclarationType
protected void visitDeclarationType(Declaration decl)
-
visitDeclarationTypes
protected final void visitDeclarationTypes(ScopeExp exp)
-
visitReferenceExp
protected R visitReferenceExp(ReferenceExp exp, D d)
-
visitSynchronizedExp
protected R visitSynchronizedExp(SynchronizedExp exp, D d)
-
visitFluidLetExp
protected R visitFluidLetExp(FluidLetExp 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.
-
error
public void error(char kind, String message)
-
noteError
public Expression noteError(String message)
-
getFileName
public final String getFileName()
Description copied from interface:SourceLocatorNormally same as getSystemId.- Specified by:
getFileNamein interfaceSourceLocator
-
getLineNumber
public final int getLineNumber()
Description copied from interface:SourceLocatorReturn current line number. Normally the same asgetStartLine(). The "first" line is line 1; unknown is -1.- Specified by:
getLineNumberin interfaceLocator- Specified by:
getLineNumberin interfaceSourceLocator- Specified by:
getLineNumberin interfaceSourceLocator
-
getColumnNumber
public final int getColumnNumber()
Description copied from interface:SourceLocatorReturn current column number. Normally the same asgetStartColumn(). The "first" column is column 1; unknown is -1.- Specified by:
getColumnNumberin interfaceLocator- Specified by:
getColumnNumberin interfaceSourceLocator- Specified by:
getColumnNumberin interfaceSourceLocator
-
getStartLine
public final int getStartLine()
Description copied from interface:SourceLocatorLine number (one-origin) of start of range; unknown/unspecified is -1.- Specified by:
getStartLinein interfaceSourceLocator
-
getStartColumn
public final int getStartColumn()
Description copied from interface:SourceLocatorColumn (one-origin) of start of range; unknown/unspecified is -1.- Specified by:
getStartColumnin interfaceSourceLocator
-
getEndLine
public final int getEndLine()
Description copied from interface:SourceLocatorLine number (one-origin) of end of range; unknown/unspecified is -1.- Specified by:
getEndLinein interfaceSourceLocator
-
getEndColumn
public final int getEndColumn()
Description copied from interface:SourceLocatorColumn (one-origin) of end of range; unknown/unspecified is -1.- Specified by:
getEndColumnin interfaceSourceLocator
-
getPublicId
public String getPublicId()
- Specified by:
getPublicIdin interfaceLocator- Specified by:
getPublicIdin interfaceSourceLocator- Specified by:
getPublicIdin interfaceSourceLocator
-
getSystemId
public String getSystemId()
- Specified by:
getSystemIdin interfaceLocator- Specified by:
getSystemIdin interfaceSourceLocator- Specified by:
getSystemIdin interfaceSourceLocator
-
isStableSourceLocation
public boolean isStableSourceLocation()
Normally same as getSystemId.- Specified by:
isStableSourceLocationin interfaceSourceLocator
-
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)
-
-