Release coccinelle-0.2.5-rc1
[bpt/coccinelle.git] / parsing_c / lexer_parser.mli
1
2 val _handle_typedef : bool ref
3
4 val enable_typedef : unit -> unit
5 val disable_typedef : unit -> unit
6 val is_enabled_typedef : unit -> bool
7
8
9
10 (* private *)
11 type identkind = TypeDefI | IdentI
12 val _typedef : (string, identkind) Common.scoped_h_env ref
13
14 val add_ident : string -> unit
15 val add_typedef : string -> unit
16
17 val add_typedef_root : string -> unit
18
19 val new_scope : unit -> unit
20 val del_scope : unit -> unit
21
22 val is_typedef : string -> bool
23
24 val lexer_reset_typedef : unit -> unit
25
26 val _old_state : (string, identkind) Common.scoped_h_env ref
27 val save_typedef_state : unit -> unit
28 val restore_typedef_state : unit -> unit
29
30
31 type context =
32 | InTopLevel
33 | InFunction
34 | InStruct
35 | InParameter
36 | InInitializer
37 | InEnum
38
39 type lexer_hint = {
40 mutable context_stack: context Common.stack;
41 }
42
43 val _lexer_hint : lexer_hint ref
44 val current_context: unit -> context
45 val push_context: context -> unit
46 val pop_context: unit -> unit
47
48 val default_hint : unit -> lexer_hint
49
50 val is_top_or_struct : context -> bool
51