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

pyparsing - Excel のようなおもちゃの式の解析

S 式の構文に似た、おもちゃのような式言語を構文解析するための文法を作成したいと考えています。

「Getting Started with PyParsing」という本を読んだところ、似たような文法をカバーする非常に優れたセクションが含まれていました。

解析するデータの 2 つの例は次のとおりです。

ここで、式をある程度解析するが、関数の展開と演算子の優先順位を無視する文法を考え出しました。

それを続行するためのベストプラクティスは何ですか: 関数名 ( sum, avg ... ) の oneOf に一致する単語に parseActions を追加する必要があります。ネストされたリストを作成すると、解析結果の深さ優先のウォーキングを実行して関数を評価できますか?

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

python - pyparsing を使用したスパース ARFF の解析が間違っている

全て

単純な ARFF ファイルを解析するコードを見つけたので、データが次のようなスパース ARFF に合うように変更したい:

コードは次のとおりです。

しかし、それは機能しません

空白を識別するようにプログラムに指示する必要があると思いますが、方法がわかりません

本当にありがとう

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

python - 正規表現をWordとしてpyparsing

ドット付き表記を使用して識別されたオブジェクトに対して、次のような単純なアクションを実行する構文パーサーを構築しています。

しかしDISABLE ALL、キーワードALLでは、代わりに3として一致し、Regex(r'[a-zA-Z]') => 'A', 'L', 'L'引数を一致させるために使用します。

正規表現を使用してWordを作成するにはどうすればよいですか?AFAIKWordをA.1.1使用できません

以下の例を参照してください

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

python - pyparsingの問題

今、私はpyparsing単純な接尾辞式を解析するために使用し始めたところです。現時点では、私はここまで到達しました:

しかし、実行すると、次のように出力されます。

私は何が間違っているのですか?

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

python - pyparsing setParseAction トークンが渡されませんでした

私は pyparsing と Python に非常に慣れていないので、これは本当に間違ったことをしている可能性があるという警告です。

私がやろうとしているのは、SQL パーサーを構築し、ノードを持つツリーを構築することです。

yacc/bison 文法ファイルからこの種のものをコピーしようとしています:

これは私がPythonで持っているコードです:

注: これは、Paul McGuire による select_parser.py のストリップ ダウン バージョンです。

setParseAction を使用する必要があると思いますが、呼び出すメソッドのトークンに対して常に None を取得します。完全な文字列と場所を取得しますが、トークンは取得しません。

yacc/bison ロジックをコピーするために setParseAction を呼び出すのに最適な場所はどこですか?

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

pyparsing - pyparsingを使用して可変長のサブ文字列を抽出する

文字列から可変数の単語で構成されるサブ文字列を抽出するためにpyparsingを取得しようとしています。

以下はほとんど機能しますが、サブ文字列の最後の単語が失われます。

出力:

私は何が欠けていますか?

PS:正規表現でこれを実行できることは知っていますが、pyparsingを使用して既に作成された多大な労力に適合する必要があるため、特にpyparsingで実行したいと思います。

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

python - pyparsing、Each、結果名

私は pyparsing を使用して、まったくSQLではないパーサーを構築しようとしています(from句がなく、結合などもありません)。今日の作業は、pyparsing に含まれている simpleSQL.py サンプル スクリプトに基づいています。「GROUP BY」句と「ORDER BY」句をパーサーに追加しようとしていますが、どちらが先に来てもそれらを一致させようとしています。

Each クラスを使用していますが、一致しているように見えますが、Each クラス内から結果名を設定していません。私は正しいことをしていないか、はっきりしないことが起こっています。

繰り返しますが、simpleSQL.py の例から fromToken を削除したので、selectStmt は次のようになります。

私は結果を得る:

そのため、group 句と order 句をどちらの順序でも解析しているように見えますが、結果の名前を ('order' と 'group' に) 割り当てていません。これは完全にばかげていることがわかり、何かが欠けているか、またはこれらの節を任意の順序で見つけようとしていることがわかります (LIMIT などの将来の節も) 完全に間違っています。

どんな助けでも大歓迎です!これまでのパイパースが大好きです。

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

python - Python で出力から特定の情報を引き出す方法

だから私は出力を与えるコードを持っています.私がする必要があるのは、コンマの間の情報を引き出し、呼び出されたときに動的に変化する変数にそれらを割り当てることです...これが私のコードです:

これにより、出力が得られます。

たとえば、(0.793803, 0.136326, 0, 0.5, 0) を (1x,1y,1z,1w,1s) に、(0.772345,0.642332,0,0.5,0) を (2x) に割り当てることができるようにする必要があります。 , 2y, 2z, 2w, 2s) などで、どの数字がそれらの位置を占めていても、その値を取ります。

これらの数字を入れるために必要なコードは次のとおりです。

したがって、ベクトルがある場所に (px, py,0.z,pw,ps)、次に (p2.x,p2.y,p2.zp2.wp2.s) などを配置できるようにしたいと考えています。与えられた番号ごとに変更

どんな助けでも素晴らしいでしょう..事前に感謝します!

-ジェフ

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

python - 出力データを分離する方法

これが私のコードです:

出力は次のとおりです。

与えられた個々のポイントを呼び出す方法を理解したいです。たとえば、コードで 0.793803 を吐き出す方法や、0.136326 を吐き出す方法などです。

補遺

だから私がやったことはこれを追加することでした

これは次の結果をもたらしました:

しかし、もう一度解析しようとして書いたとき

エラー p is not defined が発生しました

それで、私は(x、y、z、w、s)= point1を試しました

これにより、アンパックするには値が多すぎるというエラーが発生しました。

私が試したもう一つのことは

これは最初の ( X 値全体ではなく...

解決策はありますか?

補遺 PT 2

それで何が起こるかはこれです:

これを入力すると

(, from (0.793803,0.136326,0,0.5,0) を引っ張っている理由がわかりません

プログラムは、x、y、z、w、s を入力すると、

x: '(' y: '0' z: '.' w: '7' s: '9' が必要です。これは必要ありません: x: 0.793803 y: 0.136326 z: 0 w: 0.5 s: 0

質問ばかりで申し訳ありませんが、よろしくお願いします

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

python - 出力を制御する

コードは次のとおりです。

これが私の出力です:

この出力から、変数'point1x'(0.136326)、変数point1y(0)、変数point1z(0.5)、変数point1w、(0)を変数point1sに割り当てることができるようにしたいと思います。

したがって、出力するだけでなく、(0.793803,0.136326,0,0.5,0)個別に値を取得したいのです。

それで:

誰かが私がこれを行う方法を知っていますか?