soukouki’s diary

誰かの役に立てたらいいな。

racc

raccでは日本語が使えないっぽい。=>そんなことなかったです。

文法定義ファイルの先頭に# coding: utf-8って書いとけば良いみたいです。 誤った情報を流してしまい、すみません。 でもsampleにはのってないんだよね。 間違った記事 soukouki.hatenablog.jp

raccで変なエラー(またか)

修正前 | num '/' num { result = val[0]/val[2] } エラー内容 racc: E:/my-calc/my-calc/parser.rb.y:98: 98: unterminated regexp 98行目は rule...end の end のところ 修正後 | num '/' num { result = val[0] / val[2] } /の周りに空白を入れただけ エ…

何このエラー?

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_pa…

raccの続き

ruleの前に options result_var って書くと formula : low_priority_formula | exp '+' exp { result = val[0] + val[2] } | exp '-' exp { result = val[0] - val[2] } | exp '*' exp { result = val[0] * val[2] } こんな感じで書ける。 あとは、tokenの最…

raccでは日本語が使えないっぽい。(間違った情報でした)

間違った情報でした。 soukouki.hatenablog.jp 文法定義ファイルの先頭に# coding: utf-8って書いとけば良いみたいです。 コメントの場所でも C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/racc-1.4.14/lib/racc/grammarfileparser.rb:298:in `split': invalid b…

字句解析から構文解析まで

字句解析にはStringScannerを使いました ソース いつの間にか消えてたらすみません github.com 各ファイルの紹介 parser.rb.y 構文を指定してるファイル parser.rb 字句解析とraccの自動生成された部分のカバー parser-test.rb テスト test.rb テストをする…

raccをとりあえず動かした

とりあえずソースを parse.rb.y class Parser rule EXP : int { p val[0].to_i } end ---- inner def parse tokens @q = tokens + [[false, '$']] do_parse end def next_token @q.shift end perser-test.rb require_relative "./parser.tab.rb" P = Parser.…

raccをインストールしてみた。

osはwindowsです。 gem install racc Fetching: racc-1.4.14.gem (100%) ERROR: Error installing racc: The 'racc' native gem requires installed build tools. Please update your PATH to include build tools or download the DevKit from 'http://ruby…