12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455(*
* This file is part of MOPSA, a Modular Open Platform for Static Analysis.
*
* SPDX-FileCopyrightText: 2017-2024 The Mopsa Authors
*
* SPDX-License-Identifier: LGPL-3.0-or-later
*
*
* This program is free software: 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, either version 3 of the License, or (at your option) any
* later version.
*
* This program 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.
*
* You should have received a copy of the GNU Lesser General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*)openInstancesopenSig.Abstraction.SimplifiedopenMopsa(* the next two open are here to force compilation of the instances before the registration of domain options, in order to be sure all domains are registered *)openElinainstopenPpliteinstletnumeric_domain:(moduleRELATIONAL)ref=ref(modulePolyhedra:RELATIONAL)let()=register_domain_option"universal.numeric.relational"{key="-numeric";category="Numeric";doc=" select the relational numeric domain.";spec=Symbol(get_instances_names(),(funname->let(moduleM:RELATIONAL)=List.find(fun(moduleC:RELATIONAL)->C.numeric_name=name)!numeric_domainsinopt_numeric:=M.numeric_name;numeric_domain:=(moduleM:RELATIONAL);register_simplified_domain(moduleM)));default="polyhedra"}let()=register_simplified_domain(modulePolyhedra)