1

私の大学のプロジェクトの一環として、C コンパイラを開発することになっています。レクサーとパーサーの部分は終わりです。ツール Flex と Bison のおかげで、困難な作業がはるかに簡単になりました。今、私たちが立ち往生しているのは、プロジェクトを進めることができないということです。これらの 3 つのファイルが手元にある場合、正確にはどのように処理を進めればよいでしょうか。

  • y.tab.h
  • y.tab.c
  • lex.yy.c

また、DOS プロンプトで次のコマンドを使用して、実行可能ファイルを作成することもできました。

gcc lex.yy.c y.tab.c -o example1

そして、実行可能なexample.exeを取得しました...コンパイラを実行するにはどうすればよいですか? ユーザー C コードをビルドするにはどうすればよいですか?

4

1 に答える 1

2

example.exeC プログラムを読み取れるかどうかを確認し、構文エラーを報告する必要があります。

できない場合は、.yおよび/または.lファイルを修正して、もう一度やり直してください。

できれば、パーサーが動作しています。これを動作するコンパイラに変えます。セマンティック アクションと呼ばれるコードを.yファイルに追加し続け、コンパイラの機能をますます実装します。まず、無効な型や宣言の欠落などのセマンティックエラーを報告できることを確認します。次に、アセンブリ コード生成を実装します。

.yファイルが大きくなりすぎた場合は、一部のコードを関数に変換し、別の.cファイルに移動します。

于 2012-11-23T15:55:26.563 に答える