問題タブ [jflex]

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

parsing - Byacc でテキストを解析する

Higuys、Byacc を使用してテキストを解析したい。テキストはスペースと改行によって明確に作成されます。1 つのテキストを解析するためのこれらのルールについてどう思いますか?

トークン TEXT は Jflex ファイルにあり、1 つの単語を表します。他の 2 つのルール、空白と行はダウンしています。

私の「テキスト」のルールは間違っていますか?タクス

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

flex-lexer - JFLEX AND CUP、正常に動作しない

jflex と cup を使用して、html パーサーを作成しようとしていますが、正しく動作させることができません。

Netbeans, コンパイル プロセスは停止せず, 常に続行します. パース ツリーに "トークン" を正しく追加できません. また "TEXTO" にスペースを追加できません. これによりツリー全体が壊れます.

lexicoh.jlex

シンタティコーカップ

Java メイン

ありがとう ここに画像の説明を入力

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

regex - JFlex正規表現の特殊文字

JFlex の正規表現にすべての特殊文字を含めたい。そこで、以下のようなものを用意しました。

  1. すべての特殊文字をより最適化された方法でカバーする他の方法はありますか?

  2. また、上記の正規表現で「行末に未終了の文字列」が表示されているため、何が問題なのかを指摘してください。コンパイル時にエラー?

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

java - byaccj を使用して ast を構築する際のエラー

jflex と byaccj を使用して AST を構築しています。エラーを解決できず、型キャストを使用しましたが、エラーが続きます

文法の次の規則について:

そして、私は自分の.javaファイルでこれを宣言しました

エラーは次のとおりです。

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

java - CAD NC プログラムのレクサー

さまざまな形式のNC プログラムを入力として使用して、工具の動きを追跡する可能性を評価しています。lexer を使用してさまざまなプログラム タイプをメタ レイヤーにトークン化し、統一されたツールやポイントなどのみが存在するようにすることは、良い考えのように思えました。

しかし、

  • 私は字句解析について何も知りません。レクサーを作成する簡単な方法はありますか? たぶんEBNFから?
  • 私のアプローチについてどう思いますか? データを抽出し、複数の nc ファイル形式をサポートするためのより実行可能な方法はありますか?

追加情報

  • どのような具体的なNCプログラムが提供されているかという情報は予め分かっている。
  • NC プログラムの構文をチェックする必要はありません。それらはすでに本番環境で使用されているため、有効であると思います。
0 投票する
3 に答える
2171 参照

parsing - Java CUP と JFlex の相互作用

プロジェクトに CUP パーサー ジェネレーターを使用することを検討しています。コンパイルしようとしている言語のいくつかの構造を正しく解析するには、シンボル テーブル (解析テーブルではなく、格納するテーブルを意味します) からの情報を使用するために (JFlex によって生成された) レクサーが必要です。 next_token() メソッドが呼び出されたときに正しいトークン タイプを生成するためのパーサーの識別子に関する情報)。シンボル テーブルの情報はプログラム テキストに静的に依存するため、これは next_token() メソッドがパーサーと「ロックステップで」呼び出された場合にのみ機能します。つまり、パーサーが別のトークンを必要とするたびにレクサーを呼び出す場合、これは機能しますが、(たとえば) レクサーを呼び出してトークンをキューにバッファリングする並列スレッドがある場合は機能しません。

したがって、問題は次のとおりです。CUP はどのようにレクサーを呼び出しますか? 次のトークンが必要なときはいつでもそれを呼び出しますか? もちろん、CUP 文法仕様を記述し、生成されたパーサーのソース ファイルを検査して何が起こっているかを確認することもできますが、それは必要以上の作業になる可能性があります。関連するウェブサイトでこれに関する情報を見つけることができませんでした。

あなたが提供できる助けをありがとう!