2015年12月17日

いろいろと

秀丸で構文解析できたらおもしろいだろうかと思って,dllにBNFを入れるとそれにそって解析してくれるみたいなのをつけてみている.といってもboost::spirit::qiにほぼ丸投げだけど.で,文法はどうするのが普通なんだろうとググっていたら,PeggyというHaskell用のライブラリを見つけた.文脈自由文法ではなくてPEG(Parsing Expression Grammar)というものらしい.文脈自由文法より書きやすいのだそうだ.ごつい解析をするのでなければこっちの方がよさそうに聞こえる.

PEGというのは知らなかったのでWikipediaを見てみたら,一番の違いは'|'が'/'になることだとか.|は普通「または」だが,/は「前から見ていって一番最初に見つかったもの」らしい.そういえばboost::spirit::qiの|はそういうルールだったよなと疑問に.というか「PEGパーサ生成器ほか」の項に思いっきりboost::spiritが書いてある.どうやら自分はすでにPEGを採用していたようだ.とちょっとショック.PEGはあまり亜流がなさそうなので,これにそってやってみることにしよう.

ところでPeggyってエディタの名前じゃなかったっけと思ったら,なくなっていた.こちらもちょっとショック…….

0 件のコメント:

コメントを投稿

コメントの追加にはサードパーティーCookieの許可が必要です