orc.ast.oil.expression.argument
Class Field
java.lang.Object
orc.ast.oil.expression.Expression
orc.ast.oil.expression.argument.Argument
orc.ast.oil.expression.argument.Field
- All Implemented Interfaces:
- java.lang.Comparable<Field>
public class Field
- extends Argument
- implements java.lang.Comparable<Field>
Field access argument. Embeds a String key.
- Author:
- dkitchin
Field Summary |
java.lang.String |
key
|
Constructor Summary |
Field(java.lang.String key)
|
Methods inherited from class orc.ast.oil.expression.argument.Argument |
asField |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
key
public java.lang.String key
Field
public Field(java.lang.String key)
resolve
public java.lang.Object resolve(Env<java.lang.Object> env)
- Specified by:
resolve
in class Argument
toString
public java.lang.String toString()
- Overrides:
toString
in class java.lang.Object
compareTo
public int compareTo(Field that)
- Specified by:
compareTo
in interface java.lang.Comparable<Field>
equals
public boolean equals(java.lang.Object that)
- Overrides:
equals
in class java.lang.Object
accept
public <E> E accept(Visitor<E> visitor)
- Specified by:
accept
in class Expression
typesynth
public Type typesynth(TypingContext ctx)
throws TypeException
- Specified by:
typesynth
in class Expression
- Throws:
TypeException
addIndices
public void addIndices(java.util.Set<java.lang.Integer> indices,
int depth)
- Description copied from class:
Expression
- 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 Expression
- Parameters:
indices
- The index set accumulator.depth
- The minimum index for a free variable.
marshal
public Argument marshal()
throws CompilationException
- Specified by:
marshal
in class Argument
- Throws:
CompilationException