Sarek_parseval extract_param_from_pattern : Ppxlib.pattern -> Sarek_ast.paramval extract_type_from_pattern : Ppxlib.pattern -> Sarek_ast.type_expr optionval collect_fun_params :
Ppxlib.expression ->
Ppxlib.pattern list * Sarek_parse_helpers.fun_body optionval parse_binop : string -> Sarek_ast.binop optionval parse_unop : string -> Sarek_ast.unop optionval parse_type : Ppxlib.core_type -> Sarek_ast.type_exprParse 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_assign_form :
Ppxlib.expression ->
Ppxlib.expression ->
Sarek_ast.expr_descExtract body for mutable assignment: x := v
val parse_pragma_form :
Ppxlib.expression ->
Ppxlib.expression ->
Sarek_ast.expr_descExtract body for pragma form: pragma "opt1"; "opt2" body
val parse_create_array_form :
Ppxlib.expression ->
Ppxlib.expression ->
Sarek_ast.expr_descExtract body for create_array form: create_array size memspace
val parse_binop_or_app_form :
Ppxlib.expression ->
string ->
Ppxlib.expression ->
Ppxlib.expression ->
Sarek_ast.expr_descExtract body for binary operator or function application arm
val parse_let_form :
Ppxlib.pattern ->
Ppxlib.expression ->
Ppxlib.expression ->
Sarek_ast.expr_descExtract body for let binding arm
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