X-Git-Url: https://git.hcoop.net/bpt/coccinelle.git/blobdiff_plain/90aeb998d88488b4402e7b211b064056d175fcbb..f537ebc4bbd27866c9ac3e1198b6756ebab7f2ba:/parsing_cocci/unitary_ast0.ml diff --git a/parsing_cocci/unitary_ast0.ml b/parsing_cocci/unitary_ast0.ml index 35e9261..9d533c2 100644 --- a/parsing_cocci/unitary_ast0.ml +++ b/parsing_cocci/unitary_ast0.ml @@ -89,6 +89,8 @@ let get_free checker t = match Ast0.unwrap i with Ast0.MetaId(name,_,_) | Ast0.MetaFunc(name,_,_) | Ast0.MetaLocalFunc(name,_,_) -> checker name + | Ast0.DisjId(starter,id_list,mids,ender) -> + detect_unitary_frees(List.map r.VT0.combiner_rec_ident id_list) | _ -> k i in let expression r k e = @@ -113,7 +115,9 @@ let get_free checker t = let declaration r k d = match Ast0.unwrap d with - Ast0.DisjDecl(starter,decls,mids,ender) -> + Ast0.MetaDecl(name,_) | Ast0.MetaField(name,_) + | Ast0.MetaFieldList(name,_,_) -> checker name + | Ast0.DisjDecl(starter,decls,mids,ender) -> detect_unitary_frees(List.map r.VT0.combiner_rec_declaration decls) | _ -> k d in @@ -243,8 +247,8 @@ let do_unitary rules = [] -> ([],[]) | (r::rules) -> match r with - Ast0.ScriptRule (_,_,_,_) - | Ast0.InitialScriptRule (_,_,_) | Ast0.FinalScriptRule (_,_,_) -> + Ast0.ScriptRule (_,_,_,_,_,_) + | Ast0.InitialScriptRule (_,_,_,_) | Ast0.FinalScriptRule (_,_,_,_) -> let (x,rules) = loop rules in (x, r::rules) | Ast0.CocciRule ((minus,metavars,chosen_isos),((plus,_) as plusz),rt) ->