summaryrefslogtreecommitdiff
path: root/src/urweb.grm
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adam@chlipala.net>2010-10-10 20:33:10 -0400
committerGravatar Adam Chlipala <adam@chlipala.net>2010-10-10 20:33:10 -0400
commit4e608544ebe87dd991d53ded5267f14f5df93b8b (patch)
tree4de957d9837f39c79ebc56b5ac2935e31a28d0b5 /src/urweb.grm
parent42d55420b84994ee61c0a4645d21d275dbbea2cd (diff)
:::_ notation; switch to TooDeep error message
Diffstat (limited to 'src/urweb.grm')
-rw-r--r--src/urweb.grm12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/urweb.grm b/src/urweb.grm
index 0c85ad7f..21c4a50c 100644
--- a/src/urweb.grm
+++ b/src/urweb.grm
@@ -212,7 +212,7 @@ fun tnamesOf (e, _) =
| STRING of string | INT of Int64.int | FLOAT of Real64.real | CHAR of char
| SYMBOL of string | CSYMBOL of string
| LPAREN | RPAREN | LBRACK | RBRACK | LBRACE | RBRACE
- | EQ | COMMA | COLON | DCOLON | DCOLONWILD | TCOLON | DOT | HASH | UNDER | UNDERUNDER | BAR
+ | EQ | COMMA | COLON | DCOLON | DCOLONWILD | TCOLON | TCOLONWILD | DOT | HASH | UNDER | UNDERUNDER | BAR
| PLUS | MINUS | DIVIDE | DOTDOTDOT | MOD | AT
| CON | LTYPE | VAL | REC | AND | FUN | MAP | UNIT | KUNIT | CLASS
| DATATYPE | OF
@@ -394,7 +394,7 @@ fun tnamesOf (e, _) =
%left ANDALSO
%left ORELSE
%nonassoc COLON
-%nonassoc DCOLON TCOLON
+%nonassoc DCOLON TCOLON DCOLONWILD TCOLONWILD
%left UNION INTERSECT EXCEPT
%right COMMA
%right JOIN INNER CROSS OUTER LEFT RIGHT FULL
@@ -1111,6 +1111,14 @@ earga : LBRACK SYMBOL RBRACK (fn (e, t) =>
((ECAbs (kcolon, SYMBOL, kind, e), loc),
(TCFun (kcolon, SYMBOL, kind, t), loc))
end)
+ | LBRACK SYMBOL TCOLONWILD RBRACK (fn (e, t) =>
+ let
+ val loc = s (LBRACKleft, RBRACKright)
+ val kind = (KWild, loc)
+ in
+ ((ECAbs (Implicit, SYMBOL, kind, e), loc),
+ (TCFun (Implicit, SYMBOL, kind, t), loc))
+ end)
| LBRACK cexp TWIDDLE cexp RBRACK(fn (e, t) =>
let
val loc = s (LBRACKleft, RBRACKright)