Module: AST

Defined in:
lib/ast.rb,
lib/ast/node.rb,
lib/ast/sexp.rb,
lib/ast/processor.rb,
lib/ast/processor/mixin.rb

Overview

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 some pressure on garbage collector, but completely eliminates all concurrency and aliasing problems.

See also Node, Processor::Mixin and Sexp for additional recommendations and design patterns.

Defined Under Namespace

Modules: Sexp Classes: Node, Processor