123456789101112131415161718192021222324252627282930313233343536373839404142434445464748(************************************************************************)(* v * The Coq Proof Assistant / The Coq Development Team *)(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2016 *)(* \VV/ **************************************************************)(* // * This file is distributed under the terms of the *)(* * GNU Lesser General Public License Version 2.1 *)(************************************************************************)(************************************************************************)(* Coq serialization API/Plugin *)(* Copyright 2016 MINES ParisTech *)(************************************************************************)(* Status: Very Experimental *)(************************************************************************)openSexplib.StdmoduleLoc=Ser_locmoduleL=structtype'at={v:'a;loc:Loc.toption[@ignore][@hash.ignore];}[@@derivingsexp,yojson,hash,compare]endtype'at='aCAst.t=private{v:'a;loc:Loc.toption;}lett_of_sexpfs=let{L.v;loc}=L.t_of_sexpfsinCAst.make?loc:locvletsexp_of_tf{CAst.v;loc}=L.sexp_of_tf{L.v;loc}letof_yojsonfjson=Ppx_deriving_yojson_runtime.(L.of_yojsonfjson>|=fun{L.v;loc}->CAst.make?loc:locv)letto_yojsonf{CAst.v;loc}=L.to_yojsonf{L.v;loc}lethash_fold_tfst{CAst.v;loc}=L.hash_fold_tfst{L.v;loc}letcomparef{CAst.v=v1;loc=l1}{CAst.v=v2;loc=l2}=L.comparef{L.v=v1;loc=l1}{L.v=v2;loc=l2}letomit_att=reffalseletsexp_of_tfx=if!omit_attthenfx.CAst.velsesexp_of_tfx(* let to_yojson f x =
if !omit_att then ... *)