On Sun, 26 Jul 2020, Jaskaran Singh wrote:
> This patch series aims to add support for meta attributes in SmPL.
> Currently, only meta attributes in context and minus code are supported.
>
> Changes include adding the MetaAttribute and MetaAttributeDecl constructors to
> the SmPL ASTs and the MetaAttributeVal constructor to the C AST.
>
> Two test cases are included for detecting and removing meta attributes.
Applied.
Is this the end of atributes?
julia
>
> Jaskaran Singh (43):
> parsing_cocci: ast0_cocci: Add MetaAttribute & MetaAttributeDecl
> parsing_cocci: parser: Parse meta attributes and metaattr decls
> parsing_cocci: parse_cocci: Reflect MetaAttribute & MetaAttributeDecl
> parsing_cocci: ast_cocci: Add MetaAttribute & MetaAttributeDecl
> parsing_cocci: iso_pattern: Reflect MetaAttribute & MetaAttributeDecl
> parsing_c: unparse_hrule: Reflect MetaAttribute & MetaAttributeDecl
> parsing_cocci: pretty_print_cocci: Reflect MetaAttribute &
> MetaAttributeDecl
> ocaml: coccilib: Reflect MetaAttribute & MetaAttributeDecl
> ocaml: yes_prepare_ocamlcocci: Reflect MetaAttribute & MetaAttributeDecl
> parsing_c: ast_c: Add MetaAttributeVal
> parsing_c: unparse_hrule: Reflect MetaAttributeVal
> engine: cocci_vs_c: Reflect MetaAttributeVal
> engine: pattern_c: Reflect MetaAttributeVal
> engine: pretty_print_engine: Add MetaAttributeVal
> ocaml: coccilib: Reflect MetaAttributeVal
> ocaml: ocamlcocci_aux: Reflect MetaAttributeVal
> ocaml: run_ocamlcocci: Reflect MetaAttributeVal
> python: pycocci_aux: Reflect MetaAttributeVal
> parsing_cocci: visitor_ast0: Reflect MetaAttribute
> parsing_cocci: check_meta: Reflect MetaAttribute
> parsing_cocci: adjust_pragmas: Reflect MetaAttribute
> parsing_cocci: context_neg: Reflect MetaAttribute
> parsing_cocci: compute_lines: Reflect MetaAttribute
> parsing_cocci: iso_pattern: Reflect MetaAttribute
> parsing_cocci: function_prototypes: Reflect MetaAttribute
> parsing_cocci: arity: Reflect MetaAttribute
> parsing_cocci: unitary_ast0: Reflect MetaAttribute
> parsing_cocci: unparse_ast0: Reflect MetaAttribute
> parsing_cocci: ast0toast: Reflect MetaAttribute
> parsing_cocci: visitor_ast: Reflect MetaAttribute
> parsing_cocci: cleanup_rules: Reflect MetaAttribute
> parsing_cocci: free_vars: Reflect MetaAttribute
> parsing_cocci: get_constants: Reflect MetaAttribute
> parsing_cocci: get_constants2: Reflect MetaAttribute
> parsing_cocci: index: Reflect MetaAttribute
> parsing_cocci: pretty_print_cocci: Reflect MetaAttribute
> parsing_cocci: safe_for_multi_decls: Reflect MetaAttribute
> parsing_cocci: unify_ast: Reflect MetaAttribute
> parsing_c: unparse_cocci: Reflect MetaAttribute
> engine: cocci_vs_c: Reflect MetaAttribute
> tools: spgen: Reflect MetaAttribute
> tests: Add test case to match meta attribute
> tests: Add test case to remove a meta attribute
>
> engine/cocci_vs_c.ml | 23 ++++++++++++++---
> engine/pattern_c.ml | 6 ++++
> engine/pretty_print_engine.ml | 1
> ocaml/coccilib.ml | 1
> ocaml/coccilib.mli | 7 +++++
> ocaml/ocamlcocci_aux.ml | 2 +
> ocaml/run_ocamlcocci.ml | 1
> ocaml/yes_prepare_ocamlcocci.ml | 1
> parsing_c/ast_c.ml | 1
> parsing_c/ast_c.mli | 1
> parsing_c/lib_parsing_c.ml | 3 ++
> parsing_c/lib_parsing_c.mli | 3 ++
> parsing_c/pretty_print_c.ml | 12 ++++++++
> parsing_c/pretty_print_c.mli | 5 +++
> parsing_c/unparse_cocci.ml | 6 ++++
> parsing_c/unparse_hrule.ml | 5 +++
> parsing_cocci/adjust_pragmas.ml | 3 ++
> parsing_cocci/arity.ml | 29 ++++++++++++++-------
> parsing_cocci/ast0_cocci.ml | 1
> parsing_cocci/ast0_cocci.mli | 1
> parsing_cocci/ast0toast.ml | 4 ++
> parsing_cocci/ast_cocci.ml | 3 ++
> parsing_cocci/ast_cocci.mli | 2 +
> parsing_cocci/check_meta.ml | 27 ++++++++++++++-----
> parsing_cocci/cleanup_rules.ml | 10 ++++++-
> parsing_cocci/compute_lines.ml | 14 ++++++----
> parsing_cocci/context_neg.ml | 18 ++++++++-----
> parsing_cocci/data.ml | 1
> parsing_cocci/data.mli | 1
> parsing_cocci/free_vars.ml | 28 ++++++++++++++++++--
> parsing_cocci/function_prototypes.ml | 10 ++++++-
> parsing_cocci/get_constants.ml | 7 ++++-
> parsing_cocci/get_constants2.ml | 9 +++---
> parsing_cocci/index.ml | 3 +-
> parsing_cocci/iso_pattern.ml | 46
> +++++++++++++++++++++++++++++-----
> parsing_cocci/lexer_cocci.mll | 12 ++++++++
> parsing_cocci/parse_aux.ml | 4 ++
> parsing_cocci/parse_cocci.ml | 11 ++++++--
> parsing_cocci/parser_cocci_menhir.mly | 25 ++++++++++++------
> parsing_cocci/pretty_print_cocci.ml | 3 ++
> parsing_cocci/safe_for_multi_decls.ml | 1
> parsing_cocci/unify_ast.ml | 2 +
> parsing_cocci/unitary_ast0.ml | 8 +++++
> parsing_cocci/unparse_ast0.ml | 1
> parsing_cocci/visitor_ast.ml | 7 +++--
> parsing_cocci/visitor_ast0.ml | 5 ++-
> python/pycocci_aux.ml | 2 +
> tests/metaattr.c | 5 +++
> tests/metaattr.cocci | 9 ++++++
> tests/metaattr.res | 5 +++
> tests/remove_metaattr.c | 5 +++
> tests/remove_metaattr.cocci | 9 ++++++
> tests/remove_metaattr.res | 5 +++
> tools/spgen/source/meta_variable.ml | 8 +++++
> 54 files changed, 357 insertions(+), 65 deletions(-)
>
>
>
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci