diff --git a/src/parser/parser.l b/src/parser/parser.l index d9e6cb5..155c0e5 100644 --- a/src/parser/parser.l +++ b/src/parser/parser.l @@ -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; + %% diff --git a/src/parser/parser.y b/src/parser/parser.y index ee97e17..507ee01 100644 --- a/src/parser/parser.y +++ b/src/parser/parser.y @@ -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; %%