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.

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

Reply via email to