Lang.FrontendSourceC front-end to translate parser AST into MOPSA AST
========================
Extra options to pass to clang when parsing
List of include directories
Name of the target binary to analyze
Disable stubs of the standard library
Enable the parser cache.
Display all compiler warnings
Lists of functions that the body will be replaced by a stub
Allow library-only targets in the .db files (used for multilanguage analysis)
Target architecture triple to analyze for (host if left empty)
Additional stub files to parse
List of translation units to ignore during linking
============
type ctx = {ctx_prj : Mopsa_c_parser.C_AST.project;ctx_fun : C_lang__.Ast.c_fundec Mopsa_c_parser.C_AST.StringMap.t;ctx_type : (type_space * string, Mopsa.typ) Stdlib.Hashtbl.t;ctx_vars : (int * string, Mopsa.var * Mopsa_c_parser.C_AST.variable)
Stdlib.Hashtbl.t;ctx_macros : Mopsa_c_parser.C_AST.macro Mopsa_c_parser.C_AST.StringMap.t;ctx_predicates : Mopsa_c_stubs_parser.Passes.Preprocessor.predicate
Mopsa_c_parser.C_AST.StringMap.t;ctx_stubs : (string, Mopsa_c_stubs_parser.Cst.stub) Stdlib.Hashtbl.t;ctx_enums : Z.t Mopsa_c_parser.C_AST.StringMap.t;}List of input files
Target information used for parsing
val find_function_in_context :
ctx ->
Utils_core.Location.range ->
Mopsa_c_parser.C_AST.func ->
C_lang__.Ast.c_fundec===============
val parse_file :
string ->
?nb:(int * int) ->
?stub:bool ->
string list ->
string ->
bool ->
bool ->
Mopsa_c_parser.Clang_to_C.context ->
unit=============
****************
val from_scope_update :
ctx ->
Mopsa_c_parser.C_AST.scope_update ->
C_lang__.Ast.c_scope_update==============
val from_body_option :
ctx ->
Mopsa.range ->
Mopsa_c_parser.C_AST.block option ->
Mopsa.stmt option===============
val from_unary_operator :
Mopsa_c_parser.C_AST.unary_operator ->
Mopsa.typ ->
Ast.Operator.operatorval from_binary_operator :
Mopsa_c_parser.C_AST.binary_operator ->
Mopsa.typ ->
Ast.Operator.operatorval from_character_kind :
Mopsa_c_parser.C_AST.character_kind ->
C_lang__.Ast.c_character_kind=============
val from_init_option :
ctx ->
Mopsa_c_parser.C_AST.init option ->
C_lang__.Ast.c_var_init option=========
val from_array_length :
ctx ->
Mopsa_c_parser.C_AST.array_length ->
C_lang__.Ast.c_array_lengthval from_function_type :
ctx ->
Mopsa_c_parser.C_AST.function_type ->
C_lang__.Ast.c_function_type========================
=====================
val from_stub_func :
ctx ->
Mopsa_c_parser.C_AST.func ->
Parsing.Ast.stub ->
Stubs.Ast.stub_funcval from_stub_requires :
ctx ->
Parsing.Ast.requires Mopsa_utils.Location.with_range ->
Stubs.Ast.requires Mopsa.with_rangeval from_stub_free :
ctx ->
Parsing.Ast.free Mopsa_utils.Location.with_range ->
Stubs.Ast.free Mopsa.with_rangeval from_stub_message :
ctx ->
Parsing.Ast.message Mopsa_utils.Location.with_range ->
Stubs.Ast.message Mopsa.with_rangeval from_stub_assigns :
ctx ->
Parsing.Ast.assigns Mopsa_utils.Location.with_range ->
Stubs.Ast.assigns Mopsa.with_rangeval from_stub_local :
ctx ->
Parsing.Ast.local Mopsa_utils.Location.with_range ->
Stubs.Ast.local Mopsa.with_rangeval from_stub_ensures :
ctx ->
Parsing.Ast.ensures Mopsa_utils.Location.with_range ->
Stubs.Ast.ensures Mopsa.with_rangeval from_stub_assumes :
ctx ->
Parsing.Ast.assumes Mopsa_utils.Location.with_range ->
Stubs.Ast.assumes Mopsa.with_rangeval from_stub_directives :
ctx ->
(Mopsa_c_parser.Clang_AST.comment
* Mopsa_c_parser.C_AST.macro Mopsa_c_parser.C_AST.StringMap.t)
list
Mopsa_c_parser.C_AST.RangeMap.t ->
Stubs.Ast.stub_directive list