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 PLUS;
|
||||||
- return MINUS;
|
- return MINUS;
|
||||||
\* return TIMES;
|
\* return STAR;
|
||||||
\/ return DIVIDE;
|
\/ return DIVIDE;
|
||||||
% return MOD;
|
% return MOD;
|
||||||
|
|
||||||
@ -34,8 +34,10 @@
|
|||||||
\? return QUESTION;
|
\? return QUESTION;
|
||||||
\$ return DOLLAR;
|
\$ return DOLLAR;
|
||||||
\. return DOT;
|
\. return DOT;
|
||||||
|
\.\.\. return DOTDOTDOT;
|
||||||
\" return DQUOTE;
|
\" return DQUOTE;
|
||||||
\' return SQUOTE;
|
\' return SQUOTE;
|
||||||
|
, return COMMA;
|
||||||
|
|
||||||
\{ return LCURLY;
|
\{ return LCURLY;
|
||||||
\} return RCURLY;
|
\} return RCURLY;
|
||||||
@ -54,6 +56,23 @@ module return MODULE;
|
|||||||
return return RETURN;
|
return return RETURN;
|
||||||
use return USE;
|
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;
|
[a-zA-Z_][a-zA-Z_0-9]* return ID;
|
||||||
|
|
||||||
\n /* ignore newlines */
|
\n /* ignore newlines */
|
||||||
|
65
jlc/jlc.y
65
jlc/jlc.y
@ -46,7 +46,7 @@ int main(int argc, char * argv[])
|
|||||||
|
|
||||||
%token PLUS;
|
%token PLUS;
|
||||||
%token MINUS;
|
%token MINUS;
|
||||||
%token TIMES;
|
%token STAR;
|
||||||
%token DIVIDE;
|
%token DIVIDE;
|
||||||
%token MOD;
|
%token MOD;
|
||||||
|
|
||||||
@ -55,8 +55,10 @@ int main(int argc, char * argv[])
|
|||||||
%token QUESTION;
|
%token QUESTION;
|
||||||
%token DOLLAR;
|
%token DOLLAR;
|
||||||
%token DOT;
|
%token DOT;
|
||||||
|
%token DOTDOTDOT;
|
||||||
%token DQUOTE;
|
%token DQUOTE;
|
||||||
%token SQUOTE;
|
%token SQUOTE;
|
||||||
|
%token COMMA;
|
||||||
|
|
||||||
%token LCURLY;
|
%token LCURLY;
|
||||||
%token RCURLY;
|
%token RCURLY;
|
||||||
@ -75,13 +77,71 @@ int main(int argc, char * argv[])
|
|||||||
%token RETURN;
|
%token RETURN;
|
||||||
%token USE;
|
%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;
|
%token ID;
|
||||||
|
|
||||||
%%
|
%%
|
||||||
|
|
||||||
program: /* empty */
|
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"); }
|
| number program { printf("Saw a number\n"); }
|
||||||
| assignment program { printf("Saw an assignment\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
|
number: BIN_NUMBER
|
||||||
| OCT_NUMBER
|
| OCT_NUMBER
|
||||||
@ -89,5 +149,4 @@ number: BIN_NUMBER
|
|||||||
| HEX_NUMBER
|
| HEX_NUMBER
|
||||||
;
|
;
|
||||||
|
|
||||||
assignment: ID ASSIGN number
|
assignment: ID ASSIGN number SEMICOLON ;
|
||||||
;
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user