問題タブ [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.
flutter - ref0 は petitparser によって解決されません
petitparserはdartで書かれたパーサー ジェネレーターで、 Flutterなどで使用されます。
このページによると、petitparserref0は現在の解析クラスを参照するために使用できます。
セクション文法定義の使用では、次のステートメントを読みます。
同じ定義で定義されたプロダクションを参照するには 、関数参照を引数として[ref0]を使用します。
ドキュメントによると、この依存関係をpetitpackageパッケージに定義する必要があります
これを含めます:
残念ながら、解決ref0しref1ません。なんで?
パッケージとソースが同期していない場合:ref0同等の有効なコードに置き換える簡単な方法はありますか?
さらに、API ドキュメントref0で/が見つかりませんでした。ref1
java - Java petitparser オプションの式の終わり
テキスト ファイルからマークされた重要な部分だけを取得するパーサーが必要です。これはサンプル入力です:
私はこのパーサーを書きました:
重要なデータを取得するためのこの小さなユーティリティ Pojo を使用します。
次のように実行します。
そして、それは私に例外をスローします:
しかし、最後の行は一種のコンテンツであり、スター状態でそれを持っていることを期待しているorg.petitparser.context.ParseError: end of input expected
ため、目に見える理由はありません:elseexprref("else").starLazy(ref("expr_start")).optional()
パーサーを変更するにはどうすればよいので、入力の最後に改行文字がある場合とないexpr場合に、それぞれの末尾がいくらでもあると期待できますか? 貪欲にelse作るだけで二の次消費させてしまう。無限ループのハングを引き起こします。これに対する解決策はありますか?elseexpr_bodyany().optional()