12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394(**************************************************************************)(* *)(* This file is part of Frama-C. *)(* *)(* Copyright (C) 2007-2025 *)(* CEA (Commissariat à l'énergie atomique et aux énergies *)(* alternatives) *)(* *)(* you can redistribute it and/or modify it under the terms of the GNU *)(* Lesser General Public License as published by the Free Software *)(* Foundation, version 2.1. *)(* *)(* It is distributed in the hope that it will be useful, *)(* but WITHOUT ANY WARRANTY; without even the implied warranty of *)(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *)(* GNU Lesser General Public License for more details. *)(* *)(* See the GNU Lesser General Public License version 2.1 *)(* for more details (enclosed in the file licenses/LGPLv2.1). *)(* *)(**************************************************************************)typek=|Behavior|Enum|Field|Formal_var|Formal_in_type|Function|Global_var|Label|Literal_string|Local_var|Logic_var|Predicate|Type|Logic_type|Logic_constructor|Axiomatic|Lemmaletname_of_kind=function|Behavior->"behavior"|Enum->"enum"|Field->"field"|Formal_var->"formal variable"|Formal_in_type->"formal variable in fun type"|Function->"function"|Global_var->"global variable"|Label->"label"|Literal_string->"literal string"|Local_var->"local variable"|Logic_var->"logic variable"|Predicate->"predicate"|Type->"type"|Logic_type->"logic type"|Logic_constructor->"logic constructor"|Axiomatic->"axiomatic"|Lemma->"lemma"letprefix=function|Behavior->"B"|Enum->"E"|Field->"M"|Formal_var->"f"|Formal_in_type->"ft"|Function->"F"|Global_var->"G"|Label->"L"|Literal_string->"LS"|Local_var->"V"|Logic_var->"LV"|Predicate->"P"|Type->"T"|Logic_type->"LT"|Logic_constructor->"LC"|Axiomatic->"A"|Lemma->"LE"includeDatatype.Make_with_collections(structtypet=kletname="Obfuscator.kind"letreprs=[Global_var]lethash(k:k)=Hashtbl.hashkletequal(k1:k)k2=k1=k2letcompare(k1:k)k2=Stdlib.comparek1k2letcopy=Datatype.identityletstructural_descr=Structural_descr.t_abstractletrehash=Datatype.identityletmem_project=Datatype.never_any_projectletprettyfmtk=Format.fprintffmt"%s"(name_of_kindk)end)