include lex

This commit is contained in:
Scarlett
2025-05-04 17:33:59 -04:00
parent f43ab2452a
commit 3a33cc0f88
6 changed files with 22 additions and 3 deletions

BIN
a.out

Binary file not shown.

View File

@ -1,2 +0,0 @@
/* Code Generation File - Contains functions to generate assembly code */

View File

@ -87,6 +87,7 @@
%token RESERVE 613 %token RESERVE 613
%token RELEASE 614 %token RELEASE 614
%token COMMENT 700 %token COMMENT 700
%token INCLUDE 901
//precedence order //precedence order
%left ASSIGN %left ASSIGN
@ -106,6 +107,7 @@
program: program:
prototype_or_definition_list prototype_or_definition_list
| include_list prototype_or_definition_list
; ;
@ -123,7 +125,19 @@ prototype_or_definition_list:
prototype: prototype:
L_PAREN EXTERNAL R_PAREN FUNCTION ID COLON ID L_PAREN EXTERNAL R_PAREN FUNCTION ID COLON ID
;
include_list:
include_statement SEMI_COLON include_list
| include_statement
;
include_statement:
INCLUDE C_STRING SEMI_COLON
; ;

View File

@ -19,6 +19,8 @@ SCHAR \\n|\\t|\\\"|[^\"\n\\]
%% %%
"#include" { if(tok_flag != NULL) {print_tok(INCLUDE);} incr(line_number,column_number,INCLUDE); return INCLUDE; }
"integer" { if(tok_flag != NULL) {print_tok(T_INTEGER);} incr(line_number,column_number,T_INTEGER); yylval.tn = integ; return T_INTEGER; } "integer" { if(tok_flag != NULL) {print_tok(T_INTEGER);} incr(line_number,column_number,T_INTEGER); yylval.tn = integ; return T_INTEGER; }
"address" { if(tok_flag != NULL) {print_tok(T_ADDRESS);} incr(line_number,column_number,T_ADDRESS); yylval.tn = addr; return T_ADDRESS; } "address" { if(tok_flag != NULL) {print_tok(T_ADDRESS);} incr(line_number,column_number,T_ADDRESS); yylval.tn = addr; return T_ADDRESS; }
"Boolean" { if(tok_flag != NULL) {print_tok(T_INTEGER);} incr(line_number,column_number,T_INTEGER); yylval.tn = boo; return T_BOOLEAN; } "Boolean" { if(tok_flag != NULL) {print_tok(T_INTEGER);} incr(line_number,column_number,T_INTEGER); yylval.tn = boo; return T_BOOLEAN; }

View File

@ -57,3 +57,4 @@
#define COMMENT 700 #define COMMENT 700
//Additional tokens //Additional tokens
#define ACCESS 801 #define ACCESS 801
#define INCLUDE 901

View File

@ -0,0 +1,4 @@
(* TEST: [-tok -asc -tc] *)
#include "alpha.h";
#include "alpha.h";
#include "alpha.h";