Module: Cyrel::AST
- Defined in:
- lib/cyrel/ast/node.rb,
lib/cyrel/ast/compiler.rb,
lib/cyrel/ast/set_node.rb,
lib/cyrel/ast/call_node.rb,
lib/cyrel/ast/skip_node.rb,
lib/cyrel/ast/with_node.rb,
lib/cyrel/ast/limit_node.rb,
lib/cyrel/ast/match_node.rb,
lib/cyrel/ast/merge_node.rb,
lib/cyrel/ast/union_node.rb,
lib/cyrel/ast/where_node.rb,
lib/cyrel/ast/clause_node.rb,
lib/cyrel/ast/create_node.rb,
lib/cyrel/ast/delete_node.rb,
lib/cyrel/ast/remove_node.rb,
lib/cyrel/ast/return_node.rb,
lib/cyrel/ast/unwind_node.rb,
lib/cyrel/ast/foreach_node.rb,
lib/cyrel/ast/literal_node.rb,
lib/cyrel/ast/pattern_node.rb,
lib/cyrel/ast/load_csv_node.rb,
lib/cyrel/ast/order_by_node.rb,
lib/cyrel/ast/clause_adapter.rb,
lib/cyrel/ast/expression_node.rb,
lib/cyrel/ast/optimized_nodes.rb,
lib/cyrel/ast/query_integrated_compiler.rb
Defined Under Namespace
Modules: OptimizedNodes Classes: CallNode, CallSubqueryNode, ClauseAdapter, ClauseNode, Compiler, CreateNode, DeleteNode, ExpressionNode, ForeachNode, HybridApproach, LimitNode, LoadCsvNode, MatchNode, MergeNode, Node, OptimizedCache, OrderByNode, PatternNode, QueryIntegratedCompiler, RemoveNode, ReturnNode, SetNode, SkipNode, UnionNode, UnwindNode, WhereNode, WithNode
Constant Summary collapse
- LiteralNode =
Immutable AST node for literal values using Ruby’s Data class Because sometimes you just want to say what you mean, immutably
Data.define(:value) do def accept(visitor) visitor.visit_literal_node(self) end def to_ast self end # Pattern matching support def deconstruct [value] end def deconstruct_keys(_keys) { value: value } end # Type inference def inferred_type case value when String then :string when Symbol then :parameter when Integer then :integer when Float then :float when TrueClass, FalseClass then :boolean when NilClass then :null else :unknown end end end