added integer, fp, void types, ...
git-svn-id: svn://anubis/misc/llvm@72 bd8a9e45-a331-0410-811e-c64571078777
This commit is contained in:
parent
b1d084a242
commit
e223ffa733
21
jlc/jlc.lex
21
jlc/jlc.lex
@ -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,6 +56,23 @@ module return MODULE;
|
||||
return return RETURN;
|
||||
use return USE;
|
||||
|
||||
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 */
|
||||
|
65
jlc/jlc.y
65
jlc/jlc.y
@ -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 ;
|
||||
|
Loading…
x
Reference in New Issue
Block a user