タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

構文解析に関するxrekkusuのブックマーク (2)

  • caperが吐いたコードを読む - 晴 - Note

    LLとか言われても「再帰下降」、LALRとか言われても「表引くやつ」と言い直さないとぴんと来ないのでまとめる。 あるごりずむ LL……トップダウン LL(1)……JavaCC他、手書きできる LL(k)……ANTLR他、手書きできる 再帰下降+バックトラック……Parsec*1他(たぶんREBOLもあとNFA正規表現もここ)、手書きできる Packrat parsing……バックトラックしてると遅いのでメモ化を併用、Pappy他、PEG(Parsing Expression Grammar)を取るパーサジェネレータはたぶんこれ吐いてくれる LR……ボトムアップ LR(0)……lookahead-setもfollow-setも使わない。ひたすら積んでいってパターン満たしたらreduce。 SLR……follow-setを使う。噂によると手書きできるらしい? LALR……lookahead-s

    caperが吐いたコードを読む - 晴 - Note
  • caper -- LALR(1) パーサジェネレータ

    caperとは modernでクリーンなC++コードを出力するLALR(1)パーサジェネレータです。 おまけでJavaScript/C#/D用のパーサも出力できます。 ニュース・履歴はダウンロードのページで。 コンセプト caperで出力したパーサのコードを他のプロジェクトと混ぜて「手書きのパーサですがなにか?」 と強弁できるのが理想。 格闘ゲームのコマンド解析に使えるくらい使いやすく! たとえば? こんな感じの入力ファイルが %token Number<int> Add Sub Mul Div; %namespace calc; %dont_use_stl; Expr<int> : [Identity] Term(0) | [MakeAdd] Expr(0) Add Term(1) | [MakeSub] Expr(0) Sub Term(1) ; Term<int> : [Identi

  • 1