Utility module for translating unary and binary operations and compound assignments

`val bin_op_to_string : InferGenerated.Clang_ast_t.binary_operator_info ‑> string`
`val binary_operation_instruction : InferGenerated.Clang_ast_t.source_range ‑> InferGenerated.Clang_ast_t.binary_operator_info ‑> (InferIR.Exp.t * InferIR.Typ.t) ‑> InferIR.Typ.t ‑> (InferIR.Exp.t * InferIR.Typ.t) ‑> InferBase.Location.t ‑> InferIR.Exp.t * InferIR.Sil.instr list`

Returns a pair (`binary_expression`, instructions). "binary_expression" is returned when we are calculating an expression "instructions" is not empty when the binary operator is actually a statement like an assignment.

`val unary_operation_instruction : CFrontend_config.translation_unit_context ‑> InferGenerated.Clang_ast_t.unary_operator_info ‑> InferIR.Exp.t ‑> InferIR.Typ.t ‑> InferBase.Location.t ‑> InferIR.Exp.t * InferIR.Sil.instr list`
`val sil_const_plus_one : InferIR.Exp.t ‑> InferIR.Exp.t`