そのため、以下に説明するアプリケーションを生成するメイクファイルを作成し、生成された各ファイルに独自のルールがあることを確認する必要があります。
makefile の場合: 最初のツールは flex です。このツールは、 というファイルを受け取り、 というファイルspec.l
を生成しますlex.yy.c
。bison と呼ばれる別のツールは、ファイルを想定してファイルcalledspec.y
を生成しますspec.tab.c
。ディレクティブを使用して bison を呼び出すと、(lex.yy.c をコンパイルするときに必要な)-vd
というファイルも生成されます。spec.tab.h
2 つの C ファイルをオブジェクト ファイルにコンパイルし、yacc (-ly) および lex (-ll) ライブラリと一緒にリンクしてコンパイラ ( a.out
. .l と spec.y:
flex spec.l
bison -vd spec.y
gcc -c lex.yy.c
gcc -c spec.tab.c
gcc spec.tab.o lex.yy.o -ly -ll
この問題をどこから始めればよいかわかりません
編集:私がこれまでに持っているもの
compiler: spec.tab.o lex.yy.o
gcc spec.tab.o lex.yy.o -ly –ll
lex.yy.c: spec.l
flex spec.l
spec.tab.c: spec.y
bison -vd spec.y
spec.tab.o: spec.tab.c
gcc -c spec.tab.c
lex.yy.o: lex.yy.c spec.tab.h
gcc –c lex.yy.c
clean:
rm –f *.c *.o a.out