プロジェクトに CUP パーサー ジェネレーターを使用することを検討しています。コンパイルしようとしている言語のいくつかの構造を正しく解析するには、シンボル テーブル (解析テーブルではなく、格納するテーブルを意味します) からの情報を使用するために (JFlex によって生成された) レクサーが必要です。 next_token() メソッドが呼び出されたときに正しいトークン タイプを生成するためのパーサーの識別子に関する情報)。シンボル テーブルの情報はプログラム テキストに静的に依存するため、これは next_token() メソッドがパーサーと「ロックステップで」呼び出された場合にのみ機能します。つまり、パーサーが別のトークンを必要とするたびにレクサーを呼び出す場合、これは機能しますが、(たとえば) レクサーを呼び出してトークンをキューにバッファリングする並列スレッドがある場合は機能しません。
したがって、問題は次のとおりです。CUP はどのようにレクサーを呼び出しますか? 次のトークンが必要なときはいつでもそれを呼び出しますか? もちろん、CUP 文法仕様を記述し、生成されたパーサーのソース ファイルを検査して何が起こっているかを確認することもできますが、それは必要以上の作業になる可能性があります。関連するウェブサイトでこれに関する情報を見つけることができませんでした。
あなたが提供できる助けをありがとう!