aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/generator.c2
-rw-r--r--src/tpc.y3
2 files changed, 3 insertions, 2 deletions
diff --git a/src/generator.c b/src/generator.c
index 0040c02..3ecfe0d 100644
--- a/src/generator.c
+++ b/src/generator.c
@@ -225,7 +225,7 @@ void gen_if_end(int idx) {
225 225
226void gen_ifelse_end(int idx) { 226void gen_ifelse_end(int idx) {
227 fprintf(output, ".end_ifelse%d:\n", idx); 227 fprintf(output, ".end_ifelse%d:\n", idx);
228 fprintf(output, "ENDIF\n\n"); 228 fprintf(output, ";ENDIF\n\n");
229} 229}
230 230
231// ----- OPERATORS ----- 231// ----- OPERATORS -----
diff --git a/src/tpc.y b/src/tpc.y
index b5d0d35..d8fd1f1 100644
--- a/src/tpc.y
+++ b/src/tpc.y
@@ -23,6 +23,7 @@ static Type return_type = VOID_T;
23static int bss_done = 0; 23static int bss_done = 0;
24static int num_label = 0; 24static int num_label = 0;
25static int num_if = 0; 25static int num_if = 0;
26static int num_while = 0;
26static int nb_param[255]; 27static int nb_param[255];
27static int num_scope = -1; 28static int num_scope = -1;
28static char fname[64]; 29static char fname[64];
@@ -125,7 +126,7 @@ Instr:
125| PRINT '(' Exp ')' ';' { gen_print($<type>3);} 126| PRINT '(' Exp ')' ';' { gen_print($<type>3);}
126| IF '(' Exp IfHandling')' Instr { gen_if_label($<num>4); } 127| IF '(' Exp IfHandling')' Instr { gen_if_label($<num>4); }
127| IF '(' Exp IfHandling')' Instr ELSE IfEndHandling Instr IfElseEndHandling 128| IF '(' Exp IfHandling')' Instr ELSE IfEndHandling Instr IfElseEndHandling
128| WHILE '(' Exp ')' Instr 129| WHILE '(' Exp ')' Instr
129| '{' SuiteInstr '}' 130| '{' SuiteInstr '}'
130; 131;
131IfHandling: { gen_if_start($<num>$ = num_if++); }; 132IfHandling: { gen_if_start($<num>$ = num_if++); };