問題タブ [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.
java - Grappa (Java PEG Parser) を使用した OR 式のマッチング
私はPEGの解析が初めてで、「term1 OR term2 anotherterm」のような式を解析するための単純なパーサーを作成しようとしています。理想的には、次のようなASTに変換します。
私は現在Grappa(https://github.com/fge/grappa)を使用していますが、より基本的な表現「term1 OR term2」にも一致しません。これは私が持っているものです:
誰かが私を正しい方向に向けることができますか?
scala - parboiled2 内でパーサーを実行する
parboiled2 のドキュメントでは、結果を得るために次のことが言及されています。
https://github.com/sirthias/parboiled2#access-to-parser-results
ただし、そのアプローチに思われることを試みると、コンパイルエラーが発生します。
パーサーの概要は次のとおりです。
それを実行しようとするコード
ただし、「実行」は受け入れられません。
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 つのアプローチが見られます。
- 既存の
CommandParser
ものはそのままにして、コマンド構文順列ごとにコマンド固有のパーサーを作成します - 既存の書き込みコマンド固有の構文中立パーサーを各コマンドに残して、全面的に使用される限り、任意の構文を使用できるようにします (ただし、これを行うにはどうすればよいでしょうか?)
CommandParser
per 構文を記述します。
CurrentCommandParser
は、ほとんどが他のオープン ソースから「着想を得た」ものです。
だから私はおそらく私が持っているものを拡張するCommandParser
か、単にタックする必要があると考えていました
scala - パーボイルド - 実数を解析するには?
これは、実数を解析すると主張するプロジェクトから取得しましたが、どういうわけか、10 進数の前の部分を食べてしまいます。
これは以下を出力します:
ここで何が問題なのですか?現在、Parboiled-1 から Parboiled-2 に移動できないことに注意してください。これは、書き直さなければならないより大きな文法があるためです。