問題タブ [petitparser]

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 に答える
72 参照

flutter - ref0 は petitparser によって解決されません

petitparserdartで書かれたパーサー ジェネレーターで、 Flutterなどで使用されます。

このページによると、petitparserref0は現在の解析クラスを参照するために使用できます。

セクション文法定義の使用では、次のステートメントを読みます。

同じ定義で定義されたプロダクションを参照するには 、関数参照を引数として[ref0]を使用します。

ドキュメントによると、この依存関係をpetitpackageパッケージに定義する必要があります

これを含めます:

残念ながら、解決ref0ref1ません。なんで?

パッケージとソースが同期していない場合:ref0同等の有効なコードに置き換える簡単な方法はありますか?

さらに、API ドキュメントref0で/が見つかりませんでした。ref1

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

java - Java petitparser オプションの式の終わり

テキスト ファイルからマークされた重要な部分だけを取得するパーサーが必要です。これはサンプル入力です:

私はこのパーサーを書きました:

重要なデータを取得するためのこの小さなユーティリティ Pojo を使用します。

次のように実行します。

そして、それは私に例外をスローします: しかし、最後の行は一種のコンテンツであり、スター状態でそれを持っていることを期待しているorg.petitparser.context.ParseError: end of input expected ため、目に見える理由はありません:elseexprref("else").starLazy(ref("expr_start")).optional()

パーサーを変更するにはどうすればよいので、入力の最後に改行文字がある場合とないexpr場合に、それぞれの末尾がいくらでもあると期待できますか? 貪欲にelse作るだけで二の次消費させてしまう。無限ループのハングを引き起こします。これに対する解決策はありますか?elseexpr_bodyany().optional()