From 412a03deed9d3cff93f6fdba1c0beab160f2feab Mon Sep 17 00:00:00 2001
From: zhaochaoyi <1251887477@qq.com>
Date: Thu, 28 Apr 2022 09:51:00 +0800
Subject: [PATCH] fix L2 bug: struct redine  lvalue  function Declration

---
 Code/lex.yy.c     |  87 ++++++-------
 Code/main.c       |   2 +-
 Code/parser       | Bin 81528 -> 81528 bytes
 Code/semantic.c   |  14 ++-
 Code/syntax.tab.c | 310 +++++++++++++++++++++++-----------------------
 Code/syntax.tab.h |   4 +-
 6 files changed, 212 insertions(+), 205 deletions(-)

diff --git a/Code/lex.yy.c b/Code/lex.yy.c
index fbcf034..9e287e1 100644
--- a/Code/lex.yy.c
+++ b/Code/lex.yy.c
@@ -1,5 +1,6 @@
+#line 1 "./lex.yy.c"
 
-#line 2 "lex.yy.c"
+#line 3 "./lex.yy.c"
 
 #define  YY_INT_ALIGNED short int
 
@@ -547,8 +548,8 @@ int yy_flex_debug = 0;
 #define YY_MORE_ADJ 0
 #define YY_RESTORE_YY_MORE_OFFSET
 char *yytext;
-#line 1 "lexical.l"
-#line 4 "lexical.l"
+#line 1 "./lexical.l"
+#line 4 "./lexical.l"
     #include <stdio.h>
     #include "debug.h"
     #include "syntax.tab.h"
@@ -559,8 +560,8 @@ char *yytext;
     extern int syntax;
     int last_lineno = 0,cur_lineno = 0;
     static Node_t* add_node_text(char * content,char *text,int len);
-#line 562 "lex.yy.c"
-#line 563 "lex.yy.c"
+#line 563 "./lex.yy.c"
+#line 564 "./lex.yy.c"
 
 #define INITIAL 0
 
@@ -777,9 +778,9 @@ YY_DECL
 		}
 
 	{
-#line 47 "lexical.l"
+#line 47 "./lexical.l"
 
-#line 782 "lex.yy.c"
+#line 783 "./lex.yy.c"
 
 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
 		{
@@ -848,163 +849,163 @@ do_action:	/* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 48 "lexical.l"
+#line 48 "./lexical.l"
 { ELEMENT("STRUCT"); return STRUCT; }
 	YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 49 "lexical.l"
+#line 49 "./lexical.l"
 { ELEMENT("RETURN"); return RETURN; }
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 50 "lexical.l"
+#line 50 "./lexical.l"
 { ELEMENT("IF"); return IF; }
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 51 "lexical.l"
+#line 51 "./lexical.l"
 { ELEMENT("ELSE"); return ELSE; }
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 52 "lexical.l"
+#line 52 "./lexical.l"
 { ELEMENT("WHILE"); return WHILE; }
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 53 "lexical.l"
+#line 53 "./lexical.l"
 { ELEMENT("TYPE"); return TYPE; }
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 54 "lexical.l"
+#line 54 "./lexical.l"
 { ELEMENT("INT"); return INT;}
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 55 "lexical.l"
+#line 55 "./lexical.l"
 { ELEMENT("FLOAT"); return FLOAT;}
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 56 "lexical.l"
+#line 56 "./lexical.l"
 { ELEMENT("ID"); return ID; }
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 57 "lexical.l"
+#line 57 "./lexical.l"
 { ELEMENT("SEMI"); return SEMI;}
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 58 "lexical.l"
+#line 58 "./lexical.l"
 { ELEMENT("COMMA"); return COMMA;}
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 59 "lexical.l"
+#line 59 "./lexical.l"
 { ELEMENT("ASSIGNOP"); return ASSIGNOP;}
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 60 "lexical.l"
+#line 60 "./lexical.l"
 { ELEMENT("RELOP"); return RELOP;}
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 61 "lexical.l"
+#line 61 "./lexical.l"
 { ELEMENT("PLUS"); return PLUS;}
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 62 "lexical.l"
+#line 62 "./lexical.l"
 { ELEMENT("MINUS"); return MINUS;}
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 63 "lexical.l"
+#line 63 "./lexical.l"
 { ELEMENT("STAR"); return STAR;}
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 64 "lexical.l"
+#line 64 "./lexical.l"
 { ELEMENT("DIV"); return DIV;}
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 65 "lexical.l"
+#line 65 "./lexical.l"
 { ELEMENT("AND"); return AND;}
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 66 "lexical.l"
+#line 66 "./lexical.l"
 { ELEMENT("OR"); return OR;}
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 67 "lexical.l"
+#line 67 "./lexical.l"
 { ELEMENT("DOT"); return DOT;}
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 68 "lexical.l"
+#line 68 "./lexical.l"
 { ELEMENT("NOT"); return NOT;}
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 69 "lexical.l"
+#line 69 "./lexical.l"
 { ELEMENT("LP"); return LP;}
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 70 "lexical.l"
+#line 70 "./lexical.l"
 { ELEMENT("RP"); return RP;}
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 71 "lexical.l"
+#line 71 "./lexical.l"
 { ELEMENT("LB"); return LB;}
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 72 "lexical.l"
+#line 72 "./lexical.l"
 { ELEMENT("RB"); return RB;}
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 73 "lexical.l"
+#line 73 "./lexical.l"
 { ELEMENT("LC"); return LC;}
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 74 "lexical.l"
+#line 74 "./lexical.l"
 { ELEMENT("RC"); return RC;}
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 75 "lexical.l"
+#line 75 "./lexical.l"
 { }
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 76 "lexical.l"
+#line 76 "./lexical.l"
 { yycolumn += 3; }
 	YY_BREAK
 case 30:
 /* rule 30 can match eol */
 YY_RULE_SETUP
-#line 77 "lexical.l"
+#line 77 "./lexical.l"
 { yycolumn = 1;  }
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 78 "lexical.l"
+#line 78 "./lexical.l"
 { char c = input(); while(c != '\n') { c = input(); }  }
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 79 "lexical.l"
+#line 79 "./lexical.l"
 {   
                 char c1 = input(),c2 = input();
                 if (c1 == '\n') {
@@ -1025,15 +1026,15 @@ YY_RULE_SETUP
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 96 "lexical.l"
+#line 96 "./lexical.l"
 { LexicalError("%s",yytext); syntax++; }
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 98 "lexical.l"
+#line 98 "./lexical.l"
 ECHO;
 	YY_BREAK
-#line 1036 "lex.yy.c"
+#line 1037 "./lex.yy.c"
 case YY_STATE_EOF(INITIAL):
 	yyterminate();
 
@@ -2050,7 +2051,7 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 98 "lexical.l"
+#line 98 "./lexical.l"
 
 
 int yywrap()
diff --git a/Code/main.c b/Code/main.c
index 14ff2c5..1c7f331 100755
--- a/Code/main.c
+++ b/Code/main.c
@@ -32,7 +32,7 @@ int main(int argc,char *argv[]) {
         fclose(f);
         semantic_check->init();
         if (syntax == 0) {
-            tree->traverse(tree->root,0);
+            //tree->traverse(tree->root,0);
             semantic_check->main(tree->root);
 
             //test->main();
diff --git a/Code/parser b/Code/parser
index 3f0977a0326d525de22670bcd839f61eef72ee1e..976dccf2f40a5ec61330d648bd56c885e18ab054 100755
GIT binary patch
delta 21580
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
BnjZiF

delta 21594
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
U8kQ}}(e;XQj(pup*;?ZN1EVC$Z2$lO

diff --git a/Code/semantic.c b/Code/semantic.c
index 7a609e0..7a59e4e 100644
--- a/Code/semantic.c
+++ b/Code/semantic.c
@@ -128,7 +128,7 @@ static int Semantic_Check_Insert_Node(unit_t * cur) {
     unit_t * find = symbol_table->find(cur->name);
     if(nodeop->IsStructDef(cur)) {
 //        cur->deep = 1;
-        if(find && find->deep == symbol_stack->stack_size) {
+        if(find && (find->deep == symbol_stack->stack_size || find->type->kind == STRUCTURE)) {
             ErrorHandling(16,cur->line,cur->name);
             nodeop->delete(cur,INFONODE);
             return 0;
@@ -142,7 +142,7 @@ static int Semantic_Check_Insert_Node(unit_t * cur) {
                 if(cur->type->kind == FUNC_IMPL || cur->type->kind == FUNC_DECL) {
                     if(!(find->type->kind == FUNC_IMPL && cur->type->kind == FUNC_IMPL)) {
                         if(nodeop->equal(find,cur)) {
-                            find->type->kind = cur->type->kind;
+                            find->type->kind = FUNC_IMPL;
                         } else {
                             ErrorHandling(19,cur->line,cur->name);
                         }
@@ -166,7 +166,11 @@ static int Semantic_Check_Insert_Node(unit_t * cur) {
         nodeop->delete(cur,cur->node_type);
         return 0;
     } else {
-        symbol_table->insert(cur);
+        if(find && find->type->kind == STRUCTURE) {
+            ErrorHandling(3,cur->line,cur->name);
+        } else {
+            symbol_table->insert(cur);
+        }
         return 1;
     }
 }
@@ -485,7 +489,9 @@ static void Semantic_Check_Exp(Node_t * root) {
         if(!type_ops->type_equal(left_type,right_type)) {
             ErrorHandling(5,mid->line,mid->text);
         }
-        if(!type(left->lchild,"ID") && !type(left->rchild,"RB") && !(type(left->lchild->right,"DOT"))) {
+        Node_t * ll = left;
+        while (ll->lchild) { ll = ll->lchild; }
+        if(!type(ll,"ID") || (type(ll,"ID") && type(ll->right,"LP"))) {
             ErrorHandling(6,mid->line,mid->text);
         }
         ret = left_type;
diff --git a/Code/syntax.tab.c b/Code/syntax.tab.c
index c129f59..cb7583d 100644
--- a/Code/syntax.tab.c
+++ b/Code/syntax.tab.c
@@ -67,7 +67,7 @@
 
 
 /* First part of user prologue.  */
-#line 1 "syntax.y"
+#line 1 "./syntax.y"
 
     int yycolumn = 1;
     #define YY_USER_ACTION \
@@ -77,7 +77,7 @@
                 yycolumn += yyleng;
     //#define YYDEBUG 1
     //int yydebug = 1;
-#line 12 "syntax.y"
+#line 12 "./syntax.y"
 
     #include <stdio.h>
     #include "lex.yy.c"
@@ -92,7 +92,7 @@
     extern int syntax;
 
 
-#line 96 "syntax.tab.c"
+#line 96 "./syntax.tab.c"
 
 # ifndef YY_CAST
 #  ifdef __cplusplus
@@ -1368,457 +1368,457 @@ yyreduce:
   switch (yyn)
     {
   case 2: /* Program: ExtDefList  */
-#line 105 "syntax.y"
+#line 105 "./syntax.y"
                                     { tree->root = (yyval.node) = Operator((yyval.node),"Program",(yyloc).first_line,1,(yyvsp[0].node)); }
-#line 1374 "syntax.tab.c"
+#line 1374 "./syntax.tab.c"
     break;
 
   case 3: /* ExtDefList: ExtDef ExtDefList  */
-#line 107 "syntax.y"
+#line 107 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"ExtDefList",(yyloc).first_line,2,(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1380 "syntax.tab.c"
+#line 1380 "./syntax.tab.c"
     break;
 
   case 4: /* ExtDefList: %empty  */
-#line 108 "syntax.y"
+#line 108 "./syntax.y"
                                     { (yyval.node) = NULL; }
-#line 1386 "syntax.tab.c"
+#line 1386 "./syntax.tab.c"
     break;
 
   case 5: /* ExtDef: Specifier ExtDecList SEMI  */
-#line 110 "syntax.y"
+#line 110 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"ExtDef",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1392 "syntax.tab.c"
+#line 1392 "./syntax.tab.c"
     break;
 
   case 6: /* ExtDef: Specifier SEMI  */
-#line 111 "syntax.y"
+#line 111 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"ExtDef",(yyloc).first_line,2,(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1398 "syntax.tab.c"
+#line 1398 "./syntax.tab.c"
     break;
 
   case 7: /* ExtDef: Specifier FunDec CompSt  */
-#line 112 "syntax.y"
+#line 112 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"ExtDef",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1404 "syntax.tab.c"
+#line 1404 "./syntax.tab.c"
     break;
 
   case 8: /* ExtDef: Specifier FunDec SEMI  */
-#line 113 "syntax.y"
+#line 113 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"ExtDef",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1410 "syntax.tab.c"
+#line 1410 "./syntax.tab.c"
     break;
 
   case 9: /* ExtDef: error SEMI  */
-#line 114 "syntax.y"
+#line 114 "./syntax.y"
                                     { (yyval.node) = NULL;yyerror("ExtDef"); }
-#line 1416 "syntax.tab.c"
+#line 1416 "./syntax.tab.c"
     break;
 
   case 10: /* ExtDef: Specifier error  */
-#line 115 "syntax.y"
+#line 115 "./syntax.y"
                                     { (yyval.node) = NULL;yyerror("ExtDef,missing ;"); }
-#line 1422 "syntax.tab.c"
+#line 1422 "./syntax.tab.c"
     break;
 
   case 11: /* ExtDef: Specifier error SEMI  */
-#line 116 "syntax.y"
+#line 116 "./syntax.y"
                                     { (yyval.node) = NULL;yyerror("ExtDef"); }
-#line 1428 "syntax.tab.c"
+#line 1428 "./syntax.tab.c"
     break;
 
   case 12: /* ExtDef: Specifier error CompSt  */
-#line 117 "syntax.y"
+#line 117 "./syntax.y"
                                     { (yyval.node) = NULL;yyerror("ExtDef"); }
-#line 1434 "syntax.tab.c"
+#line 1434 "./syntax.tab.c"
     break;
 
   case 13: /* ExtDecList: VarDec  */
-#line 119 "syntax.y"
+#line 119 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"ExtDecList",(yyloc).first_line,1,(yyvsp[0].node)); }
-#line 1440 "syntax.tab.c"
+#line 1440 "./syntax.tab.c"
     break;
 
   case 14: /* ExtDecList: VarDec COMMA ExtDecList  */
-#line 120 "syntax.y"
+#line 120 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"ExtDecList",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1446 "syntax.tab.c"
+#line 1446 "./syntax.tab.c"
     break;
 
   case 15: /* Specifier: TYPE  */
-#line 125 "syntax.y"
+#line 125 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Specifier",(yyloc).first_line,1,(yyvsp[0].node)); }
-#line 1452 "syntax.tab.c"
+#line 1452 "./syntax.tab.c"
     break;
 
   case 16: /* Specifier: StructSpecifier  */
-#line 126 "syntax.y"
+#line 126 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Specifier",(yyloc).first_line,1,(yyvsp[0].node)); }
-#line 1458 "syntax.tab.c"
+#line 1458 "./syntax.tab.c"
     break;
 
   case 17: /* StructSpecifier: STRUCT OptTag LC DefList RC  */
-#line 128 "syntax.y"
+#line 128 "./syntax.y"
                                                 { (yyval.node) = Operator((yyval.node),"StructSpecifier",(yyloc).first_line,5,(yyvsp[-4].node),(yyvsp[-3].node),(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1464 "syntax.tab.c"
+#line 1464 "./syntax.tab.c"
     break;
 
   case 18: /* StructSpecifier: STRUCT Tag  */
-#line 129 "syntax.y"
+#line 129 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"StructSpecifier",(yyloc).first_line,2,(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1470 "syntax.tab.c"
+#line 1470 "./syntax.tab.c"
     break;
 
   case 19: /* OptTag: ID  */
-#line 131 "syntax.y"
+#line 131 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"OptTag",(yyloc).first_line,1,(yyvsp[0].node)); }
-#line 1476 "syntax.tab.c"
+#line 1476 "./syntax.tab.c"
     break;
 
   case 20: /* OptTag: %empty  */
-#line 132 "syntax.y"
+#line 132 "./syntax.y"
                                     { (yyval.node) = NULL; }
-#line 1482 "syntax.tab.c"
+#line 1482 "./syntax.tab.c"
     break;
 
   case 21: /* Tag: ID  */
-#line 134 "syntax.y"
+#line 134 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Tag",(yyloc).first_line,1,(yyvsp[0].node)); }
-#line 1488 "syntax.tab.c"
+#line 1488 "./syntax.tab.c"
     break;
 
   case 22: /* VarDec: ID  */
-#line 138 "syntax.y"
+#line 138 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"VarDec",(yyloc).first_line,1,(yyvsp[0].node)); }
-#line 1494 "syntax.tab.c"
+#line 1494 "./syntax.tab.c"
     break;
 
   case 23: /* VarDec: VarDec LB INT RB  */
-#line 139 "syntax.y"
+#line 139 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"VarDec",(yyloc).first_line,4,(yyvsp[-3].node),(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1500 "syntax.tab.c"
+#line 1500 "./syntax.tab.c"
     break;
 
   case 24: /* VarDec: VarDec LB error RB  */
-#line 140 "syntax.y"
+#line 140 "./syntax.y"
                                     { (yyval.node) = NULL; yyerror("VarDec"); }
-#line 1506 "syntax.tab.c"
+#line 1506 "./syntax.tab.c"
     break;
 
   case 25: /* FunDec: ID LP VarList RP  */
-#line 142 "syntax.y"
+#line 142 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"FunDec",(yyloc).first_line,4,(yyvsp[-3].node),(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1512 "syntax.tab.c"
+#line 1512 "./syntax.tab.c"
     break;
 
   case 26: /* FunDec: ID LP RP  */
-#line 143 "syntax.y"
+#line 143 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"FunDec",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1518 "syntax.tab.c"
+#line 1518 "./syntax.tab.c"
     break;
 
   case 27: /* FunDec: ID LP error RP  */
-#line 144 "syntax.y"
+#line 144 "./syntax.y"
                                     { (yyval.node) = NULL; yyerror("FunDec"); }
-#line 1524 "syntax.tab.c"
+#line 1524 "./syntax.tab.c"
     break;
 
   case 28: /* FunDec: error LP VarList RP  */
-#line 145 "syntax.y"
+#line 145 "./syntax.y"
                                     { (yyval.node) = NULL; yyerror("FunDec"); }
-#line 1530 "syntax.tab.c"
+#line 1530 "./syntax.tab.c"
     break;
 
   case 29: /* VarList: ParamDec COMMA VarList  */
-#line 147 "syntax.y"
+#line 147 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"VarList",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1536 "syntax.tab.c"
+#line 1536 "./syntax.tab.c"
     break;
 
   case 30: /* VarList: ParamDec  */
-#line 148 "syntax.y"
+#line 148 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"VarList",(yyloc).first_line,1,(yyvsp[0].node)); }
-#line 1542 "syntax.tab.c"
+#line 1542 "./syntax.tab.c"
     break;
 
   case 31: /* ParamDec: Specifier VarDec  */
-#line 150 "syntax.y"
+#line 150 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"ParamDec",(yyloc).first_line,2,(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1548 "syntax.tab.c"
+#line 1548 "./syntax.tab.c"
     break;
 
   case 32: /* CompSt: LC DefList StmtList RC  */
-#line 155 "syntax.y"
+#line 155 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"CompSt",(yyloc).first_line,4,(yyvsp[-3].node),(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1554 "syntax.tab.c"
+#line 1554 "./syntax.tab.c"
     break;
 
   case 33: /* CompSt: LC DefList error RC  */
-#line 156 "syntax.y"
+#line 156 "./syntax.y"
                                     { (yyval.node) = NULL; yyerror("CompSt"); }
-#line 1560 "syntax.tab.c"
+#line 1560 "./syntax.tab.c"
     break;
 
   case 34: /* StmtList: Stmt StmtList  */
-#line 158 "syntax.y"
+#line 158 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"StmtList",(yyloc).first_line,2,(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1566 "syntax.tab.c"
+#line 1566 "./syntax.tab.c"
     break;
 
   case 35: /* StmtList: %empty  */
-#line 159 "syntax.y"
+#line 159 "./syntax.y"
                                     { (yyval.node) = NULL; }
-#line 1572 "syntax.tab.c"
+#line 1572 "./syntax.tab.c"
     break;
 
   case 36: /* Stmt: Exp SEMI  */
-#line 161 "syntax.y"
+#line 161 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Stmt",(yyloc).first_line,2,(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1578 "syntax.tab.c"
+#line 1578 "./syntax.tab.c"
     break;
 
   case 37: /* Stmt: CompSt  */
-#line 162 "syntax.y"
+#line 162 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Stmt",(yyloc).first_line,1,(yyvsp[0].node)); }
-#line 1584 "syntax.tab.c"
+#line 1584 "./syntax.tab.c"
     break;
 
   case 38: /* Stmt: RETURN Exp SEMI  */
-#line 163 "syntax.y"
+#line 163 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Stmt",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1590 "syntax.tab.c"
+#line 1590 "./syntax.tab.c"
     break;
 
   case 39: /* Stmt: IF LP Exp RP Stmt  */
-#line 164 "syntax.y"
+#line 164 "./syntax.y"
                                                 { (yyval.node) = Operator((yyval.node),"Stmt",(yyloc).first_line,5,(yyvsp[-4].node),(yyvsp[-3].node),(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1596 "syntax.tab.c"
+#line 1596 "./syntax.tab.c"
     break;
 
   case 40: /* Stmt: IF LP Exp RP Stmt ELSE Stmt  */
-#line 165 "syntax.y"
+#line 165 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Stmt",(yyloc).first_line,7,(yyvsp[-6].node),(yyvsp[-5].node),(yyvsp[-4].node),(yyvsp[-3].node),(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1602 "syntax.tab.c"
+#line 1602 "./syntax.tab.c"
     break;
 
   case 41: /* Stmt: WHILE LP Exp RP Stmt  */
-#line 166 "syntax.y"
+#line 166 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Stmt",(yyloc).first_line,5,(yyvsp[-4].node),(yyvsp[-3].node),(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1608 "syntax.tab.c"
+#line 1608 "./syntax.tab.c"
     break;
 
   case 42: /* Stmt: error SEMI  */
-#line 167 "syntax.y"
+#line 167 "./syntax.y"
                                     { (yyval.node) = NULL; yyerror("1Stmt"); }
-#line 1614 "syntax.tab.c"
+#line 1614 "./syntax.tab.c"
     break;
 
   case 43: /* Stmt: Exp error  */
-#line 168 "syntax.y"
+#line 168 "./syntax.y"
                                     { (yyval.node) = NULL; yyerror("2Stmt"); }
-#line 1620 "syntax.tab.c"
+#line 1620 "./syntax.tab.c"
     break;
 
   case 44: /* Stmt: IF LP Exp error RP Stmt  */
-#line 169 "syntax.y"
+#line 169 "./syntax.y"
                                     { (yyval.node) = NULL; yyerror("3Stmt"); }
-#line 1626 "syntax.tab.c"
+#line 1626 "./syntax.tab.c"
     break;
 
   case 45: /* Stmt: RETURN error SEMI  */
-#line 170 "syntax.y"
+#line 170 "./syntax.y"
                                     { (yyval.node) = NULL; yyerror("4Stmt"); }
-#line 1632 "syntax.tab.c"
+#line 1632 "./syntax.tab.c"
     break;
 
   case 46: /* Stmt: RETURN Exp error  */
-#line 171 "syntax.y"
+#line 171 "./syntax.y"
                                     { (yyval.node) = NULL; yyerror("5Stmt"); }
-#line 1638 "syntax.tab.c"
+#line 1638 "./syntax.tab.c"
     break;
 
   case 47: /* DefList: Def DefList  */
-#line 176 "syntax.y"
+#line 176 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"DefList",(yyloc).first_line,2,(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1644 "syntax.tab.c"
+#line 1644 "./syntax.tab.c"
     break;
 
   case 48: /* DefList: %empty  */
-#line 177 "syntax.y"
+#line 177 "./syntax.y"
                                     { (yyval.node) = NULL; }
-#line 1650 "syntax.tab.c"
+#line 1650 "./syntax.tab.c"
     break;
 
   case 49: /* Def: Specifier DecList SEMI  */
-#line 179 "syntax.y"
+#line 179 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Def",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1656 "syntax.tab.c"
+#line 1656 "./syntax.tab.c"
     break;
 
   case 50: /* Def: Specifier error SEMI  */
-#line 180 "syntax.y"
+#line 180 "./syntax.y"
                                     { (yyval.node) = NULL; yyerror("Def"); }
-#line 1662 "syntax.tab.c"
+#line 1662 "./syntax.tab.c"
     break;
 
   case 51: /* Def: Specifier DecList error SEMI  */
-#line 181 "syntax.y"
+#line 181 "./syntax.y"
                                     { (yyval.node) = NULL; yyerror("Def"); }
-#line 1668 "syntax.tab.c"
+#line 1668 "./syntax.tab.c"
     break;
 
   case 52: /* DecList: Dec  */
-#line 183 "syntax.y"
+#line 183 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"DecList",(yyloc).first_line,1,(yyvsp[0].node)); }
-#line 1674 "syntax.tab.c"
+#line 1674 "./syntax.tab.c"
     break;
 
   case 53: /* DecList: Dec COMMA DecList  */
-#line 184 "syntax.y"
+#line 184 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"DecList",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1680 "syntax.tab.c"
+#line 1680 "./syntax.tab.c"
     break;
 
   case 54: /* Dec: VarDec  */
-#line 186 "syntax.y"
+#line 186 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Dec",(yyloc).first_line,1,(yyvsp[0].node)); }
-#line 1686 "syntax.tab.c"
+#line 1686 "./syntax.tab.c"
     break;
 
   case 55: /* Dec: VarDec ASSIGNOP Exp  */
-#line 187 "syntax.y"
+#line 187 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Dec",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1692 "syntax.tab.c"
+#line 1692 "./syntax.tab.c"
     break;
 
   case 56: /* Exp: Exp ASSIGNOP Exp  */
-#line 192 "syntax.y"
+#line 192 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Exp",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1698 "syntax.tab.c"
+#line 1698 "./syntax.tab.c"
     break;
 
   case 57: /* Exp: Exp AND Exp  */
-#line 193 "syntax.y"
+#line 193 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Exp",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1704 "syntax.tab.c"
+#line 1704 "./syntax.tab.c"
     break;
 
   case 58: /* Exp: Exp OR Exp  */
-#line 194 "syntax.y"
+#line 194 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Exp",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1710 "syntax.tab.c"
+#line 1710 "./syntax.tab.c"
     break;
 
   case 59: /* Exp: Exp RELOP Exp  */
-#line 195 "syntax.y"
+#line 195 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Exp",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1716 "syntax.tab.c"
+#line 1716 "./syntax.tab.c"
     break;
 
   case 60: /* Exp: Exp PLUS Exp  */
-#line 196 "syntax.y"
+#line 196 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Exp",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1722 "syntax.tab.c"
+#line 1722 "./syntax.tab.c"
     break;
 
   case 61: /* Exp: Exp MINUS Exp  */
-#line 197 "syntax.y"
+#line 197 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Exp",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1728 "syntax.tab.c"
+#line 1728 "./syntax.tab.c"
     break;
 
   case 62: /* Exp: Exp STAR Exp  */
-#line 198 "syntax.y"
+#line 198 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Exp",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1734 "syntax.tab.c"
+#line 1734 "./syntax.tab.c"
     break;
 
   case 63: /* Exp: Exp DIV Exp  */
-#line 199 "syntax.y"
+#line 199 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Exp",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1740 "syntax.tab.c"
+#line 1740 "./syntax.tab.c"
     break;
 
   case 64: /* Exp: LP Exp RP  */
-#line 200 "syntax.y"
+#line 200 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Exp",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1746 "syntax.tab.c"
+#line 1746 "./syntax.tab.c"
     break;
 
   case 65: /* Exp: MINUS Exp  */
-#line 201 "syntax.y"
+#line 201 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Exp",(yyloc).first_line,2,(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1752 "syntax.tab.c"
+#line 1752 "./syntax.tab.c"
     break;
 
   case 66: /* Exp: NOT Exp  */
-#line 202 "syntax.y"
+#line 202 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Exp",(yyloc).first_line,2,(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1758 "syntax.tab.c"
+#line 1758 "./syntax.tab.c"
     break;
 
   case 67: /* Exp: ID LP Args RP  */
-#line 203 "syntax.y"
+#line 203 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Exp",(yyloc).first_line,4,(yyvsp[-3].node),(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1764 "syntax.tab.c"
+#line 1764 "./syntax.tab.c"
     break;
 
   case 68: /* Exp: ID LP RP  */
-#line 204 "syntax.y"
+#line 204 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Exp",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1770 "syntax.tab.c"
+#line 1770 "./syntax.tab.c"
     break;
 
   case 69: /* Exp: Exp LB Exp RB  */
-#line 205 "syntax.y"
+#line 205 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Exp",(yyloc).first_line,4,(yyvsp[-3].node),(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1776 "syntax.tab.c"
+#line 1776 "./syntax.tab.c"
     break;
 
   case 70: /* Exp: Exp DOT ID  */
-#line 206 "syntax.y"
+#line 206 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Exp",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1782 "syntax.tab.c"
+#line 1782 "./syntax.tab.c"
     break;
 
   case 71: /* Exp: ID  */
-#line 207 "syntax.y"
+#line 207 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Exp",(yyloc).first_line,1,(yyvsp[0].node)); }
-#line 1788 "syntax.tab.c"
+#line 1788 "./syntax.tab.c"
     break;
 
   case 72: /* Exp: INT  */
-#line 208 "syntax.y"
+#line 208 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Exp",(yyloc).first_line,1,(yyvsp[0].node)); }
-#line 1794 "syntax.tab.c"
+#line 1794 "./syntax.tab.c"
     break;
 
   case 73: /* Exp: FLOAT  */
-#line 209 "syntax.y"
+#line 209 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Exp",(yyloc).first_line,1,(yyvsp[0].node)); }
-#line 1800 "syntax.tab.c"
+#line 1800 "./syntax.tab.c"
     break;
 
   case 74: /* Args: Exp COMMA Args  */
-#line 211 "syntax.y"
+#line 211 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Args",(yyloc).first_line,3,(yyvsp[-2].node),(yyvsp[-1].node),(yyvsp[0].node)); }
-#line 1806 "syntax.tab.c"
+#line 1806 "./syntax.tab.c"
     break;
 
   case 75: /* Args: Exp  */
-#line 212 "syntax.y"
+#line 212 "./syntax.y"
                                     { (yyval.node) = Operator((yyval.node),"Args",(yyloc).first_line,1,(yyvsp[0].node)); }
-#line 1812 "syntax.tab.c"
+#line 1812 "./syntax.tab.c"
     break;
 
   case 76: /* Args: error Args  */
-#line 213 "syntax.y"
+#line 213 "./syntax.y"
                                     { (yyval.node) = NULL; yyerror("Wrong Args"); }
-#line 1818 "syntax.tab.c"
+#line 1818 "./syntax.tab.c"
     break;
 
 
-#line 1822 "syntax.tab.c"
+#line 1822 "./syntax.tab.c"
 
       default: break;
     }
@@ -2016,7 +2016,7 @@ yyreturnlab:
   return yyresult;
 }
 
-#line 216 "syntax.y"
+#line 216 "./syntax.y"
 
 
 
diff --git a/Code/syntax.tab.h b/Code/syntax.tab.h
index e4f7015..37c6ded 100644
--- a/Code/syntax.tab.h
+++ b/Code/syntax.tab.h
@@ -91,11 +91,11 @@ extern int yydebug;
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 union YYSTYPE
 {
-#line 28 "syntax.y"
+#line 28 "./syntax.y"
 
     struct Tree_node_t * node;
 
-#line 99 "syntax.tab.h"
+#line 99 "./syntax.tab.h"
 
 };
 typedef union YYSTYPE YYSTYPE;
-- 
GitLab