comparison src/urweb.grm @ 1868:d6b0ee53dc93

Get -root working properly again
author Adam Chlipala <adam@chlipala.net>
date Thu, 26 Sep 2013 16:22:06 -0400
parents 1aa9629e3a4c
children c3b03d099e04
comparison
equal deleted inserted replaced
1867:216a3a67ebe3 1868:d6b0ee53dc93
569 | VAL vali ([(DVal vali, s (VALleft, valiright))]) 569 | VAL vali ([(DVal vali, s (VALleft, valiright))])
570 | VAL REC valis ([(DValRec valis, s (VALleft, valisright))]) 570 | VAL REC valis ([(DValRec valis, s (VALleft, valisright))])
571 | FUN valis ([(DValRec valis, s (FUNleft, valisright))]) 571 | FUN valis ([(DValRec valis, s (FUNleft, valisright))])
572 572
573 | SIGNATURE CSYMBOL EQ sgn ([(DSgn (CSYMBOL, sgn), s (SIGNATUREleft, sgnright))]) 573 | SIGNATURE CSYMBOL EQ sgn ([(DSgn (CSYMBOL, sgn), s (SIGNATUREleft, sgnright))])
574 | STRUCTURE CSYMBOL EQ str ([(DStr (CSYMBOL, NONE, NONE, str), s (STRUCTUREleft, strright))]) 574 | STRUCTURE CSYMBOL EQ str ([(DStr (CSYMBOL, NONE, NONE, str, false), s (STRUCTUREleft, strright))])
575 | STRUCTURE CSYMBOL COLON sgn EQ str ([(DStr (CSYMBOL, SOME sgn, NONE, str), s (STRUCTUREleft, strright))]) 575 | STRUCTURE CSYMBOL COLON sgn EQ str ([(DStr (CSYMBOL, SOME sgn, NONE, str, false), s (STRUCTUREleft, strright))])
576 | FUNCTOR CSYMBOL LPAREN CSYMBOL COLON sgn RPAREN EQ str 576 | FUNCTOR CSYMBOL LPAREN CSYMBOL COLON sgn RPAREN EQ str
577 ([(DStr (CSYMBOL1, NONE, NONE, 577 ([(DStr (CSYMBOL1, NONE, NONE,
578 (StrFun (CSYMBOL2, sgn1, NONE, str), s (FUNCTORleft, strright))), 578 (StrFun (CSYMBOL2, sgn1, NONE, str), s (FUNCTORleft, strright)), false),
579 s (FUNCTORleft, strright))]) 579 s (FUNCTORleft, strright))])
580 | FUNCTOR CSYMBOL LPAREN CSYMBOL COLON sgn RPAREN COLON sgn EQ str 580 | FUNCTOR CSYMBOL LPAREN CSYMBOL COLON sgn RPAREN COLON sgn EQ str
581 ([(DStr (CSYMBOL1, NONE, NONE, 581 ([(DStr (CSYMBOL1, NONE, NONE,
582 (StrFun (CSYMBOL2, sgn1, SOME sgn2, str), s (FUNCTORleft, strright))), 582 (StrFun (CSYMBOL2, sgn1, SOME sgn2, str), s (FUNCTORleft, strright)), false),
583 s (FUNCTORleft, strright))]) 583 s (FUNCTORleft, strright))])
584 | OPEN mpath (case mpath of 584 | OPEN mpath (case mpath of
585 [] => raise Fail "Impossible mpath parse [1]" 585 [] => raise Fail "Impossible mpath parse [1]"
586 | m :: ms => [(DOpen (m, ms), s (OPENleft, mpathright))]) 586 | m :: ms => [(DOpen (m, ms), s (OPENleft, mpathright))])
587 | OPEN mpath LPAREN str RPAREN (let 587 | OPEN mpath LPAREN str RPAREN (let
591 [] => raise Fail "Impossible mpath parse [4]" 591 [] => raise Fail "Impossible mpath parse [4]"
592 | m :: ms => 592 | m :: ms =>
593 foldl (fn (m, str) => (StrProj (str, m), loc)) 593 foldl (fn (m, str) => (StrProj (str, m), loc))
594 (StrVar m, loc) ms 594 (StrVar m, loc) ms
595 in 595 in
596 [(DStr ("anon", NONE, NONE, (StrApp (m, str), loc)), loc), 596 [(DStr ("anon", NONE, NONE, (StrApp (m, str), loc), false), loc),
597 (DOpen ("anon", []), loc)] 597 (DOpen ("anon", []), loc)]
598 end) 598 end)
599 | OPEN CONSTRAINTS mpath (case mpath of 599 | OPEN CONSTRAINTS mpath (case mpath of
600 [] => raise Fail "Impossible mpath parse [3]" 600 [] => raise Fail "Impossible mpath parse [3]"
601 | m :: ms => [(DOpenConstraints (m, ms), s (OPENleft, mpathright))]) 601 | m :: ms => [(DOpenConstraints (m, ms), s (OPENleft, mpathright))])