X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fcomponents%2Fcontent%2FnotationPp.ml;h=038d75d9c7afd1862bfc0909ee002fd019d158b6;hb=f31020f1ae14e28c246b6cd9cf91b5864f4f536a;hp=baf92236c562122d5cd0b47ffa9d09fe1ed437b2;hpb=99d00e4b45463e5d3289103e91adddf7303479ea;p=helm.git diff --git a/matita/components/content/notationPp.ml b/matita/components/content/notationPp.ml index baf92236c..038d75d9c 100644 --- a/matita/components/content/notationPp.ml +++ b/matita/components/content/notationPp.ml @@ -110,7 +110,7 @@ let rec pp_term (status : #NCic.status) ?(pp_parens = true) t = (match typ with None -> "" | Some t -> sprintf " return %s" (pp_term t)) (pp_patterns status patterns) | Ast.Cast (t1, t2) -> sprintf "(%s: %s)" (pp_term ~pp_parens:true t1) (pp_term ~pp_parens:true t2) - | Ast.LetIn ((var,t2), t1, t3) -> + | Ast.LetIn ((var,_t2), t1, t3) -> (* let t2 = match t2 with None -> Ast.Implicit | Some t -> t in *) sprintf "let %s \\def %s in %s" (pp_term var) (* (pp_term ~pp_parens:true t2) *) @@ -251,8 +251,8 @@ and pp_variable = function | Ast.NumVar s -> "number " ^ s | Ast.IdentVar s -> "ident " ^ s | Ast.TermVar (s,Ast.Self _) -> s - | Ast.TermVar (s,Ast.Level l) -> "term " ^string_of_int l - | Ast.Ascription (t, n) -> assert false + | Ast.TermVar (_s,Ast.Level l) -> "term " ^string_of_int l + | Ast.Ascription (_t, _n) -> assert false | Ast.FreshVar n -> "fresh " ^ n let _pp_term = ref (pp_term ~pp_parens:false) @@ -281,7 +281,7 @@ let string_of_source = function | `Generated -> "generated " let pp_obj pp_term = function - | Ast.Inductive (params, types) -> + | Ast.Inductive (params, types, source) -> let pp_constructors constructors = String.concat "\n" (List.map (fun (name, typ) -> sprintf "| %s: %s" name (pp_term typ)) @@ -295,7 +295,8 @@ let pp_obj pp_term = function | [] -> assert false | (name, inductive, typ, constructors) :: tl -> let fst_typ_pp = - sprintf "%sinductive %s%s: %s \\def\n%s" + sprintf "%s%sinductive %s%s: %s \\def\n%s" + (string_of_source source) (if inductive then "" else "co") name (pp_params pp_term params) (pp_term typ) (pp_constructors constructors) in @@ -309,10 +310,11 @@ let pp_obj pp_term = function (match body with | None -> "" | Some body -> "\\def\n " ^ pp_term body) - | Ast.Record (params,name,ty,fields) -> + | Ast.Record (params,name,ty,fields, source) -> + string_of_source source ^ "record " ^ name ^ " " ^ pp_params pp_term params ^ ": " ^ pp_term ty ^ " \\def {" ^ pp_fields pp_term fields ^ "\n}" - | Ast.LetRec (kind, definitions, (source, _, _)) -> + | Ast.LetRec (kind, definitions, (source, flavour, _)) -> let rec get_guard i = function | [] -> assert false (* Ast.Implicit `JustOne *) | [term, _] when i = 1 -> term @@ -330,9 +332,10 @@ let pp_obj pp_term = function (pp_term (get_guard i params)) (pp_term typ) (pp_term body) in - sprintf "%slet %s %s" + sprintf "%s%s %s %s" (string_of_source source) (match kind with `Inductive -> "rec" | `CoInductive -> "corec") + (NCicPp.string_of_flavour flavour) (String.concat " and " (List.map map definitions)) let rec pp_value (status: #NCic.status) = function