Sarek_ppx_lib.Sarek_quoteHelper to create an identifier expression
Quote an int as OCaml expression
Quote an int32 as OCaml expression
Quote a float as OCaml expression
Quote a string as OCaml expression
Quote a bool as OCaml expression
val quote_elttype :
loc:Ppxlib.location ->
Kirc_Ast.elttype ->
Ppxlib.expressionQuote an elttype
val quote_memspace :
loc:Ppxlib.location ->
Kirc_Ast.memspace ->
Ppxlib.expressionQuote a memspace
val quote_list :
loc:Ppxlib.location ->
(loc:Ppxlib.location -> 'a -> Ppxlib_ast.Ast.expression) ->
'a list ->
Ppxlib_ast.Ast.expressionQuote a list
val quote_array :
loc:Ppxlib.location ->
(loc:Ppxlib.location -> 'a -> Ppxlib_ast.Ast.expression) ->
'a array ->
Ppxlib_ast.Ast.expressionQuote an array
val quote_option :
loc:Ppxlib.location ->
(loc:Ppxlib.location -> 'a -> Ppxlib_ast.Ast.expression) ->
'a option ->
Ppxlib_ast.Ast.expressionQuote an option
val quote_case :
loc:Ppxlib.location ->
Kirc_Ast.case ->
Ppxlib_ast.Ast.expressionQuote a case
val quote_k_ext :
loc:Ppxlib.location ->
Kirc_Ast.k_ext ->
Ppxlib_ast.Ast.expressionQuote a Kirc_Ast.k_ext value to OCaml expression
val core_type_of_typ :
loc:Ppxlib.location ->
Sarek_types.typ ->
Ppxlib.core_type optionval kernel_ctor_name : Sarek_types.typ -> stringval build_kernel_args :
loc:Ppxlib__.Location.t ->
Sarek_typed_ast.tparam list ->
Ppxlib_ast.Ast.pattern
* Ppxlib__.Import.expression
* Ppxlib__.Import.pattern
* Ppxlib_ast.Ast.expressionmodule IntrinsicRefSet : sig ... endval expr_of_intrinsic_ref :
loc:Ppxlib__.Location.t ->
Sarek_env.intrinsic_ref ->
Ppxlib.expressionGenerate an OCaml expression for an intrinsic reference.
Intrinsics are now defined in stdlib modules (Float32, Float64, Int32, etc.) via %sarek_intrinsic. We reference the function to ensure it exists at compile time. The module path enables extensibility: user libraries can define their own intrinsics and the PPX will reference them correctly.
Examples:
"Float32", "sin") -> Float32.sin"Gpu", "block_barrier") -> Gpu.block_barrierval collect_intrinsic_refs : Sarek_typed_ast.texpr -> IntrinsicRefSet.tCollect all intrinsic function refs from a typed expression
val collect_from_module_items :
Sarek_typed_ast.tmodule_item list ->
IntrinsicRefSet.tCollect intrinsic refs from module items
val generate_intrinsic_check :
loc:Ppxlib__.Location.t ->
Sarek_typed_ast.tkernel ->
Ppxlib.expressionGenerate a dummy expression that references all intrinsic functions. This ensures compile-time checking that all intrinsics exist in their stdlib modules.
val quote_kernel :
loc:Ppxlib__.Location.t ->
?native_kernel:Sarek_typed_ast.tkernel ->
ir_opt:Sarek_ir_ppx.kernel ->
constructors:string list ->
Sarek_typed_ast.tkernel ->
Ppxlib.expressionQuote a kernel to create a sarek_kernel expression
val quote_sarek_loc : loc:Ppxlib.location -> Sarek_ast.loc -> Ppxlib.expressionQuote a Sarek_ast.loc
val quote_sarek_memspace :
loc:Ppxlib.location ->
Sarek_ast.memspace ->
Ppxlib.expressionQuote a Sarek_ast.memspace
val quote_sarek_type_expr :
loc:Ppxlib.location ->
Sarek_ast.type_expr ->
Ppxlib_ast.Ast.expressionQuote a Sarek_ast.type_expr
val quote_sarek_binop :
loc:Ppxlib.location ->
Sarek_ast.binop ->
Ppxlib.expressionQuote a Sarek_ast.binop
val quote_sarek_unop :
loc:Ppxlib.location ->
Sarek_ast.unop ->
Ppxlib.expressionQuote a Sarek_ast.unop
val quote_sarek_for_dir :
loc:Ppxlib.location ->
Sarek_ast.for_dir ->
Ppxlib.expressionQuote a Sarek_ast.for_dir
val quote_sarek_pattern :
loc:Ppxlib.location ->
Sarek_ast.pattern ->
Ppxlib_ast.Ast.expressionQuote a Sarek_ast.pattern
val quote_sarek_param :
loc:Ppxlib.location ->
Sarek_ast.param ->
Ppxlib.expressionQuote a Sarek_ast.param
val quote_sarek_expr :
loc:Ppxlib.location ->
Sarek_ast.expr ->
Ppxlib_ast.Ast.expressionQuote a Sarek_ast.expr - main recursive function
val quote_sarek_module_item :
loc:Ppxlib.location ->
Sarek_ast.module_item ->
Ppxlib.expressionQuote a Sarek_ast.module_item
val quote_sarek_type_decl :
loc:Ppxlib.location ->
Sarek_ast.type_decl ->
Ppxlib.expressionQuote a Sarek_ast.type_decl