回答編集履歴

2

追記2

2022/08/01 14:15

投稿

kazuma-s
kazuma-s

スコア8224

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

追記

2022/07/21 13:31

投稿

kazuma-s
kazuma-s

スコア8224

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 になります。