jif.visit
Class JifLabelSubst
java.lang.Object
polyglot.visit.NodeVisitor
polyglot.visit.HaltingVisitor
polyglot.visit.ErrorHandlingVisitor
polyglot.visit.ContextVisitor
jif.visit.JifLabelSubst
- All Implemented Interfaces:
- java.lang.Cloneable, polyglot.util.Copy
public class JifLabelSubst
- extends polyglot.visit.ContextVisitor
This visitor substitutes labels for each variable in the path maps of
each JifExt object.
By subclassing ContextVisitor, type objects are rebuilt automatically.
Fields inherited from class polyglot.visit.ContextVisitor |
context, outer, prune, rethrowMissingDependencies |
Fields inherited from class polyglot.visit.ErrorHandlingVisitor |
error, job, nf |
Fields inherited from class polyglot.visit.HaltingVisitor |
bypass, bypassParent |
Method Summary |
polyglot.ast.Node |
leaveCall(polyglot.ast.Node old,
polyglot.ast.Node n,
polyglot.visit.NodeVisitor v)
|
protected void |
solve()
|
protected polyglot.ast.Node |
updateNode(polyglot.ast.Node n)
|
Methods inherited from class polyglot.visit.ContextVisitor |
addDecls, begin, context, context, enter, enter, enterScope, leave, rethrowMissingDependencies, superEnter |
Methods inherited from class polyglot.visit.ErrorHandlingVisitor |
catchErrors, enterCall, enterCall, enterError, errorQueue, hasErrors, job, leaveCall, leaveCall, nodeFactory, typeSystem |
Methods inherited from class polyglot.visit.HaltingVisitor |
bypass, bypass, bypassChildren, override, visitChildren |
Methods inherited from class polyglot.visit.NodeVisitor |
copy, finish, finish, leave, override, toString, visitEdge, visitEdgeNoOverride |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
ts
protected JifTypeSystem ts
solver
protected final Solver solver
eq
protected polyglot.util.ErrorQueue eq
bounds
protected VarMap bounds
JifLabelSubst
public JifLabelSubst(polyglot.frontend.Job job,
JifTypeSystem ts,
polyglot.ast.NodeFactory nf,
Solver solver)
leaveCall
public polyglot.ast.Node leaveCall(polyglot.ast.Node old,
polyglot.ast.Node n,
polyglot.visit.NodeVisitor v)
throws polyglot.types.SemanticException
- Overrides:
leaveCall
in class polyglot.visit.ErrorHandlingVisitor
- Throws:
polyglot.types.SemanticException
solve
protected void solve()
throws polyglot.types.SemanticException
- Throws:
polyglot.types.SemanticException
updateNode
protected polyglot.ast.Node updateNode(polyglot.ast.Node n)
throws polyglot.types.SemanticException
- Throws:
polyglot.types.SemanticException