Module: AST

Defined in:
lib/ast.rb,
lib/ast/node.rb,
lib/ast/sexp.rb,
lib/ast/processor.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 and Sexp for additional recommendations and design patterns.

Defined Under Namespace

Modules: Sexp Classes: Node, Processor