Commit | Line | Data |
---|---|---|
34e49164 C |
1 | (*****************************************************************************) |
2 | (* convenient globals to pass to parse_c.init_defs *) | |
3 | (*****************************************************************************) | |
4 | let path = Filename.concat (Sys.getenv "HOME") "coccinelle" | |
5 | let std_h = ref (Filename.concat path "standard.h") | |
6 | ||
7 | let 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 | ||
19 | let verbose_lexing = ref true | |
20 | let verbose_parsing = ref true | |
21 | let verbose_type = ref true | |
22 | ||
23 | let filter_msg = ref false | |
24 | let filter_define_error = ref false | |
25 | let filter_classic_passed = ref false | |
26 | ||
27 | let pretty_print_type_info = ref false | |
28 | ||
29 | (* cocci specific *) | |
30 | let show_flow_labels = ref true | |
31 | ||
32 | ||
33 | let 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 | ||
52 | let debug_lexer = ref false | |
53 | let debug_etdt = ref false | |
54 | let debug_typedef = ref false | |
55 | let debug_cpp = ref false | |
56 | ||
57 | let debug_unparsing = ref false | |
58 | ||
59 | let debug_cfg = ref false | |
60 | ||
61 | (* "debug C parsing/unparsing", "" *) | |
62 | let 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 | ||
77 | let ifdef_to_if = ref false | |
78 | let if0_passing = ref true | |
79 | let add_typedef_root = ref true | |
80 | ||
81 | (* cocci specific *) | |
82 | let label_strategy_2 = ref false | |
83 | ||
84 | let 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 *) | |
100 | let diff_lines = ref (None : string option) (* number of lines of context *) | |
101 | ||
102 | (* for parse_c *) | |
103 | let use_cache = ref false | |
104 | ||
105 | let 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 |