Module: Cyrel::AST::OptimizedNodes

Defined in:
lib/cyrel/ast/optimized_nodes.rb

Overview

For simple value nodes, Data is perfect

Constant Summary collapse

LiteralData =

Literal values - these are created frequently and benefit from Data

Data.define(:value) do
  def accept(visitor)
    visitor.visit_literal_data(self)
  end
end
PropertyAccessData =

Simple expression nodes that benefit from fast equality

Data.define(:variable, :property_name) do
  def accept(visitor)
    visitor.visit_property_access_data(self)
  end
end
SkipData =

Skip and Limit are perfect for Data - simple, immutable

Data.define(:expression) do
  def accept(visitor)
    visitor.visit_skip_data(self)
  end
end
LimitData =
Data.define(:expression) do
  def accept(visitor)
    visitor.visit_limit_data(self)
  end
end