#include <stdio.h>
#include "ast.h"
-#define YYSTYPE struct ast *
#include "y.tab.h"
extern YYSTYPE yylval;
else return ELSE;
while return WHILE;
var return VAR;
-true { yylval = ast_bool(true); return BOOL; }
-false { yylval = ast_bool(false); return BOOL; }
+true { yylval.expr = expr_bool(true); return BOOL; }
+false { yylval.expr = expr_bool(false); return BOOL; }
return return RETURN;
= return ASSIGN;
! return INVERSE;
\. return DOT;
, return COMMA;
'([^']|\\[abtnvfr]|\\x[0-9a-fA-F]{2})' {
- yylval = ast_char(yytext); return CHAR; }
+ yylval.expr = expr_char(yytext); return CHAR; }
[0-9]+ {
- yylval = ast_int(atoi(yytext)); return INTEGER; }
+ yylval.expr = expr_int(atoi(yytext)); return INTEGER; }
[_a-zA-Z][_a-zA-Z0-9]* {
- yylval = ast_identc(yytext); return IDENT; }
+ yylval.ident = safe_strdup(yytext); return IDENT; }
[ \n\t] ;
%%