123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103(****************************************************************************)(* *)(* This file is part of MOPSA, a Modular Open Platform for Static Analysis. *)(* *)(* Copyright (C) 2017-2019 The MOPSA Project. *)(* *)(* 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/>. *)(* *)(****************************************************************************)includeAst.SemanticincludeAst.ConstantincludeAst.ExprincludeAst.StmtincludeAst.TypincludeAst.ProgramincludeAst.FrontendincludeAst.OperatorincludeAst.VarincludeAst.AddrincludeAst.VisitorincludeAlarmmoduleAlarm =AlarmincludeContextmoduleContext=ContextmoduleCases=Casestype'rcase='rCases.casetype('a,'r)cases=('a,'r)Cases.casesletbind=Cases.bindlet(>>=)=Cases.(>>=)letbind_opt=Cases.bind_optlet(>>=?)=Cases.(>>=?)letbind_result=Cases.bind_resultlet(>>$)=Cases.(>>$)letbind_result_opt=Cases.bind_result_optlet(>>$?)=Cases.(>>$?)letbind_list=Cases.bind_listletbind_list_opt=Cases.bind_list_optmoduleEval=Evaltype'aeval='aEval.evalmoduleFlow=Flowtype'aflow='aFlow.flowmodulePost=Posttype'apost='aPost.postlet(>>%)=Post.(>>%)let(>>%?)=Post.(>>%?)moduleEffect=EffectincludeEffectincludeQueryincludeTokenincludeAst.SemanticincludeRouteincludeLatticeincludeIdincludeManagermoduleHook=HookincludePrintmodulePrint=PrintincludeAvalueincludeUtilsmoduleVar=structtypet=varletcompare=compare_varletprintprtv=pp_variableprtvend