E_ACSL.Translate_termsGenerate 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 if Translate_ats should 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 the zero term 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)
ref