X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matitaB%2Fmatita%2FmatitaEngine.ml;h=3757b177f1706dc3fc290c8f402a20af3a51dbe0;hb=647b419e96770d90a82d7a9e5e8843566a9f93ee;hp=14716e2b68143102be55fa187c63ac6349b781fb;hpb=86b0a224bd9251ed22648de04bc0d00f11dbd0fc;p=helm.git diff --git a/matitaB/matita/matitaEngine.ml b/matitaB/matita/matitaEngine.ml index 14716e2b6..3757b177f 100644 --- a/matitaB/matita/matitaEngine.ml +++ b/matitaB/matita/matitaEngine.ml @@ -135,7 +135,7 @@ let baseuri_of_script ~include_paths fname = let rec get_ast status ~compiling ~asserted ~include_paths strm = match GrafiteParser.parse_statement status strm with (GrafiteAst.Executable - (_,GrafiteAst.NCommand (_,GrafiteAst.Include (_,_,mafilename)))) as cmd + (loc,GrafiteAst.NCommand (_,GrafiteAst.Include (_,_,mafilename)))) as cmd -> let already_included = NCicLibrary.get_transitively_included status in let asserted,_ = @@ -147,28 +147,36 @@ let rec get_ast status ~compiling ~asserted ~include_paths strm = and eval_from_stream ~compiling ~asserted ~include_paths ?do_heavy_checks status str cb = let matita_debug = Helm_registry.get_bool "matita.debug" in - let rec loop asserted status = - let asserted,stop,status = + let rec loop asserted status str = + let asserted,stop,status,str = try let cont = try Some (get_ast status ~compiling ~asserted ~include_paths str) with End_of_file -> None in match cont with - | None -> asserted, true, status + | None -> asserted, true, status, str | Some (asserted,ast) -> - (* pp_ast_statement status ast; *) cb status ast; let status = eval_ast ~include_paths ?do_heavy_checks status ("",0,ast) in - asserted, false, status + let str = + match ast with + (GrafiteAst.Executable + (_,GrafiteAst.NCommand + (_,(GrafiteAst.Include _ | GrafiteAst.Notation _)))) -> + GrafiteParser.parsable_statement status + (GrafiteParser.strm_of_parsable str) + | _ -> str + in + asserted, false, status, str with exn when not matita_debug -> - prerr_endline ("EnrichedWithStatus: " ^ Printexc.to_string exn); + (* prerr_endline ("EnrichedWithStatus: " ^ Printexc.to_string exn); *) raise (EnrichedWithStatus (exn, status)) in - if stop then asserted,status else loop asserted status + if stop then asserted,status else loop asserted status str in - loop asserted status + loop asserted status str and compile ~compiling ~asserted ~include_paths ~outch ?uid fname = if List.mem fname compiling then raise (CircularDependency fname); @@ -242,13 +250,11 @@ and compile ~compiling ~asserted ~include_paths ~outch ?uid fname = HLog.message (sprintf "execution of %s completed in %s." fname (hou^min^sec)); pp_times fname true big_bang big_bang_u big_bang_s; - prerr_endline ("now generating disambiguated script for " ^ fname); let origbuf = Ulexing.from_utf8_channel (open_in fname) in let interpr = GrafiteDisambiguate.get_interpr status#disambiguate_db in let outstr = ref "" in ignore (SmallLexer.mk_small_printer interpr outstr origbuf); Printf.fprintf outch "%s" !outstr; - prerr_endline ("returning after compilation of " ^ fname); asserted (* MATITA 1.0: debbo fare time_travel sulla ng_library? LexiconSync.time_travel @@ -272,8 +278,8 @@ and assert_ng ~already_included ~compiling ~asserted ~include_paths ?outch ?uid let ngtime_of baseuri = let ngpath = NCicLibrary.ng_path_of_baseuri uid baseuri in let uid = match uid with Some u -> "Some " ^ u | _ -> "None" in - prerr_endline ("uid = " ^ uid); - prerr_endline ("ngpath = " ^ ngpath); + (* prerr_endline ("uid = " ^ uid); + prerr_endline ("ngpath = " ^ ngpath); *) try Some (Unix.stat ngpath).Unix.st_mtime with Unix.Unix_error (Unix.ENOENT, "stat", f) when f = ngpath -> None in @@ -305,7 +311,7 @@ and assert_ng ~already_included ~compiling ~asserted ~include_paths ?outch ?uid asserted, children_bad || matime > ngtime | None -> asserted,true in - prerr_endline ("asserted = " ^ (String.concat "," asserted)); + (* prerr_endline ("asserted = " ^ (String.concat "," asserted)); *) if not to_be_compiled then fullmapath::asserted,false else if List.mem baseuri already_included then @@ -317,7 +323,7 @@ and assert_ng ~already_included ~compiling ~asserted ~include_paths ?outch ?uid | None -> open_out (fullmapath ^ ".mad"), true | Some c -> c, false in - prerr_endline ("compiling " ^ fullmapath); + (* prerr_endline ("compiling " ^ fullmapath); *) let asserted = compile ~compiling ~asserted ~include_paths ~outch ?uid fullmapath in if is_file_ch then close_out outch; fullmapath::asserted,true