問題タブ [lemon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
161 参照

c - Lemon は lempar.c を取得し、ファイルの最後にゴミを出力します

LEMON Parser Generatorを使用していますが、何らかの理由で、出力されたファイルの最後に大量のゴミが出力されます%%。lempar.c の s を生成されたコードに置き換えるのではありません。sqlite ソースから直接 lemon.c と lempar.c をコピーしました。これが私の文法ファイルです:

そして、これが lempar ファイルのコピーの末尾に追加されたばかりのガベージです

0 投票する
1 に答える
427 参照

parsing - レモンパーサー: このルールは削減できません

jinja2などのテンプレート言語(または選択した場合は小枝)を解析するための文法を作成しようとしていますが、switch-caseステートメントを正常に解析できません。

望ましい構文を示しましょう。

ここで endcase はブレークとして機能します。

私の文法ファイルの作業部分:

これは私の文法のほんの一部であり、私は 、 、forifなどwhileの文法に取り組みました.doloop

しかし、私は次のことについてはわかりません:

  1. {% case expr %} statement_list(T)それなし{% endcase %}
  2. {% default %} statement_list(T)

たとえば、私は使用しようとしました:

#1の場合は運が悪い、得た

このルールは縮小できません。

#2も同様

率直に言って、私は問題の根本を理解しています - ケース/デフォルトバインドの欠如ですが、実際にはこの問題に対処する方法がわかりません.

どんな助けでも大歓迎です!