Release coccinelle-0.1.8
[bpt/coccinelle.git] / parsing_c / token_views_c.mli
1
2 type context = InFunction | InEnum | InStruct | InInitializer | NoContext
3
4 type token_extended = {
5 mutable tok : Parser_c.token;
6 mutable where : context;
7 mutable new_tokens_before : Parser_c.token list;
8 line : int;
9 col : int;
10 }
11 val mk_token_extended : Parser_c.token -> token_extended
12
13 val rebuild_tokens_extented : token_extended list -> token_extended list
14
15 (* ---------------------------------------------------------------------- *)
16 type paren_grouped =
17 Parenthised of paren_grouped list list * token_extended list
18 | PToken of token_extended
19
20 type brace_grouped =
21 Braceised of brace_grouped list list * token_extended *
22 token_extended option
23 | BToken of token_extended
24
25 type ifdef_grouped =
26 Ifdef of ifdef_grouped list list * token_extended list
27 | Ifdefbool of bool * ifdef_grouped list list * token_extended list
28 | NotIfdefLine of token_extended list
29
30 type 'a line_grouped = Line of 'a list
31
32 type body_function_grouped =
33 BodyFunction of token_extended list
34 | NotBodyLine of token_extended list
35
36 (* ---------------------------------------------------------------------- *)
37 val mk_parenthised : token_extended list -> paren_grouped list
38 val mk_braceised : token_extended list -> brace_grouped list
39 val mk_ifdef : token_extended list -> ifdef_grouped list
40 val mk_line_parenthised :
41 paren_grouped list -> paren_grouped line_grouped list
42 val mk_body_function_grouped :
43 token_extended list -> body_function_grouped list
44
45 val line_of_paren : paren_grouped -> int
46 val span_line_paren :
47 int -> paren_grouped list -> paren_grouped list * paren_grouped list
48
49 (* ---------------------------------------------------------------------- *)
50 val iter_token_paren : (token_extended -> unit) -> paren_grouped list -> unit
51 val iter_token_brace : (token_extended -> unit) -> brace_grouped list -> unit
52 val iter_token_ifdef : (token_extended -> unit) -> ifdef_grouped list -> unit
53
54 val tokens_of_paren : paren_grouped list -> token_extended list
55 val tokens_of_paren_ordered : paren_grouped list -> token_extended list
56
57 (* ---------------------------------------------------------------------- *)
58 val set_context_tag: brace_grouped list -> unit
59
60 (* ---------------------------------------------------------------------- *)
61 val set_as_comment : Token_c.cppcommentkind -> token_extended -> unit
62