X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Facic_content%2FcicNotationPp.ml;h=29898eb13ace83196d7340d8f10ff653dc170cc6;hb=3e1e59644a24ed855a7f21bf9eab76f96577fd17;hp=2873912c0129d51b9b17e9a6f2f3aae80c144797;hpb=8402a4a856b031916b1e2b1354b863933763fa58;p=helm.git diff --git a/helm/software/components/acic_content/cicNotationPp.ml b/helm/software/components/acic_content/cicNotationPp.ml index 2873912c0..29898eb13 100644 --- a/helm/software/components/acic_content/cicNotationPp.ml +++ b/helm/software/components/acic_content/cicNotationPp.ml @@ -54,12 +54,6 @@ let pp_literal = | `Keyword s | `Number s -> s) -let pp_assoc = - function - | Gramext.NonA -> "NonA" - | Gramext.LeftA -> "LeftA" - | Gramext.RightA -> "RightA" - let pp_pos = function (* `None -> "`None" *) @@ -74,7 +68,7 @@ let pp_attribute = sprintf "X(%s)" (String.concat ";" (List.map (fun (_, n, v) -> sprintf "%s=%s" n v) attrs)) - | `Level (prec, assoc) -> sprintf "L(%d%s)" prec (pp_assoc assoc) + | `Level (prec) -> sprintf "L(%d)" prec | `Raw _ -> "R" | `Loc _ -> "@" | `ChildPos p -> sprintf "P(%s)" (pp_pos p) @@ -115,9 +109,12 @@ let rec pp_term ?(pp_parens = true) t = (match typ with None -> "" | Some t -> sprintf " return %s" (pp_term t)) (pp_patterns patterns) | Ast.Cast (t1, t2) -> sprintf "(%s: %s)" (pp_term ~pp_parens:true t1) (pp_term ~pp_parens:true t2) - | Ast.LetIn (var, t1, t2) -> - sprintf "let %s \\def %s in %s" (pp_capture_variable pp_term var) (pp_term ~pp_parens:true t1) - (pp_term ~pp_parens:true t2) + | 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) *) + (pp_term ~pp_parens:true t1) + (pp_term ~pp_parens:true t3) | Ast.LetRec (kind, definitions, term) -> let rec get_guard i = function | [] -> (*assert false*) Ast.Implicit @@ -155,7 +152,7 @@ let rec pp_term ?(pp_parens = true) t = | Ast.Sort `Set -> "Set" | Ast.Sort `Prop -> "Prop" | Ast.Sort (`Type _) -> "Type" - | Ast.Sort `CProp -> "CProp" + | Ast.Sort (`CProp _)-> "CProp" | Ast.Symbol (name, _) -> "'" ^ name | Ast.UserInput -> "" @@ -176,20 +173,24 @@ let rec pp_term ?(pp_parens = true) t = and pp_subst (name, term) = sprintf "%s \\Assign %s" name (pp_term term) and pp_substs substs = String.concat "; " (List.map pp_subst substs) -and pp_pattern ((head, href, vars), term) = - let head_pp = - head ^ - (match debug_printing, href with - | true, Some uri -> sprintf "(i.e.%s)" (UriManager.string_of_uri uri) - | _ -> "") - in - sprintf "%s \\Rightarrow %s" - (match vars with - | [] -> head_pp - | _ -> - sprintf "(%s %s)" head_pp - (String.concat " " (List.map (pp_capture_variable pp_term) vars))) - (pp_term term) +and pp_pattern = + function + Ast.Pattern (head, href, vars), term -> + let head_pp = + head ^ + (match debug_printing, href with + | true, Some uri -> sprintf "(i.e.%s)" (UriManager.string_of_uri uri) + | _ -> "") + in + sprintf "%s \\Rightarrow %s" + (match vars with + | [] -> head_pp + | _ -> + sprintf "(%s %s)" head_pp + (String.concat " " (List.map (pp_capture_variable pp_term) vars))) + (pp_term term) + | Ast.Wildcard, term -> + sprintf "_ \\Rightarrow %s" (pp_term term) and pp_patterns patterns = sprintf "[%s]" (String.concat " | " (List.map pp_pattern patterns)) @@ -210,6 +211,7 @@ and pp_layout = function | Ast.Over (t1, t2) -> sprintf "[%s \\OVER %s]" (pp_term t1) (pp_term t2) | Ast.Atop (t1, t2) -> sprintf "[%s \\ATOP %s]" (pp_term t1) (pp_term t2) | Ast.Frac (t1, t2) -> sprintf "\\FRAC %s %s" (pp_term t1) (pp_term t2) + | Ast.InfRule (t1, t2, t3) -> sprintf "\\INFRULE %s %s %s" (pp_term t1) (pp_term t2) (pp_term t3) | Ast.Sqrt t -> sprintf "\\SQRT %s" (pp_term t) | Ast.Root (arg, index) -> sprintf "\\ROOT %s \\OF %s" (pp_term index) (pp_term arg) @@ -220,6 +222,10 @@ and pp_layout = function (String.concat " " (List.map pp_term terms)) | Ast.Group terms -> sprintf "\\GROUP [%s]" (String.concat " " (List.map pp_term terms)) + | Ast.Mstyle (l,terms) -> + sprintf "\\MSTYLE %s [%s]" + (String.concat " " (List.map (fun (k,v) -> k^"="^v) l)) + (String.concat " " (List.map pp_term terms)) and pp_magic = function | Ast.List0 (t, sep_opt) -> @@ -249,7 +255,8 @@ and pp_sep_opt = function and pp_variable = function | Ast.NumVar s -> "number " ^ s | Ast.IdentVar s -> "ident " ^ s - | Ast.TermVar s -> "term " ^ 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.FreshVar n -> "fresh " ^ n @@ -326,7 +333,7 @@ let rec pp_value = function let rec pp_value_type = function - | Env.TermType -> "Term" + | Env.TermType l -> "Term "^string_of_int l | Env.StringType -> "String" | Env.NumType -> "Number" | Env.OptType t -> "Maybe " ^ pp_value_type t