RubyでつくるRuby
電卓を作る
minruby をインストール。
code:sh
gem install minruby
irbを起動して、minruby_parse で構文解析した結果を取得する
code:sh
$ irb -rminruby
irb(main):001:0> minruby_parse "10"
irb(main):002:0> minruby_parse "10 + 20"
足し算できるようにする。
code:interp.rb
require 'minruby'
def evaluate(tree)
when 'lit'
when '+'
left + right
else
exit 1
end
end
str = gets
tree = minruby_parse(str)
answer = evaluate(tree)
p answer
実行してみる
code:sh
$ ruby interp.rb
10 + 20
30
四則演算に対応。
code:interp.rb
require 'minruby'
def evaluate(tree)
when 'lit'
when '+'
left + right
when '-'
left - right
when '*'
left * right
when '/'
left / right
else
exit 1
end
end
str = gets
tree = minruby_parse(str)
answer = evaluate(tree)
p answer
実行してみる
https://gyazo.com/49425687e8b18ba7a960e679231176de