Lecture de non
This commit is contained in:
parent
a5d820319a
commit
136da4a898
@ -8,6 +8,7 @@ rule token = parse
|
|||||||
| '(' { LPAREN }
|
| '(' { LPAREN }
|
||||||
| ')' { RPAREN }
|
| ')' { RPAREN }
|
||||||
| "->" { RARROW }
|
| "->" { RARROW }
|
||||||
|
| '~' { TILDE }
|
||||||
| ['a'-'z']+['0'-'9']* as s { VAR_NAME s }
|
| ['a'-'z']+['0'-'9']* as s { VAR_NAME s }
|
||||||
| ['A'-'Z']+['0'-'9']* as s { TYPE_NAME s }
|
| ['A'-'Z']+['0'-'9']* as s { TYPE_NAME s }
|
||||||
| eof { EOF }
|
| eof { EOF }
|
||||||
|
|||||||
@ -3,13 +3,14 @@
|
|||||||
%}
|
%}
|
||||||
|
|
||||||
/* Description des lexèmes définis dans lexer.mll */
|
/* Description des lexèmes définis dans lexer.mll */
|
||||||
%token LPAREN RPAREN RARROW
|
%token LPAREN RPAREN RARROW TILDE
|
||||||
%token <string> VAR_NAME
|
%token <string> VAR_NAME
|
||||||
%token <string> TYPE_NAME
|
%token <string> TYPE_NAME
|
||||||
%token ENDL EOF
|
%token ENDL EOF
|
||||||
|
|
||||||
/* L'ordre de définition définit la priorité */
|
/* L'ordre de définition définit la priorité */
|
||||||
%left RARROW
|
%left RARROW
|
||||||
|
%nonassoc TILDE
|
||||||
|
|
||||||
%start main_type
|
%start main_type
|
||||||
%type <Structs.ty> main_type
|
%type <Structs.ty> main_type
|
||||||
@ -24,3 +25,4 @@ ty:
|
|||||||
| LPAREN ty RPAREN { $2 }
|
| LPAREN ty RPAREN { $2 }
|
||||||
| ty RARROW ty { TImpl ($1, $3) }
|
| ty RARROW ty { TImpl ($1, $3) }
|
||||||
| TYPE_NAME { TSimple $1 }
|
| TYPE_NAME { TSimple $1 }
|
||||||
|
| TILDE ty { TImpl ($2, TFalse) }
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user