diff options
-rw-r--r-- | Makefile.am | 8 | ||||
-rw-r--r-- | src/lexer.l | 2 | ||||
-rw-r--r-- | src/parser.y | 22 |
3 files changed, 17 insertions, 15 deletions
diff --git a/Makefile.am b/Makefile.am index 974582d..adb07ca 100644 --- a/Makefile.am +++ b/Makefile.am @@ -28,10 +28,10 @@ libparser_a_SOURCES = \ src/parser.y \ $(NULL) -src/lexer.o: - @touch src/lexer.o - -BUILT_SOURCES = src/lexer.c src/libparser_a-parser.h +BUILT_SOURCES = \ + src/lexer.c \ + src/libparser_a-parser.h \ + $(NULL) submit_dir_name = hw submit_tarball_prefix = b01902054_b01902062 diff --git a/src/lexer.l b/src/lexer.l index 207b65e..9d0b9ee 100644 --- a/src/lexer.l +++ b/src/lexer.l @@ -3,7 +3,9 @@ #include <assert.h> #include <stdlib.h> #include <string.h> +#include "ast.h" #include "symbol-table.h" +#include "src/libparser_a-parser.h" #define SIZE_OF_ARR(x) (sizeof(x)/sizeof(x[0])) diff --git a/src/parser.y b/src/parser.y index 128788d..c705907 100644 --- a/src/parser.y +++ b/src/parser.y @@ -8,8 +8,13 @@ #include <string.h> #include "ast.h" +extern int yylex(void); +static void yyerror(const char *mesg); + AST_NODE *prog; +extern char *yytext; +extern int line_number; extern int g_anyErrorOccur; %} @@ -57,17 +62,6 @@ extern int g_anyErrorOccur; %right DL_RPAREN ELSE -%{ -#include "lexer.c" - -int yyerror (char *mesg) -{ - fprintf(stderr, "Error found in Line \t%d\tnext token: \t%s\n", - line_number, yytext); - exit(1); -} -%} - %type <node> program global_decl_list global_decl function_decl block stmt_list %type <node> decl_list decl var_decl type init_id_list init_id stmt relop_expr %type <node> relop_term relop_factor expr term factor var_ref param_list param @@ -693,3 +687,9 @@ dim_list : dim_list DL_LBRACK expr DL_RBRACK %% +static void yyerror(const char *mesg) +{ + fprintf(stderr, "Error found in Line \t%d\tnext token: \t%s\n", + line_number, yytext); + exit(1); +} |