Mercurial > urweb
comparison src/lacweb.grm @ 196:890a61991263
Lists all the way through
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sat, 09 Aug 2008 16:48:32 -0400 |
parents | 85b5f663bb86 |
children | 5dbba661deab |
comparison
equal
deleted
inserted
replaced
195:85b5f663bb86 | 196:890a61991263 |
---|---|
306 | path (CVar path, s (pathleft, pathright)) | 306 | path (CVar path, s (pathleft, pathright)) |
307 | UNDER (CWild (KWild, s (UNDERleft, UNDERright)), s (UNDERleft, UNDERright)) | 307 | UNDER (CWild (KWild, s (UNDERleft, UNDERright)), s (UNDERleft, UNDERright)) |
308 | FOLD (CFold, s (FOLDleft, FOLDright)) | 308 | FOLD (CFold, s (FOLDleft, FOLDright)) |
309 | UNIT (CUnit, s (UNITleft, UNITright)) | 309 | UNIT (CUnit, s (UNITleft, UNITright)) |
310 | 310 |
311 ctuple : cterm STAR cterm ([cterm1, cterm2]) | 311 ctuple : capps STAR capps ([capps1, capps2]) |
312 | cterm STAR ctuple (cterm :: ctuple) | 312 | capps STAR ctuple (capps :: ctuple) |
313 | 313 |
314 rcon : ([]) | 314 rcon : ([]) |
315 | ident EQ cexp ([(ident, cexp)]) | 315 | ident EQ cexp ([(ident, cexp)]) |
316 | ident EQ cexp COMMA rcon ((ident, cexp) :: rcon) | 316 | ident EQ cexp COMMA rcon ((ident, cexp) :: rcon) |
317 | 317 |
339 val loc = s (FNleft, eexpright) | 339 val loc = s (FNleft, eexpright) |
340 in | 340 in |
341 (EAbs ("_", SOME (TRecord (CRecord [], loc), loc), eexp), loc) | 341 (EAbs ("_", SOME (TRecord (CRecord [], loc), loc), eexp), loc) |
342 end) | 342 end) |
343 | 343 |
344 | LPAREN etuple RPAREN COLON cexp(case etuple of | 344 | eexp COLON cexp (EAnnot (eexp, cexp), s (eexpleft, cexpright)) |
345 [eexp] => (EAnnot (eexp, cexp), s (LPARENleft, cexpright)) | |
346 | _ => raise Fail "Multiple arguments to expression type annotation") | |
347 | eexp MINUSMINUS cexp (ECut (eexp, cexp), s (eexpleft, cexpright)) | 345 | eexp MINUSMINUS cexp (ECut (eexp, cexp), s (eexpleft, cexpright)) |
348 | CASE eexp OF barOpt branch branchs (ECase (eexp, branch :: branchs), s (CASEleft, branchsright)) | 346 | CASE eexp OF barOpt branch branchs (ECase (eexp, branch :: branchs), s (CASEleft, branchsright)) |
349 | IF eexp THEN eexp ELSE eexp (let | 347 | IF eexp THEN eexp ELSE eexp (let |
350 val loc = s (IFleft, eexp3right) | 348 val loc = s (IFleft, eexp3right) |
351 in | 349 in |