|
|||||||||
| 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.Field_c
public class 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 Id |
name
|
protected Receiver |
target
|
protected boolean |
targetImplicit
|
| 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 | |
|---|---|
Field_c(Position pos,
Receiver target,
Id name)
|
|
| Method Summary | |
|---|---|
java.util.List |
acceptCFG(CFGBuilder v,
java.util.List succs)
Visit this term in evaluation order. |
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)
Check the consistency of the implicit target inserted by the compiler by asserting that the FieldInstance in the Context for this field's name is the same as the FieldInstance we assigned to this field. |
Node |
checkConstants(ConstantChecker cc)
Check if the node is a compile-time constant. |
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. |
boolean |
constantValueSet()
|
Node |
copy(NodeFactory nf)
Produce a copy of this node using the given NodeFactory. |
void |
dump(CodeWriter w)
Dump the AST node for debugging purposes. |
FieldInstance |
fieldInstance()
Get the field instance of the field. |
Field |
fieldInstance(FieldInstance fi)
Set the field instance of the field. |
Term |
firstChild()
Return the first direct subterm performed when evaluating this term. |
Flags |
flags()
Return the access flags of the variable. |
Id |
id()
Get the name of the field. |
Field |
id(Id name)
Set the name of the field. |
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,
Id name)
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. |
VarInstance |
varInstance()
Get the field instance of the field. |
Node |
visitChildren(NodeVisitor v)
Visit the children of the field. |
| Methods inherited from class polyglot.ast.Expr_c |
|---|
booleanValue, byteValue, charValue, doubleValue, floatValue, intValue, 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, 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, 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, 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, buildTypesEnter, copy, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, prettyPrint, prettyPrint, 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 Receiver target
protected Id name
protected FieldInstance fi
protected boolean targetImplicit
| Constructor Detail |
|---|
public Field_c(Position pos,
Receiver target,
Id 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 Id id()
id in interface Fieldpublic Field id(Id name)
id in interface Fieldpublic java.lang.String name()
name in interface Fieldname in interface NamedVariablepublic Field name(java.lang.String name)
name in interface Fieldpublic Flags flags()
flags in interface NamedVariableflags in interface Variablepublic VarInstance varInstance()
varInstance in interface NamedVariablepublic 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 Field
protected Field_c reconstruct(Receiver target,
Id name)
public Node visitChildren(NodeVisitor v)
visitChildren in interface NodeOpsvisitChildren in class Node_cv - The visitor that will traverse/rewrite the AST.
this.
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_ctb - The visitor which adds new type objects to the
TypeSystem.
SemanticException
public Node typeCheck(TypeChecker tc)
throws SemanticException
typeCheck in interface NodeOpstypeCheck in class Node_ctc - The type checking visitor.
SemanticException
public Node checkConstants(ConstantChecker cc)
throws SemanticException
NodeOpsleave() 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.
checkConstants in interface NodeOpscheckConstants in class Node_ccc - The constant checking visitor.
SemanticException
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_cchild - A child expression of this node.av - An ascription visitor.
child.
public void prettyPrint(CodeWriter w,
PrettyPrinter tr)
prettyPrint in interface NodeOpsprettyPrint in class Node_cw - The code writer to which to write.tr - The pretty printer. This is not a visitor.public void dump(CodeWriter w)
Node
dump in interface Nodedump in class Expr_cpublic Term firstChild()
Term
firstChild in interface Term
public java.util.List acceptCFG(CFGBuilder v,
java.util.List succs)
Term_c
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 constantValueSet()
constantValueSet in interface ExprconstantValueSet in class Expr_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)
public Node copy(NodeFactory nf)
NodeOps
copy in interface NodeOpscopy in class Node_c
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||