私は、社内で20年前のプロプライエタリ言語の拡張を支援してきました。これは、チューリング完全な大規模な言語です。それを別の文法レジーム(Antlrなど)に変換することはオプションではありません(私はこれを決定することはできません)。
ほとんどの場合、文法の拡張はスムーズに進んでいます。しかし、時々私はreduce-reduceまたはshift-reduceを取得します
- 排除するのは難しい
- 時々単に意味をなさない(私の弱い脳にとって)
y.outputファイルと実験的な文法リファクタリングをじっと見つめた後、私は通常、行きたい場所にたどり着きました。時々私は不十分な妥協をしなければなりませんでした。
それで、ブラウジング、実験を強化し、変更のデバッグを可能にする、yacc文法を吸い込むことができるツールはありますか?
プロダクションを追加する場合、「どこでも使用されるアトミックプロダクション」(識別子を考えてください)「ルールfooとの競合」(はい、それよりも多くの情報、s / r、r / rがあります)以上のものを見たいです、しかし私はあなたが私のドリフトを得ると思います)。私の思考の上限を設定し、シンボルスタックとステートマシンを想像しようとする以外に、相互作用のヒントがあると便利です。
更新:明確にする必要があると思います。BerkeleyYaccを使用しています。私は最近のバージョンのBisonを使用してテストしています。出力のために、 -report=itemsetを使用して文法をコンパイルしました。
この投稿での私の目標は、yaccに付属している文法デバッグ機能を強化する外部ツールを探すことです。今日はデフォルト設定で苦痛です。Antlrで使用できるツールなど、より優れたインタラクティブツールを見つけるのを手伝ってください。