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