From ecafbf713a07a6eb9a79dbf036b0cf734ff3578e Mon Sep 17 00:00:00 2001 From: Scarlett Date: Wed, 23 Apr 2025 15:55:08 -0400 Subject: [PATCH] init branch --- src/grammar.h | 10 ++++++++++ src/lexicalStructure.h | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 src/grammar.h create mode 100644 src/lexicalStructure.h 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