diff --git a/src/support/UntypedLexer.mll b/src/support/UntypedLexer.mll index e9d9377..a1d24d0 100644 --- a/src/support/UntypedLexer.mll +++ b/src/support/UntypedLexer.mll @@ -34,6 +34,8 @@ rule read = parse | "->" { ARROW } | '(' { LPAR } | ')' { RPAR } + | '{' { LBRACE } + | '}' { RBRACE } | '*' { STAR } | ',' { COMMA } | '=' { EQ } diff --git a/src/support/UntypedParser.mly b/src/support/UntypedParser.mly index 3ad71d0..617a4bf 100644 --- a/src/support/UntypedParser.mly +++ b/src/support/UntypedParser.mly @@ -13,6 +13,8 @@ %token ARROW "->" %token LPAR "(" %token RPAR ")" +%token LBRACE "{" +%token RBRACE "}" %token STAR "*" %token COMMA "," %token EQ "=" @@ -96,7 +98,7 @@ let typ_arrow := let typ_atom := | x = tyvar ; { STLC.Constr (Structure.Var x) } - | "(" ; tys = separated_list ("*", typ) ; ")" ; + | "{" ; tys = separated_list ("*", typ) ; "}" ; { STLC.Constr (Structure.Prod tys) } | "(" ; ~ = typ ; ")" ; <>