|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectpolyglot.ext.jl.ast.Node_c
polyglot.ext.jl.ast.Term_c
polyglot.ext.jl.ast.Expr_c
polyglot.ext.jl.ast.Field_c
A Field is an immutable representation of a Java field
access. It consists of field name and may also have either a
Type or an Expr containing the field being
accessed.
| Field Summary | |
protected FieldInstance |
fi
|
protected java.lang.String |
name
|
protected Receiver |
target
|
protected boolean |
targetImplicit
|
| Fields inherited from class polyglot.ext.jl.ast.Expr_c |
type |
| Fields inherited from class polyglot.ext.jl.ast.Term_c |
reachable |
| Fields inherited from class polyglot.ext.jl.ast.Node_c |
del, ext, position |
| Constructor Summary | |
Field_c(Position pos,
Receiver target,
java.lang.String name)
|
|
| Method Summary | |
java.util.List |
acceptCFG(CFGBuilder v,
java.util.List succs)
Visit this node, calling calling v.edge() for each successor in succs, if data flows on that edge. |
Node |
buildTypes(TypeBuilder tb)
Collects classes, methods, and fields from the AST rooted at this node and constructs type objects for these. |
protected void |
checkConsistency(Context c)
|
Type |
childExpectedType(Expr child,
AscriptionVisitor av)
Get the expected type of a child expression of this. |
java.lang.Object |
constantValue()
Returns the constant value of the expression, if any. |
void |
dump(CodeWriter w)
Dump the AST node for debugging purposes. |
Term |
entry()
Return the first (sub)term performed when evaluating this term. |
FieldInstance |
fieldInstance()
Get the field instance of the field. |
Field |
fieldInstance(FieldInstance fi)
Set the field instance of the field. |
Flags |
flags()
Return the access flags of the variable. |
boolean |
isConstant()
Return whether the expression evaluates to a constant. |
boolean |
isTargetImplicit()
Returns whether the target of this field is implicit, that is if the target is either "this" or a classname, and the source code did not explicitly provide a target. |
java.lang.String |
name()
Get the name of the field. |
Field |
name(java.lang.String name)
Set the name of the field. |
Precedence |
precedence()
Get the precedence of the field. |
void |
prettyPrint(CodeWriter w,
PrettyPrinter tr)
Write the field to an output file. |
protected Field_c |
reconstruct(Receiver target)
Reconstruct the field. |
Receiver |
target()
Get the target of the field. |
Field |
target(Receiver target)
Set the target of the field. |
Field |
targetImplicit(boolean implicit)
Set whether the target of the field is implicit. |
java.util.List |
throwTypes(TypeSystem ts)
List of Types of exceptions that might get thrown. |
java.lang.String |
toString()
|
Node |
typeCheck(TypeChecker tc)
Type check the field. |
Node |
visitChildren(NodeVisitor v)
Visit the children of the field. |
| Methods inherited from class polyglot.ext.jl.ast.Expr_c |
booleanValue, byteValue, charValue, doubleValue, floatValue, intValue, longValue, printSubExpr, printSubExpr, shortValue, stringValue, type, type |
| Methods inherited from class polyglot.ext.jl.ast.Term_c |
listEntry, reachable, reachable |
| Methods inherited from class polyglot.ext.jl.ast.Node_c |
addDecls, addMembers, addMembersEnter, addMembersOverride, buildTypesEnter, buildTypesOverride, copy, del, del, disambiguate, disambiguateEnter, disambiguateOverride, enterScope, enterScope, exceptionCheck, exceptionCheckEnter, exceptionCheckOverride, ext, ext, ext, ext, init, node, position, position, 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.Expr |
printSubExpr, printSubExpr, type |
| Methods inherited from interface polyglot.ast.Node |
del, del, ext, ext, ext, ext, position, position, visit, visitChild, visitEdge |
| Methods inherited from interface polyglot.ast.JL |
init, node |
| Methods inherited from interface polyglot.ast.NodeOps |
addDecls, addMembers, addMembersEnter, buildTypesEnter, disambiguate, disambiguateEnter, enterScope, enterScope, exceptionCheck, exceptionCheckEnter, translate, typeCheckEnter |
| Methods inherited from interface polyglot.util.Copy |
copy |
| Methods inherited from interface polyglot.ast.Typed |
type |
| Methods inherited from interface polyglot.ast.Term |
reachable, reachable |
| Field Detail |
protected Receiver target
protected java.lang.String name
protected FieldInstance fi
protected boolean targetImplicit
| Constructor Detail |
public Field_c(Position pos,
Receiver target,
java.lang.String name)
| Method Detail |
public Precedence precedence()
precedence in interface Exprprecedence in class Expr_cpublic Receiver target()
target in interface Fieldpublic Field target(Receiver target)
target in interface Fieldpublic java.lang.String name()
name in interface Fieldpublic Field name(java.lang.String name)
name in interface Fieldpublic Flags flags()
flags in interface Variablepublic FieldInstance fieldInstance()
fieldInstance in interface Fieldpublic Field fieldInstance(FieldInstance fi)
fieldInstance in interface Fieldpublic boolean isTargetImplicit()
Field
isTargetImplicit in interface Fieldpublic Field targetImplicit(boolean implicit)
Field
targetImplicit in interface Fieldprotected Field_c reconstruct(Receiver target)
public Node visitChildren(NodeVisitor v)
visitChildren in interface NodeOpsvisitChildren in class Node_c
public Node buildTypes(TypeBuilder tb)
throws SemanticException
NodeOpsTypeSystem.
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.
buildTypes in interface NodeOpsbuildTypes in class Expr_cSemanticException
public Node typeCheck(TypeChecker tc)
throws SemanticException
typeCheck in interface NodeOpstypeCheck in class Node_cSemanticException
public Type childExpectedType(Expr child,
AscriptionVisitor av)
Nodethis.
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 NodechildExpectedType in class Node_c
public void prettyPrint(CodeWriter w,
PrettyPrinter tr)
prettyPrint in interface NodeOpsprettyPrint in class Node_cpublic void dump(CodeWriter w)
Node
dump in interface Nodedump in class Expr_cpublic Term entry()
Term
entry in interface Termentry in class Term_c
public java.util.List acceptCFG(CFGBuilder v,
java.util.List succs)
Term
acceptCFG in interface TermacceptCFG in class Term_cpublic java.lang.String toString()
toString in class Node_cpublic java.util.List throwTypes(TypeSystem ts)
NodeOps
throwTypes in interface NodeOpsthrowTypes in class Node_cpublic boolean isConstant()
Expr
isConstant in interface ExprisConstant in class Expr_cpublic java.lang.Object constantValue()
Expr
constantValue in interface ExprconstantValue in class Expr_cprotected void checkConsistency(Context c)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||