diff options
author | Ting-Wei Lan <lantw44@gmail.com> | 2015-11-30 02:22:06 +0800 |
---|---|---|
committer | Ting-Wei Lan <lantw44@gmail.com> | 2015-11-30 02:28:14 +0800 |
commit | 91f04bf7a454171f1c37d2a42deada3af82fba55 (patch) | |
tree | cb0cd267e287a9651fbfb463dfa663fa2f091614 /src | |
parent | 60a45efca23c7b1339b4fd9f1673f5d1812dc132 (diff) | |
download | compiler2015-91f04bf7a454171f1c37d2a42deada3af82fba55.tar compiler2015-91f04bf7a454171f1c37d2a42deada3af82fba55.tar.gz compiler2015-91f04bf7a454171f1c37d2a42deada3af82fba55.tar.bz2 compiler2015-91f04bf7a454171f1c37d2a42deada3af82fba55.tar.lz compiler2015-91f04bf7a454171f1c37d2a42deada3af82fba55.tar.xz compiler2015-91f04bf7a454171f1c37d2a42deada3af82fba55.tar.zst compiler2015-91f04bf7a454171f1c37d2a42deada3af82fba55.zip |
Don't include lexer.c and move yyerror to the end of file
Diffstat (limited to 'src')
-rw-r--r-- | src/lexer.l | 2 | ||||
-rw-r--r-- | src/parser.y | 22 |
2 files changed, 13 insertions, 11 deletions
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); +} |