Lecture de non

This commit is contained in:
Adrien Vannson 2022-05-08 18:18:36 +02:00
parent a5d820319a
commit 136da4a898
No known key found for this signature in database
GPG Key ID: FE2E66FD978C1A55
2 changed files with 4 additions and 1 deletions

View File

@ -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 }

View File

@ -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) }