]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/components/grafite_parser/grafiteParser.ml
QED takes a boolean parameter governing indexing.
[helm.git] / matita / components / grafite_parser / grafiteParser.ml
index 2e64c9143b092aef1c4826f47e6badfcee23090c..16bc6c32ebe60a3efd8537a23ed9a42b4d483de2 100644 (file)
@@ -46,7 +46,6 @@ type parsable = Grammar.parsable * Ulexing.lexbuf
 
 let parsable_statement status buf =
  let grammar = CicNotationParser.level2_ast_grammar status in
-List.iter (fun (x,_) -> prerr_endline ("TOK: " ^ x)) (Grammar.tokens grammar "");
   Grammar.parsable grammar (Obj.magic buf), buf
 
 let parse_statement grafite_parser parsable =
@@ -537,7 +536,10 @@ EXTEND
      ]];
 
   grafite_ncommand: [ [
-      IDENT "qed" -> G.NQed loc
+      IDENT "qed" ;  b = OPT SYMBOL "-" -> 
+      let b = match b with None -> true | Some _ -> false in
+      if not b then prerr_endline "Should not index";
+      G.NQed (loc,b)
     | nflavour = ntheorem_flavour; name = IDENT; SYMBOL ":"; typ = term;
       body = OPT [ SYMBOL <:unicode<def>> (* ≝ *); body = term -> body ] ->
         G.NObj (loc, N.Theorem (nflavour, name, typ, body,`Regular))
@@ -577,11 +579,14 @@ EXTEND
          G.NUnivConstraint (loc,u1,u2)
     | IDENT "unification"; IDENT "hint"; n = int; t = tactic_term ->
         G.UnificationHint (loc, t, n)
-    | IDENT "coercion"; name = IDENT; SYMBOL ":"; ty = term; 
+    | IDENT "coercion"; name = IDENT;
+        compose = OPT [ IDENT "nocomposites" -> () ];
+        SYMBOL ":"; ty = term; 
         SYMBOL <:unicode<def>>; t = term; "on"; 
         id = [ IDENT | PIDENT ]; SYMBOL ":"; source = term;
         "to"; target = term ->
-          G.NCoercion(loc,name,t,ty,(id,source),target)     
+          let compose = compose = None in
+          G.NCoercion(loc,name,compose,t,ty,(id,source),target)     
     | IDENT "record" ; (params,name,ty,fields) = record_spec ->
         G.NObj (loc, N.Record (params,name,ty,fields))
     | IDENT "copy" ; s = IDENT; IDENT "from"; u = URI; "with";