diff --git a/src/grammar.h b/src/grammar.h new file mode 100644 index 0000000..58cedbd --- /dev/null +++ b/src/grammar.h @@ -0,0 +1,10 @@ +#ifndef GRAMMAR_H +#define GRAMMAR_H + +#include "../src/runner.h" + +void yyerror(const char *err); +int token_tracker; +TableNode * tn; + +#endif \ No newline at end of file diff --git a/src/lexicalStructure.h b/src/lexicalStructure.h new file mode 100644 index 0000000..c7baafe --- /dev/null +++ b/src/lexicalStructure.h @@ -0,0 +1,33 @@ +#ifndef LEXICALSTRUCTURE_H +#define LEXICALSTRUCTURE_H + +#include "../tmp/grammar.tab.h" +#include "../src/symbol_table.h" + +extern SymbolTable * cur; +extern FILE* tok_flag; +extern TableNode *funprime; +extern TableNode *funtypeprime; +extern TableNode *arrayprim; +extern TableNode *recprime; +extern TableNode *integ; +extern TableNode *addr; +extern TableNode *chara; +extern TableNode *stri; +extern TableNode *boo; +extern TableNode *undefined; +extern void incr(int lnum,int cnum, int tok); +extern void print_tok(int tok); + +extern int line_number; +extern int column_number; +extern int yycolumn; +#define YY_USER_ACTION { \ + yylloc.first_line = yylineno; \ + yylloc.last_line = yylineno; \ + yylloc.first_column = yycolumn; \ + yylloc.last_column = yycolumn + yyleng - 1; \ + yycolumn += yyleng; \ +} + +#endif \ No newline at end of file