X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Flambda-delta%2Ftoplevel%2Ftop.ml;fp=helm%2Fsoftware%2Flambda-delta%2Ftoplevel%2Ftop.ml;h=c1c3538446cb1942a8767d91164fa91d620fd735;hb=0e6bf0ef18e3879a359b2b6f63d600c20102f0ab;hp=dff0bbe10864d38ff3ee1b0f2afd554aa2b25b61;hpb=f2771b346a41445df23adb6acccd7ee6b1578666;p=helm.git diff --git a/helm/software/lambda-delta/toplevel/top.ml b/helm/software/lambda-delta/toplevel/top.ml index dff0bbe10..c1c353844 100644 --- a/helm/software/lambda-delta/toplevel/top.ml +++ b/helm/software/lambda-delta/toplevel/top.ml @@ -42,17 +42,19 @@ type status = { ac : AO.counters; mc : MO.counters; brgc: BrgO.counters; - bagc: BagO.counters + bagc: BagO.counters; + kst : Y.status } -let initial_status mk_uri cover = { +let initial_status mk_uri cover g expand si = { ac = AO.initial_counters; mc = MO.initial_counters; brgc = BrgO.initial_counters; bagc = BagO.initial_counters; mst = MA.initial_status ~cover (); dst = DA.initial_status (mk_uri cover); - ast = AP.initial_status + ast = AP.initial_status; + kst = Y.initial_status g expand si } let flush_all () = L.flush 0; L.flush_err () @@ -120,12 +122,12 @@ let export_entity si g moch = function end | BagEntity _ -> () -let type_check st si g k = +let type_check st k = let brg_err msg = brg_error "Type Error" msg; failwith "Interrupted" in let ok _ _ = st in match k with - | BrgEntity entity -> BrgU.type_check brg_err ok ~si g entity - | BagEntity entity -> BagU.type_check ok ~si g entity + | BrgEntity entity -> BrgU.type_check brg_err ok st.kst entity + | BagEntity entity -> BagU.type_check ok st.kst entity | CrgEntity _ | MetaEntity _ -> st @@ -138,6 +140,7 @@ let progress = ref false let preprocess = ref false let use_cover = ref true let si = ref false +let expand = ref false let cc = ref false let export = ref false let graph = ref (H.graph_of_string C.err C.start "Z2") @@ -146,7 +149,7 @@ let old = ref false let process_2 st entity = let st = if !L.level > 2 then count_entity st entity else st in if !export then export_entity !si !graph !moch entity; - if !stage > 2 then type_check st !si !graph entity else st + if !stage > 2 then type_check st entity else st let process_1 st entity = if !progress then pp_progress entity; @@ -178,7 +181,7 @@ let rec process st = function let main = try - let version_string = "Helena 0.8.1 M - October 2009" in + let version_string = "Helena 0.8.1 M - December 2009" in let set_hierarchy s = let err () = L.warn (P.sprintf "Unknown type hierarchy: %s" s) in let f g = graph := g in @@ -220,7 +223,8 @@ try | Bag -> Bag.mk_uri in let cover = if !use_cover then base_name else "" in - let st = process (initial_status mk_uri cover) book in + let st = initial_status mk_uri cover !graph !expand !si in + let st = process st book in if !L.level > 0 then T.utime_stamp "processed"; if !L.level > 2 then begin AO.print_counters C.start st.ac; @@ -236,7 +240,7 @@ try flush_all () in let help = - "Usage: helena [ -Vcijmopux | -Ss | -hk ] ...\n\n" ^ + "Usage: helena [ -Vcgijmopux | -Ss | -hk ] ...\n\n" ^ "Summary levels: 0 just errors (default), 1 time stamps, 2 processed file names, \ 3 data information, 4 typing information, 5 reduction information\n\n" ^ "Stages: 0 parsing, 1 to intermediate, 2 to untrusted, 3 to trusted (default)\n" @@ -245,6 +249,7 @@ try let help_V = " show version information" in let help_c = " output conversion constraints" in + let help_g = " always expand global definitions" in let help_h = " set type hierarchy (default: Z2)" in let help_i = " show local references by index" in let help_j = " show URI of processed kernel objects" in @@ -263,6 +268,7 @@ try ("-S", Arg.Int set_summary, help_S); ("-V", Arg.Unit print_version, help_V); ("-c", Arg.Set cc, help_c); + ("-g", Arg.Set expand, help_g); ("-h", Arg.String set_hierarchy, help_h); ("-i", Arg.Set O.indexes, help_i); ("-j", Arg.Set progress, help_j);