Class PhaseSupplier
java.lang.Object
org.ek9lang.compiler.config.PhaseSupplier
- All Implemented Interfaces:
Supplier<List<CompilationStep>>
- Direct Known Subclasses:
BackEndSupplier, FrontEndSupplier, FullPhaseSupplier, MiddleEndSupplier
Abstract concept of a supplier of phases for a compilation.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final SharedThreadContext<CompilableProgram> protected final Consumer<CompilationEvent> protected final ConstructOutputSinkWhere generated classes go, and where they are read back from.protected final CompilerReporter -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedPhaseSupplier(SharedThreadContext<CompilableProgram> compilableProgramAccess, CompilationPhaseListener listener, CompilerReporter reporter) Create a new supplier of a full set of compiler phases.protectedPhaseSupplier(SharedThreadContext<CompilableProgram> compilableProgramAccess, CompilationPhaseListener listener, CompilerReporter reporter, DirectiveListenerSupplier directiveListenerSupplier) Create a new supplier of a full set of compiler phases with a custom directive listener supplier.protectedPhaseSupplier(SharedThreadContext<CompilableProgram> compilableProgramAccess, CompilationPhaseListener listener, CompilerReporter reporter, DirectiveListenerSupplier directiveListenerSupplier, ConstructOutputSink outputSink) As above, but with an explicit output sink. -
Method Summary
-
Field Details
-
listener
-
compilableProgramAccess
-
reporter
-
outputSink
Where generated classes go, and where they are read back from. Defaults to files; a caller that knows the jar is the sole consumer of the output can pass a sink that holds them instead. SeeConstructOutputSink.
-
-
Constructor Details
-
Method Details
-
program
The program these phases compile into. The driver (Ek9Compiler) records in it which phase has been entered, before the phase runs - THE one place that is done, for every phase.
-