X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=inline;f=components%2Fgrafite_parser%2FgrafiteParser.ml;h=054bff6215e1f64ec1b6d90813a3f7a316b88089;hb=86458c2afc0d02aad6dc22267793b7538dc475d0;hp=1321f613b82e91a5acc8e793d14c76d49f687624;hpb=8d04559d1b190e74e1d560000b01a648d086f484;p=helm.git diff --git a/components/grafite_parser/grafiteParser.ml b/components/grafite_parser/grafiteParser.ml index 1321f613b..054bff621 100644 --- a/components/grafite_parser/grafiteParser.ml +++ b/components/grafite_parser/grafiteParser.ml @@ -116,11 +116,15 @@ EXTEND | SYMBOL "<" -> `RightToLeft ] ]; int: [ [ num = NUMBER -> int_of_string num ] ]; + intros_names: [ + [ idents = OPT ident_list0 -> + match idents with None -> [] | Some idents -> idents + ] + ]; intros_spec: [ [ OPT [ IDENT "names" ]; num = OPT [ num = int -> num ]; - idents = OPT ident_list0 -> - let idents = match idents with None -> [] | Some idents -> idents in + idents = intros_names -> num, idents ] ]; @@ -138,6 +142,9 @@ EXTEND GrafiteAst.Assumption loc | IDENT "auto"; params = auto_params -> GrafiteAst.Auto (loc,params) + | IDENT "cases"; what = tactic_term; + (num, idents) = intros_spec -> + GrafiteAst.Cases (loc, what, idents) | IDENT "clear"; ids = LIST1 IDENT -> GrafiteAst.Clear (loc, ids) | IDENT "clearbody"; id = IDENT -> @@ -262,6 +269,8 @@ EXTEND | LSome t -> GrafiteAst.AndElim (loc, t, id1, t1, id2, t2))) | IDENT "we" ; IDENT "need" ; "to" ; IDENT "prove" ; t = tactic_term ; id = OPT [ LPAREN ; id = IDENT ; RPAREN -> id ] ; t1 = OPT [IDENT "or" ; IDENT "equivalently"; t' = tactic_term -> t']-> GrafiteAst.We_need_to_prove (loc, t, id, t1) + | IDENT "we" ; IDENT "proceed" ; IDENT "by" ; IDENT "cases" ; "on" ; t=tactic_term ; "to" ; IDENT "prove" ; t1=tactic_term -> + GrafiteAst.We_proceed_by_cases_on (loc, t, t1) | IDENT "we" ; IDENT "proceed" ; IDENT "by" ; IDENT "induction" ; "on" ; t=tactic_term ; "to" ; IDENT "prove" ; t1=tactic_term -> GrafiteAst.We_proceed_by_induction_on (loc, t, t1) | IDENT "by" ; IDENT "induction" ; IDENT "hypothesis" ; IDENT "we" ; IDENT "know" ; t=tactic_term ; LPAREN ; id = IDENT ; RPAREN ->