]> matita.cs.unibo.it Git - helm.git/commitdiff
1. buf fixed in eval_from_stream when first_statemente_only=true:
authorClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Sat, 20 Jan 2007 15:29:51 +0000 (15:29 +0000)
committerClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Sat, 20 Jan 2007 15:29:51 +0000 (15:29 +0000)
   the last computed states were lost
2. added a new watcher function to eval_from_stream.
   The function is called after the execution of each command.

helm/software/matita/matitaEngine.ml
helm/software/matita/matitaEngine.mli

index 9d88777ac1b97b68fee16039d39aa7dcd32d9847..9778f09007d0e88a8c99dfffb8c2afd87e875a48 100644 (file)
@@ -102,12 +102,12 @@ exception TryingToAdd of string
 
 let eval_from_stream ~first_statement_only ~include_paths ?(prompt=false)
  ?do_heavy_checks ?clean_baseuri ?(enforce_no_new_aliases=true)
- lexicon_status grafite_status str cb 
?(watch_statuses=fun _ _ -> ()) lexicon_status grafite_status str cb 
 =
  let rec loop lexicon_status grafite_status statuses =
   let loop =
    if first_statement_only then
-    fun _ _ _ -> raise End_of_file
+    fun _ _ statuses -> statuses
    else
     loop
   in
@@ -118,6 +118,7 @@ let eval_from_stream ~first_statement_only ~include_paths ?(prompt=false)
     in
      (match ast with
          GrafiteParser.LNone _ ->
+          watch_statuses lexicon_status grafite_status ;
           loop lexicon_status grafite_status
            (((grafite_status,lexicon_status),None)::statuses)
        | GrafiteParser.LSome ast ->
@@ -142,6 +143,7 @@ let eval_from_stream ~first_statement_only ~include_paths ?(prompt=false)
               [] -> assert false
             | (s,_)::_ -> s
           in
+           watch_statuses lexicon_status grafite_status ;
            loop lexicon_status grafite_status (new_statuses @ statuses))
    with
     End_of_file -> statuses
index a03d1e7dad2416f799ebc2f8fffee8fb949e57fd..71bfff0b89d287371ad71dd84a991380cc79a40e 100644 (file)
@@ -49,6 +49,7 @@ val eval_from_stream :
   ?do_heavy_checks:bool ->
   ?clean_baseuri:bool ->
   ?enforce_no_new_aliases:bool -> (* default true *)
+  ?watch_statuses:(LexiconEngine.status -> GrafiteTypes.status -> unit) ->
   LexiconEngine.status ->
   GrafiteTypes.status ->
   Ulexing.lexbuf ->