問題タブ [pyparsing]

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

python - PyParsing OR ステートメント

これは非常に単純になりますが、次の 2 つのパターンのいずれかに一致させようとしています。

また

私はこのようなことを試しました:

でも似合わないらしい。Or() を使用する方法、Group() を使用する必要がある場合、または何を行うべきか、まったくわかりません。Group() クラス内で提供される引数が個別に呼び出された場合に機能することはわかっていますが、1 つだけではなく、ダッシュまたは引用符で囲まれた URI 文字列が本当に必要です。

ログ形式はネゴシエートできません。与えられたものを消費しています。どんなヒントでも大歓迎です。

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

pyparsing - pyparsingでのPEGのセマンティック述語についての確認が必要

PEGペーパーでは、2つのセマンティック述語解析式について説明しています。

  1. そして述語&e
  2. 述語ではありません!e

pyparsingはAnd述語をサポートしていますか?それとも、シーケンス解析式の同義語ですか?Andその場合、それはクラスと同等である必要があります。正しい?

NotNotAny述語を表しますか?

具体的には、仕様の動作に準拠していますか?

解析式foo&(bar)は、テキスト「foo」と一致して消費しますが、その後にテキスト「bar」が続く場合に限ります。解析式foo!(bar)は、テキスト「foo」と一致しますが、その後にテキスト「bar」が続かない場合に限ります。式!(a + b)aは、単一の「a」に一致しますが、これは、aの後にbが続く任意の長さのシーケンスの最初ではない場合に限ります。

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

python - 空でない行とpyparsingの照合

pyparsing別のプログラムで作成されたファイルからデータを抽出するために使用する小さなアプリケーションを作成しようとしています。

これらのファイルの形式は次のとおりです。

line 1line 2...line 4およびline a..を抽出するのに役立つ文法をどのように構築できますline cか?私はこのような構造を作ろうとしています

しかし、私はとを定義する方法がわかりませNonEmptyLinesEmptyLine。ありがとう。

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

python - packat を有効にすると、pyparsing が異なる解析ツリーを返すのはなぜですか?

これは、バックトラッキングをテストするためのおもちゃの文法です。

packrat を無効にすると、返される解析ツリー

packratを有効にすると、

最後のケースで、なぜこれが起こっているのですか?ありがとう

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

python - PEG の Empty 生産の役割は何ですか?

空の生産ルール

lex-yacc LR ボトムアップ パーサー ジェネレーター (PLY など) で役立ちます。

pyparsing などの PEG パーサーで空のプロダクションを使用する必要があるのはどのような状況ですか?

0 投票する
3 に答える
722 参照

python - Pyparsing - 混合jascii/asciiテキストファイルからjasciiテキストを解析しますか?

jascii/shift-jis と ASCII テキストが混在するテキスト ファイルがあります。私は使用pyparsingしていますが、そのような文字列をトークン化できません。

コード例を次に示します。

私は得る:

これは、テキスト ファイルの内容です。

(引用符なし)

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

python - pyparsing parseactions に値を渡す方法は?

具体的には、数値の範囲を検証する一般的な parseaction 関数を作成したいと考えています。関数に最小値と最大値を渡したい。これは可能ですか?

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

python - listAllMatches true で setResultsName を使用すると、一部の一致したアイテムがネストされます

この文法に基づいて:

非終端を満たすトークンegは常に追加のリストでラップされていることがわかりました。との唯一の違いgは、先頭に `Suppress('-')' があることです。

それらを同じように動作させるにはどうすればよいですか? 以下の結果を達成したい:

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

python - pyparsing が再帰降下パーサーではないのはなぜですか?

recursive descent parsingのウィキペディアのエントリでは、pyparsing は再帰的降下ではないと判断しています。再帰的降下の定義は、次のプロパティを識別します。

  1. すべての非終端記号には、その非終端記号のプロダクション ルールの展開を処理する関数への 1 対 1 のマッピングがあります。
  2. トークンは左から右に読み取られます (トップダウン解析)
  3. これらの関数の内部では、部分式を解析するために他の関数を呼び出します。これらの関数は再帰的に行うことができます。

pyparsing は、パーサー コンビネーター アプローチではなく、よりオブジェクト指向の設計を使用していることを理解しています。これは pyparsing を失格にする技術ですか?

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

parsing - 以前に解析された値から特定の行数を解析する

gEDA回路図/シンボル ファイル形式を取り込むために pyparsing を使用しています。ほとんどは簡単ですが、最初の行の整数フィールドで指定された次の行の数を一致させる方法がわかりません。

テキスト オブジェクトの形式は次のとおりです。

num_linesは整数ですこのスタイルは、他のいくつかのタイプにも使用されます。

回避策として、そのような行を有効なオブジェクト タイプに一致しないものとして定義します。技術的には、このようなオブジェクトのような線はテキスト オブジェクトで許可されています。

次のようにその場で一致ルールを生成します。

がテーブルにあるのですが、ルールを指定する方法がわかりません。