Ruby/Rails 勉強会@関西第36回で発表したスライド。構文解析についてと、パーサージェネレーターRaccの基本的な使い方についてRead less
C言語のソースをパースしたいと思ってたときがあったな、と思い出した。RubyでRaccを使って、K&Rに載ってるBNFを食わせてみたが、コンフリクトが発生する。 $ racc c.y 1 shift/reduce conflicts 2 reduce/reduce conflicts本によれば「唯一ぶつかりがあるのは、if-elseのあいまいさである。」と書いてあるんだけど。「-v」オプションをつけて詳細を表示するとぶつかってるのは state 2 7) declaration : declaration_specifiers _ init_declarator_list_opt ";" 13) declaration_specifiers_opt : declaration_specifiers _ "*" shift, and go to state 36 "*" [reduce us
今日TAが終わった後に後輩にeclipseのJavaCCプラグインを入れてあげたのですが、 JavaCCプラグインがGPLのため頒布することができない、というか考えるのが面倒くさいので入れ方を書いておく。 ちなみにeclipseのバージョンは3.5.x系または3.4.x系じゃないと動かないみたい(3.3.x系ではエディタが使えないバグが出る) そもそもの対応が3.4, 3.5系なので取り敢えず従ってください。 3.3系以前のeclipseが入ってる人は入れなおしてしまうのが、速い気がします。 1.eclipseのインストール&日本語化 Eclipse 3.5 Galileoを日本語化する方法 というreplicationさんの記事を参考にして入れてみてください。 多分JavaCCを入れる人は、Javaの開発者だと思うのでリンク先のページではclassicを例に上げていますが、Java De
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く