123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687(**************************************************************************)(* This file is part of BINSEC. *)(* *)(* Copyright (C) 2016-2024 *)(* 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). *)(* *)(**************************************************************************)openTypesmoduletypeS=sigtypebuiltintype'at=|Debug:{msg:string;mutablesucc:[`All]t}->[<`All]t|Print:{output:Output.t;mutablesucc:[`All]t}->[<`All]t|Step:{addr:Virtual_address.t;n:int;mutablesucc:[`All]t;}->[<`All]t|Assign:{var:Var.t;rval:Expr.t;mutablesucc:[`All]t;}->[<`All]t|Clobber:{var:Var.t;mutablesucc:[`All]t}->[<`All]t|Load:{var:Var.t;base:A.t;dir:Machine.endianness;addr:Expr.t;mutablesucc:[`All]t;}->[<`All]t|Store:{base:A.t;dir:Machine.endianness;addr:Expr.t;rval:Expr.t;mutablesucc:[`All]t;}->[<`All]t|Symbolize:{var:Var.t;mutablesucc:[`All]t}->[<`All]t|Assume:{test:Expr.t;mutablesucc:[`All]t;}->[<`Assume|`All]t|Assert:{test:Expr.t;mutablesucc:[`All]t;}->[<`Assert|`All]t|Branch:{test:Expr.t;mutabletaken:[`All]t;mutablefallthrough:[`All]t;}->[<`Branch|`All]t|Goto:Virtual_address.t->[<`All]t|Jump:Expr.t->[<`Jump|`All]t|Halt:[<`All]t|Probe:{kind:Probe.t;mutablesucc:[`All]t;}->[<`Probe|`All]t|Builtin:{f:builtin;mutablesucc:[`All]t}->[`All]t|Cut:[<`All]t|Die:string->[<`All]tend