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