問題タブ [parser-generator]
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.
state-machine - LR ステート マシン パーサーを作成するにはどうすればよいですか?
LRパーサージェネレーターを作成して遊んでみたいと思っています。文法からステート マシン テーブルを作成する方法を説明している優れた (無料の) リソースを知っている人はいますか?
c++ - boost.org の Spirit パーサー ジェネレーター フレームワークの欠点は何ですか?
いくつかの質問で、 boost.orgからのSpiritパーサー ジェネレーター フレームワークの推奨事項を見てきましたが、コメントには、満足していない Spirit を使用している人々からの不平があります。それらの人々は立ち上がって、スピリットを使用することの欠点や欠点を私たちに説明してくれませんか?
c++ - C++ で文字列を解析する方法
文字列を解析して、構文が指定されているかどうかを確認したい。
例:
ここで私の要件は、その後Z
に数字があり、その後に-
aR
があり、その後に数字が続きl
、その後に 、スペースが続き、最後にt
.
これ以外の場合は、エラーになるはずです。
このようなさまざまな種類の構文を解析する必要があります。必要な構文の種類ごとに関数を作成すると、気まずくなります。この問題は yacc や lex で解決できると聞きました。
誰でも私の問題に光を当てることができますか?
java - コードを解析して Java でコンパイラを構築するにはどうすればよいですか?
コンパイラを書く必要があります。大学の宿題です。先生は、それが良いものである限り、コードの解析を行いたい任意の API を使用できると教えてくれました。そうすれば、生成する JVM に集中できます。
そうです、Java でコンパイラを作成して Java を生成します。
これに適したAPIを知っていますか? 正規表現を使用する必要がありますか? このシナリオではお勧めできませんが、私は通常、独自のパーサーを手動で作成します。
どんな助けでも大歓迎です。
python - 適切な Ruby/Python パーサー ジェネレーターを見つけるのを手伝ってください
私が最初に使用したパーサー ジェネレーターは Parse::RecDescent で、これに使用できるガイド/チュートリアルは素晴らしかったですが、最も便利な機能はデバッグ ツール、特にトレース機能 ( $RD_TRACE を 1 に設定することでアクティブ化されます) でした。 )。ルールのデバッグに役立つパーサー ジェネレーターを探しています。
問題は、Python または Ruby で記述され、冗長モード/トレース モードまたは非常に役立つデバッグ テクニックを備えている必要があるということです。
そのようなパーサージェネレーターを知っている人はいますか?
EDIT:デバッグと言ったとき、PythonやRubyのデバッグについて言及していませんでした。私はパーサー ジェネレーターのデバッグについて言及していました。すべてのステップで何を行っているかを確認し、読み取っているすべての文字を確認し、一致させようとしているルールを確認しました。ポイントを理解していただければ幸いです。
報奨金の編集: 報奨金を獲得するには、パーサー ジェネレーター フレームワークを表示し、そのデバッグ機能の一部を説明してください。繰り返しますが、私は pdb には興味がありませんが、パーサーのデバッグ フレームワークには興味があります。また、梢について言及しないでください。私はそれに興味がありません。
c# - 真理値表ジェネレーターを構築するにはどうすればよいですか?
個人的なプロジェクトとして真理値表ジェネレーターを書きたいと思っています。
こことここに Web ベースのオンラインのものがいくつかあります。
(Example screenshot of an existing Truth Table Generator
)
次の質問があります。
- ((P => Q) & (Q => R)) => (P => R)のような式を解析するにはどうすればよいですか?
- ANTLr や YACC などのパーサー ジェネレーターを使用する必要がありますか、それとも正規表現をそのまま使用する必要がありますか?
- 式を解析したら、真理値表を生成するにはどうすればよいですか? 式の各セクションを最小のコンポーネントに分割し、テーブルの左側から右側に再構築する必要があります。そのようなものをどのように評価しますか?
これらの任意の式の解析と最終的に解析された式の評価に関するヒントを教えてもらえますか?
regex - パーサジェネレータを使用する場合、正規表現で十分なのはいつですか?
私はまだコンピュータサイエンスの形式言語の分野に慣れていないので、私の質問はばかげているかもしれません。私はC++で単純なNMEAパーサーを書いていますが、次のものを選択する必要があります。
私の最初のアイデアは、単純な有限状態マシンを手動で構築することでしたが、それから、より少ない作業で、さらに効率的にそれを行うことができるのではないかと思いました。以前は正規表現を使用していましたが、NMEAの正規表現は非常に長く、一致させるには「長い時間」かかると思います。
次に、パーサジェネレータを使用することを考えました。私はすべて同じ方法を使用していると思います:それらはFSAを生成します。しかし、どちらがより効率的かはわかりません。通常、正規表現の代わりにパーサジェネレータを使用するのはいつですか(パーサジェネレータで正規表現を記述できると思います)。
違いを説明してください、私は理論と経験の両方に興味があります。
c# - 優れたC#コンパイラ-コンパイラ/パーサジェネレータとは何ですか?
LL(k)言語のEBNFを指定すると、C#パーサーが提供され、EBNFで定義された型のクラスが生成されるパーサージェネレーターを探しています。
delphi - Delphi用のパーサジェネレータ?
誰かがwin32Delphiコードを生成するパーサジェネレータをお勧めできますか?私がやろうとしているのは、単純なドメイン固有言語を作成することです。