polyglot.ast
Class AmbAssign_c

java.lang.Object
  extended by polyglot.ast.Node_c
      extended by polyglot.ast.Term_c
          extended by polyglot.ast.Expr_c
              extended by polyglot.ast.Assign_c
                  extended by polyglot.ast.AmbAssign_c
All Implemented Interfaces:
java.lang.Cloneable, AmbAssign, Ambiguous, Assign, Expr, JL, Node, NodeOps, Prefix, Receiver, Term, Typed, Copy

public class AmbAssign_c
extends Assign_c
implements AmbAssign

A AmbAssign represents a Java assignment expression to an as yet unknown expression.


Nested Class Summary
 
Nested classes/interfaces inherited from interface polyglot.ast.Assign
Assign.Operator
 
Field Summary
 
Fields inherited from class polyglot.ast.Assign_c
left, op, right
 
Fields inherited from class polyglot.ast.Expr_c
type
 
Fields inherited from class polyglot.ast.Term_c
exceptions, reachable
 
Fields inherited from class polyglot.ast.Node_c
del, error, ext, position
 
Fields inherited from interface polyglot.ast.Assign
ADD_ASSIGN, ASSIGN, BIT_AND_ASSIGN, BIT_OR_ASSIGN, BIT_XOR_ASSIGN, DIV_ASSIGN, MOD_ASSIGN, MUL_ASSIGN, SHL_ASSIGN, SHR_ASSIGN, SUB_ASSIGN, USHR_ASSIGN
 
Fields inherited from interface polyglot.ast.Term
ENTRY, EXIT
 
Constructor Summary
AmbAssign_c(Position pos, Expr left, Assign.Operator op, Expr right)
           
 
Method Summary
protected  void acceptCFGAssign(CFGBuilder v)
          ###@@@DOCO TODO
protected  void acceptCFGOpAssign(CFGBuilder v)
          ###@@@DOCO TODO
 Node copy(NodeFactory nf)
          Produce a copy of this node using the given NodeFactory.
 Node disambiguate(AmbiguityRemover ar)
          Remove any remaining ambiguities from the AST.
 Term firstChild()
          Return the first direct subterm performed when evaluating this term.
 Node typeCheck(TypeChecker tc)
          Type check the expression.
 
Methods inherited from class polyglot.ast.Assign_c
acceptCFG, childExpectedType, dump, left, left, operator, operator, precedence, prettyPrint, reconstruct, right, right, throwsArithmeticException, throwTypes, toString, visitChildren
 
Methods inherited from class polyglot.ast.Expr_c
booleanValue, buildTypes, byteValue, charValue, constantValue, constantValueSet, doubleValue, floatValue, intValue, isConstant, isTypeChecked, longValue, printSubExpr, printSubExpr, shortValue, stringValue, type, type
 
Methods inherited from class polyglot.ast.Term_c
exceptionCheck, exceptions, exceptions, listChild, reachable, reachable
 
Methods inherited from class polyglot.ast.Node_c
addDecls, buildTypesEnter, checkConstants, copy, copy, del, del, disambiguateEnter, disambiguateOverride, dump, dump, enterChildScope, enterScope, error, error, exceptionCheckEnter, ext, ext, ext, ext, init, isDisambiguated, node, position, position, prettyPrint, prettyPrint, print, printBlock, printSubStmt, translate, 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.Assign
left, left, operator, operator, right, right, throwsArithmeticException
 
Methods inherited from interface polyglot.ast.Expr
constantValue, constantValueSet, isConstant, precedence, printSubExpr, printSubExpr, type
 
Methods inherited from interface polyglot.ast.Node
childExpectedType, 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, disambiguateEnter, disambiguateOverride, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, prettyPrint, prettyPrint, prettyPrint, throwTypes, translate, typeCheckEnter, typeCheckOverride, visitChildren
 
Methods inherited from interface polyglot.util.Copy
copy
 
Methods inherited from interface polyglot.ast.Typed
type
 
Methods inherited from interface polyglot.ast.Term
acceptCFG, exceptions, exceptions, reachable, reachable
 

Constructor Detail

AmbAssign_c

public AmbAssign_c(Position pos,
                   Expr left,
                   Assign.Operator op,
                   Expr right)
Method Detail

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
Specified by:
firstChild in class Assign_c

acceptCFGAssign

protected void acceptCFGAssign(CFGBuilder v)
Description copied from class: Assign_c
###@@@DOCO TODO

Specified by:
acceptCFGAssign in class Assign_c

acceptCFGOpAssign

protected void acceptCFGOpAssign(CFGBuilder v)
Description copied from class: Assign_c
###@@@DOCO TODO

Specified by:
acceptCFGOpAssign in class Assign_c

disambiguate

public Node disambiguate(AmbiguityRemover ar)
                  throws SemanticException
Description copied from interface: NodeOps
Remove any remaining ambiguities from the AST. This method is called by the leave() method of the visitor. The method should perform work that should be done after visiting the children of the node. The method may return this or a new copy of the node which will be installed as a child of the node's parent. The node should not assume that its children have been disambiguated. If it depends on a child being disambiguated, it may just return this without doing any work.

Specified by:
disambiguate in interface NodeOps
Overrides:
disambiguate in class Node_c
Parameters:
ar - The visitor which disambiguates.
Throws:
SemanticException

typeCheck

public Node typeCheck(TypeChecker tc)
               throws SemanticException
Description copied from class: Assign_c
Type check the expression.

Specified by:
typeCheck in interface NodeOps
Overrides:
typeCheck in class Assign_c
Parameters:
tc - The type checking visitor.
Throws:
SemanticException

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 Assign_c