Commit | Line | Data |
---|---|---|
708f4980 C |
1 | module Ast0 = Ast0_cocci |
2 | module V0 = Visitor_ast0 | |
3 | module VT0 = Visitor_ast0_types | |
4 | ||
5 | let compute_adjacency p = | |
6 | let counter = ref 0 in | |
7 | let mcode (a,b,c,d,e,_) = (a,b,c,d,e,!counter) in | |
8 | let string_mcode ((str,_,info,mc,_,_) as x) = | |
9 | match str with | |
10 | "..." | "<..." | "...>" | "<+..." | "...+>" -> | |
11 | (match mc with | |
12 | Ast0.MINUS _ -> mcode x | |
13 | | Ast0.CONTEXT _ -> counter := !counter + 1; x | |
14 | | _ -> failwith "unexpected mcode for ...") | |
15 | | _ -> mcode x in | |
16 | let fn = | |
17 | V0.rebuilder | |
18 | {V0.rebuilder_functions with | |
19 | VT0.rebuilder_meta_mcode = mcode; | |
20 | VT0.rebuilder_string_mcode = string_mcode; | |
21 | VT0.rebuilder_const_mcode = mcode; | |
22 | VT0.rebuilder_assign_mcode = mcode; | |
23 | VT0.rebuilder_fix_mcode = mcode; | |
24 | VT0.rebuilder_unary_mcode = mcode; | |
25 | VT0.rebuilder_binary_mcode = mcode; | |
26 | VT0.rebuilder_cv_mcode = mcode; | |
27 | VT0.rebuilder_sign_mcode = mcode; | |
28 | VT0.rebuilder_struct_mcode = mcode; | |
29 | VT0.rebuilder_storage_mcode = mcode; | |
30 | VT0.rebuilder_inc_mcode = mcode;} in | |
31 | List.map fn.VT0.rebuilder_rec_top_level p | |
32 |