- 「コンパイラ・スクリプトエンジン」相談室16
523 :デフォルトの名無しさん[sage]:2016/04/28(木) 12:59:47.77 ID:Jc879At1 - 手書きパーサなら
木構造にせずに操車場アルゴリズムかその亜種でLL(1)するのも手だぞ。 文法と文をそれぞれ入力したらテーブル作ってLR(1)するクラスを作るって手もあるけど 大真面目に書いてc++で500行〜1000行くらいにはなったと思う。
|
- 「コンパイラ・スクリプトエンジン」相談室16
525 :デフォルトの名無しさん[sage]:2016/04/28(木) 15:44:59.86 ID:Jc879At1 - yaccは、やる気と暇があるなら
どういう文法なら曖昧性が無いか、とか、shift/reduce conflictとdangling elseとは何か、とか いろんな事についてよく理解できるようになるって点で一度試しに書いてみる事をお勧めしたい 今までに俺が余暇でC実装した名の付いたアルゴリズムの内だとかなり難しい部類に入るけどな。 lexは文法全く固まってないなら使ったらどう?って程度じゃない? 割と簡単に使えるけど、同じくらいとは言わないものの簡単に自作できるし ASCII範囲の文字は簡単に指定できるけどUnicodeなんかに対応する為にカスタムコードを挟むなら普通に全部組んだほうが楽な事もあるし。
|
- 「コンパイラ・スクリプトエンジン」相談室16
526 :デフォルトの名無しさん[sage]:2016/04/28(木) 15:46:10.30 ID:Jc879At1 - 個人的にはPEGが気になるのですよー
|
- 「コンパイラ・スクリプトエンジン」相談室16
528 :デフォルトの名無しさん[sage]:2016/04/28(木) 18:36:57.28 ID:Jc879At1 - そして思うのだ
コンパイラジェネレータを書くのに向いてる言語とは・・・・・・
|