Uses of Class
net.hydromatic.morel.ast.AstNode
Packages that use AstNode
Package
Description
Standard ML interpreter, implemented in Java.
Abstract syntax tree.
Validates programs (represented as
AstNode),
deduces their type, and compiles them into code that can be evaluated.-
Uses of AstNode in net.hydromatic.morel
Methods in net.hydromatic.morel with parameters of type AstNode -
Uses of AstNode in net.hydromatic.morel.ast
Subclasses of AstNode in net.hydromatic.morel.astModifier and TypeClassDescriptionstatic classCall to an aggregate function in acomputeclause.static classParse tree node of an expression annotated with a type.static classPattern that is a pattern annotated with a type.static classApplication of a function to its argument.static classLayered pattern.static classCase expression.static classNot really a type, just a way for the parser to represent the type arguments to a type constructor.static classAcomputestep in afromexpression.static classType constructor pattern with no argument.static classType constructor pattern with an argument.static classParse tree node of the "current" reference.static classParse tree node of a datatype binding.static classParse tree node of a datatype declaration.static classBase class for declarations.static classAdistinctstep in afromexpression.static classAnexceptstep in afromexpression.static classExists expression.static classBase class of expression ASTs.static classLambda expression.static classForall expression.static classFrom expression.static classA step in afromexpression -where,groupororder.static classOne of the branches (separated by 'and') in a 'fun' function declaration.static classFunction type.static classParse tree node of a function declaration.static classOne of the branches (separated by '|') in a 'fun' function declaration.static classAgroupstep in afromexpression.static classParse tree node of an identifier.static classNamed pattern, the pattern analog of theAst.Idexpression.static class"If ... else" expression.static classCall to an infix operator.static classPattern build from an infix operator applied to two patterns.static classAnintersectstep in afromexpression.static classAnintostep in afromexpression.static class"Let" expression.static classList expression.static classList pattern, the pattern analog of theAst.ListExpexpression.static classParse tree node of a literal (constant).static classLiteral pattern, the pattern analog of theAst.Literalexpression.static classMatch.static classParse tree for a named type (e.g.static classAnorderstep in afromexpression.static classParse tree node of the "ordinal" reference.static classParse tree node of an overload declaration.static classBase class for a pattern.static classCall to a prefix operator.static classBase class for "from", "exists" or "forall" expression.static classRecord.static classRecord pattern.static classParse tree node of a record selector.static classParse tree node of a record type.static classArequirestep in aforallexpression.static classA scan (e.g.static classBase class for a step that is a set operation (union,intersect,except).static classAskipstep in afromexpression.static classAtakestep in afromexpression.static classAnthroughstep in afromexpression.static classTuple.static classTuple pattern, the pattern analog of theAst.Tupleexpression.static classTuple type.static classType constructor.static classBase class for parse tree nodes that represent types.static classParse tree node of a type variable.static classAunionstep in afromexpression.static classAnunorderstep in afromexpression.static classValue bind.static classParse tree node of a value declaration.static classAwherestep in afromexpression.static classWildcard pattern.static classAyieldstep in afromexpression.static classCall to an aggregate function in acomputeclause.static classApplication of a function to its argument.static classLayered pattern.(package private) static classAbstract base class of Core nodes.static classCase expression.static classType constructor pattern with no argument.static classType constructor pattern with an argument.static classDatatype declaration.static classBase class for declarations.static classAnexceptclause in afromexpression.static classBase class of core expressions.static classLambda expression.static classFrom expression.static classA step in afromexpression -where,groupororder.static classAgroupclause in afromexpression.static classReference to a variable.static classNamed pattern.static classAnintersectclause in afromexpression.static class"Let" expression.static classList pattern.static classCode of a literal (constant).static classLiteral pattern, the pattern analog of theCore.Literalexpression.static class"Local" expression.static classMatch.static classBase class for named patterns (Core.IdPatandCore.AsPat).static classNon-recursive value declaration.static classAnorderclause in afromexpression.static classOverloaded operator declaration.static classBase class for a pattern.static classRecord pattern.static classRecord selector function.static classRecursive value declaration.static classAjoinorv in listExprorv = exprclause in afromexpression.static classstatic classAskipclause in afromexpression.static classAtakeclause in afromexpression.static classTuple expression.static classTuple pattern, the pattern analog of theCore.Tupleexpression.static classAunionclause in afromexpression.static classStep that converts the stream to an unordered collection.static classAbstract (recursive or non-recursive) value declaration.static classAwhereclause in afromexpression.static classWildcard pattern.static classStep that computes an expression.Methods in net.hydromatic.morel.ast with type parameters of type AstNodeModifier and TypeMethodDescriptionprotected <E extends AstNode>
voidVisitor.accept(E e) For use as a method reference.Shuttle.visitSortedMap(SortedMap<K, E> nodes) Methods in net.hydromatic.morel.ast that return AstNodeModifier and TypeMethodDescriptionabstract AstNodeAccepts a shuttle, calling theShuttle.visit(net.hydromatic.morel.ast.Ast.Literal)method appropriate to the type of this node, and returning the result.protected AstNodeShuttle.visit(Ast.Aggregate aggregate) protected AstNodeShuttle.visit(Ast.Compute compute) protected AstNodeShuttle.visit(Ast.Distinct distinct) protected AstNodeShuttle.visit(Ast.Except except) protected AstNodeprotected AstNodeShuttle.visit(Ast.Intersect intersect) protected AstNodeprotected AstNodeprotected AstNodeShuttle.visit(Ast.Require require) protected AstNodeprotected AstNodeprotected AstNodeShuttle.visit(Ast.Through through) protected AstNodeprotected AstNodeprotected AstNodeShuttle.visit(Ast.Unorder unorder) protected AstNodeprotected AstNodeMethods in net.hydromatic.morel.ast with parameters of type AstNodeModifier and TypeMethodDescriptionAppends a parse tree node.Appends a call to a binary operator (e.g.Appends a call to a binary operator (e.g.Appends a call to an infix operator.Appends a call to an prefix operator.Method parameters in net.hydromatic.morel.ast with type arguments of type AstNodeModifier and TypeMethodDescriptionAppends a list of parse tree nodes.Appends a list of parse tree nodes separated bysep.Appends a list of parse tree nodes separated bysep, and also with prefix and suffix:start node0 sep node1 ... sep nodeN end.AstWriter.appendAll(Iterable<? extends AstNode> list, String start, String sep, String end, String empty) Appends a list of parse tree nodes separated bysep, and also with prefix and suffix:start node0 sep node1 ... sep nodeN end.static Pos -
Uses of AstNode in net.hydromatic.morel.compile
Fields in net.hydromatic.morel.compile with type parameters of type AstNodeModifier and TypeFieldDescriptionprivate final Map<AstNode, Unifier.Term> TypeResolver.mapprivate final Map<AstNode, Unifier.Term> TypeMap.nodeTypeTermsMethods in net.hydromatic.morel.compile with type parameters of type AstNodeModifier and TypeMethodDescriptionprivate <E extends AstNode>
ETypeResolver.reg(E node, Unifier.Term term) Registers that an AST node maps to a type term.private <E extends AstNode>
ETypeResolver.reg(E node, Unifier.Variable variable, Unifier.Term term) Registers that an AST node maps to a type term and is equivalent to a variable.Methods in net.hydromatic.morel.compile that return AstNodeModifier and TypeMethodDescriptionprivate AstNodeTypeResolver.deduceValBindType(TypeResolver.TypeEnv env, Ast.ValBind valBind, PairList<Ast.IdPat, Unifier.Term> termMap, Unifier.Variable vPat) Methods in net.hydromatic.morel.compile with parameters of type AstNodeModifier and TypeMethodDescriptionstatic Analyzer.AnalysisAnalyzer.analyze(TypeSystem typeSystem, Environment env, AstNode node) Analyzes an expression.CalciteCompiler.getRelationalVariables(Environment env, Set<String> nameSet, AstNode node) Returns an AST node's data type.@Nullable TypeTypeMap.getTypeOpt(AstNode node) Returns an AST node's data type, or null if no type is known.booleanReturns whether an AST node has a type.static Function<String, RuntimeException> TypeResolver.TypeEnv.onlyValidInQuery(AstNode node) Exception factory where a missing symbol is because we are not in a query.static Function<String, RuntimeException> Exception factory where a missing symbol is an internal error.static CompiledStatementCompiles.prepareStatement(TypeSystem typeSystem, Session session, Environment env, AstNode statement, @Nullable Calcite calcite, Consumer<CompileException> warningConsumer, Tracer tracer) Validates and compiles a statement (expression or declaration), and compiles it to code that can be evaluated by the interpreter.static Ast.DeclConverts an expression or declaration to a declaration.static Ast.ValDeclConverts an expression or value declaration to a value declaration.TypeMap.typeFieldNames(AstNode node) Returns the field names if an AST node has a type that is a record or a tuple, otherwise null.booleanTypeMap.typeIsVariable(AstNode node) Returns whether an AST node's type will be a type variable.static TypeResolver.ResolvedCompiles.validateExpression(AstNode statement, Map<Prop, Object> propMap, Map<String, ForeignValue> valueMap, Consumer<CompileException> warningConsumer) Validates an expression or declaration, deducing its type and perhaps rewriting the expression to a form that can more easily be compiled.Constructor parameters in net.hydromatic.morel.compile with type arguments of type AstNodeModifierConstructorDescription(package private)TypeMap(TypeSystem typeSystem, Map<AstNode, Unifier.Term> nodeTypeTerms, Unifier.Substitution substitution)