permit multiline comments and strings in macros
[bpt/coccinelle.git] / parsing_c / token_views_c.mli
CommitLineData
708f4980
C
1
2type context = InFunction | InEnum | InStruct | InInitializer | NoContext
3
4type 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}
11val mk_token_extended : Parser_c.token -> token_extended
12
13val rebuild_tokens_extented : token_extended list -> token_extended list
14
15(* ---------------------------------------------------------------------- *)
16type paren_grouped =
17 Parenthised of paren_grouped list list * token_extended list
18 | PToken of token_extended
19
20type brace_grouped =
21 Braceised of brace_grouped list list * token_extended *
22 token_extended option
23 | BToken of token_extended
24
25type 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
30type 'a line_grouped = Line of 'a list
31
32type body_function_grouped =
33 BodyFunction of token_extended list
34 | NotBodyLine of token_extended list
35
36(* ---------------------------------------------------------------------- *)
37val mk_parenthised : token_extended list -> paren_grouped list
38val mk_braceised : token_extended list -> brace_grouped list
39val mk_ifdef : token_extended list -> ifdef_grouped list
40val mk_line_parenthised :
41 paren_grouped list -> paren_grouped line_grouped list
42val mk_body_function_grouped :
43 token_extended list -> body_function_grouped list
44
45val line_of_paren : paren_grouped -> int
46val span_line_paren :
47 int -> paren_grouped list -> paren_grouped list * paren_grouped list
48
49(* ---------------------------------------------------------------------- *)
50val iter_token_paren : (token_extended -> unit) -> paren_grouped list -> unit
51val iter_token_brace : (token_extended -> unit) -> brace_grouped list -> unit
52val iter_token_ifdef : (token_extended -> unit) -> ifdef_grouped list -> unit
53
54val tokens_of_paren : paren_grouped list -> token_extended list
55val tokens_of_paren_ordered : paren_grouped list -> token_extended list
56
57(* ---------------------------------------------------------------------- *)
58val set_context_tag: brace_grouped list -> unit
59
60(* ---------------------------------------------------------------------- *)
61val set_as_comment : Token_c.cppcommentkind -> token_extended -> unit
feec80c3
C
62val save_as_comment :
63 (Token_c.ifdef -> Token_c.cppcommentkind)-> token_extended -> unit
708f4980 64