permit multiline comments and strings in macros
[bpt/coccinelle.git] / parsing_c / visitor_c.mli
index 166cf64..4499208 100644 (file)
@@ -6,6 +6,8 @@ type visitor_c = {
   ktype      : (fullType    -> unit)  * visitor_c -> fullType    -> unit;
 
   kdecl      : (declaration -> unit)  * visitor_c -> declaration -> unit;
+  konedecl   : (onedecl -> unit)      * visitor_c -> onedecl     -> unit;
+  kparam : (parameterType -> unit)      * visitor_c -> parameterType -> unit;
   kdef       : (definition  -> unit)  * visitor_c -> definition  -> unit;
   kname      : (name  -> unit)        * visitor_c -> name        -> unit;
 
@@ -17,7 +19,7 @@ type visitor_c = {
   kstatementseq: (statement_sequencable   -> unit) * visitor_c -> statement_sequencable   -> unit;
 
 
-  knode:      
+  knode:
     (Control_flow_c.node -> unit) * visitor_c -> Control_flow_c.node -> unit;
   ktoplevel: (toplevel -> unit) * visitor_c -> toplevel -> unit;
 
@@ -28,10 +30,15 @@ val default_visitor_c : visitor_c
 
 val vk_expr      : visitor_c -> expression  -> unit
 val vk_statement : visitor_c -> statement   -> unit
+val vk_statement_sequencable : visitor_c -> statement_sequencable -> unit
 val vk_type      : visitor_c -> fullType    -> unit
 val vk_decl      : visitor_c -> declaration -> unit
+val vk_decl_list : visitor_c -> declaration list -> unit
 val vk_onedecl   : visitor_c -> onedecl -> unit
 val vk_ini       : visitor_c -> initialiser -> unit
+val vk_ini_list  : visitor_c -> initialiser wrap2 list -> unit
+val vk_inis_splitted :
+    visitor_c -> (initialiser, il) Common.either list -> unit
 val vk_name      : visitor_c -> name -> unit
 val vk_def       : visitor_c -> definition  -> unit
 val vk_node      : visitor_c -> Control_flow_c.node -> unit
@@ -44,15 +51,19 @@ val vk_argument_list : visitor_c -> argument wrap2 list -> unit
 val vk_args_splitted : visitor_c -> (argument, il) Common.either list -> unit
 val vk_param : visitor_c -> parameterType -> unit
 val vk_param_list : visitor_c -> parameterType wrap2 list -> unit
-val vk_params_splitted : 
+val vk_params_splitted :
   visitor_c -> (parameterType, il) Common.either list -> unit
 
+val vk_struct_field : visitor_c -> field -> unit
 val vk_struct_fields : visitor_c -> field list -> unit
 val vk_struct_fieldkinds : visitor_c -> fieldkind wrap list -> unit
+val vk_enum_fields : visitor_c -> enumType -> unit
+val vk_enum_fields_splitted :
+    visitor_c -> (oneEnumType, il) Common.either list -> unit
 
 val vk_cst : visitor_c -> ((constant, string) Common.either wrap) -> unit
 
-val vk_define_params_splitted : 
+val vk_define_params_splitted :
   visitor_c -> (string Ast_c.wrap, il) Common.either list -> unit
 
 
@@ -73,10 +84,10 @@ type visitor_c_s = {
   kcppdirective_s : (cpp_directive inout * visitor_c_s) -> cpp_directive inout;
   kdefineval_s : (define_val inout * visitor_c_s) -> define_val inout;
   kstatementseq_s: (statement_sequencable inout * visitor_c_s) -> statement_sequencable inout;
-  kstatementseq_list_s: 
+  kstatementseq_list_s:
     (statement_sequencable list inout * visitor_c_s) -> statement_sequencable list inout;
 
-  knode_s      : 
+  knode_s      :
     Control_flow_c.node inout * visitor_c_s -> Control_flow_c.node    inout;
   ktoplevel_s  : toplevel inout * visitor_c_s -> toplevel inout;
 
@@ -91,41 +102,54 @@ val vk_statement_s : visitor_c_s -> statement -> statement
 val vk_statement_sequencable_s : visitor_c_s -> statement_sequencable -> statement_sequencable
 val vk_type_s : visitor_c_s -> fullType -> fullType
 val vk_decl_s : visitor_c_s -> declaration -> declaration
+val vk_decl_list_s : visitor_c_s -> declaration list -> declaration list
 val vk_ini_s : visitor_c_s -> initialiser -> initialiser
+
+val vk_inis_splitted_s :
+  visitor_c_s ->
+  (initialiser, il) Common.either list ->
+  (initialiser, il) Common.either list
+
 val vk_def_s : visitor_c_s -> definition -> definition
+val vk_name_s : visitor_c_s -> name -> name
 val vk_toplevel_s : visitor_c_s -> toplevel -> toplevel
 val vk_info_s : visitor_c_s -> info -> info
 val vk_ii_s : visitor_c_s -> info list -> info list
 val vk_node_s : visitor_c_s -> Control_flow_c.node -> Control_flow_c.node
 val vk_program_s  : visitor_c_s -> program -> program
 
-val vk_arguments_s : 
-  visitor_c_s -> 
-  argument wrap2 list -> argument wrap2 list
+val vk_arguments_s : visitor_c_s -> argument wrap2 list -> argument wrap2 list
+
+val vk_inis_s : visitor_c_s -> initialiser wrap2 list -> initialiser wrap2 list
 
-val vk_args_splitted_s : 
-  visitor_c_s -> 
-  (argument, il) Common.either list -> 
+val vk_args_splitted_s :
+  visitor_c_s ->
+  (argument, il) Common.either list ->
   (argument, il) Common.either list
 
-val vk_params_s : 
-  visitor_c_s -> 
+val vk_params_s :
+  visitor_c_s ->
   parameterType wrap2 list -> parameterType wrap2 list
 
-val vk_params_splitted_s : 
-  visitor_c_s -> 
-  (parameterType, il) Common.either list -> 
+val vk_params_splitted_s :
+  visitor_c_s ->
+  (parameterType, il) Common.either list ->
   (parameterType, il) Common.either list
 
 
 
 val vk_param_s : visitor_c_s -> parameterType -> parameterType
 
-val vk_define_params_splitted_s : 
-  visitor_c_s -> 
-  (string Ast_c.wrap, il) Common.either list -> 
+val vk_define_params_splitted_s :
+  visitor_c_s ->
+  (string Ast_c.wrap, il) Common.either list ->
   (string Ast_c.wrap, il) Common.either list
 
+val vk_enum_fields_s : visitor_c_s -> enumType -> enumType
+val vk_enum_fields_splitted_s : visitor_c_s ->
+  (oneEnumType, il) Common.either list ->
+  (oneEnumType, il) Common.either list
+val vk_struct_field_s : visitor_c_s -> field -> field
 val vk_struct_fields_s : visitor_c_s -> field list -> field list
 
-val vk_cst_s : visitor_c_s -> ((constant, string) Common.either wrap) inout 
+val vk_cst_s : visitor_c_s -> ((constant, string) Common.either wrap) inout