Frama-C API - Translate_terms
Generate C implementations of E-ACSL terms.
val to_exp : adata:Assert.t -> ?inplace:bool -> Frama_c_kernel.Cil_types.kernel_function -> Env.t -> Frama_c_kernel.Cil_types.term -> Frama_c_kernel.Cil_types.exp * Assert.t * Env.tto_exp ~adata ?inplace kf env t converts an ACSL term into a corresponding C expression.
adata: assertion context.inplace: if the root term has a label, indicates if it should be immediately translated or ifTranslate_atsshould be used to retrieve the translation.kf: The enclosing function.env: The current environment.t: The term to translate.
val to_exp_il : ?inplace:bool -> Frama_c_kernel.Cil_types.term -> Interlang.exp Interlang_gen.ma version of to_exp that translates ACSL terms to the intermediate language instead to Cil.
val denominator_zero_guard : loc:Frama_c_kernel.Cil_types.location -> ctx:Analyses_types.number_ty -> adata:Assert.t -> kf:Frama_c_kernel.Cil_types.kernel_function -> env:Env.t -> name:string -> ?root:Frama_c_kernel.Cil_types.term -> Frama_c_kernel.Cil_types.term -> Frama_c_kernel.Cil_types.exp * Frama_c_kernel.Cil_types.stmt * Assert.t * Env.tdenominator_zero_guard ~loc ~ctx ~adata ~kf ~env ~name ?root denom converts the ACSL term denom, representing the denominator of a division or modulo, into a corresponding expression using to_exp and a guard statement checking that denom != 0.
loc: location used for the assertion.ctx: context used to create thezeroterm of the guard statement.adata: assertion context.kf: enclosing function.env: current environment.name: used for temporary variable names.root: root term containing the original division or modulo.denom: the term to translate.
exception No_simple_translation of Frama_c_kernel.Cil_types.termExceptin raised if untyped_to_exp would generate new statements in the environment
val untyped_to_exp : Frama_c_kernel.Cil_types.typ option -> Frama_c_kernel.Cil_types.term -> Frama_c_kernel.Cil_types.expConvert an untyped ACSL term into a corresponding C expression.
val translate_rte_exp_ref : (?filter:(Frama_c_kernel.Cil_types.code_annotation -> bool) -> Frama_c_kernel.Cil_types.kernel_function -> Env.t -> Frama_c_kernel.Cil_types.exp -> Env.t) Stdlib.ref