Method: AST::Node#initialize

Defined in:
lib/ast/node.rb

#initialize(type, children = [], properties = {}) ⇒ Node

Constructs a new instance of Node.

The arguments type and children are converted with to_sym and to_a respectively. Additionally, the result of converting children is frozen. While mutating the arguments is generally considered harmful, the most common case is to pass an array literal to the constructor. If your code does not expect the argument to be frozen, use #dup.

The properties hash is passed to #assign_properties.


72
73
74
75
76
77
78
79
80
# File 'lib/ast/node.rb', line 72

def initialize(type, children=[], properties={})
  @type, @children = type.to_sym, children.to_a.freeze

  assign_properties(properties)

  @hash = [@type, @children, self.class].hash

  freeze
end