X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmatita%2FmatitaTypes.ml;h=5df68ea86dca84d94d0ff52b4c86c082a9081935;hb=afe21e48aefe81db3ca150fac9a5bbfbc893fa59;hp=3bc1056283d05740630b2d042a859f4d08e2177a;hpb=0b082b38f60079c8d457790c3ee18c2a9ab415eb;p=helm.git diff --git a/helm/matita/matitaTypes.ml b/helm/matita/matitaTypes.ml index 3bc105628..5df68ea86 100644 --- a/helm/matita/matitaTypes.ml +++ b/helm/matita/matitaTypes.ml @@ -57,12 +57,15 @@ type option_value = type options = option_value StringMap.t let no_options = StringMap.empty +type ast_command = (CicNotationPt.term, GrafiteAst.obj) GrafiteAst.command + type status = { - aliases : DisambiguateTypes.environment; - moo_content_rev : string list; - proof_status : proof_status; - options : options; - objects : (UriManager.uri * string) list; + aliases: DisambiguateTypes.environment; + multi_aliases: DisambiguateTypes.multiple_environment; + moo_content_rev: ast_command list; + proof_status: proof_status; + options: options; + objects: (UriManager.uri * string) list; notation_ids: CicNotation.notation_id list; } @@ -77,6 +80,26 @@ let set_metasenv metasenv status = in { status with proof_status = proof_status } +let add_moo_content cmds status = + let content = status.moo_content_rev in + let content' = + List.fold_right + (fun cmd acc -> +(* prerr_endline ("adding to moo command: " ^ GrafiteAstPp.pp_command cmd); *) + match cmd with + | GrafiteAst.Interpretation _ + | GrafiteAst.Default _ -> + if List.mem cmd content then acc + else cmd :: acc + | GrafiteAst.Alias _ -> (* move Alias as the last inserted one *) + cmd :: (List.filter ((<>) cmd) acc) + | _ -> cmd :: acc) + cmds content + in +(* prerr_endline ("new moo content: " ^ String.concat " " (List.map + GrafiteAstPp.pp_command content')); *) + { status with moo_content_rev = content' } + let dump_status status = MatitaLog.message "status.aliases:\n"; MatitaLog.message