TinyRubyコンパイラ/MinRubyパーサの構文解析結果
TinyRubyコンパイラは構文解析器にMinRubyのパーサを利用する。 TinyRubyは以下の構文をサポートするので、それぞれの構文のMinRubyパーサでの構文解析結果を確認する。
整数リテラル
四則演算
複文
変数代入
変数参照
比較演算
条件分岐
関数呼び出し
関数定義
事前準備
MinRubyのパーサを利用できるよう、minruby gem をインストール。
code:sh
gem install minruby
irbを起動して、minruby_parse で構文解析した結果を取得してみる。
code:irb
$ irb -rminruby
irb(main):001:0> minruby_parse "10"
irb(main):002:0> minruby_parse "10 + 20"
整数リテラル
code:irb
irb(main):001:0> minruby_parse "10"
関数呼び出し
code:irb
irb(main):002:0> minruby_parse "p 10"
四則演算
code:irb
irb(main):003:0> minruby_parse "10 + 20"
複文
code:irb
irb(main):004:0> minruby_parse "p 10; p 20"
変数代入
code:irb
irb(main):005:0> minruby_parse "a = 10"
変数参照
code:irb
irb(main):007:0> minruby_parse "a = 10; a"
比較演算
code:irb
irb(main):013:0> minruby_parse "1 < 2"
条件分岐
code:irb
irb(main):014:0> minruby_parse "if 2 > 1 then 10 else 20 end"
関数定義
code:irb
irb(main):017:0> minruby_parse "def plus(a, b) a + b end"