comparison src/lacweb.grm @ 61:48b6d2c3df46

open
author Adam Chlipala <adamc@hcoop.net>
date Sun, 22 Jun 2008 19:34:35 -0400
parents abb2b32c19fb
children 9f89f0b00b84
comparison
equal deleted inserted replaced
60:8bce148070a7 61:48b6d2c3df46
121 | FUNCTOR CSYMBOL LPAREN CSYMBOL COLON sgn RPAREN COLON sgn EQ str 121 | FUNCTOR CSYMBOL LPAREN CSYMBOL COLON sgn RPAREN COLON sgn EQ str
122 (DStr (CSYMBOL1, NONE, 122 (DStr (CSYMBOL1, NONE,
123 (StrFun (CSYMBOL2, sgn1, SOME sgn2, str), s (FUNCTORleft, strright))), 123 (StrFun (CSYMBOL2, sgn1, SOME sgn2, str), s (FUNCTORleft, strright))),
124 s (FUNCTORleft, strright)) 124 s (FUNCTORleft, strright))
125 | EXTERN STRUCTURE CSYMBOL COLON sgn (DFfiStr (CSYMBOL, sgn), s (EXTERNleft, sgnright)) 125 | EXTERN STRUCTURE CSYMBOL COLON sgn (DFfiStr (CSYMBOL, sgn), s (EXTERNleft, sgnright))
126 | OPEN mpath (case mpath of
127 [] => raise Fail "Impossible mpath parse [1]"
128 | m :: ms => (DOpen (m, ms), s (OPENleft, mpathright)))
126 129
127 sgn : sgntm (sgntm) 130 sgn : sgntm (sgntm)
128 | FUNCTOR LPAREN CSYMBOL COLON sgn RPAREN COLON sgn 131 | FUNCTOR LPAREN CSYMBOL COLON sgn RPAREN COLON sgn
129 (SgnFun (CSYMBOL, sgn1, sgn2), s (FUNCTORleft, sgn2right)) 132 (SgnFun (CSYMBOL, sgn1, sgn2), s (FUNCTORleft, sgn2right))
130 133
131 sgntm : SIG sgis END (SgnConst sgis, s (SIGleft, ENDright)) 134 sgntm : SIG sgis END (SgnConst sgis, s (SIGleft, ENDright))
132 | mpath (case mpath of 135 | mpath (case mpath of
133 [] => raise Fail "Impossible mpath parse" 136 [] => raise Fail "Impossible mpath parse [2]"
134 | [x] => SgnVar x 137 | [x] => SgnVar x
135 | m :: ms => SgnProj (m, 138 | m :: ms => SgnProj (m,
136 List.take (ms, length ms - 1), 139 List.take (ms, length ms - 1),
137 List.nth (ms, length ms - 1)), 140 List.nth (ms, length ms - 1)),
138 s (mpathleft, mpathright)) 141 s (mpathleft, mpathright))