I am getting an error in my parser for a toy language I am making. Here is some of my parser code:
%union {
char* <sval>;
}
%token INTEGER
%token INTDEC FLODEC AS
%token <sval> VARIABLE
%token POINT LBRACKET RBRACKET
%token SHOW ESC
%left '+' '-'
%left '*' '/' MODULO FACTORIAL FLOOR
%left '^'
%code requires {
#define YYSTYPE float
}
And some of my lexer code:
as {return AS;}
float {return FLODEC;}
show {return SHOW;}
int {return INTDEC;}
esc {return ESC;}
\. {return POINT;}
{integer} {yylval = atoi(yytext); return INTEGER;}
[a-zA-Z]+ {yylval.sval = strdup(yytext); return VARIABLE;}
["\\"] {return FLOOR;}
[-+/=*^\n] {return *yytext;}
["("] {return LBRACKET;}
[")"] {return RBRACKET;}
["!"] {return FACTORIAL;}
["%%"] {return MODULO;}
[" \t\n"]
. {printf("Syntax error");}
How do I fix this as I think this is actually in a union but I am not sure what to do.