diff options
author | 2008-06-08 14:25:27 -0400 | |
---|---|---|
committer | 2008-06-08 14:25:27 -0400 | |
commit | 33cf695e0ba9586f05242b7d3595c94ed5c99b98 (patch) | |
tree | 2107ff15033d8138633b227ee9e6323c7346b788 /src/lacweb.grm | |
parent | 59cf4e73d9d6998ea4a83aa38c75c95ed462779f (diff) |
Unification wildcards
Diffstat (limited to 'src/lacweb.grm')
-rw-r--r-- | src/lacweb.grm | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lacweb.grm b/src/lacweb.grm index 12cc0378..0c491bc3 100644 --- a/src/lacweb.grm +++ b/src/lacweb.grm @@ -39,7 +39,7 @@ val s = ErrorMsg.spanOf | STRING of string | INT of Int64.int | FLOAT of Real64.real | SYMBOL of string | CSYMBOL of string | LPAREN | RPAREN | LBRACK | RBRACK | LBRACE | RBRACE - | EQ | COMMA | COLON | DCOLON | TCOLON | DOT | HASH + | EQ | COMMA | COLON | DCOLON | TCOLON | DOT | HASH | UNDER | UNDERUNDER | CON | LTYPE | VAL | TYPE | NAME | ARROW | LARROW | DARROW @@ -102,6 +102,7 @@ kind : TYPE (KType, s (TYPEleft, TYPEright)) | LBRACE kind RBRACE (KRecord kind, s (LBRACEleft, RBRACEright)) | kind ARROW kind (KArrow (kind1, kind2), s (kind1left, kind2right)) | LPAREN kind RPAREN (#1 kind, s (LPARENleft, RPARENright)) + | UNDERUNDER (KWild, s (UNDERUNDERleft, UNDERUNDERright)) capps : cterm (cterm) | capps cterm (CApp (capps, cterm), s (cappsleft, ctermright)) @@ -116,6 +117,8 @@ cexp : capps (capps) | LPAREN cexp RPAREN DCOLON kind (CAnnot (cexp, kind), s (LPARENleft, kindright)) + | UNDER DCOLON kind (CWild kind, s (UNDERleft, UNDERright)) + kcolon : DCOLON (Explicit) | TCOLON (Implicit) @@ -127,6 +130,7 @@ cterm : LPAREN cexp RPAREN (#1 cexp, s (LPARENleft, RPARENright)) | HASH CSYMBOL (CName CSYMBOL, s (HASHleft, CSYMBOLright)) | SYMBOL (CVar SYMBOL, s (SYMBOLleft, SYMBOLright)) + | UNDER (CWild (KWild, s (UNDERleft, UNDERright)), s (UNDERleft, UNDERright)) rcon : ([]) | ident EQ cexp ([(ident, cexp)]) |