polyglot.ast
Class Eval_c
java.lang.Object
polyglot.ast.Node_c
polyglot.ast.Term_c
polyglot.ast.Stmt_c
polyglot.ast.Eval_c
- All Implemented Interfaces:
- java.lang.Cloneable, Eval, ForInit, ForUpdate, JL, Node, NodeOps, Stmt, Term, Copy
public class Eval_c
- extends Stmt_c
- implements Eval
An Eval
is a wrapper for an expression in the context of
a statement.
Methods inherited from class polyglot.ast.Node_c |
addDecls, buildTypes, buildTypesEnter, checkConstants, copy, copy, del, del, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, dump, enterChildScope, enterScope, error, error, exceptionCheckEnter, ext, ext, ext, ext, init, isDisambiguated, isTypeChecked, node, position, position, prettyPrint, prettyPrint, print, printBlock, printSubStmt, throwTypes, translate, typeCheck, typeCheckEnter, typeCheckOverride, visit, visitChild, visitEdge, visitList |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface polyglot.ast.Node |
del, del, dump, error, error, ext, ext, ext, ext, isDisambiguated, isTypeChecked, position, position, visit, visitChild, visitEdge, visitList |
Methods inherited from interface polyglot.ast.JL |
init, node |
Methods inherited from interface polyglot.ast.NodeOps |
addDecls, buildTypes, buildTypesEnter, checkConstants, copy, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, prettyPrint, prettyPrint, throwTypes, translate, typeCheck, typeCheckEnter, typeCheckOverride |
Methods inherited from interface polyglot.ast.Node |
del, del, dump, error, error, ext, ext, ext, ext, isDisambiguated, isTypeChecked, position, position, visit, visitChild, visitEdge, visitList |
Methods inherited from interface polyglot.ast.JL |
init, node |
Methods inherited from interface polyglot.ast.NodeOps |
addDecls, buildTypes, buildTypesEnter, checkConstants, copy, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, prettyPrint, prettyPrint, throwTypes, translate, typeCheck, typeCheckEnter, typeCheckOverride |
expr
protected Expr expr
Eval_c
public Eval_c(Position pos,
Expr expr)
expr
public Expr expr()
- Get the expression of the statement.
- Specified by:
expr
in interface Eval
expr
public Eval expr(Expr expr)
- Set the expression of the statement.
- Specified by:
expr
in interface Eval
reconstruct
protected Eval_c reconstruct(Expr expr)
- Reconstruct the statement.
childExpectedType
public Type childExpectedType(Expr child,
AscriptionVisitor av)
- Description copied from interface:
Node
- Get the expected type of a child expression of
this
.
The expected type is determined by the context in that the child occurs
(e.g., for x = e
, the expected type of e
is
the declared type of x
.
The expected type should impose the least constraints on the child's
type that are allowed by the parent node.
- Specified by:
childExpectedType
in interface Node
- Overrides:
childExpectedType
in class Node_c
- Parameters:
child
- A child expression of this node.av
- An ascription visitor.
- Returns:
- The expected type of
child
.
visitChildren
public Node visitChildren(NodeVisitor v)
- Visit the children of the statement.
- Specified by:
visitChildren
in interface NodeOps
- Overrides:
visitChildren
in class Node_c
- Parameters:
v
- The visitor that will traverse/rewrite the AST.
- Returns:
- A new AST if a change was made, or
this
.
toString
public java.lang.String toString()
- Overrides:
toString
in class Node_c
prettyPrint
public void prettyPrint(CodeWriter w,
PrettyPrinter tr)
- Write the statement to an output file.
- Specified by:
prettyPrint
in interface NodeOps
- Overrides:
prettyPrint
in class Node_c
- Parameters:
w
- The code writer to which to write.tr
- The pretty printer. This is not a visitor.
firstChild
public Term firstChild()
- Description copied from interface:
Term
- Return the first direct subterm performed when evaluating this term. If
this term has no subterms, this should return null.
This method is similar to the deprecated entry(), but it should *not*
recursively drill down to the innermost subterm. The direct child visited
first in this term's dataflow should be returned.
- Specified by:
firstChild
in interface Term
acceptCFG
public java.util.List acceptCFG(CFGBuilder v,
java.util.List succs)
- Description copied from class:
Term_c
- Visit this term in evaluation order.
- Specified by:
acceptCFG
in interface Term
- Specified by:
acceptCFG
in class Term_c
copy
public Node copy(NodeFactory nf)
- Description copied from interface:
NodeOps
- Produce a copy of this node using the given NodeFactory.
- Specified by:
copy
in interface NodeOps
- Overrides:
copy
in class Node_c