1 (******************************************************************************)
5 (* Claudio Sacerdoti Coen <sacerdot@cs.unibo.it> *)
9 (******************************************************************************)
11 let get_annotation_from_term annterm =
14 C.ARel (_,ann,_,_) -> ann
15 | C.AVar (_,ann,_) -> ann
16 | C.AMeta (_,ann,_) -> ann
17 | C.ASort (_,ann,_) -> ann
18 | C.AImplicit (_,ann) -> ann
19 | C.ACast (_,ann,_,_) -> ann
20 | C.AProd (_,ann,_,_,_) -> ann
21 | C.ALambda (_,ann,_,_,_) -> ann
22 | C.ALetIn (_,ann,_,_,_) -> ann
23 | C.AAppl (_,ann,_) -> ann
24 | C.AConst (_,ann,_,_) -> ann
25 | C.AAbst (_,ann,_) -> ann
26 | C.AMutInd (_,ann,_,_,_) -> ann
27 | C.AMutConstruct (_,ann,_,_,_,_)-> ann
28 | C.AMutCase (_,ann,_,_,_,_,_,_) -> ann
29 | C.AFix (_,ann,_,_) -> ann
30 | C.ACoFix (_,ann,_,_) -> ann
33 let get_annotation_from_obj annobj =
36 C.ADefinition (_,ann,_,_,_,_) -> ann
37 | C.AAxiom (_,ann,_,_,_) -> ann
38 | C.AVariable (_,ann,_,_,_) -> ann
39 | C.ACurrentProof (_,ann,_,_,_,_) -> ann
40 | C.AInductiveDefinition (_,ann,_,_,_) -> ann
43 exception IdUnknown of string;;
45 let get_annotation (annobj,ids_to_targets) xpath =
47 match Hashtbl.find ids_to_targets xpath with
48 Cic.Object annobj -> get_annotation_from_obj annobj
49 | Cic.Term annterm -> get_annotation_from_term annterm
51 Not_found -> raise (IdUnknown xpath)