add some C keyword tokens

This commit is contained in:
Josh Holtrop 2018-04-06 12:03:17 -04:00
parent 3ead22e0cf
commit 8795d30953
2 changed files with 142 additions and 3 deletions

View File

@ -12,4 +12,75 @@
%%
\+ return TOK_PLUS;
- return TOK_MINUS;
\* return TOK_TIMES;
\/ return TOK_DIVIDE;
% return TOK_MOD;
\^ return TOK_XOR;
= return TOK_ASSIGN;
== return TOK_EQUALS;
!= return TOK_NOTEQUALS;
\< return TOK_LESS;
\<= return TOK_LESSEQ;
\> return TOK_GREATER;
\>= return TOK_GREATEREQ;
&& return TOK_AND;
\|\| return TOK_OR;
! return TOK_NOT;
; return TOK_SEMICOLON;
: return TOK_COLON;
\? return TOK_QUESTION;
\. return TOK_DOT;
, return TOK_COMMA;
\{ return TOK_LCURLY;
\} return TOK_RCURLY;
\[ return TOK_LBRACKET;
\] return TOK_RBRACKET;
\( return TOK_LPAREN;
\) return TOK_RPAREN;
void return TOK_VOID;
char return TOK_CHAR;
short return TOK_SHORT;
int return TOK_INT;
long return TOK_LONG;
float return TOK_FLOAT;
double return TOK_DOUBLE;
signed return TOK_SIGNED;
unsigned return TOK_UNSIGNED;
volatile return TOK_VOLATILE;
static return TOK_STATIC;
const return TOK_CONST;
extern return TOK_EXTERN;
auto return TOK_AUTO;
register return TOK_REGISTER;
inline return TOK_INLINE;
struct return TOK_STRUCT;
union return TOK_UNION;
enum return TOK_ENUM;
typedef return TOK_TYPEDEF;
if return TOK_IF;
else return TOK_ELSE;
while return TOK_WHILE;
for return TOK_FOR;
do return TOK_DO;
goto return TOK_GOTO;
return return TOK_RETURN;
switch return TOK_SWITCH;
case return TOK_CASE;
default return TOK_DEFAULT;
break return TOK_BREAK;
continue return TOK_CONTINUE;
sizeof return TOK_SIZEOF;
%%

View File

@ -15,12 +15,80 @@ static void handle_error(const char * str, const YYLTYPE * yylloc);
%locations
%error-verbose
%token PLUS;
%token MINUS;
%token TOK_PLUS;
%token TOK_MINUS;
%token TOK_TIMES;
%token TOK_DIVIDE;
%token TOK_MOD;
%token TOK_XOR;
%token TOK_ASSIGN;
%token TOK_EQUALS;
%token TOK_NOTEQUALS;
%token TOK_LESS;
%token TOK_LESSEQ;
%token TOK_GREATER;
%token TOK_GREATEREQ;
%token TOK_AND;
%token TOK_OR;
%token TOK_NOT;
%token TOK_SEMICOLON;
%token TOK_COLON;
%token TOK_QUESTION;
%token TOK_DOT;
%token TOK_COMMA;
%token TOK_LCURLY;
%token TOK_RCURLY;
%token TOK_LBRACKET;
%token TOK_RBRACKET;
%token TOK_LPAREN;
%token TOK_RPAREN;
%token TOK_VOID;
%token TOK_CHAR;
%token TOK_SHORT;
%token TOK_INT;
%token TOK_LONG;
%token TOK_FLOAT;
%token TOK_DOUBLE;
%token TOK_SIGNED;
%token TOK_UNSIGNED;
%token TOK_VOLATILE;
%token TOK_STATIC;
%token TOK_CONST;
%token TOK_EXTERN;
%token TOK_AUTO;
%token TOK_REGISTER;
%token TOK_INLINE;
%token TOK_STRUCT;
%token TOK_UNION;
%token TOK_ENUM;
%token TOK_TYPEDEF;
%token TOK_IF;
%token TOK_ELSE;
%token TOK_WHILE;
%token TOK_FOR;
%token TOK_DO;
%token TOK_GOTO;
%token TOK_RETURN;
%token TOK_SWITCH;
%token TOK_CASE;
%token TOK_DEFAULT;
%token TOK_BREAK;
%token TOK_CONTINUE;
%token TOK_SIZEOF;
%%
translation_unit: PLUS;
translation_unit: TOK_PLUS;
%%