jif
Class JifScheduler

java.lang.Object
  extended by polyglot.frontend.Scheduler
      extended by polyglot.frontend.JLScheduler
          extended by jif.JifScheduler

public class JifScheduler
extends polyglot.frontend.JLScheduler


Nested Class Summary
 
Nested classes/interfaces inherited from class polyglot.frontend.Scheduler
polyglot.frontend.Scheduler.TheEndGoal
 
Field Summary
protected  OutputExtensionInfo jlext
           
protected  polyglot.frontend.Job objectJob
          Hack to ensure that we track the job for java.lang.Object specially.
 
Fields inherited from class polyglot.frontend.Scheduler
commandLineJobs, COMPLETED_JOB, currentPass, dumpCounter, extInfo, goals, infiniteLoopGoal, inWorklist, jobs, MAX_RUN_COUNT, runCount, worklist
 
Constructor Summary
JifScheduler(ExtensionInfo extInfo, OutputExtensionInfo jlext)
           
 
Method Summary
 polyglot.frontend.Job addJob(polyglot.frontend.Source source)
           
 polyglot.frontend.Job addJob(polyglot.frontend.Source source, polyglot.ast.Node ast)
           
 polyglot.frontend.goals.Goal FieldConstantsChecked(polyglot.types.FieldInstance fi)
           
 FieldLabelInferenceGoal FieldLabelInference(polyglot.frontend.Job job)
           
 polyglot.frontend.goals.Goal InitializationsChecked(polyglot.frontend.Job job)
           
 polyglot.frontend.goals.Goal JifToJavaRewritten(polyglot.frontend.Job job)
           
 LabelCheckGoal LabelsChecked(polyglot.frontend.Job job)
           
 boolean runToCompletion()
           
 
Methods inherited from class polyglot.frontend.JLScheduler
CodeGenerated, ConstantsChecked, ConstructorCallsChecked, Disambiguated, ExceptionsChecked, ExitPathsChecked, ForwardReferencesChecked, ImportTableInitialized, MembersAdded, Parsed, ReachabilityChecked, Serialized, SignaturesDisambiguated, SignaturesResolved, SupertypesDisambiguated, SupertypesResolved, TypeChecked, TypeExists, TypesInitialized, TypesInitializedForCommandLine
 
Methods inherited from class polyglot.frontend.Scheduler
addCorequisiteDependency, addCorequisiteDependencyAndEnqueue, addDependencyAndEnqueue, addGoal, addPrerequisiteDependency, addPrerequisiteDependencyChain, attemptGoal, attemptGoal, commandLineJobs, completeJob, createSourceJob, currentGoal, currentJob, currentPass, dumpDependenceGraph, dumpDependenceGraph, dumpInFlightDependenceGraph, inInfiniteLoop, internGoal, jobs, loadSource, prerequisiteDependsOn, reached, runGoal, runPass, setCommandLineJobs, sourceHasJob, statusString, toString, worklist
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

jlext

protected OutputExtensionInfo jlext

objectJob

protected polyglot.frontend.Job objectJob
Hack to ensure that we track the job for java.lang.Object specially. In particular, ensure that it is submitted for re-writing before any other job.

Constructor Detail

JifScheduler

public JifScheduler(ExtensionInfo extInfo,
                    OutputExtensionInfo jlext)
Method Detail

LabelsChecked

public LabelCheckGoal LabelsChecked(polyglot.frontend.Job job)

FieldLabelInference

public FieldLabelInferenceGoal FieldLabelInference(polyglot.frontend.Job job)

JifToJavaRewritten

public polyglot.frontend.goals.Goal JifToJavaRewritten(polyglot.frontend.Job job)

FieldConstantsChecked

public polyglot.frontend.goals.Goal FieldConstantsChecked(polyglot.types.FieldInstance fi)
Overrides:
FieldConstantsChecked in class polyglot.frontend.JLScheduler

InitializationsChecked

public polyglot.frontend.goals.Goal InitializationsChecked(polyglot.frontend.Job job)
Overrides:
InitializationsChecked in class polyglot.frontend.JLScheduler

runToCompletion

public boolean runToCompletion()
Overrides:
runToCompletion in class polyglot.frontend.Scheduler

addJob

public polyglot.frontend.Job addJob(polyglot.frontend.Source source,
                                    polyglot.ast.Node ast)
Overrides:
addJob in class polyglot.frontend.Scheduler

addJob

public polyglot.frontend.Job addJob(polyglot.frontend.Source source)
Overrides:
addJob in class polyglot.frontend.Scheduler