More to the PascaLIGO pretty-printer.
This commit is contained in:
parent
2d74681c96
commit
c376650ee5
@ -104,15 +104,28 @@ and pp_fun_expr {value; _} = string "TODO:pp_fun_expr"
|
|||||||
|
|
||||||
and pp_fun_decl {value; _} =
|
and pp_fun_decl {value; _} =
|
||||||
let {kwd_recursive; fun_name; param;
|
let {kwd_recursive; fun_name; param;
|
||||||
ret_type; block_with; return; attributes} = value in
|
ret_type; block_with; return; attributes; _} = value in
|
||||||
let start =
|
let start =
|
||||||
match kwd_recursive with
|
match kwd_recursive with
|
||||||
None -> string "function"
|
None -> string "function"
|
||||||
| Some _ -> string "recursive" ^/^ string "function" in
|
| Some _ -> string "recursive" ^/^ string "function" in
|
||||||
let parameters = pp_par pp_parameters param in
|
let parameters = pp_par pp_parameters param in
|
||||||
let return_t = pp_type_expr ret_type in
|
let return_t = pp_type_expr ret_type in
|
||||||
|
let blk_opening, blk_in, blk_closing =
|
||||||
string "TODO:pp_fun_decl"
|
match block_with with
|
||||||
|
None -> empty, empty, empty
|
||||||
|
| Some (b,_) ->
|
||||||
|
hardline ^^ string "block [", pp_block b, string "] with " in
|
||||||
|
let expr = pp_expr return in
|
||||||
|
let attr = match attributes with
|
||||||
|
None -> empty
|
||||||
|
| Some a -> hardline ^^ pp_attr_decl a
|
||||||
|
in group (start ^^ nest 2 (break 1 ^^ parameters))
|
||||||
|
^/^ string ": " ^^ nest 2 return_t
|
||||||
|
^^ string " is" ^^ blk_opening
|
||||||
|
^^ nest 2 (break 0 ^^ blk_in)
|
||||||
|
^/^ blk_closing ^^ nest 4 (break 1 ^^ expr)
|
||||||
|
^^ attr
|
||||||
|
|
||||||
and pp_parameters p = pp_nsepseq ";" pp_param_decl p
|
and pp_parameters p = pp_nsepseq ";" pp_param_decl p
|
||||||
|
|
||||||
@ -120,9 +133,15 @@ and pp_param_decl = function
|
|||||||
ParamConst c -> pp_param_const c
|
ParamConst c -> pp_param_const c
|
||||||
| ParamVar v -> pp_param_var v
|
| ParamVar v -> pp_param_var v
|
||||||
|
|
||||||
and pp_param_const {value; _} = string "PP:pp_param_const"
|
and pp_param_const {value; _} =
|
||||||
|
let {var; param_type; _} : param_const = value in
|
||||||
|
group (string ("const " ^ var.value)
|
||||||
|
^/^ string ": " ^^ nest 2 (pp_type_expr param_type))
|
||||||
|
|
||||||
and pp_param_var {value; _} = string "TODO:pp_param_var"
|
and pp_param_var {value; _} =
|
||||||
|
let {var; param_type; _} : param_var = value in
|
||||||
|
group (string ("var " ^ var.value)
|
||||||
|
^/^ string ": " ^^ nest 2 (pp_type_expr param_type))
|
||||||
|
|
||||||
and pp_block {value; _} = string "TODO:pp_block"
|
and pp_block {value; _} = string "TODO:pp_block"
|
||||||
|
|
||||||
@ -337,9 +356,12 @@ and pp_selection = function
|
|||||||
FieldName _ -> string "TODO:pp_selection:FieldName"
|
FieldName _ -> string "TODO:pp_selection:FieldName"
|
||||||
| Component cmp -> cmp.value |> snd |> Z.to_string |> string
|
| Component cmp -> cmp.value |> snd |> Z.to_string |> string
|
||||||
|
|
||||||
and pp_tuple_expr {value; _} = string "TODO:pp_tuple_expr"
|
and pp_tuple_expr tuple = pp_par (pp_nsepseq "," pp_expr) tuple
|
||||||
|
|
||||||
and pp_fun_call {value; _} = string "TODO:pp_fun_call"
|
and pp_fun_call {value; _} =
|
||||||
|
let lambda, arguments = value in
|
||||||
|
let arguments = pp_tuple_expr arguments in
|
||||||
|
group (pp_expr lambda ^^ nest 2 (break 1 ^^ arguments))
|
||||||
|
|
||||||
and pp_arguments v = pp_tuple_expr v
|
and pp_arguments v = pp_tuple_expr v
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user