Coccinelle release 1.0.0-rc14
authorCoccinelle <cocci@diku.dk>
Wed, 18 Jul 2012 21:09:41 +0000 (23:09 +0200)
committerRene Rydhof Hansen <rrh@cs.aau.dk>
Wed, 18 Jul 2012 21:09:41 +0000 (23:09 +0200)
** Language:
- Addition of initializer list metavariables.  Thanks to Michael Stefaniuc
  for noticing the need for them.
- Allow multiple position variables per token
- ++ can now be associated with - code
- Allow /* */ comments as smpl comments, not only as + code
- Add support for && (label addresses)
- local idexpression metavariable no longer matches static local x
- Consider using to be a comment in C++ code.  Patch submitted by Jani Monoses.
- Command line cocci
- print_main etc for ocaml Coccilib
- =~ not ~= is used to indicate a regular expression constraint on an
  identifier.  And !~ for a nonmatch.
- allow long double, short int, long int, and long long int in SmPL code.
- gcc constructors allowed in SmPL.  Thanks to Uwe Kleine-Koenig for
  pointing out the problem.
- Allow ! to appear before () in depends.  Thanks to SF Markus Elfring for
  noticing the problem.
- Can add code containing #pragma or #line.
- Multicharacter command-line options now begin with -- and contain -
  rather than _.
- Allow multiple types of hidden metavariables, each preceded by @.
  Position variables can be attached to these.
- Python code now receives a structure containing a list of matched
  elements for list metavariables.  Thanks to Michael Stefaniuc for
  suggesting this features.
- Python code now receives expressions and identifiers as ordinary strings,
  not as elements of specific structures.
- Allow size_t as the type of an array index in smpl code.  Reported by
  Mansour Moufid.
- Allow renaming an expression as an identifier (@i)

** Features:
- Preserve spacing before // comments when not at the beginning of a line
- Adjusted parsing of endif to put it after jump code
- Improve warning message when using -use_cache
- More helpful initial value for exported variables in python
- Support - on expression nests
- Better handling of the case of a matched declaration that should only
  be replaced by other top level things.
- Allow a semantic patch beginning and ending with braces to match the
  complete body of a function if the braces are not removed and if nothing
  is added before the first brace or after the last one.
- Add -cache_prefix option, to specify where to put cached files.
- Allow module_init(foo); to match module_init(foo) (or likewise for any
  declarer), when no transformation is specified on the semicolon.
- Add Coccilib.exit() for ocaml code and cocci.exit() for python code,
  to abort the treatment of the current file.
- Don't multiply print the same patch for the same file
- Drop date in diff
- Don't repeat smpl type warnings
- -sp_file/-cocci_file are now optional.  If not present an argument that
  ends in .cocci is assumed to be the name of the file containing the
  semantic patch.
- Allow limiting the size of a named cache using -cache_limit
- Cache name specified with -cache_prefix is extended according to the
  index (parallelism), if any.
- Allow multi-character constants in C code and SmPL code.  Thanks to Kamil
  Pilch for pointing out the problem.
- Better parsing of K&R C functions.  No longer convert all parameters to
  typedefs.
- Implement newes as a hash table, for more efficiency on big sets of
  environments.
- A local variable that is declared without a type is not considered to be
  a local variable.  Actually, such a variable is probably really a macro
  that expends to a declaration, and this macro is not the variable name.
- Allow iteration to make modifications when the modifications are done
  inplace.
- -debug gives information about defined virtual rules and about virtual
  identifier bindings.
- no more crashing on c++-like code without the c++ argument.
- dependencies can have ! on ()
- Give ocaml code access to Flag and thus the current file name.
- Slightly more efficient handling of lists.
- Slightly better error message in the case of inconsistent paths
- Improve limited size caching
- Remove zero #ifdefs when everything else is removed
- Mac OSX compatibility (tested on OSX Lion)
- 'Make depend' is called automatically when starting from a cleaned source
- Configure flag --enable-release makes 'make' build the optimized version of
  coccinelle if possible.
- The installed 'bin/spatch' calls spatch.opt or spatch with default parameters
  for iso/headers/python. 'bin/spatch.opt' and 'bin/spatch.byte'
- The bundled packages are now in the 'bundles' subdirectory and in the
  form of their original tarballs. These are extracted and used on-demand.
- Compatibility with python 2 and python 3. Also, a small bug is fixed in the order
  of library includes that caused sometimes trouble when building the pycaml library.
- Dropped the dependency on Perl in the Makefiles
- The configure script uses pkg-config and ocaml findlib and provides many
  flags for tuning/overriding the build process (including the ocaml
  compiler and the C compiler and preprocessor).
- Add line number directives to the .ml file generated from a .cocci file
- Added 'make check' as an alternative to 'make test'. It can run after
  building spatch, checks whether some featues work (python and ocaml scripts,
  regexes) if these features are enabled, and then launches the test suite
  with a 75% success rate requirement. It also does not ask for user input
  and can be used in autonomous builds.
- Added an experimental --reverse flag to invert the semantic patch before application.
  Note that not all patches can be inverted, nor is it guaranteed that applying
  a patch followed by applying its inverse is an identity operation.
- Cache prefix takes distribution index into account.
- Add --defined and --undefined options allowing some code not to be
  touched.  Suggested by Eric Leblond.

** Bugfix:
- Corrected parsing of script strings delimited by a single quote.  Thanks
  to Eugeniy Meshcheryakov for reporting the problem.
- Improved indentation of added ifdefs.
- Allow added comments and #ifdefs to precede other added code.  Thanks to
  Jani Monoses for noticing the problem.
- Corrected failure to due missing ocamlfind. Thanks to Derek M. Jones for
  reporting the problem.
- Allow fake nodes to be - in the allminus case, to drop tokens related to
  a function definition or forward declaration but before the first code
  mentioned in the semantic patch.
- Drop __init etc when deleting a whole function.
- Cause appropriate newlines to be preserved when multiple matches (trees)
  contain adjacent modifications derived from the same SmPL code.
- check_meta takes into account fresh identifier seed information.
- Types for worth-trying optimization should not be followed by space
- Improved filtering of result of matching atomic patterns
- Drop positions before creating function prototype rules
- Adjust position of { introduced by adding multiple statements in a
  single-statement position
- Drop newline after function call ( when all arguments on that line are
  eliminated
- Accept removal of a single declaration, replaced by arbitrary,
  non-declaration code
- smpl_spacing takes into account newlines, indentation
- Improved prevention of transformations on toplevel { ... } from causing
  changes outside function boundaries; also outside ifs, whiles, etc.
  Changes are still allowed on { ... } present for other reasons.
- Fix bug in include_match that caused everything to halt when all matches
  were discarded
- Don't call Insert_plus on rules that cannot be evaluated due to failed
  dependencies.
- Allow variable declaration right after a case in switch.
- The top of a loop is also after the body of a loop, for ... in loop body
- Do not anchor Str regexp at the beginning of the string to check
- Type annotation for C code uses most recent env for typedefs when
  possible.  Thanks to Andrea Canciani for pointing out the problem.
- Pretty print pointer types without a trailing space.  Thanks to Michael
  Stefaniuc for pointing out the problem.
- Propagate dependencies further in get_constants2
- Make lexer more dos friendly
- slightly better handling of long long
- Strip constraints from metavariables in function prototype treatment
  before comparison, due to incomparability of pcre regexps.
- Fixed obsolete regexp doc, thanks to Dmitry Osmakov
- Improved x || ... || y to avoid double modification
- Transparently allow \( \| and \) to be on lines beginning with -.  The -
  has no effect.
- Remove memory leak related to pr2_once management.  Thanks to Robert
  Gomulka for helping to solve the problem.  Don't use once hashtable if
  messages won't be printed anyway.
- Change the type of subtraction mixing pointer and array to have int result.
  Thanks to Robert Gomulka for noticing the problem.
- Fix interpretation of dependencies in the presence of virtual rules.
  Ignore constraints on inherited position metavariables in a rule that
  will be ignored.
- Better support meta iterator and meta declarer tokens, and symid tokens.
- Better indentation after added noindent.
- Fixed length bug in the treatment of structures.
- Allow inheriting declaration/field metavariables.
- Don't drop spaces after parentheses in when no minus code present.
  Thanks to Terry Wilson for reporting the problem.
- Keep inherited metavariables in asttomember (preprocessing for matching)
- allminus for types, to allow removing const, not just matching it
- improved pretty printing when something is added before a closed brace
- Allow matching on nameless structs.  Thanks to Ron Minnich for reporting
  the problem.
- Pretty printing of const/volatile arrays in smpl code.
- Don't allow just dropping an exp or type
- Avoid removing #endif when surrounded by - code
- Print some important error messages even with the --very-quiet flag.
- Fixed parallel building in the Makefiles
- Fixed the compilation of the "pure bytecode" version. If you use the
  bundled pycaml or ocaml-pcre, you'll need their stub libraries in
  your LD_LIBRARY_PATH.
- For get_constants, virtuals should be false, not true
- C parsing of top-level declarers with initializations.
- Remove constraints in predicates in match result, to avoid PCRE equality
  problems
- Enum assignment matching an enum value shouldn't cause a
  crash. Likewise, an identifier matching an initialized enum field
  shouldn't cause a crash.
- Make when forall in an exists rule behave (more) like forall

212 files changed:
Makefile.release
bundles/pycaml/Makefile
bundles/pycaml/chemoelectric-pycaml-8614105/.marker [deleted file]
bundles/pycaml/chemoelectric-pycaml-8614105/COPYING [deleted file]
bundles/pycaml/chemoelectric-pycaml-8614105/META.in [deleted file]
bundles/pycaml/chemoelectric-pycaml-8614105/Makefile [deleted file]
bundles/pycaml/chemoelectric-pycaml-8614105/README [deleted file]
bundles/pycaml/chemoelectric-pycaml-8614105/examples/floatproduct.ml [deleted file]
bundles/pycaml/chemoelectric-pycaml-8614105/examples/log.ml [deleted file]
bundles/pycaml/chemoelectric-pycaml-8614105/examples/log.py [deleted file]
bundles/pycaml/chemoelectric-pycaml-8614105/examples/ocamlpill.ml [deleted file]
bundles/pycaml/chemoelectric-pycaml-8614105/gentoo-support/pycaml-9999.ebuild [deleted file]
bundles/pycaml/chemoelectric-pycaml-8614105/old-doc/pycaml.html [deleted file]
bundles/pycaml/chemoelectric-pycaml-8614105/pycaml.ml [deleted file]
bundles/pycaml/chemoelectric-pycaml-8614105/pycaml_stubs.c [deleted file]
bundles/pycaml/chemoelectric-pycaml-8614105/pycaml_stubs.h [deleted file]
bundles/pycaml/pyunicodeapichanges-fix.patch [new file with mode: 0644]
bundles/pycaml/removeunicode.patch [new file with mode: 0644]
changes.txt
cocci.ml
cocci.mli
ctl/ast_ctl.ml
ctl/ctl_engine.ml
ctl/ctl_engine.mli
ctl/flag_ctl.ml
ctl/pretty_print_ctl.ml
ctl/pretty_print_ctl.mli
ctl/test_ctl.ml
ctl/wrapper_ctl.ml
ctl/wrapper_ctl.mli
docs/manual/main_grammar.pdf
docs/manual/manual.pdf
docs/manual/options.pdf
docs/manual/spatch_options.tex
engine/asttoctl.ml
engine/asttoctl.mli
engine/asttoctl2.ml
engine/asttoctl2.mli
engine/asttomember.ml
engine/asttomember.mli
engine/c_vs_c.ml
engine/c_vs_c.mli
engine/check_exhaustive_pattern.ml
engine/check_reachability.ml
engine/check_reachability.mli
engine/cocci_vs_c.ml
engine/cocci_vs_c.mli
engine/ctlcocci_integration.ml
engine/ctlcocci_integration.mli
engine/ctltotex.ml
engine/ctltotex.mli
engine/flag_engine.ml
engine/flag_matcher.ml
engine/isomorphisms_c_c.ml
engine/lib_engine.ml
engine/lib_matcher_c.ml
engine/lib_matcher_c.mli
engine/main.ml
engine/pattern_c.ml
engine/pattern_c.mli
engine/postprocess_transinfo.ml
engine/postprocess_transinfo.mli
engine/pretty_print_engine.ml
engine/pretty_print_engine.mli
engine/sgrep.ml
engine/transformation_c.ml
engine/transformation_c.mli
flag_cocci.ml
globals/flag.ml
globals/iteration.ml
globals/iteration.mli
globals/regexp_pcre.ml
globals/regexp_str.ml
main.ml
parsing_c/flag_parsing_c.ml
parsing_c/lexer_c.mll
parsing_cocci/adjacency.ml
parsing_cocci/adjacency.mli
parsing_cocci/adjust_pragmas.ml
parsing_cocci/adjust_pragmas.mli
parsing_cocci/arity.ml
parsing_cocci/arity.mli
parsing_cocci/ast0_cocci.ml
parsing_cocci/ast0_cocci.mli
parsing_cocci/ast0toast.ml
parsing_cocci/ast0toast.mli
parsing_cocci/ast_cocci.ml
parsing_cocci/ast_cocci.mli
parsing_cocci/check_meta.ml
parsing_cocci/check_meta.mli
parsing_cocci/comm_assoc.ml
parsing_cocci/comm_assoc.mli
parsing_cocci/command_line.ml
parsing_cocci/command_line.mli
parsing_cocci/compute_lines.ml
parsing_cocci/compute_lines.mli
parsing_cocci/context_neg.ml
parsing_cocci/context_neg.mli
parsing_cocci/data.ml
parsing_cocci/data.mli
parsing_cocci/disjdistr.ml
parsing_cocci/disjdistr.mli
parsing_cocci/flag_parsing_cocci.ml
parsing_cocci/free_vars.ml
parsing_cocci/free_vars.mli
parsing_cocci/function_prototypes.ml
parsing_cocci/function_prototypes.mli
parsing_cocci/get_constants.ml
parsing_cocci/get_constants.mli
parsing_cocci/get_constants2.ml
parsing_cocci/get_constants2.mli
parsing_cocci/get_metas.ml
parsing_cocci/get_metas.mli
parsing_cocci/id_utils.ml
parsing_cocci/id_utils.mli
parsing_cocci/index.ml
parsing_cocci/index.mli
parsing_cocci/insert_plus.ml
parsing_cocci/insert_plus.mli
parsing_cocci/iso_compile.ml
parsing_cocci/iso_compile.mli
parsing_cocci/iso_pattern.ml
parsing_cocci/iso_pattern.mli
parsing_cocci/lexer_cli.mll
parsing_cocci/lexer_cocci.mll
parsing_cocci/lexer_script.mll
parsing_cocci/main.ml
parsing_cocci/merge.ml
parsing_cocci/merge.mli
parsing_cocci/parse_aux.ml
parsing_cocci/parse_cocci.ml
parsing_cocci/parse_cocci.mli
parsing_cocci/parser_cocci_menhir.ml
parsing_cocci/parser_cocci_menhir.mly
parsing_cocci/plus.ml
parsing_cocci/plus.mli
parsing_cocci/pretty_print_cocci.ml
parsing_cocci/pretty_print_cocci.mli
parsing_cocci/safe_for_multi_decls.ml
parsing_cocci/safe_for_multi_decls.mli
parsing_cocci/semantic_cocci.ml
parsing_cocci/simple_assignments.ml
parsing_cocci/simple_assignments.mli
parsing_cocci/single_statement.ml
parsing_cocci/single_statement.mli
parsing_cocci/test_exps.ml
parsing_cocci/test_exps.mli
parsing_cocci/top_level.ml
parsing_cocci/top_level.mli
parsing_cocci/type_cocci.ml
parsing_cocci/type_cocci.mli
parsing_cocci/type_infer.ml
parsing_cocci/type_infer.mli
parsing_cocci/unify_ast.ml
parsing_cocci/unify_ast.mli
parsing_cocci/unitary_ast0.ml
parsing_cocci/unitary_ast0.mli
parsing_cocci/unparse_ast0.ml
parsing_cocci/unparse_ast0.mli
parsing_cocci/visitor_ast.ml
parsing_cocci/visitor_ast.mli
parsing_cocci/visitor_ast0.ml
parsing_cocci/visitor_ast0.mli
parsing_cocci/visitor_ast0_types.ml
popl/ast_popl.ml
popl/asttopopl.ml
popl/asttopopl.mli
popl/insert_befaft.ml
popl/insert_befaft.mli
popl/insert_quantifiers.ml
popl/insert_quantifiers.mli
popl/popl.ml
popl/popl.mli
popl/popltoctl.ml
popl/popltoctl.mli
popl/pretty_print_popl.ml
popl/pretty_print_popl.mli
popl09/ast_popl.ml
popl09/asttopopl.ml
popl09/asttopopl.mli
popl09/flag_popl.ml
popl09/insert_quantifiers.ml
popl09/insert_quantifiers.mli
popl09/popl.ml
popl09/popl.mli
popl09/popltoctl.ml
popl09/popltoctl.mli
popl09/pretty_print_popl.ml
popl09/pretty_print_popl.mli
python/no_pycocci.ml
python/pycocci.mli
python/pycocci_aux.ml
python/pycocci_aux.mli
python/yes_pycocci.ml
testing.ml
testing.mli
tests/SCORE_expected.sexp
tests/SCORE_expected_orig.sexp
tools/alloc_free.ml
tools/bridge.ml
tools/dir_stats.ml
tools/dumper.ml
tools/dumper.mli
tools/extract_c_and_res.ml
tools/generate_dependencies.ml
tools/gitgrep.ml
tools/gitsort.ml
tools/licensify.ml
tools/process_isoprofile.ml
tools/splitpatch.ml
tools/spp.ml
version

index 6eacc90..91976c4 100644 (file)
@@ -29,7 +29,7 @@ BINSRC2-PY=$(BINSRC-PY:%=$(PACKAGE)/%)
 # creates temporary directories that in this case could have
 # a name clash with the current directory.
 ifndef TMP
-TMP=/tmp
+TMP=/var/tmp
 endif
 
 # should be defined by Makefile.config
@@ -69,6 +69,25 @@ endif
 # unpushed changes. However, that is probably something you should
 # not do in the first place.
 
+release-help:
+       @echo "To make a release, perform the following steps:"
+       @echo ""
+       @echo "1. Make sure that all changes are committed and pushed."
+       @echo "   (making a release will destroy any uncommitted changes)"
+       @echo "   Preferably, start from a fresh clone of the coccinelle repo."
+       @echo "2. Run 'make prerelease'. It will generate some files that are not"
+       @echo "   in the repository but part of the release tarballs."
+       @echo "3. Edit ./version. It must be a new version."
+       @echo "4. Run 'make release'. It makes changes to the git repository that"
+       @echo "   are not idempotent. Running this step again is likely to result"
+       @echo "   in some git errors. These are not dramatic and are therefore"
+       @echo "   ignored."
+       @echo "5. Run 'make package'. It will build many tarballs."
+       @echo "6. Run 'make website'. Make sure that $(WEBBASE) exists beforehand."
+       @echo "   Hint: run step 5 and 6 directly after each other. The tarballs"
+       @echo "         are stored temporarily in $(TMP)."
+       @echo "7. Updated some webpages and commit them to svn."
+
 prerelease:
        @echo "pulling changes from the repository"
        $(GIT) pull --rebase
@@ -76,7 +95,8 @@ prerelease:
        $(MAKE) distclean KEEP_CONFIG=1
        @echo "\n\tEdit ./version"
        @echo "\tCommit with 'make release'\n"
-       @echo "\t(if you don't want to change the repo, use 'GIT=echo make release' instead)"
+       @echo "\t* set the GIT env variable to 'echo' to skip performing any git commands"
+       @echo "\t* changes to files other than ./version will not be committed automatically."
 
 fix-expected:
        @echo "going to generate: tests/SCORE_expected_orig.sexp"
@@ -91,8 +111,8 @@ release:
        @echo "Marking version: $(VERSION)"
        echo -n "$(VERSION)" > ./version
        $(GIT) add ./version
-       $(GIT) commit -m "Release $(VERSION)"
-       $(GIT) tag -a -m "Release $(VERSION)" $(VERSION)
+       -$(GIT) commit -m "Release $(VERSION)"
+       -$(GIT) tag -a -m "Release $(VERSION)" $(VERSION)
        $(GIT) push --mirror
        $(MAKE) licensify
        @echo "\n\tLicensify has run: do not commit any files from now on!"
index 0f4b876..9c5825a 100644 (file)
@@ -73,7 +73,10 @@ depend: $(PYCAMLMARKER)
 
 $(PYCAMLMARKER): $(PYCAMLFILE)
        $(TAR) xfvz $<
-       $(PATCH) -d "${PYCAMLDIR}" -p1 < ./python3-compat-fix.patch
+#      $(PATCH) -d "${PYCAMLDIR}" -p1 < ./python3-compat-fix.patch
+#      $(PATCH) -d "${PYCAMLDIR}" -p1 < ./pyunicodeapichanges-fix.patch
+       $(PATCH) -d "${PYCAMLDIR}" -p2 < ./removeunicode.patch
+       rm -f "${PYCAMLDIR}/pycaml.mli"
        touch $@
 
 $(PYCAMLFILE):
diff --git a/bundles/pycaml/chemoelectric-pycaml-8614105/.marker b/bundles/pycaml/chemoelectric-pycaml-8614105/.marker
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/bundles/pycaml/chemoelectric-pycaml-8614105/COPYING b/bundles/pycaml/chemoelectric-pycaml-8614105/COPYING
deleted file mode 100644 (file)
index b1e3f5a..0000000
+++ /dev/null
@@ -1,504 +0,0 @@
-                 GNU LESSER GENERAL PUBLIC LICENSE
-                      Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-                           Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-\f
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-\f
-                 GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-\f
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-\f
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-\f
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-\f
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-\f
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-\f
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-                           NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-                    END OF TERMS AND CONDITIONS
-\f
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library 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
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff --git a/bundles/pycaml/chemoelectric-pycaml-8614105/META.in b/bundles/pycaml/chemoelectric-pycaml-8614105/META.in
deleted file mode 100644 (file)
index ddc4336..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-# Specifications for the "pycaml" library:
-requires = "unix str"
-description = "Python - OCaml interface"
-version = "0.1"
-browse_interfaces = " Pycaml@PYVER_PACK@ "
-archive(byte) = "pycaml@PYVER_PACK@.cma"
-archive(native) = "pycaml@PYVER_PACK@.cmxa"
-#linkopts=""
-
diff --git a/bundles/pycaml/chemoelectric-pycaml-8614105/Makefile b/bundles/pycaml/chemoelectric-pycaml-8614105/Makefile
deleted file mode 100644 (file)
index 4bbb86c..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-OCAMLMAKEFILE = /usr/include/OCamlMakefile
-
-PYTHON_INCLUDE_PATH = "/usr/include/python${PYVER}"
-PYTHON_LIBRARY_PATH = "/usr/$(get_libdir)/python${PYVER}"
-
-CLIBS   = $(PYCAML_CLIBS) "pthread" "dl" $(UTIL_CLIBS) "m" "c"
-PACKS   = unix str
-SOURCES = pycaml.ml pycaml.mli pycaml_stubs.c
-RESULT  = pycaml${PYVER_PACK}
-THREADS = yes
-LDFLAGS = -lpython${PYVER}
-CFLAGS  = -g -O2 -fPIC -Wall
-OCAMLFLAGS = -pp "camlp4o -parser Camlp4MacroParser -D PYMAJOR`echo ${PYVER} | sed -e 's/\\..*//'`"
-OCAMLDEP = ocamldep ${OCAMLFLAGS}
-
-INCDIRS=$(PYTHON_INCLUDE_PATH)
-LIBDIRS=$(PYTHON_LIBRARY_PATH)
-
-all: pycaml_stubs.h native-code-library byte-code-library META
-
-META: META.in
-       sed -e "s/@PYVER_PACK@/${PYVER_PACK}/g" < META.in > META
-
-mrproper: clean
-       rm -rf *~ *.cmi *.cmo *.a *.cma *.cmxa doc *.so deps
-
-deps: META.in pycaml.ml pycaml.mli pycaml_stubs.c pycaml_stubs.h
-       touch deps
-
-.PHONY: mrproper
-
-include $(OCAMLMAKEFILE)
diff --git a/bundles/pycaml/chemoelectric-pycaml-8614105/README b/bundles/pycaml/chemoelectric-pycaml-8614105/README
deleted file mode 100644 (file)
index 7ffafa9..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-Bindings for Python and Objective Caml.
-Not thread-safe.
-
-Based on the work of:
-  * Art Yerkes: http://pycaml.sourceforge.net/
-  * Dr. Thomas Fischbacher and Dr. Hans Fangohr:
-       http://nmag.soton.ac.uk/tf/pycaml.html
-
-Doctors Fischbacher and Fangohr included the following acknowledgment:
-"This work has been supported by the EPSRC Grant GR/T09156/01 (UK)."
-(http://www.epsrc.ac.uk/)
-
-This version has been modified primarily for use with Kompostilo
-Typesetter: http://kompostilo.googlecode.com
-
-The author, Barry Schwartz, is disabled and so unable to provide much
-support. He encourages people to fork off their own versions and have
-a lot of fun. :)
-
-Distributed under the GNU Lesser General Public License, version 2.1.
-
-To build, use something like:
-
-  make PYVER=2.6
-
-An ebuild is included for the benefit of Gentoo users.
diff --git a/bundles/pycaml/chemoelectric-pycaml-8614105/examples/floatproduct.ml b/bundles/pycaml/chemoelectric-pycaml-8614105/examples/floatproduct.ml
deleted file mode 100644 (file)
index 93bd6c4..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#use "topfind";;
-#require "pycaml";;
-
-open Pycaml;;
-
-
-let _py_float_product =
-  python_pre_interfaced_function
-    ~doc:"Compute the Product of two floatingpoint numbers in OCaml"
-    [|FloatType;FloatType|]
-    (fun py_args ->
-       let x = pyfloat_asdouble py_args.(0)
-       and y = pyfloat_asdouble py_args.(1)
-       in pyfloat_fromdouble ( x*.y))
-in
-  register_pre_functions_for_python
-    [|("floatproduct", _py_float_product) |]
-;;
-
-Printf.printf "within python, try for example 'ocaml.floatproduct(3.0,4.0)'\n%!";;
-
-ipython();; 
-
-
-
diff --git a/bundles/pycaml/chemoelectric-pycaml-8614105/examples/log.ml b/bundles/pycaml/chemoelectric-pycaml-8614105/examples/log.ml
deleted file mode 100644 (file)
index 6916208..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-#use "topfind";;
-#require "pycaml";;
-#require "snippets";;
-
-open Pycaml;;
-
-(* See http://docs.python.org/lib/module-logging.html for Level values *)
-type logging_levels = Notset | Debug | Info | Warn | Error | Critical | Level of int;;
-
-(* Set default logger *)
-let default_logger = (fun l m -> Printf.printf "ocaml-default log: %d %s%!\n%!" l m);;
-
-let loggers = Hashtbl.create 10;;
-Hashtbl.add loggers "default-ocaml" default_logger;;
-
-(* Translate level names into numerical values as used by Python 
-   See http://docs.python.org/lib/module-logging.html for Level values *)
-let int_of_level name =
-  match name with
-    | Notset   -> 0
-    | Debug    -> 10
-    | Info     -> 20 
-    | Warn     -> 30
-    | Error    -> 40
-    | Critical -> 50
-    | Level (n)-> n
-;;
-
-let find_logger name =
-  try
-    Hashtbl.find loggers name
-  with
-    | Not_found -> 
-       try 
-         Hashtbl.find loggers "default-ocaml"
-       with 
-         | Not_found -> failwith "Default logger missing -- internal problem";;
-
-
-(* Provide interface functions as in Python's logging module *)
-let debug name msg =
-  let log = find_logger name in
-    log (int_of_level Debug) msg;;
-
-let info name msg =
-  let log = find_logger name in
-    log (int_of_level Info) msg;;
-
-let warn name msg =
-  let log = find_logger name in
-    log (int_of_level Warn) msg;;
-
-let warning = warn;;
-
-let error name msg =
-  let log = find_logger name in
-    log (int_of_level Error) msg;;
-
-let critical name msg =
-  let log = find_logger name  in
-    log (int_of_level Critical) msg;;
-
-(* Function that takes a name, level integer (this is 'raw') and the message *)
-let lograw name level msg =
-  let logf = find_logger name in
-    logf level msg;;
-
-(* Function that takes a name, level and the message.
-   Presumably, this is what will be used most often. *)
-let log name level msg =
-  let lograw = find_logger name in
-    lograw (int_of_level level) msg;;
-
-
-(* Allowing to register loggers from Python *)
-
-let add_logger_if_new name logger = 
-  let loggername = 
-    try
-      let _ = Str.search_forward (Str.regexp "ocaml") name 0 in
-       name
-    with 
-      | Not_found -> Printf.sprintf "%s-ocaml" name
-  in
-  try
-    let _ = Hashtbl.find loggers loggername
-    in failwith (Printf.sprintf "Trying to register logger '%s' again. Why?" loggername)
-  with
-    | Not_found -> Printf.printf "Adding logger %s to hashtable\n%!" loggername;
-       Hashtbl.add loggers loggername logger;;
-
-let _py_register_logger =
-  python_pre_interfaced_function
-    ~doc:"Register a python-logger. \nArguments: Logger name (str) and callback function cb(). \nThe signature of cb() is cb( level: int, message:str). "
-    [|StringType;CallableType|]
-    (fun py_args ->
-       let name = pystring_asstring py_args.(0) in
-       let ocamllogger = (fun level msg -> 
-                           let callback_args =
-                             pytuple_fromarray
-                               [|pyint_fromint level;
-                                 pystring_fromstring msg|]
-                           in
-                           let _ = pyeval_callobject(py_args.(1),callback_args) in ()
-                        )
-       in let () = add_logger_if_new name ocamllogger 
-     in pynone() );;
-
-
-
-
-
-(* Debugging tools: *)
-
-(* getinfo returns an array of strings that contain the names of registered loggers. *)
-let getinfo loggers =
-    let loggerarray = Array.make (Hashtbl.length loggers) "empty" in
-    let () = Snippets.hashtbl_iteri (fun i key value -> (loggerarray.(i) <- key)) loggers in
-    loggerarray;;
-
-let print_loggers loggers = 
-  Array.iter (fun a -> Printf.printf "registered loggername=%s\n%!" a)  (getinfo loggers);;
-      
-let _py_ocaml_log  =
-  python_pre_interfaced_function
-    ~doc: "Function that calls the ocaml logger from Python (just for debugging useful) "
-    [|StringType;IntType;StringType|] ( fun py_args -> 
-                                         let name = pystring_asstring py_args.(0) in
-                                         let level = pyint_asint py_args.(1) in
-                                         let msg = pystring_asstring py_args.(2) in
-                                         let () =  lograw name level msg in
-                                           pynone() );;
-
-(* Register function for Python *)
-
-let () = register_pre_functions_for_python
-  [|  ("log", _py_ocaml_log);
-      ("register_logger", _py_register_logger) |]
-;;
-
-
-
-(* This needs to go into the documentation *)
-
-Printf.printf "About to start tests (Ocaml)\n";;
-
-let () = add_logger_if_new "Ocaml" (fun l m -> Printf.printf "Ocamllog, Lev=%d: %s\n" l m);  
-
-python_load "log.py";; 
-
-log "default" (Level 30) "Purely called from Ocaml";;
-
-info "ocaml" "This is information";;
-
-print_loggers loggers;;
-
-python_eval "logger.warn('Warning from Python')";; 
-
-let nmeshlog = log 
-(* ipython();; *)
-
diff --git a/bundles/pycaml/chemoelectric-pycaml-8614105/examples/log.py b/bundles/pycaml/chemoelectric-pycaml-8614105/examples/log.py
deleted file mode 100644 (file)
index de92547..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-
-#standard Python code
-import logging,sys
-print "(In Python code: log.py)"
-
-formatter = logging.Formatter('%(name)s :%(asctime)s %(filename)s %(lineno)s %(levelname)s  %(message)s')
-stdout_handler = logging.StreamHandler(sys.stdout)
-stdout_handler.setFormatter(formatter)
-logger=logging.getLogger('')
-logger.addHandler(stdout_handler)
-logger.setLevel(logging.DEBUG)
-
-def create_ocamllog( logger):
-    def ocamllog(level,msg):
-        """logging module will try to walk up the python stack (using sys._getframe) to
-        find details about the layer that called the logging module.
-        This fails for ocaml as there is no such information.
-        One can get around this by setting logging._srcfile to none (temporarily).
-        See /usr/lib/python2.3/logging/__init__.py
-
-        A hack (not thread safe I suppose). fangohr 3/9/2006"""
-        logging._srcfile_org = logging._srcfile
-        logging._srcfile = None
-        logger.log(level,msg)
-        logging._srcfile = logging._srcfile_org
-    return ocamllog
-    
-#now register logger with ocaml
-logger=logging.getLogger('nmesh-ocaml')
-ocaml.register_logger('nmesh',create_ocamllog(logger))
-logger=logging.getLogger('nfem-ocaml')
-ocaml.register_logger('nfem',create_ocamllog(logger))
-logger=logging.getLogger('root-ocaml')
-ocaml.register_logger('root',create_ocamllog(logger))
-
-
-ocaml.log("ocaml",30,'Message from ocaml logger sent from Python with level 30')
-
-#now call this logger from ocaml(!)
-if 1 == 1:
-
-    ocaml.log("ocaml",30,'Message from ocaml with level 30')
-    logger.setLevel(35)
-    ocaml.log("default",30,'Message from ocaml with level 30')
-    ocaml.log("default",40,'Message from ocaml with level 40')
-
-print "Done (python)"
-
diff --git a/bundles/pycaml/chemoelectric-pycaml-8614105/examples/ocamlpill.ml b/bundles/pycaml/chemoelectric-pycaml-8614105/examples/ocamlpill.ml
deleted file mode 100644 (file)
index 492269c..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-(*
-
-The OCamlPill: how to pass data from OCaml to Python and give it back to OCaml. 
-
-Motivation (or What is this OCamlPill good for?):
-
-For example, a simulation data structure (such as the finite element
-mesh) could be set up in OCaml (because this is fast). We may then
-want to be able to control the simulation from Python, and we would
-need to pass this populated mesh data structure to another OCaml
-module that solves an equation on that mesh.
-
-This is exacly the situation where we wrap up that data structure
-(with in OCaml) into -- what is called -- an "OCamlPill". This
-essentially means that to Python it is a "pill" with unknown content
-where as OCaml can unwrap it and use the content if the pill is given
-back to it.
-
-Here are some simple examples to demonstrate this.
-
-
-*)
-
-
-(* load the pycaml module *)
-#use "topfind";;
-#require "pycaml";;
-
-(* and bring it into the current name space *)
-open Pycaml;;
-
-(* Register the 'type' of the OCaml pill we will use. For simplicity,
-we just call it example. However, we assign this to a variable
-'pysym_example' so that we can change the actual string later. *)
-let pysym_type = "example";;
-register_ocamlpill_types [|pysym_type|];;
-
-(* We also need an 'example' datum to teach the wrapping and
-unwrapping function about the type of our OCaml pill. *) 
-let ocamlpill_sample_example = [|1;2;3;4|];;
-
-(* Now generate a wrapper and unwrapper *)
-let (ocamlpill_from_content, content_from_ocamlpill) =
-  make_ocamlpill_wrapper_unwrapper pysym_type ocamlpill_sample_example;;
-
-
-
-(* Now we write the function that creates the data structure and gives it to Python as a OCamlPill:*)
-let _py_create_pill =
-  python_pre_interfaced_function 
-    ~doc:"Create my pill in OCaml and retrieve it from OCaml (to Python).\nFunction takes three integers."
-    [|IntType;IntType;IntType|]
-    (fun py_args ->
-      let x = pyint_asint py_args.(0) in
-      let y = pyint_asint py_args.(1) in 
-      let z = pyint_asint py_args.(2) in
-      let my_data_structure = [|x;y;z;99|]
-      in ocamlpill_from_content my_data_structure)
-(* and register this function for Python (so it appears in the OCaml-module in Python) *)
-in
-  register_pre_functions_for_python
-  [|("create_pill",_py_create_pill)|]
-;;
-
-(* Note: in Python, you can now create an OCamlpill using:
-
->>>a=ocaml.create_pill(1,3,4)
-
-And then check its type using:
->>>print ocaml.sys_ocamlpill_type(a) 
-
-*)
-
-
-(* The next part of this example shows how to use this OCamlPill
-again, i.e. we would like to be able to issue a command such as
->>>result=ocaml.do_stuff(a)
-in Python, and we would like to write the content of the 'do_stuff'
-function in OCaml.
-*)
-
-(* We write the code that does the work, i.e. which can be called
-from Python with an OCamlpill as an argument. This function can work
-with the content of the pill, and has to return a Python Object (which
-here is just an int). *)
-let _py_do_stuff_with_pill =
-  python_pre_interfaced_function
-    ~doc:"Takes an ocaml pill of type 'example' and returns the first integer in that pill"
-    [|CamlpillType|]
-    (fun py_args -> 
-      let a = content_from_ocamlpill py_args.(0) in
-       pyint_fromint a.(0)        (* This is 'do_stuff' *)
-    )
-  
-in register_pre_functions_for_python [|"do_stuff",_py_do_stuff_with_pill|];; 
-
-
-(* At this point we could start Python (using "python();;"). However,
-we add another example below before we do this.
-
-The function defined above, could be used (from Python) as follows:
-
-First create an ocampill using:
-
->>>A=Ocaml.Create_pill(1,3,4)
-
-And then check its type using:
->>>print ocaml.sys_ocamlpill_type(a) 
-
-Finally, to feedback the 'pill' to OCaml, do something with it in OCaml, and 
-return a new Python object (here the first integer of the three), do this:
->>>result=ocaml.do_stuff(a)
-
-The integer variable results should contain the first integer stored in the Ocaml Array.
-
-*)
-
-
-(* What now follows is a slighly more complicated example, where we pass 
-   an ocampill from Python to Ocaml AND another parameter (in this case
-   an integer).
-*)
-
-(* This function just computes the sum of a given integer array. *)
-let compute_sum data = Array.fold_left (fun a b -> a+b) 0 data;;
-
-(* Now we write the code that does the work, i.e. which can be called
-from Python with an OCamlpill as the first argument and an extra
-integer to be added to the sum as the second. As before, we return a
-Python Int object. *)
-
-let _py_do_stuff_with_pill2 = python_pre_interfaced_function
-    ~doc:"Takes an ocaml pill and an int, and returns the sum of all ints in the pill and the new int"
-    [|CamlpillType;IntType|]
-    (fun py_args -> 
-      let a = content_from_ocamlpill py_args.(0) in
-      let b = pyint_asint py_args.(1) in
-      let c = (compute_sum a) + b in
-       pyint_fromint c
-    )
-in register_pre_functions_for_python [|"compute_sum_offset",_py_do_stuff_with_pill2|];;
-
-(* This can be used in Python as follows:
-
->>>a=ocaml.create_pill(1,3,4)
->>>b=ocaml.compute_sum_offset(a,10)
-
-b should contain the sum of 1, 3, 4, 99 and 10.
-
-*)
-
-
-
-(* Finally, we call Python *)
-ipython()
diff --git a/bundles/pycaml/chemoelectric-pycaml-8614105/gentoo-support/pycaml-9999.ebuild b/bundles/pycaml/chemoelectric-pycaml-8614105/gentoo-support/pycaml-9999.ebuild
deleted file mode 100644 (file)
index 7e32d79..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-# Copyright 1999-2008 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header$
-
-EAPI="2"
-SUPPORT_PYTHON_ABIS="1"
-
-inherit findlib python eutils git
-
-IUSE=""
-
-DESCRIPTION="Bindings for Python and OCaml"
-HOMEPAGE="http://github.com/chemoelectric/pycaml"
-SRC_URI=""
-EGIT_REPO_URI="git://github.com/chemoelectric/pycaml.git"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-KEYWORDS="~amd64 ppc x86"
-
-RDEPEND=">=dev-ml/ocaml-make-6.29.3"
-DEPEND=">=dev-lang/ocaml-3.11.1
-        >=dev-lang/python-2.6.4
-        ${RDEPEND}"
-
-S="${WORKDIR}/${PN}"
-
-
-pkg_setup() {
-       if ! built_with_use --missing true dev-lang/ocaml ocamlopt; then
-               eerror "${PN} needs to be built with native code support from ocaml"
-               eerror "You first need to have a native code ocaml compiler."
-               eerror "You need to install dev-lang/ocaml with ocamlopt useflag on."
-               die "Please install ocaml with ocamlopt useflag"
-       fi
-}
-
-src_compile() {
-       compile_abi_pycaml() {
-               abi=`echo "${PYTHON_ABI}" | sed -e 's/\./_/g'`
-               name="${PN}${abi}"
-               cd "${WORKDIR}"
-               cp -r "${PN}" "${name}"
-               cd "${name}"
-               emake -j1 PYVER="${PYTHON_ABI}" PYVER_PACK="${abi}" \
-                     get_libdir="$(get_libdir)" || die "emake failed"
-       }
-       python_execute_function compile_abi_pycaml
-
-       compile_pycaml() {
-               cd "${S}"
-               emake -j1 PYVER="${PYVER}" PYVER_PACK="" \
-                     get_libdir="$(get_libdir)" || die "emake failed"
-       }
-       python_version
-       compile_pycaml
-}
-
-src_install() {
-       python_need_rebuild
-
-       # Use findlib to install properly, especially to avoid
-       # the shared library mess
-       findlib_src_preinst
-
-       install_abi_pycaml() {
-               abi=`echo "${PYTHON_ABI}" | sed -e 's/\./_/g'`
-               name="${PN}${abi}"
-               cd "${WORKDIR}/${name}"
-               ocamlfind install "${name}" \
-                         dllpycaml"${abi}"_stubs.so* libpycaml"${abi}"_stubs.a \
-                         pycaml"${abi}".a  pycaml"${abi}".cma pycaml"${abi}".cmxa \
-                         pycaml.cmi pycaml.cmo pycaml.cmx pycaml.ml pycaml.mli \
-                         pycaml.o pycaml_stubs.c pycaml_stubs.h pycaml_stubs.o META
-       }
-       python_execute_function install_abi_pycaml
-
-       install_pycaml() {
-               cd "${S}"
-               ocamlfind install "${PN}" \
-                         dllpycaml_stubs.so* libpycaml_stubs.a pycaml.a pycaml.cma \
-                         pycaml.cmi pycaml.cmo pycaml.cmx pycaml.cmxa pycaml.ml pycaml.mli \
-                         pycaml.o pycaml_stubs.c pycaml_stubs.h pycaml_stubs.o META
-       }
-       python_version
-       install_pycaml
-}
diff --git a/bundles/pycaml/chemoelectric-pycaml-8614105/old-doc/pycaml.html b/bundles/pycaml/chemoelectric-pycaml-8614105/old-doc/pycaml.html
deleted file mode 100644 (file)
index 7330860..0000000
+++ /dev/null
@@ -1,315 +0,0 @@
-<html>
-<head>
-<title>Module Pycaml</title>
-</head>
-<body>
-<table border=0 width="100%"><tr><td bgcolor="#c0c0c0">
-<h1>Pycaml</h1>
-</td></tr></table>
-<p>
-<h2>What is Pycaml</h2>
-A library written by <a href=mailto:arty@users.sourceforge.net>
-arty@users.sourceforge.net</a> which follows the Python/C API as
-closely as possible, while
-providing equivalent functionality for objective caml.  This is built
-against python 2.x and Ocaml 3.04.<p>  It is intended to allow users to
-build native ocaml libraries and use them from python, and alternately,
-in order to allow ocaml users to benefit from linkable libraries provided
-for python.<p>
-I created this library in order to take advantage of python binding for
-certain native libraries from ocaml.  While it is true that I could have
-written new interfaces specifically for ocaml, the python interface is
-sufficient for my needs, and this project was easier.<p>
-
-Please edit the <tt>Makefile</tt> to put in your system's libraries used for
-compiling programs embedded with python.  This library compiles on most
-linux boxes without modification.  The python interpreter is used to determine
-the path to the python library and must be in your path when you run make.
-<p>
-
-<b>Get the distribution here:</b><a href=pycaml.tar.gz>pycaml.tar.gz</a><p>
-
-Because these are made to closely mirror the python API, the user should
-become familiar with the python API.<p>
-Given Ocaml parameter passing convention, it was convenient to pass multiple
-arguments as members of a tuple, but single arguments without.  Consequently,
-functions with arity 1, such as pytuple_new are called as<p>
-<pre>
-  pytuple_new 3 ;;
-</pre><p>
-And functions with more arguments are called as<p>
-<pre>
-  pydict_getitemstring (dict,"keystring") ;;
-</pre>
-
-<h2>Module Pycaml</h2>
-
-<h3>Visible Types</h3>
-
-<table border=0>
-<tr bgcolor="#c0c0c0"><td>type</td><td width="100%">pyobject</td></tr>
-<tr><td colspan=2>
-The abstract type of python objects.
-</td></tr>
-<tr bgcolor="#c0c0c0"><td>type</td><td>pyobject_type =</td></tr>
-<tr><td align=right></td><td>TupleType</td></tr>
-<tr><td align=right>|</td><td>StringType</td></tr>
-<tr><td align=right>|</td><td>IntType</td></tr>
-<tr><td align=right>|</td><td>FloatType</td></tr>
-<tr><td align=right>|</td><td>ListType</td></tr>
-<tr><td align=right>|</td><td>NoneType</td></tr>
-<tr><td align=right>|</td><td>CallableType</td></tr>
-<tr><td align=right>|</td><td>ModuleType</td></tr>
-<tr><td align=right>|</td><td>ClassType</td></tr>
-<tr><td align=right>|</td><td>TypeType</td></tr>
-<tr><td align=right>|</td><td>OtherType</td></tr>
-<tr><td colspan=2>
-The type representing the range of types available to python programs.
-Values of this type are provided by the pytype function, and identify the
-python type of opaque pyobject objects.
-</td></tr></table>
-
-<h3>Supported Functions from the Python/C API</h3>
-In each case, the signature of the function is unchanged from the Python/C
-API except for the case of 'out' pointer to pointer parameters; 
-in the case of a single return, the returned value is copied, otherwise, 
-a tuple is created with copies of all output parameters.  In the case of
-zero parameter, or void return, unit is used.<p>
-In python API functions that take a FILE *, an int file descriptor is used
-instead such as those returned by the Unix library.<p>
-
-<h4>fun unit -> unit</h4>
-py_initialize, py_finalize, pyerr_print, pyerr_clear, pyimport_cleanup
-<h4>fun int -> unit</h4>
-py_exit, pyerr_printex
-<h4>fun string -> unit</h4>
-py_setprogramname, py_setpythonhome
-<h4>fun unit -> int</h4>
-py_isinitialized, pyeval_getrestricted
-<h4>fun string -> int</h4>
-pyrun_simplestring, pyimport_importfrozenmodule,
-<h4>fun (int * string) -> int</h4>
-pyrun_anyfile, pyrun_simplefile, pyrun_interactiveone, pyrun_interactiveloop,
-py_fdisinteractive
-<h4>fun (int * string * int) -> int</h4>
-pyrun_anyfileex, pyrun_simplefileex
-<h4>fun unit -> string</h4>
-py_getprogramname, py_getpthonhome, py_getprogramfullpath, py_getprefix,
-py_getexecprefix, py_getpath, py_getversion, py_getplatform, py_getcopyright,
-py_getcompiler, py_getbuildinfo
-<h4>fun (string * int * pyobject * pyobject) -> pyobject</h4>
-pyrun_string
-<h4>fun (int * string * int * pyobject * pyobject) -> pyobject</h4>
-pyrun_file
-<h4>fun (int * string * int * pyobject * pyobject * int) -> pyobject</h4>
-pyrun_fileex
-<h4>fun (string * string * int) -> pyobject</h4>
-py_compilestring
-<h4>fun (pyobject * int * int) -> int</h4>
-pyobject_print, pytuple_getslice, pysequence_getslice</h4>
-<h4>fun pyobject -> pyobject</h4>
-pyobject_repr, pyobject_str, pyobject_unicode, pydict_keys, pydict_values,
-pydict_items, pydict_copy, pymodule_getdict, pymethod_function, pymethod_self,
-pymethod_class, pymodule_getdict, pyimport_reloadmodule, pyobject_type, 
-pynumber_negative, pynumber_positive, pynumber_absolute, pynumber_invert,
-pynumber_int, pynumber_long, pynumber_float, pysequence_tuple, pysequence_list
-<h4>fun (pyobject * pyobject * int) -> pyobject</h4>
-pyobject_richcompare
-<h4>fun (pyobject * string) -> pyobject</h4>
-pyobject_getattrstring, pydict_getitemstring, pysequence_fast, 
-pymapping_haskeystring, pymapping_getitemstring
-<h4>fun (pyobject * pyobject) -> pyobject</h4>
-pyobject_getattr, pystring_format, pydict_getitem, pyinstance_newraw, 
-pyeval_callobject, pyobject_getitem, pyobject_delitem, pynumber_add,
-pynumber_subtract, pynumber_multiply, pynumber_divide, pynumber_remainder,
-pynumber_divmod, pynumber_lshift, pynumber_rshift, pynumber_and, pynumber_xor,
-pynumber_or, pynumber_inplaceadd, pynumber_inplacesubtract, pynumber_inplacemultiply, pynumber_inplacedivide, pynumber_inplaceremainder, pynumber_inplacelshift, pynumber_inplacershift, pynumber_inplaceand, pynumber_inplacexor, pynumber_inplaceor, pysequence_concat, pysequence_inplaceconcat
-<h4>fun pyobject -> int</h4>
-pyobject_istrue, pyobject_not, pycalable_check, pystring_size, pydict_size,
-pytuple_new, pyerr_exceptionmatches, pyobject_size, pynumber_check, 
-pysequence_check, pysequence_size, pysequence_length, pymapping_check,
-pymapping_size, pymapping_length, pyint_asint
-<h4>fun (pyobject * pyobject) -> int</h4>
-pyobject_compare, pyobject_hasattr, pydict_delitem, 
-pyerr_givenexceptionmatches, pysequence_count, pysequence_contains, 
-pysequence_in, pysequence_index, pymapping_haskey
-<h4>fun (pyobject * pyobject * int) -> int</h4>
-pyobject_richcomparebool, pysequence_delitem
-<h4>fun (pyobject * string * pyobject) -> int</h4>
-pyobject_setattrstring, pydict_setitemstring
-<h4>fun (pyobject * string) -> int</h4>
-pyobject_hasattrstring, pydict_delitemstring, pysequence_inplacerepeat
-<h4>fun (pyobject * pyobject) -> (pyobject * pyobject)</h4>
-pynumber_coerce, pynumber_coerceex
-<h4>fun (pyobject * pyobject * pyobject) -> int</h4>
-pyobject_setattr, pydict_setitem, pyobject_setitem
-<h4>fun pyobject -> int64</h4>
-pyobject_hash, pyint_aslong
-<h4>fun pyobject -> string</h4>
-pystring_asstring, pymodule_getname, pymodule_getfilename
-<h4>fun (pyobject * pyobject) -> pyobject</h4>
-pystring_concat, pystring_concatanddel
-<h4>fun string -> pyobject</h4>
-pystring_fromstring, pymodule_new, pyimport_addmodule, pyimport_importmodule,
-pyimport_import
-<h4>fun unit -> pyobject</h4>
-pydict_new, pyerr_occurred, pyimport_getmoduledict, pyeval_getbuiltins,
-pyeval_getglobals, pyeval_getlocals, pyeval_getframe
-<h4>fun pyobject -> unit</h4>
-pydict_clear, pyerr_setnone
-<h4>fun (pyobject * int) -> (pyobject * pyobject * int)</h4>
-pydict_next
-<h4>fun int64 -> pyobject</h4>
-pyint_fromlong
-<h4>fun unit -> int64</h4>
-pyint_getmax
-<h4>fun float -> pyobject</h4>
-pyfloat_fromdouble
-<h4>fun pyobject -> float</h4>
-pyfloat_asdouble
-<h4>fun int -> pyobject</h4>
-pytuple_new, pyint_fromint
-<h4>fun (pyobject * int) -> pyobject</h4>
-pytuple_getitem, pysequence_repeat, pysequence_getitem
-<h4>fun (pyobject * int * pyobject) -> int</h4>
-pytuple_setitem, pysequence_setitem, pymapping_setitem
-<h4>fun (pyobject * pyobject * pyobject) -> pyobject</h4>
-pyslice_new, pyclass_new, pyinstance_new, pymethod_new, 
-pyeval_callobjectwithkeywords, pynumber_power, pynumber_inplacepower
-<h4>fun (pyobject * int) -> (int * int * int)</h4>
-pyslice_getindices
-<h4>fun (int * int * int * int) -> pyobject</h4>
-pyrange_new
-<h4>fun (pyobject * pyobject) -> unit</h4>
-pyerr_setobject
-<h4>fun (pyobject * string) -> unit</h4>
-pyerr_setstring
-<h4>fun (pyobject * pyobject * pyobject) -> (pyobject * pyobject * pyobject)</h4>
-pyerr_fetch, pyerr_normalizeexception
-<h4>fun (pyobject * pyobject * pyobject) -> unit</h4>
-pyerr_restore
-<h4>fun (pyobject * string) -> pyobject</h4>
-pyimport_execcodemodule
-<h4>fun (string * pyobject * string) -> pyobject</h4>
-pyimport_execcodemoduleex
-<h4>fun (string * pyobject * pyobject * pyobject) -> pyobject</h4>
-pyimport_importmoduleex
-<h4>fun pyobject -> string</h4>
-pyobject_ascharbuffer, pyobject_asreadbuffer, pyobject_aswritebuffer
-<h4>fun (pyobject * int * int * pyobject) -> int</h4>
-pysequence_setslice
-<h4>fun (pyobject * int * int) -> int</h4>
-pysequence_delslice
-
-<h3>Unique Functions Needed for Ocaml</h3>
-In addition to the functions in the usual library, several new functions are
-provided which give specific support for ocaml.<p>
-
-<table border=0 width=100%>
-<tr bgcolor="#c0c0c0">
-<td><b>pytuple_toarray</b></td>
-<td>pyobject -> pyobject array</td></tr>
-<tr><td colspan=2>
-Convert a python tuple to an ocaml array containing the same items.
-</td></tr>
-<tr bgcolor="#c0c0c0">
-<td><b>pywrap_closure</b></td><td>(pyobject -> pyobject) -> pyobject</td></tr>
-<tr><td colspan=2>
-Create a python callable object from a closure.  The closure receives the
-argument tuple from the invocation and returns a pyobject.
-</td></tr>
-<tr bgcolor="#c0c0c0">
-<td><b>pywrap_value</b></td><td>'a -> pyobject</td></tr>
-<tr><td colspan=2>
-Create a simple void * style wrapping around an ocaml object.  The object
-may be retrieved with <tt>pyunwrap_value : pyobject -> 'a</tt>.  Use this
-to enclose an ocaml data structure in python to be used later.
-</td></tr>
-<tr bgcolor="#c0c0c0">
-<td><b>pynull</b></td><td>unit -> pyobject</td></tr>
-<tr><td colspan=2>
-Generate the null PyObject * and return it.  This may sound dangerous, but
-it is used by library calls to indicate errors to the python system.
-</td></tr>
-<tr bgcolor="#c0c0c0">
-<td><b>pynone</b></td><td>unit -> pyobject</td></tr>
-<tr><td colspan=2>
-Generate a reference to the Py_None object.
-</td></tr>
-<tr bgcolor="#c0c0c0">
-<td><b>pytuple_fromarray</b></td>
-<td>pyobject array -> pyobject</td></tr>
-<tr><td colspan=2>
-Create a pytuple (as would be used for a function call) from the given
-array.  This may be used to implement varargs calls on python functions,
-and for other purposes.
-</td></tr>
-<tr bgcolor="#c0c0c0">
-<td><b>pytuple_empty</b></td>
-<td>pyobject array -> pyobject</td></tr>
-<tr><td colspan=2>
-Shortcut for <tt>pytuple_new 0</tt>
-</td></tr>
-
-<tr bgcolor="#c0c0c0">
-<td><b>pytuple_fromsingle</b></td>
-<td>pyobject -> pyobject</tt></td></tr>
-<tr><td colspan=2>
-Create a tuple with the single given object inside.  Use this to create
-single element tuples as for a function call with one argument.
-</td></tr>
-
-<tr bgcolor="#c0c0c0">
-<td><b>pytuple<i>1-5</i></b></td>
-<td>(pyobject * ...) -> pyobject</tt></td></tr>
-<tr><td colspan=2>
-Create a python tuple that has the same contents as the given ocaml tuple.
-</td></tr>
-
-<tr bgcolor="#c0c0c0">
-<td><b>pytype</b></td>
-<td>pyobject -> pyobject_type</tt></td></tr>
-<tr><td colspan=2>
-Determine roughly which type family the given value belongs to.  For example,
-<tt>pytype (pystring_fromstring "hi")</tt> yields <tt>StringType</tt>.
-</td></tr>
-</table>
-
-<h3>Sample Application</h3>
-This is the sample application that I developed the library with.  It 
-illustrates a python function call, as well as a call back into ocaml.
-The first form is used in cases where python libraries are to be used
-from ocaml, and the second would be used to produce native libraries in
-ocaml.<p>
-
-<pre>
-open Pycaml ;;
-
-let colorsys = pyimport_importmodule "colorsys"
-let dict = pymodule_getdict colorsys
-
-let triplet = pytuple3 (pyfloat_fromdouble 1.0,
-                       pyfloat_fromdouble 0.5,
-                       pyfloat_fromdouble 0.2) ;;
-
-let rgbtoyiq = pydict_getitemstring (dict,"rgb_to_yiq")
-let triplet = pyeval_callobject (rgbtoyiq,triplet)
-
-let _ = print_endline ((string_of_float
-                         (pyfloat_asdouble (pytuple_getitem (triplet,0)))) ^ 
-                      " " ^
-                      (string_of_float
-                         (pyfloat_asdouble (pytuple_getitem (triplet,1)))) ^
-                      " " ^
-                      (string_of_float
-                         (pyfloat_asdouble (pytuple_getitem (triplet,2))))) ;;
-
-let x = pywrap_closure 
-    (fun x -> print_string (pystring_asstring (pytuple_getitem (x,0))) ; 
-      pynone ())
-
-let _ = pyeval_callobject 
-    (x,pytuple_fromsingle (pystring_fromstring "hi there"))
-</pre>
-</body>
-</html>
diff --git a/bundles/pycaml/chemoelectric-pycaml-8614105/pycaml.ml b/bundles/pycaml/chemoelectric-pycaml-8614105/pycaml.ml
deleted file mode 100644 (file)
index 8274663..0000000
+++ /dev/null
@@ -1,1507 +0,0 @@
-(*
- * (C) arty 2002
-
- This library is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- This library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- USA
-
- * Major Modifications (C) T. Fischbacher 2005,2006
- * 
- * NOTE: have to properly document the CamlType / ocamlpill mechanism!
-   
- * More modifications are by Barry Schwartz.
- * Copyright (C) 2009 Barry Schwartz.
-
- * Note (T.F.): Should we incorporate auto-conversion of int to float?
- * At present, we do not do this. (B.S.): Maybe we should, or maybe we
- * shouldn't. But BytesType/UnicodeType/string conversion does seem
- * called for; it's getting to be a big problem in kompostilo.
- *)
-
-type funcptr 
-type pyobject 
-type funcent = (funcptr * int * int * bool)
-
-type pymodule_func = {
-  pyml_name : string ; 
-  pyml_func : (pyobject -> pyobject) ;
-  pyml_flags : int ;
-  pyml_doc : string;
-}
-
-type pyobject_type =
-  | TupleType
-  | BytesType
-  | UnicodeType
-  | BoolType
-  | IntType
-  | FloatType
-  | ListType
-  | NoneType
-  | CallableType
-  | ModuleType
-  | ClassType
-  | TypeType
-  | DictType
-  | NullType
-  | CamlpillType
-  | OtherType
-  | EitherStringType (* Signifies that either of BytesType or UnicodeType is allowed. *)
-  | CamlpillSubtype of string (* Signifies that only the particular Camlpill variety is allowed. *)
-  | AnyType                   (* Allow any python object. *)
-
-type pyerror_type =
-  | Pyerr_Exception
-  | Pyerr_StandardError
-  | Pyerr_ArithmeticError
-  | Pyerr_LookupError
-  | Pyerr_AssertionError
-  | Pyerr_AttributeError
-  | Pyerr_EOFError
-  | Pyerr_EnvironmentError
-  | Pyerr_FloatingPointError
-  | Pyerr_IOError
-  | Pyerr_ImportError
-  | Pyerr_IndexError
-  | Pyerr_KeyError
-  | Pyerr_KeyboardInterrupt
-  | Pyerr_MemoryError
-  | Pyerr_NameError
-  | Pyerr_NotImplementedError
-  | Pyerr_OSError
-  | Pyerr_OverflowError
-  | Pyerr_ReferenceError
-  | Pyerr_RuntimeError
-  | Pyerr_SyntaxError
-  | Pyerr_SystemExit
-  | Pyerr_TypeError
-  | Pyerr_ValueError
-  | Pyerr_ZeroDivisionError
-
-exception Pycaml_exn of (pyerror_type * string)
-
-      
-(* Function list *)
-      
-external pytype : pyobject -> pyobject_type = "pytype"
-
-external pycaml_seterror : pyerror_type -> string -> unit = "pycaml_seterror"
-
-external pynull : unit -> pyobject = "pynull"
-external pynone : unit -> pyobject = "pynone"
-external py_true : unit -> pyobject = "py_true"
-external py_false : unit -> pyobject = "py_false"
-
-(*-----------------------------------------------------------------------*)
-
-(* Type1 *)
-external py_initialize : unit -> unit = "Py_Initialize_wrapper"
-external py_finalize : unit -> unit = "Py_Finalize_wrapper"
-external pyerr_print : unit -> unit = "PyErr_Print_wrapper"
-external pyerr_clear : unit -> unit = "PyErr_Clear_wrapper"
-external pyimport_cleanup : unit -> unit = "PyImport_Cleanup_wrapper"
-
-(* Type2 *)
-external py_exit : int -> unit = "Py_Exit_wrapper"
-external pyerr_printex : int -> unit = "PyErr_PrintEx_wrapper"
-
-(* Type3 *)
-external py_setprogramname : string -> unit = "Py_SetProgramName_wrapper"
-external py_setpythonhome : string -> unit = "Py_SetPythonHome_wrapper"
-
-(* Type4 *)
-external py_isinitialized : unit -> int = "Py_IsInitialized_wrapper"
-IFDEF PYMAJOR2 THEN
-external pyeval_getrestricted : unit -> int = "PyEval_GetRestricted_wrapper"
-END
-
-(* Type5 *)
-external pyrun_simplestring : string -> int = "PyRun_SimpleString_wrapper"
-external pyimport_importfrozenmodule : string -> int = "PyImport_ImportFrozenModule_wrapper"
-
-(* Test6 *)
-external pyrun_anyfile : (int * string) -> int = "PyRun_AnyFile_wrapper"
-external pyrun_simplefile : (int * string) -> int = "PyRun_SimpleFile_wrapper"
-external pyrun_interactiveone : (int * string) -> int = "PyRun_InteractiveOne_wrapper"
-external pyrun_interactiveloop : (int * string) -> int = "PyRun_InteractiveLoop_wrapper"
-external py_fdisinteractive : (int * string) -> int = "Py_FdIsInteractive_wrapper"
-
-(* Type7 *)
-external pyrun_anyfileex : (int * string * int) -> int = "PyRun_AnyFileEx_wrapper"
-external pyrun_simplefileex : (int * string * int) -> int = "PyRun_SimpleFileEx_wrapper"
-
-(* Type8 *)
-external py_getprogramname : unit -> string = "Py_GetProgramName_wrapper"
-external py_getpythonhome : unit -> string = "Py_GetPythonHome_wrapper"
-external py_getprogramfullpath : unit -> string = "Py_GetProgramFullPath_wrapper"
-external py_getprefix : unit -> string = "Py_GetPrefix_wrapper"
-external py_getexecprefix : unit -> string = "Py_GetExecPrefix_wrapper"
-external py_getpath : unit -> string = "Py_GetPath_wrapper"
-external py_getversion : unit -> string = "Py_GetVersion_wrapper"
-external py_getplatform : unit -> string = "Py_GetPlatform_wrapper"
-external py_getcopyright : unit -> string = "Py_GetCopyright_wrapper"
-external py_getcompiler : unit -> string = "Py_GetCompiler_wrapper"
-external py_getbuildinfo : unit -> string = "Py_GetBuildInfo_wrapper"
-
-(* Type9 *)
-external pyrun_string : (string * int * pyobject * pyobject) -> pyobject = "PyRun_String_wrapper"
-
-(* Type10 *)
-external pyrun_file : (int * string * int * pyobject * pyobject) -> pyobject = "PyRun_File_wrapper"
-
-(* Type11 *)
-external pyrun_fileex : (int * string * int * pyobject * pyobject * int) -> pyobject = "PyRun_FileEx_wrapper"
-
-(* Type12 *)
-external py_compilestring : (string * string * int) -> pyobject = "Py_CompileString_wrapper"
-
-(* Type13 *)
-external pyobject_print : (pyobject * int * int) -> int = "PyObject_Print_wrapper"
-external pytuple_getslice : (pyobject * int * int) -> int = "PyTuple_GetSlice_wrapper"
-external pysequence_getslice : (pyobject * int * int) -> int = "PySequence_GetSlice_wrapper"
-
-(* Type14 *)
-external pymethod_function : pyobject -> pyobject = "PyMethod_Function_wrapper"
-external pymethod_self : pyobject -> pyobject = "PyMethod_Self_wrapper"
-IFDEF PYMAJOR2 THEN
-external pymethod_class : pyobject -> pyobject = "PyMethod_Class_wrapper"
-END
-external pymodule_getdict : pyobject -> pyobject = "PyModule_GetDict_wrapper"
-external pyunicode_asutf8string : pyobject -> pyobject = "PyUnicode_AsUTF8String_wrapper"
-external pyunicode_asutf16string : pyobject -> pyobject = "PyUnicode_AsUTF16String_wrapper"
-external pyunicode_asutf32string : pyobject -> pyobject = "PyUnicode_AsUTF32String_wrapper"
-external pyobject_repr : pyobject -> pyobject = "PyObject_Repr_wrapper"
-external pyimport_reloadmodule : pyobject -> pyobject = "PyImport_ReloadModule_wrapper"
-external pyimport_import : pyobject -> pyobject = "PyImport_Import_wrapper"
-external pyobject_str : pyobject -> pyobject = "PyObject_Str_wrapper"
-external pyobject_type : pyobject -> pyobject = "PyObject_Type_wrapper"
-external pyobject_unicode : pyobject -> pyobject = "PyObject_Unicode_wrapper"
-external pydict_keys : pyobject -> pyobject = "PyDict_Keys_wrapper"
-external pydict_values : pyobject -> pyobject = "PyDict_Values_wrapper"
-external pydict_items : pyobject -> pyobject = "PyDict_Items_wrapper"
-external pydict_copy : pyobject -> pyobject = "PyDict_Copy_wrapper"
-external pysequence_tuple : pyobject -> pyobject = "PySequence_Tuple_wrapper"
-external pysequence_list : pyobject -> pyobject = "PySequence_List_wrapper"
-IFDEF PYMAJOR2 THEN
-external pynumber_int : pyobject -> pyobject = "PyNumber_Int_wrapper"
-END
-external pynumber_long : pyobject -> pyobject = "PyNumber_Long_wrapper"
-external pynumber_float : pyobject -> pyobject = "PyNumber_Float_wrapper"
-external pynumber_negative : pyobject -> pyobject = "PyNumber_Negative_wrapper"
-external pynumber_positive : pyobject -> pyobject = "PyNumber_Positive_wrapper"
-external pynumber_absolute : pyobject -> pyobject = "PyNumber_Absolute_wrapper"
-external pynumber_invert : pyobject -> pyobject = "PyNumber_Invert_wrapper"
-external pyiter_next : pyobject -> pyobject = "PyIter_Next_wrapper"
-
-(* Type15 *)
-external pyobject_richcompare : (pyobject * pyobject * int) -> pyobject = "PyObject_RichCompare_wrapper"
-
-(* Type16 *)
-external pydict_getitemstring : (pyobject * string) -> pyobject = "PyDict_GetItemString_wrapper"
-external pyobject_getattrstring : (pyobject * string) -> pyobject = "PyObject_GetAttrString_wrapper"
-external pysequence_fast : (pyobject * string) -> pyobject = "PySequence_Fast_wrapper"
-external pymapping_getitemstring : (pyobject * string) -> pyobject = "PyMapping_GetItemString_wrapper"
-
-(* Type17 *)
-external pydict_getitem : pyobject * pyobject -> pyobject = "PyDict_GetItem_wrapper"
-external pyeval_callobject : pyobject * pyobject -> pyobject = "PyEval_CallObject_wrapper"
-external pyobject_getattr : pyobject * pyobject -> pyobject = "PyObject_GetAttr_wrapper"
-external pyobject_getitem : pyobject * pyobject -> pyobject = "PyObject_GetItem_wrapper"
-external pynumber_add : pyobject * pyobject -> pyobject = "PyNumber_Add_wrapper"
-external pynumber_subtract : pyobject * pyobject -> pyobject = "PyNumber_Subtract_wrapper"
-external pynumber_multiply : pyobject * pyobject -> pyobject = "PyNumber_Multiply_wrapper"
-IFDEF PYMAJOR2 THEN
-external pynumber_divide : pyobject * pyobject -> pyobject = "PyNumber_Divide_wrapper"
-END
-external pynumber_truedivide : pyobject * pyobject -> pyobject = "PyNumber_TrueDivide_wrapper"
-external pynumber_floordivide : pyobject * pyobject -> pyobject = "PyNumber_FloorDivide_wrapper"
-external pynumber_remainder : pyobject * pyobject -> pyobject = "PyNumber_Remainder_wrapper"
-external pynumber_divmod : pyobject * pyobject -> pyobject = "PyNumber_Divmod_wrapper"
-external pynumber_lshift : pyobject * pyobject -> pyobject = "PyNumber_Lshift_wrapper"
-external pynumber_rshift : pyobject * pyobject -> pyobject = "PyNumber_Rshift_wrapper"
-external pynumber_and : pyobject * pyobject -> pyobject = "PyNumber_And_wrapper"
-external pynumber_xor : pyobject * pyobject -> pyobject = "PyNumber_Xor_wrapper"
-external pynumber_or : pyobject * pyobject -> pyobject = "PyNumber_Or_wrapper"
-external pynumber_inplaceadd : pyobject * pyobject -> pyobject = "PyNumber_InPlaceAdd_wrapper"
-external pynumber_inplacesubtract : pyobject * pyobject -> pyobject = "PyNumber_InPlaceSubtract_wrapper"
-external pynumber_inplacemultiply : pyobject * pyobject -> pyobject = "PyNumber_InPlaceMultiply_wrapper"
-external pynumber_inplacetruedivide : pyobject * pyobject -> pyobject = "PyNumber_InPlaceTrueDivide_wrapper"
-external pynumber_inplacefloordivide : pyobject * pyobject -> pyobject = "PyNumber_InPlaceFloorDivide_wrapper"
-IFDEF PYMAJOR2 THEN
-external pynumber_inplacedivide : pyobject * pyobject -> pyobject = "PyNumber_InPlaceDivide_wrapper"
-END
-external pynumber_inplaceremainder : pyobject * pyobject -> pyobject = "PyNumber_InPlaceRemainder_wrapper"
-external pynumber_inplacelshift : pyobject * pyobject -> pyobject = "PyNumber_InPlaceLshift_wrapper"
-external pynumber_inplacershift : pyobject * pyobject -> pyobject = "PyNumber_InPlaceRshift_wrapper"
-external pynumber_inplaceand : pyobject * pyobject -> pyobject = "PyNumber_InPlaceAnd_wrapper"
-external pynumber_inplacexor : pyobject * pyobject -> pyobject = "PyNumber_InPlaceXor_wrapper"
-external pynumber_inplaceor : pyobject * pyobject -> pyobject = "PyNumber_InPlaceOr_wrapper"
-IFDEF PYMAJOR2 THEN
-external pybytes_format : pyobject * pyobject -> pyobject = "PyBytes_Format_wrapper"
-external pystring_format : pyobject * pyobject -> pyobject = "PyBytes_Format_wrapper" (* Legacy support *)
-external pyinstance_newraw : pyobject * pyobject -> pyobject = "PyInstance_NewRaw_wrapper"
-END
-external pysequence_concat : pyobject * pyobject -> pyobject = "PySequence_Concat_wrapper"
-external pysequence_inplaceconcat : pyobject * pyobject -> pyobject = "PySequence_InPlaceConcat_wrapper"
-
-(* Type18 *)
-external pyobject_istrue : pyobject -> int = "PyObject_IsTrue_wrapper"
-external pyobject_not : pyobject -> int = "PyObject_Not_wrapper"
-external pycallable_check : pyobject -> int = "PyCallable_Check_wrapper"
-external pybytes_size : pyobject -> int = "PyBytes_Size_wrapper"
-external pystring_size : pyobject -> int = "PyBytes_Size_wrapper" (* Legacy support *)
-external pydict_size : pyobject -> int = "PyDict_Size_wrapper"
-external pytuple_size : pyobject -> int = "PyTuple_Size_wrapper"
-external pyerr_exceptionmatches : pyobject -> int = "PyErr_ExceptionMatches_wrapper"
-external pyobject_size : pyobject -> int = "PyObject_Size_wrapper"
-external pynumber_check : pyobject -> int = "PyNumber_Check_wrapper"
-external pysequence_check : pyobject -> int = "PySequence_Check_wrapper"
-external pysequence_size : pyobject -> int = "PySequence_Size_wrapper"
-external pysequence_length : pyobject -> int = "PySequence_Length_wrapper"
-external pymapping_check : pyobject -> int = "PyMapping_Check_wrapper"
-external pymapping_size : pyobject -> int = "PyMapping_Size_wrapper"
-external pymapping_length : pyobject -> int = "PyMapping_Length_wrapper"
-external pyiter_check : pyobject -> int = "PyIter_Check_wrapper"
-external pyunicode_getsize : pyobject -> int = "PyUnicode_GetSize_wrapper"
-
-(* Type19 *)
-external pyobject_hasattr : (pyobject * pyobject) -> int = "PyObject_HasAttr_wrapper"
-external pyobject_delitem : (pyobject * pyobject) -> int = "PyObject_DelItem_wrapper"
-external pydict_delitem : (pyobject * pyobject) -> int = "PyDict_DelItem_wrapper"
-external pyerr_givenexceptionmatches : (pyobject * pyobject) -> int = "PyErr_GivenExceptionMatches_wrapper"
-external pysequence_count : (pyobject * pyobject) -> int = "PySequence_Count_wrapper"
-external pysequence_contains : (pyobject * pyobject) -> int = "PySequence_Contains_wrapper"
-external pysequence_in : (pyobject * pyobject) -> int = "PySequence_In_wrapper"
-external pysequence_index : (pyobject * pyobject) -> int = "PySequence_Index_wrapper"
-external pymapping_haskey : (pyobject * pyobject) -> int = "PyMapping_HasKey_wrapper"
-
-IFDEF PYCAML2 THEN
-external pyobject_compare : (pyobject * pyobject) -> int = "PyObject_Compare_wrapper"
-END
-
-(* Type20 *)
-external pyobject_richcomparebool : (pyobject * pyobject * int) -> int = "PyObject_RichCompareBool_wrapper"
-
-(* Type21 *)
-external pyobject_setattrstring : (pyobject * string * pyobject) -> int = "PyObject_SetAttrString_wrapper"
-external pydict_setitemstring : (pyobject * string * pyobject) -> int = "PyDict_SetItemString_wrapper"
-external pymapping_setitemstring : (pyobject * string * pyobject) -> int = "PyMapping_SetItemString_wrapper"
-
-(* Type22 *)
-external pymapping_haskeystring : (pyobject * string) -> int = "PyMapping_HasKeyString_wrapper"
-external pyobject_hasattrstring : (pyobject * string) -> int = "PyObject_HasAttrString_wrapper"
-external pydict_delitemstring : (pyobject * string) -> int = "PyDict_DelItemString_wrapper"
-
-(* Type23 -- currently not implemented.
-external pynumber_coerce : (pyobject * pyobject) -> (pyobject * pyobject) option = "PyNumber_Coerce_wrapper"
-external pynumber_coerceex : (pyobject * pyobject) -> (pyobject * pyobject) option = "PyNumber_CoerceEx_wrapper"
-*)
-
-(* Type24 *)
-external pyobject_setattr : (pyobject * pyobject * pyobject) -> int = "PyObject_SetAttr_wrapper"
-external pyobject_setitem : (pyobject * pyobject * pyobject) -> int = "PyObject_SetItem_wrapper"
-external pydict_setitem : (pyobject * pyobject * pyobject) -> int = "PyDict_SetItem_wrapper"
-
-(* Type25 *)
-external pyobject_hash : pyobject -> int64 = "PyObject_Hash_wrapper"
-external pyint_aslong : pyobject -> int64 = "PyInt_AsLong_wrapper"
-
-(* Type26 *)
-external pybytes_asstring : pyobject -> string = "PyBytes_AsString_wrapper"
-external pystring_asstring : pyobject -> string = "PyBytes_AsString_wrapper" (* Legacy support *)
-external pymodule_getfilename : pyobject -> string = "PyModule_GetFilename_wrapper"
-external pymodule_getname : pyobject -> string = "PyModule_GetName_wrapper"
-
-(* Type28 *)
-external pyimport_addmodule : string -> pyobject = "PyImport_AddModule_wrapper"
-external pybytes_fromstring : string -> pyobject = "PyBytes_FromString_wrapper"
-IFDEF PYMAJOR2 THEN
-external pystring_fromstring : string -> pyobject = "PyBytes_FromString_wrapper" (* Legacy support *)
-ELSE
-external pystring_fromstring : string -> pyobject = "PyUnicode_FromString_wrapper" (* Legacy support *)
-ENDIF
-external pymodule_new : string -> pyobject = "PyModule_New_wrapper"
-external pyimport_importmodule : string -> pyobject = "PyImport_ImportModule_wrapper"
-
-(* Type29 *)
-external pydict_new : unit -> pyobject = "PyDict_New_wrapper"
-external pyerr_occurred : unit -> pyobject = "PyErr_Occurred_wrapper"
-external pyimport_getmoduledict : unit -> pyobject = "PyImport_GetModuleDict_wrapper"
-external pyeval_getbuiltins : unit -> pyobject = "PyEval_GetBuiltins_wrapper"
-external pyeval_getglobals : unit -> pyobject = "PyEval_GetGlobals_wrapper"
-external pyeval_getlocals : unit -> pyobject = "PyEval_GetLocals_wrapper"
-(* external pyeval_getframe : unit -> pyobject = "PyEval_GetFrame_wrapper"  -- FIX: see note in stubs. *)
-
-(* Type30 *)
-external pydict_clear : pyobject -> unit = "PyDict_Clear_wrapper"
-external pyerr_setnone : pyobject -> unit = "PyErr_SetNone_wrapper"
-
-(* Type31  -- currently not implemented.
-external pydict_next : (pyobject * int) -> (pyobject * pyobject * int) option = "PyDict_Next_wrapper"
-*)
-
-(* Type34 *)
-external pyint_fromlong : int64 -> pyobject = "PyInt_FromLong_wrapper"
-
-(* Type35 *)
-IFDEF PYMAJOR2 THEN
-external pyint_getmax : unit -> int64 = "PyInt_GetMax_wrapper"
-END
-external pyimport_getmagicnumber : unit -> int64 = "PyImport_GetMagicNumber_wrapper"
-
-(* Type36 *)
-external pyfloat_fromdouble : float -> pyobject = "PyFloat_FromDouble_wrapper"
-
-(* Type37 *)
-external pyfloat_asdouble : pyobject -> float = "PyFloat_AsDouble_wrapper"
-
-(* Type39 *)
-external pytuple_new : int -> pyobject = "PyTuple_New_wrapper"
-
-(* Type40 *)
-external pysequence_inplacerepeat : (pyobject * int) -> pyobject = "PySequence_InPlaceRepeat_wrapper"
-external pytuple_getitem : (pyobject * int) -> pyobject = "PyTuple_GetItem_wrapper"
-external pysequence_repeat : (pyobject * int) -> pyobject = "PySequence_Repeat_wrapper"
-external pysequence_getitem : (pyobject * int) -> pyobject = "PySequence_GetItem_wrapper"
-
-(* Type40b *)
-external pysequence_delitem : (pyobject * pyobject * int) -> int = "PySequence_DelItem_wrapper"
-
-(* Type41 *)
-external pytuple_setitem : (pyobject * int * pyobject) -> int = "PyTuple_SetItem_wrapper"
-external pysequence_setitem : (pyobject * int * pyobject) -> int = "PySequence_SetItem_wrapper"
-
-(* Type42 *)
-external pyslice_new : (pyobject * pyobject * pyobject) -> pyobject = "PySlice_New_wrapper"
-external pyclass_new : (pyobject * pyobject * pyobject) -> pyobject = "PyClass_New_wrapper"
-IFDEF PYMAJOR2 THEN
-external pyinstance_new : (pyobject * pyobject * pyobject) -> pyobject = "PyInstance_New_wrapper"
-END
-external pymethod_new : (pyobject * pyobject * pyobject) -> pyobject = "PyMethod_New_wrapper"
-external pyeval_callobjectwithkeywords : (pyobject * pyobject * pyobject) -> pyobject = "PyEval_CallObjectWithKeywords_wrapper"
-external pynumber_power : (pyobject * pyobject * pyobject) -> pyobject = "PyNumber_Power_wrapper"
-external pynumber_inplacepower : (pyobject * pyobject * pyobject) -> pyobject = "PyNumber_InPlacePower_wrapper"
-
-(* Type43 *)
-(* external pyslice_getindices : (pyobject * int) -> (int * int * int) option = "PySlice_GetIndices_wrapper" <-- Currently not supported *)
-
-(* Type45 *)
-external pyerr_setobject : (pyobject * pyobject) -> unit = "PyErr_SetObject_wrapper"
-
-(* Type46 *)
-external pyerr_setstring : (pyobject * string) -> unit = "PyErr_SetString_wrapper"
-
-(* Type47 *)
-external pyerr_fetch : (pyobject * pyobject * pyobject) -> (pyobject * pyobject * pyobject) = "PyErr_Fetch_wrapper"
-external pyerr_normalizeexception : (pyobject * pyobject * pyobject) -> (pyobject * pyobject * pyobject) = "PyErr_NormalizeException_wrapper"
-
-(* Type48 *)
-external pyerr_restore : (pyobject * pyobject * pyobject) -> unit = "PyErr_Restore_wrapper"
-
-(* Type49 *)
-external pyimport_execcodemodule : (pyobject * string) -> pyobject = "PyImport_ExecCodeModule_wrapper"
-
-(* Type50 *)
-external pyimport_execcodemoduleex : (string * pyobject * string) -> pyobject = "PyImport_ExecCodeModuleEx_wrapper"
-
-(* Type51 *)
-external pyimport_importmoduleex : (string * pyobject * pyobject * pyobject) -> pyobject = "PyImport_ImportModuleEx_wrapper"
-
-(* Type52 *)
-external pybytes_asstringandsize : pyobject -> string = "PyBytes_AsStringAndSize_wrapper"
-external pystring_asstringandsize : pyobject -> string = "PyBytes_AsStringAndSize_wrapper" (* Legacy support *)
-external pyobject_ascharbuffer : pyobject -> string = "PyObject_AsCharBuffer_wrapper"
-external pyobject_asreadbuffer : pyobject -> string = "PyObject_AsReadBuffer_wrapper"
-external pyobject_aswritebuffer : pyobject -> string = "PyObject_AsWriteBuffer_wrapper"
-
-(* Type53 *)
-external pysequence_setslice : (pyobject * int * int * pyobject) -> int = "PySequence_SetSlice_wrapper"
-
-(* Type54 *)
-external pysequence_delslice : (pyobject * int * int) -> int = "PySequence_DelSlice_wrapper"
-
-(* TypeUTF8Decoder *)
-external pyunicode_decodeutf8 : (string * string option) -> pyobject = "PyUnicode_DecodeUTF8_wrapper"
-
-(* TypeUTF16Decoder *)
-external pyunicode_decodeutf16 : (string * string option * int option) -> pyobject = "PyUnicode_DecodeUTF16_wrapper"
-external pyunicode_decodeutf32 : (string * string option * int option) -> pyobject = "PyUnicode_DecodeUTF32_wrapper"
-
-(*-----------------------------------------------------------------------*)
-
-external pyunicode_fromunicode : (int -> int) -> int -> pyobject = "PyUnicode_FromUnicode_wrapper"
-external pyunicode_asunicode   : pyobject -> int array = "PyUnicode_AsUnicode_wrapper"
-
-(*-----------------------------------------------------------------------*)
-
-external pytuple_fromarray : pyobject array -> pyobject = "pytuple_fromarray"
-let pytuple_fromsingle elt = pytuple_fromarray [| elt |] 
-let pytuple_empty = pytuple_fromarray [| |] 
-external pytuple2 : (pyobject * pyobject) -> pyobject = "pytuple_fromarray"
-external pytuple3 : (pyobject * pyobject * pyobject) -> pyobject = "pytuple_fromarray"
-external pytuple4 : (pyobject * pyobject * pyobject * pyobject) -> pyobject = "pytuple_fromarray"
-external pytuple5 : (pyobject * pyobject * pyobject * pyobject * pyobject) -> pyobject = "pytuple_fromarray"
-
-let pyint_fromint i = pyint_fromlong (Int64.of_int i)
-let pyint_asint obj = Int64.to_int (pyint_aslong obj)
-    
-external pytuple_toarray : pyobject -> pyobject array = "pytuple_toarray"
-    
-external pywrap_closure : (pyobject -> pyobject) -> pyobject = "pywrap_closure"
-
-external pywrap_value : 'a -> pyobject = "pywrapvalue"
-external pywrap_value_pill : 'a -> pyobject = "pywrapvalue_pill"
-
-external pyunwrap_value : pyobject -> 'a = "pyunwrapvalue"
-(* ^ Note: this will just unwrap and not care about pills! *)
-
-(* -- T.F. extensions -- *)
-
-let py_repr x = pybytes_asstring (pyobject_repr x)
-
-external pywrap_closure_docstring :
-  string -> (pyobject -> pyobject) -> pyobject = "pywrap_closure_docstring"
-
-
-external pylist_fromarray : pyobject array -> pyobject = "pylist_fromarray"
-external pylist_toarray : pyobject -> pyobject array = "pylist_toarray"
-external pylist_set: pyobject -> int -> pyobject -> unit = "pylist_set"
-external pylist_get: pyobject -> int -> pyobject = "pylist_get"
-
-external python_prompt: unit -> unit = "pycaml_prompt"
-
-external pyrefcount: pyobject -> int = "pyrefcount"
-
-let _py_profile_hash = ((Hashtbl.create 100):(string, float array) Hashtbl.t)
-let _py_profiling_active=ref false
-(* The profiling hash and switch are strictly internal! *)
-
-let py_activate_profiling () =
-  let z = !_py_profiling_active in
-  let () = _py_profiling_active:=true in
-    z
-
-let py_deactivate_profiling () =
-  let z = !_py_profiling_active in
-  let () = _py_profiling_active:=false in
-    z
-
-
-let py_profile_reset () = Hashtbl.clear _py_profile_hash
-
-(* Needed below. Actually, we also have this in our "snippets" module,
-   but pycaml should not depend on anything not in the standard ocaml
-   distribution.
-*)
-
-let __hashtbl_arbitrary_element ht =
-  let have_it = ref None in
-  let () =
-    try
-      Hashtbl.iter
-       (fun k v ->
-          begin
-            have_it := Some (k,v);
-            raise Not_found; (* abused as a dummy exception here *)
-          end)
-       ht
-    with
-      | Not_found -> ()
-  in
-    !have_it
-
-let __map_hashtbl_to_array ?sorter mapper ht =
-  let nr_entries = Hashtbl.length ht in
-    if nr_entries = 0 
-    then [||]
-    else
-      let opt_kv = __hashtbl_arbitrary_element ht in
-      let result =
-       match opt_kv with
-         | None -> failwith "Impossible!"
-         | Some (k,v) -> Array.make nr_entries (mapper k v)
-      in
-      let ref_index = ref 0 in
-      let () = Hashtbl.iter
-       (fun k v ->
-          begin
-            result.(!ref_index) <- mapper k v;
-            ref_index := (1+ !ref_index);
-          end) ht
-      in
-       match sorter with
-         | Some s ->
-             let () = Array.sort s result in result
-         | _ -> result
-
-
-let py_profile_report () =
-  __map_hashtbl_to_array
-    ~sorter:(fun (_,time_a,_) (_,time_b,_) -> compare time_b time_a) (* sort by time consumed *)
-    (fun name time_and_calls -> (name,time_and_calls.(0),time_and_calls.(1)))
-    _py_profile_hash
-
-
-let pytype_name pt =
-  match pt with
-  | TupleType -> "Python-Tuple"
-  | BytesType -> "Python-Bytes"
-  | UnicodeType -> "Python-Unicode"
-  | BoolType -> "Python-Bool"
-  | IntType -> "Python-Int"
-  | FloatType -> "Python-Float"
-  | ListType -> "Python-List"
-  | NoneType -> "Python-None"
-  | CallableType -> "Python-Callable"
-  | ModuleType -> "Python-Module"
-  | ClassType -> "Python-Class"
-  | NullType -> "Python-Null"
-  | TypeType -> "Python-Type"
-  | DictType -> "Python-Dict"
-  | CamlpillType -> "Python-Camlpill"
-  | OtherType -> "Python-Other"
-  | EitherStringType -> "Python-EitherString"
-  | CamlpillSubtype sym -> "Python-Camlpill-" ^ sym
-  | AnyType -> "Python-Any"
-
-let set_python_argv argv =
-  let py_mod_sys_dict = pymodule_getdict (pyimport_importmodule "sys") in
-  let _ = pydict_setitem(py_mod_sys_dict,pybytes_fromstring "argv",
-                        pylist_fromarray (Array.map pybytes_fromstring argv))
-  in ()
-
-let python_eval str =
-  pyrun_simplestring str
-
-let python_load filename =
-  ignore(python_eval (Printf.sprintf "execfile(\"%s\")" filename))
-
-let python () =
-  let () = python_prompt() in 0
-
-let ipython () =
-  pyrun_simplestring
-(* This version starts ipython with its own name space -- one
-   can't see any objects created with earlier pycaml.* commands.
-
-   I have added a replacement below. (Delete this comment later if 
-   this generally works. (HF 23/09/05)
- *)
-(* "import IPython       
-import sys
-sys.argv=['/usr/local/bin/ipython']
-IPython.Shell.start().mainloop()
-";;*)
-"from IPython.Shell import IPShellEmbed
-ipshell = IPShellEmbed(argv=[''])
-ipshell() # this call anywhere in your program will start IPython
-";;
-
-
-(* Note: we prepare Python in such a way that we have a module ocaml
-   within which the OCaml side will publish its own functions.
-
-   Convention: We will register some examples in ocaml.*
-   These will have names that start with "example_".
-*)
-
-let _ = py_initialize () (* Note that this must happen that early... *)
-
-let _py_sys_modules = pyimport_getmoduledict ()
-let _py_mod_ocaml = pymodule_new "ocaml"
-let _py_mod_ocaml_dict = pymodule_getdict _py_mod_ocaml
-
-(* Get the last value that was computed in the interactive REPL *)
-let python_last_value () =
-  let main = pyimport_importmodule "__main__" in
-  let main_dict = pymodule_getdict main in
-  let builtins = pydict_getitem (main_dict, pybytes_fromstring "__builtins__") in
-  let builtins_dict = pymodule_getdict builtins in
-  let pyname_lastvalue = pybytes_fromstring "_" in
-    pydict_getitem (builtins_dict, pyname_lastvalue)
-
-let py_is_true x = pyobject_istrue x <> 0 (* pyobject_istrue has return type int - which is quite insane... *)
-
-let register_for_python stuff =
-  Array.iter
-    (fun (python_name, value) ->
-       ignore(pydict_setitemstring
-               (_py_mod_ocaml_dict,
-                python_name, value)))
-    stuff
-
-let register_pre_functions_for_python stuff =
-  Array.iter
-    (fun (python_name, pre_fun) ->
-       ignore(pydict_setitemstring
-               (_py_mod_ocaml_dict,
-                python_name, pre_fun python_name)))
-    stuff
-
-
-let float_array_to_python farr =
-  pylist_fromarray (Array.map pyfloat_fromdouble farr)
-
-let int_array_to_python iarr =
-  pylist_fromarray (Array.map pyint_fromint iarr)
-
-
-let py_float_tensor ?(init=(fun _ -> 0.0)) index_ranges =
-  let nr_indices = Array.length index_ranges in
-  let v_indices = Array.make nr_indices 0 in
-    if nr_indices = 0
-    then (pyfloat_fromdouble (init v_indices), fun _ -> failwith "Cannot set rank-0 python float tensor!")
-    else
-      let rec build pos =
-       let range = index_ranges.(pos) in
-         if pos = nr_indices-1
-         then
-           pylist_fromarray 
-             (Array.init range
-                (fun ix_here ->
-                   let () = v_indices.(pos) <- ix_here in
-                     pyfloat_fromdouble (init v_indices)))
-         else
-           pylist_fromarray
-             (Array.init range
-                (fun ix_here ->
-                   let () = v_indices.(pos) <- ix_here in
-                     build (1+pos)))
-      in
-      let structure = build 0
-      in
-      let setter indices value =
-       let rec walk sub_structure pos =
-         if pos = nr_indices-1
-         then pylist_set sub_structure indices.(pos) value
-         else walk (pylist_get sub_structure indices.(pos)) (1+pos)
-       in walk structure 0
-      in (structure,setter)
-
-
-
-let py_homogeneous_list_as_array
-    ?error_label
-    ?length
-    type_name type_checker unwrapper
-    py_obj_arr
-    =
-  let array_first_not_to_satisfy p arr =
-    let len = Array.length arr in
-    let rec walk n =
-      if n = len then (-1)
-      else if p (arr.(n)) then walk (n+1)
-      else n
-    in walk 0
-  in
-  let the_error_label =
-    match error_label with
-      | None -> ""
-      | Some x -> Printf.sprintf "%s: " x
-  in
-    if pytype py_obj_arr <> ListType then 
-      raise 
-           (Pycaml_exn
-              (Pyerr_TypeError,
-               Printf.sprintf "%sExpected list, got: %s (%s)" the_error_label
-                 (pytype_name (pytype py_obj_arr))
-                 (py_repr py_obj_arr)
-              ))
-    else
-      let obj_arr = pylist_toarray py_obj_arr in
-        (* Doing the length check is slightly tricky... *)
-      let () =
-        match length with
-             | None -> ()
-             | Some len ->
-                 if Array.length obj_arr <> len then
-                   raise 
-                         (Pycaml_exn
-                            (Pyerr_TypeError,
-                             Printf.sprintf "%sExpected list of length %d, got length: %d"
-                               the_error_label
-                               len (Array.length obj_arr)))
-      in
-      let first_bad = array_first_not_to_satisfy type_checker obj_arr in
-        if first_bad <> (-1) then
-             raise 
-            (Pycaml_exn
-               (Pyerr_TypeError,
-                   Printf.sprintf "%sExpected homogeneous list of %s. Entry %d is of type %s (%s)!"
-                         the_error_label
-                         type_name
-                         (1 + first_bad)
-                         (pytype_name (pytype obj_arr.(first_bad)))
-                         (py_repr obj_arr.(first_bad))))
-        else
-             Array.map unwrapper obj_arr
-
-
-
-let py_float_list_as_array ?error_label ?length arr =
-  py_homogeneous_list_as_array
-    ?error_label ?length
-    "float" (fun x -> pytype x = FloatType) pyfloat_asdouble arr
-
-let py_int_list_as_array ?error_label ?length arr =
-  py_homogeneous_list_as_array
-    ?error_label ?length
-    "int" (fun x -> pytype x = IntType) pyint_asint arr
-
-let py_number_list_as_float_array ?error_label ?length arr =
-  py_homogeneous_list_as_array
-    ?error_label ?length
-    "number" 
-    (fun x -> let ty = pytype x in ty = FloatType || ty = IntType)
-    (fun x -> if pytype x = FloatType then pyfloat_asdouble x else float_of_int (pyint_asint x))
-    arr
-
-
-let py_string_list_as_array ?error_label ?length arr =
-  py_homogeneous_list_as_array
-    ?error_label ?length
-    "string" (fun x -> pytype x = BytesType) pybytes_asstring arr
-
-let py_list_list_as_array ?error_label ?length arr =
-  py_homogeneous_list_as_array
-    ?error_label ?length
-    "<Python List>" (fun x -> pytype x = ListType) (fun x -> x) arr
-
-let py_list_list_as_array2 ?error_label ?length arr =
-  py_homogeneous_list_as_array
-    ?error_label ?length
-    "<Python List>" (fun x -> pytype x = ListType) pylist_toarray arr
-
-
-let py_float_list_list_as_array ?error_label ?length_outer ?length_inner arr =
-  let arr_outer = py_list_list_as_array ?error_label ?length:length_outer arr in
-  Array.map (py_float_list_as_array ?error_label ?length:length_inner) arr_outer
-
-let py_number_list_list_as_float_array ?error_label ?length_outer ?length_inner arr =
-  let arr_outer = py_list_list_as_array ?error_label ?length:length_outer arr in
-  Array.map (py_number_list_as_float_array ?error_label ?length:length_inner) arr_outer
-
-
-let py_int_list_list_as_array ?error_label ?length_outer ?length_inner arr =
-  let arr_outer = py_list_list_as_array ?error_label ?length:length_outer arr in
-  Array.map (py_int_list_as_array ?error_label ?length:length_inner) arr_outer
-
-let py_string_list_list_as_array ?error_label ?length_outer ?length_inner arr =
-  let arr_outer = py_list_list_as_array ?error_label ?length:length_outer arr in
-  Array.map (py_string_list_as_array ?error_label ?length:length_inner) arr_outer
-
-
-(* When registering an OCaml function for Python, we should include
-   quite some extra run-time type checks. Rationale: Python users expect
-   programming errors to produce error messages, not crash the system.
-
-   So, not including these checks would violate the user's expectations.
-
-   The function below helps us wrapping up an OCaml function for
-   calling from python with arg conversion, typechecks, and optional
-   extra checks for individual parameters. Furthermore, we make sure
-   that OCaml exceptions are passed on properly to the Python level.
-*)
-
-(* Actually, this turned out to be not quite as useful as I hoped initially... *)
-let _caml_debug_exceptions () =
-  let ocamlrunparam =
-    try
-      Unix.getenv "OCAMLRUNPARAM"
-    with
-      | Not_found ->
-          try
-            Unix.getenv "CAMLRUNPARAM"
-          with
-            | Not_found -> ""
-  in
-  let pieces = Str.split (Str.regexp ",") ocamlrunparam in
-    try 
-      let _ = List.find (fun p -> p="b") pieces in
-        true
-    with
-      | Not_found -> false
-
-let type_mismatch_exception type_wanted type_here pos exn_name =
-  Pycaml_exn
-       (Pyerr_TypeError,
-        (Printf.sprintf "Argument %d: Type wanted: %s -- Type provided: %s%s."
-               (pos + 1) (* Humans like to start counting at 1. *)
-               (pytype_name type_wanted)
-               (pytype_name type_here)
-               exn_name))
-
-IFDEF PYMAJOR2 THEN
-let sym_match a b =
-  a == b                      (* Note the == for physical equality. *)
-ELSE
-let sym_match a b =
-  a = b
-ENDIF
-
-let pill_type_mismatch_exception ?position ?exn_name wanted gotten =
-  let arg_no =
-    match position with
-      | None -> ""
-      | Some p -> "Argument %d: "
-  in
-  let en =
-    match exn_name with
-      | None -> ""
-      | Some n -> n
-  in
-  Pycaml_exn (Pyerr_TypeError, 
-                         arg_no ^ (Printf.sprintf "Python-Ocaml Pill Type mismatch: wanted: '%s' - got: '%s'" wanted gotten) ^ en)
-
-let ocamlpill_type_of pill =
-  if pytype pill <> CamlpillType then
-    (* may happen if we e.g. look at list entries *)
-    raise (Pycaml_exn(Pyerr_TypeError,
-                        Printf.sprintf "Expected OCaml pill - got: %s (%s)"
-                          (pytype_name (pytype pill))
-                          (py_repr pill)))
-  else
-    let (type_name, _) = pyunwrap_value pill in
-      type_name
-
-let check_pill_type ?position ?exn_name wanted pill =
-  let gotten = ocamlpill_type_of pill in
-    if not (sym_match gotten wanted) then
-      raise (pill_type_mismatch_exception ?position:position ?exn_name:exn_name wanted gotten)
-
-let unpythonizing_function
-    ?name                        (* Will be used in error reporting *)
-    ?(catch_weird_exceptions = true)
-    ?extra_guards (* An array of functions mapping pyobject -> failure_string option *)
-    ?(expect_tuple = false)
-    wanted_types
-    function_body =
-  let exn_name =
-    match name with
-      | None -> ""
-      | Some s -> Printf.sprintf " (%s)" s
-  in
-  let work_fun python_args =
-    let body () =
-      let () =
-        if expect_tuple && pytype python_args <> TupleType then
-                 (* ^ This should never happen! *)
-          raise (Pycaml_exn(Pyerr_TypeError, Printf.sprintf "Weird situation: Non-Tuple function args encountered.%s" exn_name))
-      in
-      let nr_args_given =
-        if expect_tuple then
-          pytuple_size python_args
-        else
-          1
-      in
-      let nr_args_wanted = Array.length wanted_types in
-      let () =
-        if nr_args_given <> nr_args_wanted then
-          raise (Pycaml_exn(Pyerr_IndexError,
-                                           (Printf.sprintf "Args given: %d Wanted: %d%s" nr_args_given nr_args_wanted exn_name)))
-      in
-      let arr_args =
-        if expect_tuple then
-          pytuple_toarray python_args
-        else
-          [| python_args |]
-      in
-      let rec check_types pos =
-           if pos = nr_args_given then
-          function_body arr_args
-           else
-             let type_here = pytype arr_args.(pos) in
-             let type_wanted = wanted_types.(pos) in
-             let () =
-            match type_wanted with
-              | AnyType ->
-                  ()
-              | EitherStringType ->
-                  if type_here <> UnicodeType && type_here <> BytesType then
-                    raise (type_mismatch_exception type_wanted type_here pos exn_name)
-              | CamlpillSubtype sym ->
-                  check_pill_type ~position:pos ~exn_name:exn_name sym arr_args.(pos)
-              | _ ->
-                  if type_here <> type_wanted then
-                           raise (type_mismatch_exception type_wanted type_here pos exn_name)
-             in
-               (* Okay, typecheck succeeded.  Now, if extra guards have
-                  been provided, try those. *)
-               match extra_guards with
-                 | None -> check_types (pos + 1)
-                 | Some guards ->
-                         let guard = guards.(pos) in
-                         let guard_error = guard arr_args.(pos) in
-                           match guard_error with
-                             | None -> check_types (pos+1)
-                             | Some msg ->
-                                     raise (Pycaml_exn
-                                                  (Pyerr_TypeError,
-                                                   (Printf.sprintf "Check for argument %d failed: %s%s"
-                                                      (pos + 1)
-                                                      msg
-                                                      exn_name)))
-      in
-           check_types 0
-    in
-      body ()
-  in
-    work_fun
-
-(* OCaml string encoded in UTF-8 --> Python 3 string type (= Python 2 unicode type) *)
-let pythonize_string s =
-  pyunicode_decodeutf8(s, None)
-
-(* Python 3 string or bytes type --> OCaml string encoded in UTF-8 *)
-let unpythonize_string =
-  unpythonizing_function
-    [| EitherStringType |]
-    begin
-      fun py_args ->
-        let s = py_args.(0) in
-        let t = pytype s in
-          match t with
-            | UnicodeType -> pybytes_asstringandsize (pyunicode_asutf8string s)
-            | BytesType   -> pybytes_asstringandsize s
-            | _ -> assert false
-    end
-
-(* FIX: Maybe rewrite this as an unpythonizing_function. *)
-let python_interfaced_function
-    ?name     (* Will be used in both profiling and error reporting *)
-    ?(catch_weird_exceptions = true)
-    ?doc
-    ?extra_guards (* An array of functions mapping pyobject -> failure_string option *)
-    wanted_types
-    function_body =
-  let wrapper =
-    match doc with
-      | None -> pywrap_closure
-      | Some docstring -> (pywrap_closure_docstring docstring)
-  in
-  let exn_name =
-    match name with
-      | None -> ""
-      | Some s -> Printf.sprintf " (%s)" s
-  in
-  let work_fun python_args =
-    let body () =
-      let () =
-        if pytype python_args <> TupleType then
-                 (* ^ This should never happen! *)
-          raise (Pycaml_exn(Pyerr_TypeError, Printf.sprintf "Weird situation: Non-Tuple function args encountered.%s" exn_name))
-      in
-      let nr_args_given = pytuple_size python_args in
-      let nr_args_wanted = Array.length wanted_types in
-      let () =
-        if nr_args_given <> nr_args_wanted then
-          raise (Pycaml_exn(Pyerr_IndexError,
-                                           (Printf.sprintf "Args given: %d Wanted: %d%s" nr_args_given nr_args_wanted exn_name)))
-      in
-      let arr_args = pytuple_toarray python_args in
-      let rec check_types pos =
-           if pos = nr_args_given then
-          function_body arr_args
-           else
-             let type_here = pytype arr_args.(pos) in
-             let type_wanted = wanted_types.(pos) in
-             let () =
-            match type_wanted with
-              | AnyType ->
-                  ()
-              | EitherStringType ->
-                  if type_here <> UnicodeType && type_here <> BytesType then
-                    raise (type_mismatch_exception type_wanted type_here pos exn_name)
-              | CamlpillSubtype sym ->
-                  check_pill_type ~position:pos ~exn_name:exn_name sym arr_args.(pos)
-              | _ ->
-                  if type_here <> type_wanted then
-                           raise (type_mismatch_exception type_wanted type_here pos exn_name)
-             in
-               (* Okay, typecheck succeeded.  Now, if extra guards have
-                  been provided, try those. *)
-               match extra_guards with
-                 | None -> check_types (pos + 1)
-                 | Some guards ->
-                         let guard = guards.(pos) in
-                         let guard_error = guard arr_args.(pos) in
-                           match guard_error with
-                             | None -> check_types (pos+1)
-                             | Some msg ->
-                                     raise (Pycaml_exn
-                                                  (Pyerr_TypeError,
-                                                   (Printf.sprintf "Check for argument %d failed: %s%s"
-                                                      (pos + 1)
-                                                      msg
-                                                      exn_name)))
-      in
-           check_types 0
-    in
-      if _caml_debug_exceptions () then
-        body () 
-      else
-           try
-             body ()
-           with 
-             | Pycaml_exn (errtype, msg) ->
-                 pycaml_seterror errtype (Printf.sprintf "%s%s" msg exn_name); pynull()
-             | Not_found ->
-                 pycaml_seterror Pyerr_LookupError (Printf.sprintf "OCaml exception 'Not_found'%s" exn_name);
-                 pynull()
-             | Division_by_zero ->
-                 pycaml_seterror Pyerr_ZeroDivisionError (Printf.sprintf "OCaml exception 'Division_by_zero'%s" exn_name);
-                 pynull()
-             | Failure s ->
-                 pycaml_seterror Pyerr_StandardError (Printf.sprintf "OCaml exception 'Failure: %s'%s" s exn_name);
-                 pynull ()
-             | Invalid_argument s ->
-                 pycaml_seterror Pyerr_StandardError (Printf.sprintf "OCaml exception 'Invalid_argument: %s'%s" s exn_name);
-                 pynull()
-             | Out_of_memory ->
-                 pycaml_seterror Pyerr_StandardError (Printf.sprintf "OCaml exception 'Out_of_memory'%s" exn_name);
-                 pynull()
-             | Stack_overflow ->
-                 pycaml_seterror Pyerr_StandardError (Printf.sprintf "OCaml exception 'Stack_overflow'%s" exn_name);
-                 pynull()
-             | Sys_error s ->
-                 pycaml_seterror Pyerr_StandardError (Printf.sprintf "OCaml exception 'Sys_error %s'%s" s exn_name);
-                 pynull()
-             | End_of_file ->
-                 pycaml_seterror Pyerr_IOError (Printf.sprintf "OCaml exception 'End_of_file'%s" exn_name);
-                 pynull()
-             | Match_failure (filename,line,column) ->
-                 pycaml_seterror Pyerr_StandardError (Printf.sprintf "OCaml exception 'Match_failure file=%s line=%d(c. %d)'%s" filename line column exn_name);
-                 pynull()
-             | Assert_failure (filename,line,column) ->
-                 pycaml_seterror Pyerr_StandardError (Printf.sprintf "OCaml exception 'Assert_failure file=%s line=%d(c. %d)'%s" filename line column exn_name);
-                 pynull()
-                       
-             | something_else ->
-                 if catch_weird_exceptions then
-                       begin
-                         pycaml_seterror 
-                           Pyerr_StandardError 
-                           (Printf.sprintf "OCaml weird low-level exception (not resolved any further)%s" exn_name);
-                         pynull()
-                       end
-                 else raise something_else
-  in
-    match name with
-      | None -> wrapper work_fun
-      | Some pname ->
-             let profiling_work_fun args =
-               if not(!_py_profiling_active)
-               then work_fun args
-               else
-                 let t0 = Unix.gettimeofday () in
-                 let result = work_fun args in
-                 let t1 = Unix.gettimeofday () in
-                 let old_time_and_calls =
-                       try Hashtbl.find _py_profile_hash pname
-                       with | Not_found ->
-                         let x = [|0.0;0.0|] in
-                         let () = Hashtbl.add _py_profile_hash pname x in
-                           x
-                 in
-                       begin
-                         old_time_and_calls.(0) <- old_time_and_calls.(0) +.(t1-.t0);
-                         old_time_and_calls.(1) <- old_time_and_calls.(1) +.1.0;
-                         result
-                       end
-             in
-            wrapper profiling_work_fun
-
-(* python_interfaced_function takes a name argument,
-   and indeed it has to, because we want to be able to profile-register
-   also anonymously generated functions.
-
-   On the other hand, we eventually register many of these functions
-   under some particular name in the "ocaml" python module. So, it
-   would be nice to be able to just use the functions' name in the
-   ocaml package as its profiling name. So, what we need is a way to
-   "pre-register" a function, i.e.:
-*)
-
-let python_pre_interfaced_function
-    ?(catch_weird_exceptions=true)
-    ?doc
-    ?extra_guards (* An array of functions mapping pyobject -> failure_string option *)
-    wanted_types function_body =
-  fun name ->
-    python_interfaced_function
-      ~name ?doc ?extra_guards wanted_types function_body
-
-
-(* pywrap_value will wrap up OCaml values for Python in such a way
-   that Python can store this in containers, pass it around, and
-   eventually hand it back to OCaml.
-
-   As python is not statically typed in an OCaml-compatible way, this
-   means that Python may hand back stuff to OCaml which is not of the
-   expected type, without OCaml noticing.
-
-   Again, Python users expect to get errors - not crashes - from
-   programs, so we have to guard against this. How? By implementing
-   some own primitive dynamic type system for python-wrapped OCaml
-   values.
-
-   Note: the conventions here are TF's own. Pycaml users need not use
-   them, but they might be well advised to do so nevertheless.
-
-   Design decisions:
-
-   * OCaml will only provide opaque values of a manageable small
-   number of types to Python.
-
-   * We want to be able to register new types for Python encapsulation
-   at runtime.
-   
-   * We abuse OCaml strings as type tag symbols, which have been
-   uniq'd through an identity hash map.  (B.S.: In the PyCapsule
-   implementation, we use the capsule name field and don't uniq it.)
-
-   * The only values which are wrapped up for python are of the structure
-   (type_tag_string,ref value)
-
-   The ref in the second tuple slot may be a paranoid spurious indirection,
-   but will ensure that we will always have a non-immediate in the second
-   slot.
-
-   * Note: If we use this in conjunction with some other Python foreign-function
-   extension, then it might well happen that a mixup of opaque objects from us
-   and that other extension produces a crash. We MIGHT be able to fix this if we
-   extend the Python interpreter at low level with a new type for our purposes,
-   and do not use PyCObject anymore.
-
-   * It might sound ridiculous, but I consider it a major problem that
-   so far, I could not come up with a nice, catchy name for the
-   concept of python values that wrap up python-opaque ocaml
-   values. Evidently, it is very desirable to have one.
-
-   After a few failed attempts, the least bad name I can come up with is "ocamlpill".
-
-   (B.S.: Personally, I have always liked the name, and now the name
-   is especially good, because an ocamlpill has become a sort of
-   "capsule", PyCapsule.)
-
-   * ocamlpill type names are unique and considered as global. It is desirable
-   to provide a Python function that returns this name, so those names should not be 
-   considered "for internal use only".
-
-*)
-
-(* Mapping name => Unique name. Type names are e.g. "Mesh.mesh". *)
-let _known_ocamlpill_types = ((Hashtbl.create 10):((string, string) Hashtbl.t))
-
-let _ocamlpill_type_sym ocamlpill_type_name =
-  try 
-    Hashtbl.find _known_ocamlpill_types ocamlpill_type_name
-  with
-    | Not_found ->
-       failwith
-         (Printf.sprintf "Used ocamlpill_type '%s' without register_ocamlpill_type(\"%s\")"
-            ocamlpill_type_name ocamlpill_type_name)
-
-let register_ocamlpill_types type_names =
-  Array.iter
-    (fun type_name ->
-      if Hashtbl.mem _known_ocamlpill_types type_name
-      then () (* -- already known *)
-      else 
-       Hashtbl.add _known_ocamlpill_types type_name type_name)
-    type_names
-
-let make_pill_wrapping ocamlpill_type_name prototypical_object =
-  let ocamlpill_type_sym = _ocamlpill_type_sym ocamlpill_type_name in
-  let wrapper x =
-    pywrap_value_pill
-      (ocamlpill_type_sym,
-       if false then
-         prototypical_object (* Type inference uses this object's type. *)
-       else
-         x)
-  in
-  let unwrapper py_value =
-    let (ocamlpill_type_sym_provided, xval) = pyunwrap_value py_value in
-      if not (sym_match ocamlpill_type_sym_provided ocamlpill_type_sym) then
-           raise (pill_type_mismatch_exception ocamlpill_type_sym ocamlpill_type_sym_provided)
-      else
-           let _ =
-             if false then
-            prototypical_object (* Type inference uses this object's type. *)
-             else
-            xval
-           in
-          xval
-  in
-    (wrapper, unwrapper)
-
-let make_ocamlpill_wrapper_unwrapper = make_pill_wrapping
-
-let ocamlpill_hard_unwrap pill =
-  let (_, x) = pyunwrap_value pill in
-    x
-
-
-(* There are situations where we want to provide optional python
-   arguments. For the low-level interface, we use the convention to use a
-   0-element or 1-element list. In most cases, this low-level convention
-   will be wrapped up at a higher level python-wise so that the user of
-   a module just sees an optional argument.
-   
-   This is somewhat tricky: we want to treat optional string/float/int
-   args on the same footing as pill args. How do we do this? By a bit
-   of combinatorical magic! The proper abstraction is to use a
-   continuation function which will receive the unwrapped optional value,
-   and an applicator, which may be some ocamlpill_applicator_for_xyz,
-   or something like (fun py_x f -> f (pyint_asint py_x)), or just
-   evaluate_at.
-
-   Problem here: pyint_asint should also do an extra python typecheck
-   in the example above! Hence, we need certain special applicators
-   for python types...
-*)
-
-let py_optionally unwrapper py_value =
-  (* Usually, the optional thingy comes in as an argument,
-     and is checked in python_interfaced_function.
-     This is not necessarily so, as optional thingies may be
-     part of larger data structures, so we better check the type *)
-  if pytype py_value != ListType
-  then
-    raise
-      (Pycaml_exn
-        (Pyerr_TypeError, 
-         Printf.sprintf "Expected optional argument to be provided as an empty or 1-element list. Got: %s (%s)"
-           (pytype_name (pytype py_value)) (py_repr py_value)))
-  else
-    let a = pylist_toarray py_value in
-    if Array.length a > 1 then
-      raise
-       (Pycaml_exn
-          (Pyerr_TypeError, 
-           Printf.sprintf "Expected optional argument to be provided as an empty or 1-element list. Got: %d-element list (%s)."
-             (Array.length a) (py_repr py_value)))
-    else
-      if Array.length a = 0 then None else Some (unwrapper a.(0))
-
-(* There are a few functions which we may want to use in conjunction with py_optionally to get
-   optional integers, optional floats, etc., and not just optional pills
-*)
-
-let guarded_pyint_asint x =
-  if pytype x <> IntType
-  then raise
-    (Pycaml_exn(Pyerr_TypeError,
-               Printf.sprintf "Wanted: int, got: %s (%s)" (pytype_name (pytype x)) (py_repr x)))
-  else pyint_asint x
-
-let guarded_pyfloat_asfloat x =
-  if pytype x <> FloatType
-  then raise
-    (Pycaml_exn(Pyerr_TypeError,
-               Printf.sprintf "Wanted: float, got: %s (%s)" (pytype_name (pytype x)) (py_repr x)))
-  else pyfloat_asdouble x
-
-let guarded_pynumber_asfloat x =
-  match pytype x with
-    | FloatType -> pyfloat_asdouble x
-    | IntType -> float_of_int (pyint_asint x)
-    | _ ->
-       raise
-         (Pycaml_exn(Pyerr_TypeError,
-                     Printf.sprintf "Wanted: number, got: %s (%s)" (pytype_name (pytype x)) (py_repr x)))
-
-let guarded_pybytes_asstring x =
-  if pytype x <> BytesType
-  then raise
-    (Pycaml_exn(Pyerr_TypeError,
-               Printf.sprintf "Wanted: string, got: %s (%s)" (pytype_name (pytype x)) (py_repr x)))
-  else pybytes_asstring x
-
-let guarded_pylist_toarray x =
-  if pytype x <> ListType
-  then raise
-    (Pycaml_exn(Pyerr_TypeError,
-               Printf.sprintf "Wanted: list, got: %s (%s)" (pytype_name (pytype x)) (py_repr x)))
-  else pylist_toarray x
-
-let guarded_pytuple_toarray x =
-  if pytype x <> TupleType
-  then raise
-    (Pycaml_exn(Pyerr_TypeError,
-               Printf.sprintf "Wanted: tuple, got: %s (%s)" (pytype_name (pytype x)) (py_repr x)))
-  else pytuple_toarray x
-
-
-let pycallable_asfun py =
-  if pytype py <> CallableType 
-  then
-    raise
-      (Pycaml_exn
-        (Pyerr_TypeError, 
-         Printf.sprintf "Expected Python Callable - Got: %s (%s)" (pytype_name (pytype py)) (py_repr py)))
-  else
-    fun (args:(pyobject array)) ->
-      pyeval_callobject(py,pytuple_fromarray args)
-
-
-(* Note: we do not subject the example/low-level python functions we provide here
-   to profiling. Maybe we should.
-*)
-
-let _py_profiling =
-  python_interfaced_function
-    ~doc:"Control profiling of python<->ocaml functions. Usage:
-
-ocaml.sys_profiling(\"on\") -> turn on profiling, return previous on/off status (on=true)
-ocaml.sys_profiling(\"off\") -> turn off profiling, return previous on/off status (on=true)
-ocaml.sys_profiling(\"clear\") -> clear internal profiling tables
-ocaml.sys_profiling(\"report\") -> return profiling report
-
-Report format: list of (name,time,nr_calls), sorted by decreasing total time. 
-nr_calls is a floatingpoint number to overcome 32-bit integer limitations.
-"
-    [|BytesType|]
-    (fun arr ->
-       let s = pybytes_asstring arr.(0) in
-        match s with
-          | "on" ->
-              let z = py_activate_profiling() in
-                if z then py_true () else py_false ()
-          | "off" ->
-              let z = py_activate_profiling() in
-                if z then py_true () else py_false ()
-          | "clear" ->
-              let () = py_profile_reset() in pynone()
-          | "report" ->
-              let r = py_profile_report() in
-                pylist_fromarray
-                  (Array.map 
-                     (fun (name,time,calls) ->
-                        pytuple3 (pybytes_fromstring name,
-                                  pyfloat_fromdouble time,
-                                  pyfloat_fromdouble calls))
-                     r)
-          | _ -> pynone()
-    )
-
-(* We provide a function to python that allows to check the type
-   of an opaque OCaml object.
-*)
-
-let _py_ocamlpill_type =
-  python_interfaced_function [|CamlpillType|]
-    (fun arr ->
-       let (type_name, _) = pyunwrap_value arr.(0)
-       in pybytes_fromstring type_name)
-
-(* Note: using ocaml.sys_python() will return
-   the last value computed interactively.
- *)
-let _py_python =
-  python_interfaced_function [||]
-    (fun arr ->
-      let _ = python() in
-      python_last_value())
-
-let _py_ipython =
-  python_interfaced_function [||]
-    (fun arr ->
-      let _ = ipython() in
-      python_last_value())
-
-let _py_check_heap =
-  python_interfaced_function
-    [||]
-    (fun arr -> let _ = Gc.full_major () in py_true ())
-
-
-(* -- init -- *)
-
-let _ =
-  begin
-    Callback.register_exception "ocaml_exn_pycaml" (Pycaml_exn (Pyerr_StandardError,""));
-    ignore(pydict_setitemstring (_py_sys_modules, "ocaml", _py_mod_ocaml));
-    ignore(python_eval "import ocaml");
-    register_for_python
-      [|
-       ("sys_profiling",_py_profiling);
-       (* -- This one is very important -- *)
-       ("sys_ocamlpill_type",_py_ocamlpill_type);
-       (* -- This may seem very strange, but actually comes in handy -- *)
-       ("sys_python",_py_python);
-       ("sys_ipython",_py_ipython);
-       ("sys_check_heap",_py_check_heap);
-       ("sys_refcount", 
-        pywrap_closure
-          (fun py_args ->
-             let args = pytuple_toarray py_args in
-               pyint_fromint (pyrefcount args.(0) )));
-
-       (* -- Examples below -- *)
-       ("example_test_interface", 
-        pywrap_closure
-          (fun _ ->
-             begin
-               Printf.printf "This is printed by OCaml, called from Python!\n%!" ;
-               pynone ()
-             end
-          ));
-       ("example_the_answer", pyint_fromint 42);
-      |];
-  end
-
-
-(* --- Example Code --- *)
-
-(* For demonstrative purposes, we include two functions
-   readily wrapped up here.
-*)
-
-(* 
-   Now, let's have fun with this:
- *)
-
-let _py_make_powers =
-  python_interfaced_function
-    ~extra_guards:
-    [|(fun py_len ->
-            let len = pyint_asint py_len in
-              if len < 0 then
-             Some "Negative Length"
-              else
-             None);
-      (fun _ -> None); (* This check never fails *)
-    |]
-    [|IntType;FloatType|]
-    (fun py_args ->
-       let len = pyint_asint py_args.(0)
-       and pow = pyfloat_asdouble py_args.(1) in
-            float_array_to_python
-              (Array.init len (fun n -> let nn = float_of_int (n+1) in nn**pow)))
-
-let
-    _py_hypotenuse_2d =
-  python_interfaced_function
-    [|FloatType;FloatType|]
-    (fun py_args ->
-       let x = pyfloat_asdouble py_args.(0)
-       and y = pyfloat_asdouble py_args.(1) in
-         pyfloat_fromdouble (sqrt(x*.x+.y*.y)))
-in
-  register_for_python
-    [|("example_make_powers", _py_make_powers);
-      ("example_hypotenuse", _py_hypotenuse_2d);
-    |]
diff --git a/bundles/pycaml/chemoelectric-pycaml-8614105/pycaml_stubs.c b/bundles/pycaml/chemoelectric-pycaml-8614105/pycaml_stubs.c
deleted file mode 100644 (file)
index 3275bb1..0000000
+++ /dev/null
@@ -1,2059 +0,0 @@
-/*
- * (C) arty 2002
-
- This library is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- This library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- USA
-
-
- Heavy modifications (Bugfixes!) done by T.F.
-
- See
-
- http://mail.python.org/pipermail/doc-sig/2001-July/001956.html
-
- for a discussion of result value stealing and a list of functions where
- this becomes relevant.
-
- Further modifications by Barry Schwartz.
- */
-
-#include <Python.h>
-#include <caml/mlvalues.h>
-#include <caml/memory.h>
-#include <caml/fail.h>
-#include <caml/callback.h>
-#include <caml/custom.h>
-#include <caml/alloc.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include "pycaml_stubs.h"
-
-#if 3 <= PY_MAJOR_VERSION
-#include <wchar.h>
-#if 4 <= PY_MAJOR_VERSION || (PY_MAJOR_VERSION == 3 && 1 <= PY_MINOR_VERSION)
-#define USE_PYCAPSULE 1
-#else
-#define USE_PYCAPSULE 0
-#endif
-#endif
-
-
-static void *xmalloc(size_t size)
-{
-    void *p = malloc(size);
-    if (p == NULL) {
-        fprintf(stderr, "Virtual memory exhausted\n");
-        exit(1);
-    }
-    return p;
-}
-
-#if 3 <= PY_MAJOR_VERSION
-
-static wchar_t *copy_to_wide_string(const char *s)
-{
-    size_t n;
-    wchar_t *ws;
-
-    ws = NULL;
-    n = mbstowcs(NULL, s, 0) + 1;
-    if (n != (size_t) -1) {
-        ws = xmalloc(n * sizeof (wchar_t));
-        mbstowcs(ws, s, n);
-    }
-    return ws;
-}
-
-static size_t multibyte_strlen(const wchar_t *ws)
-{
-    char buffer[MB_CUR_MAX];
-    int i;
-    size_t size;
-    size_t n;
-    mbstate_t ps;
-
-    n = wcrtomb(NULL, L'\0', &ps); /* Initialize the parse state. */
-    size = 0;
-    i = 0;
-    while (size != (size_t) -1 && ws[i] != L'\0') {
-        n = wcrtomb(buffer, ws[i], &ps);
-        if (n != (size_t) -1)
-            size += n;
-        else
-            size = (size_t) -1;
-        i++;
-    }
-    return size;
-}
-
-static char *copy_from_wide_string(const wchar_t *ws)
-{
-    char *s;
-    int i;
-    int j;
-    size_t size;
-    size_t n;
-    mbstate_t ps;
-
-    s = NULL;
-    size = multibyte_strlen(ws);
-    if (size != (size_t) -1) {
-        s = xmalloc((size + 1) * sizeof (char));
-        n = wcrtomb(NULL, L'\0', &ps); /* Initialize the parse state. */
-        j = 0;
-        i = 0;
-        while (ws[i] != L'\0') {
-            n = wcrtomb(s + j, ws[i], &ps);
-            j += n;
-            i++;
-        }
-        s[j] = '\0';
-    }        
-    return s;
-}
-
-#endif /* 3 <= PY_MAJOR_VERSION */
-
-static void *getcustom( value v )
-{
-    return *((void **)Data_custom_val(v));
-}
-
-static void pydecref( value v )
-{
-    if( getcustom(v) ) { 
-        /* printf("GC - pydecref obj 0x%08x to refcount=%d\nOBJ=",getcustom(v),((PyObject *)getcustom(v))->ob_refcnt-1);
-           PyObject_Print((PyObject *)getcustom(v),stdout,0);
-           printf("END OBJ\n");
-           fflush(stdout);
-        */
-        Py_DECREF((PyObject *)getcustom(v));
-    }
-}
-
-#if PY_MAJOR_VERSION <= 2
-
-static int pycompare( value v1, value v2 )
-{
-    int result;
-
-    if (getcustom(v1) && !getcustom(v2))
-        result = -1;
-    else if (getcustom(v2) && !getcustom(v1))
-        result = 1;
-    else if (!getcustom(v1) && !getcustom(v2))
-        result = 0;
-    else
-        PyObject_Cmp((PyObject *)getcustom(v1),
-                     (PyObject *)getcustom(v2), &result);
-    return result;
-}
-
-#else /* PY_MAJOR_VERSION <= 2 */
-
-static int pycompare(value v1, value v2)
-{
-    int result;
-
-    if (getcustom(v1) && !getcustom(v2))
-        result = -1;
-    else if (getcustom(v2) && !getcustom(v1))
-        result = 1;
-    else if (!getcustom(v1) && !getcustom(v2))
-        result = 0;
-    else if (1 == PyObject_RichCompareBool((PyObject *) getcustom(v1),
-                                      (PyObject *) getcustom(v2), Py_EQ))
-        result = 0;
-    else if (1 == PyObject_RichCompareBool((PyObject *) getcustom(v1),
-                                           (PyObject *) getcustom(v2), Py_LT))
-        result = -1;
-    else if (1 == PyObject_RichCompareBool((PyObject *) getcustom(v1),
-                                           (PyObject *) getcustom(v2), Py_GT))
-        result = 1;
-    else
-        result = -1;        /* Is there a better value to put here? */
-
-    return result;
-}
-
-#endif /* PY_MAJOR_VERSION <= 2 */
-
-static long pyhash( value v )
-{
-    if (getcustom(v))
-        return PyObject_Hash((PyObject *)getcustom(v));
-    else
-        return 0L;
-}
-
-static unsigned long pydeserialize( void *dst )
-{
-    return 0L;
-}
-
-struct custom_operations pyops =
-{
-    "PythonObject",
-    pydecref,
-    pycompare,
-    pyhash,
-    custom_serialize_default,
-    pydeserialize
-};
-
-struct custom_operations fnops =
-{
-    "FuncPointer",
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL
-};
-
-static value pywrap(PyObject *obj)
-{
-    CAMLparam0();
-    CAMLlocal1(v);
-
-    if (obj != NULL)
-        Py_INCREF(obj);
-
-    v = caml_alloc_custom( &pyops, sizeof( PyObject * ), 100, 30000000 );
-    *((PyObject **)Data_custom_val(v)) = obj;
-    CAMLreturn(v);
-}
-
-/* T.F.: we may want to pywrap in such a way that we steal the reference: */
-static value pywrap_steal( PyObject *obj )
-{
-    CAMLparam0();
-    CAMLlocal1(v);
-
-    v = caml_alloc_custom( &pyops, sizeof( PyObject * ), 100, 30000000 );
-    *((PyObject **)Data_custom_val(v)) = obj;
-    CAMLreturn(v);
-}
-
-static PyObject *
-pyunwrap( value v )
-{
-    return *((PyObject **)Data_custom_val(v));
-}
-
-#if USE_PYCAPSULE
-
-static void
-caml_destructor(PyObject *v, const char *capsule_name)
-{
-    value *valptr = (value *) PyCapsule_GetPointer(v, capsule_name);
-    caml_remove_global_root(valptr);
-    free(valptr);
-}
-
-static void
-camldestr(PyObject *v)
-{
-    caml_destructor(v, "caml-other");
-}
-
-static void
-camldestr_pill(PyObject *v)
-{
-    caml_destructor(v, "caml-pill");
-}
-
-#else /* USE_PYCAPSULE */
-
-static void
-camldestr(void *v)
-{
-    value *valptr = (value *) v;
-    /* printf("DDD camlwrap remove_global_root(0x%08x)\n",valptr);fflush(stdout); */
-    caml_remove_global_root(valptr);
-    free(v);
-}
-
-static void
-camldestr_pill(void *v, void *unused_dummy_receiving_ocamlpill_token)
-{
-    value *valptr = (value *) v;
-    /* printf("DDD camlwrap remove_global_root(0x%08x)\n",valptr);fflush(stdout); */
-    caml_remove_global_root(valptr);
-    free(v);
-}
-
-#endif /* USE_PYCAPSULE */
-
-/* T.F. Extension: the pill token is a subtle hack:
-
-   One problem is that, as it seems, there are
-   some python objects around which would be regarded as
-   being of OtherType in original PyCaml.
-
-   As these are opaque, we do not really have a good way
-   to discern them from OCaml pills, and passing such an
-   opaque value (which cannot be investigated systematically)
-   where an ocaml pill is expected is bound to result
-   in crashes (which we want to avoid).
-
-   How to get rid of this? We somehow have to be able to properly
-   identify OCaml Pills and extend the python types with CamlType.
-
-   We do this by using the PyCObject_Check to determine c-object type,
-   and abuse the closure parameter that is passed on to the destructor
-   (which can be queried independently, and actually is not used by our
-   destructor) as a token designating OCaml pills.
-
-   Barry Schwartz: PyCapsule has a name field that can be used for
-   identification, in place of the PyCObject hack described above.
-
-*/
-#if !USE_PYCAPSULE
-static const char *ocamlpill_token = "CAML";
-#endif
-
-static PyObject *
-camlwrap(value val, void *aux_str, int size)
-{
-    value *v = (value *) xmalloc(sizeof(value) + size);
-    *v = val;
-    memcpy((void *)v + sizeof(value), aux_str, size);
-    caml_register_global_root(v);
-    /* printf("DDD camlwrap caml_register_global_root(0x%08x)\n",v);fflush(stdout); */
-#if USE_PYCAPSULE
-    return PyCapsule_New(v, "caml-other", camldestr);
-#else
-    return PyCObject_FromVoidPtr(v, camldestr);
-#endif
-}
-
-static PyObject *
-camlwrap_pill(value val, void *aux_str, int size)
-{
-    value *v = (value *) xmalloc(sizeof(value) + size);
-    *v = val;
-    memcpy((void *)v + sizeof(value), aux_str, size);
-    caml_register_global_root(v);
-#if USE_PYCAPSULE
-    return PyCapsule_New(v, "caml-pill", camldestr_pill);
-#else
-    return PyCObject_FromVoidPtrAndDesc(v, (void*)ocamlpill_token, camldestr_pill);
-#endif
-}
-
-
-static void *
-caml_aux(PyObject *obj)
-{
-#if USE_PYCAPSULE
-    value *v = (value *) PyCapsule_GetPointer(obj, "caml-other");
-#else
-    value *v = (value *) PyCObject_AsVoidPtr(obj);
-#endif
-    return (void *) v + sizeof(value);
-}
-
-/*
-PyObject *pycall_callback_buggy( PyObject *obj, PyObject *args ) {
-    value out;
-    value *v;
-    
-    if( !PyCObject_Check(obj) ) {
-       Py_INCREF(Py_None);
-       return Py_None;
-    }
-    v = (value *)PyCObject_AsVoidPtr( obj );
-    out = caml_callback(*v,pywrap(args));
-    return pyunwrap(out);
-}
-*/
-
-/* T.F.: - I think the definition above is flawed...
-   Looking at the definitions of OCAML macros in memory.h,
-   this is how I suppose it should work:
-*/
-
-PyObject *pycall_callback( PyObject *obj, PyObject *args )
-{
-    CAMLparam0();
-    CAMLlocal3(ml_out, ml_func, ml_args);
-    PyObject *out;
-
-#if USE_PYCAPSULE
-    void *p = PyCapsule_GetPointer(obj, "caml-other");
-    if (p == NULL)
-        {
-          Py_INCREF(Py_None);
-          return Py_None;
-        }
-    ml_func = * (value *) p;
-#else
-    if (!PyCObject_Check(obj))
-        {
-          Py_INCREF(Py_None);
-          return Py_None;
-        }
-
-    ml_func = * (value *) PyCObject_AsVoidPtr(obj);
-#endif
-    ml_args = pywrap(args);
-    ml_out = caml_callback(ml_func, ml_args);
-    out = pyunwrap(ml_out);
-    /* T.F.:
-       The result which we have now is borrowed - most probably, 
-       there is only one reference to it which says
-       "I am reachable through the ML heap".
-       We have to properly transfer ownership, and hence
-       see that we own that reference:
-    */
-    Py_XINCREF(out);
-    CAMLreturnT(PyObject *, out);
-}
-
-/*-----------------------------------------------------------------------*/
-
-static FILE *make_FILE(int fd_int)
-{
-    int fd_duplicate;
-
-    fd_duplicate = dup(fd_int);
-    return fdopen(fd_duplicate, "r+");
-}
-
-/*-----------------------------------------------------------------------*/
-
-value pynull(value unit)
-{
-    CAMLparam1(unit);
-    CAMLreturn(pywrap(0));
-}
-
-value pynone(value unit)
-{
-    CAMLparam1(unit);
-    CAMLreturn(pywrap(Py_None));
-}
-
-value py_true(value unit)
-{
-    CAMLparam1(unit);
-    CAMLreturn(pywrap(Py_True));
-}
-
-value py_false(value unit)
-{
-    CAMLparam1(unit);
-    CAMLreturn(pywrap(Py_False));
-}
-
-/*-----------------------------------------------------------------------*/
-
-#define Type1(func)                                          \
-    CAMLprim value func##_wrapper(value unit)                \
-    {                                                        \
-        CAMLparam1(unit);                                    \
-        func();                                              \
-        CAMLreturn(Val_unit);                                \
-    }
-
-Type1(Py_Initialize)
-Type1(Py_Finalize)
-Type1(PyErr_Print)
-Type1(PyErr_Clear)
-Type1(PyImport_Cleanup)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type2(func)                                          \
-    CAMLprim value func##_wrapper(value obj)                 \
-    {                                                        \
-        CAMLparam1(obj);                                     \
-                                                             \
-        func(Int_val(obj));                                  \
-        CAMLreturn(Val_unit);                                \
-    }
-
-Type2(Py_Exit)
-Type2(PyErr_PrintEx)
-
-/*-----------------------------------------------------------------------*/
-
-#if PY_MAJOR_VERSION <= 2
-    
-#define Type3(func)                                          \
-    CAMLprim value func##_wrapper(value obj)                 \
-    {                                                        \
-        CAMLparam1(obj);                                     \
-                                                             \
-        func(String_val(obj));                               \
-        CAMLreturn(Val_unit);                                \
-    }
-
-#else
-
-#define Type3(func)                                          \
-    CAMLprim value func##_wrapper(value obj)                 \
-    {                                                        \
-        CAMLparam1(obj);                                     \
-                                                             \
-        char *s = String_val(obj);                           \
-        wchar_t *ws = copy_to_wide_string(s);                \
-        func(ws);                                            \
-        free(ws);                                            \
-        CAMLreturn(Val_unit);                                \
-    }
-
-#endif
-
-Type3(Py_SetProgramName)
-Type3(Py_SetPythonHome)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type4(func)                                          \
-    CAMLprim value func##_wrapper(value unit)                \
-    {                                                        \
-        CAMLparam1(unit);                                    \
-                                                             \
-        int result = func();                                 \
-        CAMLreturn(Val_int(result));                         \
-    }
-
-Type4(Py_IsInitialized)
-
-#if PY_MAJOR_VERSION <= 2
-Type4(PyEval_GetRestricted)
-#endif
-
-/*-----------------------------------------------------------------------*/
-
-#define Type5(func)                                          \
-    CAMLprim value func##_wrapper(value obj)                 \
-    {                                                        \
-        CAMLparam1(obj);                                     \
-                                                             \
-        int result = func(String_val(obj));                  \
-        CAMLreturn(Val_int(result));                         \
-    }
-
-Type5(PyRun_SimpleString)
-Type5(PyImport_ImportFrozenModule)
-
-/*-----------------------------------------------------------------------*/
-
-/* Perhaps these should take a wrapped (FILE*) as argument instead of
- * an integer file descriptor. */
-    
-#define Type6(func)                                          \
-    CAMLprim value func##_wrapper(value py_args)             \
-    {                                                        \
-        CAMLparam1(py_args);                                 \
-                                                             \
-        FILE *f = make_FILE(Int_val(Field(py_args, 0)));     \
-        int result = func(f, String_val(Field(py_args, 1))); \
-        fclose(f);                                           \
-        CAMLreturn(Val_int(result));                         \
-    }
-
-Type6(PyRun_AnyFile)
-Type6(PyRun_SimpleFile)
-Type6(PyRun_InteractiveOne)
-Type6(PyRun_InteractiveLoop)
-Type6(Py_FdIsInteractive)
-
-/*-----------------------------------------------------------------------*/
-
-/* Perhaps these should take a wrapped (FILE*) as argument instead of
- * an integer file descriptor. */
-    
-#define Type7(func)                                             \
-    CAMLprim value func##_wrapper(value py_args)                \
-    {                                                           \
-        CAMLparam1(py_args);                                    \
-                                                                \
-        FILE *f = make_FILE(Int_val(Field(py_args, 0)));        \
-        int result = func(f,                                    \
-                          String_val(Field(py_args, 1)),        \
-                          Int_val(Field(py_args, 2)));          \
-        fclose(f);                                              \
-        CAMLreturn(Val_int(result));                            \
-    }
-
-Type7(PyRun_AnyFileEx)
-Type7(PyRun_SimpleFileEx)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type8(func)                                          \
-    CAMLprim value func##_wrapper(value unit)                \
-    {                                                        \
-        CAMLparam1(unit);                                    \
-        CAMLreturn(caml_copy_string(func()));                \
-    }
-
-#if PY_MAJOR_VERSION <= 2
-#define Type8a Type8
-#else
-#define Type8a(func)                                           \
-    CAMLprim value func##_wrapper(value unit)                  \
-    {                                                          \
-        CAMLparam1(unit);                                      \
-        CAMLlocal1(string);                                    \
-        wchar_t *ws;                                           \
-        char *s;                                               \
-                                                               \
-        ws = func();                                           \
-        if (ws == NULL)                                        \
-            string = pynull(Val_unit);                         \
-        else                                                   \
-            {                                                  \
-                s = copy_from_wide_string(ws);                 \
-                if (s == NULL)                                 \
-                    string = pynull(Val_unit);                 \
-                else                                           \
-                    string = caml_copy_string(s);              \
-            }                                                  \
-        CAMLreturn(string);                                    \
-    }
-#endif
-
-Type8(Py_GetVersion)
-Type8(Py_GetPlatform)
-Type8(Py_GetCopyright)
-Type8(Py_GetCompiler)
-Type8(Py_GetBuildInfo)
-
-Type8a(Py_GetProgramName)
-Type8a(Py_GetPythonHome)
-Type8a(Py_GetProgramFullPath)
-Type8a(Py_GetPrefix)
-Type8a(Py_GetExecPrefix)
-Type8a(Py_GetPath)
-
-/*-----------------------------------------------------------------------*/    
-
-#define Type9(func, wrap_obj)                                   \
-    CAMLprim value func##_wrapper(value py_args)                \
-    {                                                           \
-        CAMLparam1(py_args);                                    \
-                                                                \
-        PyObject *new_obj = func(String_val(Field(py_args, 0)), \
-                                 Int_val(Field(py_args, 1)),    \
-                                 pyunwrap(Field(py_args, 2)),   \
-                                 pyunwrap(Field(py_args, 3)));  \
-        CAMLreturn(wrap_obj(new_obj));                          \
-    }
-
-Type9(PyRun_String, pywrap_steal)
-
-/*-----------------------------------------------------------------------*/
-
-/* Perhaps these should take a wrapped (FILE*) as argument instead of
- * an integer file descriptor. */
-    
-#define Type10(func, wrap_obj)                                  \
-    CAMLprim value func##_wrapper(value py_args)                \
-    {                                                           \
-        CAMLparam1(py_args);                                    \
-                                                                \
-        FILE *f = make_FILE(Int_val(Field(py_args, 0)));        \
-        PyObject *new_obj = func(f,                             \
-                                 String_val(Field(py_args, 1)), \
-                                 Int_val(Field(py_args, 2)),    \
-                                 pyunwrap(Field(py_args, 3)),   \
-                                 pyunwrap(Field(py_args, 4)));  \
-        fclose(f);                                              \
-        CAMLreturn(wrap_obj(new_obj));                          \
-    }
-
-Type10(PyRun_File, pywrap_steal)
-
-/*-----------------------------------------------------------------------*/
-
-/* Perhaps these should take a wrapped (FILE*) as argument instead of
- * an integer file descriptor. */
-    
-#define Type11(func, wrap_obj)                                  \
-    CAMLprim value func##_wrapper(value py_args)                \
-    {                                                           \
-        CAMLparam1(py_args);                                    \
-                                                                \
-        FILE *f = make_FILE(Int_val(Field(py_args, 0)));        \
-        PyObject *new_obj = func(f,                             \
-                                 String_val(Field(py_args, 1)), \
-                                 Int_val(Field(py_args, 2)),    \
-                                 pyunwrap(Field(py_args, 3)),   \
-                                 pyunwrap(Field(py_args, 4)),   \
-                                 Int_val(Field(py_args, 5)));   \
-        fclose(f);                                              \
-        CAMLreturn(wrap_obj(new_obj));                          \
-    }
-
-Type11(PyRun_FileEx, pywrap_steal)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type12(func, wrap_obj)                                  \
-    CAMLprim value func##_wrapper(value py_args)                \
-    {                                                           \
-        CAMLparam1(py_args);                                    \
-                                                                \
-        PyObject *new_obj = func(String_val(Field(py_args, 0)), \
-                                 String_val(Field(py_args, 1)), \
-                                 Int_val(Field(py_args, 2)));   \
-        CAMLreturn(wrap_obj(new_obj));                          \
-    }
-
-Type12(Py_CompileString, pywrap_steal)
-
-/*-----------------------------------------------------------------------*/
-
-/* Perhaps these should take a wrapped (FILE*) as argument instead of
- * an integer file descriptor. */
-    
-#define Type13(func)                                        \
-    CAMLprim value func##_wrapper(value py_args)            \
-    {                                                       \
-        CAMLparam1(py_args);                                \
-                                                            \
-        FILE *f = make_FILE(Int_val(Field(py_args, 1)));    \
-        int result = func(pyunwrap(Field(py_args, 0)),      \
-                          f,                                \
-                          Int_val(Field(py_args, 2)));      \
-        fclose(f);                                          \
-        CAMLreturn(Val_int(result));                        \
-    }
-
-Type13(PyObject_Print)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type_GetSlice(func, wrap_obj)                           \
-    CAMLprim value func##_wrapper(value py_args)                \
-    {                                                           \
-        CAMLparam1(py_args);                                    \
-                                                                \
-        PyObject *new_obj = func(pyunwrap(Field(py_args, 0)),   \
-                                 Int_val(Field(py_args, 1)),    \
-                                 Int_val(Field(py_args, 2)));   \
-        CAMLreturn(wrap_obj(new_obj));                          \
-    }
-
-Type_GetSlice(PySequence_GetSlice, pywrap_steal)
-Type_GetSlice(PyTuple_GetSlice, pywrap_steal)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type14(func, wrap_obj)                      \
-    CAMLprim value func##_wrapper(value obj)        \
-    {                                               \
-        CAMLparam1(obj);                            \
-                                                    \
-        PyObject *new_obj = func(pyunwrap(obj));    \
-        CAMLreturn(wrap_obj(new_obj));              \
-    }
-
-#if PY_MAJOR_VERSION <= 2
-#define Type14a(func, substitute, wrap_obj) Type14(func, wrap_obj)
-#else
-#define Type14a(func, substitute, wrap_obj)             \
-    CAMLprim value func##_wrapper(value obj)            \
-    {                                                   \
-        CAMLparam1(obj);                                \
-                                                        \
-        PyObject *new_obj = substitute(pyunwrap(obj));  \
-        CAMLreturn(wrap_obj(new_obj));                  \
-    }
-#endif    
-
-Type14(PyMethod_Function, pywrap)
-Type14(PyMethod_Self, pywrap)
-Type14(PyModule_GetDict, pywrap)
-
-#if PY_MAJOR_VERSION <= 2
-Type14(PyMethod_Class, pywrap)
-#endif
-
-Type14(PyUnicode_AsUTF8String, pywrap_steal)
-Type14(PyUnicode_AsUTF16String, pywrap_steal)
-Type14(PyUnicode_AsUTF32String, pywrap_steal)
-Type14(PyObject_Repr, pywrap_steal)
-Type14(PyImport_ReloadModule, pywrap_steal)
-Type14(PyImport_Import, pywrap_steal)
-Type14(PyObject_Str, pywrap_steal)
-Type14(PyObject_Type, pywrap_steal)
-Type14(PyDict_Keys, pywrap_steal)
-Type14(PyDict_Values, pywrap_steal)
-Type14(PyDict_Items, pywrap_steal)
-Type14(PyDict_Copy, pywrap_steal)
-Type14(PySequence_Tuple, pywrap_steal)
-Type14(PySequence_List, pywrap_steal)
-Type14(PyNumber_Long, pywrap_steal)
-Type14(PyNumber_Float, pywrap_steal)
-Type14(PyNumber_Negative, pywrap_steal)
-Type14(PyNumber_Positive, pywrap_steal)
-Type14(PyNumber_Absolute, pywrap_steal)
-Type14(PyNumber_Invert, pywrap_steal)
-Type14(PyIter_Next, pywrap_steal)
-
-Type14a(PyObject_Unicode, PyObject_Str, pywrap_steal)
-Type14a(PyNumber_Int, PyNumber_Long, pywrap_steal)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type15(func, wrap_obj)                                      \
-    CAMLprim value func##_wrapper(value py_args)                    \
-    {                                                               \
-        CAMLparam1(py_args);                                        \
-                                                                    \
-        PyObject *new_obj = func(pyunwrap(Field(py_args, 0)),       \
-                                 pyunwrap(Field(py_args, 1)),       \
-                                 Int_val(Field(py_args, 2)));       \
-        CAMLreturn(wrap_obj(new_obj));                              \
-    }
-
-Type15(PyObject_RichCompare, pywrap_steal);
-
-/*-----------------------------------------------------------------------*/
-
-#define Type16(func, wrap_obj)                                      \
-    CAMLprim value func##_wrapper(value py_args)                    \
-    {                                                               \
-        CAMLparam1(py_args);                                        \
-                                                                    \
-        PyObject *new_obj = func(pyunwrap(Field(py_args, 0)),       \
-                                 String_val(Field(py_args, 1)));    \
-        CAMLreturn(wrap_obj(new_obj));                              \
-    }
-
-Type16(PyDict_GetItemString, pywrap)
-
-Type16(PyObject_GetAttrString, pywrap_steal)
-Type16(PySequence_Fast, pywrap_steal)    
-Type16(PyMapping_GetItemString, pywrap_steal)    
-
-/*-----------------------------------------------------------------------*/
-
-#define Type17(func, wrap_obj)                                  \
-    CAMLprim value func##_wrapper(value py_args)                \
-    {                                                           \
-        CAMLparam1(py_args);                                    \
-                                                                \
-        PyObject *new_obj = func(pyunwrap(Field(py_args, 0)),   \
-                                 pyunwrap(Field(py_args, 1)));  \
-        CAMLreturn(wrap_obj(new_obj));                          \
-    }
-
-Type17(PyDict_GetItem, pywrap)
-
-Type17(PyEval_CallObject, pywrap_steal)
-
-#if PY_MAJOR_VERSION <= 2
-Type17(PyBytes_Format, pywrap_steal)
-#endif
-
-#if PY_MAJOR_VERSION <= 2
-Type17(PyInstance_NewRaw, pywrap_steal)
-#endif
-
-Type17(PySequence_Concat, pywrap_steal)
-Type17(PySequence_InPlaceConcat, pywrap_steal)
-
-Type17(PyObject_GetAttr, pywrap_steal)
-Type17(PyObject_GetItem, pywrap_steal)
-
-Type17(PyNumber_Add, pywrap_steal)
-Type17(PyNumber_Subtract, pywrap_steal)
-Type17(PyNumber_Multiply, pywrap_steal)
-Type17(PyNumber_Remainder, pywrap_steal)
-Type17(PyNumber_Divmod, pywrap_steal)
-Type17(PyNumber_TrueDivide, pywrap_steal)
-Type17(PyNumber_FloorDivide, pywrap_steal)
-
-#if PY_MAJOR_VERSION <= 2
-Type17(PyNumber_Divide, pywrap_steal)
-#endif
-
-Type17(PyNumber_Lshift, pywrap_steal)
-Type17(PyNumber_Rshift, pywrap_steal)
-Type17(PyNumber_And, pywrap_steal)
-Type17(PyNumber_Xor, pywrap_steal)
-Type17(PyNumber_Or, pywrap_steal)
-
-Type17(PyNumber_InPlaceAdd, pywrap_steal)
-Type17(PyNumber_InPlaceSubtract, pywrap_steal)
-Type17(PyNumber_InPlaceMultiply, pywrap_steal)
-Type17(PyNumber_InPlaceTrueDivide, pywrap_steal)
-Type17(PyNumber_InPlaceFloorDivide, pywrap_steal)
-Type17(PyNumber_InPlaceRemainder, pywrap_steal)
-Type17(PyNumber_InPlaceLshift, pywrap_steal)
-Type17(PyNumber_InPlaceRshift, pywrap_steal)
-Type17(PyNumber_InPlaceAnd, pywrap_steal)
-Type17(PyNumber_InPlaceXor, pywrap_steal)
-Type17(PyNumber_InPlaceOr, pywrap_steal)
-
-#if PY_MAJOR_VERSION <= 2
-Type17(PyNumber_InPlaceDivide, pywrap_steal)
-#endif
-
-/*-----------------------------------------------------------------------*/
-    
-#define Type18(func)                                            \
-    CAMLprim value func##_wrapper(value obj)                    \
-    {                                                           \
-        CAMLparam1(obj);                                        \
-                                                                \
-        int result = func(pyunwrap(obj));                       \
-        CAMLreturn(Val_int(result));                            \
-     }
-
-Type18(PyObject_IsTrue)
-Type18(PyObject_Not)
-Type18(PyCallable_Check)
-Type18(PyBytes_Size)
-Type18(PyDict_Size)
-Type18(PyTuple_Size)
-Type18(PyErr_ExceptionMatches)
-Type18(PyObject_Size)
-Type18(PyNumber_Check)
-Type18(PySequence_Check)
-Type18(PySequence_Size)
-Type18(PySequence_Length)
-Type18(PyMapping_Check)
-Type18(PyMapping_Size)
-Type18(PyMapping_Length)
-Type18(PyIter_Check)
-Type18(PyUnicode_GetSize)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type19(func)                                            \
-    CAMLprim value func##_wrapper(value py_args)                \
-    {                                                           \
-        CAMLparam1(py_args);                                    \
-                                                                \
-        int result = func(pyunwrap(Field(py_args, 0)),          \
-                          pyunwrap(Field(py_args, 1)));         \
-        CAMLreturn(Val_int(result));                            \
-    }
-
-Type19(PyObject_HasAttr)
-Type19(PyObject_DelItem)
-Type19(PyDict_DelItem)
-Type19(PyErr_GivenExceptionMatches)
-Type19(PySequence_Count)
-Type19(PySequence_Contains)
-Type19(PySequence_In)
-Type19(PySequence_Index)
-Type19(PyMapping_HasKey)
-
-#if PY_MAJOR_VERSION <= 2
-Type19(PyObject_Compare)
-#endif
-
-/*-----------------------------------------------------------------------*/
-
-#define Type20(func)                                                \
-    CAMLprim value func##_wrapper(value py_args)                    \
-    {                                                               \
-        CAMLparam1(py_args);                                        \
-                                                                    \
-        int result = func(pyunwrap(Field(py_args, 0)),              \
-                          pyunwrap(Field(py_args, 1)),              \
-                          Int_val(Field(py_args, 2)));              \
-        CAMLreturn(Val_int(result));                                \
-    }
-
-Type20(PyObject_RichCompareBool)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type21(func)                                                \
-    CAMLprim value func##_wrapper(value py_args)                    \
-    {                                                               \
-        CAMLparam1(py_args);                                        \
-                                                                    \
-        int result = func(pyunwrap(Field(py_args, 0)),              \
-                          String_val(Field(py_args, 1)),            \
-                          pyunwrap(Field(py_args, 2)));             \
-        CAMLreturn(Val_int(result));                                \
-    }
-
-Type21(PyObject_SetAttrString)
-Type21(PyDict_SetItemString)
-Type21(PyMapping_SetItemString)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type22(func)                                                    \
-    CAMLprim value func##_wrapper(value py_args)                        \
-    {                                                                   \
-        CAMLparam1(py_args);                                            \
-                                                                        \
-        int result = func(pyunwrap(Field(py_args, 0)),                  \
-                          String_val(Field(py_args, 1)));               \
-        CAMLreturn(Val_int(result));                                    \
-    }
-
-Type22(PyMapping_HasKeyString)
-Type22(PyObject_HasAttrString)
-Type22(PyDict_DelItemString)
-
-/*-----------------------------------------------------------------------*/
-
-/*
-  Type23 not implemented:
-  PyNumber_Coerce
-  PyNumber_CoerceEx
-*/
-
-/*-----------------------------------------------------------------------*/
-
-#define Type24(func)                                    \
-  CAMLprim value func##_wrapper(value py_args)          \
-  {                                                     \
-      CAMLparam1(py_args);                              \
-                                                        \
-      int result = func(pyunwrap(Field(py_args, 0)),    \
-                        pyunwrap(Field(py_args, 1)),    \
-                        pyunwrap(Field(py_args, 2)));   \
-      CAMLreturn(Val_int(result));                      \
-  }
-
-Type24(PyObject_SetAttr)
-Type24(PyObject_SetItem)
-Type24(PyDict_SetItem)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type25(func)                                        \
-      CAMLprim value func##_wrapper(value obj)              \
-      {                                                     \
-          CAMLparam1(obj);                                  \
-          CAMLreturn(copy_int64(func(pyunwrap(obj))));      \
-      }
-
-#if PY_MAJOR_VERSION <= 2
-#define Type25a(func, substitute) Type25(func)
-#else
-#define Type25a(func, substitute)                               \
-    CAMLprim value func##_wrapper(value obj)                    \
-    {                                                           \
-        CAMLparam1(obj);                                        \
-        CAMLreturn(copy_int64(substitute(pyunwrap(obj))));      \
-    }
-#endif
-
-Type25(PyObject_Hash)
-Type25a(PyInt_AsLong, PyLong_AsLong)
-/*-----------------------------------------------------------------------*/
-
-#define Type26(func, byte_type)                             \
-    CAMLprim value func##_wrapper(value obj)                \
-    {                                                       \
-        CAMLparam1(obj);                                    \
-        CAMLlocal1(string);                                 \
-                                                            \
-        byte_type *s = func(pyunwrap(obj));                 \
-        if (s == NULL)                                      \
-            string = pynull(Val_unit);                      \
-        else                                                \
-            string = caml_copy_string(s);                   \
-        CAMLreturn(string);                                 \
-    }
-
-Type26(PyBytes_AsString, char)
-Type26(PyModule_GetName, const char)
-Type26(PyModule_GetFilename, const char)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type28(func, wrap_obj)                                      \
-    CAMLprim value func##_wrapper(value obj)                        \
-    {                                                               \
-        CAMLparam1(obj);                                            \
-                                                                    \
-        PyObject *result = func(String_val(obj));                   \
-        CAMLreturn(wrap_obj(result));                               \
-    }
-
-Type28(PyImport_AddModule, pywrap)
-
-Type28(PyBytes_FromString, pywrap_steal)
-Type28(PyUnicode_FromString, pywrap_steal)
-Type28(PyModule_New, pywrap_steal)
-Type28(PyImport_ImportModule, pywrap_steal)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type29(func, wrap_obj)                                  \
-    CAMLprim value func##_wrapper(value unit)                   \
-    {                                                           \
-        CAMLparam1(unit);                                       \
-                                                                \
-        PyObject *result = func();                              \
-        CAMLreturn(wrap_obj(result));                           \
-    }
-
-Type29(PyErr_Occurred, pywrap)
-Type29(PyImport_GetModuleDict, pywrap)
-Type29(PyEval_GetBuiltins, pywrap)
-Type29(PyEval_GetGlobals, pywrap)
-Type29(PyEval_GetLocals, pywrap)
-/* Type29(PyEval_GetFrame, pywrap)  -- FIX: Should return wrapped (PyFrameObject*), not wrapped (Object*). */
-
-Type29(PyDict_New, pywrap_steal)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type30(func)                                            \
-    CAMLprim value func##_wrapper(value obj)                    \
-    {                                                           \
-        CAMLparam1(obj);                                        \
-                                                                \
-        func(pyunwrap(obj));                                    \
-        CAMLreturn(Val_unit);                                   \
-    }
-
-Type30(PyDict_Clear)
-Type30(PyErr_SetNone)
-
-/*-----------------------------------------------------------------------*/
-
-/*
-  Type31 -- currently not implemented:
-  PyDict_Next
-*/
-
-/*-----------------------------------------------------------------------*/
-
-#define Type34(func, wrap_obj)                                          \
-    CAMLprim value func##_wrapper(value obj)                            \
-    {                                                                   \
-        CAMLparam1(obj);                                                \
-                                                                        \
-        PyObject *new_obj = func(Int64_val(obj));                       \
-        CAMLreturn(wrap_obj(new_obj));                                  \
-    }
-
-#if PY_MAJOR_VERSION <= 2
-
-#define Type34a(func, substitute, wrap_obj) Type34(func, wrap_obj)
-
-#else
-
-#define Type34a(func, substitute, wrap_obj)                             \
-    CAMLprim value func##_wrapper(value obj)                            \
-    {                                                                   \
-        CAMLparam1(obj);                                                \
-                                                                        \
-        PyObject *new_obj = substitute(Int64_val(obj));                 \
-        CAMLreturn(wrap_obj(new_obj));                                  \
-    }
-
-#endif
-
-Type34a(PyInt_FromLong, PyLong_FromLong, pywrap_steal)
-
-/*-----------------------------------------------------------------------*/
-        
-#define Type35(func)                                                    \
-    CAMLprim value func##_wrapper(value unit)                           \
-    {                                                                   \
-        CAMLparam1(unit);                                               \
-        CAMLreturn(copy_int64(func()));                                 \
-    }
-
-#if PY_MAJOR_VERSION <= 2
-Type35(PyInt_GetMax)
-#endif
-
-Type35(PyImport_GetMagicNumber)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type36(func, wrap_obj)                                          \
-    CAMLprim value func##_wrapper(value obj)                            \
-    {                                                                   \
-        CAMLparam1(obj);                                                \
-                                                                        \
-        PyObject *new_obj = func(Double_val(obj));                      \
-        CAMLreturn(wrap_obj(new_obj));                                  \
-    }
-
-Type36(PyFloat_FromDouble, pywrap_steal)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type37(func)                                                    \
-    CAMLprim value func##_wrapper(value obj)                            \
-    {                                                                   \
-        CAMLparam1(obj);                                                \
-        CAMLreturn(copy_double(func(pyunwrap(obj))));                   \
-    }
-
-Type37(PyFloat_AsDouble)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type39(func, wrap_obj)                                          \
-    CAMLprim value func##_wrapper(value obj)                            \
-    {                                                                   \
-        CAMLparam1(obj);                                                \
-                                                                        \
-        PyObject *new_obj = func(Int_val(obj));                         \
-        CAMLreturn(wrap_obj(new_obj));                                  \
-    }
-
-Type39(PyTuple_New, pywrap_steal);
-
-/*-----------------------------------------------------------------------*/
-
-#define Type40(func, wrap_obj)                                          \
-    CAMLprim value func##_wrapper(value py_args)                        \
-    {                                                                   \
-        CAMLparam1(py_args);                                            \
-                                                                        \
-        PyObject *new_obj = func(pyunwrap(Field(py_args, 0)),           \
-                                 Int_val(Field(py_args, 1)));           \
-        CAMLreturn(wrap_obj(new_obj));                                  \
-    }
-
-Type40(PyTuple_GetItem, pywrap)
-
-Type40(PySequence_InPlaceRepeat, pywrap_steal)
-Type40(PySequence_Repeat, pywrap_steal)
-Type40(PySequence_GetItem, pywrap_steal)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type40b(func)                                                   \
-    CAMLprim value func##_wrapper(value py_args)                        \
-    {                                                                   \
-        CAMLparam1(py_args);                                            \
-                                                                        \
-        int result = func(pyunwrap(Field(py_args, 0)),                  \
-                          Int_val(Field(py_args, 1)));                  \
-        CAMLreturn(Val_int(result));                                    \
-    }
-
-Type40b(PySequence_DelItem)
-
-/*-----------------------------------------------------------------------*/
-
-/* |do_steal| here means: "do we steal the arg[2] reference (which is
-   an OCaml reference)?"  If our function is stealing, we first have
-   to get a reference. */
-
-#define Type41(func, do_steal)                                          \
-    CAMLprim value func##_wrapper(value py_args)                        \
-    {                                                                   \
-        CAMLparam1(py_args);                                            \
-                                                                        \
-        PyObject *x = pyunwrap(Field(py_args, 2));                      \
-        if (do_steal)                                                   \
-            Py_INCREF(x);                                               \
-        CAMLreturn(Val_int(func(pyunwrap(Field(py_args, 0)),            \
-                                Int_val(Field(py_args, 1)),             \
-                                x)));                                   \
-    }
-
-
-Type41(PySequence_SetItem, 0)
-
-Type41(PyTuple_SetItem, 1)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type42(func, wrap_obj)                                  \
-    CAMLprim value func##_wrapper(value py_args)                \
-    {                                                           \
-        CAMLparam1(py_args);                                    \
-                                                                \
-        PyObject *new_obj = func(pyunwrap(Field(py_args, 0)),   \
-                                 pyunwrap(Field(py_args, 1)),   \
-                                 pyunwrap(Field(py_args, 2)));  \
-        CAMLreturn(wrap_obj(new_obj));                          \
-    }
-
-#if PY_MAJOR_VERSION <= 2
-#define Type42a Type42
-#else
-#define Type42a(func, wrap_obj)                                 \
-    CAMLprim value func##_wrapper(value py_args)                \
-    {                                                           \
-        CAMLparam1(py_args);                                    \
-                                                                \
-        PyObject *new_obj = func(pyunwrap(Field(py_args, 0)),   \
-                                 pyunwrap(Field(py_args, 2)));  \
-        CAMLreturn(wrap_obj(new_obj));                          \
-    }
-#endif
-
-Type42(PySlice_New, pywrap_steal)
-Type42(PyEval_CallObjectWithKeywords, pywrap_steal)
-Type42(PyNumber_Power, pywrap_steal)
-Type42(PyNumber_InPlacePower, pywrap_steal)
-
-#if PY_MAJOR_VERSION <= 2
-Type42(PyClass_New, pywrap_steal)
-Type42(PyInstance_New, pywrap_steal)
-#else
-/* Calls the builtin-function: type(name,bases,dict), with the
- * name of the class, tuples of parent names, and dictionary
- * with initializations of fields.
- */
-CAMLprim value PyClass_New_wrapper(value py_args)
-{
-  CAMLparam1(py_args);
-  PyObject *bases = pyunwrap(Field(py_args, 0));
-  PyObject *dict = pyunwrap(Field(py_args, 1));
-  PyObject *name = pyunwrap(Field(py_args, 2));
-  PyObject *new_obj = 
-    PyObject_CallFunctionObjArgs
-    ( (PyObject *) &PyType_Type, name, bases, dict, NULL);
-  CAMLreturn(pywrap_steal(new_obj));
-}
-#endif
-
-Type42a(PyMethod_New, pywrap_steal)
-
-/*-----------------------------------------------------------------------*/
-
-/*
-Type43(PySlice_GetIndices) <-- Not supported in this version.
-*/
-
-/*-----------------------------------------------------------------------*/
-
-#define Type45(func)                                            \
-    CAMLprim value func##_wrapper(value py_args)                \
-    {                                                           \
-        CAMLparam1(py_args);                                    \
-                                                                \
-        func(pyunwrap(Field(py_args, 0)),                       \
-             pyunwrap(Field(py_args, 1)));                      \
-        CAMLreturn(Val_unit);                                   \
-    }
-
-Type45(PyErr_SetObject)
-
-/*-----------------------------------------------------------------------*/
-        
-#define Type46(func)                                            \
-    CAMLprim value func##_wrapper(value py_args)                \
-    {                                                           \
-        CAMLparam1(py_args);                                    \
-                                                                \
-        func(pyunwrap(Field(py_args, 0)),                       \
-             String_val(Field(py_args, 1)));                    \
-        CAMLreturn(Val_unit);                                   \
-    }
-
-Type46(PyErr_SetString)
-
-/*-----------------------------------------------------------------------*/
-    
-#define Type47(func, wrap_obj)                                          \
-    CAMLprim value func##_wrapper(value py_args)                        \
-    {                                                                   \
-        CAMLparam1(py_args);                                            \
-        CAMLlocal1(result);                                             \
-                                                                        \
-        PyObject *obj1 = pyunwrap(Field(py_args, 0));                   \
-        PyObject *obj2 = pyunwrap(Field(py_args, 1));                   \
-        PyObject *obj3 = pyunwrap(Field(py_args, 2));                   \
-        func(&obj1, &obj2, &obj3);                                      \
-        result = caml_alloc_tuple(3);                                   \
-        Store_field(result, 0, wrap_obj(obj1));                         \
-        Store_field(result, 1, wrap_obj(obj2));                         \
-        Store_field(result, 2, wrap_obj(obj3));                         \
-        CAMLreturn(result);                                             \
-    }
-
-Type47(PyErr_Fetch, pywrap_steal)
-Type47(PyErr_NormalizeException, pywrap_steal)
-
-  /*-----------------------------------------------------------------------*/
-
-#define Type48(func)                            \
-  CAMLprim value func##_wrapper(value py_args)  \
-  {                                             \
-      CAMLparam1(py_args);                      \
-                                                \
-      func(pyunwrap(Field(py_args, 0)),         \
-           pyunwrap(Field(py_args, 1)),         \
-           pyunwrap(Field(py_args, 2)));        \
-      CAMLreturn(Val_unit);                     \
-  }
-
-Type48(PyErr_Restore)
-
-/*-----------------------------------------------------------------------*/
-
-
-#define Type49(func, wrap_obj)                                      \
-      CAMLprim value func##_wrapper(value py_args)                  \
-      {                                                             \
-          CAMLparam1(py_args);                                      \
-                                                                    \
-          PyObject *result = func(String_val(Field(py_args, 0)),    \
-                                  pyunwrap(Field(py_args, 1)));     \
-          CAMLreturn(wrap_obj(result));                             \
-      }
-
-Type49(PyImport_ExecCodeModule, pywrap_steal)      
-
-/*-----------------------------------------------------------------------*/
-
-#define Type50(func, wrap_obj)                                      \
-      CAMLprim value func##_wrapper(value py_args)                  \
-      {                                                             \
-          CAMLparam1(py_args);                                      \
-                                                                    \
-          PyObject *result = func(String_val(Field(py_args, 0)),    \
-                                  pyunwrap(Field(py_args, 1)),      \
-                                  String_val(Field(py_args, 2)));   \
-          CAMLreturn(wrap_obj(result));                             \
-      }
-
-Type50(PyImport_ExecCodeModuleEx, pywrap_steal)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type51(func, wrap_obj)                                      \
-      CAMLprim value func##_wrapper(value py_args)                  \
-      {                                                             \
-          CAMLparam1(py_args);                                      \
-                                                                    \
-          PyObject *result = func(String_val(Field(py_args, 0)),    \
-                                  pyunwrap(Field(py_args, 1)),      \
-                                  pyunwrap(Field(py_args, 2)),      \
-                                  pyunwrap(Field(py_args, 3)));     \
-          CAMLreturn(wrap_obj(result));                             \
-      }
-
-Type51(PyImport_ImportModuleEx, pywrap_steal)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type52(func, byte_type)                                 \
-      CAMLprim value func##_wrapper(value obj)                  \
-      {                                                         \
-          CAMLparam1(obj);                                      \
-          CAMLlocal1(string);                                   \
-                                                                \
-          int return_val;                                       \
-          byte_type *buffer;                                    \
-          Py_ssize_t length;                                    \
-                                                                \
-          return_val = func(pyunwrap(obj), &buffer, &length);   \
-          if (return_val == -1) {                               \
-              string = pynull(Val_unit);                        \
-          } else {                                              \
-              string = caml_alloc_string(length);               \
-              memcpy(String_val(string), buffer, length);       \
-          }                                                     \
-          CAMLreturn(string);                                   \
-      }
-
-      Type52(PyBytes_AsStringAndSize, char)
-      Type52(PyObject_AsCharBuffer, const char)
-      Type52(PyObject_AsReadBuffer, const void)
-      Type52(PyObject_AsWriteBuffer, void)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type53(func)                                        \
-      CAMLprim value func##_wrapper(value py_args)          \
-      {                                                     \
-          CAMLparam1(py_args);                              \
-                                                            \
-          int result = func(pyunwrap(Field(py_args, 0)),    \
-                            Int_val(Field(py_args, 1)),     \
-                            Int_val(Field(py_args, 2)),     \
-                            pyunwrap(Field(py_args, 3)));   \
-          CAMLreturn(Val_int(result));                      \
-      }
-
-      Type53(PySequence_SetSlice)
-
-/*-----------------------------------------------------------------------*/
-
-#define Type54(func)                                        \
-      CAMLprim value func##_wrapper(value py_args)          \
-      {                                                     \
-          CAMLparam1(py_args);                              \
-                                                            \
-          int result = func(pyunwrap(Field(py_args, 0)),    \
-                            Int_val(Field(py_args, 1)),     \
-                            Int_val(Field(py_args, 2)));    \
-          CAMLreturn(Val_int(result));                      \
-      }
-
-      Type54(PySequence_DelSlice)
-
-/*-----------------------------------------------------------------------*/
-
-#define TypeUTF8Decoder(func, wrap_obj)                                 \
-    CAMLprim value func##_wrapper(value py_args)                        \
-    {                                                                   \
-        CAMLparam1(py_args);                                            \
-                                                                        \
-        PyObject *result;                                               \
-                                                                        \
-        char *utf8 = String_val(Field(py_args, 0));                     \
-        Py_ssize_t utf8_length = caml_string_length(Field(py_args, 0)); \
-                                                                        \
-        if (Field(py_args, 1) == Val_int(0))                            \
-            result = func(utf8, utf8_length, NULL);                     \
-        else                                                            \
-            result = func(utf8, utf8_length,                            \
-                          String_val(Field(Field(py_args, 1), 0)));     \
-        CAMLreturn(wrap_obj(result));                                   \
-    }
-
-TypeUTF8Decoder(PyUnicode_DecodeUTF8, pywrap_steal)
-
-/*-----------------------------------------------------------------------*/
-
-#define TypeUTF16Decoder(func, wrap_obj)                                \
-    CAMLprim value func##_wrapper(value py_args)                        \
-    {                                                                   \
-        CAMLparam1(py_args);                                            \
-                                                                        \
-        PyObject *result;                                               \
-        char *errors;                                                   \
-                                                                        \
-        char *s = String_val(Field(py_args, 0));                        \
-        Py_ssize_t s_length = caml_string_length(Field(py_args, 0));    \
-                                                                        \
-        if (Field(py_args, 1) == Val_int(0))                            \
-            errors = NULL;                                              \
-        else                                                            \
-            errors = String_val(Field(Field(py_args, 1), 0));           \
-                                                                        \
-        if (Field(py_args, 2) == Val_int(0))                            \
-            result = func(s, s_length, errors, NULL);                   \
-        else {                                                          \
-            int byteorder = Int_val(Field(Field(py_args, 2), 0));       \
-            result = func(s, s_length, errors, &byteorder);             \
-        }                                                               \
-                                                                        \
-        CAMLreturn(wrap_obj(result));                                   \
-    }
-
-TypeUTF16Decoder(PyUnicode_DecodeUTF16, pywrap_steal)
-TypeUTF16Decoder(PyUnicode_DecodeUTF32, pywrap_steal)
-
-/*-----------------------------------------------------------------------*/
-
-CAMLprim value PyUnicode_FromUnicode_wrapper(value closure, value length)
-{
-    CAMLparam2(closure, length);
-    CAMLlocal2(index, val); /* We need named intermediate values for
-                             * garbage collection. */
-
-    Py_ssize_t len = Int_val(length);
-    Py_ssize_t i;
-    PyObject *result;
-
-    result = PyUnicode_FromUnicode(NULL, len);
-    if (result != NULL) {
-        Py_UNICODE *p = PyUnicode_AS_UNICODE(result);
-        for (i = 0; i < len; i++) {
-            index = Val_int(i);
-            val = caml_callback(closure, index);
-            p[i] = Int_val(val) & 0x7FFFFFFF;
-        }
-    }
-
-    CAMLreturn(pywrap_steal(result));
-}
-
-CAMLprim value PyUnicode_AsUnicode_wrapper(value uni)
-{
-    CAMLparam1(uni);
-    CAMLlocal1(result);
-
-    PyObject *py_uni = pyunwrap(uni);
-    Py_UNICODE *p = PyUnicode_AsUnicode(py_uni);
-
-    if (p != NULL) {
-        Py_ssize_t len = PyUnicode_GET_SIZE(py_uni);
-        Py_ssize_t i;
-
-        result = caml_alloc(len, 0);
-        for (i = 0; i < len; i++)
-            Store_field(result, i, Val_int(p[i]));
-    }
-
-    CAMLreturn(result);
-}
-
-/*-----------------------------------------------------------------------*/
-
-/* Value -> Pyobject */
-
-value pywrapvalue( value cb ) {
-    CAMLparam1(cb);
-    CAMLreturn(pywrap_steal(camlwrap(cb,NULL,0)));
-    /* T.F.: camlwrap already gives us a reference. We steal that. */
-}
-
-/* For pills, we use an extension: */
-value pywrapvalue_pill( value cb ) {
-    CAMLparam1(cb);
-    CAMLreturn(pywrap_steal(camlwrap_pill(cb,NULL,0)));
-}
-
-
-value pycaml_seterror(value ml_err,value ml_str)
-{
-  CAMLparam2(ml_err,ml_str);
-  PyObject *err;
-  int nr_err;
-
-  nr_err=Int_val(ml_err);
-
-  switch(nr_err) {
-      case 0:
-          err=PyExc_Exception;
-          break;
-      case 1:
-#if PY_MAJOR_VERSION <= 2
-          err=PyExc_StandardError;
-          break;
-#else
-          /* PyExc_StandardError is obsolete. Maybe it would be better
-           * to raise an OCaml exception. */
-          err=PyExc_Exception;
-          break;
-#endif
-      case 2:
-          err=PyExc_ArithmeticError;
-          break;
-      case 3:
-          err=PyExc_LookupError;
-          break;
-      case 4:
-          err=PyExc_AssertionError;
-          break;
-      case 5:
-          err=PyExc_AttributeError;
-          break;
-      case 6:
-          err=PyExc_EOFError;
-          break;
-      case 7:
-          err=PyExc_EnvironmentError;
-          break;
-      case 8:
-          err=PyExc_FloatingPointError;
-          break;
-      case 9:
-          err=PyExc_IOError;
-          break;
-      case 10:
-          err=PyExc_ImportError;
-          break;
-      case 11:
-          err=PyExc_IndexError;
-          break;
-      case 12:
-          err=PyExc_KeyError;
-          break;
-      case 13:
-          err=PyExc_KeyboardInterrupt;
-          break;
-      case 14:
-          err=PyExc_MemoryError;
-          break;
-      case 15:
-          err=PyExc_NameError;
-          break;
-      case 16:
-          err=PyExc_NotImplementedError;
-          break;
-      case 17:
-          err=PyExc_OSError;
-          break;
-      case 18:
-          err=PyExc_OverflowError;
-          break;
-      case 19:
-          err=PyExc_ReferenceError;
-          break;
-      case 20:
-          err=PyExc_RuntimeError;
-          break;
-      case 21:
-          err=PyExc_SyntaxError;
-          break;
-      case 22:
-          err=PyExc_SystemExit;
-          break;
-      case 23:
-          err=PyExc_TypeError;
-          break;
-      case 24:
-          err=PyExc_ValueError;
-          break;
-      case 25:
-          err=PyExc_ZeroDivisionError;
-          break;
-      default:
-          /* Maybe it would be better here to raise an OCaml
-           * exception. */
-#if PY_MAJOR_VERSION <= 2
-          err=PyExc_StandardError;
-#else
-          err=PyExc_Exception;
-#endif
-  }
-
-  PyErr_SetString(err,String_val(ml_str));
-  CAMLreturn(Val_unit);
-}
-
-value pyunwrapvalue(value cb)
-{
-    CAMLparam1(cb);
-    value *v;
-#if USE_PYCAPSULE
-    v = (value *) PyCapsule_GetPointer(pyunwrap(cb), "caml-pill");
-    if (v == NULL)
-        v = (value *) PyCapsule_GetPointer(pyunwrap(cb), "caml-other");
-#else
-    v = (value *) PyCObject_AsVoidPtr(pyunwrap(cb));
-#endif
-    CAMLreturn(*v);
-}
-
-/* Create the function table */
-
-typedef struct _python_func_table {
-    void *func;
-    int format;
-    int steal_result;
-    char *desc;
-} python_func_table;
-
-int PyRun_SimpleString_(const char *command)
-{
-    return PyRun_SimpleStringFlags(command, NULL);
-}
-
-int PyRun_SimpleFile_(FILE *fp, const char *filename)
-{
-    return PyRun_SimpleFileExFlags(fp, filename, 0, NULL);
-}
-
-int PyRun_AnyFile_(FILE *fp, const char *filename)
-{
-    return PyRun_AnyFileExFlags(fp, filename, 0, NULL);
-}
-
-int PyRun_InteractiveOne_(FILE *fp, const char *filename)
-{
-    return PyRun_InteractiveOneFlags(fp, filename, NULL);
-}
-
-int PyRun_InteractiveLoop_(FILE *fp, const char *filename)
-{
-    return PyRun_InteractiveLoopFlags(fp, filename, NULL);
-}
-
-int PyRun_AnyFileEx_(FILE *fp, const char *filename, int closeit)
-{
-    return PyRun_AnyFileExFlags(fp, filename, closeit, NULL);
-}
-
-int PyRun_SimpleFileEx_(FILE *fp, const char *filename, int closeit)
-{
-    return PyRun_SimpleFileExFlags(fp, filename, closeit, NULL);
-}
-
-PyObject* PyRun_String_(const char *str, int start, PyObject *globals, PyObject *locals)
-{
-    return PyRun_StringFlags(str, start, globals, locals, NULL);
-}
-
-PyObject* PyRun_File_(FILE *fp, const char *filename, int start, PyObject *globals, PyObject *locals)
-{
-    return PyRun_FileExFlags(fp, filename, start, globals, locals, 0, NULL);
-}
-
-PyObject* PyRun_FileEx_(FILE *fp, const char *filename, int start, PyObject *globals, PyObject *locals, int closeit)
-{
-    return PyRun_FileExFlags(fp, filename, start, globals, locals, closeit, NULL);
-}
-
-PyObject* Py_CompileString_(const char *str, const char *filename, int start)
-{
-    return Py_CompileStringFlags(str, filename, start, NULL);
-}
-
-PyObject* PyImport_ImportModuleEx_(char *name, PyObject *globals, PyObject *locals, PyObject *fromlist)
-{
-    return PyImport_ImportModuleLevel(name, globals, locals, fromlist, -1);
-}
-
-enum PycamlTypeLabels { 
-    TupleType = 0,
-    BytesType,
-    UnicodeType,
-    BoolType,
-    IntType,
-    FloatType,
-    ListType,
-    NoneType,
-    CallableType,
-    ModuleType,
-    ClassType,
-    TypeType,
-    DictType,
-    NullType,
-    CamlpillType,
-    OtherType,
-    EitherStringType, /* Signifies that either of BytesType or UnicodeType is allowed. */
-    CamlpillSubtype, /* Signifies that only the particular Camlpill variety is allowed. */
-    AnyType          /* Allow any python object. */
-};
-
-value pytype( value obj ) {
-    CAMLparam1(obj);
-    PyObject *pobj = pyunwrap( obj );
-    if( !pobj ) CAMLreturn(NullType);
-    else if( PyTuple_Check( pobj ) ) CAMLreturn(Val_int(TupleType));
-    else if( PyBytes_Check( pobj ) ) CAMLreturn(Val_int(BytesType));
-    else if( PyUnicode_Check( pobj ) ) CAMLreturn(Val_int(UnicodeType));
-    else if( PyBool_Check( pobj ) ) CAMLreturn(Val_int(BoolType));
-#if PY_MAJOR_VERSION <= 2
-    else if( PyInt_Check( pobj ) ) CAMLreturn(Val_int(IntType));
-#else
-    else if( PyLong_Check( pobj ) ) CAMLreturn(Val_int(IntType));
-#endif
-    else if( PyFloat_Check( pobj ) ) CAMLreturn(Val_int(FloatType));
-    else if( PyList_Check( pobj ) ) CAMLreturn(Val_int(ListType));
-    else if( pobj == Py_None ) CAMLreturn(Val_int(NoneType));
-    else if( PyCallable_Check( pobj ) ) CAMLreturn(Val_int(CallableType));
-    else if( PyModule_Check( pobj ) ) CAMLreturn(Val_int(ModuleType));
-#if PY_MAJOR_VERSION <= 2
-    else if( PyClass_Check( pobj ) ) CAMLreturn(Val_int(ClassType));
-#endif
-    else if( PyType_Check( pobj ) ) CAMLreturn(Val_int(TypeType));
-    else if( PyDict_Check( pobj ) ) CAMLreturn(Val_int(DictType));
-#if USE_PYCAPSULE
-    else if (PyCapsule_IsValid(pobj, "caml-pill"))
-        CAMLreturn(Val_int(CamlpillType));
-#else /* USE_PYCAPSULE */
-    else if (PyCObject_Check(pobj))
-      {
-          void *desc = PyCObject_GetDesc(pobj);
-          if (desc == (void *) ocamlpill_token)
-                  CAMLreturn(Val_int(CamlpillType));
-          else
-                  CAMLreturn(Val_int(OtherType));
-      }
-#endif /* USE_PYCAPSULE */
-    else
-        CAMLreturn(Val_int(OtherType));
-}
-
-value pytuple_fromarray( value array ) {
-    CAMLparam1(array);
-    PyObject *tuple = PyTuple_New(Wosize_val(array));
-    int i;
-    int x;
-
-    for( i = 0; i < Wosize_val(array); i++ )
-      {
-       PyObject *entry;
-       entry=pyunwrap(Field(array,i));
-       /* T.F.:
-          entry's reference count was increased by one because it is visible
-          from within OCaml (and OCaml's GC will take care of decreasing
-          this again upon finalization. But now, we do add another use to
-          entry. So, we have to increase its reference count manually:
-
-          Note that even if tuple contained some python value before
-          (which it does not), we do not have to Py_DECREF the
-          reference count on the old entry, as the PyTuple_SetItem/PyList_SetItem
-          does this of its own! Nice, isn't it?
-       */
-       Py_INCREF(entry);
-       x = PyTuple_SetItem(tuple,i,entry);
-      }
-
-    CAMLreturn(pywrap_steal(tuple));
-}
-
-value pytuple_toarray( value array ) {
-    CAMLparam1(array);
-    PyObject *obj = pyunwrap(array);
-    int i;
-    CAMLlocal1(rv);
-
-    rv = caml_alloc_tuple(PySequence_Size(obj));
-    /* XXX T.F.: actually, using caml_alloc_tuple to get an array is not overly aesthetic... */
-
-    for (i = 0; i < PySequence_Size(obj); i++)
-       Store_field(rv, i, pywrap_steal(PySequence_GetItem(obj, i)));
-
-    CAMLreturn(rv);
-}
-
-value pywrap_closure( value closure ) {
-    CAMLparam1(closure);
-    PyMethodDef ml;
-    PyObject *obj;
-    PyMethodDef *ml_def;
-    ml.ml_name = "anonymous_closure";
-    ml.ml_meth = pycall_callback;
-    ml.ml_flags = 1;
-    ml.ml_doc = "Anonymous closure";
-    obj = camlwrap(closure, &ml, sizeof(ml));
-    ml_def = (PyMethodDef *) caml_aux(obj);
-    CAMLreturn(pywrap_steal(PyCFunction_New(ml_def, obj)));
-}
-
-/*
-value pymodule_initmodule( value name, value funclist ) { ... }
-Removed by T.F., as this piece of code seemed quite buggy....
-*/
-
-/* -- T.F. Extensions -- */
-
-/*
-  In case of "You used it the wrong way" or "this should not happen",
-  we want to be able to just bailout from python into ocaml with an
-  exception.
-
-
-  Note: this is not being used, as we decided to do error handling the
-  other way round: python is in charge, ocaml lies "beneath the surface",
-  so we effectively always bailout into python.
- */
-
-#if 0
-static int pycaml_raise_error(int type, char *message)
-{
-  CAMLlocal1(ex);
-  ex=caml_alloc_tuple(3);
-  Store_field(ex,0,Val_int(type));
-  Store_field(ex,1,caml_copy_string(message));
-  raise_with_arg(*caml_named_value("ocaml_exn_pycaml"),ex);
-}
-#endif
-
-/* This is just an adjusted copy of pytuple_fromarray. */
-value pylist_fromarray( value array ) {
-    CAMLparam1(array);
-    PyObject *list = PyList_New(Wosize_val(array));
-    int i;
-    int x;
-
-    for( i = 0; i < Wosize_val(array); i++ )
-      {
-       PyObject *entry;
-       entry=pyunwrap(Field(array,i));
-       /* T.F.: See pytuple_fromarray code comments! */
-       Py_INCREF(entry);
-       x = PyList_SetItem(list,i,entry);
-      }
-    CAMLreturn(pywrap_steal(list));
-}
-
-/* We also need it the other way round */
-value pylist_toarray( value pylist ) {
-    CAMLparam1(pylist);
-    PyObject *obj = pyunwrap(pylist);
-    int i,len;
-    CAMLlocal1(rv);
-
-    rv = caml_alloc_tuple( PySequence_Size(obj) );
-
-    len=PySequence_Size(obj);
-
-    for( i = 0; i < len; i++ )
-       Store_field(rv,i,pywrap_steal(PySequence_GetItem(obj,i)));
-
-    CAMLreturn(rv);
-}
-
-value pylist_set( value pylist, value index, value v ) {
-  CAMLparam3(pylist,index,v);
-  PyObject *list, *new_entry;
-  
-  list = pyunwrap(pylist);
-  new_entry=pyunwrap(v);
-  Py_INCREF(new_entry);
-  PyList_SetItem(list,Int_val(index),new_entry);
-  
-  CAMLreturn(Val_unit);
-}
-
-value pylist_get( value pylist, value index) {
-  CAMLparam2(pylist,index);
-  PyObject *list = pyunwrap(pylist);
-  
-  /* T.F.: According to the Python docs, we own the reference produced by
-     PySequence_GetItem. Hence, we have to steal that reference...
-   */
-  CAMLreturn(pywrap_steal(PySequence_GetItem(list,Int_val(index))));
-}
-
-
-
-/* It's nice to have this variant of pywrap_closure */
-value pywrap_closure_docstring(value docstring, value closure) {
-  CAMLparam2(docstring, closure);
-  PyMethodDef ml;
-  PyObject *obj;
-  PyMethodDef *ml_def;
-  ml.ml_name = "anonymous_closure";
-  ml.ml_meth = pycall_callback;
-  ml.ml_flags = 1;
-  ml.ml_doc = String_val(docstring);
-  obj = camlwrap(closure,&ml,sizeof(ml));
-  ml_def = (PyMethodDef *) caml_aux(obj);
-  CAMLreturn(pywrap_steal(PyCFunction_New(ml_def,obj)));
-}
-
-/* Using pyrun_interactiveloop the way it was in the original code
-   may work on some systems, but then just by chance. We have to
-   do this in a cleaner way:
- */
-value pycaml_prompt(value ml_unit) {
-  CAMLparam1(ml_unit);
-  
-  PyRun_InteractiveLoop(stdin,"<stdin>");
-
-  CAMLreturn(Val_unit);
-}
-
-
-/* The function below is highly useful for debugging! */
-value pyrefcount(value pyobj) {
-  CAMLparam1(pyobj);
-  PyObject *obj = pyunwrap(pyobj);
-  
-  CAMLreturn(Val_int(obj->ob_refcnt));
-}
diff --git a/bundles/pycaml/chemoelectric-pycaml-8614105/pycaml_stubs.h b/bundles/pycaml/chemoelectric-pycaml-8614105/pycaml_stubs.h
deleted file mode 100644 (file)
index 8cc81e5..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-/* (C) 2005 Dr. Thomas Fischbacher */
-
-/* Provide C stub error codes that match the type pycaml_error definition
-   in pycaml.ml
- */
-
-#define ERR_PYCAML_ALLOC_FAILED 0
-#define ERR_PYCAML_BAD_PARAMETERS 1
-#define ERR_PYCAML_WEIRD 2
diff --git a/bundles/pycaml/pyunicodeapichanges-fix.patch b/bundles/pycaml/pyunicodeapichanges-fix.patch
new file mode 100644 (file)
index 0000000..832fbc1
--- /dev/null
@@ -0,0 +1,40 @@
+diff -ru ./chemoelectric-pycaml-8614105/pycaml.ml ./pyunicodeapichanges/pycaml.ml
+--- chemoelectric-pycaml-8614105/pycaml.ml     2012-06-19 11:37:41.480033019 +0200
++++ pyunicodeapichanges/pycaml.ml      2012-06-19 11:34:42.464040503 +0200
+@@ -434,15 +434,6 @@
+ (* TypeUTF8Decoder *)
+ external pyunicode_decodeutf8 : (string * string option) -> pyobject = "PyUnicode_DecodeUTF8_wrapper"
+-(* TypeUTF16Decoder *)
+-external pyunicode_decodeutf16 : (string * string option * int option) -> pyobject = "PyUnicode_DecodeUTF16_wrapper"
+-external pyunicode_decodeutf32 : (string * string option * int option) -> pyobject = "PyUnicode_DecodeUTF32_wrapper"
+-
+-(*-----------------------------------------------------------------------*)
+-
+-external pyunicode_fromunicode : (int -> int) -> int -> pyobject = "PyUnicode_FromUnicode_wrapper"
+-external pyunicode_asunicode   : pyobject -> int array = "PyUnicode_AsUnicode_wrapper"
+-
+ (*-----------------------------------------------------------------------*)
+ external pytuple_fromarray : pyobject array -> pyobject = "pytuple_fromarray"
+diff -ru ./chemoelectric-pycaml-8614105/pycaml_stubs.c ./pyunicodeapichanges/pycaml_stubs.c
+--- chemoelectric-pycaml-8614105/pycaml_stubs.c        2012-06-19 11:37:41.481033018 +0200
++++ pyunicodeapichanges/pycaml_stubs.c 2012-06-19 11:34:42.463040503 +0200
+@@ -1532,7 +1532,7 @@
+ TypeUTF8Decoder(PyUnicode_DecodeUTF8, pywrap_steal)
+ /*-----------------------------------------------------------------------*/
+-
++#if 0
+ #define TypeUTF16Decoder(func, wrap_obj)                                \
+     CAMLprim value func##_wrapper(value py_args)                        \
+     {                                                                   \
+@@ -1606,7 +1606,7 @@
+     CAMLreturn(result);
+ }
+-
++#endif
+ /*-----------------------------------------------------------------------*/
+ /* Value -> Pyobject */
diff --git a/bundles/pycaml/removeunicode.patch b/bundles/pycaml/removeunicode.patch
new file mode 100644 (file)
index 0000000..f9b53f4
--- /dev/null
@@ -0,0 +1,186 @@
+diff -ru /tmp/chemoelectric-pycaml-8614105/pycaml.ml ./chemoelectric-pycaml-8614105/pycaml.ml
+--- /tmp/chemoelectric-pycaml-8614105/pycaml.ml        2011-10-01 02:05:57.000000000 +0200
++++ ./chemoelectric-pycaml-8614105/pycaml.ml   2012-06-24 14:00:29.004094271 +0200
+@@ -178,9 +178,11 @@
+ external pymethod_class : pyobject -> pyobject = "PyMethod_Class_wrapper"
+ END
+ external pymodule_getdict : pyobject -> pyobject = "PyModule_GetDict_wrapper"
++IFDEF PYMAJOR3 THEN
+ external pyunicode_asutf8string : pyobject -> pyobject = "PyUnicode_AsUTF8String_wrapper"
+ external pyunicode_asutf16string : pyobject -> pyobject = "PyUnicode_AsUTF16String_wrapper"
+ external pyunicode_asutf32string : pyobject -> pyobject = "PyUnicode_AsUTF32String_wrapper"
++END
+ external pyobject_repr : pyobject -> pyobject = "PyObject_Repr_wrapper"
+ external pyimport_reloadmodule : pyobject -> pyobject = "PyImport_ReloadModule_wrapper"
+ external pyimport_import : pyobject -> pyobject = "PyImport_Import_wrapper"
+@@ -273,7 +275,9 @@
+ external pymapping_size : pyobject -> int = "PyMapping_Size_wrapper"
+ external pymapping_length : pyobject -> int = "PyMapping_Length_wrapper"
+ external pyiter_check : pyobject -> int = "PyIter_Check_wrapper"
++IFDEF PYMAJOR3 THEN
+ external pyunicode_getsize : pyobject -> int = "PyUnicode_GetSize_wrapper"
++END
+ (* Type19 *)
+ external pyobject_hasattr : (pyobject * pyobject) -> int = "PyObject_HasAttr_wrapper"
+@@ -326,7 +330,11 @@
+ (* Type28 *)
+ external pyimport_addmodule : string -> pyobject = "PyImport_AddModule_wrapper"
+ external pybytes_fromstring : string -> pyobject = "PyBytes_FromString_wrapper"
++IFDEF PYMAJOR2 THEN
+ external pystring_fromstring : string -> pyobject = "PyBytes_FromString_wrapper" (* Legacy support *)
++ELSE
++external pystring_fromstring : string -> pyobject = "PyUnicode_FromString_wrapper" (* Legacy support *)
++ENDIF
+ external pymodule_new : string -> pyobject = "PyModule_New_wrapper"
+ external pyimport_importmodule : string -> pyobject = "PyImport_ImportModule_wrapper"
+@@ -380,15 +388,11 @@
+ (* Type42 *)
+ external pyslice_new : (pyobject * pyobject * pyobject) -> pyobject = "PySlice_New_wrapper"
+-IFDEF PYMAJOR2 THEN
+ external pyclass_new : (pyobject * pyobject * pyobject) -> pyobject = "PyClass_New_wrapper"
++IFDEF PYMAJOR2 THEN
+ external pyinstance_new : (pyobject * pyobject * pyobject) -> pyobject = "PyInstance_New_wrapper"
+ END
+-IFDEF PYMAJOR2 THEN
+ external pymethod_new : (pyobject * pyobject * pyobject) -> pyobject = "PyMethod_New_wrapper"
+-ELSE
+-external pymethod_new : (pyobject * pyobject) -> pyobject = "PyMethod_New_wrapper"
+-END
+ external pyeval_callobjectwithkeywords : (pyobject * pyobject * pyobject) -> pyobject = "PyEval_CallObjectWithKeywords_wrapper"
+ external pynumber_power : (pyobject * pyobject * pyobject) -> pyobject = "PyNumber_Power_wrapper"
+ external pynumber_inplacepower : (pyobject * pyobject * pyobject) -> pyobject = "PyNumber_InPlacePower_wrapper"
+@@ -432,16 +436,9 @@
+ external pysequence_delslice : (pyobject * int * int) -> int = "PySequence_DelSlice_wrapper"
+ (* TypeUTF8Decoder *)
++IFDEF PYMAJOR3 THEN
+ external pyunicode_decodeutf8 : (string * string option) -> pyobject = "PyUnicode_DecodeUTF8_wrapper"
+-
+-(* TypeUTF16Decoder *)
+-external pyunicode_decodeutf16 : (string * string option * int option) -> pyobject = "PyUnicode_DecodeUTF16_wrapper"
+-external pyunicode_decodeutf32 : (string * string option * int option) -> pyobject = "PyUnicode_DecodeUTF32_wrapper"
+-
+-(*-----------------------------------------------------------------------*)
+-
+-external pyunicode_fromunicode : (int -> int) -> int -> pyobject = "PyUnicode_FromUnicode_wrapper"
+-external pyunicode_asunicode   : pyobject -> int array = "PyUnicode_AsUnicode_wrapper"
++END
+ (*-----------------------------------------------------------------------*)
+@@ -959,6 +956,7 @@
+   in
+     work_fun
++IFDEF PYMAJOR3 THEN
+ (* OCaml string encoded in UTF-8 --> Python 3 string type (= Python 2 unicode type) *)
+ let pythonize_string s =
+   pyunicode_decodeutf8(s, None)
+@@ -976,6 +974,7 @@
+             | BytesType   -> pybytes_asstringandsize s
+             | _ -> assert false
+     end
++END
+ (* FIX: Maybe rewrite this as an unpythonizing_function. *)
+ let python_interfaced_function
+diff -ru /tmp/chemoelectric-pycaml-8614105/pycaml_stubs.c ./chemoelectric-pycaml-8614105/pycaml_stubs.c
+--- /tmp/chemoelectric-pycaml-8614105/pycaml_stubs.c   2011-10-01 02:05:57.000000000 +0200
++++ ./chemoelectric-pycaml-8614105/pycaml_stubs.c      2012-06-24 13:36:40.714560368 +0200
+@@ -789,9 +789,11 @@
+ Type14(PyMethod_Class, pywrap)
+ #endif
++#if PY_MAJOR_VERSION >= 3
+ Type14(PyUnicode_AsUTF8String, pywrap_steal)
+ Type14(PyUnicode_AsUTF16String, pywrap_steal)
+ Type14(PyUnicode_AsUTF32String, pywrap_steal)
++#endif
+ Type14(PyObject_Repr, pywrap_steal)
+ Type14(PyImport_ReloadModule, pywrap_steal)
+ Type14(PyImport_Import, pywrap_steal)
+@@ -938,7 +940,9 @@
+ Type18(PyMapping_Size)
+ Type18(PyMapping_Length)
+ Type18(PyIter_Check)
++#if PY_MAJOR_VERSION >= 3
+ Type18(PyUnicode_GetSize)
++#endif
+ /*-----------------------------------------------------------------------*/
+@@ -1096,6 +1100,9 @@
+ Type28(PyImport_AddModule, pywrap)
+ Type28(PyBytes_FromString, pywrap_steal)
++#if PY_MAJOR_VERSION >= 3
++Type28(PyUnicode_FromString, pywrap_steal)
++#endif
+ Type28(PyModule_New, pywrap_steal)
+ Type28(PyImport_ImportModule, pywrap_steal)
+@@ -1300,7 +1307,7 @@
+         CAMLparam1(py_args);                                    \
+                                                                 \
+         PyObject *new_obj = func(pyunwrap(Field(py_args, 0)),   \
+-                                 pyunwrap(Field(py_args, 1)));  \
++                                 pyunwrap(Field(py_args, 2)));  \
+         CAMLreturn(wrap_obj(new_obj));                          \
+     }
+ #endif
+@@ -1313,6 +1320,22 @@
+ #if PY_MAJOR_VERSION <= 2
+ Type42(PyClass_New, pywrap_steal)
+ Type42(PyInstance_New, pywrap_steal)
++#else
++/* Calls the builtin-function: type(name,bases,dict), with the
++ * name of the class, tuples of parent names, and dictionary
++ * with initializations of fields.
++ */
++CAMLprim value PyClass_New_wrapper(value py_args)
++{
++  CAMLparam1(py_args);
++  PyObject *bases = pyunwrap(Field(py_args, 0));
++  PyObject *dict = pyunwrap(Field(py_args, 1));
++  PyObject *name = pyunwrap(Field(py_args, 2));
++  PyObject *new_obj = 
++    PyObject_CallFunctionObjArgs
++    ( (PyObject *) &PyType_Type, name, bases, dict, NULL);
++  CAMLreturn(pywrap_steal(new_obj));
++}
+ #endif
+ Type42a(PyMethod_New, pywrap_steal)
+@@ -1493,7 +1516,7 @@
+       Type54(PySequence_DelSlice)
+ /*-----------------------------------------------------------------------*/
+-
++#if PY_MAJOR_VERSION >= 3
+ #define TypeUTF8Decoder(func, wrap_obj)                                 \
+     CAMLprim value func##_wrapper(value py_args)                        \
+     {                                                                   \
+@@ -1513,9 +1536,9 @@
+     }
+ TypeUTF8Decoder(PyUnicode_DecodeUTF8, pywrap_steal)
+-
++#endif
+ /*-----------------------------------------------------------------------*/
+-
++#if 0
+ #define TypeUTF16Decoder(func, wrap_obj)                                \
+     CAMLprim value func##_wrapper(value py_args)                        \
+     {                                                                   \
+@@ -1589,7 +1612,7 @@
+     CAMLreturn(result);
+ }
+-
++#endif
+ /*-----------------------------------------------------------------------*/
+ /* Value -> Pyobject */
index 2516bbb..10287d7 100644 (file)
@@ -14,6 +14,7 @@
 ** Features:
 - New scripting languages
 - more than one SP on the command line
+- interpret #if, as is done for #ifdef
 
 ** Bugfix:
 - Add more information in documentation, man pages and wiki
@@ -51,7 +52,6 @@
   not as elements of specific structures.
 - Allow size_t as the type of an array index in smpl code.  Reported by
   Mansour Moufid.
-- Allow exp@id
 - Allow renaming an expression as an identifier (@i)
 
 ** Features:
 - Added an experimental --reverse flag to invert the semantic patch before application.
   Note that not all patches can be inverted, nor is it guaranteed that applying
   a patch followed by applying its inverse is an identity operation.
+- Cache prefix takes distribution index into account.
+- Add --defined and --undefined options allowing some code not to be
+  touched.  Suggested by Eric Leblond.
 
 ** Bugfix:
 - Corrected parsing of script strings delimited by a single quote.  Thanks
 - C parsing of top-level declarers with initializations.
 - Remove constraints in predicates in match result, to avoid PCRE equality
   problems
-- Enum assignment matching an enum value shouldn't cause a failure
+- Enum assignment matching an enum value shouldn't cause a
+  crash. Likewise, an identifier matching an initialized enum field
+  shouldn't cause a crash.
+- Make when forall in an exists rule behave (more) like forall
 
 * 0.2.5
 ** Language:
index bdf98d4..9929076 100644 (file)
--- a/cocci.ml
+++ b/cocci.ml
  *)
 
 
-# 0 "./cocci.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./cocci.ml"
 open Common
 
index 3a68b24..c736745 100644 (file)
--- a/cocci.mli
+++ b/cocci.mli
  *)
 
 
-# 0 "./cocci.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./cocci.mli"
 open Common
 
index 8aafb52..80dc4c8 100644 (file)
  *)
 
 
-# 0 "./ast_ctl.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./ast_ctl.ml"
 
 (* ---------------------------------------------------------------------- *)
index 319462d..6f329b5 100644 (file)
  *)
 
 
-# 0 "./ctl_engine.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./ctl_engine.ml"
 (*external c_counter : unit -> int = "c_counter"*)
 let timeout = 800
index 517557f..797223d 100644 (file)
  *)
 
 
-# 0 "./ctl_engine.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./ctl_engine.mli"
 open Ast_ctl
 
index 2e9f8bc..62a0144 100644 (file)
  *)
 
 
-# 0 "./flag_ctl.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./flag_ctl.ml"
 (* option -verbose_ctl_engine *)
 let verbose_ctl_engine = ref false
index d2b4fc5..1a394ee 100644 (file)
  *)
 
 
-# 0 "./pretty_print_ctl.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./pretty_print_ctl.ml"
 open Common
 open Format
index 39a9a44..d2cea7a 100644 (file)
  *)
 
 
-# 0 "./pretty_print_ctl.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./pretty_print_ctl.mli"
 
 val pp_ctl:
index e559070..d57f4e8 100644 (file)
  *)
 
 
-# 0 "./test_ctl.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./test_ctl.ml"
 
 (* ********************************************************************** *)
index 3482faf..b85115a 100644 (file)
  *)
 
 
-# 0 "./wrapper_ctl.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./wrapper_ctl.ml"
 (* **********************************************************************
  *
index ca52dc6..b6ad3ab 100644 (file)
  *)
 
 
-# 0 "./wrapper_ctl.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./wrapper_ctl.mli"
 type info = int
 
index 4e360c5..14a0b04 100644 (file)
Binary files a/docs/manual/main_grammar.pdf and b/docs/manual/main_grammar.pdf differ
index 7f7eb84..cd1ee69 100644 (file)
Binary files a/docs/manual/manual.pdf and b/docs/manual/manual.pdf differ
index 0ced07d..da59921 100644 (file)
Binary files a/docs/manual/options.pdf and b/docs/manual/options.pdf differ
index 6dc2892..f319a5a 100644 (file)
@@ -317,10 +317,23 @@ control-flow graph when doing so represents valid code.  {\bf
 default.
 }
 
-\rare{--use-if0-code}{ Normally code under \#if 0 is ignored.  If this
+\rare{--noif0-passing}{ Normally code under \#if 0 is ignored.  If this
 option is set then the code is considered, just like the code under any
 other \#ifdef.}
 
+\rare{--defined $s$}{The string $s$ is a comma-separated list of constants
+  that should be considered to be defined, with respect to uses of {\tt
+    \#ifdef} and {\tt \#ifndef} in C code.  No spaces should appear in $s$.
+  Multiple {\bf --defined} arguments can be provided and the list of
+  strings accumulates.  For the provided strings any {\tt \#else}s of {\tt
+    \#ifdef}s are ignored and any {\tt \#ifndef}s are ignored, unless the
+  argument {\bf --noif0-passing} is also given, in which case {\bf
+    --defined} has no effect.  Note that occurrences of {\tt \#define} in
+  the C code have no effect on the list of defined constants.}
+
+\rare{--undefined $s$}{Analogous to {\bf --defined} except that the strings
+  represent constants that should be considered to be undefined.}
+
 \developer{--noadd-typedef-root}{This seems to reduce the scope of a
   typedef declaration found in the C code.}
 
@@ -518,9 +531,9 @@ stars are used in column 0 rather than {\tt -} and {\tt +}, then the {\tt
   option, with no backup.  This option only makes sense when {\tt -} and
   {\tt +} are used.}
 
-\rare{--backup-suffix}{The suffix of the file to use in making a backup of
-  the original file(s).  This suffix should include the leading ``.'', if
-  one is desired.  This option only has an effect when the option
+\rare{--backup-suffix $s$}{The suffix $s$ of the file to use in making a
+  backup of the original file(s).  This suffix should include the leading
+  ``.'', if one is desired.  This option only has an effect when the option
   {\tt --in-place} is also used.}
 
 \rare{--out-place}{ Store the result of modifying the code in a .cocci-res
index ba42753..d9431e3 100644 (file)
  *)
 
 
-# 0 "./asttoctl.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./asttoctl.ml"
 (* true = don't see all matched nodes, only modified ones *)
 let onlyModif = ref true(*false*)
index c6b0fbe..00859ab 100644 (file)
  *)
 
 
-# 0 "./asttoctl.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./asttoctl.mli"
 type cocci_predicate = Lib_engine.predicate * string Ast_ctl.modif
 type formula =
index b7e51bd..f779b57 100644 (file)
  *)
 
 
-# 0 "./asttoctl2.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./asttoctl2.ml"
 (* for MINUS and CONTEXT, pos is always None in this file *)
 (*search for require*)
@@ -1376,6 +1349,7 @@ let dots_au is_strict toend label s wrapcode n x seq_after y quantifier =
      make_match None false
       (wrapcode
         (Ast.Continue(Ast.make_mcode "continue",Ast.make_mcode ";"))) in
+  let op = if quantifier = !exists then ctl_au else ctl_anti_au in
   let stop_early =
     if quantifier = Exists
     then Common.Left(CTL.False)
@@ -1410,7 +1384,7 @@ let dots_au is_strict toend label s wrapcode n x seq_after y quantifier =
            (quantify false [lv]
               (ctl_and CTL.NONSTRICT
                  (ctl_and CTL.NONSTRICT (truepred label) labelpred)
-                 (ctl_au CTL.NONSTRICT
+                 (op CTL.NONSTRICT
                     (ctl_and CTL.NONSTRICT (ctl_not v)
                        (ctl_and CTL.NONSTRICT vx preflabelpred))
                     (ctl_and CTL.NONSTRICT preflabelpred
@@ -1432,12 +1406,11 @@ let dots_au is_strict toend label s wrapcode n x seq_after y quantifier =
                                else*)
                                  (ctl_ag s
                                     (ctl_not seq_after))))))))))) in
-  let op = if quantifier = !exists then ctl_au else ctl_anti_au in
   let v = get_let_ctr() in
   op s x
     (match stop_early with
-      Common.Left x1 -> ctl_or y x1
-    | Common.Right stop_early ->
+      Common.Left x1 -> Printf.printf "left\n"; ctl_or y x1
+    | Common.Right stop_early -> Printf.printf "right\n";
        CTL.Let(v,y,
                ctl_or (CTL.Ref v)
                  (ctl_and CTL.NONSTRICT (label_pred_maker label)
index 34a10db..f869d67 100644 (file)
  *)
 
 
-# 0 "./asttoctl2.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./asttoctl2.mli"
 type cocci_predicate = Lib_engine.predicate * Ast_cocci.meta_name Ast_ctl.modif
 type top_formula = NONDECL of Lib_engine.ctlcocci | CODE of Lib_engine.ctlcocci
index 01caf6f..0de4df3 100644 (file)
  *)
 
 
-# 0 "./asttomember.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./asttomember.ml"
 (* on the first pass, onlyModif is true, so we don't see all matched nodes,
 only modified ones *)
index 8f3fcba..0e66eaa 100644 (file)
  *)
 
 
-# 0 "./asttomember.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./asttomember.mli"
 val asttomember : Ast_cocci.rule -> Ast_cocci.meta_name list list ->
   (Lib_engine.predicate * Ast_cocci.meta_name Ast_ctl.modif) list list list
index c212a9e..e4d6581 100644 (file)
  *)
 
 
-# 0 "./c_vs_c.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./c_vs_c.ml"
 open Common
 
index b378576..8712216 100644 (file)
  *)
 
 
-# 0 "./c_vs_c.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./c_vs_c.mli"
 val eq_type : Ast_c.fullType -> Ast_c.fullType -> bool
 val merge_type : Ast_c.fullType -> Ast_c.fullType -> Ast_c.fullType
index 508d582..3a209d6 100644 (file)
  *)
 
 
-# 0 "./check_exhaustive_pattern.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./check_exhaustive_pattern.ml"
 
 (* Just to warn me when there is some news in the types in
index 94f4eb6..20ee731 100644 (file)
  *)
 
 
-# 0 "./check_reachability.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./check_reachability.ml"
 (* ---------------------------------------------------------------- *)
 (* code to check for ambiguities *)
index 6c18eec..d5aa86c 100644 (file)
  *)
 
 
-# 0 "./check_reachability.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./check_reachability.mli"
 type witness =
     (Ograph_extended.nodei, unit,
index 0ba4c50..de16aed 100644 (file)
  *)
 
 
-# 0 "./cocci_vs_c.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./cocci_vs_c.ml"
 open Common
 
@@ -2684,6 +2657,7 @@ and enum_field ida idb =
     A.Ident(id),(nameidb,None) ->
       ident_cpp DontKnow id nameidb >>= (fun id nameidb ->
         return ((A.Ident id) +> A.rewrap ida, (nameidb,None)))
+  | A.Ident(id),(nameidb,Some _) -> fail (* should we have an iso? *)
   | A.Assignment(ea1,opa,ea2,init),(nameidb,Some(opbi,eb2)) ->
       (match A.unwrap ea1 with
        A.Ident(id) ->
@@ -2696,7 +2670,7 @@ and enum_field ida idb =
            (nameidb,Some(opbi,eb2))))))
       |        _ -> failwith "not possible")
   | A.Assignment(ea1,opa,ea2,init),(nameidb,None) -> fail
-  | _ -> failwith "not possible"
+  | _ -> failwith ("not possible: "^(Dumper.dump (A.unwrap ida)))
 
 (* ------------------------------------------------------------------------- *)
 and (fullType: (A.fullType, Ast_c.fullType) matcher) =
index d1617ec..c63c50c 100644 (file)
  *)
 
 
-# 0 "./cocci_vs_c.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./cocci_vs_c.mli"
 (*****************************************************************************)
 (* Cocci vs C *)
index a8ef595..558eb10 100644 (file)
  *)
 
 
-# 0 "./ctlcocci_integration.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./ctlcocci_integration.ml"
 open Common
 
index dc0e8bc..9c75cf3 100644 (file)
  *)
 
 
-# 0 "./ctlcocci_integration.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./ctlcocci_integration.mli"
 open Ograph_extended
 
index 82597af..4e6410b 100644 (file)
  *)
 
 
-# 0 "./ctltotex.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./ctltotex.ml"
 module CTL = Ast_ctl
 
index 61bbb16..3150fd4 100644 (file)
  *)
 
 
-# 0 "./ctltotex.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./ctltotex.mli"
 val totex :
   string ->
index 95917ba..6053bd9 100644 (file)
  *)
 
 
-# 0 "./flag_engine.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./flag_engine.ml"
 let debug_engine = ref false
 
index a59eb40..b622d92 100644 (file)
  *)
 
 
-# 0 "./flag_matcher.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./flag_matcher.ml"
 let debug_engine = ref false
 let verbose_matcher = ref true
index ea5478a..e154c82 100644 (file)
  *)
 
 
-# 0 "./isomorphisms_c_c.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./isomorphisms_c_c.ml"
 open Common
 
index c54f9a5..42473b1 100644 (file)
  *)
 
 
-# 0 "./lib_engine.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./lib_engine.ml"
 open Ograph_extended
 
index ab47f45..609dbef 100644 (file)
  *)
 
 
-# 0 "./lib_matcher_c.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./lib_matcher_c.ml"
index 2273e20..c0c34ea 100644 (file)
  *)
 
 
-# 0 "./lib_matcher_c.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./lib_matcher_c.mli"
index ed7a7da..bfb3eed 100644 (file)
  *)
 
 
-# 0 "./main.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./main.ml"
 (* ----------------------------------------------------------------------- *)
 (* Entry point *)
index e54043d..1bd8773 100644 (file)
  *)
 
 
-# 0 "./pattern_c.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./pattern_c.ml"
 open Common
 
index b8aa8f2..22c67de 100644 (file)
  *)
 
 
-# 0 "./pattern_c.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./pattern_c.mli"
 
 val match_re_node :
index 2be472e..85cfd97 100644 (file)
  *)
 
 
-# 0 "./postprocess_transinfo.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./postprocess_transinfo.ml"
 (* two goals: first drop from the environments things that are not used,
    and second prompt for the names of fresh variables that are used *)
index d25d1a1..e5ea495 100644 (file)
  *)
 
 
-# 0 "./postprocess_transinfo.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./postprocess_transinfo.mli"
 val process :
     Ast_cocci.meta_name list (* used after *) ->
index d8daf9d..93ce733 100644 (file)
  *)
 
 
-# 0 "./pretty_print_engine.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./pretty_print_engine.ml"
 open Common.Infix
 
index 70e2f05..b5a0183 100644 (file)
  *)
 
 
-# 0 "./pretty_print_engine.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./pretty_print_engine.mli"
 (* 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
index 3069ed7..0b6d50c 100644 (file)
  *)
 
 
-# 0 "./sgrep.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./sgrep.ml"
 (* no longer used *)
 
index 71af452..bdce849 100644 (file)
  *)
 
 
-# 0 "./transformation_c.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./transformation_c.ml"
 open Common
 
index 629cd5e..71d0d38 100644 (file)
  *)
 
 
-# 0 "./transformation_c.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./transformation_c.mli"
 (* note that now we do the transformation via side effect on ast *)
 val transform :
index 6daa82f..bc70d53 100644 (file)
  *)
 
 
-# 0 "./flag_cocci.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./flag_cocci.ml"
 (* the inputs *)
 let show_c = ref false
index d142386..9f96058 100644 (file)
  *)
 
 
-# 0 "./flag.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./flag.ml"
 let sgrep_mode2 = ref false
 
index 81a9a4f..dcc2f43 100644 (file)
  *)
 
 
-# 0 "./iteration.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./iteration.ml"
 type init_info = (string (* language *) * string (* rule name *)) *
       string list (* defined virtual rules *)
index 0958935..933960c 100644 (file)
  *)
 
 
-# 0 "./iteration.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./iteration.mli"
 type init_info = (string (* language *) * string (* rule name *)) *
       string list (* defined virtual rules *)
index bcf366e..ef75085 100644 (file)
  *)
 
 
-# 0 "./regexp_pcre.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./regexp_pcre.ml"
 
 type regexp =
index d69403f..cda4755 100644 (file)
  *)
 
 
-# 0 "./regexp_str.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./regexp_str.ml"
 
 type regexp = Str.regexp
diff --git a/main.ml b/main.ml
index a67d5ea..05170a1 100644 (file)
--- a/main.ml
+++ b/main.ml
  *)
 
 
-# 0 "./main.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./main.ml"
 open Common
 module FC = Flag_cocci
@@ -594,8 +567,10 @@ let other_options = [
 
     "--disable-multi-pass", Arg.Set Flag_parsing_c.disable_multi_pass, " ";
 
-    "--noif0-passing",      Arg.Clear Flag_parsing_c.if0_passing,
-    " ";
+    "--noif0-passing",      Arg.Clear Flag_parsing_c.if0_passing, " ";
+    "--defined", Arg.String (Flag_parsing_c.add Flag_parsing_c.defined), " ";
+    "--undefined", Arg.String
+        (Flag_parsing_c.add Flag_parsing_c.undefined), " ";
     "--noadd-typedef-root", Arg.Clear Flag_parsing_c.add_typedef_root, " ";
     (* could use Flag_parsing_c.options_algo instead *)
 
@@ -1130,6 +1105,11 @@ let main () =
            end
          else true)
        !args;
+    (match (!Flag_parsing_c.cache_prefix,!distrib_index) with
+      (Some cp,Some n) ->
+       Flag_parsing_c.cache_prefix :=
+         Some (Printf.sprintf "%s_%d" cp n)
+    | _ -> ());
     
     (* julia hack so that one can override directories specified on
        * the command line. *)
index cdb5df1..6b17c34 100644 (file)
@@ -169,6 +169,11 @@ let disable_add_typedef = ref false
 let if0_passing = ref true
 let add_typedef_root = ref true
 
+(* defined and undefined constants *)
+let add c s = c := (Str.split (Str.regexp ",") s) @ !c
+let defined = ref ([] : string list)
+let undefined = ref ([] : string list)
+
 let cmdline_flags_parsing_algos () = [
 
     "--directive-passing",              Arg.Set cpp_directive_passing,
index 1feebe0..80e609e 100644 (file)
@@ -490,10 +490,20 @@ rule token = parse
 
 
   (* can have some ifdef 0  hence the letter|digit even at beginning of word *)
-  | "#" [' ''\t']* "ifdef"  [' ''\t']+ (letter|digit) ((letter|digit)*) [' ''\t']*
-      { TIfdef (no_ifdef_mark(), tokinfo lexbuf) }
-  | "#" [' ''\t']* "ifndef" [' ''\t']+ (letter|digit) ((letter|digit)*) [' ''\t']*
-      { TIfdef (no_ifdef_mark(), tokinfo lexbuf) }
+  | "#" [' ''\t']* "ifdef"  [' ''\t']+
+    (((letter|digit) ((letter|digit)*)) as x) [' ''\t']*
+      { if List.mem x !Flag_parsing_c.undefined
+        then TIfdefBool (false, no_ifdef_mark(), tokinfo lexbuf)
+        else if List.mem x !Flag_parsing_c.defined
+        then TIfdefBool (true, no_ifdef_mark(), tokinfo lexbuf)
+        else TIfdef (no_ifdef_mark(), tokinfo lexbuf) }
+  | "#" [' ''\t']* "ifndef" [' ''\t']+
+     (((letter|digit) ((letter|digit)*)) as x) [' ''\t']*
+      { if List.mem x !Flag_parsing_c.defined
+        then TIfdefBool (false, no_ifdef_mark(), tokinfo lexbuf)
+        else if List.mem x !Flag_parsing_c.undefined
+        then TIfdefBool (true, no_ifdef_mark(), tokinfo lexbuf)
+        else TIfdef (no_ifdef_mark(), tokinfo lexbuf) }
   | "#" [' ''\t']* "if" [' ' '\t']+
       { let info = tokinfo lexbuf in
         TIfdef (no_ifdef_mark(), info +> tok_add_s (cpp_eat_until_nl lexbuf))
index 25fcacd..cdbf37e 100644 (file)
  *)
 
 
-# 0 "./adjacency.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./adjacency.ml"
 module Ast0 = Ast0_cocci
 module V0 = Visitor_ast0
index 5062156..20a2cc4 100644 (file)
  *)
 
 
-# 0 "./adjacency.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./adjacency.mli"
 val compute_adjacency : Ast0_cocci.rule -> Ast0_cocci.rule
index 3f789d6..4111b2a 100644 (file)
  *)
 
 
-# 0 "./adjust_pragmas.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./adjust_pragmas.ml"
 (* 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 *)
index e4e953a..42e9857 100644 (file)
  *)
 
 
-# 0 "./adjust_pragmas.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./adjust_pragmas.mli"
 val process : Ast0_cocci.rule -> Ast0_cocci.rule
index 1b089ea..ac2cda2 100644 (file)
  *)
 
 
-# 0 "./arity.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./arity.ml"
 (* Arities matter for the minus slice, but not for the plus slice. *)
 
index 81ed23d..40a2163 100644 (file)
  *)
 
 
-# 0 "./arity.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./arity.mli"
 val minus_arity : Ast0_cocci.rule -> Ast0_cocci.rule
index 3af2123..c1ac28a 100644 (file)
  *)
 
 
-# 0 "./ast0_cocci.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./ast0_cocci.ml"
 module Ast = Ast_cocci
 module TC = Type_cocci
index ec2a92d..bff4e0d 100644 (file)
  *)
 
 
-# 0 "./ast0_cocci.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./ast0_cocci.mli"
 (* --------------------------------------------------------------------- *)
 (* Modified code *)
index 457eec0..5f0d9c0 100644 (file)
  *)
 
 
-# 0 "./ast0toast.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./ast0toast.ml"
 (* Arities matter for the minus slice, but not for the plus slice. *)
 
index f69bd03..f9c116a 100644 (file)
  *)
 
 
-# 0 "./ast0toast.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./ast0toast.mli"
 val ast0toast :
     string -> Ast_cocci.dependency -> string list (* dropped isos *) ->
index 7a2a42b..cdc165b 100644 (file)
  *)
 
 
-# 0 "./ast_cocci.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./ast_cocci.ml"
 (* --------------------------------------------------------------------- *)
 (* Modified code *)
index aa02ed6..50304df 100644 (file)
  *)
 
 
-# 0 "./ast_cocci.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./ast_cocci.mli"
 (* --------------------------------------------------------------------- *)
 (* Modified code *)
index 2338ae4..19fd7ae 100644 (file)
  *)
 
 
-# 0 "./check_meta.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./check_meta.ml"
 (* For minus fragment, checks that all of the identifier metavariables that
 are used are not declared as fresh, and check that all declared variables
index f6fc587..815d5e1 100644 (file)
  *)
 
 
-# 0 "./check_meta.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./check_meta.mli"
 val check_meta :
     string ->
index c4d86de..dbe9ec6 100644 (file)
  *)
 
 
-# 0 "./comm_assoc.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./comm_assoc.ml"
 (* searches for E op ..., for any commutative and associative binary
 operator.  When this satisfies the isomorphism conditions (ie all minus, or
index 7503d8b..5c60773 100644 (file)
  *)
 
 
-# 0 "./comm_assoc.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./comm_assoc.mli"
 val comm_assoc :
     Ast0_cocci.rule -> string (* rule name *) ->
index 8c5d119..2182af9 100644 (file)
  *)
 
 
-# 0 "./command_line.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./command_line.ml"
 (* ---------------------------------------------------------------------- *)
 (* useful functions *)
index 1e6ca71..77ef158 100644 (file)
  *)
 
 
-# 0 "./command_line.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./command_line.mli"
 val command_line : string list -> string list
index 85f7710..d6c32ec 100644 (file)
  *)
 
 
-# 0 "./compute_lines.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./compute_lines.ml"
 (* Computes starting and ending logical lines for statements and
 expressions.  every node gets an index as well. *)
index 5f66f96..564aaa1 100644 (file)
  *)
 
 
-# 0 "./compute_lines.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./compute_lines.mli"
 val compute_lines : bool -> Ast0_cocci.rule -> Ast0_cocci.rule
 
index 3b644d7..5f9b8e7 100644 (file)
  *)
 
 
-# 0 "./context_neg.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./context_neg.ml"
 (* Detects subtrees that are all minus/plus and nodes that are "binding
 context nodes".  The latter is a node whose structure and immediate tokens
index 7ab5d2f..054902f 100644 (file)
  *)
 
 
-# 0 "./context_neg.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./context_neg.mli"
 val context_neg :
     Ast0_cocci.rule -> Ast0_cocci.rule ->
index 8580017..a056742 100644 (file)
  *)
 
 
-# 0 "./data.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./data.ml"
 module Ast0 = Ast0_cocci
 module Ast = Ast_cocci
index 752a31b..5b96fc2 100644 (file)
  *)
 
 
-# 0 "./data.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./data.mli"
 (* types that clutter the .mly file *)
 (* for iso metavariables, true if they can only match nonmodified, unitary
index 279bda9..a6dbfef 100644 (file)
  *)
 
 
-# 0 "./disjdistr.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./disjdistr.ml"
 module Ast = Ast_cocci
 module V = Visitor_ast
index 6bb4ed1..3d44657 100644 (file)
  *)
 
 
-# 0 "./disjdistr.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./disjdistr.mli"
 val disj :
     Ast_cocci.rule_with_metavars list -> Ast_cocci.rule_with_metavars list
index cda6922..ee60b08 100644 (file)
  *)
 
 
-# 0 "./flag_parsing_cocci.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./flag_parsing_cocci.ml"
 (* uses E rather than A and adds comments indicating the start and end of
 each matched term *)
index 1895de7..80900e6 100644 (file)
  *)
 
 
-# 0 "./free_vars.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./free_vars.ml"
 (* 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
index 1558b65..fd3134e 100644 (file)
  *)
 
 
-# 0 "./free_vars.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./free_vars.mli"
 (* Used after things can only have one binding.  Positions can have many
 bindings.  These are combined in ctlcocciintegration, ie after the CTL
index e626293..d9b1725 100644 (file)
  *)
 
 
-# 0 "./function_prototypes.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./function_prototypes.ml"
 module Ast0 = Ast0_cocci
 module Ast = Ast_cocci
index f78e00b..b18105c 100644 (file)
  *)
 
 
-# 0 "./function_prototypes.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./function_prototypes.mli"
 val process : string (* name *) -> Ast_cocci.metavar list ->
   string list (* dropped isos *) ->
index 6549787..95c1742 100644 (file)
  *)
 
 
-# 0 "./get_constants.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./get_constants.ml"
 (* get a list of all of the constants in the - slice of a SmPL file, to be
 used to select which files to process *)
index 1d50ee3..0e95ee3 100644 (file)
  *)
 
 
-# 0 "./get_constants.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./get_constants.mli"
 val get_constants : Ast_cocci.rule list -> string list list
index de76530..0be5611 100644 (file)
  *)
 
 
-# 0 "./get_constants2.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./get_constants2.ml"
 module Ast = Ast_cocci
 module V = Visitor_ast
index 0819391..2e0dad3 100644 (file)
  *)
 
 
-# 0 "./get_constants2.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./get_constants2.mli"
 type combine =
     And of combine list | Or of combine list | Elem of string | False | True
index 66ac64b..be94bc1 100644 (file)
  *)
 
 
-# 0 "./get_metas.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./get_metas.ml"
 (* --------------------------------------------------------------------- *)
 (* creates AsExpr, etc *)
index 4aeac86..2e226a9 100644 (file)
  *)
 
 
-# 0 "./get_metas.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./get_metas.mli"
 val process : Ast0_cocci.rule -> Ast0_cocci.rule
index ca4fe77..dc65cf4 100644 (file)
  *)
 
 
-# 0 "./id_utils.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./id_utils.ml"
 (* evaluation of nested and and or using id-utils *)
 
index a8b0785..f1387e1 100644 (file)
  *)
 
 
-# 0 "./id_utils.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./id_utils.mli"
 val interpret : string -> Get_constants2.combine -> string list
index 063a460..a094b1f 100644 (file)
  *)
 
 
-# 0 "./index.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./index.ml"
 (* create an index for each constructor *)
 (* current max is 157 *)
index de11f31..e6c0539 100644 (file)
  *)
 
 
-# 0 "./index.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./index.mli"
 val expression_dots : Ast0_cocci.expression Ast0_cocci.dots -> int list
 val initialiser_dots : Ast0_cocci.initialiser Ast0_cocci.dots -> int list
index 0a7f36f..199b04c 100644 (file)
  *)
 
 
-# 0 "./insert_plus.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./insert_plus.ml"
 (* 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
index e43adda..a060474 100644 (file)
  *)
 
 
-# 0 "./insert_plus.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./insert_plus.mli"
 val insert_plus : Ast0_cocci.rule -> Ast0_cocci.rule -> bool -> unit
 (* bool is true if no isos *)
index 2cb1567..ce4e542 100644 (file)
  *)
 
 
-# 0 "./iso_compile.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./iso_compile.ml"
 module V0 = Visitor_ast0
 module VT0 = Visitor_ast0_types
index 58c6fb1..8a7e183 100644 (file)
  *)
 
 
-# 0 "./iso_compile.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./iso_compile.mli"
 val process : Iso_pattern.isomorphism -> unit
 
index 8866940..a91ee67 100644 (file)
  *)
 
 
-# 0 "./iso_pattern.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./iso_pattern.ml"
 (* 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
index c86eff7..e6b4271 100644 (file)
  *)
 
 
-# 0 "./iso_pattern.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./iso_pattern.mli"
 type isomorphism =
     Ast_cocci.metavar list * Ast0_cocci.anything list list * string(*iso name*)
index a4f6668..911959a 100644 (file)
  *)
 
 
-# 0 "./lexer_cli.mll"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./lexer_cli.mll"
 (* Lexer for the command line mode *)
 
index 10aad7c..8a254e7 100644 (file)
  *)
 
 
-# 0 "./lexer_cocci.mll"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./lexer_cocci.mll"
 {
 open Parser_cocci_menhir
index 4f411f8..4b4d613 100644 (file)
  *)
 
 
-# 0 "./lexer_script.mll"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./lexer_script.mll"
 {
 open Parser_cocci_menhir
index d45fa26..db29505 100644 (file)
  *)
 
 
-# 0 "./main.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./main.ml"
 (* ----------------------------------------------------------------------- *)
 (* Entry point *)
index d007f12..36e5b58 100644 (file)
  *)
 
 
-# 0 "./merge.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./merge.ml"
 (* given parsed minus code and a stream of + code, figure out where to put
 the + code in the mcode of the minus code *)
index 6505606..3ebb0a8 100644 (file)
  *)
 
 
-# 0 "./merge.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./merge.mli"
 val do_merge :
     Ast0_cocci.rule ->
index dae83bf..082d3f1 100644 (file)
  *)
 
 
-# 0 "./parse_aux.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./parse_aux.ml"
 (* exports everything, used only by parser_cocci_menhir.mly *)
 module Ast0 = Ast0_cocci
index 91424a1..0a240fd 100644 (file)
  *)
 
 
-# 0 "./parse_cocci.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./parse_cocci.ml"
 (* splits the entire file into minus and plus fragments, and parses each
 separately (thus duplicating work for the parsing of the context elements) *)
index 19e33a3..9d90dcb 100644 (file)
  *)
 
 
-# 0 "./parse_cocci.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./parse_cocci.mli"
 exception Bad_virt of string
 
index a7de7f5..2d572b5 100644 (file)
@@ -2,155 +2,155 @@ exception Error
 
 type token = 
   | Tvolatile of (
-# 148 "parser_cocci_menhir.mly"
+# 122 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8 "parser_cocci_menhir.ml"
 )
   | Tvoid of (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 13 "parser_cocci_menhir.ml"
 )
   | Tunsigned of (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 18 "parser_cocci_menhir.ml"
 )
   | Tunion of (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 23 "parser_cocci_menhir.ml"
 )
   | Ttypedef of (
-# 147 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
 # 28 "parser_cocci_menhir.ml"
 )
   | Tstruct of (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 33 "parser_cocci_menhir.ml"
 )
   | Tstatic of (
-# 147 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
 # 38 "parser_cocci_menhir.ml"
 )
   | Tssize_t of (
-# 143 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
 # 43 "parser_cocci_menhir.ml"
 )
   | Tsize_t of (
-# 143 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
 # 48 "parser_cocci_menhir.ml"
 )
   | Tsigned of (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 53 "parser_cocci_menhir.ml"
 )
   | Tshort of (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 58 "parser_cocci_menhir.ml"
 )
   | Tregister of (
-# 147 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
 # 63 "parser_cocci_menhir.ml"
 )
   | Tptrdiff_t of (
-# 143 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
 # 68 "parser_cocci_menhir.ml"
 )
   | Tlong of (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 73 "parser_cocci_menhir.ml"
 )
   | Tlist
   | Tint of (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 79 "parser_cocci_menhir.ml"
 )
   | Tinline of (
-# 147 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
 # 84 "parser_cocci_menhir.ml"
 )
   | Tfloat of (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 89 "parser_cocci_menhir.ml"
 )
   | Textern of (
-# 147 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
 # 94 "parser_cocci_menhir.ml"
 )
   | Tenum of (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 99 "parser_cocci_menhir.ml"
 )
   | Tdouble of (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 104 "parser_cocci_menhir.ml"
 )
   | Tconst of (
-# 148 "parser_cocci_menhir.mly"
+# 122 "parser_cocci_menhir.mly"
       (Data.clt)
 # 109 "parser_cocci_menhir.ml"
 )
   | Tchar of (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 114 "parser_cocci_menhir.ml"
 )
   | Tauto of (
-# 147 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
 # 119 "parser_cocci_menhir.ml"
 )
   | Tattr of (
-# 149 "parser_cocci_menhir.mly"
+# 123 "parser_cocci_menhir.mly"
       (string * Data.clt)
 # 124 "parser_cocci_menhir.ml"
 )
   | TXor of (
-# 190 "parser_cocci_menhir.mly"
+# 164 "parser_cocci_menhir.mly"
        (Data.clt)
 # 129 "parser_cocci_menhir.ml"
 )
   | TWords
   | TWhy0
   | TWhy of (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 136 "parser_cocci_menhir.ml"
 )
   | TWhile of (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 141 "parser_cocci_menhir.ml"
 )
   | TWhenTrue of (
-# 172 "parser_cocci_menhir.mly"
+# 146 "parser_cocci_menhir.mly"
        (Data.clt)
 # 146 "parser_cocci_menhir.ml"
 )
   | TWhenFalse of (
-# 172 "parser_cocci_menhir.mly"
+# 146 "parser_cocci_menhir.mly"
        (Data.clt)
 # 151 "parser_cocci_menhir.ml"
 )
   | TWhen of (
-# 172 "parser_cocci_menhir.mly"
+# 146 "parser_cocci_menhir.mly"
        (Data.clt)
 # 156 "parser_cocci_menhir.ml"
 )
@@ -158,340 +158,340 @@ type token =
   | TUsing
   | TUnderscore
   | TUndef of (
-# 179 "parser_cocci_menhir.mly"
+# 153 "parser_cocci_menhir.mly"
        (Data.clt * token)
 # 164 "parser_cocci_menhir.ml"
 )
   | TTypedef
   | TTypeId of (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 170 "parser_cocci_menhir.ml"
 )
   | TType
   | TTildeExclEq of (
-# 192 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
 # 176 "parser_cocci_menhir.ml"
 )
   | TTildeEq of (
-# 192 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
 # 181 "parser_cocci_menhir.ml"
 )
   | TTilde of (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 186 "parser_cocci_menhir.ml"
 )
   | TSymbol
   | TSymId of (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 192 "parser_cocci_menhir.ml"
 )
   | TSwitch of (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 197 "parser_cocci_menhir.ml"
 )
   | TSub of (
-# 192 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
 # 202 "parser_cocci_menhir.ml"
 )
   | TString of (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 207 "parser_cocci_menhir.ml"
 )
   | TStrict of (
-# 172 "parser_cocci_menhir.mly"
+# 146 "parser_cocci_menhir.mly"
        (Data.clt)
 # 212 "parser_cocci_menhir.ml"
 )
   | TStatement
   | TSizeof of (
-# 152 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
 # 218 "parser_cocci_menhir.ml"
 )
   | TShROp of (
-# 194 "parser_cocci_menhir.mly"
+# 168 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
 # 223 "parser_cocci_menhir.ml"
 )
   | TShLOp of (
-# 194 "parser_cocci_menhir.mly"
+# 168 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
 # 228 "parser_cocci_menhir.ml"
 )
   | TScriptData of (
-# 169 "parser_cocci_menhir.mly"
+# 143 "parser_cocci_menhir.mly"
        (string)
 # 233 "parser_cocci_menhir.ml"
 )
   | TScript
   | TRuleName of (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 239 "parser_cocci_menhir.ml"
 )
   | TRightIso
   | TReturn of (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 245 "parser_cocci_menhir.ml"
 )
   | TPure
   | TPtrOp of (
-# 202 "parser_cocci_menhir.mly"
+# 176 "parser_cocci_menhir.mly"
        (Data.clt)
 # 251 "parser_cocci_menhir.ml"
 )
   | TPtVirg of (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 256 "parser_cocci_menhir.ml"
 )
   | TPragma of (
-# 154 "parser_cocci_menhir.mly"
+# 128 "parser_cocci_menhir.mly"
        (Ast_cocci.added_string * Data.clt)
 # 261 "parser_cocci_menhir.ml"
 )
   | TPosition
   | TPosAny
   | TPlusFile of (
-# 181 "parser_cocci_menhir.mly"
+# 155 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 268 "parser_cocci_menhir.ml"
 )
   | TPlus0
   | TPlus of (
-# 196 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
 # 274 "parser_cocci_menhir.ml"
 )
   | TPathIsoFile of (
-# 177 "parser_cocci_menhir.mly"
+# 151 "parser_cocci_menhir.mly"
        (string)
 # 279 "parser_cocci_menhir.ml"
 )
   | TParameter
   | TPOEllipsis of (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 285 "parser_cocci_menhir.ml"
 )
   | TPCEllipsis of (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 290 "parser_cocci_menhir.ml"
 )
   | TPArob of (
-# 168 "parser_cocci_menhir.mly"
+# 142 "parser_cocci_menhir.mly"
        (Data.clt)
 # 295 "parser_cocci_menhir.ml"
 )
   | TOrLog of (
-# 187 "parser_cocci_menhir.mly"
+# 161 "parser_cocci_menhir.mly"
        (Data.clt)
 # 300 "parser_cocci_menhir.ml"
 )
   | TOr of (
-# 189 "parser_cocci_menhir.mly"
+# 163 "parser_cocci_menhir.mly"
        (Data.clt)
 # 305 "parser_cocci_menhir.ml"
 )
   | TOn
   | TOPar0 of (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 311 "parser_cocci_menhir.ml"
 )
   | TOPar of (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 316 "parser_cocci_menhir.ml"
 )
   | TOInit of (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 321 "parser_cocci_menhir.ml"
 )
   | TOEllipsis of (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 326 "parser_cocci_menhir.ml"
 )
   | TOCro of (
-# 200 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
 # 331 "parser_cocci_menhir.ml"
 )
   | TOBrace of (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 336 "parser_cocci_menhir.ml"
 )
   | TNothing
   | TNotEq of (
-# 192 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
 # 342 "parser_cocci_menhir.ml"
 )
   | TNever
   | TName
   | TMul of (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 349 "parser_cocci_menhir.ml"
 )
   | TMinusFile of (
-# 181 "parser_cocci_menhir.mly"
+# 155 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 354 "parser_cocci_menhir.ml"
 )
   | TMinus of (
-# 196 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
 # 359 "parser_cocci_menhir.ml"
 )
   | TMid0 of (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 364 "parser_cocci_menhir.ml"
 )
   | TMetavariable
   | TMetaType of (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 370 "parser_cocci_menhir.ml"
 )
   | TMetaStmList of (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 375 "parser_cocci_menhir.ml"
 )
   | TMetaStm of (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 380 "parser_cocci_menhir.ml"
 )
   | TMetaPos of (
-# 165 "parser_cocci_menhir.mly"
+# 139 "parser_cocci_menhir.mly"
        (Parse_aux.pos_info)
 # 385 "parser_cocci_menhir.ml"
 )
   | TMetaParamList of (
-# 162 "parser_cocci_menhir.mly"
+# 136 "parser_cocci_menhir.mly"
        (Parse_aux.list_info)
 # 390 "parser_cocci_menhir.ml"
 )
   | TMetaParam of (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 395 "parser_cocci_menhir.ml"
 )
   | TMetaLocalIdExp of (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 400 "parser_cocci_menhir.ml"
 )
   | TMetaLocalFunc of (
-# 157 "parser_cocci_menhir.mly"
+# 131 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
 # 405 "parser_cocci_menhir.ml"
 )
   | TMetaIterator of (
-# 158 "parser_cocci_menhir.mly"
+# 132 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
 # 410 "parser_cocci_menhir.ml"
 )
   | TMetaInitList of (
-# 162 "parser_cocci_menhir.mly"
+# 136 "parser_cocci_menhir.mly"
        (Parse_aux.list_info)
 # 415 "parser_cocci_menhir.ml"
 )
   | TMetaInit of (
-# 161 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 420 "parser_cocci_menhir.ml"
 )
   | TMetaIdExp of (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 425 "parser_cocci_menhir.ml"
 )
   | TMetaId of (
-# 156 "parser_cocci_menhir.mly"
+# 130 "parser_cocci_menhir.mly"
        (Parse_aux.midinfo)
 # 430 "parser_cocci_menhir.ml"
 )
   | TMetaFunc of (
-# 157 "parser_cocci_menhir.mly"
+# 131 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
 # 435 "parser_cocci_menhir.ml"
 )
   | TMetaFieldList of (
-# 163 "parser_cocci_menhir.mly"
+# 137 "parser_cocci_menhir.mly"
        (Parse_aux.list_info)
 # 440 "parser_cocci_menhir.ml"
 )
   | TMetaField of (
-# 161 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 445 "parser_cocci_menhir.ml"
 )
   | TMetaExpList of (
-# 162 "parser_cocci_menhir.mly"
+# 136 "parser_cocci_menhir.mly"
        (Parse_aux.list_info)
 # 450 "parser_cocci_menhir.ml"
 )
   | TMetaExp of (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 455 "parser_cocci_menhir.ml"
 )
   | TMetaErr of (
-# 159 "parser_cocci_menhir.mly"
+# 133 "parser_cocci_menhir.mly"
        (Parse_aux.expinfo)
 # 460 "parser_cocci_menhir.ml"
 )
   | TMetaDeclarer of (
-# 158 "parser_cocci_menhir.mly"
+# 132 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
 # 465 "parser_cocci_menhir.ml"
 )
   | TMetaDecl of (
-# 161 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 470 "parser_cocci_menhir.ml"
 )
   | TMetaConst of (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 475 "parser_cocci_menhir.ml"
 )
   | TMeta of (
-# 161 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 480 "parser_cocci_menhir.ml"
 )
   | TMPtVirg
   | TLogOp of (
-# 193 "parser_cocci_menhir.mly"
+# 167 "parser_cocci_menhir.mly"
        (Ast_cocci.logicalOp * Data.clt)
 # 486 "parser_cocci_menhir.ml"
 )
   | TLocal
   | TLineEnd of (
-# 172 "parser_cocci_menhir.mly"
+# 146 "parser_cocci_menhir.mly"
        (Data.clt)
 # 492 "parser_cocci_menhir.ml"
 )
   | TIteratorId of (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 497 "parser_cocci_menhir.ml"
 )
@@ -507,60 +507,60 @@ type token =
   | TIso
   | TInvalid
   | TInt of (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 513 "parser_cocci_menhir.ml"
 )
   | TInitialize
   | TInitialiser
   | TIncludeNL of (
-# 178 "parser_cocci_menhir.mly"
+# 152 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 520 "parser_cocci_menhir.ml"
 )
   | TIncludeL of (
-# 178 "parser_cocci_menhir.mly"
+# 152 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 525 "parser_cocci_menhir.ml"
 )
   | TInc of (
-# 183 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
 # 530 "parser_cocci_menhir.ml"
 )
   | TIf of (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 535 "parser_cocci_menhir.ml"
 )
   | TIdentifier
   | TIdent of (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 541 "parser_cocci_menhir.ml"
 )
   | TIdExpression
   | TGoto of (
-# 152 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
 # 547 "parser_cocci_menhir.ml"
 )
   | TGenerated
   | TFunction
   | TFunDecl of (
-# 152 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
 # 554 "parser_cocci_menhir.ml"
 )
   | TFresh
   | TForall
   | TFor of (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 561 "parser_cocci_menhir.ml"
 )
   | TFloat of (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 566 "parser_cocci_menhir.ml"
 )
@@ -572,152 +572,152 @@ type token =
   | TEver
   | TError
   | TEqEq of (
-# 192 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
 # 578 "parser_cocci_menhir.ml"
 )
   | TEq of (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 583 "parser_cocci_menhir.ml"
 )
   | TElse of (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 588 "parser_cocci_menhir.ml"
 )
   | TEllipsis of (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 593 "parser_cocci_menhir.ml"
 )
   | TDotDot of (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 598 "parser_cocci_menhir.ml"
 )
   | TDot of (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 603 "parser_cocci_menhir.ml"
 )
   | TDo of (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 608 "parser_cocci_menhir.ml"
 )
   | TDmOp of (
-# 195 "parser_cocci_menhir.mly"
+# 169 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
 # 613 "parser_cocci_menhir.ml"
 )
   | TDisable
   | TDepends
   | TDefineParam of (
-# 180 "parser_cocci_menhir.mly"
+# 154 "parser_cocci_menhir.mly"
        (Data.clt * token * int * int)
 # 620 "parser_cocci_menhir.ml"
 )
   | TDefine of (
-# 179 "parser_cocci_menhir.mly"
+# 153 "parser_cocci_menhir.mly"
        (Data.clt * token)
 # 625 "parser_cocci_menhir.ml"
 )
   | TDefault of (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 630 "parser_cocci_menhir.ml"
 )
   | TDeclarerId of (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 635 "parser_cocci_menhir.ml"
 )
   | TDeclarer
   | TDeclaration
   | TDec of (
-# 183 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
 # 642 "parser_cocci_menhir.ml"
 )
   | TCppConcatOp
   | TContinue of (
-# 152 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
 # 648 "parser_cocci_menhir.ml"
 )
   | TContext
   | TConstant
   | TComma of (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 655 "parser_cocci_menhir.ml"
 )
   | TChar of (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 660 "parser_cocci_menhir.ml"
 )
   | TCase of (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 665 "parser_cocci_menhir.ml"
 )
   | TCPar0 of (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 670 "parser_cocci_menhir.ml"
 )
   | TCPar of (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 675 "parser_cocci_menhir.ml"
 )
   | TCEllipsis of (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 680 "parser_cocci_menhir.ml"
 )
   | TCCro of (
-# 200 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
 # 685 "parser_cocci_menhir.ml"
 )
   | TCBrace of (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 690 "parser_cocci_menhir.ml"
 )
   | TBreak of (
-# 152 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
 # 695 "parser_cocci_menhir.ml"
 )
   | TBang0
   | TBang of (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 701 "parser_cocci_menhir.ml"
 )
   | TAssign of (
-# 206 "parser_cocci_menhir.mly"
+# 180 "parser_cocci_menhir.mly"
        (Ast_cocci.assignOp * Data.clt)
 # 706 "parser_cocci_menhir.ml"
 )
   | TArobArob
   | TArob
   | TAny of (
-# 172 "parser_cocci_menhir.mly"
+# 146 "parser_cocci_menhir.mly"
        (Data.clt)
 # 713 "parser_cocci_menhir.ml"
 )
   | TAndLog of (
-# 188 "parser_cocci_menhir.mly"
+# 162 "parser_cocci_menhir.mly"
        (Data.clt)
 # 718 "parser_cocci_menhir.ml"
 )
   | TAnd of (
-# 191 "parser_cocci_menhir.mly"
+# 165 "parser_cocci_menhir.mly"
        (Data.clt)
 # 723 "parser_cocci_menhir.ml"
 )
@@ -726,7 +726,7 @@ type token =
 and _menhir_jeton = token
 
 
-# 53 "parser_cocci_menhir.mly"
+# 27 "parser_cocci_menhir.mly"
   
 
 (* Not clear how to allow function declarations to specify a return type
@@ -1757,7 +1757,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_aexpr = 
-# 2357 "parser_cocci_menhir.mly"
+# 2331 "parser_cocci_menhir.mly"
              ( Ast0.set_arg_exp _1 )
 # 1763 "parser_cocci_menhir.ml"
          in
@@ -1778,14 +1778,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 162 "parser_cocci_menhir.mly"
+# 136 "parser_cocci_menhir.mly"
        (Parse_aux.list_info)
 # 1784 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_aexpr = 
-# 2359 "parser_cocci_menhir.mly"
+# 2333 "parser_cocci_menhir.mly"
       ( let (nm,lenname,pure,clt) = _1 in
       let nm = P.clt2mcode nm clt in
       let lenname =
@@ -1816,7 +1816,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_aexpr = 
-# 2368 "parser_cocci_menhir.mly"
+# 2342 "parser_cocci_menhir.mly"
       ( Ast0.set_arg_exp(Ast0.wrap(Ast0.TypeExp(_1))) )
 # 1822 "parser_cocci_menhir.ml"
          in
@@ -1838,7 +1838,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_any_strict = 
-# 2404 "parser_cocci_menhir.mly"
+# 2378 "parser_cocci_menhir.mly"
             ( Ast.WhenAny )
 # 1844 "parser_cocci_menhir.ml"
          in
@@ -1860,7 +1860,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_any_strict = 
-# 2405 "parser_cocci_menhir.mly"
+# 2379 "parser_cocci_menhir.mly"
             ( Ast.WhenStrict )
 # 1866 "parser_cocci_menhir.ml"
          in
@@ -1882,7 +1882,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_any_strict = 
-# 2406 "parser_cocci_menhir.mly"
+# 2380 "parser_cocci_menhir.mly"
             ( Ast.WhenForall )
 # 1888 "parser_cocci_menhir.ml"
          in
@@ -1904,7 +1904,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_any_strict = 
-# 2407 "parser_cocci_menhir.mly"
+# 2381 "parser_cocci_menhir.mly"
             ( Ast.WhenExists )
 # 1910 "parser_cocci_menhir.ml"
          in
@@ -1928,7 +1928,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_ = 
-# 1578 "parser_cocci_menhir.mly"
+# 1552 "parser_cocci_menhir.mly"
                                             ( _1 )
 # 1934 "parser_cocci_menhir.ml"
          in
@@ -1960,7 +1960,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 1966 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -1968,7 +1968,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_ = 
-# 1580 "parser_cocci_menhir.mly"
+# 1554 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Mul _1 _2 _3 )
 # 1974 "parser_cocci_menhir.ml"
          in
@@ -2000,7 +2000,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 195 "parser_cocci_menhir.mly"
+# 169 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
 # 2006 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2008,7 +2008,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_ = 
-# 1582 "parser_cocci_menhir.mly"
+# 1556 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
 # 2014 "parser_cocci_menhir.ml"
          in
@@ -2040,7 +2040,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 196 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
 # 2046 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2048,7 +2048,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_ = 
-# 1584 "parser_cocci_menhir.mly"
+# 1558 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Plus _1 _2 _3 )
 # 2054 "parser_cocci_menhir.ml"
          in
@@ -2080,7 +2080,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 196 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
 # 2086 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2088,7 +2088,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_ = 
-# 1586 "parser_cocci_menhir.mly"
+# 1560 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Minus _1 _2 _3 )
 # 2094 "parser_cocci_menhir.ml"
          in
@@ -2120,7 +2120,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 194 "parser_cocci_menhir.mly"
+# 168 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
 # 2126 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2128,7 +2128,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_ = 
-# 1588 "parser_cocci_menhir.mly"
+# 1562 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
 # 2134 "parser_cocci_menhir.ml"
          in
@@ -2160,7 +2160,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 194 "parser_cocci_menhir.mly"
+# 168 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
 # 2166 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2168,7 +2168,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_ = 
-# 1590 "parser_cocci_menhir.mly"
+# 1564 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
 # 2174 "parser_cocci_menhir.ml"
          in
@@ -2200,7 +2200,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 193 "parser_cocci_menhir.mly"
+# 167 "parser_cocci_menhir.mly"
        (Ast_cocci.logicalOp * Data.clt)
 # 2206 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2208,7 +2208,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_ = 
-# 1592 "parser_cocci_menhir.mly"
+# 1566 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.logic_op op _1 clt _3 )
 # 2214 "parser_cocci_menhir.ml"
          in
@@ -2240,7 +2240,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 192 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
 # 2246 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2248,7 +2248,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_ = 
-# 1594 "parser_cocci_menhir.mly"
+# 1568 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.Eq _1 _2 _3 )
 # 2254 "parser_cocci_menhir.ml"
          in
@@ -2280,7 +2280,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 192 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
 # 2286 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2288,7 +2288,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_ = 
-# 1596 "parser_cocci_menhir.mly"
+# 1570 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.NotEq _1 _2 _3 )
 # 2294 "parser_cocci_menhir.ml"
          in
@@ -2320,7 +2320,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 191 "parser_cocci_menhir.mly"
+# 165 "parser_cocci_menhir.mly"
        (Data.clt)
 # 2326 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2328,7 +2328,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_ = 
-# 1598 "parser_cocci_menhir.mly"
+# 1572 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.And _1 _2 _3 )
 # 2334 "parser_cocci_menhir.ml"
          in
@@ -2360,7 +2360,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 189 "parser_cocci_menhir.mly"
+# 163 "parser_cocci_menhir.mly"
        (Data.clt)
 # 2366 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2368,7 +2368,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_ = 
-# 1600 "parser_cocci_menhir.mly"
+# 1574 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Or _1 _2 _3 )
 # 2374 "parser_cocci_menhir.ml"
          in
@@ -2400,7 +2400,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 190 "parser_cocci_menhir.mly"
+# 164 "parser_cocci_menhir.mly"
        (Data.clt)
 # 2406 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2408,7 +2408,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_ = 
-# 1602 "parser_cocci_menhir.mly"
+# 1576 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Xor _1 _2 _3 )
 # 2414 "parser_cocci_menhir.ml"
          in
@@ -2440,7 +2440,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 188 "parser_cocci_menhir.mly"
+# 162 "parser_cocci_menhir.mly"
        (Data.clt)
 # 2446 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2448,7 +2448,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_ = 
-# 1604 "parser_cocci_menhir.mly"
+# 1578 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.AndLog _1 _2 _3 )
 # 2454 "parser_cocci_menhir.ml"
          in
@@ -2480,7 +2480,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 187 "parser_cocci_menhir.mly"
+# 161 "parser_cocci_menhir.mly"
        (Data.clt)
 # 2486 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2488,7 +2488,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_ = 
-# 1606 "parser_cocci_menhir.mly"
+# 1580 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.OrLog _1 _2 _3 )
 # 2494 "parser_cocci_menhir.ml"
          in
@@ -2512,7 +2512,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1578 "parser_cocci_menhir.mly"
+# 1552 "parser_cocci_menhir.mly"
                                             ( _1 )
 # 2518 "parser_cocci_menhir.ml"
          in
@@ -2544,7 +2544,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 2550 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2552,7 +2552,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1580 "parser_cocci_menhir.mly"
+# 1554 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Mul _1 _2 _3 )
 # 2558 "parser_cocci_menhir.ml"
          in
@@ -2584,7 +2584,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 195 "parser_cocci_menhir.mly"
+# 169 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
 # 2590 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2592,7 +2592,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1582 "parser_cocci_menhir.mly"
+# 1556 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
 # 2598 "parser_cocci_menhir.ml"
          in
@@ -2624,7 +2624,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 196 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
 # 2630 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2632,7 +2632,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1584 "parser_cocci_menhir.mly"
+# 1558 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Plus _1 _2 _3 )
 # 2638 "parser_cocci_menhir.ml"
          in
@@ -2664,7 +2664,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 196 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
 # 2670 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2672,7 +2672,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1586 "parser_cocci_menhir.mly"
+# 1560 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Minus _1 _2 _3 )
 # 2678 "parser_cocci_menhir.ml"
          in
@@ -2704,7 +2704,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 194 "parser_cocci_menhir.mly"
+# 168 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
 # 2710 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2712,7 +2712,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1588 "parser_cocci_menhir.mly"
+# 1562 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
 # 2718 "parser_cocci_menhir.ml"
          in
@@ -2744,7 +2744,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 194 "parser_cocci_menhir.mly"
+# 168 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
 # 2750 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2752,7 +2752,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1590 "parser_cocci_menhir.mly"
+# 1564 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
 # 2758 "parser_cocci_menhir.ml"
          in
@@ -2784,7 +2784,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 193 "parser_cocci_menhir.mly"
+# 167 "parser_cocci_menhir.mly"
        (Ast_cocci.logicalOp * Data.clt)
 # 2790 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2792,7 +2792,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1592 "parser_cocci_menhir.mly"
+# 1566 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.logic_op op _1 clt _3 )
 # 2798 "parser_cocci_menhir.ml"
          in
@@ -2824,7 +2824,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 192 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
 # 2830 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2832,7 +2832,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1594 "parser_cocci_menhir.mly"
+# 1568 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.Eq _1 _2 _3 )
 # 2838 "parser_cocci_menhir.ml"
          in
@@ -2864,7 +2864,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 192 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
 # 2870 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2872,7 +2872,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1596 "parser_cocci_menhir.mly"
+# 1570 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.NotEq _1 _2 _3 )
 # 2878 "parser_cocci_menhir.ml"
          in
@@ -2904,7 +2904,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 191 "parser_cocci_menhir.mly"
+# 165 "parser_cocci_menhir.mly"
        (Data.clt)
 # 2910 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2912,7 +2912,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1598 "parser_cocci_menhir.mly"
+# 1572 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.And _1 _2 _3 )
 # 2918 "parser_cocci_menhir.ml"
          in
@@ -2944,7 +2944,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 189 "parser_cocci_menhir.mly"
+# 163 "parser_cocci_menhir.mly"
        (Data.clt)
 # 2950 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2952,7 +2952,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1600 "parser_cocci_menhir.mly"
+# 1574 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Or _1 _2 _3 )
 # 2958 "parser_cocci_menhir.ml"
          in
@@ -2984,7 +2984,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 190 "parser_cocci_menhir.mly"
+# 164 "parser_cocci_menhir.mly"
        (Data.clt)
 # 2990 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -2992,7 +2992,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1602 "parser_cocci_menhir.mly"
+# 1576 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Xor _1 _2 _3 )
 # 2998 "parser_cocci_menhir.ml"
          in
@@ -3024,7 +3024,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 188 "parser_cocci_menhir.mly"
+# 162 "parser_cocci_menhir.mly"
        (Data.clt)
 # 3030 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3032,7 +3032,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1604 "parser_cocci_menhir.mly"
+# 1578 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.AndLog _1 _2 _3 )
 # 3038 "parser_cocci_menhir.ml"
          in
@@ -3064,7 +3064,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 187 "parser_cocci_menhir.mly"
+# 161 "parser_cocci_menhir.mly"
        (Data.clt)
 # 3070 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3072,7 +3072,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1606 "parser_cocci_menhir.mly"
+# 1580 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.OrLog _1 _2 _3 )
 # 3078 "parser_cocci_menhir.ml"
          in
@@ -3096,7 +3096,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_ = 
-# 1578 "parser_cocci_menhir.mly"
+# 1552 "parser_cocci_menhir.mly"
                                             ( _1 )
 # 3102 "parser_cocci_menhir.ml"
          in
@@ -3128,7 +3128,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 3134 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3136,7 +3136,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_ = 
-# 1580 "parser_cocci_menhir.mly"
+# 1554 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Mul _1 _2 _3 )
 # 3142 "parser_cocci_menhir.ml"
          in
@@ -3168,7 +3168,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 195 "parser_cocci_menhir.mly"
+# 169 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
 # 3174 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3176,7 +3176,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_ = 
-# 1582 "parser_cocci_menhir.mly"
+# 1556 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
 # 3182 "parser_cocci_menhir.ml"
          in
@@ -3208,7 +3208,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 196 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
 # 3214 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3216,7 +3216,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_ = 
-# 1584 "parser_cocci_menhir.mly"
+# 1558 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Plus _1 _2 _3 )
 # 3222 "parser_cocci_menhir.ml"
          in
@@ -3248,7 +3248,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 196 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
 # 3254 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3256,7 +3256,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_ = 
-# 1586 "parser_cocci_menhir.mly"
+# 1560 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Minus _1 _2 _3 )
 # 3262 "parser_cocci_menhir.ml"
          in
@@ -3288,7 +3288,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 194 "parser_cocci_menhir.mly"
+# 168 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
 # 3294 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3296,7 +3296,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_ = 
-# 1588 "parser_cocci_menhir.mly"
+# 1562 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
 # 3302 "parser_cocci_menhir.ml"
          in
@@ -3328,7 +3328,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 194 "parser_cocci_menhir.mly"
+# 168 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
 # 3334 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3336,7 +3336,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_ = 
-# 1590 "parser_cocci_menhir.mly"
+# 1564 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
 # 3342 "parser_cocci_menhir.ml"
          in
@@ -3368,7 +3368,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 193 "parser_cocci_menhir.mly"
+# 167 "parser_cocci_menhir.mly"
        (Ast_cocci.logicalOp * Data.clt)
 # 3374 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3376,7 +3376,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_ = 
-# 1592 "parser_cocci_menhir.mly"
+# 1566 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.logic_op op _1 clt _3 )
 # 3382 "parser_cocci_menhir.ml"
          in
@@ -3408,7 +3408,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 192 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
 # 3414 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3416,7 +3416,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_ = 
-# 1594 "parser_cocci_menhir.mly"
+# 1568 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.Eq _1 _2 _3 )
 # 3422 "parser_cocci_menhir.ml"
          in
@@ -3448,7 +3448,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 192 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
 # 3454 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3456,7 +3456,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_ = 
-# 1596 "parser_cocci_menhir.mly"
+# 1570 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.NotEq _1 _2 _3 )
 # 3462 "parser_cocci_menhir.ml"
          in
@@ -3488,7 +3488,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 191 "parser_cocci_menhir.mly"
+# 165 "parser_cocci_menhir.mly"
        (Data.clt)
 # 3494 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3496,7 +3496,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_ = 
-# 1598 "parser_cocci_menhir.mly"
+# 1572 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.And _1 _2 _3 )
 # 3502 "parser_cocci_menhir.ml"
          in
@@ -3528,7 +3528,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 189 "parser_cocci_menhir.mly"
+# 163 "parser_cocci_menhir.mly"
        (Data.clt)
 # 3534 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3536,7 +3536,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_ = 
-# 1600 "parser_cocci_menhir.mly"
+# 1574 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Or _1 _2 _3 )
 # 3542 "parser_cocci_menhir.ml"
          in
@@ -3568,7 +3568,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 190 "parser_cocci_menhir.mly"
+# 164 "parser_cocci_menhir.mly"
        (Data.clt)
 # 3574 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3576,7 +3576,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_ = 
-# 1602 "parser_cocci_menhir.mly"
+# 1576 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Xor _1 _2 _3 )
 # 3582 "parser_cocci_menhir.ml"
          in
@@ -3608,7 +3608,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 188 "parser_cocci_menhir.mly"
+# 162 "parser_cocci_menhir.mly"
        (Data.clt)
 # 3614 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3616,7 +3616,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_ = 
-# 1604 "parser_cocci_menhir.mly"
+# 1578 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.AndLog _1 _2 _3 )
 # 3622 "parser_cocci_menhir.ml"
          in
@@ -3648,7 +3648,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 187 "parser_cocci_menhir.mly"
+# 161 "parser_cocci_menhir.mly"
        (Data.clt)
 # 3654 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3656,7 +3656,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_ = 
-# 1606 "parser_cocci_menhir.mly"
+# 1580 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.OrLog _1 _2 _3 )
 # 3662 "parser_cocci_menhir.ml"
          in
@@ -3680,7 +3680,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1578 "parser_cocci_menhir.mly"
+# 1552 "parser_cocci_menhir.mly"
                                             ( _1 )
 # 3686 "parser_cocci_menhir.ml"
          in
@@ -3712,7 +3712,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 3718 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3720,7 +3720,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1580 "parser_cocci_menhir.mly"
+# 1554 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Mul _1 _2 _3 )
 # 3726 "parser_cocci_menhir.ml"
          in
@@ -3752,7 +3752,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 195 "parser_cocci_menhir.mly"
+# 169 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
 # 3758 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3760,7 +3760,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1582 "parser_cocci_menhir.mly"
+# 1556 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
 # 3766 "parser_cocci_menhir.ml"
          in
@@ -3792,7 +3792,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 196 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
 # 3798 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3800,7 +3800,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1584 "parser_cocci_menhir.mly"
+# 1558 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Plus _1 _2 _3 )
 # 3806 "parser_cocci_menhir.ml"
          in
@@ -3832,7 +3832,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 196 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
 # 3838 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3840,7 +3840,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1586 "parser_cocci_menhir.mly"
+# 1560 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Minus _1 _2 _3 )
 # 3846 "parser_cocci_menhir.ml"
          in
@@ -3872,7 +3872,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 194 "parser_cocci_menhir.mly"
+# 168 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
 # 3878 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3880,7 +3880,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1588 "parser_cocci_menhir.mly"
+# 1562 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
 # 3886 "parser_cocci_menhir.ml"
          in
@@ -3912,7 +3912,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 194 "parser_cocci_menhir.mly"
+# 168 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
 # 3918 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3920,7 +3920,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1590 "parser_cocci_menhir.mly"
+# 1564 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
 # 3926 "parser_cocci_menhir.ml"
          in
@@ -3952,7 +3952,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 193 "parser_cocci_menhir.mly"
+# 167 "parser_cocci_menhir.mly"
        (Ast_cocci.logicalOp * Data.clt)
 # 3958 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -3960,7 +3960,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1592 "parser_cocci_menhir.mly"
+# 1566 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.logic_op op _1 clt _3 )
 # 3966 "parser_cocci_menhir.ml"
          in
@@ -3992,7 +3992,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 192 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
 # 3998 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -4000,7 +4000,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1594 "parser_cocci_menhir.mly"
+# 1568 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.Eq _1 _2 _3 )
 # 4006 "parser_cocci_menhir.ml"
          in
@@ -4032,7 +4032,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 192 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
 # 4038 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -4040,7 +4040,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1596 "parser_cocci_menhir.mly"
+# 1570 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.NotEq _1 _2 _3 )
 # 4046 "parser_cocci_menhir.ml"
          in
@@ -4072,7 +4072,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 191 "parser_cocci_menhir.mly"
+# 165 "parser_cocci_menhir.mly"
        (Data.clt)
 # 4078 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -4080,7 +4080,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1598 "parser_cocci_menhir.mly"
+# 1572 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.And _1 _2 _3 )
 # 4086 "parser_cocci_menhir.ml"
          in
@@ -4112,7 +4112,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 189 "parser_cocci_menhir.mly"
+# 163 "parser_cocci_menhir.mly"
        (Data.clt)
 # 4118 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -4120,7 +4120,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1600 "parser_cocci_menhir.mly"
+# 1574 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Or _1 _2 _3 )
 # 4126 "parser_cocci_menhir.ml"
          in
@@ -4152,7 +4152,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 190 "parser_cocci_menhir.mly"
+# 164 "parser_cocci_menhir.mly"
        (Data.clt)
 # 4158 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -4160,7 +4160,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1602 "parser_cocci_menhir.mly"
+# 1576 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Xor _1 _2 _3 )
 # 4166 "parser_cocci_menhir.ml"
          in
@@ -4192,7 +4192,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 188 "parser_cocci_menhir.mly"
+# 162 "parser_cocci_menhir.mly"
        (Data.clt)
 # 4198 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -4200,7 +4200,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1604 "parser_cocci_menhir.mly"
+# 1578 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.AndLog _1 _2 _3 )
 # 4206 "parser_cocci_menhir.ml"
          in
@@ -4232,7 +4232,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 187 "parser_cocci_menhir.mly"
+# 161 "parser_cocci_menhir.mly"
        (Data.clt)
 # 4238 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -4240,7 +4240,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1606 "parser_cocci_menhir.mly"
+# 1580 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.OrLog _1 _2 _3 )
 # 4246 "parser_cocci_menhir.ml"
          in
@@ -4264,7 +4264,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_arith_expr_bis = 
-# 1611 "parser_cocci_menhir.mly"
+# 1585 "parser_cocci_menhir.mly"
                                                              ( _1 )
 # 4270 "parser_cocci_menhir.ml"
          in
@@ -4296,7 +4296,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 4302 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -4304,7 +4304,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1613 "parser_cocci_menhir.mly"
+# 1587 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Mul _1 _2 _3 )
 # 4310 "parser_cocci_menhir.ml"
          in
@@ -4336,7 +4336,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 195 "parser_cocci_menhir.mly"
+# 169 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
 # 4342 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -4344,7 +4344,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1615 "parser_cocci_menhir.mly"
+# 1589 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
 # 4350 "parser_cocci_menhir.ml"
          in
@@ -4376,7 +4376,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 196 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
 # 4382 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -4384,7 +4384,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1617 "parser_cocci_menhir.mly"
+# 1591 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Plus _1 _2 _3 )
 # 4390 "parser_cocci_menhir.ml"
          in
@@ -4416,7 +4416,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 196 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
 # 4422 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -4424,7 +4424,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1619 "parser_cocci_menhir.mly"
+# 1593 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Minus _1 _2 _3 )
 # 4430 "parser_cocci_menhir.ml"
          in
@@ -4456,7 +4456,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 194 "parser_cocci_menhir.mly"
+# 168 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
 # 4462 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -4464,7 +4464,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1621 "parser_cocci_menhir.mly"
+# 1595 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
 # 4470 "parser_cocci_menhir.ml"
          in
@@ -4496,7 +4496,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 194 "parser_cocci_menhir.mly"
+# 168 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
 # 4502 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -4504,7 +4504,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1623 "parser_cocci_menhir.mly"
+# 1597 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
 # 4510 "parser_cocci_menhir.ml"
          in
@@ -4536,7 +4536,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 193 "parser_cocci_menhir.mly"
+# 167 "parser_cocci_menhir.mly"
        (Ast_cocci.logicalOp * Data.clt)
 # 4542 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -4544,7 +4544,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1625 "parser_cocci_menhir.mly"
+# 1599 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.logic_op op _1 clt _3 )
 # 4550 "parser_cocci_menhir.ml"
          in
@@ -4576,7 +4576,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 192 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
 # 4582 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -4584,7 +4584,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1627 "parser_cocci_menhir.mly"
+# 1601 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.Eq _1 _2 _3 )
 # 4590 "parser_cocci_menhir.ml"
          in
@@ -4616,7 +4616,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 192 "parser_cocci_menhir.mly"
+# 166 "parser_cocci_menhir.mly"
        (Data.clt)
 # 4622 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -4624,7 +4624,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1629 "parser_cocci_menhir.mly"
+# 1603 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.NotEq _1 _2 _3 )
 # 4630 "parser_cocci_menhir.ml"
          in
@@ -4656,7 +4656,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 191 "parser_cocci_menhir.mly"
+# 165 "parser_cocci_menhir.mly"
        (Data.clt)
 # 4662 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -4664,7 +4664,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1631 "parser_cocci_menhir.mly"
+# 1605 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.And _1 _2 _3 )
 # 4670 "parser_cocci_menhir.ml"
          in
@@ -4696,7 +4696,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 189 "parser_cocci_menhir.mly"
+# 163 "parser_cocci_menhir.mly"
        (Data.clt)
 # 4702 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -4704,7 +4704,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1633 "parser_cocci_menhir.mly"
+# 1607 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Or _1 _2 _3 )
 # 4710 "parser_cocci_menhir.ml"
          in
@@ -4736,7 +4736,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 190 "parser_cocci_menhir.mly"
+# 164 "parser_cocci_menhir.mly"
        (Data.clt)
 # 4742 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -4744,7 +4744,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1635 "parser_cocci_menhir.mly"
+# 1609 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Xor _1 _2 _3 )
 # 4750 "parser_cocci_menhir.ml"
          in
@@ -4776,7 +4776,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_bis = Obj.magic _3 in
         let _2 : (
-# 188 "parser_cocci_menhir.mly"
+# 162 "parser_cocci_menhir.mly"
        (Data.clt)
 # 4782 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -4784,7 +4784,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_bis = 
-# 1637 "parser_cocci_menhir.mly"
+# 1611 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.AndLog _1 _2 _3 )
 # 4790 "parser_cocci_menhir.ml"
          in
@@ -4806,7 +4806,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_arity = 
-# 654 "parser_cocci_menhir.mly"
+# 628 "parser_cocci_menhir.mly"
               ( Ast.UNIQUE )
 # 4812 "parser_cocci_menhir.ml"
          in
@@ -4828,7 +4828,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_arity = 
-# 655 "parser_cocci_menhir.mly"
+# 629 "parser_cocci_menhir.mly"
               ( Ast.OPT )
 # 4834 "parser_cocci_menhir.ml"
          in
@@ -4850,7 +4850,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_arity = 
-# 656 "parser_cocci_menhir.mly"
+# 630 "parser_cocci_menhir.mly"
               ( Ast.MULTI )
 # 4856 "parser_cocci_menhir.ml"
          in
@@ -4867,7 +4867,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 = 
-# 657 "parser_cocci_menhir.mly"
+# 631 "parser_cocci_menhir.mly"
                    ( Ast.NONE )
 # 4873 "parser_cocci_menhir.ml"
          in
@@ -4898,20 +4898,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let r : (
-# 200 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
 # 4904 "parser_cocci_menhir.ml"
         ) = Obj.magic r in
         let i : 'tv_option_eexpr_ = Obj.magic i in
         let l : (
-# 200 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
 # 4910 "parser_cocci_menhir.ml"
         ) = Obj.magic l in
         let _startpos = _startpos_l_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_array_dec = 
-# 1367 "parser_cocci_menhir.mly"
+# 1341 "parser_cocci_menhir.mly"
                                            ( (l,i,r) )
 # 4917 "parser_cocci_menhir.ml"
          in
@@ -4935,7 +4935,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_ = 
-# 1549 "parser_cocci_menhir.mly"
+# 1523 "parser_cocci_menhir.mly"
                                            ( _1 )
 # 4941 "parser_cocci_menhir.ml"
          in
@@ -4967,7 +4967,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 206 "parser_cocci_menhir.mly"
+# 180 "parser_cocci_menhir.mly"
        (Ast_cocci.assignOp * Data.clt)
 # 4973 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -4975,7 +4975,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_ = 
-# 1551 "parser_cocci_menhir.mly"
+# 1525 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in
       Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt,
                                Ast0.set_arg_exp _3,false)) )
@@ -5009,7 +5009,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 5015 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -5017,7 +5017,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_ = 
-# 1555 "parser_cocci_menhir.mly"
+# 1529 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.Assignment
             (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) )
@@ -5043,7 +5043,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_ = 
-# 1549 "parser_cocci_menhir.mly"
+# 1523 "parser_cocci_menhir.mly"
                                            ( _1 )
 # 5049 "parser_cocci_menhir.ml"
          in
@@ -5075,7 +5075,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 206 "parser_cocci_menhir.mly"
+# 180 "parser_cocci_menhir.mly"
        (Ast_cocci.assignOp * Data.clt)
 # 5081 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -5083,7 +5083,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_ = 
-# 1551 "parser_cocci_menhir.mly"
+# 1525 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in
       Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt,
                                Ast0.set_arg_exp _3,false)) )
@@ -5117,7 +5117,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 5123 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -5125,7 +5125,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_ = 
-# 1555 "parser_cocci_menhir.mly"
+# 1529 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.Assignment
             (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) )
@@ -5151,7 +5151,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_assign_expr_expr_invalid_ = 
-# 1549 "parser_cocci_menhir.mly"
+# 1523 "parser_cocci_menhir.mly"
                                            ( _1 )
 # 5157 "parser_cocci_menhir.ml"
          in
@@ -5183,7 +5183,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 206 "parser_cocci_menhir.mly"
+# 180 "parser_cocci_menhir.mly"
        (Ast_cocci.assignOp * Data.clt)
 # 5189 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -5191,7 +5191,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_assign_expr_expr_invalid_ = 
-# 1551 "parser_cocci_menhir.mly"
+# 1525 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in
       Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt,
                                Ast0.set_arg_exp _3,false)) )
@@ -5225,7 +5225,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 5231 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -5233,7 +5233,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_assign_expr_expr_invalid_ = 
-# 1555 "parser_cocci_menhir.mly"
+# 1529 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.Assignment
             (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) )
@@ -5259,7 +5259,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_assign_expr_bis = 
-# 1560 "parser_cocci_menhir.mly"
+# 1534 "parser_cocci_menhir.mly"
                                                             ( _1 )
 # 5265 "parser_cocci_menhir.ml"
          in
@@ -5291,7 +5291,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 206 "parser_cocci_menhir.mly"
+# 180 "parser_cocci_menhir.mly"
        (Ast_cocci.assignOp * Data.clt)
 # 5297 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -5299,7 +5299,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_assign_expr_bis = 
-# 1562 "parser_cocci_menhir.mly"
+# 1536 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in
       Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt,
                                Ast0.set_arg_exp _3,false)) )
@@ -5333,7 +5333,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 5339 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -5341,7 +5341,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_assign_expr_bis = 
-# 1566 "parser_cocci_menhir.mly"
+# 1540 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.Assignment
             (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) )
@@ -5367,7 +5367,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_ = 
-# 1546 "parser_cocci_menhir.mly"
+# 1520 "parser_cocci_menhir.mly"
                                                            ( _1 )
 # 5373 "parser_cocci_menhir.ml"
          in
@@ -5391,7 +5391,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_ = 
-# 1546 "parser_cocci_menhir.mly"
+# 1520 "parser_cocci_menhir.mly"
                                                            ( _1 )
 # 5397 "parser_cocci_menhir.ml"
          in
@@ -5415,7 +5415,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_basic_expr_expr_invalid_ = 
-# 1546 "parser_cocci_menhir.mly"
+# 1520 "parser_cocci_menhir.mly"
                                                            ( _1 )
 # 5421 "parser_cocci_menhir.ml"
          in
@@ -5447,19 +5447,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_fun_start = Obj.magic _3 in
         let _2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 5453 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 5458 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_case_line = 
-# 1224 "parser_cocci_menhir.mly"
+# 1198 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.Default(P.clt2mcode "default" _1,P.clt2mcode ":" _2,_3)) )
 # 5466 "parser_cocci_menhir.ml"
@@ -5497,20 +5497,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _4 : 'tv_fun_start = Obj.magic _4 in
         let _3 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 5503 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_eexpr = Obj.magic _2 in
         let _1 : (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 5509 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_case_line = 
-# 1227 "parser_cocci_menhir.mly"
+# 1201 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Case(P.clt2mcode "case" _1,_2,P.clt2mcode ":" _3,_4)) )
 # 5516 "parser_cocci_menhir.ml"
          in
@@ -5534,7 +5534,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_ = 
-# 1642 "parser_cocci_menhir.mly"
+# 1616 "parser_cocci_menhir.mly"
                                           ( _1 )
 # 5540 "parser_cocci_menhir.ml"
          in
@@ -5571,20 +5571,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let e : 'tv_cast_expr_eexpr_dot_expressions_ = Obj.magic e in
         let rp : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 5577 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 5583 "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_ = 
-# 1644 "parser_cocci_menhir.mly"
+# 1618 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t,
                             P.clt2mcode ")" rp, e)) )
 # 5591 "parser_cocci_menhir.ml"
@@ -5609,7 +5609,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_cast_expr_eexpr_invalid_ = 
-# 1642 "parser_cocci_menhir.mly"
+# 1616 "parser_cocci_menhir.mly"
                                           ( _1 )
 # 5615 "parser_cocci_menhir.ml"
          in
@@ -5646,20 +5646,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let e : 'tv_cast_expr_eexpr_invalid_ = Obj.magic e in
         let rp : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 5652 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 5658 "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_ = 
-# 1644 "parser_cocci_menhir.mly"
+# 1618 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t,
                             P.clt2mcode ")" rp, e)) )
 # 5666 "parser_cocci_menhir.ml"
@@ -5684,7 +5684,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_ = 
-# 1642 "parser_cocci_menhir.mly"
+# 1616 "parser_cocci_menhir.mly"
                                           ( _1 )
 # 5690 "parser_cocci_menhir.ml"
          in
@@ -5721,20 +5721,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let e : 'tv_cast_expr_eexpr_nest_expressions_ = Obj.magic e in
         let rp : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 5727 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 5733 "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_ = 
-# 1644 "parser_cocci_menhir.mly"
+# 1618 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t,
                             P.clt2mcode ")" rp, e)) )
 # 5741 "parser_cocci_menhir.ml"
@@ -5759,7 +5759,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_cast_expr_expr_invalid_ = 
-# 1642 "parser_cocci_menhir.mly"
+# 1616 "parser_cocci_menhir.mly"
                                           ( _1 )
 # 5765 "parser_cocci_menhir.ml"
          in
@@ -5796,20 +5796,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let e : 'tv_cast_expr_expr_invalid_ = Obj.magic e in
         let rp : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 5802 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 5808 "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_ = 
-# 1644 "parser_cocci_menhir.mly"
+# 1618 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t,
                             P.clt2mcode ")" rp, e)) )
 # 5816 "parser_cocci_menhir.ml"
@@ -5838,7 +5838,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_choose_iso = 
-# 336 "parser_cocci_menhir.mly"
+# 310 "parser_cocci_menhir.mly"
                                                  ( List.map P.id2name _2 )
 # 5844 "parser_cocci_menhir.ml"
          in
@@ -5862,7 +5862,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_comma_list_any_strict_ = 
-# 2382 "parser_cocci_menhir.mly"
+# 2356 "parser_cocci_menhir.mly"
                                        ( _1 )
 # 5868 "parser_cocci_menhir.ml"
          in
@@ -5886,7 +5886,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_comma_list_ctype_ = 
-# 2382 "parser_cocci_menhir.mly"
+# 2356 "parser_cocci_menhir.mly"
                                        ( _1 )
 # 5892 "parser_cocci_menhir.ml"
          in
@@ -5910,7 +5910,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_comma_list_d_ident_ = 
-# 2382 "parser_cocci_menhir.mly"
+# 2356 "parser_cocci_menhir.mly"
                                        ( _1 )
 # 5916 "parser_cocci_menhir.ml"
          in
@@ -5934,7 +5934,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_ = 
-# 2382 "parser_cocci_menhir.mly"
+# 2356 "parser_cocci_menhir.mly"
                                        ( _1 )
 # 5940 "parser_cocci_menhir.ml"
          in
@@ -5958,7 +5958,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_comma_list_meta_ident_ = 
-# 2382 "parser_cocci_menhir.mly"
+# 2356 "parser_cocci_menhir.mly"
                                        ( _1 )
 # 5964 "parser_cocci_menhir.ml"
          in
@@ -5982,7 +5982,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_comma_list_pure_ident_ = 
-# 2382 "parser_cocci_menhir.mly"
+# 2356 "parser_cocci_menhir.mly"
                                        ( _1 )
 # 5988 "parser_cocci_menhir.ml"
          in
@@ -6006,7 +6006,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_ = 
-# 2382 "parser_cocci_menhir.mly"
+# 2356 "parser_cocci_menhir.mly"
                                        ( _1 )
 # 6012 "parser_cocci_menhir.ml"
          in
@@ -6030,7 +6030,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_not_ceq_or_sub__ = 
-# 2382 "parser_cocci_menhir.mly"
+# 2356 "parser_cocci_menhir.mly"
                                        ( _1 )
 # 6036 "parser_cocci_menhir.ml"
          in
@@ -6054,7 +6054,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_or_sub__ = 
-# 2382 "parser_cocci_menhir.mly"
+# 2356 "parser_cocci_menhir.mly"
                                        ( _1 )
 # 6060 "parser_cocci_menhir.ml"
          in
@@ -6078,7 +6078,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__ = 
-# 2382 "parser_cocci_menhir.mly"
+# 2356 "parser_cocci_menhir.mly"
                                        ( _1 )
 # 6084 "parser_cocci_menhir.ml"
          in
@@ -6102,7 +6102,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_virt_re_or_not_eqid__ = 
-# 2382 "parser_cocci_menhir.mly"
+# 2356 "parser_cocci_menhir.mly"
                                        ( _1 )
 # 6108 "parser_cocci_menhir.ml"
          in
@@ -6126,7 +6126,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_ = 
-# 2382 "parser_cocci_menhir.mly"
+# 2356 "parser_cocci_menhir.mly"
                                        ( _1 )
 # 6132 "parser_cocci_menhir.ml"
          in
@@ -6150,7 +6150,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__ = 
-# 2382 "parser_cocci_menhir.mly"
+# 2356 "parser_cocci_menhir.mly"
                                        ( _1 )
 # 6156 "parser_cocci_menhir.ml"
          in
@@ -6174,7 +6174,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_comma_list_typedef_ident_ = 
-# 2382 "parser_cocci_menhir.mly"
+# 2356 "parser_cocci_menhir.mly"
                                        ( _1 )
 # 6180 "parser_cocci_menhir.ml"
          in
@@ -6198,7 +6198,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_ = 
-# 1571 "parser_cocci_menhir.mly"
+# 1545 "parser_cocci_menhir.mly"
                                              ( _1 )
 # 6204 "parser_cocci_menhir.ml"
          in
@@ -6240,13 +6240,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let r : 'tv_eargexpr = Obj.magic r in
         let dd : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 6246 "parser_cocci_menhir.ml"
         ) = Obj.magic dd in
         let t : 'tv_option_eexpr_ = Obj.magic t in
         let w : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 6252 "parser_cocci_menhir.ml"
         ) = Obj.magic w in
@@ -6254,7 +6254,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_ = 
-# 1574 "parser_cocci_menhir.mly"
+# 1548 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t,
                                 P.clt2mcode ":" dd, r)) )
 # 6261 "parser_cocci_menhir.ml"
@@ -6279,7 +6279,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_ = 
-# 1571 "parser_cocci_menhir.mly"
+# 1545 "parser_cocci_menhir.mly"
                                              ( _1 )
 # 6285 "parser_cocci_menhir.ml"
          in
@@ -6321,13 +6321,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let r : 'tv_eargexpr = Obj.magic r in
         let dd : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 6327 "parser_cocci_menhir.ml"
         ) = Obj.magic dd in
         let t : 'tv_option_eexpr_ = Obj.magic t in
         let w : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 6333 "parser_cocci_menhir.ml"
         ) = Obj.magic w in
@@ -6335,7 +6335,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_ = 
-# 1574 "parser_cocci_menhir.mly"
+# 1548 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t,
                                 P.clt2mcode ":" dd, r)) )
 # 6342 "parser_cocci_menhir.ml"
@@ -6360,7 +6360,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_cond_expr_expr_invalid_ = 
-# 1571 "parser_cocci_menhir.mly"
+# 1545 "parser_cocci_menhir.mly"
                                              ( _1 )
 # 6366 "parser_cocci_menhir.ml"
          in
@@ -6402,13 +6402,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let r : 'tv_eargexpr = Obj.magic r in
         let dd : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 6408 "parser_cocci_menhir.ml"
         ) = Obj.magic dd in
         let t : 'tv_option_eexpr_ = Obj.magic t in
         let w : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 6414 "parser_cocci_menhir.ml"
         ) = Obj.magic w in
@@ -6416,7 +6416,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_l_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_cond_expr_expr_invalid_ = 
-# 1574 "parser_cocci_menhir.mly"
+# 1548 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t,
                                 P.clt2mcode ":" dd, r)) )
 # 6423 "parser_cocci_menhir.ml"
@@ -6438,14 +6438,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 148 "parser_cocci_menhir.mly"
+# 122 "parser_cocci_menhir.mly"
       (Data.clt)
 # 6444 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_const_vol = 
-# 1123 "parser_cocci_menhir.mly"
+# 1097 "parser_cocci_menhir.mly"
                    ( P.clt2mcode Ast.Const _1 )
 # 6451 "parser_cocci_menhir.ml"
          in
@@ -6466,14 +6466,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 148 "parser_cocci_menhir.mly"
+# 122 "parser_cocci_menhir.mly"
       (Data.clt)
 # 6472 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_const_vol = 
-# 1124 "parser_cocci_menhir.mly"
+# 1098 "parser_cocci_menhir.mly"
                    ( P.clt2mcode Ast.Volatile _1 )
 # 6479 "parser_cocci_menhir.ml"
          in
@@ -6497,7 +6497,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_continue_list_aexpr_TEllipsis_ = 
-# 2158 "parser_cocci_menhir.mly"
+# 2132 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
 # 6503 "parser_cocci_menhir.ml"
          in
@@ -6523,7 +6523,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 6529 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -6531,7 +6531,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_aexpr_TEllipsis_ = 
-# 2160 "parser_cocci_menhir.mly"
+# 2134 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
 # 6538 "parser_cocci_menhir.ml"
@@ -6564,7 +6564,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_aexpr_TEllipsis_ = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 6570 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -6572,7 +6572,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_continue_list_aexpr_TEllipsis_ = 
-# 2163 "parser_cocci_menhir.mly"
+# 2137 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
@@ -6602,7 +6602,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_aexpr_TEllipsis_ = 
-# 2166 "parser_cocci_menhir.mly"
+# 2140 "parser_cocci_menhir.mly"
                                             ( _2 )
 # 6608 "parser_cocci_menhir.ml"
          in
@@ -6626,7 +6626,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_continue_list_dparam_TEllipsis_ = 
-# 2158 "parser_cocci_menhir.mly"
+# 2132 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
 # 6632 "parser_cocci_menhir.ml"
          in
@@ -6652,7 +6652,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 6658 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -6660,7 +6660,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_dparam_TEllipsis_ = 
-# 2160 "parser_cocci_menhir.mly"
+# 2134 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
 # 6667 "parser_cocci_menhir.ml"
@@ -6693,7 +6693,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_dparam_TEllipsis_ = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 6699 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -6701,7 +6701,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_continue_list_dparam_TEllipsis_ = 
-# 2163 "parser_cocci_menhir.mly"
+# 2137 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
@@ -6731,7 +6731,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_dparam_TEllipsis_ = 
-# 2166 "parser_cocci_menhir.mly"
+# 2140 "parser_cocci_menhir.mly"
                                             ( _2 )
 # 6737 "parser_cocci_menhir.ml"
          in
@@ -6755,7 +6755,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_continue_list_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2158 "parser_cocci_menhir.mly"
+# 2132 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
 # 6761 "parser_cocci_menhir.ml"
          in
@@ -6781,7 +6781,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 6787 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -6789,7 +6789,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2160 "parser_cocci_menhir.mly"
+# 2134 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
 # 6796 "parser_cocci_menhir.ml"
@@ -6822,7 +6822,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 6828 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -6830,7 +6830,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_continue_list_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2163 "parser_cocci_menhir.mly"
+# 2137 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
@@ -6860,7 +6860,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2166 "parser_cocci_menhir.mly"
+# 2140 "parser_cocci_menhir.mly"
                                             ( _2 )
 # 6866 "parser_cocci_menhir.ml"
          in
@@ -6884,7 +6884,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_continue_list_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2158 "parser_cocci_menhir.mly"
+# 2132 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
 # 6890 "parser_cocci_menhir.ml"
          in
@@ -6910,7 +6910,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 6916 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -6918,7 +6918,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2160 "parser_cocci_menhir.mly"
+# 2134 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
 # 6925 "parser_cocci_menhir.ml"
@@ -6951,7 +6951,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 6957 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -6959,7 +6959,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_continue_list_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2163 "parser_cocci_menhir.mly"
+# 2137 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
@@ -6989,7 +6989,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2166 "parser_cocci_menhir.mly"
+# 2140 "parser_cocci_menhir.mly"
                                             ( _2 )
 # 6995 "parser_cocci_menhir.ml"
          in
@@ -7013,7 +7013,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_continue_list_one_dec_decl__TEllipsis_ = 
-# 2158 "parser_cocci_menhir.mly"
+# 2132 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
 # 7019 "parser_cocci_menhir.ml"
          in
@@ -7039,7 +7039,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 7045 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -7047,7 +7047,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_one_dec_decl__TEllipsis_ = 
-# 2160 "parser_cocci_menhir.mly"
+# 2134 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
 # 7054 "parser_cocci_menhir.ml"
@@ -7080,7 +7080,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 7086 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -7088,7 +7088,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_continue_list_one_dec_decl__TEllipsis_ = 
-# 2163 "parser_cocci_menhir.mly"
+# 2137 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
@@ -7118,7 +7118,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_one_dec_decl__TEllipsis_ = 
-# 2166 "parser_cocci_menhir.mly"
+# 2140 "parser_cocci_menhir.mly"
                                             ( _2 )
 # 7124 "parser_cocci_menhir.ml"
          in
@@ -7142,7 +7142,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_continue_list_one_dec_name_opt_decl__TEllipsis_ = 
-# 2158 "parser_cocci_menhir.mly"
+# 2132 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
 # 7148 "parser_cocci_menhir.ml"
          in
@@ -7168,7 +7168,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 7174 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -7176,7 +7176,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_one_dec_name_opt_decl__TEllipsis_ = 
-# 2160 "parser_cocci_menhir.mly"
+# 2134 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
 # 7183 "parser_cocci_menhir.ml"
@@ -7209,7 +7209,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 7215 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -7217,7 +7217,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_continue_list_one_dec_name_opt_decl__TEllipsis_ = 
-# 2163 "parser_cocci_menhir.mly"
+# 2137 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
@@ -7247,7 +7247,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_list_one_dec_name_opt_decl__TEllipsis_ = 
-# 2166 "parser_cocci_menhir.mly"
+# 2140 "parser_cocci_menhir.mly"
                                             ( _2 )
 # 7253 "parser_cocci_menhir.ml"
          in
@@ -7264,7 +7264,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 = 
-# 823 "parser_cocci_menhir.mly"
+# 797 "parser_cocci_menhir.mly"
                                      ( [] )
 # 7270 "parser_cocci_menhir.ml"
          in
@@ -7294,7 +7294,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_continue_struct_decl_list = 
-# 824 "parser_cocci_menhir.mly"
+# 798 "parser_cocci_menhir.mly"
                                      ( _1@_2 )
 # 7300 "parser_cocci_menhir.ml"
          in
@@ -7318,7 +7318,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_continue_struct_decl_list = 
-# 825 "parser_cocci_menhir.mly"
+# 799 "parser_cocci_menhir.mly"
                                      ( _1 )
 # 7324 "parser_cocci_menhir.ml"
          in
@@ -7350,12 +7350,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 7356 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 7361 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -7367,13 +7367,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 664 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
 # 7373 "parser_cocci_menhir.ml"
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 7379 "parser_cocci_menhir.ml"
           
@@ -7386,7 +7386,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 7392 "parser_cocci_menhir.ml"
          in
@@ -7418,12 +7418,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 7424 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 7429 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -7435,13 +7435,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 666 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
 # 7441 "parser_cocci_menhir.ml"
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 7447 "parser_cocci_menhir.ml"
           
@@ -7454,7 +7454,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 7460 "parser_cocci_menhir.ml"
          in
@@ -7491,17 +7491,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 7497 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 7502 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 7507 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -7515,7 +7515,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 668 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
@@ -7523,7 +7523,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 7529 "parser_cocci_menhir.ml"
           
@@ -7536,7 +7536,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 7542 "parser_cocci_menhir.ml"
          in
@@ -7568,12 +7568,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 7574 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 7579 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -7585,13 +7585,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 672 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
 # 7591 "parser_cocci_menhir.ml"
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 7597 "parser_cocci_menhir.ml"
           
@@ -7604,7 +7604,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 7610 "parser_cocci_menhir.ml"
          in
@@ -7636,12 +7636,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 7642 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 7647 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -7653,14 +7653,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 674 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
 # 7660 "parser_cocci_menhir.ml"
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 7666 "parser_cocci_menhir.ml"
           
@@ -7673,7 +7673,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 7679 "parser_cocci_menhir.ml"
          in
@@ -7714,17 +7714,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 7720 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 7725 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let r1 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 7730 "parser_cocci_menhir.ml"
         ) = Obj.magic r1 in
@@ -7738,7 +7738,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 677 "parser_cocci_menhir.mly"
+# 651 "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 *)
@@ -7749,7 +7749,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 7755 "parser_cocci_menhir.ml"
           
@@ -7762,7 +7762,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 7768 "parser_cocci_menhir.ml"
          in
@@ -7794,12 +7794,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 7800 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 7805 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -7811,13 +7811,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 684 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
 # 7817 "parser_cocci_menhir.ml"
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 7823 "parser_cocci_menhir.ml"
           
@@ -7830,7 +7830,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 7836 "parser_cocci_menhir.ml"
          in
@@ -7867,17 +7867,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 7873 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 7878 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 7883 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -7891,7 +7891,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 686 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
@@ -7899,7 +7899,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 7905 "parser_cocci_menhir.ml"
           
@@ -7912,7 +7912,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 7918 "parser_cocci_menhir.ml"
          in
@@ -7949,17 +7949,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 7955 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 7960 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 7965 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -7973,7 +7973,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 690 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
@@ -7982,7 +7982,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 7988 "parser_cocci_menhir.ml"
           
@@ -7995,7 +7995,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 8001 "parser_cocci_menhir.ml"
          in
@@ -8037,22 +8037,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8043 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8048 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8053 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8058 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -8068,7 +8068,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 695 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
@@ -8078,7 +8078,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 8084 "parser_cocci_menhir.ml"
           
@@ -8091,7 +8091,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 8097 "parser_cocci_menhir.ml"
          in
@@ -8123,12 +8123,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8129 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8134 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -8140,13 +8140,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 664 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
 # 8146 "parser_cocci_menhir.ml"
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 8152 "parser_cocci_menhir.ml"
           
@@ -8159,7 +8159,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 8165 "parser_cocci_menhir.ml"
          in
@@ -8191,12 +8191,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8197 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8202 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -8208,13 +8208,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 666 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
 # 8214 "parser_cocci_menhir.ml"
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 8220 "parser_cocci_menhir.ml"
           
@@ -8227,7 +8227,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 8233 "parser_cocci_menhir.ml"
          in
@@ -8264,17 +8264,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8270 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8275 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8280 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -8288,7 +8288,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 668 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
@@ -8296,7 +8296,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 8302 "parser_cocci_menhir.ml"
           
@@ -8309,7 +8309,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 8315 "parser_cocci_menhir.ml"
          in
@@ -8341,12 +8341,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8347 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8352 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -8358,13 +8358,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 672 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
 # 8364 "parser_cocci_menhir.ml"
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 8370 "parser_cocci_menhir.ml"
           
@@ -8377,7 +8377,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 8383 "parser_cocci_menhir.ml"
          in
@@ -8409,12 +8409,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 8415 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8420 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -8426,14 +8426,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 674 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
 # 8433 "parser_cocci_menhir.ml"
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 8439 "parser_cocci_menhir.ml"
           
@@ -8446,7 +8446,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 8452 "parser_cocci_menhir.ml"
          in
@@ -8487,17 +8487,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 8493 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 8498 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let r1 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8503 "parser_cocci_menhir.ml"
         ) = Obj.magic r1 in
@@ -8511,7 +8511,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 677 "parser_cocci_menhir.mly"
+# 651 "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 *)
@@ -8522,7 +8522,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 8528 "parser_cocci_menhir.ml"
           
@@ -8535,7 +8535,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 8541 "parser_cocci_menhir.ml"
          in
@@ -8567,12 +8567,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8573 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8578 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -8584,13 +8584,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 684 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
 # 8590 "parser_cocci_menhir.ml"
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 8596 "parser_cocci_menhir.ml"
           
@@ -8603,7 +8603,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 8609 "parser_cocci_menhir.ml"
          in
@@ -8640,17 +8640,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8646 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8651 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8656 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -8664,7 +8664,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 686 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
@@ -8672,7 +8672,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 8678 "parser_cocci_menhir.ml"
           
@@ -8685,7 +8685,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 8691 "parser_cocci_menhir.ml"
          in
@@ -8722,17 +8722,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8728 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8733 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8738 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -8746,7 +8746,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 690 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
@@ -8755,7 +8755,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 8761 "parser_cocci_menhir.ml"
           
@@ -8768,7 +8768,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 8774 "parser_cocci_menhir.ml"
          in
@@ -8810,22 +8810,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8816 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8821 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8826 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8831 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -8841,7 +8841,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 695 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
@@ -8851,7 +8851,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 8857 "parser_cocci_menhir.ml"
           
@@ -8864,7 +8864,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 8870 "parser_cocci_menhir.ml"
          in
@@ -8891,7 +8891,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8897 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -8902,13 +8902,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 664 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
 # 8908 "parser_cocci_menhir.ml"
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 8914 "parser_cocci_menhir.ml"
           
@@ -8921,7 +8921,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 8927 "parser_cocci_menhir.ml"
          in
@@ -8948,7 +8948,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 8954 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -8959,13 +8959,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 666 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
 # 8965 "parser_cocci_menhir.ml"
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 8971 "parser_cocci_menhir.ml"
           
@@ -8978,7 +8978,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 8984 "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 ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 9016 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 9021 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -9028,7 +9028,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 668 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
@@ -9036,7 +9036,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 9042 "parser_cocci_menhir.ml"
           
@@ -9049,7 +9049,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 9055 "parser_cocci_menhir.ml"
          in
@@ -9076,7 +9076,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 9082 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -9087,13 +9087,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 672 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
 # 9093 "parser_cocci_menhir.ml"
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 9099 "parser_cocci_menhir.ml"
           
@@ -9106,7 +9106,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 9112 "parser_cocci_menhir.ml"
          in
@@ -9133,7 +9133,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 9139 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
@@ -9144,14 +9144,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 674 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
 # 9151 "parser_cocci_menhir.ml"
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 9157 "parser_cocci_menhir.ml"
           
@@ -9164,7 +9164,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 9170 "parser_cocci_menhir.ml"
          in
@@ -9200,12 +9200,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 9206 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 9211 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
@@ -9218,7 +9218,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 677 "parser_cocci_menhir.mly"
+# 651 "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 *)
@@ -9229,7 +9229,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 9235 "parser_cocci_menhir.ml"
           
@@ -9242,7 +9242,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 9248 "parser_cocci_menhir.ml"
          in
@@ -9269,7 +9269,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 9275 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -9280,13 +9280,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 684 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
 # 9286 "parser_cocci_menhir.ml"
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 9292 "parser_cocci_menhir.ml"
           
@@ -9299,7 +9299,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 9305 "parser_cocci_menhir.ml"
          in
@@ -9331,12 +9331,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 9337 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 9342 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -9349,7 +9349,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 686 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
@@ -9357,7 +9357,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 9363 "parser_cocci_menhir.ml"
           
@@ -9370,7 +9370,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 9376 "parser_cocci_menhir.ml"
          in
@@ -9402,12 +9402,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 9408 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 9413 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -9420,7 +9420,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 690 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
@@ -9429,7 +9429,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 9435 "parser_cocci_menhir.ml"
           
@@ -9442,7 +9442,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 9448 "parser_cocci_menhir.ml"
          in
@@ -9479,17 +9479,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 9485 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 9490 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 9495 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -9504,7 +9504,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 695 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
@@ -9514,7 +9514,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 9520 "parser_cocci_menhir.ml"
           
@@ -9527,7 +9527,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 9533 "parser_cocci_menhir.ml"
          in
@@ -9554,7 +9554,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 9560 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -9565,13 +9565,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 704 "parser_cocci_menhir.mly"
+# 678 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) )
 # 9571 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 9577 "parser_cocci_menhir.ml"
           
@@ -9584,7 +9584,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 9590 "parser_cocci_menhir.ml"
          in
@@ -9616,12 +9616,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 9622 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 9627 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -9634,7 +9634,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 706 "parser_cocci_menhir.mly"
+# 680 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongDoubleType,
@@ -9643,7 +9643,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 9649 "parser_cocci_menhir.ml"
           
@@ -9656,7 +9656,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 9662 "parser_cocci_menhir.ml"
          in
@@ -9683,7 +9683,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 9689 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -9694,13 +9694,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 711 "parser_cocci_menhir.mly"
+# 685 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) )
 # 9700 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 9706 "parser_cocci_menhir.ml"
           
@@ -9713,7 +9713,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 9719 "parser_cocci_menhir.ml"
          in
@@ -9740,7 +9740,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 9746 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -9751,13 +9751,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 713 "parser_cocci_menhir.mly"
+# 687 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) )
 # 9757 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 9763 "parser_cocci_menhir.ml"
           
@@ -9770,7 +9770,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 9776 "parser_cocci_menhir.ml"
          in
@@ -9797,7 +9797,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 143 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
 # 9803 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -9808,13 +9808,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 715 "parser_cocci_menhir.mly"
+# 689 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.SizeType,[P.clt2mcode "size_t" ty])) )
 # 9814 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 9820 "parser_cocci_menhir.ml"
           
@@ -9827,7 +9827,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 9833 "parser_cocci_menhir.ml"
          in
@@ -9854,7 +9854,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 143 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
 # 9860 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -9865,13 +9865,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 717 "parser_cocci_menhir.mly"
+# 691 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.SSizeType,[P.clt2mcode "ssize_t" ty])) )
 # 9871 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 9877 "parser_cocci_menhir.ml"
           
@@ -9884,7 +9884,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 9890 "parser_cocci_menhir.ml"
          in
@@ -9911,7 +9911,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 143 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
 # 9917 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -9922,13 +9922,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 719 "parser_cocci_menhir.mly"
+# 693 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.PtrDiffType,[P.clt2mcode "ptrdiff_t" ty])) )
 # 9928 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 9934 "parser_cocci_menhir.ml"
           
@@ -9941,7 +9941,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 9947 "parser_cocci_menhir.ml"
          in
@@ -9974,7 +9974,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 : (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 9980 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
@@ -9987,13 +9987,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let i = i0 in
             let s = s0 in
             
-# 721 "parser_cocci_menhir.mly"
+# 695 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, Some i)) )
 # 9993 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 9999 "parser_cocci_menhir.ml"
           
@@ -10006,7 +10006,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 10012 "parser_cocci_menhir.ml"
          in
@@ -10048,18 +10048,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 10054 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
         let l00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 10060 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let s00 : (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 10065 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
@@ -10083,7 +10083,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
             in
             
-# 723 "parser_cocci_menhir.mly"
+# 697 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "enums must be named in the iso file");
       Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
@@ -10092,7 +10092,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 10098 "parser_cocci_menhir.ml"
           
@@ -10105,7 +10105,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 10111 "parser_cocci_menhir.ml"
          in
@@ -10152,19 +10152,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 10158 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
         let l00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 10164 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let x000 : 'tv_ident = Obj.magic x000 in
         let s00 : (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 10170 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
@@ -10191,7 +10191,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
             in
             
-# 723 "parser_cocci_menhir.mly"
+# 697 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "enums must be named in the iso file");
       Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
@@ -10200,7 +10200,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 10206 "parser_cocci_menhir.ml"
           
@@ -10213,7 +10213,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 10219 "parser_cocci_menhir.ml"
          in
@@ -10255,13 +10255,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let i = i0 in
             let s = s0 in
             
-# 728 "parser_cocci_menhir.mly"
+# 702 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) )
 # 10261 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 10267 "parser_cocci_menhir.ml"
           
@@ -10274,7 +10274,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 10280 "parser_cocci_menhir.ml"
          in
@@ -10316,13 +10316,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 10322 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 10328 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
@@ -10347,7 +10347,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
             in
             
-# 731 "parser_cocci_menhir.mly"
+# 705 "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)),
@@ -10357,7 +10357,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 10363 "parser_cocci_menhir.ml"
           
@@ -10370,7 +10370,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 10376 "parser_cocci_menhir.ml"
          in
@@ -10417,13 +10417,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 10423 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 10429 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
@@ -10452,7 +10452,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
             in
             
-# 731 "parser_cocci_menhir.mly"
+# 705 "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)),
@@ -10462,7 +10462,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 10468 "parser_cocci_menhir.ml"
           
@@ -10475,7 +10475,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 10481 "parser_cocci_menhir.ml"
          in
@@ -10517,18 +10517,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 10523 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 10529 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let s00 : (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 10534 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
@@ -10545,7 +10545,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let l = l0 in
             let s = s0 in
             
-# 737 "parser_cocci_menhir.mly"
+# 711 "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)) )
@@ -10553,7 +10553,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 10559 "parser_cocci_menhir.ml"
           
@@ -10566,7 +10566,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 10572 "parser_cocci_menhir.ml"
          in
@@ -10593,7 +10593,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 10599 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
@@ -10604,13 +10604,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 741 "parser_cocci_menhir.mly"
+# 715 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) )
 # 10610 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 10616 "parser_cocci_menhir.ml"
           
@@ -10623,7 +10623,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 10629 "parser_cocci_menhir.ml"
          in
@@ -10660,12 +10660,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 10666 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 10671 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -10678,13 +10678,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 664 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
 # 10684 "parser_cocci_menhir.ml"
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 10690 "parser_cocci_menhir.ml"
           
@@ -10698,7 +10698,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 10704 "parser_cocci_menhir.ml"
          in
@@ -10735,12 +10735,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 10741 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 10746 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -10753,13 +10753,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 666 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
 # 10759 "parser_cocci_menhir.ml"
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 10765 "parser_cocci_menhir.ml"
           
@@ -10773,7 +10773,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 10779 "parser_cocci_menhir.ml"
          in
@@ -10815,17 +10815,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 10821 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 10826 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 10831 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -10840,7 +10840,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 668 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
@@ -10848,7 +10848,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 10854 "parser_cocci_menhir.ml"
           
@@ -10862,7 +10862,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 10868 "parser_cocci_menhir.ml"
          in
@@ -10899,12 +10899,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 10905 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 10910 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -10917,13 +10917,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 672 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
 # 10923 "parser_cocci_menhir.ml"
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 10929 "parser_cocci_menhir.ml"
           
@@ -10937,7 +10937,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 10943 "parser_cocci_menhir.ml"
          in
@@ -10974,12 +10974,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 10980 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 10985 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -10992,14 +10992,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 674 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
 # 10999 "parser_cocci_menhir.ml"
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 11005 "parser_cocci_menhir.ml"
           
@@ -11013,7 +11013,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 11019 "parser_cocci_menhir.ml"
          in
@@ -11059,17 +11059,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 11065 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 11070 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let r1 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11075 "parser_cocci_menhir.ml"
         ) = Obj.magic r1 in
@@ -11084,7 +11084,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 677 "parser_cocci_menhir.mly"
+# 651 "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 *)
@@ -11095,7 +11095,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 11101 "parser_cocci_menhir.ml"
           
@@ -11109,7 +11109,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 11115 "parser_cocci_menhir.ml"
          in
@@ -11146,12 +11146,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11152 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11157 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -11164,13 +11164,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 684 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
 # 11170 "parser_cocci_menhir.ml"
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 11176 "parser_cocci_menhir.ml"
           
@@ -11184,7 +11184,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 11190 "parser_cocci_menhir.ml"
          in
@@ -11226,17 +11226,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11232 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11237 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11242 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -11251,7 +11251,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 686 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
@@ -11259,7 +11259,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 11265 "parser_cocci_menhir.ml"
           
@@ -11273,7 +11273,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 11279 "parser_cocci_menhir.ml"
          in
@@ -11315,17 +11315,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11321 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11326 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11331 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -11340,7 +11340,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 690 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
@@ -11349,7 +11349,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 11355 "parser_cocci_menhir.ml"
           
@@ -11363,7 +11363,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 11369 "parser_cocci_menhir.ml"
          in
@@ -11410,22 +11410,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11416 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11421 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11426 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11431 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -11442,7 +11442,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 695 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
@@ -11452,7 +11452,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 11458 "parser_cocci_menhir.ml"
           
@@ -11466,7 +11466,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 11472 "parser_cocci_menhir.ml"
          in
@@ -11503,12 +11503,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11509 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11514 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -11521,13 +11521,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 664 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
 # 11527 "parser_cocci_menhir.ml"
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 11533 "parser_cocci_menhir.ml"
           
@@ -11541,7 +11541,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 11547 "parser_cocci_menhir.ml"
          in
@@ -11578,12 +11578,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11584 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11589 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -11596,13 +11596,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 666 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
 # 11602 "parser_cocci_menhir.ml"
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 11608 "parser_cocci_menhir.ml"
           
@@ -11616,7 +11616,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 11622 "parser_cocci_menhir.ml"
          in
@@ -11658,17 +11658,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11664 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11669 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11674 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -11683,7 +11683,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 668 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
@@ -11691,7 +11691,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 11697 "parser_cocci_menhir.ml"
           
@@ -11705,7 +11705,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 11711 "parser_cocci_menhir.ml"
          in
@@ -11742,12 +11742,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11748 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11753 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -11760,13 +11760,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 672 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
 # 11766 "parser_cocci_menhir.ml"
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 11772 "parser_cocci_menhir.ml"
           
@@ -11780,7 +11780,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 11786 "parser_cocci_menhir.ml"
          in
@@ -11817,12 +11817,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 11823 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11828 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -11835,14 +11835,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 674 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
 # 11842 "parser_cocci_menhir.ml"
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 11848 "parser_cocci_menhir.ml"
           
@@ -11856,7 +11856,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 11862 "parser_cocci_menhir.ml"
          in
@@ -11902,17 +11902,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 11908 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 11913 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let r1 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11918 "parser_cocci_menhir.ml"
         ) = Obj.magic r1 in
@@ -11927,7 +11927,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 677 "parser_cocci_menhir.mly"
+# 651 "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 *)
@@ -11938,7 +11938,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 11944 "parser_cocci_menhir.ml"
           
@@ -11952,7 +11952,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 11958 "parser_cocci_menhir.ml"
          in
@@ -11989,12 +11989,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 11995 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12000 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -12007,13 +12007,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 684 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
 # 12013 "parser_cocci_menhir.ml"
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 12019 "parser_cocci_menhir.ml"
           
@@ -12027,7 +12027,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 12033 "parser_cocci_menhir.ml"
          in
@@ -12069,17 +12069,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12075 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12080 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12085 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -12094,7 +12094,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 686 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
@@ -12102,7 +12102,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 12108 "parser_cocci_menhir.ml"
           
@@ -12116,7 +12116,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 12122 "parser_cocci_menhir.ml"
          in
@@ -12158,17 +12158,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12164 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12169 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12174 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -12183,7 +12183,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 690 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
@@ -12192,7 +12192,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 12198 "parser_cocci_menhir.ml"
           
@@ -12206,7 +12206,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 12212 "parser_cocci_menhir.ml"
          in
@@ -12253,22 +12253,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12259 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12264 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12269 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12274 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -12285,7 +12285,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 695 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
@@ -12295,7 +12295,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 12301 "parser_cocci_menhir.ml"
           
@@ -12309,7 +12309,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 12315 "parser_cocci_menhir.ml"
          in
@@ -12341,7 +12341,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12347 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -12353,13 +12353,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 664 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
 # 12359 "parser_cocci_menhir.ml"
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 12365 "parser_cocci_menhir.ml"
           
@@ -12373,7 +12373,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 12379 "parser_cocci_menhir.ml"
          in
@@ -12405,7 +12405,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12411 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -12417,13 +12417,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 666 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
 # 12423 "parser_cocci_menhir.ml"
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 12429 "parser_cocci_menhir.ml"
           
@@ -12437,7 +12437,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 12443 "parser_cocci_menhir.ml"
          in
@@ -12474,12 +12474,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12480 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12485 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -12493,7 +12493,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 668 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
@@ -12501,7 +12501,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 12507 "parser_cocci_menhir.ml"
           
@@ -12515,7 +12515,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 12521 "parser_cocci_menhir.ml"
          in
@@ -12547,7 +12547,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12553 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -12559,13 +12559,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 672 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
 # 12565 "parser_cocci_menhir.ml"
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 12571 "parser_cocci_menhir.ml"
           
@@ -12579,7 +12579,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 12585 "parser_cocci_menhir.ml"
          in
@@ -12611,7 +12611,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 12617 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
@@ -12623,14 +12623,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 674 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
 # 12630 "parser_cocci_menhir.ml"
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 12636 "parser_cocci_menhir.ml"
           
@@ -12644,7 +12644,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 12650 "parser_cocci_menhir.ml"
          in
@@ -12685,12 +12685,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 12691 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 12696 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
@@ -12704,7 +12704,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 677 "parser_cocci_menhir.mly"
+# 651 "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 *)
@@ -12715,7 +12715,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 12721 "parser_cocci_menhir.ml"
           
@@ -12729,7 +12729,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 12735 "parser_cocci_menhir.ml"
          in
@@ -12761,7 +12761,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12767 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -12773,13 +12773,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 684 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
 # 12779 "parser_cocci_menhir.ml"
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 12785 "parser_cocci_menhir.ml"
           
@@ -12793,7 +12793,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 12799 "parser_cocci_menhir.ml"
          in
@@ -12830,12 +12830,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12836 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12841 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -12849,7 +12849,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 686 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
@@ -12857,7 +12857,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 12863 "parser_cocci_menhir.ml"
           
@@ -12871,7 +12871,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 12877 "parser_cocci_menhir.ml"
          in
@@ -12908,12 +12908,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12914 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12919 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -12927,7 +12927,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 690 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
@@ -12936,7 +12936,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 12942 "parser_cocci_menhir.ml"
           
@@ -12950,7 +12950,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 12956 "parser_cocci_menhir.ml"
          in
@@ -12992,17 +12992,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 12998 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 13003 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 13008 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -13018,7 +13018,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 695 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
@@ -13028,7 +13028,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 13034 "parser_cocci_menhir.ml"
           
@@ -13042,7 +13042,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 13048 "parser_cocci_menhir.ml"
          in
@@ -13074,7 +13074,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 13080 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -13086,13 +13086,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 704 "parser_cocci_menhir.mly"
+# 678 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) )
 # 13092 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 13098 "parser_cocci_menhir.ml"
           
@@ -13106,7 +13106,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 13112 "parser_cocci_menhir.ml"
          in
@@ -13143,12 +13143,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 13149 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 13154 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -13162,7 +13162,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 706 "parser_cocci_menhir.mly"
+# 680 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongDoubleType,
@@ -13171,7 +13171,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 13177 "parser_cocci_menhir.ml"
           
@@ -13185,7 +13185,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 13191 "parser_cocci_menhir.ml"
          in
@@ -13217,7 +13217,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 13223 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -13229,13 +13229,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 711 "parser_cocci_menhir.mly"
+# 685 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) )
 # 13235 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 13241 "parser_cocci_menhir.ml"
           
@@ -13249,7 +13249,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 13255 "parser_cocci_menhir.ml"
          in
@@ -13281,7 +13281,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 13287 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -13293,13 +13293,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 713 "parser_cocci_menhir.mly"
+# 687 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) )
 # 13299 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 13305 "parser_cocci_menhir.ml"
           
@@ -13313,7 +13313,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 13319 "parser_cocci_menhir.ml"
          in
@@ -13345,7 +13345,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 143 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
 # 13351 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -13357,13 +13357,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 715 "parser_cocci_menhir.mly"
+# 689 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.SizeType,[P.clt2mcode "size_t" ty])) )
 # 13363 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 13369 "parser_cocci_menhir.ml"
           
@@ -13377,7 +13377,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 13383 "parser_cocci_menhir.ml"
          in
@@ -13409,7 +13409,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 143 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
 # 13415 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -13421,13 +13421,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 717 "parser_cocci_menhir.mly"
+# 691 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.SSizeType,[P.clt2mcode "ssize_t" ty])) )
 # 13427 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 13433 "parser_cocci_menhir.ml"
           
@@ -13441,7 +13441,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 13447 "parser_cocci_menhir.ml"
          in
@@ -13473,7 +13473,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 143 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
 # 13479 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -13485,13 +13485,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 719 "parser_cocci_menhir.mly"
+# 693 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.PtrDiffType,[P.clt2mcode "ptrdiff_t" ty])) )
 # 13491 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 13497 "parser_cocci_menhir.ml"
           
@@ -13505,7 +13505,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 13511 "parser_cocci_menhir.ml"
          in
@@ -13543,7 +13543,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 : (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 13549 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
@@ -13557,13 +13557,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let i = i0 in
             let s = s0 in
             
-# 721 "parser_cocci_menhir.mly"
+# 695 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, Some i)) )
 # 13563 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 13569 "parser_cocci_menhir.ml"
           
@@ -13577,7 +13577,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 13583 "parser_cocci_menhir.ml"
          in
@@ -13624,18 +13624,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 13630 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
         let l00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 13636 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let s00 : (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 13641 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
@@ -13660,7 +13660,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
             in
             
-# 723 "parser_cocci_menhir.mly"
+# 697 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "enums must be named in the iso file");
       Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
@@ -13669,7 +13669,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 13675 "parser_cocci_menhir.ml"
           
@@ -13683,7 +13683,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 13689 "parser_cocci_menhir.ml"
          in
@@ -13735,19 +13735,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 13741 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
         let l00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 13747 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let x000 : 'tv_ident = Obj.magic x000 in
         let s00 : (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 13753 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
@@ -13775,7 +13775,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
             in
             
-# 723 "parser_cocci_menhir.mly"
+# 697 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "enums must be named in the iso file");
       Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
@@ -13784,7 +13784,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 13790 "parser_cocci_menhir.ml"
           
@@ -13798,7 +13798,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 13804 "parser_cocci_menhir.ml"
          in
@@ -13846,13 +13846,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let i = i0 in
             let s = s0 in
             
-# 728 "parser_cocci_menhir.mly"
+# 702 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) )
 # 13852 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 13858 "parser_cocci_menhir.ml"
           
@@ -13866,7 +13866,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 13872 "parser_cocci_menhir.ml"
          in
@@ -13913,13 +13913,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 13919 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 13925 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
@@ -13945,7 +13945,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
             in
             
-# 731 "parser_cocci_menhir.mly"
+# 705 "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)),
@@ -13955,7 +13955,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 13961 "parser_cocci_menhir.ml"
           
@@ -13969,7 +13969,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 13975 "parser_cocci_menhir.ml"
          in
@@ -14021,13 +14021,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 14027 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 14033 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
@@ -14057,7 +14057,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
             in
             
-# 731 "parser_cocci_menhir.mly"
+# 705 "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)),
@@ -14067,7 +14067,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 14073 "parser_cocci_menhir.ml"
           
@@ -14081,7 +14081,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 14087 "parser_cocci_menhir.ml"
          in
@@ -14128,18 +14128,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 14134 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 14140 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let s00 : (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 14145 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
@@ -14157,7 +14157,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let l = l0 in
             let s = s0 in
             
-# 737 "parser_cocci_menhir.mly"
+# 711 "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)) )
@@ -14165,7 +14165,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 14171 "parser_cocci_menhir.ml"
           
@@ -14179,7 +14179,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 14185 "parser_cocci_menhir.ml"
          in
@@ -14211,7 +14211,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 14217 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
@@ -14223,13 +14223,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 741 "parser_cocci_menhir.mly"
+# 715 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) )
 # 14229 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 14235 "parser_cocci_menhir.ml"
           
@@ -14243,7 +14243,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 754 "parser_cocci_menhir.mly"
+# 728 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 14249 "parser_cocci_menhir.ml"
          in
@@ -14264,14 +14264,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let r : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 14270 "parser_cocci_menhir.ml"
         ) = Obj.magic r in
         let _startpos = _startpos_r_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_ctype = 
-# 756 "parser_cocci_menhir.mly"
+# 730 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,None)) )
 # 14277 "parser_cocci_menhir.ml"
          in
@@ -14292,14 +14292,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let r : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 14298 "parser_cocci_menhir.ml"
         ) = Obj.magic r in
         let _startpos = _startpos_r_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_ctype = 
-# 758 "parser_cocci_menhir.mly"
+# 732 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,None)) )
 # 14305 "parser_cocci_menhir.ml"
          in
@@ -14330,20 +14330,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 14336 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_midzero_list_ctype_ctype_ = Obj.magic t in
         let lp : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 14342 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let _startpos = _startpos_lp_ in
         let _endpos = _endpos_rp_ in
         let _v : 'tv_ctype = 
-# 760 "parser_cocci_menhir.mly"
+# 734 "parser_cocci_menhir.mly"
     ( let (mids,code) = t in
       Ast0.wrap
        (Ast0.DisjType(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) )
@@ -14375,7 +14375,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_d_ident = 
-# 1365 "parser_cocci_menhir.mly"
+# 1339 "parser_cocci_menhir.mly"
       ( (_1, function t -> P.arrayify t _2) )
 # 14381 "parser_cocci_menhir.ml"
          in
@@ -14399,7 +14399,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_dargexpr = 
-# 1503 "parser_cocci_menhir.mly"
+# 1477 "parser_cocci_menhir.mly"
                                              ( _1 )
 # 14405 "parser_cocci_menhir.ml"
          in
@@ -14435,7 +14435,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_t_ in
         let _endpos = _endpos_a_ in
         let _v : 'tv_decl = 
-# 1096 "parser_cocci_menhir.mly"
+# 1070 "parser_cocci_menhir.mly"
  ( let t = P.arrayify t a in Ast0.wrap(Ast0.Param(t, Some i)) )
 # 14441 "parser_cocci_menhir.ml"
          in
@@ -14459,7 +14459,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_t_ in
         let _endpos = _endpos_t_ in
         let _v : 'tv_decl = 
-# 1097 "parser_cocci_menhir.mly"
+# 1071 "parser_cocci_menhir.mly"
               ( (*verify in FunDecl*) Ast0.wrap(Ast0.Param(t, None)) )
 # 14465 "parser_cocci_menhir.ml"
          in
@@ -14515,29 +14515,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp1 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 14521 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in
         let lp1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 14527 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
         let rp : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 14532 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let i : 'tv_disj_ident = Obj.magic i in
         let s : (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 14538 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let lp : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 14543 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
@@ -14545,7 +14545,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_t_ in
         let _endpos = _endpos_rp1_ in
         let _v : 'tv_decl = 
-# 1100 "parser_cocci_menhir.mly"
+# 1074 "parser_cocci_menhir.mly"
         ( let fnptr =
          Ast0.wrap
            (Ast0.FunctionPointer
@@ -14571,14 +14571,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 14577 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl = 
-# 1107 "parser_cocci_menhir.mly"
+# 1081 "parser_cocci_menhir.mly"
  ( let (nm,pure,clt) = _1 in
        Ast0.wrap(Ast0.MetaParam(P.clt2mcode nm clt,pure)) )
 # 14585 "parser_cocci_menhir.ml"
@@ -14600,14 +14600,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 161 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 14606 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl = 
-# 1109 "parser_cocci_menhir.mly"
+# 1083 "parser_cocci_menhir.mly"
             ( tmeta_to_param _1 )
 # 14613 "parser_cocci_menhir.ml"
          in
@@ -14628,14 +14628,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 14634 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl_ident = 
-# 2082 "parser_cocci_menhir.mly"
+# 2056 "parser_cocci_menhir.mly"
          ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) )
 # 14641 "parser_cocci_menhir.ml"
          in
@@ -14656,14 +14656,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 158 "parser_cocci_menhir.mly"
+# 132 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
 # 14662 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl_ident = 
-# 2084 "parser_cocci_menhir.mly"
+# 2058 "parser_cocci_menhir.mly"
          ( let (nm,constraints,pure,clt) = _1 in
          Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,Ast.NoVal,pure)) )
 # 14670 "parser_cocci_menhir.ml"
@@ -14688,7 +14688,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl_list_decl_ = 
-# 2106 "parser_cocci_menhir.mly"
+# 2080 "parser_cocci_menhir.mly"
      ( Ast0.wrap
         (Ast0.DOTS
            (_1
@@ -14716,7 +14716,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_ = 
-# 2106 "parser_cocci_menhir.mly"
+# 2080 "parser_cocci_menhir.mly"
      ( Ast0.wrap
         (Ast0.DOTS
            (_1
@@ -14741,14 +14741,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 14747 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl_statement = 
-# 1429 "parser_cocci_menhir.mly"
+# 1403 "parser_cocci_menhir.mly"
       ( let (nm,pure,clt) = _1 in
       [Ast0.wrap(Ast0.MetaStmt(P.clt2mcode nm clt,pure))] )
 # 14755 "parser_cocci_menhir.ml"
@@ -14773,7 +14773,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl_statement = 
-# 1432 "parser_cocci_menhir.mly"
+# 1406 "parser_cocci_menhir.mly"
       ( List.map
          (function x ->
            Ast0.wrap
@@ -14801,7 +14801,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl_statement = 
-# 1437 "parser_cocci_menhir.mly"
+# 1411 "parser_cocci_menhir.mly"
               ( [_1] )
 # 14807 "parser_cocci_menhir.ml"
          in
@@ -14832,20 +14832,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 14838 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let t : 'tv_midzero_list_fun_start_fun_start_ = Obj.magic t in
         let _1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 14844 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_decl_statement = 
-# 1446 "parser_cocci_menhir.mly"
+# 1420 "parser_cocci_menhir.mly"
       ( let (mids,code) = t in
        if List.for_all
            (function x ->
@@ -14874,14 +14874,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 14880 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl_statement_expr = 
-# 1459 "parser_cocci_menhir.mly"
+# 1433 "parser_cocci_menhir.mly"
       ( let (nm,pure,clt) = _1 in
       [Ast0.wrap(Ast0.MetaStmt(P.clt2mcode nm clt,pure))] )
 # 14888 "parser_cocci_menhir.ml"
@@ -14906,7 +14906,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl_statement_expr = 
-# 1462 "parser_cocci_menhir.mly"
+# 1436 "parser_cocci_menhir.mly"
       ( List.map
          (function x ->
            Ast0.wrap
@@ -14934,7 +14934,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl_statement_expr = 
-# 1467 "parser_cocci_menhir.mly"
+# 1441 "parser_cocci_menhir.mly"
               ( [_1] )
 # 14940 "parser_cocci_menhir.ml"
          in
@@ -14965,20 +14965,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 14971 "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 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 14977 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_decl_statement_expr = 
-# 1476 "parser_cocci_menhir.mly"
+# 1450 "parser_cocci_menhir.mly"
       ( let (mids,code) = t in
        if List.for_all (function [] -> true | _ -> false) code
       then []
@@ -15011,7 +15011,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15017 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
@@ -15019,7 +15019,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_t_ in
         let _endpos = _endpos_pv_ in
         let _v : 'tv_decl_var = 
-# 1239 "parser_cocci_menhir.mly"
+# 1213 "parser_cocci_menhir.mly"
       ( [Ast0.wrap(Ast0.TyDecl(t,P.clt2mcode ";" pv))] )
 # 15025 "parser_cocci_menhir.ml"
          in
@@ -15040,14 +15040,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 161 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 15046 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_decl_var = 
-# 1240 "parser_cocci_menhir.mly"
+# 1214 "parser_cocci_menhir.mly"
               ( [P.meta_decl _1] )
 # 15053 "parser_cocci_menhir.ml"
          in
@@ -15078,7 +15078,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15084 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
@@ -15094,7 +15094,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1242 "parser_cocci_menhir.mly"
+# 1216 "parser_cocci_menhir.mly"
       ( List.map
          (function (id,fn) ->
            Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)))
@@ -15133,7 +15133,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15139 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
@@ -15151,7 +15151,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1242 "parser_cocci_menhir.mly"
+# 1216 "parser_cocci_menhir.mly"
       ( List.map
          (function (id,fn) ->
            Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)))
@@ -15178,7 +15178,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_f_ in
         let _endpos = _endpos_f_ in
         let _v : 'tv_decl_var = 
-# 1246 "parser_cocci_menhir.mly"
+# 1220 "parser_cocci_menhir.mly"
                ( [f] )
 # 15184 "parser_cocci_menhir.ml"
          in
@@ -15219,13 +15219,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15225 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15231 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
@@ -15241,7 +15241,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1248 "parser_cocci_menhir.mly"
+# 1222 "parser_cocci_menhir.mly"
       (let (id,fn) = d in
       [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))])
 # 15248 "parser_cocci_menhir.ml"
@@ -15288,13 +15288,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15294 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15300 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
@@ -15312,7 +15312,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1248 "parser_cocci_menhir.mly"
+# 1222 "parser_cocci_menhir.mly"
       (let (id,fn) = d in
       [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))])
 # 15319 "parser_cocci_menhir.ml"
@@ -15344,7 +15344,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15350 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
@@ -15367,7 +15367,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1253 "parser_cocci_menhir.mly"
+# 1227 "parser_cocci_menhir.mly"
       ( List.map
          (function (id,fn) ->
            let idtype =
@@ -15408,7 +15408,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15414 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
@@ -15433,7 +15433,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1253 "parser_cocci_menhir.mly"
+# 1227 "parser_cocci_menhir.mly"
       ( List.map
          (function (id,fn) ->
            let idtype =
@@ -15474,7 +15474,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15480 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
@@ -15499,7 +15499,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1253 "parser_cocci_menhir.mly"
+# 1227 "parser_cocci_menhir.mly"
       ( List.map
          (function (id,fn) ->
            let idtype =
@@ -15545,7 +15545,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15551 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
@@ -15572,7 +15572,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1253 "parser_cocci_menhir.mly"
+# 1227 "parser_cocci_menhir.mly"
       ( List.map
          (function (id,fn) ->
            let idtype =
@@ -15618,13 +15618,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15624 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15630 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
@@ -15647,7 +15647,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1261 "parser_cocci_menhir.mly"
+# 1235 "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
@@ -15697,13 +15697,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15703 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15709 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
@@ -15728,7 +15728,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1261 "parser_cocci_menhir.mly"
+# 1235 "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
@@ -15778,13 +15778,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15784 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15790 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
@@ -15809,7 +15809,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1261 "parser_cocci_menhir.mly"
+# 1235 "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
@@ -15864,13 +15864,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15870 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15876 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
@@ -15897,7 +15897,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1261 "parser_cocci_menhir.mly"
+# 1235 "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
@@ -15962,34 +15962,34 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15968 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let rp2 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15973 "parser_cocci_menhir.ml"
         ) = Obj.magic rp2 in
         let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
         let lp2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15979 "parser_cocci_menhir.ml"
         ) = Obj.magic lp2 in
         let rp1 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15984 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_d_ident = Obj.magic d in
         let st : (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15990 "parser_cocci_menhir.ml"
         ) = Obj.magic st in
         let lp1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 15995 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
@@ -16004,7 +16004,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1271 "parser_cocci_menhir.mly"
+# 1245 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         let t =
          Ast0.wrap
@@ -16076,34 +16076,34 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16082 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let rp2 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16087 "parser_cocci_menhir.ml"
         ) = Obj.magic rp2 in
         let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
         let lp2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16093 "parser_cocci_menhir.ml"
         ) = Obj.magic lp2 in
         let rp1 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16098 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_d_ident = Obj.magic d in
         let st : (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16104 "parser_cocci_menhir.ml"
         ) = Obj.magic st in
         let lp1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16109 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
@@ -16120,7 +16120,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1271 "parser_cocci_menhir.mly"
+# 1245 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         let t =
          Ast0.wrap
@@ -16167,18 +16167,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _5 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16173 "parser_cocci_menhir.ml"
         ) = Obj.magic _5 in
         let _4 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16178 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
         let _2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16184 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -16186,7 +16186,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__5_ in
         let _v : 'tv_decl_var = 
-# 1279 "parser_cocci_menhir.mly"
+# 1253 "parser_cocci_menhir.mly"
       ( [Ast0.wrap(Ast0.MacroDecl(_1,P.clt2mcode "(" _2,_3,
                                  P.clt2mcode ")" _4,P.clt2mcode ";" _5))] )
 # 16193 "parser_cocci_menhir.ml"
@@ -16238,24 +16238,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _7 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16244 "parser_cocci_menhir.ml"
         ) = Obj.magic _7 in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16250 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let _4 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16255 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
         let _2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16261 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -16263,7 +16263,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__7_ in
         let _v : 'tv_decl_var = 
-# 1282 "parser_cocci_menhir.mly"
+# 1256 "parser_cocci_menhir.mly"
       ( [Ast0.wrap
            (Ast0.MacroDeclInit
               (_1,P.clt2mcode "(" _2,_3,
@@ -16338,40 +16338,40 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16344 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16350 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let rp2 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16355 "parser_cocci_menhir.ml"
         ) = Obj.magic rp2 in
         let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
         let lp2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16361 "parser_cocci_menhir.ml"
         ) = Obj.magic lp2 in
         let rp1 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16366 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_d_ident = Obj.magic d in
         let st : (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16372 "parser_cocci_menhir.ml"
         ) = Obj.magic st in
         let lp1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16377 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
@@ -16386,7 +16386,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1291 "parser_cocci_menhir.mly"
+# 1265 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         let t =
          Ast0.wrap
@@ -16468,40 +16468,40 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16474 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16480 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let rp2 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16485 "parser_cocci_menhir.ml"
         ) = Obj.magic rp2 in
         let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
         let lp2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16491 "parser_cocci_menhir.ml"
         ) = Obj.magic lp2 in
         let rp1 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16496 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_d_ident = Obj.magic d in
         let st : (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16502 "parser_cocci_menhir.ml"
         ) = Obj.magic st in
         let lp1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16507 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
@@ -16518,7 +16518,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1291 "parser_cocci_menhir.mly"
+# 1265 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         let t =
          Ast0.wrap
@@ -16560,21 +16560,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16566 "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 : (
-# 147 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
 # 16573 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_pv_ in
         let _v : 'tv_decl_var = 
-# 1299 "parser_cocci_menhir.mly"
+# 1273 "parser_cocci_menhir.mly"
       ( let s = P.clt2mcode "typedef" s in
         List.map
          (function id ->
@@ -16602,7 +16602,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_define_param_list_option = 
-# 1019 "parser_cocci_menhir.mly"
+# 993 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.DOTS
             (_1
@@ -16627,14 +16627,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 179 "parser_cocci_menhir.mly"
+# 153 "parser_cocci_menhir.mly"
        (Data.clt * token)
 # 16633 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_defineop = 
-# 963 "parser_cocci_menhir.mly"
+# 937 "parser_cocci_menhir.mly"
     ( let (clt,ident) = _1 in
       let aft = P.get_aft clt in (* move stuff after the define to the ident *)
       function body ->
@@ -16687,20 +16687,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 16693 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_define_param_list_option = Obj.magic _2 in
         let _1 : (
-# 180 "parser_cocci_menhir.mly"
+# 154 "parser_cocci_menhir.mly"
        (Data.clt * token * int * int)
 # 16699 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_defineop = 
-# 987 "parser_cocci_menhir.mly"
+# 961 "parser_cocci_menhir.mly"
     ( let (clt,ident,parenoff,parencol) = _1 in
       let aft = P.get_aft clt in (* move stuff after the define to the ( *)
       (* clt is the start of the #define itself *)
@@ -16745,14 +16745,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 16751 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_dep = 
-# 325 "parser_cocci_menhir.mly"
+# 299 "parser_cocci_menhir.mly"
                    ( Ast0.Dep _1 )
 # 16758 "parser_cocci_menhir.ml"
          in
@@ -16777,14 +16777,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 16783 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_dep = 
-# 326 "parser_cocci_menhir.mly"
+# 300 "parser_cocci_menhir.mly"
                    ( Ast0.AntiDep (Ast0.Dep _2) )
 # 16790 "parser_cocci_menhir.ml"
          in
@@ -16820,7 +16820,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_dep = 
-# 328 "parser_cocci_menhir.mly"
+# 302 "parser_cocci_menhir.mly"
                    ( Ast0.AntiDep _3 )
 # 16826 "parser_cocci_menhir.ml"
          in
@@ -16845,14 +16845,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 16851 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_dep = 
-# 329 "parser_cocci_menhir.mly"
+# 303 "parser_cocci_menhir.mly"
                    ( Ast0.EverDep _2 )
 # 16858 "parser_cocci_menhir.ml"
          in
@@ -16877,14 +16877,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 16883 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_dep = 
-# 330 "parser_cocci_menhir.mly"
+# 304 "parser_cocci_menhir.mly"
                    ( Ast0.NeverDep _2 )
 # 16890 "parser_cocci_menhir.ml"
          in
@@ -16918,7 +16918,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_dep = 
-# 331 "parser_cocci_menhir.mly"
+# 305 "parser_cocci_menhir.mly"
                    ( Ast0.AndDep(_1, _3) )
 # 16924 "parser_cocci_menhir.ml"
          in
@@ -16952,7 +16952,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_dep = 
-# 332 "parser_cocci_menhir.mly"
+# 306 "parser_cocci_menhir.mly"
                    ( Ast0.OrDep (_1, _3) )
 # 16958 "parser_cocci_menhir.ml"
          in
@@ -16984,7 +16984,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_dep = 
-# 333 "parser_cocci_menhir.mly"
+# 307 "parser_cocci_menhir.mly"
                    ( _2 )
 # 16990 "parser_cocci_menhir.ml"
          in
@@ -17001,7 +17001,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 = 
-# 321 "parser_cocci_menhir.mly"
+# 295 "parser_cocci_menhir.mly"
                            ( Ast0.NoDep )
 # 17007 "parser_cocci_menhir.ml"
          in
@@ -17033,7 +17033,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_parents_ in
         let _v : 'tv_depends = 
-# 322 "parser_cocci_menhir.mly"
+# 296 "parser_cocci_menhir.mly"
                            ( parents )
 # 17039 "parser_cocci_menhir.ml"
          in
@@ -17060,14 +17060,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_disj_ident = Obj.magic _2 in
         let _1 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 17066 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_designator = 
-# 1415 "parser_cocci_menhir.mly"
+# 1389 "parser_cocci_menhir.mly"
      ( Ast0.DesignatorField (P.clt2mcode "." _1,_2) )
 # 17073 "parser_cocci_menhir.ml"
          in
@@ -17098,20 +17098,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 200 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
 # 17104 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_eexpr = Obj.magic _2 in
         let _1 : (
-# 200 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
 # 17110 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_designator = 
-# 1417 "parser_cocci_menhir.mly"
+# 1391 "parser_cocci_menhir.mly"
      ( Ast0.DesignatorIndex (P.clt2mcode "[" _1,_2,P.clt2mcode "]" _3) )
 # 17117 "parser_cocci_menhir.ml"
          in
@@ -17152,26 +17152,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _5 : (
-# 200 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
 # 17158 "parser_cocci_menhir.ml"
         ) = Obj.magic _5 in
         let _4 : 'tv_eexpr = Obj.magic _4 in
         let _3 : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 17164 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_eexpr = Obj.magic _2 in
         let _1 : (
-# 200 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
 # 17170 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__5_ in
         let _v : 'tv_designator = 
-# 1419 "parser_cocci_menhir.mly"
+# 1393 "parser_cocci_menhir.mly"
      ( Ast0.DesignatorRange (P.clt2mcode "[" _1,_2,P.clt2mcode "..." _3,
                             _4,P.clt2mcode "]" _5) )
 # 17178 "parser_cocci_menhir.ml"
@@ -17196,7 +17196,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_dexpr = 
-# 1502 "parser_cocci_menhir.mly"
+# 1476 "parser_cocci_menhir.mly"
                                               ( _1 )
 # 17202 "parser_cocci_menhir.ml"
          in
@@ -17224,7 +17224,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_disable = 
-# 339 "parser_cocci_menhir.mly"
+# 313 "parser_cocci_menhir.mly"
                                                       ( List.map P.id2name _2 )
 # 17230 "parser_cocci_menhir.ml"
          in
@@ -17248,7 +17248,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_disj_ident = 
-# 2070 "parser_cocci_menhir.mly"
+# 2044 "parser_cocci_menhir.mly"
               ( _1 )
 # 17254 "parser_cocci_menhir.ml"
          in
@@ -17279,20 +17279,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 17285 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_midzero_list_disj_ident_disj_ident_ = Obj.magic t in
         let lp : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 17291 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let _startpos = _startpos_lp_ in
         let _endpos = _endpos_rp_ in
         let _v : 'tv_disj_ident = 
-# 2072 "parser_cocci_menhir.mly"
+# 2046 "parser_cocci_menhir.mly"
   ( let (mids,code) = t in
         Ast0.wrap
           (Ast0.DisjId(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) )
@@ -17315,14 +17315,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 17321 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_dot_expressions = 
-# 1512 "parser_cocci_menhir.mly"
+# 1486 "parser_cocci_menhir.mly"
             ( Ast0.wrap(Ast0.Edots(P.clt2mcode "..." _1,None)) )
 # 17328 "parser_cocci_menhir.ml"
          in
@@ -17346,7 +17346,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_dot_expressions = 
-# 1513 "parser_cocci_menhir.mly"
+# 1487 "parser_cocci_menhir.mly"
                    ( _1 )
 # 17352 "parser_cocci_menhir.ml"
          in
@@ -17370,7 +17370,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_dparam = 
-# 1015 "parser_cocci_menhir.mly"
+# 989 "parser_cocci_menhir.mly"
                ( Ast0.wrap(Ast0.DParam _1) )
 # 17376 "parser_cocci_menhir.ml"
          in
@@ -17394,7 +17394,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_eargexpr = 
-# 1500 "parser_cocci_menhir.mly"
+# 1474 "parser_cocci_menhir.mly"
                                             ( _1 )
 # 17400 "parser_cocci_menhir.ml"
          in
@@ -17415,14 +17415,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let d : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 17421 "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_ = 
-# 2392 "parser_cocci_menhir.mly"
+# 2366 "parser_cocci_menhir.mly"
                                                   ( (d,None) )
 # 17428 "parser_cocci_menhir.ml"
          in
@@ -17461,14 +17461,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let w : 'tv_eexpr = Obj.magic w in
         let d : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 17467 "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_ = 
-# 2393 "parser_cocci_menhir.mly"
+# 2367 "parser_cocci_menhir.mly"
                                                   ( (d,Some w) )
 # 17474 "parser_cocci_menhir.ml"
          in
@@ -17489,14 +17489,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let d : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 17495 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_d_ in
         let _v : 'tv_edots_when_TEllipsis_enum_decl_one_ = 
-# 2392 "parser_cocci_menhir.mly"
+# 2366 "parser_cocci_menhir.mly"
                                                   ( (d,None) )
 # 17502 "parser_cocci_menhir.ml"
          in
@@ -17535,14 +17535,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let w : 'tv_enum_decl_one = Obj.magic w in
         let d : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 17541 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos__5_ in
         let _v : 'tv_edots_when_TEllipsis_enum_decl_one_ = 
-# 2393 "parser_cocci_menhir.mly"
+# 2367 "parser_cocci_menhir.mly"
                                                   ( (d,Some w) )
 # 17548 "parser_cocci_menhir.ml"
          in
@@ -17563,14 +17563,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let d : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 17569 "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_ = 
-# 2392 "parser_cocci_menhir.mly"
+# 2366 "parser_cocci_menhir.mly"
                                                   ( (d,None) )
 # 17576 "parser_cocci_menhir.ml"
          in
@@ -17609,14 +17609,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let w : 'tv_initialize = Obj.magic w in
         let d : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 17615 "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_ = 
-# 2393 "parser_cocci_menhir.mly"
+# 2367 "parser_cocci_menhir.mly"
                                                   ( (d,Some w) )
 # 17622 "parser_cocci_menhir.ml"
          in
@@ -17637,14 +17637,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let d : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 17643 "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_one_ = 
-# 2392 "parser_cocci_menhir.mly"
+# 2366 "parser_cocci_menhir.mly"
                                                   ( (d,None) )
 # 17650 "parser_cocci_menhir.ml"
          in
@@ -17683,14 +17683,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let w : 'tv_struct_decl_one = Obj.magic w in
         let d : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 17689 "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_one_ = 
-# 2393 "parser_cocci_menhir.mly"
+# 2367 "parser_cocci_menhir.mly"
                                                   ( (d,Some w) )
 # 17696 "parser_cocci_menhir.ml"
          in
@@ -17714,7 +17714,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_eexpr = 
-# 1499 "parser_cocci_menhir.mly"
+# 1473 "parser_cocci_menhir.mly"
                                              ( _1 )
 # 17720 "parser_cocci_menhir.ml"
          in
@@ -17738,7 +17738,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_eexpr_list_option = 
-# 2372 "parser_cocci_menhir.mly"
+# 2346 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.DOTS
             (_1
@@ -17759,7 +17759,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_empty_list_start_aexpr_TEllipsis_ = 
-# 2134 "parser_cocci_menhir.mly"
+# 2108 "parser_cocci_menhir.mly"
               ( fun build_dots build_comma -> [] )
 # 17765 "parser_cocci_menhir.ml"
          in
@@ -17783,7 +17783,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_empty_list_start_aexpr_TEllipsis_ = 
-# 2135 "parser_cocci_menhir.mly"
+# 2109 "parser_cocci_menhir.mly"
                                    ( _1 )
 # 17789 "parser_cocci_menhir.ml"
          in
@@ -17800,7 +17800,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_empty_list_start_dparam_TEllipsis_ = 
-# 2134 "parser_cocci_menhir.mly"
+# 2108 "parser_cocci_menhir.mly"
               ( fun build_dots build_comma -> [] )
 # 17806 "parser_cocci_menhir.ml"
          in
@@ -17824,7 +17824,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_empty_list_start_dparam_TEllipsis_ = 
-# 2135 "parser_cocci_menhir.mly"
+# 2109 "parser_cocci_menhir.mly"
                                    ( _1 )
 # 17830 "parser_cocci_menhir.ml"
          in
@@ -17841,7 +17841,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_empty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2134 "parser_cocci_menhir.mly"
+# 2108 "parser_cocci_menhir.mly"
               ( fun build_dots build_comma -> [] )
 # 17847 "parser_cocci_menhir.ml"
          in
@@ -17865,7 +17865,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_empty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2135 "parser_cocci_menhir.mly"
+# 2109 "parser_cocci_menhir.mly"
                                    ( _1 )
 # 17871 "parser_cocci_menhir.ml"
          in
@@ -17882,7 +17882,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_empty_list_start_one_dec_decl__TEllipsis_ = 
-# 2134 "parser_cocci_menhir.mly"
+# 2108 "parser_cocci_menhir.mly"
               ( fun build_dots build_comma -> [] )
 # 17888 "parser_cocci_menhir.ml"
          in
@@ -17906,7 +17906,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_empty_list_start_one_dec_decl__TEllipsis_ = 
-# 2135 "parser_cocci_menhir.mly"
+# 2109 "parser_cocci_menhir.mly"
                                    ( _1 )
 # 17912 "parser_cocci_menhir.ml"
          in
@@ -17923,7 +17923,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_empty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
-# 2134 "parser_cocci_menhir.mly"
+# 2108 "parser_cocci_menhir.mly"
               ( fun build_dots build_comma -> [] )
 # 17929 "parser_cocci_menhir.ml"
          in
@@ -17947,7 +17947,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_empty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
-# 2135 "parser_cocci_menhir.mly"
+# 2109 "parser_cocci_menhir.mly"
                                    ( _1 )
 # 17953 "parser_cocci_menhir.ml"
          in
@@ -17971,7 +17971,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_enum_decl_list = 
-# 861 "parser_cocci_menhir.mly"
+# 835 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.DOTS(_1 P.mkedots (fun c -> Ast0.EComma c))) )
 # 17977 "parser_cocci_menhir.ml"
          in
@@ -17995,7 +17995,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_enum_decl_one = 
-# 832 "parser_cocci_menhir.mly"
+# 806 "parser_cocci_menhir.mly"
                     ( Ast0.wrap(Ast0.Ident(_1)) )
 # 18001 "parser_cocci_menhir.ml"
          in
@@ -18027,7 +18027,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_enum_val = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 18033 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -18035,7 +18035,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_enum_decl_one = 
-# 834 "parser_cocci_menhir.mly"
+# 808 "parser_cocci_menhir.mly"
  ( let id = Ast0.wrap(Ast0.Ident(_1)) in
        Ast0.wrap
          (Ast0.Assignment
@@ -18063,7 +18063,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_enum_val = 
-# 841 "parser_cocci_menhir.mly"
+# 815 "parser_cocci_menhir.mly"
             ( Ast0.wrap(Ast0.Ident(_1)) )
 # 18069 "parser_cocci_menhir.ml"
          in
@@ -18084,14 +18084,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 18090 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_enum_val = 
-# 843 "parser_cocci_menhir.mly"
+# 817 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
 # 18098 "parser_cocci_menhir.ml"
@@ -18113,14 +18113,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 161 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 18119 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_enum_val = 
-# 845 "parser_cocci_menhir.mly"
+# 819 "parser_cocci_menhir.mly"
          ( tmeta_to_exp _1 )
 # 18126 "parser_cocci_menhir.ml"
          in
@@ -18141,14 +18141,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 18147 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_enum_val = 
-# 847 "parser_cocci_menhir.mly"
+# 821 "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)) )
@@ -18171,14 +18171,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 18177 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_enum_val = 
-# 851 "parser_cocci_menhir.mly"
+# 825 "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)) )
@@ -18201,14 +18201,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 18207 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_enum_val = 
-# 855 "parser_cocci_menhir.mly"
+# 829 "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)) )
@@ -18232,7 +18232,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_exists = 
-# 342 "parser_cocci_menhir.mly"
+# 316 "parser_cocci_menhir.mly"
           ( Ast.Exists )
 # 18238 "parser_cocci_menhir.ml"
          in
@@ -18254,7 +18254,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_exists = 
-# 343 "parser_cocci_menhir.mly"
+# 317 "parser_cocci_menhir.mly"
           ( Ast.Forall )
 # 18260 "parser_cocci_menhir.ml"
          in
@@ -18271,7 +18271,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 = 
-# 344 "parser_cocci_menhir.mly"
+# 318 "parser_cocci_menhir.mly"
           ( Ast.Undetermined )
 # 18277 "parser_cocci_menhir.ml"
          in
@@ -18295,7 +18295,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_expr = 
-# 1497 "parser_cocci_menhir.mly"
+# 1471 "parser_cocci_menhir.mly"
                                 ( _1 )
 # 18301 "parser_cocci_menhir.ml"
          in
@@ -18319,7 +18319,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_r_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_expr_dots_TEllipsis_ = 
-# 1770 "parser_cocci_menhir.mly"
+# 1744 "parser_cocci_menhir.mly"
                                                        ( r )
 # 18325 "parser_cocci_menhir.ml"
          in
@@ -18343,7 +18343,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_m_ in
         let _endpos = _endpos_m_ in
         let _v : 'tv_expression_type = 
-# 603 "parser_cocci_menhir.mly"
+# 577 "parser_cocci_menhir.mly"
                         ( P.ty_pointerify Type_cocci.Unknown m )
 # 18349 "parser_cocci_menhir.ml"
          in
@@ -18371,7 +18371,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_m_ in
         let _v : 'tv_expression_type = 
-# 605 "parser_cocci_menhir.mly"
+# 579 "parser_cocci_menhir.mly"
     ( P.ty_pointerify (Type_cocci.EnumName Type_cocci.NoName) m )
 # 18377 "parser_cocci_menhir.ml"
          in
@@ -18399,7 +18399,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_m_ in
         let _v : 'tv_expression_type = 
-# 607 "parser_cocci_menhir.mly"
+# 581 "parser_cocci_menhir.mly"
     ( P.ty_pointerify
        (Type_cocci.StructUnionName (Type_cocci.Struct,Type_cocci.NoName)) m )
 # 18406 "parser_cocci_menhir.ml"
@@ -18428,7 +18428,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_m_ in
         let _v : 'tv_expression_type = 
-# 610 "parser_cocci_menhir.mly"
+# 584 "parser_cocci_menhir.mly"
     ( P.ty_pointerify
        (Type_cocci.StructUnionName (Type_cocci.Union,Type_cocci.NoName)) m )
 # 18435 "parser_cocci_menhir.ml"
@@ -18446,7 +18446,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 = 
-# 316 "parser_cocci_menhir.mly"
+# 290 "parser_cocci_menhir.mly"
                                                   ( () )
 # 18452 "parser_cocci_menhir.ml"
          in
@@ -18471,14 +18471,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let parent : (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 18477 "parser_cocci_menhir.ml"
         ) = Obj.magic parent in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_parent_ in
         let _v : 'tv_extends = 
-# 318 "parser_cocci_menhir.mly"
+# 292 "parser_cocci_menhir.mly"
     ( !Data.install_bindings (parent) )
 # 18484 "parser_cocci_menhir.ml"
          in
@@ -18504,19 +18504,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 181 "parser_cocci_menhir.mly"
+# 155 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 18510 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 181 "parser_cocci_menhir.mly"
+# 155 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 18515 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_filespec = 
-# 898 "parser_cocci_menhir.mly"
+# 872 "parser_cocci_menhir.mly"
     ( [Ast0.wrap
          (Ast0.FILEINFO(P.id2mcode _1,
                         P.id2mcode _2))] )
@@ -18542,7 +18542,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_fn_ident = 
-# 2045 "parser_cocci_menhir.mly"
+# 2019 "parser_cocci_menhir.mly"
                      ( _1 )
 # 18548 "parser_cocci_menhir.ml"
          in
@@ -18563,14 +18563,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 157 "parser_cocci_menhir.mly"
+# 131 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
 # 18569 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_fn_ident = 
-# 2047 "parser_cocci_menhir.mly"
+# 2021 "parser_cocci_menhir.mly"
          ( let (nm,constraints,pure,clt) = _1 in
         Ast0.wrap(Ast0.MetaFunc(P.clt2mcode nm clt,constraints,pure)) )
 # 18577 "parser_cocci_menhir.ml"
@@ -18592,14 +18592,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 157 "parser_cocci_menhir.mly"
+# 131 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
 # 18598 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_fn_ident = 
-# 2050 "parser_cocci_menhir.mly"
+# 2024 "parser_cocci_menhir.mly"
   ( let (nm,constraints,pure,clt) = _1 in
         Ast0.wrap
           (Ast0.MetaLocalFunc(P.clt2mcode nm clt,constraints,pure)) )
@@ -18618,7 +18618,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 = 
-# 1051 "parser_cocci_menhir.mly"
+# 1025 "parser_cocci_menhir.mly"
                 ( [] )
 # 18624 "parser_cocci_menhir.ml"
          in
@@ -18648,7 +18648,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fninfo = 
-# 1053 "parser_cocci_menhir.mly"
+# 1027 "parser_cocci_menhir.mly"
       ( try
        let _ =
          List.find (function Ast0.FStorage(_) -> true | _ -> false) _2 in
@@ -18682,7 +18682,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_t_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_fninfo = 
-# 1058 "parser_cocci_menhir.mly"
+# 1032 "parser_cocci_menhir.mly"
                         ( (Ast0.FType(t))::r )
 # 18688 "parser_cocci_menhir.ml"
          in
@@ -18709,14 +18709,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_fninfo = Obj.magic _2 in
         let _1 : (
-# 147 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
 # 18715 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fninfo = 
-# 1060 "parser_cocci_menhir.mly"
+# 1034 "parser_cocci_menhir.mly"
       ( try
        let _ = List.find (function Ast0.FInline(_) -> true | _ -> false) _2 in
        raise (Semantic_cocci.Semantic "duplicate inline")
@@ -18746,14 +18746,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_fninfo = Obj.magic _2 in
         let _1 : (
-# 149 "parser_cocci_menhir.mly"
+# 123 "parser_cocci_menhir.mly"
       (string * Data.clt)
 # 18752 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fninfo = 
-# 1065 "parser_cocci_menhir.mly"
+# 1039 "parser_cocci_menhir.mly"
       ( try
        let _ = List.find (function Ast0.FAttr(_) -> true | _ -> false) _2 in
        raise (Semantic_cocci.Semantic "multiple attributes")
@@ -18773,7 +18773,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 = 
-# 1071 "parser_cocci_menhir.mly"
+# 1045 "parser_cocci_menhir.mly"
                 ( [] )
 # 18779 "parser_cocci_menhir.ml"
          in
@@ -18803,7 +18803,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fninfo_nt = 
-# 1073 "parser_cocci_menhir.mly"
+# 1047 "parser_cocci_menhir.mly"
       ( try
        let _ =
          List.find (function Ast0.FStorage(_) -> true | _ -> false) _2 in
@@ -18834,14 +18834,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_fninfo_nt = Obj.magic _2 in
         let _1 : (
-# 147 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
 # 18840 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fninfo_nt = 
-# 1079 "parser_cocci_menhir.mly"
+# 1053 "parser_cocci_menhir.mly"
       ( try
        let _ = List.find (function Ast0.FInline(_) -> true | _ -> false) _2 in
        raise (Semantic_cocci.Semantic "duplicate inline")
@@ -18871,14 +18871,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_fninfo_nt = Obj.magic _2 in
         let _1 : (
-# 149 "parser_cocci_menhir.mly"
+# 123 "parser_cocci_menhir.mly"
       (string * Data.clt)
 # 18877 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fninfo_nt = 
-# 1084 "parser_cocci_menhir.mly"
+# 1058 "parser_cocci_menhir.mly"
       ( try
        let _ = List.find (function Ast0.FAttr(_) -> true | _ -> false) _2 in
        raise (Semantic_cocci.Semantic "duplicate init")
@@ -18898,7 +18898,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 = 
-# 2305 "parser_cocci_menhir.mly"
+# 2279 "parser_cocci_menhir.mly"
                                ([])
 # 18904 "parser_cocci_menhir.ml"
          in
@@ -18926,7 +18926,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fun_after_dots = 
-# 2306 "parser_cocci_menhir.mly"
+# 2280 "parser_cocci_menhir.mly"
                                (_2)
 # 18932 "parser_cocci_menhir.ml"
          in
@@ -18956,7 +18956,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fun_after_dots = 
-# 2307 "parser_cocci_menhir.mly"
+# 2281 "parser_cocci_menhir.mly"
                                (Ast0.wrap(Ast0.Exp(_1))::_2)
 # 18962 "parser_cocci_menhir.ml"
          in
@@ -18986,7 +18986,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fun_after_dots = 
-# 2308 "parser_cocci_menhir.mly"
+# 2282 "parser_cocci_menhir.mly"
                                     (_1@_2)
 # 18992 "parser_cocci_menhir.ml"
          in
@@ -19003,7 +19003,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 = 
-# 2315 "parser_cocci_menhir.mly"
+# 2289 "parser_cocci_menhir.mly"
                                ([])
 # 19009 "parser_cocci_menhir.ml"
          in
@@ -19031,7 +19031,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fun_after_dots_or = 
-# 2316 "parser_cocci_menhir.mly"
+# 2290 "parser_cocci_menhir.mly"
                                (_2)
 # 19037 "parser_cocci_menhir.ml"
          in
@@ -19061,7 +19061,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fun_after_dots_or = 
-# 2317 "parser_cocci_menhir.mly"
+# 2291 "parser_cocci_menhir.mly"
                                (Ast0.wrap(Ast0.Exp(_1))::_2)
 # 19067 "parser_cocci_menhir.ml"
          in
@@ -19091,7 +19091,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fun_after_dots_or = 
-# 2318 "parser_cocci_menhir.mly"
+# 2292 "parser_cocci_menhir.mly"
                                     (_1@_2)
 # 19097 "parser_cocci_menhir.ml"
          in
@@ -19121,7 +19121,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fun_after_exp = 
-# 2311 "parser_cocci_menhir.mly"
+# 2285 "parser_cocci_menhir.mly"
                                (_1::_2)
 # 19127 "parser_cocci_menhir.ml"
          in
@@ -19138,7 +19138,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 = 
-# 2321 "parser_cocci_menhir.mly"
+# 2295 "parser_cocci_menhir.mly"
                                ([])
 # 19144 "parser_cocci_menhir.ml"
          in
@@ -19168,7 +19168,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fun_after_exp_or = 
-# 2322 "parser_cocci_menhir.mly"
+# 2296 "parser_cocci_menhir.mly"
                                (_1::_2)
 # 19174 "parser_cocci_menhir.ml"
          in
@@ -19185,7 +19185,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 = 
-# 2300 "parser_cocci_menhir.mly"
+# 2274 "parser_cocci_menhir.mly"
                                ([])
 # 19191 "parser_cocci_menhir.ml"
          in
@@ -19215,7 +19215,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fun_after_stm = 
-# 2301 "parser_cocci_menhir.mly"
+# 2275 "parser_cocci_menhir.mly"
                                (_1::_2)
 # 19221 "parser_cocci_menhir.ml"
          in
@@ -19245,7 +19245,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_fun_after_stm = 
-# 2302 "parser_cocci_menhir.mly"
+# 2276 "parser_cocci_menhir.mly"
                                (_1@_2)
 # 19251 "parser_cocci_menhir.ml"
          in
@@ -19269,7 +19269,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_fun_start = 
-# 2297 "parser_cocci_menhir.mly"
+# 2271 "parser_cocci_menhir.mly"
                  ( Ast0.wrap(Ast0.DOTS(_1)) )
 # 19275 "parser_cocci_menhir.ml"
          in
@@ -19293,7 +19293,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_func_ident = 
-# 2036 "parser_cocci_menhir.mly"
+# 2010 "parser_cocci_menhir.mly"
              ( _1 )
 # 19299 "parser_cocci_menhir.ml"
          in
@@ -19314,14 +19314,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 157 "parser_cocci_menhir.mly"
+# 131 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
 # 19320 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_func_ident = 
-# 2038 "parser_cocci_menhir.mly"
+# 2012 "parser_cocci_menhir.mly"
          ( let (nm,constraints,pure,clt) = _1 in
         Ast0.wrap(Ast0.MetaFunc(P.clt2mcode nm clt,constraints,pure)) )
 # 19328 "parser_cocci_menhir.ml"
@@ -19343,14 +19343,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 157 "parser_cocci_menhir.mly"
+# 131 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
 # 19349 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_func_ident = 
-# 2041 "parser_cocci_menhir.mly"
+# 2015 "parser_cocci_menhir.mly"
   ( let (nm,constraints,pure,clt) = _1 in
         Ast0.wrap
           (Ast0.MetaLocalFunc(P.clt2mcode nm clt,constraints,pure)) )
@@ -19412,24 +19412,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rb : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 19418 "parser_cocci_menhir.ml"
         ) = Obj.magic rb in
         let b : 'tv_fun_start = Obj.magic b in
         let lb : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 19424 "parser_cocci_menhir.ml"
         ) = Obj.magic lb in
         let rp : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 19429 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let d : 'tv_decl_list_decl_ = Obj.magic d in
         let lp : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 19435 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
@@ -19438,7 +19438,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_f_ in
         let _endpos = _endpos_rb_ in
         let _v : 'tv_fundecl = 
-# 1042 "parser_cocci_menhir.mly"
+# 1016 "parser_cocci_menhir.mly"
       ( P.verify_parameter_declarations (Ast0.undots d);
        Ast0.wrap(Ast0.FunDecl((Ast0.default_info(),Ast0.context_befaft()),
                               f, i,
@@ -19490,18 +19490,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pt : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 19496 "parser_cocci_menhir.ml"
         ) = Obj.magic pt in
         let rp : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 19501 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in
         let lp : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 19507 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
@@ -19517,7 +19517,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1030 "parser_cocci_menhir.mly"
+# 1004 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.UnInit
             (s,
@@ -19574,18 +19574,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pt : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 19580 "parser_cocci_menhir.ml"
         ) = Obj.magic pt in
         let rp : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 19585 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in
         let lp : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 19591 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
@@ -19603,7 +19603,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1030 "parser_cocci_menhir.mly"
+# 1004 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.UnInit
             (s,
@@ -19633,7 +19633,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_ident = 
-# 2055 "parser_cocci_menhir.mly"
+# 2029 "parser_cocci_menhir.mly"
          ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) )
 # 19639 "parser_cocci_menhir.ml"
          in
@@ -19657,7 +19657,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_ident = 
-# 2056 "parser_cocci_menhir.mly"
+# 2030 "parser_cocci_menhir.mly"
                          ( _1 )
 # 19663 "parser_cocci_menhir.ml"
          in
@@ -19678,14 +19678,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 130 "parser_cocci_menhir.mly"
        (Parse_aux.midinfo)
 # 19684 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_ident = 
-# 2058 "parser_cocci_menhir.mly"
+# 2032 "parser_cocci_menhir.mly"
          ( let (nm,constraints,seed,pure,clt) = _1 in
          Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,seed,pure)) )
 # 19692 "parser_cocci_menhir.ml"
@@ -19710,7 +19710,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_i_ in
         let _endpos = _endpos_i_ in
         let _v : 'tv_ident_or_const = 
-# 2008 "parser_cocci_menhir.mly"
+# 1982 "parser_cocci_menhir.mly"
                     ( Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i)))) )
 # 19716 "parser_cocci_menhir.ml"
          in
@@ -19734,7 +19734,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_ident_or_const = 
-# 2009 "parser_cocci_menhir.mly"
+# 1983 "parser_cocci_menhir.mly"
                          ( Ast0.wrap(Ast0.Ident(_1)) )
 # 19740 "parser_cocci_menhir.ml"
          in
@@ -19755,14 +19755,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 19761 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_ident_or_const = 
-# 2011 "parser_cocci_menhir.mly"
+# 1985 "parser_cocci_menhir.mly"
   ( let (x,clt) = _1 in
         Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
 # 19769 "parser_cocci_menhir.ml"
@@ -19784,14 +19784,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 178 "parser_cocci_menhir.mly"
+# 152 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 19790 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_incl = 
-# 355 "parser_cocci_menhir.mly"
+# 329 "parser_cocci_menhir.mly"
                       ( let (x,_) = _1 in Data.Include(x) )
 # 19797 "parser_cocci_menhir.ml"
          in
@@ -19816,14 +19816,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 19822 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_incl = 
-# 356 "parser_cocci_menhir.mly"
+# 330 "parser_cocci_menhir.mly"
                       ( Data.Iso(Common.Left(P.id2name _2)) )
 # 19829 "parser_cocci_menhir.ml"
          in
@@ -19848,14 +19848,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 177 "parser_cocci_menhir.mly"
+# 151 "parser_cocci_menhir.mly"
        (string)
 # 19854 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_incl = 
-# 357 "parser_cocci_menhir.mly"
+# 331 "parser_cocci_menhir.mly"
                       ( Data.Iso(Common.Right _2) )
 # 19861 "parser_cocci_menhir.ml"
          in
@@ -19883,7 +19883,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_incl = 
-# 359 "parser_cocci_menhir.mly"
+# 333 "parser_cocci_menhir.mly"
     ( let names = List.map P.id2name _2 in
       Iteration.parsed_virtual_rules :=
        Common.union_set names !Iteration.parsed_virtual_rules;
@@ -19918,11 +19918,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 246 "parser_cocci_menhir.mly"
+# 220 "parser_cocci_menhir.mly"
       (Data.incl_iso list)
 # 19924 "parser_cocci_menhir.ml"
         ) = 
-# 351 "parser_cocci_menhir.mly"
+# 325 "parser_cocci_menhir.mly"
                        ( _1 )
 # 19928 "parser_cocci_menhir.ml"
          in
@@ -19950,11 +19950,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 246 "parser_cocci_menhir.mly"
+# 220 "parser_cocci_menhir.mly"
       (Data.incl_iso list)
 # 19956 "parser_cocci_menhir.ml"
         ) = 
-# 352 "parser_cocci_menhir.mly"
+# 326 "parser_cocci_menhir.mly"
                        ( _1 )
 # 19960 "parser_cocci_menhir.ml"
          in
@@ -19975,14 +19975,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 178 "parser_cocci_menhir.mly"
+# 152 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 19981 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_includes = 
-# 904 "parser_cocci_menhir.mly"
+# 878 "parser_cocci_menhir.mly"
     ( Ast0.wrap
              (Ast0.Include(P.clt2mcode "#include"
                              (P.drop_pos (P.drop_aft (P.id2clt _1))),
@@ -20012,14 +20012,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 178 "parser_cocci_menhir.mly"
+# 152 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 20018 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_includes = 
-# 915 "parser_cocci_menhir.mly"
+# 889 "parser_cocci_menhir.mly"
     ( Ast0.wrap
              (Ast0.Include(P.clt2mcode "#include"
                              (P.drop_pos (P.drop_aft (P.id2clt _1))),
@@ -20053,14 +20053,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _1 : (
-# 179 "parser_cocci_menhir.mly"
+# 153 "parser_cocci_menhir.mly"
        (Data.clt * token)
 # 20059 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_includes = 
-# 926 "parser_cocci_menhir.mly"
+# 900 "parser_cocci_menhir.mly"
     ( let (clt,ident) = _1 in
       let aft = P.get_aft clt in (* move stuff after the define to the ident *)
       Ast0.wrap
@@ -20106,7 +20106,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_d_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_includes = 
-# 946 "parser_cocci_menhir.mly"
+# 920 "parser_cocci_menhir.mly"
     ( d (Ast0.wrap(Ast0.DOTS([]))) )
 # 20112 "parser_cocci_menhir.ml"
          in
@@ -20140,7 +20140,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_d_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_includes = 
-# 948 "parser_cocci_menhir.mly"
+# 922 "parser_cocci_menhir.mly"
     ( let ty = Ast0.wrap(Ast0.TopExp(Ast0.wrap(Ast0.TypeExp(t)))) in
       d (Ast0.wrap(Ast0.DOTS([ty]))) )
 # 20147 "parser_cocci_menhir.ml"
@@ -20175,7 +20175,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_includes = 
-# 951 "parser_cocci_menhir.mly"
+# 925 "parser_cocci_menhir.mly"
     ( let body =
        match b with
          [e] ->
@@ -20207,7 +20207,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_initialize = 
-# 1371 "parser_cocci_menhir.mly"
+# 1345 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.InitExpr(_1)) )
 # 20213 "parser_cocci_menhir.ml"
          in
@@ -20238,20 +20238,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 20244 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_initialize_list = Obj.magic _2 in
         let _1 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 20250 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_initialize = 
-# 1373 "parser_cocci_menhir.mly"
+# 1347 "parser_cocci_menhir.mly"
     ( if P.struct_initializer _2
     then
       let il = P.drop_dot_commas _2 in
@@ -20277,14 +20277,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 161 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 20283 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_initialize = 
-# 1380 "parser_cocci_menhir.mly"
+# 1354 "parser_cocci_menhir.mly"
       (let (nm,pure,clt) = _1 in
       Ast0.wrap(Ast0.MetaInit(P.clt2mcode nm clt,pure)) )
 # 20291 "parser_cocci_menhir.ml"
@@ -20309,7 +20309,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_initialize2 = 
-# 1386 "parser_cocci_menhir.mly"
+# 1360 "parser_cocci_menhir.mly"
                             ( Ast0.wrap(Ast0.InitExpr(_1)) )
 # 20315 "parser_cocci_menhir.ml"
          in
@@ -20333,7 +20333,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_initialize2 = 
-# 1387 "parser_cocci_menhir.mly"
+# 1361 "parser_cocci_menhir.mly"
                             ( Ast0.wrap(Ast0.InitExpr(_1)) )
 # 20339 "parser_cocci_menhir.ml"
          in
@@ -20364,20 +20364,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 20370 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_initialize_list = Obj.magic _2 in
         let _1 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 20376 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_initialize2 = 
-# 1389 "parser_cocci_menhir.mly"
+# 1363 "parser_cocci_menhir.mly"
     ( if P.struct_initializer _2
     then
       let il = P.drop_dot_commas _2 in
@@ -20414,7 +20414,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_initialize2 = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 20420 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -20422,7 +20422,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_initialize2 = 
-# 1397 "parser_cocci_menhir.mly"
+# 1371 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.InitGccExt(_1,P.clt2mcode "=" _2,_3)) )
 # 20428 "parser_cocci_menhir.ml"
          in
@@ -20454,7 +20454,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_initialize2 = Obj.magic _3 in
         let _2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 20460 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -20462,7 +20462,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_initialize2 = 
-# 1399 "parser_cocci_menhir.mly"
+# 1373 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.InitGccName(_1,P.clt2mcode ":" _2,_3)) )
 # 20468 "parser_cocci_menhir.ml"
          in
@@ -20483,14 +20483,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 161 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 20489 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_initialize2 = 
-# 1401 "parser_cocci_menhir.mly"
+# 1375 "parser_cocci_menhir.mly"
       (let (nm,pure,clt) = _1 in
       Ast0.wrap(Ast0.MetaInit(P.clt2mcode nm clt,pure)) )
 # 20497 "parser_cocci_menhir.ml"
@@ -20512,14 +20512,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 162 "parser_cocci_menhir.mly"
+# 136 "parser_cocci_menhir.mly"
        (Parse_aux.list_info)
 # 20518 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_initialize2 = 
-# 1404 "parser_cocci_menhir.mly"
+# 1378 "parser_cocci_menhir.mly"
       (let (nm,lenname,pure,clt) = _1 in
       let nm = P.clt2mcode nm clt in
       let lenname =
@@ -20550,7 +20550,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_initialize_list = 
-# 1424 "parser_cocci_menhir.mly"
+# 1398 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.DOTS(_1 P.mkidots (fun c -> Ast0.IComma c))) )
 # 20556 "parser_cocci_menhir.ml"
          in
@@ -20572,7 +20572,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_invalid = 
-# 1509 "parser_cocci_menhir.mly"
+# 1483 "parser_cocci_menhir.mly"
            ( raise (Semantic_cocci.Semantic "not matchable") )
 # 20578 "parser_cocci_menhir.ml"
          in
@@ -20589,7 +20589,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 = 
-# 347 "parser_cocci_menhir.mly"
+# 321 "parser_cocci_menhir.mly"
               ( false )
 # 20595 "parser_cocci_menhir.ml"
          in
@@ -20611,7 +20611,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_is_expression = 
-# 348 "parser_cocci_menhir.mly"
+# 322 "parser_cocci_menhir.mly"
               ( true )
 # 20617 "parser_cocci_menhir.ml"
          in
@@ -20639,7 +20639,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_t_ in
         let _v : 'tv_iso_ctype_ = 
-# 2448 "parser_cocci_menhir.mly"
+# 2422 "parser_cocci_menhir.mly"
                 ( Common.Left t )
 # 20645 "parser_cocci_menhir.ml"
          in
@@ -20667,7 +20667,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_t_ in
         let _v : 'tv_iso_ctype_ = 
-# 2449 "parser_cocci_menhir.mly"
+# 2423 "parser_cocci_menhir.mly"
                      ( Common.Right t )
 # 20673 "parser_cocci_menhir.ml"
          in
@@ -20695,7 +20695,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_t_ in
         let _v : 'tv_iso_decl_var_ = 
-# 2448 "parser_cocci_menhir.mly"
+# 2422 "parser_cocci_menhir.mly"
                 ( Common.Left t )
 # 20701 "parser_cocci_menhir.ml"
          in
@@ -20723,7 +20723,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_t_ in
         let _v : 'tv_iso_decl_var_ = 
-# 2449 "parser_cocci_menhir.mly"
+# 2423 "parser_cocci_menhir.mly"
                      ( Common.Right t )
 # 20729 "parser_cocci_menhir.ml"
          in
@@ -20751,7 +20751,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_t_ in
         let _v : 'tv_iso_eexpr_ = 
-# 2448 "parser_cocci_menhir.mly"
+# 2422 "parser_cocci_menhir.mly"
                 ( Common.Left t )
 # 20757 "parser_cocci_menhir.ml"
          in
@@ -20779,7 +20779,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_t_ in
         let _v : 'tv_iso_eexpr_ = 
-# 2449 "parser_cocci_menhir.mly"
+# 2423 "parser_cocci_menhir.mly"
                      ( Common.Right t )
 # 20785 "parser_cocci_menhir.ml"
          in
@@ -20807,7 +20807,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_t_ in
         let _v : 'tv_iso_iso_statement_ = 
-# 2448 "parser_cocci_menhir.mly"
+# 2422 "parser_cocci_menhir.mly"
                 ( Common.Left t )
 # 20813 "parser_cocci_menhir.ml"
          in
@@ -20835,7 +20835,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_t_ in
         let _v : 'tv_iso_iso_statement_ = 
-# 2449 "parser_cocci_menhir.mly"
+# 2423 "parser_cocci_menhir.mly"
                      ( Common.Right t )
 # 20841 "parser_cocci_menhir.ml"
          in
@@ -20863,7 +20863,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_t_ in
         let _v : 'tv_iso_nest_start_ = 
-# 2448 "parser_cocci_menhir.mly"
+# 2422 "parser_cocci_menhir.mly"
                 ( Common.Left t )
 # 20869 "parser_cocci_menhir.ml"
          in
@@ -20891,7 +20891,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_t_ in
         let _v : 'tv_iso_nest_start_ = 
-# 2449 "parser_cocci_menhir.mly"
+# 2423 "parser_cocci_menhir.mly"
                      ( Common.Right t )
 # 20897 "parser_cocci_menhir.ml"
          in
@@ -20929,11 +20929,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : (
-# 262 "parser_cocci_menhir.mly"
+# 236 "parser_cocci_menhir.mly"
       (Ast0_cocci.anything list list)
 # 20935 "parser_cocci_menhir.ml"
         ) = 
-# 2416 "parser_cocci_menhir.mly"
+# 2390 "parser_cocci_menhir.mly"
     ( let fn x = Ast0.ExprTag x in P.iso_adjust fn fn e1 el )
 # 20939 "parser_cocci_menhir.ml"
          in
@@ -20971,11 +20971,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : (
-# 262 "parser_cocci_menhir.mly"
+# 236 "parser_cocci_menhir.mly"
       (Ast0_cocci.anything list list)
 # 20977 "parser_cocci_menhir.ml"
         ) = 
-# 2418 "parser_cocci_menhir.mly"
+# 2392 "parser_cocci_menhir.mly"
     ( let fn x = Ast0.ArgExprTag x in P.iso_adjust fn fn e1 el )
 # 20981 "parser_cocci_menhir.ml"
          in
@@ -21013,11 +21013,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : (
-# 262 "parser_cocci_menhir.mly"
+# 236 "parser_cocci_menhir.mly"
       (Ast0_cocci.anything list list)
 # 21019 "parser_cocci_menhir.ml"
         ) = 
-# 2420 "parser_cocci_menhir.mly"
+# 2394 "parser_cocci_menhir.mly"
     ( let fn x = Ast0.TestExprTag x in P.iso_adjust fn fn e1 el )
 # 21023 "parser_cocci_menhir.ml"
          in
@@ -21055,11 +21055,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : (
-# 262 "parser_cocci_menhir.mly"
+# 236 "parser_cocci_menhir.mly"
       (Ast0_cocci.anything list list)
 # 21061 "parser_cocci_menhir.ml"
         ) = 
-# 2422 "parser_cocci_menhir.mly"
+# 2396 "parser_cocci_menhir.mly"
     ( let ffn x = Ast0.ExprTag x in
       let fn x =  Ast0.TestExprTag x in
       P.iso_adjust ffn fn e1 el )
@@ -21099,11 +21099,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : (
-# 262 "parser_cocci_menhir.mly"
+# 236 "parser_cocci_menhir.mly"
       (Ast0_cocci.anything list list)
 # 21105 "parser_cocci_menhir.ml"
         ) = 
-# 2426 "parser_cocci_menhir.mly"
+# 2400 "parser_cocci_menhir.mly"
     ( let fn x = Ast0.StmtTag x in P.iso_adjust fn fn s1 sl )
 # 21109 "parser_cocci_menhir.ml"
          in
@@ -21141,11 +21141,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : (
-# 262 "parser_cocci_menhir.mly"
+# 236 "parser_cocci_menhir.mly"
       (Ast0_cocci.anything list list)
 # 21147 "parser_cocci_menhir.ml"
         ) = 
-# 2428 "parser_cocci_menhir.mly"
+# 2402 "parser_cocci_menhir.mly"
     ( let fn x = Ast0.TypeCTag x in P.iso_adjust fn fn t1 tl )
 # 21151 "parser_cocci_menhir.ml"
          in
@@ -21183,11 +21183,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : (
-# 262 "parser_cocci_menhir.mly"
+# 236 "parser_cocci_menhir.mly"
       (Ast0_cocci.anything list list)
 # 21189 "parser_cocci_menhir.ml"
         ) = 
-# 2430 "parser_cocci_menhir.mly"
+# 2404 "parser_cocci_menhir.mly"
     ( let fn x = Ast0.DotsStmtTag x in P.iso_adjust fn fn e1 el )
 # 21193 "parser_cocci_menhir.ml"
          in
@@ -21225,11 +21225,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : (
-# 262 "parser_cocci_menhir.mly"
+# 236 "parser_cocci_menhir.mly"
       (Ast0_cocci.anything list list)
 # 21231 "parser_cocci_menhir.ml"
         ) = 
-# 2432 "parser_cocci_menhir.mly"
+# 2406 "parser_cocci_menhir.mly"
     ( let check_one = function
        [x] -> x
       | _ ->
@@ -21266,11 +21266,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_m_ in
         let _endpos = _endpos_m_ in
         let _v : (
-# 265 "parser_cocci_menhir.mly"
+# 239 "parser_cocci_menhir.mly"
       ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list)
 # 21272 "parser_cocci_menhir.ml"
         ) = 
-# 282 "parser_cocci_menhir.mly"
+# 256 "parser_cocci_menhir.mly"
                          ( m "" )
 # 21276 "parser_cocci_menhir.ml"
          in
@@ -21298,11 +21298,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_nm_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 249 "parser_cocci_menhir.mly"
+# 223 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
 # 21304 "parser_cocci_menhir.ml"
         ) = 
-# 297 "parser_cocci_menhir.mly"
+# 271 "parser_cocci_menhir.mly"
                       ( P.make_iso_rule_name_result (P.id2name nm) )
 # 21308 "parser_cocci_menhir.ml"
          in
@@ -21326,7 +21326,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_iso_statement = 
-# 1214 "parser_cocci_menhir.mly"
+# 1188 "parser_cocci_menhir.mly"
                                       ( _1 )
 # 21332 "parser_cocci_menhir.ml"
          in
@@ -21350,7 +21350,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_iso_statement = 
-# 1216 "parser_cocci_menhir.mly"
+# 1190 "parser_cocci_menhir.mly"
       ( match _1 with
        [decl] ->
          Ast0.wrap
@@ -21375,14 +21375,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 21381 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_iter_ident = 
-# 2089 "parser_cocci_menhir.mly"
+# 2063 "parser_cocci_menhir.mly"
          ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) )
 # 21388 "parser_cocci_menhir.ml"
          in
@@ -21403,14 +21403,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 158 "parser_cocci_menhir.mly"
+# 132 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
 # 21409 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_iter_ident = 
-# 2091 "parser_cocci_menhir.mly"
+# 2065 "parser_cocci_menhir.mly"
          ( let (nm,constraints,pure,clt) = _1 in
          Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,Ast.NoVal,pure)) )
 # 21417 "parser_cocci_menhir.ml"
@@ -21455,7 +21455,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let xs : 'tv_list_TMul_ = Obj.magic xs in
         let x : (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 21461 "parser_cocci_menhir.ml"
         ) = Obj.magic x in
@@ -22488,7 +22488,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_list_len = 
-# 451 "parser_cocci_menhir.mly"
+# 425 "parser_cocci_menhir.mly"
                            ( Common.Left _1 )
 # 22494 "parser_cocci_menhir.ml"
          in
@@ -22509,14 +22509,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 22515 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_list_len = 
-# 452 "parser_cocci_menhir.mly"
+# 426 "parser_cocci_menhir.mly"
        ( let (x,clt) = _1 in Common.Right (int_of_string x) )
 # 22522 "parser_cocci_menhir.ml"
          in
@@ -22783,14 +22783,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 161 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 22789 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_mctype = 
-# 765 "parser_cocci_menhir.mly"
+# 739 "parser_cocci_menhir.mly"
         ( tmeta_to_type _1 )
 # 22796 "parser_cocci_menhir.ml"
          in
@@ -22814,7 +22814,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_mctype = 
-# 766 "parser_cocci_menhir.mly"
+# 740 "parser_cocci_menhir.mly"
         (_1)
 # 22820 "parser_cocci_menhir.ml"
          in
@@ -22838,7 +22838,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_t_ in
         let _endpos = _endpos_t_ in
         let _v : 'tv_meta_exp_type = 
-# 646 "parser_cocci_menhir.mly"
+# 620 "parser_cocci_menhir.mly"
     ( [Ast0_cocci.ast0_type_to_type t] )
 # 22844 "parser_cocci_menhir.ml"
          in
@@ -22870,7 +22870,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_t_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_meta_exp_type = 
-# 648 "parser_cocci_menhir.mly"
+# 622 "parser_cocci_menhir.mly"
     ( [Type_cocci.Array (Ast0_cocci.ast0_type_to_type t)] )
 # 22876 "parser_cocci_menhir.ml"
          in
@@ -22908,7 +22908,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_m_ in
         let _v : 'tv_meta_exp_type = 
-# 650 "parser_cocci_menhir.mly"
+# 624 "parser_cocci_menhir.mly"
     ( List.map
        (function x -> P.ty_pointerify (Ast0_cocci.ast0_type_to_type x) m)
        t )
@@ -22941,14 +22941,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_pure_ident = Obj.magic _3 in
         let _1 : (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 22947 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_meta_ident = 
-# 1813 "parser_cocci_menhir.mly"
+# 1787 "parser_cocci_menhir.mly"
                                    ( (Some _1,P.id2name _3) )
 # 22954 "parser_cocci_menhir.ml"
          in
@@ -22979,14 +22979,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_pure_ident_kwd = Obj.magic _3 in
         let _1 : (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 22985 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_meta_ident = 
-# 1814 "parser_cocci_menhir.mly"
+# 1788 "parser_cocci_menhir.mly"
                                    ( (Some _1,_3) )
 # 22992 "parser_cocci_menhir.ml"
          in
@@ -23010,11 +23010,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_m_ in
         let _endpos = _endpos_m_ in
         let _v : (
-# 257 "parser_cocci_menhir.mly"
+# 231 "parser_cocci_menhir.mly"
       ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list)
 # 23016 "parser_cocci_menhir.ml"
         ) = 
-# 281 "parser_cocci_menhir.mly"
+# 255 "parser_cocci_menhir.mly"
                        ( m (!Ast0.rule_name) )
 # 23020 "parser_cocci_menhir.ml"
          in
@@ -23059,7 +23059,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 463 "parser_cocci_menhir.mly"
+# 437 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta ->
       let tok = check_meta(Ast.MetaMetaDecl(arity,name)) in
       !Data.add_meta_meta name pure; tok) )
@@ -23067,7 +23067,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 371 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
 # 23073 "parser_cocci_menhir.ml"
          in
@@ -23112,7 +23112,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 467 "parser_cocci_menhir.mly"
+# 441 "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) )
@@ -23120,7 +23120,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 371 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
 # 23126 "parser_cocci_menhir.ml"
          in
@@ -23169,7 +23169,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__6_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 471 "parser_cocci_menhir.mly"
+# 445 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta ->
       let len = Ast.AnyLen in
       let tok = check_meta(Ast.MetaParamListDecl(arity,name,len)) in
@@ -23178,7 +23178,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 371 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
 # 23184 "parser_cocci_menhir.ml"
          in
@@ -23227,7 +23227,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__6_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 476 "parser_cocci_menhir.mly"
+# 450 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta ->
       let len = Ast.AnyLen in
       let tok = check_meta(Ast.MetaExpListDecl(arity,name,len)) in
@@ -23236,7 +23236,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 371 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
 # 23242 "parser_cocci_menhir.ml"
          in
@@ -23281,7 +23281,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 481 "parser_cocci_menhir.mly"
+# 455 "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) )
@@ -23289,7 +23289,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 371 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
 # 23295 "parser_cocci_menhir.ml"
          in
@@ -23334,7 +23334,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 485 "parser_cocci_menhir.mly"
+# 459 "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) )
@@ -23342,7 +23342,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 371 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
 # 23348 "parser_cocci_menhir.ml"
          in
@@ -23391,7 +23391,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__6_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 489 "parser_cocci_menhir.mly"
+# 463 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta ->
       let len = Ast.AnyLen in
       let tok = check_meta(Ast.MetaInitListDecl(arity,name,len)) in
@@ -23400,7 +23400,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 371 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
 # 23406 "parser_cocci_menhir.ml"
          in
@@ -23445,7 +23445,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 494 "parser_cocci_menhir.mly"
+# 468 "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) )
@@ -23453,7 +23453,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 371 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
 # 23459 "parser_cocci_menhir.ml"
          in
@@ -23498,7 +23498,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 498 "parser_cocci_menhir.mly"
+# 472 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta ->
       let tok = check_meta(Ast.MetaDeclDecl(arity,name)) in
       !Data.add_decl_meta name pure; tok) )
@@ -23506,7 +23506,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 371 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
 # 23512 "parser_cocci_menhir.ml"
          in
@@ -23551,7 +23551,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 502 "parser_cocci_menhir.mly"
+# 476 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta ->
       let tok = check_meta(Ast.MetaFieldDecl(arity,name)) in
       !Data.add_field_meta name pure; tok) )
@@ -23559,7 +23559,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 371 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
 # 23565 "parser_cocci_menhir.ml"
          in
@@ -23608,7 +23608,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__6_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 506 "parser_cocci_menhir.mly"
+# 480 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta ->
       let len = Ast.AnyLen in
       let tok = check_meta(Ast.MetaFieldListDecl(arity,name,len)) in
@@ -23617,7 +23617,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 371 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
 # 23623 "parser_cocci_menhir.ml"
          in
@@ -23666,7 +23666,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__6_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 511 "parser_cocci_menhir.mly"
+# 485 "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) )
@@ -23674,7 +23674,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 371 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
 # 23680 "parser_cocci_menhir.ml"
          in
@@ -23719,7 +23719,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 515 "parser_cocci_menhir.mly"
+# 489 "parser_cocci_menhir.mly"
     ( (fun arity (_,name) pure check_meta ->
       if arity = Ast.NONE && pure = Ast0.Impure
       then (!Data.add_type_name name; [])
@@ -23728,7 +23728,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 371 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
 # 23734 "parser_cocci_menhir.ml"
          in
@@ -23777,7 +23777,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__6_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 520 "parser_cocci_menhir.mly"
+# 494 "parser_cocci_menhir.mly"
     ( (fun arity (_,name) pure check_meta ->
       if arity = Ast.NONE && pure = Ast0.Impure
       then (!Data.add_declarer_name name; [])
@@ -23786,7 +23786,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 371 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
 # 23792 "parser_cocci_menhir.ml"
          in
@@ -23835,7 +23835,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__6_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 525 "parser_cocci_menhir.mly"
+# 499 "parser_cocci_menhir.mly"
     ( (fun arity (_,name) pure check_meta ->
       if arity = Ast.NONE && pure = Ast0.Impure
       then (!Data.add_iterator_name name; [])
@@ -23844,7 +23844,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 371 "parser_cocci_menhir.mly"
+# 345 "parser_cocci_menhir.mly"
     ( P.create_metadec ar ispure kindfn ids )
 # 23850 "parser_cocci_menhir.ml"
          in
@@ -23881,7 +23881,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__4_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 456 "parser_cocci_menhir.mly"
+# 430 "parser_cocci_menhir.mly"
     ( (fun name check_meta seed ->
       let tok = check_meta(Ast.MetaFreshIdDecl(name,seed)) in
       !Data.add_fresh_id_meta name seed; tok) )
@@ -23889,7 +23889,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 374 "parser_cocci_menhir.mly"
+# 348 "parser_cocci_menhir.mly"
     ( P.create_fresh_metadec kindfn ids )
 # 23895 "parser_cocci_menhir.ml"
          in
@@ -23934,7 +23934,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 532 "parser_cocci_menhir.mly"
+# 506 "parser_cocci_menhir.mly"
     (
      let idfn arity name pure check_meta constraints =
        let tok = check_meta(Ast.MetaIdDecl(arity,name)) in
@@ -23955,7 +23955,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 380 "parser_cocci_menhir.mly"
+# 354 "parser_cocci_menhir.mly"
     ( let (normal,virt) = Common.partition_either (fun x -> x) ids in
     let (idfn,virtfn) = kindfn in
     function cr ->
@@ -24004,7 +24004,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 551 "parser_cocci_menhir.mly"
+# 525 "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) )
@@ -24012,7 +24012,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 389 "parser_cocci_menhir.mly"
+# 363 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
 # 24018 "parser_cocci_menhir.ml"
          in
@@ -24061,7 +24061,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__6_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 555 "parser_cocci_menhir.mly"
+# 529 "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;
@@ -24070,7 +24070,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 389 "parser_cocci_menhir.mly"
+# 363 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
 # 24076 "parser_cocci_menhir.ml"
          in
@@ -24115,7 +24115,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 560 "parser_cocci_menhir.mly"
+# 534 "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) )
@@ -24123,7 +24123,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 389 "parser_cocci_menhir.mly"
+# 363 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
 # 24129 "parser_cocci_menhir.ml"
          in
@@ -24168,7 +24168,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 564 "parser_cocci_menhir.mly"
+# 538 "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) )
@@ -24176,7 +24176,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 389 "parser_cocci_menhir.mly"
+# 363 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
 # 24182 "parser_cocci_menhir.ml"
          in
@@ -24221,7 +24221,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 570 "parser_cocci_menhir.mly"
+# 544 "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) )
@@ -24229,7 +24229,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 394 "parser_cocci_menhir.mly"
+# 368 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
 # 24235 "parser_cocci_menhir.ml"
          in
@@ -24288,7 +24288,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 574 "parser_cocci_menhir.mly"
+# 548 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta constraints ->
       match l with
        None ->
@@ -24301,7 +24301,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 394 "parser_cocci_menhir.mly"
+# 368 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
 # 24307 "parser_cocci_menhir.ml"
          in
@@ -24368,7 +24368,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 574 "parser_cocci_menhir.mly"
+# 548 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta constraints ->
       match l with
        None ->
@@ -24381,7 +24381,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 394 "parser_cocci_menhir.mly"
+# 368 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
 # 24387 "parser_cocci_menhir.ml"
          in
@@ -24440,7 +24440,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let m = m0 in
           let l = l0 in
           
-# 583 "parser_cocci_menhir.mly"
+# 557 "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
@@ -24454,7 +24454,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 394 "parser_cocci_menhir.mly"
+# 368 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
 # 24460 "parser_cocci_menhir.ml"
          in
@@ -24506,7 +24506,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_metadec = let kindfn =
           let ty = ty0 in
           
-# 593 "parser_cocci_menhir.mly"
+# 567 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta constraints ->
       let ty = Some [ty] in
       let tok = check_meta(Ast.MetaExpDecl(arity,name,ty)) in
@@ -24515,7 +24515,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 394 "parser_cocci_menhir.mly"
+# 368 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
 # 24521 "parser_cocci_menhir.ml"
          in
@@ -24567,7 +24567,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 598 "parser_cocci_menhir.mly"
+# 572 "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) )
@@ -24575,7 +24575,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 394 "parser_cocci_menhir.mly"
+# 368 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
 # 24581 "parser_cocci_menhir.ml"
          in
@@ -24635,7 +24635,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 598 "parser_cocci_menhir.mly"
+# 572 "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) )
@@ -24643,7 +24643,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 394 "parser_cocci_menhir.mly"
+# 368 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
 # 24649 "parser_cocci_menhir.ml"
          in
@@ -24688,7 +24688,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = let kindfn =
           
-# 615 "parser_cocci_menhir.mly"
+# 589 "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 constraints pure; tok) )
@@ -24696,7 +24696,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 399 "parser_cocci_menhir.mly"
+# 373 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
 # 24702 "parser_cocci_menhir.ml"
          in
@@ -24744,7 +24744,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _v : 'tv_metadec = let kindfn =
           let vl = vl0 in
           
-# 619 "parser_cocci_menhir.mly"
+# 593 "parser_cocci_menhir.mly"
     ( (fun arity name pure check_meta constraints ->
       let ty = Some vl in
       (match constraints with
@@ -24773,7 +24773,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 399 "parser_cocci_menhir.mly"
+# 373 "parser_cocci_menhir.mly"
     ( P.create_metadec_with_constraints ar ispure kindfn ids )
 # 24779 "parser_cocci_menhir.ml"
          in
@@ -24817,7 +24817,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_ar_ in
         let _endpos = _endpos__5_ in
         let _v : 'tv_metadec = 
-# 405 "parser_cocci_menhir.mly"
+# 379 "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 =
@@ -24885,7 +24885,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_ar_ in
         let _endpos = _endpos__9_ in
         let _v : 'tv_metadec = 
-# 415 "parser_cocci_menhir.mly"
+# 389 "parser_cocci_menhir.mly"
     ( P.create_len_metadec ar ispure
        (fun lenname arity name pure check_meta ->
          let tok = check_meta(Ast.MetaParamListDecl(arity,name,lenname)) in
@@ -24951,7 +24951,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_ar_ in
         let _endpos = _endpos__9_ in
         let _v : 'tv_metadec = 
-# 423 "parser_cocci_menhir.mly"
+# 397 "parser_cocci_menhir.mly"
     ( P.create_len_metadec ar ispure
        (fun lenname arity name pure check_meta ->
          let tok = check_meta(Ast.MetaExpListDecl(arity,name,lenname)) in
@@ -25017,7 +25017,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_ar_ in
         let _endpos = _endpos__9_ in
         let _v : 'tv_metadec = 
-# 431 "parser_cocci_menhir.mly"
+# 405 "parser_cocci_menhir.mly"
     ( P.create_len_metadec ar ispure
        (fun lenname arity name pure check_meta ->
          let tok = check_meta(Ast.MetaFieldListDecl(arity,name,lenname)) in
@@ -25083,7 +25083,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_ar_ in
         let _endpos = _endpos__9_ in
         let _v : 'tv_metadec = 
-# 439 "parser_cocci_menhir.mly"
+# 413 "parser_cocci_menhir.mly"
     ( P.create_len_metadec ar ispure
        (fun lenname arity name pure check_meta ->
          let tok = check_meta(Ast.MetaInitListDecl(arity,name,lenname)) in
@@ -25119,7 +25119,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_metadec = 
-# 445 "parser_cocci_menhir.mly"
+# 419 "parser_cocci_menhir.mly"
     ( (fun _ ->
         let add_sym = fun (nm,_) -> !Data.add_symbol_meta nm in
           List.iter add_sym ids; [])
@@ -25146,7 +25146,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_mident = 
-# 2062 "parser_cocci_menhir.mly"
+# 2036 "parser_cocci_menhir.mly"
          ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) )
 # 25152 "parser_cocci_menhir.ml"
          in
@@ -25170,7 +25170,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_mident = 
-# 2063 "parser_cocci_menhir.mly"
+# 2037 "parser_cocci_menhir.mly"
                          ( _1 )
 # 25176 "parser_cocci_menhir.ml"
          in
@@ -25191,14 +25191,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 161 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 25197 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_mident = 
-# 2064 "parser_cocci_menhir.mly"
+# 2038 "parser_cocci_menhir.mly"
              ( tmeta_to_ident _1 )
 # 25204 "parser_cocci_menhir.ml"
          in
@@ -25219,14 +25219,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 130 "parser_cocci_menhir.mly"
        (Parse_aux.midinfo)
 # 25225 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_mident = 
-# 2066 "parser_cocci_menhir.mly"
+# 2040 "parser_cocci_menhir.mly"
          ( let (nm,constraints,seed,pure,clt) = _1 in
          Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,seed,pure)) )
 # 25233 "parser_cocci_menhir.ml"
@@ -25257,7 +25257,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_midzero_list_ctype_ctype_ = 
-# 2386 "parser_cocci_menhir.mly"
+# 2360 "parser_cocci_menhir.mly"
      ( let (mids,code) = List.split b in (mids,(a::code)) )
 # 25263 "parser_cocci_menhir.ml"
          in
@@ -25287,7 +25287,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_midzero_list_disj_ident_disj_ident_ = 
-# 2386 "parser_cocci_menhir.mly"
+# 2360 "parser_cocci_menhir.mly"
      ( let (mids,code) = List.split b in (mids,(a::code)) )
 # 25293 "parser_cocci_menhir.ml"
          in
@@ -25317,7 +25317,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_midzero_list_eexpr_eexpr_ = 
-# 2386 "parser_cocci_menhir.mly"
+# 2360 "parser_cocci_menhir.mly"
      ( let (mids,code) = List.split b in (mids,(a::code)) )
 # 25323 "parser_cocci_menhir.ml"
          in
@@ -25347,7 +25347,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_midzero_list_expr_eexpr_ = 
-# 2386 "parser_cocci_menhir.mly"
+# 2360 "parser_cocci_menhir.mly"
      ( let (mids,code) = List.split b in (mids,(a::code)) )
 # 25353 "parser_cocci_menhir.ml"
          in
@@ -25377,7 +25377,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_ = 
-# 2386 "parser_cocci_menhir.mly"
+# 2360 "parser_cocci_menhir.mly"
      ( let (mids,code) = List.split b in (mids,(a::code)) )
 # 25383 "parser_cocci_menhir.ml"
          in
@@ -25407,7 +25407,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_ = 
-# 2386 "parser_cocci_menhir.mly"
+# 2360 "parser_cocci_menhir.mly"
      ( let (mids,code) = List.split b in (mids,(a::code)) )
 # 25413 "parser_cocci_menhir.ml"
          in
@@ -25437,7 +25437,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_midzero_list_mctype_mctype_ = 
-# 2386 "parser_cocci_menhir.mly"
+# 2360 "parser_cocci_menhir.mly"
      ( let (mids,code) = List.split b in (mids,(a::code)) )
 # 25443 "parser_cocci_menhir.ml"
          in
@@ -25467,7 +25467,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_ = 
-# 2386 "parser_cocci_menhir.mly"
+# 2360 "parser_cocci_menhir.mly"
      ( let (mids,code) = List.split b in (mids,(a::code)) )
 # 25473 "parser_cocci_menhir.ml"
          in
@@ -25497,7 +25497,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_midzero_list_statement_statement_ = 
-# 2386 "parser_cocci_menhir.mly"
+# 2360 "parser_cocci_menhir.mly"
      ( let (mids,code) = List.split b in (mids,(a::code)) )
 # 25503 "parser_cocci_menhir.ml"
          in
@@ -25527,7 +25527,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_midzero_list_struct_decl_one_struct_decl_one_ = 
-# 2386 "parser_cocci_menhir.mly"
+# 2360 "parser_cocci_menhir.mly"
      ( let (mids,code) = List.split b in (mids,(a::code)) )
 # 25533 "parser_cocci_menhir.ml"
          in
@@ -25557,7 +25557,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_f_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_minus_body = 
-# 872 "parser_cocci_menhir.mly"
+# 846 "parser_cocci_menhir.mly"
     ( match f@b(*@ew*) with
       [] -> raise (Semantic_cocci.Semantic "minus slice can't be empty")
     | code -> code )
@@ -25589,7 +25589,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_f_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_minus_exp_body = 
-# 886 "parser_cocci_menhir.mly"
+# 860 "parser_cocci_menhir.mly"
     ( match f@[b](*@ew*) with
       [] -> raise (Semantic_cocci.Semantic "minus slice can't be empty")
     | code -> code )
@@ -25619,11 +25619,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 237 "parser_cocci_menhir.mly"
+# 211 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
 # 25625 "parser_cocci_menhir.ml"
         ) = 
-# 277 "parser_cocci_menhir.mly"
+# 251 "parser_cocci_menhir.mly"
                                    ( _1 )
 # 25629 "parser_cocci_menhir.ml"
          in
@@ -25651,11 +25651,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_m_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 237 "parser_cocci_menhir.mly"
+# 211 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
 # 25657 "parser_cocci_menhir.ml"
         ) = 
-# 277 "parser_cocci_menhir.mly"
+# 251 "parser_cocci_menhir.mly"
                                                                        ( m )
 # 25661 "parser_cocci_menhir.ml"
          in
@@ -25683,11 +25683,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_m_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 237 "parser_cocci_menhir.mly"
+# 211 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
 # 25689 "parser_cocci_menhir.ml"
         ) = 
-# 278 "parser_cocci_menhir.mly"
+# 252 "parser_cocci_menhir.mly"
                          ( m )
 # 25693 "parser_cocci_menhir.ml"
          in
@@ -25715,11 +25715,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 234 "parser_cocci_menhir.mly"
+# 208 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
 # 25721 "parser_cocci_menhir.ml"
         ) = 
-# 273 "parser_cocci_menhir.mly"
+# 247 "parser_cocci_menhir.mly"
                            ( _1 )
 # 25725 "parser_cocci_menhir.ml"
          in
@@ -25747,11 +25747,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_m_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 234 "parser_cocci_menhir.mly"
+# 208 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
 # 25753 "parser_cocci_menhir.ml"
         ) = 
-# 273 "parser_cocci_menhir.mly"
+# 247 "parser_cocci_menhir.mly"
                                                            ( m )
 # 25757 "parser_cocci_menhir.ml"
          in
@@ -25779,11 +25779,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_m_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 234 "parser_cocci_menhir.mly"
+# 208 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
 # 25785 "parser_cocci_menhir.ml"
         ) = 
-# 274 "parser_cocci_menhir.mly"
+# 248 "parser_cocci_menhir.mly"
                      ( m )
 # 25789 "parser_cocci_menhir.ml"
          in
@@ -25807,7 +25807,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_minus_start = 
-# 2211 "parser_cocci_menhir.mly"
+# 2185 "parser_cocci_menhir.mly"
                          ( [Ast0.wrap(Ast0.OTHER(_1))] )
 # 25813 "parser_cocci_menhir.ml"
          in
@@ -25831,7 +25831,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_minus_start = 
-# 2212 "parser_cocci_menhir.mly"
+# 2186 "parser_cocci_menhir.mly"
                          ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Ty(_1))))] )
 # 25837 "parser_cocci_menhir.ml"
          in
@@ -25855,7 +25855,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_minus_start = 
-# 2213 "parser_cocci_menhir.mly"
+# 2187 "parser_cocci_menhir.mly"
                     ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.TopInit(_1))))] )
 # 25861 "parser_cocci_menhir.ml"
          in
@@ -25879,7 +25879,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_minus_start = 
-# 2215 "parser_cocci_menhir.mly"
+# 2189 "parser_cocci_menhir.mly"
     ( List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1 )
 # 25885 "parser_cocci_menhir.ml"
          in
@@ -25906,14 +25906,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_ctype = Obj.magic b in
         let a : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 25912 "parser_cocci_menhir.ml"
         ) = Obj.magic a in
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_mzl_ctype_ = 
-# 2389 "parser_cocci_menhir.mly"
+# 2363 "parser_cocci_menhir.mly"
                  ( (P.clt2mcode "|" a, b) )
 # 25919 "parser_cocci_menhir.ml"
          in
@@ -25940,14 +25940,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_disj_ident = Obj.magic b in
         let a : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 25946 "parser_cocci_menhir.ml"
         ) = Obj.magic a in
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_mzl_disj_ident_ = 
-# 2389 "parser_cocci_menhir.mly"
+# 2363 "parser_cocci_menhir.mly"
                  ( (P.clt2mcode "|" a, b) )
 # 25953 "parser_cocci_menhir.ml"
          in
@@ -25974,14 +25974,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_eexpr = Obj.magic b in
         let a : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 25980 "parser_cocci_menhir.ml"
         ) = Obj.magic a in
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_mzl_eexpr_ = 
-# 2389 "parser_cocci_menhir.mly"
+# 2363 "parser_cocci_menhir.mly"
                  ( (P.clt2mcode "|" a, b) )
 # 25987 "parser_cocci_menhir.ml"
          in
@@ -26008,14 +26008,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_fun_after_dots_or = Obj.magic b in
         let a : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26014 "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_ = 
-# 2389 "parser_cocci_menhir.mly"
+# 2363 "parser_cocci_menhir.mly"
                  ( (P.clt2mcode "|" a, b) )
 # 26021 "parser_cocci_menhir.ml"
          in
@@ -26042,14 +26042,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_fun_start = Obj.magic b in
         let a : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26048 "parser_cocci_menhir.ml"
         ) = Obj.magic a in
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_mzl_fun_start_ = 
-# 2389 "parser_cocci_menhir.mly"
+# 2363 "parser_cocci_menhir.mly"
                  ( (P.clt2mcode "|" a, b) )
 # 26055 "parser_cocci_menhir.ml"
          in
@@ -26076,14 +26076,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_mctype = Obj.magic b in
         let a : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26082 "parser_cocci_menhir.ml"
         ) = Obj.magic a in
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_mzl_mctype_ = 
-# 2389 "parser_cocci_menhir.mly"
+# 2363 "parser_cocci_menhir.mly"
                  ( (P.clt2mcode "|" a, b) )
 # 26089 "parser_cocci_menhir.ml"
          in
@@ -26110,14 +26110,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_rule_elem_statement = Obj.magic b in
         let a : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26116 "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_ = 
-# 2389 "parser_cocci_menhir.mly"
+# 2363 "parser_cocci_menhir.mly"
                  ( (P.clt2mcode "|" a, b) )
 # 26123 "parser_cocci_menhir.ml"
          in
@@ -26144,14 +26144,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_statement = Obj.magic b in
         let a : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26150 "parser_cocci_menhir.ml"
         ) = Obj.magic a in
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_mzl_statement_ = 
-# 2389 "parser_cocci_menhir.mly"
+# 2363 "parser_cocci_menhir.mly"
                  ( (P.clt2mcode "|" a, b) )
 # 26157 "parser_cocci_menhir.ml"
          in
@@ -26178,14 +26178,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_struct_decl_one = Obj.magic b in
         let a : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26184 "parser_cocci_menhir.ml"
         ) = Obj.magic a in
         let _startpos = _startpos_a_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_mzl_struct_decl_one_ = 
-# 2389 "parser_cocci_menhir.mly"
+# 2363 "parser_cocci_menhir.mly"
                  ( (P.clt2mcode "|" a, b) )
 # 26191 "parser_cocci_menhir.ml"
          in
@@ -26209,7 +26209,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_name_opt_decl = 
-# 1112 "parser_cocci_menhir.mly"
+# 1086 "parser_cocci_menhir.mly"
             ( _1 )
 # 26215 "parser_cocci_menhir.ml"
          in
@@ -26260,28 +26260,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp1 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26266 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in
         let lp1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26272 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
         let rp : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26277 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let s : (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26282 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let lp : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26287 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
@@ -26289,7 +26289,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_t_ in
         let _endpos = _endpos_rp1_ in
         let _v : 'tv_name_opt_decl = 
-# 1115 "parser_cocci_menhir.mly"
+# 1089 "parser_cocci_menhir.mly"
         ( let fnptr =
          Ast0.wrap
            (Ast0.FunctionPointer
@@ -26324,7 +26324,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nest_after_dots = 
-# 2331 "parser_cocci_menhir.mly"
+# 2305 "parser_cocci_menhir.mly"
                                      (_1@_2)
 # 26330 "parser_cocci_menhir.ml"
          in
@@ -26352,7 +26352,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nest_after_dots = 
-# 2332 "parser_cocci_menhir.mly"
+# 2306 "parser_cocci_menhir.mly"
                                 (_2)
 # 26358 "parser_cocci_menhir.ml"
          in
@@ -26382,7 +26382,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nest_after_dots = 
-# 2333 "parser_cocci_menhir.mly"
+# 2307 "parser_cocci_menhir.mly"
                                 ((Ast0.wrap(Ast0.Exp(_1)))::_2)
 # 26388 "parser_cocci_menhir.ml"
          in
@@ -26399,7 +26399,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 = 
-# 2341 "parser_cocci_menhir.mly"
+# 2315 "parser_cocci_menhir.mly"
                                 ([])
 # 26405 "parser_cocci_menhir.ml"
          in
@@ -26429,7 +26429,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nest_after_exp = 
-# 2342 "parser_cocci_menhir.mly"
+# 2316 "parser_cocci_menhir.mly"
                                 (_1::_2)
 # 26435 "parser_cocci_menhir.ml"
          in
@@ -26446,7 +26446,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 = 
-# 2336 "parser_cocci_menhir.mly"
+# 2310 "parser_cocci_menhir.mly"
                                 ([])
 # 26452 "parser_cocci_menhir.ml"
          in
@@ -26476,7 +26476,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nest_after_stm = 
-# 2337 "parser_cocci_menhir.mly"
+# 2311 "parser_cocci_menhir.mly"
                                 (_1::_2)
 # 26482 "parser_cocci_menhir.ml"
          in
@@ -26506,7 +26506,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nest_after_stm = 
-# 2338 "parser_cocci_menhir.mly"
+# 2312 "parser_cocci_menhir.mly"
                                 (_1@_2)
 # 26512 "parser_cocci_menhir.ml"
          in
@@ -26537,20 +26537,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let c : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26543 "parser_cocci_menhir.ml"
         ) = Obj.magic c in
         let e : 'tv_expr_dots_TEllipsis_ = Obj.magic e in
         let _1 : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26549 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_c_ in
         let _v : 'tv_nest_expressions = 
-# 1518 "parser_cocci_menhir.mly"
+# 1492 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.NestExpr(P.clt2mcode "<..." _1,
                              Ast0.wrap(Ast0.DOTS(e (P.mkedots "..."))),
                              P.clt2mcode "...>" c, None, false)) )
@@ -26583,20 +26583,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let c : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26589 "parser_cocci_menhir.ml"
         ) = Obj.magic c in
         let e : 'tv_expr_dots_TEllipsis_ = Obj.magic e in
         let _1 : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26595 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_c_ in
         let _v : 'tv_nest_expressions = 
-# 1522 "parser_cocci_menhir.mly"
+# 1496 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.NestExpr(P.clt2mcode "<+..." _1,
                              Ast0.wrap(Ast0.DOTS(e (P.mkedots "..."))),
                              P.clt2mcode "...+>" c, None, true)) )
@@ -26619,14 +26619,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 161 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 26625 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_nest_expressions = 
-# 1525 "parser_cocci_menhir.mly"
+# 1499 "parser_cocci_menhir.mly"
         ( tmeta_to_exp _1 )
 # 26632 "parser_cocci_menhir.ml"
          in
@@ -26657,20 +26657,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let c : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26663 "parser_cocci_menhir.ml"
         ) = Obj.magic c in
         let e : 'tv_expr_dots_TEllipsis_ = Obj.magic e in
         let _1 : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26669 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_c_ in
         let _v : 'tv_nest_expressions_only = 
-# 1529 "parser_cocci_menhir.mly"
+# 1503 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.NestExpr(P.clt2mcode "<..." _1,
                              Ast0.wrap(Ast0.DOTS(e (P.mkedots "..."))),
                              P.clt2mcode "...>" c, None, false)) )
@@ -26703,20 +26703,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let c : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26709 "parser_cocci_menhir.ml"
         ) = Obj.magic c in
         let e : 'tv_expr_dots_TEllipsis_ = Obj.magic e in
         let _1 : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26715 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_c_ in
         let _v : 'tv_nest_expressions_only = 
-# 1533 "parser_cocci_menhir.mly"
+# 1507 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.NestExpr(P.clt2mcode "<+..." _1,
                              Ast0.wrap(Ast0.DOTS(e (P.mkedots "..."))),
                              P.clt2mcode "...+>" c, None, true)) )
@@ -26742,7 +26742,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_nest_start = 
-# 2328 "parser_cocci_menhir.mly"
+# 2302 "parser_cocci_menhir.mly"
                    ( Ast0.wrap(Ast0.DOTS(_1)) )
 # 26748 "parser_cocci_menhir.ml"
          in
@@ -26764,11 +26764,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : (
-# 268 "parser_cocci_menhir.mly"
+# 242 "parser_cocci_menhir.mly"
       (unit)
 # 26770 "parser_cocci_menhir.ml"
         ) = 
-# 2456 "parser_cocci_menhir.mly"
+# 2430 "parser_cocci_menhir.mly"
                     ( () )
 # 26774 "parser_cocci_menhir.ml"
          in
@@ -26794,11 +26794,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 268 "parser_cocci_menhir.mly"
+# 242 "parser_cocci_menhir.mly"
       (unit)
 # 26800 "parser_cocci_menhir.ml"
         ) = 
-# 2457 "parser_cocci_menhir.mly"
+# 2431 "parser_cocci_menhir.mly"
                     ( () )
 # 26804 "parser_cocci_menhir.ml"
          in
@@ -26820,11 +26820,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : (
-# 268 "parser_cocci_menhir.mly"
+# 242 "parser_cocci_menhir.mly"
       (unit)
 # 26826 "parser_cocci_menhir.ml"
         ) = 
-# 2458 "parser_cocci_menhir.mly"
+# 2432 "parser_cocci_menhir.mly"
                     ( () )
 # 26830 "parser_cocci_menhir.ml"
          in
@@ -26854,7 +26854,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__ = 
-# 1775 "parser_cocci_menhir.mly"
+# 1749 "parser_cocci_menhir.mly"
   ( function dot_builder ->
       g :: (List.concat(List.map (function (d,g) -> [dot_builder d;g]) dg)) )
 # 26861 "parser_cocci_menhir.ml"
@@ -26876,7 +26876,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let x : (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26882 "parser_cocci_menhir.ml"
         ) = Obj.magic x in
@@ -26910,7 +26910,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let xs : 'tv_nonempty_list_TMul_ = Obj.magic xs in
         let x : (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26916 "parser_cocci_menhir.ml"
         ) = Obj.magic x in
@@ -26941,7 +26941,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = 
-# 2138 "parser_cocci_menhir.mly"
+# 2112 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
 # 26947 "parser_cocci_menhir.ml"
          in
@@ -26967,7 +26967,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 26973 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -26975,7 +26975,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = 
-# 2140 "parser_cocci_menhir.mly"
+# 2114 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
 # 26982 "parser_cocci_menhir.ml"
@@ -27008,7 +27008,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_aexpr_TEllipsis_ = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27014 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -27016,7 +27016,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = 
-# 2143 "parser_cocci_menhir.mly"
+# 2117 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
@@ -27046,7 +27046,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = 
-# 2146 "parser_cocci_menhir.mly"
+# 2120 "parser_cocci_menhir.mly"
                                             ( _2 )
 # 27052 "parser_cocci_menhir.ml"
          in
@@ -27067,14 +27067,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let d : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27073 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_d_ in
         let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = 
-# 2147 "parser_cocci_menhir.mly"
+# 2121 "parser_cocci_menhir.mly"
            ( fun build_dots build_comma -> [(build_dots "..." d)] )
 # 27080 "parser_cocci_menhir.ml"
          in
@@ -27100,19 +27100,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27106 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let d : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27111 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = 
-# 2149 "parser_cocci_menhir.mly"
+# 2123 "parser_cocci_menhir.mly"
       ( fun build_dots build_comma ->
        [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
 # 27119 "parser_cocci_menhir.ml"
@@ -27145,19 +27145,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let r : 'tv_continue_list_aexpr_TEllipsis_ = Obj.magic r in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27151 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let d : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27156 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = 
-# 2152 "parser_cocci_menhir.mly"
+# 2126 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       (build_dots "..." d)::
       (Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
@@ -27184,7 +27184,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = 
-# 2138 "parser_cocci_menhir.mly"
+# 2112 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
 # 27190 "parser_cocci_menhir.ml"
          in
@@ -27210,7 +27210,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27216 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -27218,7 +27218,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = 
-# 2140 "parser_cocci_menhir.mly"
+# 2114 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
 # 27225 "parser_cocci_menhir.ml"
@@ -27251,7 +27251,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_dparam_TEllipsis_ = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27257 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -27259,7 +27259,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = 
-# 2143 "parser_cocci_menhir.mly"
+# 2117 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
@@ -27289,7 +27289,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = 
-# 2146 "parser_cocci_menhir.mly"
+# 2120 "parser_cocci_menhir.mly"
                                             ( _2 )
 # 27295 "parser_cocci_menhir.ml"
          in
@@ -27310,14 +27310,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let d : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27316 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_d_ in
         let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = 
-# 2147 "parser_cocci_menhir.mly"
+# 2121 "parser_cocci_menhir.mly"
            ( fun build_dots build_comma -> [(build_dots "..." d)] )
 # 27323 "parser_cocci_menhir.ml"
          in
@@ -27343,19 +27343,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27349 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let d : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27354 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = 
-# 2149 "parser_cocci_menhir.mly"
+# 2123 "parser_cocci_menhir.mly"
       ( fun build_dots build_comma ->
        [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
 # 27362 "parser_cocci_menhir.ml"
@@ -27388,19 +27388,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let r : 'tv_continue_list_dparam_TEllipsis_ = Obj.magic r in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27394 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let d : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27399 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = 
-# 2152 "parser_cocci_menhir.mly"
+# 2126 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       (build_dots "..." d)::
       (Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
@@ -27427,7 +27427,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2138 "parser_cocci_menhir.mly"
+# 2112 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
 # 27433 "parser_cocci_menhir.ml"
          in
@@ -27453,7 +27453,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27459 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -27461,7 +27461,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2140 "parser_cocci_menhir.mly"
+# 2114 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
 # 27468 "parser_cocci_menhir.ml"
@@ -27494,7 +27494,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27500 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -27502,7 +27502,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2143 "parser_cocci_menhir.mly"
+# 2117 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
@@ -27532,7 +27532,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2146 "parser_cocci_menhir.mly"
+# 2120 "parser_cocci_menhir.mly"
                                             ( _2 )
 # 27538 "parser_cocci_menhir.ml"
          in
@@ -27556,7 +27556,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_d_ in
         let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2147 "parser_cocci_menhir.mly"
+# 2121 "parser_cocci_menhir.mly"
            ( fun build_dots build_comma -> [(build_dots "..." d)] )
 # 27562 "parser_cocci_menhir.ml"
          in
@@ -27582,7 +27582,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27588 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -27590,7 +27590,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_d_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2149 "parser_cocci_menhir.mly"
+# 2123 "parser_cocci_menhir.mly"
       ( fun build_dots build_comma ->
        [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
 # 27597 "parser_cocci_menhir.ml"
@@ -27623,7 +27623,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let r : 'tv_continue_list_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = Obj.magic r in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27629 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -27631,7 +27631,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
-# 2152 "parser_cocci_menhir.mly"
+# 2126 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       (build_dots "..." d)::
       (Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
@@ -27658,7 +27658,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2138 "parser_cocci_menhir.mly"
+# 2112 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
 # 27664 "parser_cocci_menhir.ml"
          in
@@ -27684,7 +27684,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27690 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -27692,7 +27692,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2140 "parser_cocci_menhir.mly"
+# 2114 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
 # 27699 "parser_cocci_menhir.ml"
@@ -27725,7 +27725,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27731 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -27733,7 +27733,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2143 "parser_cocci_menhir.mly"
+# 2117 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
@@ -27763,7 +27763,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2146 "parser_cocci_menhir.mly"
+# 2120 "parser_cocci_menhir.mly"
                                             ( _2 )
 # 27769 "parser_cocci_menhir.ml"
          in
@@ -27787,7 +27787,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_d_ in
         let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2147 "parser_cocci_menhir.mly"
+# 2121 "parser_cocci_menhir.mly"
            ( fun build_dots build_comma -> [(build_dots "..." d)] )
 # 27793 "parser_cocci_menhir.ml"
          in
@@ -27813,7 +27813,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27819 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -27821,7 +27821,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_d_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2149 "parser_cocci_menhir.mly"
+# 2123 "parser_cocci_menhir.mly"
       ( fun build_dots build_comma ->
        [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
 # 27828 "parser_cocci_menhir.ml"
@@ -27854,7 +27854,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let r : 'tv_continue_list_initialize2_edots_when_TEllipsis_initialize__ = Obj.magic r in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27860 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -27862,7 +27862,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
-# 2152 "parser_cocci_menhir.mly"
+# 2126 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       (build_dots "..." d)::
       (Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
@@ -27889,7 +27889,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = 
-# 2138 "parser_cocci_menhir.mly"
+# 2112 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
 # 27895 "parser_cocci_menhir.ml"
          in
@@ -27915,7 +27915,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27921 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -27923,7 +27923,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = 
-# 2140 "parser_cocci_menhir.mly"
+# 2114 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
 # 27930 "parser_cocci_menhir.ml"
@@ -27956,7 +27956,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 27962 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -27964,7 +27964,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = 
-# 2143 "parser_cocci_menhir.mly"
+# 2117 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
@@ -27994,7 +27994,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = 
-# 2146 "parser_cocci_menhir.mly"
+# 2120 "parser_cocci_menhir.mly"
                                             ( _2 )
 # 28000 "parser_cocci_menhir.ml"
          in
@@ -28015,14 +28015,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let d : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 28021 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_d_ in
         let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = 
-# 2147 "parser_cocci_menhir.mly"
+# 2121 "parser_cocci_menhir.mly"
            ( fun build_dots build_comma -> [(build_dots "..." d)] )
 # 28028 "parser_cocci_menhir.ml"
          in
@@ -28048,19 +28048,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 28054 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let d : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 28059 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = 
-# 2149 "parser_cocci_menhir.mly"
+# 2123 "parser_cocci_menhir.mly"
       ( fun build_dots build_comma ->
        [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
 # 28067 "parser_cocci_menhir.ml"
@@ -28093,19 +28093,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let r : 'tv_continue_list_one_dec_decl__TEllipsis_ = Obj.magic r in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 28099 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let d : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 28104 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = 
-# 2152 "parser_cocci_menhir.mly"
+# 2126 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       (build_dots "..." d)::
       (Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
@@ -28132,7 +28132,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
-# 2138 "parser_cocci_menhir.mly"
+# 2112 "parser_cocci_menhir.mly"
        ( fun build_dots build_comma -> [_1] )
 # 28138 "parser_cocci_menhir.ml"
          in
@@ -28158,7 +28158,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 28164 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -28166,7 +28166,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
-# 2140 "parser_cocci_menhir.mly"
+# 2114 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
 # 28173 "parser_cocci_menhir.ml"
@@ -28199,7 +28199,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 28205 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -28207,7 +28207,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
-# 2143 "parser_cocci_menhir.mly"
+# 2117 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
       (_3 build_dots build_comma) )
@@ -28237,7 +28237,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
-# 2146 "parser_cocci_menhir.mly"
+# 2120 "parser_cocci_menhir.mly"
                                             ( _2 )
 # 28243 "parser_cocci_menhir.ml"
          in
@@ -28258,14 +28258,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let d : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 28264 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_d_ in
         let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
-# 2147 "parser_cocci_menhir.mly"
+# 2121 "parser_cocci_menhir.mly"
            ( fun build_dots build_comma -> [(build_dots "..." d)] )
 # 28271 "parser_cocci_menhir.ml"
          in
@@ -28291,19 +28291,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 28297 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let d : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 28302 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
-# 2149 "parser_cocci_menhir.mly"
+# 2123 "parser_cocci_menhir.mly"
       ( fun build_dots build_comma ->
        [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
 # 28310 "parser_cocci_menhir.ml"
@@ -28336,19 +28336,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let r : 'tv_continue_list_one_dec_name_opt_decl__TEllipsis_ = Obj.magic r in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 28342 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let d : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 28347 "parser_cocci_menhir.ml"
         ) = Obj.magic d in
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
-# 2152 "parser_cocci_menhir.mly"
+# 2126 "parser_cocci_menhir.mly"
     ( fun build_dots build_comma ->
       (build_dots "..." d)::
       (Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
@@ -28379,7 +28379,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_i_ in
         let _v : 'tv_not_ceq = 
-# 1971 "parser_cocci_menhir.mly"
+# 1945 "parser_cocci_menhir.mly"
          ( (if !Data.in_iso
           then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
@@ -28419,7 +28419,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_not_ceq = 
-# 1977 "parser_cocci_menhir.mly"
+# 1951 "parser_cocci_menhir.mly"
   ( (if !Data.in_iso
           then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
@@ -28447,7 +28447,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_ceq_ in
         let _endpos = _endpos_ceq_ in
         let _v : 'tv_not_ceq_or_sub = 
-# 1947 "parser_cocci_menhir.mly"
+# 1921 "parser_cocci_menhir.mly"
                   (Ast0.NotExpCstrt ceq)
 # 28453 "parser_cocci_menhir.ml"
          in
@@ -28471,7 +28471,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_s_ in
         let _v : 'tv_not_ceq_or_sub = 
-# 1948 "parser_cocci_menhir.mly"
+# 1922 "parser_cocci_menhir.mly"
                   (Ast0.SubExpCstrt s)
 # 28477 "parser_cocci_menhir.ml"
          in
@@ -28499,7 +28499,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_i_ in
         let _v : 'tv_not_eqe = 
-# 1952 "parser_cocci_menhir.mly"
+# 1926 "parser_cocci_menhir.mly"
          ( (if !Data.in_iso
           then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
@@ -28540,7 +28540,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_not_eqe = 
-# 1959 "parser_cocci_menhir.mly"
+# 1933 "parser_cocci_menhir.mly"
   ( (if !Data.in_iso
           then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
@@ -28576,7 +28576,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_i_ in
         let _v : 'tv_not_eqid = 
-# 1909 "parser_cocci_menhir.mly"
+# 1883 "parser_cocci_menhir.mly"
          ( (if !Data.in_iso
           then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
@@ -28624,7 +28624,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_not_eqid = 
-# 1923 "parser_cocci_menhir.mly"
+# 1897 "parser_cocci_menhir.mly"
   ( (if !Data.in_iso
           then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
@@ -28668,7 +28668,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_i_ in
         let _v : 'tv_not_pos = 
-# 2016 "parser_cocci_menhir.mly"
+# 1990 "parser_cocci_menhir.mly"
          ( (if !Data.in_iso
           then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
@@ -28711,7 +28711,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_not_pos = 
-# 2025 "parser_cocci_menhir.mly"
+# 1999 "parser_cocci_menhir.mly"
   ( (if !Data.in_iso
           then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
@@ -28743,7 +28743,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_one_dec_decl_ = 
-# 2113 "parser_cocci_menhir.mly"
+# 2087 "parser_cocci_menhir.mly"
         ( _1 )
 # 28749 "parser_cocci_menhir.ml"
          in
@@ -28764,14 +28764,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 162 "parser_cocci_menhir.mly"
+# 136 "parser_cocci_menhir.mly"
        (Parse_aux.list_info)
 # 28770 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_one_dec_decl_ = 
-# 2115 "parser_cocci_menhir.mly"
+# 2089 "parser_cocci_menhir.mly"
     ( let (nm,lenname,pure,clt) = _1 in
     let nm = P.clt2mcode nm clt in
       let lenname =
@@ -28802,7 +28802,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_ = 
-# 2113 "parser_cocci_menhir.mly"
+# 2087 "parser_cocci_menhir.mly"
         ( _1 )
 # 28808 "parser_cocci_menhir.ml"
          in
@@ -28823,14 +28823,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 162 "parser_cocci_menhir.mly"
+# 136 "parser_cocci_menhir.mly"
        (Parse_aux.list_info)
 # 28829 "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_ = 
-# 2115 "parser_cocci_menhir.mly"
+# 2089 "parser_cocci_menhir.mly"
     ( let (nm,lenname,pure,clt) = _1 in
     let nm = P.clt2mcode nm clt in
       let lenname =
@@ -28863,7 +28863,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 28869 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
@@ -28871,7 +28871,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_t_ in
         let _endpos = _endpos_pv_ in
         let _v : 'tv_one_decl_var = 
-# 1307 "parser_cocci_menhir.mly"
+# 1281 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.TyDecl(t,P.clt2mcode ";" pv)) )
 # 28877 "parser_cocci_menhir.ml"
          in
@@ -28892,14 +28892,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 161 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 28898 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_one_decl_var = 
-# 1308 "parser_cocci_menhir.mly"
+# 1282 "parser_cocci_menhir.mly"
               ( P.meta_decl _1 )
 # 28905 "parser_cocci_menhir.ml"
          in
@@ -28930,7 +28930,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 28936 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
@@ -28946,7 +28946,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1310 "parser_cocci_menhir.mly"
+# 1284 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) )
 # 28953 "parser_cocci_menhir.ml"
@@ -28983,7 +28983,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 28989 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
@@ -29001,7 +29001,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1310 "parser_cocci_menhir.mly"
+# 1284 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) )
 # 29008 "parser_cocci_menhir.ml"
@@ -29026,7 +29026,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_f_ in
         let _endpos = _endpos_f_ in
         let _v : 'tv_one_decl_var = 
-# 1312 "parser_cocci_menhir.mly"
+# 1286 "parser_cocci_menhir.mly"
                ( f )
 # 29032 "parser_cocci_menhir.ml"
          in
@@ -29067,13 +29067,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29073 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29079 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
@@ -29089,7 +29089,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1314 "parser_cocci_menhir.mly"
+# 1288 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
       Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)) )
 # 29096 "parser_cocci_menhir.ml"
@@ -29136,13 +29136,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29142 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29148 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
@@ -29160,7 +29160,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1314 "parser_cocci_menhir.mly"
+# 1288 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
       Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)) )
 # 29167 "parser_cocci_menhir.ml"
@@ -29192,7 +29192,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29198 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
@@ -29215,7 +29215,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1319 "parser_cocci_menhir.mly"
+# 1293 "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)) )
@@ -29253,7 +29253,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29259 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
@@ -29278,7 +29278,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1319 "parser_cocci_menhir.mly"
+# 1293 "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)) )
@@ -29316,7 +29316,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29322 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
@@ -29341,7 +29341,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1319 "parser_cocci_menhir.mly"
+# 1293 "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)) )
@@ -29384,7 +29384,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29390 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
@@ -29411,7 +29411,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1319 "parser_cocci_menhir.mly"
+# 1293 "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)) )
@@ -29454,13 +29454,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29460 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29466 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
@@ -29483,7 +29483,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1324 "parser_cocci_menhir.mly"
+# 1298 "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
@@ -29533,13 +29533,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29539 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29545 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
@@ -29564,7 +29564,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1324 "parser_cocci_menhir.mly"
+# 1298 "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
@@ -29614,13 +29614,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29620 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29626 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
@@ -29645,7 +29645,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1324 "parser_cocci_menhir.mly"
+# 1298 "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
@@ -29700,13 +29700,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29706 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29712 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
@@ -29733,7 +29733,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1324 "parser_cocci_menhir.mly"
+# 1298 "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
@@ -29798,34 +29798,34 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29804 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let rp2 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29809 "parser_cocci_menhir.ml"
         ) = Obj.magic rp2 in
         let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
         let lp2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29815 "parser_cocci_menhir.ml"
         ) = Obj.magic lp2 in
         let rp1 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29820 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_d_ident = Obj.magic d in
         let st : (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29826 "parser_cocci_menhir.ml"
         ) = Obj.magic st in
         let lp1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29831 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
@@ -29840,7 +29840,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1334 "parser_cocci_menhir.mly"
+# 1308 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         let t =
          Ast0.wrap
@@ -29912,34 +29912,34 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29918 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let rp2 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29923 "parser_cocci_menhir.ml"
         ) = Obj.magic rp2 in
         let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
         let lp2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29929 "parser_cocci_menhir.ml"
         ) = Obj.magic lp2 in
         let rp1 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29934 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_d_ident = Obj.magic d in
         let st : (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29940 "parser_cocci_menhir.ml"
         ) = Obj.magic st in
         let lp1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 29945 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
@@ -29956,7 +29956,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1334 "parser_cocci_menhir.mly"
+# 1308 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         let t =
          Ast0.wrap
@@ -30003,18 +30003,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _5 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 30009 "parser_cocci_menhir.ml"
         ) = Obj.magic _5 in
         let _4 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 30014 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
         let _2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 30020 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -30022,7 +30022,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__5_ in
         let _v : 'tv_one_decl_var = 
-# 1342 "parser_cocci_menhir.mly"
+# 1316 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.MacroDecl(_1,P.clt2mcode "(" _2,_3,
                                  P.clt2mcode ")" _4,P.clt2mcode ";" _5)) )
 # 30029 "parser_cocci_menhir.ml"
@@ -30074,24 +30074,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _7 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 30080 "parser_cocci_menhir.ml"
         ) = Obj.magic _7 in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 30086 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let _4 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 30091 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
         let _2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 30097 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -30099,7 +30099,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__7_ in
         let _v : 'tv_one_decl_var = 
-# 1345 "parser_cocci_menhir.mly"
+# 1319 "parser_cocci_menhir.mly"
       ( Ast0.wrap
             (Ast0.MacroDeclInit
                (_1,P.clt2mcode "(" _2,_3,
@@ -30174,40 +30174,40 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 30180 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 30186 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let rp2 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 30191 "parser_cocci_menhir.ml"
         ) = Obj.magic rp2 in
         let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
         let lp2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 30197 "parser_cocci_menhir.ml"
         ) = Obj.magic lp2 in
         let rp1 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 30202 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_d_ident = Obj.magic d in
         let st : (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 30208 "parser_cocci_menhir.ml"
         ) = Obj.magic st in
         let lp1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 30213 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
@@ -30222,7 +30222,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1354 "parser_cocci_menhir.mly"
+# 1328 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         let t =
          Ast0.wrap
@@ -30304,40 +30304,40 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 30310 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let e : 'tv_initialize = Obj.magic e in
         let q : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 30316 "parser_cocci_menhir.ml"
         ) = Obj.magic q in
         let rp2 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 30321 "parser_cocci_menhir.ml"
         ) = Obj.magic rp2 in
         let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
         let lp2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 30327 "parser_cocci_menhir.ml"
         ) = Obj.magic lp2 in
         let rp1 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 30332 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_d_ident = Obj.magic d in
         let st : (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 30338 "parser_cocci_menhir.ml"
         ) = Obj.magic st in
         let lp1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 30343 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
@@ -30354,7 +30354,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 1354 "parser_cocci_menhir.mly"
+# 1328 "parser_cocci_menhir.mly"
       ( let (id,fn) = d in
         let t =
          Ast0.wrap
@@ -30664,7 +30664,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 = 
-# 2278 "parser_cocci_menhir.mly"
+# 2252 "parser_cocci_menhir.mly"
                                                                          ([])
 # 30670 "parser_cocci_menhir.ml"
          in
@@ -30692,7 +30692,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_after_dots = 
-# 2279 "parser_cocci_menhir.mly"
+# 2253 "parser_cocci_menhir.mly"
                                                                          (_2)
 # 30698 "parser_cocci_menhir.ml"
          in
@@ -30722,7 +30722,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_after_dots = 
-# 2281 "parser_cocci_menhir.mly"
+# 2255 "parser_cocci_menhir.mly"
                      ( (Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))))::_2 )
 # 30728 "parser_cocci_menhir.ml"
          in
@@ -30752,7 +30752,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_after_dots = 
-# 2282 "parser_cocci_menhir.mly"
+# 2256 "parser_cocci_menhir.mly"
                                              ( Ast0.wrap(Ast0.OTHER(_1))::_2 )
 # 30758 "parser_cocci_menhir.ml"
          in
@@ -30782,7 +30782,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_after_dots = 
-# 2284 "parser_cocci_menhir.mly"
+# 2258 "parser_cocci_menhir.mly"
                 ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 )
 # 30788 "parser_cocci_menhir.ml"
          in
@@ -30799,7 +30799,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 = 
-# 2274 "parser_cocci_menhir.mly"
+# 2248 "parser_cocci_menhir.mly"
                                                                          ([])
 # 30805 "parser_cocci_menhir.ml"
          in
@@ -30829,7 +30829,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_after_exp = 
-# 2275 "parser_cocci_menhir.mly"
+# 2249 "parser_cocci_menhir.mly"
                                           ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 )
 # 30835 "parser_cocci_menhir.ml"
          in
@@ -30846,7 +30846,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 = 
-# 2287 "parser_cocci_menhir.mly"
+# 2261 "parser_cocci_menhir.mly"
                                                                          ([])
 # 30852 "parser_cocci_menhir.ml"
          in
@@ -30876,7 +30876,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_after_stm = 
-# 2288 "parser_cocci_menhir.mly"
+# 2262 "parser_cocci_menhir.mly"
                                           ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 )
 # 30882 "parser_cocci_menhir.ml"
          in
@@ -30906,7 +30906,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_after_stm = 
-# 2289 "parser_cocci_menhir.mly"
+# 2263 "parser_cocci_menhir.mly"
                                              ( Ast0.wrap(Ast0.OTHER(_1))::_2 )
 # 30912 "parser_cocci_menhir.ml"
          in
@@ -30936,7 +30936,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_after_stm = 
-# 2291 "parser_cocci_menhir.mly"
+# 2265 "parser_cocci_menhir.mly"
                 ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 )
 # 30942 "parser_cocci_menhir.ml"
          in
@@ -30966,7 +30966,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_f_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_plus_body = 
-# 880 "parser_cocci_menhir.mly"
+# 854 "parser_cocci_menhir.mly"
     ( f@b(*@ew*) )
 # 30972 "parser_cocci_menhir.ml"
          in
@@ -30996,7 +30996,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_f_ in
         let _endpos = _endpos_b_ in
         let _v : 'tv_plus_exp_body = 
-# 894 "parser_cocci_menhir.mly"
+# 868 "parser_cocci_menhir.mly"
     ( f@[b](*@ew*) )
 # 31002 "parser_cocci_menhir.ml"
          in
@@ -31024,11 +31024,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 243 "parser_cocci_menhir.mly"
+# 217 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
 # 31030 "parser_cocci_menhir.ml"
         ) = 
-# 279 "parser_cocci_menhir.mly"
+# 253 "parser_cocci_menhir.mly"
                                  ( _1 )
 # 31034 "parser_cocci_menhir.ml"
          in
@@ -31056,11 +31056,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_p_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 243 "parser_cocci_menhir.mly"
+# 217 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
 # 31062 "parser_cocci_menhir.ml"
         ) = 
-# 279 "parser_cocci_menhir.mly"
+# 253 "parser_cocci_menhir.mly"
                                                                     ( p )
 # 31066 "parser_cocci_menhir.ml"
          in
@@ -31088,11 +31088,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_p_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 243 "parser_cocci_menhir.mly"
+# 217 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
 # 31094 "parser_cocci_menhir.ml"
         ) = 
-# 280 "parser_cocci_menhir.mly"
+# 254 "parser_cocci_menhir.mly"
                         ( p )
 # 31098 "parser_cocci_menhir.ml"
          in
@@ -31120,11 +31120,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 240 "parser_cocci_menhir.mly"
+# 214 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
 # 31126 "parser_cocci_menhir.ml"
         ) = 
-# 275 "parser_cocci_menhir.mly"
+# 249 "parser_cocci_menhir.mly"
                          ( _1 )
 # 31130 "parser_cocci_menhir.ml"
          in
@@ -31152,11 +31152,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_p_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 240 "parser_cocci_menhir.mly"
+# 214 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
 # 31158 "parser_cocci_menhir.ml"
         ) = 
-# 275 "parser_cocci_menhir.mly"
+# 249 "parser_cocci_menhir.mly"
                                                         ( p )
 # 31162 "parser_cocci_menhir.ml"
          in
@@ -31184,11 +31184,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_p_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 240 "parser_cocci_menhir.mly"
+# 214 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
 # 31190 "parser_cocci_menhir.ml"
         ) = 
-# 276 "parser_cocci_menhir.mly"
+# 250 "parser_cocci_menhir.mly"
                     ( p )
 # 31194 "parser_cocci_menhir.ml"
          in
@@ -31212,7 +31212,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_plus_start = 
-# 2263 "parser_cocci_menhir.mly"
+# 2237 "parser_cocci_menhir.mly"
                           ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Ty(_1))))] )
 # 31218 "parser_cocci_menhir.ml"
          in
@@ -31236,7 +31236,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_plus_start = 
-# 2264 "parser_cocci_menhir.mly"
+# 2238 "parser_cocci_menhir.mly"
                      ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.TopInit(_1))))] )
 # 31242 "parser_cocci_menhir.ml"
          in
@@ -31266,7 +31266,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_start = 
-# 2266 "parser_cocci_menhir.mly"
+# 2240 "parser_cocci_menhir.mly"
                                           ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 )
 # 31272 "parser_cocci_menhir.ml"
          in
@@ -31296,7 +31296,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_start = 
-# 2268 "parser_cocci_menhir.mly"
+# 2242 "parser_cocci_menhir.mly"
                      ( (Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))))::_2 )
 # 31302 "parser_cocci_menhir.ml"
          in
@@ -31326,7 +31326,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_start = 
-# 2269 "parser_cocci_menhir.mly"
+# 2243 "parser_cocci_menhir.mly"
                                              ( Ast0.wrap(Ast0.OTHER(_1))::_2 )
 # 31332 "parser_cocci_menhir.ml"
          in
@@ -31356,7 +31356,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_plus_start = 
-# 2271 "parser_cocci_menhir.mly"
+# 2245 "parser_cocci_menhir.mly"
                 ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 )
 # 31362 "parser_cocci_menhir.ml"
          in
@@ -31380,7 +31380,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_ = 
-# 1691 "parser_cocci_menhir.mly"
+# 1665 "parser_cocci_menhir.mly"
                                                  ( _1 )
 # 31386 "parser_cocci_menhir.ml"
          in
@@ -31416,13 +31416,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _4 : (
-# 200 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
 # 31422 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr = Obj.magic _3 in
         let _2 : (
-# 200 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
 # 31428 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -31430,7 +31430,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_ = 
-# 1693 "parser_cocci_menhir.mly"
+# 1667 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3,
                                       P.clt2mcode "]" _4)) )
 # 31437 "parser_cocci_menhir.ml"
@@ -31463,7 +31463,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_disj_ident = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 31469 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -31471,7 +31471,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_ = 
-# 1696 "parser_cocci_menhir.mly"
+# 1670 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) )
 # 31477 "parser_cocci_menhir.ml"
          in
@@ -31503,7 +31503,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_disj_ident = Obj.magic _3 in
         let _2 : (
-# 202 "parser_cocci_menhir.mly"
+# 176 "parser_cocci_menhir.mly"
        (Data.clt)
 # 31509 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -31511,7 +31511,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_ = 
-# 1698 "parser_cocci_menhir.mly"
+# 1672 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2,
                                     _3)) )
 # 31518 "parser_cocci_menhir.ml"
@@ -31538,7 +31538,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 183 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
 # 31544 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -31546,7 +31546,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_ = 
-# 1701 "parser_cocci_menhir.mly"
+# 1675 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) )
 # 31552 "parser_cocci_menhir.ml"
          in
@@ -31572,7 +31572,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 183 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
 # 31578 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -31580,7 +31580,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_ = 
-# 1703 "parser_cocci_menhir.mly"
+# 1677 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) )
 # 31586 "parser_cocci_menhir.ml"
          in
@@ -31616,13 +31616,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _4 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 31622 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
         let _2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 31628 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -31630,7 +31630,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_ = 
-# 1705 "parser_cocci_menhir.mly"
+# 1679 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2,
                              _3,
                              P.clt2mcode ")" _4)) )
@@ -31678,31 +31678,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _6 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 31684 "parser_cocci_menhir.ml"
         ) = Obj.magic _6 in
         let _5 : 'tv_initialize_list = Obj.magic _5 in
         let _4 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 31690 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 31695 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_ctype = Obj.magic _2 in
         let _1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 31701 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__6_ in
         let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
-# 1711 "parser_cocci_menhir.mly"
+# 1685 "parser_cocci_menhir.mly"
      ( let init =
        if P.struct_initializer _5
        then
@@ -31736,7 +31736,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1691 "parser_cocci_menhir.mly"
+# 1665 "parser_cocci_menhir.mly"
                                                  ( _1 )
 # 31742 "parser_cocci_menhir.ml"
          in
@@ -31772,13 +31772,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _4 : (
-# 200 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
 # 31778 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr = Obj.magic _3 in
         let _2 : (
-# 200 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
 # 31784 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -31786,7 +31786,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1693 "parser_cocci_menhir.mly"
+# 1667 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3,
                                       P.clt2mcode "]" _4)) )
 # 31793 "parser_cocci_menhir.ml"
@@ -31819,7 +31819,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_disj_ident = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 31825 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -31827,7 +31827,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1696 "parser_cocci_menhir.mly"
+# 1670 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) )
 # 31833 "parser_cocci_menhir.ml"
          in
@@ -31859,7 +31859,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_disj_ident = Obj.magic _3 in
         let _2 : (
-# 202 "parser_cocci_menhir.mly"
+# 176 "parser_cocci_menhir.mly"
        (Data.clt)
 # 31865 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -31867,7 +31867,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1698 "parser_cocci_menhir.mly"
+# 1672 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2,
                                     _3)) )
 # 31874 "parser_cocci_menhir.ml"
@@ -31894,7 +31894,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 183 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
 # 31900 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -31902,7 +31902,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1701 "parser_cocci_menhir.mly"
+# 1675 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) )
 # 31908 "parser_cocci_menhir.ml"
          in
@@ -31928,7 +31928,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 183 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
 # 31934 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -31936,7 +31936,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1703 "parser_cocci_menhir.mly"
+# 1677 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) )
 # 31942 "parser_cocci_menhir.ml"
          in
@@ -31972,13 +31972,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _4 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 31978 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
         let _2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 31984 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -31986,7 +31986,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1705 "parser_cocci_menhir.mly"
+# 1679 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2,
                              _3,
                              P.clt2mcode ")" _4)) )
@@ -32034,31 +32034,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _6 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32040 "parser_cocci_menhir.ml"
         ) = Obj.magic _6 in
         let _5 : 'tv_initialize_list = Obj.magic _5 in
         let _4 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32046 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32051 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_ctype = Obj.magic _2 in
         let _1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32057 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__6_ in
         let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1711 "parser_cocci_menhir.mly"
+# 1685 "parser_cocci_menhir.mly"
      ( let init =
        if P.struct_initializer _5
        then
@@ -32092,7 +32092,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_ = 
-# 1691 "parser_cocci_menhir.mly"
+# 1665 "parser_cocci_menhir.mly"
                                                  ( _1 )
 # 32098 "parser_cocci_menhir.ml"
          in
@@ -32128,13 +32128,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _4 : (
-# 200 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32134 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr = Obj.magic _3 in
         let _2 : (
-# 200 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32140 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -32142,7 +32142,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_ = 
-# 1693 "parser_cocci_menhir.mly"
+# 1667 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3,
                                       P.clt2mcode "]" _4)) )
 # 32149 "parser_cocci_menhir.ml"
@@ -32175,7 +32175,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_disj_ident = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32181 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -32183,7 +32183,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_ = 
-# 1696 "parser_cocci_menhir.mly"
+# 1670 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) )
 # 32189 "parser_cocci_menhir.ml"
          in
@@ -32215,7 +32215,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_disj_ident = Obj.magic _3 in
         let _2 : (
-# 202 "parser_cocci_menhir.mly"
+# 176 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32221 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -32223,7 +32223,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_ = 
-# 1698 "parser_cocci_menhir.mly"
+# 1672 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2,
                                     _3)) )
 # 32230 "parser_cocci_menhir.ml"
@@ -32250,7 +32250,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 183 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32256 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -32258,7 +32258,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_ = 
-# 1701 "parser_cocci_menhir.mly"
+# 1675 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) )
 # 32264 "parser_cocci_menhir.ml"
          in
@@ -32284,7 +32284,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 183 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32290 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -32292,7 +32292,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_ = 
-# 1703 "parser_cocci_menhir.mly"
+# 1677 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) )
 # 32298 "parser_cocci_menhir.ml"
          in
@@ -32328,13 +32328,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _4 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32334 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
         let _2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32340 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -32342,7 +32342,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_ = 
-# 1705 "parser_cocci_menhir.mly"
+# 1679 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2,
                              _3,
                              P.clt2mcode ")" _4)) )
@@ -32390,31 +32390,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _6 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32396 "parser_cocci_menhir.ml"
         ) = Obj.magic _6 in
         let _5 : 'tv_initialize_list = Obj.magic _5 in
         let _4 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32402 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32407 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_ctype = Obj.magic _2 in
         let _1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32413 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__6_ in
         let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
-# 1711 "parser_cocci_menhir.mly"
+# 1685 "parser_cocci_menhir.mly"
      ( let init =
        if P.struct_initializer _5
        then
@@ -32448,7 +32448,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1691 "parser_cocci_menhir.mly"
+# 1665 "parser_cocci_menhir.mly"
                                                  ( _1 )
 # 32454 "parser_cocci_menhir.ml"
          in
@@ -32484,13 +32484,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _4 : (
-# 200 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32490 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr = Obj.magic _3 in
         let _2 : (
-# 200 "parser_cocci_menhir.mly"
+# 174 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32496 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -32498,7 +32498,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1693 "parser_cocci_menhir.mly"
+# 1667 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3,
                                       P.clt2mcode "]" _4)) )
 # 32505 "parser_cocci_menhir.ml"
@@ -32531,7 +32531,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_disj_ident = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32537 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -32539,7 +32539,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1696 "parser_cocci_menhir.mly"
+# 1670 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) )
 # 32545 "parser_cocci_menhir.ml"
          in
@@ -32571,7 +32571,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_disj_ident = Obj.magic _3 in
         let _2 : (
-# 202 "parser_cocci_menhir.mly"
+# 176 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32577 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -32579,7 +32579,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1698 "parser_cocci_menhir.mly"
+# 1672 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2,
                                     _3)) )
 # 32586 "parser_cocci_menhir.ml"
@@ -32606,7 +32606,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 183 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32612 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -32614,7 +32614,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1701 "parser_cocci_menhir.mly"
+# 1675 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) )
 # 32620 "parser_cocci_menhir.ml"
          in
@@ -32640,7 +32640,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 183 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32646 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -32648,7 +32648,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1703 "parser_cocci_menhir.mly"
+# 1677 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) )
 # 32654 "parser_cocci_menhir.ml"
          in
@@ -32684,13 +32684,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _4 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32690 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
         let _2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32696 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -32698,7 +32698,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1705 "parser_cocci_menhir.mly"
+# 1679 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2,
                              _3,
                              P.clt2mcode ")" _4)) )
@@ -32746,31 +32746,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _6 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32752 "parser_cocci_menhir.ml"
         ) = Obj.magic _6 in
         let _5 : 'tv_initialize_list = Obj.magic _5 in
         let _4 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32758 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32763 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_ctype = Obj.magic _2 in
         let _1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32769 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__6_ in
         let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1711 "parser_cocci_menhir.mly"
+# 1685 "parser_cocci_menhir.mly"
      ( let init =
        if P.struct_initializer _5
        then
@@ -32804,7 +32804,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pre_basic_expr_eexpr_dot_expressions_ = 
-# 1540 "parser_cocci_menhir.mly"
+# 1514 "parser_cocci_menhir.mly"
                                                           ( _1 )
 # 32810 "parser_cocci_menhir.ml"
          in
@@ -32836,7 +32836,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_basic_expr_eexpr_dot_expressions_ = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32842 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -32844,7 +32844,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_pre_basic_expr_eexpr_dot_expressions_ = 
-# 1543 "parser_cocci_menhir.mly"
+# 1517 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Sequence(_1,P.clt2mcode "," _2,_3)) )
 # 32850 "parser_cocci_menhir.ml"
          in
@@ -32868,7 +32868,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pre_basic_expr_eexpr_nest_expressions_ = 
-# 1540 "parser_cocci_menhir.mly"
+# 1514 "parser_cocci_menhir.mly"
                                                           ( _1 )
 # 32874 "parser_cocci_menhir.ml"
          in
@@ -32900,7 +32900,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_basic_expr_eexpr_nest_expressions_ = Obj.magic _3 in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32906 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -32908,7 +32908,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_pre_basic_expr_eexpr_nest_expressions_ = 
-# 1543 "parser_cocci_menhir.mly"
+# 1517 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Sequence(_1,P.clt2mcode "," _2,_3)) )
 # 32914 "parser_cocci_menhir.ml"
          in
@@ -32932,7 +32932,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_ = 
-# 1724 "parser_cocci_menhir.mly"
+# 1698 "parser_cocci_menhir.mly"
                 ( Ast0.wrap(Ast0.Ident(_1)) )
 # 32938 "parser_cocci_menhir.ml"
          in
@@ -32959,14 +32959,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_ident = Obj.magic _2 in
         let _1 : (
-# 188 "parser_cocci_menhir.mly"
+# 162 "parser_cocci_menhir.mly"
        (Data.clt)
 # 32965 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1726 "parser_cocci_menhir.mly"
+# 1700 "parser_cocci_menhir.mly"
      ( let op = P.clt2mcode Ast.GetRefLabel _1 in
      Ast0.wrap(Ast0.Unary(Ast0.wrap(Ast0.Ident(_2)), op)) )
 # 32973 "parser_cocci_menhir.ml"
@@ -32988,14 +32988,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 32994 "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_ = 
-# 1729 "parser_cocci_menhir.mly"
+# 1703 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
 # 33002 "parser_cocci_menhir.ml"
@@ -33017,14 +33017,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 33023 "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_ = 
-# 1732 "parser_cocci_menhir.mly"
+# 1706 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) )
 # 33031 "parser_cocci_menhir.ml"
@@ -33046,14 +33046,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 33052 "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_ = 
-# 1735 "parser_cocci_menhir.mly"
+# 1709 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) )
 # 33060 "parser_cocci_menhir.ml"
@@ -33075,14 +33075,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 33081 "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_ = 
-# 1738 "parser_cocci_menhir.mly"
+# 1712 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) )
 # 33089 "parser_cocci_menhir.ml"
@@ -33104,14 +33104,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 33110 "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_ = 
-# 1741 "parser_cocci_menhir.mly"
+# 1715 "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)) )
@@ -33134,14 +33134,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 159 "parser_cocci_menhir.mly"
+# 133 "parser_cocci_menhir.mly"
        (Parse_aux.expinfo)
 # 33140 "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_ = 
-# 1745 "parser_cocci_menhir.mly"
+# 1719 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,clt) = _1 in
      Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) )
 # 33148 "parser_cocci_menhir.ml"
@@ -33163,14 +33163,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 33169 "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_ = 
-# 1748 "parser_cocci_menhir.mly"
+# 1722 "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)) )
@@ -33193,14 +33193,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 33199 "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_ = 
-# 1752 "parser_cocci_menhir.mly"
+# 1726 "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)) )
@@ -33223,14 +33223,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 33229 "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_ = 
-# 1756 "parser_cocci_menhir.mly"
+# 1730 "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)) )
@@ -33263,20 +33263,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 33269 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_eexpr = Obj.magic _2 in
         let _1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 33275 "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_ = 
-# 1760 "parser_cocci_menhir.mly"
+# 1734 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2,
                            P.clt2mcode ")" _3)) )
 # 33283 "parser_cocci_menhir.ml"
@@ -33308,20 +33308,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 33314 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in
         let _1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 33320 "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_ = 
-# 1763 "parser_cocci_menhir.mly"
+# 1737 "parser_cocci_menhir.mly"
      ( let (mids,code) = _2 in
        Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1,
                               code, mids,
@@ -33348,7 +33348,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_ = 
-# 1767 "parser_cocci_menhir.mly"
+# 1741 "parser_cocci_menhir.mly"
                  ( _1 )
 # 33354 "parser_cocci_menhir.ml"
          in
@@ -33372,7 +33372,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1724 "parser_cocci_menhir.mly"
+# 1698 "parser_cocci_menhir.mly"
                 ( Ast0.wrap(Ast0.Ident(_1)) )
 # 33378 "parser_cocci_menhir.ml"
          in
@@ -33399,14 +33399,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_ident = Obj.magic _2 in
         let _1 : (
-# 188 "parser_cocci_menhir.mly"
+# 162 "parser_cocci_menhir.mly"
        (Data.clt)
 # 33405 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1726 "parser_cocci_menhir.mly"
+# 1700 "parser_cocci_menhir.mly"
      ( let op = P.clt2mcode Ast.GetRefLabel _1 in
      Ast0.wrap(Ast0.Unary(Ast0.wrap(Ast0.Ident(_2)), op)) )
 # 33413 "parser_cocci_menhir.ml"
@@ -33428,14 +33428,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 33434 "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_ = 
-# 1729 "parser_cocci_menhir.mly"
+# 1703 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
 # 33442 "parser_cocci_menhir.ml"
@@ -33457,14 +33457,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 33463 "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_ = 
-# 1732 "parser_cocci_menhir.mly"
+# 1706 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) )
 # 33471 "parser_cocci_menhir.ml"
@@ -33486,14 +33486,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 33492 "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_ = 
-# 1735 "parser_cocci_menhir.mly"
+# 1709 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) )
 # 33500 "parser_cocci_menhir.ml"
@@ -33515,14 +33515,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 33521 "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_ = 
-# 1738 "parser_cocci_menhir.mly"
+# 1712 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) )
 # 33529 "parser_cocci_menhir.ml"
@@ -33544,14 +33544,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 33550 "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_ = 
-# 1741 "parser_cocci_menhir.mly"
+# 1715 "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)) )
@@ -33574,14 +33574,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 159 "parser_cocci_menhir.mly"
+# 133 "parser_cocci_menhir.mly"
        (Parse_aux.expinfo)
 # 33580 "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_ = 
-# 1745 "parser_cocci_menhir.mly"
+# 1719 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,clt) = _1 in
      Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) )
 # 33588 "parser_cocci_menhir.ml"
@@ -33603,14 +33603,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 33609 "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_ = 
-# 1748 "parser_cocci_menhir.mly"
+# 1722 "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)) )
@@ -33633,14 +33633,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 33639 "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_ = 
-# 1752 "parser_cocci_menhir.mly"
+# 1726 "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)) )
@@ -33663,14 +33663,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 33669 "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_ = 
-# 1756 "parser_cocci_menhir.mly"
+# 1730 "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)) )
@@ -33703,20 +33703,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 33709 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_eexpr = Obj.magic _2 in
         let _1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 33715 "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_ = 
-# 1760 "parser_cocci_menhir.mly"
+# 1734 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2,
                            P.clt2mcode ")" _3)) )
 # 33723 "parser_cocci_menhir.ml"
@@ -33748,20 +33748,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 33754 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in
         let _1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 33760 "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_ = 
-# 1763 "parser_cocci_menhir.mly"
+# 1737 "parser_cocci_menhir.mly"
      ( let (mids,code) = _2 in
        Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1,
                               code, mids,
@@ -33788,7 +33788,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1767 "parser_cocci_menhir.mly"
+# 1741 "parser_cocci_menhir.mly"
                  ( _1 )
 # 33794 "parser_cocci_menhir.ml"
          in
@@ -33812,7 +33812,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_ = 
-# 1724 "parser_cocci_menhir.mly"
+# 1698 "parser_cocci_menhir.mly"
                 ( Ast0.wrap(Ast0.Ident(_1)) )
 # 33818 "parser_cocci_menhir.ml"
          in
@@ -33839,14 +33839,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_ident = Obj.magic _2 in
         let _1 : (
-# 188 "parser_cocci_menhir.mly"
+# 162 "parser_cocci_menhir.mly"
        (Data.clt)
 # 33845 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1726 "parser_cocci_menhir.mly"
+# 1700 "parser_cocci_menhir.mly"
      ( let op = P.clt2mcode Ast.GetRefLabel _1 in
      Ast0.wrap(Ast0.Unary(Ast0.wrap(Ast0.Ident(_2)), op)) )
 # 33853 "parser_cocci_menhir.ml"
@@ -33868,14 +33868,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 33874 "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_ = 
-# 1729 "parser_cocci_menhir.mly"
+# 1703 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
 # 33882 "parser_cocci_menhir.ml"
@@ -33897,14 +33897,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 33903 "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_ = 
-# 1732 "parser_cocci_menhir.mly"
+# 1706 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) )
 # 33911 "parser_cocci_menhir.ml"
@@ -33926,14 +33926,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 33932 "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_ = 
-# 1735 "parser_cocci_menhir.mly"
+# 1709 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) )
 # 33940 "parser_cocci_menhir.ml"
@@ -33955,14 +33955,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 33961 "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_ = 
-# 1738 "parser_cocci_menhir.mly"
+# 1712 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) )
 # 33969 "parser_cocci_menhir.ml"
@@ -33984,14 +33984,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 33990 "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_ = 
-# 1741 "parser_cocci_menhir.mly"
+# 1715 "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)) )
@@ -34014,14 +34014,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 159 "parser_cocci_menhir.mly"
+# 133 "parser_cocci_menhir.mly"
        (Parse_aux.expinfo)
 # 34020 "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_ = 
-# 1745 "parser_cocci_menhir.mly"
+# 1719 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,clt) = _1 in
      Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) )
 # 34028 "parser_cocci_menhir.ml"
@@ -34043,14 +34043,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 34049 "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_ = 
-# 1748 "parser_cocci_menhir.mly"
+# 1722 "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)) )
@@ -34073,14 +34073,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 34079 "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_ = 
-# 1752 "parser_cocci_menhir.mly"
+# 1726 "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)) )
@@ -34103,14 +34103,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 34109 "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_ = 
-# 1756 "parser_cocci_menhir.mly"
+# 1730 "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)) )
@@ -34143,20 +34143,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 34149 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_eexpr = Obj.magic _2 in
         let _1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 34155 "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_ = 
-# 1760 "parser_cocci_menhir.mly"
+# 1734 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2,
                            P.clt2mcode ")" _3)) )
 # 34163 "parser_cocci_menhir.ml"
@@ -34188,20 +34188,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 34194 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in
         let _1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 34200 "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_ = 
-# 1763 "parser_cocci_menhir.mly"
+# 1737 "parser_cocci_menhir.mly"
      ( let (mids,code) = _2 in
        Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1,
                               code, mids,
@@ -34228,7 +34228,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_ = 
-# 1767 "parser_cocci_menhir.mly"
+# 1741 "parser_cocci_menhir.mly"
                  ( _1 )
 # 34234 "parser_cocci_menhir.ml"
          in
@@ -34252,7 +34252,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1724 "parser_cocci_menhir.mly"
+# 1698 "parser_cocci_menhir.mly"
                 ( Ast0.wrap(Ast0.Ident(_1)) )
 # 34258 "parser_cocci_menhir.ml"
          in
@@ -34279,14 +34279,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_ident = Obj.magic _2 in
         let _1 : (
-# 188 "parser_cocci_menhir.mly"
+# 162 "parser_cocci_menhir.mly"
        (Data.clt)
 # 34285 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1726 "parser_cocci_menhir.mly"
+# 1700 "parser_cocci_menhir.mly"
      ( let op = P.clt2mcode Ast.GetRefLabel _1 in
      Ast0.wrap(Ast0.Unary(Ast0.wrap(Ast0.Ident(_2)), op)) )
 # 34293 "parser_cocci_menhir.ml"
@@ -34308,14 +34308,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 34314 "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_ = 
-# 1729 "parser_cocci_menhir.mly"
+# 1703 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
 # 34322 "parser_cocci_menhir.ml"
@@ -34337,14 +34337,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 34343 "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_ = 
-# 1732 "parser_cocci_menhir.mly"
+# 1706 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) )
 # 34351 "parser_cocci_menhir.ml"
@@ -34366,14 +34366,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 34372 "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_ = 
-# 1735 "parser_cocci_menhir.mly"
+# 1709 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) )
 # 34380 "parser_cocci_menhir.ml"
@@ -34395,14 +34395,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 34401 "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_ = 
-# 1738 "parser_cocci_menhir.mly"
+# 1712 "parser_cocci_menhir.mly"
      ( let (x,clt) = _1 in
      Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) )
 # 34409 "parser_cocci_menhir.ml"
@@ -34424,14 +34424,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 34430 "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_ = 
-# 1741 "parser_cocci_menhir.mly"
+# 1715 "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)) )
@@ -34454,14 +34454,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 159 "parser_cocci_menhir.mly"
+# 133 "parser_cocci_menhir.mly"
        (Parse_aux.expinfo)
 # 34460 "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_ = 
-# 1745 "parser_cocci_menhir.mly"
+# 1719 "parser_cocci_menhir.mly"
      ( let (nm,constraints,pure,clt) = _1 in
      Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) )
 # 34468 "parser_cocci_menhir.ml"
@@ -34483,14 +34483,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 34489 "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_ = 
-# 1748 "parser_cocci_menhir.mly"
+# 1722 "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)) )
@@ -34513,14 +34513,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 34519 "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_ = 
-# 1752 "parser_cocci_menhir.mly"
+# 1726 "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)) )
@@ -34543,14 +34543,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 164 "parser_cocci_menhir.mly"
+# 138 "parser_cocci_menhir.mly"
        (Parse_aux.typed_expinfo)
 # 34549 "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_ = 
-# 1756 "parser_cocci_menhir.mly"
+# 1730 "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)) )
@@ -34583,20 +34583,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 34589 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_eexpr = Obj.magic _2 in
         let _1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 34595 "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_ = 
-# 1760 "parser_cocci_menhir.mly"
+# 1734 "parser_cocci_menhir.mly"
      ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2,
                            P.clt2mcode ")" _3)) )
 # 34603 "parser_cocci_menhir.ml"
@@ -34628,20 +34628,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 34634 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_midzero_list_expr_eexpr_ = Obj.magic _2 in
         let _1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 34640 "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_ = 
-# 1763 "parser_cocci_menhir.mly"
+# 1737 "parser_cocci_menhir.mly"
      ( let (mids,code) = _2 in
        Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1,
                               code, mids,
@@ -34668,7 +34668,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1767 "parser_cocci_menhir.mly"
+# 1741 "parser_cocci_menhir.mly"
                  ( _1 )
 # 34674 "parser_cocci_menhir.ml"
          in
@@ -34690,7 +34690,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure = 
-# 290 "parser_cocci_menhir.mly"
+# 264 "parser_cocci_menhir.mly"
                  ( Ast0.Pure )
 # 34696 "parser_cocci_menhir.ml"
          in
@@ -34712,7 +34712,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure = 
-# 291 "parser_cocci_menhir.mly"
+# 265 "parser_cocci_menhir.mly"
                  ( Ast0.Context )
 # 34718 "parser_cocci_menhir.ml"
          in
@@ -34738,7 +34738,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_pure = 
-# 292 "parser_cocci_menhir.mly"
+# 266 "parser_cocci_menhir.mly"
                  ( Ast0.PureContext )
 # 34744 "parser_cocci_menhir.ml"
          in
@@ -34764,7 +34764,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_pure = 
-# 293 "parser_cocci_menhir.mly"
+# 267 "parser_cocci_menhir.mly"
                  ( Ast0.PureContext )
 # 34770 "parser_cocci_menhir.ml"
          in
@@ -34781,7 +34781,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 = 
-# 294 "parser_cocci_menhir.mly"
+# 268 "parser_cocci_menhir.mly"
                  ( Ast0.Impure )
 # 34787 "parser_cocci_menhir.ml"
          in
@@ -34802,14 +34802,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 34808 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident = 
-# 1781 "parser_cocci_menhir.mly"
+# 1755 "parser_cocci_menhir.mly"
             ( _1 )
 # 34815 "parser_cocci_menhir.ml"
          in
@@ -34831,7 +34831,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1788 "parser_cocci_menhir.mly"
+# 1762 "parser_cocci_menhir.mly"
                  ( "identifier" )
 # 34837 "parser_cocci_menhir.ml"
          in
@@ -34853,7 +34853,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1789 "parser_cocci_menhir.mly"
+# 1763 "parser_cocci_menhir.mly"
                  ( "expression" )
 # 34859 "parser_cocci_menhir.ml"
          in
@@ -34875,7 +34875,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1790 "parser_cocci_menhir.mly"
+# 1764 "parser_cocci_menhir.mly"
                 ( "statement" )
 # 34881 "parser_cocci_menhir.ml"
          in
@@ -34897,7 +34897,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1791 "parser_cocci_menhir.mly"
+# 1765 "parser_cocci_menhir.mly"
                ( "function" )
 # 34903 "parser_cocci_menhir.ml"
          in
@@ -34919,7 +34919,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1792 "parser_cocci_menhir.mly"
+# 1766 "parser_cocci_menhir.mly"
             ( "local" )
 # 34925 "parser_cocci_menhir.ml"
          in
@@ -34941,7 +34941,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1793 "parser_cocci_menhir.mly"
+# 1767 "parser_cocci_menhir.mly"
            ( "type" )
 # 34947 "parser_cocci_menhir.ml"
          in
@@ -34963,7 +34963,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1794 "parser_cocci_menhir.mly"
+# 1768 "parser_cocci_menhir.mly"
                 ( "parameter" )
 # 34969 "parser_cocci_menhir.ml"
          in
@@ -34985,7 +34985,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1795 "parser_cocci_menhir.mly"
+# 1769 "parser_cocci_menhir.mly"
                    ( "idexpression" )
 # 34991 "parser_cocci_menhir.ml"
          in
@@ -35007,7 +35007,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1796 "parser_cocci_menhir.mly"
+# 1770 "parser_cocci_menhir.mly"
                   ( "initialiser" )
 # 35013 "parser_cocci_menhir.ml"
          in
@@ -35029,7 +35029,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1797 "parser_cocci_menhir.mly"
+# 1771 "parser_cocci_menhir.mly"
            ( "list" )
 # 35035 "parser_cocci_menhir.ml"
          in
@@ -35051,7 +35051,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1798 "parser_cocci_menhir.mly"
+# 1772 "parser_cocci_menhir.mly"
             ( "fresh" )
 # 35057 "parser_cocci_menhir.ml"
          in
@@ -35073,7 +35073,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1799 "parser_cocci_menhir.mly"
+# 1773 "parser_cocci_menhir.mly"
                ( "constant" )
 # 35079 "parser_cocci_menhir.ml"
          in
@@ -35095,7 +35095,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1800 "parser_cocci_menhir.mly"
+# 1774 "parser_cocci_menhir.mly"
             ( "error" )
 # 35101 "parser_cocci_menhir.ml"
          in
@@ -35117,7 +35117,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1801 "parser_cocci_menhir.mly"
+# 1775 "parser_cocci_menhir.mly"
             ( "words" )
 # 35123 "parser_cocci_menhir.ml"
          in
@@ -35139,7 +35139,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1802 "parser_cocci_menhir.mly"
+# 1776 "parser_cocci_menhir.mly"
            ( "pure" )
 # 35145 "parser_cocci_menhir.ml"
          in
@@ -35161,7 +35161,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1803 "parser_cocci_menhir.mly"
+# 1777 "parser_cocci_menhir.mly"
               ( "context" )
 # 35167 "parser_cocci_menhir.ml"
          in
@@ -35183,7 +35183,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1804 "parser_cocci_menhir.mly"
+# 1778 "parser_cocci_menhir.mly"
                 ( "generated" )
 # 35189 "parser_cocci_menhir.ml"
          in
@@ -35205,7 +35205,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1805 "parser_cocci_menhir.mly"
+# 1779 "parser_cocci_menhir.mly"
               ( "typedef" )
 # 35211 "parser_cocci_menhir.ml"
          in
@@ -35227,7 +35227,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1806 "parser_cocci_menhir.mly"
+# 1780 "parser_cocci_menhir.mly"
                ( "declarer" )
 # 35233 "parser_cocci_menhir.ml"
          in
@@ -35249,7 +35249,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1807 "parser_cocci_menhir.mly"
+# 1781 "parser_cocci_menhir.mly"
                ( "iterator" )
 # 35255 "parser_cocci_menhir.ml"
          in
@@ -35271,7 +35271,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1808 "parser_cocci_menhir.mly"
+# 1782 "parser_cocci_menhir.mly"
            ( "name" )
 # 35277 "parser_cocci_menhir.ml"
          in
@@ -35293,7 +35293,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1809 "parser_cocci_menhir.mly"
+# 1783 "parser_cocci_menhir.mly"
                ( "position" )
 # 35299 "parser_cocci_menhir.ml"
          in
@@ -35315,7 +35315,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_kwd = 
-# 1810 "parser_cocci_menhir.mly"
+# 1784 "parser_cocci_menhir.mly"
              ( "symbol" )
 # 35321 "parser_cocci_menhir.ml"
          in
@@ -35339,7 +35339,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 = 
-# 1817 "parser_cocci_menhir.mly"
+# 1791 "parser_cocci_menhir.mly"
                                  ( (None,P.id2name _1) )
 # 35345 "parser_cocci_menhir.ml"
          in
@@ -35363,7 +35363,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 = 
-# 1818 "parser_cocci_menhir.mly"
+# 1792 "parser_cocci_menhir.mly"
                                  ( (None,_1) )
 # 35369 "parser_cocci_menhir.ml"
          in
@@ -35387,7 +35387,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 = 
-# 1819 "parser_cocci_menhir.mly"
+# 1793 "parser_cocci_menhir.mly"
                                  ( _1 )
 # 35393 "parser_cocci_menhir.ml"
          in
@@ -35417,7 +35417,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_not_ceq_or_sub_ = 
-# 1856 "parser_cocci_menhir.mly"
+# 1830 "parser_cocci_menhir.mly"
     (
       match optc with
          None   -> (i, Ast0.NoConstraint)
@@ -35451,7 +35451,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_or_sub_ = 
-# 1856 "parser_cocci_menhir.mly"
+# 1830 "parser_cocci_menhir.mly"
     (
       match optc with
          None   -> (i, Ast0.NoConstraint)
@@ -35485,7 +35485,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_ = 
-# 1881 "parser_cocci_menhir.mly"
+# 1855 "parser_cocci_menhir.mly"
     (
       match c with
          None -> (i, Ast.IdNoConstraint)
@@ -35519,7 +35519,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_virt_re_or_not_eqid_ = 
-# 1864 "parser_cocci_menhir.mly"
+# 1838 "parser_cocci_menhir.mly"
     (
       Common.Left
         (match c with
@@ -35556,7 +35556,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_idconstraint_virt_re_or_not_eqid_ = 
-# 1871 "parser_cocci_menhir.mly"
+# 1845 "parser_cocci_menhir.mly"
     (
      let nm = P.id2name _3 in
      Iteration.parsed_virtual_identifiers :=
@@ -35586,7 +35586,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 = 
-# 1825 "parser_cocci_menhir.mly"
+# 1799 "parser_cocci_menhir.mly"
                                 ( (_1,Ast.NoVal) )
 # 35592 "parser_cocci_menhir.ml"
          in
@@ -35620,7 +35620,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 = 
-# 1828 "parser_cocci_menhir.mly"
+# 1802 "parser_cocci_menhir.mly"
   ( match _3 with
           [Ast.SeedString s] -> (_1,Ast.StringSeed s)
         | _ -> (_1,Ast.ListSeed _3) )
@@ -35652,7 +35652,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_ = 
-# 1850 "parser_cocci_menhir.mly"
+# 1824 "parser_cocci_menhir.mly"
     (
       (i, l)
     )
@@ -35678,7 +35678,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_or_symbol = 
-# 1784 "parser_cocci_menhir.mly"
+# 1758 "parser_cocci_menhir.mly"
                ( _1 )
 # 35684 "parser_cocci_menhir.ml"
          in
@@ -35699,14 +35699,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 35705 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_pure_ident_or_symbol = 
-# 1785 "parser_cocci_menhir.mly"
+# 1759 "parser_cocci_menhir.mly"
            ( _1 )
 # 35712 "parser_cocci_menhir.ml"
          in
@@ -35730,7 +35730,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_re_ in
         let _endpos = _endpos_re_ in
         let _v : 'tv_re_or_not_eqe_or_sub = 
-# 1942 "parser_cocci_menhir.mly"
+# 1916 "parser_cocci_menhir.mly"
                   (Ast0.NotIdCstrt  re)
 # 35736 "parser_cocci_menhir.ml"
          in
@@ -35754,7 +35754,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_ne_ in
         let _endpos = _endpos_ne_ in
         let _v : 'tv_re_or_not_eqe_or_sub = 
-# 1943 "parser_cocci_menhir.mly"
+# 1917 "parser_cocci_menhir.mly"
                   (Ast0.NotExpCstrt ne)
 # 35760 "parser_cocci_menhir.ml"
          in
@@ -35778,7 +35778,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_s_ in
         let _v : 'tv_re_or_not_eqe_or_sub = 
-# 1944 "parser_cocci_menhir.mly"
+# 1918 "parser_cocci_menhir.mly"
                   (Ast0.SubExpCstrt s)
 # 35784 "parser_cocci_menhir.ml"
          in
@@ -35802,7 +35802,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_re_ in
         let _endpos = _endpos_re_ in
         let _v : 'tv_re_or_not_eqid = 
-# 1888 "parser_cocci_menhir.mly"
+# 1862 "parser_cocci_menhir.mly"
                   (Ast.IdRegExpConstraint re)
 # 35808 "parser_cocci_menhir.ml"
          in
@@ -35826,7 +35826,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_ne_ in
         let _endpos = _endpos_ne_ in
         let _v : 'tv_re_or_not_eqid = 
-# 1889 "parser_cocci_menhir.mly"
+# 1863 "parser_cocci_menhir.mly"
                   (ne)
 # 35832 "parser_cocci_menhir.ml"
          in
@@ -35851,14 +35851,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let re : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 35857 "parser_cocci_menhir.ml"
         ) = Obj.magic re in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_re_ in
         let _v : 'tv_regexp_eqid = 
-# 1893 "parser_cocci_menhir.mly"
+# 1867 "parser_cocci_menhir.mly"
          ( (if !Data.in_iso
            then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
@@ -35888,14 +35888,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let re : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 35894 "parser_cocci_menhir.ml"
         ) = Obj.magic re in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_re_ in
         let _v : 'tv_regexp_eqid = 
-# 1900 "parser_cocci_menhir.mly"
+# 1874 "parser_cocci_menhir.mly"
          ( (if !Data.in_iso
            then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
@@ -35917,11 +35917,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 : (
-# 231 "parser_cocci_menhir.mly"
+# 205 "parser_cocci_menhir.mly"
       (unit)
 # 35923 "parser_cocci_menhir.ml"
         ) = 
-# 272 "parser_cocci_menhir.mly"
+# 246 "parser_cocci_menhir.mly"
         ( )
 # 35927 "parser_cocci_menhir.ml"
          in
@@ -35945,7 +35945,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_rule_elem_statement = 
-# 1188 "parser_cocci_menhir.mly"
+# 1162 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),_1)) )
 # 35951 "parser_cocci_menhir.ml"
          in
@@ -35971,7 +35971,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 35977 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -35979,7 +35979,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_rule_elem_statement = 
-# 1189 "parser_cocci_menhir.mly"
+# 1163 "parser_cocci_menhir.mly"
                        ( P.exp_stm _1 _2 )
 # 35985 "parser_cocci_menhir.ml"
          in
@@ -36010,20 +36010,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 36016 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_eexpr = Obj.magic _2 in
         let _1 : (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 36022 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_rule_elem_statement = 
-# 1190 "parser_cocci_menhir.mly"
+# 1164 "parser_cocci_menhir.mly"
                         ( P.ret_exp _1 _2 _3 )
 # 36029 "parser_cocci_menhir.ml"
          in
@@ -36049,19 +36049,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 36055 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 36060 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_rule_elem_statement = 
-# 1191 "parser_cocci_menhir.mly"
+# 1165 "parser_cocci_menhir.mly"
                   ( P.ret _1 _2 )
 # 36067 "parser_cocci_menhir.ml"
          in
@@ -36087,19 +36087,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 36093 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 152 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
 # 36098 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_rule_elem_statement = 
-# 1192 "parser_cocci_menhir.mly"
+# 1166 "parser_cocci_menhir.mly"
                  ( P.break _1 _2 )
 # 36105 "parser_cocci_menhir.ml"
          in
@@ -36125,19 +36125,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 36131 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 152 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
 # 36136 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_rule_elem_statement = 
-# 1193 "parser_cocci_menhir.mly"
+# 1167 "parser_cocci_menhir.mly"
                     ( P.cont _1 _2 )
 # 36143 "parser_cocci_menhir.ml"
          in
@@ -36168,20 +36168,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 36174 "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 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 36180 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_rule_elem_statement = 
-# 1195 "parser_cocci_menhir.mly"
+# 1169 "parser_cocci_menhir.mly"
     ( let (mids,code) = _2 in
     Ast0.wrap
       (Ast0.Disj(P.clt2mcode "(" _1,
@@ -36241,7 +36241,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__7_ in
         let _v : (
-# 253 "parser_cocci_menhir.mly"
+# 227 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
 # 36247 "parser_cocci_menhir.ml"
         ) = let nm =
@@ -36252,7 +36252,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 302 "parser_cocci_menhir.mly"
+# 276 "parser_cocci_menhir.mly"
       ( P.make_cocci_rule_name_result nm d i a e ee )
 # 36258 "parser_cocci_menhir.ml"
          in
@@ -36314,7 +36314,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_x0_ in
         let _endpos = _endpos__8_ in
         let _v : (
-# 253 "parser_cocci_menhir.mly"
+# 227 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
 # 36320 "parser_cocci_menhir.ml"
         ) = let nm =
@@ -36326,7 +36326,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 302 "parser_cocci_menhir.mly"
+# 276 "parser_cocci_menhir.mly"
       ( P.make_cocci_rule_name_result nm d i a e ee )
 # 36332 "parser_cocci_menhir.ml"
          in
@@ -36386,11 +36386,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__8_ in
         let _v : (
-# 253 "parser_cocci_menhir.mly"
+# 227 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
 # 36392 "parser_cocci_menhir.ml"
         ) = 
-# 307 "parser_cocci_menhir.mly"
+# 281 "parser_cocci_menhir.mly"
       ( P.make_generated_rule_name_result None d i a e ee )
 # 36396 "parser_cocci_menhir.ml"
          in
@@ -36432,7 +36432,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__5_ in
         let _v : (
-# 253 "parser_cocci_menhir.mly"
+# 227 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
 # 36438 "parser_cocci_menhir.ml"
         ) = let nm =
@@ -36443,7 +36443,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 309 "parser_cocci_menhir.mly"
+# 283 "parser_cocci_menhir.mly"
       ( P.make_script_rule_name_result lang nm d )
 # 36449 "parser_cocci_menhir.ml"
          in
@@ -36491,7 +36491,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__6_ in
         let _v : (
-# 253 "parser_cocci_menhir.mly"
+# 227 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
 # 36497 "parser_cocci_menhir.ml"
         ) = let nm =
@@ -36503,7 +36503,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 309 "parser_cocci_menhir.mly"
+# 283 "parser_cocci_menhir.mly"
       ( P.make_script_rule_name_result lang nm d )
 # 36509 "parser_cocci_menhir.ml"
          in
@@ -36545,11 +36545,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__5_ in
         let _v : (
-# 253 "parser_cocci_menhir.mly"
+# 227 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
 # 36551 "parser_cocci_menhir.ml"
         ) = 
-# 311 "parser_cocci_menhir.mly"
+# 285 "parser_cocci_menhir.mly"
       ( P.make_initial_script_rule_name_result lang d )
 # 36555 "parser_cocci_menhir.ml"
          in
@@ -36591,11 +36591,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__5_ in
         let _v : (
-# 253 "parser_cocci_menhir.mly"
+# 227 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
 # 36597 "parser_cocci_menhir.ml"
         ) = 
-# 313 "parser_cocci_menhir.mly"
+# 287 "parser_cocci_menhir.mly"
       ( P.make_final_script_rule_name_result lang d )
 # 36601 "parser_cocci_menhir.ml"
          in
@@ -36623,11 +36623,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_py_ in
         let _endpos = _endpos__2_ in
         let _v : (
-# 259 "parser_cocci_menhir.mly"
+# 233 "parser_cocci_menhir.mly"
        ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option)
 # 36629 "parser_cocci_menhir.ml"
         ) = 
-# 2462 "parser_cocci_menhir.mly"
+# 2436 "parser_cocci_menhir.mly"
   ( ((Some (P.id2name py), None), None) )
 # 36633 "parser_cocci_menhir.ml"
          in
@@ -36661,11 +36661,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_py_ in
         let _endpos = _endpos__3_ in
         let _v : (
-# 259 "parser_cocci_menhir.mly"
+# 233 "parser_cocci_menhir.mly"
        ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option)
 # 36667 "parser_cocci_menhir.ml"
         ) = 
-# 2464 "parser_cocci_menhir.mly"
+# 2438 "parser_cocci_menhir.mly"
   ( ((Some (P.id2name py), None), Some _2) )
 # 36671 "parser_cocci_menhir.ml"
          in
@@ -36715,11 +36715,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__7_ in
         let _v : (
-# 259 "parser_cocci_menhir.mly"
+# 233 "parser_cocci_menhir.mly"
        ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option)
 # 36721 "parser_cocci_menhir.ml"
         ) = 
-# 2466 "parser_cocci_menhir.mly"
+# 2440 "parser_cocci_menhir.mly"
   ( ((None, Some (P.id2name ast)), Some _6) )
 # 36725 "parser_cocci_menhir.ml"
          in
@@ -36769,11 +36769,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__7_ in
         let _v : (
-# 259 "parser_cocci_menhir.mly"
+# 233 "parser_cocci_menhir.mly"
        ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option)
 # 36775 "parser_cocci_menhir.ml"
         ) = 
-# 2468 "parser_cocci_menhir.mly"
+# 2442 "parser_cocci_menhir.mly"
   ( ((Some (P.id2name str), None), Some _6) )
 # 36779 "parser_cocci_menhir.ml"
          in
@@ -36825,11 +36825,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__7_ in
         let _v : (
-# 259 "parser_cocci_menhir.mly"
+# 233 "parser_cocci_menhir.mly"
        ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option)
 # 36831 "parser_cocci_menhir.ml"
         ) = 
-# 2470 "parser_cocci_menhir.mly"
+# 2444 "parser_cocci_menhir.mly"
   ( ((Some (P.id2name str), Some (P.id2name ast)), Some _6) )
 # 36835 "parser_cocci_menhir.ml"
          in
@@ -36864,14 +36864,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let cocci : 'tv_pure_ident = Obj.magic cocci in
         let _2 : (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 36870 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_cocci_ in
         let _v : 'tv_script_name_decl = 
-# 2474 "parser_cocci_menhir.mly"
+# 2448 "parser_cocci_menhir.mly"
       ( let nm = P.id2name cocci in
         let mv = Parse_aux.lookup _2 nm in
         ((_2, nm), mv) )
@@ -36909,7 +36909,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_cocci_ in
         let _v : 'tv_script_name_decl = 
-# 2478 "parser_cocci_menhir.mly"
+# 2452 "parser_cocci_menhir.mly"
       ( let nm = P.id2name cocci in
         Iteration.parsed_virtual_identifiers :=
           Common.union_set [nm]
@@ -36936,14 +36936,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 36942 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_seed_elem = 
-# 1833 "parser_cocci_menhir.mly"
+# 1807 "parser_cocci_menhir.mly"
           ( let (x,_) = _1 in Ast.SeedString x )
 # 36949 "parser_cocci_menhir.ml"
          in
@@ -36964,14 +36964,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 156 "parser_cocci_menhir.mly"
+# 130 "parser_cocci_menhir.mly"
        (Parse_aux.midinfo)
 # 36970 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_seed_elem = 
-# 1834 "parser_cocci_menhir.mly"
+# 1808 "parser_cocci_menhir.mly"
           ( let (x,_,_,_,_) = _1 in Ast.SeedId x )
 # 36977 "parser_cocci_menhir.ml"
          in
@@ -36993,7 +36993,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_seed_elem = 
-# 1835 "parser_cocci_menhir.mly"
+# 1809 "parser_cocci_menhir.mly"
         (failwith "tmeta")
 # 36999 "parser_cocci_menhir.ml"
          in
@@ -37025,7 +37025,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_seed_elem = 
-# 1837 "parser_cocci_menhir.mly"
+# 1811 "parser_cocci_menhir.mly"
     ( let nm = ("virtual",P.id2name _3) in
      Iteration.parsed_virtual_identifiers :=
        Common.union_set [snd nm]
@@ -37061,14 +37061,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_pure_ident = Obj.magic _3 in
         let _1 : (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 37067 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_seed_elem = 
-# 1844 "parser_cocci_menhir.mly"
+# 1818 "parser_cocci_menhir.mly"
     ( let nm = (_1,P.id2name _3) in
       P.check_meta(Ast.MetaIdDecl(Ast.NONE,nm));
       Ast.SeedId nm )
@@ -37091,7 +37091,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let x : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 37097 "parser_cocci_menhir.ml"
         ) = Obj.magic x in
@@ -37129,7 +37129,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let xs : 'tv_separated_nonempty_list_TComma_TString_ = Obj.magic xs in
         let x : (
-# 185 "parser_cocci_menhir.mly"
+# 159 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 37135 "parser_cocci_menhir.ml"
         ) = Obj.magic x in
@@ -38030,7 +38030,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_single_statement = 
-# 1203 "parser_cocci_menhir.mly"
+# 1177 "parser_cocci_menhir.mly"
                                       ( _1 )
 # 38036 "parser_cocci_menhir.ml"
          in
@@ -38061,20 +38061,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38067 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_midzero_list_statement_statement_ = Obj.magic _2 in
         let _1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38073 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_single_statement = 
-# 1207 "parser_cocci_menhir.mly"
+# 1181 "parser_cocci_menhir.mly"
       ( let (mids,code) = _2 in
         Ast0.wrap
          (Ast0.Disj(P.clt2mcode "(" _1,
@@ -38102,7 +38102,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_statement = 
-# 1129 "parser_cocci_menhir.mly"
+# 1103 "parser_cocci_menhir.mly"
            ( _1 )
 # 38108 "parser_cocci_menhir.ml"
          in
@@ -38123,14 +38123,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 161 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 38129 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_statement = 
-# 1130 "parser_cocci_menhir.mly"
+# 1104 "parser_cocci_menhir.mly"
         ( tmeta_to_statement _1)
 # 38136 "parser_cocci_menhir.ml"
          in
@@ -38151,14 +38151,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 38157 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_statement = 
-# 1132 "parser_cocci_menhir.mly"
+# 1106 "parser_cocci_menhir.mly"
     ( P.meta_stm _1 )
 # 38164 "parser_cocci_menhir.ml"
          in
@@ -38184,7 +38184,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38190 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -38192,7 +38192,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_statement = 
-# 1134 "parser_cocci_menhir.mly"
+# 1108 "parser_cocci_menhir.mly"
     ( P.exp_stm _1 _2 )
 # 38198 "parser_cocci_menhir.ml"
          in
@@ -38234,25 +38234,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _5 : 'tv_single_statement = Obj.magic _5 in
         let _4 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38240 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr = Obj.magic _3 in
         let _2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38246 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38251 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__5_ in
         let _v : 'tv_statement = 
-# 1136 "parser_cocci_menhir.mly"
+# 1110 "parser_cocci_menhir.mly"
     ( P.ifthen _1 _2 _3 _4 _5 )
 # 38258 "parser_cocci_menhir.ml"
          in
@@ -38304,31 +38304,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _7 : 'tv_single_statement = Obj.magic _7 in
         let _6 : (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38310 "parser_cocci_menhir.ml"
         ) = Obj.magic _6 in
         let _5 : 'tv_single_statement = Obj.magic _5 in
         let _4 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38316 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr = Obj.magic _3 in
         let _2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38322 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38327 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__7_ in
         let _v : 'tv_statement = 
-# 1138 "parser_cocci_menhir.mly"
+# 1112 "parser_cocci_menhir.mly"
     ( P.ifthenelse _1 _2 _3 _4 _5 _6 _7 )
 # 38334 "parser_cocci_menhir.ml"
          in
@@ -38390,37 +38390,37 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _9 : 'tv_single_statement = Obj.magic _9 in
         let _8 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38396 "parser_cocci_menhir.ml"
         ) = Obj.magic _8 in
         let _7 : 'tv_option_eexpr_ = Obj.magic _7 in
         let _6 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38402 "parser_cocci_menhir.ml"
         ) = Obj.magic _6 in
         let _5 : 'tv_option_eexpr_ = Obj.magic _5 in
         let _4 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38408 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_option_eexpr_ = Obj.magic _3 in
         let _2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38414 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38419 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__9_ in
         let _v : 'tv_statement = 
-# 1141 "parser_cocci_menhir.mly"
+# 1115 "parser_cocci_menhir.mly"
     ( P.forloop _1 _2 _3 _4 _5 _6 _7 _8 _9 )
 # 38426 "parser_cocci_menhir.ml"
          in
@@ -38462,25 +38462,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _5 : 'tv_single_statement = Obj.magic _5 in
         let _4 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38468 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr = Obj.magic _3 in
         let _2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38474 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38479 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__5_ in
         let _v : 'tv_statement = 
-# 1143 "parser_cocci_menhir.mly"
+# 1117 "parser_cocci_menhir.mly"
     ( P.whileloop _1 _2 _3 _4 _5 )
 # 38486 "parser_cocci_menhir.ml"
          in
@@ -38531,36 +38531,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _7 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38537 "parser_cocci_menhir.ml"
         ) = Obj.magic _7 in
         let _6 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38542 "parser_cocci_menhir.ml"
         ) = Obj.magic _6 in
         let _5 : 'tv_eexpr = Obj.magic _5 in
         let _4 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38548 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38553 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_single_statement = Obj.magic _2 in
         let _1 : (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38559 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__7_ in
         let _v : 'tv_statement = 
-# 1145 "parser_cocci_menhir.mly"
+# 1119 "parser_cocci_menhir.mly"
     ( P.doloop _1 _2 _3 _4 _5 _6 _7 )
 # 38566 "parser_cocci_menhir.ml"
          in
@@ -38602,13 +38602,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _5 : 'tv_single_statement = Obj.magic _5 in
         let _4 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38608 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
         let _2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38614 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -38616,7 +38616,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__5_ in
         let _v : 'tv_statement = 
-# 1147 "parser_cocci_menhir.mly"
+# 1121 "parser_cocci_menhir.mly"
     ( P.iterator _1 _2 _3 _4 _5 )
 # 38622 "parser_cocci_menhir.ml"
          in
@@ -38672,37 +38672,37 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _8 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38678 "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 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38685 "parser_cocci_menhir.ml"
         ) = Obj.magic _5 in
         let _4 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38690 "parser_cocci_menhir.ml"
         ) = Obj.magic _4 in
         let _3 : 'tv_eexpr = Obj.magic _3 in
         let _2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38696 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38701 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__8_ in
         let _v : 'tv_statement = 
-# 1149 "parser_cocci_menhir.mly"
+# 1123 "parser_cocci_menhir.mly"
     ( P.switch _1 _2 _3 _4 _5 (List.concat _6) _7 _8 )
 # 38708 "parser_cocci_menhir.ml"
          in
@@ -38733,20 +38733,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38739 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_eexpr = Obj.magic _2 in
         let _1 : (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38745 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_statement = 
-# 1150 "parser_cocci_menhir.mly"
+# 1124 "parser_cocci_menhir.mly"
                         ( P.ret_exp _1 _2 _3 )
 # 38752 "parser_cocci_menhir.ml"
          in
@@ -38772,19 +38772,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38778 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 151 "parser_cocci_menhir.mly"
+# 125 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38783 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_statement = 
-# 1151 "parser_cocci_menhir.mly"
+# 1125 "parser_cocci_menhir.mly"
                   ( P.ret _1 _2 )
 # 38790 "parser_cocci_menhir.ml"
          in
@@ -38810,19 +38810,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38816 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 152 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38821 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_statement = 
-# 1152 "parser_cocci_menhir.mly"
+# 1126 "parser_cocci_menhir.mly"
                  ( P.break _1 _2 )
 # 38828 "parser_cocci_menhir.ml"
          in
@@ -38848,19 +38848,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38854 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 152 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38859 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_statement = 
-# 1153 "parser_cocci_menhir.mly"
+# 1127 "parser_cocci_menhir.mly"
                     ( P.cont _1 _2 )
 # 38866 "parser_cocci_menhir.ml"
          in
@@ -38886,7 +38886,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38892 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
@@ -38894,7 +38894,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_statement = 
-# 1154 "parser_cocci_menhir.mly"
+# 1128 "parser_cocci_menhir.mly"
                  ( P.label _1 _2 )
 # 38900 "parser_cocci_menhir.ml"
          in
@@ -38925,20 +38925,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38931 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_disj_ident = Obj.magic _2 in
         let _1 : (
-# 152 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38937 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_statement = 
-# 1155 "parser_cocci_menhir.mly"
+# 1129 "parser_cocci_menhir.mly"
                            ( P.goto _1 _2 _3 )
 # 38944 "parser_cocci_menhir.ml"
          in
@@ -38969,20 +38969,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38975 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_fun_start = Obj.magic _2 in
         let _1 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 38981 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_statement = 
-# 1157 "parser_cocci_menhir.mly"
+# 1131 "parser_cocci_menhir.mly"
     ( P.seq _1 _2 _3 )
 # 38988 "parser_cocci_menhir.ml"
          in
@@ -39009,14 +39009,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let w : 'tv_list_whenppdecs_ = Obj.magic w in
         let _1 : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 39015 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_w_ in
         let _v : 'tv_stm_dots = 
-# 1161 "parser_cocci_menhir.mly"
+# 1135 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Dots(P.clt2mcode "..." _1, List.concat w)) )
 # 39022 "parser_cocci_menhir.ml"
          in
@@ -39052,21 +39052,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let c : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 39058 "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 : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 39065 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_c_ in
         let _v : 'tv_stm_dots = 
-# 1163 "parser_cocci_menhir.mly"
+# 1137 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." _1, b,
                          P.clt2mcode "...>" c, List.concat w, false)) )
 # 39073 "parser_cocci_menhir.ml"
@@ -39103,21 +39103,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let c : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 39109 "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 : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 39116 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_c_ in
         let _v : 'tv_stm_dots = 
-# 1166 "parser_cocci_menhir.mly"
+# 1140 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." _1, b,
                          P.clt2mcode "...+>" c, List.concat w, true)) )
 # 39124 "parser_cocci_menhir.ml"
@@ -39139,14 +39139,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let s : (
-# 147 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
 # 39145 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_s_ in
         let _v : 'tv_storage = 
-# 1090 "parser_cocci_menhir.mly"
+# 1064 "parser_cocci_menhir.mly"
                         ( P.clt2mcode Ast.Static s )
 # 39152 "parser_cocci_menhir.ml"
          in
@@ -39167,14 +39167,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let s : (
-# 147 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
 # 39173 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_s_ in
         let _v : 'tv_storage = 
-# 1091 "parser_cocci_menhir.mly"
+# 1065 "parser_cocci_menhir.mly"
                         ( P.clt2mcode Ast.Auto s )
 # 39180 "parser_cocci_menhir.ml"
          in
@@ -39195,14 +39195,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let s : (
-# 147 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
 # 39201 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_s_ in
         let _v : 'tv_storage = 
-# 1092 "parser_cocci_menhir.mly"
+# 1066 "parser_cocci_menhir.mly"
                         ( P.clt2mcode Ast.Register s )
 # 39208 "parser_cocci_menhir.ml"
          in
@@ -39223,14 +39223,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let s : (
-# 147 "parser_cocci_menhir.mly"
+# 121 "parser_cocci_menhir.mly"
       (Data.clt)
 # 39229 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_s_ in
         let _v : 'tv_storage = 
-# 1093 "parser_cocci_menhir.mly"
+# 1067 "parser_cocci_menhir.mly"
                         ( P.clt2mcode Ast.Extern s )
 # 39236 "parser_cocci_menhir.ml"
          in
@@ -39252,7 +39252,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_struct_decl = 
-# 785 "parser_cocci_menhir.mly"
+# 759 "parser_cocci_menhir.mly"
                       ( [] )
 # 39258 "parser_cocci_menhir.ml"
          in
@@ -39276,7 +39276,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_struct_decl = 
-# 786 "parser_cocci_menhir.mly"
+# 760 "parser_cocci_menhir.mly"
                       ( [_1] )
 # 39282 "parser_cocci_menhir.ml"
          in
@@ -39300,7 +39300,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_struct_decl_list = 
-# 814 "parser_cocci_menhir.mly"
+# 788 "parser_cocci_menhir.mly"
                           ( Ast0.wrap(Ast0.DOTS(_1)) )
 # 39306 "parser_cocci_menhir.ml"
          in
@@ -39324,7 +39324,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_struct_decl_list_start = 
-# 817 "parser_cocci_menhir.mly"
+# 791 "parser_cocci_menhir.mly"
                                      ( _1 )
 # 39330 "parser_cocci_menhir.ml"
          in
@@ -39354,7 +39354,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_struct_decl_list_start = 
-# 818 "parser_cocci_menhir.mly"
+# 792 "parser_cocci_menhir.mly"
                                      ( _1@_2 )
 # 39360 "parser_cocci_menhir.ml"
          in
@@ -39384,7 +39384,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_d_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_struct_decl_list_start = 
-# 820 "parser_cocci_menhir.mly"
+# 794 "parser_cocci_menhir.mly"
     ( (P.mkddots_one "..." d)::r )
 # 39390 "parser_cocci_menhir.ml"
          in
@@ -39405,14 +39405,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 161 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 39411 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_struct_decl_one = 
-# 789 "parser_cocci_menhir.mly"
+# 763 "parser_cocci_menhir.mly"
                  ( P.meta_field _1 )
 # 39418 "parser_cocci_menhir.ml"
          in
@@ -39433,14 +39433,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 163 "parser_cocci_menhir.mly"
+# 137 "parser_cocci_menhir.mly"
        (Parse_aux.list_info)
 # 39439 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_struct_decl_one = 
-# 790 "parser_cocci_menhir.mly"
+# 764 "parser_cocci_menhir.mly"
                      ( P.meta_field_list _1 )
 # 39446 "parser_cocci_menhir.ml"
          in
@@ -39461,14 +39461,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 161 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 39467 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_struct_decl_one = 
-# 791 "parser_cocci_menhir.mly"
+# 765 "parser_cocci_menhir.mly"
             ( tmeta_to_field _1 )
 # 39474 "parser_cocci_menhir.ml"
          in
@@ -39499,20 +39499,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 39505 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_midzero_list_struct_decl_one_struct_decl_one_ = Obj.magic t in
         let lp : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 39511 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let _startpos = _startpos_lp_ in
         let _endpos = _endpos_rp_ in
         let _v : 'tv_struct_decl_one = 
-# 793 "parser_cocci_menhir.mly"
+# 767 "parser_cocci_menhir.mly"
  ( let (mids,code) = t in
        Ast0.wrap
          (Ast0.DisjDecl(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) )
@@ -39545,7 +39545,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 39551 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
@@ -39554,7 +39554,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_t_ in
         let _endpos = _endpos_pv_ in
         let _v : 'tv_struct_decl_one = 
-# 797 "parser_cocci_menhir.mly"
+# 771 "parser_cocci_menhir.mly"
   ( let (id,fn) = d in
         Ast0.wrap(Ast0.UnInit(None,fn t,id,P.clt2mcode ";" pv)) )
 # 39561 "parser_cocci_menhir.ml"
@@ -39616,34 +39616,34 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 39622 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
         let rp2 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 39627 "parser_cocci_menhir.ml"
         ) = Obj.magic rp2 in
         let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
         let lp2 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 39633 "parser_cocci_menhir.ml"
         ) = Obj.magic lp2 in
         let rp1 : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 39638 "parser_cocci_menhir.ml"
         ) = Obj.magic rp1 in
         let d : 'tv_d_ident = Obj.magic d in
         let st : (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 39644 "parser_cocci_menhir.ml"
         ) = Obj.magic st in
         let lp1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 39649 "parser_cocci_menhir.ml"
         ) = Obj.magic lp1 in
@@ -39651,7 +39651,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_t_ in
         let _endpos = _endpos_pv_ in
         let _v : 'tv_struct_decl_one = 
-# 801 "parser_cocci_menhir.mly"
+# 775 "parser_cocci_menhir.mly"
         ( let (id,fn) = d in
         let t =
          Ast0.wrap
@@ -39688,7 +39688,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 39694 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
@@ -39704,7 +39704,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 809 "parser_cocci_menhir.mly"
+# 783 "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)) )
@@ -39742,7 +39742,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let pv : (
-# 205 "parser_cocci_menhir.mly"
+# 179 "parser_cocci_menhir.mly"
        (Data.clt)
 # 39748 "parser_cocci_menhir.ml"
         ) = Obj.magic pv in
@@ -39760,7 +39760,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 809 "parser_cocci_menhir.mly"
+# 783 "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)) )
@@ -39783,14 +39783,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let s : (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 39789 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_s_ in
         let _v : 'tv_struct_or_union = 
-# 781 "parser_cocci_menhir.mly"
+# 755 "parser_cocci_menhir.mly"
                  ( P.clt2mcode Ast.Struct s )
 # 39796 "parser_cocci_menhir.ml"
          in
@@ -39811,14 +39811,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let u : (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 39817 "parser_cocci_menhir.ml"
         ) = Obj.magic u in
         let _startpos = _startpos_u_ in
         let _endpos = _endpos_u_ in
         let _v : 'tv_struct_or_union = 
-# 782 "parser_cocci_menhir.mly"
+# 756 "parser_cocci_menhir.mly"
                  ( P.clt2mcode Ast.Union u )
 # 39824 "parser_cocci_menhir.ml"
          in
@@ -39846,7 +39846,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos_i_ in
         let _v : 'tv_sub = 
-# 1988 "parser_cocci_menhir.mly"
+# 1962 "parser_cocci_menhir.mly"
          ( (if !Data.in_iso
           then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
@@ -39889,7 +39889,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_sub = 
-# 1997 "parser_cocci_menhir.mly"
+# 1971 "parser_cocci_menhir.mly"
   ( (if !Data.in_iso
           then failwith "constraints not allowed in iso file");
           (if !Data.in_generating
@@ -39921,7 +39921,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_top_eexpr = 
-# 1506 "parser_cocci_menhir.mly"
+# 1480 "parser_cocci_menhir.mly"
         ( Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))) )
 # 39927 "parser_cocci_menhir.ml"
          in
@@ -39952,20 +39952,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 39958 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_initialize_list = Obj.magic _2 in
         let _1 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 39964 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_top_init = 
-# 2251 "parser_cocci_menhir.mly"
+# 2225 "parser_cocci_menhir.mly"
     ( if P.struct_initializer _2
     then
       let il = P.drop_dot_commas _2 in
@@ -39987,7 +39987,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 = 
-# 2239 "parser_cocci_menhir.mly"
+# 2213 "parser_cocci_menhir.mly"
                                      ([])
 # 39993 "parser_cocci_menhir.ml"
          in
@@ -40015,7 +40015,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_after_dots = 
-# 2240 "parser_cocci_menhir.mly"
+# 2214 "parser_cocci_menhir.mly"
                                      (_2)
 # 40021 "parser_cocci_menhir.ml"
          in
@@ -40045,7 +40045,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_after_dots = 
-# 2241 "parser_cocci_menhir.mly"
+# 2215 "parser_cocci_menhir.mly"
                                      ((Ast0.wrap(Ast0.Exp(_1)))::_2)
 # 40051 "parser_cocci_menhir.ml"
          in
@@ -40075,7 +40075,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_after_dots = 
-# 2242 "parser_cocci_menhir.mly"
+# 2216 "parser_cocci_menhir.mly"
                                           (_1@_2)
 # 40081 "parser_cocci_menhir.ml"
          in
@@ -40103,7 +40103,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_after_dots_init = 
-# 2230 "parser_cocci_menhir.mly"
+# 2204 "parser_cocci_menhir.mly"
                                      (_2)
 # 40109 "parser_cocci_menhir.ml"
          in
@@ -40133,7 +40133,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_after_dots_init = 
-# 2231 "parser_cocci_menhir.mly"
+# 2205 "parser_cocci_menhir.mly"
                                      ((Ast0.wrap(Ast0.Exp(_1)))::_2)
 # 40139 "parser_cocci_menhir.ml"
          in
@@ -40163,7 +40163,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_after_dots_init = 
-# 2232 "parser_cocci_menhir.mly"
+# 2206 "parser_cocci_menhir.mly"
                                           (_1@_2)
 # 40169 "parser_cocci_menhir.ml"
          in
@@ -40180,7 +40180,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 = 
-# 2235 "parser_cocci_menhir.mly"
+# 2209 "parser_cocci_menhir.mly"
                                      ([])
 # 40186 "parser_cocci_menhir.ml"
          in
@@ -40210,7 +40210,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_after_exp = 
-# 2236 "parser_cocci_menhir.mly"
+# 2210 "parser_cocci_menhir.mly"
                                      (_1::_2)
 # 40216 "parser_cocci_menhir.ml"
          in
@@ -40227,7 +40227,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 = 
-# 2245 "parser_cocci_menhir.mly"
+# 2219 "parser_cocci_menhir.mly"
                                      ([])
 # 40233 "parser_cocci_menhir.ml"
          in
@@ -40257,7 +40257,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_after_stm = 
-# 2246 "parser_cocci_menhir.mly"
+# 2220 "parser_cocci_menhir.mly"
                                      (_1::_2)
 # 40263 "parser_cocci_menhir.ml"
          in
@@ -40287,7 +40287,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_toplevel_after_stm = 
-# 2247 "parser_cocci_menhir.mly"
+# 2221 "parser_cocci_menhir.mly"
                                      (_1@_2)
 # 40293 "parser_cocci_menhir.ml"
          in
@@ -40317,7 +40317,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_ = 
-# 2225 "parser_cocci_menhir.mly"
+# 2199 "parser_cocci_menhir.mly"
                                      ( _1::_2 )
 # 40323 "parser_cocci_menhir.ml"
          in
@@ -40347,7 +40347,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_ = 
-# 2226 "parser_cocci_menhir.mly"
+# 2200 "parser_cocci_menhir.mly"
                                      ( (Ast0.wrap(Ast0.Exp(_1)))::_2 )
 # 40353 "parser_cocci_menhir.ml"
          in
@@ -40377,7 +40377,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_ = 
-# 2227 "parser_cocci_menhir.mly"
+# 2201 "parser_cocci_menhir.mly"
                                           ( _1@_2 )
 # 40383 "parser_cocci_menhir.ml"
          in
@@ -40410,7 +40410,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 : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 40416 "parser_cocci_menhir.ml"
         ) = Obj.magic a0 in
@@ -40420,13 +40420,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let w = w0 in
           let a = a0 in
           
-# 1171 "parser_cocci_menhir.mly"
+# 1145 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Dots(P.clt2mcode "..." a, List.concat w)) )
 # 40426 "parser_cocci_menhir.ml"
           
         in
         
-# 2218 "parser_cocci_menhir.mly"
+# 2192 "parser_cocci_menhir.mly"
                                              ( a::b )
 # 40432 "parser_cocci_menhir.ml"
          in
@@ -40468,14 +40468,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_toplevel_after_dots_init = Obj.magic b in
         let c0 : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 40474 "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 : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 40481 "parser_cocci_menhir.ml"
         ) = Obj.magic a0 in
@@ -40487,14 +40487,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let w = w0 in
           let a = a0 in
           
-# 1175 "parser_cocci_menhir.mly"
+# 1149 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." a, b,
                          P.clt2mcode "...>" c, List.concat w, false)) )
 # 40494 "parser_cocci_menhir.ml"
           
         in
         
-# 2219 "parser_cocci_menhir.mly"
+# 2193 "parser_cocci_menhir.mly"
                                               ( a::b )
 # 40500 "parser_cocci_menhir.ml"
          in
@@ -40536,14 +40536,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let b : 'tv_toplevel_after_dots_init = Obj.magic b in
         let c0 : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 40542 "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 : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 40549 "parser_cocci_menhir.ml"
         ) = Obj.magic a0 in
@@ -40555,14 +40555,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let w = w0 in
           let a = a0 in
           
-# 1178 "parser_cocci_menhir.mly"
+# 1152 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." a, b,
                          P.clt2mcode "...+>" c, List.concat w, true)) )
 # 40562 "parser_cocci_menhir.ml"
           
         in
         
-# 2219 "parser_cocci_menhir.mly"
+# 2193 "parser_cocci_menhir.mly"
                                               ( a::b )
 # 40568 "parser_cocci_menhir.ml"
          in
@@ -40598,14 +40598,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let c0 : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 40604 "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 : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 40611 "parser_cocci_menhir.ml"
         ) = Obj.magic a0 in
@@ -40617,14 +40617,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let w = w0 in
           let a = a0 in
           
-# 1175 "parser_cocci_menhir.mly"
+# 1149 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." a, b,
                          P.clt2mcode "...>" c, List.concat w, false)) )
 # 40624 "parser_cocci_menhir.ml"
           
         in
         
-# 2220 "parser_cocci_menhir.mly"
+# 2194 "parser_cocci_menhir.mly"
                                        ( [a] )
 # 40630 "parser_cocci_menhir.ml"
          in
@@ -40660,14 +40660,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let c0 : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 40666 "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 : (
-# 171 "parser_cocci_menhir.mly"
+# 145 "parser_cocci_menhir.mly"
        (Data.clt)
 # 40673 "parser_cocci_menhir.ml"
         ) = Obj.magic a0 in
@@ -40679,14 +40679,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let w = w0 in
           let a = a0 in
           
-# 1178 "parser_cocci_menhir.mly"
+# 1152 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." a, b,
                          P.clt2mcode "...+>" c, List.concat w, true)) )
 # 40686 "parser_cocci_menhir.ml"
           
         in
         
-# 2220 "parser_cocci_menhir.mly"
+# 2194 "parser_cocci_menhir.mly"
                                        ( [a] )
 # 40692 "parser_cocci_menhir.ml"
          in
@@ -40716,7 +40716,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_ = 
-# 2221 "parser_cocci_menhir.mly"
+# 2195 "parser_cocci_menhir.mly"
                                      ( (Ast0.wrap(Ast0.Exp(_1)))::_2 )
 # 40722 "parser_cocci_menhir.ml"
          in
@@ -40746,7 +40746,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_ = 
-# 2222 "parser_cocci_menhir.mly"
+# 2196 "parser_cocci_menhir.mly"
                                           ( _1@_2 )
 # 40752 "parser_cocci_menhir.ml"
          in
@@ -40770,7 +40770,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_type_ident = 
-# 2076 "parser_cocci_menhir.mly"
+# 2050 "parser_cocci_menhir.mly"
                        ( _1 )
 # 40776 "parser_cocci_menhir.ml"
          in
@@ -40791,14 +40791,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 40797 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_type_ident = 
-# 2078 "parser_cocci_menhir.mly"
+# 2052 "parser_cocci_menhir.mly"
          ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) )
 # 40804 "parser_cocci_menhir.ml"
          in
@@ -40830,12 +40830,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 40836 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 40841 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -40847,13 +40847,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 664 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
 # 40853 "parser_cocci_menhir.ml"
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 40859 "parser_cocci_menhir.ml"
           
@@ -40866,7 +40866,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 40872 "parser_cocci_menhir.ml"
          in
@@ -40898,12 +40898,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 40904 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 40909 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -40915,13 +40915,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 666 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
 # 40921 "parser_cocci_menhir.ml"
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 40927 "parser_cocci_menhir.ml"
           
@@ -40934,7 +40934,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 40940 "parser_cocci_menhir.ml"
          in
@@ -40971,17 +40971,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 40977 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 40982 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 40987 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -40995,7 +40995,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 668 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
@@ -41003,7 +41003,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 41009 "parser_cocci_menhir.ml"
           
@@ -41016,7 +41016,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 41022 "parser_cocci_menhir.ml"
          in
@@ -41048,12 +41048,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41054 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41059 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -41065,13 +41065,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 672 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
 # 41071 "parser_cocci_menhir.ml"
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 41077 "parser_cocci_menhir.ml"
           
@@ -41084,7 +41084,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 41090 "parser_cocci_menhir.ml"
          in
@@ -41116,12 +41116,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 41122 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41127 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -41133,14 +41133,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 674 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
 # 41140 "parser_cocci_menhir.ml"
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 41146 "parser_cocci_menhir.ml"
           
@@ -41153,7 +41153,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 41159 "parser_cocci_menhir.ml"
          in
@@ -41194,17 +41194,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 41200 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 41205 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let r1 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41210 "parser_cocci_menhir.ml"
         ) = Obj.magic r1 in
@@ -41218,7 +41218,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 677 "parser_cocci_menhir.mly"
+# 651 "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 *)
@@ -41229,7 +41229,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 41235 "parser_cocci_menhir.ml"
           
@@ -41242,7 +41242,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 41248 "parser_cocci_menhir.ml"
          in
@@ -41274,12 +41274,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41280 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41285 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -41291,13 +41291,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 684 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
 # 41297 "parser_cocci_menhir.ml"
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 41303 "parser_cocci_menhir.ml"
           
@@ -41310,7 +41310,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 41316 "parser_cocci_menhir.ml"
          in
@@ -41347,17 +41347,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41353 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41358 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41363 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -41371,7 +41371,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 686 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
@@ -41379,7 +41379,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 41385 "parser_cocci_menhir.ml"
           
@@ -41392,7 +41392,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 41398 "parser_cocci_menhir.ml"
          in
@@ -41429,17 +41429,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41435 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41440 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41445 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -41453,7 +41453,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 690 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
@@ -41462,7 +41462,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 41468 "parser_cocci_menhir.ml"
           
@@ -41475,7 +41475,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 41481 "parser_cocci_menhir.ml"
          in
@@ -41517,22 +41517,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41523 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41528 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41533 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41538 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -41548,7 +41548,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 695 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
@@ -41558,7 +41558,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 41564 "parser_cocci_menhir.ml"
           
@@ -41571,7 +41571,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 41577 "parser_cocci_menhir.ml"
          in
@@ -41603,12 +41603,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41609 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41614 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -41620,13 +41620,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 664 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
 # 41626 "parser_cocci_menhir.ml"
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 41632 "parser_cocci_menhir.ml"
           
@@ -41639,7 +41639,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 41645 "parser_cocci_menhir.ml"
          in
@@ -41671,12 +41671,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41677 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41682 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -41688,13 +41688,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 666 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
 # 41694 "parser_cocci_menhir.ml"
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 41700 "parser_cocci_menhir.ml"
           
@@ -41707,7 +41707,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 41713 "parser_cocci_menhir.ml"
          in
@@ -41744,17 +41744,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41750 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41755 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41760 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -41768,7 +41768,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 668 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
@@ -41776,7 +41776,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 41782 "parser_cocci_menhir.ml"
           
@@ -41789,7 +41789,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 41795 "parser_cocci_menhir.ml"
          in
@@ -41821,12 +41821,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41827 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41832 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -41838,13 +41838,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 672 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
 # 41844 "parser_cocci_menhir.ml"
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 41850 "parser_cocci_menhir.ml"
           
@@ -41857,7 +41857,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 41863 "parser_cocci_menhir.ml"
          in
@@ -41889,12 +41889,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 41895 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41900 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -41906,14 +41906,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 674 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
 # 41913 "parser_cocci_menhir.ml"
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 41919 "parser_cocci_menhir.ml"
           
@@ -41926,7 +41926,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 41932 "parser_cocci_menhir.ml"
          in
@@ -41967,17 +41967,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 41973 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 41978 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let r1 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 41983 "parser_cocci_menhir.ml"
         ) = Obj.magic r1 in
@@ -41991,7 +41991,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 677 "parser_cocci_menhir.mly"
+# 651 "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 *)
@@ -42002,7 +42002,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 42008 "parser_cocci_menhir.ml"
           
@@ -42015,7 +42015,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 42021 "parser_cocci_menhir.ml"
          in
@@ -42047,12 +42047,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42053 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42058 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -42064,13 +42064,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 684 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
 # 42070 "parser_cocci_menhir.ml"
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 42076 "parser_cocci_menhir.ml"
           
@@ -42083,7 +42083,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 42089 "parser_cocci_menhir.ml"
          in
@@ -42120,17 +42120,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42126 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42131 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42136 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -42144,7 +42144,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 686 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
@@ -42152,7 +42152,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 42158 "parser_cocci_menhir.ml"
           
@@ -42165,7 +42165,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 42171 "parser_cocci_menhir.ml"
          in
@@ -42202,17 +42202,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42208 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42213 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42218 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -42226,7 +42226,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 690 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
@@ -42235,7 +42235,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 42241 "parser_cocci_menhir.ml"
           
@@ -42248,7 +42248,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 42254 "parser_cocci_menhir.ml"
          in
@@ -42290,22 +42290,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42296 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42301 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42306 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42311 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -42321,7 +42321,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 695 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
@@ -42331,7 +42331,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 42337 "parser_cocci_menhir.ml"
           
@@ -42344,7 +42344,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 42350 "parser_cocci_menhir.ml"
          in
@@ -42371,7 +42371,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42377 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -42382,13 +42382,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 664 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
 # 42388 "parser_cocci_menhir.ml"
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 42394 "parser_cocci_menhir.ml"
           
@@ -42401,7 +42401,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 42407 "parser_cocci_menhir.ml"
          in
@@ -42428,7 +42428,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42434 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -42439,13 +42439,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 666 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
 # 42445 "parser_cocci_menhir.ml"
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 42451 "parser_cocci_menhir.ml"
           
@@ -42458,7 +42458,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 42464 "parser_cocci_menhir.ml"
          in
@@ -42490,12 +42490,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42496 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42501 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -42508,7 +42508,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 668 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
@@ -42516,7 +42516,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 42522 "parser_cocci_menhir.ml"
           
@@ -42529,7 +42529,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 42535 "parser_cocci_menhir.ml"
          in
@@ -42556,7 +42556,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42562 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -42567,13 +42567,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 672 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
 # 42573 "parser_cocci_menhir.ml"
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 42579 "parser_cocci_menhir.ml"
           
@@ -42586,7 +42586,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 42592 "parser_cocci_menhir.ml"
          in
@@ -42613,7 +42613,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 42619 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
@@ -42624,14 +42624,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 674 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
 # 42631 "parser_cocci_menhir.ml"
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 42637 "parser_cocci_menhir.ml"
           
@@ -42644,7 +42644,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 42650 "parser_cocci_menhir.ml"
          in
@@ -42680,12 +42680,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 42686 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 42691 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
@@ -42698,7 +42698,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 677 "parser_cocci_menhir.mly"
+# 651 "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 *)
@@ -42709,7 +42709,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 42715 "parser_cocci_menhir.ml"
           
@@ -42722,7 +42722,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 42728 "parser_cocci_menhir.ml"
          in
@@ -42749,7 +42749,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42755 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -42760,13 +42760,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 684 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
 # 42766 "parser_cocci_menhir.ml"
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 42772 "parser_cocci_menhir.ml"
           
@@ -42779,7 +42779,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 42785 "parser_cocci_menhir.ml"
          in
@@ -42811,12 +42811,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42817 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42822 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -42829,7 +42829,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 686 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
@@ -42837,7 +42837,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 42843 "parser_cocci_menhir.ml"
           
@@ -42850,7 +42850,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 42856 "parser_cocci_menhir.ml"
          in
@@ -42882,12 +42882,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42888 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42893 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -42900,7 +42900,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 690 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
@@ -42909,7 +42909,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 42915 "parser_cocci_menhir.ml"
           
@@ -42922,7 +42922,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 42928 "parser_cocci_menhir.ml"
          in
@@ -42959,17 +42959,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42965 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42970 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 42975 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -42984,7 +42984,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 695 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
@@ -42994,7 +42994,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 43000 "parser_cocci_menhir.ml"
           
@@ -43007,7 +43007,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 43013 "parser_cocci_menhir.ml"
          in
@@ -43034,7 +43034,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 43040 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -43045,13 +43045,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 704 "parser_cocci_menhir.mly"
+# 678 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) )
 # 43051 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 43057 "parser_cocci_menhir.ml"
           
@@ -43064,7 +43064,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 43070 "parser_cocci_menhir.ml"
          in
@@ -43096,12 +43096,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 43102 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 43107 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -43114,7 +43114,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 706 "parser_cocci_menhir.mly"
+# 680 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongDoubleType,
@@ -43123,7 +43123,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 43129 "parser_cocci_menhir.ml"
           
@@ -43136,7 +43136,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 43142 "parser_cocci_menhir.ml"
          in
@@ -43163,7 +43163,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 43169 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -43174,13 +43174,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 711 "parser_cocci_menhir.mly"
+# 685 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) )
 # 43180 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 43186 "parser_cocci_menhir.ml"
           
@@ -43193,7 +43193,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 43199 "parser_cocci_menhir.ml"
          in
@@ -43220,7 +43220,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 43226 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -43231,13 +43231,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 713 "parser_cocci_menhir.mly"
+# 687 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) )
 # 43237 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 43243 "parser_cocci_menhir.ml"
           
@@ -43250,7 +43250,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 43256 "parser_cocci_menhir.ml"
          in
@@ -43277,7 +43277,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 143 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
 # 43283 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -43288,13 +43288,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 715 "parser_cocci_menhir.mly"
+# 689 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.SizeType,[P.clt2mcode "size_t" ty])) )
 # 43294 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 43300 "parser_cocci_menhir.ml"
           
@@ -43307,7 +43307,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 43313 "parser_cocci_menhir.ml"
          in
@@ -43334,7 +43334,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 143 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
 # 43340 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -43345,13 +43345,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 717 "parser_cocci_menhir.mly"
+# 691 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.SSizeType,[P.clt2mcode "ssize_t" ty])) )
 # 43351 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 43357 "parser_cocci_menhir.ml"
           
@@ -43364,7 +43364,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 43370 "parser_cocci_menhir.ml"
          in
@@ -43391,7 +43391,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 143 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
 # 43397 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -43402,13 +43402,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 719 "parser_cocci_menhir.mly"
+# 693 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.PtrDiffType,[P.clt2mcode "ptrdiff_t" ty])) )
 # 43408 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 43414 "parser_cocci_menhir.ml"
           
@@ -43421,7 +43421,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 43427 "parser_cocci_menhir.ml"
          in
@@ -43454,7 +43454,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 : (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 43460 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
@@ -43467,13 +43467,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let i = i0 in
             let s = s0 in
             
-# 721 "parser_cocci_menhir.mly"
+# 695 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, Some i)) )
 # 43473 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 43479 "parser_cocci_menhir.ml"
           
@@ -43486,7 +43486,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 43492 "parser_cocci_menhir.ml"
          in
@@ -43528,18 +43528,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 43534 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
         let l00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 43540 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let s00 : (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 43545 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
@@ -43563,7 +43563,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
             in
             
-# 723 "parser_cocci_menhir.mly"
+# 697 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "enums must be named in the iso file");
       Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
@@ -43572,7 +43572,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 43578 "parser_cocci_menhir.ml"
           
@@ -43585,7 +43585,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 43591 "parser_cocci_menhir.ml"
          in
@@ -43632,19 +43632,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 43638 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
         let l00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 43644 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let x000 : 'tv_ident = Obj.magic x000 in
         let s00 : (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 43650 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
@@ -43671,7 +43671,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
             in
             
-# 723 "parser_cocci_menhir.mly"
+# 697 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "enums must be named in the iso file");
       Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
@@ -43680,7 +43680,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 43686 "parser_cocci_menhir.ml"
           
@@ -43693,7 +43693,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 43699 "parser_cocci_menhir.ml"
          in
@@ -43735,13 +43735,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let i = i0 in
             let s = s0 in
             
-# 728 "parser_cocci_menhir.mly"
+# 702 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) )
 # 43741 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 43747 "parser_cocci_menhir.ml"
           
@@ -43754,7 +43754,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 43760 "parser_cocci_menhir.ml"
          in
@@ -43796,13 +43796,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 43802 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 43808 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
@@ -43827,7 +43827,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
             in
             
-# 731 "parser_cocci_menhir.mly"
+# 705 "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)),
@@ -43837,7 +43837,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 43843 "parser_cocci_menhir.ml"
           
@@ -43850,7 +43850,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 43856 "parser_cocci_menhir.ml"
          in
@@ -43897,13 +43897,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 43903 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 43909 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
@@ -43932,7 +43932,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
             in
             
-# 731 "parser_cocci_menhir.mly"
+# 705 "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)),
@@ -43942,7 +43942,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 43948 "parser_cocci_menhir.ml"
           
@@ -43955,7 +43955,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 43961 "parser_cocci_menhir.ml"
          in
@@ -43997,18 +43997,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 44003 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 44009 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let s00 : (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 44014 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
@@ -44025,7 +44025,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let l = l0 in
             let s = s0 in
             
-# 737 "parser_cocci_menhir.mly"
+# 711 "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)) )
@@ -44033,7 +44033,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 44039 "parser_cocci_menhir.ml"
           
@@ -44046,7 +44046,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 44052 "parser_cocci_menhir.ml"
          in
@@ -44073,7 +44073,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 44079 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
@@ -44084,13 +44084,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 741 "parser_cocci_menhir.mly"
+# 715 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) )
 # 44090 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 44096 "parser_cocci_menhir.ml"
           
@@ -44103,7 +44103,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 44109 "parser_cocci_menhir.ml"
          in
@@ -44140,12 +44140,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44146 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44151 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -44158,13 +44158,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 664 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
 # 44164 "parser_cocci_menhir.ml"
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 44170 "parser_cocci_menhir.ml"
           
@@ -44178,7 +44178,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 44184 "parser_cocci_menhir.ml"
          in
@@ -44215,12 +44215,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44221 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44226 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -44233,13 +44233,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 666 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
 # 44239 "parser_cocci_menhir.ml"
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 44245 "parser_cocci_menhir.ml"
           
@@ -44253,7 +44253,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 44259 "parser_cocci_menhir.ml"
          in
@@ -44295,17 +44295,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44301 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44306 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44311 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -44320,7 +44320,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 668 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
@@ -44328,7 +44328,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 44334 "parser_cocci_menhir.ml"
           
@@ -44342,7 +44342,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 44348 "parser_cocci_menhir.ml"
          in
@@ -44379,12 +44379,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44385 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44390 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -44397,13 +44397,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 672 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
 # 44403 "parser_cocci_menhir.ml"
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 44409 "parser_cocci_menhir.ml"
           
@@ -44417,7 +44417,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 44423 "parser_cocci_menhir.ml"
          in
@@ -44454,12 +44454,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 44460 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44465 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -44472,14 +44472,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 674 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
 # 44479 "parser_cocci_menhir.ml"
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 44485 "parser_cocci_menhir.ml"
           
@@ -44493,7 +44493,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 44499 "parser_cocci_menhir.ml"
          in
@@ -44539,17 +44539,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 44545 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 44550 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let r1 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44555 "parser_cocci_menhir.ml"
         ) = Obj.magic r1 in
@@ -44564,7 +44564,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 677 "parser_cocci_menhir.mly"
+# 651 "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 *)
@@ -44575,7 +44575,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 44581 "parser_cocci_menhir.ml"
           
@@ -44589,7 +44589,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 44595 "parser_cocci_menhir.ml"
          in
@@ -44626,12 +44626,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44632 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44637 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -44644,13 +44644,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 684 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
 # 44650 "parser_cocci_menhir.ml"
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 44656 "parser_cocci_menhir.ml"
           
@@ -44664,7 +44664,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 44670 "parser_cocci_menhir.ml"
          in
@@ -44706,17 +44706,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44712 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44717 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44722 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -44731,7 +44731,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 686 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
@@ -44739,7 +44739,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 44745 "parser_cocci_menhir.ml"
           
@@ -44753,7 +44753,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 44759 "parser_cocci_menhir.ml"
          in
@@ -44795,17 +44795,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44801 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44806 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44811 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -44820,7 +44820,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 690 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
@@ -44829,7 +44829,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 44835 "parser_cocci_menhir.ml"
           
@@ -44843,7 +44843,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 44849 "parser_cocci_menhir.ml"
          in
@@ -44890,22 +44890,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44896 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44901 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44906 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44911 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -44922,7 +44922,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 695 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
@@ -44932,7 +44932,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 746 "parser_cocci_menhir.mly"
+# 720 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
 # 44938 "parser_cocci_menhir.ml"
           
@@ -44946,7 +44946,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 44952 "parser_cocci_menhir.ml"
          in
@@ -44983,12 +44983,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44989 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 44994 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -45001,13 +45001,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 664 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
 # 45007 "parser_cocci_menhir.ml"
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 45013 "parser_cocci_menhir.ml"
           
@@ -45021,7 +45021,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 45027 "parser_cocci_menhir.ml"
          in
@@ -45058,12 +45058,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45064 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45069 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -45076,13 +45076,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 666 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
 # 45082 "parser_cocci_menhir.ml"
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 45088 "parser_cocci_menhir.ml"
           
@@ -45096,7 +45096,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 45102 "parser_cocci_menhir.ml"
          in
@@ -45138,17 +45138,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45144 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45149 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45154 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -45163,7 +45163,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 668 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
@@ -45171,7 +45171,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 45177 "parser_cocci_menhir.ml"
           
@@ -45185,7 +45185,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 45191 "parser_cocci_menhir.ml"
          in
@@ -45222,12 +45222,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45228 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45233 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -45240,13 +45240,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 672 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
 # 45246 "parser_cocci_menhir.ml"
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 45252 "parser_cocci_menhir.ml"
           
@@ -45260,7 +45260,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 45266 "parser_cocci_menhir.ml"
          in
@@ -45297,12 +45297,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 45303 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45308 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -45315,14 +45315,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 674 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
 # 45322 "parser_cocci_menhir.ml"
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 45328 "parser_cocci_menhir.ml"
           
@@ -45336,7 +45336,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 45342 "parser_cocci_menhir.ml"
          in
@@ -45382,17 +45382,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 45388 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 45393 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let r1 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45398 "parser_cocci_menhir.ml"
         ) = Obj.magic r1 in
@@ -45407,7 +45407,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 677 "parser_cocci_menhir.mly"
+# 651 "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 *)
@@ -45418,7 +45418,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 45424 "parser_cocci_menhir.ml"
           
@@ -45432,7 +45432,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 45438 "parser_cocci_menhir.ml"
          in
@@ -45469,12 +45469,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45475 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45480 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -45487,13 +45487,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 684 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
 # 45493 "parser_cocci_menhir.ml"
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 45499 "parser_cocci_menhir.ml"
           
@@ -45507,7 +45507,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 45513 "parser_cocci_menhir.ml"
          in
@@ -45549,17 +45549,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45555 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45560 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45565 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -45574,7 +45574,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 686 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
@@ -45582,7 +45582,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 45588 "parser_cocci_menhir.ml"
           
@@ -45596,7 +45596,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 45602 "parser_cocci_menhir.ml"
          in
@@ -45638,17 +45638,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45644 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45649 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45654 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -45663,7 +45663,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 690 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
@@ -45672,7 +45672,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 45678 "parser_cocci_menhir.ml"
           
@@ -45686,7 +45686,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 45692 "parser_cocci_menhir.ml"
          in
@@ -45733,22 +45733,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45739 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45744 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45749 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
         let r0 : (
-# 145 "parser_cocci_menhir.mly"
+# 119 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45754 "parser_cocci_menhir.ml"
         ) = Obj.magic r0 in
@@ -45765,7 +45765,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 695 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
@@ -45775,7 +45775,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 748 "parser_cocci_menhir.mly"
+# 722 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
 # 45781 "parser_cocci_menhir.ml"
           
@@ -45789,7 +45789,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 45795 "parser_cocci_menhir.ml"
          in
@@ -45821,7 +45821,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45827 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -45833,13 +45833,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 664 "parser_cocci_menhir.mly"
+# 638 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
 # 45839 "parser_cocci_menhir.ml"
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 45845 "parser_cocci_menhir.ml"
           
@@ -45853,7 +45853,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 45859 "parser_cocci_menhir.ml"
          in
@@ -45885,7 +45885,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45891 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -45897,13 +45897,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 666 "parser_cocci_menhir.mly"
+# 640 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
 # 45903 "parser_cocci_menhir.ml"
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 45909 "parser_cocci_menhir.ml"
           
@@ -45917,7 +45917,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 45923 "parser_cocci_menhir.ml"
          in
@@ -45954,12 +45954,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45960 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 45965 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -45973,7 +45973,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 668 "parser_cocci_menhir.mly"
+# 642 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.ShortIntType,[P.clt2mcode "short" ty1;P.clt2mcode "int" ty2])) )
@@ -45981,7 +45981,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 45987 "parser_cocci_menhir.ml"
           
@@ -45995,7 +45995,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 46001 "parser_cocci_menhir.ml"
          in
@@ -46027,7 +46027,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 46033 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -46039,13 +46039,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 672 "parser_cocci_menhir.mly"
+# 646 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
 # 46045 "parser_cocci_menhir.ml"
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 46051 "parser_cocci_menhir.ml"
           
@@ -46059,7 +46059,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 46065 "parser_cocci_menhir.ml"
          in
@@ -46091,7 +46091,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 46097 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
@@ -46103,14 +46103,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 674 "parser_cocci_menhir.mly"
+# 648 "parser_cocci_menhir.mly"
     ( let (nm,pure,clt) = p in
       Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
 # 46110 "parser_cocci_menhir.ml"
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 46116 "parser_cocci_menhir.ml"
           
@@ -46124,7 +46124,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 46130 "parser_cocci_menhir.ml"
          in
@@ -46165,12 +46165,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 46171 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
         let r00 : (
-# 140 "parser_cocci_menhir.mly"
+# 114 "parser_cocci_menhir.mly"
       (string)
 # 46176 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
@@ -46184,7 +46184,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let p = p0 in
             let r = r0 in
             
-# 677 "parser_cocci_menhir.mly"
+# 651 "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 *)
@@ -46195,7 +46195,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 46201 "parser_cocci_menhir.ml"
           
@@ -46209,7 +46209,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 46215 "parser_cocci_menhir.ml"
          in
@@ -46241,7 +46241,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 46247 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -46253,13 +46253,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty1 = ty10 in
             
-# 684 "parser_cocci_menhir.mly"
+# 658 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty1])) )
 # 46259 "parser_cocci_menhir.ml"
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 46265 "parser_cocci_menhir.ml"
           
@@ -46273,7 +46273,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 46279 "parser_cocci_menhir.ml"
          in
@@ -46310,12 +46310,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 46316 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 46321 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -46329,7 +46329,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 686 "parser_cocci_menhir.mly"
+# 660 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongIntType,[P.clt2mcode "long" ty1;P.clt2mcode "int" ty2])) )
@@ -46337,7 +46337,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 46343 "parser_cocci_menhir.ml"
           
@@ -46351,7 +46351,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 46357 "parser_cocci_menhir.ml"
          in
@@ -46388,12 +46388,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 46394 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 46399 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -46407,7 +46407,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 690 "parser_cocci_menhir.mly"
+# 664 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongType,
@@ -46416,7 +46416,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 46422 "parser_cocci_menhir.ml"
           
@@ -46430,7 +46430,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 46436 "parser_cocci_menhir.ml"
          in
@@ -46472,17 +46472,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty300 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 46478 "parser_cocci_menhir.ml"
         ) = Obj.magic ty300 in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 46483 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 46488 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -46498,7 +46498,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 695 "parser_cocci_menhir.mly"
+# 669 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongLongIntType,
@@ -46508,7 +46508,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 749 "parser_cocci_menhir.mly"
+# 723 "parser_cocci_menhir.mly"
                     ( ty )
 # 46514 "parser_cocci_menhir.ml"
           
@@ -46522,7 +46522,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 46528 "parser_cocci_menhir.ml"
          in
@@ -46554,7 +46554,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 46560 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -46566,13 +46566,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 704 "parser_cocci_menhir.mly"
+# 678 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) )
 # 46572 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 46578 "parser_cocci_menhir.ml"
           
@@ -46586,7 +46586,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 46592 "parser_cocci_menhir.ml"
          in
@@ -46623,12 +46623,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty200 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 46629 "parser_cocci_menhir.ml"
         ) = Obj.magic ty200 in
         let ty100 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 46634 "parser_cocci_menhir.ml"
         ) = Obj.magic ty100 in
@@ -46642,7 +46642,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let ty2 = ty20 in
             let ty1 = ty10 in
             
-# 706 "parser_cocci_menhir.mly"
+# 680 "parser_cocci_menhir.mly"
     ( Ast0.wrap
        (Ast0.BaseType
           (Ast.LongDoubleType,
@@ -46651,7 +46651,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 46657 "parser_cocci_menhir.ml"
           
@@ -46665,7 +46665,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 46671 "parser_cocci_menhir.ml"
          in
@@ -46697,7 +46697,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 46703 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -46709,13 +46709,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 711 "parser_cocci_menhir.mly"
+# 685 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) )
 # 46715 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 46721 "parser_cocci_menhir.ml"
           
@@ -46729,7 +46729,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 46735 "parser_cocci_menhir.ml"
          in
@@ -46761,7 +46761,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 142 "parser_cocci_menhir.mly"
+# 116 "parser_cocci_menhir.mly"
       (Data.clt)
 # 46767 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -46773,13 +46773,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 713 "parser_cocci_menhir.mly"
+# 687 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) )
 # 46779 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 46785 "parser_cocci_menhir.ml"
           
@@ -46793,7 +46793,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 46799 "parser_cocci_menhir.ml"
          in
@@ -46825,7 +46825,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 143 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
 # 46831 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -46837,13 +46837,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 715 "parser_cocci_menhir.mly"
+# 689 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.SizeType,[P.clt2mcode "size_t" ty])) )
 # 46843 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 46849 "parser_cocci_menhir.ml"
           
@@ -46857,7 +46857,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 46863 "parser_cocci_menhir.ml"
          in
@@ -46889,7 +46889,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 143 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
 # 46895 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -46901,13 +46901,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 717 "parser_cocci_menhir.mly"
+# 691 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.SSizeType,[P.clt2mcode "ssize_t" ty])) )
 # 46907 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 46913 "parser_cocci_menhir.ml"
           
@@ -46921,7 +46921,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 46927 "parser_cocci_menhir.ml"
          in
@@ -46953,7 +46953,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let ty00 : (
-# 143 "parser_cocci_menhir.mly"
+# 117 "parser_cocci_menhir.mly"
       (Data.clt)
 # 46959 "parser_cocci_menhir.ml"
         ) = Obj.magic ty00 in
@@ -46965,13 +46965,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let ty = ty0 in
             
-# 719 "parser_cocci_menhir.mly"
+# 693 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.BaseType(Ast.PtrDiffType,[P.clt2mcode "ptrdiff_t" ty])) )
 # 46971 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 46977 "parser_cocci_menhir.ml"
           
@@ -46985,7 +46985,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 46991 "parser_cocci_menhir.ml"
          in
@@ -47023,7 +47023,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 : (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 47029 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
@@ -47037,13 +47037,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let i = i0 in
             let s = s0 in
             
-# 721 "parser_cocci_menhir.mly"
+# 695 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, Some i)) )
 # 47043 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 47049 "parser_cocci_menhir.ml"
           
@@ -47057,7 +47057,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 47063 "parser_cocci_menhir.ml"
          in
@@ -47104,18 +47104,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 47110 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
         let l00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 47116 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let s00 : (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 47121 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
@@ -47140,7 +47140,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
             in
             
-# 723 "parser_cocci_menhir.mly"
+# 697 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "enums must be named in the iso file");
       Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
@@ -47149,7 +47149,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 47155 "parser_cocci_menhir.ml"
           
@@ -47163,7 +47163,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 47169 "parser_cocci_menhir.ml"
          in
@@ -47215,19 +47215,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 47221 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
         let l00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 47227 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let x000 : 'tv_ident = Obj.magic x000 in
         let s00 : (
-# 144 "parser_cocci_menhir.mly"
+# 118 "parser_cocci_menhir.mly"
       (Data.clt)
 # 47233 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
@@ -47255,7 +47255,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
             in
             
-# 723 "parser_cocci_menhir.mly"
+# 697 "parser_cocci_menhir.mly"
     ( (if i = None && !Data.in_iso
     then failwith "enums must be named in the iso file");
       Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
@@ -47264,7 +47264,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 47270 "parser_cocci_menhir.ml"
           
@@ -47278,7 +47278,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 47284 "parser_cocci_menhir.ml"
          in
@@ -47326,13 +47326,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let i = i0 in
             let s = s0 in
             
-# 728 "parser_cocci_menhir.mly"
+# 702 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) )
 # 47332 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 47338 "parser_cocci_menhir.ml"
           
@@ -47346,7 +47346,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 47352 "parser_cocci_menhir.ml"
          in
@@ -47393,13 +47393,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 47399 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 47405 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
@@ -47425,7 +47425,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
             in
             
-# 731 "parser_cocci_menhir.mly"
+# 705 "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)),
@@ -47435,7 +47435,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 47441 "parser_cocci_menhir.ml"
           
@@ -47449,7 +47449,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 47455 "parser_cocci_menhir.ml"
          in
@@ -47501,13 +47501,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 47507 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 47513 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
@@ -47537,7 +47537,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               
             in
             
-# 731 "parser_cocci_menhir.mly"
+# 705 "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)),
@@ -47547,7 +47547,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 47553 "parser_cocci_menhir.ml"
           
@@ -47561,7 +47561,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 47567 "parser_cocci_menhir.ml"
          in
@@ -47608,18 +47608,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let r00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 47614 "parser_cocci_menhir.ml"
         ) = Obj.magic r00 in
         let d00 : 'tv_struct_decl_list = Obj.magic d00 in
         let l00 : (
-# 199 "parser_cocci_menhir.mly"
+# 173 "parser_cocci_menhir.mly"
        (Data.clt)
 # 47620 "parser_cocci_menhir.ml"
         ) = Obj.magic l00 in
         let s00 : (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 47625 "parser_cocci_menhir.ml"
         ) = Obj.magic s00 in
@@ -47637,7 +47637,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             let l = l0 in
             let s = s0 in
             
-# 737 "parser_cocci_menhir.mly"
+# 711 "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)) )
@@ -47645,7 +47645,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 47651 "parser_cocci_menhir.ml"
           
@@ -47659,7 +47659,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 47665 "parser_cocci_menhir.ml"
          in
@@ -47691,7 +47691,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
         let p00 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 47697 "parser_cocci_menhir.ml"
         ) = Obj.magic p00 in
@@ -47703,13 +47703,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           let ty =
             let p = p0 in
             
-# 741 "parser_cocci_menhir.mly"
+# 715 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) )
 # 47709 "parser_cocci_menhir.ml"
             
           in
           
-# 750 "parser_cocci_menhir.mly"
+# 724 "parser_cocci_menhir.mly"
                         ( ty )
 # 47715 "parser_cocci_menhir.ml"
           
@@ -47723,7 +47723,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           
         in
         
-# 771 "parser_cocci_menhir.mly"
+# 745 "parser_cocci_menhir.mly"
     ( P.pointerify (P.make_cv cv ty) m )
 # 47729 "parser_cocci_menhir.ml"
          in
@@ -47754,20 +47754,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 47760 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_midzero_list_mctype_mctype_ = Obj.magic t in
         let lp : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 47766 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let _startpos = _startpos_lp_ in
         let _endpos = _endpos_rp_ in
         let _v : 'tv_typedef_ctype = 
-# 773 "parser_cocci_menhir.mly"
+# 747 "parser_cocci_menhir.mly"
     ( let (mids,code) = t in
       Ast0.wrap
        (Ast0.DisjType(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) )
@@ -47790,14 +47790,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 161 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 47796 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_typedef_ctype = 
-# 776 "parser_cocci_menhir.mly"
+# 750 "parser_cocci_menhir.mly"
         ( tmeta_to_type _1 )
 # 47803 "parser_cocci_menhir.ml"
          in
@@ -47821,7 +47821,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_typedef_ident = 
-# 2096 "parser_cocci_menhir.mly"
+# 2070 "parser_cocci_menhir.mly"
          ( Ast0.wrap(Ast0.TypeName(P.id2mcode _1)) )
 # 47827 "parser_cocci_menhir.ml"
          in
@@ -47842,14 +47842,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 161 "parser_cocci_menhir.mly"
+# 135 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 47848 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_typedef_ident = 
-# 2097 "parser_cocci_menhir.mly"
+# 2071 "parser_cocci_menhir.mly"
              ( tmeta_to_type _1 )
 # 47855 "parser_cocci_menhir.ml"
          in
@@ -47870,14 +47870,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 160 "parser_cocci_menhir.mly"
+# 134 "parser_cocci_menhir.mly"
        (Parse_aux.info)
 # 47876 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_typedef_ident = 
-# 2099 "parser_cocci_menhir.mly"
+# 2073 "parser_cocci_menhir.mly"
          ( let (nm,pure,clt) = _1 in
         Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
 # 47884 "parser_cocci_menhir.ml"
@@ -47902,7 +47902,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_ = 
-# 1648 "parser_cocci_menhir.mly"
+# 1622 "parser_cocci_menhir.mly"
                                          ( _1 )
 # 47908 "parser_cocci_menhir.ml"
          in
@@ -47929,14 +47929,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 183 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
 # 47935 "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_ = 
-# 1650 "parser_cocci_menhir.mly"
+# 1624 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) )
 # 47942 "parser_cocci_menhir.ml"
          in
@@ -47963,14 +47963,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 183 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
 # 47969 "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_ = 
-# 1652 "parser_cocci_menhir.mly"
+# 1626 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) )
 # 47976 "parser_cocci_menhir.ml"
          in
@@ -48000,7 +48000,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_ = 
-# 1654 "parser_cocci_menhir.mly"
+# 1628 "parser_cocci_menhir.mly"
       ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) )
 # 48006 "parser_cocci_menhir.ml"
          in
@@ -48027,14 +48027,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48033 "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_ = 
-# 1656 "parser_cocci_menhir.mly"
+# 1630 "parser_cocci_menhir.mly"
       ( let mcode = P.clt2mcode Ast.Not _1 in
       Ast0.wrap(Ast0.Unary(_2, mcode)) )
 # 48041 "parser_cocci_menhir.ml"
@@ -48062,14 +48062,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 152 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48068 "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_ = 
-# 1659 "parser_cocci_menhir.mly"
+# 1633 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) )
 # 48075 "parser_cocci_menhir.ml"
          in
@@ -48105,25 +48105,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48111 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48117 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let s : (
-# 152 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48122 "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_ = 
-# 1661 "parser_cocci_menhir.mly"
+# 1635 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s,
                                    P.clt2mcode "(" lp,t,
                                    P.clt2mcode ")" rp)) )
@@ -48149,7 +48149,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_expr_eexpr_invalid_ = 
-# 1648 "parser_cocci_menhir.mly"
+# 1622 "parser_cocci_menhir.mly"
                                          ( _1 )
 # 48155 "parser_cocci_menhir.ml"
          in
@@ -48176,14 +48176,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 183 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48182 "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_ = 
-# 1650 "parser_cocci_menhir.mly"
+# 1624 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) )
 # 48189 "parser_cocci_menhir.ml"
          in
@@ -48210,14 +48210,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 183 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48216 "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_ = 
-# 1652 "parser_cocci_menhir.mly"
+# 1626 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) )
 # 48223 "parser_cocci_menhir.ml"
          in
@@ -48247,7 +48247,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_invalid_ = 
-# 1654 "parser_cocci_menhir.mly"
+# 1628 "parser_cocci_menhir.mly"
       ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) )
 # 48253 "parser_cocci_menhir.ml"
          in
@@ -48274,14 +48274,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48280 "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_ = 
-# 1656 "parser_cocci_menhir.mly"
+# 1630 "parser_cocci_menhir.mly"
       ( let mcode = P.clt2mcode Ast.Not _1 in
       Ast0.wrap(Ast0.Unary(_2, mcode)) )
 # 48288 "parser_cocci_menhir.ml"
@@ -48309,14 +48309,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 152 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48315 "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_ = 
-# 1659 "parser_cocci_menhir.mly"
+# 1633 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) )
 # 48322 "parser_cocci_menhir.ml"
          in
@@ -48352,25 +48352,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48358 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48364 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let s : (
-# 152 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48369 "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_ = 
-# 1661 "parser_cocci_menhir.mly"
+# 1635 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s,
                                    P.clt2mcode "(" lp,t,
                                    P.clt2mcode ")" rp)) )
@@ -48396,7 +48396,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_ = 
-# 1648 "parser_cocci_menhir.mly"
+# 1622 "parser_cocci_menhir.mly"
                                          ( _1 )
 # 48402 "parser_cocci_menhir.ml"
          in
@@ -48423,14 +48423,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 183 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48429 "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_ = 
-# 1650 "parser_cocci_menhir.mly"
+# 1624 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) )
 # 48436 "parser_cocci_menhir.ml"
          in
@@ -48457,14 +48457,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 183 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48463 "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_ = 
-# 1652 "parser_cocci_menhir.mly"
+# 1626 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) )
 # 48470 "parser_cocci_menhir.ml"
          in
@@ -48494,7 +48494,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_ = 
-# 1654 "parser_cocci_menhir.mly"
+# 1628 "parser_cocci_menhir.mly"
       ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) )
 # 48500 "parser_cocci_menhir.ml"
          in
@@ -48521,14 +48521,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48527 "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_ = 
-# 1656 "parser_cocci_menhir.mly"
+# 1630 "parser_cocci_menhir.mly"
       ( let mcode = P.clt2mcode Ast.Not _1 in
       Ast0.wrap(Ast0.Unary(_2, mcode)) )
 # 48535 "parser_cocci_menhir.ml"
@@ -48556,14 +48556,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 152 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48562 "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_ = 
-# 1659 "parser_cocci_menhir.mly"
+# 1633 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) )
 # 48569 "parser_cocci_menhir.ml"
          in
@@ -48599,25 +48599,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48605 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48611 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let s : (
-# 152 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48616 "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_ = 
-# 1661 "parser_cocci_menhir.mly"
+# 1635 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s,
                                    P.clt2mcode "(" lp,t,
                                    P.clt2mcode ")" rp)) )
@@ -48643,7 +48643,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_expr_expr_invalid_ = 
-# 1648 "parser_cocci_menhir.mly"
+# 1622 "parser_cocci_menhir.mly"
                                          ( _1 )
 # 48649 "parser_cocci_menhir.ml"
          in
@@ -48670,14 +48670,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 183 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48676 "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_ = 
-# 1650 "parser_cocci_menhir.mly"
+# 1624 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) )
 # 48683 "parser_cocci_menhir.ml"
          in
@@ -48704,14 +48704,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 183 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48710 "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_ = 
-# 1652 "parser_cocci_menhir.mly"
+# 1626 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) )
 # 48717 "parser_cocci_menhir.ml"
          in
@@ -48741,7 +48741,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_expr_invalid_ = 
-# 1654 "parser_cocci_menhir.mly"
+# 1628 "parser_cocci_menhir.mly"
       ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) )
 # 48747 "parser_cocci_menhir.ml"
          in
@@ -48768,14 +48768,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48774 "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_ = 
-# 1656 "parser_cocci_menhir.mly"
+# 1630 "parser_cocci_menhir.mly"
       ( let mcode = P.clt2mcode Ast.Not _1 in
       Ast0.wrap(Ast0.Unary(_2, mcode)) )
 # 48782 "parser_cocci_menhir.ml"
@@ -48803,14 +48803,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 152 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48809 "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_ = 
-# 1659 "parser_cocci_menhir.mly"
+# 1633 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) )
 # 48816 "parser_cocci_menhir.ml"
          in
@@ -48846,25 +48846,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48852 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48858 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let s : (
-# 152 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48863 "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_ = 
-# 1661 "parser_cocci_menhir.mly"
+# 1635 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s,
                                    P.clt2mcode "(" lp,t,
                                    P.clt2mcode ")" rp)) )
@@ -48890,7 +48890,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_expr_bis = 
-# 1667 "parser_cocci_menhir.mly"
+# 1641 "parser_cocci_menhir.mly"
                                                           ( _1 )
 # 48896 "parser_cocci_menhir.ml"
          in
@@ -48917,14 +48917,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 183 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48923 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_bis = 
-# 1669 "parser_cocci_menhir.mly"
+# 1643 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) )
 # 48930 "parser_cocci_menhir.ml"
          in
@@ -48951,14 +48951,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 183 "parser_cocci_menhir.mly"
+# 157 "parser_cocci_menhir.mly"
        (Data.clt)
 # 48957 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_bis = 
-# 1671 "parser_cocci_menhir.mly"
+# 1645 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) )
 # 48964 "parser_cocci_menhir.ml"
          in
@@ -48988,7 +48988,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_bis = 
-# 1673 "parser_cocci_menhir.mly"
+# 1647 "parser_cocci_menhir.mly"
       ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) )
 # 48994 "parser_cocci_menhir.ml"
          in
@@ -49015,14 +49015,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 49021 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_bis = 
-# 1675 "parser_cocci_menhir.mly"
+# 1649 "parser_cocci_menhir.mly"
       ( let mcode = P.clt2mcode Ast.Not _1 in
       Ast0.wrap(Ast0.Unary(_2, mcode)) )
 # 49029 "parser_cocci_menhir.ml"
@@ -49050,14 +49050,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_bis = Obj.magic _2 in
         let _1 : (
-# 152 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
 # 49056 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_bis = 
-# 1678 "parser_cocci_menhir.mly"
+# 1652 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) )
 # 49063 "parser_cocci_menhir.ml"
          in
@@ -49093,25 +49093,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 175 "parser_cocci_menhir.mly"
+# 149 "parser_cocci_menhir.mly"
        (Data.clt)
 # 49099 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 174 "parser_cocci_menhir.mly"
+# 148 "parser_cocci_menhir.mly"
        (Data.clt)
 # 49105 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let s : (
-# 152 "parser_cocci_menhir.mly"
+# 126 "parser_cocci_menhir.mly"
        (Data.clt)
 # 49110 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_rp_ in
         let _v : 'tv_unary_expr_bis = 
-# 1680 "parser_cocci_menhir.mly"
+# 1654 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s,
                                    P.clt2mcode "(" lp,t,
                                    P.clt2mcode ")" rp)) )
@@ -49134,14 +49134,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 191 "parser_cocci_menhir.mly"
+# 165 "parser_cocci_menhir.mly"
        (Data.clt)
 # 49140 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_op = 
-# 1684 "parser_cocci_menhir.mly"
+# 1658 "parser_cocci_menhir.mly"
                   ( P.clt2mcode Ast.GetRef _1 )
 # 49147 "parser_cocci_menhir.ml"
          in
@@ -49162,14 +49162,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 49168 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_op = 
-# 1685 "parser_cocci_menhir.mly"
+# 1659 "parser_cocci_menhir.mly"
            ( P.clt2mcode Ast.DeRef _1 )
 # 49175 "parser_cocci_menhir.ml"
          in
@@ -49190,14 +49190,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 196 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
 # 49196 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_op = 
-# 1686 "parser_cocci_menhir.mly"
+# 1660 "parser_cocci_menhir.mly"
            ( P.clt2mcode Ast.UnPlus _1 )
 # 49203 "parser_cocci_menhir.ml"
          in
@@ -49218,14 +49218,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 196 "parser_cocci_menhir.mly"
+# 170 "parser_cocci_menhir.mly"
        (Data.clt)
 # 49224 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_op = 
-# 1687 "parser_cocci_menhir.mly"
+# 1661 "parser_cocci_menhir.mly"
            ( P.clt2mcode Ast.UnMinus _1 )
 # 49231 "parser_cocci_menhir.ml"
          in
@@ -49246,14 +49246,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 197 "parser_cocci_menhir.mly"
+# 171 "parser_cocci_menhir.mly"
        (Data.clt)
 # 49252 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_op = 
-# 1688 "parser_cocci_menhir.mly"
+# 1662 "parser_cocci_menhir.mly"
            ( P.clt2mcode Ast.Tilde _1 )
 # 49259 "parser_cocci_menhir.ml"
          in
@@ -49283,7 +49283,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_when_start = 
-# 2349 "parser_cocci_menhir.mly"
+# 2323 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.DOTS((Ast0.wrap(Ast0.Exp(_1)))::_2)) )
 # 49289 "parser_cocci_menhir.ml"
          in
@@ -49313,7 +49313,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_when_start = 
-# 2351 "parser_cocci_menhir.mly"
+# 2325 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.DOTS(_1@_2)) )
 # 49319 "parser_cocci_menhir.ml"
          in
@@ -49337,7 +49337,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos_w_ in
         let _endpos = _endpos_w_ in
         let _v : 'tv_whenppdecs = 
-# 1182 "parser_cocci_menhir.mly"
+# 1156 "parser_cocci_menhir.mly"
     ( w )
 # 49343 "parser_cocci_menhir.ml"
          in
@@ -49373,7 +49373,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_ = 
-# 2396 "parser_cocci_menhir.mly"
+# 2370 "parser_cocci_menhir.mly"
                                          ( [Ast0.WhenNot w] )
 # 49379 "parser_cocci_menhir.ml"
          in
@@ -49409,7 +49409,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_ = 
-# 2397 "parser_cocci_menhir.mly"
+# 2371 "parser_cocci_menhir.mly"
                                              ( [Ast0.WhenAlways w] )
 # 49415 "parser_cocci_menhir.ml"
          in
@@ -49441,7 +49441,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_ = 
-# 2399 "parser_cocci_menhir.mly"
+# 2373 "parser_cocci_menhir.mly"
       ( List.map (function x -> Ast0.WhenModifier(x)) _2 )
 # 49447 "parser_cocci_menhir.ml"
          in
@@ -49477,7 +49477,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_ = 
-# 2400 "parser_cocci_menhir.mly"
+# 2374 "parser_cocci_menhir.mly"
                                         ( [Ast0.WhenNotTrue e] )
 # 49483 "parser_cocci_menhir.ml"
          in
@@ -49513,7 +49513,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_ = 
-# 2401 "parser_cocci_menhir.mly"
+# 2375 "parser_cocci_menhir.mly"
                                          ( [Ast0.WhenNotFalse e] )
 # 49519 "parser_cocci_menhir.ml"
          in
@@ -49534,14 +49534,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 153 "parser_cocci_menhir.mly"
+# 127 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 49540 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_wrapped_sym_ident = 
-# 1822 "parser_cocci_menhir.mly"
+# 1796 "parser_cocci_menhir.mly"
          ( Ast0.wrap(Ast0.Id(P.sym2mcode _1)) )
 # 49547 "parser_cocci_menhir.ml"
          in
@@ -49565,7 +49565,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
 let rec script_meta_main =
   fun lexer lexbuf ->
     (Obj.magic (MenhirInterpreter.entry 2202 lexer lexbuf) : (
-# 259 "parser_cocci_menhir.mly"
+# 233 "parser_cocci_menhir.mly"
        ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option)
 # 49571 "parser_cocci_menhir.ml"
     ))
@@ -49573,7 +49573,7 @@ let rec script_meta_main =
 and rule_name =
   fun lexer lexbuf ->
     (Obj.magic (MenhirInterpreter.entry 2125 lexer lexbuf) : (
-# 253 "parser_cocci_menhir.mly"
+# 227 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
 # 49579 "parser_cocci_menhir.ml"
     ))
@@ -49581,7 +49581,7 @@ and rule_name =
 and reinit =
   fun lexer lexbuf ->
     (Obj.magic (MenhirInterpreter.entry 2123 lexer lexbuf) : (
-# 231 "parser_cocci_menhir.mly"
+# 205 "parser_cocci_menhir.mly"
       (unit)
 # 49587 "parser_cocci_menhir.ml"
     ))
@@ -49589,7 +49589,7 @@ and reinit =
 and plus_main =
   fun lexer lexbuf ->
     (Obj.magic (MenhirInterpreter.entry 2087 lexer lexbuf) : (
-# 240 "parser_cocci_menhir.mly"
+# 214 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
 # 49595 "parser_cocci_menhir.ml"
     ))
@@ -49597,7 +49597,7 @@ and plus_main =
 and plus_exp_main =
   fun lexer lexbuf ->
     (Obj.magic (MenhirInterpreter.entry 2079 lexer lexbuf) : (
-# 243 "parser_cocci_menhir.mly"
+# 217 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
 # 49603 "parser_cocci_menhir.ml"
     ))
@@ -49605,7 +49605,7 @@ and plus_exp_main =
 and never_used =
   fun lexer lexbuf ->
     (Obj.magic (MenhirInterpreter.entry 2073 lexer lexbuf) : (
-# 268 "parser_cocci_menhir.mly"
+# 242 "parser_cocci_menhir.mly"
       (unit)
 # 49611 "parser_cocci_menhir.ml"
     ))
@@ -49613,7 +49613,7 @@ and never_used =
 and minus_main =
   fun lexer lexbuf ->
     (Obj.magic (MenhirInterpreter.entry 1988 lexer lexbuf) : (
-# 234 "parser_cocci_menhir.mly"
+# 208 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
 # 49619 "parser_cocci_menhir.ml"
     ))
@@ -49621,7 +49621,7 @@ and minus_main =
 and minus_exp_main =
   fun lexer lexbuf ->
     (Obj.magic (MenhirInterpreter.entry 1976 lexer lexbuf) : (
-# 237 "parser_cocci_menhir.mly"
+# 211 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
 # 49627 "parser_cocci_menhir.ml"
     ))
@@ -49629,7 +49629,7 @@ and minus_exp_main =
 and meta_main =
   fun lexer lexbuf ->
     (Obj.magic (MenhirInterpreter.entry 1973 lexer lexbuf) : (
-# 257 "parser_cocci_menhir.mly"
+# 231 "parser_cocci_menhir.mly"
       ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list)
 # 49635 "parser_cocci_menhir.ml"
     ))
@@ -49637,7 +49637,7 @@ and meta_main =
 and iso_rule_name =
   fun lexer lexbuf ->
     (Obj.magic (MenhirInterpreter.entry 1969 lexer lexbuf) : (
-# 249 "parser_cocci_menhir.mly"
+# 223 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
 # 49643 "parser_cocci_menhir.ml"
     ))
@@ -49645,7 +49645,7 @@ and iso_rule_name =
 and iso_meta_main =
   fun lexer lexbuf ->
     (Obj.magic (MenhirInterpreter.entry 1674 lexer lexbuf) : (
-# 265 "parser_cocci_menhir.mly"
+# 239 "parser_cocci_menhir.mly"
       ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list)
 # 49651 "parser_cocci_menhir.ml"
     ))
@@ -49653,7 +49653,7 @@ and iso_meta_main =
 and iso_main =
   fun lexer lexbuf ->
     (Obj.magic (MenhirInterpreter.entry 18 lexer lexbuf) : (
-# 262 "parser_cocci_menhir.mly"
+# 236 "parser_cocci_menhir.mly"
       (Ast0_cocci.anything list list)
 # 49659 "parser_cocci_menhir.ml"
     ))
@@ -49661,7 +49661,7 @@ and iso_main =
 and include_main =
   fun lexer lexbuf ->
     (Obj.magic (MenhirInterpreter.entry 0 lexer lexbuf) : (
-# 246 "parser_cocci_menhir.mly"
+# 220 "parser_cocci_menhir.mly"
       (Data.incl_iso list)
 # 49667 "parser_cocci_menhir.ml"
     ))
index 2a6a7c7..978079b 100644 (file)
  */
 
 
-/*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * 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
index 4ee2ac7..76324a0 100644 (file)
  *)
 
 
-# 0 "./plus.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./plus.ml"
 (* The plus fragments are converted to a list of lists of lists.
 Innermost list: Elements have type anything.  For any pair of successive
index 95a7c56..e5d9941 100644 (file)
  *)
 
 
-# 0 "./plus.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./plus.mli"
 val plus :
     Ast_cocci.rule ->
index 8edff75..d33581e 100644 (file)
  *)
 
 
-# 0 "./pretty_print_cocci.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./pretty_print_cocci.ml"
 open Format
 module Ast = Ast_cocci
index b5f9fa9..9c26dcd 100644 (file)
  *)
 
 
-# 0 "./pretty_print_cocci.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./pretty_print_cocci.mli"
 val unparse : Ast_cocci.rule -> unit
 val unparse_to_string : Ast_cocci.rule -> string
index 699f50a..6a8bc8e 100644 (file)
  *)
 
 
-# 0 "./safe_for_multi_decls.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./safe_for_multi_decls.ml"
 (* This phase sets the safe_for_multi_decls field, which is normally false,
 to true for transformations on declarations where the only change is on the
index 36b4e32..c961945 100644 (file)
  *)
 
 
-# 0 "./safe_for_multi_decls.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./safe_for_multi_decls.mli"
 val safe_for_multi_decls :
     Ast_cocci.rule_with_metavars list ->
index e5b9a04..6f588de 100644 (file)
  *)
 
 
-# 0 "./semantic_cocci.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./semantic_cocci.ml"
 exception Semantic of string
index 9e932ff..7530d17 100644 (file)
  *)
 
 
-# 0 "./simple_assignments.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./simple_assignments.ml"
 module Ast0 = Ast0_cocci
 module Ast = Ast_cocci
index 0bbde93..0285031 100644 (file)
  *)
 
 
-# 0 "./simple_assignments.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./simple_assignments.mli"
 val simple_assignments : Ast0_cocci.rule -> Ast0_cocci.rule
index 6647e44..16b8981 100644 (file)
  *)
 
 
-# 0 "./single_statement.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./single_statement.ml"
 (* detect statements that are between dots in the minus code, because they
 may need a special treatment if they are if branches *)
index 3c18d60..aca701c 100644 (file)
  *)
 
 
-# 0 "./single_statement.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./single_statement.mli"
 val single_statement : Ast0_cocci.rule -> Ast0_cocci.rule
index b39b86b..df6985f 100644 (file)
  *)
 
 
-# 0 "./test_exps.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./test_exps.ml"
 module Ast = Ast_cocci
 module Ast0 = Ast0_cocci
index 6b8e2cc..103fad4 100644 (file)
  *)
 
 
-# 0 "./test_exps.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./test_exps.mli"
 val process : Ast0_cocci.rule -> Ast0_cocci.rule
 
index 57ce4cd..9cf774f 100644 (file)
  *)
 
 
-# 0 "./top_level.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./top_level.ml"
 (* 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
index f4f7675..ee91264 100644 (file)
  *)
 
 
-# 0 "./top_level.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./top_level.mli"
 val top_level :
     bool (* true if must be code *) -> Ast0_cocci.rule -> Ast0_cocci.rule
index 782a442..4e61e10 100644 (file)
  *)
 
 
-# 0 "./type_cocci.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./type_cocci.ml"
 (* for metavariables in general, but here because needed for metatypes *)
 type inherited = bool (* true if inherited *)
index ff0cf80..f5f92d4 100644 (file)
  *)
 
 
-# 0 "./type_cocci.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./type_cocci.mli"
 type inherited = bool (* true if inherited *)
 type keep_binding = Unitary (* need no info *)
index e453424..c0315c9 100644 (file)
  *)
 
 
-# 0 "./type_infer.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./type_infer.ml"
 module T = Type_cocci
 module Ast = Ast_cocci
index 3650a98..aca5264 100644 (file)
  *)
 
 
-# 0 "./type_infer.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./type_infer.mli"
 val type_infer : Ast0_cocci.rule -> unit
index 9a2689e..38fbbee 100644 (file)
  *)
 
 
-# 0 "./unify_ast.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./unify_ast.ml"
 (* --------------------------------------------------------------------- *)
 (* Given two patterns, A and B, determine whether B can match any matched
index 3497f9a..1a878df 100644 (file)
  *)
 
 
-# 0 "./unify_ast.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./unify_ast.mli"
 type res = NO | MAYBE
 
index e3f7499..976914a 100644 (file)
  *)
 
 
-# 0 "./unitary_ast0.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./unitary_ast0.ml"
 (* find unitary metavariables *)
 module Ast0 = Ast0_cocci
index 2db73e8..7d56889 100644 (file)
  *)
 
 
-# 0 "./unitary_ast0.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./unitary_ast0.mli"
 (* 'iso is the return type of parse_iso, which currently is
 (Ast_cocci.metavar list * Ast0_cocci.anything list list) list *)
index 889ece1..46268f5 100644 (file)
  *)
 
 
-# 0 "./unparse_ast0.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./unparse_ast0.ml"
 open Format
 module Ast = Ast_cocci
index dd212ed..171c173 100644 (file)
  *)
 
 
-# 0 "./unparse_ast0.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./unparse_ast0.mli"
 val expression_dots : Ast0_cocci.expression Ast0_cocci.dots -> unit
 val parameter_list : Ast0_cocci.parameterTypeDef Ast0_cocci.dots -> unit
index 8076870..d223e0d 100644 (file)
  *)
 
 
-# 0 "./visitor_ast.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./visitor_ast.ml"
 module Ast0 = Ast0_cocci
 module Ast = Ast_cocci
index 9424cbd..a7acd2d 100644 (file)
  *)
 
 
-# 0 "./visitor_ast.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./visitor_ast.mli"
 type 'a combiner =
     {combiner_ident : Ast_cocci.ident -> 'a;
index 0a26f0c..c5d9125 100644 (file)
  *)
 
 
-# 0 "./visitor_ast0.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./visitor_ast0.ml"
 (* --------------------------------------------------------------------- *)
 (* Generic traversal: rebuilder *)
index f32dedc..819caf0 100644 (file)
  *)
 
 
-# 0 "./visitor_ast0.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./visitor_ast0.mli"
 val combiner_functions : 'a Visitor_ast0_types.combiner_functions
 val combiner :
index 18767cd..bca7f8e 100644 (file)
  *)
 
 
-# 0 "./visitor_ast0_types.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./visitor_ast0_types.ml"
 module Ast0 = Ast0_cocci
 module Ast = Ast_cocci
index 2b507d2..09fa70f 100644 (file)
  *)
 
 
-# 0 "./ast_popl.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./ast_popl.ml"
 type sequence =
     Seq of element * sequence
index fdd3ce4..d02ca6a 100644 (file)
  *)
 
 
-# 0 "./asttopopl.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./asttopopl.ml"
 module Ast = Ast_cocci
 module Past = Ast_popl
index 5466811..e787957 100644 (file)
  *)
 
 
-# 0 "./asttopopl.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./asttopopl.mli"
 val top : Ast_cocci.top_level -> Ast_popl.sequence
index 3ad1105..9358719 100644 (file)
  *)
 
 
-# 0 "./insert_befaft.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./insert_befaft.ml"
 module Past = Ast_popl
 
index 7322acb..31f0c83 100644 (file)
  *)
 
 
-# 0 "./insert_befaft.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./insert_befaft.mli"
 val insert_befaft : Ast_popl.sequence -> Ast_popl.sequence
index df1d85b..a82695f 100644 (file)
  *)
 
 
-# 0 "./insert_quantifiers.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./insert_quantifiers.ml"
 module Ast = Ast_cocci
 module Past = Ast_popl
index 05a244b..0df0cab 100644 (file)
  *)
 
 
-# 0 "./insert_quantifiers.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./insert_quantifiers.mli"
 val insert_quantifiers : Ast_popl.sequence -> Ast_popl.sequence
index 5e12fa9..63c75d9 100644 (file)
  *)
 
 
-# 0 "./popl.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./popl.ml"
 type cocci_predicate = Lib_engine.predicate * Ast_cocci.meta_name Ast_ctl.modif
 type formula =
index 87b7d13..0572d47 100644 (file)
  *)
 
 
-# 0 "./popl.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./popl.mli"
 type cocci_predicate = Lib_engine.predicate * Ast_cocci.meta_name Ast_ctl.modif
 type formula =
index c972c70..8134396 100644 (file)
  *)
 
 
-# 0 "./popltoctl.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./popltoctl.ml"
 module Past = Ast_popl
 module Ast = Ast_cocci
index b7b3dc1..96d88e3 100644 (file)
  *)
 
 
-# 0 "./popltoctl.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./popltoctl.mli"
 type cocci_predicate = Lib_engine.predicate * Ast_cocci.meta_name Ast_ctl.modif
 type formula =
index 3a9e352..d0e9b9f 100644 (file)
  *)
 
 
-# 0 "./pretty_print_popl.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./pretty_print_popl.ml"
 open Format
 module Past = Ast_popl
index 04a3c08..d62c4c6 100644 (file)
  *)
 
 
-# 0 "./pretty_print_popl.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./pretty_print_popl.mli"
 val pretty_print : Ast_popl.sequence -> unit
 val pretty_print_e : Ast_popl.element -> unit
index 9d1fa5b..4b3a62f 100644 (file)
  *)
 
 
-# 0 "./ast_popl.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./ast_popl.ml"
 type sequence =
     Seq of element * sequence
index 0707a89..b86b1d4 100644 (file)
  *)
 
 
-# 0 "./asttopopl.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./asttopopl.ml"
 module Ast = Ast_cocci
 module Past = Ast_popl
index 5466811..e787957 100644 (file)
  *)
 
 
-# 0 "./asttopopl.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./asttopopl.mli"
 val top : Ast_cocci.top_level -> Ast_popl.sequence
index 1bc7cde..e7a15c3 100644 (file)
  *)
 
 
-# 0 "./flag_popl.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./flag_popl.ml"
 let mark_all = ref false
 let keep_all_wits = ref false
index 6e70919..badef2c 100644 (file)
  *)
 
 
-# 0 "./insert_quantifiers.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./insert_quantifiers.ml"
 module Ast = Ast_cocci
 module Past = Ast_popl
index 05a244b..0df0cab 100644 (file)
  *)
 
 
-# 0 "./insert_quantifiers.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./insert_quantifiers.mli"
 val insert_quantifiers : Ast_popl.sequence -> Ast_popl.sequence
index 7f8da5a..fb4eff5 100644 (file)
  *)
 
 
-# 0 "./popl.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./popl.ml"
 type cocci_predicate = Lib_engine.predicate * Ast_cocci.meta_name Ast_ctl.modif
 type formula =
index 87b7d13..0572d47 100644 (file)
  *)
 
 
-# 0 "./popl.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./popl.mli"
 type cocci_predicate = Lib_engine.predicate * Ast_cocci.meta_name Ast_ctl.modif
 type formula =
index d91d761..46f4ed6 100644 (file)
  *)
 
 
-# 0 "./popltoctl.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./popltoctl.ml"
 module Past = Ast_popl
 module Ast = Ast_cocci
index b7b3dc1..96d88e3 100644 (file)
  *)
 
 
-# 0 "./popltoctl.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./popltoctl.mli"
 type cocci_predicate = Lib_engine.predicate * Ast_cocci.meta_name Ast_ctl.modif
 type formula =
index ff8495f..fc595e1 100644 (file)
  *)
 
 
-# 0 "./pretty_print_popl.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./pretty_print_popl.ml"
 open Format
 module Past = Ast_popl
index 04a3c08..d62c4c6 100644 (file)
  *)
 
 
-# 0 "./pretty_print_popl.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./pretty_print_popl.mli"
 val pretty_print : Ast_popl.sequence -> unit
 val pretty_print_e : Ast_popl.element -> unit
index 7d01c3c..1eb427c 100644 (file)
  *)
 
 
-# 0 "./no_pycocci.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./no_pycocci.ml"
 open Ast_c
 open Common
index b23448a..270ef71 100644 (file)
  *)
 
 
-# 0 "./pycocci.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./pycocci.mli"
 val build_classes : Ast_cocci.meta_name list -> unit
 val construct_variables :
index 5ba7a9c..72f1884 100644 (file)
  *)
 
 
-# 0 "./pycocci_aux.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./pycocci_aux.ml"
 open Ast_c
 open Common
index c821436..2b5c2e6 100644 (file)
  *)
 
 
-# 0 "./pycocci_aux.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./pycocci_aux.mli"
 val exprlistrep : Ast_c.argument Ast_c.wrap2 list -> string * string list
 val paramlistrep : Ast_c.parameterType Ast_c.wrap2 list -> string * string list
index cc6eda4..5637951 100644 (file)
  *)
 
 
-# 0 "./yes_pycocci.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./yes_pycocci.ml"
 open Ast_c
 open Common
index 8a351be..5856a06 100644 (file)
  *)
 
 
-# 0 "./testing.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./testing.ml"
 open Common
 open Sexplib
index c76c8c3..5fb1862 100644 (file)
  *)
 
 
-# 0 "./testing.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./testing.mli"
 open Common
 
index b108f60..9254d1d 100644 (file)
  (empty.res Ok) (end_commas.res Ok) (endif.res Ok) (enum.res Ok)
  (exitc.res
   (Pb
-   "PROBLEM\n   exn = Yes_prepare_ocamlcocci.LinkFailure(\"/tmp/exitc3a2c80.cmxs\")\n"))
+   "PROBLEM\n   exn = Yes_prepare_ocamlcocci.LinkFailure(\"/tmp/exitc25fc77.cmxs\")\n"))
  (exitp.res (Pb "PROBLEM\n   exn = Failure(\"no python\")\n")) (exp.res Ok)
  (expnest.res Ok) (expopt.res Ok) (expopt2.res Ok) (expopt3.res Ok)
  (expopt3_ver1.res Ok) (expopt3_ver2.res Ok)
  (extra.res
   (Pb
-   "PROBLEM\n   exn = Yes_prepare_ocamlcocci.LinkFailure(\"/tmp/extra7f046a.cmxs\")\n"))
+   "PROBLEM\n   exn = Yes_prepare_ocamlcocci.LinkFailure(\"/tmp/extrada8c85.cmxs\")\n"))
  (fields.res Ok) (fieldsmin.res Ok) (find_long.res Ok) (fix_flow_need.res Ok)
  (fn_todo.res Ok) (fnptr.res Ok) (fnret.res Ok) (fnty.res Ok) (four.res Ok)
  (foura.res Ok) (fp.res Ok) (fsh.res Ok) (fun.res Ok)
index b108f60..9254d1d 100644 (file)
  (empty.res Ok) (end_commas.res Ok) (endif.res Ok) (enum.res Ok)
  (exitc.res
   (Pb
-   "PROBLEM\n   exn = Yes_prepare_ocamlcocci.LinkFailure(\"/tmp/exitc3a2c80.cmxs\")\n"))
+   "PROBLEM\n   exn = Yes_prepare_ocamlcocci.LinkFailure(\"/tmp/exitc25fc77.cmxs\")\n"))
  (exitp.res (Pb "PROBLEM\n   exn = Failure(\"no python\")\n")) (exp.res Ok)
  (expnest.res Ok) (expopt.res Ok) (expopt2.res Ok) (expopt3.res Ok)
  (expopt3_ver1.res Ok) (expopt3_ver2.res Ok)
  (extra.res
   (Pb
-   "PROBLEM\n   exn = Yes_prepare_ocamlcocci.LinkFailure(\"/tmp/extra7f046a.cmxs\")\n"))
+   "PROBLEM\n   exn = Yes_prepare_ocamlcocci.LinkFailure(\"/tmp/extrada8c85.cmxs\")\n"))
  (fields.res Ok) (fieldsmin.res Ok) (find_long.res Ok) (fix_flow_need.res Ok)
  (fn_todo.res Ok) (fnptr.res Ok) (fnret.res Ok) (fnty.res Ok) (four.res Ok)
  (foura.res Ok) (fp.res Ok) (fsh.res Ok) (fun.res Ok)
index 7e161df..3465b10 100644 (file)
  *)
 
 
-# 0 "./alloc_free.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./alloc_free.ml"
 (* The following finds out for each file, how it does deallocation for each
 allocator *)
index be852a1..a9d8325 100644 (file)
  *)
 
 
-# 0 "./bridge.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./bridge.ml"
 let drop_spaces s =
   String.concat "" (Str.split (Str.regexp "[ ]+") s)
index fe86b91..c1781ba 100644 (file)
  *)
 
 
-# 0 "./dir_stats.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./dir_stats.ml"
 (* for each marked thing, how often does it occur and in what files and
 directories *)
index 8c6bcb8..3bd1728 100644 (file)
  *)
 
 
-# 0 "./dumper.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./dumper.ml"
 (* Dump an OCaml value into a printable string.
  * By Richard W.M. Jones (rich@annexia.org).
index 62d9f02..b639ec2 100644 (file)
  *)
 
 
-# 0 "./dumper.mli"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./dumper.mli"
 (* Dump an OCaml value into a printable string.
  * By Richard W.M. Jones (rich@annexia.org).
index def4627..21bcc09 100644 (file)
  *)
 
 
-# 0 "./extract_c_and_res.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./extract_c_and_res.ml"
 open Common
 
index 5c23907..82cd19c 100644 (file)
  *)
 
 
-# 0 "./generate_dependencies.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./generate_dependencies.ml"
 open Common
 
index b4044f9..69656a1 100644 (file)
  *)
 
 
-# 0 "./gitgrep.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./gitgrep.ml"
 (* adjust as convenient *)
 let prefix = "/tmp/"
index 244d515..01d5f70 100644 (file)
  *)
 
 
-# 0 "./gitsort.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./gitsort.ml"
 (* sort a list of git codes such that the most recent comes first *)
 
index d43f7dc..49f3ab0 100644 (file)
  *)
 
 
-# 0 "./licensify.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./licensify.ml"
 let lines =
 ["Copyright 2012, INRIA";
index 9cbf295..5c0601a 100644 (file)
  *)
 
 
-# 0 "./process_isoprofile.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./process_isoprofile.ml"
 (* This is for processing information created with the -profile_iso option.
 Runs are assumed separated with a line beginning with =.
index 20352fa..7774e4d 100644 (file)
  *)
 
 
-# 0 "./splitpatch.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./splitpatch.ml"
 (* split patch per file *)
 
index 61ffcbc..c3af3ae 100644 (file)
  *)
 
 
-# 0 "./spp.ml"
-(*
- * Copyright 2012, INRIA
- * Julia Lawall, Gilles Muller
- * Copyright 2010-2011, INRIA, University of Copenhagen
- * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
- * 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 <http://www.gnu.org/licenses/>.
- *
- * The authors reserve the right to distribute this or future versions of
- * Coccinelle under other licenses.
- *)
-
-
 # 0 "./spp.ml"
 open Common
 
diff --git a/version b/version
index 18fbab6..6187c95 100644 (file)
--- a/version
+++ b/version
@@ -1 +1 @@
-1.0.0-rc13
\ No newline at end of file
+1.0.0-rc14
\ No newline at end of file