class Ikra::AST::ProgramNode
Attributes
blocks[R]
First block is program entry point
classes[R]
Public Class Methods
new(blocks: [], classes: [])
click to toggle source
# File lib/ast/nodes.rb, line 24 def initialize(blocks: [], classes: []) @blocks = blocks @classes = classes end
Public Instance Methods
==(other)
click to toggle source
Calls superclass method
Ikra::AST::Node#==
# File lib/ast/nodes.rb, line 35 def ==(other) return super(other) && blocks == other.blocks && classes == other.classes end
accept(visitor)
click to toggle source
# File lib/ast/visitor.rb, line 12 def accept(visitor) def accept(visitor) return visitor.visit_program_node(self) end end
clone()
click to toggle source
# File lib/ast/nodes.rb, line 29 def clone return ProgramNode.new( blocks: @blocks.map do |b| b.clone end, classes: @classes.map do |c| c.clone end) end
hash()
click to toggle source
# File lib/ast/nodes.rb, line 39 def hash return (blocks.hash + classes.hash) % 4524321 end
to_s()
click to toggle source
# File lib/ast/printer.rb, line 10 def to_s return "[ProgramNode: #{blocks.to_s}; #{classes.to_s}]" end