Package net.hydromatic.morel.compile
Class Analyzer
java.lang.Object
net.hydromatic.morel.ast.Visitor
net.hydromatic.morel.compile.EnvVisitor
net.hydromatic.morel.compile.Analyzer
Shuttle that counts how many times each expression is used.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classResult of an analysis.private static classWork space where the uses of a binding are counted.static enumHow a binding (assignment of a value to a variable) is used.Nested classes/interfaces inherited from class net.hydromatic.morel.compile.EnvVisitor
EnvVisitor.FromContext -
Field Summary
FieldsFields inherited from class net.hydromatic.morel.compile.EnvVisitor
env, fromStack, typeSystem -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivateAnalyzer(TypeSystem typeSystem, Environment env, Map<Core.NamedPat, Analyzer.MutableUse> map, Deque<EnvVisitor.FromContext> fromStack) Private constructor. -
Method Summary
Modifier and TypeMethodDescriptionstatic Analyzer.Analysisanalyze(TypeSystem typeSystem, Environment env, AstNode node) Analyzes an expression.private static booleanprivate static Analyzerof(TypeSystem typeSystem, Environment env) Creates an Analyzer.protected Analyzerpush(Environment env) Creates a visitor the same as this but with a new environment.private Analyzer.Analysisresult()Returns the result of an analysis.private Analyzer.MutableUseuse(Core.NamedPat name) Gets or creates aAnalyzer.MutableUsefor a given name.protected voidvoidprotected voidvisit(Core.IdPat idPat) protected voidvisit(Core.NonRecValDecl valDecl) Methods inherited from class net.hydromatic.morel.compile.EnvVisitor
bind, bind, visit, visit, visit, visit, visit, visit, visit, visitStepMethods inherited from class net.hydromatic.morel.ast.Visitor
accept, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
-
Field Details
-
map
-
-
Constructor Details
-
Analyzer
private Analyzer(TypeSystem typeSystem, Environment env, Map<Core.NamedPat, Analyzer.MutableUse> map, Deque<EnvVisitor.FromContext> fromStack) Private constructor.
-
-
Method Details
-
of
Creates an Analyzer. -
analyze
Analyzes an expression. -
result
Returns the result of an analysis. -
push
Description copied from class:EnvVisitorCreates a visitor the same as this but with a new environment.- Specified by:
pushin classEnvVisitor
-
visit
-
visit
-
use
Gets or creates aAnalyzer.MutableUsefor a given name. -
visit
-
isAtom
-
visit
-