[ 源代码: ruby-ast ]
软件包:ruby-ast(2.4.2-1)
Ruby library for working with abstract syntax trees
ast 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 AST::Node, AST::Processor::Mixin and AST::Sexp classes for additional recommendations and design patterns.