Fix file paths for recursive rmdom
[hcoop/domtool2.git] / src / domtool.grm
index e7ce9ea..ca9ff3a 100644 (file)
@@ -31,7 +31,7 @@ open Ast
  | ARROW | DARROW | LARROW
  | COLON | CARET | BANG | AND
  | LPAREN | RPAREN | LBRACK | RBRACK | LBRACE | RBRACE
- | EQ | COMMA | BSLASH | SEMI | LET | IN | END
+ | EQ | COMMA | BSLASH | BSLASHBSLASH | SEMI | LET | IN | END
  | ROOT
  | EXTERN | TYPE | VAL | WITH | WHERE | CONTEXT
 
@@ -114,6 +114,8 @@ exp    : apps                              (apps)
        | BSLASH SYMBOL COLON LPAREN typ RPAREN ARROW exp (ELam (SYMBOL, SOME typ, exp),
                                                          (BSLASHleft, expright))
        | BSLASH SYMBOL ARROW exp           (ELam (SYMBOL, NONE, exp), (BSLASHleft, expright))
+       | BSLASHBSLASH SYMBOL COLON ctxt ARROW exp (EALam (SYMBOL, ctxt, exp),
+                                                         (BSLASHBSLASHleft, expright))
        | CSYMBOL EQ exp                    (ESet (CSYMBOL, exp), (CSYMBOLleft, expright))
        | exp SEMI exp                      (let
                                                val ls = case #1 exp2 of
@@ -122,13 +124,8 @@ exp    : apps                              (apps)
                                            in
                                                (ESeq ls, (exp1left, exp2right))
                                            end)
+       | exp SEMI                          (exp)
        | SYMBOL LARROW CSYMBOL SEMI exp    (EGet (SYMBOL, CSYMBOL, exp), (SYMBOLleft, expright))
-       (*| exp WHERE exp END                 (ELocal (exp1, exp2), (exp1left, ENDright))
-       | exp WHERE exp WITH END            (EWith ((ELocal (exp1, exp2), (exp1left, ENDright)),
-                                                  (ESkip, (WITHleft, ENDright))),
-                                           (exp1left, ENDright))
-       | exp WITH END                      (EWith (exp, (ESkip, (WITHleft, ENDright))), (expleft, ENDright))
-       | exp WITH exp END                  (EWith (exp1, exp2), (exp1left, ENDright))*)
 
 apps   : term                              (term)
        | apps term                         (EApp (apps, term), (appsleft, termright))