問題タブ [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.
python - PyParsing OR ステートメント
これは非常に単純になりますが、次の 2 つのパターンのいずれかに一致させようとしています。
また
私はこのようなことを試しました:
でも似合わないらしい。Or() を使用する方法、Group() を使用する必要がある場合、または何を行うべきか、まったくわかりません。Group() クラス内で提供される引数が個別に呼び出された場合に機能することはわかっていますが、1 つだけではなく、ダッシュまたは引用符で囲まれた URI 文字列が本当に必要です。
ログ形式はネゴシエートできません。与えられたものを消費しています。どんなヒントでも大歓迎です。
pyparsing - pyparsingでのPEGのセマンティック述語についての確認が必要
PEGペーパーでは、2つのセマンティック述語解析式について説明しています。
- そして述語
&e
- 述語ではありません
!e
pyparsingはAnd述語をサポートしていますか?それとも、シーケンス解析式の同義語ですか?And
その場合、それはクラスと同等である必要があります。正しい?
NotNotAny
述語を表しますか?
具体的には、仕様の動作に準拠していますか?
解析式foo&(bar)は、テキスト「foo」と一致して消費しますが、その後にテキスト「bar」が続く場合に限ります。解析式foo!(bar)は、テキスト「foo」と一致しますが、その後にテキスト「bar」が続かない場合に限ります。式!(a + b)aは、単一の「a」に一致しますが、これは、aの後にbが続く任意の長さのシーケンスの最初ではない場合に限ります。
python - 空でない行とpyparsingの照合
pyparsing
別のプログラムで作成されたファイルからデータを抽出するために使用する小さなアプリケーションを作成しようとしています。
これらのファイルの形式は次のとおりです。
line 1
、line 2
...line 4
およびline a
..を抽出するのに役立つ文法をどのように構築できますline c
か?私はこのような構造を作ろうとしています
しかし、私はとを定義する方法がわかりませNonEmptyLines
んEmptyLine
。ありがとう。
python - packat を有効にすると、pyparsing が異なる解析ツリーを返すのはなぜですか?
これは、バックトラッキングをテストするためのおもちゃの文法です。
packrat を無効にすると、返される解析ツリー
packratを有効にすると、
最後のケースで、なぜこれが起こっているのですか?ありがとう
python - PEG の Empty 生産の役割は何ですか?
空の生産ルール
lex-yacc LR ボトムアップ パーサー ジェネレーター (PLY など) で役立ちます。
pyparsing などの PEG パーサーで空のプロダクションを使用する必要があるのはどのような状況ですか?
python - Pyparsing - 混合jascii/asciiテキストファイルからjasciiテキストを解析しますか?
jascii/shift-jis と ASCII テキストが混在するテキスト ファイルがあります。私は使用pyparsing
していますが、そのような文字列をトークン化できません。
コード例を次に示します。
私は得る:
これは、テキスト ファイルの内容です。
(引用符なし)
python - pyparsing parseactions に値を渡す方法は?
具体的には、数値の範囲を検証する一般的な parseaction 関数を作成したいと考えています。関数に最小値と最大値を渡したい。これは可能ですか?
python - listAllMatches true で setResultsName を使用すると、一部の一致したアイテムがネストされます
この文法に基づいて:
非終端を満たすトークンeg
は常に追加のリストでラップされていることがわかりました。との唯一の違いg
は、先頭に `Suppress('-')' があることです。
それらを同じように動作させるにはどうすればよいですか? 以下の結果を達成したい:
python - pyparsing が再帰降下パーサーではないのはなぜですか?
recursive descent parsingのウィキペディアのエントリでは、pyparsing は再帰的降下ではないと判断しています。再帰的降下の定義は、次のプロパティを識別します。
- すべての非終端記号には、その非終端記号のプロダクション ルールの展開を処理する関数への 1 対 1 のマッピングがあります。
- トークンは左から右に読み取られます (トップダウン解析)
- これらの関数の内部では、部分式を解析するために他の関数を呼び出します。これらの関数は再帰的に行うことができます。
pyparsing は、パーサー コンビネーター アプローチではなく、よりオブジェクト指向の設計を使用していることを理解しています。これは pyparsing を失格にする技術ですか?
parsing - 以前に解析された値から特定の行数を解析する
gEDA回路図/シンボル ファイル形式を取り込むために pyparsing を使用しています。ほとんどは簡単ですが、最初の行の整数フィールドで指定された次の行の数を一致させる方法がわかりません。
テキスト オブジェクトの形式は次のとおりです。
num_linesは整数です。このスタイルは、他のいくつかのタイプにも使用されます。
回避策として、そのような行を有効なオブジェクト タイプに一致しないものとして定義します。技術的には、このようなオブジェクトのような線はテキスト オブジェクトで許可されています。
次のようにその場で一致ルールを生成します。
がテーブルにあるのですが、ルールを指定する方法がわかりません。