問題タブ [parboiled]

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

java - Grappa (Java PEG Parser) を使用した OR 式のマッチング

私はPEGの解析が初めてで、「term1 OR term2 anotherterm」のような式を解析するための単純なパーサーを作成しようとしています。理想的には、次のようなASTに変換します。

私は現在Grappa(https://github.com/fge/grappa)を使用していますが、より基本的な表現「term1 OR term2」にも一致しません。これは私が持っているものです:

誰かが私を正しい方向に向けることができますか?

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

scala - parboiled2 内でパーサーを実行する

parboiled2 のドキュメントでは、結果を得るために次のことが言及されています。

https://github.com/sirthias/parboiled2#access-to-parser-results

ただし、そのアプローチに思われることを試みると、コンパイルエラーが発生します。

パーサーの概要は次のとおりです。

それを実行しようとするコード

ただし、「実行」は受け入れられません。

0 投票する
0 に答える
36 参照

scala - 複数の構文 (PowerShell スタイル、bash/sh スタイル、Cisco スタイル) を受け入れることができるように、parboiled2 でサブクラス化する方法はありますか?

警告 私は を初めて使用しparboiled2ます。

関連する構文にとらわれない方法で CLI を記述できるようにしたいと考えています。常に同じ形状で、以下のトリプレットになります。

これをさらに進めて、おそらくこれをサブクラス化するか、そのパーサーをサブクラス化するか、または拡張して次の機能を実現したいと思います。

次のいずれかを受け入れます。

  • Create-Dog -Feet 4 -Name Fido -Walks Daily /Home/Dogs
  • create_dog -f 4 --name Fido ~/Dogs
  • Dog.Create Feet=4, Name=Fido, Walks=Daily in /Home/Dogs

例として。ここで詳細を求めているわけではありません。私が求めているのは、最初からこれに取り組む方法です。

少なくとも 2 つまたは 3 つのアプローチが見られます。

  1. 既存のCommandParserものはそのままにして、コマンド構文順列ごとにコマンド固有のパーサーを作成します
  2. 既存の書き込みコマンド固有の構文中立パーサーを各コマンドに残して、全面的に使用される限り、任意の構文を使用できるようにします (ただし、これを行うにはどうすればよいでしょうか?)
  3. CommandParserper 構文を記述します。

CurrentCommandParserは、ほとんどが他のオープン ソースから「着想を得た」ものです。

だから私はおそらく私が持っているものを拡張するCommandParserか、単にタックする必要があると考えていました

0 投票する
2 に答える
295 参照

scala - パーボイルド - 実数を解析するには?

これは、実数を解析すると主張するプロジェクトから取得しましたが、どういうわけか、10 進数の前の部分を食べてしまいます。

これは以下を出力します:

ここで何が問題なのですか?現在、Parboiled-1 から Parboiled-2 に移動できないことに注意してください。これは、書き直さなければならないより大きな文法があるためです。