|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectpolyglot.ast.Node_c
polyglot.ast.Term_c
polyglot.ast.Expr_c
polyglot.ast.ArrayInit_c
public class ArrayInit_c
An ArrayInit
is an immutable representation of
an array initializer, such as { 3, 1, { 4, 1, 5 } }. Note that
the elements of these array may be expressions of any type (e.g.,
Call
).
Field Summary | |
---|---|
protected java.util.List |
elements
|
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.Term |
---|
ENTRY, EXIT |
Constructor Summary | |
---|---|
ArrayInit_c(Position pos,
java.util.List elements)
|
Method Summary | |
---|---|
java.util.List |
acceptCFG(CFGBuilder v,
java.util.List succs)
Visit this term in evaluation order. |
Type |
childExpectedType(Expr child,
AscriptionVisitor av)
Get the expected type of a child expression of this . |
Node |
copy(NodeFactory nf)
Produce a copy of this node using the given NodeFactory. |
java.util.List |
elements()
Get the elements of the initializer. |
ArrayInit |
elements(java.util.List elements)
Set the elements of the initializer. |
Term |
firstChild()
Return the first direct subterm performed when evaluating this term. |
void |
prettyPrint(CodeWriter w,
PrettyPrinter tr)
Write the initializer to an output file. |
protected ArrayInit_c |
reconstruct(java.util.List elements)
Reconstruct the initializer. |
java.lang.String |
toString()
|
Node |
typeCheck(TypeChecker tc)
Type check the initializer. |
void |
typeCheckElements(Type lhsType)
Type check the individual elements of the array initializer against the left-hand-side type. |
Node |
visitChildren(NodeVisitor v)
Visit the children of the initializer. |
Methods inherited from class polyglot.ast.Expr_c |
---|
booleanValue, buildTypes, byteValue, charValue, constantValue, constantValueSet, doubleValue, dump, floatValue, intValue, isConstant, isTypeChecked, longValue, precedence, 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, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, enterChildScope, enterScope, error, error, exceptionCheckEnter, ext, ext, ext, ext, init, isDisambiguated, node, position, position, prettyPrint, prettyPrint, print, printBlock, printSubStmt, throwTypes, 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.Expr |
---|
constantValue, constantValueSet, isConstant, precedence, printSubExpr, printSubExpr, type |
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, typeCheckEnter, typeCheckOverride |
Methods inherited from interface polyglot.util.Copy |
---|
copy |
Methods inherited from interface polyglot.ast.Typed |
---|
type |
Methods inherited from interface polyglot.ast.Term |
---|
exceptions, exceptions, reachable, reachable |
Field Detail |
---|
protected java.util.List elements
Constructor Detail |
---|
public ArrayInit_c(Position pos, java.util.List elements)
Method Detail |
---|
public java.util.List elements()
elements
in interface ArrayInit
Expr
.public ArrayInit elements(java.util.List elements)
elements
in interface ArrayInit
elements
- A list of Expr
.protected ArrayInit_c reconstruct(java.util.List elements)
public Node visitChildren(NodeVisitor v)
visitChildren
in interface NodeOps
visitChildren
in class Node_c
v
- The visitor that will traverse/rewrite the AST.
this
.public Node typeCheck(TypeChecker tc) throws SemanticException
typeCheck
in interface NodeOps
typeCheck
in class Node_c
tc
- The type checking visitor.
SemanticException
public Type childExpectedType(Expr child, AscriptionVisitor av)
Node
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.
childExpectedType
in interface Node
childExpectedType
in class Node_c
child
- A child expression of this node.av
- An ascription visitor.
child
.public void typeCheckElements(Type lhsType) throws SemanticException
ArrayInit
typeCheckElements
in interface ArrayInit
lhsType
- Type to compare against.
SemanticException
- if there is a type error.public java.lang.String toString()
toString
in class Node_c
public void prettyPrint(CodeWriter w, PrettyPrinter tr)
prettyPrint
in interface NodeOps
prettyPrint
in class Node_c
w
- The code writer to which to write.tr
- The pretty printer. This is not a visitor.public Term firstChild()
Term
firstChild
in interface Term
public java.util.List acceptCFG(CFGBuilder v, java.util.List succs)
Term_c
acceptCFG
in interface Term
acceptCFG
in class Term_c
public Node copy(NodeFactory nf)
NodeOps
copy
in interface NodeOps
copy
in class Node_c
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |