Release coccinelle-0.1.1
[bpt/coccinelle.git] / parsing_c / flag_parsing_c.ml
CommitLineData
34e49164
C
1(*****************************************************************************)
2(* convenient globals to pass to parse_c.init_defs *)
3(*****************************************************************************)
4let path = Filename.concat (Sys.getenv "HOME") "coccinelle"
5let std_h = ref (Filename.concat path "standard.h")
6
7let cmdline_flags_macrofile () =
8 [
9 "-macro_file", Arg.Set_string std_h,
10 " <file> (default=" ^ !std_h ^ ")";
11 "-D", Arg.Set_string std_h,
12 " short option of -macro_file";
13 ]
14
15(*****************************************************************************)
16(* verbose *)
17(*****************************************************************************)
18
19let verbose_lexing = ref true
20let verbose_parsing = ref true
21let verbose_type = ref true
22
23let filter_msg = ref false
24let filter_define_error = ref false
25let filter_classic_passed = ref false
26
27let pretty_print_type_info = ref false
28
29(* cocci specific *)
30let show_flow_labels = ref true
31
32
33let cmdline_flags_verbose () =
34 [
35 "-no_parse_error_msg", Arg.Clear verbose_parsing, " ";
36 "-no_verbose_parsing", Arg.Clear verbose_parsing , " ";
37 "-no_verbose_lexing", Arg.Clear verbose_lexing , " ";
38 "-no_type_error_msg", Arg.Clear verbose_type, " ";
39
40
41 "-filter_msg", Arg.Set filter_msg ,
42 " filter some cpp message when the macro is a \"known\" cpp construct";
43 "-filter_define_error",Arg.Set filter_define_error," ";
44 "-filter_classic_passed",Arg.Set filter_classic_passed," ";
45 ]
46
47
48(*****************************************************************************)
49(* debugging *)
50(*****************************************************************************)
51
52let debug_lexer = ref false
53let debug_etdt = ref false
54let debug_typedef = ref false
55let debug_cpp = ref false
56
57let debug_unparsing = ref false
58
59let debug_cfg = ref false
60
61(* "debug C parsing/unparsing", "" *)
62let cmdline_flags_debugging () =
63 [
64 "-debug_cpp", Arg.Set debug_cpp, " ";
65 "-debug_lexer", Arg.Set debug_lexer , " ";
66 "-debug_etdt", Arg.Set debug_etdt , " ";
67 "-debug_typedef", Arg.Set debug_typedef, " ";
68
69 "-debug_cfg", Arg.Set debug_cfg , " ";
70 "-debug_unparsing", Arg.Set debug_unparsing, " ";
71 ]
72
73(*****************************************************************************)
74(* change algo *)
75(*****************************************************************************)
76
77let ifdef_to_if = ref false
78let if0_passing = ref true
79let add_typedef_root = ref true
80
81(* cocci specific *)
82let label_strategy_2 = ref false
83
84let cmdline_flags_algos () =
85 [
86 "-ifdef", Arg.Set ifdef_to_if,
87 " convert ifdef to if (buggy!)";
88 "-noif0_passing", Arg.Clear if0_passing,
89 " ";
90 "-noadd_typedef_root", Arg.Clear add_typedef_root, " ";
91
92 "-l1", Arg.Clear label_strategy_2, " ";
93 ]
94
95(*****************************************************************************)
96(* other *)
97(*****************************************************************************)
98
99(* for compare_c *)
100let diff_lines = ref (None : string option) (* number of lines of context *)
101
102(* for parse_c *)
103let use_cache = ref false
104
105let cmdline_flags_other () =
106 [
107 "-U", Arg.Int (fun n -> diff_lines := Some (Common.i_to_s n)),
108 " set number of diff context lines";
109
110 "-use_cache", Arg.Set use_cache,
111 " use .ast_raw pre-parsed cached C file";
112 ]
113
114
115(*****************************************************************************)
116