From 9f8e26f459677a621822918b7539ae94214621ac Mon Sep 17 00:00:00 2001 From: Coccinelle Date: Sun, 3 Oct 2010 14:03:20 +0200 Subject: [PATCH] Release coccinelle-0.2.0 ** Features: - Remove duplicated code in disjunctions - Better error message when grep finds nothing relevant. Thanks to Joe Perches for the suggestion. - added -keep_comments option for the unparsing of the transformed code - Option "-version" now also gives information about built-in Python binding support. - slightly faster environment manipulation in pathological cases - hack added to accept well-formed #define after function header ** Bugfix: - Proper consideration of #define macro arguments in checking for the use of metavariables and in computing the line numbers of complex terms - Better parsing of included .cocci files - Put included .cocci files in the right order - Bind position variables only once for #include - Fix bug in include_match that caused everything to halt when all matches were discarded - Merge unlikely/likely iso rules under a iso rule named unlikely - Some fixes to coccicheck rules, thanks to Andrew Lunn - Support groups in regular expression, thanks to Michael Stefaniuc --- Makefile | 22 +- changes.txt | 15 +- cocci.ml | 22 + cocci.mli | 22 + commitmsg | 26 +- ctl/Makefile | 20 + ctl/ast_ctl.ml | 22 + ctl/ctl_engine.ml | 22 + ctl/ctl_engine.mli | 22 + ctl/flag_ctl.ml | 22 + ctl/pretty_print_ctl.ml | 22 + ctl/pretty_print_ctl.mli | 22 + ctl/test_ctl.ml | 22 + ctl/wrapper_ctl.ml | 22 + ctl/wrapper_ctl.mli | 22 + demos/regexp.cocci | 2 +- demos/regexp2.c | 5 + demos/regexp2.cocci | 6 + docs/manual/main_grammar.pdf | Bin 287682 -> 287683 bytes docs/manual/manual.pdf | Bin 365066 -> 365065 bytes docs/manual/options.pdf | Bin 94794 -> 94559 bytes engine/Makefile | 20 + engine/asttoctl.ml | 22 + engine/asttoctl.mli | 22 + engine/asttoctl2.ml | 22 + engine/asttoctl2.mli | 22 + engine/asttomember.ml | 22 + engine/asttomember.mli | 22 + engine/c_vs_c.ml | 22 + engine/c_vs_c.mli | 22 + engine/check_exhaustive_pattern.ml | 22 + engine/check_reachability.ml | 22 + engine/check_reachability.mli | 22 + engine/cocci_vs_c.ml | 29 +- engine/cocci_vs_c.mli | 22 + engine/ctlcocci_integration.ml | 22 + engine/ctlcocci_integration.mli | 22 + engine/ctltotex.ml | 22 + engine/ctltotex.mli | 22 + engine/flag_engine.ml | 22 + engine/flag_matcher.ml | 22 + engine/isomorphisms_c_c.ml | 22 + engine/lib_engine.ml | 22 + engine/lib_matcher_c.ml | 22 + engine/lib_matcher_c.mli | 22 + engine/main.ml | 22 + engine/pattern_c.ml | 26 +- engine/pattern_c.mli | 22 + engine/postprocess_transinfo.ml | 22 + engine/postprocess_transinfo.mli | 22 + engine/pretty_print_engine.ml | 22 + engine/pretty_print_engine.mli | 22 + engine/sgrep.ml | 22 + engine/transformation_c.ml | 22 + engine/transformation_c.mli | 22 + flag_cocci.ml | 22 + globals/Makefile | 20 + globals/config.ml.in | 2 +- globals/flag.ml | 22 + install.txt | 3 + main.ml | 22 + parsing_c/parse_c.ml | 2 +- parsing_c/parser_c.mly | 7 +- parsing_cocci/Makefile | 20 + parsing_cocci/adjacency.ml | 22 + parsing_cocci/adjacency.mli | 22 + parsing_cocci/adjust_pragmas.ml | 22 + parsing_cocci/adjust_pragmas.mli | 22 + parsing_cocci/arity.ml | 22 + parsing_cocci/arity.mli | 22 + parsing_cocci/ast0_cocci.ml | 22 + parsing_cocci/ast0_cocci.mli | 22 + parsing_cocci/ast0toast.ml | 22 + parsing_cocci/ast0toast.mli | 22 + parsing_cocci/ast_cocci.ml | 22 + parsing_cocci/ast_cocci.mli | 22 + parsing_cocci/check_meta.ml | 22 + parsing_cocci/check_meta.mli | 22 + parsing_cocci/comm_assoc.ml | 22 + parsing_cocci/comm_assoc.mli | 22 + parsing_cocci/compute_lines.ml | 22 + parsing_cocci/compute_lines.mli | 22 + parsing_cocci/context_neg.ml | 22 + parsing_cocci/context_neg.mli | 22 + parsing_cocci/data.ml | 22 + parsing_cocci/data.mli | 22 + parsing_cocci/disjdistr.ml | 22 + parsing_cocci/disjdistr.mli | 22 + parsing_cocci/flag_parsing_cocci.ml | 22 + parsing_cocci/free_vars.ml | 22 + parsing_cocci/free_vars.mli | 22 + parsing_cocci/function_prototypes.ml | 22 + parsing_cocci/function_prototypes.mli | 22 + parsing_cocci/get_constants.ml | 22 + parsing_cocci/get_constants.mli | 22 + parsing_cocci/get_constants2.ml | 22 + parsing_cocci/get_constants2.mli | 22 + parsing_cocci/index.ml | 22 + parsing_cocci/index.mli | 22 + parsing_cocci/insert_plus.ml | 22 + parsing_cocci/insert_plus.mli | 22 + parsing_cocci/iso_compile.ml | 22 + parsing_cocci/iso_compile.mli | 22 + parsing_cocci/iso_pattern.ml | 22 + parsing_cocci/iso_pattern.mli | 22 + parsing_cocci/lexer_cocci.mll | 35 +- parsing_cocci/lexer_script.mll | 22 + parsing_cocci/main.ml | 22 + parsing_cocci/merge.ml | 22 + parsing_cocci/merge.mli | 22 + parsing_cocci/parse_aux.ml | 22 + parsing_cocci/parse_cocci.ml | 34 +- parsing_cocci/parse_cocci.mli | 22 + parsing_cocci/parser_cocci.mly | 22 + parsing_cocci/parser_cocci_menhir.ml | 3932 +++++++++++------------ parsing_cocci/parser_cocci_menhir.mly | 22 + parsing_cocci/plus.ml | 22 + parsing_cocci/plus.mli | 22 + parsing_cocci/pretty_print_cocci.ml | 22 + parsing_cocci/pretty_print_cocci.mli | 22 + parsing_cocci/semantic_cocci.ml | 22 + parsing_cocci/simple_assignments.ml | 22 + parsing_cocci/simple_assignments.mli | 22 + parsing_cocci/single_statement.ml | 22 + parsing_cocci/single_statement.mli | 22 + parsing_cocci/test.cocci | 20 + parsing_cocci/test2.cocci | 20 + parsing_cocci/test_exps.ml | 22 + parsing_cocci/test_exps.mli | 22 + parsing_cocci/top_level.ml | 22 + parsing_cocci/top_level.mli | 22 + parsing_cocci/type_cocci.ml | 22 + parsing_cocci/type_cocci.mli | 22 + parsing_cocci/type_infer.ml | 22 + parsing_cocci/type_infer.mli | 22 + parsing_cocci/unify_ast.ml | 22 + parsing_cocci/unify_ast.mli | 22 + parsing_cocci/unitary_ast0.ml | 22 + parsing_cocci/unitary_ast0.mli | 22 + parsing_cocci/unparse_ast0.ml | 22 + parsing_cocci/unparse_ast0.mli | 22 + parsing_cocci/visitor_ast.ml | 22 + parsing_cocci/visitor_ast.mli | 22 + parsing_cocci/visitor_ast0.ml | 22 + parsing_cocci/visitor_ast0.mli | 22 + parsing_cocci/visitor_ast0_types.ml | 22 + popl/Makefile | 20 + popl/ast_popl.ml | 22 + popl/asttopopl.ml | 22 + popl/asttopopl.mli | 22 + popl/insert_befaft.ml | 22 + popl/insert_befaft.mli | 22 + popl/insert_quantifiers.ml | 22 + popl/insert_quantifiers.mli | 22 + popl/popl.ml | 22 + popl/popl.mli | 22 + popl/popltoctl.ml | 22 + popl/popltoctl.mli | 22 + popl/pretty_print_popl.ml | 22 + popl/pretty_print_popl.mli | 22 + popl09/Makefile | 20 + popl09/ast_popl.ml | 22 + popl09/asttopopl.ml | 22 + popl09/asttopopl.mli | 22 + popl09/flag_popl.ml | 22 + popl09/insert_quantifiers.ml | 22 + popl09/insert_quantifiers.mli | 22 + popl09/popl.ml | 22 + popl09/popl.mli | 22 + popl09/popltoctl.ml | 22 + popl09/popltoctl.mli | 22 + popl09/pretty_print_popl.ml | 22 + popl09/pretty_print_popl.mli | 22 + python/Makefile | 20 + python/no_pycocci.ml | 22 + python/no_pycocci_aux.ml | 22 + python/yes_pycocci.ml | 44 + python/yes_pycocci_aux.ml | 44 + scripts/coccicheck/cocci/kmalloc7.cocci | 13 +- scripts/coccicheck/cocci/malloc.cocci | 13 +- scripts/coccicheck/cocci/notand.cocci | 2 +- scripts/coccicheck/cocci/open.cocci | 14 +- scripts/extract_c_and_res.pl | 20 + scripts/extract_examples.pl | 20 + scripts/extractor_README.pl | 20 + scripts/gather_failed.pl | 20 + scripts/readme.pl | 20 + scripts/stat_directories.pl | 20 + scripts/stat_directories_complete.pl | 20 + scripts/stat_directory_complete.pl | 20 + standard.iso | 2 +- test.ml | 22 + testing.ml | 22 + testing.mli | 22 + tests/SCORE_expected_orig.sexp | 109 +- tools/Makefile | 20 + tools/alloc_free.ml | 22 + tools/bridge.ml | 30 +- tools/dir_stats.ml | 22 + tools/extract_c_and_res.ml | 22 + tools/generate_dependencies.ml | 22 + tools/gitgrep.ml | 22 + tools/gitsort.ml | 22 + tools/licensify.ml | 22 + tools/process_isoprofile.ml | 22 + tools/split_patch.ml | 22 + tools/spp.ml | 22 + 207 files changed, 6263 insertions(+), 2078 deletions(-) rewrite commitmsg (98%) create mode 100644 demos/regexp2.c create mode 100644 demos/regexp2.cocci diff --git a/Makefile b/Makefile index 899561e..6a44945 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,23 @@ +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen +# Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix +# This file is part of Coccinelle. +# +# Coccinelle is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, according to version 2 of the License. +# +# Coccinelle is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Coccinelle. If not, see . +# +# The authors reserve the right to distribute this or future versions of +# Coccinelle under other licenses. + + ############################################################################# # Configuration section @@ -373,7 +393,7 @@ prepackage: $(MAKE) distclean release: - cvs ci -m "Release $(VERSION)" globals/config.ml-in + cvs ci -m "Release $(VERSION)" globals/config.ml.in $(MAKE) licensify package: diff --git a/changes.txt b/changes.txt index 8946f0b..abbad46 100644 --- a/changes.txt +++ b/changes.txt @@ -10,15 +10,20 @@ - added -keep_comments option for the unparsing of the transformed code - Option "-version" now also gives information about built-in Python binding support. +- slightly faster environment manipulation in pathological cases +- hack added to accept well-formed #define after function header ** Bugfix: -- proper consideration of #define macro arguments in checking for the use +- Proper consideration of #define macro arguments in checking for the use of metavariables and in computing the line numbers of complex terms -- better parsing of included .cocci files -- put included .cocci files in the right order -- bind position variables only once for #include -- fix bug in include_match that caused everything to halt when all matches +- Better parsing of included .cocci files +- Put included .cocci files in the right order +- Bind position variables only once for #include +- Fix bug in include_match that caused everything to halt when all matches were discarded +- Merge unlikely/likely iso rules under a iso rule named unlikely +- Some fixes to coccicheck rules, thanks to Andrew Lunn +- Support groups in regular expression, thanks to Michael Stefaniuc * 0.1.11 diff --git a/cocci.ml b/cocci.ml index 65dadd9..97cabba 100644 --- a/cocci.ml +++ b/cocci.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Common module CCI = Ctlcocci_integration diff --git a/cocci.mli b/cocci.mli index aab92c3..42a1de8 100644 --- a/cocci.mli +++ b/cocci.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Common (* full_engine takes (coccifile, isofile) and cfiles in parameters and diff --git a/commitmsg b/commitmsg dissimilarity index 98% index 82b2a79..f400be0 100644 --- a/commitmsg +++ b/commitmsg @@ -1,3 +1,23 @@ -Release coccinelle-0.2.0rc1 - -Release Candidate 1 for coccinelle-0.2.0 +Release coccinelle-0.2.0 + +** Features: + - Remove duplicated code in disjunctions + - Better error message when grep finds nothing relevant. Thanks to Joe + Perches for the suggestion. + - added -keep_comments option for the unparsing of the transformed code + - Option "-version" now also gives information about built-in + Python binding support. + - slightly faster environment manipulation in pathological cases + - hack added to accept well-formed #define after function header + +** Bugfix: + - Proper consideration of #define macro arguments in checking for the use + of metavariables and in computing the line numbers of complex terms + - Better parsing of included .cocci files + - Put included .cocci files in the right order + - Bind position variables only once for #include + - Fix bug in include_match that caused everything to halt when all matches + were discarded + - Merge unlikely/likely iso rules under a iso rule named unlikely + - Some fixes to coccicheck rules, thanks to Andrew Lunn + - Support groups in regular expression, thanks to Michael Stefaniuc diff --git a/ctl/Makefile b/ctl/Makefile index 582ac7f..77e1919 100644 --- a/ctl/Makefile +++ b/ctl/Makefile @@ -1,3 +1,23 @@ +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen +# Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix +# This file is part of Coccinelle. +# +# Coccinelle is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, according to version 2 of the License. +# +# Coccinelle is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Coccinelle. If not, see . +# +# The authors reserve the right to distribute this or future versions of +# Coccinelle under other licenses. + + #note: if you add a file (a .mli or .ml), dont forget to do a make depend -include ../Makefile.config diff --git a/ctl/ast_ctl.ml b/ctl/ast_ctl.ml index e067f10..e2417c8 100644 --- a/ctl/ast_ctl.ml +++ b/ctl/ast_ctl.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* ---------------------------------------------------------------------- *) (* Types *) diff --git a/ctl/ctl_engine.ml b/ctl/ctl_engine.ml index 428a0e3..b202ad8 100644 --- a/ctl/ctl_engine.ml +++ b/ctl/ctl_engine.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (*external c_counter : unit -> int = "c_counter"*) let timeout = 800 (* Optimize triples_conj by first extracting the intersection of the two sets, diff --git a/ctl/ctl_engine.mli b/ctl/ctl_engine.mli index ba21a17..eae3732 100644 --- a/ctl/ctl_engine.mli +++ b/ctl/ctl_engine.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Ast_ctl module type SUBST = diff --git a/ctl/flag_ctl.ml b/ctl/flag_ctl.ml index c54aea6..87b584e 100644 --- a/ctl/flag_ctl.ml +++ b/ctl/flag_ctl.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* option -verbose_ctl_engine *) let verbose_ctl_engine = ref false diff --git a/ctl/pretty_print_ctl.ml b/ctl/pretty_print_ctl.ml index d01a5cb..75dfa88 100644 --- a/ctl/pretty_print_ctl.ml +++ b/ctl/pretty_print_ctl.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Common open Format diff --git a/ctl/pretty_print_ctl.mli b/ctl/pretty_print_ctl.mli index a7c57fc..ed74fd0 100644 --- a/ctl/pretty_print_ctl.mli +++ b/ctl/pretty_print_ctl.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val pp_ctl: ('pred -> unit) * ('mvar -> unit) -> bool (* inline_let_def *) -> diff --git a/ctl/test_ctl.ml b/ctl/test_ctl.ml index 8331863..56630c1 100644 --- a/ctl/test_ctl.ml +++ b/ctl/test_ctl.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* ********************************************************************** *) (* Module: EXAMPLE_ENGINE (instance of CTL_ENGINE) *) diff --git a/ctl/wrapper_ctl.ml b/ctl/wrapper_ctl.ml index d417735..45bdd58 100644 --- a/ctl/wrapper_ctl.ml +++ b/ctl/wrapper_ctl.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* ********************************************************************** * * Wrapping for FUNCTORS and MODULES diff --git a/ctl/wrapper_ctl.mli b/ctl/wrapper_ctl.mli index 62319da..0d078d3 100644 --- a/ctl/wrapper_ctl.mli +++ b/ctl/wrapper_ctl.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + type info = int type ('pred, 'mvar) wrapped_ctl = diff --git a/demos/regexp.cocci b/demos/regexp.cocci index af56a16..fe7a6b1 100644 --- a/demos/regexp.cocci +++ b/demos/regexp.cocci @@ -30,7 +30,7 @@ print "Contains foo: %s" % x @nocontain@ type t; -identifier foo ~!= ".*foo"; +identifier foo !~= ".*foo"; @@ t foo () { diff --git a/demos/regexp2.c b/demos/regexp2.c new file mode 100644 index 0000000..6c94feb --- /dev/null +++ b/demos/regexp2.c @@ -0,0 +1,5 @@ + +void foo() { + + WINE_ERR(0); +} diff --git a/demos/regexp2.cocci b/demos/regexp2.cocci new file mode 100644 index 0000000..3a2325c --- /dev/null +++ b/demos/regexp2.cocci @@ -0,0 +1,6 @@ +@@ +identifier SPAM ~= "\(WINE_\)?\(ERR\|FIXME\|WARN\)"; +@@ + +-SPAM ++bar \ No newline at end of file diff --git a/docs/manual/main_grammar.pdf b/docs/manual/main_grammar.pdf index 50a705c6f451e3be5213c8e5fdd5362babf3726e..5ed40d52eb4d75f6e3e619b96315615abf7b6470 100644 GIT binary patch delta 23210 zcmai637C)N`VK=3h9P9h8mYv$FWDMni!3c1gpeVmWJ`zoBH7oBaM)QDU!*t#s7Y1=C?ifT-V=qo$H+Q{J!sdpZ8hs=XsxZcJ58ywKsW9x!Xg9 z9w~h9?8dhz1@AAresAKE(whfONbuTTe&F7uP34BJnA!5JIqQ#XKTvA&oVp(^NI3J= z`6<=*|22495=HjxGH`T9vVD#j>2c|Wgux{0{8nfoM znZCNw)++U`RVh8iedOkIEoRpomN=>HmJ@mQiIhnp$2V)Z@ve>unGYvTx9UIF@V%5y!wc7Vt>sJeTV{kw z3Jd?N-twg`SH9o7x7jZA2-h^GHllNUq72xy?vQN+Rb@M2?L6p zxP9=i8J9=a>yWf;;_gGnEN4yD-n5a!YZYDh;G2&QIQH0_h5t!NS#ah1{X45(>s74r z^38wE8!^6C-9Lhaan`H;wb3(r?f`pljc1|-&*GqiY6 zt>m6o*9QJQ6g;zeYT8@H@9d~&+Xvl0CJdPK>AeTK_ZaZgF~8~V#5xBXRN1iMw~|GB zSATibrnf6?dHs0RdQ(fJzVOed7d(D!%cybxY>@V^>1+zT1Aoss=%~`2({j&h7cvp5-;p zeR6-dk$0><)qB{xB}YBHapB$H_FQ~6^Rrz>w~QW>S~Tod`9Q5#{<-wx$&*hv4Ly5! z!_)iUIGsG^=-%ENcMV*0RQbFU~r>x_kA5ANOljC3SJT zZVku%?T!CUo;#xY%fm;ts#9a!jn!Xeeg1NT;IXb#%VjR@)4hASRmq9wl_3|ZRGI(I zGsjLhuYX|Rqs?EralLhq-4!3U9fiLru(lv zwXWr;1LeN!oHe48F}KNpph4q#l^^Kc;l8rB4O*L&bL+W_327e<|I1#wc)|Vy*W0zc zR&~W9EoofFL!-5#^|BL3?md6&sdsY*&)VMZP`~?HOg&xpaQWRo_jxljXU@*5qc0{t zUuEf*A$LCc&gccrKKgW9qv;jCUely^lL^y`WbgQ@hx=2@_wMV{xmeYdC)=N|^V6Nh zfBZ5%7;@o-)U;Cj-rM(l&d@&01 zXRN){w8OHJJ-YtcdF;{o+iF%E*6yJ--|kBy;1>5(o_nM!iz2eL0}!&h$#>`ZYbi{g(EZy|eAvv{!MyprcXg#Vy_rgt$QZM#-e!=`t&Q%;Z$Qk(gvgtKe z?VC7htMTX4HLK-xd{Y}Rv--q?%Qnw$-8-vA=kmu#&pTN)V|wdd^W6;{ug^<8@kq(< zU%9aJZy#swn3uEcw^N1Y-^^$?xkS|&zyI3qpx^ZV?lUWW^4gNk4adAva`Bbc%l^Do z)n1;lwr`M@GhW|5wD0qW22AXEp-74CnOm2=w0lUC^AFuhxzMBg@*|&*tTiR8N3X&M zuPt9QDf#HFUP~5T&+gM}PU5Ayzh-@2sK>Trne|djlz;E;LPd*vAEy`nY3E~SSNFPe zr~Urml2z|q^Y+53C(3XCp?2n!3E$MYqw$Sb*Sxi%#I({!nv`Fb_4_@Q#s<5$&eN{g zWshbIN_qOfb&sFjdiR90$BSE&7LIxMkaK*{wO1~-&6xXPy`0N)y4+ZLN83f|O)LK5 z|CUxiX@8ZJ-#gb^u)b%vo;R`|Y%=Cz_M|dJS{}^4tLWf%*&m%5SaIT>Z@xP=`P&&! zZoO5ge|Dus*9R?1`>Jv&bHuL9hrisHy?jgC>pSlW(kic8vFV-5zYNW+H0;%k2Rj=T zFO~dl+C(dB&#+2AJp1VX>i?AeYEI^fGOfm3KJoe=hhJ~}Z2JCBUmw=~`o2eoESfZ- z`Rj|Ce|Td5$@-rr3`qXp*dGp`t8g>*nY|58dUsUV^yQQ_pFL3Huk5S4F3c&n_CjLX zbNxq*9G=#9sQO>e_Zyt(8LxR|CVOQH;Xj2x@yZmbe51H-=#FmbW~h6~gsPGM_sO`D z33UrqFluV*U(M%gCaV87EX~#Q(8f{;jVt){6Fw6vRvJG!^pkDap|0vDi+-|9C$v=k zZI3PrBoW-c~>HTAHVYP8al(>HEGOa?0Q>PkazRX+~(0 z`blot^j+5p9acX{4)GJ-s#g|2Ng0~HquZg;>LDz`E+M|AwGBkb5(nA%K3;fBn ztxLO-Fvxd& zP1jAA7SU~kb_b*44|)#m&cG+d<}}BYDh`#ZkWe|0JJxL9(c)h=OwX_cGluEi~+Uv?}h z1>Nx2oJ{yjyaqMhv84tWLV+gA~62A=Hv!z%K17DOc8wMGY0Rs+y zFdPpJ!zFbZhOfnoUkfyNgexu6Fik@yN5iy8O@`^%v^&!`h#3XT>^GHap|U~%SANLC&NUpCCTWfF6{%F^HoR>d^2!GoY7!&5q+xG3X<($sPNqNB#%sA=POh z-qXUWY{>gwGzpl%yYgidAwr4}IEch=YBuTE)Ex3ZQ@5;m)u|+4yAojlCHV1rf)tSG z$;nM1U}8|`yo}TzMobX{2A(!8nFK)erMOI;p}eVZj8F+^6f^*fNbj~|M$mX93D}O| zOYtLPl2w})r$W@C5mX#b0;c5=C^l_Px@Q0+Z&1L8^o5=vesCir6Y5V(8mon>L>jdP zJCd8T@I_4~0ZX%qYa|c~iI(PtVN67y7Ah5DM%PL2z%bGL9Zmuk03&gzyUYyCL)wRB zpezx#U>PdK!D?eNoMl)PX9AT9`9W9K3z}tkgt;vf$XPC8>MVZKBq$A#rKFXcgrg!f z9TpeVB=e~00L_Voks@@W=?tk*ImRH`Ah&k|BV!ckCh5P#&35p7vAI$=4}K{-P2A{BwAWVV5iuv=}|*tI0vS6FY(0NivpY5@N9|o8Yx&1rCYOvOG_U+VXYE zik1(PlgywyBlT`UoBTa5&(N{|i1=-dfxV6HhqMJ7<|<CDf_o=bpIsRkc~7X8<9&!INP?V zf0hjtC!_!x zXFD6Ih@P{kX0ViK=sEP^<7lb~bzHJ)bY(cdqfV3JM;R}(C%RZRxhFtV1agHXXxTpO zKaLwfV05-f3XVp;jlL^cI%pDJ!LZnlK=Z>=XdB_iLBmTjgGQ7zBnu5y62D`cp|$s- zrN@Fq?@8t;6xD?IK%=4+ML&5x>SwkRCya?=yxGDT18EC3OT4>!Y(7$e3DQQ7MarUp z-XsEhe6&~IjD9W|ybJg*Lxu~#kc%Mk6EiRfs?q`32-Q0%TBxN51ViQoYoa;^y<3WX z4o-xm1c5lH>w)bV$4N+o>&rL-lz+0lIgFCc$l9TGKs zfGTkZy&W0*Y*(YsE6Ny#9Inl&2i#CKXFC>^4xo`rY^Q+i?Qk(|7tqE*q>89BrkZm} zgtp_6N^HO%=@Fn&E_0Fjr7gg5B>E2^e!MMQ$3dfkY{BGa7Wy=l`5j;^8I};KBJnF6 zz8n)B7+K9ZCJwD6GpK=xL5q9MC_tGR1V1uD%ZsL?a5V=nrXY#)J!&Z+ZnE_Q4$vYf zF{H6N1+)kQ*i4k0{DztXm!Ow{>ZRTt;4Y@Qgnt~^5lIy(6f_n8qIeddo@!bcD zTFM9LyRsXjrjk+AanYiSs5rlxL*s{|l*f1$`6XJ3hoz8&*1cDjq*v0Xn46UxlsTZA4eh!g~ z-Ua@NG1grDgS`R*hzjarcdl||q5(D&EgIp%{_Y}h(YtPdBU|}0JV)xz#qp3dBs6Bp z;9Q&^N|m@Cw<(of=1K`_Y+Z&If8G*oj^cW7f%M+dNil8y)5BqalUMC$ZV^vR8Q z=%ePTDF**}I;UA2V=yy1>ll4@lAwnmDpdlt$0sLc|DJ)$R2ZR$b8Ts@NE_7U!Fj2u zPw+joGU$7z$!by~5hQ*bsY|f}+%oWl!AS<8ILak1Oo2QMee8UdMDZW`IV3I|EwR6& zk1cnn&Robnb-)rKRaCh`(vZIkFX0Ehm?V)G)1eTmb3v1pJLL3f&Z)&NZud{l~v@thJ0&>)kWT4;P@ zw1Y^k0N0!dfqP@Vk^c!)xY9%_v^Iap7Kf>r5 zBMt-`d>4sENJgFQi-mCrs)x-a3I~u^ITWBuBSVHu(jq?U3Ar$2E!BizFKnv{#IN!) zz3f?`N1G*-Pb2(`QD^Bh&^^UeMU&lc&~&Lm&@+~KhC)*Bn=U9DOnG;ghdeo^V(ZN@)q6 zB-ny4(Cn`A4+#-a>(cBXxMEu?$)0w^A(t6PLgb4K*601r)RiI-|MA z%LDf22{Kk_IBg?l9J(Qd_6vwoK&UBc-xx)pedDMo&PsD#0lpeXRD#4T0x^T*nF453 zKwx?!zMZVT2mZ*yQL%+yXs;}nj0F>4OydFqB^nhFpv42k+~sM82`q&x+L%O*QB^yX z{0MlWT&BCYjw9ucSzg{2BDQ=^ogWYl_QJIMGwWEMaP2L$R`Db!81VrNMbbCuupZA@ zq$UG{;PPDz=F0&_yzAsUbBwX#LJ!#jCj2O2fJWc}tsB`j!o4Zjh}Z~d@y8s>!&NmQ zjSw{1$-{HFj(o9$QlwM{E)>bGCLXtBzeLdplVAc>b{X&-PNs?Xa0wQpNYoToXl6&H zNNGs8yF}1kO&Ut$0*xHQz{OJ9qY|Fv35@2^dPhrJ46U=$K#~y#u#1((gV;JQQn{h= zov=q%6OK)2-#jIWPte?-qOs0!X+%1Z;yjP_SYtKlE-7vYp)i#K!Vojr7TV{e1k8rh zbEu2r1g;{hf$38jmO-P2fq_9nk__eunLz*rVjA@;)7(()83oCjG74^U zQAPocG77GA#Ag(&fs?-c;1H_>7l=agiOEgcBM&9%xPnA@7c|05Fp_vr$W?+m(UJ@E zjan=cKT@p92+#;YsVhyyG|qD=mU_AykeT4DwE!CX1qQ^)B2X}prag-=FyM0-1J{a_ z5g^8cV6{8MoKVW+Dn^pKqv#{cMQfKg&e#DiNZ0}W9*$)`O3Pfu#F`2E+r$ixerRE| zq)3pyN!b`P&b)6Nj>N5zYbN-+47`XfPjFF)(2*o)jLShI7-C=slGpHjHWMF5Cc%CBde@-Hh5#6jY|*L|17b%`En5eA(DcM@bnz+ zuQ83h6kV@Ka1Nh$V_}9IC{(Epg8MD}L0G1YLAaPq6&vmrNE{2Wi{UOZI1?8ptQStK;o~rz*tB7nwXaxOmdDB51Xi%ocMS>XB<(+qW@Lm zU;)st(IT)988Pu3hEK%8V2|H50`&XoK?3}^Y(rOKL8HH^02=+_2GB75AlJZ6%Um^K z{}J({{Ur4ca84B-Xr3IR!Jl5BrWt5RPjX>g(~Qj#O8$6|?pk8DzW`C=55$nP&^sbg z^PGXYD?v2PA8MFeViUXBA$wcuV9>hfjxp2Ol z#CnOkwMb$`kDizYtW z2L39SEEz$gwgG6EwvPKAZm-!Y(8m!$gHD)c$jMDShX?6hy3dK{=++NPUzFnl|AEMV zKnizOVlr0l@Fkuj;0fPE7g{m{6ebN5**$`;!uSs_6RtynEe~-Z84T-@WH8G^3!^>B zG(tmYz+yZ@hDUW(TfVIRc8fGtv<&6pk%2o>vVH^&HK>pbvMiX+%|Fo)j9@FlDDDN& z2^DB`ryDewFfBqSop>&0Ts@5cFqXhCqcS1MpaDcu0ECtS3GtciDDBA+d$lu{wd*ryU&EXmS~>Wk2)&_NRZ`DANQ zS&A%`EwoTl_OTQa5=rs@J!j52bI$#n>-xL6y1L)zeV^yK@B6v$-@QENvrXkUY%0H` zLQ0Yw8WkkfnbasHBd9t5a^2K-(?5PO^?zz6duYRTXmLc_=JKO2)K5O^M zrMk~IIq_@TV~sC8^XK^+7k|3EPu0nDw|~|6_}cz=&V2mj?dG>PKQ_8dQpX;b-#Px& z*x!HDtW5eh4Zh2|S6VvGMiTPX?*MDR%b4i8d0;#@Vq&BgKkbc(!F-QqzxsjJdrfDSH~UM$W<6VPKrrt1AIFaWuG2ML^M_S9yJ5i1 z6&l_)ylX%A-l6Yq-!rIS)SLYu=((`|vd)`(S(B!(+qkaX>vOlbN&BZY+qre-uwN&R zUC{QmytGBD`~01LW$E@I75d**V#v2A|M{>{P;$!1g-`xrKe;dG^Y#Z)F0`%PFY{<# z^14-nwzb)o-@EjIJGG}Lw%oI%>O(!#jj?a-?s>dR#+#G=>Ydi-y8H9Sr)AEZHl|yL ztp4{OUUDL%^&7ojY3?;%T;XW;rN!^P@#1rJ4}RBqeD=x8|9j%?*_HmhYsjzm>g)s0 z53Id!;J*em_-1ae*GEqXTHU|t>j?`EjK00yjyXAd_lzrZab3C6EmqCXs+yWQe9WjD z=8U=i$M?IGsXDUGxNFZY8GXxRB`+k+(rb9fhSh&yN&Pk5&TjiB@FMhM{ndw{3XKOoup56E5 z?l)HpLVMoX(&eAoC;Gg(+h{&y{i72%?>&?DM!O?lK;#&cWm*YaRayf)Ma6_Ww-5ou0jdDVN$uQG6zf4 zJd@UA`N|$nuxZh}_nP0+bi?J88?RozbosZ(2X%R*MD>Gn_jZ_4|JLB#$&pisU)lI! z_1{f(H95{oSx2GiUD;9scaG>dR%*r%W5! ze9E%s|6Wjkd876IeN8T{?lCc=$qOBiKJ|C*=JD-=WuuqX?UdX8rIX2HtDXAjkJ9Pi z-Mg}XLG_o8n+vP|>&l3li(01Fn%1Iw-@gVd{MWG3<(K4)xM7rA)%DvvxGHIO%OyAc z+4tjrPx+v6%FHSg)0dT5b>ZNHgU3wYH1F9_O-e7G(&kjxMYAsCzEt^#u``Yy?XvOe z8?{ahn?7swUo(eJZ*g32v1&`Oqub#H?UPbAZ+)`$)!%Nox7>vdySvsH`oPY!&v*Xv z^Wg>CuK%l9PQ{#zkJp{Qz0|&ME?+%f=f#=3^0yAI`f9m3rC0vZ@&)hXHA_pqeCE~M z(d!nzI{$RNjrQ_J_r8-q|I_;>*yoo#TK}eIpN|@Ruy@ZNXJvN^eO;$#m3j{kt$wCe zvut9o@BGKl{RccYXNVkNt{)Ur}|C;F}Z@fEiL?~_E;+X>rPTr9lths4T zts%X}el@*d^65JsxaG`S4Qp(#HgnG4S;v~ZeOu#YKkU9^QSyVS&pfbsmGQ!=9-C4J zY(JINdcf(DkRXMlhgO63Iynp)72R3cK@m!lVw+?JttzyAjuU;tFQ1AUwV^-R; zpBvRVf6vZYOGakim40$idcFDgT+P{a>wo6v?c15T^t+GD;J$j==q^bwbUi=ivz*2y z8f5JA_IpQ5<{jHrz2}SnG<|0PVr;g0qF?LM9 z{~UjPLoeO`woJ{O71^~fzMNb6XzyTh*DbGAYBRgl#$y@hCv^G!k^P73e|db2S1t3A zh4tp<67T<|o>x z?e2bhLr3e!b<}n9Ig(mXbH{;}Nq2wR`K?+#QztFUzNV(;4IY=YfBpTx>tWho85Zz;J-_Czpc-Mk7u4+Rr~9;hq^X6U2<5kv-_EG zH3s+mY1HTY?`~>7d{?XQ)|bz@&ODnluggp3he4U9`m|r1?=Ou1?(bTa-YYk*RIQ`_ zsrL6|yX!UfdWMj9PdSr5gN545xf9368%sK6T-?VS~ zp|TS{3WlG4WyH*e!?f|+D)pOJX<>u^J(qpz%W{+3_Zk2Gx&A+NT+zMjhNO>Aom0=u z`}1P$-g{TwSaVX-hKH|~?VP#haFs_pFPYKv!G{jtQllVw#qjg_$IGrQb$tBN-$Uhh zCtd%dSN0XJY!d#JT;Y{1b;IA+YPN2hp5cWaNlVU*{ojfaX~{K{D(P98`jgc^D^>m1 zurycGLMyIIZdA#mM~-fWQqu9rrbo76g*vK7COxuDJ2X!{a_Et1IiZW{kw%XU+YPnO zz$1em>5dl)sYg7Q=K7)I#XT~8-`7HJS-jJ|kMLIQ za(EP>&>gO<#AM zP)Y?n;(h6w9qNcjftAP&O|vwgX@(=dj&YVF76Y1N3qFD7LA{i2#gq&*--;|Lh-#h& zHPwWyL4z8|mu*WIY{fW7r%7zr7W>vT-xT8ltjo6?dKn^Qnp?~`UlW4VbSy`{i>+yL z(Yj{ZMj&>lgEw-=y5?At{W>&Va!bedL$| z{-Ed3?hG(OysJ5;6mclMQgXFG?pU*Z+fRJifC;n2Vhq#ud>&`%L~~t3%z^J|ZbX4Y zWhy791)9U3Cso6gx*Jgzu@7pqZNI2`*^5q0=E$8YH=(Lq7bjV@WRPhR0fEY5{-Hv85z6 zm^3LS&^(*e&n-spArd+>u5A`>Bq(CP?&6Dy>Zj?hM{?I)pU;A)8?tMn+27zNOm5yK`s#Hp2qo>DfLMAZI2cRg$txS4W$rb5*%ue$62;iLa3!CCpL;P zSqA)24{-m4spSDNyo4}kGS9zvk}KMiGz+6O3H)~9I~H=G;xcV-nMlya0`khi+O?uoJWIx@ohuGwp;8hlQY< zjwu-l8tnwmn@phZf*L1P#TnlM0Xu=xa(49~RX z<_s^2f8y-1;juk7JdZeoGipnD8on+ef@T0GkumX|!~=c}*k$-gq}~W!M1&wXX)0t( zG`M}DF~?2KrnQ@zL&we3ElcX624`H1F8U-HxblQUt;7$fO}+$(m~;`eC^ib~?33Y_ z0THF{n6Rw!q?tN{b`!@+S~1YbNWc$;zNrs}n*_CO$M7Y?eSly|GcERSrsc*EZxryF zmPddW$FlGY#vOiz(#fR585K$<4zwX6q;rYb(vli!f!|V_EDd-xPIJPC-_qEcSU6fz zbrG|Z3A8l8hPV$Z0a}Pcn5HL4x^SEsM7?s%WLY|FI(-lpfoQ&Pte6-Mn09Qi53>v` zG5o!_!w+9aa<>du#sZiGphzypM3_o6o!M`iiTGIYA9)LAm+3IOOrLO)>39TJ;0JWc zEmLQlgjnAVq^mORC{8Vcsiy5nvjk7&v0~aTA3j(SDH79;y;}svOq(NI&;5wr-KLw{@4;ZzHym z+HV_ib|ENCha&&PJ_nu{?#{!u*ffejAEOlYljH)v!@?WNjM*<&I&H_}$BR9atrO}(AZ3NmHRg}8z_Q^=#5O=H=7aD}G|r-^0I3qfz6hfe zGMh>WFz61cGzPMBM;Ip0mu0)sbpoJbW?G;}aLcm&fKdfpF>wJNj3!3*ltky~3Gt1x z-B3Uhr&7v7(Zz!R2VPOG+5skETB0KlPlECXjkB4nNG&DUc*TE2&;b}ydo1o+7CY$^=dgW?RRlX2!d1?XUOsM)Q6^c+0^GLSk!n<#8S=70{t+=+usf}9w23QD>;CbD0Gtqw4~G)u5l#A(NLt$-B7^eHHXNuwA6 zQljdc1F%SoK{AWxu)L@{DuVP5QY@r!woVxY2goGBASw>xK+q(%OHnw0wE#8XKXfL# znj-DTk&uc61WpNHr2Q$W5ZZQNvPpEvgpm?@zEo<|w|wLs<*I#?SMA$$wsCHFF}{~z z;lO0oJwO~(?oF4FUKumF6G)Tnf~&E!b!~((Vk0gr7t@fPjE;*!dKdLJscf#LXZR9 z1(bpGR3D4joEIRQCS|7*)pEzGEG!k%)8d1Z!i{*yo6_n`6c21vLVTjmJCg8;pgBxK zZdI}$DMd0q9*X3W{h%<^gu=-W!sn1LaW&3MxyV|FIgS0t*bgGH3w0zu@2bEqc7m!3 zA5U0xxj!D33es|%CRa#ce;Q^==DsUYB^MF)%AlKL7$$59^37`|9`rG8h zHXv#|P4OSO4U1n!nk;^x8V5s2<1mcI!5;BAphEdQ#eb>kC`b~>M4gH7pO3PQ{2&5L zvU(5_%N++kvcMwz=c5dmz#8n>$GmaILWvVJ^o@v}s5GP04>TSWx!H){fd3O16a4oL zRKAGDz!QldLPI_(k~{}gUE)6+FkXy_06|WSf)a5{WxHt{>lW&aF)_vP zpKqZOBVR@&CJhLBH^`;>=Lw-Xp5O$S}4_ri%myO~-w5rjLK_eLh zX|q>E1S1vGL)u8{2Ye@qGXRlICZZL|E>Gcfxno4V%mt0I=kO$K9pQ;EN0|RH52z5A zoY+UIkz|YvqGYw_!K%vz!j;HHBjpsAc#Gga*gPHxkWX3-cgHl;0>#AWXdn!Mt}HfE z0U`vkLexXykL3q}TE#fcN61Fp!ugaU@zJ&@bpcjB9Jng}7qK7B8Fb!Zq-b}@w~|Oy zzcMY_m!}EvG{M@2<*$e`F%BAXC5aydjT%-JP38zdGi4m1Xwoi#7NC?xlb`~`Gzq2f zG8HNmO*$RWs0#+PNG}lfA7#HHN`(W>k8}dYjRRG%T1Q(e>k(RNiG!&A#BW&fA1@mc z|A8i(lGQjsW62qvn)xu!k_rbJH4%b_ejcG*iYRh4YGPN~1<*WcF%^wmw}_#~V#@E@)Y=0dIzX+!E{6XUk!6RR1Misf zJ9w8mh){sUd6GLuMmAA&0obo{I7={-Dn`09`$FJP{HR7ZBCZMi80A z=7``wWEar;D_4k~1D*tJyEG1cRZNrNJLa%uPEZH_rtBsLQX4R6gbfr;Vgt|!8-PaG zK+%*EhWQ`!fN*RQ5EXC5?NLMhPb)`6l)6bzafrwfJnPZ4GNq7ElUfB`ou$o7ZT zU$7sy3CKl*CIeSp56}rJwH1vyq+Bpj64xPx1VPD((ZM4%9qA&nAE1Rrr}$sQe$yla zf;<)P1Ue{{6;U~hPW5il0-bo#h2^hq`H%qtjSPrNa!E}GjYWd!EOx{q<{O1nnMa0* zgIHa;hzqbY($MI*y+b=e48Qz2(f#N@2rkhfr`4T)LuSdso*MlAc!-r2v)#< z3`7xEvI{NoOygh$cReUr0WA?^hUeg51s95Z>|ZT5PT_F3l-Px?Oy&ZL{PZp*EwMR- zpK=^391+7+g#UC8V`(5RI1$aDh)72ffHvZxsgvH7y#>I3=#n7K#6>a+Lf~Fxx1|cE z$OfSEkaPwaq&TM&F4f>V5mFWs|DkP0X1Q?F4IowQ1TGfD~7B_k;&++>P5 zq8R?eRVH#opvjahJ_vJ0i-D^onk};;co(U(#BqTlGOH2qNri(Civ|rbiwPRV45&Ft z!-YB6l^Zynw#0wvsV7GS8i5FaHI^s9EpY+WE@`B2pQ}imQTzuY%M(>G;sSC_Bu{Sr z#O)($W>hp1C%WlS?@E*j2BNe@G`jq%u3JiZLbdz^2NPC81Uk|ZqP<9&{;>Zqk|&Ir zL^Os?jmnrLF^dtN1o>g&49bc^;qWf5G{rU-!GAaqGPkb|iOg<-hVIJP%aL;oMKAhb zl*SGV_fN=S8I{rT&MWjnkL&bsLKo4G$1+vBTKJ@TfOUUDf4-fszu5AANsJD@M|uMSvS% zJs`vlA|Y;+q~r7{B7PJ==>Q?QN2UNdYvw{R*aQcXunF#!v7y6#P!f|*{h2sXFmzI9 zP^3yQHwv48sg#ETjk$mt5bYR+9iGINMN!N_g;&sAE#RF%U1`u8wBG( zi89clkfR8jpv8dXq-UiLX3-F;d3G%2?oa!cm6sNkT7o8)9P1HR-o`jm> zFe(yN#aTko$d>`>6lGu{;UU^#qzyoCFjO<%BEiIB5_J1Z&Va8>3pY3=m}OkfrSgD@ z14djx&`sC`R9z7A8K;6i~nW*a1 z2a%#6o#EOfG76kJMlwInmqf6M1>wmE3fW}x+gM(a>>^r?OaWmIWB|x~BLboj)Q0_` z&<)HY6AUX)i$OAozy`oS0VO~ZGG^#l4c96Z|6?+Sdnae&p$$-S2KNbMK#ZCpx@8kJ z9pE4B*@A{JA^s?aH#muTOvmr!N;{(R~^Nxh^Sp&?poH4eg(C z-&6d@4@gjk4m8-?xPgV^sJ{&3=sGEGFciaT$B5=5iZ-lrQ^acSpuh)_8JCMezaYH} z`ymw$B`;}$5eG)&*P`4M%CowRra>!)tw`h%XK+m7*&60nF{eab%uIL}{71_T;yJlH z+^3N{MzM`1!G%kiQh;;E%{%cuNLX4-1bCV*@t=wWWo`-t>beGvZk>TfMOKvaSWJi_ zqq-2oe;7#D-9Ymbv{kVcmn&tJ6*L?Pxno##;sPLH;i1ow zV#2*kc!hTf*P)}9%15Bl9oPUw^wmnX;@4i7Mrg=DR8H2>LDQss*TL-sX{zD1k#f2h zDivpfaTQDkkhsC%Nl;?Iu+pM&oh5X(J5mZ%55sV}sSX;h1dDy+mXd@a7)O2hpb;j* zP1wjK*LatL-;j|w1OwxXbKzhbG)iZKMpyqpLywePv}l>=q)sV*B!dnCic+#(igASW z6^*<%ZZ2t7sCv)jmfak$MYxgDxzle2=kMyxTcRG?yan7WEMzOUNmk?kcSx74CQVWY b4D9~wz#-4}&Pzpd4=6gdX3abAYnA$c$zasO diff --git a/docs/manual/manual.pdf b/docs/manual/manual.pdf index 80c7bae9c3390256cb25a6b8a77c99a9581e1367..72daf3136fc5a5beb456311e346bff21cd417804 100644 GIT binary patch delta 28198 zcmai-dF*CaS;rmVCo*i+b_OgU)6yM+cRP2PLSg7o0}-2|fmo%rk8bEP-VH5T#M$=e+B^&*x2SGHK?y=f3Bh z=RC{zSzV{^|?Pefo3X^q!CW*o)tJ@|{QD_2_p$c=QV|f9V&0;{#v+=C%L*l21SU z#bIIxnI2Q#qF0qb?oz^+kVh>bf8N@%R4cnYaJ;o8R!Hk6rrb|M9ZFfBL`u`1k+r>lc6b z+s(J{c;Ho!dCeEU`{fV6`3pb#`G;Qr@n3q*yMOF;Uwh=oPe1dopYei^Tz%~&zwoEe zIp^X#fAqM^-f`K#-uv3C|Ka_wz5Uot&;Q`5`t+N=b>uzYI&z3V5980n`SXa+f9uG> ziw-@qtje}*%JCUbIC%2rFQ32s2?ysLI+BhR`M+b=9Xp)=Ul(;>G~>-rJh=Est4Cd3 zjrZqAl^(UlFkbZ2JZkhP)oHvjKPvR7Y5MV={K#|FZ8@HK=H9ugz8kO2k33gZl;d6b zQLnj*t{)FSiAP#SHMHG$Wqzb(RQ*tocjQN!tLlq(d?-H>538;m#uq+$?+>={@YeiD zE38tJ#s~AGE-t=mx^g`Jl)Z1&Z86@QA9;nM|tKsJQ9108m+uGKN1g% zile+MKN2_CaXTJ9ckf(GHeQ(@g&#ydhc=CO0VLX05uLVx=T2rE6=kr?Q*J{rB{`{JkU!r^$UBIKj zDt-~68gI;xyv73MyC**i$5IVgqGmkv!o81{8kQf0)fYwTi+;T8!h`b{VTC;EQV_vv z=*kpS09sw^+`4wqR9z|pgNmYS(|RL|jf;WEn&t-pZAf~#FH0@DuiCKa0<|dvx1gnN zzQ6_E4T+i)Gp!E;p$$c)iHEWer^UFs)}n`I&|(ns^t8C+p)Uhli}BQZ4^CecWl>f^ zXrNVn+;~|uwa2AC&R=3ZOzZo22pF_F9m|Z`0fM3|%U+X|-gsFyLu6W6wv85Dc7rD# z(w4c46%v65>@P5_tlK)CU|H2=FawBFsU4#VLmXFDRSKJ{7I?BUOaek^&FZ@Awc~n# zg@J<&LMB=z(J32VK2|LGzg3p9NljQ`Q8ry+THlJ6u-9?oggX|ko^Wfi1cF7GEXX+C z$S%h9r6(Sui7h~&RaBO;1z*L*EZQa-T3&7oon6~)Y|D;Y?I2T7c10)Y@2bg;*BkCu z^Jf0RN@G1o^;k zrMQ@CNL?E@QdP}tb4&hLc4V2wK= z8fcvt*!zHRUo+*;a#|(BrmEd@;%#9rkP^_2+p3sNlILhE>r7kM?0>0yJ7sNaA%F@1 zAXc|Y9s^Y8<8Rx>b9BYp=k5Sy)po5X0V!&M#ynL!_?SAtM|>AAGM@wf*Ciqs2ljik z8h0~)8MgL&lp2JhMPuM~Bm-dP^f>WQmgC(iE32%^P??iMjiC)E$n-K616D=j8jI7A z)=D*1)`8^2HEmW_?F%2^eRbBOp%)y;A(Yon@DkR^4(rw0ui7aqMB%_X!yUbhOERsC z8zE&@k5_c;QMk4)8bvjAK~S!r1w@I~Hj(dj(aAYLTMPe$?{z__dn&Im_czzor(6Y#8w5>_fUwTnYljwhbYnuPAr`dY#@)K>dpk4+!;*mTm3 zI-p@=(`Reyit&NGCV?1cR{#%9HoZZU;@LHOLZ_y{AqCzw+t6v^Bb!YyHi^X=;=(AI z&?K28<0P4wz+$}blDx-w#!WdWXn`ht(NtuSps z2%}a@pBSB{#pvAfysVItcd{H2m?Q1VDmU%WNT@mk$(*dz9+CYOZK{w2PTF`^S#zj` zY2#$Lqo)AD)Z;rY%?hbwqV%DCcdc@VP1jm+&{6NF_nCG5`pl+$NBGCHPO>JQQ!1Rn zZH7UJr|B`yK^79y9a#rWaZV!6S&iE%WI>i#1`e9M5!o1}lAwt}pgJ)K|1@V%R!E4F z>QuCnYG`}7MY>j808m956|Hz$scKu5!zf;P$Jk>{Lid4xa4`FcGo#9;n%%7yxXWH7 zq&bQ%G{p?5CPx={SM!UewNZZo#6gb6PhWO$uu!y3uZEy=qQgKtt}!5*xKnhP>Q2#N zq7c90!bC9=cx^oKbJ<9W<4rD0AumYK29cAkQ*NE0Qw4zp9Ee5=nm|ix;Lvi8sbVyZ zDo`XjWHIU62;4=s@hoCcgUQxLx_NGG)V$wX<)UEk|sxzR3|PH$LdLN#QME0fSxD@SyizsZJgP3;?8PMqTdtSvE{_= zd@=ApC5pIlg)Jpm)69hy+^unR$B0&$3-ksR3k|Hz1(@JTFq3*0Y$TdXsHttYncKxy z#i*}&5(m9B<0t~B_-K0F%|DmZnLD(y~BKJ8}#8 zwH)R4o3Q8w=vPU`mWq1tDKw-Qvy&Q-BV-#oCQ1}C!Q}h0nP2jMYq=;IOU0-$3II{x zP^8?_eh?O2ko}Tu0of;}dR_iTjpaJ(Gvw1R%QnK8@!XP}ySppk*m z%dR-LG<5_aq(_9XfBr5sBy&!qPpMu+f#a0G>tP_d4w+kCR>qAwkzy8l47b|D2YOcDc_d8icSf1{o>bi(qw6yIj;9f_TYCPivg;UyrefZ0+e; znXj5f(@+-A7@sJO=qnQaaU;|)H=Nnxzn<7K=rK(MjnXl+Do6->vI3ff1`GWj?j>+~ zK|AN3oe*_J>1Q8`OQ{trV^6dxjp*^lI+6q|iTJNih;U>VSV}v=I*R>d?ffoqL%)X@ zZfG0)2kw;dp`s#Cf(cMx9nHD+2ej@*nc+T%5YmFa9u=ND3Jlv7uKP2g+09a*^|)3} zhisjIN=G@21&+;24^CUeWf9q{w+IhXSd_b@a#!DVio5#`(7oaLdPn^h(N3H|j{-{Z z(E~{%;u!f$rAA<%cr$u9+C%9toh~LjVd`N5cmxl&Bov>tz=7Q7^aq!}*9)_EEcf1T zOx-5Zg%(r|{tp=K$W~}dsS%@3|D95flO-1D!E(1Y5VUBK&rMCc#33C{V0usZ}Z?a>k^ z3x-lr10#jb4fZD9SkBF;cy$!t9VLrjcMFl(Kviyq)`zG$H_gbxqHw2 zhbVvtP2C82eNmmDIp8OY5{t-;!|TTd*25y^-`TJrEwsuzLAdmT2$zl%WfBdLyW-Xk z|CPjPJ|{PeGfwFYXsAToohlA+I(8Spe~9Y(LXK#$pZ{QyJ#RSABB$fzoY+X*F|sPb zgf_7M>;QK{nCn?#5(GW%`9W?K>fP4r31`Aa_`PjfeT)Af671>+l_F)_5JO@bSk;Y? zX%P)ULtJNb+-w$OoSN?{u4CMZ5+e6v zGJ+O;Uy1Gu^KgMH>IcWIQZa3pp)!+|klWwVegb_lkJM;H{Jg8`TMj-V@PHb*!gVgKVszq3~gu&|+H$+lKlBPY|OnuBjFM_gF5a4j&*#n00+bb zA1`wsI=&3 zpL77~9Dfjhpv7>hQWJwUJgyTM)GS58zfcIA}=%$2}ZLKX+{utkBz_jgUcKEs*_h*-vUna5<+}C+u2s ztEQ(s?zpC^7v+e1GBKae71FuC%=`zE>r)5N7#cJJQy~MwO$o^iSV;IUU&e`Ef&O9c z9>+$Lf>DZT>rS(o| z5mAkqbL{!Hl)l6Lw9E@a=WtJ}&R6&1PB4z*0#}|*i|`xVPm8%cTZ3puX{9$%o{hpu ztkD8B)iB6`C<#q^k}Z$dpLOt4x&Tg^lH1l{lXYo715NQJW>XP1P(t!aws4)3oGJmu z$DMavb~&&ivUzbaAVir50HWVjgG&CG#axcF5+qksGEJdiZu5&1b3IO;x}oP#8kxJh z!$!D9mxQ~idCGwCy#ZNWa-8zO+)nUfNC9Xuv_GvEGf@JfzIg6j1+XlFYvPem2vtCw zTf*a!kWUN0hZ2wok$0q9d+Mr}zK2}7xBw3(h-xJ>iM&=^Acl(FVo7Bqc*3K()`(G))3_mw7uWL#uC%8EX7a}8J zrDH4lyag}kN_6J%WMU9}lyo|&6+e@jl8+)#jtXL?2 z*G3Gd!#x`PeAQ^X&do9j^b|QZblk+3bDbqJ4T;cxXc~|gfo4!ZB)XM|N3T~y0k9fh z|K@zbBq|)Sxr#~n6)7t;=@#Wj`)vXa&#}pQOuPtoHssgxCyX4K&{yaKr>kqb$qmPQ zKKQVamd(Ct!J6sd5=s%)__&;f#)}9V=g)HZT|+MF*b2p<^^3?F9FQ;^$;~(k%Aqfo zkP226oSbn)FWGIqT>AaXfJjvMt4=)l?@Gi7 z*>DHZ!Z40@t{{Z;GYh*yYsW)xMYiQc^LHY>CVlOXsdRm!&`nkW1$QUmr^aATzHD=0|SM$@Hi^N@HGlEnkiQLJuw(awv-;2>+SF@qG%jw zSrw|GomU73H#wK06DTu8ixJ;B)d_RIGWyeQ7_UD6;0P(Zc%)=*#4=jnC9k9&!$de= zcjj;%Njgan-yYfI6SI*$R4)ZBph>U*0+MTJ-FWxgkxij@da?zTusRY8Xzlou@5m|~ zwn`I#AwX^pjv7M7R}cW2@IRje6cB>8&f<*czy08`SLj^$n22Kf+}9h=lxAdk2YP+W z@rn!Bo1hFA{pIFqVv%zK&C5B_8mwpzn%q0r7uN25qDkOG`FChCPkf$shuzm$3!40U zPY9%g<7(JU8M5mo9+RCQWKg_G-B;R$nNUT5;)DQI?wQrW(3ZQ1Q8#9GzQVk~9y=K{ zwI8@CC7PP=^X(RSPYMScAh~nB5EZM^=NsKDonr2V$lp|p3#8LjFpTU*@TeqA_@JS5 z6oV&y#NG)TP}z_>rXHY>i9Qe6Fd9C&vJ_aDITOJvjG3EXjs$Zhr2>A$7IW&|(rhR& zaXs%QVL}nSitLA`D6t~d6?c*gz`L_r!?pYf%%-EoT-{hMTJ_+FwKx4G>|jUg;Bm)C;8QC#D~K^RA4V$4_JrzT%Q zTUU)C3KwKr>>A{2KT8R#js@-iD#y5|@cj zX!r5Elxc(&&~SHg(PT(=>_5Cbe{uuL|3Q;~hX%}! zKgit^aRJB~RF*mnU;l{jHjC}Y3wB%}VdjA$oWvg_4XYjF$vtlUA*ElLvOiqs z>6#!kl{ca3W?ns>^=beX1tWbJ3z{5e?oo-k8BSpH8Q+PNfIh`s?3_dl4^RXH z%Ma519hpY1Nk53k6eGb-e%Je^@oVQ%)&@406=kdTba^pOA4;U-jBB-F(SVTX%NVC@ z9d}~kYm`|kZsG#M@z29~fb-aw{_myVPuT)teyIQ`=bI5M?zL7ROXcx7M#e6a?=Kq8bd zF>zo_7jl)fjsaA@Ub^R9+c_MZ*@`EWEa2c`{sjAP1Djny^p}`+*$)ij3X-z_t!2l= z#Q-WhnRp=$n!aJkSMzYKkz3rL*J5&S-eg?nKQHToAvC2rpxO9vP7(cM$y8H-w&&>T z>Zl+B_lWp6vtD`2!O35HUVj+{0W!`fi9t`EtS;l4;m|+7ZBJf`S#2-9<+MnmC`=R={vl*ch-nDmfQeQtaib|gL*nOj_cycq{XU7C zZZ^I5`F)>r&pqed^LC%3pML6{pML6}t)4yCe{}PaLq~4f_=i_LaNz6@{oudO{*Mce zzU0CWU4H-5Z>rN*-g5Q1H?6AOEk{JnwxkJNxR- z|J!BXyZK8O|J8R6UU$#S56*r4nb$q;<@?Us_qwNCchT}_(~tew%D2CE`0hWt{>JBB^qiGv{qbKP`0P{mee)Gx{r5A!^_C|*>l@d9 z@~(GZ`1LQm{iE;wo2Ptl`Ib*S`kudd?fv}&Je>A(NvNBSGD`21g<_umPaYgBShb zCFjmxym;i+|NZl8-aq%*#oJbHd*GbgA2?@@zmMbZ8T>u-{s+#Pzjp5NRhPOZSLOLn zn}5daf9`+P)8@~gJEuQT#h(LjJ8)L~+f+Q)m80j*Uvkc1Q$y2~hhnO+sXkTZ(0-;m zo9ddr+#FNMrrLHa55|TU})i9QQKgpDlQICBt zSH+Z(QRlHO_r;XGtIpL>ei&26!+NNza>X+y0eg6OS4gl>$Fl!Cer4Q9x$Daf zOf8t$lyvp{V)^^?<}YySQ;!7fI{>1wBXvVnu8JvtSv%x%UrZT0Qj`1g!kRa|)5VE2d01QbOn-p8i#pav7gB^{#5H`*JjT>AWQ)EsXQ1{w&bd1FZVx(DPwQdpq4kpl<}~t*~>4+lyRdJK%g;LhS;Iy@6hCtsYt--1^OzD|ftc8rn`6pptWduPV@md= z9`o3AW&fecsmF9Ireve5s>{__zIbT6=tG144OG4H)Fp zwJ?Nr)aO!NcSD(b0T8mCoZEe4i))5#3u#7pu@VrrkhZp+PHp2W3nq*Q^w{=(2MN`bp{b(!Bxi#jF_0X5~Nr<6qjk3&Ppp=aj z$M1GP*yH1bXpeBzAnL@qRRJNgTHzoiA8WELZXD{StObP1YK`9d8zDoez_;t#vNb_P zJ$4vzeY|dyjir%IT}a5PDpOroGdY@Ba*m5#^FAA^>UuQgtiv<5*LRibd|l_}o!WfPjrmedWeQ{1*`j5BSAuQXRrLA1!bK@55dR=DCLwj>~Q>+06EgR#Mw%Yv(N zEFe@O>du9#?rJ-<7|U%r9uP)!*H*S}LJOm|1EVZAKsbSY=aj*IkN< zp0XVf#_8UVXGnGy51f}}sheLss022t?(B_a2ft??mBKAt<5x#a1@IV+7%ZQ0aIDk= ztZIBz+brbU$1oo!*m;Voj!l)yLJu>Hrm=Nt9@}iYKXwESt3as33TeGdGiKA5HJDq3 z7i~vU_~W+4gcxRlh^L9(=LVLg=OnfG`>CT;1DlSKW7GycV`M+PA!R$vJnu*i+(U~v+c8an~YJH z+6f4gfx&&Hmb8iKGQwGv^kN|Ne5L?2Gq!u&9~ukE+MyvNTMr16fuVKo4+w_J%FvV3 z-VO*~$l$_E?C;cOlJHB1fiUh57#4YBS9u1l9Y;z4YXPA<(qT3Ajf`2&uEQr!WeW&% zJ|aD*{OPL3k_e2M2;$Nh6S|6**{Zr(f@m)?>Z+df&gx58mUCe+y@fLt%#-mZZN3>0 z%G?h9vSkr)_*kYKJoi!{jB0`$)glb89U2`WXQ0A%YiVtXsPiS(Srq5BubmHtOta#4&!04sFA@U zvP0Pp2wOLCtHE~l;II^*%F-1;n8?H;bs;3O95zaQYXRW|4z5z9Mg3LS__7rc{>ITI zv8Uvsl=T#A%EHf1QPGoOwa0N|Y^)*JUkwOjQ;!Q^k9V$S)TqX?353IB{?W{_MvzQ@n8EHgF(KAOItNXL{jw`5X|1%ywzJJ{vk!ow~P zG`k!J!cu2l&aSs)Mojfdu^9(RvFXtssZaau*vyRFshq+8FB`9zUtCZw^kq9jmo7@& z${=b$ZQ0>hYJo_2xjTql+6mf|R%%OnB@p&v%)h>|r;@1)#}?BbupSWpIB|*)jhm5l z_wfcXV%q`Xk9*dY-0Un(w`E`mI4h3s+C0jyW&v_acw!5$nOF!7 zDz<@~@TQiWfy4=`0bxYfURukwC)IGG=qB3?2<1g4CQx=}?1c&`sZZo$?n)q3+;hu` zBQk)mUipIX|t!M3Fq4kAN^8 zrHxm~9h%+_+{jw=CB1f%3Ka766_YWd2(M!>hS((_^o^MaSScf^?^_(MQrQj&lR*U2 zBnQz^o@LUj)Nt|BT+qlR+T)`;72#1*&8!1#`Jpw`>CkbzU8|7a+ zNXCjHYgxDo2;p=^e%|eQWCBm$5q!+(xn2e0h-w0c)UrSnVa=I}BD8Eiudgk0#>>qn zGBz{#d*VLgUH4_~bu3G8IgXRMJ1mq0!|BVSD~^;wSqTU+1Uyd9!s(Bbmhzq#Dpj;C z9t#MS2>R;mU>r$vs3=4WEQOYUkSPkYmJ4Id`rH_!tW%a>@4R3N`*He07_){-`Wb1c zEE@qKyU!HPra~mL12%^8mz{tRK?6IfQ_2|q9ty$Q=m2>G5V~2E+glMnAS|m-h#Jjb z>p-Yq%ao};W1I#`MboQh@mzK$v>2+>e~SsG_ne|s9><5CC@t>#BR@JOn3iVAv)HJixe=23Fr zfj?#W+9@gs>Wnf%ejmepmyLiBhNo29$;4P^HW_D`^Kl0VQ&mik1yw|#Sp=7sltIHn z#w@AFfrMttRwS~wCrRH`RUV|CQ`XsSJ#d*aj}5CvB(AvhK2&8pAk?zZTBMCCKoC_K z1dV28={g`payhg}w#efg&~}c;Wd{sKKqwW_cBFz(XtDVcWzS1CD48v5WW!hQyEFP;EN;eS&jvSuaT;oLXaa>RfRj; zA3Gip#tYgJZ96e9MlDeT?Wb=9LJ90>*w!}^9nGA%S%^hnS;*=}K zhhMuD5Xx!##WYh21Pz_SpF}R4=JmH=fK-?h`=^g{gG=KML~GFagyRXvT3%K2V`Ub; z&g>m~28bSAngTbW$yA?2ie?Xx8w$$$uIP{{b2k8?3Rbs7#P&EFWMepqWhEd?A}A=D z@KFymDySLJ@-Yd~b3atyh@2S}^l)H3fY83RM2f|HACeHWobRscqqP>FP&U%IFlrPg zGWFh_wNv(oBqeE(UxPC$A2gwu^`d}lwzejti(e8D#s#th#syYodq#4QG{{@0_Gd&U zmAUk{spTUN&E=2vfbhphd*eipGCe3rU)c@_l?aOXnlR<@QPY>`Pa=J}^y?E;kjyiG zjPTa@L%$>Ss5Kyt=#G#;(!?Pb%_a_r!LIh<`86gb=&MEfbR5rixZM4|`F-;=f;3o_ z-(X3q@lE!-Ek!*AdKh+A5Ry8=%_T& zU4)Cb6A(&tG}fqA(@JkSmFWMZ4fP#Ji4us@WD>!RJXb#ov1(fy4sl%pl5f(4=R5N{ z_oReDnjyBK$%UUzQNxWpV8Sh0BcrmrHnBgn^qFmAY!(UZ3R*OJRAnt7Y&+?2v^{GF zv#=;24MST2p$uvXhm_$YaWqL1IY=&%ExZ#5dn0`U21|Tlu#~w;t_FlEJ;e*{t|j0k z)gbI7;s9bZAXKR6XS1LTduEHH;S3ji?p+g9bbe)tcD&XUk#Ca_w5|k%QGrS;F9hrSw(zRJcx|UC5vV-V;zP5jtSNkAt_|uY+NCuDHRBFI}u!SX6R@)rH?Lm z)ec&t?1&?%wjeW{-jiyvcXak~y}2yk%(7Hv$TC@`j0)uJ_}vvg?)2b#ZUltx4;gq< z8NwCqXMQZUCsz^>#$3E*rz~q@1Q6WnEa`nfsI1ceV{RUG0Bzx=Pl$-StOtZqfmu*v zOOK>41O=y;ZjuVjhYDIx1EX!{V?EeQw@gt%1Z%vYEk`wrVi7*TT0p3{a}(Xtq})Pq zUJ$faWh)>=6NrR&zf7_#1O31a1uOhNM5gstjyhW%_b81s z+`~1_lw}Uv^2u8{>KqJ)|x!(f9I86*;RB-)8 zH=kZYLWmV0%yXcx(*ih}#>P)3Q1J{sW#{$w~G0U@j-rDZV&mS#}97Nsz}sI7nyjUgXp zSx4$vT#OegNE2a<7k+yJ0^dkeQjZlmbRitixPz+!Ap%aDkoDH_&CXH#(Ib_Q3$!@} z5g!YYUBY(L%`FQduU_GN+zu5&V0_d=k5lsN)@jBVsiU$I5W=SDOj6s;H$bfGgE2lE zQH}+KY$|=W^f#PNblmCF+yrAdyXAO5h#erqLfTy+xGHK3CbZ)|-5o%PvSZDOOcVl} zXRydhDjNY|Q{=>LaeSFiHlF~9ptI}*gsz)NOoPcL($uoijD^WbN2eeVeWfCrMGS(+ z2v&eNsJx))tM-B~<*ht@e(_2YXR2*9+?zq;AS9C_>?Dt_2NTbA9p1*B6FU+~eigT9 za8b6Cu_QKM3kaXGsuE_8jIL5fnu?y(Nh)YNGuHXF3%r`RAh7T|P~nefjVj1YyU=66 zxp=l35JsSX#Ej}LwJ==>hQ2GC0bw$LqN+X+ET~Cli#Y1b+=r(YLid}o7!K<$(ak`S zZY3a;iiyqzDiz!)kcIFahp-nwXwH+ODOnJE+?)=c^TpAMU|P->%uG3=FX7}i?m8^o zz$OP+mVcLJDI@VP;1`aP&HMk2;)UGc5$n4lVkTe}_*_C~sF)a23Ws`*7S*LZnl8wmAD8_q&?YZV#c8Q~#<6B}a!!pzE&-uJjpf&H z3zKLu6=RsFvhe#;5Y+aK3KT;330LiZQaS6)heo zgC=_s8%YUf0|*tgxN~ohgR9a6E+^dz5OcY_aby1QwRN-HjxVJbklgJsyqHrgU*5g= z^6@YmbeMjyOAoy8|9#}@1D9TU*1K+8edmquedinBbQXbFuBx*R9(>8GUwYR60S&D!sCp4ji+=a1=IB%50xyDy02g@Qz}-4+_&8yJT66SGxVAyMVK z+f7S3YX_i=Oj3|e!;?h)r`K3z{~Q{Po9JX^x3#G#>AD3W-K(oBrsihn!uQ{# zA^>_#jFW%I+y@C3-%JmN++=XvOTS$$pGmJEG1}x}HxH}nE!_mM-`)k-g{5j+CIzqg z_^sm#PZubb$xy(Dud!q1oWf(_UN&C}U!2DRMUzLMftbUKM0|Qkt%(MBc?Nog$j)$P zRMV1cC2U>J{jq)7 z{N1zOiaNn9xx$!Fb?x@QJd9q?u;&w5t#anf#EIXEg`$yn$mBPOz~Zx8XCUkFEiGC0HQt>S;l|H;dHm zc}vT#NiI)Q9k}t4jhPtp)=y*04tYB1sV_lW8H4c8j9Yk1me=<5Uvz~vM`@XtZ9j~u|V zyQXD*V#iDc$7i(0^<5P@X<$~R;wZ4M&`^2kk|-XO5s@X$cQC2X@oE$;9ra5>^Qh;ST$app2(lUt3zn-!Z+AsNR&>j5u?qxAhdXX`JV?OtOe#Rz>hmd4+q+1YJmP-uI-)UA>U;p*2QhsVS8_ z>(yr*C&H2WJtEBJa9X%IbNw|g${VVKYmXN`N_tK<6O(GKRKdEEiR2_2m}&B{_fKDa z+er!Eo7*{?RGns;KuXf=a^^ki6Usb%`#P-mBR34XaQP;KNK=(lXM67#rUUe{`cU)n zEs*T$^TOR!61VROW*j+_`dvu(4eip+v#^la0x5xJyb5J=CBNh!p&E>)gT|&vd2DZD zL|l0-=|p4A?Rd<4TR<;tb^EnFHoRvdQ;nKuhvwmZknhSKW+{g|>%wD%c_l$2uj(!hHL3)dtl5w@Y1A65Fc@`tj40TqK1~!wj?) zPRxuhB&D=WFDD;GtYJo_-43K1^TCT4P08Mqjd(^_gF$G%53wPKdW5aqu-7=#zWHsJ zH26WOZvc&Q{iXaHwM=_9yCZ>TJ5#m^HBBf(?6a0-owlI->HWwfCT=mo&5A zq}#Z);i34Vpz1W+V1$!R5f`)XZC2dT<}%V+h$IPUJhJHzxr_uIbnYc)km{X1!*fpS zg%>N3?=RL%oX#~vuwUJ-8B1@yyD@vh@<64-Dy_wd!)7hxlG&a81Wx}e_uTa7L)fp} zy7scM#G*GX-U3v74*c%Csal;=V^;s?EaIha;h}WE(~Z!I!`rh#2fH73=3(kG8CvIm z8n`7!znmn%BgMEcoo^!%59dh)I*ofuDQZ90e6eG8JUWr41cI@1E464N; z9|p--#`{wlF2tyEhcoU4xSXV59`&3S{ZfwAE6bPv{Ji?wDTSVPX)h$Tw&RM^n){`b z=eebnDVuX2XBMg3@&YsVM!P4e;h*vxa*#eF68A3uwqJ`Y@;WP#el~o`dUfGSazhVx zSLIKE%B?Sd=wcIlK+wBN6pcz0peoQ6B!W^}+tJH8zy;s|U|=w=Pz=OG3ZT*8EP8hl zoB}0?9E)KZP5!{*onc?Vp1RNEBw_IIlAxsybSD)r@rWIWdkQ3GN3 z92PZ#51!eI3^Vm1*JVq0@BBHdIxIMh+&*c>9`4J1s^W5CwGx-xVsp_d0q)F)`ap@6 z5~DXreB{|2CZ(9T-UAx23V6=tM<5>~Ba{s@R*7`amgwt;fzJ2T@ll(^`Y zF^9;YNe0A56|^RBHHQ*qm)p*x`YrlhCWw_IjTEp5jbhHFwlS4uBf8`ewWoBYnmqa) zNbYhkX3sgncu z^Uo_mwD$xJa;qfHJFLvQ=OCxTEZPaWlvrXp+fXpuEgq(D>{-b9uN)d?wRc%%F?W^N zK;|-B{V^0$H=?d|x}ubd7rJM_hQHdhkw z?j4T!EU%x?i(o zx-idqZ*8YQ+p!4#!b*68X6s7DF15rMQD7ykEE2K#S4ap>OZCgGbwnn(cF7AJWRb znZ?_blgkJs%2A2sPd#mxjE`sz>Tk*2oNxW5nsKj)tM){Mthuu4%=?bLvm7+J+U2LM$=t$0YX6lk;(M>$w6v^TnzF!

Y)m9UUKE@7kz+QdZ4Y8Q{ z^)dg&-2xe@jR*F~1l=00F-xH-hZhr# zp=7RYL}lH9iQ2mkwm*ga%*T#gF_L>;WK?Gvv)~;`*DX-&CT*kr&hh>=X3h@GoMlK+ z(a)a&r}UUx)eqDiZT)V-(;w4HYQHMeE!Zl+M(&`O9W5*h`DgqvHTUS(MnsJ!J=|Gc zO+K;#vz~9>?~CVV+nAKyrnl>6wb@M#VyoIamKjrbe0!I6Ke^)@b}{ySSB&PW{ef%jSgX|pMX4itV-_5PStXf-7HBEla2<;OMFx~Pk7o@xK z?z>#cVge?_uKdHc@M}QTQ9$tFdnliXTBsb(c26BFTei z<@$oztcHh#ZmPTwOT)Is(hC{ViAEQf7r3CloQhV}$}$uzHp+D^%qB47Z7=27$ct){ zopw*^AV}(etaafp3y$k+{0JOfFl~fJf3e;yeG9g)L7H()J*D1KV=vipt!5A;kNo~x zu85oa(UeaZ--cwz0nKxlM{DM9`*6KUxH|jM(<&yP@?WaBlQ!(rIr&xJi5eqn8Z}q8 z^<86tqP6F3jV>Jq+3=N#yQZTPtYMTktG^=&c*ZH$O|)!3SaT3a!K}2Xch!b7r#Mbn zGv-2noxEYDf8w3=lfvJ2*2+!4V2)Omcjv8dtyur49<}S~XE`W~umNgepClui+L`N7 zfwt}O!0!CheM>AK%Rs^N;a!G5at@i=?C6Kzns>Ge+*uw63LUnY$TWYRyx%5&Zv!qQ z*0v&-%*?4jpcQ7i?)Ie>THfywawtC*<(JnaW#Xug3PNOiG72soZ0kP2I}}c;k9v>h z3R^Mil?3TvLb}|R+8<{w_Wu_79S2*Kn4P$z*0cOXH7Osb2zTUW{-)$-V zYShiA$!wM_rpWGypUZWO#rMtu6{m2l?bAmAJxd$gxp_P~LHOrOIbK)iih0YYG}8T4 zUWYS2@Tq(z@I_lzn_j_yru-$&xop+pK-VFAJ4G*PpYBfRs&$#YPV0h#=W?-f(*Em*N%=sNRH*SMg=ito)cy-q;Mc zV%5z5)rT7!Ntu;n;S>yKGB9Z2B#HXOkfdR7^Evtb0ZmqNuL*h8B01fv)yyof^Sspb zDQD>DiD=wJB$@f{)aLucZT`R$yYN&QP`wveKj;&g-6QxZ=0nb#!K;A zMzSfxEIp>JW;CB@b2x;)rcY|3?jrR4JWuQz=SQ>a2Ic+K9P2$P9A)0PijcCGY1QGl zs~}#bCf>K$oUA$0zIV-ilC&OQpiGER*|K(t$o`7-7!OLQR%g1&%JQ*)c^{efeWfSt z&z1h;`}NpgwvkCxZ8Hx>(*i0c2P9u$&jvAmk{D<4UbRz~lKMQ|?O>ZAKyPf~>d~72 zsl`4?D&J++K?-q8s^o$^l0b0ST-LL}12UZvmK+Ah`N$b-PA9n%ZnseUo7*09=G(Fm zdX5mLWtr8~vh!C`=A6w897hZ3@(R0Qjdv!=SURwJgAE25Hp`6Zp5G(c;EE=8@Uwcc z%1YX#jg!4UwF$1pOd6_iyDWQ5X1gX%&68v#%;>6)Lvpxr`2@k5g1-!bG`x0md4^c!u)$yb&Aqco2MA3 zoxF};BgGj5dwC3*xxK_LJz!iqn?5+}%2;wZb7GBa_&i#Q44XvwtL5*;)9_28`yQ@7 z$3GF?Yf$Rw{oza{@~r498Ev;v3p9kZY>5sTRE#s;fGht zW*NceLlIu@J&~lNO%(Y3=kgiev+`xa1MjV;DFyor*%sKfMh7QGZ;M`EN#C=u42QUt zj^V6E73N;2Ed)RN(Uhv#I`8>4gcWXIshM}#-dXLPXnSo~Q{$$jp>um+%Shadc2uXF z=4ObQiN=qQom1hsR9yN@e{7~ek2ZZR-Pm&9(}?h>8pVhJeA4e?f3@ZlDfk2oLz5hsTSD@;`ro z0SJJ`S-67)u`n2%;1CUgf)Ru@FbefI4uU`u;s7xCZyXYU5#Rt60{ovff&b+S4M6@f z1BQd)0FKuK#E2!-0s~Map%#EZ!N3GsXfP5+sE>xA5QMdhhydZcU=;FSd1(KqdvFK} zjqAGbBo7d1K>#T1FP|thoUjJDh>yb2dtOjL|Du4S{(_^?P{ODX^o3oV?Z2ZyL*OXF zbO3;W5V{2b7#fLt{SO5p91Q?)LT3OB00^A{u!~W{fxIp#2#?SZFhFP;fI;*IHwo>;An#W0B{8OFB}4V(Tk#gCg8c+&t93LtPl|2+i~^_L42 z1o@W~3I#*rl)e9*3p5!0mm(ShLlK5UBajGO#y=E1j+_67 zf-v{RCj&+Zhe42k^#=}yAmKQO&jkhH$iOc;M@S0?E~*4U5J)%@z(rqBUn ze}4eMFeo7(8h}Fo?_6+#!RUYfvmtPOQG-KpFMUA@)?gSMeq9-bfTCewI2?IhMHK=^ uB2g+(_{Ab$%!2}t-2V%);!#kb^bfH03kddebfQE9NC2P|6jas2Q2qxMVJ7te delta 7159 zcmaiXbyU>t+BF~{ASG##(m5TH(%sS_j7X=HBK!oTMVg@nL8PQx84yGXr9(kLLXZaO zemT#3p7Wk(_}2Pn=8su>uIt|W+Si_Y%}mXZbj^{(@(>~tXdU^1c4Jf5m0G%hy|O;N z9Fq4XzVxr(^C+5fiz(36iK%FJT-__7eOs-BojsiL36<-L_x4AlN&i&CRKEJ-QgeX% z=7Z&_h8Oi#L5_?Q>|9xIgyFmp35*J<>D_I$C!?#oT+!W?F3yABCMj`-QIQhhX#?Vx@xx$lfMb3BJ z*XjAApQp?nu^UvS?sj;1YDBXi7%rrLJF0u}{+&``Hh0rcKoV;gF2K!p#F8~8nfe_R zviZ*T9u*chl=RkafpEv~)lMegx^tJe9}iV|v*Mx=N_M~Ib>^$rjysEHiMLkKZEfq= z%n|qg(Fq1(G}EPUilW@wIg)`|@fIq9CL-PTU`fV2XY+yn1{SsZPx7Rrwi*h%t+|o2 zkJcG0+McTN10kwcvMlq(+7VG@G&ild?cI6kX?&lKa|)b!b9 zOMy111jpFoSoEG?@16Q5|9~J@cTmb0fK4stDDu2JWcmAwA=c~uYjyqc&gqmRBmi`I!ui#8WVyXO~HYJYP~g1Ro{*|nAJ zkG)%#N@=qU@$DGLMw#{#RU3BRuu_Z-*>%fT1rTBI)tN5yZJdAs-H~G}&=HkY%k89ZhW*%T=4oko-up8^dZ405F9`V6>7QVKTkB4CX zc>M_Wn5WP)`)Y6vRKxie{w;vU2#Uh|I9@%S-=cCzmY0|*d|)ycca^j&Bcf~Yt5`FS z4oO&SjrzRt_V3axuFiV-Vt9Wq@~rWIQ0*WR8FoEA|5MzIOjoDO+C#4QGa3nC63v%y ze`*6KYj&)l6Sm4amS(0e4ln!K=*@!%NH)R?=iRfF&MF)Y76i8Gc}-_W!b~MQTb7RH zN~rVd|72=3lhy@Ai21wGsK!_l@FBx_4MH(y$_7vMCqPRU%$402^SPFdK4&_ zW#^xLlqm!%cTX7`FcjpTl0@EjD^@7?V$ccDD%$mn@fz%_u@ZjVjLuxF+t(iw$&`}) z^-81qAZe|z=B%x(is3a;aef4G@vD&pIje#Kl1#lH4X;=I44>Xx{E>96%I3v~|yUI<*kZsj99j?mlo9Y@GZ-3<%Ync?u zwsCC*E|#IKXt2P6*5nke!$UlHEcc3nU*!~6z||ml1oCgZY8Bb0pCQKeC6C}JWdUG& zdY5|9IODi$C%&N!RFB%*rPPSqH#A0Z58qoL+oqkkyygjbTLHf{M+_r>fZ}W%=L*KZ z$4vq-t=_DcA24e=3-->EuBYT#OlVt^U+mKk+&nusvL-RP*QrYpZ_ON%ZPk=8e(c%Y zS_?r@%kY~~W@2g8j&?*~?vLVq@&KRk^y3g-nRhL^QBLklAE<(ujehjgBZ9lh-bInmCU;_OQ$M)kLF6 zdST4kEw%nUYq+e74&+I&ThhF(^CDW>Ip(A+jB#jsQ0jG?C^b zzhglZAkgx*Ta($U8y>IgJmodNiFiEnQUAVzf-JDn3e|o4cbgx=1`tXuFHO7g8 z?kf_r5;JbLyb5x8S=ySY(|;oc;2>F^a*+oD+VZe1_eg)cMD-hVUoEv>30$OW`xw(! z(|KcD>q#Px*lSCd>2zU$1#qdkQnau;ox>s+=3JgT_UXklW5QQwxA$92elx3mk1{#ibAIcdO(W)+x9nX+VQRUXR!3;I_b-VrGzwSD2151jf<_P9fSjd0ApR12pNf?5HR{* zzZ9^N6oh1eW=9&ozMw^Cyz_(Sl5ueH&lbA*sXi2<#>N8a8dz zJ!T!VVyY9r6Dy+eM9+W06W7x`wR5^P+3PR8_t3I;D*@}}X#iEE>j`2amQbO}rye9z zU(L98oj{#ckYCJIm6(qE3ZZK#N8llWx)u#73)v9?a9x`q|1HhvaF_#m*QNYt1Q5E} zSv8_WbsB(vk>C?5HvA6P##7dyIm#Inn=&zz8!rc#Bcgz>@>?dD#;ma~WBIpiN3W)YsI47q+A&lq-aX?wH?@$>h%I}DcaOR%# z;=IG#KeJg=XeDA&Ee}qzmKj$6adshUql_!ijwWw8+|z{R`q35nTR5I zLE^HAGr=8hu8yD#?1wuhEst29e#mVB5nP!i4lS4^=hmcb`QAxFpus^AApYhBFG0nr z!Ql%Oa}dX=V%kk=m6quMgX*6I#L?u0XQD0lvt^fTt0Y{DoTJRy9#uiHQl49m;Lq#UeBAIpF?tK+tZ7XRpfWbSwClRggmX* z;i)&;@Q^YWoRJ=Mk0qR8Wu22FM*d)ezbTE~s%M4&=iPb8=E1GbQ+Ex+n!Y65ve~z( zbSI)DB_p=wy#b#H^$pFAXO(*-?RP`YMjXHZAOI4m@xyR^^y4})JCKTL_Z0tg^fb8G zFyBW%8E28!KjZQHrhU(w%=$s!tzO%~?=Mszh_dg8-me>a9Lg~IK;C}Y*C-ETF3>Mb zQeTo_=Ws9JIj;>$KQZ|W^hW?sYfP(UKBQizfMT+tXRbN3(%oSZvjEoW{Nmy)_Qcc& zD08KuUXH3)tkLgJ%z@BDx`e(hhosWxQu`Ll>I$Cj^nYP^R{JQ`%)@8Uv~Xi4oo)#m zW}$?fs-+s%w$+%MymEca5qQPaajoEs(OpAx&l{hx-+J|Z&1M=$X~f81-k%KkRkm$f zmLwNT;BwGG+vpLkBYVvzrByWJ&gH!=J|N#@mAiwgIk2=+Hf+#W%bdRZNo*=F-RQhYYB|pMhA4B3XTh*OOSdT z@dF##+PzBcN@0eoNDcK>=&ifCP8nvNteHR6-l;1Qtw-Oh^1zQ6H6lG_>$+r82vq$Z zYa6h~2siGRtaadOZrxt_q8l$JQWf&Pez&E`51#wJ;$*wTu*eTRD@&SNBU$in;mcCz zj;d#0g(M@UfL{Km!bmYkrEIuY*T{?V8T+`lcZG=`*>rFX8PiIB>>pu@)xG1yIC|!x zJa(3WKVPf-1(;KAyt}KaZ>b7x*#wr?p~WhSQkn0lFNd+$X?oxyd!MJGqWcT7=Nv3E z1!q(v%&QWV8SRvlq{uQ~7gl|Ytd%w|eM~JJ9WvAgz4ux#Nx>?gD}X5JHgk6PP0mFR zirg>a*7+22(3f3uqkK-Rk`)r;jHJU0!Puy0_QMQMbQ@MV0@o4}d%B;Tbh!YrE}pB6 zwBn-i<8($+O`i-<21Y5XwF6lN7LniRz$z66cBg%UR-poxX;cxLNI@Rg7m4>15m{!x zq=5yKjhl1eMIFVc2!=Lo>tLV!pIc_jSB3g?63N4h=nFK|6THB-AuYA4jlr zJ}BDtDPXLdb+lw0&H2N7O0xiCivYCG@IpxHJ?T}UWZc^Z&1csI*q9$ipXBF@ZGY-v zi^llT>dfED3skzQp>X2oy|V%;TJl$I3EaIVLjF~wHu=wl$97nxrO7Ji-Rd!Q`Lyh} z%`|IFyLa2?c7lauoGb?qM;frbLsFY&CA-g~$G8N2s1K6+XXSS&m%FY2n$NKAe!g{g z6?xWeqW$i>XoOHoWF_qj-&7ObyfN6;XPuM8w8xh989TN;m~6)MxLEj|+rywP?FBj0 z0V^^$_J^SpOTOP;1SUUu`7DMqLogsR|5^}Lq<*E#-i;sbq;=!(82(fjYhO-SnC>Th z{a}49LwaAM(wzFXTAnME{1m9f@o$3!EyhhnOCI*izltpOY=FACu8NOei^}5S4FU0< zrgU%U2gLU1JQ_a|Zi><65v6|^*YHK~+H>u8#5F=`;t9R&@%G(uysX?o(5#j{{e5cpW|@h-6;SStK4^$(ov^+= zWUG*TJJNY?D|_l0?ww_6<5o*_=>cD0>y=sY4?lSi%Qb?Y7JA* znD5BXi!$upV$B^`ZwLG?RkMA@eDX+N&Tvr~E%7z_>{9x2G(pC)HlZtu5#ni8Q~rtI zT5!PLtN z(5_1Ya~KO~=*#5^wH2QwJr6HEY|h+~{7$=A6ug9U)_2wS`}+;W&K7&;BYw84p}*Ok zhLes8^l_kxg|8;VOCqW6hz%}cLKSH`2j_DN^}E`_MuJm5pC&r8MnWa zjKqc_R7`imMW%z{#%l8`Evwp+pAW1T!UtkLiIf$UJeiHvdueD8xjxwl z3!({Uv;r2W8^)dr4*l$Z*u)$|`t7(7R>Q_mBsf(-9aRhdKpACbpX1xHZ9&VxC$4EY zN1;O$%s7!WLV7F3sDg28ZfY!_>e-qSlPSe=^pVc}yTwaVFP93n`c`hTn9XYPcXlKT zMt|k|T)GE897WicE=X;rk$>H$eK#FAheFkW@9hfycFBg zq>H*0pYB!eyq?uNtZ}2NC(^Kf`?2W!XV-(rCf+wSzaOw`M{6Hp7a0kqNwrj!4eqL9 zMVScWh#%N{+tlHh2-!6M4cE=wCyXW*0>Qy>C<+D@0)hEJAU**KF%8%I@>ZTU9Q^XP zAs{g5{Pph=Y??h`Gb4lp^sfhp3kSttZ$J<*6ohqgAmjlMC=lL2o#CH!ypLM#X&%5 z-h>x5kp2!TN$|LFaf{}34X|3QMhuwyhBg21;L0)xWwojJ#l{~-B`0}jOx>-ijr z^ZEbU_J6(_5IEvOs?TXJWC4PJqVXq&AVH`LVvrChevTkWCFR)83smPuoVshU--VCUlkzyu)-lw5dKQw5IE#-4EXy> zL?Gcv{O0q!5st4K35KHa>yTgs>;i@W|Gne?IEX~Rz<7BBKu8o6_P3h9#UN2|1pbau zAP^ki8PvJi_{1nE@. +# +# The authors reserve the right to distribute this or future versions of +# Coccinelle under other licenses. + + ############################################################################## # Variables ############################################################################## diff --git a/engine/asttoctl.ml b/engine/asttoctl.ml index f014995..8191bfc 100644 --- a/engine/asttoctl.ml +++ b/engine/asttoctl.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* true = don't see all matched nodes, only modified ones *) let onlyModif = ref true(*false*) (* set to true for line numbers in the output of ctl_engine *) diff --git a/engine/asttoctl.mli b/engine/asttoctl.mli index e1dcefa..7f60147 100644 --- a/engine/asttoctl.mli +++ b/engine/asttoctl.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + type cocci_predicate = Lib_engine.predicate * string Ast_ctl.modif type formula = (cocci_predicate,string, Wrapper_ctl.info) Ast_ctl.generic_ctl diff --git a/engine/asttoctl2.ml b/engine/asttoctl2.ml index 7a34083..0db65d1 100644 --- a/engine/asttoctl2.ml +++ b/engine/asttoctl2.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* for MINUS and CONTEXT, pos is always None in this file *) (*search for require*) (* true = don't see all matched nodes, only modified ones *) diff --git a/engine/asttoctl2.mli b/engine/asttoctl2.mli index 7e9c2e7..98828e3 100644 --- a/engine/asttoctl2.mli +++ b/engine/asttoctl2.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + type cocci_predicate = Lib_engine.predicate * Ast_cocci.meta_name Ast_ctl.modif type formula = (cocci_predicate,Ast_cocci.meta_name, Wrapper_ctl.info) Ast_ctl.generic_ctl diff --git a/engine/asttomember.ml b/engine/asttomember.ml index 9813f85..d4c32f3 100644 --- a/engine/asttomember.ml +++ b/engine/asttomember.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* on the first pass, onlyModif is true, so we don't see all matched nodes, only modified ones *) diff --git a/engine/asttomember.mli b/engine/asttomember.mli index 5d3a39a..d5a93aa 100644 --- a/engine/asttomember.mli +++ b/engine/asttomember.mli @@ -1,2 +1,24 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val asttomember : Ast_cocci.rule -> Ast_cocci.meta_name list list -> (Lib_engine.predicate * Ast_cocci.meta_name Ast_ctl.modif) list list list diff --git a/engine/c_vs_c.ml b/engine/c_vs_c.ml index 99470bb..5799d96 100644 --- a/engine/c_vs_c.ml +++ b/engine/c_vs_c.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Common open Ast_c diff --git a/engine/c_vs_c.mli b/engine/c_vs_c.mli index 63548fb..55abe18 100644 --- a/engine/c_vs_c.mli +++ b/engine/c_vs_c.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val eq_type : Ast_c.fullType -> Ast_c.fullType -> bool val merge_type : Ast_c.fullType -> Ast_c.fullType -> Ast_c.fullType diff --git a/engine/check_exhaustive_pattern.ml b/engine/check_exhaustive_pattern.ml index fd89329..6b193af 100644 --- a/engine/check_exhaustive_pattern.ml +++ b/engine/check_exhaustive_pattern.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* Just to warn me when there is some news in the types in * ast_cocci.ml or even ast_c.ml, so that I can then adjust my code in diff --git a/engine/check_reachability.ml b/engine/check_reachability.ml index fb8530f..82b62fa 100644 --- a/engine/check_reachability.ml +++ b/engine/check_reachability.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* ---------------------------------------------------------------- *) (* code to check for ambiguities *) diff --git a/engine/check_reachability.mli b/engine/check_reachability.mli index 21ef7be..0632ae1 100644 --- a/engine/check_reachability.mli +++ b/engine/check_reachability.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + type witness = (Ograph_extended.nodei, unit, (Ograph_extended.nodei, unit, unit) Ast_ctl.generic_ctl list) diff --git a/engine/cocci_vs_c.ml b/engine/cocci_vs_c.ml index c224481..f5087b4 100644 --- a/engine/cocci_vs_c.ml +++ b/engine/cocci_vs_c.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* Yoann Padioleau, Julia Lawall * * Copyright (C) 2006, 2007, 2008 Ecole des Mines de Nantes @@ -2359,7 +2381,10 @@ and (struct_fields: (A.declaration list, B.field list) matcher) = if optwhen <> None then failwith "not handling when in argument"; (* '...' can take more or less the beginnings of the arguments *) - let startendxs = Common.zip (Common.inits ys) (Common.tails ys) in + let startendxs = + if eas = [] + then [(ys,[])] (* hack! the only one that can work *) + else Common.zip (Common.inits ys) (Common.tails ys) in startendxs +> List.fold_left (fun acc (startxs, endxs) -> acc >||> ( @@ -2915,7 +2940,7 @@ and (typeC: (A.typeC, Ast_c.typeC) matcher) = | _ -> fail in process_type - >>= (fun ty ii_sub_sb -> + >>= (fun ty ii_sub_sb -> tokenf lba lbb >>= (fun lba lbb -> tokenf rba rbb >>= (fun rba rbb -> diff --git a/engine/cocci_vs_c.mli b/engine/cocci_vs_c.mli index efe2be5..e41c4ea 100644 --- a/engine/cocci_vs_c.mli +++ b/engine/cocci_vs_c.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (*****************************************************************************) (* Cocci vs C *) (*****************************************************************************) diff --git a/engine/ctlcocci_integration.ml b/engine/ctlcocci_integration.ml index 7b1af47..863b889 100644 --- a/engine/ctlcocci_integration.ml +++ b/engine/ctlcocci_integration.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Common open Ograph_extended diff --git a/engine/ctlcocci_integration.mli b/engine/ctlcocci_integration.mli index f515e06..e87f6ab 100644 --- a/engine/ctlcocci_integration.mli +++ b/engine/ctlcocci_integration.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Ograph_extended val labels_for_ctl : diff --git a/engine/ctltotex.ml b/engine/ctltotex.ml index 7cfee46..2c658c5 100644 --- a/engine/ctltotex.ml +++ b/engine/ctltotex.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + module CTL = Ast_ctl let prelude = diff --git a/engine/ctltotex.mli b/engine/ctltotex.mli index 68354f5..88c70e5 100644 --- a/engine/ctltotex.mli +++ b/engine/ctltotex.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val totex : string -> Ast_cocci.rule list -> diff --git a/engine/flag_engine.ml b/engine/flag_engine.ml index 950835c..d6df818 100644 --- a/engine/flag_engine.ml +++ b/engine/flag_engine.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + let debug_engine = ref false (* false = simpler formulas, only for debugging *) diff --git a/engine/flag_matcher.ml b/engine/flag_matcher.ml index 0b6035e..8c2f4e0 100644 --- a/engine/flag_matcher.ml +++ b/engine/flag_matcher.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + let debug_engine = ref false let verbose_matcher = ref true diff --git a/engine/isomorphisms_c_c.ml b/engine/isomorphisms_c_c.ml index bd06586..5138578 100644 --- a/engine/isomorphisms_c_c.ml +++ b/engine/isomorphisms_c_c.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Common (* When in a semantic patch there is f(X) ... f(X) we want to force diff --git a/engine/lib_engine.ml b/engine/lib_engine.ml index 2ee7e4e..3790143 100644 --- a/engine/lib_engine.ml +++ b/engine/lib_engine.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Ograph_extended (*****************************************************************************) diff --git a/engine/lib_matcher_c.ml b/engine/lib_matcher_c.ml index e69de29..57e52bf 100644 --- a/engine/lib_matcher_c.ml +++ b/engine/lib_matcher_c.ml @@ -0,0 +1,22 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + diff --git a/engine/lib_matcher_c.mli b/engine/lib_matcher_c.mli index e69de29..57e52bf 100644 --- a/engine/lib_matcher_c.mli +++ b/engine/lib_matcher_c.mli @@ -0,0 +1,22 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + diff --git a/engine/main.ml b/engine/main.ml index b480855..0d2d384 100644 --- a/engine/main.ml +++ b/engine/main.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* ----------------------------------------------------------------------- *) (* Entry point *) diff --git a/engine/pattern_c.ml b/engine/pattern_c.ml index 99eba15..6bfa0a6 100644 --- a/engine/pattern_c.ml +++ b/engine/pattern_c.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* Yoann Padioleau * * Copyright (C) 2006, 2007 Ecole des Mines de Nantes @@ -125,7 +147,9 @@ module XMATCH = struct else xs *) (* opti? use set instead of list *) - m1 tin ++ m2 tin + let l1 = m1 tin in + let l2 = m2 tin in + if l2 = [] then l1 else l1 ++ l2 (*a small benefit; avoid a trivial @*) let return res = fun tin -> diff --git a/engine/pattern_c.mli b/engine/pattern_c.mli index 76525ff..b29c66e 100644 --- a/engine/pattern_c.mli +++ b/engine/pattern_c.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val match_re_node : string list (* dropped isos *) -> diff --git a/engine/postprocess_transinfo.ml b/engine/postprocess_transinfo.ml index 9442e25..fa41cd3 100644 --- a/engine/postprocess_transinfo.ml +++ b/engine/postprocess_transinfo.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* two goals: first drop from the environments things that are not used, and second prompt for the names of fresh variables that are used *) diff --git a/engine/postprocess_transinfo.mli b/engine/postprocess_transinfo.mli index e45a8d6..6a2033a 100644 --- a/engine/postprocess_transinfo.mli +++ b/engine/postprocess_transinfo.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val process : Ast_cocci.meta_name list (* used after *) -> (Ast_cocci.meta_name * Lib_engine.metavar_binding_kind2) list diff --git a/engine/pretty_print_engine.ml b/engine/pretty_print_engine.ml index 68303e3..5c1e1d0 100644 --- a/engine/pretty_print_engine.ml +++ b/engine/pretty_print_engine.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Common.Infix open Lib_engine diff --git a/engine/pretty_print_engine.mli b/engine/pretty_print_engine.mli index 81c9536..034207e 100644 --- a/engine/pretty_print_engine.mli +++ b/engine/pretty_print_engine.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* could be in pretty_print_c because dependent of ast_c but metavars * are in ast_c for "bad" reason, so better put the pretty_print * of metavars here diff --git a/engine/sgrep.ml b/engine/sgrep.ml index bb75096..9f31764 100644 --- a/engine/sgrep.ml +++ b/engine/sgrep.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + type marker = NoMark | BefMark of string | AftMark of string | BefAftMark of string * string diff --git a/engine/transformation_c.ml b/engine/transformation_c.ml index 8eb1b65..53a065a 100644 --- a/engine/transformation_c.ml +++ b/engine/transformation_c.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* Yoann Padioleau * * Copyright (C) 2006, 2007 Ecole des Mines de Nantes diff --git a/engine/transformation_c.mli b/engine/transformation_c.mli index 0e943a9..3a7b557 100644 --- a/engine/transformation_c.mli +++ b/engine/transformation_c.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* note that now we do the transformation via side effect on ast *) val transform : string (* rule name *) -> string list (* dropped isos *) -> diff --git a/flag_cocci.ml b/flag_cocci.ml index 8e1677e..55510d6 100644 --- a/flag_cocci.ml +++ b/flag_cocci.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* the inputs *) let show_c = ref false let show_cocci = ref false diff --git a/globals/Makefile b/globals/Makefile index c71daa0..226bd5d 100644 --- a/globals/Makefile +++ b/globals/Makefile @@ -1,3 +1,23 @@ +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen +# Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix +# This file is part of Coccinelle. +# +# Coccinelle is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, according to version 2 of the License. +# +# Coccinelle is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Coccinelle. If not, see . +# +# The authors reserve the right to distribute this or future versions of +# Coccinelle under other licenses. + + -include ../Makefile.config diff --git a/globals/config.ml.in b/globals/config.ml.in index 82e7798..b7563e9 100644 --- a/globals/config.ml.in +++ b/globals/config.ml.in @@ -1,4 +1,4 @@ -let version = "0.2.0rc1" +let version = "0.2.0" let path = try (Sys.getenv "COCCINELLE_HOME") diff --git a/globals/flag.ml b/globals/flag.ml index 24ca023..f6c51df 100644 --- a/globals/flag.ml +++ b/globals/flag.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + let sgrep_mode2 = ref false let show_misc = ref true diff --git a/install.txt b/install.txt index f7b736a..619665b 100644 --- a/install.txt +++ b/install.txt @@ -33,3 +33,6 @@ We provide the files generated by menhir in the tarball. However, 'make distclean' will remove them. You could either restore them from the tarball or install menhir. Using 'make clean' should be safe with regards to these files. + +Note: The test target is intended for developers. In particular, + you should not expect that every test will pass. diff --git a/main.ml b/main.ml index 2698617..35589cc 100644 --- a/main.ml +++ b/main.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Common module FC = Flag_cocci diff --git a/parsing_c/parse_c.ml b/parsing_c/parse_c.ml index 00a8033..a5b52c1 100644 --- a/parsing_c/parse_c.ml +++ b/parsing_c/parse_c.ml @@ -512,7 +512,7 @@ let rec lexer_function ~pass tr = fun lexbuf -> * generate some tokens sometimes and so I need access to the * tr.passed, tr.rest, etc. *) - | Parser_c.TDefine (tok) -> + | Parser_c.TDefine (tok) -> if not (LP.current_context () =*= LP.InTopLevel) && (!Flag_parsing_c.cpp_directive_passing || (pass >= 2)) then begin diff --git a/parsing_c/parser_c.mly b/parsing_c/parser_c.mly index 9ad9c4c..2c36876 100644 --- a/parsing_c/parser_c.mly +++ b/parsing_c/parser_c.mly @@ -1065,7 +1065,6 @@ attribute: /*(* cppext: *)*/ | TMacroAttr { Attribute (fst $1), [snd $1] } - attribute_storage: | TMacroAttrStorage { $1 } @@ -1587,8 +1586,14 @@ decl_list: | decl { [$1 Ast_c.LocalDecl] } | decl_list decl { $1 ++ [$2 Ast_c.LocalDecl] } +/* hack : to drop when a better solution is found */ +cpp_directive_list: + | cpp_directive { } + | cpp_directive_list cpp_directive { } + function_def: | start_fun compound { LP.del_scope(); ($1, $2, None) } + | start_fun cpp_directive_list compound { LP.del_scope(); ($1, $3, None) } | start_fun decl_list compound { (* TODO: undo the typedef added ? *) LP.del_scope(); diff --git a/parsing_cocci/Makefile b/parsing_cocci/Makefile index f032147..f783425 100644 --- a/parsing_cocci/Makefile +++ b/parsing_cocci/Makefile @@ -1,3 +1,23 @@ +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen +# Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix +# This file is part of Coccinelle. +# +# Coccinelle is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, according to version 2 of the License. +# +# Coccinelle is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Coccinelle. If not, see . +# +# The authors reserve the right to distribute this or future versions of +# Coccinelle under other licenses. + + -include ../Makefile.config TARGET=cocci_parser diff --git a/parsing_cocci/adjacency.ml b/parsing_cocci/adjacency.ml index 211cabb..1cf3e4b 100644 --- a/parsing_cocci/adjacency.ml +++ b/parsing_cocci/adjacency.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + module Ast0 = Ast0_cocci module V0 = Visitor_ast0 module VT0 = Visitor_ast0_types diff --git a/parsing_cocci/adjacency.mli b/parsing_cocci/adjacency.mli index f076530..1375027 100644 --- a/parsing_cocci/adjacency.mli +++ b/parsing_cocci/adjacency.mli @@ -1 +1,23 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val compute_adjacency : Ast0_cocci.rule -> Ast0_cocci.rule diff --git a/parsing_cocci/adjust_pragmas.ml b/parsing_cocci/adjust_pragmas.ml index f645a2a..a1a6833 100644 --- a/parsing_cocci/adjust_pragmas.ml +++ b/parsing_cocci/adjust_pragmas.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* Find a directive or comment at the end of a statement. Things with aft given None, because they can accomodate their own directives or comments *) diff --git a/parsing_cocci/adjust_pragmas.mli b/parsing_cocci/adjust_pragmas.mli index b87cd1a..8392a90 100644 --- a/parsing_cocci/adjust_pragmas.mli +++ b/parsing_cocci/adjust_pragmas.mli @@ -1 +1,23 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val process : Ast0_cocci.rule -> Ast0_cocci.rule diff --git a/parsing_cocci/arity.ml b/parsing_cocci/arity.ml index 9d14eee..47a896a 100644 --- a/parsing_cocci/arity.ml +++ b/parsing_cocci/arity.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* Arities matter for the minus slice, but not for the plus slice. *) (* ? only allowed on rule_elems, and on subterms if the context is ? also. *) diff --git a/parsing_cocci/arity.mli b/parsing_cocci/arity.mli index cd64e1e..e274276 100644 --- a/parsing_cocci/arity.mli +++ b/parsing_cocci/arity.mli @@ -1 +1,23 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val minus_arity : Ast0_cocci.rule -> Ast0_cocci.rule diff --git a/parsing_cocci/ast0_cocci.ml b/parsing_cocci/ast0_cocci.ml index 3ae32e5..850afbb 100644 --- a/parsing_cocci/ast0_cocci.ml +++ b/parsing_cocci/ast0_cocci.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + module Ast = Ast_cocci (* --------------------------------------------------------------------- *) diff --git a/parsing_cocci/ast0_cocci.mli b/parsing_cocci/ast0_cocci.mli index d0c63d8..a1801cf 100644 --- a/parsing_cocci/ast0_cocci.mli +++ b/parsing_cocci/ast0_cocci.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* --------------------------------------------------------------------- *) (* Modified code *) diff --git a/parsing_cocci/ast0toast.ml b/parsing_cocci/ast0toast.ml index 967c906..34582a4 100644 --- a/parsing_cocci/ast0toast.ml +++ b/parsing_cocci/ast0toast.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* Arities matter for the minus slice, but not for the plus slice. *) (* + only allowed on code in a nest (in_nest = true). ? only allowed on diff --git a/parsing_cocci/ast0toast.mli b/parsing_cocci/ast0toast.mli index e46dec0..bd17da5 100644 --- a/parsing_cocci/ast0toast.mli +++ b/parsing_cocci/ast0toast.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val ast0toast : string -> Ast_cocci.dependency -> string list (* dropped isos *) -> Ast_cocci.exists -> Ast0_cocci.rule -> bool list -> Ast_cocci.ruletype -> diff --git a/parsing_cocci/ast_cocci.ml b/parsing_cocci/ast_cocci.ml index 934556f..6f862b2 100644 --- a/parsing_cocci/ast_cocci.ml +++ b/parsing_cocci/ast_cocci.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* Constraints on Meta-* Identifiers, Functions *) type idconstraint = IdNoConstraint diff --git a/parsing_cocci/ast_cocci.mli b/parsing_cocci/ast_cocci.mli index c28c803..bc6766f 100644 --- a/parsing_cocci/ast_cocci.mli +++ b/parsing_cocci/ast_cocci.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* Constraints on Meta-* Identifiers, Functions *) type idconstraint = IdNoConstraint diff --git a/parsing_cocci/check_meta.ml b/parsing_cocci/check_meta.ml index 936f910..2a020e1 100644 --- a/parsing_cocci/check_meta.ml +++ b/parsing_cocci/check_meta.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* For minus fragment, checks that all of the identifier metavariables that are used are not declared as fresh, and check that all declared variables are used. For plus fragment, just check that the variables declared as diff --git a/parsing_cocci/check_meta.mli b/parsing_cocci/check_meta.mli index d239fc2..0e1e733 100644 --- a/parsing_cocci/check_meta.mli +++ b/parsing_cocci/check_meta.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val check_meta : string -> Ast_cocci.metavar list (* old metavariables *) -> diff --git a/parsing_cocci/comm_assoc.ml b/parsing_cocci/comm_assoc.ml index c508b82..2f15177 100644 --- a/parsing_cocci/comm_assoc.ml +++ b/parsing_cocci/comm_assoc.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* searches for E op ..., for any commutative and associative binary operator. When this satisfies the isomorphism conditions (ie all minus, or context for the op and ...), then this is converted to Nested(E,op). diff --git a/parsing_cocci/comm_assoc.mli b/parsing_cocci/comm_assoc.mli index 351633b..a1e2237 100644 --- a/parsing_cocci/comm_assoc.mli +++ b/parsing_cocci/comm_assoc.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val comm_assoc : Ast0_cocci.rule -> string (* rule name *) -> string list (* dropped isos *) -> Ast0_cocci.rule diff --git a/parsing_cocci/compute_lines.ml b/parsing_cocci/compute_lines.ml index 81aa6b2..680dc66 100644 --- a/parsing_cocci/compute_lines.ml +++ b/parsing_cocci/compute_lines.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* Computes starting and ending logical lines for statements and expressions. every node gets an index as well. *) diff --git a/parsing_cocci/compute_lines.mli b/parsing_cocci/compute_lines.mli index 2d2cdf0..9a3b3d8 100644 --- a/parsing_cocci/compute_lines.mli +++ b/parsing_cocci/compute_lines.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val compute_lines : bool -> Ast0_cocci.rule -> Ast0_cocci.rule val compute_statement_dots_lines : bool -> diff --git a/parsing_cocci/context_neg.ml b/parsing_cocci/context_neg.ml index e8f2c84..8b0065a 100644 --- a/parsing_cocci/context_neg.ml +++ b/parsing_cocci/context_neg.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* Detects subtrees that are all minus/plus and nodes that are "binding context nodes". The latter is a node whose structure and immediate tokens are the same in the minus and plus trees, and such that for every child, diff --git a/parsing_cocci/context_neg.mli b/parsing_cocci/context_neg.mli index acdb4b4..39cfe59 100644 --- a/parsing_cocci/context_neg.mli +++ b/parsing_cocci/context_neg.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val context_neg : Ast0_cocci.rule -> Ast0_cocci.rule -> (Ast0_cocci.top_level * Ast0_cocci.top_level) list diff --git a/parsing_cocci/data.ml b/parsing_cocci/data.ml index 03658ad..8618934 100644 --- a/parsing_cocci/data.ml +++ b/parsing_cocci/data.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + module Ast0 = Ast0_cocci module Ast = Ast_cocci diff --git a/parsing_cocci/data.mli b/parsing_cocci/data.mli index 2b096c4..272302e 100644 --- a/parsing_cocci/data.mli +++ b/parsing_cocci/data.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* types that clutter the .mly file *) (* for iso metavariables, true if they can only match nonmodified, unitary metavariables *) diff --git a/parsing_cocci/disjdistr.ml b/parsing_cocci/disjdistr.ml index 0d511d3..67ce6ff 100644 --- a/parsing_cocci/disjdistr.ml +++ b/parsing_cocci/disjdistr.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + module Ast = Ast_cocci module V = Visitor_ast diff --git a/parsing_cocci/disjdistr.mli b/parsing_cocci/disjdistr.mli index ae9c339..a46529c 100644 --- a/parsing_cocci/disjdistr.mli +++ b/parsing_cocci/disjdistr.mli @@ -1,2 +1,24 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val disj : Ast_cocci.rule_with_metavars list -> Ast_cocci.rule_with_metavars list diff --git a/parsing_cocci/flag_parsing_cocci.ml b/parsing_cocci/flag_parsing_cocci.ml index 8ddd8d0..9b30625 100644 --- a/parsing_cocci/flag_parsing_cocci.ml +++ b/parsing_cocci/flag_parsing_cocci.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* uses E rather than A and adds comments indicating the start and end of each matched term *) diff --git a/parsing_cocci/free_vars.ml b/parsing_cocci/free_vars.ml index 775c2d4..55cd94b 100644 --- a/parsing_cocci/free_vars.ml +++ b/parsing_cocci/free_vars.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* For each rule return the list of variables that are used after it. Also augment various parts of each rule with unitary, inherited, and freshness informations *) diff --git a/parsing_cocci/free_vars.mli b/parsing_cocci/free_vars.mli index 979a59f..625b9e3 100644 --- a/parsing_cocci/free_vars.mli +++ b/parsing_cocci/free_vars.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* Used after things can only have one binding. Positions can have many bindings. These are combined in ctlcocciintegration, ie after the CTL generation. *) diff --git a/parsing_cocci/function_prototypes.ml b/parsing_cocci/function_prototypes.ml index 316239d..1bf76d7 100644 --- a/parsing_cocci/function_prototypes.ml +++ b/parsing_cocci/function_prototypes.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + module Ast0 = Ast0_cocci module Ast = Ast_cocci module V0 = Visitor_ast0 diff --git a/parsing_cocci/function_prototypes.mli b/parsing_cocci/function_prototypes.mli index 85b056c..6fc8757 100644 --- a/parsing_cocci/function_prototypes.mli +++ b/parsing_cocci/function_prototypes.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val process : string (* name *) -> Ast_cocci.metavar list -> string list (* dropped isos *) -> Ast0_cocci.rule -> Ast0_cocci.rule -> Ast_cocci.ruletype -> diff --git a/parsing_cocci/get_constants.ml b/parsing_cocci/get_constants.ml index 7d6dda6..5ceea90 100644 --- a/parsing_cocci/get_constants.ml +++ b/parsing_cocci/get_constants.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* get a list of all of the constants in the - slice of a SmPL file, to be used to select which files to process *) diff --git a/parsing_cocci/get_constants.mli b/parsing_cocci/get_constants.mli index 657faf5..cca4fde 100644 --- a/parsing_cocci/get_constants.mli +++ b/parsing_cocci/get_constants.mli @@ -1 +1,23 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val get_constants : Ast_cocci.rule list -> string list list diff --git a/parsing_cocci/get_constants2.ml b/parsing_cocci/get_constants2.ml index 82cc072..aaed6e9 100644 --- a/parsing_cocci/get_constants2.ml +++ b/parsing_cocci/get_constants2.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + module Ast = Ast_cocci module V = Visitor_ast module TC = Type_cocci diff --git a/parsing_cocci/get_constants2.mli b/parsing_cocci/get_constants2.mli index ba09dd9..465fe4d 100644 --- a/parsing_cocci/get_constants2.mli +++ b/parsing_cocci/get_constants2.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val get_constants : Ast_cocci.rule list -> (((Ast_cocci.meta_name list) list) list) (*negated pos vars*) -> diff --git a/parsing_cocci/index.ml b/parsing_cocci/index.ml index 81d1ad5..a6c9481 100644 --- a/parsing_cocci/index.ml +++ b/parsing_cocci/index.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* create an index for each constructor *) (* current max is 147 *) diff --git a/parsing_cocci/index.mli b/parsing_cocci/index.mli index cf6fdbf..6704434 100644 --- a/parsing_cocci/index.mli +++ b/parsing_cocci/index.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val expression_dots : Ast0_cocci.expression Ast0_cocci.dots -> int list val initialiser_dots : Ast0_cocci.initialiser Ast0_cocci.dots -> int list val parameter_dots : Ast0_cocci.parameterTypeDef Ast0_cocci.dots -> int list diff --git a/parsing_cocci/insert_plus.ml b/parsing_cocci/insert_plus.ml index ff69633..b434c21 100644 --- a/parsing_cocci/insert_plus.ml +++ b/parsing_cocci/insert_plus.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* The error message "no available token to attach to" often comes in an argument list of unbounded length. In this case, one should move a comma so that there is a comma after the + code. *) diff --git a/parsing_cocci/insert_plus.mli b/parsing_cocci/insert_plus.mli index 788df0b..18f317f 100644 --- a/parsing_cocci/insert_plus.mli +++ b/parsing_cocci/insert_plus.mli @@ -1,2 +1,24 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val insert_plus : Ast0_cocci.rule -> Ast0_cocci.rule -> bool -> unit (* bool is true if no isos *) diff --git a/parsing_cocci/iso_compile.ml b/parsing_cocci/iso_compile.ml index 539d2bb..e749ea9 100644 --- a/parsing_cocci/iso_compile.ml +++ b/parsing_cocci/iso_compile.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + module V0 = Visitor_ast0 module VT0 = Visitor_ast0_types module Ast0 = Ast0_cocci diff --git a/parsing_cocci/iso_compile.mli b/parsing_cocci/iso_compile.mli index 6b336f5..b0a6a21 100644 --- a/parsing_cocci/iso_compile.mli +++ b/parsing_cocci/iso_compile.mli @@ -1,2 +1,24 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val process : Iso_pattern.isomorphism -> unit diff --git a/parsing_cocci/iso_pattern.ml b/parsing_cocci/iso_pattern.ml index f4b85e1..b5dd7b9 100644 --- a/parsing_cocci/iso_pattern.ml +++ b/parsing_cocci/iso_pattern.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* Potential problem: offset of mcode is not updated when an iso is instantiated, implying that a term may end up with many mcodes with the same offset. On the other hand, at the moment offset only seems to be used diff --git a/parsing_cocci/iso_pattern.mli b/parsing_cocci/iso_pattern.mli index d12a37a..bd4c3ff 100644 --- a/parsing_cocci/iso_pattern.mli +++ b/parsing_cocci/iso_pattern.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + type isomorphism = Ast_cocci.metavar list * Ast0_cocci.anything list list * string(*iso name*) diff --git a/parsing_cocci/lexer_cocci.mll b/parsing_cocci/lexer_cocci.mll index 0125f0e..6abc9b1 100644 --- a/parsing_cocci/lexer_cocci.mll +++ b/parsing_cocci/lexer_cocci.mll @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + { open Parser_cocci_menhir module D = Data @@ -713,12 +735,13 @@ and string = parse | ("\\" (_ as v)) as x { (match v with - | 'n' -> () | 't' -> () | 'v' -> () | 'b' -> () | 'r' -> () - | 'f' -> () | 'a' -> () - | '\\' -> () | '?' -> () | '\'' -> () | '"' -> () - | 'e' -> () - | '\n' -> () - | _ -> lexerr "unrecognised symbol:" (tok lexbuf) + | 'n' -> () | 't' -> () | 'v' -> () | 'b' -> () | 'r' -> () + | 'f' -> () | 'a' -> () + | '\\' -> () | '?' -> () | '\'' -> () | '"' -> () + | 'e' -> () + | '\n' -> () + | '(' -> () | '|' -> () | ')' -> () + | _ -> lexerr "unrecognised symbol:" (tok lexbuf) ); x ^ string lexbuf } diff --git a/parsing_cocci/lexer_script.mll b/parsing_cocci/lexer_script.mll index f1ec8ef..77ba3e3 100644 --- a/parsing_cocci/lexer_script.mll +++ b/parsing_cocci/lexer_script.mll @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + { open Parser_cocci_menhir module D = Data diff --git a/parsing_cocci/main.ml b/parsing_cocci/main.ml index 218bda0..b4ba616 100644 --- a/parsing_cocci/main.ml +++ b/parsing_cocci/main.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* ----------------------------------------------------------------------- *) (* Entry point *) diff --git a/parsing_cocci/merge.ml b/parsing_cocci/merge.ml index ed6516b..21d61ed 100644 --- a/parsing_cocci/merge.ml +++ b/parsing_cocci/merge.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* given parsed minus code and a stream of + code, figure out where to put the + code in the mcode of the minus code *) diff --git a/parsing_cocci/merge.mli b/parsing_cocci/merge.mli index edff023..22ca2f8 100644 --- a/parsing_cocci/merge.mli +++ b/parsing_cocci/merge.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val do_merge : Ast0_cocci.rule -> (Ast_cocci.anything * int * int * int * int) list list list -> diff --git a/parsing_cocci/parse_aux.ml b/parsing_cocci/parse_aux.ml index 4976f7d..2dead52 100644 --- a/parsing_cocci/parse_aux.ml +++ b/parsing_cocci/parse_aux.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* exports everything, used only by parser_cocci_menhir.mly *) module Ast0 = Ast0_cocci module Ast = Ast_cocci diff --git a/parsing_cocci/parse_cocci.ml b/parsing_cocci/parse_cocci.ml index f50d505..109056d 100644 --- a/parsing_cocci/parse_cocci.ml +++ b/parsing_cocci/parse_cocci.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* splits the entire file into minus and plus fragments, and parses each separately (thus duplicating work for the parsing of the context elements) *) @@ -1479,10 +1501,10 @@ let rec parse file = (* get metavariable declarations *) let (metavars, inherited_metavars) = get_metavars PC.meta_main table file lexbuf in - Hashtbl.add Data.all_metadecls rule_name metavars; - Hashtbl.add Lexer_cocci.rule_names rule_name (); - Hashtbl.add Lexer_cocci.all_metavariables rule_name - (Hashtbl.fold + Hashtbl.add Data.all_metadecls rule_name metavars; + Hashtbl.add Lexer_cocci.rule_names rule_name (); + Hashtbl.add Lexer_cocci.all_metavariables rule_name + (Hashtbl.fold (fun key v rest -> (key,v)::rest) Lexer_cocci.metavariables []); @@ -1523,7 +1545,9 @@ let rec parse file = Printf.printf "before plus parse\n"; *) let plus_res = - if !Flag.sgrep_mode2 + (* put ignore_patch_or_match with * case, which is less + constraining *) + if !Flag.sgrep_mode2 or !D.ignore_patch_or_match then (* not actually used for anything, except context_neg *) List.map (Iso_pattern.rebuild_mcode None).VT0.rebuilder_rec_top_level diff --git a/parsing_cocci/parse_cocci.mli b/parsing_cocci/parse_cocci.mli index 927c7a6..119ffdc 100644 --- a/parsing_cocci/parse_cocci.mli +++ b/parsing_cocci/parse_cocci.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val process : string (* filename *) -> string option (* iso filename *) -> bool (* verbose? *) -> diff --git a/parsing_cocci/parser_cocci.mly b/parsing_cocci/parser_cocci.mly index 39886c9..24ac4a7 100644 --- a/parsing_cocci/parser_cocci.mly +++ b/parsing_cocci/parser_cocci.mly @@ -1,3 +1,25 @@ +/* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + */ + + %{ (* Not clear how to allow function declarations to specify a return type diff --git a/parsing_cocci/parser_cocci_menhir.ml b/parsing_cocci/parser_cocci_menhir.ml index b32c69f..03a81bb 100644 --- a/parsing_cocci/parser_cocci_menhir.ml +++ b/parsing_cocci/parser_cocci_menhir.ml @@ -2,140 +2,140 @@ exception Error type token = | Tvolatile of ( -# 32 "parser_cocci_menhir.mly" +# 54 "parser_cocci_menhir.mly" (Data.clt) # 8 "parser_cocci_menhir.ml" ) | Tvoid of ( -# 28 "parser_cocci_menhir.mly" +# 50 "parser_cocci_menhir.mly" (Data.clt) # 13 "parser_cocci_menhir.ml" ) | Tunsigned of ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 18 "parser_cocci_menhir.ml" ) | Tunion of ( -# 28 "parser_cocci_menhir.mly" +# 50 "parser_cocci_menhir.mly" (Data.clt) # 23 "parser_cocci_menhir.ml" ) | Ttypedef of ( -# 31 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) # 28 "parser_cocci_menhir.ml" ) | Tstruct of ( -# 28 "parser_cocci_menhir.mly" +# 50 "parser_cocci_menhir.mly" (Data.clt) # 33 "parser_cocci_menhir.ml" ) | Tstatic of ( -# 31 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) # 38 "parser_cocci_menhir.ml" ) | Tsigned of ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 43 "parser_cocci_menhir.ml" ) | Tshort of ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 48 "parser_cocci_menhir.ml" ) | Tregister of ( -# 31 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) # 53 "parser_cocci_menhir.ml" ) | Tlong of ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 58 "parser_cocci_menhir.ml" ) | Tlist | Tint of ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 64 "parser_cocci_menhir.ml" ) | Tinline of ( -# 31 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) # 69 "parser_cocci_menhir.ml" ) | Tfloat of ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 74 "parser_cocci_menhir.ml" ) | Textern of ( -# 31 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) # 79 "parser_cocci_menhir.ml" ) | Tenum of ( -# 28 "parser_cocci_menhir.mly" +# 50 "parser_cocci_menhir.mly" (Data.clt) # 84 "parser_cocci_menhir.ml" ) | Tdouble of ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 89 "parser_cocci_menhir.ml" ) | Tconst of ( -# 32 "parser_cocci_menhir.mly" +# 54 "parser_cocci_menhir.mly" (Data.clt) # 94 "parser_cocci_menhir.ml" ) | Tchar of ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 99 "parser_cocci_menhir.ml" ) | Tauto of ( -# 31 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) # 104 "parser_cocci_menhir.ml" ) | Tattr of ( -# 33 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (string * Data.clt) # 109 "parser_cocci_menhir.ml" ) | TXor of ( -# 70 "parser_cocci_menhir.mly" +# 92 "parser_cocci_menhir.mly" (Data.clt) # 114 "parser_cocci_menhir.ml" ) | TWords | TWhy0 | TWhy of ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 121 "parser_cocci_menhir.ml" ) | TWhile of ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 126 "parser_cocci_menhir.ml" ) | TWhenTrue of ( -# 52 "parser_cocci_menhir.mly" +# 74 "parser_cocci_menhir.mly" (Data.clt) # 131 "parser_cocci_menhir.ml" ) | TWhenFalse of ( -# 52 "parser_cocci_menhir.mly" +# 74 "parser_cocci_menhir.mly" (Data.clt) # 136 "parser_cocci_menhir.ml" ) | TWhen of ( -# 52 "parser_cocci_menhir.mly" +# 74 "parser_cocci_menhir.mly" (Data.clt) # 141 "parser_cocci_menhir.ml" ) @@ -143,288 +143,288 @@ type token = | TUsing | TTypedef | TTypeId of ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 149 "parser_cocci_menhir.ml" ) | TType | TTildeExclEq of ( -# 72 "parser_cocci_menhir.mly" +# 94 "parser_cocci_menhir.mly" (Data.clt) # 155 "parser_cocci_menhir.ml" ) | TTildeEq of ( -# 72 "parser_cocci_menhir.mly" +# 94 "parser_cocci_menhir.mly" (Data.clt) # 160 "parser_cocci_menhir.ml" ) | TTilde of ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 165 "parser_cocci_menhir.ml" ) | TSwitch of ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 170 "parser_cocci_menhir.ml" ) | TString of ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 175 "parser_cocci_menhir.ml" ) | TStrict of ( -# 52 "parser_cocci_menhir.mly" +# 74 "parser_cocci_menhir.mly" (Data.clt) # 180 "parser_cocci_menhir.ml" ) | TStatement | TSizeof of ( -# 36 "parser_cocci_menhir.mly" +# 58 "parser_cocci_menhir.mly" (Data.clt) # 186 "parser_cocci_menhir.ml" ) | TShOp of ( -# 74 "parser_cocci_menhir.mly" +# 96 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 191 "parser_cocci_menhir.ml" ) | TScriptData of ( -# 49 "parser_cocci_menhir.mly" +# 71 "parser_cocci_menhir.mly" (string) # 196 "parser_cocci_menhir.ml" ) | TScript | TRuleName of ( -# 25 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (string) # 202 "parser_cocci_menhir.ml" ) | TRightIso | TReturn of ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 208 "parser_cocci_menhir.ml" ) | TPure | TPtrOp of ( -# 82 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) # 214 "parser_cocci_menhir.ml" ) | TPtVirg of ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 219 "parser_cocci_menhir.ml" ) | TPragma of ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 224 "parser_cocci_menhir.ml" ) | TPosition | TPosAny | TPlusFile of ( -# 61 "parser_cocci_menhir.mly" +# 83 "parser_cocci_menhir.mly" (string * Data.clt) # 231 "parser_cocci_menhir.ml" ) | TPlus0 | TPlus of ( -# 76 "parser_cocci_menhir.mly" +# 98 "parser_cocci_menhir.mly" (Data.clt) # 237 "parser_cocci_menhir.ml" ) | TPathIsoFile of ( -# 57 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (string) # 242 "parser_cocci_menhir.ml" ) | TParameter | TPOEllipsis of ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 248 "parser_cocci_menhir.ml" ) | TPCEllipsis of ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 253 "parser_cocci_menhir.ml" ) | TPArob | TOrLog of ( -# 67 "parser_cocci_menhir.mly" +# 89 "parser_cocci_menhir.mly" (Data.clt) # 259 "parser_cocci_menhir.ml" ) | TOr of ( -# 69 "parser_cocci_menhir.mly" +# 91 "parser_cocci_menhir.mly" (Data.clt) # 264 "parser_cocci_menhir.ml" ) | TOn | TOPar0 of ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 270 "parser_cocci_menhir.ml" ) | TOPar of ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 275 "parser_cocci_menhir.ml" ) | TOInit of ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 280 "parser_cocci_menhir.ml" ) | TOEllipsis of ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 285 "parser_cocci_menhir.ml" ) | TOCro of ( -# 80 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 290 "parser_cocci_menhir.ml" ) | TOBrace of ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 295 "parser_cocci_menhir.ml" ) | TNothing | TNotEq of ( -# 72 "parser_cocci_menhir.mly" +# 94 "parser_cocci_menhir.mly" (Data.clt) # 301 "parser_cocci_menhir.ml" ) | TNever | TName | TMul of ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 308 "parser_cocci_menhir.ml" ) | TMinusFile of ( -# 61 "parser_cocci_menhir.mly" +# 83 "parser_cocci_menhir.mly" (string * Data.clt) # 313 "parser_cocci_menhir.ml" ) | TMinus of ( -# 76 "parser_cocci_menhir.mly" +# 98 "parser_cocci_menhir.mly" (Data.clt) # 318 "parser_cocci_menhir.ml" ) | TMid0 of ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 323 "parser_cocci_menhir.ml" ) | TMetaType of ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 328 "parser_cocci_menhir.ml" ) | TMetaStmList of ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 333 "parser_cocci_menhir.ml" ) | TMetaStm of ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 338 "parser_cocci_menhir.ml" ) | TMetaPos of ( -# 46 "parser_cocci_menhir.mly" +# 68 "parser_cocci_menhir.mly" (Parse_aux.pos_info) # 343 "parser_cocci_menhir.ml" ) | TMetaParamList of ( -# 44 "parser_cocci_menhir.mly" +# 66 "parser_cocci_menhir.mly" (Parse_aux.list_info) # 348 "parser_cocci_menhir.ml" ) | TMetaParam of ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 353 "parser_cocci_menhir.ml" ) | TMetaLocalIdExp of ( -# 45 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 358 "parser_cocci_menhir.ml" ) | TMetaLocalFunc of ( -# 39 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (Parse_aux.idinfo) # 363 "parser_cocci_menhir.ml" ) | TMetaIterator of ( -# 40 "parser_cocci_menhir.mly" +# 62 "parser_cocci_menhir.mly" (Parse_aux.idinfo) # 368 "parser_cocci_menhir.ml" ) | TMetaInit of ( -# 43 "parser_cocci_menhir.mly" +# 65 "parser_cocci_menhir.mly" (Parse_aux.info) # 373 "parser_cocci_menhir.ml" ) | TMetaIdExp of ( -# 45 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 378 "parser_cocci_menhir.ml" ) | TMetaId of ( -# 39 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (Parse_aux.idinfo) # 383 "parser_cocci_menhir.ml" ) | TMetaFunc of ( -# 39 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (Parse_aux.idinfo) # 388 "parser_cocci_menhir.ml" ) | TMetaExpList of ( -# 44 "parser_cocci_menhir.mly" +# 66 "parser_cocci_menhir.mly" (Parse_aux.list_info) # 393 "parser_cocci_menhir.ml" ) | TMetaExp of ( -# 45 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 398 "parser_cocci_menhir.ml" ) | TMetaErr of ( -# 41 "parser_cocci_menhir.mly" +# 63 "parser_cocci_menhir.mly" (Parse_aux.expinfo) # 403 "parser_cocci_menhir.ml" ) | TMetaDeclarer of ( -# 40 "parser_cocci_menhir.mly" +# 62 "parser_cocci_menhir.mly" (Parse_aux.idinfo) # 408 "parser_cocci_menhir.ml" ) | TMetaConst of ( -# 45 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 413 "parser_cocci_menhir.ml" ) | TMPtVirg | TLogOp of ( -# 73 "parser_cocci_menhir.mly" +# 95 "parser_cocci_menhir.mly" (Ast_cocci.logicalOp * Data.clt) # 419 "parser_cocci_menhir.ml" ) | TLocal | TLineEnd of ( -# 52 "parser_cocci_menhir.mly" +# 74 "parser_cocci_menhir.mly" (Data.clt) # 425 "parser_cocci_menhir.ml" ) | TIteratorId of ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 430 "parser_cocci_menhir.ml" ) @@ -439,60 +439,60 @@ type token = | TIso | TInvalid | TInt of ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 445 "parser_cocci_menhir.ml" ) | TInitialize | TInitialiser | TIncludeNL of ( -# 58 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (string * Data.clt) # 452 "parser_cocci_menhir.ml" ) | TIncludeL of ( -# 58 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (string * Data.clt) # 457 "parser_cocci_menhir.ml" ) | TInc of ( -# 63 "parser_cocci_menhir.mly" +# 85 "parser_cocci_menhir.mly" (Data.clt) # 462 "parser_cocci_menhir.ml" ) | TIf of ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 467 "parser_cocci_menhir.ml" ) | TIdentifier | TIdent of ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 473 "parser_cocci_menhir.ml" ) | TIdExpression | TGoto of ( -# 36 "parser_cocci_menhir.mly" +# 58 "parser_cocci_menhir.mly" (Data.clt) # 479 "parser_cocci_menhir.ml" ) | TGenerated | TFunction | TFunDecl of ( -# 36 "parser_cocci_menhir.mly" +# 58 "parser_cocci_menhir.mly" (Data.clt) # 486 "parser_cocci_menhir.ml" ) | TFresh | TForall | TFor of ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 493 "parser_cocci_menhir.ml" ) | TFloat of ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 498 "parser_cocci_menhir.ml" ) @@ -503,151 +503,151 @@ type token = | TEver | TError | TEqEq of ( -# 72 "parser_cocci_menhir.mly" +# 94 "parser_cocci_menhir.mly" (Data.clt) # 509 "parser_cocci_menhir.ml" ) | TEq of ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 514 "parser_cocci_menhir.ml" ) | TElse of ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 519 "parser_cocci_menhir.ml" ) | TEllipsis of ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 524 "parser_cocci_menhir.ml" ) | TDotDot of ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 529 "parser_cocci_menhir.ml" ) | TDot of ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 534 "parser_cocci_menhir.ml" ) | TDo of ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 539 "parser_cocci_menhir.ml" ) | TDmOp of ( -# 75 "parser_cocci_menhir.mly" +# 97 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 544 "parser_cocci_menhir.ml" ) | TDisable | TDepends | TDefineParam of ( -# 60 "parser_cocci_menhir.mly" +# 82 "parser_cocci_menhir.mly" (Data.clt * token * int * int) # 551 "parser_cocci_menhir.ml" ) | TDefine of ( -# 59 "parser_cocci_menhir.mly" +# 81 "parser_cocci_menhir.mly" (Data.clt * token) # 556 "parser_cocci_menhir.ml" ) | TDefault of ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 561 "parser_cocci_menhir.ml" ) | TDeclarerId of ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 566 "parser_cocci_menhir.ml" ) | TDeclarer | TDec of ( -# 63 "parser_cocci_menhir.mly" +# 85 "parser_cocci_menhir.mly" (Data.clt) # 572 "parser_cocci_menhir.ml" ) | TCppConcatOp | TContinue of ( -# 36 "parser_cocci_menhir.mly" +# 58 "parser_cocci_menhir.mly" (Data.clt) # 578 "parser_cocci_menhir.ml" ) | TContext | TConstant | TComma of ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 585 "parser_cocci_menhir.ml" ) | TChar of ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 590 "parser_cocci_menhir.ml" ) | TCase of ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 595 "parser_cocci_menhir.ml" ) | TCPar0 of ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 600 "parser_cocci_menhir.ml" ) | TCPar of ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 605 "parser_cocci_menhir.ml" ) | TCEllipsis of ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 610 "parser_cocci_menhir.ml" ) | TCCro of ( -# 80 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 615 "parser_cocci_menhir.ml" ) | TCBrace of ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 620 "parser_cocci_menhir.ml" ) | TBreak of ( -# 36 "parser_cocci_menhir.mly" +# 58 "parser_cocci_menhir.mly" (Data.clt) # 625 "parser_cocci_menhir.ml" ) | TBang0 | TBang of ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 631 "parser_cocci_menhir.ml" ) | TAssign of ( -# 86 "parser_cocci_menhir.mly" +# 108 "parser_cocci_menhir.mly" (Ast_cocci.assignOp * Data.clt) # 636 "parser_cocci_menhir.ml" ) | TArobArob | TArob | TAny of ( -# 52 "parser_cocci_menhir.mly" +# 74 "parser_cocci_menhir.mly" (Data.clt) # 643 "parser_cocci_menhir.ml" ) | TAndLog of ( -# 68 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (Data.clt) # 648 "parser_cocci_menhir.ml" ) | TAnd of ( -# 71 "parser_cocci_menhir.mly" +# 93 "parser_cocci_menhir.mly" (Data.clt) # 653 "parser_cocci_menhir.ml" ) @@ -656,7 +656,7 @@ type token = and _menhir_jeton = token -# 1 "parser_cocci_menhir.mly" +# 23 "parser_cocci_menhir.mly" (* Not clear how to allow function declarations to specify a return type @@ -1552,7 +1552,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_aexpr = -# 1823 "parser_cocci_menhir.mly" +# 1845 "parser_cocci_menhir.mly" ( Ast0.set_arg_exp _1 ) # 1558 "parser_cocci_menhir.ml" in @@ -1573,14 +1573,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 44 "parser_cocci_menhir.mly" +# 66 "parser_cocci_menhir.mly" (Parse_aux.list_info) # 1579 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_aexpr = -# 1825 "parser_cocci_menhir.mly" +# 1847 "parser_cocci_menhir.mly" ( let (nm,lenname,pure,clt) = _1 in let nm = P.clt2mcode nm clt in let lenname = @@ -1610,7 +1610,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_aexpr = -# 1833 "parser_cocci_menhir.mly" +# 1855 "parser_cocci_menhir.mly" ( Ast0.set_arg_exp(Ast0.wrap(Ast0.TypeExp(_1))) ) # 1616 "parser_cocci_menhir.ml" in @@ -1632,7 +1632,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_any_strict = -# 1877 "parser_cocci_menhir.mly" +# 1899 "parser_cocci_menhir.mly" ( Ast.WhenAny ) # 1638 "parser_cocci_menhir.ml" in @@ -1654,7 +1654,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_any_strict = -# 1878 "parser_cocci_menhir.mly" +# 1900 "parser_cocci_menhir.mly" ( Ast.WhenStrict ) # 1660 "parser_cocci_menhir.ml" in @@ -1676,7 +1676,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_any_strict = -# 1879 "parser_cocci_menhir.mly" +# 1901 "parser_cocci_menhir.mly" ( Ast.WhenForall ) # 1682 "parser_cocci_menhir.ml" in @@ -1698,7 +1698,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_any_strict = -# 1880 "parser_cocci_menhir.mly" +# 1902 "parser_cocci_menhir.mly" ( Ast.WhenExists ) # 1704 "parser_cocci_menhir.ml" in @@ -1722,7 +1722,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1238 "parser_cocci_menhir.mly" +# 1260 "parser_cocci_menhir.mly" ( _1 ) # 1728 "parser_cocci_menhir.ml" in @@ -1754,7 +1754,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 1760 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -1762,7 +1762,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1240 "parser_cocci_menhir.mly" +# 1262 "parser_cocci_menhir.mly" ( P.arith_op Ast.Mul _1 _2 _3 ) # 1768 "parser_cocci_menhir.ml" in @@ -1794,7 +1794,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 75 "parser_cocci_menhir.mly" +# 97 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 1800 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -1802,7 +1802,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1242 "parser_cocci_menhir.mly" +# 1264 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) # 1808 "parser_cocci_menhir.ml" in @@ -1834,7 +1834,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 76 "parser_cocci_menhir.mly" +# 98 "parser_cocci_menhir.mly" (Data.clt) # 1840 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -1842,7 +1842,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1244 "parser_cocci_menhir.mly" +# 1266 "parser_cocci_menhir.mly" ( P.arith_op Ast.Plus _1 _2 _3 ) # 1848 "parser_cocci_menhir.ml" in @@ -1874,7 +1874,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 76 "parser_cocci_menhir.mly" +# 98 "parser_cocci_menhir.mly" (Data.clt) # 1880 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -1882,7 +1882,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1246 "parser_cocci_menhir.mly" +# 1268 "parser_cocci_menhir.mly" ( P.arith_op Ast.Minus _1 _2 _3 ) # 1888 "parser_cocci_menhir.ml" in @@ -1914,7 +1914,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 74 "parser_cocci_menhir.mly" +# 96 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 1920 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -1922,7 +1922,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1248 "parser_cocci_menhir.mly" +# 1270 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) # 1928 "parser_cocci_menhir.ml" in @@ -1954,7 +1954,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 73 "parser_cocci_menhir.mly" +# 95 "parser_cocci_menhir.mly" (Ast_cocci.logicalOp * Data.clt) # 1960 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -1962,7 +1962,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1250 "parser_cocci_menhir.mly" +# 1272 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.logic_op op _1 clt _3 ) # 1968 "parser_cocci_menhir.ml" in @@ -1994,7 +1994,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 72 "parser_cocci_menhir.mly" +# 94 "parser_cocci_menhir.mly" (Data.clt) # 2000 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2002,7 +2002,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1252 "parser_cocci_menhir.mly" +# 1274 "parser_cocci_menhir.mly" ( P.logic_op Ast.Eq _1 _2 _3 ) # 2008 "parser_cocci_menhir.ml" in @@ -2034,7 +2034,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 72 "parser_cocci_menhir.mly" +# 94 "parser_cocci_menhir.mly" (Data.clt) # 2040 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2042,7 +2042,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1254 "parser_cocci_menhir.mly" +# 1276 "parser_cocci_menhir.mly" ( P.logic_op Ast.NotEq _1 _2 _3 ) # 2048 "parser_cocci_menhir.ml" in @@ -2074,7 +2074,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 71 "parser_cocci_menhir.mly" +# 93 "parser_cocci_menhir.mly" (Data.clt) # 2080 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2082,7 +2082,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1256 "parser_cocci_menhir.mly" +# 1278 "parser_cocci_menhir.mly" ( P.arith_op Ast.And _1 _2 _3 ) # 2088 "parser_cocci_menhir.ml" in @@ -2114,7 +2114,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 69 "parser_cocci_menhir.mly" +# 91 "parser_cocci_menhir.mly" (Data.clt) # 2120 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2122,7 +2122,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1258 "parser_cocci_menhir.mly" +# 1280 "parser_cocci_menhir.mly" ( P.arith_op Ast.Or _1 _2 _3 ) # 2128 "parser_cocci_menhir.ml" in @@ -2154,7 +2154,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 70 "parser_cocci_menhir.mly" +# 92 "parser_cocci_menhir.mly" (Data.clt) # 2160 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2162,7 +2162,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1260 "parser_cocci_menhir.mly" +# 1282 "parser_cocci_menhir.mly" ( P.arith_op Ast.Xor _1 _2 _3 ) # 2168 "parser_cocci_menhir.ml" in @@ -2194,7 +2194,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 68 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (Data.clt) # 2200 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2202,7 +2202,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1262 "parser_cocci_menhir.mly" +# 1284 "parser_cocci_menhir.mly" ( P.logic_op Ast.AndLog _1 _2 _3 ) # 2208 "parser_cocci_menhir.ml" in @@ -2234,7 +2234,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 67 "parser_cocci_menhir.mly" +# 89 "parser_cocci_menhir.mly" (Data.clt) # 2240 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2242,7 +2242,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1264 "parser_cocci_menhir.mly" +# 1286 "parser_cocci_menhir.mly" ( P.logic_op Ast.OrLog _1 _2 _3 ) # 2248 "parser_cocci_menhir.ml" in @@ -2266,7 +2266,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1238 "parser_cocci_menhir.mly" +# 1260 "parser_cocci_menhir.mly" ( _1 ) # 2272 "parser_cocci_menhir.ml" in @@ -2298,7 +2298,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 2304 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2306,7 +2306,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1240 "parser_cocci_menhir.mly" +# 1262 "parser_cocci_menhir.mly" ( P.arith_op Ast.Mul _1 _2 _3 ) # 2312 "parser_cocci_menhir.ml" in @@ -2338,7 +2338,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 75 "parser_cocci_menhir.mly" +# 97 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 2344 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2346,7 +2346,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1242 "parser_cocci_menhir.mly" +# 1264 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) # 2352 "parser_cocci_menhir.ml" in @@ -2378,7 +2378,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 76 "parser_cocci_menhir.mly" +# 98 "parser_cocci_menhir.mly" (Data.clt) # 2384 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2386,7 +2386,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1244 "parser_cocci_menhir.mly" +# 1266 "parser_cocci_menhir.mly" ( P.arith_op Ast.Plus _1 _2 _3 ) # 2392 "parser_cocci_menhir.ml" in @@ -2418,7 +2418,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 76 "parser_cocci_menhir.mly" +# 98 "parser_cocci_menhir.mly" (Data.clt) # 2424 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2426,7 +2426,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1246 "parser_cocci_menhir.mly" +# 1268 "parser_cocci_menhir.mly" ( P.arith_op Ast.Minus _1 _2 _3 ) # 2432 "parser_cocci_menhir.ml" in @@ -2458,7 +2458,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 74 "parser_cocci_menhir.mly" +# 96 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 2464 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2466,7 +2466,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1248 "parser_cocci_menhir.mly" +# 1270 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) # 2472 "parser_cocci_menhir.ml" in @@ -2498,7 +2498,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 73 "parser_cocci_menhir.mly" +# 95 "parser_cocci_menhir.mly" (Ast_cocci.logicalOp * Data.clt) # 2504 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2506,7 +2506,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1250 "parser_cocci_menhir.mly" +# 1272 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.logic_op op _1 clt _3 ) # 2512 "parser_cocci_menhir.ml" in @@ -2538,7 +2538,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 72 "parser_cocci_menhir.mly" +# 94 "parser_cocci_menhir.mly" (Data.clt) # 2544 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2546,7 +2546,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1252 "parser_cocci_menhir.mly" +# 1274 "parser_cocci_menhir.mly" ( P.logic_op Ast.Eq _1 _2 _3 ) # 2552 "parser_cocci_menhir.ml" in @@ -2578,7 +2578,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 72 "parser_cocci_menhir.mly" +# 94 "parser_cocci_menhir.mly" (Data.clt) # 2584 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2586,7 +2586,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1254 "parser_cocci_menhir.mly" +# 1276 "parser_cocci_menhir.mly" ( P.logic_op Ast.NotEq _1 _2 _3 ) # 2592 "parser_cocci_menhir.ml" in @@ -2618,7 +2618,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 71 "parser_cocci_menhir.mly" +# 93 "parser_cocci_menhir.mly" (Data.clt) # 2624 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2626,7 +2626,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1256 "parser_cocci_menhir.mly" +# 1278 "parser_cocci_menhir.mly" ( P.arith_op Ast.And _1 _2 _3 ) # 2632 "parser_cocci_menhir.ml" in @@ -2658,7 +2658,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 69 "parser_cocci_menhir.mly" +# 91 "parser_cocci_menhir.mly" (Data.clt) # 2664 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2666,7 +2666,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1258 "parser_cocci_menhir.mly" +# 1280 "parser_cocci_menhir.mly" ( P.arith_op Ast.Or _1 _2 _3 ) # 2672 "parser_cocci_menhir.ml" in @@ -2698,7 +2698,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 70 "parser_cocci_menhir.mly" +# 92 "parser_cocci_menhir.mly" (Data.clt) # 2704 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2706,7 +2706,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1260 "parser_cocci_menhir.mly" +# 1282 "parser_cocci_menhir.mly" ( P.arith_op Ast.Xor _1 _2 _3 ) # 2712 "parser_cocci_menhir.ml" in @@ -2738,7 +2738,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 68 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (Data.clt) # 2744 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2746,7 +2746,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1262 "parser_cocci_menhir.mly" +# 1284 "parser_cocci_menhir.mly" ( P.logic_op Ast.AndLog _1 _2 _3 ) # 2752 "parser_cocci_menhir.ml" in @@ -2778,7 +2778,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 67 "parser_cocci_menhir.mly" +# 89 "parser_cocci_menhir.mly" (Data.clt) # 2784 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2786,7 +2786,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1264 "parser_cocci_menhir.mly" +# 1286 "parser_cocci_menhir.mly" ( P.logic_op Ast.OrLog _1 _2 _3 ) # 2792 "parser_cocci_menhir.ml" in @@ -2810,7 +2810,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1238 "parser_cocci_menhir.mly" +# 1260 "parser_cocci_menhir.mly" ( _1 ) # 2816 "parser_cocci_menhir.ml" in @@ -2842,7 +2842,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 2848 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2850,7 +2850,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1240 "parser_cocci_menhir.mly" +# 1262 "parser_cocci_menhir.mly" ( P.arith_op Ast.Mul _1 _2 _3 ) # 2856 "parser_cocci_menhir.ml" in @@ -2882,7 +2882,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 75 "parser_cocci_menhir.mly" +# 97 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 2888 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2890,7 +2890,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1242 "parser_cocci_menhir.mly" +# 1264 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) # 2896 "parser_cocci_menhir.ml" in @@ -2922,7 +2922,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 76 "parser_cocci_menhir.mly" +# 98 "parser_cocci_menhir.mly" (Data.clt) # 2928 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2930,7 +2930,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1244 "parser_cocci_menhir.mly" +# 1266 "parser_cocci_menhir.mly" ( P.arith_op Ast.Plus _1 _2 _3 ) # 2936 "parser_cocci_menhir.ml" in @@ -2962,7 +2962,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 76 "parser_cocci_menhir.mly" +# 98 "parser_cocci_menhir.mly" (Data.clt) # 2968 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2970,7 +2970,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1246 "parser_cocci_menhir.mly" +# 1268 "parser_cocci_menhir.mly" ( P.arith_op Ast.Minus _1 _2 _3 ) # 2976 "parser_cocci_menhir.ml" in @@ -3002,7 +3002,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 74 "parser_cocci_menhir.mly" +# 96 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 3008 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3010,7 +3010,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1248 "parser_cocci_menhir.mly" +# 1270 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) # 3016 "parser_cocci_menhir.ml" in @@ -3042,7 +3042,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 73 "parser_cocci_menhir.mly" +# 95 "parser_cocci_menhir.mly" (Ast_cocci.logicalOp * Data.clt) # 3048 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3050,7 +3050,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1250 "parser_cocci_menhir.mly" +# 1272 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.logic_op op _1 clt _3 ) # 3056 "parser_cocci_menhir.ml" in @@ -3082,7 +3082,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 72 "parser_cocci_menhir.mly" +# 94 "parser_cocci_menhir.mly" (Data.clt) # 3088 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3090,7 +3090,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1252 "parser_cocci_menhir.mly" +# 1274 "parser_cocci_menhir.mly" ( P.logic_op Ast.Eq _1 _2 _3 ) # 3096 "parser_cocci_menhir.ml" in @@ -3122,7 +3122,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 72 "parser_cocci_menhir.mly" +# 94 "parser_cocci_menhir.mly" (Data.clt) # 3128 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3130,7 +3130,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1254 "parser_cocci_menhir.mly" +# 1276 "parser_cocci_menhir.mly" ( P.logic_op Ast.NotEq _1 _2 _3 ) # 3136 "parser_cocci_menhir.ml" in @@ -3162,7 +3162,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 71 "parser_cocci_menhir.mly" +# 93 "parser_cocci_menhir.mly" (Data.clt) # 3168 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3170,7 +3170,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1256 "parser_cocci_menhir.mly" +# 1278 "parser_cocci_menhir.mly" ( P.arith_op Ast.And _1 _2 _3 ) # 3176 "parser_cocci_menhir.ml" in @@ -3202,7 +3202,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 69 "parser_cocci_menhir.mly" +# 91 "parser_cocci_menhir.mly" (Data.clt) # 3208 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3210,7 +3210,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1258 "parser_cocci_menhir.mly" +# 1280 "parser_cocci_menhir.mly" ( P.arith_op Ast.Or _1 _2 _3 ) # 3216 "parser_cocci_menhir.ml" in @@ -3242,7 +3242,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 70 "parser_cocci_menhir.mly" +# 92 "parser_cocci_menhir.mly" (Data.clt) # 3248 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3250,7 +3250,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1260 "parser_cocci_menhir.mly" +# 1282 "parser_cocci_menhir.mly" ( P.arith_op Ast.Xor _1 _2 _3 ) # 3256 "parser_cocci_menhir.ml" in @@ -3282,7 +3282,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 68 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (Data.clt) # 3288 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3290,7 +3290,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1262 "parser_cocci_menhir.mly" +# 1284 "parser_cocci_menhir.mly" ( P.logic_op Ast.AndLog _1 _2 _3 ) # 3296 "parser_cocci_menhir.ml" in @@ -3322,7 +3322,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 67 "parser_cocci_menhir.mly" +# 89 "parser_cocci_menhir.mly" (Data.clt) # 3328 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3330,7 +3330,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1264 "parser_cocci_menhir.mly" +# 1286 "parser_cocci_menhir.mly" ( P.logic_op Ast.OrLog _1 _2 _3 ) # 3336 "parser_cocci_menhir.ml" in @@ -3354,7 +3354,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1238 "parser_cocci_menhir.mly" +# 1260 "parser_cocci_menhir.mly" ( _1 ) # 3360 "parser_cocci_menhir.ml" in @@ -3386,7 +3386,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 3392 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3394,7 +3394,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1240 "parser_cocci_menhir.mly" +# 1262 "parser_cocci_menhir.mly" ( P.arith_op Ast.Mul _1 _2 _3 ) # 3400 "parser_cocci_menhir.ml" in @@ -3426,7 +3426,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 75 "parser_cocci_menhir.mly" +# 97 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 3432 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3434,7 +3434,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1242 "parser_cocci_menhir.mly" +# 1264 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) # 3440 "parser_cocci_menhir.ml" in @@ -3466,7 +3466,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 76 "parser_cocci_menhir.mly" +# 98 "parser_cocci_menhir.mly" (Data.clt) # 3472 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3474,7 +3474,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1244 "parser_cocci_menhir.mly" +# 1266 "parser_cocci_menhir.mly" ( P.arith_op Ast.Plus _1 _2 _3 ) # 3480 "parser_cocci_menhir.ml" in @@ -3506,7 +3506,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 76 "parser_cocci_menhir.mly" +# 98 "parser_cocci_menhir.mly" (Data.clt) # 3512 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3514,7 +3514,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1246 "parser_cocci_menhir.mly" +# 1268 "parser_cocci_menhir.mly" ( P.arith_op Ast.Minus _1 _2 _3 ) # 3520 "parser_cocci_menhir.ml" in @@ -3546,7 +3546,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 74 "parser_cocci_menhir.mly" +# 96 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 3552 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3554,7 +3554,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1248 "parser_cocci_menhir.mly" +# 1270 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) # 3560 "parser_cocci_menhir.ml" in @@ -3586,7 +3586,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 73 "parser_cocci_menhir.mly" +# 95 "parser_cocci_menhir.mly" (Ast_cocci.logicalOp * Data.clt) # 3592 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3594,7 +3594,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1250 "parser_cocci_menhir.mly" +# 1272 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.logic_op op _1 clt _3 ) # 3600 "parser_cocci_menhir.ml" in @@ -3626,7 +3626,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 72 "parser_cocci_menhir.mly" +# 94 "parser_cocci_menhir.mly" (Data.clt) # 3632 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3634,7 +3634,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1252 "parser_cocci_menhir.mly" +# 1274 "parser_cocci_menhir.mly" ( P.logic_op Ast.Eq _1 _2 _3 ) # 3640 "parser_cocci_menhir.ml" in @@ -3666,7 +3666,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 72 "parser_cocci_menhir.mly" +# 94 "parser_cocci_menhir.mly" (Data.clt) # 3672 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3674,7 +3674,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1254 "parser_cocci_menhir.mly" +# 1276 "parser_cocci_menhir.mly" ( P.logic_op Ast.NotEq _1 _2 _3 ) # 3680 "parser_cocci_menhir.ml" in @@ -3706,7 +3706,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 71 "parser_cocci_menhir.mly" +# 93 "parser_cocci_menhir.mly" (Data.clt) # 3712 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3714,7 +3714,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1256 "parser_cocci_menhir.mly" +# 1278 "parser_cocci_menhir.mly" ( P.arith_op Ast.And _1 _2 _3 ) # 3720 "parser_cocci_menhir.ml" in @@ -3746,7 +3746,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 69 "parser_cocci_menhir.mly" +# 91 "parser_cocci_menhir.mly" (Data.clt) # 3752 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3754,7 +3754,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1258 "parser_cocci_menhir.mly" +# 1280 "parser_cocci_menhir.mly" ( P.arith_op Ast.Or _1 _2 _3 ) # 3760 "parser_cocci_menhir.ml" in @@ -3786,7 +3786,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 70 "parser_cocci_menhir.mly" +# 92 "parser_cocci_menhir.mly" (Data.clt) # 3792 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3794,7 +3794,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1260 "parser_cocci_menhir.mly" +# 1282 "parser_cocci_menhir.mly" ( P.arith_op Ast.Xor _1 _2 _3 ) # 3800 "parser_cocci_menhir.ml" in @@ -3826,7 +3826,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 68 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (Data.clt) # 3832 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3834,7 +3834,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1262 "parser_cocci_menhir.mly" +# 1284 "parser_cocci_menhir.mly" ( P.logic_op Ast.AndLog _1 _2 _3 ) # 3840 "parser_cocci_menhir.ml" in @@ -3866,7 +3866,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 67 "parser_cocci_menhir.mly" +# 89 "parser_cocci_menhir.mly" (Data.clt) # 3872 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3874,7 +3874,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1264 "parser_cocci_menhir.mly" +# 1286 "parser_cocci_menhir.mly" ( P.logic_op Ast.OrLog _1 _2 _3 ) # 3880 "parser_cocci_menhir.ml" in @@ -3896,7 +3896,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arity = -# 446 "parser_cocci_menhir.mly" +# 468 "parser_cocci_menhir.mly" ( Ast.UNIQUE ) # 3902 "parser_cocci_menhir.ml" in @@ -3918,7 +3918,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arity = -# 447 "parser_cocci_menhir.mly" +# 469 "parser_cocci_menhir.mly" ( Ast.OPT ) # 3924 "parser_cocci_menhir.ml" in @@ -3940,7 +3940,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arity = -# 448 "parser_cocci_menhir.mly" +# 470 "parser_cocci_menhir.mly" ( Ast.MULTI ) # 3946 "parser_cocci_menhir.ml" in @@ -3957,7 +3957,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_arity = -# 449 "parser_cocci_menhir.mly" +# 471 "parser_cocci_menhir.mly" ( Ast.NONE ) # 3963 "parser_cocci_menhir.ml" in @@ -3988,20 +3988,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let r : ( -# 80 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 3994 "parser_cocci_menhir.ml" ) = Obj.magic r in let i : 'tv_option_eexpr_ = Obj.magic i in let l : ( -# 80 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 4000 "parser_cocci_menhir.ml" ) = Obj.magic l in let _startpos = _startpos_l_ in let _endpos = _endpos_r_ in let _v : 'tv_array_dec = -# 1045 "parser_cocci_menhir.mly" +# 1067 "parser_cocci_menhir.mly" ( (l,i,r) ) # 4007 "parser_cocci_menhir.ml" in @@ -4025,7 +4025,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_assign_expr_eexpr_dot_expressions_ = -# 1210 "parser_cocci_menhir.mly" +# 1232 "parser_cocci_menhir.mly" ( _1 ) # 4031 "parser_cocci_menhir.ml" in @@ -4057,7 +4057,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 86 "parser_cocci_menhir.mly" +# 108 "parser_cocci_menhir.mly" (Ast_cocci.assignOp * Data.clt) # 4063 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -4065,7 +4065,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_eexpr_dot_expressions_ = -# 1212 "parser_cocci_menhir.mly" +# 1234 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt, Ast0.set_arg_exp _3,false)) ) @@ -4099,7 +4099,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 4105 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -4107,7 +4107,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_eexpr_dot_expressions_ = -# 1216 "parser_cocci_menhir.mly" +# 1238 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Assignment (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) ) @@ -4133,7 +4133,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_assign_expr_eexpr_nest_expressions_ = -# 1210 "parser_cocci_menhir.mly" +# 1232 "parser_cocci_menhir.mly" ( _1 ) # 4139 "parser_cocci_menhir.ml" in @@ -4165,7 +4165,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 86 "parser_cocci_menhir.mly" +# 108 "parser_cocci_menhir.mly" (Ast_cocci.assignOp * Data.clt) # 4171 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -4173,7 +4173,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_eexpr_nest_expressions_ = -# 1212 "parser_cocci_menhir.mly" +# 1234 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt, Ast0.set_arg_exp _3,false)) ) @@ -4207,7 +4207,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 4213 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -4215,7 +4215,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_eexpr_nest_expressions_ = -# 1216 "parser_cocci_menhir.mly" +# 1238 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Assignment (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) ) @@ -4241,7 +4241,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_assign_expr_expr_invalid_ = -# 1210 "parser_cocci_menhir.mly" +# 1232 "parser_cocci_menhir.mly" ( _1 ) # 4247 "parser_cocci_menhir.ml" in @@ -4273,7 +4273,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 86 "parser_cocci_menhir.mly" +# 108 "parser_cocci_menhir.mly" (Ast_cocci.assignOp * Data.clt) # 4279 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -4281,7 +4281,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_expr_invalid_ = -# 1212 "parser_cocci_menhir.mly" +# 1234 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt, Ast0.set_arg_exp _3,false)) ) @@ -4315,7 +4315,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 4321 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -4323,7 +4323,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_expr_invalid_ = -# 1216 "parser_cocci_menhir.mly" +# 1238 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Assignment (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) ) @@ -4349,7 +4349,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_assign_expr_bis = -# 1221 "parser_cocci_menhir.mly" +# 1243 "parser_cocci_menhir.mly" ( _1 ) # 4355 "parser_cocci_menhir.ml" in @@ -4381,7 +4381,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 86 "parser_cocci_menhir.mly" +# 108 "parser_cocci_menhir.mly" (Ast_cocci.assignOp * Data.clt) # 4387 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -4389,7 +4389,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_bis = -# 1223 "parser_cocci_menhir.mly" +# 1245 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt, Ast0.set_arg_exp _3,false)) ) @@ -4423,7 +4423,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 4429 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -4431,7 +4431,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_bis = -# 1227 "parser_cocci_menhir.mly" +# 1249 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Assignment (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) ) @@ -4457,7 +4457,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_basic_expr_eexpr_dot_expressions_ = -# 1207 "parser_cocci_menhir.mly" +# 1229 "parser_cocci_menhir.mly" ( _1 ) # 4463 "parser_cocci_menhir.ml" in @@ -4481,7 +4481,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_basic_expr_eexpr_nest_expressions_ = -# 1207 "parser_cocci_menhir.mly" +# 1229 "parser_cocci_menhir.mly" ( _1 ) # 4487 "parser_cocci_menhir.ml" in @@ -4505,7 +4505,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_basic_expr_expr_invalid_ = -# 1207 "parser_cocci_menhir.mly" +# 1229 "parser_cocci_menhir.mly" ( _1 ) # 4511 "parser_cocci_menhir.ml" in @@ -4537,19 +4537,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_fun_start = Obj.magic _3 in let _2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 4543 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 4548 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_case_line = -# 909 "parser_cocci_menhir.mly" +# 931 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Default(P.clt2mcode "default" _1,P.clt2mcode ":" _2,_3)) ) # 4556 "parser_cocci_menhir.ml" @@ -4587,20 +4587,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _4 : 'tv_fun_start = Obj.magic _4 in let _3 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 4593 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 4599 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_case_line = -# 912 "parser_cocci_menhir.mly" +# 934 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Case(P.clt2mcode "case" _1,_2,P.clt2mcode ":" _3,_4)) ) # 4606 "parser_cocci_menhir.ml" in @@ -4624,7 +4624,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cast_expr_eexpr_dot_expressions_ = -# 1267 "parser_cocci_menhir.mly" +# 1289 "parser_cocci_menhir.mly" ( _1 ) # 4630 "parser_cocci_menhir.ml" in @@ -4661,20 +4661,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let e : 'tv_cast_expr_eexpr_dot_expressions_ = Obj.magic e in let rp : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 4667 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 4673 "parser_cocci_menhir.ml" ) = Obj.magic lp in let _startpos = _startpos_lp_ in let _endpos = _endpos_e_ in let _v : 'tv_cast_expr_eexpr_dot_expressions_ = -# 1269 "parser_cocci_menhir.mly" +# 1291 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t, P.clt2mcode ")" rp, e)) ) # 4681 "parser_cocci_menhir.ml" @@ -4699,7 +4699,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cast_expr_eexpr_invalid_ = -# 1267 "parser_cocci_menhir.mly" +# 1289 "parser_cocci_menhir.mly" ( _1 ) # 4705 "parser_cocci_menhir.ml" in @@ -4736,20 +4736,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let e : 'tv_cast_expr_eexpr_invalid_ = Obj.magic e in let rp : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 4742 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 4748 "parser_cocci_menhir.ml" ) = Obj.magic lp in let _startpos = _startpos_lp_ in let _endpos = _endpos_e_ in let _v : 'tv_cast_expr_eexpr_invalid_ = -# 1269 "parser_cocci_menhir.mly" +# 1291 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t, P.clt2mcode ")" rp, e)) ) # 4756 "parser_cocci_menhir.ml" @@ -4774,7 +4774,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cast_expr_eexpr_nest_expressions_ = -# 1267 "parser_cocci_menhir.mly" +# 1289 "parser_cocci_menhir.mly" ( _1 ) # 4780 "parser_cocci_menhir.ml" in @@ -4811,20 +4811,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let e : 'tv_cast_expr_eexpr_nest_expressions_ = Obj.magic e in let rp : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 4817 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 4823 "parser_cocci_menhir.ml" ) = Obj.magic lp in let _startpos = _startpos_lp_ in let _endpos = _endpos_e_ in let _v : 'tv_cast_expr_eexpr_nest_expressions_ = -# 1269 "parser_cocci_menhir.mly" +# 1291 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t, P.clt2mcode ")" rp, e)) ) # 4831 "parser_cocci_menhir.ml" @@ -4849,7 +4849,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cast_expr_expr_invalid_ = -# 1267 "parser_cocci_menhir.mly" +# 1289 "parser_cocci_menhir.mly" ( _1 ) # 4855 "parser_cocci_menhir.ml" in @@ -4886,20 +4886,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let e : 'tv_cast_expr_expr_invalid_ = Obj.magic e in let rp : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 4892 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 4898 "parser_cocci_menhir.ml" ) = Obj.magic lp in let _startpos = _startpos_lp_ in let _endpos = _endpos_e_ in let _v : 'tv_cast_expr_expr_invalid_ = -# 1269 "parser_cocci_menhir.mly" +# 1291 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t, P.clt2mcode ")" rp, e)) ) # 4906 "parser_cocci_menhir.ml" @@ -4928,7 +4928,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_choose_iso = -# 215 "parser_cocci_menhir.mly" +# 237 "parser_cocci_menhir.mly" ( List.map P.id2name _2 ) # 4934 "parser_cocci_menhir.ml" in @@ -4954,19 +4954,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 4960 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 4965 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_comma_decls_TEllipsis_decl_ = -# 1618 "parser_cocci_menhir.mly" +# 1640 "parser_cocci_menhir.mly" ( function dot_builder -> [Ast0.wrap(Ast0.PComma(P.clt2mcode "," _1)); dot_builder _2] ) @@ -4995,14 +4995,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_one_dec_decl_ = Obj.magic _2 in let _1 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 5001 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_comma_decls_TEllipsis_decl_ = -# 1622 "parser_cocci_menhir.mly" +# 1644 "parser_cocci_menhir.mly" ( function dot_builder -> [Ast0.wrap(Ast0.PComma(P.clt2mcode "," _1)); _2] ) # 5009 "parser_cocci_menhir.ml" @@ -5029,19 +5029,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 5035 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 5040 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_comma_decls_TEllipsis_name_opt_decl_ = -# 1618 "parser_cocci_menhir.mly" +# 1640 "parser_cocci_menhir.mly" ( function dot_builder -> [Ast0.wrap(Ast0.PComma(P.clt2mcode "," _1)); dot_builder _2] ) @@ -5070,14 +5070,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_one_dec_name_opt_decl_ = Obj.magic _2 in let _1 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 5076 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_comma_decls_TEllipsis_name_opt_decl_ = -# 1622 "parser_cocci_menhir.mly" +# 1644 "parser_cocci_menhir.mly" ( function dot_builder -> [Ast0.wrap(Ast0.PComma(P.clt2mcode "," _1)); _2] ) # 5084 "parser_cocci_menhir.ml" @@ -5095,7 +5095,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = -# 1098 "parser_cocci_menhir.mly" +# 1120 "parser_cocci_menhir.mly" ( [] ) # 5101 "parser_cocci_menhir.ml" in @@ -5125,7 +5125,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_d_ in let _endpos = _endpos_r_ in let _v : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = -# 1100 "parser_cocci_menhir.mly" +# 1122 "parser_cocci_menhir.mly" ( (function dot_builder -> [dot_builder d])::r ) # 5131 "parser_cocci_menhir.ml" in @@ -5157,7 +5157,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = Obj.magic r in let c : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 5163 "parser_cocci_menhir.ml" ) = Obj.magic c in @@ -5165,7 +5165,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_i_ in let _endpos = _endpos_r_ in let _v : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = -# 1102 "parser_cocci_menhir.mly" +# 1124 "parser_cocci_menhir.mly" ( (function dot_builder -> [i; Ast0.wrap(Ast0.IComma(P.clt2mcode "," c))]):: r ) # 5172 "parser_cocci_menhir.ml" @@ -5183,7 +5183,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_comma_initializers2_edots_when_TEllipsis_initialize__ = -# 1106 "parser_cocci_menhir.mly" +# 1128 "parser_cocci_menhir.mly" ( [] ) # 5189 "parser_cocci_menhir.ml" in @@ -5215,7 +5215,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = Obj.magic r in let c : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 5221 "parser_cocci_menhir.ml" ) = Obj.magic c in @@ -5223,7 +5223,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_i_ in let _endpos = _endpos_r_ in let _v : 'tv_comma_initializers2_edots_when_TEllipsis_initialize__ = -# 1108 "parser_cocci_menhir.mly" +# 1130 "parser_cocci_menhir.mly" ( (function dot_builder -> [i; Ast0.wrap(Ast0.IComma(P.clt2mcode "," c))]):: r ) # 5230 "parser_cocci_menhir.ml" @@ -5248,7 +5248,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_any_strict_ = -# 1855 "parser_cocci_menhir.mly" +# 1877 "parser_cocci_menhir.mly" ( _1 ) # 5254 "parser_cocci_menhir.ml" in @@ -5272,7 +5272,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_ctype_ = -# 1855 "parser_cocci_menhir.mly" +# 1877 "parser_cocci_menhir.mly" ( _1 ) # 5278 "parser_cocci_menhir.ml" in @@ -5296,7 +5296,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_d_ident_ = -# 1855 "parser_cocci_menhir.mly" +# 1877 "parser_cocci_menhir.mly" ( _1 ) # 5302 "parser_cocci_menhir.ml" in @@ -5320,7 +5320,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_ident_or_const_ = -# 1855 "parser_cocci_menhir.mly" +# 1877 "parser_cocci_menhir.mly" ( _1 ) # 5326 "parser_cocci_menhir.ml" in @@ -5344,7 +5344,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_meta_ident_ = -# 1855 "parser_cocci_menhir.mly" +# 1877 "parser_cocci_menhir.mly" ( _1 ) # 5350 "parser_cocci_menhir.ml" in @@ -5368,7 +5368,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_pure_ident_ = -# 1855 "parser_cocci_menhir.mly" +# 1877 "parser_cocci_menhir.mly" ( _1 ) # 5374 "parser_cocci_menhir.ml" in @@ -5392,7 +5392,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_pure_ident_or_meta_ident_ = -# 1855 "parser_cocci_menhir.mly" +# 1877 "parser_cocci_menhir.mly" ( _1 ) # 5398 "parser_cocci_menhir.ml" in @@ -5416,7 +5416,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe__ = -# 1855 "parser_cocci_menhir.mly" +# 1877 "parser_cocci_menhir.mly" ( _1 ) # 5422 "parser_cocci_menhir.ml" in @@ -5440,7 +5440,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = -# 1855 "parser_cocci_menhir.mly" +# 1877 "parser_cocci_menhir.mly" ( _1 ) # 5446 "parser_cocci_menhir.ml" in @@ -5464,7 +5464,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_seed_ = -# 1855 "parser_cocci_menhir.mly" +# 1877 "parser_cocci_menhir.mly" ( _1 ) # 5470 "parser_cocci_menhir.ml" in @@ -5488,7 +5488,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_x_eq_not_ceq__ = -# 1855 "parser_cocci_menhir.mly" +# 1877 "parser_cocci_menhir.mly" ( _1 ) # 5494 "parser_cocci_menhir.ml" in @@ -5512,7 +5512,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_x_eq_not_pos__ = -# 1855 "parser_cocci_menhir.mly" +# 1877 "parser_cocci_menhir.mly" ( _1 ) # 5518 "parser_cocci_menhir.ml" in @@ -5536,7 +5536,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_typedef_ident_ = -# 1855 "parser_cocci_menhir.mly" +# 1877 "parser_cocci_menhir.mly" ( _1 ) # 5542 "parser_cocci_menhir.ml" in @@ -5560,7 +5560,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cond_expr_eexpr_dot_expressions_ = -# 1232 "parser_cocci_menhir.mly" +# 1254 "parser_cocci_menhir.mly" ( _1 ) # 5566 "parser_cocci_menhir.ml" in @@ -5602,13 +5602,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_cond_expr_eexpr_dot_expressions_ = Obj.magic r in let dd : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 5608 "parser_cocci_menhir.ml" ) = Obj.magic dd in let t : 'tv_option_eexpr_ = Obj.magic t in let w : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 5614 "parser_cocci_menhir.ml" ) = Obj.magic w in @@ -5616,7 +5616,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_l_ in let _endpos = _endpos_r_ in let _v : 'tv_cond_expr_eexpr_dot_expressions_ = -# 1234 "parser_cocci_menhir.mly" +# 1256 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t, P.clt2mcode ":" dd, r)) ) # 5623 "parser_cocci_menhir.ml" @@ -5641,7 +5641,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cond_expr_eexpr_nest_expressions_ = -# 1232 "parser_cocci_menhir.mly" +# 1254 "parser_cocci_menhir.mly" ( _1 ) # 5647 "parser_cocci_menhir.ml" in @@ -5683,13 +5683,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_cond_expr_eexpr_nest_expressions_ = Obj.magic r in let dd : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 5689 "parser_cocci_menhir.ml" ) = Obj.magic dd in let t : 'tv_option_eexpr_ = Obj.magic t in let w : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 5695 "parser_cocci_menhir.ml" ) = Obj.magic w in @@ -5697,7 +5697,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_l_ in let _endpos = _endpos_r_ in let _v : 'tv_cond_expr_eexpr_nest_expressions_ = -# 1234 "parser_cocci_menhir.mly" +# 1256 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t, P.clt2mcode ":" dd, r)) ) # 5704 "parser_cocci_menhir.ml" @@ -5722,7 +5722,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cond_expr_expr_invalid_ = -# 1232 "parser_cocci_menhir.mly" +# 1254 "parser_cocci_menhir.mly" ( _1 ) # 5728 "parser_cocci_menhir.ml" in @@ -5764,13 +5764,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_cond_expr_expr_invalid_ = Obj.magic r in let dd : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 5770 "parser_cocci_menhir.ml" ) = Obj.magic dd in let t : 'tv_option_eexpr_ = Obj.magic t in let w : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 5776 "parser_cocci_menhir.ml" ) = Obj.magic w in @@ -5778,7 +5778,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_l_ in let _endpos = _endpos_r_ in let _v : 'tv_cond_expr_expr_invalid_ = -# 1234 "parser_cocci_menhir.mly" +# 1256 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t, P.clt2mcode ":" dd, r)) ) # 5785 "parser_cocci_menhir.ml" @@ -5800,14 +5800,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 32 "parser_cocci_menhir.mly" +# 54 "parser_cocci_menhir.mly" (Data.clt) # 5806 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_const_vol = -# 818 "parser_cocci_menhir.mly" +# 840 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Const _1 ) # 5813 "parser_cocci_menhir.ml" in @@ -5828,14 +5828,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 32 "parser_cocci_menhir.mly" +# 54 "parser_cocci_menhir.mly" (Data.clt) # 5834 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_const_vol = -# 819 "parser_cocci_menhir.mly" +# 841 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Volatile _1 ) # 5841 "parser_cocci_menhir.ml" in @@ -5852,7 +5852,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_continue_struct_decl_list = -# 570 "parser_cocci_menhir.mly" +# 592 "parser_cocci_menhir.mly" ( [] ) # 5858 "parser_cocci_menhir.ml" in @@ -5882,7 +5882,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_continue_struct_decl_list = -# 571 "parser_cocci_menhir.mly" +# 593 "parser_cocci_menhir.mly" ( _1@_2 ) # 5888 "parser_cocci_menhir.ml" in @@ -5906,7 +5906,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_continue_struct_decl_list = -# 572 "parser_cocci_menhir.mly" +# 594 "parser_cocci_menhir.mly" ( _1 ) # 5912 "parser_cocci_menhir.ml" in @@ -5938,12 +5938,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 5944 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 5949 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -5955,13 +5955,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 456 "parser_cocci_menhir.mly" +# 478 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) # 5961 "parser_cocci_menhir.ml" in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 5967 "parser_cocci_menhir.ml" @@ -5974,7 +5974,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 5980 "parser_cocci_menhir.ml" in @@ -6006,12 +6006,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 6012 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 6017 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -6023,13 +6023,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 458 "parser_cocci_menhir.mly" +# 480 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) # 6029 "parser_cocci_menhir.ml" in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 6035 "parser_cocci_menhir.ml" @@ -6042,7 +6042,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 6048 "parser_cocci_menhir.ml" in @@ -6074,12 +6074,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 6080 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 6085 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -6091,13 +6091,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 460 "parser_cocci_menhir.mly" +# 482 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) # 6097 "parser_cocci_menhir.ml" in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 6103 "parser_cocci_menhir.ml" @@ -6110,7 +6110,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 6116 "parser_cocci_menhir.ml" in @@ -6142,12 +6142,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 6148 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 6153 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -6159,14 +6159,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 462 "parser_cocci_menhir.mly" +# 484 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) # 6166 "parser_cocci_menhir.ml" in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 6172 "parser_cocci_menhir.ml" @@ -6179,7 +6179,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 6185 "parser_cocci_menhir.ml" in @@ -6220,17 +6220,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 6226 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 25 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (string) # 6231 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 6236 "parser_cocci_menhir.ml" ) = Obj.magic r1 in @@ -6244,7 +6244,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 465 "parser_cocci_menhir.mly" +# 487 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) @@ -6255,7 +6255,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 6261 "parser_cocci_menhir.ml" @@ -6268,7 +6268,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 6274 "parser_cocci_menhir.ml" in @@ -6300,12 +6300,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 6306 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 6311 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -6317,13 +6317,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 472 "parser_cocci_menhir.mly" +# 494 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) # 6323 "parser_cocci_menhir.ml" in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 6329 "parser_cocci_menhir.ml" @@ -6336,7 +6336,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 6342 "parser_cocci_menhir.ml" in @@ -6373,17 +6373,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 6379 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 6384 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 6389 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -6397,7 +6397,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 474 "parser_cocci_menhir.mly" +# 496 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, @@ -6406,7 +6406,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 6412 "parser_cocci_menhir.ml" @@ -6419,7 +6419,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 6425 "parser_cocci_menhir.ml" in @@ -6451,12 +6451,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 6457 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 6462 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -6468,13 +6468,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 456 "parser_cocci_menhir.mly" +# 478 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) # 6474 "parser_cocci_menhir.ml" in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 6480 "parser_cocci_menhir.ml" @@ -6487,7 +6487,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 6493 "parser_cocci_menhir.ml" in @@ -6519,12 +6519,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 6525 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 6530 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -6536,13 +6536,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 458 "parser_cocci_menhir.mly" +# 480 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) # 6542 "parser_cocci_menhir.ml" in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 6548 "parser_cocci_menhir.ml" @@ -6555,7 +6555,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 6561 "parser_cocci_menhir.ml" in @@ -6587,12 +6587,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 6593 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 6598 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -6604,13 +6604,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 460 "parser_cocci_menhir.mly" +# 482 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) # 6610 "parser_cocci_menhir.ml" in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 6616 "parser_cocci_menhir.ml" @@ -6623,7 +6623,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 6629 "parser_cocci_menhir.ml" in @@ -6655,12 +6655,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 6661 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 6666 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -6672,14 +6672,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 462 "parser_cocci_menhir.mly" +# 484 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) # 6679 "parser_cocci_menhir.ml" in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 6685 "parser_cocci_menhir.ml" @@ -6692,7 +6692,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 6698 "parser_cocci_menhir.ml" in @@ -6733,17 +6733,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 6739 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 25 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (string) # 6744 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 6749 "parser_cocci_menhir.ml" ) = Obj.magic r1 in @@ -6757,7 +6757,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 465 "parser_cocci_menhir.mly" +# 487 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) @@ -6768,7 +6768,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 6774 "parser_cocci_menhir.ml" @@ -6781,7 +6781,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 6787 "parser_cocci_menhir.ml" in @@ -6813,12 +6813,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 6819 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 6824 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -6830,13 +6830,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 472 "parser_cocci_menhir.mly" +# 494 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) # 6836 "parser_cocci_menhir.ml" in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 6842 "parser_cocci_menhir.ml" @@ -6849,7 +6849,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 6855 "parser_cocci_menhir.ml" in @@ -6886,17 +6886,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 6892 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 6897 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 6902 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -6910,7 +6910,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 474 "parser_cocci_menhir.mly" +# 496 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, @@ -6919,7 +6919,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 6925 "parser_cocci_menhir.ml" @@ -6932,7 +6932,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 6938 "parser_cocci_menhir.ml" in @@ -6959,7 +6959,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 6965 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -6970,13 +6970,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 456 "parser_cocci_menhir.mly" +# 478 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) # 6976 "parser_cocci_menhir.ml" in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 6982 "parser_cocci_menhir.ml" @@ -6989,7 +6989,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 6995 "parser_cocci_menhir.ml" in @@ -7016,7 +7016,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 7022 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -7027,13 +7027,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 458 "parser_cocci_menhir.mly" +# 480 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) # 7033 "parser_cocci_menhir.ml" in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 7039 "parser_cocci_menhir.ml" @@ -7046,7 +7046,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 7052 "parser_cocci_menhir.ml" in @@ -7073,7 +7073,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 7079 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -7084,13 +7084,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 460 "parser_cocci_menhir.mly" +# 482 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) # 7090 "parser_cocci_menhir.ml" in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 7096 "parser_cocci_menhir.ml" @@ -7103,7 +7103,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 7109 "parser_cocci_menhir.ml" in @@ -7130,7 +7130,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 7136 "parser_cocci_menhir.ml" ) = Obj.magic p00 in @@ -7141,14 +7141,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 462 "parser_cocci_menhir.mly" +# 484 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) # 7148 "parser_cocci_menhir.ml" in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 7154 "parser_cocci_menhir.ml" @@ -7161,7 +7161,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 7167 "parser_cocci_menhir.ml" in @@ -7197,12 +7197,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 7203 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 25 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (string) # 7208 "parser_cocci_menhir.ml" ) = Obj.magic r00 in @@ -7215,7 +7215,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 465 "parser_cocci_menhir.mly" +# 487 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) @@ -7226,7 +7226,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 7232 "parser_cocci_menhir.ml" @@ -7239,7 +7239,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 7245 "parser_cocci_menhir.ml" in @@ -7266,7 +7266,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 7272 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -7277,13 +7277,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 472 "parser_cocci_menhir.mly" +# 494 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) # 7283 "parser_cocci_menhir.ml" in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 7289 "parser_cocci_menhir.ml" @@ -7296,7 +7296,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 7302 "parser_cocci_menhir.ml" in @@ -7328,12 +7328,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 7334 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 7339 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in @@ -7346,7 +7346,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 474 "parser_cocci_menhir.mly" +# 496 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, @@ -7355,7 +7355,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 7361 "parser_cocci_menhir.ml" @@ -7368,7 +7368,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 7374 "parser_cocci_menhir.ml" in @@ -7395,7 +7395,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 28 "parser_cocci_menhir.mly" +# 50 "parser_cocci_menhir.mly" (Data.clt) # 7401 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -7406,13 +7406,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 482 "parser_cocci_menhir.mly" +# 504 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) ) # 7412 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 7418 "parser_cocci_menhir.ml" @@ -7425,7 +7425,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 7431 "parser_cocci_menhir.ml" in @@ -7452,7 +7452,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 7458 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -7463,13 +7463,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 484 "parser_cocci_menhir.mly" +# 506 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) ) # 7469 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 7475 "parser_cocci_menhir.ml" @@ -7482,7 +7482,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 7488 "parser_cocci_menhir.ml" in @@ -7509,7 +7509,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 7515 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -7520,13 +7520,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 486 "parser_cocci_menhir.mly" +# 508 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) ) # 7526 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 7532 "parser_cocci_menhir.ml" @@ -7539,7 +7539,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 7545 "parser_cocci_menhir.ml" in @@ -7572,7 +7572,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let m : 'tv_list_TMul_ = Obj.magic m in let i00 : 'tv_ident = Obj.magic i00 in let s00 : ( -# 28 "parser_cocci_menhir.mly" +# 50 "parser_cocci_menhir.mly" (Data.clt) # 7578 "parser_cocci_menhir.ml" ) = Obj.magic s00 in @@ -7585,13 +7585,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 488 "parser_cocci_menhir.mly" +# 510 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)) ) # 7591 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 7597 "parser_cocci_menhir.ml" @@ -7604,7 +7604,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 7610 "parser_cocci_menhir.ml" in @@ -7646,13 +7646,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 490 "parser_cocci_menhir.mly" +# 512 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) ) # 7652 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 7658 "parser_cocci_menhir.ml" @@ -7665,7 +7665,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 7671 "parser_cocci_menhir.ml" in @@ -7707,13 +7707,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 7713 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 7719 "parser_cocci_menhir.ml" ) = Obj.magic l00 in @@ -7738,7 +7738,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 493 "parser_cocci_menhir.mly" +# 515 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "structures must be named in the iso file"); Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), @@ -7748,7 +7748,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 7754 "parser_cocci_menhir.ml" @@ -7761,7 +7761,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 7767 "parser_cocci_menhir.ml" in @@ -7808,13 +7808,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 7814 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 7820 "parser_cocci_menhir.ml" ) = Obj.magic l00 in @@ -7843,7 +7843,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 493 "parser_cocci_menhir.mly" +# 515 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "structures must be named in the iso file"); Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), @@ -7853,7 +7853,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 7859 "parser_cocci_menhir.ml" @@ -7866,7 +7866,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 7872 "parser_cocci_menhir.ml" in @@ -7908,18 +7908,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 7914 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 7920 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 7925 "parser_cocci_menhir.ml" ) = Obj.magic s00 in @@ -7936,7 +7936,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let l = l0 in let s = s0 in -# 499 "parser_cocci_menhir.mly" +# 521 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = s in let ty = Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in Ast0.wrap(Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) ) @@ -7944,7 +7944,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 7950 "parser_cocci_menhir.ml" @@ -7957,7 +7957,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 7963 "parser_cocci_menhir.ml" in @@ -7984,7 +7984,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 7990 "parser_cocci_menhir.ml" ) = Obj.magic p00 in @@ -7995,13 +7995,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 503 "parser_cocci_menhir.mly" +# 525 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) ) # 8001 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 8007 "parser_cocci_menhir.ml" @@ -8014,7 +8014,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 8020 "parser_cocci_menhir.ml" in @@ -8051,12 +8051,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 8057 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 8062 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -8069,13 +8069,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 456 "parser_cocci_menhir.mly" +# 478 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) # 8075 "parser_cocci_menhir.ml" in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 8081 "parser_cocci_menhir.ml" @@ -8089,7 +8089,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 8095 "parser_cocci_menhir.ml" in @@ -8126,12 +8126,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 8132 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 8137 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -8144,13 +8144,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 458 "parser_cocci_menhir.mly" +# 480 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) # 8150 "parser_cocci_menhir.ml" in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 8156 "parser_cocci_menhir.ml" @@ -8164,7 +8164,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 8170 "parser_cocci_menhir.ml" in @@ -8201,12 +8201,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 8207 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 8212 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -8219,13 +8219,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 460 "parser_cocci_menhir.mly" +# 482 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) # 8225 "parser_cocci_menhir.ml" in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 8231 "parser_cocci_menhir.ml" @@ -8239,7 +8239,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 8245 "parser_cocci_menhir.ml" in @@ -8276,12 +8276,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 8282 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 8287 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -8294,14 +8294,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 462 "parser_cocci_menhir.mly" +# 484 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) # 8301 "parser_cocci_menhir.ml" in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 8307 "parser_cocci_menhir.ml" @@ -8315,7 +8315,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 8321 "parser_cocci_menhir.ml" in @@ -8361,17 +8361,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 8367 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 25 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (string) # 8372 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 8377 "parser_cocci_menhir.ml" ) = Obj.magic r1 in @@ -8386,7 +8386,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 465 "parser_cocci_menhir.mly" +# 487 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) @@ -8397,7 +8397,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 8403 "parser_cocci_menhir.ml" @@ -8411,7 +8411,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 8417 "parser_cocci_menhir.ml" in @@ -8448,12 +8448,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 8454 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 8459 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -8466,13 +8466,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 472 "parser_cocci_menhir.mly" +# 494 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) # 8472 "parser_cocci_menhir.ml" in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 8478 "parser_cocci_menhir.ml" @@ -8486,7 +8486,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 8492 "parser_cocci_menhir.ml" in @@ -8528,17 +8528,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 8534 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 8539 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 8544 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -8553,7 +8553,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 474 "parser_cocci_menhir.mly" +# 496 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, @@ -8562,7 +8562,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 8568 "parser_cocci_menhir.ml" @@ -8576,7 +8576,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 8582 "parser_cocci_menhir.ml" in @@ -8613,12 +8613,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 8619 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 8624 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -8631,13 +8631,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 456 "parser_cocci_menhir.mly" +# 478 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) # 8637 "parser_cocci_menhir.ml" in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 8643 "parser_cocci_menhir.ml" @@ -8651,7 +8651,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 8657 "parser_cocci_menhir.ml" in @@ -8688,12 +8688,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 8694 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 8699 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -8706,13 +8706,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 458 "parser_cocci_menhir.mly" +# 480 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) # 8712 "parser_cocci_menhir.ml" in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 8718 "parser_cocci_menhir.ml" @@ -8726,7 +8726,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 8732 "parser_cocci_menhir.ml" in @@ -8763,12 +8763,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 8769 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 8774 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -8781,13 +8781,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 460 "parser_cocci_menhir.mly" +# 482 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) # 8787 "parser_cocci_menhir.ml" in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 8793 "parser_cocci_menhir.ml" @@ -8801,7 +8801,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 8807 "parser_cocci_menhir.ml" in @@ -8838,12 +8838,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 8844 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 8849 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -8856,14 +8856,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 462 "parser_cocci_menhir.mly" +# 484 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) # 8863 "parser_cocci_menhir.ml" in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 8869 "parser_cocci_menhir.ml" @@ -8877,7 +8877,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 8883 "parser_cocci_menhir.ml" in @@ -8923,17 +8923,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 8929 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 25 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (string) # 8934 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 8939 "parser_cocci_menhir.ml" ) = Obj.magic r1 in @@ -8948,7 +8948,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 465 "parser_cocci_menhir.mly" +# 487 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) @@ -8959,7 +8959,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 8965 "parser_cocci_menhir.ml" @@ -8973,7 +8973,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 8979 "parser_cocci_menhir.ml" in @@ -9010,12 +9010,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 9016 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 9021 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -9028,13 +9028,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 472 "parser_cocci_menhir.mly" +# 494 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) # 9034 "parser_cocci_menhir.ml" in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 9040 "parser_cocci_menhir.ml" @@ -9048,7 +9048,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 9054 "parser_cocci_menhir.ml" in @@ -9090,17 +9090,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 9096 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 9101 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 9106 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -9115,7 +9115,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 474 "parser_cocci_menhir.mly" +# 496 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, @@ -9124,7 +9124,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 9130 "parser_cocci_menhir.ml" @@ -9138,7 +9138,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 9144 "parser_cocci_menhir.ml" in @@ -9170,7 +9170,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 9176 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -9182,13 +9182,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 456 "parser_cocci_menhir.mly" +# 478 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) # 9188 "parser_cocci_menhir.ml" in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 9194 "parser_cocci_menhir.ml" @@ -9202,7 +9202,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 9208 "parser_cocci_menhir.ml" in @@ -9234,7 +9234,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 9240 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -9246,13 +9246,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 458 "parser_cocci_menhir.mly" +# 480 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) # 9252 "parser_cocci_menhir.ml" in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 9258 "parser_cocci_menhir.ml" @@ -9266,7 +9266,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 9272 "parser_cocci_menhir.ml" in @@ -9298,7 +9298,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 9304 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -9310,13 +9310,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 460 "parser_cocci_menhir.mly" +# 482 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) # 9316 "parser_cocci_menhir.ml" in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 9322 "parser_cocci_menhir.ml" @@ -9330,7 +9330,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 9336 "parser_cocci_menhir.ml" in @@ -9362,7 +9362,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 9368 "parser_cocci_menhir.ml" ) = Obj.magic p00 in @@ -9374,14 +9374,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 462 "parser_cocci_menhir.mly" +# 484 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) # 9381 "parser_cocci_menhir.ml" in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 9387 "parser_cocci_menhir.ml" @@ -9395,7 +9395,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 9401 "parser_cocci_menhir.ml" in @@ -9436,12 +9436,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 9442 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 25 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (string) # 9447 "parser_cocci_menhir.ml" ) = Obj.magic r00 in @@ -9455,7 +9455,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 465 "parser_cocci_menhir.mly" +# 487 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) @@ -9466,7 +9466,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 9472 "parser_cocci_menhir.ml" @@ -9480,7 +9480,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 9486 "parser_cocci_menhir.ml" in @@ -9512,7 +9512,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 9518 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -9524,13 +9524,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 472 "parser_cocci_menhir.mly" +# 494 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) # 9530 "parser_cocci_menhir.ml" in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 9536 "parser_cocci_menhir.ml" @@ -9544,7 +9544,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 9550 "parser_cocci_menhir.ml" in @@ -9581,12 +9581,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 9587 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 9592 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in @@ -9600,7 +9600,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 474 "parser_cocci_menhir.mly" +# 496 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, @@ -9609,7 +9609,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 9615 "parser_cocci_menhir.ml" @@ -9623,7 +9623,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 9629 "parser_cocci_menhir.ml" in @@ -9655,7 +9655,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 28 "parser_cocci_menhir.mly" +# 50 "parser_cocci_menhir.mly" (Data.clt) # 9661 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -9667,13 +9667,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 482 "parser_cocci_menhir.mly" +# 504 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) ) # 9673 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 9679 "parser_cocci_menhir.ml" @@ -9687,7 +9687,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 9693 "parser_cocci_menhir.ml" in @@ -9719,7 +9719,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 9725 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -9731,13 +9731,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 484 "parser_cocci_menhir.mly" +# 506 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) ) # 9737 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 9743 "parser_cocci_menhir.ml" @@ -9751,7 +9751,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 9757 "parser_cocci_menhir.ml" in @@ -9783,7 +9783,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 9789 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -9795,13 +9795,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 486 "parser_cocci_menhir.mly" +# 508 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) ) # 9801 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 9807 "parser_cocci_menhir.ml" @@ -9815,7 +9815,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 9821 "parser_cocci_menhir.ml" in @@ -9853,7 +9853,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let m : 'tv_list_TMul_ = Obj.magic m in let i00 : 'tv_ident = Obj.magic i00 in let s00 : ( -# 28 "parser_cocci_menhir.mly" +# 50 "parser_cocci_menhir.mly" (Data.clt) # 9859 "parser_cocci_menhir.ml" ) = Obj.magic s00 in @@ -9867,13 +9867,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 488 "parser_cocci_menhir.mly" +# 510 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)) ) # 9873 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 9879 "parser_cocci_menhir.ml" @@ -9887,7 +9887,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 9893 "parser_cocci_menhir.ml" in @@ -9935,13 +9935,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 490 "parser_cocci_menhir.mly" +# 512 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) ) # 9941 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 9947 "parser_cocci_menhir.ml" @@ -9955,7 +9955,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 9961 "parser_cocci_menhir.ml" in @@ -10002,13 +10002,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 10008 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 10014 "parser_cocci_menhir.ml" ) = Obj.magic l00 in @@ -10034,7 +10034,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 493 "parser_cocci_menhir.mly" +# 515 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "structures must be named in the iso file"); Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), @@ -10044,7 +10044,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 10050 "parser_cocci_menhir.ml" @@ -10058,7 +10058,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 10064 "parser_cocci_menhir.ml" in @@ -10110,13 +10110,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 10116 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 10122 "parser_cocci_menhir.ml" ) = Obj.magic l00 in @@ -10146,7 +10146,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 493 "parser_cocci_menhir.mly" +# 515 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "structures must be named in the iso file"); Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), @@ -10156,7 +10156,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 10162 "parser_cocci_menhir.ml" @@ -10170,7 +10170,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 10176 "parser_cocci_menhir.ml" in @@ -10217,18 +10217,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 10223 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 10229 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 10234 "parser_cocci_menhir.ml" ) = Obj.magic s00 in @@ -10246,7 +10246,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let l = l0 in let s = s0 in -# 499 "parser_cocci_menhir.mly" +# 521 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = s in let ty = Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in Ast0.wrap(Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) ) @@ -10254,7 +10254,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 10260 "parser_cocci_menhir.ml" @@ -10268,7 +10268,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 10274 "parser_cocci_menhir.ml" in @@ -10300,7 +10300,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 10306 "parser_cocci_menhir.ml" ) = Obj.magic p00 in @@ -10312,13 +10312,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 503 "parser_cocci_menhir.mly" +# 525 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) ) # 10318 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 10324 "parser_cocci_menhir.ml" @@ -10332,7 +10332,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 516 "parser_cocci_menhir.mly" +# 538 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 10338 "parser_cocci_menhir.ml" in @@ -10353,14 +10353,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let r : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 10359 "parser_cocci_menhir.ml" ) = Obj.magic r in let _startpos = _startpos_r_ in let _endpos = _endpos_r_ in let _v : 'tv_ctype = -# 518 "parser_cocci_menhir.mly" +# 540 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,None)) ) # 10366 "parser_cocci_menhir.ml" in @@ -10381,14 +10381,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let r : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 10387 "parser_cocci_menhir.ml" ) = Obj.magic r in let _startpos = _startpos_r_ in let _endpos = _endpos_r_ in let _v : 'tv_ctype = -# 520 "parser_cocci_menhir.mly" +# 542 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,None)) ) # 10394 "parser_cocci_menhir.ml" in @@ -10419,20 +10419,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 10425 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_midzero_list_ctype_ctype_ = Obj.magic t in let lp : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 10431 "parser_cocci_menhir.ml" ) = Obj.magic lp in let _startpos = _startpos_lp_ in let _endpos = _endpos_rp_ in let _v : 'tv_ctype = -# 522 "parser_cocci_menhir.mly" +# 544 "parser_cocci_menhir.mly" ( let (mids,code) = t in Ast0.wrap (Ast0.DisjType(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) ) @@ -10464,7 +10464,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_d_ident = -# 1036 "parser_cocci_menhir.mly" +# 1058 "parser_cocci_menhir.mly" ( (_1, function t -> List.fold_right @@ -10501,7 +10501,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_t_ in let _endpos = _endpos_i_ in let _v : 'tv_decl = -# 792 "parser_cocci_menhir.mly" +# 814 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Param(t, Some i)) ) # 10507 "parser_cocci_menhir.ml" in @@ -10525,7 +10525,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_t_ in let _endpos = _endpos_t_ in let _v : 'tv_decl = -# 793 "parser_cocci_menhir.mly" +# 815 "parser_cocci_menhir.mly" ( (*verify in FunDecl*) Ast0.wrap(Ast0.Param(t, None)) ) # 10531 "parser_cocci_menhir.ml" in @@ -10581,29 +10581,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp1 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 10587 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in let lp1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 10593 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let rp : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 10598 "parser_cocci_menhir.ml" ) = Obj.magic rp in let i : 'tv_ident = Obj.magic i in let s : ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 10604 "parser_cocci_menhir.ml" ) = Obj.magic s in let lp : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 10609 "parser_cocci_menhir.ml" ) = Obj.magic lp in @@ -10611,7 +10611,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_t_ in let _endpos = _endpos_rp1_ in let _v : 'tv_decl = -# 796 "parser_cocci_menhir.mly" +# 818 "parser_cocci_menhir.mly" ( let fnptr = Ast0.wrap (Ast0.FunctionPointer @@ -10637,14 +10637,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 10643 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl = -# 803 "parser_cocci_menhir.mly" +# 825 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = _1 in Ast0.wrap(Ast0.MetaParam(P.clt2mcode nm clt,pure)) ) # 10651 "parser_cocci_menhir.ml" @@ -10666,14 +10666,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 10672 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_ident = -# 1567 "parser_cocci_menhir.mly" +# 1589 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) ) # 10679 "parser_cocci_menhir.ml" in @@ -10694,14 +10694,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 40 "parser_cocci_menhir.mly" +# 62 "parser_cocci_menhir.mly" (Parse_aux.idinfo) # 10700 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_ident = -# 1569 "parser_cocci_menhir.mly" +# 1591 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) ) # 10708 "parser_cocci_menhir.ml" @@ -10719,7 +10719,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_decl_list_decl_ = -# 1589 "parser_cocci_menhir.mly" +# 1611 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS([])) ) # 10725 "parser_cocci_menhir.ml" in @@ -10743,7 +10743,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_list_decl_ = -# 1591 "parser_cocci_menhir.mly" +# 1613 "parser_cocci_menhir.mly" (let circle x = match Ast0.unwrap x with Ast0.Pcircles(_) -> true | _ -> false in if List.exists circle _1 @@ -10764,7 +10764,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_decl_list_name_opt_decl_ = -# 1589 "parser_cocci_menhir.mly" +# 1611 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS([])) ) # 10770 "parser_cocci_menhir.ml" in @@ -10788,7 +10788,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_list_name_opt_decl_ = -# 1591 "parser_cocci_menhir.mly" +# 1613 "parser_cocci_menhir.mly" (let circle x = match Ast0.unwrap x with Ast0.Pcircles(_) -> true | _ -> false in if List.exists circle _1 @@ -10816,7 +10816,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_list_start_decl_ = -# 1598 "parser_cocci_menhir.mly" +# 1620 "parser_cocci_menhir.mly" ( [_1] ) # 10822 "parser_cocci_menhir.ml" in @@ -10848,7 +10848,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_decl_list_start_decl_ = Obj.magic _3 in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 10854 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -10856,7 +10856,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_decl_list_start_decl_ = -# 1600 "parser_cocci_menhir.mly" +# 1622 "parser_cocci_menhir.mly" ( _1::Ast0.wrap(Ast0.PComma(P.clt2mcode "," _2))::_3 ) # 10862 "parser_cocci_menhir.ml" in @@ -10883,14 +10883,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_list_comma_decls_TEllipsis_decl__ = Obj.magic _2 in let _1 : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 10889 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_decl_list_start_decl_ = -# 1602 "parser_cocci_menhir.mly" +# 1624 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Pdots(P.clt2mcode "..." _1)):: (List.concat(List.map (function x -> x (P.mkpdots "...")) _2)) ) # 10897 "parser_cocci_menhir.ml" @@ -10915,7 +10915,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_list_start_name_opt_decl_ = -# 1598 "parser_cocci_menhir.mly" +# 1620 "parser_cocci_menhir.mly" ( [_1] ) # 10921 "parser_cocci_menhir.ml" in @@ -10947,7 +10947,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_decl_list_start_name_opt_decl_ = Obj.magic _3 in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 10953 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -10955,7 +10955,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_decl_list_start_name_opt_decl_ = -# 1600 "parser_cocci_menhir.mly" +# 1622 "parser_cocci_menhir.mly" ( _1::Ast0.wrap(Ast0.PComma(P.clt2mcode "," _2))::_3 ) # 10961 "parser_cocci_menhir.ml" in @@ -10982,14 +10982,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_list_comma_decls_TEllipsis_name_opt_decl__ = Obj.magic _2 in let _1 : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 10988 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_decl_list_start_name_opt_decl_ = -# 1602 "parser_cocci_menhir.mly" +# 1624 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Pdots(P.clt2mcode "..." _1)):: (List.concat(List.map (function x -> x (P.mkpdots "...")) _2)) ) # 10996 "parser_cocci_menhir.ml" @@ -11011,14 +11011,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 11017 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_statement = -# 1114 "parser_cocci_menhir.mly" +# 1136 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = _1 in [Ast0.wrap(Ast0.MetaStmt(P.clt2mcode nm clt,pure))] ) # 11025 "parser_cocci_menhir.ml" @@ -11043,7 +11043,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_statement = -# 1117 "parser_cocci_menhir.mly" +# 1139 "parser_cocci_menhir.mly" ( List.map (function x -> Ast0.wrap @@ -11071,7 +11071,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_statement = -# 1122 "parser_cocci_menhir.mly" +# 1144 "parser_cocci_menhir.mly" ( [_1] ) # 11077 "parser_cocci_menhir.ml" in @@ -11102,20 +11102,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 11108 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let t : 'tv_midzero_list_fun_start_fun_start_ = Obj.magic t in let _1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 11114 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_decl_statement = -# 1131 "parser_cocci_menhir.mly" +# 1153 "parser_cocci_menhir.mly" ( let (mids,code) = t in if List.for_all (function x -> @@ -11144,14 +11144,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 11150 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_statement_expr = -# 1144 "parser_cocci_menhir.mly" +# 1166 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = _1 in [Ast0.wrap(Ast0.MetaStmt(P.clt2mcode nm clt,pure))] ) # 11158 "parser_cocci_menhir.ml" @@ -11176,7 +11176,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_statement_expr = -# 1147 "parser_cocci_menhir.mly" +# 1169 "parser_cocci_menhir.mly" ( List.map (function x -> Ast0.wrap @@ -11204,7 +11204,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_statement_expr = -# 1152 "parser_cocci_menhir.mly" +# 1174 "parser_cocci_menhir.mly" ( [_1] ) # 11210 "parser_cocci_menhir.ml" in @@ -11235,20 +11235,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 11241 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let t : 'tv_midzero_list_fun_after_stm_fun_after_dots_or_ = Obj.magic t in let _1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 11247 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_decl_statement_expr = -# 1161 "parser_cocci_menhir.mly" +# 1183 "parser_cocci_menhir.mly" ( let (mids,code) = t in if List.for_all (function [] -> true | _ -> false) code then [] @@ -11281,7 +11281,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 11287 "parser_cocci_menhir.ml" ) = Obj.magic pv in @@ -11289,7 +11289,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_t_ in let _endpos = _endpos_pv_ in let _v : 'tv_decl_var = -# 924 "parser_cocci_menhir.mly" +# 946 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.TyDecl(t,P.clt2mcode ";" pv))] ) # 11295 "parser_cocci_menhir.ml" in @@ -11320,7 +11320,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 11326 "parser_cocci_menhir.ml" ) = Obj.magic pv in @@ -11336,7 +11336,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 926 "parser_cocci_menhir.mly" +# 948 "parser_cocci_menhir.mly" ( List.map (function (id,fn) -> Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))) @@ -11375,7 +11375,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 11381 "parser_cocci_menhir.ml" ) = Obj.magic pv in @@ -11393,7 +11393,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 926 "parser_cocci_menhir.mly" +# 948 "parser_cocci_menhir.mly" ( List.map (function (id,fn) -> Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))) @@ -11420,7 +11420,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_f_ in let _endpos = _endpos_f_ in let _v : 'tv_decl_var = -# 930 "parser_cocci_menhir.mly" +# 952 "parser_cocci_menhir.mly" ( [f] ) # 11426 "parser_cocci_menhir.ml" in @@ -11461,13 +11461,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 11467 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 11473 "parser_cocci_menhir.ml" ) = Obj.magic q in @@ -11483,7 +11483,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 932 "parser_cocci_menhir.mly" +# 954 "parser_cocci_menhir.mly" (let (id,fn) = d in [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))]) # 11490 "parser_cocci_menhir.ml" @@ -11530,13 +11530,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 11536 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 11542 "parser_cocci_menhir.ml" ) = Obj.magic q in @@ -11554,7 +11554,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 932 "parser_cocci_menhir.mly" +# 954 "parser_cocci_menhir.mly" (let (id,fn) = d in [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))]) # 11561 "parser_cocci_menhir.ml" @@ -11586,7 +11586,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 11592 "parser_cocci_menhir.ml" ) = Obj.magic pv in @@ -11609,7 +11609,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 937 "parser_cocci_menhir.mly" +# 959 "parser_cocci_menhir.mly" ( List.map (function (id,fn) -> let idtype = @@ -11650,7 +11650,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 11656 "parser_cocci_menhir.ml" ) = Obj.magic pv in @@ -11675,7 +11675,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 937 "parser_cocci_menhir.mly" +# 959 "parser_cocci_menhir.mly" ( List.map (function (id,fn) -> let idtype = @@ -11716,7 +11716,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 11722 "parser_cocci_menhir.ml" ) = Obj.magic pv in @@ -11741,7 +11741,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 937 "parser_cocci_menhir.mly" +# 959 "parser_cocci_menhir.mly" ( List.map (function (id,fn) -> let idtype = @@ -11787,7 +11787,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 11793 "parser_cocci_menhir.ml" ) = Obj.magic pv in @@ -11814,7 +11814,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 937 "parser_cocci_menhir.mly" +# 959 "parser_cocci_menhir.mly" ( List.map (function (id,fn) -> let idtype = @@ -11860,13 +11860,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 11866 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 11872 "parser_cocci_menhir.ml" ) = Obj.magic q in @@ -11889,7 +11889,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 945 "parser_cocci_menhir.mly" +# 967 "parser_cocci_menhir.mly" ( let (id,fn) = d in !Data.add_type_name (P.id2name i); let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in @@ -11939,13 +11939,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 11945 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 11951 "parser_cocci_menhir.ml" ) = Obj.magic q in @@ -11970,7 +11970,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 945 "parser_cocci_menhir.mly" +# 967 "parser_cocci_menhir.mly" ( let (id,fn) = d in !Data.add_type_name (P.id2name i); let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in @@ -12020,13 +12020,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 12026 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 12032 "parser_cocci_menhir.ml" ) = Obj.magic q in @@ -12051,7 +12051,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 945 "parser_cocci_menhir.mly" +# 967 "parser_cocci_menhir.mly" ( let (id,fn) = d in !Data.add_type_name (P.id2name i); let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in @@ -12106,13 +12106,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 12112 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 12118 "parser_cocci_menhir.ml" ) = Obj.magic q in @@ -12139,7 +12139,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 945 "parser_cocci_menhir.mly" +# 967 "parser_cocci_menhir.mly" ( let (id,fn) = d in !Data.add_type_name (P.id2name i); let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in @@ -12204,34 +12204,34 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 12210 "parser_cocci_menhir.ml" ) = Obj.magic pv in let rp2 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 12215 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 12221 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 12226 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 12232 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 12237 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in @@ -12246,7 +12246,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 955 "parser_cocci_menhir.mly" +# 977 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -12318,34 +12318,34 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 12324 "parser_cocci_menhir.ml" ) = Obj.magic pv in let rp2 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 12329 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 12335 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 12340 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 12346 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 12351 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in @@ -12362,7 +12362,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 955 "parser_cocci_menhir.mly" +# 977 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -12409,18 +12409,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _5 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 12415 "parser_cocci_menhir.ml" ) = Obj.magic _5 in let _4 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 12420 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr_list_option = Obj.magic _3 in let _2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 12426 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -12428,7 +12428,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : 'tv_decl_var = -# 963 "parser_cocci_menhir.mly" +# 985 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.MacroDecl(_1,P.clt2mcode "(" _2,_3, P.clt2mcode ")" _4,P.clt2mcode ";" _5))] ) # 12435 "parser_cocci_menhir.ml" @@ -12500,40 +12500,40 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 12506 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 12512 "parser_cocci_menhir.ml" ) = Obj.magic q in let rp2 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 12517 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 12523 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 12528 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 12534 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 12539 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in @@ -12548,7 +12548,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 969 "parser_cocci_menhir.mly" +# 991 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -12630,40 +12630,40 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 12636 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 12642 "parser_cocci_menhir.ml" ) = Obj.magic q in let rp2 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 12647 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 12653 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 12658 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 12664 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 12669 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in @@ -12680,7 +12680,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 969 "parser_cocci_menhir.mly" +# 991 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -12722,21 +12722,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 12728 "parser_cocci_menhir.ml" ) = Obj.magic pv in let id : 'tv_comma_list_typedef_ident_ = Obj.magic id in let t : 'tv_typedef_ctype = Obj.magic t in let s : ( -# 31 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) # 12735 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_pv_ in let _v : 'tv_decl_var = -# 977 "parser_cocci_menhir.mly" +# 999 "parser_cocci_menhir.mly" ( let s = P.clt2mcode "typedef" s in List.map (function id -> @@ -12764,7 +12764,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_define_param_list = -# 694 "parser_cocci_menhir.mly" +# 716 "parser_cocci_menhir.mly" (let circle x = match Ast0.unwrap x with Ast0.DPcircles(_) -> true | _ -> false in if List.exists circle _1 @@ -12792,7 +12792,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_define_param_list_option = -# 718 "parser_cocci_menhir.mly" +# 740 "parser_cocci_menhir.mly" ( _1 ) # 12798 "parser_cocci_menhir.ml" in @@ -12809,7 +12809,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_define_param_list_option = -# 719 "parser_cocci_menhir.mly" +# 741 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS([])) ) # 12815 "parser_cocci_menhir.ml" in @@ -12833,7 +12833,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_define_param_list_start = -# 701 "parser_cocci_menhir.mly" +# 723 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.DParam _1)] ) # 12839 "parser_cocci_menhir.ml" in @@ -12865,7 +12865,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_define_param_list_start = Obj.magic _3 in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 12871 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -12873,7 +12873,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_define_param_list_start = -# 703 "parser_cocci_menhir.mly" +# 725 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DParam _1):: Ast0.wrap(Ast0.DPComma(P.clt2mcode "," _2))::_3 ) # 12880 "parser_cocci_menhir.ml" @@ -12901,14 +12901,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_list_dp_comma_args_TEllipsis__ = Obj.magic r in let d : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 12907 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos_r_ in let _v : 'tv_define_param_list_start = -# 706 "parser_cocci_menhir.mly" +# 728 "parser_cocci_menhir.mly" ( (P.mkdpdots "..." d):: (List.concat (List.map (function x -> x (P.mkdpdots "...")) r)) ) # 12915 "parser_cocci_menhir.ml" @@ -12930,14 +12930,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 59 "parser_cocci_menhir.mly" +# 81 "parser_cocci_menhir.mly" (Data.clt * token) # 12936 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_defineop = -# 653 "parser_cocci_menhir.mly" +# 675 "parser_cocci_menhir.mly" ( let (clt,ident) = _1 in function body -> Ast0.wrap @@ -12983,20 +12983,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 12989 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_define_param_list_option = Obj.magic _2 in let _1 : ( -# 60 "parser_cocci_menhir.mly" +# 82 "parser_cocci_menhir.mly" (Data.clt * token * int * int) # 12995 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_defineop = -# 670 "parser_cocci_menhir.mly" +# 692 "parser_cocci_menhir.mly" ( let (clt,ident,parenoff,parencol) = _1 in (* clt is the start of the #define itself *) let (arity,line,lline,offset,col,strbef,straft,pos) = clt in @@ -13039,7 +13039,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_dep = -# 203 "parser_cocci_menhir.mly" +# 225 "parser_cocci_menhir.mly" ( _1 ) # 13045 "parser_cocci_menhir.ml" in @@ -13073,7 +13073,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_dep = -# 204 "parser_cocci_menhir.mly" +# 226 "parser_cocci_menhir.mly" ( Ast.AndDep(_1, _3) ) # 13079 "parser_cocci_menhir.ml" in @@ -13107,7 +13107,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_dep = -# 205 "parser_cocci_menhir.mly" +# 227 "parser_cocci_menhir.mly" ( Ast.OrDep (_1, _3) ) # 13113 "parser_cocci_menhir.ml" in @@ -13124,7 +13124,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_depends = -# 199 "parser_cocci_menhir.mly" +# 221 "parser_cocci_menhir.mly" ( Ast.NoDep ) # 13130 "parser_cocci_menhir.ml" in @@ -13156,7 +13156,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_parents_ in let _v : 'tv_depends = -# 200 "parser_cocci_menhir.mly" +# 222 "parser_cocci_menhir.mly" ( parents ) # 13162 "parser_cocci_menhir.ml" in @@ -13183,14 +13183,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_ident = Obj.magic _2 in let _1 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 13189 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_designator = -# 1078 "parser_cocci_menhir.mly" +# 1100 "parser_cocci_menhir.mly" ( Ast0.DesignatorField (P.clt2mcode "." _1,_2) ) # 13196 "parser_cocci_menhir.ml" in @@ -13221,20 +13221,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 80 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 13227 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 80 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 13233 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_designator = -# 1080 "parser_cocci_menhir.mly" +# 1102 "parser_cocci_menhir.mly" ( Ast0.DesignatorIndex (P.clt2mcode "[" _1,_2,P.clt2mcode "]" _3) ) # 13240 "parser_cocci_menhir.ml" in @@ -13275,26 +13275,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _5 : ( -# 80 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 13281 "parser_cocci_menhir.ml" ) = Obj.magic _5 in let _4 : 'tv_eexpr = Obj.magic _4 in let _3 : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 13287 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 80 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 13293 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : 'tv_designator = -# 1082 "parser_cocci_menhir.mly" +# 1104 "parser_cocci_menhir.mly" ( Ast0.DesignatorRange (P.clt2mcode "[" _1,_2,P.clt2mcode "..." _3, _4,P.clt2mcode "]" _5) ) # 13301 "parser_cocci_menhir.ml" @@ -13319,7 +13319,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_dexpr = -# 1181 "parser_cocci_menhir.mly" +# 1203 "parser_cocci_menhir.mly" ( _1 ) # 13325 "parser_cocci_menhir.ml" in @@ -13347,7 +13347,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_disable = -# 218 "parser_cocci_menhir.mly" +# 240 "parser_cocci_menhir.mly" ( List.map P.id2name _2 ) # 13353 "parser_cocci_menhir.ml" in @@ -13368,14 +13368,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 13374 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_dot_expressions = -# 1190 "parser_cocci_menhir.mly" +# 1212 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Edots(P.clt2mcode "..." _1,None)) ) # 13381 "parser_cocci_menhir.ml" in @@ -13399,7 +13399,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_dot_expressions = -# 1191 "parser_cocci_menhir.mly" +# 1213 "parser_cocci_menhir.mly" ( _1 ) # 13405 "parser_cocci_menhir.ml" in @@ -13425,19 +13425,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let d : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 13431 "parser_cocci_menhir.ml" ) = Obj.magic d in let c : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 13436 "parser_cocci_menhir.ml" ) = Obj.magic c in let _startpos = _startpos_c_ in let _endpos = _endpos_d_ in let _v : 'tv_dp_comma_args_TEllipsis_ = -# 711 "parser_cocci_menhir.mly" +# 733 "parser_cocci_menhir.mly" ( function dot_builder -> [Ast0.wrap(Ast0.DPComma(P.clt2mcode "," c)); dot_builder d] ) # 13444 "parser_cocci_menhir.ml" @@ -13465,14 +13465,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_ident = Obj.magic _2 in let _1 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 13471 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_dp_comma_args_TEllipsis_ = -# 714 "parser_cocci_menhir.mly" +# 736 "parser_cocci_menhir.mly" ( function dot_builder -> [Ast0.wrap(Ast0.DPComma(P.clt2mcode "," _1)); Ast0.wrap(Ast0.DParam _2)] ) @@ -13495,14 +13495,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 13501 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : 'tv_edots_when_TEllipsis_eexpr_ = -# 1865 "parser_cocci_menhir.mly" +# 1887 "parser_cocci_menhir.mly" ( (d,None) ) # 13508 "parser_cocci_menhir.ml" in @@ -13541,14 +13541,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let w : 'tv_eexpr = Obj.magic w in let d : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 13547 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos__5_ in let _v : 'tv_edots_when_TEllipsis_eexpr_ = -# 1866 "parser_cocci_menhir.mly" +# 1888 "parser_cocci_menhir.mly" ( (d,Some w) ) # 13554 "parser_cocci_menhir.ml" in @@ -13569,14 +13569,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 13575 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : 'tv_edots_when_TEllipsis_initialize_ = -# 1865 "parser_cocci_menhir.mly" +# 1887 "parser_cocci_menhir.mly" ( (d,None) ) # 13582 "parser_cocci_menhir.ml" in @@ -13615,14 +13615,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let w : 'tv_initialize = Obj.magic w in let d : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 13621 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos__5_ in let _v : 'tv_edots_when_TEllipsis_initialize_ = -# 1866 "parser_cocci_menhir.mly" +# 1888 "parser_cocci_menhir.mly" ( (d,Some w) ) # 13628 "parser_cocci_menhir.ml" in @@ -13643,14 +13643,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 13649 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : 'tv_edots_when_TEllipsis_struct_decl_ = -# 1865 "parser_cocci_menhir.mly" +# 1887 "parser_cocci_menhir.mly" ( (d,None) ) # 13656 "parser_cocci_menhir.ml" in @@ -13689,14 +13689,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let w : 'tv_struct_decl = Obj.magic w in let d : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 13695 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos__5_ in let _v : 'tv_edots_when_TEllipsis_struct_decl_ = -# 1866 "parser_cocci_menhir.mly" +# 1888 "parser_cocci_menhir.mly" ( (d,Some w) ) # 13702 "parser_cocci_menhir.ml" in @@ -13720,7 +13720,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_eexpr = -# 1179 "parser_cocci_menhir.mly" +# 1201 "parser_cocci_menhir.mly" ( _1 ) # 13726 "parser_cocci_menhir.ml" in @@ -13744,7 +13744,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_eexpr_list = -# 1809 "parser_cocci_menhir.mly" +# 1831 "parser_cocci_menhir.mly" (let circle x = match Ast0.unwrap x with Ast0.Ecircles(_) -> true | _ -> false in let star x = @@ -13777,7 +13777,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_eexpr_list_option = -# 1848 "parser_cocci_menhir.mly" +# 1870 "parser_cocci_menhir.mly" ( _1 ) # 13783 "parser_cocci_menhir.ml" in @@ -13794,7 +13794,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_eexpr_list_option = -# 1849 "parser_cocci_menhir.mly" +# 1871 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS([])) ) # 13800 "parser_cocci_menhir.ml" in @@ -13818,7 +13818,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_eexpr_list_start = -# 1836 "parser_cocci_menhir.mly" +# 1858 "parser_cocci_menhir.mly" ( [_1] ) # 13824 "parser_cocci_menhir.ml" in @@ -13850,7 +13850,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_eexpr_list_start = Obj.magic _3 in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 13856 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -13858,7 +13858,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_eexpr_list_start = -# 1838 "parser_cocci_menhir.mly" +# 1860 "parser_cocci_menhir.mly" ( _1::Ast0.wrap(Ast0.EComma(P.clt2mcode "," _2))::_3 ) # 13864 "parser_cocci_menhir.ml" in @@ -13880,7 +13880,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_exists = -# 221 "parser_cocci_menhir.mly" +# 243 "parser_cocci_menhir.mly" ( Ast.Exists ) # 13886 "parser_cocci_menhir.ml" in @@ -13902,7 +13902,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_exists = -# 222 "parser_cocci_menhir.mly" +# 244 "parser_cocci_menhir.mly" ( Ast.Forall ) # 13908 "parser_cocci_menhir.ml" in @@ -13919,7 +13919,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_exists = -# 223 "parser_cocci_menhir.mly" +# 245 "parser_cocci_menhir.mly" ( Ast.Undetermined ) # 13925 "parser_cocci_menhir.ml" in @@ -13943,7 +13943,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_expr = -# 1177 "parser_cocci_menhir.mly" +# 1199 "parser_cocci_menhir.mly" ( _1 ) # 13949 "parser_cocci_menhir.ml" in @@ -13967,7 +13967,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_r_ in let _endpos = _endpos_r_ in let _v : 'tv_expr_dots_TEllipsis_ = -# 1359 "parser_cocci_menhir.mly" +# 1381 "parser_cocci_menhir.mly" ( r ) # 13973 "parser_cocci_menhir.ml" in @@ -13984,7 +13984,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_extends = -# 194 "parser_cocci_menhir.mly" +# 216 "parser_cocci_menhir.mly" ( () ) # 13990 "parser_cocci_menhir.ml" in @@ -14009,14 +14009,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let parent : ( -# 25 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (string) # 14015 "parser_cocci_menhir.ml" ) = Obj.magic parent in let _startpos = _startpos__1_ in let _endpos = _endpos_parent_ in let _v : 'tv_extends = -# 196 "parser_cocci_menhir.mly" +# 218 "parser_cocci_menhir.mly" ( !Data.install_bindings (parent) ) # 14022 "parser_cocci_menhir.ml" in @@ -14042,19 +14042,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 61 "parser_cocci_menhir.mly" +# 83 "parser_cocci_menhir.mly" (string * Data.clt) # 14048 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 61 "parser_cocci_menhir.mly" +# 83 "parser_cocci_menhir.mly" (string * Data.clt) # 14053 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_filespec = -# 610 "parser_cocci_menhir.mly" +# 632 "parser_cocci_menhir.mly" ( [Ast0.wrap (Ast0.FILEINFO(P.id2mcode _1, P.id2mcode _2))] ) @@ -14073,7 +14073,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_fninfo = -# 747 "parser_cocci_menhir.mly" +# 769 "parser_cocci_menhir.mly" ( [] ) # 14079 "parser_cocci_menhir.ml" in @@ -14103,7 +14103,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fninfo = -# 749 "parser_cocci_menhir.mly" +# 771 "parser_cocci_menhir.mly" ( try let _ = List.find (function Ast0.FStorage(_) -> true | _ -> false) _2 in @@ -14137,7 +14137,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_t_ in let _endpos = _endpos_r_ in let _v : 'tv_fninfo = -# 754 "parser_cocci_menhir.mly" +# 776 "parser_cocci_menhir.mly" ( (Ast0.FType(t))::r ) # 14143 "parser_cocci_menhir.ml" in @@ -14164,14 +14164,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_fninfo = Obj.magic _2 in let _1 : ( -# 31 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) # 14170 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fninfo = -# 756 "parser_cocci_menhir.mly" +# 778 "parser_cocci_menhir.mly" ( try let _ = List.find (function Ast0.FInline(_) -> true | _ -> false) _2 in raise (Semantic_cocci.Semantic "duplicate inline") @@ -14201,14 +14201,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_fninfo = Obj.magic _2 in let _1 : ( -# 33 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (string * Data.clt) # 14207 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fninfo = -# 761 "parser_cocci_menhir.mly" +# 783 "parser_cocci_menhir.mly" ( try let _ = List.find (function Ast0.FAttr(_) -> true | _ -> false) _2 in raise (Semantic_cocci.Semantic "multiple attributes") @@ -14228,7 +14228,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_fninfo_nt = -# 767 "parser_cocci_menhir.mly" +# 789 "parser_cocci_menhir.mly" ( [] ) # 14234 "parser_cocci_menhir.ml" in @@ -14258,7 +14258,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fninfo_nt = -# 769 "parser_cocci_menhir.mly" +# 791 "parser_cocci_menhir.mly" ( try let _ = List.find (function Ast0.FStorage(_) -> true | _ -> false) _2 in @@ -14289,14 +14289,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_fninfo_nt = Obj.magic _2 in let _1 : ( -# 31 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) # 14295 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fninfo_nt = -# 775 "parser_cocci_menhir.mly" +# 797 "parser_cocci_menhir.mly" ( try let _ = List.find (function Ast0.FInline(_) -> true | _ -> false) _2 in raise (Semantic_cocci.Semantic "duplicate inline") @@ -14326,14 +14326,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_fninfo_nt = Obj.magic _2 in let _1 : ( -# 33 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (string * Data.clt) # 14332 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fninfo_nt = -# 780 "parser_cocci_menhir.mly" +# 802 "parser_cocci_menhir.mly" ( try let _ = List.find (function Ast0.FAttr(_) -> true | _ -> false) _2 in raise (Semantic_cocci.Semantic "duplicate init") @@ -14353,7 +14353,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_fun_after_dots = -# 1757 "parser_cocci_menhir.mly" +# 1779 "parser_cocci_menhir.mly" ([]) # 14359 "parser_cocci_menhir.ml" in @@ -14381,7 +14381,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_dots = -# 1758 "parser_cocci_menhir.mly" +# 1780 "parser_cocci_menhir.mly" (_2) # 14387 "parser_cocci_menhir.ml" in @@ -14411,7 +14411,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_dots = -# 1759 "parser_cocci_menhir.mly" +# 1781 "parser_cocci_menhir.mly" (Ast0.wrap(Ast0.Exp(_1))::_2) # 14417 "parser_cocci_menhir.ml" in @@ -14441,7 +14441,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_dots = -# 1760 "parser_cocci_menhir.mly" +# 1782 "parser_cocci_menhir.mly" (_1@_2) # 14447 "parser_cocci_menhir.ml" in @@ -14458,7 +14458,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_fun_after_dots_or = -# 1767 "parser_cocci_menhir.mly" +# 1789 "parser_cocci_menhir.mly" ([]) # 14464 "parser_cocci_menhir.ml" in @@ -14486,7 +14486,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_dots_or = -# 1768 "parser_cocci_menhir.mly" +# 1790 "parser_cocci_menhir.mly" (_2) # 14492 "parser_cocci_menhir.ml" in @@ -14516,7 +14516,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_dots_or = -# 1769 "parser_cocci_menhir.mly" +# 1791 "parser_cocci_menhir.mly" (Ast0.wrap(Ast0.Exp(_1))::_2) # 14522 "parser_cocci_menhir.ml" in @@ -14546,7 +14546,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_dots_or = -# 1770 "parser_cocci_menhir.mly" +# 1792 "parser_cocci_menhir.mly" (_1@_2) # 14552 "parser_cocci_menhir.ml" in @@ -14576,7 +14576,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_exp = -# 1763 "parser_cocci_menhir.mly" +# 1785 "parser_cocci_menhir.mly" (_1::_2) # 14582 "parser_cocci_menhir.ml" in @@ -14593,7 +14593,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_fun_after_exp_or = -# 1773 "parser_cocci_menhir.mly" +# 1795 "parser_cocci_menhir.mly" ([]) # 14599 "parser_cocci_menhir.ml" in @@ -14623,7 +14623,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_exp_or = -# 1774 "parser_cocci_menhir.mly" +# 1796 "parser_cocci_menhir.mly" (_1::_2) # 14629 "parser_cocci_menhir.ml" in @@ -14640,7 +14640,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_fun_after_stm = -# 1752 "parser_cocci_menhir.mly" +# 1774 "parser_cocci_menhir.mly" ([]) # 14646 "parser_cocci_menhir.ml" in @@ -14670,7 +14670,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_stm = -# 1753 "parser_cocci_menhir.mly" +# 1775 "parser_cocci_menhir.mly" (_1::_2) # 14676 "parser_cocci_menhir.ml" in @@ -14700,7 +14700,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_stm = -# 1754 "parser_cocci_menhir.mly" +# 1776 "parser_cocci_menhir.mly" (_1@_2) # 14706 "parser_cocci_menhir.ml" in @@ -14724,7 +14724,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_fun_start = -# 1749 "parser_cocci_menhir.mly" +# 1771 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS(_1)) ) # 14730 "parser_cocci_menhir.ml" in @@ -14748,7 +14748,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_func_ident = -# 1547 "parser_cocci_menhir.mly" +# 1569 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) ) # 14754 "parser_cocci_menhir.ml" in @@ -14769,14 +14769,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 39 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (Parse_aux.idinfo) # 14775 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_func_ident = -# 1549 "parser_cocci_menhir.mly" +# 1571 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) ) # 14783 "parser_cocci_menhir.ml" @@ -14798,14 +14798,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 39 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (Parse_aux.idinfo) # 14804 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_func_ident = -# 1552 "parser_cocci_menhir.mly" +# 1574 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaFunc(P.clt2mcode nm clt,constraints,pure)) ) # 14812 "parser_cocci_menhir.ml" @@ -14827,14 +14827,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 39 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (Parse_aux.idinfo) # 14833 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_func_ident = -# 1555 "parser_cocci_menhir.mly" +# 1577 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap (Ast0.MetaLocalFunc(P.clt2mcode nm clt,constraints,pure)) ) @@ -14896,24 +14896,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rb : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 14902 "parser_cocci_menhir.ml" ) = Obj.magic rb in let b : 'tv_fun_start = Obj.magic b in let lb : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 14908 "parser_cocci_menhir.ml" ) = Obj.magic lb in let rp : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 14913 "parser_cocci_menhir.ml" ) = Obj.magic rp in let d : 'tv_decl_list_decl_ = Obj.magic d in let lp : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 14919 "parser_cocci_menhir.ml" ) = Obj.magic lp in @@ -14922,7 +14922,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_f_ in let _endpos = _endpos_rb_ in let _v : 'tv_fundecl = -# 738 "parser_cocci_menhir.mly" +# 760 "parser_cocci_menhir.mly" ( P.verify_parameter_declarations (Ast0.undots d); Ast0.wrap(Ast0.FunDecl((Ast0.default_info(),Ast0.context_befaft()), f, i, @@ -14974,18 +14974,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pt : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 14980 "parser_cocci_menhir.ml" ) = Obj.magic pt in let rp : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 14985 "parser_cocci_menhir.ml" ) = Obj.magic rp in let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in let lp : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 14991 "parser_cocci_menhir.ml" ) = Obj.magic lp in @@ -15001,7 +15001,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 726 "parser_cocci_menhir.mly" +# 748 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.UnInit (s, @@ -15058,18 +15058,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pt : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 15064 "parser_cocci_menhir.ml" ) = Obj.magic pt in let rp : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 15069 "parser_cocci_menhir.ml" ) = Obj.magic rp in let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in let lp : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 15075 "parser_cocci_menhir.ml" ) = Obj.magic lp in @@ -15087,7 +15087,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 726 "parser_cocci_menhir.mly" +# 748 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.UnInit (s, @@ -15117,7 +15117,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_ident = -# 1560 "parser_cocci_menhir.mly" +# 1582 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) ) # 15123 "parser_cocci_menhir.ml" in @@ -15138,14 +15138,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 39 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (Parse_aux.idinfo) # 15144 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_ident = -# 1562 "parser_cocci_menhir.mly" +# 1584 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) ) # 15152 "parser_cocci_menhir.ml" @@ -15170,7 +15170,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_i_ in let _endpos = _endpos_i_ in let _v : 'tv_ident_or_const = -# 1514 "parser_cocci_menhir.mly" +# 1536 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i)))) ) # 15176 "parser_cocci_menhir.ml" in @@ -15191,14 +15191,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 15197 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_ident_or_const = -# 1516 "parser_cocci_menhir.mly" +# 1538 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) # 15205 "parser_cocci_menhir.ml" @@ -15220,14 +15220,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 58 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (string * Data.clt) # 15226 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_incl = -# 234 "parser_cocci_menhir.mly" +# 256 "parser_cocci_menhir.mly" ( let (x,_) = _1 in Data.Include(x) ) # 15233 "parser_cocci_menhir.ml" in @@ -15252,14 +15252,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 15258 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_incl = -# 235 "parser_cocci_menhir.mly" +# 257 "parser_cocci_menhir.mly" ( Data.Iso(Common.Left(P.id2name _2)) ) # 15265 "parser_cocci_menhir.ml" in @@ -15284,14 +15284,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 57 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (string) # 15290 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_incl = -# 236 "parser_cocci_menhir.mly" +# 258 "parser_cocci_menhir.mly" ( Data.Iso(Common.Right _2) ) # 15297 "parser_cocci_menhir.ml" in @@ -15319,7 +15319,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_incl = -# 238 "parser_cocci_menhir.mly" +# 260 "parser_cocci_menhir.mly" ( let names = List.map P.id2name _2 in (* ensure that the names of virtual and real rules don't overlap *) List.iter @@ -15352,11 +15352,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 124 "parser_cocci_menhir.mly" +# 146 "parser_cocci_menhir.mly" (Data.incl_iso list) # 15358 "parser_cocci_menhir.ml" ) = -# 230 "parser_cocci_menhir.mly" +# 252 "parser_cocci_menhir.mly" ( _1 ) # 15362 "parser_cocci_menhir.ml" in @@ -15384,11 +15384,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 124 "parser_cocci_menhir.mly" +# 146 "parser_cocci_menhir.mly" (Data.incl_iso list) # 15390 "parser_cocci_menhir.ml" ) = -# 231 "parser_cocci_menhir.mly" +# 253 "parser_cocci_menhir.mly" ( _1 ) # 15394 "parser_cocci_menhir.ml" in @@ -15409,14 +15409,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 58 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (string * Data.clt) # 15415 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_includes = -# 616 "parser_cocci_menhir.mly" +# 638 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Include(P.clt2mcode "#include" (P.drop_pos (P.drop_aft (P.id2clt _1))), @@ -15446,14 +15446,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 58 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (string * Data.clt) # 15452 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_includes = -# 627 "parser_cocci_menhir.mly" +# 649 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Include(P.clt2mcode "#include" (P.drop_pos (P.drop_aft (P.id2clt _1))), @@ -15496,7 +15496,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_d_ in let _endpos = _endpos__3_ in let _v : 'tv_includes = -# 638 "parser_cocci_menhir.mly" +# 660 "parser_cocci_menhir.mly" ( let ty = Ast0.wrap(Ast0.TopExp(Ast0.wrap(Ast0.TypeExp(t)))) in d (Ast0.wrap(Ast0.DOTS([ty]))) ) # 15503 "parser_cocci_menhir.ml" @@ -15531,7 +15531,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_includes = -# 641 "parser_cocci_menhir.mly" +# 663 "parser_cocci_menhir.mly" ( let body = match b with [e] -> @@ -15563,7 +15563,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_initialize = -# 1049 "parser_cocci_menhir.mly" +# 1071 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.InitExpr(_1)) ) # 15569 "parser_cocci_menhir.ml" in @@ -15594,20 +15594,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 15600 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_initialize_list = Obj.magic _2 in let _1 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 15606 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_initialize = -# 1051 "parser_cocci_menhir.mly" +# 1073 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3)) ) # 15613 "parser_cocci_menhir.ml" in @@ -15633,19 +15633,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 15639 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 15644 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_initialize = -# 1053 "parser_cocci_menhir.mly" +# 1075 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.InitList(P.clt2mcode "{" _1,Ast0.wrap(Ast0.DOTS []), P.clt2mcode "}" _2)) ) @@ -15668,14 +15668,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 43 "parser_cocci_menhir.mly" +# 65 "parser_cocci_menhir.mly" (Parse_aux.info) # 15674 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_initialize = -# 1057 "parser_cocci_menhir.mly" +# 1079 "parser_cocci_menhir.mly" (let (nm,pure,clt) = _1 in Ast0.wrap(Ast0.MetaInit(P.clt2mcode nm clt,pure)) ) # 15682 "parser_cocci_menhir.ml" @@ -15700,7 +15700,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_initialize2 = -# 1063 "parser_cocci_menhir.mly" +# 1085 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.InitExpr(_1)) ) # 15706 "parser_cocci_menhir.ml" in @@ -15731,20 +15731,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 15737 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_initialize_list = Obj.magic _2 in let _1 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 15743 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_initialize2 = -# 1065 "parser_cocci_menhir.mly" +# 1087 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3)) ) # 15750 "parser_cocci_menhir.ml" in @@ -15770,19 +15770,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 15776 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 15781 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_initialize2 = -# 1067 "parser_cocci_menhir.mly" +# 1089 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.InitList(P.clt2mcode "{" _1,Ast0.wrap(Ast0.DOTS []), P.clt2mcode "}" _2)) ) @@ -15816,7 +15816,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_initialize2 = Obj.magic _3 in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 15822 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -15824,7 +15824,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_initialize2 = -# 1072 "parser_cocci_menhir.mly" +# 1094 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.InitGccExt(_1,P.clt2mcode "=" _2,_3)) ) # 15830 "parser_cocci_menhir.ml" in @@ -15856,7 +15856,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_initialize2 = Obj.magic _3 in let _2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 15862 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -15864,7 +15864,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_initialize2 = -# 1074 "parser_cocci_menhir.mly" +# 1096 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.InitGccName(_1,P.clt2mcode ":" _2,_3)) ) # 15870 "parser_cocci_menhir.ml" in @@ -15888,7 +15888,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_initialize_list = -# 1086 "parser_cocci_menhir.mly" +# 1108 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS(_1)) ) # 15894 "parser_cocci_menhir.ml" in @@ -15914,7 +15914,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 15920 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -15922,7 +15922,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_initialize_list_start = -# 1089 "parser_cocci_menhir.mly" +# 1111 "parser_cocci_menhir.mly" ( [_1;Ast0.wrap(Ast0.IComma(P.clt2mcode "," _2))] ) # 15928 "parser_cocci_menhir.ml" in @@ -15954,7 +15954,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_initialize_list_start = Obj.magic _3 in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 15960 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -15962,7 +15962,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_initialize_list_start = -# 1091 "parser_cocci_menhir.mly" +# 1113 "parser_cocci_menhir.mly" ( _1::Ast0.wrap(Ast0.IComma(P.clt2mcode "," _2))::_3 ) # 15968 "parser_cocci_menhir.ml" in @@ -15992,7 +15992,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_d_ in let _endpos = _endpos_r_ in let _v : 'tv_initialize_list_start = -# 1094 "parser_cocci_menhir.mly" +# 1116 "parser_cocci_menhir.mly" ( (P.mkidots "..." d):: (List.concat(List.map (function x -> x (P.mkidots "...")) r)) ) # 15999 "parser_cocci_menhir.ml" @@ -16015,7 +16015,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_invalid = -# 1187 "parser_cocci_menhir.mly" +# 1209 "parser_cocci_menhir.mly" ( raise (Semantic_cocci.Semantic "not matchable") ) # 16021 "parser_cocci_menhir.ml" in @@ -16032,7 +16032,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_is_expression = -# 226 "parser_cocci_menhir.mly" +# 248 "parser_cocci_menhir.mly" ( false ) # 16038 "parser_cocci_menhir.ml" in @@ -16054,7 +16054,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_is_expression = -# 227 "parser_cocci_menhir.mly" +# 249 "parser_cocci_menhir.mly" ( true ) # 16060 "parser_cocci_menhir.ml" in @@ -16082,7 +16082,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_ctype_ = -# 1917 "parser_cocci_menhir.mly" +# 1939 "parser_cocci_menhir.mly" ( Common.Left t ) # 16088 "parser_cocci_menhir.ml" in @@ -16110,7 +16110,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_ctype_ = -# 1918 "parser_cocci_menhir.mly" +# 1940 "parser_cocci_menhir.mly" ( Common.Right t ) # 16116 "parser_cocci_menhir.ml" in @@ -16138,7 +16138,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_decl_var_ = -# 1917 "parser_cocci_menhir.mly" +# 1939 "parser_cocci_menhir.mly" ( Common.Left t ) # 16144 "parser_cocci_menhir.ml" in @@ -16166,7 +16166,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_decl_var_ = -# 1918 "parser_cocci_menhir.mly" +# 1940 "parser_cocci_menhir.mly" ( Common.Right t ) # 16172 "parser_cocci_menhir.ml" in @@ -16194,7 +16194,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_dexpr_ = -# 1917 "parser_cocci_menhir.mly" +# 1939 "parser_cocci_menhir.mly" ( Common.Left t ) # 16200 "parser_cocci_menhir.ml" in @@ -16222,7 +16222,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_dexpr_ = -# 1918 "parser_cocci_menhir.mly" +# 1940 "parser_cocci_menhir.mly" ( Common.Right t ) # 16228 "parser_cocci_menhir.ml" in @@ -16250,7 +16250,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_nest_start_ = -# 1917 "parser_cocci_menhir.mly" +# 1939 "parser_cocci_menhir.mly" ( Common.Left t ) # 16256 "parser_cocci_menhir.ml" in @@ -16278,7 +16278,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_nest_start_ = -# 1918 "parser_cocci_menhir.mly" +# 1940 "parser_cocci_menhir.mly" ( Common.Right t ) # 16284 "parser_cocci_menhir.ml" in @@ -16306,7 +16306,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_single_statement_ = -# 1917 "parser_cocci_menhir.mly" +# 1939 "parser_cocci_menhir.mly" ( Common.Left t ) # 16312 "parser_cocci_menhir.ml" in @@ -16334,7 +16334,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_single_statement_ = -# 1918 "parser_cocci_menhir.mly" +# 1940 "parser_cocci_menhir.mly" ( Common.Right t ) # 16340 "parser_cocci_menhir.ml" in @@ -16372,11 +16372,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 140 "parser_cocci_menhir.mly" +# 162 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) # 16378 "parser_cocci_menhir.ml" ) = -# 1889 "parser_cocci_menhir.mly" +# 1911 "parser_cocci_menhir.mly" ( P.iso_adjust (function x -> Ast0.ExprTag x) e1 el ) # 16382 "parser_cocci_menhir.ml" in @@ -16414,11 +16414,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 140 "parser_cocci_menhir.mly" +# 162 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) # 16420 "parser_cocci_menhir.ml" ) = -# 1891 "parser_cocci_menhir.mly" +# 1913 "parser_cocci_menhir.mly" ( P.iso_adjust (function x -> Ast0.ArgExprTag x) e1 el ) # 16424 "parser_cocci_menhir.ml" in @@ -16456,11 +16456,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 140 "parser_cocci_menhir.mly" +# 162 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) # 16462 "parser_cocci_menhir.ml" ) = -# 1893 "parser_cocci_menhir.mly" +# 1915 "parser_cocci_menhir.mly" ( P.iso_adjust (function x -> Ast0.TestExprTag x) e1 el ) # 16466 "parser_cocci_menhir.ml" in @@ -16498,11 +16498,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 140 "parser_cocci_menhir.mly" +# 162 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) # 16504 "parser_cocci_menhir.ml" ) = -# 1895 "parser_cocci_menhir.mly" +# 1917 "parser_cocci_menhir.mly" ( P.iso_adjust (function x -> Ast0.StmtTag x) s1 sl ) # 16508 "parser_cocci_menhir.ml" in @@ -16540,11 +16540,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 140 "parser_cocci_menhir.mly" +# 162 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) # 16546 "parser_cocci_menhir.ml" ) = -# 1897 "parser_cocci_menhir.mly" +# 1919 "parser_cocci_menhir.mly" ( P.iso_adjust (function x -> Ast0.TypeCTag x) t1 tl ) # 16550 "parser_cocci_menhir.ml" in @@ -16582,11 +16582,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 140 "parser_cocci_menhir.mly" +# 162 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) # 16588 "parser_cocci_menhir.ml" ) = -# 1899 "parser_cocci_menhir.mly" +# 1921 "parser_cocci_menhir.mly" ( P.iso_adjust (function x -> Ast0.DotsStmtTag x) e1 el ) # 16592 "parser_cocci_menhir.ml" in @@ -16624,11 +16624,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 140 "parser_cocci_menhir.mly" +# 162 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) # 16630 "parser_cocci_menhir.ml" ) = -# 1901 "parser_cocci_menhir.mly" +# 1923 "parser_cocci_menhir.mly" ( let check_one = function [x] -> x | _ -> @@ -16665,11 +16665,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_m_ in let _endpos = _endpos_m_ in let _v : ( -# 143 "parser_cocci_menhir.mly" +# 165 "parser_cocci_menhir.mly" ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list) # 16671 "parser_cocci_menhir.ml" ) = -# 160 "parser_cocci_menhir.mly" +# 182 "parser_cocci_menhir.mly" ( m "" ) # 16675 "parser_cocci_menhir.ml" in @@ -16697,11 +16697,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_nm_ in let _endpos = _endpos__2_ in let _v : ( -# 127 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Ast_cocci.rulename) # 16703 "parser_cocci_menhir.ml" ) = -# 175 "parser_cocci_menhir.mly" +# 197 "parser_cocci_menhir.mly" ( P.make_iso_rule_name_result (P.id2name nm) ) # 16707 "parser_cocci_menhir.ml" in @@ -16722,14 +16722,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 16728 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_iter_ident = -# 1574 "parser_cocci_menhir.mly" +# 1596 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) ) # 16735 "parser_cocci_menhir.ml" in @@ -16750,14 +16750,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 40 "parser_cocci_menhir.mly" +# 62 "parser_cocci_menhir.mly" (Parse_aux.idinfo) # 16756 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_iter_ident = -# 1576 "parser_cocci_menhir.mly" +# 1598 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) ) # 16764 "parser_cocci_menhir.ml" @@ -16802,7 +16802,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let xs : 'tv_list_TMul_ = Obj.magic xs in let x : ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 16808 "parser_cocci_menhir.ml" ) = Obj.magic x in @@ -18122,7 +18122,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_t_ in let _endpos = _endpos_t_ in let _v : 'tv_meta_exp_type = -# 440 "parser_cocci_menhir.mly" +# 462 "parser_cocci_menhir.mly" ( [Ast0_cocci.ast0_type_to_type t] ) # 18128 "parser_cocci_menhir.ml" in @@ -18160,7 +18160,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_m_ in let _v : 'tv_meta_exp_type = -# 442 "parser_cocci_menhir.mly" +# 464 "parser_cocci_menhir.mly" ( List.map (function x -> P.ty_pointerify (Ast0_cocci.ast0_type_to_type x) m) t ) @@ -18193,14 +18193,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_pure_ident = Obj.magic _3 in let _1 : ( -# 25 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (string) # 18199 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_meta_ident = -# 1373 "parser_cocci_menhir.mly" +# 1395 "parser_cocci_menhir.mly" ( (Some _1,P.id2name _3) ) # 18206 "parser_cocci_menhir.ml" in @@ -18224,11 +18224,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_m_ in let _endpos = _endpos_m_ in let _v : ( -# 135 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list) # 18230 "parser_cocci_menhir.ml" ) = -# 159 "parser_cocci_menhir.mly" +# 181 "parser_cocci_menhir.mly" ( m (!Ast0.rule_name) ) # 18234 "parser_cocci_menhir.ml" in @@ -18273,7 +18273,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 305 "parser_cocci_menhir.mly" +# 327 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta -> let tok = check_meta(Ast.MetaParamDecl(arity,name)) in !Data.add_param_meta name pure; tok) ) @@ -18281,7 +18281,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 248 "parser_cocci_menhir.mly" +# 270 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) # 18287 "parser_cocci_menhir.ml" in @@ -18330,7 +18330,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = -# 309 "parser_cocci_menhir.mly" +# 331 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta -> let tok = check_meta(Ast.MetaParamListDecl(arity,name,None)) in !Data.add_paramlist_meta name None pure; tok) ) @@ -18338,7 +18338,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 248 "parser_cocci_menhir.mly" +# 270 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) # 18344 "parser_cocci_menhir.ml" in @@ -18387,7 +18387,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = -# 313 "parser_cocci_menhir.mly" +# 335 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta -> let tok = check_meta(Ast.MetaExpListDecl(arity,name,None)) in !Data.add_explist_meta name None pure; tok) ) @@ -18395,7 +18395,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 248 "parser_cocci_menhir.mly" +# 270 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) # 18401 "parser_cocci_menhir.ml" in @@ -18440,7 +18440,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 317 "parser_cocci_menhir.mly" +# 339 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta -> let tok = check_meta(Ast.MetaTypeDecl(arity,name)) in !Data.add_type_meta name pure; tok) ) @@ -18448,7 +18448,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 248 "parser_cocci_menhir.mly" +# 270 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) # 18454 "parser_cocci_menhir.ml" in @@ -18493,7 +18493,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 321 "parser_cocci_menhir.mly" +# 343 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta -> let tok = check_meta(Ast.MetaInitDecl(arity,name)) in !Data.add_init_meta name pure; tok) ) @@ -18501,7 +18501,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 248 "parser_cocci_menhir.mly" +# 270 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) # 18507 "parser_cocci_menhir.ml" in @@ -18546,7 +18546,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 325 "parser_cocci_menhir.mly" +# 347 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta -> let tok = check_meta(Ast.MetaStmDecl(arity,name)) in !Data.add_stm_meta name pure; tok) ) @@ -18554,7 +18554,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 248 "parser_cocci_menhir.mly" +# 270 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) # 18560 "parser_cocci_menhir.ml" in @@ -18603,7 +18603,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = -# 329 "parser_cocci_menhir.mly" +# 351 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta -> let tok = check_meta(Ast.MetaStmListDecl(arity,name)) in !Data.add_stmlist_meta name pure; tok) ) @@ -18611,7 +18611,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 248 "parser_cocci_menhir.mly" +# 270 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) # 18617 "parser_cocci_menhir.ml" in @@ -18656,7 +18656,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 333 "parser_cocci_menhir.mly" +# 355 "parser_cocci_menhir.mly" ( (fun arity (_,name) pure check_meta -> if arity = Ast.NONE && pure = Ast0.Impure then (!Data.add_type_name name; []) @@ -18665,7 +18665,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 248 "parser_cocci_menhir.mly" +# 270 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) # 18671 "parser_cocci_menhir.ml" in @@ -18714,7 +18714,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = -# 338 "parser_cocci_menhir.mly" +# 360 "parser_cocci_menhir.mly" ( (fun arity (_,name) pure check_meta -> if arity = Ast.NONE && pure = Ast0.Impure then (!Data.add_declarer_name name; []) @@ -18723,7 +18723,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 248 "parser_cocci_menhir.mly" +# 270 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) # 18729 "parser_cocci_menhir.ml" in @@ -18772,7 +18772,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = -# 343 "parser_cocci_menhir.mly" +# 365 "parser_cocci_menhir.mly" ( (fun arity (_,name) pure check_meta -> if arity = Ast.NONE && pure = Ast0.Impure then (!Data.add_iterator_name name; []) @@ -18781,7 +18781,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 248 "parser_cocci_menhir.mly" +# 270 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) # 18787 "parser_cocci_menhir.ml" in @@ -18818,7 +18818,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__4_ in let _v : 'tv_metadec = let kindfn = -# 299 "parser_cocci_menhir.mly" +# 321 "parser_cocci_menhir.mly" ( (fun name check_meta seed -> let tok = check_meta(Ast.MetaFreshIdDecl(name,seed)) in !Data.add_fresh_id_meta name; tok) ) @@ -18826,7 +18826,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 251 "parser_cocci_menhir.mly" +# 273 "parser_cocci_menhir.mly" ( P.create_fresh_metadec kindfn ids ) # 18832 "parser_cocci_menhir.ml" in @@ -18871,7 +18871,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 350 "parser_cocci_menhir.mly" +# 372 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let tok = check_meta(Ast.MetaIdDecl(arity,name)) in !Data.add_id_meta name constraints pure; tok) ) @@ -18879,7 +18879,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 256 "parser_cocci_menhir.mly" +# 278 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) # 18885 "parser_cocci_menhir.ml" in @@ -18924,7 +18924,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 354 "parser_cocci_menhir.mly" +# 376 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let tok = check_meta(Ast.MetaFuncDecl(arity,name)) in !Data.add_func_meta name constraints pure; tok) ) @@ -18932,7 +18932,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 256 "parser_cocci_menhir.mly" +# 278 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) # 18938 "parser_cocci_menhir.ml" in @@ -18981,7 +18981,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = -# 358 "parser_cocci_menhir.mly" +# 380 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let tok = check_meta(Ast.MetaLocalFuncDecl(arity,name)) in !Data.add_local_func_meta name constraints pure; @@ -18990,7 +18990,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 256 "parser_cocci_menhir.mly" +# 278 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) # 18996 "parser_cocci_menhir.ml" in @@ -19035,7 +19035,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 363 "parser_cocci_menhir.mly" +# 385 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let tok = check_meta(Ast.MetaDeclarerDecl(arity,name)) in !Data.add_declarer_meta name constraints pure; tok) ) @@ -19043,7 +19043,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 256 "parser_cocci_menhir.mly" +# 278 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) # 19049 "parser_cocci_menhir.ml" in @@ -19088,7 +19088,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 367 "parser_cocci_menhir.mly" +# 389 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let tok = check_meta(Ast.MetaIteratorDecl(arity,name)) in !Data.add_iterator_meta name constraints pure; tok) ) @@ -19096,7 +19096,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 256 "parser_cocci_menhir.mly" +# 278 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) # 19102 "parser_cocci_menhir.ml" in @@ -19141,7 +19141,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 373 "parser_cocci_menhir.mly" +# 395 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let tok = check_meta(Ast.MetaErrDecl(arity,name)) in !Data.add_err_meta name constraints pure; tok) ) @@ -19149,7 +19149,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 261 "parser_cocci_menhir.mly" +# 283 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) # 19155 "parser_cocci_menhir.ml" in @@ -19208,7 +19208,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 377 "parser_cocci_menhir.mly" +# 399 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> match l with None -> @@ -19221,7 +19221,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 261 "parser_cocci_menhir.mly" +# 283 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) # 19227 "parser_cocci_menhir.ml" in @@ -19288,7 +19288,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 377 "parser_cocci_menhir.mly" +# 399 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> match l with None -> @@ -19301,7 +19301,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 261 "parser_cocci_menhir.mly" +# 283 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) # 19307 "parser_cocci_menhir.ml" in @@ -19360,7 +19360,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let m = m0 in let l = l0 in -# 386 "parser_cocci_menhir.mly" +# 408 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let ty = Some [P.ty_pointerify Type_cocci.Unknown m] in match l with @@ -19374,7 +19374,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 261 "parser_cocci_menhir.mly" +# 283 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) # 19380 "parser_cocci_menhir.ml" in @@ -19426,7 +19426,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_metadec = let kindfn = let m = m0 in -# 396 "parser_cocci_menhir.mly" +# 418 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let ty = Some [P.ty_pointerify Type_cocci.Unknown m] in let tok = check_meta(Ast.MetaExpDecl(arity,name,ty)) in @@ -19435,7 +19435,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 261 "parser_cocci_menhir.mly" +# 283 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) # 19441 "parser_cocci_menhir.ml" in @@ -19491,7 +19491,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_metadec = let kindfn = let vl = vl0 in -# 401 "parser_cocci_menhir.mly" +# 423 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let ty = Some (List.map (function x -> Type_cocci.Array x) vl) in let tok = check_meta(Ast.MetaExpDecl(arity,name,ty)) in @@ -19500,7 +19500,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 261 "parser_cocci_menhir.mly" +# 283 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) # 19506 "parser_cocci_menhir.ml" in @@ -19552,7 +19552,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 406 "parser_cocci_menhir.mly" +# 428 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let tok = check_meta(Ast.MetaConstDecl(arity,name,ty)) in !Data.add_const_meta ty name constraints pure; tok) ) @@ -19560,7 +19560,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 261 "parser_cocci_menhir.mly" +# 283 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) # 19566 "parser_cocci_menhir.ml" in @@ -19620,7 +19620,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 406 "parser_cocci_menhir.mly" +# 428 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let tok = check_meta(Ast.MetaConstDecl(arity,name,ty)) in !Data.add_const_meta ty name constraints pure; tok) ) @@ -19628,7 +19628,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 261 "parser_cocci_menhir.mly" +# 283 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) # 19634 "parser_cocci_menhir.ml" in @@ -19673,7 +19673,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 412 "parser_cocci_menhir.mly" +# 434 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let tok = check_meta(Ast.MetaExpDecl(arity,name,None)) in !Data.add_exp_meta None name (Ast0.NotExpCstrt constraints) pure; tok) ) @@ -19681,7 +19681,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 265 "parser_cocci_menhir.mly" +# 287 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) # 19687 "parser_cocci_menhir.ml" in @@ -19729,7 +19729,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_metadec = let kindfn = let vl = vl0 in -# 416 "parser_cocci_menhir.mly" +# 438 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let ty = Some vl in List.iter @@ -19754,7 +19754,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 265 "parser_cocci_menhir.mly" +# 287 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) # 19760 "parser_cocci_menhir.ml" in @@ -19798,7 +19798,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_ar_ in let _endpos = _endpos__5_ in let _v : 'tv_metadec = -# 271 "parser_cocci_menhir.mly" +# 293 "parser_cocci_menhir.mly" ( (if !Data.in_generating then failwith "position variables not allowed in a generated rule file"); let kindfn arity name pure check_meta constraints = @@ -19866,7 +19866,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_ar_ in let _endpos = _endpos__9_ in let _v : 'tv_metadec = -# 281 "parser_cocci_menhir.mly" +# 303 "parser_cocci_menhir.mly" ( P.create_len_metadec ar ispure (fun lenname arity name pure check_meta -> let tok = @@ -19933,7 +19933,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_ar_ in let _endpos = _endpos__9_ in let _v : 'tv_metadec = -# 290 "parser_cocci_menhir.mly" +# 312 "parser_cocci_menhir.mly" ( P.create_len_metadec ar ispure (fun lenname arity name pure check_meta -> let tok = @@ -19968,7 +19968,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_midzero_list_ctype_ctype_ = -# 1859 "parser_cocci_menhir.mly" +# 1881 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) # 19974 "parser_cocci_menhir.ml" in @@ -19998,7 +19998,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_midzero_list_eexpr_eexpr_ = -# 1859 "parser_cocci_menhir.mly" +# 1881 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) # 20004 "parser_cocci_menhir.ml" in @@ -20028,7 +20028,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_midzero_list_expr_eexpr_ = -# 1859 "parser_cocci_menhir.mly" +# 1881 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) # 20034 "parser_cocci_menhir.ml" in @@ -20058,7 +20058,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_midzero_list_fun_after_stm_fun_after_dots_or_ = -# 1859 "parser_cocci_menhir.mly" +# 1881 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) # 20064 "parser_cocci_menhir.ml" in @@ -20088,7 +20088,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_midzero_list_fun_start_fun_start_ = -# 1859 "parser_cocci_menhir.mly" +# 1881 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) # 20094 "parser_cocci_menhir.ml" in @@ -20118,7 +20118,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_midzero_list_rule_elem_statement_rule_elem_statement_ = -# 1859 "parser_cocci_menhir.mly" +# 1881 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) # 20124 "parser_cocci_menhir.ml" in @@ -20148,7 +20148,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_midzero_list_statement_statement_ = -# 1859 "parser_cocci_menhir.mly" +# 1881 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) # 20154 "parser_cocci_menhir.ml" in @@ -20178,7 +20178,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_f_ in let _endpos = _endpos_b_ in let _v : 'tv_minus_body = -# 584 "parser_cocci_menhir.mly" +# 606 "parser_cocci_menhir.mly" ( match f@b(*@ew*) with [] -> raise (Semantic_cocci.Semantic "minus slice can't be empty") | code -> Top_level.top_level code ) @@ -20210,7 +20210,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_f_ in let _endpos = _endpos_b_ in let _v : 'tv_minus_exp_body = -# 598 "parser_cocci_menhir.mly" +# 620 "parser_cocci_menhir.mly" ( match f@[b](*@ew*) with [] -> raise (Semantic_cocci.Semantic "minus slice can't be empty") | code -> Top_level.top_level code ) @@ -20240,11 +20240,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 115 "parser_cocci_menhir.mly" +# 137 "parser_cocci_menhir.mly" (Ast0_cocci.rule) # 20246 "parser_cocci_menhir.ml" ) = -# 155 "parser_cocci_menhir.mly" +# 177 "parser_cocci_menhir.mly" ( _1 ) # 20250 "parser_cocci_menhir.ml" in @@ -20272,11 +20272,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_m_ in let _endpos = _endpos__2_ in let _v : ( -# 115 "parser_cocci_menhir.mly" +# 137 "parser_cocci_menhir.mly" (Ast0_cocci.rule) # 20278 "parser_cocci_menhir.ml" ) = -# 155 "parser_cocci_menhir.mly" +# 177 "parser_cocci_menhir.mly" ( m ) # 20282 "parser_cocci_menhir.ml" in @@ -20304,11 +20304,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_m_ in let _endpos = _endpos__2_ in let _v : ( -# 115 "parser_cocci_menhir.mly" +# 137 "parser_cocci_menhir.mly" (Ast0_cocci.rule) # 20310 "parser_cocci_menhir.ml" ) = -# 156 "parser_cocci_menhir.mly" +# 178 "parser_cocci_menhir.mly" ( m ) # 20314 "parser_cocci_menhir.ml" in @@ -20336,11 +20336,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 112 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Ast0_cocci.rule) # 20342 "parser_cocci_menhir.ml" ) = -# 151 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" ( _1 ) # 20346 "parser_cocci_menhir.ml" in @@ -20368,11 +20368,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_m_ in let _endpos = _endpos__2_ in let _v : ( -# 112 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Ast0_cocci.rule) # 20374 "parser_cocci_menhir.ml" ) = -# 151 "parser_cocci_menhir.mly" +# 173 "parser_cocci_menhir.mly" ( m ) # 20378 "parser_cocci_menhir.ml" in @@ -20400,11 +20400,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_m_ in let _endpos = _endpos__2_ in let _v : ( -# 112 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Ast0_cocci.rule) # 20406 "parser_cocci_menhir.ml" ) = -# 152 "parser_cocci_menhir.mly" +# 174 "parser_cocci_menhir.mly" ( m ) # 20410 "parser_cocci_menhir.ml" in @@ -20428,7 +20428,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_minus_start = -# 1668 "parser_cocci_menhir.mly" +# 1690 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.DECL(_1))] ) # 20434 "parser_cocci_menhir.ml" in @@ -20452,7 +20452,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_minus_start = -# 1669 "parser_cocci_menhir.mly" +# 1691 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Ty(_1))))] ) # 20458 "parser_cocci_menhir.ml" in @@ -20476,7 +20476,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_minus_start = -# 1670 "parser_cocci_menhir.mly" +# 1692 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.TopInit(_1))))] ) # 20482 "parser_cocci_menhir.ml" in @@ -20500,7 +20500,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_minus_start = -# 1672 "parser_cocci_menhir.mly" +# 1694 "parser_cocci_menhir.mly" ( List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1 ) # 20506 "parser_cocci_menhir.ml" in @@ -20527,14 +20527,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_ctype = Obj.magic b in let a : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 20533 "parser_cocci_menhir.ml" ) = Obj.magic a in let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_mzl_ctype_ = -# 1862 "parser_cocci_menhir.mly" +# 1884 "parser_cocci_menhir.mly" ( (P.clt2mcode "|" a, b) ) # 20540 "parser_cocci_menhir.ml" in @@ -20561,14 +20561,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_eexpr = Obj.magic b in let a : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 20567 "parser_cocci_menhir.ml" ) = Obj.magic a in let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_mzl_eexpr_ = -# 1862 "parser_cocci_menhir.mly" +# 1884 "parser_cocci_menhir.mly" ( (P.clt2mcode "|" a, b) ) # 20574 "parser_cocci_menhir.ml" in @@ -20595,14 +20595,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_fun_after_dots_or = Obj.magic b in let a : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 20601 "parser_cocci_menhir.ml" ) = Obj.magic a in let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_mzl_fun_after_dots_or_ = -# 1862 "parser_cocci_menhir.mly" +# 1884 "parser_cocci_menhir.mly" ( (P.clt2mcode "|" a, b) ) # 20608 "parser_cocci_menhir.ml" in @@ -20629,14 +20629,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_fun_start = Obj.magic b in let a : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 20635 "parser_cocci_menhir.ml" ) = Obj.magic a in let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_mzl_fun_start_ = -# 1862 "parser_cocci_menhir.mly" +# 1884 "parser_cocci_menhir.mly" ( (P.clt2mcode "|" a, b) ) # 20642 "parser_cocci_menhir.ml" in @@ -20663,14 +20663,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_rule_elem_statement = Obj.magic b in let a : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 20669 "parser_cocci_menhir.ml" ) = Obj.magic a in let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_mzl_rule_elem_statement_ = -# 1862 "parser_cocci_menhir.mly" +# 1884 "parser_cocci_menhir.mly" ( (P.clt2mcode "|" a, b) ) # 20676 "parser_cocci_menhir.ml" in @@ -20697,14 +20697,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_statement = Obj.magic b in let a : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 20703 "parser_cocci_menhir.ml" ) = Obj.magic a in let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_mzl_statement_ = -# 1862 "parser_cocci_menhir.mly" +# 1884 "parser_cocci_menhir.mly" ( (P.clt2mcode "|" a, b) ) # 20710 "parser_cocci_menhir.ml" in @@ -20728,7 +20728,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_name_opt_decl = -# 807 "parser_cocci_menhir.mly" +# 829 "parser_cocci_menhir.mly" ( _1 ) # 20734 "parser_cocci_menhir.ml" in @@ -20779,28 +20779,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp1 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 20785 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in let lp1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 20791 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let rp : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 20796 "parser_cocci_menhir.ml" ) = Obj.magic rp in let s : ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 20801 "parser_cocci_menhir.ml" ) = Obj.magic s in let lp : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 20806 "parser_cocci_menhir.ml" ) = Obj.magic lp in @@ -20808,7 +20808,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_t_ in let _endpos = _endpos_rp1_ in let _v : 'tv_name_opt_decl = -# 810 "parser_cocci_menhir.mly" +# 832 "parser_cocci_menhir.mly" ( let fnptr = Ast0.wrap (Ast0.FunctionPointer @@ -20843,7 +20843,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nest_after_dots = -# 1783 "parser_cocci_menhir.mly" +# 1805 "parser_cocci_menhir.mly" (_1@_2) # 20849 "parser_cocci_menhir.ml" in @@ -20871,7 +20871,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nest_after_dots = -# 1784 "parser_cocci_menhir.mly" +# 1806 "parser_cocci_menhir.mly" (_2) # 20877 "parser_cocci_menhir.ml" in @@ -20901,7 +20901,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nest_after_dots = -# 1785 "parser_cocci_menhir.mly" +# 1807 "parser_cocci_menhir.mly" ((Ast0.wrap(Ast0.Exp(_1)))::_2) # 20907 "parser_cocci_menhir.ml" in @@ -20918,7 +20918,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_nest_after_exp = -# 1793 "parser_cocci_menhir.mly" +# 1815 "parser_cocci_menhir.mly" ([]) # 20924 "parser_cocci_menhir.ml" in @@ -20948,7 +20948,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nest_after_exp = -# 1794 "parser_cocci_menhir.mly" +# 1816 "parser_cocci_menhir.mly" (_1::_2) # 20954 "parser_cocci_menhir.ml" in @@ -20965,7 +20965,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_nest_after_stm = -# 1788 "parser_cocci_menhir.mly" +# 1810 "parser_cocci_menhir.mly" ([]) # 20971 "parser_cocci_menhir.ml" in @@ -20995,7 +20995,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nest_after_stm = -# 1789 "parser_cocci_menhir.mly" +# 1811 "parser_cocci_menhir.mly" (_1::_2) # 21001 "parser_cocci_menhir.ml" in @@ -21025,7 +21025,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nest_after_stm = -# 1790 "parser_cocci_menhir.mly" +# 1812 "parser_cocci_menhir.mly" (_1@_2) # 21031 "parser_cocci_menhir.ml" in @@ -21056,20 +21056,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let c : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 21062 "parser_cocci_menhir.ml" ) = Obj.magic c in let e : 'tv_expr_dots_TEllipsis_ = Obj.magic e in let _1 : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 21068 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos_c_ in let _v : 'tv_nest_expressions = -# 1196 "parser_cocci_menhir.mly" +# 1218 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.NestExpr(P.clt2mcode "<..." _1, Ast0.wrap(Ast0.DOTS(e (P.mkedots "..."))), P.clt2mcode "...>" c, None, false)) ) @@ -21102,20 +21102,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let c : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 21108 "parser_cocci_menhir.ml" ) = Obj.magic c in let e : 'tv_expr_dots_TEllipsis_ = Obj.magic e in let _1 : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 21114 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos_c_ in let _v : 'tv_nest_expressions = -# 1200 "parser_cocci_menhir.mly" +# 1222 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.NestExpr(P.clt2mcode "<+..." _1, Ast0.wrap(Ast0.DOTS(e (P.mkedots "..."))), P.clt2mcode "...+>" c, None, true)) ) @@ -21141,7 +21141,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_nest_start = -# 1780 "parser_cocci_menhir.mly" +# 1802 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS(_1)) ) # 21147 "parser_cocci_menhir.ml" in @@ -21163,11 +21163,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 146 "parser_cocci_menhir.mly" +# 168 "parser_cocci_menhir.mly" (unit) # 21169 "parser_cocci_menhir.ml" ) = -# 1925 "parser_cocci_menhir.mly" +# 1947 "parser_cocci_menhir.mly" ( () ) # 21173 "parser_cocci_menhir.ml" in @@ -21193,11 +21193,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 146 "parser_cocci_menhir.mly" +# 168 "parser_cocci_menhir.mly" (unit) # 21199 "parser_cocci_menhir.ml" ) = -# 1926 "parser_cocci_menhir.mly" +# 1948 "parser_cocci_menhir.mly" ( () ) # 21203 "parser_cocci_menhir.ml" in @@ -21219,11 +21219,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 146 "parser_cocci_menhir.mly" +# 168 "parser_cocci_menhir.mly" (unit) # 21225 "parser_cocci_menhir.ml" ) = -# 1927 "parser_cocci_menhir.mly" +# 1949 "parser_cocci_menhir.mly" ( () ) # 21229 "parser_cocci_menhir.ml" in @@ -21253,7 +21253,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_g_ in let _endpos = _endpos_dg_ in let _v : 'tv_no_dot_start_end_dexpr_edots_when_TEllipsis_eexpr__ = -# 1364 "parser_cocci_menhir.mly" +# 1386 "parser_cocci_menhir.mly" ( function dot_builder -> g :: (List.concat(List.map (function (d,g) -> [dot_builder d;g]) dg)) ) # 21260 "parser_cocci_menhir.ml" @@ -21275,7 +21275,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let x : ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 21281 "parser_cocci_menhir.ml" ) = Obj.magic x in @@ -21309,7 +21309,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let xs : 'tv_nonempty_list_TMul_ = Obj.magic xs in let x : ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 21315 "parser_cocci_menhir.ml" ) = Obj.magic x in @@ -21344,7 +21344,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_i_ in let _v : 'tv_not_ceq = -# 1501 "parser_cocci_menhir.mly" +# 1523 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -21384,7 +21384,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_not_ceq = -# 1507 "parser_cocci_menhir.mly" +# 1529 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -21416,7 +21416,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_i_ in let _v : 'tv_not_eqe = -# 1482 "parser_cocci_menhir.mly" +# 1504 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -21457,7 +21457,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_not_eqe = -# 1489 "parser_cocci_menhir.mly" +# 1511 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -21493,7 +21493,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_i_ in let _v : 'tv_not_eqid = -# 1461 "parser_cocci_menhir.mly" +# 1483 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -21535,7 +21535,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_not_eqid = -# 1469 "parser_cocci_menhir.mly" +# 1491 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -21568,7 +21568,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_i_ in let _v : 'tv_not_pos = -# 1521 "parser_cocci_menhir.mly" +# 1543 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -21613,7 +21613,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_not_pos = -# 1532 "parser_cocci_menhir.mly" +# 1554 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -21649,7 +21649,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_one_dec_decl_ = -# 1606 "parser_cocci_menhir.mly" +# 1628 "parser_cocci_menhir.mly" ( _1 ) # 21655 "parser_cocci_menhir.ml" in @@ -21670,14 +21670,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 44 "parser_cocci_menhir.mly" +# 66 "parser_cocci_menhir.mly" (Parse_aux.list_info) # 21676 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_one_dec_decl_ = -# 1608 "parser_cocci_menhir.mly" +# 1630 "parser_cocci_menhir.mly" ( let (nm,lenname,pure,clt) = _1 in let nm = P.clt2mcode nm clt in let lenname = @@ -21707,7 +21707,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_one_dec_name_opt_decl_ = -# 1606 "parser_cocci_menhir.mly" +# 1628 "parser_cocci_menhir.mly" ( _1 ) # 21713 "parser_cocci_menhir.ml" in @@ -21728,14 +21728,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 44 "parser_cocci_menhir.mly" +# 66 "parser_cocci_menhir.mly" (Parse_aux.list_info) # 21734 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_one_dec_name_opt_decl_ = -# 1608 "parser_cocci_menhir.mly" +# 1630 "parser_cocci_menhir.mly" ( let (nm,lenname,pure,clt) = _1 in let nm = P.clt2mcode nm clt in let lenname = @@ -21767,7 +21767,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 21773 "parser_cocci_menhir.ml" ) = Obj.magic pv in @@ -21775,7 +21775,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_t_ in let _endpos = _endpos_pv_ in let _v : 'tv_one_decl_var = -# 985 "parser_cocci_menhir.mly" +# 1007 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.TyDecl(t,P.clt2mcode ";" pv)) ) # 21781 "parser_cocci_menhir.ml" in @@ -21806,7 +21806,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 21812 "parser_cocci_menhir.ml" ) = Obj.magic pv in @@ -21822,7 +21822,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 987 "parser_cocci_menhir.mly" +# 1009 "parser_cocci_menhir.mly" ( let (id,fn) = d in Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) ) # 21829 "parser_cocci_menhir.ml" @@ -21859,7 +21859,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 21865 "parser_cocci_menhir.ml" ) = Obj.magic pv in @@ -21877,7 +21877,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 987 "parser_cocci_menhir.mly" +# 1009 "parser_cocci_menhir.mly" ( let (id,fn) = d in Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) ) # 21884 "parser_cocci_menhir.ml" @@ -21902,7 +21902,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_f_ in let _endpos = _endpos_f_ in let _v : 'tv_one_decl_var = -# 989 "parser_cocci_menhir.mly" +# 1011 "parser_cocci_menhir.mly" ( f ) # 21908 "parser_cocci_menhir.ml" in @@ -21943,13 +21943,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 21949 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 21955 "parser_cocci_menhir.ml" ) = Obj.magic q in @@ -21965,7 +21965,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 991 "parser_cocci_menhir.mly" +# 1013 "parser_cocci_menhir.mly" ( let (id,fn) = d in Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)) ) # 21972 "parser_cocci_menhir.ml" @@ -22012,13 +22012,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 22018 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 22024 "parser_cocci_menhir.ml" ) = Obj.magic q in @@ -22036,7 +22036,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 991 "parser_cocci_menhir.mly" +# 1013 "parser_cocci_menhir.mly" ( let (id,fn) = d in Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)) ) # 22043 "parser_cocci_menhir.ml" @@ -22068,7 +22068,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 22074 "parser_cocci_menhir.ml" ) = Obj.magic pv in @@ -22091,7 +22091,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 996 "parser_cocci_menhir.mly" +# 1018 "parser_cocci_menhir.mly" ( let (id,fn) = d in let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) ) @@ -22129,7 +22129,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 22135 "parser_cocci_menhir.ml" ) = Obj.magic pv in @@ -22154,7 +22154,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 996 "parser_cocci_menhir.mly" +# 1018 "parser_cocci_menhir.mly" ( let (id,fn) = d in let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) ) @@ -22192,7 +22192,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 22198 "parser_cocci_menhir.ml" ) = Obj.magic pv in @@ -22217,7 +22217,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 996 "parser_cocci_menhir.mly" +# 1018 "parser_cocci_menhir.mly" ( let (id,fn) = d in let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) ) @@ -22260,7 +22260,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 22266 "parser_cocci_menhir.ml" ) = Obj.magic pv in @@ -22287,7 +22287,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 996 "parser_cocci_menhir.mly" +# 1018 "parser_cocci_menhir.mly" ( let (id,fn) = d in let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) ) @@ -22330,13 +22330,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 22336 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 22342 "parser_cocci_menhir.ml" ) = Obj.magic q in @@ -22359,7 +22359,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 1001 "parser_cocci_menhir.mly" +# 1023 "parser_cocci_menhir.mly" ( let (id,fn) = d in !Data.add_type_name (P.id2name i); let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in @@ -22409,13 +22409,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 22415 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 22421 "parser_cocci_menhir.ml" ) = Obj.magic q in @@ -22440,7 +22440,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 1001 "parser_cocci_menhir.mly" +# 1023 "parser_cocci_menhir.mly" ( let (id,fn) = d in !Data.add_type_name (P.id2name i); let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in @@ -22490,13 +22490,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 22496 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 22502 "parser_cocci_menhir.ml" ) = Obj.magic q in @@ -22521,7 +22521,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 1001 "parser_cocci_menhir.mly" +# 1023 "parser_cocci_menhir.mly" ( let (id,fn) = d in !Data.add_type_name (P.id2name i); let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in @@ -22576,13 +22576,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 22582 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 22588 "parser_cocci_menhir.ml" ) = Obj.magic q in @@ -22609,7 +22609,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 1001 "parser_cocci_menhir.mly" +# 1023 "parser_cocci_menhir.mly" ( let (id,fn) = d in !Data.add_type_name (P.id2name i); let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in @@ -22674,34 +22674,34 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 22680 "parser_cocci_menhir.ml" ) = Obj.magic pv in let rp2 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 22685 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 22691 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 22696 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 22702 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 22707 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in @@ -22716,7 +22716,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 1011 "parser_cocci_menhir.mly" +# 1033 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -22788,34 +22788,34 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 22794 "parser_cocci_menhir.ml" ) = Obj.magic pv in let rp2 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 22799 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 22805 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 22810 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 22816 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 22821 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in @@ -22832,7 +22832,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 1011 "parser_cocci_menhir.mly" +# 1033 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -22879,18 +22879,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _5 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 22885 "parser_cocci_menhir.ml" ) = Obj.magic _5 in let _4 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 22890 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr_list_option = Obj.magic _3 in let _2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 22896 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -22898,7 +22898,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : 'tv_one_decl_var = -# 1019 "parser_cocci_menhir.mly" +# 1041 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.MacroDecl(_1,P.clt2mcode "(" _2,_3, P.clt2mcode ")" _4,P.clt2mcode ";" _5)) ) # 22905 "parser_cocci_menhir.ml" @@ -22970,40 +22970,40 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 22976 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 22982 "parser_cocci_menhir.ml" ) = Obj.magic q in let rp2 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 22987 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 22993 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 22998 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 23004 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 23009 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in @@ -23018,7 +23018,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 1025 "parser_cocci_menhir.mly" +# 1047 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -23100,40 +23100,40 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 23106 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 23112 "parser_cocci_menhir.ml" ) = Obj.magic q in let rp2 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 23117 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 23123 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 23128 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 23134 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 23139 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in @@ -23150,7 +23150,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 1025 "parser_cocci_menhir.mly" +# 1047 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -23378,7 +23378,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_plus_after_dots = -# 1730 "parser_cocci_menhir.mly" +# 1752 "parser_cocci_menhir.mly" ([]) # 23384 "parser_cocci_menhir.ml" in @@ -23406,7 +23406,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_dots = -# 1731 "parser_cocci_menhir.mly" +# 1753 "parser_cocci_menhir.mly" (_2) # 23412 "parser_cocci_menhir.ml" in @@ -23436,7 +23436,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_dots = -# 1733 "parser_cocci_menhir.mly" +# 1755 "parser_cocci_menhir.mly" ( (Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))))::_2 ) # 23442 "parser_cocci_menhir.ml" in @@ -23466,7 +23466,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_dots = -# 1734 "parser_cocci_menhir.mly" +# 1756 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DECL(_1))::_2 ) # 23472 "parser_cocci_menhir.ml" in @@ -23496,7 +23496,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_dots = -# 1736 "parser_cocci_menhir.mly" +# 1758 "parser_cocci_menhir.mly" ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 ) # 23502 "parser_cocci_menhir.ml" in @@ -23513,7 +23513,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_plus_after_exp = -# 1726 "parser_cocci_menhir.mly" +# 1748 "parser_cocci_menhir.mly" ([]) # 23519 "parser_cocci_menhir.ml" in @@ -23543,7 +23543,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_exp = -# 1727 "parser_cocci_menhir.mly" +# 1749 "parser_cocci_menhir.mly" ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 ) # 23549 "parser_cocci_menhir.ml" in @@ -23560,7 +23560,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_plus_after_stm = -# 1739 "parser_cocci_menhir.mly" +# 1761 "parser_cocci_menhir.mly" ([]) # 23566 "parser_cocci_menhir.ml" in @@ -23590,7 +23590,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_stm = -# 1740 "parser_cocci_menhir.mly" +# 1762 "parser_cocci_menhir.mly" ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 ) # 23596 "parser_cocci_menhir.ml" in @@ -23620,7 +23620,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_stm = -# 1741 "parser_cocci_menhir.mly" +# 1763 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DECL(_1))::_2 ) # 23626 "parser_cocci_menhir.ml" in @@ -23650,7 +23650,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_stm = -# 1743 "parser_cocci_menhir.mly" +# 1765 "parser_cocci_menhir.mly" ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 ) # 23656 "parser_cocci_menhir.ml" in @@ -23680,7 +23680,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_f_ in let _endpos = _endpos_b_ in let _v : 'tv_plus_body = -# 592 "parser_cocci_menhir.mly" +# 614 "parser_cocci_menhir.mly" ( Top_level.top_level (f@b(*@ew*)) ) # 23686 "parser_cocci_menhir.ml" in @@ -23710,7 +23710,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_f_ in let _endpos = _endpos_b_ in let _v : 'tv_plus_exp_body = -# 606 "parser_cocci_menhir.mly" +# 628 "parser_cocci_menhir.mly" ( Top_level.top_level (f@[b](*@ew*)) ) # 23716 "parser_cocci_menhir.ml" in @@ -23738,11 +23738,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 121 "parser_cocci_menhir.mly" +# 143 "parser_cocci_menhir.mly" (Ast0_cocci.rule) # 23744 "parser_cocci_menhir.ml" ) = -# 157 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" ( _1 ) # 23748 "parser_cocci_menhir.ml" in @@ -23770,11 +23770,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_p_ in let _endpos = _endpos__2_ in let _v : ( -# 121 "parser_cocci_menhir.mly" +# 143 "parser_cocci_menhir.mly" (Ast0_cocci.rule) # 23776 "parser_cocci_menhir.ml" ) = -# 157 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" ( p ) # 23780 "parser_cocci_menhir.ml" in @@ -23802,11 +23802,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_p_ in let _endpos = _endpos__2_ in let _v : ( -# 121 "parser_cocci_menhir.mly" +# 143 "parser_cocci_menhir.mly" (Ast0_cocci.rule) # 23808 "parser_cocci_menhir.ml" ) = -# 158 "parser_cocci_menhir.mly" +# 180 "parser_cocci_menhir.mly" ( p ) # 23812 "parser_cocci_menhir.ml" in @@ -23834,11 +23834,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 118 "parser_cocci_menhir.mly" +# 140 "parser_cocci_menhir.mly" (Ast0_cocci.rule) # 23840 "parser_cocci_menhir.ml" ) = -# 153 "parser_cocci_menhir.mly" +# 175 "parser_cocci_menhir.mly" ( _1 ) # 23844 "parser_cocci_menhir.ml" in @@ -23866,11 +23866,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_p_ in let _endpos = _endpos__2_ in let _v : ( -# 118 "parser_cocci_menhir.mly" +# 140 "parser_cocci_menhir.mly" (Ast0_cocci.rule) # 23872 "parser_cocci_menhir.ml" ) = -# 153 "parser_cocci_menhir.mly" +# 175 "parser_cocci_menhir.mly" ( p ) # 23876 "parser_cocci_menhir.ml" in @@ -23898,11 +23898,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_p_ in let _endpos = _endpos__2_ in let _v : ( -# 118 "parser_cocci_menhir.mly" +# 140 "parser_cocci_menhir.mly" (Ast0_cocci.rule) # 23904 "parser_cocci_menhir.ml" ) = -# 154 "parser_cocci_menhir.mly" +# 176 "parser_cocci_menhir.mly" ( p ) # 23908 "parser_cocci_menhir.ml" in @@ -23926,7 +23926,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_plus_start = -# 1715 "parser_cocci_menhir.mly" +# 1737 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Ty(_1))))] ) # 23932 "parser_cocci_menhir.ml" in @@ -23950,7 +23950,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_plus_start = -# 1716 "parser_cocci_menhir.mly" +# 1738 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.TopInit(_1))))] ) # 23956 "parser_cocci_menhir.ml" in @@ -23980,7 +23980,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_start = -# 1718 "parser_cocci_menhir.mly" +# 1740 "parser_cocci_menhir.mly" ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 ) # 23986 "parser_cocci_menhir.ml" in @@ -24010,7 +24010,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_start = -# 1720 "parser_cocci_menhir.mly" +# 1742 "parser_cocci_menhir.mly" ( (Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))))::_2 ) # 24016 "parser_cocci_menhir.ml" in @@ -24040,7 +24040,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_start = -# 1721 "parser_cocci_menhir.mly" +# 1743 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DECL(_1))::_2 ) # 24046 "parser_cocci_menhir.ml" in @@ -24070,7 +24070,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_start = -# 1723 "parser_cocci_menhir.mly" +# 1745 "parser_cocci_menhir.mly" ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 ) # 24076 "parser_cocci_menhir.ml" in @@ -24091,14 +24091,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 25 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (string) # 24097 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pnrule = -# 208 "parser_cocci_menhir.mly" +# 230 "parser_cocci_menhir.mly" ( Ast.Dep _1 ) # 24104 "parser_cocci_menhir.ml" in @@ -24123,14 +24123,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 25 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (string) # 24129 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_pnrule = -# 209 "parser_cocci_menhir.mly" +# 231 "parser_cocci_menhir.mly" ( Ast.AntiDep _2 ) # 24136 "parser_cocci_menhir.ml" in @@ -24155,14 +24155,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 25 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (string) # 24161 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_pnrule = -# 210 "parser_cocci_menhir.mly" +# 232 "parser_cocci_menhir.mly" ( Ast.EverDep _2 ) # 24168 "parser_cocci_menhir.ml" in @@ -24187,14 +24187,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 25 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (string) # 24193 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_pnrule = -# 211 "parser_cocci_menhir.mly" +# 233 "parser_cocci_menhir.mly" ( Ast.NeverDep _2 ) # 24200 "parser_cocci_menhir.ml" in @@ -24226,7 +24226,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_pnrule = -# 212 "parser_cocci_menhir.mly" +# 234 "parser_cocci_menhir.mly" ( _2 ) # 24232 "parser_cocci_menhir.ml" in @@ -24250,7 +24250,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1297 "parser_cocci_menhir.mly" +# 1319 "parser_cocci_menhir.mly" ( _1 ) # 24256 "parser_cocci_menhir.ml" in @@ -24286,13 +24286,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 80 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 24292 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 80 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 24298 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -24300,7 +24300,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1299 "parser_cocci_menhir.mly" +# 1321 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3, P.clt2mcode "]" _4)) ) # 24307 "parser_cocci_menhir.ml" @@ -24333,7 +24333,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_ident = Obj.magic _3 in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 24339 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -24341,7 +24341,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1302 "parser_cocci_menhir.mly" +# 1324 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) ) # 24347 "parser_cocci_menhir.ml" in @@ -24373,7 +24373,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_ident = Obj.magic _3 in let _2 : ( -# 82 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) # 24379 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -24381,7 +24381,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1304 "parser_cocci_menhir.mly" +# 1326 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2, _3)) ) # 24388 "parser_cocci_menhir.ml" @@ -24408,7 +24408,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 63 "parser_cocci_menhir.mly" +# 85 "parser_cocci_menhir.mly" (Data.clt) # 24414 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -24416,7 +24416,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1307 "parser_cocci_menhir.mly" +# 1329 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) ) # 24422 "parser_cocci_menhir.ml" in @@ -24442,7 +24442,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 63 "parser_cocci_menhir.mly" +# 85 "parser_cocci_menhir.mly" (Data.clt) # 24448 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -24450,7 +24450,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1309 "parser_cocci_menhir.mly" +# 1331 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) ) # 24456 "parser_cocci_menhir.ml" in @@ -24486,13 +24486,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 24492 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr_list_option = Obj.magic _3 in let _2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 24498 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -24500,7 +24500,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1311 "parser_cocci_menhir.mly" +# 1333 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2, _3, P.clt2mcode ")" _4)) ) @@ -24526,7 +24526,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1297 "parser_cocci_menhir.mly" +# 1319 "parser_cocci_menhir.mly" ( _1 ) # 24532 "parser_cocci_menhir.ml" in @@ -24562,13 +24562,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 80 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 24568 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 80 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 24574 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -24576,7 +24576,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1299 "parser_cocci_menhir.mly" +# 1321 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3, P.clt2mcode "]" _4)) ) # 24583 "parser_cocci_menhir.ml" @@ -24609,7 +24609,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_ident = Obj.magic _3 in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 24615 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -24617,7 +24617,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1302 "parser_cocci_menhir.mly" +# 1324 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) ) # 24623 "parser_cocci_menhir.ml" in @@ -24649,7 +24649,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_ident = Obj.magic _3 in let _2 : ( -# 82 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) # 24655 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -24657,7 +24657,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1304 "parser_cocci_menhir.mly" +# 1326 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2, _3)) ) # 24664 "parser_cocci_menhir.ml" @@ -24684,7 +24684,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 63 "parser_cocci_menhir.mly" +# 85 "parser_cocci_menhir.mly" (Data.clt) # 24690 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -24692,7 +24692,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1307 "parser_cocci_menhir.mly" +# 1329 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) ) # 24698 "parser_cocci_menhir.ml" in @@ -24718,7 +24718,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 63 "parser_cocci_menhir.mly" +# 85 "parser_cocci_menhir.mly" (Data.clt) # 24724 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -24726,7 +24726,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1309 "parser_cocci_menhir.mly" +# 1331 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) ) # 24732 "parser_cocci_menhir.ml" in @@ -24762,13 +24762,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 24768 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr_list_option = Obj.magic _3 in let _2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 24774 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -24776,7 +24776,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1311 "parser_cocci_menhir.mly" +# 1333 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2, _3, P.clt2mcode ")" _4)) ) @@ -24802,7 +24802,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1297 "parser_cocci_menhir.mly" +# 1319 "parser_cocci_menhir.mly" ( _1 ) # 24808 "parser_cocci_menhir.ml" in @@ -24838,13 +24838,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 80 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 24844 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 80 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 24850 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -24852,7 +24852,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1299 "parser_cocci_menhir.mly" +# 1321 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3, P.clt2mcode "]" _4)) ) # 24859 "parser_cocci_menhir.ml" @@ -24885,7 +24885,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_ident = Obj.magic _3 in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 24891 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -24893,7 +24893,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1302 "parser_cocci_menhir.mly" +# 1324 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) ) # 24899 "parser_cocci_menhir.ml" in @@ -24925,7 +24925,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_ident = Obj.magic _3 in let _2 : ( -# 82 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) # 24931 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -24933,7 +24933,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1304 "parser_cocci_menhir.mly" +# 1326 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2, _3)) ) # 24940 "parser_cocci_menhir.ml" @@ -24960,7 +24960,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 63 "parser_cocci_menhir.mly" +# 85 "parser_cocci_menhir.mly" (Data.clt) # 24966 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -24968,7 +24968,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1307 "parser_cocci_menhir.mly" +# 1329 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) ) # 24974 "parser_cocci_menhir.ml" in @@ -24994,7 +24994,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 63 "parser_cocci_menhir.mly" +# 85 "parser_cocci_menhir.mly" (Data.clt) # 25000 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -25002,7 +25002,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1309 "parser_cocci_menhir.mly" +# 1331 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) ) # 25008 "parser_cocci_menhir.ml" in @@ -25038,13 +25038,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 25044 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr_list_option = Obj.magic _3 in let _2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 25050 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -25052,7 +25052,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1311 "parser_cocci_menhir.mly" +# 1333 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2, _3, P.clt2mcode ")" _4)) ) @@ -25078,7 +25078,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_postfix_expr_expr_invalid_ = -# 1297 "parser_cocci_menhir.mly" +# 1319 "parser_cocci_menhir.mly" ( _1 ) # 25084 "parser_cocci_menhir.ml" in @@ -25114,13 +25114,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 80 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 25120 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 80 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 25126 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -25128,7 +25128,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_postfix_expr_expr_invalid_ = -# 1299 "parser_cocci_menhir.mly" +# 1321 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3, P.clt2mcode "]" _4)) ) # 25135 "parser_cocci_menhir.ml" @@ -25161,7 +25161,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_ident = Obj.magic _3 in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 25167 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -25169,7 +25169,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_postfix_expr_expr_invalid_ = -# 1302 "parser_cocci_menhir.mly" +# 1324 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) ) # 25175 "parser_cocci_menhir.ml" in @@ -25201,7 +25201,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_ident = Obj.magic _3 in let _2 : ( -# 82 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) # 25207 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -25209,7 +25209,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_postfix_expr_expr_invalid_ = -# 1304 "parser_cocci_menhir.mly" +# 1326 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2, _3)) ) # 25216 "parser_cocci_menhir.ml" @@ -25236,7 +25236,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 63 "parser_cocci_menhir.mly" +# 85 "parser_cocci_menhir.mly" (Data.clt) # 25242 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -25244,7 +25244,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_postfix_expr_expr_invalid_ = -# 1307 "parser_cocci_menhir.mly" +# 1329 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) ) # 25250 "parser_cocci_menhir.ml" in @@ -25270,7 +25270,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 63 "parser_cocci_menhir.mly" +# 85 "parser_cocci_menhir.mly" (Data.clt) # 25276 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -25278,7 +25278,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_postfix_expr_expr_invalid_ = -# 1309 "parser_cocci_menhir.mly" +# 1331 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) ) # 25284 "parser_cocci_menhir.ml" in @@ -25314,13 +25314,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 25320 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr_list_option = Obj.magic _3 in let _2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 25326 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -25328,7 +25328,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_postfix_expr_expr_invalid_ = -# 1311 "parser_cocci_menhir.mly" +# 1333 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2, _3, P.clt2mcode ")" _4)) ) @@ -25354,7 +25354,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1316 "parser_cocci_menhir.mly" +# 1338 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Ident(_1)) ) # 25360 "parser_cocci_menhir.ml" in @@ -25375,14 +25375,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 25381 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1318 "parser_cocci_menhir.mly" +# 1340 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) # 25389 "parser_cocci_menhir.ml" @@ -25404,14 +25404,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 25410 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1321 "parser_cocci_menhir.mly" +# 1343 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) ) # 25418 "parser_cocci_menhir.ml" @@ -25433,14 +25433,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 25439 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1324 "parser_cocci_menhir.mly" +# 1346 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) ) # 25447 "parser_cocci_menhir.ml" @@ -25462,14 +25462,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 25468 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1327 "parser_cocci_menhir.mly" +# 1349 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) ) # 25476 "parser_cocci_menhir.ml" @@ -25491,14 +25491,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 45 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 25497 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1330 "parser_cocci_menhir.mly" +# 1352 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) ) @@ -25521,14 +25521,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 41 "parser_cocci_menhir.mly" +# 63 "parser_cocci_menhir.mly" (Parse_aux.expinfo) # 25527 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1334 "parser_cocci_menhir.mly" +# 1356 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) ) # 25535 "parser_cocci_menhir.ml" @@ -25550,14 +25550,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 45 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 25556 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1337 "parser_cocci_menhir.mly" +# 1359 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) ) @@ -25580,14 +25580,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 45 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 25586 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1341 "parser_cocci_menhir.mly" +# 1363 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) ) @@ -25610,14 +25610,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 45 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 25616 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1345 "parser_cocci_menhir.mly" +# 1367 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) ) @@ -25650,20 +25650,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 25656 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 25662 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1349 "parser_cocci_menhir.mly" +# 1371 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2, P.clt2mcode ")" _3)) ) # 25670 "parser_cocci_menhir.ml" @@ -25695,20 +25695,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 25701 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in let _1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 25707 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1352 "parser_cocci_menhir.mly" +# 1374 "parser_cocci_menhir.mly" ( let (mids,code) = _2 in Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1, code, mids, @@ -25735,7 +25735,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1356 "parser_cocci_menhir.mly" +# 1378 "parser_cocci_menhir.mly" ( _1 ) # 25741 "parser_cocci_menhir.ml" in @@ -25759,7 +25759,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1316 "parser_cocci_menhir.mly" +# 1338 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Ident(_1)) ) # 25765 "parser_cocci_menhir.ml" in @@ -25780,14 +25780,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 25786 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1318 "parser_cocci_menhir.mly" +# 1340 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) # 25794 "parser_cocci_menhir.ml" @@ -25809,14 +25809,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 25815 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1321 "parser_cocci_menhir.mly" +# 1343 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) ) # 25823 "parser_cocci_menhir.ml" @@ -25838,14 +25838,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 25844 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1324 "parser_cocci_menhir.mly" +# 1346 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) ) # 25852 "parser_cocci_menhir.ml" @@ -25867,14 +25867,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 25873 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1327 "parser_cocci_menhir.mly" +# 1349 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) ) # 25881 "parser_cocci_menhir.ml" @@ -25896,14 +25896,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 45 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 25902 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1330 "parser_cocci_menhir.mly" +# 1352 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) ) @@ -25926,14 +25926,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 41 "parser_cocci_menhir.mly" +# 63 "parser_cocci_menhir.mly" (Parse_aux.expinfo) # 25932 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1334 "parser_cocci_menhir.mly" +# 1356 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) ) # 25940 "parser_cocci_menhir.ml" @@ -25955,14 +25955,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 45 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 25961 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1337 "parser_cocci_menhir.mly" +# 1359 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) ) @@ -25985,14 +25985,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 45 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 25991 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1341 "parser_cocci_menhir.mly" +# 1363 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) ) @@ -26015,14 +26015,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 45 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 26021 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1345 "parser_cocci_menhir.mly" +# 1367 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) ) @@ -26055,20 +26055,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 26061 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 26067 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1349 "parser_cocci_menhir.mly" +# 1371 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2, P.clt2mcode ")" _3)) ) # 26075 "parser_cocci_menhir.ml" @@ -26100,20 +26100,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 26106 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in let _1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 26112 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1352 "parser_cocci_menhir.mly" +# 1374 "parser_cocci_menhir.mly" ( let (mids,code) = _2 in Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1, code, mids, @@ -26140,7 +26140,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1356 "parser_cocci_menhir.mly" +# 1378 "parser_cocci_menhir.mly" ( _1 ) # 26146 "parser_cocci_menhir.ml" in @@ -26164,7 +26164,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1316 "parser_cocci_menhir.mly" +# 1338 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Ident(_1)) ) # 26170 "parser_cocci_menhir.ml" in @@ -26185,14 +26185,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 26191 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1318 "parser_cocci_menhir.mly" +# 1340 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) # 26199 "parser_cocci_menhir.ml" @@ -26214,14 +26214,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 26220 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1321 "parser_cocci_menhir.mly" +# 1343 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) ) # 26228 "parser_cocci_menhir.ml" @@ -26243,14 +26243,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 26249 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1324 "parser_cocci_menhir.mly" +# 1346 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) ) # 26257 "parser_cocci_menhir.ml" @@ -26272,14 +26272,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 26278 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1327 "parser_cocci_menhir.mly" +# 1349 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) ) # 26286 "parser_cocci_menhir.ml" @@ -26301,14 +26301,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 45 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 26307 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1330 "parser_cocci_menhir.mly" +# 1352 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) ) @@ -26331,14 +26331,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 41 "parser_cocci_menhir.mly" +# 63 "parser_cocci_menhir.mly" (Parse_aux.expinfo) # 26337 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1334 "parser_cocci_menhir.mly" +# 1356 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) ) # 26345 "parser_cocci_menhir.ml" @@ -26360,14 +26360,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 45 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 26366 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1337 "parser_cocci_menhir.mly" +# 1359 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) ) @@ -26390,14 +26390,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 45 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 26396 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1341 "parser_cocci_menhir.mly" +# 1363 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) ) @@ -26420,14 +26420,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 45 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 26426 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1345 "parser_cocci_menhir.mly" +# 1367 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) ) @@ -26460,20 +26460,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 26466 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 26472 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1349 "parser_cocci_menhir.mly" +# 1371 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2, P.clt2mcode ")" _3)) ) # 26480 "parser_cocci_menhir.ml" @@ -26505,20 +26505,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 26511 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in let _1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 26517 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1352 "parser_cocci_menhir.mly" +# 1374 "parser_cocci_menhir.mly" ( let (mids,code) = _2 in Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1, code, mids, @@ -26545,7 +26545,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1356 "parser_cocci_menhir.mly" +# 1378 "parser_cocci_menhir.mly" ( _1 ) # 26551 "parser_cocci_menhir.ml" in @@ -26569,7 +26569,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1316 "parser_cocci_menhir.mly" +# 1338 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Ident(_1)) ) # 26575 "parser_cocci_menhir.ml" in @@ -26590,14 +26590,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 26596 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1318 "parser_cocci_menhir.mly" +# 1340 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) # 26604 "parser_cocci_menhir.ml" @@ -26619,14 +26619,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 26625 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1321 "parser_cocci_menhir.mly" +# 1343 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) ) # 26633 "parser_cocci_menhir.ml" @@ -26648,14 +26648,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 26654 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1324 "parser_cocci_menhir.mly" +# 1346 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) ) # 26662 "parser_cocci_menhir.ml" @@ -26677,14 +26677,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 26683 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1327 "parser_cocci_menhir.mly" +# 1349 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) ) # 26691 "parser_cocci_menhir.ml" @@ -26706,14 +26706,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 45 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 26712 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1330 "parser_cocci_menhir.mly" +# 1352 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) ) @@ -26736,14 +26736,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 41 "parser_cocci_menhir.mly" +# 63 "parser_cocci_menhir.mly" (Parse_aux.expinfo) # 26742 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1334 "parser_cocci_menhir.mly" +# 1356 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) ) # 26750 "parser_cocci_menhir.ml" @@ -26765,14 +26765,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 45 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 26771 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1337 "parser_cocci_menhir.mly" +# 1359 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) ) @@ -26795,14 +26795,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 45 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 26801 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1341 "parser_cocci_menhir.mly" +# 1363 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) ) @@ -26825,14 +26825,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 45 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 26831 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1345 "parser_cocci_menhir.mly" +# 1367 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) ) @@ -26865,20 +26865,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 26871 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 26877 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1349 "parser_cocci_menhir.mly" +# 1371 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2, P.clt2mcode ")" _3)) ) # 26885 "parser_cocci_menhir.ml" @@ -26910,20 +26910,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 26916 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_midzero_list_expr_eexpr_ = Obj.magic _2 in let _1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 26922 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1352 "parser_cocci_menhir.mly" +# 1374 "parser_cocci_menhir.mly" ( let (mids,code) = _2 in Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1, code, mids, @@ -26950,7 +26950,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1356 "parser_cocci_menhir.mly" +# 1378 "parser_cocci_menhir.mly" ( _1 ) # 26956 "parser_cocci_menhir.ml" in @@ -26972,7 +26972,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure = -# 168 "parser_cocci_menhir.mly" +# 190 "parser_cocci_menhir.mly" ( Ast0.Pure ) # 26978 "parser_cocci_menhir.ml" in @@ -26994,7 +26994,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure = -# 169 "parser_cocci_menhir.mly" +# 191 "parser_cocci_menhir.mly" ( Ast0.Context ) # 27000 "parser_cocci_menhir.ml" in @@ -27020,7 +27020,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_pure = -# 170 "parser_cocci_menhir.mly" +# 192 "parser_cocci_menhir.mly" ( Ast0.PureContext ) # 27026 "parser_cocci_menhir.ml" in @@ -27046,7 +27046,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_pure = -# 171 "parser_cocci_menhir.mly" +# 193 "parser_cocci_menhir.mly" ( Ast0.PureContext ) # 27052 "parser_cocci_menhir.ml" in @@ -27063,7 +27063,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_pure = -# 172 "parser_cocci_menhir.mly" +# 194 "parser_cocci_menhir.mly" ( Ast0.Impure ) # 27069 "parser_cocci_menhir.ml" in @@ -27084,14 +27084,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 27090 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident = -# 1370 "parser_cocci_menhir.mly" +# 1392 "parser_cocci_menhir.mly" ( _1 ) # 27097 "parser_cocci_menhir.ml" in @@ -27115,7 +27115,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1376 "parser_cocci_menhir.mly" +# 1398 "parser_cocci_menhir.mly" ( (None,P.id2name _1) ) # 27121 "parser_cocci_menhir.ml" in @@ -27139,7 +27139,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1377 "parser_cocci_menhir.mly" +# 1399 "parser_cocci_menhir.mly" ( _1 ) # 27145 "parser_cocci_menhir.ml" in @@ -27161,7 +27161,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1378 "parser_cocci_menhir.mly" +# 1400 "parser_cocci_menhir.mly" ( (None, "identifier") ) # 27167 "parser_cocci_menhir.ml" in @@ -27183,7 +27183,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1379 "parser_cocci_menhir.mly" +# 1401 "parser_cocci_menhir.mly" ( (None, "expression") ) # 27189 "parser_cocci_menhir.ml" in @@ -27205,7 +27205,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1380 "parser_cocci_menhir.mly" +# 1402 "parser_cocci_menhir.mly" ( (None, "statement") ) # 27211 "parser_cocci_menhir.ml" in @@ -27227,7 +27227,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1381 "parser_cocci_menhir.mly" +# 1403 "parser_cocci_menhir.mly" ( (None, "function") ) # 27233 "parser_cocci_menhir.ml" in @@ -27249,7 +27249,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1382 "parser_cocci_menhir.mly" +# 1404 "parser_cocci_menhir.mly" ( (None, "local") ) # 27255 "parser_cocci_menhir.ml" in @@ -27271,7 +27271,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1383 "parser_cocci_menhir.mly" +# 1405 "parser_cocci_menhir.mly" ( (None, "type") ) # 27277 "parser_cocci_menhir.ml" in @@ -27293,7 +27293,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1384 "parser_cocci_menhir.mly" +# 1406 "parser_cocci_menhir.mly" ( (None, "parameter") ) # 27299 "parser_cocci_menhir.ml" in @@ -27315,7 +27315,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1385 "parser_cocci_menhir.mly" +# 1407 "parser_cocci_menhir.mly" ( (None, "idexpression") ) # 27321 "parser_cocci_menhir.ml" in @@ -27337,7 +27337,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1386 "parser_cocci_menhir.mly" +# 1408 "parser_cocci_menhir.mly" ( (None, "initialiser") ) # 27343 "parser_cocci_menhir.ml" in @@ -27359,7 +27359,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1387 "parser_cocci_menhir.mly" +# 1409 "parser_cocci_menhir.mly" ( (None, "list") ) # 27365 "parser_cocci_menhir.ml" in @@ -27381,7 +27381,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1388 "parser_cocci_menhir.mly" +# 1410 "parser_cocci_menhir.mly" ( (None, "fresh") ) # 27387 "parser_cocci_menhir.ml" in @@ -27403,7 +27403,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1389 "parser_cocci_menhir.mly" +# 1411 "parser_cocci_menhir.mly" ( (None, "constant") ) # 27409 "parser_cocci_menhir.ml" in @@ -27425,7 +27425,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1390 "parser_cocci_menhir.mly" +# 1412 "parser_cocci_menhir.mly" ( (None, "error") ) # 27431 "parser_cocci_menhir.ml" in @@ -27447,7 +27447,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1391 "parser_cocci_menhir.mly" +# 1413 "parser_cocci_menhir.mly" ( (None, "words") ) # 27453 "parser_cocci_menhir.ml" in @@ -27469,7 +27469,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1392 "parser_cocci_menhir.mly" +# 1414 "parser_cocci_menhir.mly" ( (None, "pure") ) # 27475 "parser_cocci_menhir.ml" in @@ -27491,7 +27491,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1393 "parser_cocci_menhir.mly" +# 1415 "parser_cocci_menhir.mly" ( (None, "context") ) # 27497 "parser_cocci_menhir.ml" in @@ -27513,7 +27513,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1394 "parser_cocci_menhir.mly" +# 1416 "parser_cocci_menhir.mly" ( (None, "generated") ) # 27519 "parser_cocci_menhir.ml" in @@ -27535,7 +27535,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1395 "parser_cocci_menhir.mly" +# 1417 "parser_cocci_menhir.mly" ( (None, "typedef") ) # 27541 "parser_cocci_menhir.ml" in @@ -27557,7 +27557,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1396 "parser_cocci_menhir.mly" +# 1418 "parser_cocci_menhir.mly" ( (None, "declarer") ) # 27563 "parser_cocci_menhir.ml" in @@ -27579,7 +27579,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1397 "parser_cocci_menhir.mly" +# 1419 "parser_cocci_menhir.mly" ( (None, "iterator") ) # 27585 "parser_cocci_menhir.ml" in @@ -27601,7 +27601,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1398 "parser_cocci_menhir.mly" +# 1420 "parser_cocci_menhir.mly" ( (None, "name") ) # 27607 "parser_cocci_menhir.ml" in @@ -27623,7 +27623,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1399 "parser_cocci_menhir.mly" +# 1421 "parser_cocci_menhir.mly" ( (None, "position") ) # 27629 "parser_cocci_menhir.ml" in @@ -27653,7 +27653,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_i_ in let _endpos = _endpos_optc_ in let _v : 'tv_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_ = -# 1425 "parser_cocci_menhir.mly" +# 1447 "parser_cocci_menhir.mly" ( match optc with None -> (i, Ast0.NoConstraint) @@ -27687,7 +27687,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_i_ in let _endpos = _endpos_c_ in let _v : 'tv_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid_ = -# 1433 "parser_cocci_menhir.mly" +# 1455 "parser_cocci_menhir.mly" ( match c with None -> (i, Ast.IdNoConstraint) @@ -27715,7 +27715,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident_with_seed = -# 1402 "parser_cocci_menhir.mly" +# 1424 "parser_cocci_menhir.mly" ( (_1,Ast.NoVal) ) # 27721 "parser_cocci_menhir.ml" in @@ -27749,7 +27749,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_pure_ident_or_meta_ident_with_seed = -# 1405 "parser_cocci_menhir.mly" +# 1427 "parser_cocci_menhir.mly" ( match _3 with [Ast.SeedString s] -> (_1,Ast.StringSeed s) | _ -> (_1,Ast.ListSeed _3) ) @@ -27781,7 +27781,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_i_ in let _endpos = _endpos_l_ in let _v : 'tv_pure_ident_or_meta_ident_with_x_eq_not_ceq_ = -# 1419 "parser_cocci_menhir.mly" +# 1441 "parser_cocci_menhir.mly" ( (i, l) ) @@ -27813,7 +27813,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_i_ in let _endpos = _endpos_l_ in let _v : 'tv_pure_ident_or_meta_ident_with_x_eq_not_pos_ = -# 1419 "parser_cocci_menhir.mly" +# 1441 "parser_cocci_menhir.mly" ( (i, l) ) @@ -27839,7 +27839,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_re_ in let _endpos = _endpos_re_ in let _v : 'tv_re_or_not_eqe = -# 1477 "parser_cocci_menhir.mly" +# 1499 "parser_cocci_menhir.mly" (Ast0.NotIdCstrt (re)) # 27845 "parser_cocci_menhir.ml" in @@ -27863,7 +27863,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_ne_ in let _endpos = _endpos_ne_ in let _v : 'tv_re_or_not_eqe = -# 1478 "parser_cocci_menhir.mly" +# 1500 "parser_cocci_menhir.mly" (Ast0.NotExpCstrt (ne)) # 27869 "parser_cocci_menhir.ml" in @@ -27887,7 +27887,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_re_ in let _endpos = _endpos_re_ in let _v : 'tv_re_or_not_eqid = -# 1440 "parser_cocci_menhir.mly" +# 1462 "parser_cocci_menhir.mly" (re) # 27893 "parser_cocci_menhir.ml" in @@ -27911,7 +27911,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_ne_ in let _endpos = _endpos_ne_ in let _v : 'tv_re_or_not_eqid = -# 1441 "parser_cocci_menhir.mly" +# 1463 "parser_cocci_menhir.mly" (ne) # 27917 "parser_cocci_menhir.ml" in @@ -27936,14 +27936,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let re : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 27942 "parser_cocci_menhir.ml" ) = Obj.magic re in let _startpos = _startpos__1_ in let _endpos = _endpos_re_ in let _v : 'tv_regexp_eqid = -# 1445 "parser_cocci_menhir.mly" +# 1467 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -27973,14 +27973,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let re : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 27979 "parser_cocci_menhir.ml" ) = Obj.magic re in let _startpos = _startpos__1_ in let _endpos = _endpos_re_ in let _v : 'tv_regexp_eqid = -# 1452 "parser_cocci_menhir.mly" +# 1474 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -28002,11 +28002,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : ( -# 109 "parser_cocci_menhir.mly" +# 131 "parser_cocci_menhir.mly" (unit) # 28008 "parser_cocci_menhir.ml" ) = -# 150 "parser_cocci_menhir.mly" +# 172 "parser_cocci_menhir.mly" ( ) # 28012 "parser_cocci_menhir.ml" in @@ -28030,7 +28030,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_rule_elem_statement = -# 882 "parser_cocci_menhir.mly" +# 904 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),_1)) ) # 28036 "parser_cocci_menhir.ml" in @@ -28056,7 +28056,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 28062 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -28064,7 +28064,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_rule_elem_statement = -# 883 "parser_cocci_menhir.mly" +# 905 "parser_cocci_menhir.mly" ( P.exp_stm _1 _2 ) # 28070 "parser_cocci_menhir.ml" in @@ -28095,20 +28095,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 28101 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 28107 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_rule_elem_statement = -# 884 "parser_cocci_menhir.mly" +# 906 "parser_cocci_menhir.mly" ( P.ret_exp _1 _2 _3 ) # 28114 "parser_cocci_menhir.ml" in @@ -28134,19 +28134,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 28140 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 28145 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_rule_elem_statement = -# 885 "parser_cocci_menhir.mly" +# 907 "parser_cocci_menhir.mly" ( P.ret _1 _2 ) # 28152 "parser_cocci_menhir.ml" in @@ -28172,19 +28172,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 28178 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 36 "parser_cocci_menhir.mly" +# 58 "parser_cocci_menhir.mly" (Data.clt) # 28183 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_rule_elem_statement = -# 886 "parser_cocci_menhir.mly" +# 908 "parser_cocci_menhir.mly" ( P.break _1 _2 ) # 28190 "parser_cocci_menhir.ml" in @@ -28210,19 +28210,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 28216 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 36 "parser_cocci_menhir.mly" +# 58 "parser_cocci_menhir.mly" (Data.clt) # 28221 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_rule_elem_statement = -# 887 "parser_cocci_menhir.mly" +# 909 "parser_cocci_menhir.mly" ( P.cont _1 _2 ) # 28228 "parser_cocci_menhir.ml" in @@ -28253,20 +28253,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 28259 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_midzero_list_rule_elem_statement_rule_elem_statement_ = Obj.magic _2 in let _1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 28265 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_rule_elem_statement = -# 889 "parser_cocci_menhir.mly" +# 911 "parser_cocci_menhir.mly" ( let (mids,code) = _2 in Ast0.wrap (Ast0.Disj(P.clt2mcode "(" _1, @@ -28326,7 +28326,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in let _v : ( -# 131 "parser_cocci_menhir.mly" +# 153 "parser_cocci_menhir.mly" (Ast_cocci.rulename) # 28332 "parser_cocci_menhir.ml" ) = let nm = @@ -28337,7 +28337,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 180 "parser_cocci_menhir.mly" +# 202 "parser_cocci_menhir.mly" ( P.make_cocci_rule_name_result nm d i a e ee ) # 28343 "parser_cocci_menhir.ml" in @@ -28399,7 +28399,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_x0_ in let _endpos = _endpos__8_ in let _v : ( -# 131 "parser_cocci_menhir.mly" +# 153 "parser_cocci_menhir.mly" (Ast_cocci.rulename) # 28405 "parser_cocci_menhir.ml" ) = let nm = @@ -28411,7 +28411,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 180 "parser_cocci_menhir.mly" +# 202 "parser_cocci_menhir.mly" ( P.make_cocci_rule_name_result nm d i a e ee ) # 28417 "parser_cocci_menhir.ml" in @@ -28471,11 +28471,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__8_ in let _v : ( -# 131 "parser_cocci_menhir.mly" +# 153 "parser_cocci_menhir.mly" (Ast_cocci.rulename) # 28477 "parser_cocci_menhir.ml" ) = -# 185 "parser_cocci_menhir.mly" +# 207 "parser_cocci_menhir.mly" ( P.make_generated_rule_name_result None d i a e ee ) # 28481 "parser_cocci_menhir.ml" in @@ -28517,11 +28517,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : ( -# 131 "parser_cocci_menhir.mly" +# 153 "parser_cocci_menhir.mly" (Ast_cocci.rulename) # 28523 "parser_cocci_menhir.ml" ) = -# 187 "parser_cocci_menhir.mly" +# 209 "parser_cocci_menhir.mly" ( P.make_script_rule_name_result lang d ) # 28527 "parser_cocci_menhir.ml" in @@ -28557,11 +28557,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 131 "parser_cocci_menhir.mly" +# 153 "parser_cocci_menhir.mly" (Ast_cocci.rulename) # 28563 "parser_cocci_menhir.ml" ) = -# 189 "parser_cocci_menhir.mly" +# 211 "parser_cocci_menhir.mly" ( P.make_initial_script_rule_name_result lang ) # 28567 "parser_cocci_menhir.ml" in @@ -28597,11 +28597,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 131 "parser_cocci_menhir.mly" +# 153 "parser_cocci_menhir.mly" (Ast_cocci.rulename) # 28603 "parser_cocci_menhir.ml" ) = -# 191 "parser_cocci_menhir.mly" +# 213 "parser_cocci_menhir.mly" ( P.make_final_script_rule_name_result lang ) # 28607 "parser_cocci_menhir.ml" in @@ -28645,7 +28645,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let cocci : 'tv_pure_ident = Obj.magic cocci in let _3 : ( -# 25 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (string) # 28651 "parser_cocci_menhir.ml" ) = Obj.magic _3 in @@ -28653,11 +28653,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_py_ in let _endpos = _endpos__6_ in let _v : ( -# 137 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * (string * string)) # 28659 "parser_cocci_menhir.ml" ) = -# 1930 "parser_cocci_menhir.mly" +# 1952 "parser_cocci_menhir.mly" ( (P.id2name py, (_3, P.id2name cocci)) ) # 28663 "parser_cocci_menhir.ml" in @@ -28678,14 +28678,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 28684 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_seed_elem = -# 1410 "parser_cocci_menhir.mly" +# 1432 "parser_cocci_menhir.mly" ( let (x,_) = _1 in Ast.SeedString x ) # 28691 "parser_cocci_menhir.ml" in @@ -28706,14 +28706,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 39 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (Parse_aux.idinfo) # 28712 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_seed_elem = -# 1411 "parser_cocci_menhir.mly" +# 1433 "parser_cocci_menhir.mly" ( let (x,_,_,_) = _1 in Ast.SeedId x ) # 28719 "parser_cocci_menhir.ml" in @@ -28744,14 +28744,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_pure_ident = Obj.magic _3 in let _1 : ( -# 25 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (string) # 28750 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_seed_elem = -# 1413 "parser_cocci_menhir.mly" +# 1435 "parser_cocci_menhir.mly" ( let nm = (_1,P.id2name _3) in P.check_meta(Ast.MetaIdDecl(Ast.NONE,nm)); Ast.SeedId nm ) @@ -28774,7 +28774,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let x : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 28780 "parser_cocci_menhir.ml" ) = Obj.magic x in @@ -28812,7 +28812,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let xs : 'tv_separated_nonempty_list_TComma_TString_ = Obj.magic xs in let x : ( -# 65 "parser_cocci_menhir.mly" +# 87 "parser_cocci_menhir.mly" (string * Data.clt) # 28818 "parser_cocci_menhir.ml" ) = Obj.magic x in @@ -29655,7 +29655,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_single_statement = -# 897 "parser_cocci_menhir.mly" +# 919 "parser_cocci_menhir.mly" ( _1 ) # 29661 "parser_cocci_menhir.ml" in @@ -29686,20 +29686,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 29692 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_midzero_list_statement_statement_ = Obj.magic _2 in let _1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 29698 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_single_statement = -# 901 "parser_cocci_menhir.mly" +# 923 "parser_cocci_menhir.mly" ( let (mids,code) = _2 in Ast0.wrap (Ast0.Disj(P.clt2mcode "(" _1, @@ -29727,7 +29727,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_statement = -# 824 "parser_cocci_menhir.mly" +# 846 "parser_cocci_menhir.mly" ( _1 ) # 29733 "parser_cocci_menhir.ml" in @@ -29748,14 +29748,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 29754 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_statement = -# 826 "parser_cocci_menhir.mly" +# 848 "parser_cocci_menhir.mly" ( P.meta_stm _1 ) # 29761 "parser_cocci_menhir.ml" in @@ -29781,7 +29781,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 29787 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -29789,7 +29789,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_statement = -# 828 "parser_cocci_menhir.mly" +# 850 "parser_cocci_menhir.mly" ( P.exp_stm _1 _2 ) # 29795 "parser_cocci_menhir.ml" in @@ -29831,25 +29831,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _5 : 'tv_single_statement = Obj.magic _5 in let _4 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 29837 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 29843 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 29848 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : 'tv_statement = -# 830 "parser_cocci_menhir.mly" +# 852 "parser_cocci_menhir.mly" ( P.ifthen _1 _2 _3 _4 _5 ) # 29855 "parser_cocci_menhir.ml" in @@ -29901,31 +29901,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _7 : 'tv_single_statement = Obj.magic _7 in let _6 : ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 29907 "parser_cocci_menhir.ml" ) = Obj.magic _6 in let _5 : 'tv_single_statement = Obj.magic _5 in let _4 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 29913 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 29919 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 29924 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in let _v : 'tv_statement = -# 832 "parser_cocci_menhir.mly" +# 854 "parser_cocci_menhir.mly" ( P.ifthenelse _1 _2 _3 _4 _5 _6 _7 ) # 29931 "parser_cocci_menhir.ml" in @@ -29987,37 +29987,37 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _9 : 'tv_single_statement = Obj.magic _9 in let _8 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 29993 "parser_cocci_menhir.ml" ) = Obj.magic _8 in let _7 : 'tv_option_eexpr_ = Obj.magic _7 in let _6 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 29999 "parser_cocci_menhir.ml" ) = Obj.magic _6 in let _5 : 'tv_option_eexpr_ = Obj.magic _5 in let _4 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 30005 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_option_eexpr_ = Obj.magic _3 in let _2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 30011 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 30016 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__9_ in let _v : 'tv_statement = -# 835 "parser_cocci_menhir.mly" +# 857 "parser_cocci_menhir.mly" ( P.forloop _1 _2 _3 _4 _5 _6 _7 _8 _9 ) # 30023 "parser_cocci_menhir.ml" in @@ -30059,25 +30059,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _5 : 'tv_single_statement = Obj.magic _5 in let _4 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 30065 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 30071 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 30076 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : 'tv_statement = -# 837 "parser_cocci_menhir.mly" +# 859 "parser_cocci_menhir.mly" ( P.whileloop _1 _2 _3 _4 _5 ) # 30083 "parser_cocci_menhir.ml" in @@ -30128,36 +30128,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _7 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 30134 "parser_cocci_menhir.ml" ) = Obj.magic _7 in let _6 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 30139 "parser_cocci_menhir.ml" ) = Obj.magic _6 in let _5 : 'tv_eexpr = Obj.magic _5 in let _4 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 30145 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 30150 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_single_statement = Obj.magic _2 in let _1 : ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 30156 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in let _v : 'tv_statement = -# 839 "parser_cocci_menhir.mly" +# 861 "parser_cocci_menhir.mly" ( P.doloop _1 _2 _3 _4 _5 _6 _7 ) # 30163 "parser_cocci_menhir.ml" in @@ -30199,13 +30199,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _5 : 'tv_single_statement = Obj.magic _5 in let _4 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 30205 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr_list_option = Obj.magic _3 in let _2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 30211 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -30213,7 +30213,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : 'tv_statement = -# 841 "parser_cocci_menhir.mly" +# 863 "parser_cocci_menhir.mly" ( P.iterator _1 _2 _3 _4 _5 ) # 30219 "parser_cocci_menhir.ml" in @@ -30269,37 +30269,37 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _8 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 30275 "parser_cocci_menhir.ml" ) = Obj.magic _8 in let _7 : 'tv_list_case_line_ = Obj.magic _7 in let _6 : 'tv_list_decl_var_ = Obj.magic _6 in let _5 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 30282 "parser_cocci_menhir.ml" ) = Obj.magic _5 in let _4 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 30287 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 30293 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 30298 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__8_ in let _v : 'tv_statement = -# 843 "parser_cocci_menhir.mly" +# 865 "parser_cocci_menhir.mly" ( P.switch _1 _2 _3 _4 _5 (List.concat _6) _7 _8 ) # 30305 "parser_cocci_menhir.ml" in @@ -30330,20 +30330,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 30336 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 30342 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_statement = -# 844 "parser_cocci_menhir.mly" +# 866 "parser_cocci_menhir.mly" ( P.ret_exp _1 _2 _3 ) # 30349 "parser_cocci_menhir.ml" in @@ -30369,19 +30369,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 30375 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 35 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (Data.clt) # 30380 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_statement = -# 845 "parser_cocci_menhir.mly" +# 867 "parser_cocci_menhir.mly" ( P.ret _1 _2 ) # 30387 "parser_cocci_menhir.ml" in @@ -30407,19 +30407,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 30413 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 36 "parser_cocci_menhir.mly" +# 58 "parser_cocci_menhir.mly" (Data.clt) # 30418 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_statement = -# 846 "parser_cocci_menhir.mly" +# 868 "parser_cocci_menhir.mly" ( P.break _1 _2 ) # 30425 "parser_cocci_menhir.ml" in @@ -30445,19 +30445,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 30451 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 36 "parser_cocci_menhir.mly" +# 58 "parser_cocci_menhir.mly" (Data.clt) # 30456 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_statement = -# 847 "parser_cocci_menhir.mly" +# 869 "parser_cocci_menhir.mly" ( P.cont _1 _2 ) # 30463 "parser_cocci_menhir.ml" in @@ -30483,7 +30483,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 30489 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -30491,7 +30491,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_statement = -# 848 "parser_cocci_menhir.mly" +# 870 "parser_cocci_menhir.mly" ( P.label _1 _2 ) # 30497 "parser_cocci_menhir.ml" in @@ -30522,20 +30522,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 30528 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_ident = Obj.magic _2 in let _1 : ( -# 36 "parser_cocci_menhir.mly" +# 58 "parser_cocci_menhir.mly" (Data.clt) # 30534 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_statement = -# 849 "parser_cocci_menhir.mly" +# 871 "parser_cocci_menhir.mly" ( P.goto _1 _2 _3 ) # 30541 "parser_cocci_menhir.ml" in @@ -30566,20 +30566,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 30572 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_fun_start = Obj.magic _2 in let _1 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 30578 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_statement = -# 851 "parser_cocci_menhir.mly" +# 873 "parser_cocci_menhir.mly" ( P.seq _1 _2 _3 ) # 30585 "parser_cocci_menhir.ml" in @@ -30606,14 +30606,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let w : 'tv_list_whenppdecs_ = Obj.magic w in let _1 : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 30612 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos_w_ in let _v : 'tv_stm_dots = -# 855 "parser_cocci_menhir.mly" +# 877 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Dots(P.clt2mcode "..." _1, List.concat w)) ) # 30619 "parser_cocci_menhir.ml" in @@ -30649,21 +30649,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let c : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 30655 "parser_cocci_menhir.ml" ) = Obj.magic c in let b : 'tv_nest_start = Obj.magic b in let w : 'tv_list_whenppdecs_ = Obj.magic w in let _1 : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 30662 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos_c_ in let _v : 'tv_stm_dots = -# 857 "parser_cocci_menhir.mly" +# 879 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." _1, b, P.clt2mcode "...>" c, List.concat w, false)) ) # 30670 "parser_cocci_menhir.ml" @@ -30700,21 +30700,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let c : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 30706 "parser_cocci_menhir.ml" ) = Obj.magic c in let b : 'tv_nest_start = Obj.magic b in let w : 'tv_list_whenppdecs_ = Obj.magic w in let _1 : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 30713 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos_c_ in let _v : 'tv_stm_dots = -# 860 "parser_cocci_menhir.mly" +# 882 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." _1, b, P.clt2mcode "...+>" c, List.concat w, true)) ) # 30721 "parser_cocci_menhir.ml" @@ -30736,14 +30736,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let s : ( -# 31 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) # 30742 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : 'tv_storage = -# 786 "parser_cocci_menhir.mly" +# 808 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Static s ) # 30749 "parser_cocci_menhir.ml" in @@ -30764,14 +30764,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let s : ( -# 31 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) # 30770 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : 'tv_storage = -# 787 "parser_cocci_menhir.mly" +# 809 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Auto s ) # 30777 "parser_cocci_menhir.ml" in @@ -30792,14 +30792,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let s : ( -# 31 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) # 30798 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : 'tv_storage = -# 788 "parser_cocci_menhir.mly" +# 810 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Register s ) # 30805 "parser_cocci_menhir.ml" in @@ -30820,14 +30820,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let s : ( -# 31 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) # 30826 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : 'tv_storage = -# 789 "parser_cocci_menhir.mly" +# 811 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Extern s ) # 30833 "parser_cocci_menhir.ml" in @@ -30849,7 +30849,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_struct_decl = -# 542 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( [] ) # 30855 "parser_cocci_menhir.ml" in @@ -30880,7 +30880,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 30886 "parser_cocci_menhir.ml" ) = Obj.magic pv in @@ -30889,7 +30889,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_t_ in let _endpos = _endpos_pv_ in let _v : 'tv_struct_decl = -# 544 "parser_cocci_menhir.mly" +# 566 "parser_cocci_menhir.mly" ( let (id,fn) = d in [Ast0.wrap(Ast0.UnInit(None,fn t,id,P.clt2mcode ";" pv))] ) # 30896 "parser_cocci_menhir.ml" @@ -30951,34 +30951,34 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 30957 "parser_cocci_menhir.ml" ) = Obj.magic pv in let rp2 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 30962 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 30968 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 30973 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 30979 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 30984 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in @@ -30986,7 +30986,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_t_ in let _endpos = _endpos_pv_ in let _v : 'tv_struct_decl = -# 548 "parser_cocci_menhir.mly" +# 570 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -31023,7 +31023,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 31029 "parser_cocci_menhir.ml" ) = Obj.magic pv in @@ -31039,7 +31039,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 556 "parser_cocci_menhir.mly" +# 578 "parser_cocci_menhir.mly" ( let (id,fn) = d in let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in [Ast0.wrap(Ast0.UnInit(None,fn idtype,id,P.clt2mcode ";" pv))] ) @@ -31077,7 +31077,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 85 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 31083 "parser_cocci_menhir.ml" ) = Obj.magic pv in @@ -31095,7 +31095,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 556 "parser_cocci_menhir.mly" +# 578 "parser_cocci_menhir.mly" ( let (id,fn) = d in let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in [Ast0.wrap(Ast0.UnInit(None,fn idtype,id,P.clt2mcode ";" pv))] ) @@ -31121,7 +31121,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_struct_decl_list = -# 561 "parser_cocci_menhir.mly" +# 583 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS(_1)) ) # 31127 "parser_cocci_menhir.ml" in @@ -31145,7 +31145,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_struct_decl_list_start = -# 564 "parser_cocci_menhir.mly" +# 586 "parser_cocci_menhir.mly" ( _1 ) # 31151 "parser_cocci_menhir.ml" in @@ -31175,7 +31175,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_struct_decl_list_start = -# 565 "parser_cocci_menhir.mly" +# 587 "parser_cocci_menhir.mly" ( _1@_2 ) # 31181 "parser_cocci_menhir.ml" in @@ -31205,7 +31205,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_d_ in let _endpos = _endpos_r_ in let _v : 'tv_struct_decl_list_start = -# 567 "parser_cocci_menhir.mly" +# 589 "parser_cocci_menhir.mly" ( (P.mkddots "..." d)::r ) # 31211 "parser_cocci_menhir.ml" in @@ -31226,14 +31226,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let s : ( -# 28 "parser_cocci_menhir.mly" +# 50 "parser_cocci_menhir.mly" (Data.clt) # 31232 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : 'tv_struct_or_union = -# 538 "parser_cocci_menhir.mly" +# 560 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Struct s ) # 31239 "parser_cocci_menhir.ml" in @@ -31254,14 +31254,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let u : ( -# 28 "parser_cocci_menhir.mly" +# 50 "parser_cocci_menhir.mly" (Data.clt) # 31260 "parser_cocci_menhir.ml" ) = Obj.magic u in let _startpos = _startpos_u_ in let _endpos = _endpos_u_ in let _v : 'tv_struct_or_union = -# 539 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Union u ) # 31267 "parser_cocci_menhir.ml" in @@ -31285,7 +31285,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_top_eexpr = -# 1184 "parser_cocci_menhir.mly" +# 1206 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))) ) # 31291 "parser_cocci_menhir.ml" in @@ -31316,20 +31316,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 31322 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_initialize_list = Obj.magic _2 in let _1 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 31328 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_top_init = -# 1708 "parser_cocci_menhir.mly" +# 1730 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3)) ) # 31335 "parser_cocci_menhir.ml" in @@ -31346,7 +31346,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_toplevel_after_dots = -# 1696 "parser_cocci_menhir.mly" +# 1718 "parser_cocci_menhir.mly" ([]) # 31352 "parser_cocci_menhir.ml" in @@ -31374,7 +31374,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_dots = -# 1697 "parser_cocci_menhir.mly" +# 1719 "parser_cocci_menhir.mly" (_2) # 31380 "parser_cocci_menhir.ml" in @@ -31404,7 +31404,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_dots = -# 1698 "parser_cocci_menhir.mly" +# 1720 "parser_cocci_menhir.mly" ((Ast0.wrap(Ast0.Exp(_1)))::_2) # 31410 "parser_cocci_menhir.ml" in @@ -31434,7 +31434,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_dots = -# 1699 "parser_cocci_menhir.mly" +# 1721 "parser_cocci_menhir.mly" (_1@_2) # 31440 "parser_cocci_menhir.ml" in @@ -31462,7 +31462,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_dots_init = -# 1687 "parser_cocci_menhir.mly" +# 1709 "parser_cocci_menhir.mly" (_2) # 31468 "parser_cocci_menhir.ml" in @@ -31492,7 +31492,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_dots_init = -# 1688 "parser_cocci_menhir.mly" +# 1710 "parser_cocci_menhir.mly" ((Ast0.wrap(Ast0.Exp(_1)))::_2) # 31498 "parser_cocci_menhir.ml" in @@ -31522,7 +31522,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_dots_init = -# 1689 "parser_cocci_menhir.mly" +# 1711 "parser_cocci_menhir.mly" (_1@_2) # 31528 "parser_cocci_menhir.ml" in @@ -31539,7 +31539,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_toplevel_after_exp = -# 1692 "parser_cocci_menhir.mly" +# 1714 "parser_cocci_menhir.mly" ([]) # 31545 "parser_cocci_menhir.ml" in @@ -31569,7 +31569,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_exp = -# 1693 "parser_cocci_menhir.mly" +# 1715 "parser_cocci_menhir.mly" (_1::_2) # 31575 "parser_cocci_menhir.ml" in @@ -31586,7 +31586,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_toplevel_after_stm = -# 1702 "parser_cocci_menhir.mly" +# 1724 "parser_cocci_menhir.mly" ([]) # 31592 "parser_cocci_menhir.ml" in @@ -31616,7 +31616,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_stm = -# 1703 "parser_cocci_menhir.mly" +# 1725 "parser_cocci_menhir.mly" (_1::_2) # 31622 "parser_cocci_menhir.ml" in @@ -31646,7 +31646,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_stm = -# 1704 "parser_cocci_menhir.mly" +# 1726 "parser_cocci_menhir.mly" (_1@_2) # 31652 "parser_cocci_menhir.ml" in @@ -31676,7 +31676,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_seq_start_toplevel_after_dots_ = -# 1682 "parser_cocci_menhir.mly" +# 1704 "parser_cocci_menhir.mly" ( _1::_2 ) # 31682 "parser_cocci_menhir.ml" in @@ -31706,7 +31706,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_seq_start_toplevel_after_dots_ = -# 1683 "parser_cocci_menhir.mly" +# 1705 "parser_cocci_menhir.mly" ( (Ast0.wrap(Ast0.Exp(_1)))::_2 ) # 31712 "parser_cocci_menhir.ml" in @@ -31736,7 +31736,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_seq_start_toplevel_after_dots_ = -# 1684 "parser_cocci_menhir.mly" +# 1706 "parser_cocci_menhir.mly" ( _1@_2 ) # 31742 "parser_cocci_menhir.ml" in @@ -31769,7 +31769,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let b : 'tv_toplevel_after_dots_init = Obj.magic b in let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in let a0 : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 31775 "parser_cocci_menhir.ml" ) = Obj.magic a0 in @@ -31779,13 +31779,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let w = w0 in let a = a0 in -# 865 "parser_cocci_menhir.mly" +# 887 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Dots(P.clt2mcode "..." a, List.concat w)) ) # 31785 "parser_cocci_menhir.ml" in -# 1675 "parser_cocci_menhir.mly" +# 1697 "parser_cocci_menhir.mly" ( a::b ) # 31791 "parser_cocci_menhir.ml" in @@ -31827,14 +31827,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_toplevel_after_dots_init = Obj.magic b in let c0 : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 31833 "parser_cocci_menhir.ml" ) = Obj.magic c0 in let b0 : 'tv_nest_start = Obj.magic b0 in let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in let a0 : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 31840 "parser_cocci_menhir.ml" ) = Obj.magic a0 in @@ -31846,14 +31846,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let w = w0 in let a = a0 in -# 869 "parser_cocci_menhir.mly" +# 891 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." a, b, P.clt2mcode "...>" c, List.concat w, false)) ) # 31853 "parser_cocci_menhir.ml" in -# 1676 "parser_cocci_menhir.mly" +# 1698 "parser_cocci_menhir.mly" ( a::b ) # 31859 "parser_cocci_menhir.ml" in @@ -31895,14 +31895,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_toplevel_after_dots_init = Obj.magic b in let c0 : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 31901 "parser_cocci_menhir.ml" ) = Obj.magic c0 in let b0 : 'tv_nest_start = Obj.magic b0 in let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in let a0 : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 31908 "parser_cocci_menhir.ml" ) = Obj.magic a0 in @@ -31914,14 +31914,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let w = w0 in let a = a0 in -# 872 "parser_cocci_menhir.mly" +# 894 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." a, b, P.clt2mcode "...+>" c, List.concat w, true)) ) # 31921 "parser_cocci_menhir.ml" in -# 1676 "parser_cocci_menhir.mly" +# 1698 "parser_cocci_menhir.mly" ( a::b ) # 31927 "parser_cocci_menhir.ml" in @@ -31957,14 +31957,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let c0 : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 31963 "parser_cocci_menhir.ml" ) = Obj.magic c0 in let b0 : 'tv_nest_start = Obj.magic b0 in let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in let a0 : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 31970 "parser_cocci_menhir.ml" ) = Obj.magic a0 in @@ -31976,14 +31976,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let w = w0 in let a = a0 in -# 869 "parser_cocci_menhir.mly" +# 891 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." a, b, P.clt2mcode "...>" c, List.concat w, false)) ) # 31983 "parser_cocci_menhir.ml" in -# 1677 "parser_cocci_menhir.mly" +# 1699 "parser_cocci_menhir.mly" ( [a] ) # 31989 "parser_cocci_menhir.ml" in @@ -32019,14 +32019,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let c0 : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 32025 "parser_cocci_menhir.ml" ) = Obj.magic c0 in let b0 : 'tv_nest_start = Obj.magic b0 in let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in let a0 : ( -# 51 "parser_cocci_menhir.mly" +# 73 "parser_cocci_menhir.mly" (Data.clt) # 32032 "parser_cocci_menhir.ml" ) = Obj.magic a0 in @@ -32038,14 +32038,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let w = w0 in let a = a0 in -# 872 "parser_cocci_menhir.mly" +# 894 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." a, b, P.clt2mcode "...+>" c, List.concat w, true)) ) # 32045 "parser_cocci_menhir.ml" in -# 1677 "parser_cocci_menhir.mly" +# 1699 "parser_cocci_menhir.mly" ( [a] ) # 32051 "parser_cocci_menhir.ml" in @@ -32075,7 +32075,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = -# 1678 "parser_cocci_menhir.mly" +# 1700 "parser_cocci_menhir.mly" ( (Ast0.wrap(Ast0.Exp(_1)))::_2 ) # 32081 "parser_cocci_menhir.ml" in @@ -32105,7 +32105,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = -# 1679 "parser_cocci_menhir.mly" +# 1701 "parser_cocci_menhir.mly" ( _1@_2 ) # 32111 "parser_cocci_menhir.ml" in @@ -32137,12 +32137,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 32143 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 32148 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -32154,13 +32154,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 456 "parser_cocci_menhir.mly" +# 478 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) # 32160 "parser_cocci_menhir.ml" in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 32166 "parser_cocci_menhir.ml" @@ -32173,7 +32173,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 32179 "parser_cocci_menhir.ml" in @@ -32205,12 +32205,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 32211 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 32216 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -32222,13 +32222,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 458 "parser_cocci_menhir.mly" +# 480 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) # 32228 "parser_cocci_menhir.ml" in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 32234 "parser_cocci_menhir.ml" @@ -32241,7 +32241,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 32247 "parser_cocci_menhir.ml" in @@ -32273,12 +32273,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 32279 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 32284 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -32290,13 +32290,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 460 "parser_cocci_menhir.mly" +# 482 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) # 32296 "parser_cocci_menhir.ml" in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 32302 "parser_cocci_menhir.ml" @@ -32309,7 +32309,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 32315 "parser_cocci_menhir.ml" in @@ -32341,12 +32341,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 32347 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 32352 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -32358,14 +32358,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 462 "parser_cocci_menhir.mly" +# 484 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) # 32365 "parser_cocci_menhir.ml" in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 32371 "parser_cocci_menhir.ml" @@ -32378,7 +32378,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 32384 "parser_cocci_menhir.ml" in @@ -32419,17 +32419,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 32425 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 25 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (string) # 32430 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 32435 "parser_cocci_menhir.ml" ) = Obj.magic r1 in @@ -32443,7 +32443,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 465 "parser_cocci_menhir.mly" +# 487 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) @@ -32454,7 +32454,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 32460 "parser_cocci_menhir.ml" @@ -32467,7 +32467,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 32473 "parser_cocci_menhir.ml" in @@ -32499,12 +32499,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 32505 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 32510 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -32516,13 +32516,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 472 "parser_cocci_menhir.mly" +# 494 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) # 32522 "parser_cocci_menhir.ml" in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 32528 "parser_cocci_menhir.ml" @@ -32535,7 +32535,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 32541 "parser_cocci_menhir.ml" in @@ -32572,17 +32572,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 32578 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 32583 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 32588 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -32596,7 +32596,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 474 "parser_cocci_menhir.mly" +# 496 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, @@ -32605,7 +32605,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 32611 "parser_cocci_menhir.ml" @@ -32618,7 +32618,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 32624 "parser_cocci_menhir.ml" in @@ -32650,12 +32650,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 32656 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 32661 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -32667,13 +32667,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 456 "parser_cocci_menhir.mly" +# 478 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) # 32673 "parser_cocci_menhir.ml" in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 32679 "parser_cocci_menhir.ml" @@ -32686,7 +32686,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 32692 "parser_cocci_menhir.ml" in @@ -32718,12 +32718,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 32724 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 32729 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -32735,13 +32735,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 458 "parser_cocci_menhir.mly" +# 480 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) # 32741 "parser_cocci_menhir.ml" in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 32747 "parser_cocci_menhir.ml" @@ -32754,7 +32754,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 32760 "parser_cocci_menhir.ml" in @@ -32786,12 +32786,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 32792 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 32797 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -32803,13 +32803,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 460 "parser_cocci_menhir.mly" +# 482 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) # 32809 "parser_cocci_menhir.ml" in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 32815 "parser_cocci_menhir.ml" @@ -32822,7 +32822,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 32828 "parser_cocci_menhir.ml" in @@ -32854,12 +32854,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 32860 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 32865 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -32871,14 +32871,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 462 "parser_cocci_menhir.mly" +# 484 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) # 32878 "parser_cocci_menhir.ml" in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 32884 "parser_cocci_menhir.ml" @@ -32891,7 +32891,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 32897 "parser_cocci_menhir.ml" in @@ -32932,17 +32932,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 32938 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 25 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (string) # 32943 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 32948 "parser_cocci_menhir.ml" ) = Obj.magic r1 in @@ -32956,7 +32956,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 465 "parser_cocci_menhir.mly" +# 487 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) @@ -32967,7 +32967,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 32973 "parser_cocci_menhir.ml" @@ -32980,7 +32980,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 32986 "parser_cocci_menhir.ml" in @@ -33012,12 +33012,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 33018 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 33023 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -33029,13 +33029,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 472 "parser_cocci_menhir.mly" +# 494 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) # 33035 "parser_cocci_menhir.ml" in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 33041 "parser_cocci_menhir.ml" @@ -33048,7 +33048,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 33054 "parser_cocci_menhir.ml" in @@ -33085,17 +33085,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 33091 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 33096 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 33101 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -33109,7 +33109,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 474 "parser_cocci_menhir.mly" +# 496 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, @@ -33118,7 +33118,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 33124 "parser_cocci_menhir.ml" @@ -33131,7 +33131,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 33137 "parser_cocci_menhir.ml" in @@ -33158,7 +33158,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 33164 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -33169,13 +33169,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 456 "parser_cocci_menhir.mly" +# 478 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) # 33175 "parser_cocci_menhir.ml" in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 33181 "parser_cocci_menhir.ml" @@ -33188,7 +33188,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 33194 "parser_cocci_menhir.ml" in @@ -33215,7 +33215,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 33221 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -33226,13 +33226,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 458 "parser_cocci_menhir.mly" +# 480 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) # 33232 "parser_cocci_menhir.ml" in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 33238 "parser_cocci_menhir.ml" @@ -33245,7 +33245,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 33251 "parser_cocci_menhir.ml" in @@ -33272,7 +33272,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 33278 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -33283,13 +33283,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 460 "parser_cocci_menhir.mly" +# 482 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) # 33289 "parser_cocci_menhir.ml" in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 33295 "parser_cocci_menhir.ml" @@ -33302,7 +33302,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 33308 "parser_cocci_menhir.ml" in @@ -33329,7 +33329,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 33335 "parser_cocci_menhir.ml" ) = Obj.magic p00 in @@ -33340,14 +33340,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 462 "parser_cocci_menhir.mly" +# 484 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) # 33347 "parser_cocci_menhir.ml" in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 33353 "parser_cocci_menhir.ml" @@ -33360,7 +33360,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 33366 "parser_cocci_menhir.ml" in @@ -33396,12 +33396,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 33402 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 25 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (string) # 33407 "parser_cocci_menhir.ml" ) = Obj.magic r00 in @@ -33414,7 +33414,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 465 "parser_cocci_menhir.mly" +# 487 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) @@ -33425,7 +33425,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 33431 "parser_cocci_menhir.ml" @@ -33438,7 +33438,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 33444 "parser_cocci_menhir.ml" in @@ -33465,7 +33465,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 33471 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -33476,13 +33476,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 472 "parser_cocci_menhir.mly" +# 494 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) # 33482 "parser_cocci_menhir.ml" in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 33488 "parser_cocci_menhir.ml" @@ -33495,7 +33495,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 33501 "parser_cocci_menhir.ml" in @@ -33527,12 +33527,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 33533 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 33538 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in @@ -33545,7 +33545,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 474 "parser_cocci_menhir.mly" +# 496 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, @@ -33554,7 +33554,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 33560 "parser_cocci_menhir.ml" @@ -33567,7 +33567,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 33573 "parser_cocci_menhir.ml" in @@ -33594,7 +33594,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 28 "parser_cocci_menhir.mly" +# 50 "parser_cocci_menhir.mly" (Data.clt) # 33600 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -33605,13 +33605,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 482 "parser_cocci_menhir.mly" +# 504 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) ) # 33611 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 33617 "parser_cocci_menhir.ml" @@ -33624,7 +33624,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 33630 "parser_cocci_menhir.ml" in @@ -33651,7 +33651,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 33657 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -33662,13 +33662,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 484 "parser_cocci_menhir.mly" +# 506 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) ) # 33668 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 33674 "parser_cocci_menhir.ml" @@ -33681,7 +33681,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 33687 "parser_cocci_menhir.ml" in @@ -33708,7 +33708,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 33714 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -33719,13 +33719,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 486 "parser_cocci_menhir.mly" +# 508 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) ) # 33725 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 33731 "parser_cocci_menhir.ml" @@ -33738,7 +33738,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 33744 "parser_cocci_menhir.ml" in @@ -33771,7 +33771,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let m : 'tv_list_TMul_ = Obj.magic m in let i00 : 'tv_ident = Obj.magic i00 in let s00 : ( -# 28 "parser_cocci_menhir.mly" +# 50 "parser_cocci_menhir.mly" (Data.clt) # 33777 "parser_cocci_menhir.ml" ) = Obj.magic s00 in @@ -33784,13 +33784,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 488 "parser_cocci_menhir.mly" +# 510 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)) ) # 33790 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 33796 "parser_cocci_menhir.ml" @@ -33803,7 +33803,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 33809 "parser_cocci_menhir.ml" in @@ -33845,13 +33845,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 490 "parser_cocci_menhir.mly" +# 512 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) ) # 33851 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 33857 "parser_cocci_menhir.ml" @@ -33864,7 +33864,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 33870 "parser_cocci_menhir.ml" in @@ -33906,13 +33906,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 33912 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 33918 "parser_cocci_menhir.ml" ) = Obj.magic l00 in @@ -33937,7 +33937,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 493 "parser_cocci_menhir.mly" +# 515 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "structures must be named in the iso file"); Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), @@ -33947,7 +33947,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 33953 "parser_cocci_menhir.ml" @@ -33960,7 +33960,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 33966 "parser_cocci_menhir.ml" in @@ -34007,13 +34007,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 34013 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 34019 "parser_cocci_menhir.ml" ) = Obj.magic l00 in @@ -34042,7 +34042,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 493 "parser_cocci_menhir.mly" +# 515 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "structures must be named in the iso file"); Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), @@ -34052,7 +34052,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 34058 "parser_cocci_menhir.ml" @@ -34065,7 +34065,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 34071 "parser_cocci_menhir.ml" in @@ -34107,18 +34107,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 34113 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 34119 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 34124 "parser_cocci_menhir.ml" ) = Obj.magic s00 in @@ -34135,7 +34135,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let l = l0 in let s = s0 in -# 499 "parser_cocci_menhir.mly" +# 521 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = s in let ty = Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in Ast0.wrap(Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) ) @@ -34143,7 +34143,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 34149 "parser_cocci_menhir.ml" @@ -34156,7 +34156,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 34162 "parser_cocci_menhir.ml" in @@ -34183,7 +34183,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 34189 "parser_cocci_menhir.ml" ) = Obj.magic p00 in @@ -34194,13 +34194,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 503 "parser_cocci_menhir.mly" +# 525 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) ) # 34200 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 34206 "parser_cocci_menhir.ml" @@ -34213,7 +34213,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 34219 "parser_cocci_menhir.ml" in @@ -34250,12 +34250,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 34256 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 34261 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -34268,13 +34268,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 456 "parser_cocci_menhir.mly" +# 478 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) # 34274 "parser_cocci_menhir.ml" in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 34280 "parser_cocci_menhir.ml" @@ -34288,7 +34288,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 34294 "parser_cocci_menhir.ml" in @@ -34325,12 +34325,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 34331 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 34336 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -34343,13 +34343,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 458 "parser_cocci_menhir.mly" +# 480 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) # 34349 "parser_cocci_menhir.ml" in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 34355 "parser_cocci_menhir.ml" @@ -34363,7 +34363,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 34369 "parser_cocci_menhir.ml" in @@ -34400,12 +34400,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 34406 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 34411 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -34418,13 +34418,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 460 "parser_cocci_menhir.mly" +# 482 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) # 34424 "parser_cocci_menhir.ml" in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 34430 "parser_cocci_menhir.ml" @@ -34438,7 +34438,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 34444 "parser_cocci_menhir.ml" in @@ -34475,12 +34475,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 34481 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 34486 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -34493,14 +34493,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 462 "parser_cocci_menhir.mly" +# 484 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) # 34500 "parser_cocci_menhir.ml" in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 34506 "parser_cocci_menhir.ml" @@ -34514,7 +34514,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 34520 "parser_cocci_menhir.ml" in @@ -34560,17 +34560,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 34566 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 25 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (string) # 34571 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 34576 "parser_cocci_menhir.ml" ) = Obj.magic r1 in @@ -34585,7 +34585,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 465 "parser_cocci_menhir.mly" +# 487 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) @@ -34596,7 +34596,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 34602 "parser_cocci_menhir.ml" @@ -34610,7 +34610,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 34616 "parser_cocci_menhir.ml" in @@ -34647,12 +34647,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 34653 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 34658 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -34665,13 +34665,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 472 "parser_cocci_menhir.mly" +# 494 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) # 34671 "parser_cocci_menhir.ml" in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 34677 "parser_cocci_menhir.ml" @@ -34685,7 +34685,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 34691 "parser_cocci_menhir.ml" in @@ -34727,17 +34727,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 34733 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 34738 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 34743 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -34752,7 +34752,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 474 "parser_cocci_menhir.mly" +# 496 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, @@ -34761,7 +34761,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 508 "parser_cocci_menhir.mly" +# 530 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) # 34767 "parser_cocci_menhir.ml" @@ -34775,7 +34775,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 34781 "parser_cocci_menhir.ml" in @@ -34812,12 +34812,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 34818 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 34823 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -34830,13 +34830,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 456 "parser_cocci_menhir.mly" +# 478 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) # 34836 "parser_cocci_menhir.ml" in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 34842 "parser_cocci_menhir.ml" @@ -34850,7 +34850,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 34856 "parser_cocci_menhir.ml" in @@ -34887,12 +34887,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 34893 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 34898 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -34905,13 +34905,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 458 "parser_cocci_menhir.mly" +# 480 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) # 34911 "parser_cocci_menhir.ml" in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 34917 "parser_cocci_menhir.ml" @@ -34925,7 +34925,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 34931 "parser_cocci_menhir.ml" in @@ -34962,12 +34962,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 34968 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 34973 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -34980,13 +34980,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 460 "parser_cocci_menhir.mly" +# 482 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) # 34986 "parser_cocci_menhir.ml" in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 34992 "parser_cocci_menhir.ml" @@ -35000,7 +35000,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 35006 "parser_cocci_menhir.ml" in @@ -35037,12 +35037,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 35043 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 35048 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -35055,14 +35055,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 462 "parser_cocci_menhir.mly" +# 484 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) # 35062 "parser_cocci_menhir.ml" in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 35068 "parser_cocci_menhir.ml" @@ -35076,7 +35076,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 35082 "parser_cocci_menhir.ml" in @@ -35122,17 +35122,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 35128 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 25 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (string) # 35133 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 35138 "parser_cocci_menhir.ml" ) = Obj.magic r1 in @@ -35147,7 +35147,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 465 "parser_cocci_menhir.mly" +# 487 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) @@ -35158,7 +35158,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 35164 "parser_cocci_menhir.ml" @@ -35172,7 +35172,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 35178 "parser_cocci_menhir.ml" in @@ -35209,12 +35209,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 35215 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 35220 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -35227,13 +35227,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 472 "parser_cocci_menhir.mly" +# 494 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) # 35233 "parser_cocci_menhir.ml" in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 35239 "parser_cocci_menhir.ml" @@ -35247,7 +35247,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 35253 "parser_cocci_menhir.ml" in @@ -35289,17 +35289,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 35295 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 35300 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 29 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 35305 "parser_cocci_menhir.ml" ) = Obj.magic r0 in @@ -35314,7 +35314,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 474 "parser_cocci_menhir.mly" +# 496 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, @@ -35323,7 +35323,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 510 "parser_cocci_menhir.mly" +# 532 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) # 35329 "parser_cocci_menhir.ml" @@ -35337,7 +35337,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 35343 "parser_cocci_menhir.ml" in @@ -35369,7 +35369,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 35375 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -35381,13 +35381,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 456 "parser_cocci_menhir.mly" +# 478 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) # 35387 "parser_cocci_menhir.ml" in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 35393 "parser_cocci_menhir.ml" @@ -35401,7 +35401,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 35407 "parser_cocci_menhir.ml" in @@ -35433,7 +35433,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 35439 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -35445,13 +35445,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 458 "parser_cocci_menhir.mly" +# 480 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) # 35451 "parser_cocci_menhir.ml" in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 35457 "parser_cocci_menhir.ml" @@ -35465,7 +35465,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 35471 "parser_cocci_menhir.ml" in @@ -35497,7 +35497,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 35503 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -35509,13 +35509,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 460 "parser_cocci_menhir.mly" +# 482 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) # 35515 "parser_cocci_menhir.ml" in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 35521 "parser_cocci_menhir.ml" @@ -35529,7 +35529,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 35535 "parser_cocci_menhir.ml" in @@ -35561,7 +35561,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 35567 "parser_cocci_menhir.ml" ) = Obj.magic p00 in @@ -35573,14 +35573,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 462 "parser_cocci_menhir.mly" +# 484 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) # 35580 "parser_cocci_menhir.ml" in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 35586 "parser_cocci_menhir.ml" @@ -35594,7 +35594,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 35600 "parser_cocci_menhir.ml" in @@ -35635,12 +35635,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 35641 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 25 "parser_cocci_menhir.mly" +# 47 "parser_cocci_menhir.mly" (string) # 35646 "parser_cocci_menhir.ml" ) = Obj.magic r00 in @@ -35654,7 +35654,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 465 "parser_cocci_menhir.mly" +# 487 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) @@ -35665,7 +35665,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 35671 "parser_cocci_menhir.ml" @@ -35679,7 +35679,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 35685 "parser_cocci_menhir.ml" in @@ -35711,7 +35711,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 35717 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -35723,13 +35723,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 472 "parser_cocci_menhir.mly" +# 494 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) # 35729 "parser_cocci_menhir.ml" in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 35735 "parser_cocci_menhir.ml" @@ -35743,7 +35743,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 35749 "parser_cocci_menhir.ml" in @@ -35780,12 +35780,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 35786 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 35791 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in @@ -35799,7 +35799,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 474 "parser_cocci_menhir.mly" +# 496 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, @@ -35808,7 +35808,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 511 "parser_cocci_menhir.mly" +# 533 "parser_cocci_menhir.mly" ( ty ) # 35814 "parser_cocci_menhir.ml" @@ -35822,7 +35822,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 35828 "parser_cocci_menhir.ml" in @@ -35854,7 +35854,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 28 "parser_cocci_menhir.mly" +# 50 "parser_cocci_menhir.mly" (Data.clt) # 35860 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -35866,13 +35866,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 482 "parser_cocci_menhir.mly" +# 504 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) ) # 35872 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 35878 "parser_cocci_menhir.ml" @@ -35886,7 +35886,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 35892 "parser_cocci_menhir.ml" in @@ -35918,7 +35918,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 35924 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -35930,13 +35930,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 484 "parser_cocci_menhir.mly" +# 506 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) ) # 35936 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 35942 "parser_cocci_menhir.ml" @@ -35950,7 +35950,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 35956 "parser_cocci_menhir.ml" in @@ -35982,7 +35982,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 27 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (Data.clt) # 35988 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in @@ -35994,13 +35994,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 486 "parser_cocci_menhir.mly" +# 508 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) ) # 36000 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 36006 "parser_cocci_menhir.ml" @@ -36014,7 +36014,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 36020 "parser_cocci_menhir.ml" in @@ -36052,7 +36052,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let m : 'tv_list_TMul_ = Obj.magic m in let i00 : 'tv_ident = Obj.magic i00 in let s00 : ( -# 28 "parser_cocci_menhir.mly" +# 50 "parser_cocci_menhir.mly" (Data.clt) # 36058 "parser_cocci_menhir.ml" ) = Obj.magic s00 in @@ -36066,13 +36066,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 488 "parser_cocci_menhir.mly" +# 510 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)) ) # 36072 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 36078 "parser_cocci_menhir.ml" @@ -36086,7 +36086,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 36092 "parser_cocci_menhir.ml" in @@ -36134,13 +36134,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 490 "parser_cocci_menhir.mly" +# 512 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) ) # 36140 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 36146 "parser_cocci_menhir.ml" @@ -36154,7 +36154,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 36160 "parser_cocci_menhir.ml" in @@ -36201,13 +36201,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 36207 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 36213 "parser_cocci_menhir.ml" ) = Obj.magic l00 in @@ -36233,7 +36233,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 493 "parser_cocci_menhir.mly" +# 515 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "structures must be named in the iso file"); Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), @@ -36243,7 +36243,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 36249 "parser_cocci_menhir.ml" @@ -36257,7 +36257,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 36263 "parser_cocci_menhir.ml" in @@ -36309,13 +36309,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 36315 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 36321 "parser_cocci_menhir.ml" ) = Obj.magic l00 in @@ -36345,7 +36345,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 493 "parser_cocci_menhir.mly" +# 515 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "structures must be named in the iso file"); Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), @@ -36355,7 +36355,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 36361 "parser_cocci_menhir.ml" @@ -36369,7 +36369,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 36375 "parser_cocci_menhir.ml" in @@ -36416,18 +36416,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 36422 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 79 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 36428 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 36433 "parser_cocci_menhir.ml" ) = Obj.magic s00 in @@ -36445,7 +36445,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let l = l0 in let s = s0 in -# 499 "parser_cocci_menhir.mly" +# 521 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = s in let ty = Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in Ast0.wrap(Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) ) @@ -36453,7 +36453,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 36459 "parser_cocci_menhir.ml" @@ -36467,7 +36467,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 36473 "parser_cocci_menhir.ml" in @@ -36499,7 +36499,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 37 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (string * Data.clt) # 36505 "parser_cocci_menhir.ml" ) = Obj.magic p00 in @@ -36511,13 +36511,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 503 "parser_cocci_menhir.mly" +# 525 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) ) # 36517 "parser_cocci_menhir.ml" in -# 512 "parser_cocci_menhir.mly" +# 534 "parser_cocci_menhir.mly" ( ty ) # 36523 "parser_cocci_menhir.ml" @@ -36531,7 +36531,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct in -# 529 "parser_cocci_menhir.mly" +# 551 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) # 36537 "parser_cocci_menhir.ml" in @@ -36562,20 +36562,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 36568 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_midzero_list_ctype_ctype_ = Obj.magic t in let lp : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 36574 "parser_cocci_menhir.ml" ) = Obj.magic lp in let _startpos = _startpos_lp_ in let _endpos = _endpos_rp_ in let _v : 'tv_typedef_ctype = -# 531 "parser_cocci_menhir.mly" +# 553 "parser_cocci_menhir.mly" ( let (mids,code) = t in Ast0.wrap (Ast0.DisjType(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) ) @@ -36601,7 +36601,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_typedef_ident = -# 1581 "parser_cocci_menhir.mly" +# 1603 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.TypeName(P.id2mcode _1)) ) # 36607 "parser_cocci_menhir.ml" in @@ -36622,14 +36622,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 42 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.info) # 36628 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_typedef_ident = -# 1583 "parser_cocci_menhir.mly" +# 1605 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = _1 in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) # 36636 "parser_cocci_menhir.ml" @@ -36654,7 +36654,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_expr_eexpr_dot_expressions_ = -# 1273 "parser_cocci_menhir.mly" +# 1295 "parser_cocci_menhir.mly" ( _1 ) # 36660 "parser_cocci_menhir.ml" in @@ -36681,14 +36681,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _2 in let _1 : ( -# 63 "parser_cocci_menhir.mly" +# 85 "parser_cocci_menhir.mly" (Data.clt) # 36687 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_dot_expressions_ = -# 1275 "parser_cocci_menhir.mly" +# 1297 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) ) # 36694 "parser_cocci_menhir.ml" in @@ -36715,14 +36715,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _2 in let _1 : ( -# 63 "parser_cocci_menhir.mly" +# 85 "parser_cocci_menhir.mly" (Data.clt) # 36721 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_dot_expressions_ = -# 1277 "parser_cocci_menhir.mly" +# 1299 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) ) # 36728 "parser_cocci_menhir.ml" in @@ -36752,7 +36752,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_dot_expressions_ = -# 1279 "parser_cocci_menhir.mly" +# 1301 "parser_cocci_menhir.mly" ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) # 36758 "parser_cocci_menhir.ml" in @@ -36779,14 +36779,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _2 in let _1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 36785 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_dot_expressions_ = -# 1281 "parser_cocci_menhir.mly" +# 1303 "parser_cocci_menhir.mly" ( let mcode = P.clt2mcode Ast.Not _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) # 36793 "parser_cocci_menhir.ml" @@ -36814,14 +36814,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _2 in let _1 : ( -# 36 "parser_cocci_menhir.mly" +# 58 "parser_cocci_menhir.mly" (Data.clt) # 36820 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_dot_expressions_ = -# 1284 "parser_cocci_menhir.mly" +# 1306 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) ) # 36827 "parser_cocci_menhir.ml" in @@ -36857,25 +36857,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 36863 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 36869 "parser_cocci_menhir.ml" ) = Obj.magic lp in let s : ( -# 36 "parser_cocci_menhir.mly" +# 58 "parser_cocci_menhir.mly" (Data.clt) # 36874 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_rp_ in let _v : 'tv_unary_expr_eexpr_dot_expressions_ = -# 1286 "parser_cocci_menhir.mly" +# 1308 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s, P.clt2mcode "(" lp,t, P.clt2mcode ")" rp)) ) @@ -36901,7 +36901,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1273 "parser_cocci_menhir.mly" +# 1295 "parser_cocci_menhir.mly" ( _1 ) # 36907 "parser_cocci_menhir.ml" in @@ -36928,14 +36928,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_invalid_ = Obj.magic _2 in let _1 : ( -# 63 "parser_cocci_menhir.mly" +# 85 "parser_cocci_menhir.mly" (Data.clt) # 36934 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1275 "parser_cocci_menhir.mly" +# 1297 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) ) # 36941 "parser_cocci_menhir.ml" in @@ -36962,14 +36962,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_invalid_ = Obj.magic _2 in let _1 : ( -# 63 "parser_cocci_menhir.mly" +# 85 "parser_cocci_menhir.mly" (Data.clt) # 36968 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1277 "parser_cocci_menhir.mly" +# 1299 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) ) # 36975 "parser_cocci_menhir.ml" in @@ -36999,7 +36999,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1279 "parser_cocci_menhir.mly" +# 1301 "parser_cocci_menhir.mly" ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) # 37005 "parser_cocci_menhir.ml" in @@ -37026,14 +37026,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_invalid_ = Obj.magic _2 in let _1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 37032 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1281 "parser_cocci_menhir.mly" +# 1303 "parser_cocci_menhir.mly" ( let mcode = P.clt2mcode Ast.Not _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) # 37040 "parser_cocci_menhir.ml" @@ -37061,14 +37061,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_invalid_ = Obj.magic _2 in let _1 : ( -# 36 "parser_cocci_menhir.mly" +# 58 "parser_cocci_menhir.mly" (Data.clt) # 37067 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1284 "parser_cocci_menhir.mly" +# 1306 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) ) # 37074 "parser_cocci_menhir.ml" in @@ -37104,25 +37104,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 37110 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 37116 "parser_cocci_menhir.ml" ) = Obj.magic lp in let s : ( -# 36 "parser_cocci_menhir.mly" +# 58 "parser_cocci_menhir.mly" (Data.clt) # 37121 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_rp_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1286 "parser_cocci_menhir.mly" +# 1308 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s, P.clt2mcode "(" lp,t, P.clt2mcode ")" rp)) ) @@ -37148,7 +37148,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_expr_eexpr_nest_expressions_ = -# 1273 "parser_cocci_menhir.mly" +# 1295 "parser_cocci_menhir.mly" ( _1 ) # 37154 "parser_cocci_menhir.ml" in @@ -37175,14 +37175,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _2 in let _1 : ( -# 63 "parser_cocci_menhir.mly" +# 85 "parser_cocci_menhir.mly" (Data.clt) # 37181 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_nest_expressions_ = -# 1275 "parser_cocci_menhir.mly" +# 1297 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) ) # 37188 "parser_cocci_menhir.ml" in @@ -37209,14 +37209,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _2 in let _1 : ( -# 63 "parser_cocci_menhir.mly" +# 85 "parser_cocci_menhir.mly" (Data.clt) # 37215 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_nest_expressions_ = -# 1277 "parser_cocci_menhir.mly" +# 1299 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) ) # 37222 "parser_cocci_menhir.ml" in @@ -37246,7 +37246,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_nest_expressions_ = -# 1279 "parser_cocci_menhir.mly" +# 1301 "parser_cocci_menhir.mly" ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) # 37252 "parser_cocci_menhir.ml" in @@ -37273,14 +37273,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _2 in let _1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 37279 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_nest_expressions_ = -# 1281 "parser_cocci_menhir.mly" +# 1303 "parser_cocci_menhir.mly" ( let mcode = P.clt2mcode Ast.Not _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) # 37287 "parser_cocci_menhir.ml" @@ -37308,14 +37308,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _2 in let _1 : ( -# 36 "parser_cocci_menhir.mly" +# 58 "parser_cocci_menhir.mly" (Data.clt) # 37314 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_nest_expressions_ = -# 1284 "parser_cocci_menhir.mly" +# 1306 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) ) # 37321 "parser_cocci_menhir.ml" in @@ -37351,25 +37351,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 37357 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 37363 "parser_cocci_menhir.ml" ) = Obj.magic lp in let s : ( -# 36 "parser_cocci_menhir.mly" +# 58 "parser_cocci_menhir.mly" (Data.clt) # 37368 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_rp_ in let _v : 'tv_unary_expr_eexpr_nest_expressions_ = -# 1286 "parser_cocci_menhir.mly" +# 1308 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s, P.clt2mcode "(" lp,t, P.clt2mcode ")" rp)) ) @@ -37395,7 +37395,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1273 "parser_cocci_menhir.mly" +# 1295 "parser_cocci_menhir.mly" ( _1 ) # 37401 "parser_cocci_menhir.ml" in @@ -37422,14 +37422,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_expr_invalid_ = Obj.magic _2 in let _1 : ( -# 63 "parser_cocci_menhir.mly" +# 85 "parser_cocci_menhir.mly" (Data.clt) # 37428 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1275 "parser_cocci_menhir.mly" +# 1297 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) ) # 37435 "parser_cocci_menhir.ml" in @@ -37456,14 +37456,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_expr_invalid_ = Obj.magic _2 in let _1 : ( -# 63 "parser_cocci_menhir.mly" +# 85 "parser_cocci_menhir.mly" (Data.clt) # 37462 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1277 "parser_cocci_menhir.mly" +# 1299 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) ) # 37469 "parser_cocci_menhir.ml" in @@ -37493,7 +37493,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1279 "parser_cocci_menhir.mly" +# 1301 "parser_cocci_menhir.mly" ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) # 37499 "parser_cocci_menhir.ml" in @@ -37520,14 +37520,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_expr_invalid_ = Obj.magic _2 in let _1 : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 37526 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1281 "parser_cocci_menhir.mly" +# 1303 "parser_cocci_menhir.mly" ( let mcode = P.clt2mcode Ast.Not _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) # 37534 "parser_cocci_menhir.ml" @@ -37555,14 +37555,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_expr_invalid_ = Obj.magic _2 in let _1 : ( -# 36 "parser_cocci_menhir.mly" +# 58 "parser_cocci_menhir.mly" (Data.clt) # 37561 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1284 "parser_cocci_menhir.mly" +# 1306 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) ) # 37568 "parser_cocci_menhir.ml" in @@ -37598,25 +37598,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 55 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 37604 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 54 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 37610 "parser_cocci_menhir.ml" ) = Obj.magic lp in let s : ( -# 36 "parser_cocci_menhir.mly" +# 58 "parser_cocci_menhir.mly" (Data.clt) # 37615 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_rp_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1286 "parser_cocci_menhir.mly" +# 1308 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s, P.clt2mcode "(" lp,t, P.clt2mcode ")" rp)) ) @@ -37639,14 +37639,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 71 "parser_cocci_menhir.mly" +# 93 "parser_cocci_menhir.mly" (Data.clt) # 37645 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_op = -# 1290 "parser_cocci_menhir.mly" +# 1312 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.GetRef _1 ) # 37652 "parser_cocci_menhir.ml" in @@ -37667,14 +37667,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 37673 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_op = -# 1291 "parser_cocci_menhir.mly" +# 1313 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.DeRef _1 ) # 37680 "parser_cocci_menhir.ml" in @@ -37695,14 +37695,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 76 "parser_cocci_menhir.mly" +# 98 "parser_cocci_menhir.mly" (Data.clt) # 37701 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_op = -# 1292 "parser_cocci_menhir.mly" +# 1314 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.UnPlus _1 ) # 37708 "parser_cocci_menhir.ml" in @@ -37723,14 +37723,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 76 "parser_cocci_menhir.mly" +# 98 "parser_cocci_menhir.mly" (Data.clt) # 37729 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_op = -# 1293 "parser_cocci_menhir.mly" +# 1315 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.UnMinus _1 ) # 37736 "parser_cocci_menhir.ml" in @@ -37751,14 +37751,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 77 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Data.clt) # 37757 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_op = -# 1294 "parser_cocci_menhir.mly" +# 1316 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Tilde _1 ) # 37764 "parser_cocci_menhir.ml" in @@ -37788,7 +37788,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_when_start = -# 1801 "parser_cocci_menhir.mly" +# 1823 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS((Ast0.wrap(Ast0.Exp(_1)))::_2)) ) # 37794 "parser_cocci_menhir.ml" in @@ -37818,7 +37818,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_when_start = -# 1803 "parser_cocci_menhir.mly" +# 1825 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS(_1@_2)) ) # 37824 "parser_cocci_menhir.ml" in @@ -37842,7 +37842,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_w_ in let _endpos = _endpos_w_ in let _v : 'tv_whenppdecs = -# 876 "parser_cocci_menhir.mly" +# 898 "parser_cocci_menhir.mly" ( w ) # 37848 "parser_cocci_menhir.ml" in @@ -37878,7 +37878,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = -# 1869 "parser_cocci_menhir.mly" +# 1891 "parser_cocci_menhir.mly" ( [Ast0.WhenNot w] ) # 37884 "parser_cocci_menhir.ml" in @@ -37914,7 +37914,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = -# 1870 "parser_cocci_menhir.mly" +# 1892 "parser_cocci_menhir.mly" ( [Ast0.WhenAlways w] ) # 37920 "parser_cocci_menhir.ml" in @@ -37946,7 +37946,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = -# 1872 "parser_cocci_menhir.mly" +# 1894 "parser_cocci_menhir.mly" ( List.map (function x -> Ast0.WhenModifier(x)) _2 ) # 37952 "parser_cocci_menhir.ml" in @@ -37982,7 +37982,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = -# 1873 "parser_cocci_menhir.mly" +# 1895 "parser_cocci_menhir.mly" ( [Ast0.WhenNotTrue e] ) # 37988 "parser_cocci_menhir.ml" in @@ -38018,7 +38018,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = -# 1874 "parser_cocci_menhir.mly" +# 1896 "parser_cocci_menhir.mly" ( [Ast0.WhenNotFalse e] ) # 38024 "parser_cocci_menhir.ml" in @@ -38042,7 +38042,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let rec script_meta_main = fun lexer lexbuf -> (Obj.magic (MenhirInterpreter.entry 1794 lexer lexbuf) : ( -# 137 "parser_cocci_menhir.mly" +# 159 "parser_cocci_menhir.mly" (string * (string * string)) # 38048 "parser_cocci_menhir.ml" )) @@ -38050,7 +38050,7 @@ let rec script_meta_main = and rule_name = fun lexer lexbuf -> (Obj.magic (MenhirInterpreter.entry 1724 lexer lexbuf) : ( -# 131 "parser_cocci_menhir.mly" +# 153 "parser_cocci_menhir.mly" (Ast_cocci.rulename) # 38056 "parser_cocci_menhir.ml" )) @@ -38058,7 +38058,7 @@ and rule_name = and reinit = fun lexer lexbuf -> (Obj.magic (MenhirInterpreter.entry 1722 lexer lexbuf) : ( -# 109 "parser_cocci_menhir.mly" +# 131 "parser_cocci_menhir.mly" (unit) # 38064 "parser_cocci_menhir.ml" )) @@ -38066,7 +38066,7 @@ and reinit = and plus_main = fun lexer lexbuf -> (Obj.magic (MenhirInterpreter.entry 1686 lexer lexbuf) : ( -# 118 "parser_cocci_menhir.mly" +# 140 "parser_cocci_menhir.mly" (Ast0_cocci.rule) # 38072 "parser_cocci_menhir.ml" )) @@ -38074,7 +38074,7 @@ and plus_main = and plus_exp_main = fun lexer lexbuf -> (Obj.magic (MenhirInterpreter.entry 1678 lexer lexbuf) : ( -# 121 "parser_cocci_menhir.mly" +# 143 "parser_cocci_menhir.mly" (Ast0_cocci.rule) # 38080 "parser_cocci_menhir.ml" )) @@ -38082,7 +38082,7 @@ and plus_exp_main = and never_used = fun lexer lexbuf -> (Obj.magic (MenhirInterpreter.entry 1672 lexer lexbuf) : ( -# 146 "parser_cocci_menhir.mly" +# 168 "parser_cocci_menhir.mly" (unit) # 38088 "parser_cocci_menhir.ml" )) @@ -38090,7 +38090,7 @@ and never_used = and minus_main = fun lexer lexbuf -> (Obj.magic (MenhirInterpreter.entry 1592 lexer lexbuf) : ( -# 112 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (Ast0_cocci.rule) # 38096 "parser_cocci_menhir.ml" )) @@ -38098,7 +38098,7 @@ and minus_main = and minus_exp_main = fun lexer lexbuf -> (Obj.magic (MenhirInterpreter.entry 1580 lexer lexbuf) : ( -# 115 "parser_cocci_menhir.mly" +# 137 "parser_cocci_menhir.mly" (Ast0_cocci.rule) # 38104 "parser_cocci_menhir.ml" )) @@ -38106,7 +38106,7 @@ and minus_exp_main = and meta_main = fun lexer lexbuf -> (Obj.magic (MenhirInterpreter.entry 1577 lexer lexbuf) : ( -# 135 "parser_cocci_menhir.mly" +# 157 "parser_cocci_menhir.mly" ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list) # 38112 "parser_cocci_menhir.ml" )) @@ -38114,7 +38114,7 @@ and meta_main = and iso_rule_name = fun lexer lexbuf -> (Obj.magic (MenhirInterpreter.entry 1573 lexer lexbuf) : ( -# 127 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Ast_cocci.rulename) # 38120 "parser_cocci_menhir.ml" )) @@ -38122,7 +38122,7 @@ and iso_rule_name = and iso_meta_main = fun lexer lexbuf -> (Obj.magic (MenhirInterpreter.entry 1338 lexer lexbuf) : ( -# 143 "parser_cocci_menhir.mly" +# 165 "parser_cocci_menhir.mly" ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list) # 38128 "parser_cocci_menhir.ml" )) @@ -38130,7 +38130,7 @@ and iso_meta_main = and iso_main = fun lexer lexbuf -> (Obj.magic (MenhirInterpreter.entry 18 lexer lexbuf) : ( -# 140 "parser_cocci_menhir.mly" +# 162 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) # 38136 "parser_cocci_menhir.ml" )) @@ -38138,7 +38138,7 @@ and iso_main = and include_main = fun lexer lexbuf -> (Obj.magic (MenhirInterpreter.entry 0 lexer lexbuf) : ( -# 124 "parser_cocci_menhir.mly" +# 146 "parser_cocci_menhir.mly" (Data.incl_iso list) # 38144 "parser_cocci_menhir.ml" )) diff --git a/parsing_cocci/parser_cocci_menhir.mly b/parsing_cocci/parser_cocci_menhir.mly index ff0aaaf..fb13b51 100644 --- a/parsing_cocci/parser_cocci_menhir.mly +++ b/parsing_cocci/parser_cocci_menhir.mly @@ -1,3 +1,25 @@ +/* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + */ + + %{ (* Not clear how to allow function declarations to specify a return type diff --git a/parsing_cocci/plus.ml b/parsing_cocci/plus.ml index 4f0fd91..4faa771 100644 --- a/parsing_cocci/plus.ml +++ b/parsing_cocci/plus.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* The plus fragments are converted to a list of lists of lists. Innermost list: Elements have type anything. For any pair of successive elements, n and n+1, the ending line of n is the same as the starting line diff --git a/parsing_cocci/plus.mli b/parsing_cocci/plus.mli index 512f516..82c6d99 100644 --- a/parsing_cocci/plus.mli +++ b/parsing_cocci/plus.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val plus : Ast_cocci.rule -> (Ast_cocci.anything * int * int * int * int) list list list diff --git a/parsing_cocci/pretty_print_cocci.ml b/parsing_cocci/pretty_print_cocci.ml index 0a7cfa5..04eed4d 100644 --- a/parsing_cocci/pretty_print_cocci.ml +++ b/parsing_cocci/pretty_print_cocci.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Format module Ast = Ast_cocci diff --git a/parsing_cocci/pretty_print_cocci.mli b/parsing_cocci/pretty_print_cocci.mli index c06c941..bd36ad8 100644 --- a/parsing_cocci/pretty_print_cocci.mli +++ b/parsing_cocci/pretty_print_cocci.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val unparse : Ast_cocci.rule -> unit val unparse_to_string : Ast_cocci.rule -> string val expression : Ast_cocci.expression -> unit diff --git a/parsing_cocci/semantic_cocci.ml b/parsing_cocci/semantic_cocci.ml index bbea4c9..fce6bd8 100644 --- a/parsing_cocci/semantic_cocci.ml +++ b/parsing_cocci/semantic_cocci.ml @@ -1 +1,23 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + exception Semantic of string diff --git a/parsing_cocci/simple_assignments.ml b/parsing_cocci/simple_assignments.ml index e9d8f28..789244a 100644 --- a/parsing_cocci/simple_assignments.ml +++ b/parsing_cocci/simple_assignments.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + module Ast0 = Ast0_cocci module Ast = Ast_cocci module V0 = Visitor_ast0 diff --git a/parsing_cocci/simple_assignments.mli b/parsing_cocci/simple_assignments.mli index e9d4c89..ca5d7b4 100644 --- a/parsing_cocci/simple_assignments.mli +++ b/parsing_cocci/simple_assignments.mli @@ -1 +1,23 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val simple_assignments : Ast0_cocci.rule -> Ast0_cocci.rule diff --git a/parsing_cocci/single_statement.ml b/parsing_cocci/single_statement.ml index 58f04dc..ce72644 100644 --- a/parsing_cocci/single_statement.ml +++ b/parsing_cocci/single_statement.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* detect statements that are between dots in the minus code, because they may need a special treatment if they are if branches *) diff --git a/parsing_cocci/single_statement.mli b/parsing_cocci/single_statement.mli index eee3744..78e3644 100644 --- a/parsing_cocci/single_statement.mli +++ b/parsing_cocci/single_statement.mli @@ -1 +1,23 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val single_statement : Ast0_cocci.rule -> Ast0_cocci.rule diff --git a/parsing_cocci/test.cocci b/parsing_cocci/test.cocci index 5683b49..2f14029 100644 --- a/parsing_cocci/test.cocci +++ b/parsing_cocci/test.cocci @@ -1,3 +1,23 @@ +// Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen +// Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix +// This file is part of Coccinelle. +// +// Coccinelle is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, according to version 2 of the License. +// +// Coccinelle is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Coccinelle. If not, see . +// +// The authors reserve the right to distribute this or future versions of +// Coccinelle under other licenses. + + @@ struct SHT sht; local function proc_info_func; diff --git a/parsing_cocci/test2.cocci b/parsing_cocci/test2.cocci index 62ec534..b0d3b62 100644 --- a/parsing_cocci/test2.cocci +++ b/parsing_cocci/test2.cocci @@ -1,3 +1,23 @@ +// Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen +// Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix +// This file is part of Coccinelle. +// +// Coccinelle is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, according to version 2 of the License. +// +// Coccinelle is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Coccinelle. If not, see . +// +// The authors reserve the right to distribute this or future versions of +// Coccinelle under other licenses. + + @@ struct SHT sht; local function proc_info_func; diff --git a/parsing_cocci/test_exps.ml b/parsing_cocci/test_exps.ml index e883496..3c2c139 100644 --- a/parsing_cocci/test_exps.ml +++ b/parsing_cocci/test_exps.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + module Ast = Ast_cocci module Ast0 = Ast0_cocci module V0 = Visitor_ast0 diff --git a/parsing_cocci/test_exps.mli b/parsing_cocci/test_exps.mli index 29d5ced..f5dcb5e 100644 --- a/parsing_cocci/test_exps.mli +++ b/parsing_cocci/test_exps.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val process : Ast0_cocci.rule -> Ast0_cocci.rule val process_anything : Ast0_cocci.anything -> Ast0_cocci.anything diff --git a/parsing_cocci/top_level.ml b/parsing_cocci/top_level.ml index be12362..dea5573 100644 --- a/parsing_cocci/top_level.ml +++ b/parsing_cocci/top_level.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* Reorganize the top level of a rule to be a list of either top-level declarations or code dots. A function declaration is always considered top level. A statement is always considered code dots. A variable declaration diff --git a/parsing_cocci/top_level.mli b/parsing_cocci/top_level.mli index 1829d3e..f150d93 100644 --- a/parsing_cocci/top_level.mli +++ b/parsing_cocci/top_level.mli @@ -1 +1,23 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val top_level : Ast0_cocci.rule -> Ast0_cocci.rule diff --git a/parsing_cocci/type_cocci.ml b/parsing_cocci/type_cocci.ml index 1486122..b4bd0a2 100644 --- a/parsing_cocci/type_cocci.ml +++ b/parsing_cocci/type_cocci.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* for metavariables in general, but here because needed for metatypes *) type inherited = bool (* true if inherited *) type keep_binding = Unitary (* need no info *) diff --git a/parsing_cocci/type_cocci.mli b/parsing_cocci/type_cocci.mli index 73185b0..6ebd07c 100644 --- a/parsing_cocci/type_cocci.mli +++ b/parsing_cocci/type_cocci.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + type inherited = bool (* true if inherited *) type keep_binding = Unitary (* need no info *) | Nonunitary (* need an env entry *) | Saved (* need a witness *) diff --git a/parsing_cocci/type_infer.ml b/parsing_cocci/type_infer.ml index 9f68611..5d96ce6 100644 --- a/parsing_cocci/type_infer.ml +++ b/parsing_cocci/type_infer.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + module T = Type_cocci module Ast = Ast_cocci module Ast0 = Ast0_cocci diff --git a/parsing_cocci/type_infer.mli b/parsing_cocci/type_infer.mli index 796c6c7..70d2f8a 100644 --- a/parsing_cocci/type_infer.mli +++ b/parsing_cocci/type_infer.mli @@ -1 +1,23 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val type_infer : Ast0_cocci.rule -> unit diff --git a/parsing_cocci/unify_ast.ml b/parsing_cocci/unify_ast.ml index 4d900b1..59a14fa 100644 --- a/parsing_cocci/unify_ast.ml +++ b/parsing_cocci/unify_ast.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* --------------------------------------------------------------------- *) (* Given two patterns, A and B, determine whether B can match any matched subterms of A. For simplicity, this doesn't maintain an environment; it diff --git a/parsing_cocci/unify_ast.mli b/parsing_cocci/unify_ast.mli index 95a7d6f..e15f799 100644 --- a/parsing_cocci/unify_ast.mli +++ b/parsing_cocci/unify_ast.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + type res = NO | MAYBE val unify_statement_dots : diff --git a/parsing_cocci/unitary_ast0.ml b/parsing_cocci/unitary_ast0.ml index 61a3847..77d3bc4 100644 --- a/parsing_cocci/unitary_ast0.ml +++ b/parsing_cocci/unitary_ast0.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* find unitary metavariables *) module Ast0 = Ast0_cocci module Ast = Ast_cocci diff --git a/parsing_cocci/unitary_ast0.mli b/parsing_cocci/unitary_ast0.mli index 8aa5873..1ad6368 100644 --- a/parsing_cocci/unitary_ast0.mli +++ b/parsing_cocci/unitary_ast0.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* 'iso is the return type of parse_iso, which currently is (Ast_cocci.metavar list * Ast0_cocci.anything list list) list *) diff --git a/parsing_cocci/unparse_ast0.ml b/parsing_cocci/unparse_ast0.ml index 8fbd4b2..42e4acd 100644 --- a/parsing_cocci/unparse_ast0.ml +++ b/parsing_cocci/unparse_ast0.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Format module Ast0 = Ast0_cocci module U = Pretty_print_cocci diff --git a/parsing_cocci/unparse_ast0.mli b/parsing_cocci/unparse_ast0.mli index 6f66fc0..b0adbb4 100644 --- a/parsing_cocci/unparse_ast0.mli +++ b/parsing_cocci/unparse_ast0.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val expression_dots : Ast0_cocci.expression Ast0_cocci.dots -> unit val parameter_list : Ast0_cocci.parameterTypeDef Ast0_cocci.dots -> unit val statement_dots : Ast0_cocci.statement Ast0_cocci.dots -> unit diff --git a/parsing_cocci/visitor_ast.ml b/parsing_cocci/visitor_ast.ml index c21cabf..d8be92b 100644 --- a/parsing_cocci/visitor_ast.ml +++ b/parsing_cocci/visitor_ast.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + module Ast0 = Ast0_cocci module Ast = Ast_cocci diff --git a/parsing_cocci/visitor_ast.mli b/parsing_cocci/visitor_ast.mli index 9e2060c..9a4f89b 100644 --- a/parsing_cocci/visitor_ast.mli +++ b/parsing_cocci/visitor_ast.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + type 'a combiner = {combiner_ident : Ast_cocci.ident -> 'a; combiner_expression : Ast_cocci.expression -> 'a; diff --git a/parsing_cocci/visitor_ast0.ml b/parsing_cocci/visitor_ast0.ml index 378696c..37aac22 100644 --- a/parsing_cocci/visitor_ast0.ml +++ b/parsing_cocci/visitor_ast0.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* --------------------------------------------------------------------- *) (* Generic traversal: rebuilder *) diff --git a/parsing_cocci/visitor_ast0.mli b/parsing_cocci/visitor_ast0.mli index 14b8212..9ec67ce 100644 --- a/parsing_cocci/visitor_ast0.mli +++ b/parsing_cocci/visitor_ast0.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val combiner_functions : 'a Visitor_ast0_types.combiner_functions val combiner : ('a -> 'a -> 'a) -> diff --git a/parsing_cocci/visitor_ast0_types.ml b/parsing_cocci/visitor_ast0_types.ml index a679616..21a12c1 100644 --- a/parsing_cocci/visitor_ast0_types.ml +++ b/parsing_cocci/visitor_ast0_types.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + module Ast0 = Ast0_cocci module Ast = Ast_cocci diff --git a/popl/Makefile b/popl/Makefile index e77bc96..326f20b 100644 --- a/popl/Makefile +++ b/popl/Makefile @@ -1,3 +1,23 @@ +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen +# Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix +# This file is part of Coccinelle. +# +# Coccinelle is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, according to version 2 of the License. +# +# Coccinelle is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Coccinelle. If not, see . +# +# The authors reserve the right to distribute this or future versions of +# Coccinelle under other licenses. + + #note: if you add a file (a .mli or .ml), dont forget to do a make depend -include ../Makefile.config diff --git a/popl/ast_popl.ml b/popl/ast_popl.ml index cedb917..7b128ab 100644 --- a/popl/ast_popl.ml +++ b/popl/ast_popl.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + type sequence = Seq of element * sequence | Empty diff --git a/popl/asttopopl.ml b/popl/asttopopl.ml index fb85a8e..21d5b92 100644 --- a/popl/asttopopl.ml +++ b/popl/asttopopl.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + module Ast = Ast_cocci module Past = Ast_popl diff --git a/popl/asttopopl.mli b/popl/asttopopl.mli index 5d8e4b1..d4d049f 100644 --- a/popl/asttopopl.mli +++ b/popl/asttopopl.mli @@ -1 +1,23 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val top : Ast_cocci.top_level -> Ast_popl.sequence diff --git a/popl/insert_befaft.ml b/popl/insert_befaft.ml index 1119d2b..32207d7 100644 --- a/popl/insert_befaft.ml +++ b/popl/insert_befaft.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + module Past = Ast_popl (* --------------------------------------------------------------------- *) diff --git a/popl/insert_befaft.mli b/popl/insert_befaft.mli index eea1354..30c4fab 100644 --- a/popl/insert_befaft.mli +++ b/popl/insert_befaft.mli @@ -1 +1,23 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val insert_befaft : Ast_popl.sequence -> Ast_popl.sequence diff --git a/popl/insert_quantifiers.ml b/popl/insert_quantifiers.ml index a41da31..daf21ea 100644 --- a/popl/insert_quantifiers.ml +++ b/popl/insert_quantifiers.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + module Ast = Ast_cocci module Past = Ast_popl diff --git a/popl/insert_quantifiers.mli b/popl/insert_quantifiers.mli index b8eef27..f0d7622 100644 --- a/popl/insert_quantifiers.mli +++ b/popl/insert_quantifiers.mli @@ -1 +1,23 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val insert_quantifiers : Ast_popl.sequence -> Ast_popl.sequence diff --git a/popl/popl.ml b/popl/popl.ml index 8c4b87d..2a82247 100644 --- a/popl/popl.ml +++ b/popl/popl.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + type cocci_predicate = Lib_engine.predicate * Ast_cocci.meta_name Ast_ctl.modif type formula = (cocci_predicate,Ast_cocci.meta_name, Wrapper_ctl.info) Ast_ctl.generic_ctl diff --git a/popl/popl.mli b/popl/popl.mli index 4a7fd49..8b813c2 100644 --- a/popl/popl.mli +++ b/popl/popl.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + type cocci_predicate = Lib_engine.predicate * Ast_cocci.meta_name Ast_ctl.modif type formula = (cocci_predicate,Ast_cocci.meta_name, Wrapper_ctl.info) Ast_ctl.generic_ctl diff --git a/popl/popltoctl.ml b/popl/popltoctl.ml index ab1c71d..7941d06 100644 --- a/popl/popltoctl.ml +++ b/popl/popltoctl.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + module Past = Ast_popl module Ast = Ast_cocci module V = Visitor_ast diff --git a/popl/popltoctl.mli b/popl/popltoctl.mli index b1285d1..0ddbb6d 100644 --- a/popl/popltoctl.mli +++ b/popl/popltoctl.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + type cocci_predicate = Lib_engine.predicate * Ast_cocci.meta_name Ast_ctl.modif type formula = (cocci_predicate,Ast_cocci.meta_name, Wrapper_ctl.info) Ast_ctl.generic_ctl diff --git a/popl/pretty_print_popl.ml b/popl/pretty_print_popl.ml index addcf39..3c58341 100644 --- a/popl/pretty_print_popl.ml +++ b/popl/pretty_print_popl.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Format module Past = Ast_popl diff --git a/popl/pretty_print_popl.mli b/popl/pretty_print_popl.mli index 5b3399a..5193f26 100644 --- a/popl/pretty_print_popl.mli +++ b/popl/pretty_print_popl.mli @@ -1,2 +1,24 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val pretty_print : Ast_popl.sequence -> unit val pretty_print_e : Ast_popl.element -> unit diff --git a/popl09/Makefile b/popl09/Makefile index e0cf4da..8e7ba83 100644 --- a/popl09/Makefile +++ b/popl09/Makefile @@ -1,3 +1,23 @@ +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen +# Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix +# This file is part of Coccinelle. +# +# Coccinelle is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, according to version 2 of the License. +# +# Coccinelle is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Coccinelle. If not, see . +# +# The authors reserve the right to distribute this or future versions of +# Coccinelle under other licenses. + + #note: if you add a file (a .mli or .ml), dont forget to do a make depend -include ../Makefile.config diff --git a/popl09/ast_popl.ml b/popl09/ast_popl.ml index cbefa79..79bcc6b 100644 --- a/popl09/ast_popl.ml +++ b/popl09/ast_popl.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + type sequence = Seq of element * sequence | Empty diff --git a/popl09/asttopopl.ml b/popl09/asttopopl.ml index d7ebdc0..75f649c 100644 --- a/popl09/asttopopl.ml +++ b/popl09/asttopopl.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + module Ast = Ast_cocci module Past = Ast_popl diff --git a/popl09/asttopopl.mli b/popl09/asttopopl.mli index 5d8e4b1..d4d049f 100644 --- a/popl09/asttopopl.mli +++ b/popl09/asttopopl.mli @@ -1 +1,23 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val top : Ast_cocci.top_level -> Ast_popl.sequence diff --git a/popl09/flag_popl.ml b/popl09/flag_popl.ml index fedbcee..465d608 100644 --- a/popl09/flag_popl.ml +++ b/popl09/flag_popl.ml @@ -1,2 +1,24 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + let mark_all = ref false let keep_all_wits = ref false diff --git a/popl09/insert_quantifiers.ml b/popl09/insert_quantifiers.ml index 59b4590..df7d6f0 100644 --- a/popl09/insert_quantifiers.ml +++ b/popl09/insert_quantifiers.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + module Ast = Ast_cocci module Past = Ast_popl diff --git a/popl09/insert_quantifiers.mli b/popl09/insert_quantifiers.mli index b8eef27..f0d7622 100644 --- a/popl09/insert_quantifiers.mli +++ b/popl09/insert_quantifiers.mli @@ -1 +1,23 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val insert_quantifiers : Ast_popl.sequence -> Ast_popl.sequence diff --git a/popl09/popl.ml b/popl09/popl.ml index 70ac698..e35afcf 100644 --- a/popl09/popl.ml +++ b/popl09/popl.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + type cocci_predicate = Lib_engine.predicate * Ast_cocci.meta_name Ast_ctl.modif type formula = (cocci_predicate,Ast_cocci.meta_name, Wrapper_ctl.info) Ast_ctl.generic_ctl diff --git a/popl09/popl.mli b/popl09/popl.mli index 4a7fd49..8b813c2 100644 --- a/popl09/popl.mli +++ b/popl09/popl.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + type cocci_predicate = Lib_engine.predicate * Ast_cocci.meta_name Ast_ctl.modif type formula = (cocci_predicate,Ast_cocci.meta_name, Wrapper_ctl.info) Ast_ctl.generic_ctl diff --git a/popl09/popltoctl.ml b/popl09/popltoctl.ml index f01887a..29d5696 100644 --- a/popl09/popltoctl.ml +++ b/popl09/popltoctl.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + module Past = Ast_popl module Ast = Ast_cocci module V = Visitor_ast diff --git a/popl09/popltoctl.mli b/popl09/popltoctl.mli index b1285d1..0ddbb6d 100644 --- a/popl09/popltoctl.mli +++ b/popl09/popltoctl.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + type cocci_predicate = Lib_engine.predicate * Ast_cocci.meta_name Ast_ctl.modif type formula = (cocci_predicate,Ast_cocci.meta_name, Wrapper_ctl.info) Ast_ctl.generic_ctl diff --git a/popl09/pretty_print_popl.ml b/popl09/pretty_print_popl.ml index 92e4f55..8364ac4 100644 --- a/popl09/pretty_print_popl.ml +++ b/popl09/pretty_print_popl.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Format module Past = Ast_popl module Ast = Ast_cocci diff --git a/popl09/pretty_print_popl.mli b/popl09/pretty_print_popl.mli index 5b3399a..5193f26 100644 --- a/popl09/pretty_print_popl.mli +++ b/popl09/pretty_print_popl.mli @@ -1,2 +1,24 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + val pretty_print : Ast_popl.sequence -> unit val pretty_print_e : Ast_popl.element -> unit diff --git a/python/Makefile b/python/Makefile index 7a8d9bd..0db70e2 100644 --- a/python/Makefile +++ b/python/Makefile @@ -1,3 +1,23 @@ +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen +# Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix +# This file is part of Coccinelle. +# +# Coccinelle is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, according to version 2 of the License. +# +# Coccinelle is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Coccinelle. If not, see . +# +# The authors reserve the right to distribute this or future versions of +# Coccinelle under other licenses. + + ############################################################################# # Configuration section ############################################################################# diff --git a/python/no_pycocci.ml b/python/no_pycocci.ml index 49d156e..5d3d23f 100644 --- a/python/no_pycocci.ml +++ b/python/no_pycocci.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Ast_c open Common open Pycocci_aux diff --git a/python/no_pycocci_aux.ml b/python/no_pycocci_aux.ml index 9a7411e..0867b6c 100644 --- a/python/no_pycocci_aux.ml +++ b/python/no_pycocci_aux.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Ast_c open Common diff --git a/python/yes_pycocci.ml b/python/yes_pycocci.ml index b507c55..b5eff56 100644 --- a/python/yes_pycocci.ml +++ b/python/yes_pycocci.ml @@ -1,3 +1,47 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Ast_c open Common open Pycaml diff --git a/python/yes_pycocci_aux.ml b/python/yes_pycocci_aux.ml index d06b470..9cd20c3 100644 --- a/python/yes_pycocci_aux.ml +++ b/python/yes_pycocci_aux.ml @@ -1,3 +1,47 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Ast_c open Common open Pycaml diff --git a/scripts/coccicheck/cocci/kmalloc7.cocci b/scripts/coccicheck/cocci/kmalloc7.cocci index 3d2ca7b..89affbc 100644 --- a/scripts/coccicheck/cocci/kmalloc7.cocci +++ b/scripts/coccicheck/cocci/kmalloc7.cocci @@ -61,16 +61,7 @@ position r.p1, r.p2, r.p3; @@ *x@p1 -... +<... *goto@p3 l; -... -*return@p2 ...; - -@depends on diff && !with_goto@ -expression x; -position r.p1, r.p2; -@@ - -*x@p1 -... +...> *return@p2 ...; diff --git a/scripts/coccicheck/cocci/malloc.cocci b/scripts/coccicheck/cocci/malloc.cocci index c060ac5..995b46a 100644 --- a/scripts/coccicheck/cocci/malloc.cocci +++ b/scripts/coccicheck/cocci/malloc.cocci @@ -61,16 +61,7 @@ position r.p1, r.p2, r.p3; @@ *x@p1 -... +<... *goto@p3 l; -... -*return@p2 ...; - -@depends on diff && !with_goto@ -expression x; -position r.p1, r.p2; -@@ - -*x@p1 -... +...> *return@p2 ...; diff --git a/scripts/coccicheck/cocci/notand.cocci b/scripts/coccicheck/cocci/notand.cocci index 8cc435e..71103cf 100644 --- a/scripts/coccicheck/cocci/notand.cocci +++ b/scripts/coccicheck/cocci/notand.cocci @@ -7,7 +7,7 @@ virtual org,diff -@r disable unlikely,likely @ +@r@ expression E; constant C; position p; diff --git a/scripts/coccicheck/cocci/open.cocci b/scripts/coccicheck/cocci/open.cocci index 6effc2f..0ef0c97 100644 --- a/scripts/coccicheck/cocci/open.cocci +++ b/scripts/coccicheck/cocci/open.cocci @@ -61,17 +61,7 @@ position r.p1, r.p2, r.p3; @@ *x@p1 -... +<... *goto@p3 l; -... -*return@p2 ...; - -@depends on diff && !with_goto@ -expression x; -position r.p1, r.p2; -@@ - -*x@p1 -... +...> *return@p2 ...; - diff --git a/scripts/extract_c_and_res.pl b/scripts/extract_c_and_res.pl index 4ef3f64..3be6213 100755 --- a/scripts/extract_c_and_res.pl +++ b/scripts/extract_c_and_res.pl @@ -1,3 +1,23 @@ +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen +# Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix +# This file is part of Coccinelle. +# +# Coccinelle is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, according to version 2 of the License. +# +# Coccinelle is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Coccinelle. If not, see . +# +# The authors reserve the right to distribute this or future versions of +# Coccinelle under other licenses. + + #!/usr/bin/perl -w use strict; diff --git a/scripts/extract_examples.pl b/scripts/extract_examples.pl index f0fed0a..23a5465 100755 --- a/scripts/extract_examples.pl +++ b/scripts/extract_examples.pl @@ -1,3 +1,23 @@ +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen +# Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix +# This file is part of Coccinelle. +# +# Coccinelle is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, according to version 2 of the License. +# +# Coccinelle is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Coccinelle. If not, see . +# +# The authors reserve the right to distribute this or future versions of +# Coccinelle under other licenses. + + #!/usr/bin/perl #usage: ./extract_examples.pl ~/week-end/working-documents/examples.tex diff --git a/scripts/extractor_README.pl b/scripts/extractor_README.pl index 2339422..6d14986 100755 --- a/scripts/extractor_README.pl +++ b/scripts/extractor_README.pl @@ -1,3 +1,23 @@ +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen +# Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix +# This file is part of Coccinelle. +# +# Coccinelle is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, according to version 2 of the License. +# +# Coccinelle is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Coccinelle. If not, see . +# +# The authors reserve the right to distribute this or future versions of +# Coccinelle under other licenses. + + #!/usr/bin/perl use strict; diff --git a/scripts/gather_failed.pl b/scripts/gather_failed.pl index 11f32b1..b078b01 100755 --- a/scripts/gather_failed.pl +++ b/scripts/gather_failed.pl @@ -1,3 +1,23 @@ +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen +# Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix +# This file is part of Coccinelle. +# +# Coccinelle is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, according to version 2 of the License. +# +# Coccinelle is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Coccinelle. If not, see . +# +# The authors reserve the right to distribute this or future versions of +# Coccinelle under other licenses. + + #!/usr/bin/perl # usage: gather_failed.pl **/*.failed > /tmp/big.failed diff --git a/scripts/readme.pl b/scripts/readme.pl index 84b7091..0c33a07 100755 --- a/scripts/readme.pl +++ b/scripts/readme.pl @@ -1,3 +1,23 @@ +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen +# Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix +# This file is part of Coccinelle. +# +# Coccinelle is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, according to version 2 of the License. +# +# Coccinelle is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Coccinelle. If not, see . +# +# The authors reserve the right to distribute this or future versions of +# Coccinelle under other licenses. + + #!/usr/bin/perl # # ARGV: 0 = replacement text, 1 = file w. list of files diff --git a/scripts/stat_directories.pl b/scripts/stat_directories.pl index 10821a7..c05f9b5 100755 --- a/scripts/stat_directories.pl +++ b/scripts/stat_directories.pl @@ -1,3 +1,23 @@ +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen +# Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix +# This file is part of Coccinelle. +# +# Coccinelle is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, according to version 2 of the License. +# +# Coccinelle is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Coccinelle. If not, see . +# +# The authors reserve the right to distribute this or future versions of +# Coccinelle under other licenses. + + #!/usr/bin/perl #usage: diff --git a/scripts/stat_directories_complete.pl b/scripts/stat_directories_complete.pl index 58578ea..bfd7faa 100755 --- a/scripts/stat_directories_complete.pl +++ b/scripts/stat_directories_complete.pl @@ -1,3 +1,23 @@ +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen +# Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix +# This file is part of Coccinelle. +# +# Coccinelle is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, according to version 2 of the License. +# +# Coccinelle is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Coccinelle. If not, see . +# +# The authors reserve the right to distribute this or future versions of +# Coccinelle under other licenses. + + #!/usr/bin/perl #usage: diff --git a/scripts/stat_directory_complete.pl b/scripts/stat_directory_complete.pl index a7d35d2..3be7088 100755 --- a/scripts/stat_directory_complete.pl +++ b/scripts/stat_directory_complete.pl @@ -1,3 +1,23 @@ +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen +# Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix +# This file is part of Coccinelle. +# +# Coccinelle is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, according to version 2 of the License. +# +# Coccinelle is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Coccinelle. If not, see . +# +# The authors reserve the right to distribute this or future versions of +# Coccinelle under other licenses. + + #!/usr/bin/perl use strict; diff --git a/standard.iso b/standard.iso index a748c05..88add5b 100644 --- a/standard.iso +++ b/standard.iso @@ -313,7 +313,7 @@ for(X;Y;i++) S <=> for(X;Y;++i) S // likely and unlikely are used to give hints to gcc to improve performance. Expression -@ likely @ +@ unlikely @ expression E; @@ diff --git a/test.ml b/test.ml index d1176b7..2723fb8 100644 --- a/test.ml +++ b/test.ml @@ -1 +1,23 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + let foo_ctl () = failwith "there is no foo_ctl formula" diff --git a/testing.ml b/testing.ml index 5d648b8..19d0ea7 100644 --- a/testing.ml +++ b/testing.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Common (*****************************************************************************) diff --git a/testing.mli b/testing.mli index 08909dc..2e48e0c 100644 --- a/testing.mli +++ b/testing.mli @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Common (*****************************************************************************) diff --git a/tests/SCORE_expected_orig.sexp b/tests/SCORE_expected_orig.sexp index f79f8a9..de9cd74 100644 --- a/tests/SCORE_expected_orig.sexp +++ b/tests/SCORE_expected_orig.sexp @@ -1,47 +1,53 @@ -((a3d.res Ok) (a_and_e.res Ok) (a_and_e_ver1.res Ok) (addelse.res Ok) - (addif.res Ok) (addif1.res Ok) (addif2.res Ok) (after_if.res Ok) - (anon.res Ok) (ar.res Ok) (arg.res Ok) (argument.res Ok) (array_init.res Ok) - (array_size.res Ok) (arraysz.res Ok) (b1.res Ok) (b2.res Ok) +((a.res Ok) (a3d.res Ok) (a_and_e.res Ok) (a_and_e_ver1.res Ok) (ab.res Ok) + (addaft.res Ok) (addbefore.res Ok) (addbeforeafter.res Ok) (addelse.res Ok) + (addif.res Ok) (addif1.res Ok) (addif2.res Ok) (addtoo.res Ok) + (after_if.res Ok) (anon.res Ok) (ar.res Ok) (arg.res Ok) (argument.res Ok) + (array_init.res Ok) (array_size.res Ok) (arraysz.res Ok) (b1.res Ok) + (b2.res Ok) (bad_iso_example.res (Pb "INCORRECT:diff token: ( VS x\nFile \"tests/bad_iso_example.c\", line 2, column 6, charpos = 19\n around = '(', whole content = if ((x = 3)) return;\nFile \"tests/bad_iso_example.res\", line 2, column 6, charpos = 19\n around = 'x', whole content = if (x) return;\n\n diff (result(<) vs expected_result(>)) = \n @@ -1,4 +1,4 @@\n int main() {\n - if ((x = 3)) return;\n + if (x) return;\n }\n \n")) (bad_ptr_print.res Ok) (bad_typedef.res Ok) (badexp.res Ok) (badpos.res (Pb - "PROBLEM\n exn = Failure(\"rule starting on line 1: already tagged token:\\nFile \\\"tests/badpos.c\\\", line 5, column 30, charpos = 139\\n around = 'reg_ptr', whole content = \\t (int) -(((struct pt_regs *) reg_ptr)->orig_eax + 2));\")\n")) - (badtypedef.res Ok) (badzero.res Ok) (ben.res Ok) (bitfield.res Ok) - (braces.res Ok) (break.res Ok) (bug1.res Ok) + "PROBLEM\n exn = Failure(\"rule starting on line 1: already tagged token:\\nC code context\\nFile \\\"tests/badpos.c\\\", line 5, column 30, charpos = 139\\n around = 'reg_ptr', whole content = \\t (int) -(((struct pt_regs *) reg_ptr)->orig_eax + 2));\")\n")) + (badtypedef.res Ok) (badzero.res Ok) (befS.res Ok) (ben.res Ok) + (bitfield.res Ok) (braces.res Ok) (break.res Ok) (bug1.res Ok) (bugloop.res (Pb "INCORRECT:diff token: PF_FREEZE VS )\nFile , line 12, column 16, charpos = 390\n around = 'PF_FREEZE', whole content = \t\t\trefrigerator(PF_FREEZE);\nFile \"tests/bugloop.res\", line 8, column 16, charpos = 160\n around = ')', whole content = \t\t\trefrigerator();\n\n diff (result(<) vs expected_result(>)) = \n @@ -1,7 +1,3 @@\n -/* this doesn't work, because on the paths where we don't find refrigerator,\n -we expect to reach Exit without first going through current->flags & PF_FREEZE,\n -but of course any path that goes around the loop does precisely that */\n -\n static int stir_transmit_thread(void *arg)\n {\n \n @@ -9,7 +5,7 @@\n \t{\n \t\t/* if suspending, then power off and wait */\n \t\tif (unlikely(freezing(current))) {\n -\t\t\trefrigerator(PF_FREEZE);\n +\t\t\trefrigerator();\n \n \t\t}\n \t}\n")) - (bugon.res Ok) (cards.res Ok) (cast.res Ok) (cast_iso.res Ok) + (bugon.res Ok) (cards.res Ok) (cast.res Ok) (cast_iso.res Ok) (com.res Ok) (compare.res Ok) (const.res Ok) (const1bis.res Ok) (const_adding.res Ok) (const_array.res Ok) (const_implicit_iso.res Ok) (constty.res Ok) (constx.res Ok) (cs_check.res Ok) (cst.res Ok) (csw.res Ok) (dbg.res (Pb - "INCORRECT:diff token: else VS (\nFile , line 8, column 2, charpos = 133\n around = 'else', whole content = \t\telse pr = NULL;;\nFile \"tests/dbg.res\", line 7, column 5, charpos = 130\n around = '(', whole content = \t\tDBG(\"PCI\");\n\n diff (result(<) vs expected_result(>)) = \n @@ -4,6 +4,6 @@\n \tstruct resource *pr, *r = &dev->resource[idx];\n \n \tif (pr)\n -\t\tDBG\n -\t\telse pr = NULL;;\n +\t\tDBG(\"PCI\");\n +\telse pr = NULL;\n }\n")) + "INCORRECT:diff token: else VS (\nFile , line 8, column 2, charpos = 133\n around = 'else', whole content = \t\telse pr = NULL;(\"PCI\");\nFile \"tests/dbg.res\", line 7, column 5, charpos = 130\n around = '(', whole content = \t\tDBG(\"PCI\");\n\n diff (result(<) vs expected_result(>)) = \n @@ -4,6 +4,6 @@\n \tstruct resource *pr, *r = &dev->resource[idx];\n \n \tif (pr)\n -\t\tDBG\n -\t\telse pr = NULL;(\"PCI\");\n +\t\tDBG(\"PCI\");\n +\telse pr = NULL;\n }\n")) + (dbg1.res + (Pb + "INCORRECT:diff token: E VS (\nFile , line 5, column 2, charpos = 75\n around = 'E', whole content = \t\tE = NULL;(\"PCI\");\nFile \"tests/dbg1.res\", line 4, column 5, charpos = 72\n around = '(', whole content = \t\tDBG(\"PCI\");\n\n diff (result(<) vs expected_result(>)) = \n @@ -1,6 +1,6 @@\n \n static inline void alloc_resource(struct pci_dev *dev, int idx)\n {\n -\t\tDBG\n -\t\tE = NULL;(\"PCI\");\n +\t\tDBG(\"PCI\");\n +\t\tE = NULL;\n }\n")) (dc_close.res Ok) (debug.res Ok) (dec.res Ok) (decl.res Ok) (decl2.res Ok) (decl_space.res Ok) (decl_split.res (Pb "INCORRECT:diff token: int VS }\nFile \"tests/decl_split.c\", line 2, column 8, charpos = 27\n around = 'int', whole content = int x, y;\nFile \"tests/decl_split.res\", line 2, column 0, charpos = 19\n around = '}', whole content = }\n\n diff (result(<) vs expected_result(>)) = \n @@ -1,3 +1,2 @@\n int func(int i) { \n - int x, y;\n }\n")) - (define_exp.res Ok) (define_param.res Ok) (deftodo.res Ok) (deref.res Ok) - (devlink.res Ok) (disjexpr.res Ok) (disjexpr_ver1.res Ok) - (disjexpr_ver2.res Ok) (distribute.res Ok) (double.res Ok) - (double_assign.res Ok) - (double_switch.res (Pb "PROBLEM\n exn = Common.Impossible\n")) - (doublepos.res Ok) - (doubleswitch.res (Pb "PROBLEM\n exn = Common.Impossible\n")) + (define_exp.res Ok) (define_param.res Ok) (deftodo.res Ok) + (delete_function.res Ok) (deref.res Ok) (devlink.res Ok) (disjexpr.res Ok) + (disjexpr_ver1.res Ok) (disjexpr_ver2.res Ok) (distribute.res Ok) + (double.res Ok) (double_assign.res Ok) (double_switch.res Ok) + (doublepos.res Ok) (doubleswitch.res Ok) + (doundo.res + (Pb + "INCORRECT:diff token: xxx VS new_foo\nFile , line 7, column 2, charpos = 85\n around = 'xxx', whole content = xxx();\nFile \"tests/doundo.res\", line 7, column 2, charpos = 85\n around = 'new_foo', whole content = new_foo();\n\n diff (result(<) vs expected_result(>)) = \n @@ -4,5 +4,5 @@\n {\n const s8 (*queue_priority_mapping)[2];\n s8 *noevent;\n - xxx();\n + new_foo();\n }\n")) (dowhile.res Ok) (dropf.res Ok) (dropparam.res Ok) (edots.res Ok) (edots_ver1.res Ok) (empty.res Ok) (end_commas.res Ok) (endif.res Ok) - (exp.res Ok) (expnest.res Ok) (expopt.res Ok) (expopt2.res Ok) + (enum.res Ok) (exp.res Ok) (expnest.res Ok) (expopt.res Ok) (expopt2.res Ok) (expopt3.res Ok) (expopt3_ver1.res Ok) (expopt3_ver2.res Ok) (fields.res Ok) - (fieldsmin.res Ok) (fix_flow_need.res Ok) (fn_todo.res Ok) (fnptr.res Ok) - (fnret.res Ok) (four.res Ok) (foura.res Ok) (fp.res Ok) (fun.res Ok) - (gilles-question.res Ok) (gotobreak.res Ok) (hd.res Ok) (headers.res Ok) - (hex.res Ok) (hil1.res Ok) (if.res Ok) (ifbr.res Ok) (ifdef1.res Ok) - (ifdef2.res Ok) + (fieldsmin.res Ok) (find_long.res Ok) (fix_flow_need.res Ok) + (fn_todo.res Ok) (fnptr.res Ok) (fnret.res Ok) (four.res Ok) (foura.res Ok) + (fp.res Ok) (fsh.res Ok) (fun.res Ok) (gilles-question.res Ok) + (gotobreak.res Ok) (hd.res Ok) (headers.res Ok) (hex.res Ok) (hil1.res Ok) + (if.res Ok) (ifbr.res Ok) (ifdef1.res Ok) (ifdef2.res Ok) (ifdef3.res (Pb "PROBLEM\n exn = Lexer_cocci.Lexical(\"unrecognised symbol, in token rule: #\")\n")) @@ -63,30 +69,36 @@ (jloop1.res (Pb "PROBLEM\n exn = Failure(\"minus: parse error: \\n = File \\\"tests/jloop1.cocci\\\", line 10, column 3, charpos = 129\\n around = '...>', whole content = ...>\\n\")\n")) - (julia10.res Ok) (julia7.res Ok) (keep_comma.res Ok) (km.res Ok) - (kmalloc.res Ok) (kmc.res Ok) (ktype.res Ok) - (labels_metastatement.res - (Pb - "INCORRECT:diff token: { VS x\nFile , line 4, column 2, charpos = 30\n around = '{', whole content = {\nFile \"tests/labels_metastatement.res\", line 4, column 4, charpos = 32\n around = 'x', whole content = x = 3; foo();\n\n diff (result(<) vs expected_result(>)) = \n @@ -1,15 +1,10 @@\n int foo(int i) {\n \n if(1) {\n - {\n - x = 3;\n - foo();\n - z = 4;\n - foo();\n - }\n - foo();\n - }\n - foo(); // we dont want that it add both foo on the } and on the endif\n + x = 3; foo();\n + z = 4; foo();\n + } // we dont want that it add both foo on the } and on the endif\n // (note: but need correct endif accrochage)\n + foo();\n \n }\n")) - (labels_metastatement_ver1.res Ok) (local.res Ok) (localid.res Ok) + (julia10.res Ok) (julia7.res Ok) (justremove.res Ok) (keep_comma.res Ok) + (km.res Ok) (kmalloc.res Ok) (kmc.res Ok) (ktype.res Ok) + (labels_metastatement.res Ok) (labels_metastatement_ver1.res Ok) + (line_before_last.res Ok) (local.res Ok) (localid.res Ok) (longconst.res Ok) (longlong.res Ok) (longlongint.res Ok) (loop.res Ok) (lvalue.res Ok) - (macro.res Ok) (match_no_meta.res Ok) (max.res Ok) + (macro.res Ok) (macro_int16.res Ok) (match_no_meta.res Ok) (max.res Ok) + (memory.res (Pb "PROBLEM\n exn = Out of memory\n")) (metahex.res (Pb "INCORRECT:diff token: f VS }\nFile \"tests/metahex.c\", line 2, column 2, charpos = 15\n around = 'f', whole content = f(3);\nFile \"tests/metahex.res\", line 2, column 0, charpos = 13\n around = '}', whole content = }\n\n diff (result(<) vs expected_result(>)) = \n @@ -1,4 +1,2 @@\n int main() {\n - f(3);\n - g(0x03);\n }\n")) (metaruleelem.res Ok) (metastatement2.res Ok) (metastatement_for.res Ok) - (metastatement_if.res Ok) (minstruct.res Ok) (minusdots.res Ok) - (minusdots_ver1.res Ok) + (metastatement_if.res Ok) + (mini_null_ref.res + (Pb + "INCORRECT:diff token: if VS struct\nFile , line 6, column 8, charpos = 269\n around = 'if', whole content = if (!pdata) {\nFile \"tests/mini_null_ref.res\", line 6, column 8, charpos = 269\n around = 'struct', whole content = struct w90p910_keypad *keypad;\n\n diff (result(<) vs expected_result(>)) = \n @@ -3,6 +3,8 @@\n const struct w90p910_keypad_platform_data *pdata =\n pdev->dev.platform_data;\n const struct matrix_keymap_data * keymap_data;\n + struct w90p910_keypad *keypad;\n +\n if (!pdata) {\n dev_err(&pdev->dev, \"no platform data defined\\n\");\n return -EINVAL;\n")) + (minstruct.res Ok) (minusdots.res Ok) (minusdots_ver1.res Ok) (multi_func1.res (Pb "PROBLEM\n exn = Failure(\"minus: parse error: \\n = File \\\"tests/multi_func1.cocci\\\", line 12, column 2, charpos = 102\\n around = 'fn2', whole content = fn2(...) {\\n\")\n")) (multiplus.res Ok) (multitype.res Ok) (multitypedef.res Ok) (multivars.res Ok) (nest.res Ok) (nestone.res Ok) (nestseq.res Ok) - (neststruct.res Ok) (nl.res Ok) (nocast.res Ok) (not.res Ok) (noty.res Ok) - (null_type.res Ok) (of.res Ok) (oneline.res Ok) (opt.res Ok) - (optional_qualifier.res Ok) (optional_storage.res Ok) (orexp.res Ok) - (param.res Ok) (param_end.res Ok) (param_ver1.res Ok) - (parameters_dots.res Ok) (partial.res Ok) + (neststruct.res Ok) (nl.res Ok) (nocast.res Ok) (not.res Ok) (notest.res Ok) + (noty.res Ok) (null_type.res Ok) + (oddifdef.res + (Pb + "INCORRECT:diff token: #else\n VS x\nFile , line 10, column 0, charpos = 114\n around = '#else\n', whole content = #else\nFile \"tests/oddifdef.res\", line 10, column 2, charpos = 116\n around = 'x', whole content = x = 0;\n\n diff (result(<) vs expected_result(>)) = \n @@ -7,8 +7,9 @@\n a = 5;\n \n #ifdef FOO\n + x = 0;\n #else\n - \n + x = 0;\n #endif\n }\n \n @@ -21,8 +22,9 @@\n a = 3;\n \n #ifdef FOO\n + x = 0;\n #else\n - \n + x = 0;\n #endif\n }\n \n @@ -35,7 +37,8 @@\n #endif\n \n #ifdef FOO\n + x = 0;\n #else\n - \n + x = 0;\n #endif\n }\n")) + (of.res Ok) (oneline.res Ok) (opt.res Ok) (optional_qualifier.res Ok) + (optional_storage.res Ok) (orexp.res Ok) (overshoot.res Ok) (param.res Ok) + (param_end.res Ok) (param_ver1.res Ok) (parameters_dots.res Ok) + (partial.res Ok) (pb_distribute_type.res (Pb "INCORRECT:PB parsing only in generated-file\n diff (result(<) vs expected_result(>)) = \n @@ -5,11 +5,11 @@\n \n \n int foo() {\n - int * *x;\n + int **x;\n return 0;\n }\n \n int foo() {\n - int[45] *x;\n + int (*x)[45];\n return 0;\n }\n")) @@ -99,35 +111,38 @@ (pb_parsing_macro.res Ok) (pb_tag_symbols.res Ok) (pmac.res Ok) (posiso.res Ok) (positionc.res Ok) (post.res Ok) (print_return.res Ok) (proto.res Ok) (proto2.res Ok) (proto_ver1.res Ok) (proto_ver2.res Ok) - (protoassert.res Ok) (protox.res Ok) (rcu3.res Ok) + (protoassert.res Ok) (protox.res Ok) (rcu3.res Ok) (regexp.res Ok) + (regexp2.res Ok) (regexp3.res Ok) (remstruct.res (Pb "INCORRECT:not same number of entities (func, decl, ...)\n diff (result(<) vs expected_result(>)) = \n @@ -1,10 +1,3 @@\n -\n - .ack = mpuio_ack_irq,\n - .mask = mpuio_mask_irq,\n - .unmask = mpuio_unmask_irq\n -\n - .b = 15,\n -\n int hello ( String input )\n {\n String input = input.lowercase();\n")) (replace_typedef.res Ok) (reserved.res Ok) (retmacro.res Ok) (rets.res Ok) - (return.res Ok) (return_implicit.res Ok) (same_expr.res Ok) + (return.res Ok) (return_implicit.res Ok) (retval.res Ok) (same_expr.res Ok) (scope_problem.res (Pb - "INCORRECT:diff token: } VS a\nFile , line 6, column 2, charpos = 45\n around = '}', whole content = }\nFile \"tests/scope_problem.res\", line 7, column 4, charpos = 49\n around = 'a', whole content = a = 2;\n\n diff (result(<) vs expected_result(>)) = \n @@ -1,8 +1,10 @@\n void main(int i) {\n \n \n +\n if(1) {\n int a;\n + a = 2;\n }\n \n \n")) + "INCORRECT:diff token: } VS a\nFile , line 5, column 2, charpos = 43\n around = '}', whole content = }\nFile \"tests/scope_problem.res\", line 7, column 4, charpos = 49\n around = 'a', whole content = a = 2;\n\n diff (result(<) vs expected_result(>)) = \n @@ -1,7 +1,10 @@\n void main(int i) {\n \n + \n +\n if(1) {\n int a;\n + a = 2;\n }\n \n \n")) (serio.res (Pb "INCORRECT:diff token: init_MUTEX VS mutex_init\nFile \"tests/serio.c\", line 7, column 1, charpos = 130\n around = 'init_MUTEX', whole content = \tinit_MUTEX(&serio->drv_sem);\nFile \"tests/serio.res\", line 7, column 1, charpos = 130\n around = 'mutex_init', whole content = \tmutex_init(&serio->new_lock);\n\n diff (result(<) vs expected_result(>)) = \n @@ -4,5 +4,5 @@\n \n static void serio_init_port(struct serio *serio)\n {\n -\tinit_MUTEX(&serio->drv_sem);\n +\tmutex_init(&serio->new_lock);\n }\n")) (shared_brace.res Ok) (signed.res Ok) (sis.res Ok) (sizeof.res Ok) - (sizeof_julia.res Ok) (skip.res Ok) (sp.res Ok) (spaces.res Ok) (spl.res Ok) + (sizeof_julia.res Ok) (sizestar.res Ok) (skip.res Ok) (sp.res Ok) + (spaces.res Ok) (spl.res Ok) (static.res (Pb "PROBLEM\n exn = Common.Impossible\n")) (stm1.res Ok) (stm10.res Ok) (stm10_ver1.res Ok) (stm2.res Ok) (stm3.res Ok) (stm4.res Ok) (stm5.res Ok) (stm6.res Ok) (stm7.res Ok) (stm8.res Ok) (stmt.res Ok) (strangeorder.res Ok) (string.res Ok) (struct.res Ok) (struct_metavar.res Ok) (struct_typedef.res Ok) (structfoo.res Ok) - (substruct.res Ok) (sw.res Ok) (switch.res Ok) (td.res Ok) (test0.res Ok) - (test1.res Ok) (test10.res Ok) (test10_ver1.res Ok) (test11.res Ok) - (test11_ver1.res Ok) (test12.res Ok) (test2.res Ok) (test3.res Ok) - (test4.res Ok) (test5.res Ok) (test5_ver1.res Ok) (test6.res Ok) - (test7.res Ok) (test8.res Ok) (test9.res Ok) (test_unsigned_meta.res Ok) + (substruct.res Ok) (sw.res Ok) (switch.res Ok) (switchdecl.res Ok) + (td.res Ok) (test0.res Ok) (test1.res Ok) (test10.res Ok) + (test10_ver1.res Ok) (test11.res Ok) (test11_ver1.res Ok) (test12.res Ok) + (test2.res Ok) (test3.res Ok) (test4.res Ok) (test5.res Ok) + (test5_ver1.res Ok) (test6.res Ok) (test7.res Ok) (test8.res Ok) + (test9.res Ok) (test_s.res Ok) (test_unsigned_meta.res Ok) (three_types.res Ok) (threea.res Ok) (top.res Ok) (topdec.res Ok) (topdec_ver1.res Ok) (topdec_ver2.res Ok) (toplevel_macrostmt.res Ok) (toplevel_struct.res Ok) (tup.res Ok) (twoproto.res Ok) (ty.res Ok) - (ty1.res Ok) (ty_tyexp.res Ok) (type.res Ok) (type1.res Ok) - (type_annotated.res Ok) (type_ver1.res Ok) + (ty1.res Ok) (ty_tyexp.res Ok) (tydisj.res Ok) (tyex.res Ok) (type.res Ok) + (type1.res Ok) (type_annotated.res Ok) (type_ver1.res Ok) (type_ver2.res (Pb "INCORRECT:PB parsing only in generated-file\n diff (result(<) vs expected_result(>)) = \n @@ -1,5 +1,5 @@\n int foo() {\n - int[10] *x;\n + int *x[10];\n return 0;\n }\n \n")) diff --git a/tools/Makefile b/tools/Makefile index ba98ec0..29d487d 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -1,3 +1,23 @@ +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen +# Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix +# This file is part of Coccinelle. +# +# Coccinelle is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, according to version 2 of the License. +# +# Coccinelle is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Coccinelle. If not, see . +# +# The authors reserve the right to distribute this or future versions of +# Coccinelle under other licenses. + + -include ../Makefile.config PROGS=spp gitgrep split_patch extract_c_and_res #generate_dependencies diff --git a/tools/alloc_free.ml b/tools/alloc_free.ml index 1c91280..eed905f 100644 --- a/tools/alloc_free.ml +++ b/tools/alloc_free.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* The following finds out for each file, how it does deallocation for each allocator *) diff --git a/tools/bridge.ml b/tools/bridge.ml index 6e3037c..51b4da2 100644 --- a/tools/bridge.ml +++ b/tools/bridge.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + let drop_spaces s = String.concat "" (Str.split (Str.regexp "[ ]+") s) @@ -56,6 +78,7 @@ let process_fp fl = !lines (* --------------------------------------------------------------------- *) +(* same info, different categories *) let discard_ambiguous lines = let rec loop = function @@ -208,8 +231,11 @@ let rec upto = function | n -> (mktag (n-1)) :: (upto (n-1)) let _ = + let (no_ors,args) = + List.partition (function "-no_ors" -> true | _ -> false) + (Array.to_list Sys.argv) in let (file,fp,env) = - match List.tl(Array.to_list Sys.argv) with + match List.tl args with file::env -> let rec loop prev = function [] -> @@ -233,7 +259,7 @@ let _ = let fp = List.fold_left (@) [] (List.map process_fp fp) in let i = open_in file in let lines = collect_lines fp i in - let lines = collect_ors fp lines in + let lines = if no_ors = [] then collect_ors fp lines else lines in close_in i; let lines = discard_ambiguous lines in List.iter (process_line env) lines; diff --git a/tools/dir_stats.ml b/tools/dir_stats.ml index a4f1417..b147fae 100644 --- a/tools/dir_stats.ml +++ b/tools/dir_stats.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* for each marked thing, how often does it occur and in what files and directories *) diff --git a/tools/extract_c_and_res.ml b/tools/extract_c_and_res.ml index 1eb3804..7a3ad57 100644 --- a/tools/extract_c_and_res.ml +++ b/tools/extract_c_and_res.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Common (*****************************************************************************) diff --git a/tools/generate_dependencies.ml b/tools/generate_dependencies.ml index 4cf056c..bcf47d2 100644 --- a/tools/generate_dependencies.ml +++ b/tools/generate_dependencies.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Common (*****************************************************************************) diff --git a/tools/gitgrep.ml b/tools/gitgrep.ml index 0c9c59a..aba1914 100644 --- a/tools/gitgrep.ml +++ b/tools/gitgrep.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* adjust as convenient *) let prefix = "/tmp/" let prefix = "" diff --git a/tools/gitsort.ml b/tools/gitsort.ml index 4b7e256..29c4833 100644 --- a/tools/gitsort.ml +++ b/tools/gitsort.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* sort a list of git codes such that the most recent comes first *) let git_home = ref "/home/julia/linux-2.6" diff --git a/tools/licensify.ml b/tools/licensify.ml index f650b96..91f59f1 100644 --- a/tools/licensify.ml +++ b/tools/licensify.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + let lines = ["Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen"; "Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix"; diff --git a/tools/process_isoprofile.ml b/tools/process_isoprofile.ml index 29027db..9a27a83 100644 --- a/tools/process_isoprofile.ml +++ b/tools/process_isoprofile.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* This is for processing information created with the -profile_iso option. Runs are assumed separated with a line beginning with =. The first run is discarded *) diff --git a/tools/split_patch.ml b/tools/split_patch.ml index 059ba55..f6e0f73 100644 --- a/tools/split_patch.ml +++ b/tools/split_patch.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Common module CP = Classic_patch diff --git a/tools/spp.ml b/tools/spp.ml index 1281fba..471a7e9 100644 --- a/tools/spp.ml +++ b/tools/spp.ml @@ -1,3 +1,25 @@ +(* + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + open Common exception WrongArguments -- 2.20.1