プロジェクト内で複数のFlex/Bisonパーサーを処理する最良の方法は何ですか?複数のフレックス/バイソンパーサー
私はパーサーを作成しましたが、今は同じプロジェクトで2番目のパーサーが必要です。これまでのところ、parser1.y
の3番目のセクションでは、main(..)
メソッドを挿入し、そこからyyparse
を呼び出しました。私は2つの異なるパーサ(parser1.y
とparser2.y
)を有するされ得ると外部関数からそれらを使用することができるようにしたいどのような
(のはmain.cpp
でmain
を想定してみましょう)。
yyparse
のファイルを.y
のファイルの外にエクスポートする際に使用する予防措置と、2つのパーサーをどのように処理する必要がありますか?
PS。私はg ++を使ってコンパイルしていますが、FlexやBisonのC++バージョンではありません。このようにしておきたいのです(オブジェクト内にパーサをカプセル化しないでください)。
これを行うと、レクサーとパーサーにはYYTYPEやYYSTYPEなどの参照がたくさんあり、コンパイルに失敗します。なぜ変換されていないのですか?私は何を間違えているのですか?私はリエントラントパーサーを望んでいません、私はちょうど2つのパーサーのうちの1つを呼び出す1回限りのパーサを必要とし、その後プログラムは終了します。 – TimeHorse
@TimeHorse:この質問に回答してからあなたのコメント/質問が出るまでの時間を考えれば、新しい質問をする必要があります。小さなレクサー/文法の2つの例(MCVE - [MCVE ])、使用しているビルドプロセスと表示されているエラーメッセージを表示します。あなたが新しい質問を得てその情報を提供する機会を奪わなければ、私は本当に答えを出すことはできません。是非、あなたの新しい質問を見て欲しいとここにコメントしておいてください。この質問へのリンクもあなたのものに含めることを検討してください。 –