Module Sarek_native_gen_expr

val gen_memory_access : loc:Ppxlib.location -> ctx:Sarek_native_gen_base.gen_context -> gen_expr: (loc:Ppxlib.location -> Sarek_typed_ast.texpr -> Ppxlib_ast.Ast.expression) -> Sarek_typed_ast.texpr -> Ppxlib.expression

Generate memory access operations (vectors, arrays, record fields)

val gen_let_binding : loc:Ppxlib__.Location.t -> ctx:Sarek_native_gen_base.gen_context -> gen_expr: (loc:Ppxlib__.Location.t -> Sarek_typed_ast.texpr -> Ppxlib_ast.Ast.expression) -> gen_expr_impl: (loc:Ppxlib__.Location.t -> ctx:Sarek_native_gen_base.gen_context -> Sarek_typed_ast.texpr -> Ppxlib_ast.Ast.expression) -> Sarek_typed_ast.texpr -> Ppxlib.expression

Generate let bindings (let, let mut, assignment)

val gen_control_flow : loc:Ppxlib.location -> gen_expr: (loc:Ppxlib.location -> Sarek_typed_ast.texpr -> Ppxlib_ast.Ast.expression) -> Sarek_typed_ast.texpr -> Ppxlib.expression

Generate control flow (if, for, while)

val gen_data_structure : loc:Ppxlib.location -> ctx:Sarek_native_gen_base.gen_context -> gen_expr: (loc:Ppxlib.location -> Sarek_typed_ast.texpr -> Ppxlib__.Import.expression) -> Sarek_typed_ast.texpr -> Ppxlib.expression

Generate data structures (records, variants, tuples, arrays)

val gen_special_expr : loc:Ppxlib__.Location.t -> gen_expr: (loc:Ppxlib__.Location.t -> Sarek_typed_ast.texpr -> Ppxlib.expression) -> Sarek_typed_ast.texpr -> Ppxlib.expression

Generate special expressions (return, global ref, native, pragma, open)

val gen_parallel_construct : ?current_module:Stdlib.String.t -> ?inline_types:Sarek_native_gen_base.StringSet.t -> loc:Ppxlib.location -> gen_expr: (loc:Ppxlib.location -> Sarek_typed_ast.texpr -> Ppxlib_ast.Ast.expression) -> Sarek_typed_ast.texpr -> Ppxlib.expression

Generate BSP parallel constructs (let%shared, let%superstep, let rec)