宣言、算術、ブール、if、while ステートメントを含む ac のようなプログラムの 3 つのアドレス コードを生成しています。現在、私は算術式から始めています。テキストファイルからcのようなプログラムを読んでいます。
レックスコード:
Yacc コード:
Cライクなプログラムを入力(test.txtの内容)
a=1+2/3;
次のようなメイクファイルがあります。
bison -d -v parser.y
flex -o parser.lex.c parser.lex
gcc -o cparser parser.lex.c parser.tab.c -lfl -lm
./cparser
入力ファイルをコンパイルすると、次の出力が得られます。
t1=2/3/3
t2=1+2/3;+t1
a=1+2/3;=t2
Parsing Successful. The three address code is:
syntax error
Successful parsing.
- $1 $2 $3...などに希望の削減額が含まれていないのはなぜですか?
- stderr 印刷構文エラーはなぜですか?