public class JL5ConstructorCallExt extends JL5ProcedureCallExt
Modifier and Type | Field and Description |
---|---|
protected boolean |
isEnumConstructorCall
Is this constructor call a super call to java.lang.Enum?
|
typeArgs
Constructor and Description |
---|
JL5ConstructorCallExt() |
JL5ConstructorCallExt(java.util.List<TypeNode> typeArgs,
boolean isEnumConstructorCall) |
Modifier and Type | Method and Description |
---|---|
Node |
disambiguate(AmbiguityRemover ar)
Remove any remaining ambiguities from the AST.
|
Context |
enterScope(Context c)
Push a new scope upon entering this node, and add any declarations to the
context that should be in scope when visiting children of this node.
|
boolean |
isEnumConstructorCall() |
ConstructorCall |
node()
The node we ultimately extend.
|
void |
prettyPrint(CodeWriter w,
PrettyPrinter tr)
Pretty-print the AST using the given
CodeWriter . |
Node |
typeCheck(TypeChecker tc)
Type check the AST.
|
actualTypeArgs, printArgs, typeArgs, typeArgs, typeArgs, visitChildren
acceptCFG, firstChild
addDecls, buildTypes, buildTypesEnter, checkConstants, childExpectedType, copy, copy, copy, disambiguateEnter, disambiguateOverride, dump, dump, dump, dump, dump, enterChildScope, exceptionCheck, exceptionCheckEnter, ext, ext, extRewrite, extRewriteEnter, init, initPred, pred, prettyPrint, prettyPrint, prettyPrint, prettyPrint, print, printBlock, printSubStmt, superLang, throwTypes, toString, typeCheckEnter, typeCheckOverride, visitChild, visitList
protected boolean isEnumConstructorCall
public JL5ConstructorCallExt()
public JL5ConstructorCallExt(java.util.List<TypeNode> typeArgs, boolean isEnumConstructorCall)
public ConstructorCall node()
Ext
node
in interface Ext
node
in class JL5ProcedureCallExt
public boolean isEnumConstructorCall()
public Context enterScope(Context c)
NodeOps
addDecls
when leaving the node
for that.enterScope
in interface NodeOps
enterScope
in class Ext_c
c
- the current Context
Context
to be used for visiting this node.public Node disambiguate(AmbiguityRemover ar) throws SemanticException
NodeOps
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.disambiguate
in interface NodeOps
disambiguate
in class Ext_c
ar
- The visitor which disambiguates.SemanticException
public Node typeCheck(TypeChecker tc) throws SemanticException
NodeOps
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.typeCheck
in interface NodeOps
typeCheck
in class Ext_c
tc
- The type checking visitor.SemanticException
public void prettyPrint(CodeWriter w, PrettyPrinter tr)
NodeOps
CodeWriter
.prettyPrint
in interface NodeOps
prettyPrint
in class JL5ProcedureCallExt
w
- The code writer to which to write.tr
- The pretty printer. This is not a visitor.