123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234# 1 "./unparsing_base.ml.cppo"(*
Copyright 2012-2023 Codinuum Software Lab <https://codinuum.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*)[%%prepare_logger]moduletypeFMTR=sigvalformatter:Format.formatterend[%%capture_pathmoduleMake(Fmtr:FMTR)=structletfmtr=Fmtr.formattertypeblock_style=BSshort|BStalltypebox=|Bofint|Bh|Bvofint|Bhvofint|Bhovofintletsprintf=Printf.sprintfletbox_to_string=function|Bi->sprintf"B(%d)"i|Bh->sprintf"Bh"|Bvi->sprintf"Bv(%d)"i|Bhvi->sprintf"Bhv(%d)"i|Bhovi->sprintf"Bhov(%d)"iletpr_string=Format.pp_print_stringfmtrletpr_break=Format.pp_print_breakfmtrletpr_space=Format.pp_print_spacefmtrletpr_newline=Format.pp_print_newlinefmtrletpr_cut=Format.pp_print_cutfmtrletpr_int=Format.pp_print_intfmtrletpr_float=Format.pp_print_floatfmtrletpr_char=Format.pp_print_charfmtrletpr_bool=Format.pp_print_boolfmtrletpr_flush=Format.pp_print_flushfmtrlet_pr_comma()=pr_string","let_pr_eq()=pr_string"="letpr_comma()=pr_string",";pr_space()letpr_eq()=pr_string" = "letpr_lparen()=pr_string"("letpr_rparen()=pr_string")"letpr_lbracket()=pr_string"["letpr_rbracket()=pr_string"]"letpr_lbrace()=pr_string"{"letpr_rbrace()=pr_string"}"letpr_dot()=pr_string"."letpr_ellipsis()=pr_string"..."letpr_amp()=pr_string"&"letpr_colon()=pr_string":"letpr_semicolon()=pr_string";"letpr_bor()=pr_string"|"letpr_none()=()letforce_newline=Format.pp_force_newlinefmtrletpadi=pr_string(String.makei' ')letpad1()=pad1letpr_namename=pr_stringnameletpr_idid=pr_stringidletpr_option:'a.('a->unit)->'aoption->unit=funpr->functionSomex->prx|None->()classppbox=object(self)valmutableboxing_flag=truevalmutableindent=2valmutableorig_functions=Format.pp_get_formatter_out_functionsfmtr()valbox_stack=Stack.create()methodindent=indentmethodboxing_flag=boxing_flagmethoddisable_boxing()=boxing_flag<-falsemethodenable_boxing()=boxing_flag<-truemethodprivateenter_boxb=Stack.pushbbox_stackmethodprivateexit_box()=ignore(Stack.popbox_stack)methodprivatereset_box()=Stack.clearbox_stackmethodprivatecheckpoint_box()=letl=ref[]inStack.iter(funx->l:=x::!l)box_stack;[%debug_log"[%s]"(String.concat";"(List.mapbox_to_string!l))];!lmethodprivaterestore_boxstat=self#reset_box();List.iter(function|Bi->self#open_boxi;ifi>0thenpadi|Bh->self#open_hbox()|Bvi->self#open_vboxi;ifi>0thenpadi|Bhvi->self#open_hvboxi;ifi>0thenpadi|Bhovi->self#open_hovboxi;ifi>0thenpadi)statmethodopen_boxi=self#enter_box(Bi);ifboxing_flagthenFormat.pp_open_boxfmtrimethodopen_hbox()=self#enter_boxBh;ifboxing_flagthenFormat.pp_open_hboxfmtr()methodopen_vboxi=self#enter_box(Bvi);ifboxing_flagthenFormat.pp_open_vboxfmtrimethodopen_hvboxi=self#enter_box(Bhvi);ifboxing_flagthenFormat.pp_open_hvboxfmtrimethodopen_hovboxi=self#enter_box(Bhovi);ifboxing_flagthenFormat.pp_open_hovboxfmtrimethodclose_box()=self#exit_box();ifboxing_flagthenFormat.pp_close_boxfmtr()methodenable_backslash_newline()=orig_functions<-Format.get_formatter_out_functions();letout_string=orig_functions.Format.out_stringinletout_newline()=out_string"\\"01;orig_functions.Format.out_newline()inletfs={Format.out_string=out_string;Format.out_flush=orig_functions.Format.out_flush;Format.out_newline=out_newline;Format.out_spaces=orig_functions.Format.out_spaces;Format.out_indent=orig_functions.Format.out_indent;# 150 "./unparsing_base.ml.cppo"Format.out_width=orig_functions.Format.out_width;# 152 "./unparsing_base.ml.cppo"}inletstat=self#checkpoint_box()inpr_newline();self#restore_boxstat;Format.pp_set_formatter_out_functionsfmtrfsmethoddisable_backslash_newline()=letstat=self#checkpoint_box()inpr_flush();self#restore_boxstat;Format.pp_set_formatter_out_functionsfmtrorig_functionsmethodpr_block_begin=function|BStall->pr_cut();pr_lbrace();self#open_vboxindent;pr_cut()|BSshort->pr_lbrace();force_newline();self#open_vboxindent;padindentmethodpr_block_begin_short()=self#pr_block_beginBSshortmethodpr_block_begin_tall()=self#pr_block_beginBStallmethodpr_block_end()=self#close_box();force_newline();pr_rbrace()methodpr_a:'a.?head:(unit->unit)->?tail:(unit->unit)->(unit->unit)->('a->unit)->'aarray->unit=fun?(head=pr_none)?(tail=pr_none)pr_seppra->if(Array.lengtha)>0thenbeginhead();Array.iteri(funix->(ifi>0thenpr_sep());prx)a;tail()endmethodpr_ha:'a.?head:(unit->unit)->?tail:(unit->unit)->(unit->unit)->('a->unit)->'aarray->unit=fun?(head=pr_none)?(tail=pr_none)pr_seppra->if(Array.lengtha)>0thenbeginself#open_hbox();self#pr_a~head~tailpr_seppra;self#close_box()endmethodpr_va:'a.?head:(unit->unit)->?tail:(unit->unit)->(unit->unit)->('a->unit)->'aarray->unit=fun?(head=pr_none)?(tail=pr_none)pr_seppra->if(Array.lengtha)>0thenbeginself#open_vbox0;self#pr_a~head~tailpr_seppra;self#close_box()endmethodpr_hva:'a.?head:(unit->unit)->?tail:(unit->unit)->(unit->unit)->('a->unit)->'aarray->unit=fun?(head=pr_none)?(tail=pr_none)pr_seppra->if(Array.lengtha)>0thenbeginself#open_hvbox0;self#pr_a~head~tail(fun()->pr_sep();pr_cut())pra;self#close_box();endmethodpr_hova:'a.?head:(unit->unit)->?tail:(unit->unit)->(unit->unit)->('a->unit)->'aarray->unit=fun?(head=pr_none)?(tail=pr_none)pr_seppra->if(Array.lengtha)>0thenbeginself#open_hovbox0;self#pr_a~head~tail(fun()->pr_sep();pr_cut())pra;self#close_box();endend(* of class Unparsing_base.ppbox *)letapply_nthfai=tryfa.(i)withInvalid_argument_->pr_string"___"end(* of module Make *)]