Sha256: 80732d70e5889fbb6a3b787a764de8c27ee44614d59539917f0e4e37a5939eac
Contents?: true
Size: 625 Bytes
Versions: 8
Compression:
Stored size: 625 Bytes
Contents
require File.join(File.dirname(__FILE__),"..","..","lib","babel_bridge") class TuringParser < BabelBridge::Parser ignore_whitespace binary_operators_rule :statement, :operand, [[:/, :*], [:+, :-], [:<, :<=, :>, :>=, :==]] do def evaluate case operator when :<, :<=, :>, :>=, :== (left.evaluate.send operator, right.evaluate) ? 1 : nil else left.evaluate.send operator, right.evaluate end end end rule :operand, "(", :statement, ")" rule :operand, /[-]?[0-9]+/ do def evaluate to_s.to_i end end end BabelBridge::Shell.new(TuringParser.new).start
Version data entries
8 entries across 8 versions & 1 rubygems