On Mon, 2020-07-06 at 22:03 +0200, Julia Lawall wrote: > > On Fri, 3 Jul 2020, Jaskaran Singh wrote: > > > Attributes are wrapped in the SmPL AST. Reciprocate this and wrap > > attributes in the SmPL parser. > > This doesn't apply for me. >
Ah, I missed the recent changes to the parser. I'll send a v2. Cheers, Jaskaran. > julia > > > > Signed-off-by: Jaskaran Singh <[email protected]> > > --- > > parsing_cocci/parse_aux.ml | 3 +++ > > parsing_cocci/parse_aux.mli | 7 +++++++ > > parsing_cocci/parser_cocci_menhir.mly | 18 ++++++++++-------- > > 3 files changed, 20 insertions(+), 8 deletions(-) > > > > diff --git a/parsing_cocci/parse_aux.ml > > b/parsing_cocci/parse_aux.ml > > index b5d1afb4..f2036bfc 100644 > > --- a/parsing_cocci/parse_aux.ml > > +++ b/parsing_cocci/parse_aux.ml > > @@ -152,6 +152,9 @@ let logic_op ast_op left op right = > > let make_cv cv ty = > > match cv with None -> ty | Some x -> Ast0.wrap > > (Ast0.ConstVol(x,ty)) > > > > +let make_attr attr = > > + Ast0.wrap(Ast0.Attribute(id2mcode attr)) > > + > > let top_dots l = Ast0.wrap l > > > > (* here the offset is that of the first in the sequence of *s, not > > that of > > diff --git a/parsing_cocci/parse_aux.mli > > b/parsing_cocci/parse_aux.mli > > index 91d7cb26..0ecf10b0 100644 > > --- a/parsing_cocci/parse_aux.mli > > +++ b/parsing_cocci/parse_aux.mli > > @@ -151,6 +151,13 @@ val logic_op : > > string -> Ast0_cocci.expression -> Ast0_cocci.base_expression > > Ast0_cocci.wrap > > val make_cv : > > Ast_cocci.const_vol Ast0_cocci.mcode option -> Ast0_cocci.typeC > > -> Ast0_cocci.typeC > > +val make_attr: > > + string * > > + (Data.line_type * int * int * int * int * int * > > + (Ast_cocci.added_string * Ast0_cocci.position_info) list * > > + (Ast_cocci.added_string * Ast0_cocci.position_info) list * > > + Ast0_cocci.anything list * string) -> > > + Ast0_cocci.attr > > val top_dots : 'a -> 'a Ast0_cocci.wrap > > val pointerify : > > Ast0_cocci.typeC -> > > diff --git a/parsing_cocci/parser_cocci_menhir.mly > > b/parsing_cocci/parser_cocci_menhir.mly > > index 63cb8b5e..32bcd63c 100644 > > --- a/parsing_cocci/parser_cocci_menhir.mly > > +++ b/parsing_cocci/parser_cocci_menhir.mly > > @@ -1495,11 +1495,11 @@ fninfo: > > let _ = List.find (function Ast0.FInline(_) -> true | _ -> > > false) $2 in > > raise (Semantic_cocci.Semantic "duplicate inline") > > with Not_found -> (Ast0.FInline(P.clt2mcode "inline" > > $1))::$2 } > > - | Tattr fninfo > > + | a=Tattr fninfo > > { try > > let _ = List.find (function Ast0.FAttr(_) -> true | _ -> false) > > $2 in > > raise (Semantic_cocci.Semantic "multiple attributes") > > - with Not_found -> (Ast0.FAttr(P.id2mcode $1))::$2 } > > + with Not_found -> (Ast0.FAttr(P.make_attr a))::$2 } > > > > fninfo_nt: > > /* empty */ { [] } > > @@ -1514,11 +1514,11 @@ fninfo_nt: > > let _ = List.find (function Ast0.FInline(_) -> true | _ -> > > false) $2 in > > raise (Semantic_cocci.Semantic "duplicate inline") > > with Not_found -> (Ast0.FInline(P.clt2mcode "inline" > > $1))::$2 } > > - | Tattr fninfo_nt > > + | a=Tattr fninfo_nt > > { try > > let _ = List.find (function Ast0.FAttr(_) -> true | _ -> false) > > $2 in > > raise (Semantic_cocci.Semantic "duplicate init") > > - with Not_found -> (Ast0.FAttr(P.id2mcode $1))::$2 } > > + with Not_found -> (Ast0.FAttr(P.make_attr a))::$2 } > > > > storage: > > s=Tstatic { P.clt2mcode Ast.Static s } > > @@ -3227,12 +3227,14 @@ script_virt_name_decl: > > > > %inline > > attr_list: > > - { [] } > > - | a=Tattr f=full_attr_list {P.id2mcode a::f} > > + { [] } > > + | Tattr f=full_attr_list > > + { let a = P.make_attr $1 in a::f } > > > > full_attr_list: > > - { [] } > > - | Tattr full_attr_list {P.id2mcode $1::$2} > > + { [] } > > + | Tattr f=full_attr_list > > + { let a = P.make_attr $1 in a::f } > > > > anything: /* used for script code */ > > TIdentifier { "identifier" } > > -- > > 2.21.3 > > > > _______________________________________________ Cocci mailing list [email protected] https://systeme.lip6.fr/mailman/listinfo/cocci
