回答編集履歴

2

コードの修正

2022/01/10 09:57

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -20,17 +20,19 @@
20
20
 
21
21
  backP2 = genCodeV(jmp, 0); // ★
22
22
 
23
- backPatch(backP); /* 上のjpc命令にバックパッチ */
23
+ backPatch(backP); //
24
24
 
25
25
  token = nextToken(); // ★
26
26
 
27
27
  statement(); // ★
28
28
 
29
+ backPatch(backP2); // ★
30
+
29
31
  } // ★
30
32
 
31
33
  else // ★
32
34
 
33
- backPatch(backP); //
35
+ backPatch(backP); /* 上のjpc命令にバックパッチ */
34
36
 
35
37
  return;
36
38
 

1

コードの修正

2022/01/10 09:57

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -14,17 +14,23 @@
14
14
 
15
15
  statement(); /* 文のコンパイル */
16
16
 
17
- backPatch(backP); /* 上のjpc命令にバックパッチ */
17
+ token = nextToken(); //
18
18
 
19
- token = nextToken(); // ★
19
+ if (token == Else) { // ★
20
20
 
21
- if (token == Else) { // ★
21
+ backP2 = genCodeV(jmp, 0); // ★
22
22
 
23
- token = nextToken(); //
23
+ backPatch(backP); /* 上のjpc命令にバックパッチ */
24
24
 
25
- statement(); // ★
25
+ token = nextToken(); // ★
26
26
 
27
+ statement(); // ★
28
+
27
- }
29
+ } // ★
30
+
31
+ else // ★
32
+
33
+ backPatch(backP); // ★
28
34
 
29
35
  return;
30
36