From 136da4a898e9b03c69988aa62bc49c66ff9f5700 Mon Sep 17 00:00:00 2001 From: Adrien Vannson Date: Sun, 8 May 2022 18:18:36 +0200 Subject: [PATCH] Lecture de non --- lexer.mll | 1 + parser.mly | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lexer.mll b/lexer.mll index 38c4182..82e5051 100644 --- a/lexer.mll +++ b/lexer.mll @@ -8,6 +8,7 @@ rule token = parse | '(' { LPAREN } | ')' { RPAREN } | "->" { RARROW } + | '~' { TILDE } | ['a'-'z']+['0'-'9']* as s { VAR_NAME s } | ['A'-'Z']+['0'-'9']* as s { TYPE_NAME s } | eof { EOF } diff --git a/parser.mly b/parser.mly index cb7f610..0c3eced 100644 --- a/parser.mly +++ b/parser.mly @@ -3,13 +3,14 @@ %} /* Description des lexèmes définis dans lexer.mll */ -%token LPAREN RPAREN RARROW +%token LPAREN RPAREN RARROW TILDE %token VAR_NAME %token TYPE_NAME %token ENDL EOF /* L'ordre de définition définit la priorité */ %left RARROW +%nonassoc TILDE %start main_type %type main_type @@ -24,3 +25,4 @@ ty: | LPAREN ty RPAREN { $2 } | ty RARROW ty { TImpl ($1, $3) } | TYPE_NAME { TSimple $1 } + | TILDE ty { TImpl ($2, TFalse) }