問題タブ [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 投票する
2 に答える
1097 参照

java - EBNF/パーボイルド:正規表現をPE​​Gに変換する方法は?

これは、パーボイルド パーサー フレームワークと一般的な BNF/PEG の両方に固有の問題です。

かなり単純な正規表現があるとしましょう

の擬似EBNFを表します

EBNF で非空白 (空白ではない 1 つ以上の文字) をどのように定義しますか?

Java のパーボイルド ライブラリーに精通している人にとって、非空白を定義するルールをどのように実装できるでしょうか?

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

java - 1つで複数のパーサーを使用する方法:これは安全なコードですか?

コンポーネントのレイアウトを記述しているxml構成ファイルを使用するアプリケーションがあります。現在、グリッド、水平、垂直の3つのレイアウトがあります。この3つを使ったレイアウトを作りたいです。

最後に、これを行う方法を見つけました。レイアウトクラスごとに、そのレイアウトクラスの保護されたパッケージ保護フィールドを定義し、宣言でそれらを初期化します。私の一般的なルールはそれらのフィールドを使用します。覚えておくべき唯一のことは、それらすべてに独自のスタックがあることです。これは、次のようなコードを呼び出すことができるため、問題ではありませんpush(gridLayoutParser.pop())

1つのパーサーの使用例を次に示します。

最初の子パーサー:

2番目は同じです:

そして、ここでそれらの両方を使用するパーサー:

パブリッククラスOPはBaseParserを拡張します{

}

私にとってはうまくいきます。しかし、より複雑な文法でも問題ありませんか?

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

parsing - 構築中のパーサーの演算子の結合性と優先順位に関する学習リソースを探しています

私はパーボイルドを使用して優先順位と結合性が異なるいくつかの演算子を持つ検索構文のパーサーを構築しています。これは私の最初のパーサーであるため、優先順位と結合性が一般的にどのように処理されるかについて、いくつかの良い例を見ることができれば本当にうれしいです。<さらに、Python の三項演算子 (例a<b<c=> )に似た、結合性を持たないように見える特殊な演算子がいくつかあります(a<b)&&<b<c>

結合性と優先順位が異なる演算子の解析に関する優れたリソースと例を教えてもらえますか?

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

java - パーボイルドのタイプパラメータVは何に使用されますか

パーボイルドフレームワークの一部のクラスには、ジェネリック型パラメーターがあります。例:クラスBaseParser。そのドキュメントには次のように書かれています。

私は本当に十分なドキュメントを見つけていません。他のクラスのドキュメントは類似しているか、欠落しています。ウィキでもそれに関する情報は見つかりませんでした。彼らはただ使用してObjectいます。

このパラメータが何に使用され、何が有効なタイプであるかを誰かに説明してもらえますか?

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

java - パーボイルドパーサーを作成できません

この簡単な例に従って、パーボイルドフレームワークのパーサークラスを作成しました。

例に示すようにパーサーを作成しようとすると

その行で例外が発生します:

例で行われていない特別なことは実際には何もしていません。唯一の違いは、パーサーとそれを呼び出すクラスが異なるプロジェクトにあることですが、なぜこれが重要なのか想像できません。プロジェクト(Eclipseプラグインプロジェクト)間の依存関係は問題ないはずです。

誰かが私が間違っていることや間違いがどこにあるのかを知ることができますか?

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

java - パーボイルドを使用して方程式を解析し、値に適用する

方程式を解析してから値に適用する必要があります。たとえば、私は解析したいと思います

それを x と y の値の配列に適用します。電卓の例を使用して、次のような個々の方程式を評価できます

しかし、これをジェネリックにする方法がわかりません。私はParboiled for Javaを使用しています。どんな方向性でも大歓迎です。

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

scala - Parboiled で二重引用符で囲まれた文字列コンテンツを抽出する

私はパーサーを書いています。その部分の 1 つが一致し、二重引用符で囲まれた文字列コンテンツを取得する必要があります。文字列全体ではなく、引用符のみが生成されます。引用されていないものについては、すべてうまくいきます

対応するルールは次のとおりです。

問題は:

  • 入力 -> 「ディレクティブ」
  • 予想される出力 -> StringWrapper("\"directive\"")
  • 実際の出力 -> StringWrapper("\"")
0 投票する
1 に答える
572 参照

scala - Scala Parboiled 2 でいくつかのルールをカリー化

1 つのルールにいくつかの機能を追加するヘル​​パー ルールをいくつか作成したいと思います。たとえば、文字列リテラルを引用符で囲む必要があることを強制したり、トークン ルール / ADT にトークン位置追跡を追加したりします。

次の構文(およびかなりの数の順列)を試しました。

正常にコンパイルされますが、配線するとすぐに-たとえば、

サブルールを使用すると:

私は得るIllegal rule call: quoted[this.String](this.IdentifierStringUnwrapped)

別のアプローチにコミットすることもできます。プリミティブ トークン パーサーを混ぜてから、必要なバリアントを作成します。しかし、私は本当に何が起こっているのかを理解したい.