[Linux-kernel-mentees] [PATCH v3 15/23] parsing_cocci: visitor_ast: Visit Parameter attributes
Jaskaran Singh
jaskaransingh7654321 at gmail.com
Mon May 11 10:12:52 UTC 2020
Parameter attributes are added to the SmPL AST. Visit these attributes in
the AST visitor.
Signed-off-by: Jaskaran Singh <jaskaransingh7654321 at gmail.com>
---
parsing_cocci/visitor_ast.ml | 22 +++++++++++++++++-----
1 file changed, 17 insertions(+), 5 deletions(-)
diff --git a/parsing_cocci/visitor_ast.ml b/parsing_cocci/visitor_ast.ml
index 8e530114..63eab999 100644
--- a/parsing_cocci/visitor_ast.ml
+++ b/parsing_cocci/visitor_ast.ml
@@ -621,9 +621,18 @@ let combiner bind option_default
and parameterTypeDef p =
let k p =
match Ast.unwrap p with
- Ast.VoidParam(ty) -> fullType ty
- | Ast.Param(ty,Some id) -> named_type ty id
- | Ast.Param(ty,None) -> fullType ty
+ Ast.VoidParam(ty,attr) ->
+ let lty = fullType ty in
+ let lattr = multibind (List.map string_mcode attr) in
+ bind lty lattr
+ | Ast.Param(ty,Some id,attr) ->
+ let lid = named_type ty id in
+ let lattr = multibind (List.map string_mcode attr) in
+ bind lid lattr
+ | Ast.Param(ty,None,attr) ->
+ let lty = fullType ty in
+ let lattr = multibind (List.map string_mcode attr) in
+ bind lty lattr
| Ast.MetaParam(name,_,_,_) -> meta_mcode name
| Ast.MetaParamList(name,_,_,_,_) -> meta_mcode name
| Ast.AsParam(p,asexp) ->
@@ -1582,8 +1591,11 @@ let rebuilder
let k p =
Ast.rewrap p
(match Ast.unwrap p with
- Ast.VoidParam(ty) -> Ast.VoidParam(fullType ty)
- | Ast.Param(ty,id) -> Ast.Param(fullType ty, get_option ident id)
+ Ast.VoidParam(ty,attr) ->
+ Ast.VoidParam(fullType ty,List.map string_mcode attr)
+ | Ast.Param(ty,id,attr) ->
+ Ast.Param
+ (fullType ty, get_option ident id,List.map string_mcode attr)
| Ast.MetaParam(name,constraints,keep,inherited) ->
Ast.MetaParam(meta_mcode name,constraints,keep,inherited)
| Ast.MetaParamList(name,lenname_inh,constraints,keep,inherited) ->
--
2.21.1
More information about the Linux-kernel-mentees
mailing list