nCicTypeChecker.cmi: nUri.cmi nReference.cmi nCic.cmo
nCicUntrusted.cmi: nCic.cmo
nCicPp.cmi: nReference.cmi nCic.cmo
+nCicExtraction.cmi: nCic.cmo
nCic.cmo: nUri.cmi nReference.cmi
nCic.cmx: nUri.cmx nReference.cmx
nUri.cmo: nUri.cmi
nCicEnvironment.cmi nCic.cmo nCicPp.cmi
nCicPp.cmx: nUri.cmx nReference.cmx nCicSubstitution.cmx nCicReduction.cmx \
nCicEnvironment.cmx nCic.cmx nCicPp.cmi
+nCicExtraction.cmo: nUri.cmi nReference.cmi nCicUntrusted.cmi \
+ nCicTypeChecker.cmi nCicSubstitution.cmi nCicReduction.cmi nCicPp.cmi \
+ nCicEnvironment.cmi nCic.cmo nCicExtraction.cmi
+nCicExtraction.cmx: nUri.cmx nReference.cmx nCicUntrusted.cmx \
+ nCicTypeChecker.cmx nCicSubstitution.cmx nCicReduction.cmx nCicPp.cmx \
+ nCicEnvironment.cmx nCic.cmx nCicExtraction.cmi
nCicTypeChecker.cmi: nUri.cmi nReference.cmi nCic.cmx
nCicUntrusted.cmi: nCic.cmx
nCicPp.cmi: nReference.cmi nCic.cmx
+nCicExtraction.cmi: nCic.cmx
nCic.cmo: nUri.cmi nReference.cmi
nCic.cmx: nUri.cmx nReference.cmx
nUri.cmo: nUri.cmi
nCicEnvironment.cmi nCic.cmx nCicPp.cmi
nCicPp.cmx: nUri.cmx nReference.cmx nCicSubstitution.cmx nCicReduction.cmx \
nCicEnvironment.cmx nCic.cmx nCicPp.cmi
+nCicExtraction.cmo: nUri.cmi nReference.cmi nCicUntrusted.cmi \
+ nCicTypeChecker.cmi nCicReduction.cmi nCicPp.cmi nCicEnvironment.cmi \
+ nCic.cmx nCicExtraction.cmi
+nCicExtraction.cmx: nUri.cmx nReference.cmx nCicUntrusted.cmx \
+ nCicTypeChecker.cmx nCicReduction.cmx nCicPp.cmx nCicEnvironment.cmx \
+ nCic.cmx nCicExtraction.cmi
nCicReduction.mli \
nCicTypeChecker.mli \
nCicUntrusted.mli \
- nCicPp.mli
+ nCicPp.mli \
+ nCicExtraction.mli
IMPLEMENTATION_FILES = \
nCic.ml $(INTERFACE_FILES:%.mli=%.ml)
val get_relevance: #NCic.status -> NReference.reference -> bool list
+val get_checked_decl:
+ #NCic.status -> NReference.reference ->
+ NCic.relevance * string * NCic.term * NCic.c_attr * int
+
val get_checked_def:
#NCic.status -> NReference.reference ->
NCic.relevance * string * NCic.term * NCic.term * NCic.c_attr * int
(* Haskell *)
-val haskell_of_obj: (#status as 'status) -> NCic.obj -> 'status * string option
+val haskell_of_obj: (#status as 'status) -> NCic.obj -> 'status * string
class virtual status =
object
- inherit NCic.status
+ inherit NCicExtraction.status
val timestamp = (time0 : timestamp)
method timestamp = timestamp
method set_timestamp v = {< timestamp = v >}
+ (*CSC: bug here, we are not copying the NCicExtraction part of the status *)
end
let time_travel0 (sto,ali) =
if NUri.eq uri' uri then Some nref else None) !local_aliases
;;
-let add_obj status ((u,_,_,_,_) as obj) =
- NCicEnvironment.check_and_add_obj status obj;
- storage := (`Obj (u,obj))::!storage;
- let _,height,_,_,obj = obj in
+let add_obj status ((u,_,_,_,_) as orig_obj) =
+ NCicEnvironment.check_and_add_obj status orig_obj;
+ storage := (`Obj (u,orig_obj))::!storage;
+ let _,height,_,_,obj = orig_obj in
let references =
match obj with
NCic.Constant (_,name,None,_,_) ->
) il)
in
local_aliases := references @ !local_aliases;
- status#set_timestamp (!storage,!local_aliases)
+ let status = status#set_timestamp (!storage,!local_aliases) in
+ (* To test extraction *)
+ try
+ ignore (Helm_registry.get "extract_haskell");
+ let status,msg = NCicExtraction.haskell_of_obj status orig_obj in
+ prerr_endline msg; status
+ with
+ Helm_registry.Key_not_found _ -> status
;;
let add_constraint status u1 u2 =
class virtual status :
object ('self)
- inherit NCic.status
+ inherit NCicExtraction.status
method timestamp: timestamp
method set_timestamp: timestamp -> 'self
+ (*CSC: bug here, we are not copying the NCicExtraction part of the status *)
end
(* it also checks it and add it to the environment *)