diff options
author | Adam Chlipala <adamc@hcoop.net> | 2008-07-01 15:58:02 -0400 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2008-07-01 15:58:02 -0400 |
commit | cdc1211c43e9073a4d03472ffb549c67df281cea (patch) | |
tree | 119cb9eae8a53423d4383f3e627d8de4999c6e78 /src/lacweb.grm | |
parent | 73b8b2cf8afd5cc8969b3bd4d2c238d9c453e8fd (diff) |
Constraints in modules
Diffstat (limited to 'src/lacweb.grm')
-rw-r--r-- | src/lacweb.grm | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/lacweb.grm b/src/lacweb.grm index 4bf03388..84877eee 100644 --- a/src/lacweb.grm +++ b/src/lacweb.grm @@ -44,7 +44,8 @@ val s = ErrorMsg.spanOf | TYPE | NAME | ARROW | LARROW | DARROW | FN | PLUSPLUS | DOLLAR | TWIDDLE - | STRUCTURE | SIGNATURE | STRUCT | SIG | END | FUNCTOR | WHERE | EXTERN | INCLUDE | OPEN + | STRUCTURE | SIGNATURE | STRUCT | SIG | END | FUNCTOR | WHERE | EXTERN + | INCLUDE | OPEN | CONSTRAINT | CONSTRAINTS %nonterm file of decl list @@ -128,6 +129,10 @@ decl : CON SYMBOL EQ cexp (DCon (SYMBOL, NONE, cexp), s (CONleft, | OPEN mpath (case mpath of [] => raise Fail "Impossible mpath parse [1]" | m :: ms => (DOpen (m, ms), s (OPENleft, mpathright))) + | OPEN CONSTRAINTS mpath (case mpath of + [] => raise Fail "Impossible mpath parse [3]" + | m :: ms => (DOpenConstraints (m, ms), s (OPENleft, mpathright))) + | CONSTRAINT cterm TWIDDLE cterm (DConstraint (cterm1, cterm2), s (CONSTRAINTleft, ctermright)) sgn : sgntm (sgntm) | FUNCTOR LPAREN CSYMBOL COLON sgn RPAREN COLON sgn @@ -161,6 +166,7 @@ sgi : CON SYMBOL DCOLON kind (SgiConAbs (SYMBOL, kind), s (CONleft, k (SgnFun (CSYMBOL2, sgn1, sgn2), s (FUNCTORleft, sgn2right))), s (FUNCTORleft, sgn2right)) | INCLUDE sgn (SgiInclude sgn, s (INCLUDEleft, sgnright)) + | CONSTRAINT cterm TWIDDLE cterm (SgiConstraint (cterm1, cterm2), s (CONSTRAINTleft, ctermright)) sgis : ([]) | sgi sgis (sgi :: sgis) |