Add poc files
This commit is contained in:
parent
30da2412e3
commit
fa600b98f7
220 changed files with 45679 additions and 0 deletions
115
lang_cpp/parsing/test_parsing_cpp.ml
Normal file
115
lang_cpp/parsing/test_parsing_cpp.ml
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
open Common
|
||||
|
||||
open Parse_info
|
||||
open Ast_cpp
|
||||
module Ast = Ast_cpp
|
||||
module Flag = Flag_parsing_cpp
|
||||
module TH = Token_helpers_cpp
|
||||
|
||||
module Stat = Parse_info
|
||||
|
||||
(*****************************************************************************)
|
||||
(* Subsystem testing *)
|
||||
(*****************************************************************************)
|
||||
|
||||
let test_tokens_cpp file =
|
||||
Flag.verbose_lexing := true;
|
||||
Flag.verbose_parsing := true;
|
||||
let toks = Parse_cpp.tokens file in
|
||||
toks +> List.iter (fun x -> pr2_gen x);
|
||||
()
|
||||
|
||||
let test_dump_cpp file =
|
||||
Parse_cpp.init_defs !Flag.macros_h;
|
||||
let ast = Parse_cpp.parse_program file in
|
||||
let v = Meta_ast_cpp.vof_program ast in
|
||||
let s = Ocaml.string_of_v v in
|
||||
pr s
|
||||
|
||||
|
||||
let test_dump_cpp_full file =
|
||||
Parse_cpp.init_defs !Flag.macros_h;
|
||||
let ast = Parse_cpp.parse_program file in
|
||||
let toks = Parse_cpp.tokens file in
|
||||
let precision = { Meta_ast_generic.
|
||||
full_info = true; type_info = true; token_info = true;
|
||||
}
|
||||
in
|
||||
let v = Meta_ast_cpp.vof_program ~precision ast in
|
||||
let s = Ocaml.string_of_v v in
|
||||
pr s;
|
||||
toks +> List.iter (fun tok ->
|
||||
match tok with
|
||||
| Parser_cpp.TComment (ii) ->
|
||||
let v = Parse_info.vof_info ii in
|
||||
let s = Ocaml.string_of_v v in
|
||||
pr s
|
||||
| _ -> ()
|
||||
);
|
||||
()
|
||||
|
||||
let test_dump_cpp_view file =
|
||||
Parse_cpp.init_defs !Flag.macros_h;
|
||||
let toks_orig = Parse_cpp.tokens file in
|
||||
let toks =
|
||||
toks_orig +> Common.exclude (fun x ->
|
||||
Token_helpers_cpp.is_comment x ||
|
||||
Token_helpers_cpp.is_eof x
|
||||
)
|
||||
in
|
||||
let extended = toks +> List.map Token_views_cpp.mk_token_extended in
|
||||
Parsing_hacks_cpp.find_template_inf_sup extended;
|
||||
|
||||
let multi = Token_views_cpp.mk_multi extended in
|
||||
Token_views_context.set_context_tag_multi multi;
|
||||
let v = Token_views_cpp.vof_multi_grouped_list multi in
|
||||
let s = Ocaml.string_of_v v in
|
||||
pr s
|
||||
|
||||
|
||||
let test_parse_cpp_fuzzy xs =
|
||||
let fullxs = Lib_parsing_cpp.find_source_files_of_dir_or_files xs
|
||||
+> Skip_code.filter_files_if_skip_list
|
||||
in
|
||||
fullxs +> Console.progress (fun k -> List.iter (fun file ->
|
||||
k ();
|
||||
Common.save_excursion Flag_parsing_cpp.strict_lexer true (fun () ->
|
||||
try
|
||||
let _fuzzy = Parse_cpp.parse_fuzzy file in
|
||||
()
|
||||
with exn ->
|
||||
pr2 (spf "PB with: %s, exn = %s" file (Common.exn_to_s exn));
|
||||
)
|
||||
))
|
||||
|
||||
let test_dump_cpp_fuzzy file =
|
||||
let fuzzy, _toks = Parse_cpp.parse_fuzzy file in
|
||||
let v = Ast_fuzzy.vof_trees fuzzy in
|
||||
let s = Ocaml.string_of_v v in
|
||||
pr2 s
|
||||
|
||||
(*****************************************************************************)
|
||||
(* Main entry for Arg *)
|
||||
(*****************************************************************************)
|
||||
|
||||
let actions () = [
|
||||
"-tokens_cpp", " <file>",
|
||||
Common.mk_action_1_arg test_tokens_cpp;
|
||||
|
||||
"-dump_cpp", " <file>",
|
||||
Common.mk_action_1_arg test_dump_cpp;
|
||||
|
||||
"-dump_nim", " <file>",
|
||||
Common.mk_action_1_arg Test_dump_nim.test_dump_nim;
|
||||
|
||||
"-dump_cpp_full", " <file>",
|
||||
Common.mk_action_1_arg test_dump_cpp_full;
|
||||
"-dump_cpp_view", " <file>",
|
||||
Common.mk_action_1_arg test_dump_cpp_view;
|
||||
|
||||
"-parse_cpp_fuzzy", " <files or dirs>",
|
||||
Common.mk_action_n_arg test_parse_cpp_fuzzy;
|
||||
"-dump_cpp_fuzzy", " <file>",
|
||||
Common.mk_action_1_arg test_dump_cpp_fuzzy;
|
||||
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue