updated grammar a bit

git-svn-id: svn://anubis/jtlc/trunk@5 f5bc74b8-7b62-4e90-9214-7121d538519f
This commit is contained in:
josh 2010-01-12 17:40:16 +00:00
parent 57c9bbbbea
commit e83a2f1f08
2 changed files with 15 additions and 6 deletions

View File

@ -12,6 +12,7 @@
/* operators */ /* operators */
:= return ASSIGN; := return ASSIGN;
::= return DASSIGN;
== return DEQUALS; == return DEQUALS;
\/ return DIVIDE; \/ return DIVIDE;
= return EQUALS; = return EQUALS;
@ -41,16 +42,16 @@
\) return RPAREN; \) return RPAREN;
/* literals */ /* literals */
-?[0-9]+ { [0-9]+ {
return INT_LITERAL; return INT_LITERAL;
} }
-?0x[0-9]+ { 0x[0-9A-Fa-f]+ {
return INT_LITERAL; return INT_LITERAL;
} }
-?0b[01]+ { 0b[01]+ {
return INT_LITERAL; return INT_LITERAL;
} }
-?[0-9]*\.[0-9]+([eE][0-9]+)? { [0-9]*\.[0-9]+([eE]-?[0-9]+)? {
return REAL_LITERAL; return REAL_LITERAL;
} }
@ -59,6 +60,8 @@ byte return BYTE;
ubyte return UBYTE; ubyte return UBYTE;
char return CHAR; char return CHAR;
wchar return WCHAR; wchar return WCHAR;
short return SHORT;
ushort return USHORT;
int return INT; int return INT;
uint return UINT; uint return UINT;
long return LONG; long return LONG;

View File

@ -27,6 +27,7 @@ int yywrap()
/* operators */ /* operators */
%token ASSIGN; %token ASSIGN;
%token DASSIGN;
%token DEQUALS; %token DEQUALS;
%token DIVIDE; %token DIVIDE;
%token EQUALS; %token EQUALS;
@ -64,6 +65,8 @@ int yywrap()
%token UBYTE; %token UBYTE;
%token CHAR; %token CHAR;
%token WCHAR; %token WCHAR;
%token SHORT;
%token USHORT;
%token INT; %token INT;
%token UINT; %token UINT;
%token LONG; %token LONG;
@ -114,7 +117,7 @@ import_name_more_more: IDENTIFIER import_name_more
| STAR | STAR
; ;
function: type IDENTIFIER LPAREN parameter_list RPAREN LCURLY function_items RCURLY function: IDENTIFIER LPAREN parameter_list RPAREN COLON type LCURLY function_items RCURLY
; ;
function_items: /* empty */ function_items: /* empty */
@ -133,6 +136,8 @@ primitive_type: BYTE
| UBYTE | UBYTE
| CHAR | CHAR
| WCHAR | WCHAR
| SHORT
| USHORT
| INT | INT
| UINT | UINT
| LONG | LONG
@ -152,7 +157,7 @@ struct_item: variable_declaration
variable_declaration: variable_spec SEMICOLON; variable_declaration: variable_spec SEMICOLON;
; ;
variable_spec: type IDENTIFIER variable_spec: IDENTIFIER COLON type
; ;
ptr_type: type STAR ptr_type: type STAR
@ -179,6 +184,7 @@ expression: assign_expr
; ;
assign_expr: lvalue ASSIGN expression assign_expr: lvalue ASSIGN expression
| lvalue DASSIGN expression
; ;
lvalue: IDENTIFIER lvalue: IDENTIFIER