Package org.ek9lang.compiler.phase9
Class IRAnalysis
java.lang.Object
org.ek9lang.compiler.CompilerPhase
org.ek9lang.compiler.phase9.IRAnalysis
- All Implemented Interfaces:
BiFunction<Workspace,
CompilerFlags, CompilationPhaseResult>
SINGLE THREADED.
At this point all sources have parsed, all symbols resolved and IR is built.
During the creation of the IR some analysis will have already taken place;
this is aimed at 'failing early'. This enables the developer to address issues in
large code bases much earlier.
However, there is some analysis that can only take place once we have the whole IR in place.
That's what this phase is for, analysing the whole IR and doing any and all final checks before
optimisation takes place.
-
Field Summary
Fields inherited from class org.ek9lang.compiler.CompilerPhase
compilableProgramAccess, listener, reporter
-
Constructor Summary
ConstructorDescriptionIRAnalysis
(SharedThreadContext<CompilableProgram> compilableProgramAccess, Consumer<CompilationEvent> listener, CompilerReporter reporter) -
Method Summary
Modifier and TypeMethodDescriptionboolean
doApply
(Workspace workspace, CompilerFlags compilerFlags) Do the compilation phase.Methods inherited from class org.ek9lang.compiler.CompilerPhase
apply
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.util.function.BiFunction
andThen
-
Constructor Details
-
Method Details
-
doApply
Description copied from class:CompilerPhase
Do the compilation phase.- Specified by:
doApply
in classCompilerPhase
-