added integer, fp, void types, ...

git-svn-id: svn://anubis/misc/llvm@72 bd8a9e45-a331-0410-811e-c64571078777
This commit is contained in:
josh 2008-11-07 01:16:52 +00:00
parent b1d084a242
commit e223ffa733
2 changed files with 83 additions and 5 deletions

View File

@ -25,7 +25,7 @@
\+ return PLUS;
- return MINUS;
\* return TIMES;
\* return STAR;
\/ return DIVIDE;
% return MOD;
@ -34,8 +34,10 @@
\? return QUESTION;
\$ return DOLLAR;
\. return DOT;
\.\.\. return DOTDOTDOT;
\" return DQUOTE;
\' return SQUOTE;
, return COMMA;
\{ return LCURLY;
\} return RCURLY;
@ -54,7 +56,24 @@ module return MODULE;
return return RETURN;
use return USE;
[a-zA-Z_][a-zA-Z_0-9]* return ID;
bool return U1;
u1 return U1;
i8 return I8;
u8 return U8;
i16 return I16;
u16 return U16;
i32 return I32;
u32 return U32;
i64 return I64;
u64 return U64;
float return FLOAT;
double return DOUBLE;
void return VOID;
\$[a-zA-Z_][a-zA-Z_0-9]* return FFIID;
[a-zA-Z_][a-zA-Z_0-9]* return ID;
\n /* ignore newlines */
[ \t\v] /* ignore whitespace */

View File

@ -46,7 +46,7 @@ int main(int argc, char * argv[])
%token PLUS;
%token MINUS;
%token TIMES;
%token STAR;
%token DIVIDE;
%token MOD;
@ -55,8 +55,10 @@ int main(int argc, char * argv[])
%token QUESTION;
%token DOLLAR;
%token DOT;
%token DOTDOTDOT;
%token DQUOTE;
%token SQUOTE;
%token COMMA;
%token LCURLY;
%token RCURLY;
@ -75,13 +77,71 @@ int main(int argc, char * argv[])
%token RETURN;
%token USE;
%token U1;
%token I8;
%token U8;
%token I16;
%token U16;
%token I32;
%token U32;
%token I64;
%token U64;
%token FLOAT;
%token DOUBLE;
%token VOID;
%token FFIID;
%token ID;
%%
program: /* empty */
| use program
| module program { printf("Saw a module declaration\n"); }
| ffidecl program { printf("Saw a ffidecl\n"); }
| number program { printf("Saw a number\n"); }
| assignment program { printf("Saw an assignment\n"); }
;
use: USE modname SEMICOLON;
module: MODULE modname SEMICOLON;
modname: ID more_modname ;
more_modname: /* empty */
| DOT ID more_modname
;
ffidecl: type FFIID DOT ID LPAREN arglist RPAREN SEMICOLON;
type: U1
| I8
| U8
| I16
| U16
| I32
| U32
| I64
| U64
| FLOAT
| DOUBLE
| ID
| type STAR
;
arglist: /* empty */
| var_decl more_arglist
;
more_arglist: /* empty */
| COMMA var_decl more_arglist
| COMMA DOTDOTDOT
;
var_decl: type ID ;
number: BIN_NUMBER
| OCT_NUMBER
@ -89,5 +149,4 @@ number: BIN_NUMBER
| HEX_NUMBER
;
assignment: ID ASSIGN number
;
assignment: ID ASSIGN number SEMICOLON ;