問題タブ [tatsu]

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

parsing - Tatsu で Generator CodeGen を使用する

文法からモデル コードとパーサーを生成しましたが、モデルを Python で生成されたコードに変更できません。私の EBNF 文法は、XML または ANSI X12 の変換ファイルの「C」構文のようなスクリプト コードです。これは言語固有のものであり、このスクリプトから Tatsu を使用して Python コードを生成したいと考えています。スクリプトを解析しましたが、パーサーまたはモデルを使用して生成された Python ソース コードを使用することができません...モデルを保存するか、パーサーを生成された Python コードに変更する必要がある場所... tools.py が表示されます...コピーできますか新しいコードモデルを構築するためのコード... 助けてくれませんか... Pythonの学習を開始し、スクリプトのアップロードとPythonコードのダウンロードを使用して、このソリューションをWebサイトに実装する必要があります。

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

bnf - 式の優先順位を実装する方法 Bakus-Naur Form

ドキュメントで説明されているこの種の文法があります。

文字列を解析しようとしたときに次の結果が得られるように、文法を正しく記述する方法:

文字列の場合、True'######'の結果が得られ(['#', '#', '#', '#', '#'], '#')ます (最初のルールが機能します) 。

文字列の場合'#####%'、結果(['#', '#', '#', '#'], '#')は False になるはずです(['#', '#', '#', '#'], '#%')(最初に機能しましたが、2 番目のルールである必要がありました)。

文字列の場合、True'000000'という結果が得られ(['0', '0', '0', '0', '0'], '0')ます (3 番目のルールが機能します) 。

文字列の場合、False'###000'という結果が得られます(最初に機能しましたが、5 番目のルールである必要がありました)。(['#', '#'], '#')

ドキュメントに記載されているルールはばかげていますか、それとも何か間違っていますか?