polyglot.ext.jl.ast
Class ArrayInit_c
java.lang.Object
polyglot.ext.jl.ast.Node_c
polyglot.ext.jl.ast.Term_c
polyglot.ext.jl.ast.Expr_c
polyglot.ext.jl.ast.ArrayInit_c
- All Implemented Interfaces:
- java.lang.Cloneable, ArrayInit, Expr, JL, Node, NodeOps, Prefix, Receiver, Term, Typed, Copy
public class ArrayInit_c
- extends Expr_c
- implements ArrayInit
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.ext.jl.ast.Expr_c |
type |
Methods inherited from class polyglot.ext.jl.ast.Expr_c |
booleanValue, buildTypes, byteValue, charValue, constantValue, doubleValue, dump, floatValue, intValue, isConstant, longValue, precedence, printSubExpr, printSubExpr, shortValue, stringValue, type, type |
Methods inherited from class polyglot.ext.jl.ast.Node_c |
addDecls, addMembers, addMembersEnter, addMembersOverride, buildTypesEnter, buildTypesOverride, copy, del, del, disambiguate, disambiguateEnter, disambiguateOverride, enterScope, enterScope, exceptionCheckEnter, exceptionCheckOverride, ext, ext, ext, ext, init, node, position, position, 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.Node |
del, del, dump, ext, ext, ext, ext, position, position, visit, visitChild, visitEdge, visitList |
Methods inherited from interface polyglot.ast.JL |
init, node |
Methods inherited from interface polyglot.ast.NodeOps |
addDecls, addMembers, addMembersEnter, buildTypes, buildTypesEnter, disambiguate, disambiguateEnter, enterScope, enterScope, exceptionCheck, exceptionCheckEnter, throwTypes, translate, typeCheckEnter |
Methods inherited from interface polyglot.util.Copy |
copy |
Methods inherited from interface polyglot.ast.Typed |
type |
elements
protected java.util.List elements
ArrayInit_c
public ArrayInit_c(Position pos,
java.util.List elements)
elements
public java.util.List elements()
- Get the elements of the initializer.
- Specified by:
elements
in interface ArrayInit
- Returns:
- A list of
Expr
.
elements
public ArrayInit elements(java.util.List elements)
- Set the elements of the initializer.
- Specified by:
elements
in interface ArrayInit
- Parameters:
elements
- A list of Expr
.
reconstruct
protected ArrayInit_c reconstruct(java.util.List elements)
- Reconstruct the initializer.
visitChildren
public Node visitChildren(NodeVisitor v)
- Visit the children of the initializer.
- 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
.
typeCheck
public Node typeCheck(TypeChecker tc)
throws SemanticException
- Type check the initializer.
- Specified by:
typeCheck
in interface NodeOps
- Overrides:
typeCheck
in class Node_c
- Parameters:
tc
- The type checking visitor.
- Throws:
SemanticException
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
.
typeCheckElements
public void typeCheckElements(Type lhsType)
throws SemanticException
- Description copied from interface:
ArrayInit
- Type check the individual elements of the array initializer against the
left-hand-side type. Each element is checked to see if it can be
assigned to a variable of type lhsType.
- Specified by:
typeCheckElements
in interface ArrayInit
- Parameters:
lhsType
- Type to compare against.
- Throws:
SemanticException
- if there is a type error.
toString
public java.lang.String toString()
- Overrides:
toString
in class Node_c
prettyPrint
public void prettyPrint(CodeWriter w,
PrettyPrinter tr)
- Write the initializer 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.
entry
public Term entry()
- Description copied from class:
Term_c
- Return the first (sub)term performed when evaluating this
term.
- Specified by:
entry
in interface Term
- Specified by:
entry
in class Term_c
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