]> matita.cs.unibo.it Git - helm.git/blobdiff - components/grafite_parser/grafiteParser.ml
new more flexible compose, see matita/tests/compose.ma for a sample
[helm.git] / components / grafite_parser / grafiteParser.ml
index 17144a85244a40cea868499ac3ce36c1fb535059..45a71f174dea678322b79bd97fcaecf0e5a31b79 100644 (file)
@@ -149,13 +149,17 @@ EXTEND
         GrafiteAst.AutoBatch (loc,params)
     | IDENT "cases"; what = tactic_term;
       specs = intros_spec ->
-       GrafiteAst.Cases (loc, what, specs)
+        GrafiteAst.Cases (loc, what, specs)
     | IDENT "clear"; ids = LIST1 IDENT ->
         GrafiteAst.Clear (loc, ids)
     | IDENT "clearbody"; id = IDENT ->
         GrafiteAst.ClearBody (loc,id)
     | IDENT "change"; what = pattern_spec; "with"; t = tactic_term ->
         GrafiteAst.Change (loc, what, t)
+    | IDENT "compose"; times = OPT int; t1 = tactic_term; t2 = 
+      OPT [ "with"; t = tactic_term -> t ]; specs = intros_spec ->
+        let times = match times with None -> 1 | Some i -> i in
+        GrafiteAst.Compose (loc, t1, t2, times, specs)
     | IDENT "constructor"; n = int ->
         GrafiteAst.Constructor (loc, n)
     | IDENT "contradiction" ->