jif.ast
Class JifMethodDecl_c

java.lang.Object
  |
  +--polyglot.ext.jl.ast.Node_c
        |
        +--polyglot.ext.jl.ast.Term_c
              |
              +--polyglot.ext.jl.ast.MethodDecl_c
                    |
                    +--jif.ast.JifMethodDecl_c
All Implemented Interfaces:
polyglot.ast.ClassMember, java.lang.Cloneable, polyglot.ast.CodeDecl, polyglot.util.Copy, JifMethodDecl, JifProcedureDecl, polyglot.ast.JL, polyglot.ast.MethodDecl, polyglot.ast.Node, polyglot.ast.NodeOps, polyglot.ast.ProcedureDecl, polyglot.ast.Term

public class JifMethodDecl_c
extends polyglot.ext.jl.ast.MethodDecl_c
implements JifMethodDecl

An implementation of the JifMethod interface.


Field Summary
protected  java.util.List constraints
           
protected  LabelNode returnLabel
           
protected  LabelNode startLabel
           
 
Fields inherited from class polyglot.ext.jl.ast.MethodDecl_c
body, flags, formals, mi, name, returnType, throwTypes
 
Fields inherited from class polyglot.ext.jl.ast.Node_c
del, 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)
           
 
Method Summary
 java.util.List constraints()
           
 JifMethodDecl constraints(java.util.List constraints)
           
 polyglot.ast.Node disambiguate(polyglot.visit.AmbiguityRemover ar)
           
protected  polyglot.types.MethodInstance makeMethodInstance(polyglot.types.ClassType ct, polyglot.types.TypeSystem ts)
           
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)
           
 LabelNode returnLabel()
           
 JifMethodDecl returnLabel(LabelNode returnLabel)
           
 LabelNode startLabel()
           
 JifMethodDecl startLabel(LabelNode startLabel)
           
 polyglot.ast.Node visitChildren(polyglot.visit.NodeVisitor v)
           
 
Methods inherited from class polyglot.ext.jl.ast.MethodDecl_c
acceptCFG, addMembersEnter, body, body, buildTypes, buildTypesEnter, codeInstance, disambiguateEnter, dump, enterScope, entry, exceptionCheck, flags, flags, formals, formals, methodInstance, methodInstance, name, name, overrideMethodCheck, prettyPrint, prettyPrintHeader, procedureInstance, reconstruct, returnType, returnType, throwTypes, throwTypes, toString, translate, typeCheck
 
Methods inherited from class polyglot.ext.jl.ast.Term_c
listEntry
 
Methods inherited from class polyglot.ext.jl.ast.Node_c
addDecls, addMembers, addMembersOverride, buildTypesOverride, childExpectedType, copy, del, del, disambiguateOverride, exceptionCheckEnter, exceptionCheckOverride, ext, ext, ext, ext, foldConstants, foldConstantsEnter, foldConstantsOverride, init, node, position, position, 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
flags, formals, name, procedureInstance, throwTypes
 
Methods inherited from interface polyglot.ast.CodeDecl
body, body, codeInstance
 
Methods inherited from interface polyglot.ast.Node
childExpectedType, del, del, dump, 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, buildTypes, buildTypesEnter, disambiguateEnter, enterScope, exceptionCheck, exceptionCheckEnter, foldConstants, foldConstantsEnter, prettyPrint, throwTypes, translate, typeCheck, typeCheckEnter
 
Methods inherited from interface polyglot.util.Copy
copy
 
Methods inherited from interface polyglot.ast.Term
acceptCFG, entry
 
Methods inherited from interface polyglot.ast.MethodDecl
flags, flags, formals, formals, methodInstance, methodInstance, name, name, returnType, returnType, throwTypes, throwTypes
 

Field Detail

startLabel

protected LabelNode startLabel

returnLabel

protected LabelNode returnLabel

constraints

protected java.util.List constraints
Constructor Detail

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)
Method Detail

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.ext.jl.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)

makeMethodInstance

protected polyglot.types.MethodInstance makeMethodInstance(polyglot.types.ClassType ct,
                                                           polyglot.types.TypeSystem ts)
                                                    throws polyglot.types.SemanticException
Overrides:
makeMethodInstance in class polyglot.ext.jl.ast.MethodDecl_c
polyglot.types.SemanticException

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.ext.jl.ast.MethodDecl_c
polyglot.types.SemanticException