Sarek_ppx_lib.Sarek_parseval loc_of_ppxlib : Ppxlib.Location.t -> Sarek_ast.locConvert ppxlib location to Sarek location
val loc_to_sloc : Ppxlib.Location.t -> Sarek_ast.locval parse_type : Ppxlib.core_type -> Sarek_ast.type_exprParse a core_type to type_expr
val parse_record_fields :
Ppxlib.label_declaration list ->
(string * bool * Sarek_ast.type_expr) listval parse_variant_constructors :
Ppxlib.constructor_declaration list ->
(string * Sarek_ast.type_expr option) listval extract_type_from_pattern : Ppxlib.pattern -> Sarek_ast.type_expr optionExtract type annotation from a Ppxlib pattern if present
Extract variable name from a Ppxlib pattern
val extract_param_from_pattern : Ppxlib.pattern -> Sarek_ast.paramExtract parameter from pparam_desc
val parse_pattern : Ppxlib.pattern -> Sarek_ast.patternParse a Ppxlib pattern to Sarek pattern
val parse_binop : string -> Sarek_ast.binop optionParse a binary operator
val parse_unop : string -> Sarek_ast.unop optionParse a unary operator
val collect_fun_params :
Ppxlib.expression ->
Ppxlib.function_param list * fun_body optionParse let%shared: let%shared name : type = size in body Syntax: let%shared tile : float32 array in body let%shared tile : float32 array = 64 in body
val parse_superstep :
(Ppxlib.expression -> Sarek_ast.expr) ->
Ppxlib.expression ->
Sarek_ast.expr_descParse let%superstep: let%superstep ~divergent name = body in cont Syntax: let%superstep load = tile.(i) <- v in cont let%superstep ~divergent final = ... in cont
val parse_expression : Ppxlib.expression -> Sarek_ast.exprParse an expression
val parse_kernel_function : Ppxlib.expression -> Sarek_ast.kernelParse a function expression into a kernel
val parse_payload : Ppxlib.expression -> Sarek_ast.kernelParse from ppxlib payload