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