jif.visit
Class JifLabelSubst

java.lang.Object
  extended by polyglot.visit.NodeVisitor
      extended by polyglot.visit.HaltingVisitor
          extended by polyglot.visit.ErrorHandlingVisitor
              extended by polyglot.visit.ContextVisitor
                  extended by 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.


Field Summary
protected  VarMap bounds
           
protected  polyglot.util.ErrorQueue eq
           
protected  Solver solver
           
protected  JifTypeSystem ts
           
 
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
 
Constructor Summary
JifLabelSubst(polyglot.frontend.Job job, JifTypeSystem ts, polyglot.ast.NodeFactory nf, Solver solver)
           
 
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
 

Field Detail

ts

protected JifTypeSystem ts

solver

protected final Solver solver

eq

protected polyglot.util.ErrorQueue eq

bounds

protected VarMap bounds
Constructor Detail

JifLabelSubst

public JifLabelSubst(polyglot.frontend.Job job,
                     JifTypeSystem ts,
                     polyglot.ast.NodeFactory nf,
                     Solver solver)
Method Detail

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