Sha256: b29a02dbc30df87bedc4ffd8a2648561b23937f98ce0864a63f17a07298da39b

Contents?: true

Size: 648 Bytes

Versions: 5

Compression:

Stored size: 648 Bytes

Contents

module Furnace
  # Furnace::AST is a library for manipulating abstract syntax trees.
  #
  # It embraces immutability; each AST node is inherently frozen at
  # creation, and updating a child node requires recreating that node
  # and its every parent, recursively.
  # This is a design choice. It does create significant pressure on
  # garbage collector, but completely eliminates all concurrency
  # and aliasing problems.
  #
  # See also {Node}, {Processor} and {Sexp} for additional
  # recommendations and design patterns.
  module AST
  end

  require_relative "ast/node"
  require_relative "ast/processor"
  require_relative "ast/sexp"
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
furnace-0.4.0.beta.2 lib/furnace/ast.rb
furnace-0.4.0.beta.1 lib/furnace/ast.rb
furnace-0.3.1 lib/furnace/ast.rb
furnace-0.3.0 lib/furnace/ast.rb
furnace-0.3.0.beta3 lib/furnace/ast.rb