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
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci