orc.ast.oil
Class WithLocation
java.lang.Object
orc.ast.oil.Expr
orc.ast.oil.WithLocation
- All Implemented Interfaces:
- Located
public class WithLocation
- extends Expr
- implements Located
Annotate an expression with a source location.
- Author:
- quark
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
expr
public final Expr expr
location
public final SourceLocation location
WithLocation
public WithLocation(Expr expr,
SourceLocation location)
getSourceLocation
public SourceLocation getSourceLocation()
- Specified by:
getSourceLocation
in interface Located
compile
public Node compile(Node output)
- Description copied from class:
Expr
- Compiles an oil syntax tree into an execution graph.
Every node is compiled relative to an "output" node that represents
the "rest of the program". Thus the tree of compiled nodes is created bottom up.
- Specified by:
compile
in class Expr
- Parameters:
output
- This is the node to which output (publications) will be directed.
- Returns:
- A new node.
accept
public <E> E accept(Visitor<E> visitor)
- Specified by:
accept
in class Expr
typesynth
public Type typesynth(Env<Type> ctx)
throws TypeException
- Specified by:
typesynth
in class Expr
- Throws:
TypeException
toString
public java.lang.String toString()
- Overrides:
toString
in class java.lang.Object
addIndices
public void addIndices(java.util.Set<java.lang.Integer> indices,
int depth)
- Description copied from class:
Expr
- If this expression has any indices which are >= depth,
add (index - depth) to the index set accumulator. The depth
increases each time this method recurses through a binder.
The default implementation is to assume the expression
has no free variables, and thus do nothing. Expressions
which contain variables or subexpressions override this
behavior.
- Specified by:
addIndices
in class Expr
- Parameters:
indices
- The index set accumulator.depth
- The minimum index for a free variable.