some updates for yacc stuff

This commit is contained in:
Gitea 2020-12-11 00:56:13 -06:00
parent 0743955d90
commit 9b616c964b
1 changed files with 46 additions and 0 deletions

View File

@ -0,0 +1,46 @@
%{
#include <string.h>
#include "y.tab.h"
%}
%%
"/*"(\.)*"*/" ;
\n return NEWLINE;
\".\" yylval.string=strdup(yytext); return STRING;
[ \t] ;
\\\n ;
[0-9A-F]*(\.)?[0-9A-F]* yylval.number=atof(yytext); return NUMBER;
auto return AUTO;
break return BREAK;
define return DEFINE;
ibase return IBASE;
if return IF;
for return FOR;
length return LENGTH;
obase return OBASE;
quit return QUIT;
return return RETURN;
scale return SCALE;
sqrt return SQRT;
while return WHILE;
[a-z] yylval.letter_op=yytext[0]; return LETTER
[-+*/%^]?= return ASSIGN_OP;
=- ;
[*/%] yylval.letter_op=yytext[0]; return MUL_OP;
([=<>]?(=)?)|!= return REL_OP;
\+\+|-- yylval.num_op=strcmp(yytext, "++"); return INCR_DECR;
"(" return OPAREN;
")" return CPAREN;
, return COMMA;
"+" return PLUS;
- return MINUS;
; return SEMICOLON;
"[" return OSQR;
"]" return CSQR;
"^" return CARET;
"{" return OCURL;
"}" return CCURL;
<<EOF>> return EOF;
%%