Module: Furnace::AST
- Defined in:
- lib/furnace/ast.rb,
lib/furnace/ast/node.rb,
lib/furnace/ast/sexp.rb,
lib/furnace/ast/processor.rb
Overview
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.