jif.ast
Class JifMethodDecl_c
java.lang.Object
polyglot.ast.Node_c
polyglot.ast.Term_c
polyglot.ast.MethodDecl_c
jif.ast.JifMethodDecl_c
- All Implemented Interfaces:
- java.lang.Cloneable, JifMethodDecl, JifProcedureDecl, polyglot.ast.ClassMember, polyglot.ast.CodeDecl, polyglot.ast.JL, polyglot.ast.MethodDecl, polyglot.ast.Node, polyglot.ast.NodeOps, polyglot.ast.ProcedureDecl, polyglot.ast.Term, polyglot.util.Copy
public class JifMethodDecl_c
- extends polyglot.ast.MethodDecl_c
- implements JifMethodDecl
An implementation of the JifMethod
interface.
Fields inherited from class polyglot.ast.MethodDecl_c |
body, flags, formals, mi, name, returnType, throwTypes |
Fields inherited from class polyglot.ast.Term_c |
exceptions, reachable |
Fields inherited from class polyglot.ast.Node_c |
del, error, ext, position |
Constructor Summary |
JifMethodDecl_c(polyglot.util.Position pos,
polyglot.types.Flags flags,
polyglot.ast.TypeNode returnType,
java.lang.String name,
LabelNode startLabel,
java.util.List formals,
LabelNode returnLabel,
java.util.List throwTypes,
java.util.List constraints,
polyglot.ast.Block body)
|
Methods inherited from class polyglot.ast.MethodDecl_c |
acceptCFG, body, body, buildTypes, buildTypesEnter, codeInstance, dump, enterScope, entry, exceptionCheckEnter, flags, flags, formals, formals, isDisambiguated, memberInstance, methodInstance, methodInstance, name, name, overrideMethodCheck, prettyPrint, prettyPrintHeader, procedureInstance, reconstruct, returnType, returnType, throwTypes, throwTypes, toString, translate, typeCheck |
Methods inherited from class polyglot.ast.Term_c |
exceptionCheck, exceptions, exceptions, listEntry, reachable, reachable |
Methods inherited from class polyglot.ast.Node_c |
addDecls, checkConstants, childExpectedType, copy, del, del, disambiguateEnter, disambiguateOverride, dump, dump, enterChildScope, error, error, ext, ext, ext, ext, init, isTypeChecked, node, position, position, prettyPrint, prettyPrint, print, printBlock, printSubStmt, throwTypes, 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.ProcedureDecl |
procedureInstance |
Methods inherited from interface polyglot.ast.CodeDecl |
body, body, codeInstance |
Methods inherited from interface polyglot.ast.ClassMember |
memberInstance |
Methods inherited from interface polyglot.ast.Term |
acceptCFG, entry, exceptions, exceptions, reachable, reachable |
Methods inherited from interface polyglot.ast.Node |
childExpectedType, 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, disambiguateEnter, disambiguateOverride, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, prettyPrint, prettyPrint, prettyPrint, throwTypes, translate, typeCheck, typeCheckEnter, typeCheckOverride |
Methods inherited from interface polyglot.ast.MethodDecl |
flags, flags, formals, formals, methodInstance, methodInstance, name, name, returnType, returnType, throwTypes, throwTypes |
Methods inherited from interface polyglot.ast.ProcedureDecl |
procedureInstance |
Methods inherited from interface polyglot.ast.CodeDecl |
body, body, codeInstance |
Methods inherited from interface polyglot.ast.ClassMember |
memberInstance |
Methods inherited from interface polyglot.ast.Term |
acceptCFG, entry, exceptions, exceptions, reachable, reachable |
Methods inherited from interface polyglot.ast.Node |
childExpectedType, 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, disambiguateEnter, disambiguateOverride, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, prettyPrint, prettyPrint, prettyPrint, throwTypes, translate, typeCheck, typeCheckEnter, typeCheckOverride |
startLabel
protected LabelNode startLabel
returnLabel
protected LabelNode returnLabel
constraints
protected java.util.List constraints
JifMethodDecl_c
public JifMethodDecl_c(polyglot.util.Position pos,
polyglot.types.Flags flags,
polyglot.ast.TypeNode returnType,
java.lang.String name,
LabelNode startLabel,
java.util.List formals,
LabelNode returnLabel,
java.util.List throwTypes,
java.util.List constraints,
polyglot.ast.Block body)
startLabel
public LabelNode startLabel()
- Specified by:
startLabel
in interface JifProcedureDecl
startLabel
public JifMethodDecl startLabel(LabelNode startLabel)
- Specified by:
startLabel
in interface JifMethodDecl
returnLabel
public LabelNode returnLabel()
- Specified by:
returnLabel
in interface JifProcedureDecl
returnLabel
public JifMethodDecl returnLabel(LabelNode returnLabel)
- Specified by:
returnLabel
in interface JifMethodDecl
constraints
public java.util.List constraints()
- Specified by:
constraints
in interface JifProcedureDecl
constraints
public JifMethodDecl constraints(java.util.List constraints)
- Specified by:
constraints
in interface JifMethodDecl
visitChildren
public polyglot.ast.Node visitChildren(polyglot.visit.NodeVisitor v)
- Specified by:
visitChildren
in interface polyglot.ast.NodeOps
- Overrides:
visitChildren
in class polyglot.ast.MethodDecl_c
reconstruct
protected JifMethodDecl_c reconstruct(polyglot.ast.TypeNode returnType,
LabelNode startLabel,
java.util.List formals,
LabelNode returnLabel,
java.util.List throwTypes,
java.util.List constraints,
polyglot.ast.Block body)
disambiguate
public polyglot.ast.Node disambiguate(polyglot.visit.AmbiguityRemover ar)
throws polyglot.types.SemanticException
- Specified by:
disambiguate
in interface polyglot.ast.NodeOps
- Overrides:
disambiguate
in class polyglot.ast.MethodDecl_c
- Throws:
polyglot.types.SemanticException
unrenameArgs
public static JifMethodInstance unrenameArgs(JifMethodInstance jmi)
- Rename the arg labels and arg roots. This is needed to make sure
that during substitution of args in a recursive method call,
we don't confuse the