回答編集履歴
2
追記2
test
CHANGED
@@ -10,3 +10,11 @@
|
|
10
10
|
**追記**
|
11
11
|
質問とは無関係ですが、質問の yacc ファイルだと
|
12
12
|
`print 2 - 3 * 4;` が -10 ではなく、-4 になります。
|
13
|
+
|
14
|
+
**追記2**
|
15
|
+
`printf(".Lprompt%d: .string \"%s> \"\n", ++k, stab[ntab[i].left].name);`
|
16
|
+
|
17
|
+
ntab[i].type が T_READ のとき、ntab[i].left には変数の番号が入っています。
|
18
|
+
変数の番号とは、stab[] に変数名を登録した時の番号です。
|
19
|
+
したがって、stab[ntab[i].left].name は変数名です。
|
20
|
+
printf は分かりますよね。
|
1
追記
test
CHANGED
@@ -7,3 +7,6 @@
|
|
7
7
|
+ printf(" .text\n");
|
8
8
|
+ printf(" movq $.Lprompt%d,%%rdi\n", k);
|
9
9
|
```
|
10
|
+
**追記**
|
11
|
+
質問とは無関係ですが、質問の yacc ファイルだと
|
12
|
+
`print 2 - 3 * 4;` が -10 ではなく、-4 になります。
|