1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162openCommonopenAst_skipmoduleFlag=Flag_parsing(*****************************************************************************)(* Subsystem testing *)(*****************************************************************************)lettest_tokensfile=ifnot(file=~".*\\.sk")thenpr2"warning: seems not a Skip file";Flag.verbose_lexing:=true;Flag.verbose_parsing:=true;Flag.exn_when_lexical_error:=true;lettoks=Parse_skip.tokensfileintoks|>List.iter(funx->pr2_genx);()lettest_parsexs=letxs=List.mapCommon.fullpathxsinletfullxs=Lib_parsing_skip.find_source_files_of_dir_or_filesxs|>Skip_code.filter_files_if_skip_listinletstat_list=ref[]infullxs|>Console.progress(funk->List.iter(funfile->k();let(_xs,stat)=Common.save_excursionFlag.error_recoverytrue(fun()->Parse_skip.parsefile)inCommon.pushstatstat_list;));Parse_info.print_parsing_stat_list!stat_list;()lettest_dumpfile=letast=Parse_skip.parse_programfileinletv=Meta_ast_skip.vof_any(Programast)inlets=Ocaml.string_of_vvinprs(*****************************************************************************)(* Main entry for Arg *)(*****************************************************************************)letactions()=["-tokens_sk"," <file>",Common.mk_action_1_argtest_tokens;"-parse_sk"," <files or dirs>",Common.mk_action_n_argtest_parse;"-dump_sk"," <file>",Common.mk_action_1_argtest_dump;]