Skip to content

Commit

Permalink
ppx: restored np and mem attributes
Browse files Browse the repository at this point in the history
  • Loading branch information
pveber committed May 4, 2020
1 parent 4c05148 commit e4d5c9e
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 6 deletions.
16 changes: 10 additions & 6 deletions ppx/ppx_bistro.ml
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ let default_descr var =
Caml.Filename.(remove_extension (basename !L.input_name))
var

let str_item_rewriter ~loc ~path:_ descr version var expr =
let str_item_rewriter ~loc ~path:_ descr version mem np var expr =
let descr = match descr with
| Some d -> d
| None -> B.estring (default_descr var)
Expand All @@ -149,6 +149,8 @@ let str_item_rewriter ~loc ~path:_ descr version var expr =
Bistro.Workflow.plugin
~descr:[%e descr]
?version:[%e B.eopt version]
?np:[%e B.eopt np]
?mem:[%e B.eopt mem]
[%e applicative_body]] in
let workflow_body_with_type = match body_type with
| None -> workflow_body
Expand Down Expand Up @@ -177,7 +179,7 @@ let gen_letin_rewriter ~loc ~env_rewrite (vbs : value_binding list) (body : expr
let letin_rewriter ~loc ~path:_ vbs body = gen_letin_rewriter ~loc vbs ~env_rewrite:false [%expr fun () -> [%e body]]
let pletin_rewriter ~loc ~path:_ vbs body = gen_letin_rewriter ~loc ~env_rewrite:true vbs [%expr fun __dest__ -> [%e body]]

let pstr_item_rewriter ~loc ~path:_ descr version var expr =
let pstr_item_rewriter ~loc ~path:_ descr version mem np var expr =
let descr = match descr with
| Some d -> d
| None -> B.estring (default_descr var)
Expand All @@ -189,6 +191,8 @@ let pstr_item_rewriter ~loc ~path:_ descr version var expr =
Bistro.Workflow.path_plugin
~descr:[%e descr]
?version:[%e B.eopt version]
?np:[%e B.eopt np]
?mem:[%e B.eopt mem]
[%e applicative_body]] in
let workflow_body_with_type = match body_type with
| None -> workflow_body
Expand Down Expand Up @@ -257,13 +261,13 @@ let pletin_ext =
let open Extension in
declare "pdeps" Context.expression Ast_pattern.(single_expr_payload (pexp_let nonrecursive __ __)) pletin_rewriter

let _np_attr =
let np_attr =
Attribute.declare "bistro.np"
Attribute.Context.value_binding
Ast_pattern.(single_expr_payload (__))
(fun x -> x)

let _mem_attr =
let mem_attr =
Attribute.declare "bistro.mem"
Attribute.Context.value_binding
Ast_pattern.(single_expr_payload (__))
Expand All @@ -287,8 +291,8 @@ let str_item_ext label rewriter =
let open Ast_pattern in
let vb =
value_binding ~expr:__ ~pat:(ppat_var __)
(* |> Attribute.pattern np_attr *)
(* |> Attribute.pattern mem_attr *)
|> Attribute.pattern np_attr
|> Attribute.pattern mem_attr
|> Attribute.pattern version_attr
|> Attribute.pattern descr_attr
in
Expand Down
2 changes: 2 additions & 0 deletions test/test_ppx.ml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@ let f x y =
and y = y in
x + y
)

let%workflow [@np 1] [@mem Workflow.int 300] g x y = [%eval x] + [%eval y]

0 comments on commit e4d5c9e

Please sign in to comment.