5 #include "dynstrings.h"
12 yylloc.first_line = yylloc.last_line = yylineno;
13 yylloc.first_column = yycolumn;
14 yylloc.last_column = yycolumn + yyleng - 1;
18 #define YY_USER_ACTION set_yylloc();
25 HEXNUM "0x"+[0-9A-Fa-f]+
27 ID [a-zA-Z][0-9A-Za-z_]*
28 PARS "("|")"|"{"|"}"|"["|"]"
29 OPERATOR "+"|"-"|"*"|"/"|"%"|"&"|"|"|"^"|"!"|">>"|"<<"|"<"|">"|"=="|"$"|"="|","
38 yylval.node = node_new();
39 yylval.node->id = NODE_IF;
43 yylval.node = node_new();
44 yylval.node->id = NODE_WHILE;
48 yylval.node = node_new();
49 yylval.node->id = NODE_RETURN;
53 yylval.node = node_new();
54 yylval.node->id = NODE_PUSH_BOOL;
55 node_set(yylval.node, strdup("True"));
59 yylval.node = node_new();
60 yylval.node->id = NODE_PUSH_BOOL;
61 node_set(yylval.node, strdup("False"));
65 yylval.node = node_new();
66 yylval.node->id = NODE_PUSH_DEC;
67 node_set(yylval.node, strdup(yytext));
71 yylval.node = node_new();
72 yylval.node->id = NODE_PUSH_HEX;
73 node_set(yylval.node, strdup(yytext));
77 yylval.node = node_new();
78 yylval.node->id = NODE_PUSH_STR;
79 node_set(yylval.node, strdup(yytext));
83 yylval.node = node_new();
84 yylval.node->id = NODE_PUSH_VAR;
85 node_set(yylval.node, strdup(yytext));
92 if (strcmp(yytext, "<<") == 0) return SHL;
93 if (strcmp(yytext, ">>") == 0) return SHR;
94 if (strcmp(yytext, "==") == 0) return EQU;
104 core_error(str_printf("Error: [Line %d] Illegal character! (\"%s\")\n", yylineno, yytext));