タグ

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

タグの絞り込みを解除

ocamlとparserに関するilyaletreのブックマーク (1)

  • OCamlYaccやMenhirでコンフリクトを消す方法

    YACC の shift/reduce, reduce/reduce conflict の解消はパーサーの教科書もしくはネット情報に沢山書かれているます。まず、YACC の基動作原理とともにそれなりに理解してください。たとえば http://guppy.eng.kagawa-u.ac.jp/2006/ProgLang/bison-1.2.8/bison-ja_8.html など。 どの教科書にもありますが、だいたい、 ルールが大雑把過ぎるのが原因であることが多いので、ジェネレータが conflict で迷わないようになるまでルールを書き下す。 トークンの優先順位と結合方向を指定することで適用可能なルールの数を減らす reduce/reduce は解消したほうがよい shift/reduce の場合は shift 優先なので、それで満足ならほっておく (ただしあなたの YACC 経験値は上

    OCamlYaccやMenhirでコンフリクトを消す方法
  • 1