class Ascode::Interpreter::Main
Public Class Methods
new(ast, env = Environment.new)
click to toggle source
# File lib/ascode/interpreter/main.rb, line 9 def initialize(ast, env = Environment.new) @env = env @env.ast = ast @map = { io: IO, math: Math, condition: Condition } end
Public Instance Methods
call(type, name)
click to toggle source
# File lib/ascode/interpreter/main.rb, line 34 def call(type, name) if type == :env @env.send name else @map[type].send name, @env end end
run()
click to toggle source
# File lib/ascode/interpreter/main.rb, line 20 def run @env.ast.each do |action| name = action[:action] if name == "push" @env.push(action[:what]) elsif name == "condition" Condition.begin @env, action[:true_block], action[:false_block] else call action[:type], name end end end