soukouki’s diary

なんとなく思ったこととかを書いてたりする。

何このエラー?

  Racc::ParseError:
  parse error on value "$" ($end)
C:/Ruby23-x64/lib/ruby/2.3.0/racc/parser.rb:528:in `on_error'
C:/Ruby23-x64/lib/ruby/2.3.0/racc/parser.rb:259:in `_racc_do_parse_c'
C:/Ruby23-x64/lib/ruby/2.3.0/racc/parser.rb:259:in `do_parse'

parse error on value "$" ($end) えっ。

修正前
 num
        | INT
            { result = Tree::Num.new(val[0].to_i) }
        | INT '.' INT
            { result = Tree::Num.new((val[0]+"."+val[2]).to_f) }
修正後
 num
        : INT
            { result = Tree::Num.new(val[0].to_i) }
        | INT '.' INT
            { result = Tree::Num.new((val[0]+"."+val[2]).to_f) }

コードをコピペで動かしててハマった。
もうちょっといいエラー出してよ。

というかすべて|:に統一してもいいと思うんだけど。

バージョン

  • ruby 2.3.0p0 (2015-12-25 revision 53290) [x64-mingw32]
  • racc version 1.4.14