[llvm-commits] CVS: llvm/test/Programs/MultiSource/Applications/kimwitu++/AUTHORS CHANGES COPYING Makefile README abs.cc abs.h config.h defs.h defs.hh error.cc error.h gen.cc gen.h getopt.h gutil.cc gutil.h k.cc k.h kimwl.cc kimwy.cc kimwy.h main.cc main.h occur.cc occur.h parse.cc parse.h pat.cc pat.h rk.cc rk.h unpk.cc unpk.h util.cc util.h yystype.h
John Criswell
criswell at cs.uiuc.edu
Tue Apr 6 15:26:41 PDT 2004
Changes in directory llvm/test/Programs/MultiSource/Applications/kimwitu++:
AUTHORS added (r1.1)
CHANGES added (r1.1)
COPYING added (r1.1)
Makefile added (r1.1)
README added (r1.1)
abs.cc added (r1.1)
abs.h added (r1.1)
config.h added (r1.1)
defs.h added (r1.1)
defs.hh added (r1.1)
error.cc added (r1.1)
error.h added (r1.1)
gen.cc added (r1.1)
gen.h added (r1.1)
getopt.h added (r1.1)
gutil.cc added (r1.1)
gutil.h added (r1.1)
k.cc added (r1.1)
k.h added (r1.1)
kimwl.cc added (r1.1)
kimwy.cc added (r1.1)
kimwy.h added (r1.1)
main.cc added (r1.1)
main.h added (r1.1)
occur.cc added (r1.1)
occur.h added (r1.1)
parse.cc added (r1.1)
parse.h added (r1.1)
pat.cc added (r1.1)
pat.h added (r1.1)
rk.cc added (r1.1)
rk.h added (r1.1)
unpk.cc added (r1.1)
unpk.h added (r1.1)
util.cc added (r1.1)
util.h added (r1.1)
yystype.h added (r1.1)
---
Log message:
Initial import of kimwitu++. This is based on version 2.3.8.
Kimwitu++ is analagous to a midterm exam for LLVM C++ programs. If LLVM
can handle kimwitu++, we're in pretty good shape.
---
Diffs of the changes: (+65971 -0)
Index: llvm/test/Programs/MultiSource/Applications/kimwitu++/AUTHORS
diff -c /dev/null llvm/test/Programs/MultiSource/Applications/kimwitu++/AUTHORS:1.1
*** /dev/null Tue Apr 6 15:25:25 2004
--- llvm/test/Programs/MultiSource/Applications/kimwitu++/AUTHORS Tue Apr 6 15:25:06 2004
***************
*** 0 ****
--- 1,13 ----
+ Authors of Kimwitu++.
+
+ Axel Belinfante <Axel.Belinfante at cs.utwente.nl>. Wrote the original
+ Kimwitu program.
+ The structure-file-io reading and writing code has been derived, in part,
+ from The Synthesizer Generator (tm), see the LICENSE file.
+
+ Michael Piefel <piefel at informatik.hu-berlin.de>. Derived Kimwitu++.
+
+ Various hacks and improvements written by Ralf Schröder <schroed2 at informatik.
+ hu-berlin.de>, Martin v. Löwis <loewis at informatik.hu-berlin.de>, Carsten
+ Dumke <carsten.dumke at gmx.net>, Gerd Kurzbach <kurzbach at iti.de>.
+
Index: llvm/test/Programs/MultiSource/Applications/kimwitu++/CHANGES
diff -c /dev/null llvm/test/Programs/MultiSource/Applications/kimwitu++/CHANGES:1.1
*** /dev/null Tue Apr 6 15:25:25 2004
--- llvm/test/Programs/MultiSource/Applications/kimwitu++/CHANGES Tue Apr 6 15:25:07 2004
***************
*** 0 ****
--- 1,129 ----
+ This is the list of user-visible changes in kimwitu++. Please see
+ src/ChangeLog for a more detailed list.
+
+ * Changes in kimwitu++ 2.3.7
+ ** new option --operator-cast to have an operator_cast<>() just like
+ phylum_cast<>() or dynamic_cast<>()
+ ** support for named subphyla for greater type safety
+
+ * Changes in kimwitu++ 2.3.6
+ ** new option -W allows greater control of warning levels
+ ** new option --rw-loop generates iterative rewrite algorithm (instead of
+ recursive) and greater control (or hacking)
+
+ * Changes in kimwitu++ 2.3.5
+ ** New options for error reporting format
+ ** Allow {con,de}structors for any class (but give warning)
+ ** Add options to morph line directives into comments
+
+ * Changes in kimwitu++ 2.3.1
+ ** Version number of generating Kimwitu++ goes into the generated code as
+ a number of #define's (KIMWITUVERSIONMAJOR, *MINOR, *MICRO)
+ ** Rename kc_.views to .views (should have happened before).
+ ** Added a virtual default_unparse method to have replaceable default
+ unparse behaviour. There is not yet a Kimwitu++ syntax extension for it.
+
+ * Changes in kimwitu++ 2.3.0
+ ** Change back the semantic of append to return the element for the list
+ where we insert the value.
+ ** This warrants a version number bump 3.0: Give warnings for overlapping
+ patterns in unparse, rewrite and with.
+ ** Support for g++ 3.2
+ ** --no-linedirec does not emit any line directives now.
+
+ * Changes in kimwitu++ 2.2.0
+ ** Removed the kc_ prefix in many places. There are some macros you can use
+ to get the old names, you just have to define DEPRECATED.
+ ** Renamed kc_tag_ to impl_; macros as above.
+ ** Changed language macros to is_language and set_language.
+
+ * Changes in kimwitu++ 2.1.4
+ ** Allow conversion operators in phyla.
+
+ * Changes in kimwitu++ 2.1.3
+ ** Lines can have arbitrary lengths now.
+
+ * Changes in kimwitu++ 2.1.2
+ ** User-defined member functions now possible for primitive phyla. This
+ is actually a bug fix, but since it never worked before it can be
+ considered a new feature.
+
+ * Changes in kimwitu++ 2.1.0
+ ** Some care is taken to allow unparsing of lists to be done iteratively
+ instead of recursively by default. Faster and leaner on stack space.
+ ** Some more lists in kimwitu++ itself unparsing iteratively even though not
+ using default unparsing. Now very large files can be processed.
+ ** If available, kimwitu++ now uses hash sets for storing casestrings. This can
+ speed up things dramatically. Use -DUSE_HASHSET while compiling k.cc
+
+ * Changes in kimwitu++ 2.0.3
+ ** Using getopt_long now, this make option parsing more robust
+
+ * Changes in kimwitu++ 2.0.2
+ ** Added terminator statement to attributeOf
+ ** Fixed some namespace-related bugs
+
+ * Changes in kimwitu++ 2.0.0
+ ** Brought Kimwitu++ in sync with Kimwitu 4.6
+ ** Added option --overwrite to always overwrite generated files, even if they
+ did not change
+ ** Renamed the fprintdotheader and fprintdotfooter functions into ...prologue
+ and ...epilogue, because these names better reflect their use
+
+ * Changes in kimwitu++ 1.3.12
+ ** Note: This really is not a step from 1.3.5, but rather one from 2.0; I just
+ missed the chance to change to 1.9999 earlier
+ ** Added option --yystype (generates YYSTYPE in yystype.h)
+ ** Changed CSGIO functions (read takes reference, both throw exceptions)
+ ** Keywords `%member' and `%attr';
+ the latter generates attributes which are handled by CSGIO
+ ** Keywords `%ctor' and `%dtor' (not really, they appeared in some
+ earlier version, but I forget which)
+ ** All in namespace kc
+ ** Keyword `%option' to specify fixed options in file instead of
+ on command line
+
+ * Changes in kimwitu++ 1.3.5
+ ** Added options --smart-pointer and --weak-pointer
+ ** Made rviews and uviews work the same way once more
+
+ * Changes in kimwitu++ 1.3.4
+ ** Changed a whole lot of type names for printer functions
+ ** Added real old-style printer function support
+
+ * Changes in kimwitu++ 1.3.3
+ ** Fixed old nullary operators bug
+
+ * Changes in kimwitu++ 1.3.2
+ ** Added keyword `provided'
+ ** made option `--verbose' work
+
+ * Changes in kimwitu++ 1.2.3
+ ** Prettied up print method
+
+ * Changes in kimwitu++ 1.2.1
+ ** Change kc_uviews::view to be a pointer type.
+
+ * Changes in kimwitu++ 1.2
+ ** Rename KC_UView and uview to uview_class and uview_enum;
+ introduce uview as uview_class &.
+ ** Change option names to use dashes instead of underscores.
+ ** Remove support for non-sharing CSGIO
+ (This was a feature to make kimwitu 4 compatible with earlier versions)
+ ** Add is_nil method to lists.
+
+ * Changes in kimwitu++ 1.1.1
+ ** Rename kc_view_count to kc_last_uview; add kc_last_rview.
+ ** Fix old kimwitu double-rewrite bug.
+
+ * Changes in kimwitu++ 1.1
+ ** Rename kc_view_names to kc_uviews
+ To access view objects, you can use the kc_uviews array.
+ ** The subphyla union has been removed;
+ the subphyla are now called <phylum>_<number>.
+ ** The KC_SUBPHYLUM data structurs have been removed;
+ access to subphyla is now possible via the subphylum method.
+ ** Lists now produce a single class only;
+ the Nillist is represented with two null subphyla.
+ ** Syntax for C++ operators and overloading is now recognized.
+
Index: llvm/test/Programs/MultiSource/Applications/kimwitu++/COPYING
diff -c /dev/null llvm/test/Programs/MultiSource/Applications/kimwitu++/COPYING:1.1
*** /dev/null Tue Apr 6 15:25:25 2004
--- llvm/test/Programs/MultiSource/Applications/kimwitu++/COPYING Tue Apr 6 15:25:07 2004
***************
*** 0 ****
--- 1,340 ----
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 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.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+ freedom to share and change it. By contrast, the GNU General Public
+ License is intended to guarantee your freedom to share and change free
+ software--to make sure the software is free for all its users. This
+ General Public License applies to most of the Free Software
+ Foundation's software and to any other program whose authors commit to
+ using it. (Some other Free Software Foundation software is covered by
+ the GNU Library General Public License instead.) You can apply it to
+ your programs, too.
+
+ When we speak of free software, we are referring to freedom, 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 or use pieces of it
+ in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+ anyone to deny you these rights or to ask you to surrender the rights.
+ These restrictions translate to certain responsibilities for you if you
+ distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+ gratis or for a fee, you must give the recipients all the rights that
+ you have. You must make sure that they, too, receive or can get the
+ source code. And you must show them these terms so they know their
+ rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+ (2) offer you this license which gives you legal permission to copy,
+ distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+ that everyone understands that there is no warranty for this free
+ software. If the software is modified by someone else and passed on, we
+ want its recipients to know that what they have is not the original, so
+ that any problems introduced by others will not reflect on the original
+ authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+ patents. We wish to avoid the danger that redistributors of a free
+ program will individually obtain patent licenses, in effect making the
+ program proprietary. To prevent this, we have made it clear that any
+ patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+ modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+ a notice placed by the copyright holder saying it may be distributed
+ under the terms of this General Public License. The "Program", below,
+ refers to any such program or work, and a "work based on the Program"
+ means either the Program or any derivative work under copyright law:
+ that is to say, a work containing the Program or a portion of it,
+ either verbatim or with modifications and/or translated into another
+ language. (Hereinafter, translation is included without limitation in
+ the term "modification".) Each licensee is addressed as "you".
+
+ Activities other than copying, distribution and modification are not
+ covered by this License; they are outside its scope. The act of
+ running the Program is not restricted, and the output from the Program
+ is covered only if its contents constitute a work based on the
+ Program (independent of having been made by running the Program).
+ Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+ 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 give any other recipients of the Program a copy of this License
+ along with the Program.
+
+ 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.
+
+ 2. You may modify your copy or copies of the Program or any portion
+ of it, thus forming a work based on the Program, 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) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+ These requirements apply to the modified work as a whole. If
+ identifiable sections of that work are not derived from the Program,
+ 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 Program, 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 Program.
+
+ In addition, mere aggregation of another work not based on the Program
+ with the Program (or with a work based on the Program) on a volume of
+ a storage or distribution medium does not bring the other work under
+ the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+ under Section 2) in object code or executable form under the terms of
+ Sections 1 and 2 above provided that you also do one of the following:
+
+ a) 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; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+ The source code for a work means the preferred form of the work for
+ making modifications to it. For an executable work, 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 executable. However, as a
+ special exception, the source code 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.
+
+ If distribution of executable or 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 counts as
+ distribution of the source code, even though third parties are not
+ compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+ except as expressly provided under this License. Any attempt
+ otherwise to copy, modify, sublicense or distribute the Program 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.
+
+ 5. 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 Program or its derivative works. These actions are
+ prohibited by law if you do not accept this License. Therefore, by
+ modifying or distributing the Program (or any work based on the
+ Program), you indicate your acceptance of this License to do so, and
+ all its terms and conditions for copying, distributing or modifying
+ the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+ Program), the recipient automatically receives a license from the
+ original licensor to copy, distribute or modify the Program 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 to
+ this License.
+
+ 7. 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 Program at all. For example, if a patent
+ license would not permit royalty-free redistribution of the Program 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 Program.
+
+ 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.
+
+ 8. If the distribution and/or use of the Program is restricted in
+ certain countries either by patents or by copyrighted interfaces, the
+ original copyright holder who places the Program 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.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+ of the 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 Program
+ 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 Program does not specify a version number of
+ this License, you may choose any version ever published by the Free Software
+ Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+ programs whose distribution conditions are different, 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
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+ PROVIDE THE PROGRAM "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 PROGRAM IS WITH YOU. SHOULD THE
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+ REPAIR OR CORRECTION.
+
+ 12. 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 PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+ possible use to the public, the best way to achieve this is to make it
+ free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. 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 program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; 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.
+
+ If the program is interactive, make it output a short notice like this
+ when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+ The hypothetical commands `show w' and `show c' should show the appropriate
+ parts of the General Public License. Of course, the commands you use may
+ be called something other than `show w' and `show c'; they could even be
+ mouse-clicks or menu items--whatever suits your program.
+
+ You should also get your employer (if you work as a programmer) or your
+ school, if any, to sign a "copyright disclaimer" for the program, if
+ necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+ This General Public License does not permit incorporating your program into
+ proprietary programs. If your program is a subroutine library, you may
+ consider it more useful to permit linking proprietary applications with the
+ library. If this is what you want to do, use the GNU Library General
+ Public License instead of this License.
Index: llvm/test/Programs/MultiSource/Applications/kimwitu++/Makefile
diff -c /dev/null llvm/test/Programs/MultiSource/Applications/kimwitu++/Makefile:1.1
*** /dev/null Tue Apr 6 15:25:25 2004
--- llvm/test/Programs/MultiSource/Applications/kimwitu++/Makefile Tue Apr 6 15:25:07 2004
***************
*** 0 ****
--- 1,7 ----
+ LEVEL = ../../../../..
+ PROG = kc
+ CPPFLAGS=-I$(BUILD_SRC_DIR) -DYYDEBUG=1
+ LDFLAGS = -lstdc++
+ LIBS += -lstdc++
+ RUN_OPTIONS = -o -v $(BUILD_SRC_DIR)/inputs/rpn.k $(BUILD_SRC_DIR)/inputs/main.k $(BUILD_SRC_DIR)/inputs/abs.k
+ include ../../Makefile.multisrc
Index: llvm/test/Programs/MultiSource/Applications/kimwitu++/README
diff -c /dev/null llvm/test/Programs/MultiSource/Applications/kimwitu++/README:1.1
*** /dev/null Tue Apr 6 15:25:25 2004
--- llvm/test/Programs/MultiSource/Applications/kimwitu++/README Tue Apr 6 15:25:07 2004
***************
*** 0 ****
--- 1,105 ----
+ =--------------
+ =
+ = The Term Processor Kimwitu++
+ =
+ =--------------
+
+
+ Kimwitu++ is a system that supports the construction of programs that use
+ trees or terms as their main data structure.
+ For the Kimwitu++ web site (including newest version) have a look at
+ its homepage on http://site.informatik.hu-berlin.de/kimwitu++.
+ Kimwitu++ is derived from Kimwitu 4.4, see http://purl.oclc.org/net/kimwitu.
+
+
+
+ How is this distribution structured?
+
+ Sources:
+ src/*
+ src/Gen.boot/*
+
+ The Term Processor was made using itself.
+ The src directory contains the `real' *.k (Kimwitu++ input) sources.
+ The src/Gen.boot directory contains the *.{h,cc} kc++-generated files
+ that you need to bootstrap it.
+ A src/Gen.* directory, where * is your target architecture, will be
+ created while kc++ is being made. It will contain (links to) the
+ kc-generated files used for boot-strapping, the compiled .o files
+ and the linked binary executable kc++.
+
+ Manual:
+ man/man/kc++.1
+
+ Tells you all you need to know to invoke kc++ (Kimwitu++).
+
+ Documentation:
+ doc/*
+
+ The documentation is not yet avaiable. You can use the documentation
+ for Kimwitu instead, using a short kc->kc++ transition guide.
+
+
+ How do I install Kimwitu?
+
+ Please refer to INSTALL.
+
+
+ Which architectures are supported?
+
+ Kimwitu++ just reads and writes text files, in principle it should run
+ on any architecture you can think of.
+ Development is done mainly on Solaris and GNU/Linux, these will be supported
+ best. Probably also Windows NT.
+
+
+ Do I need a running Kimwitu++ to install Kimwitu++?
+
+ No, you don't. src directory contains everything needed to bootstrap
+ Kimwitu++.
+
+
+ Why do you bother me with all this non-sense about bootstrapping and all?
+
+ If you ever need to apply a patch, you will need to know how to change
+ Kimwitu++, and you will need the `real' *.k sources of Kimwitu++, not the
+ generated *.{h,cc} stuff in src.
+
+
+ How do I make changes in Kimwitu++?
+
+ You don't want to. You ask us to change Kimwitu++ if you find anything that
+ needs to be changed.
+
+ But, if you need to change anything in the sources of Kimwitu++, you should
+ make your change in the src directory, *not* in the Gen.* directory, because
+ the contents of that directory will be overwritten during the making of the
+ new Kimwitu++.
+ Note that in this case you will *need* a running Kimwitu++ to build the new
+ one. After making your changes, execute `make' or `make s1' in the src
+ directory. If everything is ok, you will find a new binary src/Gen.*/kc++_s1.
+
+
+ Who should I contact if I find anything that needs to be changed?
+ (Or have other questions related to Kimwitu++.)
+
+ For original Kimwitu it is:
+ Axel Belinfante <belinfan at cs.utwente.nl> tel. +31/53 4893774
+ You can contact me for any question related to Kimwitu.
+
+ For Kimwitu++, please contact:
+ Martin von Löwis <loewis at informatik.hu-berlin.de> or
+ Michael Piefel <piefel at informatik.hu-berlin.de>,
+ both from Humboldt-University, Berlin
+
+
+ What is the licence?
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the Licence, or
+ (at your option) any later version.
+ Please refer to the file GPL containing the GNU General Public License in
+ version 2. The terms of the licence allow the development of commercial
+ software with Kimwitu++.
+
Index: llvm/test/Programs/MultiSource/Applications/kimwitu++/abs.cc
diff -c /dev/null llvm/test/Programs/MultiSource/Applications/kimwitu++/abs.cc:1.1
*** /dev/null Tue Apr 6 15:25:25 2004
--- llvm/test/Programs/MultiSource/Applications/kimwitu++/abs.cc Tue Apr 6 15:25:07 2004
***************
*** 0 ****
--- 1,54 ----
+ /* translation of file "abs.k" */
+ /* generated by:
+ * @(#)$Author: criswell $
+ */
+ #define KC_FUNCTIONS_abs_
+
+ #include <stdlib.h>
+ #include "k.h"
+ #include "abs.h"
+ namespace kc { }
+ using namespace kc;
+ /* included stuff */
+ //
+ // The Termprocessor Kimwitu++
+ //
+ // Copyright (C) 1991 University of Twente, Dept TIOS.
+ // Copyright (C) 1998-2003 Humboldt-University of Berlin, Institute of Informatics
+ // All rights reserved.
+ //
+ // Kimwitu++ is free software; you can redistribute it and/or modify
+ // it under the terms of the GNU General Public License as published by
+ // the Free Software Foundation; either version 2 of the License, or
+ // (at your option) any later version.
+ //
+ // Kimwitu++ is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ // GNU General Public License for more details.
+ //
+ // You should have received a copy of the GNU General Public License
+ // along with Kimwitu++; if not, write to the Free Software
+ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ //
+
+ static char abs_kAccesSid[] = "@(#)$Id: abs.cc,v 1.1 2004/04/06 20:25:07 criswell Exp $";
+
+ /* end included stuff */
+
+
+ namespace kc {
+
+ #ifndef KC_TRACE_PROVIDED
+ #define KC_TRACE_PROVIDED(COND,FILE,LINE,NODE) COND
+ #endif
+
+ impl_fileline_FileLine::impl_fileline_FileLine(casestring _file, int _line)
+ {
+ file = (_file!=0) ? _file : mkcasestring("");
+ line=_line;
+
+ }
+
+
+ } // namespace kc
Index: llvm/test/Programs/MultiSource/Applications/kimwitu++/abs.h
diff -c /dev/null llvm/test/Programs/MultiSource/Applications/kimwitu++/abs.h:1.1
*** /dev/null Tue Apr 6 15:25:25 2004
--- llvm/test/Programs/MultiSource/Applications/kimwitu++/abs.h Tue Apr 6 15:25:07 2004
***************
*** 0 ****
--- 1,42 ----
+ /* translation of file "abs.k" */
+ /* generated by:
+ * @(#)$Author: criswell $
+ */
+ #ifndef KC_FUNCTIONS_abs_HEADER
+ #define KC_FUNCTIONS_abs_HEADER
+ #include "k.h" /* in case a user forgets */
+
+ namespace kc { }
+ using namespace kc;
+ /* included stuff */
+ //
+ // The Termprocessor Kimwitu++
+ //
+ // Copyright (C) 1991 University of Twente, Dept TIOS.
+ // Copyright (C) 1998-2003 Humboldt-University of Berlin, Institute of Informatics
+ // All rights reserved.
+ //
+ // Kimwitu++ is free software; you can redistribute it and/or modify
+ // it under the terms of the GNU General Public License as published by
+ // the Free Software Foundation; either version 2 of the License, or
+ // (at your option) any later version.
+ //
+ // Kimwitu++ is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ // GNU General Public License for more details.
+ //
+ // You should have received a copy of the GNU General Public License
+ // along with Kimwitu++; if not, write to the Free Software
+ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ //
+
+ /* end included stuff */
+
+
+ namespace kc {
+
+ } // namespace kc
+
+ #endif // ! KC_FUNCTIONS_abs_HEADER
+
Index: llvm/test/Programs/MultiSource/Applications/kimwitu++/config.h
diff -c /dev/null llvm/test/Programs/MultiSource/Applications/kimwitu++/config.h:1.1
*** /dev/null Tue Apr 6 15:25:25 2004
--- llvm/test/Programs/MultiSource/Applications/kimwitu++/config.h Tue Apr 6 15:25:07 2004
***************
*** 0 ****
--- 1,69 ----
+ /* src/config.h. Generated by configure. */
+ /* src/config.h.in. Generated from configure.ac by autoheader. */
+
+ /* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
+ #define HAVE_DOPRNT 1
+
+ /* Define to 1 if you have the <ext/hash_set> header file. */
+ #define HAVE_EXT_HASH_SET 1
+
+ /* Define to 1 if you have the <hash_set> header file. */
+ /* #undef HAVE_HASH_SET */
+
+ /* Define to 1 if you have the <inttypes.h> header file. */
+ #define HAVE_INTTYPES_H 1
+
+ /* Define to 1 if you have the <memory.h> header file. */
+ #define HAVE_MEMORY_H 1
+
+ /* Define to 1 if you have the <stdint.h> header file. */
+ #define HAVE_STDINT_H 1
+
+ /* Define to 1 if you have the <stdlib.h> header file. */
+ #define HAVE_STDLIB_H 1
+
+ /* Define to 1 if you have the <strings.h> header file. */
+ #define HAVE_STRINGS_H 1
+
+ /* Define to 1 if you have the <string.h> header file. */
+ #define HAVE_STRING_H 1
+
+ /* Define to 1 if you have the <sys/stat.h> header file. */
+ #define HAVE_SYS_STAT_H 1
+
+ /* Define to 1 if you have the <sys/types.h> header file. */
+ #define HAVE_SYS_TYPES_H 1
+
+ /* Define to 1 if you have the <unistd.h> header file. */
+ #define HAVE_UNISTD_H 1
+
+ /* Define to 1 if you have the `vprintf' function. */
+ #define HAVE_VPRINTF 1
+
+ /* Define if your Python's _tkinter is builtin */
+ /* #undef NEED_TKINTER */
+
+ /* Define to the address where bug reports for this package should be sent. */
+ #define PACKAGE_BUGREPORT "piefel at informatik.hu-berlin.de"
+
+ /* Define to the full name of this package. */
+ #define PACKAGE_NAME "Kimwitu++"
+
+ /* Define to the full name and version of this package. */
+ #define PACKAGE_STRING "Kimwitu++ 2.3.8"
+
+ /* Define to the one symbol short name of this package. */
+ #define PACKAGE_TARNAME "kimwitu++"
+
+ /* Define to the version of this package. */
+ #define PACKAGE_VERSION "2.3.8"
+
+ /* Define as the return type of signal handlers (`int' or `void'). */
+ #define RETSIGTYPE void
+
+ /* Define to 1 if you have the ANSI C header files. */
+ #define STDC_HEADERS 1
+
+ /* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
+ `char[]'. */
+ #define YYTEXT_POINTER 1
Index: llvm/test/Programs/MultiSource/Applications/kimwitu++/defs.h
diff -c /dev/null llvm/test/Programs/MultiSource/Applications/kimwitu++/defs.h:1.1
*** /dev/null Tue Apr 6 15:25:25 2004
--- llvm/test/Programs/MultiSource/Applications/kimwitu++/defs.h Tue Apr 6 15:25:07 2004
***************
*** 0 ****
--- 1,11 ----
+ /* this file is automatically generated by 'make'; do not edit! */
+ #ifndef DEFS_H
+ # define RCSMAKEID "@(#)$Id: defs.h,v 1.1 2004/04/06 20:25:07 criswell Exp $"
+ # define KIMWITUCOPYRIGHT "@(#)$Author: criswell $"
+ # define KC_USE_STAT
+ # define KIMWITURELEASE "@(#)RELEASE VERSION 2.3.8"
+ # define KIMWITUVERSIONSTRING "2.3.8"
+ # define METAKIMWITUVERSIONMAJOR 2
+ # define METAKIMWITUVERSIONMINOR 3
+ # define METAKIMWITUVERSIONMICRO 8
+ #endif /* DEFS_H */
Index: llvm/test/Programs/MultiSource/Applications/kimwitu++/defs.hh
diff -c /dev/null llvm/test/Programs/MultiSource/Applications/kimwitu++/defs.hh:1.1
*** /dev/null Tue Apr 6 15:25:25 2004
--- llvm/test/Programs/MultiSource/Applications/kimwitu++/defs.hh Tue Apr 6 15:25:07 2004
***************
*** 0 ****
--- 1,11 ----
+ /* this file is automatically generated by 'make'; do not edit! */
+ #ifndef DEFS_H
+ # define RCSMAKEID "@(#)$Id: defs.hh,v 1.1 2004/04/06 20:25:07 criswell Exp $"
+ # define KIMWITUCOPYRIGHT "@(#)$Author: criswell $"
+ # define KC_USE_STAT
+ # define KIMWITURELEASE "@(#)RELEASE VERSION 2.3.8"
+ # define KIMWITUVERSIONSTRING "2.3.8"
+ # define METAKIMWITUVERSIONMAJOR 2
+ # define METAKIMWITUVERSIONMINOR 3
+ # define METAKIMWITUVERSIONMICRO 8
+ #endif /* DEFS_H */
Index: llvm/test/Programs/MultiSource/Applications/kimwitu++/error.cc
diff -c /dev/null llvm/test/Programs/MultiSource/Applications/kimwitu++/error.cc:1.1
*** /dev/null Tue Apr 6 15:25:26 2004
--- llvm/test/Programs/MultiSource/Applications/kimwitu++/error.cc Tue Apr 6 15:25:10 2004
***************
*** 0 ****
--- 1,427 ----
+ /* translation of file "error.k" */
+ /* generated by:
+ * @(#)$Author: criswell $
+ */
+ #define KC_FUNCTIONS_error_
+
+ #include <stdlib.h>
+ #include "k.h"
+ #include "error.h"
+ namespace kc { }
+ using namespace kc;
+ /* included stuff */
+ //
+ // The Termprocessor Kimwitu++
+ //
+ // Copyright (C) 1991 University of Twente, Dept TIOS.
+ // Copyright (C) 1998-2003 Humboldt-University of Berlin, Institute of Informatics
+ // All rights reserved.
+ //
+ // Kimwitu++ is free software; you can redistribute it and/or modify
+ // it under the terms of the GNU General Public License as published by
+ // the Free Software Foundation; either version 2 of the License, or
+ // (at your option) any later version.
+ //
+ // Kimwitu++ is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ // GNU General Public License for more details.
+ //
+ // You should have received a copy of the GNU General Public License
+ // along with Kimwitu++; if not, write to the Free Software
+ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ //
+
+ static char error_kAccesSid[] = "@(#)$Id: error.cc,v 1.1 2004/04/06 20:25:10 criswell Exp $";
+
+ bool gp_no_fatal_problems;
+
+ #define QUOTEDBACKSLASH '\\'
+
+ #ifndef KC_MAX_STRING_LEN
+ # define KC_MAX_STRING_LEN 200
+ #endif /* !KC_MAX_STRING_LEN */
+
+ viewnameoption ug_viewnameopt;
+
+ int kc_filePrinter::indent_level = 4;
+ kc_filePrinter::kc_filePrinter(FILE* f):file(f)
+ {
+ lineno=0;
+ no_of_printed_string_chars=0;
+ doit=false;
+ lastChar='\n';
+ indent=0;
+ bs_cnt=0;
+ inString=false;
+ inChar=false;
+ inComment=false;
+ inCppComment=false;
+ spacePending=false;
+ beginOfLine = false;
+ keyword=0;
+ indentKeyword=false;
+ inPreProStmt=false;
+ }
+
+ kc_filePrinter v_stdout_printer(stdout);
+ kc_filePrinter v_hfile_printer;
+ kc_filePrinter v_ccfile_printer;
+ printer_functor_class v_null_printer;
+
+ bool kc_filePrinter::check_keyword(const char* s)
+ {
+ bool res=false;
+ if(inPreProStmt) { // just to ignore #if and #else
+ if(!isspace(*s))
+ inPreProStmt=false;
+ }
+ else if(!keyword) {
+ if(*s=='#')
+ inPreProStmt=true;
+ else if(*s=='i' || *s=='e' || *s=='d' || *s=='w') // 'if', 'else', 'do', 'while'
+ keyword=s; // 'for' not supported yet
+ }
+ else if(!isalnum(*s) && *s!='_') { // end of identifier
+ ptrdiff_t length=s-keyword;
+ if(
+ (length==2 && strncmp(keyword,"if",length)==0) ||
+ (length==4 && strncmp(keyword,"else",length)==0) ||
+ (length==2 && strncmp(keyword,"do",length)==0) ||
+ (length==5 && strncmp(keyword,"while",length)==0))
+ res=true; // keyword found
+ keyword=0;
+ }
+ return res;
+ }
+
+ void kc_filePrinter::operator()(const char *s, uview v)
+ {
+ char c;
+
+ assertCond(file != 0);
+
+ switch(v) {
+ case view_no_of_printed_string_chars_reset_enum:
+ no_of_printed_string_chars = 0;
+ break;
+ case view_printer_outputfileline_enum:
+ fprintf( file, "\n" ); lineno = lineno +1;
+ if(g_options.linedirec)
+ fprintf( file, "%s %d \"%s%s\"\n", pg_line, lineno+1, g_options.dir_line.c_str(),filename.c_str() );
+ lineno = lineno +1;
+ lastChar='\n';
+ break;
+ default:
+ while((c=*s++)) {
+ switch( c ) {
+ case '\0': return;
+ case '\n':
+ /* if (*s == QUOTEDBACKSLASH) s++; */
+ lineno = lineno +1;
+ beginOfLine = true;
+ /* FALLTHROUGH */
+ default:
+ if (v == view_gen_unpstr_c) {
+ if (no_of_printed_string_chars >= KC_MAX_STRING_LEN) {
+ if (doit) {
+ fprintf( file, "\"), " );
+ ug_viewnameopt->unparse( *this, view_gen_unparsedefs_other_c );
+ fprintf( file, " );\n kc_printer(kc_t(\"" );
+ lineno = lineno +1;
+ no_of_printed_string_chars = 0;
+ doit = false;
+ } else {
+ switch( c ) {
+ case '\\':
+ case '\n':
+ break;
+ default:
+ doit = true;
+ }
+ }
+ }
+ no_of_printed_string_chars = no_of_printed_string_chars +1;
+ } else if (v == view_filename) {
+ /* duplicate (= escape) backslashes in file names.
+ * we do this to help those that work on windows etc.
+ */
+ if (c == QUOTEDBACKSLASH) { /* we have to quote it! */
+ putc( c, file );
+ }
+ }
+ if(inString) {
+ if(c=='"' && bs_cnt%2==0)
+ inString=false;
+ putc( c, file );
+ lastChar=c;
+ }
+ else if(inChar) {
+ if(c=='\'' && bs_cnt%2==0)
+ inChar=false;
+ putc( c, file );
+ lastChar=c;
+ }
+ else if(inComment) {
+ if(c=='/' && lastChar=='*')
+ inComment=false; /* C comments */
+ switch(c) {
+ case '\v': case '\r': case '\b': break;
+ default:
+ putc( c, file );
+ lastChar=c;
+ }
+ }
+ else if(inCppComment) {
+ if(c=='\n')
+ inCppComment=false; /* C++ comments */
+ switch(c) {
+ case '\v': case '\r': case '\b': break;
+ default:
+ putc( c, file );
+ lastChar=c;
+ }
+ }
+ else {
+ int indent_offset=0;
+ if(!indentKeyword) {
+ indentKeyword=check_keyword(s-1);
+ if(indentKeyword)
+ ++indent;
+ }
+ switch(c) {
+ case ';':
+ if(indentKeyword) {
+ --indent;
+ indentKeyword=false;
+ }
+ goto default_case;
+ case '{':
+ if(indentKeyword) {
+ --indent;
+ indentKeyword=false;
+ }
+ // no break
+ case '(':
+ indent_offset=1;
+ goto default_case;
+ case '\v':
+ ++indent;
+ break;
+ case '}':
+ case ')':
+ if(indent) --indent;
+ goto default_case;
+ case '\r':
+ if(indent) --indent;
+ break;
+ case '\b':
+ lastChar=c;
+ break;
+ case ' ':
+ case '\t':
+ if(lastChar=='\b' || !beginOfLine)
+ goto default_case;
+ if(isspace(lastChar))
+ break;
+ if(isalnum(lastChar) || lastChar=='_' || lastChar=='"' || lastChar=='\'' || lastChar==')' || lastChar=='}') {
+ if(isalnum(*(s+1))|| *(s+1)=='_'|| *(s+1)=='"' || *(s+1)=='\'') {
+ c=' ';
+ goto default_case;
+ }
+ spacePending=true;
+ }
+ break;
+ default:
+ default_case:
+ if(lastChar=='\n' && c!='\n' && c!='#') {
+ for(int i=indent*indent_level;i>0;)
+ if(i>=8) {
+ putc('\t',file);
+ i-=8;
+ } else {
+ for(int k=0;k<i;k++)
+ putc(' ',file);
+ i=0;
+ }
+ }
+ if(!isspace(c))
+ beginOfLine = false;
+ if(c=='"' && bs_cnt%2==0)
+ inString=true;
+ else if(c=='\'' && bs_cnt%2==0)
+ inChar=true;
+ else if(c=='/' && lastChar=='/')
+ inCppComment=true; /* C++ comments */
+ else if(c=='*' && lastChar=='/')
+ inComment=true; /* C comments */
+ if(spacePending) {
+ if(isalnum(c)|| c=='_' || c=='"' || c=='\'')
+ putc( ' ', file );
+ spacePending=false;
+ }
+ putc( c, file );
+ lastChar=c;
+ indent+=indent_offset;
+ }
+ }
+ if(c=='\\')
+ ++bs_cnt;
+ else
+ bs_cnt=0;
+ }
+ }
+ keyword=0; // no keyword check between different strings
+ }
+ }
+
+ void kc_filePrinter::init(const char *name, const char *mode, const string &_filename)
+ {
+ file=fopen(name, mode);
+ if (file==0) v_report( Fatal( NoFileLine(), Problem4S( "cannot create temporary ", _filename.c_str(), " file:", name )));
+ lineno = 1;
+ filename = _filename;
+ lastChar='\n';
+ indent=0;
+ inString=false;
+ inComment=false;
+ inCppComment=false;
+ spacePending=false;
+ beginOfLine=false;
+ }
+
+
+
+ /* end included stuff */
+
+
+ namespace kc {
+
+ #ifndef KC_TRACE_PROVIDED
+ #define KC_TRACE_PROVIDED(COND,FILE,LINE,NODE) COND
+ #endif
+
+ static void v_stderr_printer (const char *s, uview v);
+ problem Problem1S(const char *s1)
+ {
+ return Problem1( mkcasestring( s1 ));
+
+ }
+
+ problem Problem1S1we(const char *s1, withexpression we)
+ {
+ return Problem1we( mkcasestring( s1 ), we );
+
+ }
+
+ problem Problem1S1ID(const char *s1, ID id)
+ {
+ return Problem1ID( mkcasestring( s1 ), id );
+
+ }
+
+ problem Problem1S1tID(const char *s1, ID id)
+ {
+ return Problem1tID( mkcasestring( s1 ), id );
+
+ }
+
+ problem Problem1S1ID1S1ID(const char *s1, ID id1, const char *s2, ID id2)
+ {
+ return Problem1ID1ID( mkcasestring( s1 ), id1, mkcasestring( s2 ), id2 );
+
+ }
+
+ problem Problem1S1t1S1ID(const char *s1, IDtype id1, const char *s2, ID id2)
+ {
+ return Problem1t1ID( mkcasestring( s1 ), id1, mkcasestring( s2 ), id2 );
+
+ }
+
+ problem Problem1S1INT(const char *s1, INT i1)
+ {
+ return Problem1INT( mkcasestring( s1 ), i1 );
+
+ }
+
+ problem Problem1S1int1S(const char *s1, int i1, const char *s2)
+ {
+ return Problem1int1( mkcasestring( s1 ), mkinteger(i1), mkcasestring( s2 ) );
+
+ }
+
+ problem Problem1S1INT1S1ID(const char *s1, INT i1, const char *s2, ID id2)
+ {
+ return Problem1INT1ID( mkcasestring( s1 ), i1, mkcasestring( s2 ), id2 );
+
+ }
+
+ problem Problem1S1ID1S1ID1S1ID(const char *s1, ID id1, const char *s2, ID id2, const char *s3, ID id3)
+ {
+ return Problem1ID1ID1ID( mkcasestring( s1 ), id1, mkcasestring( s2 ), id2, mkcasestring( s3 ), id3 );
+
+ }
+
+ problem Problem1S1INT1S1ID1S1ID(const char *s1, INT i1, const char *s2, ID id2, const char *s3, ID id3)
+ {
+ return Problem1INT1ID1ID( mkcasestring( s1 ), i1, mkcasestring( s2 ), id2, mkcasestring( s3 ), id3 );
+
+ }
+
+ problem Problem1S1storageoption1S1ID(const char *s1, storageoption so, const char *s2, ID id)
+ {
+ return Problem1storageoption1ID( mkcasestring( s1 ), so, mkcasestring( s2 ), id );
+
+ }
+
+ problem Problem2S(const char *s1, const char *s2)
+ {
+ return Problem2( mkcasestring( s1 ), mkcasestring( s2 ));
+
+ }
+
+ problem ProblemSC(const char *s1, casestring s2)
+ {
+ return Problem2( mkcasestring( s1 ), s2 );
+
+ }
+
+ problem Problem3S(const char *s1, const char *s2, const char *s3)
+ {
+ return Problem3( mkcasestring( s1 ), mkcasestring( s2 ), mkcasestring( s3 ));
+
+ }
+
+ problem Problem4S(const char *s1, const char *s2, const char *s3, const char *s4)
+ {
+ return Problem4( mkcasestring( s1 ), mkcasestring( s2 ), mkcasestring( s3 ), mkcasestring( s4 ) );
+
+ }
+
+ problem Problem3S1int1S(const char *s1, const char *s2, const char *s3, int i1, const char *s4)
+ {
+ return Problem3int1( mkcasestring( s1 ), mkcasestring( s2 ), mkcasestring( s3 ), mkinteger(i1), mkcasestring( s4 ) );
+
+ }
+
+ void v_report(error e)
+ {
+ if(g_options.msg_format.length()) {
+ view_error_format_class v(g_options.msg_format);
+ e->unparse( v_stderr_printer, v );
+ }
+ else
+ e->unparse( v_stderr_printer, view_error );
+
+ }
+
+ static void v_stderr_printer(const char *s, uview v)
+ {
+ fflush( stdout );
+ fprintf( stderr, "%s", s );
+ fflush( stderr );
+
+ }
+
+
+ } // namespace kc
Index: llvm/test/Programs/MultiSource/Applications/kimwitu++/error.h
diff -c /dev/null llvm/test/Programs/MultiSource/Applications/kimwitu++/error.h:1.1
*** /dev/null Tue Apr 6 15:25:26 2004
--- llvm/test/Programs/MultiSource/Applications/kimwitu++/error.h Tue Apr 6 15:25:10 2004
***************
*** 0 ****
--- 1,163 ----
+ /* translation of file "error.k" */
+ /* generated by:
+ * @(#)$Author: criswell $
+ */
+ #ifndef KC_FUNCTIONS_error_HEADER
+ #define KC_FUNCTIONS_error_HEADER
+ #include "k.h" /* in case a user forgets */
+
+ namespace kc { }
+ using namespace kc;
+ /* included stuff */
+ //
+ // The Termprocessor Kimwitu++
+ //
+ // Copyright (C) 1991 University of Twente, Dept TIOS.
+ // Copyright (C) 1998-2003 Humboldt-University of Berlin, Institute of Informatics
+ // All rights reserved.
+ //
+ // Kimwitu++ is free software; you can redistribute it and/or modify
+ // it under the terms of the GNU General Public License as published by
+ // the Free Software Foundation; either version 2 of the License, or
+ // (at your option) any later version.
+ //
+ // Kimwitu++ is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ // GNU General Public License for more details.
+ //
+ // You should have received a copy of the GNU General Public License
+ // along with Kimwitu++; if not, write to the Free Software
+ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ //
+
+ #include "unpk.h" /* for the definition of uview and printer_functor_class */
+ extern bool gp_no_fatal_problems;
+ #include <cctype>
+ #include <string>
+ using std::string;
+
+ // Cater for broken compilers (eg. MacOS gcc)
+ #ifndef isalpha
+ using std::isalpha;
+ using std::isalnum;
+ #endif
+
+
+ #include <unistd.h>
+
+ namespace kc {
+
+ class view_error_format_class : public view_error_format_baseclass {
+ public:
+ view_error_format_class(const std::string& fmt): msg(fmt) { }
+
+ void program(const char* p) { replace("%p",p); }
+ void file(const char* f) { replace("%f",f); }
+ void line(INTEGER l) {
+ char buf[30];
+ sprintf(buf,"%d",l);
+ replace("%l",buf);
+ }
+ void column(INTEGER c) {
+ char buf[30];
+ sprintf(buf,"%d",c);
+ replace("%c",buf);
+ }
+ void severity(const char* s) { replace("%s",s); }
+
+ const char* get_msg() {
+ // discard unused patterns
+ program("");
+ file("");
+ replace("%l","");
+ replace("%c","");
+ char* buf;
+ replace("%d",buf=getcwd(NULL,0)); // current directory
+ free(buf);
+ severity("");
+ return msg.c_str();
+ }
+
+ void replace(const char* s1, const char* s2) {
+ std::string::size_type pos;
+ while((pos=msg.find(s1)) != std::string::npos) {
+ msg.replace(pos,strlen(s1),s2);
+ }
+ }
+ private:
+ std::string msg;
+ };
+
+ }
+
+
+ class kc_filePrinter : public printer_functor_class {
+ public:
+ kc_filePrinter(FILE *f=0);
+ virtual void operator()(const char* s, uview v);
+ int fclose()
+ {
+ int temp=0;
+ if (file)
+ temp=::fclose(file);
+ file=0;
+ return temp;
+ }
+ void init(const char *name, const char *mode, const string &type);
+ bool check_keyword(const char*);
+ FILE *destination() { return file; }
+ private:
+ FILE *file;
+ int lineno;
+ string filename;
+ int no_of_printed_string_chars; /* to split long double-quoted strings */
+ bool doit;
+ char lastChar;
+ int indent;
+ int bs_cnt;
+ bool inString;
+ bool inChar;
+ bool inComment;
+ bool inCppComment;
+ bool spacePending;
+ bool beginOfLine;
+ const char* keyword;
+ bool indentKeyword;
+ bool inPreProStmt;
+ static int indent_level;
+ };
+
+ extern kc_filePrinter v_stdout_printer;
+ extern kc_filePrinter v_hfile_printer;
+ extern kc_filePrinter v_ccfile_printer;
+ extern printer_functor_class v_null_printer;
+
+
+ /* end included stuff */
+
+
+ namespace kc {
+ problem Problem1S (const char *s1);
+ problem Problem1S1we (const char *s1, withexpression we);
+ problem Problem1S1ID (const char *s1, ID id);
+ problem Problem1S1tID (const char *s1, ID id);
+ problem Problem1S1ID1S1ID (const char *s1, ID id1, const char *s2, ID id2);
+ problem Problem1S1t1S1ID (const char *s1, IDtype id1, const char *s2, ID id2);
+ problem Problem1S1INT (const char *s1, INT i1);
+ problem Problem1S1int1S (const char *s1, int i1, const char *s2);
+ problem Problem1S1INT1S1ID (const char *s1, INT i1, const char *s2, ID id2);
+ problem Problem1S1ID1S1ID1S1ID (const char *s1, ID id1, const char *s2, ID id2, const char *s3, ID id3);
+ problem Problem1S1INT1S1ID1S1ID (const char *s1, INT i1, const char *s2, ID id2, const char *s3, ID id3);
+ problem Problem1S1storageoption1S1ID (const char *s1, storageoption so, const char *s2, ID id);
+ problem Problem2S (const char *s1, const char *s2);
+ problem ProblemSC (const char *s1, casestring s2);
+ problem Problem3S (const char *s1, const char *s2, const char *s3);
+ problem Problem4S (const char *s1, const char *s2, const char *s3, const char *s4);
+ problem Problem3S1int1S (const char *s1, const char *s2, const char *s3, int i1, const char *s4);
+ void v_report (error e);
+
+ } // namespace kc
+
+ #endif // ! KC_FUNCTIONS_error_HEADER
+
Index: llvm/test/Programs/MultiSource/Applications/kimwitu++/gen.cc
diff -c /dev/null llvm/test/Programs/MultiSource/Applications/kimwitu++/gen.cc:1.1
*** /dev/null Tue Apr 6 15:25:26 2004
--- llvm/test/Programs/MultiSource/Applications/kimwitu++/gen.cc Tue Apr 6 15:25:11 2004
***************
*** 0 ****
--- 1,189 ----
+ /* translation of file "gen.k" */
+ /* generated by:
+ * @(#)$Author: criswell $
+ */
+ #define KC_FUNCTIONS_gen_
+
+ #include <stdlib.h>
+ #include "k.h"
+ #include "gen.h"
+ namespace kc { }
+ using namespace kc;
+ /* included stuff */
+ //
+ // The Termprocessor Kimwitu++
+ //
+ // Copyright (C) 1991 University of Twente, Dept TIOS.
+ // Copyright (C) 1998-2003 Humboldt-University of Berlin, Institute of Informatics
+ // All rights reserved.
+ //
+ // Kimwitu++ is free software; you can redistribute it and/or modify
+ // it under the terms of the GNU General Public License as published by
+ // the Free Software Foundation; either version 2 of the License, or
+ // (at your option) any later version.
+ //
+ // Kimwitu++ is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ // GNU General Public License for more details.
+ //
+ // You should have received a copy of the GNU General Public License
+ // along with Kimwitu++; if not, write to the Free Software
+ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ //
+
+ static char gen_kAccesSid[] = "@(#)$Id: gen.cc,v 1.1 2004/04/06 20:25:11 criswell Exp $";
+
+ /* end included stuff */
+
+
+ namespace kc {
+
+ #ifndef KC_TRACE_PROVIDED
+ #define KC_TRACE_PROVIDED(COND,FILE,LINE,NODE) COND
+ #endif
+
+ enum_operators f_selofoperator(ID oid)
+ {
+ int kc_i, kc_end = one_before_first_operator;
+ kc_i=kc_end;
+ {
+ phylumdeclarations kc_fe_selvar_1 = Thephylumdeclarations ;
+
+ while(
+ kc_fe_selvar_1->prod_sel() == sel_Consphylumdeclarations
+ ) {
+ phylumdeclaration kc_selvar_0_1 = kc_fe_selvar_1->phylumdeclaration_1;
+ {
+ {
+ {
+ const phylumdeclaration p = kc_selvar_0_1;
+ {
+ phylumdeclaration kc_selvar_1_1 = phylum_cast<phylumdeclaration>(p);
+ if ((kc_selvar_1_1->prod_sel() == sel_PhylumDeclaration) && (phylum_cast<const impl_phylumdeclaration_PhylumDeclaration*>(kc_selvar_1_1)->productionblock_1->prod_sel() == sel_ListAlternatives)) {
+ const alternatives alts = phylum_cast<const impl_productionblock_ListAlternatives*>(phylum_cast<const impl_phylumdeclaration_PhylumDeclaration*>(kc_selvar_1_1)->productionblock_1)->alternatives_1;
+
+ {
+ alternatives kc_fe_selvar_1 = alts ;
+
+ while(
+ kc_fe_selvar_1->prod_sel() == sel_Consalternatives
+ ) {
+ alternative kc_selvar_2_1 = kc_fe_selvar_1->alternative_1;
+ {
+ {
+ if ((kc_selvar_2_1->prod_sel() == sel_Alternative)) {
+ const ID id = phylum_cast<const impl_alternative_Alternative*>(kc_selvar_2_1)->ID_1;
+
+ kc_end++;
+ if (oid->eq(id)) kc_i=kc_end;
+
+ } else
+ {/* EMPTY */ /*skip: no matching pattern in foreach patterns*/}
+ }
+
+ }
+ kc_fe_selvar_1 = kc_fe_selvar_1->alternatives_1;
+
+ }
+ }
+
+ } else
+ if ((kc_selvar_1_1->prod_sel() == sel_PhylumDeclaration) && (phylum_cast<const impl_phylumdeclaration_PhylumDeclaration*>(kc_selvar_1_1)->productionblock_1->prod_sel() == sel_NonlistAlternatives)) {
+ const alternatives alts = phylum_cast<const impl_productionblock_NonlistAlternatives*>(phylum_cast<const impl_phylumdeclaration_PhylumDeclaration*>(kc_selvar_1_1)->productionblock_1)->alternatives_1;
+
+ {
+ alternatives kc_fe_selvar_1 = alts ;
+
+ while(
+ kc_fe_selvar_1->prod_sel() == sel_Consalternatives
+ ) {
+ alternative kc_selvar_2_1 = kc_fe_selvar_1->alternative_1;
+ {
+ {
+ if ((kc_selvar_2_1->prod_sel() == sel_Alternative)) {
+ const ID id = phylum_cast<const impl_alternative_Alternative*>(kc_selvar_2_1)->ID_1;
+
+ kc_end++;
+ if (oid->eq(id)) kc_i=kc_end;
+
+ } else
+ {/* EMPTY */ /*skip: no matching pattern in foreach patterns*/}
+ }
+
+ }
+ kc_fe_selvar_1 = kc_fe_selvar_1->alternatives_1;
+
+ }
+ }
+
+ } else
+ if ((kc_selvar_1_1->prod_sel() == sel_PhylumDeclaration) && (phylum_cast<const impl_phylumdeclaration_PhylumDeclaration*>(kc_selvar_1_1)->productionblock_1->prod_sel() == sel_PredefinedAlternatives)) {
+ const alternatives alts = phylum_cast<const impl_productionblock_PredefinedAlternatives*>(phylum_cast<const impl_phylumdeclaration_PhylumDeclaration*>(kc_selvar_1_1)->productionblock_1)->alternatives_1;
+
+ {
+ alternatives kc_fe_selvar_1 = alts ;
+
+ while(
+ kc_fe_selvar_1->prod_sel() == sel_Consalternatives
+ ) {
+ alternative kc_selvar_2_1 = kc_fe_selvar_1->alternative_1;
+ {
+ {
+ if ((kc_selvar_2_1->prod_sel() == sel_Alternative)) {
+ const ID id = phylum_cast<const impl_alternative_Alternative*>(kc_selvar_2_1)->ID_1;
+
+ kc_end++;
+ if (oid->eq(id)) kc_i=kc_end;
+
+ } else
+ {/* EMPTY */ /*skip: no matching pattern in foreach patterns*/}
+ }
+
+ }
+ kc_fe_selvar_1 = kc_fe_selvar_1->alternatives_1;
+
+ }
+ }
+
+ } else
+ { kc_no_default_in_with( "f_selofoperator", __LINE__, __FILE__ );
+ return static_cast<enum_operators>(0); }
+ }
+
+ }
+ }
+
+ }
+ kc_fe_selvar_1 = kc_fe_selvar_1->phylumdeclarations_1;
+
+ }
+ }
+ return static_cast<enum_operators>(kc_end-kc_i+1);
+
+ }
+
+ void freespineandelements(unparseviewsinfo a_unparseviewsinfo)
+ {
+ abstract_phylum kc_p = a_unparseviewsinfo;
+ while(kc_p) {
+ if (kc_p->subphylum(0)) kc_p->subphylum(0)->free(false);
+ kc_p = kc_p->subphylum(1);
+ };
+ a_unparseviewsinfo->freelist();
+
+ }
+
+ void freespineandelements(rewriteviewsinfo a_rewriteviewsinfo)
+ {
+ abstract_phylum kc_p = a_rewriteviewsinfo;
+ while(kc_p) {
+ if (kc_p->subphylum(0)) kc_p->subphylum(0)->free(false);
+ kc_p = kc_p->subphylum(1);
+ };
+ a_rewriteviewsinfo->freelist();
+
+ }
+
+
+ } // namespace kc
Index: llvm/test/Programs/MultiSource/Applications/kimwitu++/gen.h
diff -c /dev/null llvm/test/Programs/MultiSource/Applications/kimwitu++/gen.h:1.1
*** /dev/null Tue Apr 6 15:25:26 2004
--- llvm/test/Programs/MultiSource/Applications/kimwitu++/gen.h Tue Apr 6 15:25:11 2004
***************
*** 0 ****
--- 1,18 ----
+ /* translation of file "gen.k" */
+ /* generated by:
+ * @(#)$Author: criswell $
+ */
+ #ifndef KC_FUNCTIONS_gen_HEADER
+ #define KC_FUNCTIONS_gen_HEADER
+ #include "k.h" /* in case a user forgets */
+
+
+ namespace kc {
+ enum_operators f_selofoperator (ID oid);
+ void freespineandelements (unparseviewsinfo a_unparseviewsinfo);
+ void freespineandelements (rewriteviewsinfo a_rewriteviewsinfo);
+
+ } // namespace kc
+
+ #endif // ! KC_FUNCTIONS_gen_HEADER
+
Index: llvm/test/Programs/MultiSource/Applications/kimwitu++/getopt.h
diff -c /dev/null llvm/test/Programs/MultiSource/Applications/kimwitu++/getopt.h:1.1
*** /dev/null Tue Apr 6 15:25:26 2004
--- llvm/test/Programs/MultiSource/Applications/kimwitu++/getopt.h Tue Apr 6 15:25:11 2004
***************
*** 0 ****
--- 1,182 ----
+ /* Declarations for getopt.
+ Copyright (C) 1989-1994, 1996-1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C 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.
+
+ The GNU C 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 the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+ /* $Id: getopt.h,v 1.1 2004/04/06 20:25:11 criswell Exp $
+ * Modified for kimwitu++ */
+
+ #ifndef _GETOPT_H
+
+ #ifndef __need_getopt
+ # define _GETOPT_H 1
+ #endif
+
+ /* If __GNU_LIBRARY__ is not already defined, either we are being used
+ standalone, or this is the first header included in the source file.
+ If we are being used with glibc, we need to include <features.h>, but
+ that does not exist if we are standalone. So: if __GNU_LIBRARY__ is
+ not defined, include <ctype.h>, which will pull in <features.h> for us
+ if it's from glibc. (Why ctype.h? It's guaranteed to exist and it
+ doesn't flood the namespace with stuff the way some other headers do.) */
+ #if !defined __GNU_LIBRARY__
+ # include <ctype.h>
+ #endif
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+ /* For communication from `getopt' to the caller.
+ When `getopt' finds an option that takes an argument,
+ the argument value is returned here.
+ Also, when `ordering' is RETURN_IN_ORDER,
+ each non-option ARGV-element is returned here. */
+
+ extern char *optarg;
+
+ /* Index in ARGV of the next element to be scanned.
+ This is used for communication to and from the caller
+ and for communication between successive calls to `getopt'.
+
+ On entry to `getopt', zero means this is the first call; initialize.
+
+ When `getopt' returns -1, this is the index of the first of the
+ non-option elements that the caller should itself scan.
+
+ Otherwise, `optind' communicates from one call to the next
+ how much of ARGV has been scanned so far. */
+
+ extern int optind;
+
+ /* Callers store zero here to inhibit the error message `getopt' prints
+ for unrecognized options. */
+
+ extern int opterr;
+
+ /* Set to an option character which was unrecognized. */
+
+ extern int optopt;
+
+ #ifndef __need_getopt
+ /* Describe the long-named options requested by the application.
+ The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
+ of `struct option' terminated by an element containing a name which is
+ zero.
+
+ The field `has_arg' is:
+ no_argument (or 0) if the option does not take an argument,
+ required_argument (or 1) if the option requires an argument,
+ optional_argument (or 2) if the option takes an optional argument.
+
+ If the field `flag' is not NULL, it points to a variable that is set
+ to the value given in the field `val' when the option is found, but
+ left unchanged if the option is not found.
+
+ To have a long-named option do something other than set an `int' to
+ a compiled-in constant, such as set a value from `optarg', set the
+ option's `flag' field to zero and its `val' field to a nonzero
+ value (the equivalent single-letter option character, if there is
+ one). For long options that have a zero `flag' field, `getopt'
+ returns the contents of the `val' field. */
+
+ struct option
+ {
+ # if (defined __STDC__ && __STDC__) || defined __cplusplus
+ const char *name;
+ # else
+ char *name;
+ # endif
+ /* has_arg can't be an enum because some compilers complain about
+ type mismatches in all the code that assumes it is an int. */
+ int has_arg;
+ int *flag;
+ int val;
+ };
+
+ /* Names for the values of the `has_arg' field of `struct option'. */
+
+ # define no_argument 0
+ # define required_argument 1
+ # define optional_argument 2
+ #endif /* need getopt */
+
+
+ /* Get definitions and prototypes for functions to process the
+ arguments in ARGV (ARGC of them, minus the program name) for
+ options given in OPTS.
+
+ Return the option character from OPTS just read. Return -1 when
+ there are no more options. For unrecognized options, or options
+ missing arguments, `optopt' is set to the option letter, and '?' is
+ returned.
+
+ The OPTS string is a list of characters which are recognized option
+ letters, optionally followed by colons, specifying that that letter
+ takes an argument, to be placed in `optarg'.
+
+ If a letter in OPTS is followed by two colons, its argument is
+ optional. This behavior is specific to the GNU `getopt'.
+
+ The argument `--' causes premature termination of argument
+ scanning, explicitly telling `getopt' that there are no more
+ options.
+
+ If OPTS begins with `--', then non-option arguments are treated as
+ arguments to the option '\0'. This behavior is specific to the GNU
+ `getopt'. */
+
+ #if (defined __STDC__ && __STDC__) || defined __cplusplus
+ # ifdef __GNU_LIBRARY__
+ /* Many other libraries have conflicting prototypes for getopt, with
+ differences in the consts, in stdlib.h. To avoid compilation
+ errors, only prototype getopt for the GNU C library. */
+ /* extern int getopt (int argc, char *const *argv, const char *__shortopts); */
+ # else /* not __GNU_LIBRARY__ */
+ /* extern int getopt (); */
+ # endif /* __GNU_LIBRARY__ */
+
+ # ifndef __need_getopt
+ extern int getopt_long (int argc, char *const *argv, const char *__shortopts,
+ const struct option *__longopts, int *__longind);
+ extern int getopt_long_only (int argc, char *const *argv,
+ const char *__shortopts,
+ const struct option *__longopts, int *__longind);
+
+ /* Internal only. Users should not call this directly. */
+ extern int _getopt_internal (int argc, char *const *argv,
+ const char *__shortopts,
+ const struct option *__longopts, int *__longind,
+ int __long_only);
+ # endif
+ #else /* not __STDC__ */
+ extern int getopt ();
+ # ifndef __need_getopt
+ extern int getopt_long ();
+ extern int getopt_long_only ();
+
+ extern int _getopt_internal ();
+ # endif
+ #endif /* __STDC__ */
+
+ #ifdef __cplusplus
+ }
+ #endif
+
+ /* Make sure we later can get all the definitions and declarations. */
+ #undef __need_getopt
+
+ #endif /* getopt.h */
Index: llvm/test/Programs/MultiSource/Applications/kimwitu++/gutil.cc
diff -c /dev/null llvm/test/Programs/MultiSource/Applications/kimwitu++/gutil.cc:1.1
*** /dev/null Tue Apr 6 15:25:26 2004
--- llvm/test/Programs/MultiSource/Applications/kimwitu++/gutil.cc Tue Apr 6 15:25:11 2004
***************
*** 0 ****
--- 1,1204 ----
+ /* translation of file "gutil.k" */
+ /* generated by:
+ * @(#)$Author: criswell $
+ */
+ #define KC_FUNCTIONS_gutil_
+
+ #include <stdlib.h>
+ #include "k.h"
+ #include "gutil.h"
+ namespace kc { }
+ using namespace kc;
+ /* included stuff */
+ //
+ // The Termprocessor Kimwitu++
+ //
+ // Copyright (C) 1991 University of Twente, Dept TIOS.
+ // Copyright (C) 1998-2003 Humboldt-University of Berlin, Institute of Informatics
+ // All rights reserved.
+ //
+ // Kimwitu++ is free software; you can redistribute it and/or modify
+ // it under the terms of the GNU General Public License as published by
+ // the Free Software Foundation; either version 2 of the License, or
+ // (at your option) any later version.
+ //
+ // Kimwitu++ is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ // GNU General Public License for more details.
+ //
+ // You should have received a copy of the GNU General Public License
+ // along with Kimwitu++; if not, write to the Free Software
+ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ //
+
+ static char gutil_kAccesSid[] = "@(#)$Id: gutil.cc,v 1.1 2004/04/06 20:25:11 criswell Exp $";
+
+ /* string(s) stuff */
+ #include <string.h>
+ #include <ctype.h>
+
+ phylumdeclaration The_abstract_phylum_decl;
+ phylumdeclaration The_abstract_phylum_ref_decl;
+ phylumdeclaration The_abstract_list_decl;
+
+ #include "util.h"
+
+ #include "parse.h"
+
+ #include "unpk.h"
+
+ #define MKSELVARMAXINTREPR 30
+
+ #include <ctype.h>
+
+ static ID global_filterview; /* to be used by filteronview */
+
+ #include "rk.h" /* for the rewrite_withcasesinfo call below */
+
+ /* end included stuff */
+
+
+ namespace kc {
+
+ #ifndef KC_TRACE_PROVIDED
+ #define KC_TRACE_PROVIDED(COND,FILE,LINE,NODE) COND
+ #endif
+
+ static bool f_attributes_to_initialize (attributes attr);
+ static bool f_constructors_in_members (fndeclarations dcl);
+ static bool f_destructors_in_members (fndeclarations dcl);
+ static bool f_post_create_in_members (fndeclarations dcl);
+ static bool f_rewrite_in_members (fndeclarations dcl);
+ static ac_parameter_declaration lookup_and_create_ac_parameter_declaration (ID a_fnarg, ac_declaration_list C_vardecls);
+ static bool filterrewriteruleinfoonview (rewriteruleinfo a_rewriteruleinfo);
+ static bool filterunparsedeclinfoonview (unparsedeclinfo a_unparsedeclinfo);
+ static bool is_viewname_in_rewriteruleinfo (ID a_view, rewriteruleinfo a_rewriteruleinfo);
+ static bool is_viewname_in_unparsedeclinfo (ID a_view, unparsedeclinfo a_unparsedeclinfo);
+ static bool is_viewname_in_viewnames (ID a_view, viewnames a_viewnames);
+ static ID f_operatorofelem_patternrepresentation (elem_patternrepresentation a_elem_patternrepresentation);
+ static ID f_operatorofpaths (paths a_paths);
+ static ID f_operatorofpath (path a_path);
+ static elem_patternrepresentation f_outmost_nl_preds_in_patternrepresentation (patternrepresentation p);
+ static bool f_outmost_nl_preds_in_elem_patternrepresentation (elem_patternrepresentation e_p);
+ static bool f_outmost_nl_preds_in_paths (paths p);
+ bool f_something_to_initialize(Ccode_option cco)
+ {
+ {
+ Ccode_option kc_selvar_0_1 = phylum_cast<Ccode_option>( cco );
+ if ((kc_selvar_0_1->prod_sel() == sel_CcodeOption)) {
+ const attributes attr = phylum_cast<const impl_Ccode_option_CcodeOption*>(kc_selvar_0_1)->attributes_1;
+ const Ctexts ct = phylum_cast<const impl_Ccode_option_CcodeOption*>(kc_selvar_0_1)->Ctexts_1;
+
+ return (f_attributes_to_initialize( attr ) || (! f_NilCtexts( ct )));
+
+ } else
+ { kc_no_default_in_with( "f_something_to_initialize", __LINE__, __FILE__ );
+ return static_cast<bool>(0); }
+ }
+
+ }
+
+ bool f_something_to_initialize(alternative a)
+ {
+ return false;
+
+ }
+
+ bool f_NilCtexts(Ctexts c)
+ {
+ {
+ Ctexts kc_selvar_0_1 = phylum_cast<Ctexts>( c );
+ if ((kc_selvar_0_1->prod_sel() == sel_ConsCtexts)) {
+ return false;
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_NilCtexts)) {
+ return true;
+ } else
+ { kc_no_default_in_with( "f_NilCtexts", __LINE__, __FILE__ );
+ return static_cast<bool>(0); }
+ }
+
+ }
+
+ static bool f_attributes_to_initialize(attributes attr)
+ {
+ {
+ attributes kc_fe_selvar_1 = attr ;
+
+ while(
+ kc_fe_selvar_1->prod_sel() == sel_Consattributes
+ ) {
+ attribute kc_selvar_0_1 = kc_fe_selvar_1->attribute_1;
+ {
+ {
+ {
+ const attribute a = kc_selvar_0_1;
+
+ {
+ attribute kc_selvar_1_1 = phylum_cast<attribute>( a );
+ if ((kc_selvar_1_1->prod_sel() == sel_Attribute) && (phylum_cast<const impl_attribute_Attribute*>(kc_selvar_1_1)->attribute_initialisation_option_1->prod_sel() == sel_Yesattribute_initialisation)) {
+
+ return true;
+
+ } else
+ if ((kc_selvar_1_1->prod_sel() == sel_Attribute) && (phylum_cast<const impl_attribute_Attribute*>(kc_selvar_1_1)->attribute_initialisation_option_1->prod_sel() == sel_Noattribute_initialisation)) {
+ /*EMPTY*/
+ } else
+ { kc_no_default_in_with( "f_attributes_to_initialize", __LINE__, __FILE__ );
+ return static_cast<bool>(0); }
+ }
+
+ }
+ }
+
+ }
+ kc_fe_selvar_1 = kc_fe_selvar_1->attributes_1;
+
+ }
+ }
+ return false;
+
+ }
+
+ static bool f_constructors_in_members(fndeclarations dcl)
+ {{
+ fndeclarations kc_selvar_0_1 = phylum_cast<fndeclarations>(dcl);
+ if ((kc_selvar_0_1->prod_sel() == sel_Consfndeclarations) && ((kc_selvar_0_1)->fndeclaration_1->prod_sel() == sel_FnAcDeclaration) && (phylum_cast<const impl_fndeclaration_FnAcDeclaration*>((kc_selvar_0_1)->fndeclaration_1)->fnclass_1->prod_sel() == sel_ConstructorFn)) {
+ return true;
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_Consfndeclarations)) {
+ const fndeclarations tail = (kc_selvar_0_1)->fndeclarations_1;
+ return f_constructors_in_members(tail);
+ } else
+ {
+ return false;
+ }
+ }
+
+ }
+
+ bool f_constructors_in_operatordecl(alternative op)
+ {
+ return f_constructors_in_members(op->additional_members);
+
+ }
+
+ bool f_constructors_in_phylumdecl(phylumdeclaration ph)
+ {
+ return f_constructors_in_members(ph->additional_members);
+
+ }
+
+ static bool f_destructors_in_members(fndeclarations dcl)
+ {{
+ fndeclarations kc_selvar_0_1 = phylum_cast<fndeclarations>(dcl);
+ if ((kc_selvar_0_1->prod_sel() == sel_Consfndeclarations) && ((kc_selvar_0_1)->fndeclaration_1->prod_sel() == sel_FnAcDeclaration) && (phylum_cast<const impl_fndeclaration_FnAcDeclaration*>((kc_selvar_0_1)->fndeclaration_1)->fnclass_1->prod_sel() == sel_DestructorFn)) {
+ return true;
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_Consfndeclarations)) {
+ const fndeclarations tail = (kc_selvar_0_1)->fndeclarations_1;
+ return f_destructors_in_members(tail);
+ } else
+ {
+ return false;
+ }
+ }
+
+ }
+
+ bool f_destructors_in_operatordecl(alternative op)
+ {
+ return f_destructors_in_members(op->additional_members);
+
+ }
+
+ bool f_destructors_in_phylumdecl(phylumdeclaration ph)
+ {
+ return f_destructors_in_members(ph->additional_members);
+
+ }
+
+ bool f_no_params(ac_parameter_type_list p)
+ {{
+ ac_parameter_type_list kc_selvar_0_1 = phylum_cast<ac_parameter_type_list>(p);
+ if ((kc_selvar_0_1->prod_sel() == sel_AcParList) && (phylum_cast<const impl_ac_parameter_type_list_AcParList*>(kc_selvar_0_1)->ac_parameter_list_1->prod_sel() == sel_Nilac_parameter_list)) {
+ return true;
+ } else
+ {
+ return false;
+ }
+ }
+
+ }
+
+ static bool f_post_create_in_members(fndeclarations dcl)
+ {{
+ fndeclarations kc_selvar_0_1 = phylum_cast<fndeclarations>(dcl);
+ if ((kc_selvar_0_1->prod_sel() == sel_Consfndeclarations) && ((kc_selvar_0_1)->fndeclaration_1->prod_sel() == sel_FnAcDeclaration) && (phylum_cast<const impl_fndeclaration_FnAcDeclaration*>((kc_selvar_0_1)->fndeclaration_1)->ac_declarator_1->prod_sel() == sel_AcDeclarator) && (phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_FnAcDeclaration*>((kc_selvar_0_1)->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcQualifiedDeclProto) && (phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_FnAcDeclaration*>((kc_selvar_0_1)->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcDirectDeclId) && (phylum_cast<const impl_ac_direct_declarator_AcDirectDeclId*>(phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_A!
cDeclarator*>(phylum_cast<const impl_fndeclaration_FnAcDeclaration*>((kc_selvar_0_1)->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1)->ID_1->prod_sel() == sel_Id) && (phylum_cast<const impl_ID_Id*>(phylum_cast<const impl_ac_direct_declarator_AcDirectDeclId*>(phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_FnAcDeclaration*>((kc_selvar_0_1)->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1)->ID_1)->uniqID_1->prod_sel() == sel_Str) && (kc_strcmp(phylum_cast<const impl_uniqID_Str*>(phylum_cast<const impl_ID_Id*>(phylum_cast<const impl_ac_direct_declarator_AcDirectDeclId*>(phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_FnAcDeclaration*>((kc_selvar_0_1)->fndeclaration_1)->ac_declarator_1)->ac_dir!
ect_declarator_1)->ac_direct_declarator_1)->ID_1)->uniqID_1)->casestri
ng_1->name, kc_t("post_create"))==0) && (phylum_cast<const impl_fndeclaration_FnAcDeclaration*>((kc_selvar_0_1)->fndeclaration_1)->fnclass_1->prod_sel() == sel_MemberFn)) {
+ return true;
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_Consfndeclarations)) {
+ const fndeclarations tail = (kc_selvar_0_1)->fndeclarations_1;
+ return f_post_create_in_members(tail);
+ } else
+ {
+ return false;
+ }
+ }
+
+ }
+
+ bool f_post_create_in_operatordecl(alternative op)
+ {
+ return f_post_create_in_members(op->additional_members);
+
+ }
+
+ bool f_post_create_in_phylumdecl(phylumdeclaration ph)
+ {
+ return f_post_create_in_members(ph->additional_members);
+
+ }
+
+ static bool f_rewrite_in_members(fndeclarations dcl)
+ {{
+ fndeclarations kc_selvar_0_1 = phylum_cast<fndeclarations>(dcl);
+ if ((kc_selvar_0_1->prod_sel() == sel_Consfndeclarations) && ((kc_selvar_0_1)->fndeclaration_1->prod_sel() == sel_FnAcDeclaration) && (phylum_cast<const impl_fndeclaration_FnAcDeclaration*>((kc_selvar_0_1)->fndeclaration_1)->ac_declarator_1->prod_sel() == sel_AcDeclarator) && (phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_FnAcDeclaration*>((kc_selvar_0_1)->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcQualifiedDeclProto) && (phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_FnAcDeclaration*>((kc_selvar_0_1)->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1->prod_sel() == sel_AcDirectDeclId) && (phylum_cast<const impl_ac_direct_declarator_AcDirectDeclId*>(phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_A!
cDeclarator*>(phylum_cast<const impl_fndeclaration_FnAcDeclaration*>((kc_selvar_0_1)->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1)->ID_1->prod_sel() == sel_Id) && (phylum_cast<const impl_ID_Id*>(phylum_cast<const impl_ac_direct_declarator_AcDirectDeclId*>(phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_FnAcDeclaration*>((kc_selvar_0_1)->fndeclaration_1)->ac_declarator_1)->ac_direct_declarator_1)->ac_direct_declarator_1)->ID_1)->uniqID_1->prod_sel() == sel_Str) && (kc_strcmp(phylum_cast<const impl_uniqID_Str*>(phylum_cast<const impl_ID_Id*>(phylum_cast<const impl_ac_direct_declarator_AcDirectDeclId*>(phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(phylum_cast<const impl_ac_declarator_AcDeclarator*>(phylum_cast<const impl_fndeclaration_FnAcDeclaration*>((kc_selvar_0_1)->fndeclaration_1)->ac_declarator_1)->ac_dir!
ect_declarator_1)->ac_direct_declarator_1)->ID_1)->uniqID_1)->casestri
ng_1->name, kc_t("rewrite"))==0) && (phylum_cast<const impl_fndeclaration_FnAcDeclaration*>((kc_selvar_0_1)->fndeclaration_1)->fnclass_1->prod_sel() == sel_MemberFn)) {
+ return true;
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_Consfndeclarations)) {
+ const fndeclarations tail = (kc_selvar_0_1)->fndeclarations_1;
+ return f_rewrite_in_members(tail);
+ } else
+ {
+ return false;
+ }
+ }
+
+ }
+
+ bool f_rewrite_in_phylumdecl(phylumdeclaration ph)
+ {
+ return f_rewrite_in_members(ph->additional_members);
+
+ }
+
+ bool f_rewrite_in_operatordecl(alternative op)
+ {{
+ alternative kc_selvar_0_1 = phylum_cast<alternative>(op);
+ if ((kc_selvar_0_1->prod_sel() == sel_Alternative)) {
+ const ID oid = phylum_cast<const impl_alternative_Alternative*>(kc_selvar_0_1)->ID_1;
+
+ if(f_rewrite_in_members(op->additional_members))
+ return true;
+ return f_rewrite_in_phylumdecl(f_phylumdeclofid(f_phylumofoperator(oid)));
+
+ } else
+ {
+ return false;
+ }
+ }
+
+ }
+
+ ID f_phylumofwithcasesinfo(withcasesinfo wcso)
+ {
+ ID id;
+ {
+ withcasesinfo kc_selvar_0_1 = phylum_cast<withcasesinfo>( wcso );
+ if ((kc_selvar_0_1->prod_sel() == sel_Conswithcasesinfo)) {
+ const withcaseinfo wco = (kc_selvar_0_1)->withcaseinfo_1;
+ const withcasesinfo r_wcso = (kc_selvar_0_1)->withcasesinfo_1;
+
+ {
+ withcaseinfo kc_selvar_1_1 = phylum_cast<withcaseinfo>( wco );
+ if ((kc_selvar_1_1->prod_sel() == sel_Withcaseinfo)) {
+ const patternrepresentation patrep = phylum_cast<const impl_withcaseinfo_Withcaseinfo*>(kc_selvar_1_1)->patternrepresentation_1;
+
+ if ( (id = f_phylumofpatternrepresentation( patrep ))->eq( f_emptyId() )) {
+ return f_phylumofwithcasesinfo( r_wcso );
+ } else {
+ return id;
+ }
+ } else
+ { kc_no_default_in_with( "f_phylumofwithcasesinfo", __LINE__, __FILE__ );
+ return static_cast<ID>(0); }
+ }
+
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_Nilwithcasesinfo)) {
+
+ v_report(NonFatal( NoFileLine(), Problem1S( "Error: can not find type of with expression" )));
+ return Id( Str( mkcasestring( "KC_ERRORunknownTYPE" )));
+
+ } else
+ { kc_no_default_in_with( "f_phylumofwithcasesinfo", __LINE__, __FILE__ );
+ return static_cast<ID>(0); }
+ }
+
+ }
+
+ ID f_phylumofpatternrepresentation(patternrepresentation a_patrep)
+ {
+ {
+ patternrepresentation kc_selvar_0_1 = phylum_cast<patternrepresentation>( a_patrep );
+ if ((kc_selvar_0_1->prod_sel() == sel_Conspatternrepresentation)) {
+ const elem_patternrepresentation a_patrep_elem = (kc_selvar_0_1)->elem_patternrepresentation_1;
+ const patternrepresentation r_patrep = (kc_selvar_0_1)->patternrepresentation_1;
+
+ {
+ elem_patternrepresentation kc_selvar_1_1 = phylum_cast<elem_patternrepresentation>( a_patrep_elem );
+ if ((kc_selvar_1_1->prod_sel() == sel_PROperPredicate)) {
+ const ID id = phylum_cast<const impl_elem_patternrepresentation_PROperPredicate*>(kc_selvar_1_1)->ID_1;
+
+ return f_phylumofoperator( id );
+
+ } else
+ {
+
+ return f_phylumofpatternrepresentation( r_patrep );
+
+ }
+ }
+
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_Nilpatternrepresentation)) {
+
+ return f_emptyId();
+
+ } else
+ { kc_no_default_in_with( "f_phylumofpatternrepresentation", __LINE__, __FILE__ );
+ return static_cast<ID>(0); }
+ }
+
+ }
+
+ ac_parameter_type_list sort_extend_parameter_type_list(ac_declaration_list C_vardecls, ac_declarator decl)
+ {{
+ ac_declarator kc_selvar_0_1 = phylum_cast<ac_declarator>(decl);
+ if ((kc_selvar_0_1->prod_sel() == sel_AcDeclarator)) {
+ const ac_direct_declarator add = phylum_cast<const impl_ac_declarator_AcDeclarator*>(kc_selvar_0_1)->ac_direct_declarator_1;
+
+ {
+ ac_direct_declarator kc_selvar_1_1 = phylum_cast<ac_direct_declarator>( add );
+ if ((kc_selvar_1_1->prod_sel() == sel_AcQualifiedDeclProto)) {
+ const ac_parameter_type_list fn_proto = phylum_cast<const impl_ac_direct_declarator_AcQualifiedDeclProto*>(kc_selvar_1_1)->ac_parameter_type_list_1;
+ return fn_proto;
+ } else
+ if ((kc_selvar_1_1->prod_sel() == sel_AcDirectDeclProto)) {
+ const ac_parameter_type_list fn_proto = phylum_cast<const impl_ac_direct_declarator_AcDirectDeclProto*>(kc_selvar_1_1)->ac_parameter_type_list_1;
+ return fn_proto;
+ } else
+ if ((kc_selvar_1_1->prod_sel() == sel_AcDirectDeclArray)) {
+ return AcParList( Nilac_parameter_list() );
+ } else
+ if ((kc_selvar_1_1->prod_sel() == sel_AcDirectDeclPack)) {
+ return AcParList( Nilac_parameter_list() );
+ } else
+ if ((kc_selvar_1_1->prod_sel() == sel_AcDirectDeclId)) {
+ return AcParList( Nilac_parameter_list() );
+ } else
+ { kc_no_default_in_with( "sort_extend_parameter_type_list", __LINE__, __FILE__ );
+ return static_cast<ac_parameter_type_list>(0); }
+ }
+
+ } else
+ { kc_no_default_in_with( "sort_extend_parameter_type_list", __LINE__, __FILE__ );
+ return static_cast<ac_parameter_type_list>(0); }
+ }
+
+ }
+
+ ac_parameter_list t_sort_extend_parameter_list(ac_declaration_list C_vardecls, ac_identifier_list fn_args, ac_parameter_list temp)
+ {
+ {
+ ac_identifier_list kc_selvar_0_1 = phylum_cast<ac_identifier_list>( fn_args );
+ if ((kc_selvar_0_1->prod_sel() == sel_Consac_identifier_list)) {
+ const ID a_fnarg = (kc_selvar_0_1)->ID_1;
+ const ac_identifier_list r_fnargs = (kc_selvar_0_1)->ac_identifier_list_1;
+
+ temp = t_sort_extend_parameter_list( C_vardecls, r_fnargs, temp );
+ return Consac_parameter_list( lookup_and_create_ac_parameter_declaration( a_fnarg, C_vardecls ), temp );
+
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_Nilac_identifier_list)) {
+ return temp;
+ } else
+ { kc_no_default_in_with( "t_sort_extend_parameter_list", __LINE__, __FILE__ );
+ return static_cast<ac_parameter_list>(0); }
+ }
+
+ }
+
+ static ac_parameter_declaration lookup_and_create_ac_parameter_declaration(ID a_fnarg, ac_declaration_list C_vardecls)
+ {
+ ac_parameter_declaration result = 0;
+ int number_of_results = 0;
+ {
+ ac_declaration_list kc_fe_selvar_1 = C_vardecls ;
+
+ while(
+ kc_fe_selvar_1->prod_sel() == sel_Consac_declaration_list
+ ) {
+ ac_declaration kc_selvar_0_1 = kc_fe_selvar_1->ac_declaration_1;
+ {
+ {
+ if ((kc_selvar_0_1->prod_sel() == sel_AcDeclaration)) {
+ const ac_declaration_specifiers type = phylum_cast<const impl_ac_declaration_AcDeclaration*>(kc_selvar_0_1)->ac_declaration_specifiers_1;
+ const ac_init_declarator_list cvars = phylum_cast<const impl_ac_declaration_AcDeclaration*>(kc_selvar_0_1)->ac_init_declarator_list_1;
+
+ {
+ ac_init_declarator_list kc_fe_selvar_1 = cvars ;
+
+ while(
+ kc_fe_selvar_1->prod_sel() == sel_Consac_init_declarator_list
+ ) {
+ ac_init_declarator kc_selvar_1_1 = kc_fe_selvar_1->ac_init_declarator_1;
+ {
+ {
+ if ((kc_selvar_1_1->prod_sel() == sel_AcInitDecl)) {
+ const ac_declarator decl = phylum_cast<const impl_ac_init_declarator_AcInitDecl*>(kc_selvar_1_1)->ac_declarator_1;
+
+ ID name = f_ID_of_declarator( decl );
+ if (name->eq( a_fnarg ) ) {
+ result = AcParDeclDecl( type, decl, Noac_constant_expression());
+ number_of_results++;
+ }
+ } else
+ {/* EMPTY */ /*skip: no matching pattern in foreach patterns*/}
+ }
+
+ }
+ kc_fe_selvar_1 = kc_fe_selvar_1->ac_init_declarator_list_1;
+
+ }
+ }
+
+ } else
+ {/* EMPTY */ /*skip: no matching pattern in foreach patterns*/}
+ }
+
+ }
+ kc_fe_selvar_1 = kc_fe_selvar_1->ac_declaration_list_1;
+
+ }
+ }
+ if (number_of_results == 1) {
+ return result;
+ } else {
+
+ if (number_of_results > 1) {
+ v_report(Warning( FileLine( a_fnarg->file, a_fnarg->line ), Problem1S1ID( "more than one type defined for function argument:", a_fnarg )));
+ } else {
+ v_report(Warning( FileLine( a_fnarg->file, a_fnarg->line ), Problem1S1ID( "can not find type of function argument:", a_fnarg )));
+ }
+
+ return AcParDeclDecl(
+ Consac_declaration_specifiers(
+ AcDeclSpecTypeSpec(
+ AcTypeSpec( Id( Str( mkcasestring( "KC_ERRORunknownTYPE" ))))),
+ Nilac_declaration_specifiers()),
+ AcDeclarator(
+ Nopointer(),
+ AcNoRef(),
+ AcDirectDeclId( a_fnarg )),
+ Noac_constant_expression());
+ }
+
+ }
+
+ void unparse(const char *s, printer_functor printer_fn, uview v)
+ {
+ printer_fn( s, v );
+
+ }
+
+ charruns impl_charruns::set(int _n)
+ { number=_n; return this;
+ }
+
+ ID f_mkselvar(const char *prefix, int level)
+ {
+
+
+
+ char fixbuf[BUFSIZ] ;
+ char *dynbuf = 0;
+ char *buf = 0;
+ ID id;
+ if (strlen(prefix) + MKSELVARMAXINTREPR + 1 > BUFSIZ) {
+ dynbuf = new char[strlen(prefix) + MKSELVARMAXINTREPR + 1];
+ buf = dynbuf;
+ } else {
+ buf = fixbuf;
+ }
+ strcpy( buf, prefix );
+ sprintf( &buf[strlen(prefix)], "%d", level );
+ id = Id( Str( mkcasestring( buf )));
+ if (dynbuf != 0) {
+ delete[] dynbuf;
+ }
+ return id;
+
+ }
+
+ ID f_mkselvar2(const char *prefix, int level, int branch)
+ {
+
+
+
+
+ char fixbuf[BUFSIZ] ;
+ char *dynbuf = 0;
+ char *buf = 0;
+ ID id;
+ int constant_factor = MKSELVARMAXINTREPR + 1 + MKSELVARMAXINTREPR + 1;
+ if (strlen(prefix) + constant_factor > BUFSIZ) {
+ dynbuf = new char[strlen(prefix) + constant_factor];
+ buf = dynbuf;
+ } else {
+ buf = fixbuf;
+ }
+ strcpy( buf, prefix );
+ sprintf( &buf[strlen(prefix)], "%d_%d", level, branch );
+ id = Id( Str( mkcasestring( buf )));
+ if (dynbuf != 0) {
+ delete[] dynbuf;
+ }
+ return id;
+
+ }
+
+ char *f_mk_filename(casestring a_casestring, const char *suffix)
+ {
+ char const *basename;
+
+ if ((basename = strrchr( a_casestring->name, '/' )) == 0)
+ basename = a_casestring->name;
+ if (*basename == '/')
+ basename++;
+ else if (*basename == '"')
+ basename++;
+ size_t baselen = strlen(basename);
+
+ char *filename = new char[baselen+strlen(suffix)+1];
+ strcpy( filename, basename );
+ if (baselen > 0 && filename[baselen-1] == '"' ) {
+ filename[baselen-1] = '\0';
+ baselen--;
+ }
+ if ( baselen > 1 && (filename[baselen-1] == 'k' && filename[baselen-2] == '.' ))
+ baselen-=2;
+ if (strlen(suffix)==0) {
+ filename[baselen]='\0';
+ return filename;
+ }
+ filename[baselen] = '.';
+
+ char *eofn=filename+baselen+1;
+ while ((*eofn++=*suffix++)) ;
+ return filename;
+
+ }
+
+ char *f_mk_filename(casestring a_casestring, const string &suffix)
+ {
+ return f_mk_filename(a_casestring, suffix.c_str());
+
+ }
+
+ char *f_make_identifier_basename(const char *fn)
+ {
+ char *nn;
+
+ size_t len = strlen(fn);
+ assertCond(len >2);
+ nn = new char[len-2+1];
+ strncpy(nn, fn, len-2);
+ nn[len-2] = '\0';
+ for (unsigned i=0; i < len-2; i++) {
+ if (! isalnum(nn[i])) {
+ nn[i] = '_';
+ } }
+ return nn;
+
+ }
+
+ rewriterulesinfo f_rewriterulesinfoofalternativeinview(alternative a_alternative, ID a_view)
+ {
+ global_filterview = a_view;
+ return a_alternative->rewriteinfo->filter( filterrewriteruleinfoonview );
+
+ }
+
+ rewriteviewsinfo f_rewriteviewsinfo_of_alternative(alternative a_alternative, viewnames a_views)
+ {
+ rewriterulesinfo tmp_rulesinfo = a_alternative->rewriteinfo;
+ rewriteviewsinfo tmp_viewsinfo = Nilrewriteviewsinfo();
+ {
+ viewnames kc_fe_selvar_1 = a_views ;
+
+ while(
+ kc_fe_selvar_1->prod_sel() == sel_Consviewnames
+ ) {
+ ID kc_selvar_0_1 = kc_fe_selvar_1->ID_1;
+ {
+ {
+ {
+ const ID a_view = kc_selvar_0_1;
+
+ global_filterview = a_view;
+ tmp_viewsinfo = Consrewriteviewsinfo( Rewriteviewinfo( a_view, tmp_rulesinfo->filter( filterrewriteruleinfoonview )), tmp_viewsinfo );
+
+ }
+ }
+
+ }
+ kc_fe_selvar_1 = kc_fe_selvar_1->viewnames_1;
+
+ }
+ }
+ return tmp_viewsinfo;
+
+ }
+
+ unparseviewsinfo f_unparseviewsinfo_of_alternative(alternative a_alternative, viewnames a_views)
+ {
+ unparsedeclsinfo tmp_declsinfo = a_alternative->unparseinfo;
+ unparseviewsinfo tmp_viewsinfo = Nilunparseviewsinfo();
+ {
+ viewnames kc_fe_selvar_1 = a_views ;
+
+ while(
+ kc_fe_selvar_1->prod_sel() == sel_Consviewnames
+ ) {
+ ID kc_selvar_0_1 = kc_fe_selvar_1->ID_1;
+ {
+ {
+ {
+ const ID a_view = kc_selvar_0_1;
+
+ global_filterview = a_view;
+ tmp_viewsinfo = Consunparseviewsinfo( Unparseviewinfo( a_view, tmp_declsinfo->filter( filterunparsedeclinfoonview )), tmp_viewsinfo );
+
+ }
+ }
+
+ }
+ kc_fe_selvar_1 = kc_fe_selvar_1->viewnames_1;
+
+ }
+ }
+ return tmp_viewsinfo;
+
+ }
+
+ static bool filterrewriteruleinfoonview(rewriteruleinfo a_rewriteruleinfo)
+ {
+ return is_viewname_in_rewriteruleinfo( global_filterview, a_rewriteruleinfo );
+
+ }
+
+ static bool filterunparsedeclinfoonview(unparsedeclinfo a_unparsedeclinfo)
+ {
+ return is_viewname_in_unparsedeclinfo( global_filterview, a_unparsedeclinfo );
+
+ }
+
+ static bool is_viewname_in_rewriteruleinfo(ID a_view, rewriteruleinfo a_rewriteruleinfo)
+ {
+ {
+ rewriteruleinfo kc_selvar_0_1 = phylum_cast<rewriteruleinfo>( a_rewriteruleinfo );
+ if ((kc_selvar_0_1->prod_sel() == sel_Rewriteruleinfo) && (phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(kc_selvar_0_1)->rewriteclause_1->prod_sel() == sel_RewriteClause)) {
+ const viewnames a_viewnames = phylum_cast<const impl_rewriteclause_RewriteClause*>(phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>(kc_selvar_0_1)->rewriteclause_1)->viewnames_1;
+
+ return is_viewname_in_viewnames( a_view, a_viewnames );
+
+ } else
+ { kc_no_default_in_with( "is_viewname_in_rewriteruleinfo", __LINE__, __FILE__ );
+ return static_cast<bool>(0); }
+ }
+
+ }
+
+ static bool is_viewname_in_unparsedeclinfo(ID a_view, unparsedeclinfo a_unparsedeclinfo)
+ {
+ {
+ unparsedeclinfo kc_selvar_0_1 = phylum_cast<unparsedeclinfo>( a_unparsedeclinfo );
+ if ((kc_selvar_0_1->prod_sel() == sel_Unparsedeclinfo) && (phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(kc_selvar_0_1)->unparseclause_1->prod_sel() == sel_UnparseClause)) {
+ const viewnames a_viewnames = phylum_cast<const impl_unparseclause_UnparseClause*>(phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>(kc_selvar_0_1)->unparseclause_1)->viewnames_1;
+
+ return is_viewname_in_viewnames( a_view, a_viewnames );
+
+ } else
+ { kc_no_default_in_with( "is_viewname_in_unparsedeclinfo", __LINE__, __FILE__ );
+ return static_cast<bool>(0); }
+ }
+
+ }
+
+ static bool is_viewname_in_viewnames(ID a_view, viewnames a_viewnames)
+ {
+ {
+ viewnames kc_fe_selvar_1 = a_viewnames ;
+
+ while(
+ kc_fe_selvar_1->prod_sel() == sel_Consviewnames
+ ) {
+ ID kc_selvar_0_1 = kc_fe_selvar_1->ID_1;
+ {
+ {
+ {
+ const ID a_viewname = kc_selvar_0_1;
+
+ if ( a_view->eq( a_viewname ) ) {
+ return true;
+ }
+ }
+ }
+
+ }
+ kc_fe_selvar_1 = kc_fe_selvar_1->viewnames_1;
+
+ }
+ }
+ return false;
+
+ }
+
+ ID f_typeof(path a_path)
+ {
+ if (a_path->id->eq(f_emptyId())) {
+ {
+ path kc_selvar_0_1 = phylum_cast<path>( a_path );
+ if ((kc_selvar_0_1->prod_sel() == sel_Conspath)) {
+ const integer i = (kc_selvar_0_1)->integer_1;
+ const path r_path = (kc_selvar_0_1)->path_1;
+
+ return f_subphylumofoperator( r_path->op, Int( i ) );
+
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_Nilpath)) {
+
+ return f_phylumofoperator( a_path->op );
+
+ } else
+ { kc_no_default_in_with( "f_typeof", __LINE__, __FILE__ );
+ return static_cast<ID>(0); }
+ }
+ } else {
+ return a_path->id;
+ }
+
+ }
+
+ ID f_operatorofpatternrepresentation(patternrepresentation a_patternrepresentation)
+ {
+ {
+ patternrepresentation kc_selvar_0_1 = phylum_cast<patternrepresentation>( a_patternrepresentation );
+ if ((kc_selvar_0_1->prod_sel() == sel_Conspatternrepresentation)) {
+ const elem_patternrepresentation e = (kc_selvar_0_1)->elem_patternrepresentation_1;
+
+ return f_operatorofelem_patternrepresentation( e );
+
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_Nilpatternrepresentation)) {
+
+ return f_emptyId();
+
+ } else
+ { kc_no_default_in_with( "f_operatorofpatternrepresentation", __LINE__, __FILE__ );
+ return static_cast<ID>(0); }
+ }
+
+ }
+
+ static ID f_operatorofelem_patternrepresentation(elem_patternrepresentation a_elem_patternrepresentation)
+ {
+ {
+ elem_patternrepresentation kc_selvar_0_1 = phylum_cast<elem_patternrepresentation>( a_elem_patternrepresentation );
+ if ((kc_selvar_0_1->prod_sel() == sel_PRDefault)) {
+ return f_emptyId();
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_PRUserPredicate)) {
+ return f_emptyId();
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_PRIntLiteral)) {
+ const path p = phylum_cast<const impl_elem_patternrepresentation_PRIntLiteral*>(kc_selvar_0_1)->path_1;
+ return f_operatorofpath( p );
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_PRStringLiteral)) {
+ const path p = phylum_cast<const impl_elem_patternrepresentation_PRStringLiteral*>(kc_selvar_0_1)->path_1;
+ return f_operatorofpath( p );
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_PRWildcard)) {
+ const path p = phylum_cast<const impl_elem_patternrepresentation_PRWildcard*>(kc_selvar_0_1)->path_1;
+ return f_operatorofpath( p );
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_PRNonLeafBinding)) {
+ const path p = phylum_cast<const impl_elem_patternrepresentation_PRNonLeafBinding*>(kc_selvar_0_1)->path_1;
+ return f_operatorofpath( p );
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_PROperPredicate)) {
+ const path p = phylum_cast<const impl_elem_patternrepresentation_PROperPredicate*>(kc_selvar_0_1)->path_1;
+ return f_operatorofpath( p );
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_PRBinding)) {
+ const path p = phylum_cast<const impl_elem_patternrepresentation_PRBinding*>(kc_selvar_0_1)->path_1;
+ return f_operatorofpath( p );
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_PRVarPredicate)) {
+ const paths ps = phylum_cast<const impl_elem_patternrepresentation_PRVarPredicate*>(kc_selvar_0_1)->paths_1;
+ return f_operatorofpaths( ps );
+ } else
+ { kc_no_default_in_with( "f_operatorofelem_patternrepresentation", __LINE__, __FILE__ );
+ return static_cast<ID>(0); }
+ }
+
+ }
+
+ static ID f_operatorofpaths(paths a_paths)
+ {
+ {
+ paths kc_selvar_0_1 = phylum_cast<paths>( a_paths );
+ if ((kc_selvar_0_1->prod_sel() == sel_Conspaths)) {
+ const path p = (kc_selvar_0_1)->path_1;
+
+ return f_operatorofpath( p );
+
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_Nilpaths)) {
+
+ return f_emptyId();
+
+ } else
+ { kc_no_default_in_with( "f_operatorofpaths", __LINE__, __FILE__ );
+ return static_cast<ID>(0); }
+ }
+
+ }
+
+ static ID f_operatorofpath(path a_path)
+ {
+ {
+ path kc_selvar_0_1 = phylum_cast<path>( a_path );
+ if ((kc_selvar_0_1->prod_sel() == sel_Conspath)) {
+ const path r_path = (kc_selvar_0_1)->path_1;
+
+ return r_path->op;
+
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_Nilpath)) {
+
+ return a_path->op;
+
+ } else
+ { kc_no_default_in_with( "f_operatorofpath", __LINE__, __FILE__ );
+ return static_cast<ID>(0); }
+ }
+
+ }
+
+ ID f_typeofunpsubterm(unpsubterm a_unpsubterm, ID a_operator)
+ {
+ {
+ unpsubterm kc_selvar_0_1 = phylum_cast<unpsubterm>( a_unpsubterm );
+ if ((kc_selvar_0_1->prod_sel() == sel_UnpCastedVariable)) {
+ const ID a_cast = phylum_cast<const impl_unpsubterm_UnpCastedVariable*>(kc_selvar_0_1)->ID_1;
+ return a_cast;
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_UnpDollarvarAttr)) {
+ const INT i = phylum_cast<const impl_unpsubterm_UnpDollarvarAttr*>(kc_selvar_0_1)->INT_1;
+ const unpattributes a_unpattributes = phylum_cast<const impl_unpsubterm_UnpDollarvarAttr*>(kc_selvar_0_1)->unpattributes_1;
+ return f_check_unpattributes_in_phylum( a_unpattributes, f_subphylumofoperator( a_operator, i ) );
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_UnpSubAttr)) {
+ const ID an_id = phylum_cast<const impl_unpsubterm_UnpSubAttr*>(kc_selvar_0_1)->ID_1;
+ const unpattributes an_unpattributes = phylum_cast<const impl_unpsubterm_UnpSubAttr*>(kc_selvar_0_1)->unpattributes_1;
+ return f_check_unpattributes_in_phylum( an_unpattributes, f_phylumofpatternID( an_id ) );
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_UnpDollarvarTerm)) {
+ const INT i = phylum_cast<const impl_unpsubterm_UnpDollarvarTerm*>(kc_selvar_0_1)->INT_1;
+ return f_subphylumofoperator( a_operator, i );
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_UnpSubTerm)) {
+ const ID a_id = phylum_cast<const impl_unpsubterm_UnpSubTerm*>(kc_selvar_0_1)->ID_1;
+ return f_phylumofpatternID( a_id );
+ } else
+ { kc_no_default_in_with( "f_typeofunpsubterm", __LINE__, __FILE__ );
+ return static_cast<ID>(0); }
+ }
+
+ }
+
+ elem_patternrepresentation f_outmost_nl_preds_in_rewriterulesinfo(rewriterulesinfo ri)
+ {
+ {
+ rewriterulesinfo kc_selvar_0_1 = phylum_cast<rewriterulesinfo>( ri );
+ if ((kc_selvar_0_1->prod_sel() == sel_Consrewriterulesinfo) && ((kc_selvar_0_1)->rewriteruleinfo_1->prod_sel() == sel_Rewriteruleinfo)) {
+ const patternrepresentation preds = phylum_cast<const impl_rewriteruleinfo_Rewriteruleinfo*>((kc_selvar_0_1)->rewriteruleinfo_1)->patternrepresentation_1;
+ const rewriterulesinfo r_ri = (kc_selvar_0_1)->rewriterulesinfo_1;
+
+ elem_patternrepresentation epr =
+ f_outmost_nl_preds_in_patternrepresentation( preds );
+ return epr ? epr
+ : f_outmost_nl_preds_in_rewriterulesinfo( r_ri );
+
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_Nilrewriterulesinfo)) {
+ return 0;
+ } else
+ { kc_no_default_in_with( "f_outmost_nl_preds_in_rewriterulesinfo", __LINE__, __FILE__ );
+ return static_cast<elem_patternrepresentation>(0); }
+ }
+
+ }
+
+ elem_patternrepresentation f_outmost_nl_preds_in_unparsedeclsinfo(unparsedeclsinfo ri)
+ {
+ {
+ unparsedeclsinfo kc_selvar_0_1 = phylum_cast<unparsedeclsinfo>( ri );
+ if ((kc_selvar_0_1->prod_sel() == sel_Consunparsedeclsinfo) && ((kc_selvar_0_1)->unparsedeclinfo_1->prod_sel() == sel_Unparsedeclinfo)) {
+ const patternrepresentation preds = phylum_cast<const impl_unparsedeclinfo_Unparsedeclinfo*>((kc_selvar_0_1)->unparsedeclinfo_1)->patternrepresentation_1;
+ const unparsedeclsinfo r_ri = (kc_selvar_0_1)->unparsedeclsinfo_1;
+
+ elem_patternrepresentation epr =
+ f_outmost_nl_preds_in_patternrepresentation( preds );
+ return epr ? epr
+ : f_outmost_nl_preds_in_unparsedeclsinfo( r_ri );
+
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_Nilunparsedeclsinfo)) {
+ return 0;
+ } else
+ { kc_no_default_in_with( "f_outmost_nl_preds_in_unparsedeclsinfo", __LINE__, __FILE__ );
+ return static_cast<elem_patternrepresentation>(0); }
+ }
+
+ }
+
+ static elem_patternrepresentation f_outmost_nl_preds_in_patternrepresentation(patternrepresentation p)
+ {
+ {
+ patternrepresentation kc_selvar_0_1 = phylum_cast<patternrepresentation>( p );
+ if ((kc_selvar_0_1->prod_sel() == sel_Conspatternrepresentation)) {
+ const elem_patternrepresentation a_p = (kc_selvar_0_1)->elem_patternrepresentation_1;
+ const patternrepresentation r_p = (kc_selvar_0_1)->patternrepresentation_1;
+
+ return f_outmost_nl_preds_in_elem_patternrepresentation( a_p ) ? a_p
+ : f_outmost_nl_preds_in_patternrepresentation( r_p );
+
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_Nilpatternrepresentation)) {
+ return 0;
+ } else
+ { kc_no_default_in_with( "f_outmost_nl_preds_in_patternrepresentation", __LINE__, __FILE__ );
+ return static_cast<elem_patternrepresentation>(0); }
+ }
+
+ }
+
+ static bool f_outmost_nl_preds_in_elem_patternrepresentation(elem_patternrepresentation e_p)
+ {
+ {
+ elem_patternrepresentation kc_selvar_0_1 = phylum_cast<elem_patternrepresentation>( e_p );
+ if ((kc_selvar_0_1->prod_sel() == sel_PRVarPredicate)) {
+ const paths a_p = phylum_cast<const impl_elem_patternrepresentation_PRVarPredicate*>(kc_selvar_0_1)->paths_1;
+
+ return f_outmost_nl_preds_in_paths( a_p );
+
+ } else
+ {
+ return false;
+ }
+ }
+
+ }
+
+ static bool f_outmost_nl_preds_in_paths(paths p)
+ {
+ {
+ paths kc_selvar_0_1 = phylum_cast<paths>( p );
+ if ((kc_selvar_0_1->prod_sel() == sel_Conspaths) && ((kc_selvar_0_1)->path_1->prod_sel() == sel_Conspath)) {
+ const paths r_p = (kc_selvar_0_1)->paths_1;
+
+ return f_outmost_nl_preds_in_paths( r_p );
+
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_Conspaths) && ((kc_selvar_0_1)->path_1->prod_sel() == sel_Nilpath)) {
+ return true;
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_Nilpaths)) {
+ return false;
+ } else
+ { kc_no_default_in_with( "f_outmost_nl_preds_in_paths", __LINE__, __FILE__ );
+ return static_cast<bool>(0); }
+ }
+
+ }
+
+ bool f_is_known_ptr_type(ID id)
+ {
+ static phylumnames known = 0;
+
+ if (! known ) {
+ known = Nilphylumnames();
+ known = Consphylumnames( Id( Str( mkcasestring( "size_t" ))), known );
+ known = Consphylumnames( Id( Str( mkcasestring( "unsigned" ))), known );
+ known = Consphylumnames( Id( Str( mkcasestring( "enum_phyla" ))), known );
+ known = Consphylumnames( Id( Str( mkcasestring( "enum_operators" ))), known );
+ known = Consphylumnames( Id( Str( mkcasestring( "KC_UNIQ_INFO" ))), known );
+ known = Consphylumnames( Id( Str( mkcasestring( "bool" ))), known );
+ known = Consphylumnames( Id( Str( mkcasestring( "hashtable_t" ))), known );
+ known = Consphylumnames( Id( Str( mkcasestring( "KC_IO_STATUS" ))), known );
+ known = Consphylumnames( Id( Str( mkcasestring( "uview" ))), known );
+ known = Consphylumnames( Id( Str( mkcasestring( "rview" ))), known );
+ }
+ {
+ phylumnames kc_fe_selvar_1 = known ;
+
+ while(
+ kc_fe_selvar_1->prod_sel() == sel_Consphylumnames
+ ) {
+ ID kc_selvar_0_1 = kc_fe_selvar_1->ID_1;
+ {
+ {
+ {
+ const ID pn = kc_selvar_0_1;
+
+ if ( pn->eq( id )) {
+ return true;
+ }
+ }
+ }
+
+ }
+ kc_fe_selvar_1 = kc_fe_selvar_1->phylumnames_1;
+
+ }
+ }
+ return false;
+
+ }
+
+ withcasesinfo rewrite_withcasesinfo(withcasesinfo a_withcasesinfo)
+ {{
+ withcasesinfo kc_selvar_0_1 = phylum_cast<withcasesinfo>(a_withcasesinfo);
+ if ((kc_selvar_0_1->prod_sel() == sel_Conswithcasesinfo) && ((kc_selvar_0_1)->withcaseinfo_1->prod_sel() == sel_Withcaseinfo)) {
+ const patternrepresentation p = phylum_cast<const impl_withcaseinfo_Withcaseinfo*>((kc_selvar_0_1)->withcaseinfo_1)->patternrepresentation_1;
+ const patternrepresentation b = phylum_cast<const impl_withcaseinfo_Withcaseinfo*>((kc_selvar_0_1)->withcaseinfo_1)->patternrepresentation_2;
+ const Ctext ct = phylum_cast<const impl_withcaseinfo_Withcaseinfo*>((kc_selvar_0_1)->withcaseinfo_1)->Ctext_1;
+ const withcasesinfo r = (kc_selvar_0_1)->withcasesinfo_1;
+
+ return Conswithcasesinfo(
+ Withcaseinfo( p->rewrite(base_rview), b, ct ),
+ rewrite_withcasesinfo( r ) );
+
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_Nilwithcasesinfo)) {
+ return kc_selvar_0_1;
+ } else
+ { kc_no_default_in_with( "rewrite_withcasesinfo", __LINE__, __FILE__ );
+ return static_cast<withcasesinfo>(0); }
+ }
+
+ }
+
+ int pos_of_sole_dollar_or_pattern_in_patternchain(patternchain a_patternchain)
+ {
+ return t_pos_of_sole_dollar_or_pattern_in_patternchain(a_patternchain, -2, 1);
+
+ }
+
+ int t_pos_of_sole_dollar_or_pattern_in_patternchain(patternchain a_patternchain, int tmp_result, int pos)
+ {
+ if (tmp_result == -1) {
+ return tmp_result;
+ }
+ {
+ patternchain kc_selvar_0_1 = phylum_cast<patternchain>( a_patternchain );
+ if ((kc_selvar_0_1->prod_sel() == sel_Conspatternchain)) {
+ const patternchainitem h = (kc_selvar_0_1)->patternchainitem_1;
+ const patternchain t = (kc_selvar_0_1)->patternchain_1;
+
+ tmp_result = t_pos_of_sole_dollar_or_pattern_in_patternchain( t, tmp_result, pos+1 );
+ if (tmp_result == -1) {
+ return tmp_result;
+ }
+ {
+ patternchainitem kc_selvar_1_1 = phylum_cast<patternchainitem>( h );
+ if ((kc_selvar_1_1->prod_sel() == sel_PatternchainitemDollarid)) {
+
+ return tmp_result >= 0 ? -1 : pos;
+
+ } else
+ if ((kc_selvar_1_1->prod_sel() == sel_PatternchainitemOutmost)) {
+ const outmostpattern p = phylum_cast<const impl_patternchainitem_PatternchainitemOutmost*>(kc_selvar_1_1)->outmostpattern_1;
+
+ {
+ outmostpattern kc_selvar_2_1 = phylum_cast<outmostpattern>( p );
+ if ((kc_selvar_2_1->prod_sel() == sel_OPOperatorWildcard) && (phylum_cast<const impl_outmostpattern_OPOperatorWildcard*>(kc_selvar_2_1)->ID_1->prod_sel() == sel_Id)) {
+ const uniqID uid = phylum_cast<const impl_ID_Id*>(phylum_cast<const impl_outmostpattern_OPOperatorWildcard*>(kc_selvar_2_1)->ID_1)->uniqID_1;
+
+ {
+ IDtype kc_selvar_3_1 = phylum_cast<IDtype>( uid->type );
+ if ((kc_selvar_3_1->prod_sel() == sel_ITUnknown)) {
+
+ return tmp_result;
+
+ } else
+ if ((kc_selvar_3_1->prod_sel() == sel_ITPatternVariable)) {
+
+ return tmp_result;
+
+ } else
+ {
+
+ if (tmp_result >= 0) {
+ return -1;
+ } else {
+ return pos;
+ }
+ }
+ }
+
+ } else
+ {
+
+ return tmp_result >= 0 ? -1 : pos;
+
+ }
+ }
+
+ } else
+ {
+
+ return -1;
+
+ }
+ }
+
+ } else
+ {
+
+ return tmp_result;
+
+ }
+ }
+
+ }
+
+ string f_getidentfromstring(const char **c)
+ {
+ string s="";
+ if (isalnum(**c) || **c=='_')
+ while (isalnum(**c) || **c=='_') s+=*(*c)++;
+ else
+ while (!(isalnum(**c) || **c=='_' || **c=='\0')) s+=*(*c)++;
+ return s;
+
+ }
+
+
+ } // namespace kc
Index: llvm/test/Programs/MultiSource/Applications/kimwitu++/gutil.h
diff -c /dev/null llvm/test/Programs/MultiSource/Applications/kimwitu++/gutil.h:1.1
*** /dev/null Tue Apr 6 15:25:26 2004
--- llvm/test/Programs/MultiSource/Applications/kimwitu++/gutil.h Tue Apr 6 15:25:12 2004
***************
*** 0 ****
--- 1,81 ----
+ /* translation of file "gutil.k" */
+ /* generated by:
+ * @(#)$Author: criswell $
+ */
+ #ifndef KC_FUNCTIONS_gutil_HEADER
+ #define KC_FUNCTIONS_gutil_HEADER
+ #include "k.h" /* in case a user forgets */
+
+ namespace kc { }
+ using namespace kc;
+ /* included stuff */
+ //
+ // The Termprocessor Kimwitu++
+ //
+ // Copyright (C) 1991 University of Twente, Dept TIOS.
+ // Copyright (C) 1998-2003 Humboldt-University of Berlin, Institute of Informatics
+ // All rights reserved.
+ //
+ // Kimwitu++ is free software; you can redistribute it and/or modify
+ // it under the terms of the GNU General Public License as published by
+ // the Free Software Foundation; either version 2 of the License, or
+ // (at your option) any later version.
+ //
+ // Kimwitu++ is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ // GNU General Public License for more details.
+ //
+ // You should have received a copy of the GNU General Public License
+ // along with Kimwitu++; if not, write to the Free Software
+ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ //
+
+ extern phylumdeclaration The_abstract_phylum_decl;
+ extern phylumdeclaration The_abstract_phylum_ref_decl;
+ extern phylumdeclaration The_abstract_list_decl;
+
+ /* end included stuff */
+
+
+ namespace kc {
+ bool f_something_to_initialize (Ccode_option cco);
+ bool f_something_to_initialize (alternative a);
+ bool f_NilCtexts (Ctexts c);
+ bool f_constructors_in_operatordecl (alternative op);
+ bool f_constructors_in_phylumdecl (phylumdeclaration ph);
+ bool f_destructors_in_operatordecl (alternative op);
+ bool f_destructors_in_phylumdecl (phylumdeclaration ph);
+ bool f_no_params (ac_parameter_type_list p);
+ bool f_post_create_in_operatordecl (alternative op);
+ bool f_post_create_in_phylumdecl (phylumdeclaration ph);
+ bool f_rewrite_in_phylumdecl (phylumdeclaration ph);
+ bool f_rewrite_in_operatordecl (alternative op);
+ ID f_phylumofwithcasesinfo (withcasesinfo wcso);
+ ID f_phylumofpatternrepresentation (patternrepresentation a_patrep);
+ ac_parameter_type_list sort_extend_parameter_type_list (ac_declaration_list C_vardecls, ac_declarator decl);
+ ac_parameter_list t_sort_extend_parameter_list (ac_declaration_list C_vardecls, ac_identifier_list fn_args, ac_parameter_list temp);
+ void unparse (const char *s, printer_functor printer_fn, uview v);
+ ID f_mkselvar (const char *prefix, int level);
+ ID f_mkselvar2 (const char *prefix, int level, int branch);
+ char *f_mk_filename (casestring a_casestring, const char *suffix);
+ char *f_mk_filename (casestring a_casestring, const string &suffix);
+ char *f_make_identifier_basename (const char *fn);
+ rewriterulesinfo f_rewriterulesinfoofalternativeinview (alternative a_alternative, ID a_view);
+ rewriteviewsinfo f_rewriteviewsinfo_of_alternative (alternative a_alternative, viewnames a_views);
+ unparseviewsinfo f_unparseviewsinfo_of_alternative (alternative a_alternative, viewnames a_views);
+ ID f_typeof (path a_path);
+ ID f_operatorofpatternrepresentation (patternrepresentation a_patternrepresentation);
+ ID f_typeofunpsubterm (unpsubterm a_unpsubterm, ID a_operator);
+ elem_patternrepresentation f_outmost_nl_preds_in_rewriterulesinfo (rewriterulesinfo ri);
+ elem_patternrepresentation f_outmost_nl_preds_in_unparsedeclsinfo (unparsedeclsinfo ri);
+ bool f_is_known_ptr_type (ID id);
+ withcasesinfo rewrite_withcasesinfo (withcasesinfo a_withcasesinfo);
+ int pos_of_sole_dollar_or_pattern_in_patternchain (patternchain a_patternchain);
+ int t_pos_of_sole_dollar_or_pattern_in_patternchain (patternchain a_patternchain, int tmp_result, int pos);
+ string f_getidentfromstring (const char **c);
+
+ } // namespace kc
+
+ #endif // ! KC_FUNCTIONS_gutil_HEADER
+
Index: llvm/test/Programs/MultiSource/Applications/kimwitu++/k.cc
diff -c /dev/null llvm/test/Programs/MultiSource/Applications/kimwitu++/k.cc:1.1
*** /dev/null Tue Apr 6 15:25:26 2004
--- llvm/test/Programs/MultiSource/Applications/kimwitu++/k.cc Tue Apr 6 15:25:12 2004
***************
*** 0 ****
--- 1,13440 ----
+ /* translation of file(s)
+ "abs.k"
+ "main.k"
+ "parse.k"
+ "error.k"
+ "occur.k"
+ "util.k"
+ "gen.k"
+ "gutil.k"
+ "pat.k"
+ */
+ /* generated by:
+ * @(#)$Author: criswell $
+ */
+ #define KC_TYPES
+
+ #include "k.h"
+ #include <stdio.h>
+ #include <ctype.h>
+ #include <string>
+ #include <sys/types.h>
+ #include <stdlib.h>
+
+ #ifdef _MSC_VER
+ #pragma warning( disable : 4786 )
+ #endif
+ #include <new>
+ #include <set>
+ #include <list>
+ #include <algorithm>
+
+ #if !defined(USE_HASHSET) && (defined(__GNUC__) || defined(__ICC) || defined(__ECC)) \
+ && !defined(DONT_USE_HASHSET)
+ # define USE_HASHSET
+ #endif
+ #ifdef USE_HASHSET
+ # if defined(__GNUC__) && __GNUC__>2
+ # include <ext/hash_set>
+ # else
+ # include <hash_set>
+ # endif
+ #endif
+
+ using namespace std;
+
+ namespace kc {
+
+ inline bool
+ ht_less(casestring p1, casestring p2){
+ return kc_strcmp(p1->name, p2->name)<0;
+ }
+
+ inline bool
+ ht_less(nocasestring p1, nocasestring p2){
+ return kc_strcasecmp(p1->name, p2->name)<0;
+ }
+
+ inline bool
+ ht_less(real p1, real p2){
+ return p1->value < p2->value;
+ }
+
+ inline bool
+ ht_less(integer p1, integer p2){
+ return p1->value < p2->value;
+ }
+
+ inline bool
+ ht_less(voidptr p1, voidptr p2){
+ return p1->pointer < p2->pointer;
+ }
+
+ bool
+ ht_less(abstract_phylum p1, abstract_phylum p2)
+ {
+ enum_operators prod_sel=p1->prod_sel();
+ enum_operators prod_sel2=p2->prod_sel();
+ if(prod_sel<prod_sel2)
+ return true;
+ if(prod_sel>prod_sel2)
+ return false;
+ switch(prod_sel) {
+ case sel_NoCaseStr:
+ return ht_less(static_cast<nocasestring>(p1),static_cast<nocasestring>(p2));
+ case sel__Str:
+ return ht_less(static_cast<casestring>(p1),static_cast<casestring>(p2));
+ case sel__Real:
+ return ht_less(static_cast<real>(p1),static_cast<real>(p2));
+ case sel__Int:
+ return ht_less(static_cast<integer>(p1),static_cast<integer>(p2));
+ case sel__VoidPtr:
+ return ht_less(static_cast<voidptr>(p1),static_cast<voidptr>(p2));
+ default: {
+ int i=0;
+ bool still_unique = kc_storageclass_still_uniq[phylum_info[p1->phylum()].uniq_stored];
+ abstract_phylum sub1=0;
+ do {
+ sub1=p1->subphylum(i);
+ abstract_phylum sub2=p2->subphylum(i);
+ if(still_unique) {
+ if(sub1<sub2)
+ return true;
+ if(sub2<sub1)
+ return false;
+ }
+ else {
+ if(ht_less(sub1, sub2))
+ return true;
+ if(ht_less(sub2, sub1))
+ return false;
+ }
+ ++i;
+ } while(sub1);
+ }
+ }
+ return false;
+ }
+
+ template<typename T>
+ class phylum_less : std::binary_function<T, T, bool>
+ {
+ public:
+ bool operator()(const T& X, const T& Y) const
+ { return ht_less(X,Y); }
+ };
+
+ inline void deletefun(c_abstract_phylum t){
+ delete const_cast<abstract_phylum>(t);
+ }
+
+
+ #ifdef USE_HASHSET
+ struct hashitem {
+ size_t hashvalue;
+ casestring contents;
+ hashitem(casestring cs): contents(cs) {
+ unsigned long h = 0;
+ kc_char const *s = cs->name;
+ for ( ; *s; ++s)
+ h = 5*h + *s;
+ hashvalue=(size_t)h;
+ }
+ };
+
+ inline void deletefunhashitem(hashitem t) {
+ delete t.contents;
+ }
+
+ # ifdef __GNUC__
+ struct eq_hashitem { bool operator()(hashitem hi1, hashitem hi2) const {
+ return kc_strcmp(hi1.contents->name, hi2.contents->name) == 0; } };
+
+ struct hash_hashitem { size_t operator()(hashitem hi) const {
+ return hi.hashvalue; } };
+
+ # else
+ struct comp_hashitem {
+ enum { bucket_size = 4, min_buckets = 8 };
+ // bucket_size and min_buckets are just guesses
+ size_t operator()(const hashitem hi) const {
+ return hi.hashvalue; }
+ bool operator()(const hashitem hi1, const hashitem hi2) const {
+ return kc_strcmp(hi1.contents->name, hi2.contents->name) < 0; }
+ };
+ # endif // Whether gcc or icc
+ #endif // Whether hash or not
+
+ struct hashtable_level
+ {
+ hashtable_level(bool cod = true): clean_on_destruction(cod) { }
+ void clear(bool free_entries=true) {
+ if(free_entries)
+ clear_entries();
+ _casestring.clear();
+ _nocasestring.clear();
+ _integer.clear();
+ _real.clear();
+ _voidptr.clear();
+ _abstract_phylum.clear();
+ }
+ void clear_entries() {
+ #ifdef USE_HASHSET
+ std::for_each(_casestring.begin(),_casestring.end(),deletefunhashitem);
+ #else
+ std::for_each(_casestring.begin(),_casestring.end(),deletefun);
+ #endif
+ std::for_each(_nocasestring.begin(),_nocasestring.end(),deletefun);
+ std::for_each(_integer.begin(),_integer.end(),deletefun);
+ std::for_each(_real.begin(),_real.end(),deletefun);
+ std::for_each(_voidptr.begin(),_voidptr.end(),deletefun);
+ std::for_each(_abstract_phylum.begin(),_abstract_phylum.end(),deletefun);
+ }
+ ~hashtable_level() {
+ clear(clean_on_destruction);
+ }
+ abstract_phylum check_insert(abstract_phylum t) {
+ return *_abstract_phylum.insert(t).first;
+ }
+ casestring check_insert(casestring t) {
+ #ifdef USE_HASHSET
+ return (*_casestring.insert(hashitem(t)).first).contents;
+ #else
+ return *_casestring.insert(t).first;
+ #endif
+ }
+ nocasestring check_insert(nocasestring t) {
+ return *_nocasestring.insert(t).first;
+ }
+ integer check_insert(integer t) {
+ return *_integer.insert(t).first;
+ }
+ real check_insert(real t) {
+ return *_real.insert(t).first;
+ }
+ voidptr check_insert(voidptr t) {
+ return *_voidptr.insert(t).first;
+ }
+ private:
+ bool clean_on_destruction;
+ #ifdef USE_HASHSET
+ # ifdef __GNUC__
+ # if __GNUC__==2 || (__GNUC__==3 && __GNUC_MINOR__==0)
+ std::hash_set<hashitem, hash_hashitem, eq_hashitem> _casestring;
+ # else
+ __gnu_cxx::hash_set<hashitem, hash_hashitem, eq_hashitem> _casestring;
+ # endif
+ # else
+ std::hash_set<hashitem, comp_hashitem> _casestring;
+ # endif
+ #else
+ std::set<casestring, phylum_less<casestring> > _casestring;
+ #endif
+ std::set<nocasestring, phylum_less<nocasestring> > _nocasestring;
+ std::set<integer, phylum_less<integer> > _integer;
+ std::set<real, phylum_less<real> > _real;
+ std::set<voidptr, phylum_less<voidptr> > _voidptr;
+ std::set<abstract_phylum, phylum_less<abstract_phylum> > _abstract_phylum;
+ };
+
+ class hashtable_stack: public std::list<hashtable_level> {
+ public:
+ hashtable_stack(): _pos(begin()) { }
+
+ void inc_level() { _pos=insert(_pos, hashtable_level()); }
+ void dec_level() { if(valid() && _pos!=end()) ++_pos; }
+ void free_level() { if(_pos!=begin()) { erase(begin(),_pos);_pos=begin(); } }
+
+ bool valid() const { return !empty(); }
+ hashtable_level& get_level() { return *_pos; }
+
+ template<typename T>
+ T check_insert(T t) {
+ return dynamic_cast<T>((*_pos).check_insert(t));
+ }
+ private:
+ iterator _pos;
+ };
+
+ class hashtable_struct_t {
+ public:
+ // don't clean _static_level on destruction (program ends)
+ hashtable_struct_t(): _static_level(false), _to_be_freed(false), _dynamic(false) { }
+
+ template <typename T>
+ T ht_check_insert(T t) {
+ if(_dynamic && _dynamic_level.valid())
+ return _dynamic_level.check_insert(t);
+ else
+ return dynamic_cast<T>(_static_level.check_insert(t));
+ }
+ void ht_static() {_dynamic=false; }
+ void ht_dynamic() {
+ _dynamic=true;
+ if(!_dynamic_level.valid())
+ _dynamic_level.inc_level();
+ }
+ void ht_inc_level() { _dynamic_level.inc_level(); }
+ void ht_dec_level() { _dynamic_level.dec_level(); }
+ void ht_free_level() { _dynamic_level.free_level(); }
+ void ht_clear() { _static_level.clear(); _dynamic_level.clear(); _dynamic=false; }
+
+ bool to_be_freed() { return _to_be_freed; }
+ void set_to_be_freed(bool b=true) { _to_be_freed=b; }
+ private:
+ hashtable_level _static_level;
+ hashtable_stack _dynamic_level;
+ bool _to_be_freed; /* should be true for dynamic, false for statically allocated structures */
+ bool _dynamic;
+ };
+
+ impl_nocasestring_NoCaseStr::impl_nocasestring_NoCaseStr(const kc_char* _name) : name(_name) { }
+ void impl_nocasestring_NoCaseStr::make_own(int length) {
+ kc_char *newname=new kc_char[length+1];
+ for (int i=0; i < length && name[i]; ++i)
+ newname[i] = kc_tolower(name[i]);
+ newname[length]=0;
+ name=newname;
+ }
+
+ impl_casestring__Str::impl_casestring__Str(const kc_char* _name) : name(_name) { }
+ void impl_casestring__Str::make_own(int length) {
+ kc_char *newname=kc_strncpy(new kc_char[length+1],name,length);
+ newname[length]=0;
+ name=newname;
+ }
+ abstract_phylum impl_bindingidmark_BindingIdMark::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return uniqID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_bindingidmarks::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return bindingidmark_1;
+ case 1: return bindingidmarks_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_countedphylumdeclaration_CountedPhylumdeclaration::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return uniqID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_countedphylumdeclarations::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return countedphylumdeclaration_1;
+ case 1: return countedphylumdeclarations_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_addedphylumdeclaration_AddedPhylumdeclaration::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return uniqID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_addedphylumdeclarations::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return addedphylumdeclaration_1;
+ case 1: return addedphylumdeclarations_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_problem_Problem6::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ case 1: return casestring_2;
+ case 2: return casestring_3;
+ case 3: return casestring_4;
+ case 4: return casestring_5;
+ case 5: return casestring_6;
+ }
+ return 0;
+ }
+ abstract_phylum impl_problem_Problem5::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ case 1: return casestring_2;
+ case 2: return casestring_3;
+ case 3: return casestring_4;
+ case 4: return casestring_5;
+ }
+ return 0;
+ }
+ abstract_phylum impl_problem_Problem4::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ case 1: return casestring_2;
+ case 2: return casestring_3;
+ case 3: return casestring_4;
+ }
+ return 0;
+ }
+ abstract_phylum impl_problem_Problem3int1::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ case 1: return casestring_2;
+ case 2: return casestring_3;
+ case 3: return integer_1;
+ case 4: return casestring_4;
+ }
+ return 0;
+ }
+ abstract_phylum impl_problem_Problem3::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ case 1: return casestring_2;
+ case 2: return casestring_3;
+ }
+ return 0;
+ }
+ abstract_phylum impl_problem_Problem2::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ case 1: return casestring_2;
+ }
+ return 0;
+ }
+ abstract_phylum impl_problem_Problem1storageoption1ID::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ case 1: return storageoption_1;
+ case 2: return casestring_2;
+ case 3: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_problem_Problem1INT1ID1ID::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ case 1: return INT_1;
+ case 2: return casestring_2;
+ case 3: return ID_1;
+ case 4: return casestring_3;
+ case 5: return ID_2;
+ }
+ return 0;
+ }
+ abstract_phylum impl_problem_Problem1ID1ID1ID::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ case 1: return ID_1;
+ case 2: return casestring_2;
+ case 3: return ID_2;
+ case 4: return casestring_3;
+ case 5: return ID_3;
+ }
+ return 0;
+ }
+ abstract_phylum impl_problem_Problem1INT1ID::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ case 1: return INT_1;
+ case 2: return casestring_2;
+ case 3: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_problem_Problem1int1::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ case 1: return integer_1;
+ case 2: return casestring_2;
+ }
+ return 0;
+ }
+ abstract_phylum impl_problem_Problem1INT::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ case 1: return INT_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_problem_Problem1t1ID::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ case 1: return IDtype_1;
+ case 2: return casestring_2;
+ case 3: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_problem_Problem1ID1ID::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ case 1: return ID_1;
+ case 2: return casestring_2;
+ case 3: return ID_2;
+ }
+ return 0;
+ }
+ abstract_phylum impl_problem_Problem1we::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ case 1: return withexpression_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_problem_Problem1tID::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ case 1: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_problem_Problem1ID::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ case 1: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_problem_Problem1::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_error_Warning::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return fileline_1;
+ case 1: return problem_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_error_NonFatal::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return fileline_1;
+ case 1: return problem_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_error_Fatal::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return fileline_1;
+ case 1: return problem_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_baseclass_list::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return baseclass_list_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_baseclass_decl_BaseClassDecl::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return baseclass_list_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_baseclass_declarations::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return baseclass_decl_1;
+ case 1: return baseclass_declarations_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_base_init_AcBaseInit::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return ac_constant_expression_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_base_init_list::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_base_init_1;
+ case 1: return ac_base_init_list_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_opt_base_init_list_AcYesBaseInit::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_base_init_list_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_constant_expression_list::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_constant_expression_1;
+ case 1: return ac_constant_expression_list_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_constant_expression_AcConstExpr::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return Cexpression_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_constant_expression_option_Yesac_constant_expression::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_constant_expression_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_direct_abstract_declarator_AcDirAbsdeclFn::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_direct_abstract_declarator_option_1;
+ case 1: return ac_parameter_type_list_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_direct_abstract_declarator_AcDirAbsdeclArray::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_direct_abstract_declarator_option_1;
+ case 1: return ac_constant_expression_option_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_direct_abstract_declarator_AcDirAbsdeclPack::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_abstract_declarator_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_direct_abstract_declarator_option_Yesac_direct_abstract_declarator::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_direct_abstract_declarator_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_abstract_declarator_AcAbsdeclDirdecl::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_pointer_option_1;
+ case 1: return ac_direct_abstract_declarator_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_abstract_declarator_AcAbsdeclPointer::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_pointer_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_identifier_list::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return ac_identifier_list_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_parameter_declaration_AcParDeclAbsdecl::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_declaration_specifiers_1;
+ case 1: return ac_abstract_declarator_1;
+ case 2: return ac_constant_expression_option_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_parameter_declaration_AcParDeclDecl::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_declaration_specifiers_1;
+ case 1: return ac_declarator_1;
+ case 2: return ac_constant_expression_option_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_parameter_list::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_parameter_declaration_1;
+ case 1: return ac_parameter_list_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_parameter_type_list_AcParList3Dot::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_parameter_list_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_parameter_type_list_AcParList::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_parameter_list_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_type_qualifier_list::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_type_qualifier_1;
+ case 1: return ac_type_qualifier_list_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_class_qualifier_list::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return ac_class_qualifier_list_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_class_qualifier_help_list::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_direct_declarator_1;
+ case 1: return ac_class_qualifier_help_list_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_operator_name_AcOperatorName::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_pointer_AcPointerCons::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_type_qualifier_list_1;
+ case 1: return ac_pointer_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_pointer_AcPointerNil::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_type_qualifier_list_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_pointer_option_Yespointer::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_pointer_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_direct_declarator_AcOperatorDeclId::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_operator_name_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_direct_declarator_AcConvOperatorDecl::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return ID_2;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_direct_declarator_AcMemberDecl::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return ID_2;
+ case 2: return ac_constant_expression_list_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_direct_declarator_AcQualifiedDeclProto::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_class_qualifier_list_1;
+ case 1: return ac_direct_declarator_1;
+ case 2: return ac_parameter_type_list_1;
+ case 3: return ac_type_qualifier_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_direct_declarator_AcDirectDeclProto::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_direct_declarator_1;
+ case 1: return ac_parameter_type_list_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_direct_declarator_AcDirectDeclArray::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_direct_declarator_1;
+ case 1: return ac_constant_expression_option_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_direct_declarator_AcDirectDeclPack::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_declarator_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_direct_declarator_AcDirectDeclId::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_declarator_AcDeclarator::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_pointer_option_1;
+ case 1: return ac_ref_option_1;
+ case 2: return ac_direct_declarator_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_init_declarator_AcInitDecl::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_declarator_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_init_declarator_list::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_init_declarator_1;
+ case 1: return ac_init_declarator_list_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_type_specifier_AcTypeSpec::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_declaration_specifier_AcDeclSpecTypeQual::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_type_qualifier_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_declaration_specifier_AcDeclSpecTypeSpec::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_type_specifier_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_declaration_specifier_AcDeclSpecStorageSpec::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_storage_class_specifier_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_declaration_specifiers::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_declaration_specifier_1;
+ case 1: return ac_declaration_specifiers_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_declaration_list::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_declaration_1;
+ case 1: return ac_declaration_list_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ac_declaration_AcDeclaration::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_declaration_specifiers_1;
+ case 1: return ac_init_declarator_list_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_unparsedeclinfo_Unparsedeclinfo::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return patternrepresentation_1;
+ case 1: return patternrepresentation_2;
+ case 2: return unparseclause_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_unparsedeclsinfo::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return unparsedeclinfo_1;
+ case 1: return unparsedeclsinfo_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_unparseviewinfo_Unparseviewinfo::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return unparsedeclsinfo_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_unparseviewsinfo::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return unparseviewinfo_1;
+ case 1: return unparseviewsinfo_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_rewriteviewinfo_Rewriteviewinfo::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return rewriterulesinfo_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_rewriteviewsinfo::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return rewriteviewinfo_1;
+ case 1: return rewriteviewsinfo_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_withcaseinfo_Withcaseinfo::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return patternrepresentation_1;
+ case 1: return patternrepresentation_2;
+ case 2: return Ctext_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_withcasesinfo::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return withcaseinfo_1;
+ case 1: return withcasesinfo_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_rewriteruleinfo_Rewriteruleinfo::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return patternrepresentation_1;
+ case 1: return patternrepresentation_2;
+ case 2: return rewriteclause_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_rewriterulesinfo::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return rewriteruleinfo_1;
+ case 1: return rewriterulesinfo_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_argsnumbers::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return integer_1;
+ case 1: return argsnumbers_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_paths::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return path_1;
+ case 1: return paths_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_path::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return integer_1;
+ case 1: return path_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_elem_patternrepresentation_PRIntLiteral::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return path_1;
+ case 1: return INT_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_elem_patternrepresentation_PRStringLiteral::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return path_1;
+ case 1: return CexpressionDQ_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_elem_patternrepresentation_PRWildcard::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return path_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_elem_patternrepresentation_PRNonLeafBinding::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return path_1;
+ case 1: return ID_1;
+ case 2: return patternrepresentation_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_elem_patternrepresentation_PRUserPredicate::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return Cexpression_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_elem_patternrepresentation_PROperPredicate::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return path_1;
+ case 1: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_elem_patternrepresentation_PRVarPredicate::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return paths_1;
+ case 1: return ID_1;
+ case 2: return patternrepresentation_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_elem_patternrepresentation_PRBinding::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return path_1;
+ case 1: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_patternrepresentation::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return elem_patternrepresentation_1;
+ case 1: return patternrepresentation_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_patternrepresentations::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return patternrepresentation_1;
+ case 1: return patternrepresentations_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_variables::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return variables_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_phyla::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return phyla_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_operators::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return operators_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_IDtype_ITLanguageName::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return integer_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_IDtype_ITPatternVariable::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return integer_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_IDtype_ITUserFunction::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return fnclass_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_IDtype_ITUserOperator::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return alternative_1;
+ case 1: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_IDtype_ITPredefinedOperator::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return alternative_1;
+ case 1: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_IDtype_ITUserPhylum::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return phylumdeclaration_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_IDtype_ITPredefinedPhylum::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return phylumdeclaration_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_scopetypefileline_ScopeTypeFileLine::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return integer_1;
+ case 1: return IDtype_1;
+ case 2: return casestring_1;
+ case 3: return integer_2;
+ }
+ return 0;
+ }
+ abstract_phylum impl_scopetypefilelinestack::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return scopetypefileline_1;
+ case 1: return scopetypefilelinestack_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_languagenames::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return languagenames_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_languageoption_LanguageList::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return languagenames_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_viewnameoption_YesViewname::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_unpattributes::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return unpattributes_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_unpsubterm_UnpCastedVariable::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return ID_2;
+ }
+ return 0;
+ }
+ abstract_phylum impl_unpsubterm_UnpDollarvarAttr::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return INT_1;
+ case 1: return unpattributes_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_unpsubterm_UnpSubAttr::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return unpattributes_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_unpsubterm_UnpDollarvarTerm::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return INT_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_unpsubterm_UnpSubTerm::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_unparseitem_UViewVarDecl::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return ID_2;
+ case 2: return Cexpression_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_unparseitem_UnpBody::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return languageoption_1;
+ case 1: return unparseitems_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_unparseitem_UnpCtext::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return languageoption_1;
+ case 1: return Ctext_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_unparseitem_UnpSubexpr::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return languageoption_1;
+ case 1: return unpsubterm_1;
+ case 2: return viewnameoption_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_unparseitem_UnpStr::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return languageoption_1;
+ case 1: return CexpressionDQ_1;
+ case 2: return viewnameoption_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_unparseitems::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return unparseitem_1;
+ case 1: return unparseitems_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_viewnames::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return viewnames_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_unparseclause_UnparseClause::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return viewnames_1;
+ case 1: return unparseitems_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_unparseclauses::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return unparseclause_1;
+ case 1: return unparseclauses_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_unparsedeclaration_UnparseDeclaration::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return outmostpatterns_1;
+ case 1: return unparseclauses_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_unparsedeclarations::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return unparsedeclaration_1;
+ case 1: return unparsedeclarations_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_withcase_Withcase::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return patternchains_1;
+ case 1: return Ctext_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_withcases::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return withcase_1;
+ case 1: return withcases_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_withexpression_WECexpression::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return Cexpression_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_withexpression_WEVariable::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_withexpressions::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return withexpression_1;
+ case 1: return withexpressions_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_contextinfo_InForeachContext::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return patternchain_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_foreach_after_ForeachAfter::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return patternchain_1;
+ case 1: return idCexpressions_1;
+ case 2: return withexpressions_1;
+ case 3: return Ctext_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_Ctext_elem_CTextWithexpression::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return withexpressions_1;
+ case 1: return withcases_1;
+ case 2: return contextinfo_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_Ctext_elem_CTextForeachexpression::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return patternchain_1;
+ case 1: return idCexpressions_1;
+ case 2: return withexpressions_1;
+ case 3: return Ctext_1;
+ case 4: return foreach_after_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_Ctext_elem_CTextCbody::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return Ctext_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_Ctext_elem_CTextCexpressionSQ::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return CexpressionSQ_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_Ctext_elem_CTextCexpressionDQ::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return CexpressionDQ_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_Ctext_elem_CTextNl::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return integer_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_Ctext_elem_CTextDollarVar::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return INT_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_Ctext_elem_CTextLine::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_Ctext::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return Ctext_elem_1;
+ case 1: return Ctext_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_fnclass_StaticFn::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_fndeclaration_AcMemberDeclaration::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_declaration_specifiers_1;
+ case 1: return ac_declarator_1;
+ case 2: return ac_constant_expression_option_1;
+ case 3: return fnclass_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_fndeclaration_FnAcDeclaration::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ac_declaration_specifiers_1;
+ case 1: return ac_declarator_1;
+ case 2: return ac_declaration_list_1;
+ case 3: return ac_opt_base_init_list_1;
+ case 4: return Ctext_1;
+ case 5: return ID_1;
+ case 6: return fnclass_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_fndeclarations::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return fndeclaration_1;
+ case 1: return fndeclarations_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_fnfile_FnFile::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_fnfiles::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return fnfile_1;
+ case 1: return fnfiles_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_terms::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return term_1;
+ case 1: return terms_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_term_TIntLiteral::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return INT_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_term_TStringLiteral::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return CexpressionDQ_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_term_TCTerm::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return CexpressionSQ_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_term_TMemberVarDot::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return term_1;
+ case 1: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_term_TMemberVar::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return term_1;
+ case 1: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_term_TMethodDot::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return term_1;
+ case 1: return ID_1;
+ case 2: return terms_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_term_TMethod::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return term_1;
+ case 1: return ID_1;
+ case 2: return terms_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_term_TOperator::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return terms_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_term_TVariable::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_patterns::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return pattern_1;
+ case 1: return patterns_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_pattern_PIntLiteral::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return INT_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_pattern_PStringLiteral::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return CexpressionDQ_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_pattern_PNonLeafVariable::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return pattern_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_pattern_POperator::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return patterns_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_pattern_PVariable::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_outmostpattern_OPDefault::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return Cexpression_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_outmostpattern_OPWildcard::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return Cexpression_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_outmostpattern_OPNonLeafVariable::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return outmostpattern_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_outmostpattern_OPOperator::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return patterns_1;
+ case 2: return Cexpression_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_outmostpattern_OPOperatorWildcard::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return Cexpression_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_patternchainitem_PatternchainitemDollarid::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_patternchainitem_PatternchainitemGroup::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return patternchains_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_patternchainitem_PatternchainitemOutmost::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return outmostpattern_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_outmostpatterns::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return outmostpattern_1;
+ case 1: return outmostpatterns_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_patternchain::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return patternchainitem_1;
+ case 1: return patternchain_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_patternchains::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return patternchain_1;
+ case 1: return patternchains_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_rewriteclause_RewriteClause::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return viewnames_1;
+ case 1: return term_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_rewriteclauses::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return rewriteclause_1;
+ case 1: return rewriteclauses_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_rwdeclaration_RwDeclaration::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return outmostpatterns_1;
+ case 1: return rewriteclauses_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_rwdeclarations::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return rwdeclaration_1;
+ case 1: return rwdeclarations_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_includedeclaration_IncludeDeclaration::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_includedeclarations::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return includedeclaration_1;
+ case 1: return includedeclarations_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_includefile_IncludeFile::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_includefiles::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return includefile_1;
+ case 1: return includefiles_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_Ctexts::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return Ctext_1;
+ case 1: return Ctexts_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_idCexpression_IdCexpression::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return Cexpression_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_idCexpressions::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return idCexpression_1;
+ case 1: return idCexpressions_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_CexpressionSQ_elem_CExpressionSQPart::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_CexpressionSQ::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return CexpressionSQ_elem_1;
+ case 1: return CexpressionSQ_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_CexpressionDQ_elem_CExpressionDQPart::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_CexpressionDQ::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return CexpressionDQ_elem_1;
+ case 1: return CexpressionDQ_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_Cexpression_elem_CExpressionArray::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return Cexpression_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_Cexpression_elem_CExpressionPack::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return Cexpression_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_Cexpression_elem_CExpressionSQ::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return CexpressionSQ_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_Cexpression_elem_CExpressionDQ::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return CexpressionDQ_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_Cexpression_elem_CExpressionDollarvar::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return INT_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_Cexpression_elem_CExpressionPart::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_Cexpression::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return Cexpression_elem_1;
+ case 1: return Cexpression_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_attribute_initialisation_option_Yesattribute_initialisation::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return Cexpression_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_attribute_Attribute::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return ID_2;
+ case 2: return attribute_initialisation_option_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_attributes::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return attribute_1;
+ case 1: return attributes_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_Ccode_option_CcodeOption::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return attributes_1;
+ case 1: return Ctexts_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_argument_Argument::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return integer_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_arguments::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return arguments_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_alternative_Alternative::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return arguments_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_alternatives::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return alternative_1;
+ case 1: return alternatives_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_productionblock_PredefinedAlternatives::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return alternatives_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_productionblock_NonlistAlternatives::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return alternatives_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_productionblock_ListAlternatives::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return alternatives_1;
+ case 1: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_storageclasses::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return storageclasses_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_storageoption_PositiveStorageOption::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_storageoption_NegativeStorageOption::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_phylumdeclaration_PhylumDeclaration::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return storageoption_1;
+ case 2: return productionblock_1;
+ case 3: return Ccode_option_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_phylumnames::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return ID_1;
+ case 1: return phylumnames_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_phylumdeclarations::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return phylumdeclaration_1;
+ case 1: return phylumdeclarations_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_phylumdeclarationsroot_PhylumDeclarations::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return phylumdeclarations_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_STRING_String::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_INT_Int::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return integer_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_ID_Id::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return uniqID_1;
+ }
+ return 0;
+ }
+ abstract_phylum impl_uniqID_Str::subphylum(int no) const
+ {
+ switch(no){
+ case 0: return casestring_1;
+ }
+ return 0;
+ }
+ void impl_bindingidmark_BindingIdMark::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = uniqID_1 = dynamic_cast<uniqID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_bindingidmarks::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = bindingidmark_1 = dynamic_cast<bindingidmark>(val);break;
+ case 1: newval = bindingidmarks_1 = dynamic_cast<bindingidmarks>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_countedphylumdeclaration_CountedPhylumdeclaration::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = uniqID_1 = dynamic_cast<uniqID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_countedphylumdeclarations::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = countedphylumdeclaration_1 = dynamic_cast<countedphylumdeclaration>(val);break;
+ case 1: newval = countedphylumdeclarations_1 = dynamic_cast<countedphylumdeclarations>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_addedphylumdeclaration_AddedPhylumdeclaration::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = uniqID_1 = dynamic_cast<uniqID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_addedphylumdeclarations::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = addedphylumdeclaration_1 = dynamic_cast<addedphylumdeclaration>(val);break;
+ case 1: newval = addedphylumdeclarations_1 = dynamic_cast<addedphylumdeclarations>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_problem_Problem6::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ case 1: newval = casestring_2 = dynamic_cast<casestring>(val);break;
+ case 2: newval = casestring_3 = dynamic_cast<casestring>(val);break;
+ case 3: newval = casestring_4 = dynamic_cast<casestring>(val);break;
+ case 4: newval = casestring_5 = dynamic_cast<casestring>(val);break;
+ case 5: newval = casestring_6 = dynamic_cast<casestring>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_problem_Problem5::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ case 1: newval = casestring_2 = dynamic_cast<casestring>(val);break;
+ case 2: newval = casestring_3 = dynamic_cast<casestring>(val);break;
+ case 3: newval = casestring_4 = dynamic_cast<casestring>(val);break;
+ case 4: newval = casestring_5 = dynamic_cast<casestring>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_problem_Problem4::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ case 1: newval = casestring_2 = dynamic_cast<casestring>(val);break;
+ case 2: newval = casestring_3 = dynamic_cast<casestring>(val);break;
+ case 3: newval = casestring_4 = dynamic_cast<casestring>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_problem_Problem3int1::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ case 1: newval = casestring_2 = dynamic_cast<casestring>(val);break;
+ case 2: newval = casestring_3 = dynamic_cast<casestring>(val);break;
+ case 3: newval = integer_1 = dynamic_cast<integer>(val);break;
+ case 4: newval = casestring_4 = dynamic_cast<casestring>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_problem_Problem3::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ case 1: newval = casestring_2 = dynamic_cast<casestring>(val);break;
+ case 2: newval = casestring_3 = dynamic_cast<casestring>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_problem_Problem2::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ case 1: newval = casestring_2 = dynamic_cast<casestring>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_problem_Problem1storageoption1ID::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ case 1: newval = storageoption_1 = dynamic_cast<storageoption>(val);break;
+ case 2: newval = casestring_2 = dynamic_cast<casestring>(val);break;
+ case 3: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_problem_Problem1INT1ID1ID::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ case 1: newval = INT_1 = dynamic_cast<INT>(val);break;
+ case 2: newval = casestring_2 = dynamic_cast<casestring>(val);break;
+ case 3: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 4: newval = casestring_3 = dynamic_cast<casestring>(val);break;
+ case 5: newval = ID_2 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_problem_Problem1ID1ID1ID::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ case 1: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 2: newval = casestring_2 = dynamic_cast<casestring>(val);break;
+ case 3: newval = ID_2 = dynamic_cast<ID>(val);break;
+ case 4: newval = casestring_3 = dynamic_cast<casestring>(val);break;
+ case 5: newval = ID_3 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_problem_Problem1INT1ID::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ case 1: newval = INT_1 = dynamic_cast<INT>(val);break;
+ case 2: newval = casestring_2 = dynamic_cast<casestring>(val);break;
+ case 3: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_problem_Problem1int1::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ case 1: newval = integer_1 = dynamic_cast<integer>(val);break;
+ case 2: newval = casestring_2 = dynamic_cast<casestring>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_problem_Problem1INT::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ case 1: newval = INT_1 = dynamic_cast<INT>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_problem_Problem1t1ID::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ case 1: newval = IDtype_1 = dynamic_cast<IDtype>(val);break;
+ case 2: newval = casestring_2 = dynamic_cast<casestring>(val);break;
+ case 3: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_problem_Problem1ID1ID::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ case 1: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 2: newval = casestring_2 = dynamic_cast<casestring>(val);break;
+ case 3: newval = ID_2 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_problem_Problem1we::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ case 1: newval = withexpression_1 = dynamic_cast<withexpression>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_problem_Problem1tID::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ case 1: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_problem_Problem1ID::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ case 1: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_problem_Problem1::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_error_Warning::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = fileline_1 = dynamic_cast<fileline>(val);break;
+ case 1: newval = problem_1 = dynamic_cast<problem>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_error_NonFatal::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = fileline_1 = dynamic_cast<fileline>(val);break;
+ case 1: newval = problem_1 = dynamic_cast<problem>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_error_Fatal::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = fileline_1 = dynamic_cast<fileline>(val);break;
+ case 1: newval = problem_1 = dynamic_cast<problem>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_baseclass_list::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = baseclass_list_1 = dynamic_cast<baseclass_list>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_baseclass_decl_BaseClassDecl::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = baseclass_list_1 = dynamic_cast<baseclass_list>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_baseclass_declarations::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = baseclass_decl_1 = dynamic_cast<baseclass_decl>(val);break;
+ case 1: newval = baseclass_declarations_1 = dynamic_cast<baseclass_declarations>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_base_init_AcBaseInit::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = ac_constant_expression_1 = dynamic_cast<ac_constant_expression>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_base_init_list::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_base_init_1 = dynamic_cast<ac_base_init>(val);break;
+ case 1: newval = ac_base_init_list_1 = dynamic_cast<ac_base_init_list>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_opt_base_init_list_AcYesBaseInit::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_base_init_list_1 = dynamic_cast<ac_base_init_list>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_constant_expression_list::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_constant_expression_1 = dynamic_cast<ac_constant_expression>(val);break;
+ case 1: newval = ac_constant_expression_list_1 = dynamic_cast<ac_constant_expression_list>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_constant_expression_AcConstExpr::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = Cexpression_1 = dynamic_cast<Cexpression>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_constant_expression_option_Yesac_constant_expression::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_constant_expression_1 = dynamic_cast<ac_constant_expression>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_direct_abstract_declarator_AcDirAbsdeclFn::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_direct_abstract_declarator_option_1 = dynamic_cast<ac_direct_abstract_declarator_option>(val);break;
+ case 1: newval = ac_parameter_type_list_1 = dynamic_cast<ac_parameter_type_list>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_direct_abstract_declarator_AcDirAbsdeclArray::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_direct_abstract_declarator_option_1 = dynamic_cast<ac_direct_abstract_declarator_option>(val);break;
+ case 1: newval = ac_constant_expression_option_1 = dynamic_cast<ac_constant_expression_option>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_direct_abstract_declarator_AcDirAbsdeclPack::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_abstract_declarator_1 = dynamic_cast<ac_abstract_declarator>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_direct_abstract_declarator_option_Yesac_direct_abstract_declarator::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_direct_abstract_declarator_1 = dynamic_cast<ac_direct_abstract_declarator>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_abstract_declarator_AcAbsdeclDirdecl::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_pointer_option_1 = dynamic_cast<ac_pointer_option>(val);break;
+ case 1: newval = ac_direct_abstract_declarator_1 = dynamic_cast<ac_direct_abstract_declarator>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_abstract_declarator_AcAbsdeclPointer::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_pointer_1 = dynamic_cast<ac_pointer>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_identifier_list::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = ac_identifier_list_1 = dynamic_cast<ac_identifier_list>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_parameter_declaration_AcParDeclAbsdecl::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_declaration_specifiers_1 = dynamic_cast<ac_declaration_specifiers>(val);break;
+ case 1: newval = ac_abstract_declarator_1 = dynamic_cast<ac_abstract_declarator>(val);break;
+ case 2: newval = ac_constant_expression_option_1 = dynamic_cast<ac_constant_expression_option>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_parameter_declaration_AcParDeclDecl::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_declaration_specifiers_1 = dynamic_cast<ac_declaration_specifiers>(val);break;
+ case 1: newval = ac_declarator_1 = dynamic_cast<ac_declarator>(val);break;
+ case 2: newval = ac_constant_expression_option_1 = dynamic_cast<ac_constant_expression_option>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_parameter_list::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_parameter_declaration_1 = dynamic_cast<ac_parameter_declaration>(val);break;
+ case 1: newval = ac_parameter_list_1 = dynamic_cast<ac_parameter_list>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_parameter_type_list_AcParList3Dot::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_parameter_list_1 = dynamic_cast<ac_parameter_list>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_parameter_type_list_AcParList::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_parameter_list_1 = dynamic_cast<ac_parameter_list>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_type_qualifier_list::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_type_qualifier_1 = dynamic_cast<ac_type_qualifier>(val);break;
+ case 1: newval = ac_type_qualifier_list_1 = dynamic_cast<ac_type_qualifier_list>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_class_qualifier_list::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = ac_class_qualifier_list_1 = dynamic_cast<ac_class_qualifier_list>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_class_qualifier_help_list::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_direct_declarator_1 = dynamic_cast<ac_direct_declarator>(val);break;
+ case 1: newval = ac_class_qualifier_help_list_1 = dynamic_cast<ac_class_qualifier_help_list>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_operator_name_AcOperatorName::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_pointer_AcPointerCons::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_type_qualifier_list_1 = dynamic_cast<ac_type_qualifier_list>(val);break;
+ case 1: newval = ac_pointer_1 = dynamic_cast<ac_pointer>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_pointer_AcPointerNil::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_type_qualifier_list_1 = dynamic_cast<ac_type_qualifier_list>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_pointer_option_Yespointer::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_pointer_1 = dynamic_cast<ac_pointer>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_direct_declarator_AcOperatorDeclId::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_operator_name_1 = dynamic_cast<ac_operator_name>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_direct_declarator_AcConvOperatorDecl::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = ID_2 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_direct_declarator_AcMemberDecl::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = ID_2 = dynamic_cast<ID>(val);break;
+ case 2: newval = ac_constant_expression_list_1 = dynamic_cast<ac_constant_expression_list>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_direct_declarator_AcQualifiedDeclProto::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_class_qualifier_list_1 = dynamic_cast<ac_class_qualifier_list>(val);break;
+ case 1: newval = ac_direct_declarator_1 = dynamic_cast<ac_direct_declarator>(val);break;
+ case 2: newval = ac_parameter_type_list_1 = dynamic_cast<ac_parameter_type_list>(val);break;
+ case 3: newval = ac_type_qualifier_1 = dynamic_cast<ac_type_qualifier>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_direct_declarator_AcDirectDeclProto::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_direct_declarator_1 = dynamic_cast<ac_direct_declarator>(val);break;
+ case 1: newval = ac_parameter_type_list_1 = dynamic_cast<ac_parameter_type_list>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_direct_declarator_AcDirectDeclArray::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_direct_declarator_1 = dynamic_cast<ac_direct_declarator>(val);break;
+ case 1: newval = ac_constant_expression_option_1 = dynamic_cast<ac_constant_expression_option>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_direct_declarator_AcDirectDeclPack::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_declarator_1 = dynamic_cast<ac_declarator>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_direct_declarator_AcDirectDeclId::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_declarator_AcDeclarator::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_pointer_option_1 = dynamic_cast<ac_pointer_option>(val);break;
+ case 1: newval = ac_ref_option_1 = dynamic_cast<ac_ref_option>(val);break;
+ case 2: newval = ac_direct_declarator_1 = dynamic_cast<ac_direct_declarator>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_init_declarator_AcInitDecl::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_declarator_1 = dynamic_cast<ac_declarator>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_init_declarator_list::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_init_declarator_1 = dynamic_cast<ac_init_declarator>(val);break;
+ case 1: newval = ac_init_declarator_list_1 = dynamic_cast<ac_init_declarator_list>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_type_specifier_AcTypeSpec::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_declaration_specifier_AcDeclSpecTypeQual::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_type_qualifier_1 = dynamic_cast<ac_type_qualifier>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_declaration_specifier_AcDeclSpecTypeSpec::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_type_specifier_1 = dynamic_cast<ac_type_specifier>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_declaration_specifier_AcDeclSpecStorageSpec::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_storage_class_specifier_1 = dynamic_cast<ac_storage_class_specifier>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_declaration_specifiers::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_declaration_specifier_1 = dynamic_cast<ac_declaration_specifier>(val);break;
+ case 1: newval = ac_declaration_specifiers_1 = dynamic_cast<ac_declaration_specifiers>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_declaration_list::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_declaration_1 = dynamic_cast<ac_declaration>(val);break;
+ case 1: newval = ac_declaration_list_1 = dynamic_cast<ac_declaration_list>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ac_declaration_AcDeclaration::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_declaration_specifiers_1 = dynamic_cast<ac_declaration_specifiers>(val);break;
+ case 1: newval = ac_init_declarator_list_1 = dynamic_cast<ac_init_declarator_list>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_unparsedeclinfo_Unparsedeclinfo::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = patternrepresentation_1 = dynamic_cast<patternrepresentation>(val);break;
+ case 1: newval = patternrepresentation_2 = dynamic_cast<patternrepresentation>(val);break;
+ case 2: newval = unparseclause_1 = dynamic_cast<unparseclause>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_unparsedeclsinfo::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = unparsedeclinfo_1 = dynamic_cast<unparsedeclinfo>(val);break;
+ case 1: newval = unparsedeclsinfo_1 = dynamic_cast<unparsedeclsinfo>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_unparseviewinfo_Unparseviewinfo::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = unparsedeclsinfo_1 = dynamic_cast<unparsedeclsinfo>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_unparseviewsinfo::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = unparseviewinfo_1 = dynamic_cast<unparseviewinfo>(val);break;
+ case 1: newval = unparseviewsinfo_1 = dynamic_cast<unparseviewsinfo>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_rewriteviewinfo_Rewriteviewinfo::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = rewriterulesinfo_1 = dynamic_cast<rewriterulesinfo>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_rewriteviewsinfo::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = rewriteviewinfo_1 = dynamic_cast<rewriteviewinfo>(val);break;
+ case 1: newval = rewriteviewsinfo_1 = dynamic_cast<rewriteviewsinfo>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_withcaseinfo_Withcaseinfo::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = patternrepresentation_1 = dynamic_cast<patternrepresentation>(val);break;
+ case 1: newval = patternrepresentation_2 = dynamic_cast<patternrepresentation>(val);break;
+ case 2: newval = Ctext_1 = dynamic_cast<Ctext>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_withcasesinfo::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = withcaseinfo_1 = dynamic_cast<withcaseinfo>(val);break;
+ case 1: newval = withcasesinfo_1 = dynamic_cast<withcasesinfo>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_rewriteruleinfo_Rewriteruleinfo::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = patternrepresentation_1 = dynamic_cast<patternrepresentation>(val);break;
+ case 1: newval = patternrepresentation_2 = dynamic_cast<patternrepresentation>(val);break;
+ case 2: newval = rewriteclause_1 = dynamic_cast<rewriteclause>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_rewriterulesinfo::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = rewriteruleinfo_1 = dynamic_cast<rewriteruleinfo>(val);break;
+ case 1: newval = rewriterulesinfo_1 = dynamic_cast<rewriterulesinfo>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_argsnumbers::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = integer_1 = dynamic_cast<integer>(val);break;
+ case 1: newval = argsnumbers_1 = dynamic_cast<argsnumbers>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_paths::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = path_1 = dynamic_cast<path>(val);break;
+ case 1: newval = paths_1 = dynamic_cast<paths>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_path::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = integer_1 = dynamic_cast<integer>(val);break;
+ case 1: newval = path_1 = dynamic_cast<path>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_elem_patternrepresentation_PRIntLiteral::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = path_1 = dynamic_cast<path>(val);break;
+ case 1: newval = INT_1 = dynamic_cast<INT>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_elem_patternrepresentation_PRStringLiteral::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = path_1 = dynamic_cast<path>(val);break;
+ case 1: newval = CexpressionDQ_1 = dynamic_cast<CexpressionDQ>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_elem_patternrepresentation_PRWildcard::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = path_1 = dynamic_cast<path>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_elem_patternrepresentation_PRNonLeafBinding::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = path_1 = dynamic_cast<path>(val);break;
+ case 1: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 2: newval = patternrepresentation_1 = dynamic_cast<patternrepresentation>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_elem_patternrepresentation_PRUserPredicate::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = Cexpression_1 = dynamic_cast<Cexpression>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_elem_patternrepresentation_PROperPredicate::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = path_1 = dynamic_cast<path>(val);break;
+ case 1: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_elem_patternrepresentation_PRVarPredicate::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = paths_1 = dynamic_cast<paths>(val);break;
+ case 1: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 2: newval = patternrepresentation_1 = dynamic_cast<patternrepresentation>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_elem_patternrepresentation_PRBinding::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = path_1 = dynamic_cast<path>(val);break;
+ case 1: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_patternrepresentation::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = elem_patternrepresentation_1 = dynamic_cast<elem_patternrepresentation>(val);break;
+ case 1: newval = patternrepresentation_1 = dynamic_cast<patternrepresentation>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_patternrepresentations::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = patternrepresentation_1 = dynamic_cast<patternrepresentation>(val);break;
+ case 1: newval = patternrepresentations_1 = dynamic_cast<patternrepresentations>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_variables::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = variables_1 = dynamic_cast<variables>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_phyla::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = phyla_1 = dynamic_cast<phyla>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_operators::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = operators_1 = dynamic_cast<operators>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_IDtype_ITLanguageName::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = integer_1 = dynamic_cast<integer>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_IDtype_ITPatternVariable::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = integer_1 = dynamic_cast<integer>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_IDtype_ITUserFunction::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = fnclass_1 = dynamic_cast<fnclass>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_IDtype_ITUserOperator::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = alternative_1 = dynamic_cast<alternative>(val);break;
+ case 1: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_IDtype_ITPredefinedOperator::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = alternative_1 = dynamic_cast<alternative>(val);break;
+ case 1: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_IDtype_ITUserPhylum::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = phylumdeclaration_1 = dynamic_cast<phylumdeclaration>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_IDtype_ITPredefinedPhylum::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = phylumdeclaration_1 = dynamic_cast<phylumdeclaration>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_scopetypefileline_ScopeTypeFileLine::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = integer_1 = dynamic_cast<integer>(val);break;
+ case 1: newval = IDtype_1 = dynamic_cast<IDtype>(val);break;
+ case 2: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ case 3: newval = integer_2 = dynamic_cast<integer>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_scopetypefilelinestack::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = scopetypefileline_1 = dynamic_cast<scopetypefileline>(val);break;
+ case 1: newval = scopetypefilelinestack_1 = dynamic_cast<scopetypefilelinestack>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_languagenames::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = languagenames_1 = dynamic_cast<languagenames>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_languageoption_LanguageList::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = languagenames_1 = dynamic_cast<languagenames>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_viewnameoption_YesViewname::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_unpattributes::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = unpattributes_1 = dynamic_cast<unpattributes>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_unpsubterm_UnpCastedVariable::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = ID_2 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_unpsubterm_UnpDollarvarAttr::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = INT_1 = dynamic_cast<INT>(val);break;
+ case 1: newval = unpattributes_1 = dynamic_cast<unpattributes>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_unpsubterm_UnpSubAttr::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = unpattributes_1 = dynamic_cast<unpattributes>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_unpsubterm_UnpDollarvarTerm::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = INT_1 = dynamic_cast<INT>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_unpsubterm_UnpSubTerm::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_unparseitem_UViewVarDecl::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = ID_2 = dynamic_cast<ID>(val);break;
+ case 2: newval = Cexpression_1 = dynamic_cast<Cexpression>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_unparseitem_UnpBody::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = languageoption_1 = dynamic_cast<languageoption>(val);break;
+ case 1: newval = unparseitems_1 = dynamic_cast<unparseitems>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_unparseitem_UnpCtext::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = languageoption_1 = dynamic_cast<languageoption>(val);break;
+ case 1: newval = Ctext_1 = dynamic_cast<Ctext>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_unparseitem_UnpSubexpr::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = languageoption_1 = dynamic_cast<languageoption>(val);break;
+ case 1: newval = unpsubterm_1 = dynamic_cast<unpsubterm>(val);break;
+ case 2: newval = viewnameoption_1 = dynamic_cast<viewnameoption>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_unparseitem_UnpStr::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = languageoption_1 = dynamic_cast<languageoption>(val);break;
+ case 1: newval = CexpressionDQ_1 = dynamic_cast<CexpressionDQ>(val);break;
+ case 2: newval = viewnameoption_1 = dynamic_cast<viewnameoption>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_unparseitems::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = unparseitem_1 = dynamic_cast<unparseitem>(val);break;
+ case 1: newval = unparseitems_1 = dynamic_cast<unparseitems>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_viewnames::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = viewnames_1 = dynamic_cast<viewnames>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_unparseclause_UnparseClause::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = viewnames_1 = dynamic_cast<viewnames>(val);break;
+ case 1: newval = unparseitems_1 = dynamic_cast<unparseitems>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_unparseclauses::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = unparseclause_1 = dynamic_cast<unparseclause>(val);break;
+ case 1: newval = unparseclauses_1 = dynamic_cast<unparseclauses>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_unparsedeclaration_UnparseDeclaration::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = outmostpatterns_1 = dynamic_cast<outmostpatterns>(val);break;
+ case 1: newval = unparseclauses_1 = dynamic_cast<unparseclauses>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_unparsedeclarations::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = unparsedeclaration_1 = dynamic_cast<unparsedeclaration>(val);break;
+ case 1: newval = unparsedeclarations_1 = dynamic_cast<unparsedeclarations>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_withcase_Withcase::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = patternchains_1 = dynamic_cast<patternchains>(val);break;
+ case 1: newval = Ctext_1 = dynamic_cast<Ctext>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_withcases::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = withcase_1 = dynamic_cast<withcase>(val);break;
+ case 1: newval = withcases_1 = dynamic_cast<withcases>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_withexpression_WECexpression::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = Cexpression_1 = dynamic_cast<Cexpression>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_withexpression_WEVariable::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_withexpressions::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = withexpression_1 = dynamic_cast<withexpression>(val);break;
+ case 1: newval = withexpressions_1 = dynamic_cast<withexpressions>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_contextinfo_InForeachContext::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = patternchain_1 = dynamic_cast<patternchain>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_foreach_after_ForeachAfter::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = patternchain_1 = dynamic_cast<patternchain>(val);break;
+ case 1: newval = idCexpressions_1 = dynamic_cast<idCexpressions>(val);break;
+ case 2: newval = withexpressions_1 = dynamic_cast<withexpressions>(val);break;
+ case 3: newval = Ctext_1 = dynamic_cast<Ctext>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_Ctext_elem_CTextWithexpression::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = withexpressions_1 = dynamic_cast<withexpressions>(val);break;
+ case 1: newval = withcases_1 = dynamic_cast<withcases>(val);break;
+ case 2: newval = contextinfo_1 = dynamic_cast<contextinfo>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_Ctext_elem_CTextForeachexpression::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = patternchain_1 = dynamic_cast<patternchain>(val);break;
+ case 1: newval = idCexpressions_1 = dynamic_cast<idCexpressions>(val);break;
+ case 2: newval = withexpressions_1 = dynamic_cast<withexpressions>(val);break;
+ case 3: newval = Ctext_1 = dynamic_cast<Ctext>(val);break;
+ case 4: newval = foreach_after_1 = dynamic_cast<foreach_after>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_Ctext_elem_CTextCbody::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = Ctext_1 = dynamic_cast<Ctext>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_Ctext_elem_CTextCexpressionSQ::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = CexpressionSQ_1 = dynamic_cast<CexpressionSQ>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_Ctext_elem_CTextCexpressionDQ::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = CexpressionDQ_1 = dynamic_cast<CexpressionDQ>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_Ctext_elem_CTextNl::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = integer_1 = dynamic_cast<integer>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_Ctext_elem_CTextDollarVar::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = INT_1 = dynamic_cast<INT>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_Ctext_elem_CTextLine::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_Ctext::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = Ctext_elem_1 = dynamic_cast<Ctext_elem>(val);break;
+ case 1: newval = Ctext_1 = dynamic_cast<Ctext>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_fnclass_StaticFn::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_fndeclaration_AcMemberDeclaration::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_declaration_specifiers_1 = dynamic_cast<ac_declaration_specifiers>(val);break;
+ case 1: newval = ac_declarator_1 = dynamic_cast<ac_declarator>(val);break;
+ case 2: newval = ac_constant_expression_option_1 = dynamic_cast<ac_constant_expression_option>(val);break;
+ case 3: newval = fnclass_1 = dynamic_cast<fnclass>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_fndeclaration_FnAcDeclaration::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ac_declaration_specifiers_1 = dynamic_cast<ac_declaration_specifiers>(val);break;
+ case 1: newval = ac_declarator_1 = dynamic_cast<ac_declarator>(val);break;
+ case 2: newval = ac_declaration_list_1 = dynamic_cast<ac_declaration_list>(val);break;
+ case 3: newval = ac_opt_base_init_list_1 = dynamic_cast<ac_opt_base_init_list>(val);break;
+ case 4: newval = Ctext_1 = dynamic_cast<Ctext>(val);break;
+ case 5: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 6: newval = fnclass_1 = dynamic_cast<fnclass>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_fndeclarations::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = fndeclaration_1 = dynamic_cast<fndeclaration>(val);break;
+ case 1: newval = fndeclarations_1 = dynamic_cast<fndeclarations>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_fnfile_FnFile::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_fnfiles::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = fnfile_1 = dynamic_cast<fnfile>(val);break;
+ case 1: newval = fnfiles_1 = dynamic_cast<fnfiles>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_terms::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = term_1 = dynamic_cast<term>(val);break;
+ case 1: newval = terms_1 = dynamic_cast<terms>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_term_TIntLiteral::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = INT_1 = dynamic_cast<INT>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_term_TStringLiteral::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = CexpressionDQ_1 = dynamic_cast<CexpressionDQ>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_term_TCTerm::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = CexpressionSQ_1 = dynamic_cast<CexpressionSQ>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_term_TMemberVarDot::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = term_1 = dynamic_cast<term>(val);break;
+ case 1: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_term_TMemberVar::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = term_1 = dynamic_cast<term>(val);break;
+ case 1: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_term_TMethodDot::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = term_1 = dynamic_cast<term>(val);break;
+ case 1: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 2: newval = terms_1 = dynamic_cast<terms>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_term_TMethod::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = term_1 = dynamic_cast<term>(val);break;
+ case 1: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 2: newval = terms_1 = dynamic_cast<terms>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_term_TOperator::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = terms_1 = dynamic_cast<terms>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_term_TVariable::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_patterns::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = pattern_1 = dynamic_cast<pattern>(val);break;
+ case 1: newval = patterns_1 = dynamic_cast<patterns>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_pattern_PIntLiteral::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = INT_1 = dynamic_cast<INT>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_pattern_PStringLiteral::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = CexpressionDQ_1 = dynamic_cast<CexpressionDQ>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_pattern_PNonLeafVariable::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = pattern_1 = dynamic_cast<pattern>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_pattern_POperator::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = patterns_1 = dynamic_cast<patterns>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_pattern_PVariable::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_outmostpattern_OPDefault::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = Cexpression_1 = dynamic_cast<Cexpression>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_outmostpattern_OPWildcard::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = Cexpression_1 = dynamic_cast<Cexpression>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_outmostpattern_OPNonLeafVariable::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = outmostpattern_1 = dynamic_cast<outmostpattern>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_outmostpattern_OPOperator::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = patterns_1 = dynamic_cast<patterns>(val);break;
+ case 2: newval = Cexpression_1 = dynamic_cast<Cexpression>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_outmostpattern_OPOperatorWildcard::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = Cexpression_1 = dynamic_cast<Cexpression>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_patternchainitem_PatternchainitemDollarid::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_patternchainitem_PatternchainitemGroup::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = patternchains_1 = dynamic_cast<patternchains>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_patternchainitem_PatternchainitemOutmost::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = outmostpattern_1 = dynamic_cast<outmostpattern>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_outmostpatterns::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = outmostpattern_1 = dynamic_cast<outmostpattern>(val);break;
+ case 1: newval = outmostpatterns_1 = dynamic_cast<outmostpatterns>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_patternchain::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = patternchainitem_1 = dynamic_cast<patternchainitem>(val);break;
+ case 1: newval = patternchain_1 = dynamic_cast<patternchain>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_patternchains::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = patternchain_1 = dynamic_cast<patternchain>(val);break;
+ case 1: newval = patternchains_1 = dynamic_cast<patternchains>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_rewriteclause_RewriteClause::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = viewnames_1 = dynamic_cast<viewnames>(val);break;
+ case 1: newval = term_1 = dynamic_cast<term>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_rewriteclauses::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = rewriteclause_1 = dynamic_cast<rewriteclause>(val);break;
+ case 1: newval = rewriteclauses_1 = dynamic_cast<rewriteclauses>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_rwdeclaration_RwDeclaration::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = outmostpatterns_1 = dynamic_cast<outmostpatterns>(val);break;
+ case 1: newval = rewriteclauses_1 = dynamic_cast<rewriteclauses>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_rwdeclarations::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = rwdeclaration_1 = dynamic_cast<rwdeclaration>(val);break;
+ case 1: newval = rwdeclarations_1 = dynamic_cast<rwdeclarations>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_includedeclaration_IncludeDeclaration::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_includedeclarations::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = includedeclaration_1 = dynamic_cast<includedeclaration>(val);break;
+ case 1: newval = includedeclarations_1 = dynamic_cast<includedeclarations>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_includefile_IncludeFile::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_includefiles::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = includefile_1 = dynamic_cast<includefile>(val);break;
+ case 1: newval = includefiles_1 = dynamic_cast<includefiles>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_Ctexts::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = Ctext_1 = dynamic_cast<Ctext>(val);break;
+ case 1: newval = Ctexts_1 = dynamic_cast<Ctexts>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_idCexpression_IdCexpression::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = Cexpression_1 = dynamic_cast<Cexpression>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_idCexpressions::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = idCexpression_1 = dynamic_cast<idCexpression>(val);break;
+ case 1: newval = idCexpressions_1 = dynamic_cast<idCexpressions>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_CexpressionSQ_elem_CExpressionSQPart::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_CexpressionSQ::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = CexpressionSQ_elem_1 = dynamic_cast<CexpressionSQ_elem>(val);break;
+ case 1: newval = CexpressionSQ_1 = dynamic_cast<CexpressionSQ>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_CexpressionDQ_elem_CExpressionDQPart::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_CexpressionDQ::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = CexpressionDQ_elem_1 = dynamic_cast<CexpressionDQ_elem>(val);break;
+ case 1: newval = CexpressionDQ_1 = dynamic_cast<CexpressionDQ>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_Cexpression_elem_CExpressionArray::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = Cexpression_1 = dynamic_cast<Cexpression>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_Cexpression_elem_CExpressionPack::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = Cexpression_1 = dynamic_cast<Cexpression>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_Cexpression_elem_CExpressionSQ::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = CexpressionSQ_1 = dynamic_cast<CexpressionSQ>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_Cexpression_elem_CExpressionDQ::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = CexpressionDQ_1 = dynamic_cast<CexpressionDQ>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_Cexpression_elem_CExpressionDollarvar::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = INT_1 = dynamic_cast<INT>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_Cexpression_elem_CExpressionPart::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_Cexpression::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = Cexpression_elem_1 = dynamic_cast<Cexpression_elem>(val);break;
+ case 1: newval = Cexpression_1 = dynamic_cast<Cexpression>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_attribute_initialisation_option_Yesattribute_initialisation::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = Cexpression_1 = dynamic_cast<Cexpression>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_attribute_Attribute::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = ID_2 = dynamic_cast<ID>(val);break;
+ case 2: newval = attribute_initialisation_option_1 = dynamic_cast<attribute_initialisation_option>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_attributes::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = attribute_1 = dynamic_cast<attribute>(val);break;
+ case 1: newval = attributes_1 = dynamic_cast<attributes>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_Ccode_option_CcodeOption::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = attributes_1 = dynamic_cast<attributes>(val);break;
+ case 1: newval = Ctexts_1 = dynamic_cast<Ctexts>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_argument_Argument::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = integer_1 = dynamic_cast<integer>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_arguments::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = arguments_1 = dynamic_cast<arguments>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_alternative_Alternative::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = arguments_1 = dynamic_cast<arguments>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_alternatives::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = alternative_1 = dynamic_cast<alternative>(val);break;
+ case 1: newval = alternatives_1 = dynamic_cast<alternatives>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_productionblock_PredefinedAlternatives::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = alternatives_1 = dynamic_cast<alternatives>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_productionblock_NonlistAlternatives::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = alternatives_1 = dynamic_cast<alternatives>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_productionblock_ListAlternatives::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = alternatives_1 = dynamic_cast<alternatives>(val);break;
+ case 1: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_storageclasses::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = storageclasses_1 = dynamic_cast<storageclasses>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_storageoption_PositiveStorageOption::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_storageoption_NegativeStorageOption::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_phylumdeclaration_PhylumDeclaration::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = storageoption_1 = dynamic_cast<storageoption>(val);break;
+ case 2: newval = productionblock_1 = dynamic_cast<productionblock>(val);break;
+ case 3: newval = Ccode_option_1 = dynamic_cast<Ccode_option>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_phylumnames::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = ID_1 = dynamic_cast<ID>(val);break;
+ case 1: newval = phylumnames_1 = dynamic_cast<phylumnames>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_phylumdeclarations::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = phylumdeclaration_1 = dynamic_cast<phylumdeclaration>(val);break;
+ case 1: newval = phylumdeclarations_1 = dynamic_cast<phylumdeclarations>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_phylumdeclarationsroot_PhylumDeclarations::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = phylumdeclarations_1 = dynamic_cast<phylumdeclarations>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_STRING_String::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_INT_Int::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = integer_1 = dynamic_cast<integer>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_ID_Id::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = uniqID_1 = dynamic_cast<uniqID>(val);break;
+ }
+ assertNonNull(newval);
+ }
+ void impl_uniqID_Str::set_subphylum(int no, abstract_phylum val)
+ {
+ abstract_phylum newval=0;
+ switch(no) {
+ case 0: newval = casestring_1 = dynamic_cast<casestring>(val);break;
+ }
+ assertNonNull(newval);
+ }
+
+ void
+ copy_attributes(enum_phyla copyPhy, c_abstract_phylum kc_p1, abstract_phylum kc_p2)
+ {
+ switch(copyPhy) {
+ case phylum_uniqID: {
+ c_uniqID p1 = dynamic_cast<c_uniqID>(kc_p1);
+ uniqID p2 = dynamic_cast<uniqID>(kc_p2);
+ p2->type = p1->type;
+ p2->line = p1->line;
+ p2->file = p1->file;
+ p2->scopeinfo = p1->scopeinfo;
+ break;
+ }
+ case phylum_ID: {
+ c_ID p1 = dynamic_cast<c_ID>(kc_p1);
+ ID p2 = dynamic_cast<ID>(kc_p2);
+ p2->type = p1->type;
+ p2->named_subphylum = p1->named_subphylum;
+ p2->line = p1->line;
+ p2->file = p1->file;
+ break;
+ }
+ case phylum_INT: {
+ c_INT p1 = dynamic_cast<c_INT>(kc_p1);
+ INT p2 = dynamic_cast<INT>(kc_p2);
+ p2->line = p1->line;
+ p2->file = p1->file;
+ break;
+ }
+ case phylum_STRING: {
+ c_STRING p1 = dynamic_cast<c_STRING>(kc_p1);
+ STRING p2 = dynamic_cast<STRING>(kc_p2);
+ p2->line = p1->line;
+ p2->file = p1->file;
+ break;
+ }
+ case phylum_phylumdeclaration: {
+ c_phylumdeclaration p1 = dynamic_cast<c_phylumdeclaration>(kc_p1);
+ phylumdeclaration p2 = dynamic_cast<phylumdeclaration>(kc_p2);
+ p2->marked = p1->marked;
+ p2->additional_members = p1->additional_members;
+ p2->base_classes = p1->base_classes;
+ break;
+ }
+ case phylum_storageclasses:
+ dynamic_cast<storageclasses>(kc_p2)->phyla = dynamic_cast<c_storageclasses>(kc_p1)->phyla;
+ break;
+ case phylum_alternative: {
+ c_alternative p1 = dynamic_cast<c_alternative>(kc_p1);
+ alternative p2 = dynamic_cast<alternative>(kc_p2);
+ p2->rewriteinfo = p1->rewriteinfo;
+ p2->unparseinfo = p1->unparseinfo;
+ p2->additional_members = p1->additional_members;
+ p2->base_classes = p1->base_classes;
+ break;
+ }
+ case phylum_arguments:
+ dynamic_cast<arguments>(kc_p2)->seqnr = dynamic_cast<c_arguments>(kc_p1)->seqnr;
+ break;
+ case phylum_Cexpression: {
+ c_Cexpression p1 = dynamic_cast<c_Cexpression>(kc_p1);
+ Cexpression p2 = dynamic_cast<Cexpression>(kc_p2);
+ p2->line = p1->line;
+ p2->file = p1->file;
+ break;
+ }
+ case phylum_idCexpression:
+ dynamic_cast<idCexpression>(kc_p2)->id = dynamic_cast<c_idCexpression>(kc_p1)->id;
+ break;
+ case phylum_includefile: {
+ c_includefile p1 = dynamic_cast<c_includefile>(kc_p1);
+ includefile p2 = dynamic_cast<includefile>(kc_p2);
+ p2->inc_type = p1->inc_type;
+ p2->inc = p1->inc;
+ break;
+ }
+ case phylum_includedeclaration: {
+ c_includedeclaration p1 = dynamic_cast<c_includedeclaration>(kc_p1);
+ includedeclaration p2 = dynamic_cast<includedeclaration>(kc_p2);
+ p2->line = p1->line;
+ p2->file = p1->file;
+ break;
+ }
+ case phylum_patternchains: {
+ c_patternchains p1 = dynamic_cast<c_patternchains>(kc_p1);
+ patternchains p2 = dynamic_cast<patternchains>(kc_p2);
+ p2->line = p1->line;
+ p2->file = p1->file;
+ break;
+ }
+ case phylum_patternchain: {
+ c_patternchain p1 = dynamic_cast<c_patternchain>(kc_p1);
+ patternchain p2 = dynamic_cast<patternchain>(kc_p2);
+ p2->line = p1->line;
+ p2->file = p1->file;
+ break;
+ }
+ case phylum_patternchainitem: {
+ c_patternchainitem p1 = dynamic_cast<c_patternchainitem>(kc_p1);
+ patternchainitem p2 = dynamic_cast<patternchainitem>(kc_p2);
+ p2->line = p1->line;
+ p2->file = p1->file;
+ p2->type = p1->type;
+ break;
+ }
+ case phylum_outmostpattern: {
+ c_outmostpattern p1 = dynamic_cast<c_outmostpattern>(kc_p1);
+ outmostpattern p2 = dynamic_cast<outmostpattern>(kc_p2);
+ p2->line = p1->line;
+ p2->file = p1->file;
+ p2->type = p1->type;
+ break;
+ }
+ case phylum_term: {
+ c_term p1 = dynamic_cast<c_term>(kc_p1);
+ term p2 = dynamic_cast<term>(kc_p2);
+ p2->line = p1->line;
+ p2->file = p1->file;
+ break;
+ }
+ case phylum_fnfile:
+ dynamic_cast<fnfile>(kc_p2)->fns = dynamic_cast<c_fnfile>(kc_p1)->fns;
+ break;
+ case phylum_fndeclaration: {
+ c_fndeclaration p1 = dynamic_cast<c_fndeclaration>(kc_p1);
+ fndeclaration p2 = dynamic_cast<fndeclaration>(kc_p2);
+ p2->sorted = p1->sorted;
+ p2->last_line = p1->last_line;
+ p2->file = p1->file;
+ p2->is_attr = p1->is_attr;
+ break;
+ }
+ case phylum_Ctext: {
+ c_Ctext p1 = dynamic_cast<c_Ctext>(kc_p1);
+ Ctext p2 = dynamic_cast<Ctext>(kc_p2);
+ p2->line = p1->line;
+ p2->file = p1->file;
+ break;
+ }
+ case phylum_Ctext_elem: {
+ c_Ctext_elem p1 = dynamic_cast<c_Ctext_elem>(kc_p1);
+ Ctext_elem p2 = dynamic_cast<Ctext_elem>(kc_p2);
+ p2->line = p1->line;
+ p2->file = p1->file;
+ break;
+ }
+ case phylum_foreach_after: {
+ c_foreach_after p1 = dynamic_cast<c_foreach_after>(kc_p1);
+ foreach_after p2 = dynamic_cast<foreach_after>(kc_p2);
+ p2->line = p1->line;
+ p2->file = p1->file;
+ break;
+ }
+ case phylum_withexpressions: {
+ c_withexpressions p1 = dynamic_cast<c_withexpressions>(kc_p1);
+ withexpressions p2 = dynamic_cast<withexpressions>(kc_p2);
+ p2->type = p1->type;
+ p2->line = p1->line;
+ p2->file = p1->file;
+ break;
+ }
+ case phylum_withexpression: {
+ c_withexpression p1 = dynamic_cast<c_withexpression>(kc_p1);
+ withexpression p2 = dynamic_cast<withexpression>(kc_p2);
+ p2->type = p1->type;
+ p2->line = p1->line;
+ p2->file = p1->file;
+ break;
+ }
+ case phylum_withcases:
+ dynamic_cast<withcases>(kc_p2)->wcinfo = dynamic_cast<c_withcases>(kc_p1)->wcinfo;
+ break;
+ case phylum_withcase:
+ dynamic_cast<withcase>(kc_p2)->wcinfo = dynamic_cast<c_withcase>(kc_p1)->wcinfo;
+ break;
+ case phylum_unparsedeclaration:
+ dynamic_cast<unparsedeclaration>(kc_p2)->patternreps = dynamic_cast<c_unparsedeclaration>(kc_p1)->patternreps;
+ break;
+ case phylum_viewnames:
+ dynamic_cast<viewnames>(kc_p2)->is_extern = dynamic_cast<c_viewnames>(kc_p1)->is_extern;
+ break;
+ case phylum_unparseitem:
+ dynamic_cast<unparseitem>(kc_p2)->text_nr = dynamic_cast<c_unparseitem>(kc_p1)->text_nr;
+ break;
+ case phylum_fileline: {
+ c_fileline p1 = dynamic_cast<c_fileline>(kc_p1);
+ fileline p2 = dynamic_cast<fileline>(kc_p2);
+ p2->file = p1->file;
+ p2->line = p1->line;
+ break;
+ }
+ case phylum_elem_patternrepresentation: {
+ c_elem_patternrepresentation p1 = dynamic_cast<c_elem_patternrepresentation>(kc_p1);
+ elem_patternrepresentation p2 = dynamic_cast<elem_patternrepresentation>(kc_p2);
+ p2->line = p1->line;
+ p2->file = p1->file;
+ p2->type = p1->type;
+ break;
+ }
+ case phylum_path: {
+ c_path p1 = dynamic_cast<c_path>(kc_p1);
+ path p2 = dynamic_cast<path>(kc_p2);
+ p2->op = p1->op;
+ p2->id = p1->id;
+ break;
+ }
+ case phylum_ac_operator_name: {
+ c_ac_operator_name p1 = dynamic_cast<c_ac_operator_name>(kc_p1);
+ ac_operator_name p2 = dynamic_cast<ac_operator_name>(kc_p2);
+ p2->line = p1->line;
+ p2->file = p1->file;
+ break;
+ }
+ case phylum_addedphylumdeclaration:
+ dynamic_cast<addedphylumdeclaration>(kc_p2)->added = dynamic_cast<c_addedphylumdeclaration>(kc_p1)->added;
+ break;
+ case phylum_countedphylumdeclaration:
+ dynamic_cast<countedphylumdeclaration>(kc_p2)->count = dynamic_cast<c_countedphylumdeclaration>(kc_p1)->count;
+ break;
+ case phylum_charruns:
+ dynamic_cast<charruns>(kc_p2)->number = dynamic_cast<c_charruns>(kc_p1)->number;
+ break;
+ case phylum_bindingidmark:
+ dynamic_cast<bindingidmark>(kc_p2)->marked = dynamic_cast<c_bindingidmark>(kc_p1)->marked;
+ break;
+ case one_before_first_phylum: // just to avoid a warning about missing case if empty
+ default:
+ break; // it's alright, no attributes to copy
+ }
+ enum_operators copyOp=kc_p1->prod_sel();
+ for (int i=operator_info[copyOp].no_attrs-1; i>=0; --i)
+ attributeOf(kc_p2, i)=attributeOf(const_cast<abstract_phylum>(kc_p1), i);
+ }
+
+ KC_PHYLUM_INFO phylum_info[] = {
+ { "", one_before_first_operator, one_before_first_operator, (kc_storageclass_t)0 }, /* dummy element */
+ { "nocasestring", sel_NoCaseStr, sel_NoCaseStr, uniq },
+ { "casestring", sel__Str, sel__Str, uniq },
+ { "real", sel__Real, sel__Real, uniq },
+ { "integer", sel__Int, sel__Int, uniq },
+ { "voidptr", sel__VoidPtr, sel__VoidPtr, uniq },
+ { "uniqID", sel_Str, sel_Str, uniq },
+ { "ID", sel_Id, sel_Id, kc_not_uniq },
+ { "INT", sel_Int, sel_Int, kc_not_uniq },
+ { "STRING", sel_String, sel_String, kc_not_uniq },
+ { "phylumdeclarationsroot", sel_PhylumDeclarations, sel_PhylumDeclarations, kc_not_uniq },
+ { "phylumdeclarations", sel_Nilphylumdeclarations, sel_Consphylumdeclarations, kc_not_uniq },
+ { "phylumnames", sel_Nilphylumnames, sel_Consphylumnames, kc_not_uniq },
+ { "phylumdeclaration", sel_PhylumDeclaration, sel_PhylumDeclaration, kc_not_uniq },
+ { "storageoption", sel_NoStorageOption, sel_PositiveStorageOption, kc_not_uniq },
+ { "storageclasses", sel_Nilstorageclasses, sel_Consstorageclasses, kc_not_uniq },
+ { "productionblock", sel_Emptyproductionblock, sel_PredefinedAlternatives, kc_not_uniq },
+ { "alternatives", sel_Nilalternatives, sel_Consalternatives, kc_not_uniq },
+ { "alternative", sel_Alternative, sel_Alternative, kc_not_uniq },
+ { "arguments", sel_Nilarguments, sel_Consarguments, kc_not_uniq },
+ { "argument", sel_Argument, sel_Argument, kc_not_uniq },
+ { "Ccode_option", sel_CcodeOption, sel_CcodeOption, kc_not_uniq },
+ { "attributes", sel_Nilattributes, sel_Consattributes, kc_not_uniq },
+ { "attribute", sel_Attribute, sel_Attribute, kc_not_uniq },
+ { "attribute_initialisation_option", sel_Noattribute_initialisation, sel_Yesattribute_initialisation, kc_not_uniq },
+ { "Cexpression", sel_NilCexpression, sel_ConsCexpression, kc_not_uniq },
+ { "Cexpression_elem", sel_CExpressionPart, sel_CExpressionArray, kc_not_uniq },
+ { "CexpressionDQ", sel_NilCexpressionDQ, sel_ConsCexpressionDQ, kc_not_uniq },
+ { "CexpressionDQ_elem", sel_CExpressionDQPart, sel_CExpressionDQNl, kc_not_uniq },
+ { "CexpressionSQ", sel_NilCexpressionSQ, sel_ConsCexpressionSQ, kc_not_uniq },
+ { "CexpressionSQ_elem", sel_CExpressionSQPart, sel_CExpressionSQNl, kc_not_uniq },
+ { "idCexpressions", sel_NilidCexpressions, sel_ConsidCexpressions, kc_not_uniq },
+ { "idCexpression", sel_IdCexpression, sel_IdCexpression, kc_not_uniq },
+ { "Ctexts", sel_NilCtexts, sel_ConsCtexts, kc_not_uniq },
+ { "includefiles", sel_Nilincludefiles, sel_Consincludefiles, kc_not_uniq },
+ { "includefile", sel_IncludeFile, sel_IncludeFile, uniq },
+ { "includedeclarations", sel_Nilincludedeclarations, sel_Consincludedeclarations, kc_not_uniq },
+ { "includedeclaration", sel_IncludeDeclaration, sel_IncludeDeclaration, kc_not_uniq },
+ { "rwdeclarations", sel_Nilrwdeclarations, sel_Consrwdeclarations, kc_not_uniq },
+ { "rwdeclaration", sel_RwDeclaration, sel_RwDeclaration, kc_not_uniq },
+ { "rewriteclauses", sel_Nilrewriteclauses, sel_Consrewriteclauses, kc_not_uniq },
+ { "rewriteclause", sel_RewriteClause, sel_RewriteClause, kc_not_uniq },
+ { "patternchains", sel_Nilpatternchains, sel_Conspatternchains, kc_not_uniq },
+ { "patternchain", sel_Nilpatternchain, sel_Conspatternchain, kc_not_uniq },
+ { "outmostpatterns", sel_Niloutmostpatterns, sel_Consoutmostpatterns, kc_not_uniq },
+ { "patternchainitem", sel_PatternchainitemOutmost, sel_PatternchainitemDollarid, kc_not_uniq },
+ { "outmostpattern", sel_OPOperatorWildcard, sel_OPDefault, kc_not_uniq },
+ { "pattern", sel_PVariable, sel_PIntLiteral, kc_not_uniq },
+ { "patterns", sel_Nilpatterns, sel_Conspatterns, kc_not_uniq },
+ { "term", sel_TVariable, sel_TIntLiteral, kc_not_uniq },
+ { "terms", sel_Nilterms, sel_Consterms, kc_not_uniq },
+ { "fnfiles", sel_Nilfnfiles, sel_Consfnfiles, kc_not_uniq },
+ { "fnfile", sel_FnFile, sel_FnFile, uniq },
+ { "fndeclarations", sel_Nilfndeclarations, sel_Consfndeclarations, kc_not_uniq },
+ { "fndeclaration", sel_FnAcDeclaration, sel_AcMemberDeclaration, kc_not_uniq },
+ { "fnclass", sel_GlobalFn, sel_ConvOperatorFn, kc_not_uniq },
+ { "Ctext", sel_NilCtext, sel_ConsCtext, kc_not_uniq },
+ { "Ctext_elem", sel_CTextLine, sel_CTextWithexpression, kc_not_uniq },
+ { "foreach_after", sel_NoForeachAfter, sel_ForeachAfter, kc_not_uniq },
+ { "contextinfo", sel_InForeachContext, sel_NotInForeachContext, kc_not_uniq },
+ { "withexpressions", sel_Nilwithexpressions, sel_Conswithexpressions, kc_not_uniq },
+ { "withexpression", sel_WEVariable, sel_WECexpression, kc_not_uniq },
+ { "withcases", sel_Nilwithcases, sel_Conswithcases, kc_not_uniq },
+ { "withcase", sel_Withcase, sel_Withcase, kc_not_uniq },
+ { "unparsedeclarations", sel_Nilunparsedeclarations, sel_Consunparsedeclarations, kc_not_uniq },
+ { "unparsedeclaration", sel_UnparseDeclaration, sel_UnparseDeclaration, kc_not_uniq },
+ { "unparseclauses", sel_Nilunparseclauses, sel_Consunparseclauses, kc_not_uniq },
+ { "unparseclause", sel_UnparseClause, sel_UnparseClause, kc_not_uniq },
+ { "viewnames", sel_Nilviewnames, sel_Consviewnames, kc_not_uniq },
+ { "unparseitems", sel_Nilunparseitems, sel_Consunparseitems, kc_not_uniq },
+ { "unparseitem", sel_UnpStr, sel_UViewVarDecl, kc_not_uniq },
+ { "unpsubterm", sel_UnpSubTerm, sel_UnpCastedVariable, kc_not_uniq },
+ { "unpattributes", sel_Nilunpattributes, sel_Consunpattributes, kc_not_uniq },
+ { "viewnameoption", sel_NoViewname, sel_YesViewname, kc_not_uniq },
+ { "languageoption", sel_NoLanguagename, sel_LanguageList, kc_not_uniq },
+ { "languagenames", sel_Nillanguagenames, sel_Conslanguagenames, kc_not_uniq },
+ { "fileline", sel_FileLine, sel_PosNoFileLine, kc_not_uniq },
+ { "scopetypefilelinestack", sel_Nilscopetypefilelinestack, sel_Consscopetypefilelinestack, kc_not_uniq },
+ { "scopetypefileline", sel_ScopeTypeFileLine, sel_ScopeTypeFileLine, kc_not_uniq },
+ { "IDtype", sel_ITUnknown, sel_ITLanguageName, kc_not_uniq },
+ { "operators", sel_Niloperators, sel_Consoperators, kc_not_uniq },
+ { "phyla", sel_Nilphyla, sel_Consphyla, kc_not_uniq },
+ { "variables", sel_Nilvariables, sel_Consvariables, kc_not_uniq },
+ { "dollarvarstatus", sel_DVAllowed, sel_DVDisallowed, kc_not_uniq },
+ { "tribool", sel_Equal, sel_Bigger, kc_not_uniq },
+ { "patternrepresentations", sel_Nilpatternrepresentations, sel_Conspatternrepresentations, kc_not_uniq },
+ { "patternrepresentation", sel_Nilpatternrepresentation, sel_Conspatternrepresentation, kc_not_uniq },
+ { "elem_patternrepresentation", sel_PRBinding, sel_PRIntLiteral, kc_not_uniq },
+ { "path", sel_Nilpath, sel_Conspath, kc_not_uniq },
+ { "paths", sel_Nilpaths, sel_Conspaths, kc_not_uniq },
+ { "argsnumbers", sel_Nilargsnumbers, sel_Consargsnumbers, kc_not_uniq },
+ { "rewriterulesinfo", sel_Nilrewriterulesinfo, sel_Consrewriterulesinfo, kc_not_uniq },
+ { "rewriteruleinfo", sel_Rewriteruleinfo, sel_Rewriteruleinfo, kc_not_uniq },
+ { "withcasesinfo", sel_Nilwithcasesinfo, sel_Conswithcasesinfo, kc_not_uniq },
+ { "withcaseinfo", sel_Withcaseinfo, sel_Withcaseinfo, kc_not_uniq },
+ { "rewriteviewsinfo", sel_Nilrewriteviewsinfo, sel_Consrewriteviewsinfo, kc_not_uniq },
+ { "rewriteviewinfo", sel_Rewriteviewinfo, sel_Rewriteviewinfo, kc_not_uniq },
+ { "unparseviewsinfo", sel_Nilunparseviewsinfo, sel_Consunparseviewsinfo, kc_not_uniq },
+ { "unparseviewinfo", sel_Unparseviewinfo, sel_Unparseviewinfo, kc_not_uniq },
+ { "unparsedeclsinfo", sel_Nilunparsedeclsinfo, sel_Consunparsedeclsinfo, kc_not_uniq },
+ { "unparsedeclinfo", sel_Unparsedeclinfo, sel_Unparsedeclinfo, kc_not_uniq },
+ { "ac_declaration", sel_AcDeclaration, sel_AcDeclaration, kc_not_uniq },
+ { "ac_declaration_list", sel_Nilac_declaration_list, sel_Consac_declaration_list, kc_not_uniq },
+ { "ac_declaration_specifiers", sel_Nilac_declaration_specifiers, sel_Consac_declaration_specifiers, kc_not_uniq },
+ { "ac_declaration_specifier", sel_AcDeclSpecStorageSpec, sel_AcDeclSpecTypeQual, kc_not_uniq },
+ { "ac_storage_class_specifier", sel_AcAuto, sel_AcVirtual, kc_not_uniq },
+ { "ac_type_specifier", sel_AcTypeSpec, sel_AcTypeSpec, kc_not_uniq },
+ { "ac_type_qualifier", sel_AcConst, sel_AcNoQualifier, kc_not_uniq },
+ { "ac_init_declarator_list", sel_Nilac_init_declarator_list, sel_Consac_init_declarator_list, kc_not_uniq },
+ { "ac_init_declarator", sel_AcInitDecl, sel_AcInitDecl, kc_not_uniq },
+ { "ac_declarator", sel_AcDeclarator, sel_AcDeclarator, kc_not_uniq },
+ { "ac_direct_declarator", sel_AcDirectDeclId, sel_AcOperatorDeclId, kc_not_uniq },
+ { "ac_pointer_option", sel_Nopointer, sel_Yespointer, kc_not_uniq },
+ { "ac_pointer", sel_AcPointerNil, sel_AcPointerCons, kc_not_uniq },
+ { "ac_ref_option", sel_AcNoRef, sel_AcRef, kc_not_uniq },
+ { "ac_operator_name", sel_AcOperatorName, sel_AcOperatorName, kc_not_uniq },
+ { "ac_class_qualifier_help_list", sel_Nilac_class_qualifier_help_list, sel_Consac_class_qualifier_help_list, kc_not_uniq },
+ { "ac_class_qualifier_list", sel_Nilac_class_qualifier_list, sel_Consac_class_qualifier_list, kc_not_uniq },
+ { "ac_type_qualifier_list", sel_Nilac_type_qualifier_list, sel_Consac_type_qualifier_list, kc_not_uniq },
+ { "ac_parameter_type_list", sel_AcParList, sel_AcParList3Dot, kc_not_uniq },
+ { "ac_parameter_list", sel_Nilac_parameter_list, sel_Consac_parameter_list, kc_not_uniq },
+ { "ac_parameter_declaration", sel_AcParDeclDecl, sel_AcParDeclAbsdecl, kc_not_uniq },
+ { "ac_identifier_list", sel_Nilac_identifier_list, sel_Consac_identifier_list, kc_not_uniq },
+ { "ac_abstract_declarator", sel_AcAbsdeclPointer, sel_AcAbsdeclDirdecl, kc_not_uniq },
+ { "ac_direct_abstract_declarator_option", sel_Noac_direct_abstract_declarator, sel_Yesac_direct_abstract_declarator, kc_not_uniq },
+ { "ac_direct_abstract_declarator", sel_AcDirAbsdeclPack, sel_AcDirAbsdeclFn, kc_not_uniq },
+ { "ac_constant_expression_option", sel_Yesac_constant_expression, sel_Noac_constant_expression, kc_not_uniq },
+ { "ac_constant_expression", sel_AcConstExpr, sel_AcConstExpr, kc_not_uniq },
+ { "ac_constant_expression_list", sel_Nilac_constant_expression_list, sel_Consac_constant_expression_list, kc_not_uniq },
+ { "ac_opt_base_init_list", sel_AcNoBaseInit, sel_AcYesBaseInit, kc_not_uniq },
+ { "ac_base_init_list", sel_Nilac_base_init_list, sel_Consac_base_init_list, kc_not_uniq },
+ { "ac_base_init", sel_AcBaseInit, sel_AcBaseInit, kc_not_uniq },
+ { "baseclass_declarations", sel_Nilbaseclass_declarations, sel_Consbaseclass_declarations, kc_not_uniq },
+ { "baseclass_decl", sel_BaseClassDecl, sel_BaseClassDecl, kc_not_uniq },
+ { "baseclass_list", sel_Nilbaseclass_list, sel_Consbaseclass_list, kc_not_uniq },
+ { "error", sel_Fatal, sel_Warning, kc_not_uniq },
+ { "problem", sel_Problem1, sel_Problem6, kc_not_uniq },
+ { "addedphylumdeclarations", sel_Niladdedphylumdeclarations, sel_Consaddedphylumdeclarations, kc_not_uniq },
+ { "addedphylumdeclaration", sel_AddedPhylumdeclaration, sel_AddedPhylumdeclaration, kc_not_uniq },
+ { "countedphylumdeclarations", sel_Nilcountedphylumdeclarations, sel_Conscountedphylumdeclarations, kc_not_uniq },
+ { "countedphylumdeclaration", sel_CountedPhylumdeclaration, sel_CountedPhylumdeclaration, uniq },
+ { "charruns", sel_Newlines, sel_Stars, uniq },
+ { "bindingidmarks", sel_Nilbindingidmarks, sel_Consbindingidmarks, uniq },
+ { "bindingidmark", sel_BindingIdMark, sel_BindingIdMark, uniq },
+ { "", one_before_first_operator, one_before_first_operator, (kc_storageclass_t)0 } /* last element */
+ };
+
+ static enum_phyla kc_subphyla_Str[] = { phylum_casestring };
+ static enum_phyla kc_subphyla_Id[] = { phylum_uniqID };
+ static enum_phyla kc_subphyla_Int[] = { phylum_integer };
+ static enum_phyla kc_subphyla_String[] = { phylum_casestring };
+ static enum_phyla kc_subphyla_PhylumDeclarations[] = { phylum_phylumdeclarations };
+ static enum_phyla kc_subphyla_Consphylumdeclarations[] = { phylum_phylumdeclaration, phylum_phylumdeclarations };
+ static enum_phyla kc_subphyla_Consphylumnames[] = { phylum_ID, phylum_phylumnames };
+ static enum_phyla kc_subphyla_PhylumDeclaration[] = { phylum_ID, phylum_storageoption, phylum_productionblock, phylum_Ccode_option };
+ static enum_phyla kc_subphyla_NegativeStorageOption[] = { phylum_ID };
+ static enum_phyla kc_subphyla_PositiveStorageOption[] = { phylum_ID };
+ static enum_phyla kc_subphyla_Consstorageclasses[] = { phylum_ID, phylum_storageclasses };
+ static enum_phyla kc_subphyla_ListAlternatives[] = { phylum_alternatives, phylum_ID };
+ static enum_phyla kc_subphyla_NonlistAlternatives[] = { phylum_alternatives };
+ static enum_phyla kc_subphyla_PredefinedAlternatives[] = { phylum_alternatives };
+ static enum_phyla kc_subphyla_Consalternatives[] = { phylum_alternative, phylum_alternatives };
+ static enum_phyla kc_subphyla_Alternative[] = { phylum_ID, phylum_arguments };
+ static enum_phyla kc_subphyla_Consarguments[] = { phylum_ID, phylum_arguments };
+ static enum_phyla kc_subphyla_Argument[] = { phylum_ID, phylum_integer };
+ static enum_phyla kc_subphyla_CcodeOption[] = { phylum_attributes, phylum_Ctexts };
+ static enum_phyla kc_subphyla_Consattributes[] = { phylum_attribute, phylum_attributes };
+ static enum_phyla kc_subphyla_Attribute[] = { phylum_ID, phylum_ID, phylum_attribute_initialisation_option };
+ static enum_phyla kc_subphyla_Yesattribute_initialisation[] = { phylum_Cexpression };
+ static enum_phyla kc_subphyla_ConsCexpression[] = { phylum_Cexpression_elem, phylum_Cexpression };
+ static enum_phyla kc_subphyla_CExpressionPart[] = { phylum_casestring };
+ static enum_phyla kc_subphyla_CExpressionDollarvar[] = { phylum_INT };
+ static enum_phyla kc_subphyla_CExpressionDQ[] = { phylum_CexpressionDQ };
+ static enum_phyla kc_subphyla_CExpressionSQ[] = { phylum_CexpressionSQ };
+ static enum_phyla kc_subphyla_CExpressionPack[] = { phylum_Cexpression };
+ static enum_phyla kc_subphyla_CExpressionArray[] = { phylum_Cexpression };
+ static enum_phyla kc_subphyla_ConsCexpressionDQ[] = { phylum_CexpressionDQ_elem, phylum_CexpressionDQ };
+ static enum_phyla kc_subphyla_CExpressionDQPart[] = { phylum_casestring };
+ static enum_phyla kc_subphyla_ConsCexpressionSQ[] = { phylum_CexpressionSQ_elem, phylum_CexpressionSQ };
+ static enum_phyla kc_subphyla_CExpressionSQPart[] = { phylum_casestring };
+ static enum_phyla kc_subphyla_ConsidCexpressions[] = { phylum_idCexpression, phylum_idCexpressions };
+ static enum_phyla kc_subphyla_IdCexpression[] = { phylum_ID, phylum_Cexpression };
+ static enum_phyla kc_subphyla_ConsCtexts[] = { phylum_Ctext, phylum_Ctexts };
+ static enum_phyla kc_subphyla_Consincludefiles[] = { phylum_includefile, phylum_includefiles };
+ static enum_phyla kc_subphyla_IncludeFile[] = { phylum_casestring };
+ static enum_phyla kc_subphyla_Consincludedeclarations[] = { phylum_includedeclaration, phylum_includedeclarations };
+ static enum_phyla kc_subphyla_IncludeDeclaration[] = { phylum_casestring };
+ static enum_phyla kc_subphyla_Consrwdeclarations[] = { phylum_rwdeclaration, phylum_rwdeclarations };
+ static enum_phyla kc_subphyla_RwDeclaration[] = { phylum_outmostpatterns, phylum_rewriteclauses };
+ static enum_phyla kc_subphyla_Consrewriteclauses[] = { phylum_rewriteclause, phylum_rewriteclauses };
+ static enum_phyla kc_subphyla_RewriteClause[] = { phylum_viewnames, phylum_term };
+ static enum_phyla kc_subphyla_Conspatternchains[] = { phylum_patternchain, phylum_patternchains };
+ static enum_phyla kc_subphyla_Conspatternchain[] = { phylum_patternchainitem, phylum_patternchain };
+ static enum_phyla kc_subphyla_Consoutmostpatterns[] = { phylum_outmostpattern, phylum_outmostpatterns };
+ static enum_phyla kc_subphyla_PatternchainitemOutmost[] = { phylum_outmostpattern };
+ static enum_phyla kc_subphyla_PatternchainitemGroup[] = { phylum_patternchains };
+ static enum_phyla kc_subphyla_PatternchainitemDollarid[] = { phylum_ID };
+ static enum_phyla kc_subphyla_OPOperatorWildcard[] = { phylum_ID, phylum_Cexpression };
+ static enum_phyla kc_subphyla_OPOperator[] = { phylum_ID, phylum_patterns, phylum_Cexpression };
+ static enum_phyla kc_subphyla_OPNonLeafVariable[] = { phylum_ID, phylum_outmostpattern };
+ static enum_phyla kc_subphyla_OPWildcard[] = { phylum_Cexpression };
+ static enum_phyla kc_subphyla_OPDefault[] = { phylum_Cexpression };
+ static enum_phyla kc_subphyla_PVariable[] = { phylum_ID };
+ static enum_phyla kc_subphyla_POperator[] = { phylum_ID, phylum_patterns };
+ static enum_phyla kc_subphyla_PNonLeafVariable[] = { phylum_ID, phylum_pattern };
+ static enum_phyla kc_subphyla_PStringLiteral[] = { phylum_CexpressionDQ };
+ static enum_phyla kc_subphyla_PIntLiteral[] = { phylum_INT };
+ static enum_phyla kc_subphyla_Conspatterns[] = { phylum_pattern, phylum_patterns };
+ static enum_phyla kc_subphyla_TVariable[] = { phylum_ID };
+ static enum_phyla kc_subphyla_TOperator[] = { phylum_ID, phylum_terms };
+ static enum_phyla kc_subphyla_TMethod[] = { phylum_term, phylum_ID, phylum_terms };
+ static enum_phyla kc_subphyla_TMethodDot[] = { phylum_term, phylum_ID, phylum_terms };
+ static enum_phyla kc_subphyla_TMemberVar[] = { phylum_term, phylum_ID };
+ static enum_phyla kc_subphyla_TMemberVarDot[] = { phylum_term, phylum_ID };
+ static enum_phyla kc_subphyla_TCTerm[] = { phylum_CexpressionSQ };
+ static enum_phyla kc_subphyla_TStringLiteral[] = { phylum_CexpressionDQ };
+ static enum_phyla kc_subphyla_TIntLiteral[] = { phylum_INT };
+ static enum_phyla kc_subphyla_Consterms[] = { phylum_term, phylum_terms };
+ static enum_phyla kc_subphyla_Consfnfiles[] = { phylum_fnfile, phylum_fnfiles };
+ static enum_phyla kc_subphyla_FnFile[] = { phylum_casestring };
+ static enum_phyla kc_subphyla_Consfndeclarations[] = { phylum_fndeclaration, phylum_fndeclarations };
+ static enum_phyla kc_subphyla_FnAcDeclaration[] = { phylum_ac_declaration_specifiers, phylum_ac_declarator, phylum_ac_declaration_list, phylum_ac_opt_base_init_list, phylum_Ctext, phylum_ID, phylum_fnclass };
+ static enum_phyla kc_subphyla_AcMemberDeclaration[] = { phylum_ac_declaration_specifiers, phylum_ac_declarator, phylum_ac_constant_expression_option, phylum_fnclass };
+ static enum_phyla kc_subphyla_StaticFn[] = { phylum_casestring };
+ static enum_phyla kc_subphyla_ConsCtext[] = { phylum_Ctext_elem, phylum_Ctext };
+ static enum_phyla kc_subphyla_CTextLine[] = { phylum_casestring };
+ static enum_phyla kc_subphyla_CTextDollarVar[] = { phylum_INT };
+ static enum_phyla kc_subphyla_CTextNl[] = { phylum_integer };
+ static enum_phyla kc_subphyla_CTextCexpressionDQ[] = { phylum_CexpressionDQ };
+ static enum_phyla kc_subphyla_CTextCexpressionSQ[] = { phylum_CexpressionSQ };
+ static enum_phyla kc_subphyla_CTextCbody[] = { phylum_Ctext };
+ static enum_phyla kc_subphyla_CTextForeachexpression[] = { phylum_patternchain, phylum_idCexpressions, phylum_withexpressions, phylum_Ctext, phylum_foreach_after };
+ static enum_phyla kc_subphyla_CTextWithexpression[] = { phylum_withexpressions, phylum_withcases, phylum_contextinfo };
+ static enum_phyla kc_subphyla_ForeachAfter[] = { phylum_patternchain, phylum_idCexpressions, phylum_withexpressions, phylum_Ctext };
+ static enum_phyla kc_subphyla_InForeachContext[] = { phylum_patternchain };
+ static enum_phyla kc_subphyla_Conswithexpressions[] = { phylum_withexpression, phylum_withexpressions };
+ static enum_phyla kc_subphyla_WEVariable[] = { phylum_ID };
+ static enum_phyla kc_subphyla_WECexpression[] = { phylum_Cexpression };
+ static enum_phyla kc_subphyla_Conswithcases[] = { phylum_withcase, phylum_withcases };
+ static enum_phyla kc_subphyla_Withcase[] = { phylum_patternchains, phylum_Ctext };
+ static enum_phyla kc_subphyla_Consunparsedeclarations[] = { phylum_unparsedeclaration, phylum_unparsedeclarations };
+ static enum_phyla kc_subphyla_UnparseDeclaration[] = { phylum_outmostpatterns, phylum_unparseclauses };
+ static enum_phyla kc_subphyla_Consunparseclauses[] = { phylum_unparseclause, phylum_unparseclauses };
+ static enum_phyla kc_subphyla_UnparseClause[] = { phylum_viewnames, phylum_unparseitems };
+ static enum_phyla kc_subphyla_Consviewnames[] = { phylum_ID, phylum_viewnames };
+ static enum_phyla kc_subphyla_Consunparseitems[] = { phylum_unparseitem, phylum_unparseitems };
+ static enum_phyla kc_subphyla_UnpStr[] = { phylum_languageoption, phylum_CexpressionDQ, phylum_viewnameoption };
+ static enum_phyla kc_subphyla_UnpSubexpr[] = { phylum_languageoption, phylum_unpsubterm, phylum_viewnameoption };
+ static enum_phyla kc_subphyla_UnpCtext[] = { phylum_languageoption, phylum_Ctext };
+ static enum_phyla kc_subphyla_UnpBody[] = { phylum_languageoption, phylum_unparseitems };
+ static enum_phyla kc_subphyla_UViewVarDecl[] = { phylum_ID, phylum_ID, phylum_Cexpression };
+ static enum_phyla kc_subphyla_UnpSubTerm[] = { phylum_ID };
+ static enum_phyla kc_subphyla_UnpDollarvarTerm[] = { phylum_INT };
+ static enum_phyla kc_subphyla_UnpSubAttr[] = { phylum_ID, phylum_unpattributes };
+ static enum_phyla kc_subphyla_UnpDollarvarAttr[] = { phylum_INT, phylum_unpattributes };
+ static enum_phyla kc_subphyla_UnpCastedVariable[] = { phylum_ID, phylum_ID };
+ static enum_phyla kc_subphyla_Consunpattributes[] = { phylum_ID, phylum_unpattributes };
+ static enum_phyla kc_subphyla_YesViewname[] = { phylum_ID };
+ static enum_phyla kc_subphyla_LanguageList[] = { phylum_languagenames };
+ static enum_phyla kc_subphyla_Conslanguagenames[] = { phylum_ID, phylum_languagenames };
+ static enum_phyla kc_subphyla_Consscopetypefilelinestack[] = { phylum_scopetypefileline, phylum_scopetypefilelinestack };
+ static enum_phyla kc_subphyla_ScopeTypeFileLine[] = { phylum_integer, phylum_IDtype, phylum_casestring, phylum_integer };
+ static enum_phyla kc_subphyla_ITPredefinedPhylum[] = { phylum_phylumdeclaration };
+ static enum_phyla kc_subphyla_ITUserPhylum[] = { phylum_phylumdeclaration };
+ static enum_phyla kc_subphyla_ITPredefinedOperator[] = { phylum_alternative, phylum_ID };
+ static enum_phyla kc_subphyla_ITUserOperator[] = { phylum_alternative, phylum_ID };
+ static enum_phyla kc_subphyla_ITUserFunction[] = { phylum_fnclass };
+ static enum_phyla kc_subphyla_ITPatternVariable[] = { phylum_ID, phylum_integer };
+ static enum_phyla kc_subphyla_ITLanguageName[] = { phylum_integer };
+ static enum_phyla kc_subphyla_Consoperators[] = { phylum_ID, phylum_operators };
+ static enum_phyla kc_subphyla_Consphyla[] = { phylum_ID, phylum_phyla };
+ static enum_phyla kc_subphyla_Consvariables[] = { phylum_ID, phylum_variables };
+ static enum_phyla kc_subphyla_Conspatternrepresentations[] = { phylum_patternrepresentation, phylum_patternrepresentations };
+ static enum_phyla kc_subphyla_Conspatternrepresentation[] = { phylum_elem_patternrepresentation, phylum_patternrepresentation };
+ static enum_phyla kc_subphyla_PRBinding[] = { phylum_path, phylum_ID };
+ static enum_phyla kc_subphyla_PRVarPredicate[] = { phylum_paths, phylum_ID, phylum_patternrepresentation };
+ static enum_phyla kc_subphyla_PROperPredicate[] = { phylum_path, phylum_ID };
+ static enum_phyla kc_subphyla_PRUserPredicate[] = { phylum_Cexpression };
+ static enum_phyla kc_subphyla_PRNonLeafBinding[] = { phylum_path, phylum_ID, phylum_patternrepresentation };
+ static enum_phyla kc_subphyla_PRWildcard[] = { phylum_path };
+ static enum_phyla kc_subphyla_PRStringLiteral[] = { phylum_path, phylum_CexpressionDQ };
+ static enum_phyla kc_subphyla_PRIntLiteral[] = { phylum_path, phylum_INT };
+ static enum_phyla kc_subphyla_Conspath[] = { phylum_integer, phylum_path };
+ static enum_phyla kc_subphyla_Conspaths[] = { phylum_path, phylum_paths };
+ static enum_phyla kc_subphyla_Consargsnumbers[] = { phylum_integer, phylum_argsnumbers };
+ static enum_phyla kc_subphyla_Consrewriterulesinfo[] = { phylum_rewriteruleinfo, phylum_rewriterulesinfo };
+ static enum_phyla kc_subphyla_Rewriteruleinfo[] = { phylum_patternrepresentation, phylum_patternrepresentation, phylum_rewriteclause };
+ static enum_phyla kc_subphyla_Conswithcasesinfo[] = { phylum_withcaseinfo, phylum_withcasesinfo };
+ static enum_phyla kc_subphyla_Withcaseinfo[] = { phylum_patternrepresentation, phylum_patternrepresentation, phylum_Ctext };
+ static enum_phyla kc_subphyla_Consrewriteviewsinfo[] = { phylum_rewriteviewinfo, phylum_rewriteviewsinfo };
+ static enum_phyla kc_subphyla_Rewriteviewinfo[] = { phylum_ID, phylum_rewriterulesinfo };
+ static enum_phyla kc_subphyla_Consunparseviewsinfo[] = { phylum_unparseviewinfo, phylum_unparseviewsinfo };
+ static enum_phyla kc_subphyla_Unparseviewinfo[] = { phylum_ID, phylum_unparsedeclsinfo };
+ static enum_phyla kc_subphyla_Consunparsedeclsinfo[] = { phylum_unparsedeclinfo, phylum_unparsedeclsinfo };
+ static enum_phyla kc_subphyla_Unparsedeclinfo[] = { phylum_patternrepresentation, phylum_patternrepresentation, phylum_unparseclause };
+ static enum_phyla kc_subphyla_AcDeclaration[] = { phylum_ac_declaration_specifiers, phylum_ac_init_declarator_list };
+ static enum_phyla kc_subphyla_Consac_declaration_list[] = { phylum_ac_declaration, phylum_ac_declaration_list };
+ static enum_phyla kc_subphyla_Consac_declaration_specifiers[] = { phylum_ac_declaration_specifier, phylum_ac_declaration_specifiers };
+ static enum_phyla kc_subphyla_AcDeclSpecStorageSpec[] = { phylum_ac_storage_class_specifier };
+ static enum_phyla kc_subphyla_AcDeclSpecTypeSpec[] = { phylum_ac_type_specifier };
+ static enum_phyla kc_subphyla_AcDeclSpecTypeQual[] = { phylum_ac_type_qualifier };
+ static enum_phyla kc_subphyla_AcTypeSpec[] = { phylum_ID };
+ static enum_phyla kc_subphyla_Consac_init_declarator_list[] = { phylum_ac_init_declarator, phylum_ac_init_declarator_list };
+ static enum_phyla kc_subphyla_AcInitDecl[] = { phylum_ac_declarator };
+ static enum_phyla kc_subphyla_AcDeclarator[] = { phylum_ac_pointer_option, phylum_ac_ref_option, phylum_ac_direct_declarator };
+ static enum_phyla kc_subphyla_AcDirectDeclId[] = { phylum_ID };
+ static enum_phyla kc_subphyla_AcDirectDeclPack[] = { phylum_ac_declarator };
+ static enum_phyla kc_subphyla_AcDirectDeclArray[] = { phylum_ac_direct_declarator, phylum_ac_constant_expression_option };
+ static enum_phyla kc_subphyla_AcDirectDeclProto[] = { phylum_ac_direct_declarator, phylum_ac_parameter_type_list };
+ static enum_phyla kc_subphyla_AcQualifiedDeclProto[] = { phylum_ac_class_qualifier_list, phylum_ac_direct_declarator, phylum_ac_parameter_type_list, phylum_ac_type_qualifier };
+ static enum_phyla kc_subphyla_AcMemberDecl[] = { phylum_ID, phylum_ID, phylum_ac_constant_expression_list };
+ static enum_phyla kc_subphyla_AcConvOperatorDecl[] = { phylum_ID, phylum_ID };
+ static enum_phyla kc_subphyla_AcOperatorDeclId[] = { phylum_ac_operator_name };
+ static enum_phyla kc_subphyla_Yespointer[] = { phylum_ac_pointer };
+ static enum_phyla kc_subphyla_AcPointerNil[] = { phylum_ac_type_qualifier_list };
+ static enum_phyla kc_subphyla_AcPointerCons[] = { phylum_ac_type_qualifier_list, phylum_ac_pointer };
+ static enum_phyla kc_subphyla_AcOperatorName[] = { phylum_casestring };
+ static enum_phyla kc_subphyla_Consac_class_qualifier_help_list[] = { phylum_ac_direct_declarator, phylum_ac_class_qualifier_help_list };
+ static enum_phyla kc_subphyla_Consac_class_qualifier_list[] = { phylum_ID, phylum_ac_class_qualifier_list };
+ static enum_phyla kc_subphyla_Consac_type_qualifier_list[] = { phylum_ac_type_qualifier, phylum_ac_type_qualifier_list };
+ static enum_phyla kc_subphyla_AcParList[] = { phylum_ac_parameter_list };
+ static enum_phyla kc_subphyla_AcParList3Dot[] = { phylum_ac_parameter_list };
+ static enum_phyla kc_subphyla_Consac_parameter_list[] = { phylum_ac_parameter_declaration, phylum_ac_parameter_list };
+ static enum_phyla kc_subphyla_AcParDeclDecl[] = { phylum_ac_declaration_specifiers, phylum_ac_declarator, phylum_ac_constant_expression_option };
+ static enum_phyla kc_subphyla_AcParDeclAbsdecl[] = { phylum_ac_declaration_specifiers, phylum_ac_abstract_declarator, phylum_ac_constant_expression_option };
+ static enum_phyla kc_subphyla_Consac_identifier_list[] = { phylum_ID, phylum_ac_identifier_list };
+ static enum_phyla kc_subphyla_AcAbsdeclPointer[] = { phylum_ac_pointer };
+ static enum_phyla kc_subphyla_AcAbsdeclDirdecl[] = { phylum_ac_pointer_option, phylum_ac_direct_abstract_declarator };
+ static enum_phyla kc_subphyla_Yesac_direct_abstract_declarator[] = { phylum_ac_direct_abstract_declarator };
+ static enum_phyla kc_subphyla_AcDirAbsdeclPack[] = { phylum_ac_abstract_declarator };
+ static enum_phyla kc_subphyla_AcDirAbsdeclArray[] = { phylum_ac_direct_abstract_declarator_option, phylum_ac_constant_expression_option };
+ static enum_phyla kc_subphyla_AcDirAbsdeclFn[] = { phylum_ac_direct_abstract_declarator_option, phylum_ac_parameter_type_list };
+ static enum_phyla kc_subphyla_Yesac_constant_expression[] = { phylum_ac_constant_expression };
+ static enum_phyla kc_subphyla_AcConstExpr[] = { phylum_Cexpression };
+ static enum_phyla kc_subphyla_Consac_constant_expression_list[] = { phylum_ac_constant_expression, phylum_ac_constant_expression_list };
+ static enum_phyla kc_subphyla_AcYesBaseInit[] = { phylum_ac_base_init_list };
+ static enum_phyla kc_subphyla_Consac_base_init_list[] = { phylum_ac_base_init, phylum_ac_base_init_list };
+ static enum_phyla kc_subphyla_AcBaseInit[] = { phylum_ID, phylum_ac_constant_expression };
+ static enum_phyla kc_subphyla_Consbaseclass_declarations[] = { phylum_baseclass_decl, phylum_baseclass_declarations };
+ static enum_phyla kc_subphyla_BaseClassDecl[] = { phylum_ID, phylum_baseclass_list };
+ static enum_phyla kc_subphyla_Consbaseclass_list[] = { phylum_ID, phylum_baseclass_list };
+ static enum_phyla kc_subphyla_Fatal[] = { phylum_fileline, phylum_problem };
+ static enum_phyla kc_subphyla_NonFatal[] = { phylum_fileline, phylum_problem };
+ static enum_phyla kc_subphyla_Warning[] = { phylum_fileline, phylum_problem };
+ static enum_phyla kc_subphyla_Problem1[] = { phylum_casestring };
+ static enum_phyla kc_subphyla_Problem1ID[] = { phylum_casestring, phylum_ID };
+ static enum_phyla kc_subphyla_Problem1tID[] = { phylum_casestring, phylum_ID };
+ static enum_phyla kc_subphyla_Problem1we[] = { phylum_casestring, phylum_withexpression };
+ static enum_phyla kc_subphyla_Problem1ID1ID[] = { phylum_casestring, phylum_ID, phylum_casestring, phylum_ID };
+ static enum_phyla kc_subphyla_Problem1t1ID[] = { phylum_casestring, phylum_IDtype, phylum_casestring, phylum_ID };
+ static enum_phyla kc_subphyla_Problem1INT[] = { phylum_casestring, phylum_INT };
+ static enum_phyla kc_subphyla_Problem1int1[] = { phylum_casestring, phylum_integer, phylum_casestring };
+ static enum_phyla kc_subphyla_Problem1INT1ID[] = { phylum_casestring, phylum_INT, phylum_casestring, phylum_ID };
+ static enum_phyla kc_subphyla_Problem1ID1ID1ID[] = { phylum_casestring, phylum_ID, phylum_casestring, phylum_ID, phylum_casestring, phylum_ID };
+ static enum_phyla kc_subphyla_Problem1INT1ID1ID[] = { phylum_casestring, phylum_INT, phylum_casestring, phylum_ID, phylum_casestring, phylum_ID };
+ static enum_phyla kc_subphyla_Problem1storageoption1ID[] = { phylum_casestring, phylum_storageoption, phylum_casestring, phylum_ID };
+ static enum_phyla kc_subphyla_Problem2[] = { phylum_casestring, phylum_casestring };
+ static enum_phyla kc_subphyla_Problem3[] = { phylum_casestring, phylum_casestring, phylum_casestring };
+ static enum_phyla kc_subphyla_Problem3int1[] = { phylum_casestring, phylum_casestring, phylum_casestring, phylum_integer, phylum_casestring };
+ static enum_phyla kc_subphyla_Problem4[] = { phylum_casestring, phylum_casestring, phylum_casestring, phylum_casestring };
+ static enum_phyla kc_subphyla_Problem5[] = { phylum_casestring, phylum_casestring, phylum_casestring, phylum_casestring, phylum_casestring };
+ static enum_phyla kc_subphyla_Problem6[] = { phylum_casestring, phylum_casestring, phylum_casestring, phylum_casestring, phylum_casestring, phylum_casestring };
+ static enum_phyla kc_subphyla_Consaddedphylumdeclarations[] = { phylum_addedphylumdeclaration, phylum_addedphylumdeclarations };
+ static enum_phyla kc_subphyla_AddedPhylumdeclaration[] = { phylum_uniqID };
+ static enum_phyla kc_subphyla_Conscountedphylumdeclarations[] = { phylum_countedphylumdeclaration, phylum_countedphylumdeclarations };
+ static enum_phyla kc_subphyla_CountedPhylumdeclaration[] = { phylum_uniqID };
+ static enum_phyla kc_subphyla_Consbindingidmarks[] = { phylum_bindingidmark, phylum_bindingidmarks };
+ static enum_phyla kc_subphyla_BindingIdMark[] = { phylum_uniqID };
+
+
+ KC_OPERATOR_INFO operator_info[] = {
+ { "", 0, 0, one_before_first_phylum, 0, 0, 0, 0 }, /* dummy element */
+ { "NoCaseStr", 0, true, phylum_nocasestring, 0, 0, 0, sizeof(impl_nocasestring_NoCaseStr) },
+ { "_Str", 0, true, phylum_casestring, 0, 0, 0, sizeof(impl_casestring__Str) },
+ { "_Real", 0, true, phylum_real, 0, 0, 0, sizeof(impl_real__Real) },
+ { "_Int", 0, true, phylum_integer, 0, 0, 0, sizeof(impl_integer__Int) },
+ { "_VoidPtr", 0, true, phylum_voidptr, 0, 0, 0, sizeof(impl_voidptr__VoidPtr) },
+ { "Str", 1, false, phylum_uniqID, kc_subphyla_Str, 0, 0, sizeof(impl_uniqID_Str) },
+ { "Id", 1, false, phylum_ID, kc_subphyla_Id, 0, 0, sizeof(impl_ID_Id) },
+ { "Int", 1, false, phylum_INT, kc_subphyla_Int, 0, 0, sizeof(impl_INT_Int) },
+ { "String", 1, false, phylum_STRING, kc_subphyla_String, 0, 0, sizeof(impl_STRING_String) },
+ { "PhylumDeclarations", 1, false, phylum_phylumdeclarationsroot, kc_subphyla_PhylumDeclarations, 0, 0, sizeof(impl_phylumdeclarationsroot_PhylumDeclarations) },
+ { "Nilphylumdeclarations", 0, false, phylum_phylumdeclarations, 0, 0, 0, sizeof(impl_phylumdeclarations) },
+ { "Consphylumdeclarations", 2, false, phylum_phylumdeclarations, kc_subphyla_Consphylumdeclarations, 0, 0, sizeof(impl_phylumdeclarations) },
+ { "Nilphylumnames", 0, false, phylum_phylumnames, 0, 0, 0, sizeof(impl_phylumnames) },
+ { "Consphylumnames", 2, false, phylum_phylumnames, kc_subphyla_Consphylumnames, 0, 0, sizeof(impl_phylumnames) },
+ { "PhylumDeclaration", 4, false, phylum_phylumdeclaration, kc_subphyla_PhylumDeclaration, 0, 0, sizeof(impl_phylumdeclaration_PhylumDeclaration) },
+ { "NoStorageOption", 0, false, phylum_storageoption, 0, 0, 0, sizeof(impl_storageoption_NoStorageOption) },
+ { "NegativeStorageOption", 1, false, phylum_storageoption, kc_subphyla_NegativeStorageOption, 0, 0, sizeof(impl_storageoption_NegativeStorageOption) },
+ { "PositiveStorageOption", 1, false, phylum_storageoption, kc_subphyla_PositiveStorageOption, 0, 0, sizeof(impl_storageoption_PositiveStorageOption) },
+ { "Nilstorageclasses", 0, false, phylum_storageclasses, 0, 0, 0, sizeof(impl_storageclasses) },
+ { "Consstorageclasses", 2, false, phylum_storageclasses, kc_subphyla_Consstorageclasses, 0, 0, sizeof(impl_storageclasses) },
+ { "Emptyproductionblock", 0, false, phylum_productionblock, 0, 0, 0, sizeof(impl_productionblock_Emptyproductionblock) },
+ { "ListAlternatives", 2, false, phylum_productionblock, kc_subphyla_ListAlternatives, 0, 0, sizeof(impl_productionblock_ListAlternatives) },
+ { "NonlistAlternatives", 1, false, phylum_productionblock, kc_subphyla_NonlistAlternatives, 0, 0, sizeof(impl_productionblock_NonlistAlternatives) },
+ { "PredefinedAlternatives", 1, false, phylum_productionblock, kc_subphyla_PredefinedAlternatives, 0, 0, sizeof(impl_productionblock_PredefinedAlternatives) },
+ { "Nilalternatives", 0, false, phylum_alternatives, 0, 0, 0, sizeof(impl_alternatives) },
+ { "Consalternatives", 2, false, phylum_alternatives, kc_subphyla_Consalternatives, 0, 0, sizeof(impl_alternatives) },
+ { "Alternative", 2, false, phylum_alternative, kc_subphyla_Alternative, 0, 0, sizeof(impl_alternative_Alternative) },
+ { "Nilarguments", 0, false, phylum_arguments, 0, 0, 0, sizeof(impl_arguments) },
+ { "Consarguments", 2, false, phylum_arguments, kc_subphyla_Consarguments, 0, 0, sizeof(impl_arguments) },
+ { "Argument", 2, false, phylum_argument, kc_subphyla_Argument, 0, 0, sizeof(impl_argument_Argument) },
+ { "CcodeOption", 2, false, phylum_Ccode_option, kc_subphyla_CcodeOption, 0, 0, sizeof(impl_Ccode_option_CcodeOption) },
+ { "Nilattributes", 0, false, phylum_attributes, 0, 0, 0, sizeof(impl_attributes) },
+ { "Consattributes", 2, false, phylum_attributes, kc_subphyla_Consattributes, 0, 0, sizeof(impl_attributes) },
+ { "Attribute", 3, false, phylum_attribute, kc_subphyla_Attribute, 0, 0, sizeof(impl_attribute_Attribute) },
+ { "Noattribute_initialisation", 0, false, phylum_attribute_initialisation_option, 0, 0, 0, sizeof(impl_attribute_initialisation_option_Noattribute_initialisation) },
+ { "Yesattribute_initialisation", 1, false, phylum_attribute_initialisation_option, kc_subphyla_Yesattribute_initialisation, 0, 0, sizeof(impl_attribute_initialisation_option_Yesattribute_initialisation) },
+ { "NilCexpression", 0, false, phylum_Cexpression, 0, 0, 0, sizeof(impl_Cexpression) },
+ { "ConsCexpression", 2, false, phylum_Cexpression, kc_subphyla_ConsCexpression, 0, 0, sizeof(impl_Cexpression) },
+ { "CExpressionPart", 1, false, phylum_Cexpression_elem, kc_subphyla_CExpressionPart, 0, 0, sizeof(impl_Cexpression_elem_CExpressionPart) },
+ { "CExpressionDollarvar", 1, false, phylum_Cexpression_elem, kc_subphyla_CExpressionDollarvar, 0, 0, sizeof(impl_Cexpression_elem_CExpressionDollarvar) },
+ { "CExpressionNl", 0, false, phylum_Cexpression_elem, 0, 0, 0, sizeof(impl_Cexpression_elem_CExpressionNl) },
+ { "CExpressionDQ", 1, false, phylum_Cexpression_elem, kc_subphyla_CExpressionDQ, 0, 0, sizeof(impl_Cexpression_elem_CExpressionDQ) },
+ { "CExpressionSQ", 1, false, phylum_Cexpression_elem, kc_subphyla_CExpressionSQ, 0, 0, sizeof(impl_Cexpression_elem_CExpressionSQ) },
+ { "CExpressionPack", 1, false, phylum_Cexpression_elem, kc_subphyla_CExpressionPack, 0, 0, sizeof(impl_Cexpression_elem_CExpressionPack) },
+ { "CExpressionArray", 1, false, phylum_Cexpression_elem, kc_subphyla_CExpressionArray, 0, 0, sizeof(impl_Cexpression_elem_CExpressionArray) },
+ { "NilCexpressionDQ", 0, false, phylum_CexpressionDQ, 0, 0, 0, sizeof(impl_CexpressionDQ) },
+ { "ConsCexpressionDQ", 2, false, phylum_CexpressionDQ, kc_subphyla_ConsCexpressionDQ, 0, 0, sizeof(impl_CexpressionDQ) },
+ { "CExpressionDQPart", 1, false, phylum_CexpressionDQ_elem, kc_subphyla_CExpressionDQPart, 0, 0, sizeof(impl_CexpressionDQ_elem_CExpressionDQPart) },
+ { "CExpressionDQNl", 0, false, phylum_CexpressionDQ_elem, 0, 0, 0, sizeof(impl_CexpressionDQ_elem_CExpressionDQNl) },
+ { "NilCexpressionSQ", 0, false, phylum_CexpressionSQ, 0, 0, 0, sizeof(impl_CexpressionSQ) },
+ { "ConsCexpressionSQ", 2, false, phylum_CexpressionSQ, kc_subphyla_ConsCexpressionSQ, 0, 0, sizeof(impl_CexpressionSQ) },
+ { "CExpressionSQPart", 1, false, phylum_CexpressionSQ_elem, kc_subphyla_CExpressionSQPart, 0, 0, sizeof(impl_CexpressionSQ_elem_CExpressionSQPart) },
+ { "CExpressionSQNl", 0, false, phylum_CexpressionSQ_elem, 0, 0, 0, sizeof(impl_CexpressionSQ_elem_CExpressionSQNl) },
+ { "NilidCexpressions", 0, false, phylum_idCexpressions, 0, 0, 0, sizeof(impl_idCexpressions) },
+ { "ConsidCexpressions", 2, false, phylum_idCexpressions, kc_subphyla_ConsidCexpressions, 0, 0, sizeof(impl_idCexpressions) },
+ { "IdCexpression", 2, false, phylum_idCexpression, kc_subphyla_IdCexpression, 0, 0, sizeof(impl_idCexpression_IdCexpression) },
+ { "NilCtexts", 0, false, phylum_Ctexts, 0, 0, 0, sizeof(impl_Ctexts) },
+ { "ConsCtexts", 2, false, phylum_Ctexts, kc_subphyla_ConsCtexts, 0, 0, sizeof(impl_Ctexts) },
+ { "Nilincludefiles", 0, false, phylum_includefiles, 0, 0, 0, sizeof(impl_includefiles) },
+ { "Consincludefiles", 2, false, phylum_includefiles, kc_subphyla_Consincludefiles, 0, 0, sizeof(impl_includefiles) },
+ { "IncludeFile", 1, false, phylum_includefile, kc_subphyla_IncludeFile, 0, 0, sizeof(impl_includefile_IncludeFile) },
+ { "Nilincludedeclarations", 0, false, phylum_includedeclarations, 0, 0, 0, sizeof(impl_includedeclarations) },
+ { "Consincludedeclarations", 2, false, phylum_includedeclarations, kc_subphyla_Consincludedeclarations, 0, 0, sizeof(impl_includedeclarations) },
+ { "IncludeDeclaration", 1, false, phylum_includedeclaration, kc_subphyla_IncludeDeclaration, 0, 0, sizeof(impl_includedeclaration_IncludeDeclaration) },
+ { "Nilrwdeclarations", 0, false, phylum_rwdeclarations, 0, 0, 0, sizeof(impl_rwdeclarations) },
+ { "Consrwdeclarations", 2, false, phylum_rwdeclarations, kc_subphyla_Consrwdeclarations, 0, 0, sizeof(impl_rwdeclarations) },
+ { "RwDeclaration", 2, false, phylum_rwdeclaration, kc_subphyla_RwDeclaration, 0, 0, sizeof(impl_rwdeclaration_RwDeclaration) },
+ { "Nilrewriteclauses", 0, false, phylum_rewriteclauses, 0, 0, 0, sizeof(impl_rewriteclauses) },
+ { "Consrewriteclauses", 2, false, phylum_rewriteclauses, kc_subphyla_Consrewriteclauses, 0, 0, sizeof(impl_rewriteclauses) },
+ { "RewriteClause", 2, false, phylum_rewriteclause, kc_subphyla_RewriteClause, 0, 0, sizeof(impl_rewriteclause_RewriteClause) },
+ { "Nilpatternchains", 0, false, phylum_patternchains, 0, 0, 0, sizeof(impl_patternchains) },
+ { "Conspatternchains", 2, false, phylum_patternchains, kc_subphyla_Conspatternchains, 0, 0, sizeof(impl_patternchains) },
+ { "Nilpatternchain", 0, false, phylum_patternchain, 0, 0, 0, sizeof(impl_patternchain) },
+ { "Conspatternchain", 2, false, phylum_patternchain, kc_subphyla_Conspatternchain, 0, 0, sizeof(impl_patternchain) },
+ { "Niloutmostpatterns", 0, false, phylum_outmostpatterns, 0, 0, 0, sizeof(impl_outmostpatterns) },
+ { "Consoutmostpatterns", 2, false, phylum_outmostpatterns, kc_subphyla_Consoutmostpatterns, 0, 0, sizeof(impl_outmostpatterns) },
+ { "PatternchainitemOutmost", 1, false, phylum_patternchainitem, kc_subphyla_PatternchainitemOutmost, 0, 0, sizeof(impl_patternchainitem_PatternchainitemOutmost) },
+ { "PatternchainitemGroup", 1, false, phylum_patternchainitem, kc_subphyla_PatternchainitemGroup, 0, 0, sizeof(impl_patternchainitem_PatternchainitemGroup) },
+ { "PatternchainitemDollarid", 1, false, phylum_patternchainitem, kc_subphyla_PatternchainitemDollarid, 0, 0, sizeof(impl_patternchainitem_PatternchainitemDollarid) },
+ { "OPOperatorWildcard", 2, false, phylum_outmostpattern, kc_subphyla_OPOperatorWildcard, 0, 0, sizeof(impl_outmostpattern_OPOperatorWildcard) },
+ { "OPOperator", 3, false, phylum_outmostpattern, kc_subphyla_OPOperator, 0, 0, sizeof(impl_outmostpattern_OPOperator) },
+ { "OPNonLeafVariable", 2, false, phylum_outmostpattern, kc_subphyla_OPNonLeafVariable, 0, 0, sizeof(impl_outmostpattern_OPNonLeafVariable) },
+ { "OPWildcard", 1, false, phylum_outmostpattern, kc_subphyla_OPWildcard, 0, 0, sizeof(impl_outmostpattern_OPWildcard) },
+ { "OPDefault", 1, false, phylum_outmostpattern, kc_subphyla_OPDefault, 0, 0, sizeof(impl_outmostpattern_OPDefault) },
+ { "PVariable", 1, false, phylum_pattern, kc_subphyla_PVariable, 0, 0, sizeof(impl_pattern_PVariable) },
+ { "POperator", 2, false, phylum_pattern, kc_subphyla_POperator, 0, 0, sizeof(impl_pattern_POperator) },
+ { "PNonLeafVariable", 2, false, phylum_pattern, kc_subphyla_PNonLeafVariable, 0, 0, sizeof(impl_pattern_PNonLeafVariable) },
+ { "PWildcard", 0, false, phylum_pattern, 0, 0, 0, sizeof(impl_pattern_PWildcard) },
+ { "PStringLiteral", 1, false, phylum_pattern, kc_subphyla_PStringLiteral, 0, 0, sizeof(impl_pattern_PStringLiteral) },
+ { "PIntLiteral", 1, false, phylum_pattern, kc_subphyla_PIntLiteral, 0, 0, sizeof(impl_pattern_PIntLiteral) },
+ { "Nilpatterns", 0, false, phylum_patterns, 0, 0, 0, sizeof(impl_patterns) },
+ { "Conspatterns", 2, false, phylum_patterns, kc_subphyla_Conspatterns, 0, 0, sizeof(impl_patterns) },
+ { "TVariable", 1, false, phylum_term, kc_subphyla_TVariable, 0, 0, sizeof(impl_term_TVariable) },
+ { "TOperator", 2, false, phylum_term, kc_subphyla_TOperator, 0, 0, sizeof(impl_term_TOperator) },
+ { "TMethod", 3, false, phylum_term, kc_subphyla_TMethod, 0, 0, sizeof(impl_term_TMethod) },
+ { "TMethodDot", 3, false, phylum_term, kc_subphyla_TMethodDot, 0, 0, sizeof(impl_term_TMethodDot) },
+ { "TMemberVar", 2, false, phylum_term, kc_subphyla_TMemberVar, 0, 0, sizeof(impl_term_TMemberVar) },
+ { "TMemberVarDot", 2, false, phylum_term, kc_subphyla_TMemberVarDot, 0, 0, sizeof(impl_term_TMemberVarDot) },
+ { "TCTerm", 1, false, phylum_term, kc_subphyla_TCTerm, 0, 0, sizeof(impl_term_TCTerm) },
+ { "TStringLiteral", 1, false, phylum_term, kc_subphyla_TStringLiteral, 0, 0, sizeof(impl_term_TStringLiteral) },
+ { "TIntLiteral", 1, false, phylum_term, kc_subphyla_TIntLiteral, 0, 0, sizeof(impl_term_TIntLiteral) },
+ { "Nilterms", 0, false, phylum_terms, 0, 0, 0, sizeof(impl_terms) },
+ { "Consterms", 2, false, phylum_terms, kc_subphyla_Consterms, 0, 0, sizeof(impl_terms) },
+ { "Nilfnfiles", 0, false, phylum_fnfiles, 0, 0, 0, sizeof(impl_fnfiles) },
+ { "Consfnfiles", 2, false, phylum_fnfiles, kc_subphyla_Consfnfiles, 0, 0, sizeof(impl_fnfiles) },
+ { "FnFile", 1, false, phylum_fnfile, kc_subphyla_FnFile, 0, 0, sizeof(impl_fnfile_FnFile) },
+ { "Nilfndeclarations", 0, false, phylum_fndeclarations, 0, 0, 0, sizeof(impl_fndeclarations) },
+ { "Consfndeclarations", 2, false, phylum_fndeclarations, kc_subphyla_Consfndeclarations, 0, 0, sizeof(impl_fndeclarations) },
+ { "FnAcDeclaration", 7, false, phylum_fndeclaration, kc_subphyla_FnAcDeclaration, 0, 0, sizeof(impl_fndeclaration_FnAcDeclaration) },
+ { "AcMemberDeclaration", 4, false, phylum_fndeclaration, kc_subphyla_AcMemberDeclaration, 0, 0, sizeof(impl_fndeclaration_AcMemberDeclaration) },
+ { "GlobalFn", 0, false, phylum_fnclass, 0, 0, 0, sizeof(impl_fnclass_GlobalFn) },
+ { "StaticFn", 1, false, phylum_fnclass, kc_subphyla_StaticFn, 0, 0, sizeof(impl_fnclass_StaticFn) },
+ { "MemberFn", 0, false, phylum_fnclass, 0, 0, 0, sizeof(impl_fnclass_MemberFn) },
+ { "ConstructorFn", 0, false, phylum_fnclass, 0, 0, 0, sizeof(impl_fnclass_ConstructorFn) },
+ { "DestructorFn", 0, false, phylum_fnclass, 0, 0, 0, sizeof(impl_fnclass_DestructorFn) },
+ { "ConvOperatorFn", 0, false, phylum_fnclass, 0, 0, 0, sizeof(impl_fnclass_ConvOperatorFn) },
+ { "NilCtext", 0, false, phylum_Ctext, 0, 0, 0, sizeof(impl_Ctext) },
+ { "ConsCtext", 2, false, phylum_Ctext, kc_subphyla_ConsCtext, 0, 0, sizeof(impl_Ctext) },
+ { "CTextLine", 1, false, phylum_Ctext_elem, kc_subphyla_CTextLine, 0, 0, sizeof(impl_Ctext_elem_CTextLine) },
+ { "CTextDollarVar", 1, false, phylum_Ctext_elem, kc_subphyla_CTextDollarVar, 0, 0, sizeof(impl_Ctext_elem_CTextDollarVar) },
+ { "CTextNl", 1, false, phylum_Ctext_elem, kc_subphyla_CTextNl, 0, 0, sizeof(impl_Ctext_elem_CTextNl) },
+ { "CTextCexpressionDQ", 1, false, phylum_Ctext_elem, kc_subphyla_CTextCexpressionDQ, 0, 0, sizeof(impl_Ctext_elem_CTextCexpressionDQ) },
+ { "CTextCexpressionSQ", 1, false, phylum_Ctext_elem, kc_subphyla_CTextCexpressionSQ, 0, 0, sizeof(impl_Ctext_elem_CTextCexpressionSQ) },
+ { "CTextCbody", 1, false, phylum_Ctext_elem, kc_subphyla_CTextCbody, 0, 0, sizeof(impl_Ctext_elem_CTextCbody) },
+ { "CTextForeachexpression", 5, false, phylum_Ctext_elem, kc_subphyla_CTextForeachexpression, 0, 0, sizeof(impl_Ctext_elem_CTextForeachexpression) },
+ { "CTextWithexpression", 3, false, phylum_Ctext_elem, kc_subphyla_CTextWithexpression, 0, 0, sizeof(impl_Ctext_elem_CTextWithexpression) },
+ { "NoForeachAfter", 0, false, phylum_foreach_after, 0, 0, 0, sizeof(impl_foreach_after_NoForeachAfter) },
+ { "ForeachAfter", 4, false, phylum_foreach_after, kc_subphyla_ForeachAfter, 0, 0, sizeof(impl_foreach_after_ForeachAfter) },
+ { "InForeachContext", 1, false, phylum_contextinfo, kc_subphyla_InForeachContext, 0, 0, sizeof(impl_contextinfo_InForeachContext) },
+ { "NotInForeachContext", 0, false, phylum_contextinfo, 0, 0, 0, sizeof(impl_contextinfo_NotInForeachContext) },
+ { "Nilwithexpressions", 0, false, phylum_withexpressions, 0, 0, 0, sizeof(impl_withexpressions) },
+ { "Conswithexpressions", 2, false, phylum_withexpressions, kc_subphyla_Conswithexpressions, 0, 0, sizeof(impl_withexpressions) },
+ { "WEVariable", 1, false, phylum_withexpression, kc_subphyla_WEVariable, 0, 0, sizeof(impl_withexpression_WEVariable) },
+ { "WECexpression", 1, false, phylum_withexpression, kc_subphyla_WECexpression, 0, 0, sizeof(impl_withexpression_WECexpression) },
+ { "Nilwithcases", 0, false, phylum_withcases, 0, 0, 0, sizeof(impl_withcases) },
+ { "Conswithcases", 2, false, phylum_withcases, kc_subphyla_Conswithcases, 0, 0, sizeof(impl_withcases) },
+ { "Withcase", 2, false, phylum_withcase, kc_subphyla_Withcase, 0, 0, sizeof(impl_withcase_Withcase) },
+ { "Nilunparsedeclarations", 0, false, phylum_unparsedeclarations, 0, 0, 0, sizeof(impl_unparsedeclarations) },
+ { "Consunparsedeclarations", 2, false, phylum_unparsedeclarations, kc_subphyla_Consunparsedeclarations, 0, 0, sizeof(impl_unparsedeclarations) },
+ { "UnparseDeclaration", 2, false, phylum_unparsedeclaration, kc_subphyla_UnparseDeclaration, 0, 0, sizeof(impl_unparsedeclaration_UnparseDeclaration) },
+ { "Nilunparseclauses", 0, false, phylum_unparseclauses, 0, 0, 0, sizeof(impl_unparseclauses) },
+ { "Consunparseclauses", 2, false, phylum_unparseclauses, kc_subphyla_Consunparseclauses, 0, 0, sizeof(impl_unparseclauses) },
+ { "UnparseClause", 2, false, phylum_unparseclause, kc_subphyla_UnparseClause, 0, 0, sizeof(impl_unparseclause_UnparseClause) },
+ { "Nilviewnames", 0, false, phylum_viewnames, 0, 0, 0, sizeof(impl_viewnames) },
+ { "Consviewnames", 2, false, phylum_viewnames, kc_subphyla_Consviewnames, 0, 0, sizeof(impl_viewnames) },
+ { "Nilunparseitems", 0, false, phylum_unparseitems, 0, 0, 0, sizeof(impl_unparseitems) },
+ { "Consunparseitems", 2, false, phylum_unparseitems, kc_subphyla_Consunparseitems, 0, 0, sizeof(impl_unparseitems) },
+ { "UnpStr", 3, false, phylum_unparseitem, kc_subphyla_UnpStr, 0, 0, sizeof(impl_unparseitem_UnpStr) },
+ { "UnpSubexpr", 3, false, phylum_unparseitem, kc_subphyla_UnpSubexpr, 0, 0, sizeof(impl_unparseitem_UnpSubexpr) },
+ { "UnpCtext", 2, false, phylum_unparseitem, kc_subphyla_UnpCtext, 0, 0, sizeof(impl_unparseitem_UnpCtext) },
+ { "UnpBody", 2, false, phylum_unparseitem, kc_subphyla_UnpBody, 0, 0, sizeof(impl_unparseitem_UnpBody) },
+ { "UViewVarDecl", 3, false, phylum_unparseitem, kc_subphyla_UViewVarDecl, 0, 0, sizeof(impl_unparseitem_UViewVarDecl) },
+ { "UnpSubTerm", 1, false, phylum_unpsubterm, kc_subphyla_UnpSubTerm, 0, 0, sizeof(impl_unpsubterm_UnpSubTerm) },
+ { "UnpDollarvarTerm", 1, false, phylum_unpsubterm, kc_subphyla_UnpDollarvarTerm, 0, 0, sizeof(impl_unpsubterm_UnpDollarvarTerm) },
+ { "UnpSubAttr", 2, false, phylum_unpsubterm, kc_subphyla_UnpSubAttr, 0, 0, sizeof(impl_unpsubterm_UnpSubAttr) },
+ { "UnpDollarvarAttr", 2, false, phylum_unpsubterm, kc_subphyla_UnpDollarvarAttr, 0, 0, sizeof(impl_unpsubterm_UnpDollarvarAttr) },
+ { "UnpCastedVariable", 2, false, phylum_unpsubterm, kc_subphyla_UnpCastedVariable, 0, 0, sizeof(impl_unpsubterm_UnpCastedVariable) },
+ { "Nilunpattributes", 0, false, phylum_unpattributes, 0, 0, 0, sizeof(impl_unpattributes) },
+ { "Consunpattributes", 2, false, phylum_unpattributes, kc_subphyla_Consunpattributes, 0, 0, sizeof(impl_unpattributes) },
+ { "NoViewname", 0, false, phylum_viewnameoption, 0, 0, 0, sizeof(impl_viewnameoption_NoViewname) },
+ { "YesViewname", 1, false, phylum_viewnameoption, kc_subphyla_YesViewname, 0, 0, sizeof(impl_viewnameoption_YesViewname) },
+ { "NoLanguagename", 0, false, phylum_languageoption, 0, 0, 0, sizeof(impl_languageoption_NoLanguagename) },
+ { "LanguageList", 1, false, phylum_languageoption, kc_subphyla_LanguageList, 0, 0, sizeof(impl_languageoption_LanguageList) },
+ { "Nillanguagenames", 0, false, phylum_languagenames, 0, 0, 0, sizeof(impl_languagenames) },
+ { "Conslanguagenames", 2, false, phylum_languagenames, kc_subphyla_Conslanguagenames, 0, 0, sizeof(impl_languagenames) },
+ { "FileLine", 0, false, phylum_fileline, 0, 0, 0, sizeof(impl_fileline_FileLine) },
+ { "NoFileLine", 0, false, phylum_fileline, 0, 0, 0, sizeof(impl_fileline_NoFileLine) },
+ { "PosNoFileLine", 0, false, phylum_fileline, 0, 0, 0, sizeof(impl_fileline_PosNoFileLine) },
+ { "Nilscopetypefilelinestack", 0, false, phylum_scopetypefilelinestack, 0, 0, 0, sizeof(impl_scopetypefilelinestack) },
+ { "Consscopetypefilelinestack", 2, false, phylum_scopetypefilelinestack, kc_subphyla_Consscopetypefilelinestack, 0, 0, sizeof(impl_scopetypefilelinestack) },
+ { "ScopeTypeFileLine", 4, false, phylum_scopetypefileline, kc_subphyla_ScopeTypeFileLine, 0, 0, sizeof(impl_scopetypefileline_ScopeTypeFileLine) },
+ { "ITUnknown", 0, false, phylum_IDtype, 0, 0, 0, sizeof(impl_IDtype_ITUnknown) },
+ { "ITPredefinedPhylum", 1, false, phylum_IDtype, kc_subphyla_ITPredefinedPhylum, 0, 0, sizeof(impl_IDtype_ITPredefinedPhylum) },
+ { "ITUserPhylum", 1, false, phylum_IDtype, kc_subphyla_ITUserPhylum, 0, 0, sizeof(impl_IDtype_ITUserPhylum) },
+ { "ITPredefinedOperator", 2, false, phylum_IDtype, kc_subphyla_ITPredefinedOperator, 0, 0, sizeof(impl_IDtype_ITPredefinedOperator) },
+ { "ITUserOperator", 2, false, phylum_IDtype, kc_subphyla_ITUserOperator, 0, 0, sizeof(impl_IDtype_ITUserOperator) },
+ { "ITPredefinedStorageClass", 0, false, phylum_IDtype, 0, 0, 0, sizeof(impl_IDtype_ITPredefinedStorageClass) },
+ { "ITStorageClass", 0, false, phylum_IDtype, 0, 0, 0, sizeof(impl_IDtype_ITStorageClass) },
+ { "ITPredefinedUView", 0, false, phylum_IDtype, 0, 0, 0, sizeof(impl_IDtype_ITPredefinedUView) },
+ { "ITUserUView", 0, false, phylum_IDtype, 0, 0, 0, sizeof(impl_IDtype_ITUserUView) },
+ { "ITUViewVar", 0, false, phylum_IDtype, 0, 0, 0, sizeof(impl_IDtype_ITUViewVar) },
+ { "ITPredefinedRView", 0, false, phylum_IDtype, 0, 0, 0, sizeof(impl_IDtype_ITPredefinedRView) },
+ { "ITUserRView", 0, false, phylum_IDtype, 0, 0, 0, sizeof(impl_IDtype_ITUserRView) },
+ { "ITUserFunction", 1, false, phylum_IDtype, kc_subphyla_ITUserFunction, 0, 0, sizeof(impl_IDtype_ITUserFunction) },
+ { "ITPatternVariable", 2, false, phylum_IDtype, kc_subphyla_ITPatternVariable, 0, 0, sizeof(impl_IDtype_ITPatternVariable) },
+ { "ITLanguageName", 1, false, phylum_IDtype, kc_subphyla_ITLanguageName, 0, 0, sizeof(impl_IDtype_ITLanguageName) },
+ { "Niloperators", 0, false, phylum_operators, 0, 0, 0, sizeof(impl_operators) },
+ { "Consoperators", 2, false, phylum_operators, kc_subphyla_Consoperators, 0, 0, sizeof(impl_operators) },
+ { "Nilphyla", 0, false, phylum_phyla, 0, 0, 0, sizeof(impl_phyla) },
+ { "Consphyla", 2, false, phylum_phyla, kc_subphyla_Consphyla, 0, 0, sizeof(impl_phyla) },
+ { "Nilvariables", 0, false, phylum_variables, 0, 0, 0, sizeof(impl_variables) },
+ { "Consvariables", 2, false, phylum_variables, kc_subphyla_Consvariables, 0, 0, sizeof(impl_variables) },
+ { "DVAllowed", 0, false, phylum_dollarvarstatus, 0, 0, 0, sizeof(impl_dollarvarstatus_DVAllowed) },
+ { "DVDisallowed", 0, false, phylum_dollarvarstatus, 0, 0, 0, sizeof(impl_dollarvarstatus_DVDisallowed) },
+ { "Equal", 0, false, phylum_tribool, 0, 0, 0, sizeof(impl_tribool_Equal) },
+ { "Smaller", 0, false, phylum_tribool, 0, 0, 0, sizeof(impl_tribool_Smaller) },
+ { "Bigger", 0, false, phylum_tribool, 0, 0, 0, sizeof(impl_tribool_Bigger) },
+ { "Nilpatternrepresentations", 0, false, phylum_patternrepresentations, 0, 0, 0, sizeof(impl_patternrepresentations) },
+ { "Conspatternrepresentations", 2, false, phylum_patternrepresentations, kc_subphyla_Conspatternrepresentations, 0, 0, sizeof(impl_patternrepresentations) },
+ { "Nilpatternrepresentation", 0, false, phylum_patternrepresentation, 0, 0, 0, sizeof(impl_patternrepresentation) },
+ { "Conspatternrepresentation", 2, false, phylum_patternrepresentation, kc_subphyla_Conspatternrepresentation, 0, 0, sizeof(impl_patternrepresentation) },
+ { "PRBinding", 2, false, phylum_elem_patternrepresentation, kc_subphyla_PRBinding, 0, 0, sizeof(impl_elem_patternrepresentation_PRBinding) },
+ { "PRVarPredicate", 3, false, phylum_elem_patternrepresentation, kc_subphyla_PRVarPredicate, 0, 0, sizeof(impl_elem_patternrepresentation_PRVarPredicate) },
+ { "PROperPredicate", 2, false, phylum_elem_patternrepresentation, kc_subphyla_PROperPredicate, 0, 0, sizeof(impl_elem_patternrepresentation_PROperPredicate) },
+ { "PRUserPredicate", 1, false, phylum_elem_patternrepresentation, kc_subphyla_PRUserPredicate, 0, 0, sizeof(impl_elem_patternrepresentation_PRUserPredicate) },
+ { "PRNonLeafBinding", 3, false, phylum_elem_patternrepresentation, kc_subphyla_PRNonLeafBinding, 0, 0, sizeof(impl_elem_patternrepresentation_PRNonLeafBinding) },
+ { "PRWildcard", 1, false, phylum_elem_patternrepresentation, kc_subphyla_PRWildcard, 0, 0, sizeof(impl_elem_patternrepresentation_PRWildcard) },
+ { "PRDefault", 0, false, phylum_elem_patternrepresentation, 0, 0, 0, sizeof(impl_elem_patternrepresentation_PRDefault) },
+ { "PRStringLiteral", 2, false, phylum_elem_patternrepresentation, kc_subphyla_PRStringLiteral, 0, 0, sizeof(impl_elem_patternrepresentation_PRStringLiteral) },
+ { "PRIntLiteral", 2, false, phylum_elem_patternrepresentation, kc_subphyla_PRIntLiteral, 0, 0, sizeof(impl_elem_patternrepresentation_PRIntLiteral) },
+ { "Nilpath", 0, false, phylum_path, 0, 0, 0, sizeof(impl_path) },
+ { "Conspath", 2, false, phylum_path, kc_subphyla_Conspath, 0, 0, sizeof(impl_path) },
+ { "Nilpaths", 0, false, phylum_paths, 0, 0, 0, sizeof(impl_paths) },
+ { "Conspaths", 2, false, phylum_paths, kc_subphyla_Conspaths, 0, 0, sizeof(impl_paths) },
+ { "Nilargsnumbers", 0, false, phylum_argsnumbers, 0, 0, 0, sizeof(impl_argsnumbers) },
+ { "Consargsnumbers", 2, false, phylum_argsnumbers, kc_subphyla_Consargsnumbers, 0, 0, sizeof(impl_argsnumbers) },
+ { "Nilrewriterulesinfo", 0, false, phylum_rewriterulesinfo, 0, 0, 0, sizeof(impl_rewriterulesinfo) },
+ { "Consrewriterulesinfo", 2, false, phylum_rewriterulesinfo, kc_subphyla_Consrewriterulesinfo, 0, 0, sizeof(impl_rewriterulesinfo) },
+ { "Rewriteruleinfo", 3, false, phylum_rewriteruleinfo, kc_subphyla_Rewriteruleinfo, 0, 0, sizeof(impl_rewriteruleinfo_Rewriteruleinfo) },
+ { "Nilwithcasesinfo", 0, false, phylum_withcasesinfo, 0, 0, 0, sizeof(impl_withcasesinfo) },
+ { "Conswithcasesinfo", 2, false, phylum_withcasesinfo, kc_subphyla_Conswithcasesinfo, 0, 0, sizeof(impl_withcasesinfo) },
+ { "Withcaseinfo", 3, false, phylum_withcaseinfo, kc_subphyla_Withcaseinfo, 0, 0, sizeof(impl_withcaseinfo_Withcaseinfo) },
+ { "Nilrewriteviewsinfo", 0, false, phylum_rewriteviewsinfo, 0, 0, 0, sizeof(impl_rewriteviewsinfo) },
+ { "Consrewriteviewsinfo", 2, false, phylum_rewriteviewsinfo, kc_subphyla_Consrewriteviewsinfo, 0, 0, sizeof(impl_rewriteviewsinfo) },
+ { "Rewriteviewinfo", 2, false, phylum_rewriteviewinfo, kc_subphyla_Rewriteviewinfo, 0, 0, sizeof(impl_rewriteviewinfo_Rewriteviewinfo) },
+ { "Nilunparseviewsinfo", 0, false, phylum_unparseviewsinfo, 0, 0, 0, sizeof(impl_unparseviewsinfo) },
+ { "Consunparseviewsinfo", 2, false, phylum_unparseviewsinfo, kc_subphyla_Consunparseviewsinfo, 0, 0, sizeof(impl_unparseviewsinfo) },
+ { "Unparseviewinfo", 2, false, phylum_unparseviewinfo, kc_subphyla_Unparseviewinfo, 0, 0, sizeof(impl_unparseviewinfo_Unparseviewinfo) },
+ { "Nilunparsedeclsinfo", 0, false, phylum_unparsedeclsinfo, 0, 0, 0, sizeof(impl_unparsedeclsinfo) },
+ { "Consunparsedeclsinfo", 2, false, phylum_unparsedeclsinfo, kc_subphyla_Consunparsedeclsinfo, 0, 0, sizeof(impl_unparsedeclsinfo) },
+ { "Unparsedeclinfo", 3, false, phylum_unparsedeclinfo, kc_subphyla_Unparsedeclinfo, 0, 0, sizeof(impl_unparsedeclinfo_Unparsedeclinfo) },
+ { "AcDeclaration", 2, false, phylum_ac_declaration, kc_subphyla_AcDeclaration, 0, 0, sizeof(impl_ac_declaration_AcDeclaration) },
+ { "Nilac_declaration_list", 0, false, phylum_ac_declaration_list, 0, 0, 0, sizeof(impl_ac_declaration_list) },
+ { "Consac_declaration_list", 2, false, phylum_ac_declaration_list, kc_subphyla_Consac_declaration_list, 0, 0, sizeof(impl_ac_declaration_list) },
+ { "Nilac_declaration_specifiers", 0, false, phylum_ac_declaration_specifiers, 0, 0, 0, sizeof(impl_ac_declaration_specifiers) },
+ { "Consac_declaration_specifiers", 2, false, phylum_ac_declaration_specifiers, kc_subphyla_Consac_declaration_specifiers, 0, 0, sizeof(impl_ac_declaration_specifiers) },
+ { "AcDeclSpecStorageSpec", 1, false, phylum_ac_declaration_specifier, kc_subphyla_AcDeclSpecStorageSpec, 0, 0, sizeof(impl_ac_declaration_specifier_AcDeclSpecStorageSpec) },
+ { "AcDeclSpecTypeSpec", 1, false, phylum_ac_declaration_specifier, kc_subphyla_AcDeclSpecTypeSpec, 0, 0, sizeof(impl_ac_declaration_specifier_AcDeclSpecTypeSpec) },
+ { "AcDeclSpecTypeQual", 1, false, phylum_ac_declaration_specifier, kc_subphyla_AcDeclSpecTypeQual, 0, 0, sizeof(impl_ac_declaration_specifier_AcDeclSpecTypeQual) },
+ { "AcAuto", 0, false, phylum_ac_storage_class_specifier, 0, 0, 0, sizeof(impl_ac_storage_class_specifier_AcAuto) },
+ { "AcRegister", 0, false, phylum_ac_storage_class_specifier, 0, 0, 0, sizeof(impl_ac_storage_class_specifier_AcRegister) },
+ { "AcStatic", 0, false, phylum_ac_storage_class_specifier, 0, 0, 0, sizeof(impl_ac_storage_class_specifier_AcStatic) },
+ { "AcExtern", 0, false, phylum_ac_storage_class_specifier, 0, 0, 0, sizeof(impl_ac_storage_class_specifier_AcExtern) },
+ { "AcTypedef", 0, false, phylum_ac_storage_class_specifier, 0, 0, 0, sizeof(impl_ac_storage_class_specifier_AcTypedef) },
+ { "AcVirtual", 0, false, phylum_ac_storage_class_specifier, 0, 0, 0, sizeof(impl_ac_storage_class_specifier_AcVirtual) },
+ { "AcTypeSpec", 1, false, phylum_ac_type_specifier, kc_subphyla_AcTypeSpec, 0, 0, sizeof(impl_ac_type_specifier_AcTypeSpec) },
+ { "AcConst", 0, false, phylum_ac_type_qualifier, 0, 0, 0, sizeof(impl_ac_type_qualifier_AcConst) },
+ { "AcVolatile", 0, false, phylum_ac_type_qualifier, 0, 0, 0, sizeof(impl_ac_type_qualifier_AcVolatile) },
+ { "AcUnsigned", 0, false, phylum_ac_type_qualifier, 0, 0, 0, sizeof(impl_ac_type_qualifier_AcUnsigned) },
+ { "AcNoQualifier", 0, false, phylum_ac_type_qualifier, 0, 0, 0, sizeof(impl_ac_type_qualifier_AcNoQualifier) },
+ { "Nilac_init_declarator_list", 0, false, phylum_ac_init_declarator_list, 0, 0, 0, sizeof(impl_ac_init_declarator_list) },
+ { "Consac_init_declarator_list", 2, false, phylum_ac_init_declarator_list, kc_subphyla_Consac_init_declarator_list, 0, 0, sizeof(impl_ac_init_declarator_list) },
+ { "AcInitDecl", 1, false, phylum_ac_init_declarator, kc_subphyla_AcInitDecl, 0, 0, sizeof(impl_ac_init_declarator_AcInitDecl) },
+ { "AcDeclarator", 3, false, phylum_ac_declarator, kc_subphyla_AcDeclarator, 0, 0, sizeof(impl_ac_declarator_AcDeclarator) },
+ { "AcDirectDeclId", 1, false, phylum_ac_direct_declarator, kc_subphyla_AcDirectDeclId, 0, 0, sizeof(impl_ac_direct_declarator_AcDirectDeclId) },
+ { "AcDirectDeclPack", 1, false, phylum_ac_direct_declarator, kc_subphyla_AcDirectDeclPack, 0, 0, sizeof(impl_ac_direct_declarator_AcDirectDeclPack) },
+ { "AcDirectDeclArray", 2, false, phylum_ac_direct_declarator, kc_subphyla_AcDirectDeclArray, 0, 0, sizeof(impl_ac_direct_declarator_AcDirectDeclArray) },
+ { "AcDirectDeclProto", 2, false, phylum_ac_direct_declarator, kc_subphyla_AcDirectDeclProto, 0, 0, sizeof(impl_ac_direct_declarator_AcDirectDeclProto) },
+ { "AcQualifiedDeclProto", 4, false, phylum_ac_direct_declarator, kc_subphyla_AcQualifiedDeclProto, 0, 0, sizeof(impl_ac_direct_declarator_AcQualifiedDeclProto) },
+ { "AcMemberDecl", 3, false, phylum_ac_direct_declarator, kc_subphyla_AcMemberDecl, 0, 0, sizeof(impl_ac_direct_declarator_AcMemberDecl) },
+ { "AcConvOperatorDecl", 2, false, phylum_ac_direct_declarator, kc_subphyla_AcConvOperatorDecl, 0, 0, sizeof(impl_ac_direct_declarator_AcConvOperatorDecl) },
+ { "AcOperatorDeclId", 1, false, phylum_ac_direct_declarator, kc_subphyla_AcOperatorDeclId, 0, 0, sizeof(impl_ac_direct_declarator_AcOperatorDeclId) },
+ { "Nopointer", 0, false, phylum_ac_pointer_option, 0, 0, 0, sizeof(impl_ac_pointer_option_Nopointer) },
+ { "Yespointer", 1, false, phylum_ac_pointer_option, kc_subphyla_Yespointer, 0, 0, sizeof(impl_ac_pointer_option_Yespointer) },
+ { "AcPointerNil", 1, false, phylum_ac_pointer, kc_subphyla_AcPointerNil, 0, 0, sizeof(impl_ac_pointer_AcPointerNil) },
+ { "AcPointerCons", 2, false, phylum_ac_pointer, kc_subphyla_AcPointerCons, 0, 0, sizeof(impl_ac_pointer_AcPointerCons) },
+ { "AcNoRef", 0, false, phylum_ac_ref_option, 0, 0, 0, sizeof(impl_ac_ref_option_AcNoRef) },
+ { "AcRef", 0, false, phylum_ac_ref_option, 0, 0, 0, sizeof(impl_ac_ref_option_AcRef) },
+ { "AcOperatorName", 1, false, phylum_ac_operator_name, kc_subphyla_AcOperatorName, 0, 0, sizeof(impl_ac_operator_name_AcOperatorName) },
+ { "Nilac_class_qualifier_help_list", 0, false, phylum_ac_class_qualifier_help_list, 0, 0, 0, sizeof(impl_ac_class_qualifier_help_list) },
+ { "Consac_class_qualifier_help_list", 2, false, phylum_ac_class_qualifier_help_list, kc_subphyla_Consac_class_qualifier_help_list, 0, 0, sizeof(impl_ac_class_qualifier_help_list) },
+ { "Nilac_class_qualifier_list", 0, false, phylum_ac_class_qualifier_list, 0, 0, 0, sizeof(impl_ac_class_qualifier_list) },
+ { "Consac_class_qualifier_list", 2, false, phylum_ac_class_qualifier_list, kc_subphyla_Consac_class_qualifier_list, 0, 0, sizeof(impl_ac_class_qualifier_list) },
+ { "Nilac_type_qualifier_list", 0, false, phylum_ac_type_qualifier_list, 0, 0, 0, sizeof(impl_ac_type_qualifier_list) },
+ { "Consac_type_qualifier_list", 2, false, phylum_ac_type_qualifier_list, kc_subphyla_Consac_type_qualifier_list, 0, 0, sizeof(impl_ac_type_qualifier_list) },
+ { "AcParList", 1, false, phylum_ac_parameter_type_list, kc_subphyla_AcParList, 0, 0, sizeof(impl_ac_parameter_type_list_AcParList) },
+ { "AcParList3Dot", 1, false, phylum_ac_parameter_type_list, kc_subphyla_AcParList3Dot, 0, 0, sizeof(impl_ac_parameter_type_list_AcParList3Dot) },
+ { "Nilac_parameter_list", 0, false, phylum_ac_parameter_list, 0, 0, 0, sizeof(impl_ac_parameter_list) },
+ { "Consac_parameter_list", 2, false, phylum_ac_parameter_list, kc_subphyla_Consac_parameter_list, 0, 0, sizeof(impl_ac_parameter_list) },
+ { "AcParDeclDecl", 3, false, phylum_ac_parameter_declaration, kc_subphyla_AcParDeclDecl, 0, 0, sizeof(impl_ac_parameter_declaration_AcParDeclDecl) },
+ { "AcParDeclAbsdecl", 3, false, phylum_ac_parameter_declaration, kc_subphyla_AcParDeclAbsdecl, 0, 0, sizeof(impl_ac_parameter_declaration_AcParDeclAbsdecl) },
+ { "Nilac_identifier_list", 0, false, phylum_ac_identifier_list, 0, 0, 0, sizeof(impl_ac_identifier_list) },
+ { "Consac_identifier_list", 2, false, phylum_ac_identifier_list, kc_subphyla_Consac_identifier_list, 0, 0, sizeof(impl_ac_identifier_list) },
+ { "AcAbsdeclPointer", 1, false, phylum_ac_abstract_declarator, kc_subphyla_AcAbsdeclPointer, 0, 0, sizeof(impl_ac_abstract_declarator_AcAbsdeclPointer) },
+ { "AcAbsdeclDirdecl", 2, false, phylum_ac_abstract_declarator, kc_subphyla_AcAbsdeclDirdecl, 0, 0, sizeof(impl_ac_abstract_declarator_AcAbsdeclDirdecl) },
+ { "Noac_direct_abstract_declarator", 0, false, phylum_ac_direct_abstract_declarator_option, 0, 0, 0, sizeof(impl_ac_direct_abstract_declarator_option_Noac_direct_abstract_declarator) },
+ { "Yesac_direct_abstract_declarator", 1, false, phylum_ac_direct_abstract_declarator_option, kc_subphyla_Yesac_direct_abstract_declarator, 0, 0, sizeof(impl_ac_direct_abstract_declarator_option_Yesac_direct_abstract_declarator) },
+ { "AcDirAbsdeclPack", 1, false, phylum_ac_direct_abstract_declarator, kc_subphyla_AcDirAbsdeclPack, 0, 0, sizeof(impl_ac_direct_abstract_declarator_AcDirAbsdeclPack) },
+ { "AcDirAbsdeclArray", 2, false, phylum_ac_direct_abstract_declarator, kc_subphyla_AcDirAbsdeclArray, 0, 0, sizeof(impl_ac_direct_abstract_declarator_AcDirAbsdeclArray) },
+ { "AcDirAbsdeclFn", 2, false, phylum_ac_direct_abstract_declarator, kc_subphyla_AcDirAbsdeclFn, 0, 0, sizeof(impl_ac_direct_abstract_declarator_AcDirAbsdeclFn) },
+ { "Yesac_constant_expression", 1, false, phylum_ac_constant_expression_option, kc_subphyla_Yesac_constant_expression, 0, 0, sizeof(impl_ac_constant_expression_option_Yesac_constant_expression) },
+ { "Noac_constant_expression", 0, false, phylum_ac_constant_expression_option, 0, 0, 0, sizeof(impl_ac_constant_expression_option_Noac_constant_expression) },
+ { "AcConstExpr", 1, false, phylum_ac_constant_expression, kc_subphyla_AcConstExpr, 0, 0, sizeof(impl_ac_constant_expression_AcConstExpr) },
+ { "Nilac_constant_expression_list", 0, false, phylum_ac_constant_expression_list, 0, 0, 0, sizeof(impl_ac_constant_expression_list) },
+ { "Consac_constant_expression_list", 2, false, phylum_ac_constant_expression_list, kc_subphyla_Consac_constant_expression_list, 0, 0, sizeof(impl_ac_constant_expression_list) },
+ { "AcNoBaseInit", 0, false, phylum_ac_opt_base_init_list, 0, 0, 0, sizeof(impl_ac_opt_base_init_list_AcNoBaseInit) },
+ { "AcYesBaseInit", 1, false, phylum_ac_opt_base_init_list, kc_subphyla_AcYesBaseInit, 0, 0, sizeof(impl_ac_opt_base_init_list_AcYesBaseInit) },
+ { "Nilac_base_init_list", 0, false, phylum_ac_base_init_list, 0, 0, 0, sizeof(impl_ac_base_init_list) },
+ { "Consac_base_init_list", 2, false, phylum_ac_base_init_list, kc_subphyla_Consac_base_init_list, 0, 0, sizeof(impl_ac_base_init_list) },
+ { "AcBaseInit", 2, false, phylum_ac_base_init, kc_subphyla_AcBaseInit, 0, 0, sizeof(impl_ac_base_init_AcBaseInit) },
+ { "Nilbaseclass_declarations", 0, false, phylum_baseclass_declarations, 0, 0, 0, sizeof(impl_baseclass_declarations) },
+ { "Consbaseclass_declarations", 2, false, phylum_baseclass_declarations, kc_subphyla_Consbaseclass_declarations, 0, 0, sizeof(impl_baseclass_declarations) },
+ { "BaseClassDecl", 2, false, phylum_baseclass_decl, kc_subphyla_BaseClassDecl, 0, 0, sizeof(impl_baseclass_decl_BaseClassDecl) },
+ { "Nilbaseclass_list", 0, false, phylum_baseclass_list, 0, 0, 0, sizeof(impl_baseclass_list) },
+ { "Consbaseclass_list", 2, false, phylum_baseclass_list, kc_subphyla_Consbaseclass_list, 0, 0, sizeof(impl_baseclass_list) },
+ { "Fatal", 2, false, phylum_error, kc_subphyla_Fatal, 0, 0, sizeof(impl_error_Fatal) },
+ { "NonFatal", 2, false, phylum_error, kc_subphyla_NonFatal, 0, 0, sizeof(impl_error_NonFatal) },
+ { "Warning", 2, false, phylum_error, kc_subphyla_Warning, 0, 0, sizeof(impl_error_Warning) },
+ { "Problem1", 1, false, phylum_problem, kc_subphyla_Problem1, 0, 0, sizeof(impl_problem_Problem1) },
+ { "Problem1ID", 2, false, phylum_problem, kc_subphyla_Problem1ID, 0, 0, sizeof(impl_problem_Problem1ID) },
+ { "Problem1tID", 2, false, phylum_problem, kc_subphyla_Problem1tID, 0, 0, sizeof(impl_problem_Problem1tID) },
+ { "Problem1we", 2, false, phylum_problem, kc_subphyla_Problem1we, 0, 0, sizeof(impl_problem_Problem1we) },
+ { "Problem1ID1ID", 4, false, phylum_problem, kc_subphyla_Problem1ID1ID, 0, 0, sizeof(impl_problem_Problem1ID1ID) },
+ { "Problem1t1ID", 4, false, phylum_problem, kc_subphyla_Problem1t1ID, 0, 0, sizeof(impl_problem_Problem1t1ID) },
+ { "Problem1INT", 2, false, phylum_problem, kc_subphyla_Problem1INT, 0, 0, sizeof(impl_problem_Problem1INT) },
+ { "Problem1int1", 3, false, phylum_problem, kc_subphyla_Problem1int1, 0, 0, sizeof(impl_problem_Problem1int1) },
+ { "Problem1INT1ID", 4, false, phylum_problem, kc_subphyla_Problem1INT1ID, 0, 0, sizeof(impl_problem_Problem1INT1ID) },
+ { "Problem1ID1ID1ID", 6, false, phylum_problem, kc_subphyla_Problem1ID1ID1ID, 0, 0, sizeof(impl_problem_Problem1ID1ID1ID) },
+ { "Problem1INT1ID1ID", 6, false, phylum_problem, kc_subphyla_Problem1INT1ID1ID, 0, 0, sizeof(impl_problem_Problem1INT1ID1ID) },
+ { "Problem1storageoption1ID", 4, false, phylum_problem, kc_subphyla_Problem1storageoption1ID, 0, 0, sizeof(impl_problem_Problem1storageoption1ID) },
+ { "Problem2", 2, false, phylum_problem, kc_subphyla_Problem2, 0, 0, sizeof(impl_problem_Problem2) },
+ { "Problem3", 3, false, phylum_problem, kc_subphyla_Problem3, 0, 0, sizeof(impl_problem_Problem3) },
+ { "Problem3int1", 5, false, phylum_problem, kc_subphyla_Problem3int1, 0, 0, sizeof(impl_problem_Problem3int1) },
+ { "Problem4", 4, false, phylum_problem, kc_subphyla_Problem4, 0, 0, sizeof(impl_problem_Problem4) },
+ { "Problem5", 5, false, phylum_problem, kc_subphyla_Problem5, 0, 0, sizeof(impl_problem_Problem5) },
+ { "Problem6", 6, false, phylum_problem, kc_subphyla_Problem6, 0, 0, sizeof(impl_problem_Problem6) },
+ { "Niladdedphylumdeclarations", 0, false, phylum_addedphylumdeclarations, 0, 0, 0, sizeof(impl_addedphylumdeclarations) },
+ { "Consaddedphylumdeclarations", 2, false, phylum_addedphylumdeclarations, kc_subphyla_Consaddedphylumdeclarations, 0, 0, sizeof(impl_addedphylumdeclarations) },
+ { "AddedPhylumdeclaration", 1, false, phylum_addedphylumdeclaration, kc_subphyla_AddedPhylumdeclaration, 0, 0, sizeof(impl_addedphylumdeclaration_AddedPhylumdeclaration) },
+ { "Nilcountedphylumdeclarations", 0, false, phylum_countedphylumdeclarations, 0, 0, 0, sizeof(impl_countedphylumdeclarations) },
+ { "Conscountedphylumdeclarations", 2, false, phylum_countedphylumdeclarations, kc_subphyla_Conscountedphylumdeclarations, 0, 0, sizeof(impl_countedphylumdeclarations) },
+ { "CountedPhylumdeclaration", 1, false, phylum_countedphylumdeclaration, kc_subphyla_CountedPhylumdeclaration, 0, 0, sizeof(impl_countedphylumdeclaration_CountedPhylumdeclaration) },
+ { "Newlines", 0, false, phylum_charruns, 0, 0, 0, sizeof(impl_charruns_Newlines) },
+ { "QuotedNewlines", 0, false, phylum_charruns, 0, 0, 0, sizeof(impl_charruns_QuotedNewlines) },
+ { "Stars", 0, false, phylum_charruns, 0, 0, 0, sizeof(impl_charruns_Stars) },
+ { "Nilbindingidmarks", 0, false, phylum_bindingidmarks, 0, 0, 0, sizeof(impl_bindingidmarks) },
+ { "Consbindingidmarks", 2, false, phylum_bindingidmarks, kc_subphyla_Consbindingidmarks, 0, 0, sizeof(impl_bindingidmarks) },
+ { "BindingIdMark", 1, false, phylum_bindingidmark, kc_subphyla_BindingIdMark, 0, 0, sizeof(impl_bindingidmark_BindingIdMark) },
+ { "", 0, 0, one_before_first_phylum, 0, 0, 0, 0 } /* last element */
+ };
+
+ static enum_phyla phylumstorageclass_uniq[] = { one_before_first_phylum, phylum_nocasestring, phylum_casestring, phylum_real, phylum_integer, phylum_voidptr, phylum_uniqID, phylum_includefile, phylum_fnfile, phylum_countedphylumdeclaration, phylum_charruns, phylum_bindingidmarks, phylum_bindingidmark, last_phylum };
+
+ KC_UNIQ_INFO kc_UniqInfo[] = {
+ (KC_UNIQ_INFO)0,
+ phylumstorageclass_uniq
+ };
+
+ } // namespace kc
+ namespace kc { }
+ using namespace kc;
+ /* included stuff */
+ #include "gutil.h"
+
+ //
+ // The Termprocessor Kimwitu++
+ //
+ // Copyright (C) 1991 University of Twente, Dept TIOS.
+ // Copyright (C) 1998-2003 Humboldt-University of Berlin, Institute of Informatics
+ // All rights reserved.
+ //
+ // Kimwitu++ is free software; you can redistribute it and/or modify
+ // it under the terms of the GNU General Public License as published by
+ // the Free Software Foundation; either version 2 of the License, or
+ // (at your option) any later version.
+ //
+ // Kimwitu++ is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ // GNU General Public License for more details.
+ //
+ // You should have received a copy of the GNU General Public License
+ // along with Kimwitu++; if not, write to the Free Software
+ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ //
+
+ /* end included stuff */
+
+
+ namespace kc {
+
+ void
+ kc_no_default_in_with( const char *kc_func, int kc_line, const char *kc_file )
+ {
+ fflush(stdout);
+ #ifdef _AFX
+ USES_CONVERSION;
+ const _TCHAR* format=A2CT(KC_NO_DEFAULT_IN_WITH);
+ const _TCHAR* tkc_func=A2CT(kc_func);
+ const _TCHAR* tkc_file=A2CT(kc_file);
+ TRACE( format, tkc_func, tkc_file, kc_line );
+ #ifdef _DEBUG
+ if (AfxAssertFailedLine(kc_file, kc_line))
+ #endif
+ AfxDebugBreak();
+ #else
+ fprintf( stderr, KC_NO_DEFAULT_IN_WITH, kc_func, kc_file, kc_line );
+ #ifndef KC_NODEFAULT_NO_ABORT
+ abort();
+ #else
+ exit( 1 );
+ #endif
+ #endif
+ }
+
+ void
+ kc_returnless_function( const char *kc_func, int kc_line, const char *kc_file )
+ {
+ fflush(stdout);
+ #ifdef _AFX
+ USES_CONVERSION;
+ const _TCHAR* format=_T("Internal Error: function %s does not return a value, at %s:%d");
+ const _TCHAR* tkc_func=A2CT(kc_func);
+ const _TCHAR* tkc_file=A2CT(kc_file);
+ TRACE( format, tkc_func, tkc_file, kc_line );
+ #ifdef _DEBUG
+ if (AfxAssertFailedLine(kc_file, kc_line))
+ #endif
+ AfxDebugBreak();
+ #else
+ fprintf( stderr, "Internal Error: function %s does not return a value, at %s:%d", kc_func, kc_file, kc_line );
+ #ifndef KC_NODEFAULT_NO_ABORT
+ abort();
+ #else
+ exit( 1 );
+ #endif
+ #endif
+ }
+
+ void
+ kc_assertionFailed(const char *kc_fn, int kc_l)
+ {
+ fflush(stdout);
+ #ifdef _AFX
+ USES_CONVERSION;
+ const _TCHAR* format=_T("Internal Error: Assertion failed at %s:%d\n");
+ const _TCHAR* tkc_func=A2CT(kc_fn);
+ TRACE( format, tkc_func, kc_l );
+ #ifdef _DEBUG
+ if (AfxAssertFailedLine(kc_fn, kc_l))
+ #endif
+ AfxDebugBreak();
+ #else
+ fprintf( stderr, "Internal Error: Assertion failed at %s:%d\n", kc_fn, kc_l );
+ #ifndef KC_ASSERT_NO_ABORT
+ abort();
+ #else
+ exit( 1 );
+ #endif
+ #endif
+ }
+
+ void
+ kc_assertionReasonFailed(const char *kc_fn, int kc_l, const char *kc_s)
+ {
+ fflush(stdout);
+ #ifdef _AFX
+ USES_CONVERSION;
+ const _TCHAR* format=_T("Internal Error: Assertion failed at file %s:%d: %s\n");
+ const _TCHAR* tkc_func=A2CT(kc_fn);
+ const _TCHAR* tkc_s=A2CT(kc_s);
+ TRACE( format, tkc_func, kc_l, tkc_s );
+ #ifdef _DEBUG
+ if (AfxAssertFailedLine(kc_fn, kc_l))
+ #endif
+ AfxDebugBreak();
+ #else
+ fprintf( stderr, "Internal Error: Assertion failed at file %s:%d: %s\n", kc_fn, kc_l, kc_s );
+ #ifndef KC_ASSERT_NO_ABORT
+ abort();
+ #else
+ exit( 1 );
+ #endif
+ #endif
+ }
+
+ void
+ kc_assertionNonNullFailed(const char *kc_fn, int kc_l, const char *kc_str)
+ {
+ fflush(stdout);
+ #ifdef _AFX
+ USES_CONVERSION;
+ const _TCHAR* format=_T("Internal Error: Assertion failed at %s:%d: pointer %s is NULL\n");
+ const _TCHAR* tkc_func=A2CT(kc_fn);
+ const _TCHAR* tkc_s=A2CT(kc_str);
+ TRACE( format , tkc_func, kc_l, tkc_s);
+ #ifdef _DEBUG
+ if (AfxAssertFailedLine(kc_fn, kc_l))
+ #endif
+ AfxDebugBreak();
+ #else
+ fprintf( stderr, "Internal Error: Assertion failed at %s:%d: pointer %s is NULL\n", kc_fn, kc_l, kc_str );
+ #ifndef KC_ASSERT_NO_ABORT
+ abort();
+ #else
+ exit( 1 );
+ #endif
+ #endif
+ }
+
+ void
+ kc_assertionOperatorInPhylumFailed(int kc_op, const char *kc_str1, const char *kc_str2, const char *kc_phy, const char *kc_fn, int kc_l)
+ {
+ fflush(stdout);
+ #ifdef _AFX
+ USES_CONVERSION;
+ const _TCHAR* format=_T("Internal Error: Assertion failed at %s:%d: illegal value for (%s) %s%s: %d not a valid operator\n");
+ const _TCHAR* tkc_func=A2CT(kc_fn);
+ const _TCHAR* tkc_s1=A2CT(kc_str1);
+ const _TCHAR* tkc_s2=A2CT(kc_str2);
+ const _TCHAR* tname=A2CT(kc_phy);
+ if ((kc_op <= one_before_first_operator) || (kc_op >= last_operator)) {
+ TRACE (format, tkc_func, kc_l, tname, tkc_s1, tkc_s2, kc_op );
+ } else {
+ format=_T("Internal Error: Assertion failed at %s:%d: illegal value for (%s) %s%s: %s (%d) is a value of %s\n");
+ const _TCHAR* tname2=A2CT(operator_info[kc_op].name);
+ const _TCHAR* tname3=A2CT(phylum_info[operator_info[kc_op].phylum].name);
+ TRACE(format,tkc_func, kc_l, tname, tkc_s1, tkc_s2, tname2, kc_op, tname3 );
+ }
+ #ifdef _DEBUG
+ if (AfxAssertFailedLine(kc_fn, kc_l))
+ #endif
+ AfxDebugBreak();
+ #else
+ if ((kc_op <= one_before_first_operator) || (kc_op >= last_operator)) {
+ fprintf( stderr, "Internal Error: Assertion failed at %s:%d: illegal value for (%s) %s%s: %d not a valid operator\n",
+ kc_fn, kc_l, kc_phy, kc_str1, kc_str2, kc_op );
+ } else {
+ fprintf( stderr, "Internal Error: Assertion failed at %s:%d: illegal value for (%s) %s%s: %s (%d) is a value of %s\n",
+ kc_fn, kc_l, kc_phy, kc_str1, kc_str2, operator_info[kc_op].name, kc_op, phylum_info[operator_info[kc_op].phylum].name );
+ }
+ #ifndef KC_ASSERT_NO_ABORT
+ abort();
+ #else
+ exit( 1 );
+ #endif
+ #endif
+ }
+
+ void kc_invalid_operator( const char *kc_func_prefix, enum_phyla kc_phy, int kc_line, const char *kc_file, enum_operators kc_oper )
+ {
+ fflush(stdout);
+ #ifdef _AFX
+ USES_CONVERSION;
+ const _TCHAR* format=_T("Internal Error: invalid operator code in %s%s at %s:%d: %s\n");
+ const _TCHAR* tkc_func=A2CT(kc_func_prefix);
+ const _TCHAR* tkc_file=A2CT(kc_file);
+ const _TCHAR* ts1=A2CT(phylumname_or_error( kc_phy ));
+ const _TCHAR* ts2=A2CT(kc_operatorname_or_error( kc_oper ));
+ TRACE( format, tkc_func, ts1, tkc_file, kc_line, ts2);
+ #ifdef _DEBUG
+ if (AfxAssertFailedLine(kc_file, kc_line))
+ #endif
+ AfxDebugBreak();
+ #else
+ fprintf( stderr, "Internal Error: invalid operator code in %s%s at %s:%d: %s\n", kc_func_prefix, phylumname_or_error( kc_phy ), kc_file, kc_line, kc_operatorname_or_error( kc_oper ));
+ #ifndef KC_INVALID_OPERATOR_NO_ABORT
+ abort();
+ #else
+ exit( 1 );
+ #endif
+ #endif
+ }
+ const enum_phyla impl_nocasestring::phylum_sel_ = phylum_nocasestring;
+ const enum_phyla impl_casestring::phylum_sel_ = phylum_casestring;
+ const enum_phyla impl_real::phylum_sel_ = phylum_real;
+ impl_real__Real::impl_real__Real(REAL _value)
+ : value(_value) { }
+ const enum_phyla impl_integer::phylum_sel_ = phylum_integer;
+ impl_integer__Int::impl_integer__Int(INTEGER _value)
+ : value(_value) { }
+ const enum_phyla impl_voidptr::phylum_sel_ = phylum_voidptr;
+ impl_voidptr__VoidPtr::impl_voidptr__VoidPtr(void* _pointer)
+ : pointer(_pointer) { }
+ const enum_phyla impl_uniqID::phylum_sel_ = phylum_uniqID;
+ impl_uniqID_Str::impl_uniqID_Str(casestring _casestring_1)
+ : casestring_1(_casestring_1) { }
+ const enum_phyla impl_ID::phylum_sel_ = phylum_ID;
+ impl_ID_Id::impl_ID_Id(uniqID _uniqID_1)
+ : uniqID_1(_uniqID_1) { }
+ const enum_phyla impl_INT::phylum_sel_ = phylum_INT;
+ impl_INT_Int::impl_INT_Int(integer _integer_1)
+ : integer_1(_integer_1) { }
+ const enum_phyla impl_STRING::phylum_sel_ = phylum_STRING;
+ impl_STRING_String::impl_STRING_String(casestring _casestring_1)
+ : casestring_1(_casestring_1) { }
+ const enum_phyla impl_phylumdeclarationsroot::phylum_sel_ = phylum_phylumdeclarationsroot;
+ impl_phylumdeclarationsroot_PhylumDeclarations::impl_phylumdeclarationsroot_PhylumDeclarations(phylumdeclarations _phylumdeclarations_1)
+ : phylumdeclarations_1(_phylumdeclarations_1) { }
+ const enum_phyla impl_phylumdeclarations::phylum_sel_ = phylum_phylumdeclarations;
+ impl_phylumdeclarations::impl_phylumdeclarations(phylumdeclaration p1 , phylumdeclarations p2)
+ : phylumdeclaration_1(p1), phylumdeclarations_1(p2) { }
+ const enum_phyla impl_phylumnames::phylum_sel_ = phylum_phylumnames;
+ impl_phylumnames::impl_phylumnames(ID p1 , phylumnames p2)
+ : ID_1(p1), phylumnames_1(p2) { }
+ const enum_phyla impl_phylumdeclaration::phylum_sel_ = phylum_phylumdeclaration;
+ impl_phylumdeclaration_PhylumDeclaration::impl_phylumdeclaration_PhylumDeclaration(ID _ID_1, storageoption _storageoption_1, productionblock _productionblock_1, Ccode_option _Ccode_option_1)
+ : ID_1(_ID_1), storageoption_1(_storageoption_1), productionblock_1(_productionblock_1), Ccode_option_1(_Ccode_option_1) { }
+ const enum_phyla impl_storageoption::phylum_sel_ = phylum_storageoption;
+ impl_storageoption_PositiveStorageOption::impl_storageoption_PositiveStorageOption(ID _ID_1)
+ : ID_1(_ID_1) { }
+ impl_storageoption_NegativeStorageOption::impl_storageoption_NegativeStorageOption(ID _ID_1)
+ : ID_1(_ID_1) { }
+ impl_storageoption_NoStorageOption::impl_storageoption_NoStorageOption()
+ { }
+ const enum_phyla impl_storageclasses::phylum_sel_ = phylum_storageclasses;
+ impl_storageclasses::impl_storageclasses(ID p1 , storageclasses p2)
+ : ID_1(p1), storageclasses_1(p2) { }
+ const enum_phyla impl_productionblock::phylum_sel_ = phylum_productionblock;
+ impl_productionblock_PredefinedAlternatives::impl_productionblock_PredefinedAlternatives(alternatives _alternatives_1)
+ : alternatives_1(_alternatives_1) { }
+ impl_productionblock_NonlistAlternatives::impl_productionblock_NonlistAlternatives(alternatives _alternatives_1)
+ : alternatives_1(_alternatives_1) { }
+ impl_productionblock_ListAlternatives::impl_productionblock_ListAlternatives(alternatives _alternatives_1, ID _ID_1)
+ : alternatives_1(_alternatives_1), ID_1(_ID_1) { }
+ impl_productionblock_Emptyproductionblock::impl_productionblock_Emptyproductionblock()
+ { }
+ const enum_phyla impl_alternatives::phylum_sel_ = phylum_alternatives;
+ impl_alternatives::impl_alternatives(alternative p1 , alternatives p2)
+ : alternative_1(p1), alternatives_1(p2) { }
+ const enum_phyla impl_alternative::phylum_sel_ = phylum_alternative;
+ impl_alternative_Alternative::impl_alternative_Alternative(ID _ID_1, arguments _arguments_1)
+ : ID_1(_ID_1), arguments_1(_arguments_1) { }
+ const enum_phyla impl_arguments::phylum_sel_ = phylum_arguments;
+ impl_arguments::impl_arguments(ID p1 , arguments p2)
+ : ID_1(p1), arguments_1(p2) { }
+ const enum_phyla impl_argument::phylum_sel_ = phylum_argument;
+ impl_argument_Argument::impl_argument_Argument(ID _ID_1, integer _integer_1)
+ : ID_1(_ID_1), integer_1(_integer_1) { }
+ const enum_phyla impl_Ccode_option::phylum_sel_ = phylum_Ccode_option;
+ impl_Ccode_option_CcodeOption::impl_Ccode_option_CcodeOption(attributes _attributes_1, Ctexts _Ctexts_1)
+ : attributes_1(_attributes_1), Ctexts_1(_Ctexts_1) { }
+ const enum_phyla impl_attributes::phylum_sel_ = phylum_attributes;
+ impl_attributes::impl_attributes(attribute p1 , attributes p2)
+ : attribute_1(p1), attributes_1(p2) { }
+ const enum_phyla impl_attribute::phylum_sel_ = phylum_attribute;
+ impl_attribute_Attribute::impl_attribute_Attribute(ID _ID_1, ID _ID_2, attribute_initialisation_option _attribute_initialisation_option_1)
+ : ID_1(_ID_1), ID_2(_ID_2), attribute_initialisation_option_1(_attribute_initialisation_option_1) { }
+ const enum_phyla impl_attribute_initialisation_option::phylum_sel_ = phylum_attribute_initialisation_option;
+ impl_attribute_initialisation_option_Yesattribute_initialisation::impl_attribute_initialisation_option_Yesattribute_initialisation(Cexpression _Cexpression_1)
+ : Cexpression_1(_Cexpression_1) { }
+ impl_attribute_initialisation_option_Noattribute_initialisation::impl_attribute_initialisation_option_Noattribute_initialisation()
+ { }
+ const enum_phyla impl_Cexpression::phylum_sel_ = phylum_Cexpression;
+ impl_Cexpression::impl_Cexpression(Cexpression_elem p1 , Cexpression p2)
+ : Cexpression_elem_1(p1), Cexpression_1(p2) { }
+ const enum_phyla impl_Cexpression_elem::phylum_sel_ = phylum_Cexpression_elem;
+ impl_Cexpression_elem_CExpressionArray::impl_Cexpression_elem_CExpressionArray(Cexpression _Cexpression_1)
+ : Cexpression_1(_Cexpression_1) { }
+ impl_Cexpression_elem_CExpressionPack::impl_Cexpression_elem_CExpressionPack(Cexpression _Cexpression_1)
+ : Cexpression_1(_Cexpression_1) { }
+ impl_Cexpression_elem_CExpressionSQ::impl_Cexpression_elem_CExpressionSQ(CexpressionSQ _CexpressionSQ_1)
+ : CexpressionSQ_1(_CexpressionSQ_1) { }
+ impl_Cexpression_elem_CExpressionDQ::impl_Cexpression_elem_CExpressionDQ(CexpressionDQ _CexpressionDQ_1)
+ : CexpressionDQ_1(_CexpressionDQ_1) { }
+ impl_Cexpression_elem_CExpressionNl::impl_Cexpression_elem_CExpressionNl()
+ { }
+ impl_Cexpression_elem_CExpressionDollarvar::impl_Cexpression_elem_CExpressionDollarvar(INT _INT_1)
+ : INT_1(_INT_1) { }
+ impl_Cexpression_elem_CExpressionPart::impl_Cexpression_elem_CExpressionPart(casestring _casestring_1)
+ : casestring_1(_casestring_1) { }
+ const enum_phyla impl_CexpressionDQ::phylum_sel_ = phylum_CexpressionDQ;
+ impl_CexpressionDQ::impl_CexpressionDQ(CexpressionDQ_elem p1 , CexpressionDQ p2)
+ : CexpressionDQ_elem_1(p1), CexpressionDQ_1(p2) { }
+ const enum_phyla impl_CexpressionDQ_elem::phylum_sel_ = phylum_CexpressionDQ_elem;
+ impl_CexpressionDQ_elem_CExpressionDQNl::impl_CexpressionDQ_elem_CExpressionDQNl()
+ { }
+ impl_CexpressionDQ_elem_CExpressionDQPart::impl_CexpressionDQ_elem_CExpressionDQPart(casestring _casestring_1)
+ : casestring_1(_casestring_1) { }
+ const enum_phyla impl_CexpressionSQ::phylum_sel_ = phylum_CexpressionSQ;
+ impl_CexpressionSQ::impl_CexpressionSQ(CexpressionSQ_elem p1 , CexpressionSQ p2)
+ : CexpressionSQ_elem_1(p1), CexpressionSQ_1(p2) { }
+ const enum_phyla impl_CexpressionSQ_elem::phylum_sel_ = phylum_CexpressionSQ_elem;
+ impl_CexpressionSQ_elem_CExpressionSQNl::impl_CexpressionSQ_elem_CExpressionSQNl()
+ { }
+ impl_CexpressionSQ_elem_CExpressionSQPart::impl_CexpressionSQ_elem_CExpressionSQPart(casestring _casestring_1)
+ : casestring_1(_casestring_1) { }
+ const enum_phyla impl_idCexpressions::phylum_sel_ = phylum_idCexpressions;
+ impl_idCexpressions::impl_idCexpressions(idCexpression p1 , idCexpressions p2)
+ : idCexpression_1(p1), idCexpressions_1(p2) { }
+ const enum_phyla impl_idCexpression::phylum_sel_ = phylum_idCexpression;
+ impl_idCexpression_IdCexpression::impl_idCexpression_IdCexpression(ID _ID_1, Cexpression _Cexpression_1)
+ : ID_1(_ID_1), Cexpression_1(_Cexpression_1) { }
+ const enum_phyla impl_Ctexts::phylum_sel_ = phylum_Ctexts;
+ impl_Ctexts::impl_Ctexts(Ctext p1 , Ctexts p2)
+ : Ctext_1(p1), Ctexts_1(p2) { }
+ const enum_phyla impl_includefiles::phylum_sel_ = phylum_includefiles;
+ impl_includefiles::impl_includefiles(includefile p1 , includefiles p2)
+ : includefile_1(p1), includefiles_1(p2) { }
+ const enum_phyla impl_includefile::phylum_sel_ = phylum_includefile;
+ impl_includefile_IncludeFile::impl_includefile_IncludeFile(casestring _casestring_1)
+ : casestring_1(_casestring_1) { }
+ const enum_phyla impl_includedeclarations::phylum_sel_ = phylum_includedeclarations;
+ impl_includedeclarations::impl_includedeclarations(includedeclaration p1 , includedeclarations p2)
+ : includedeclaration_1(p1), includedeclarations_1(p2) { }
+ const enum_phyla impl_includedeclaration::phylum_sel_ = phylum_includedeclaration;
+ impl_includedeclaration_IncludeDeclaration::impl_includedeclaration_IncludeDeclaration(casestring _casestring_1)
+ : casestring_1(_casestring_1) { }
+ const enum_phyla impl_rwdeclarations::phylum_sel_ = phylum_rwdeclarations;
+ impl_rwdeclarations::impl_rwdeclarations(rwdeclaration p1 , rwdeclarations p2)
+ : rwdeclaration_1(p1), rwdeclarations_1(p2) { }
+ const enum_phyla impl_rwdeclaration::phylum_sel_ = phylum_rwdeclaration;
+ impl_rwdeclaration_RwDeclaration::impl_rwdeclaration_RwDeclaration(outmostpatterns _outmostpatterns_1, rewriteclauses _rewriteclauses_1)
+ : outmostpatterns_1(_outmostpatterns_1), rewriteclauses_1(_rewriteclauses_1) { }
+ const enum_phyla impl_rewriteclauses::phylum_sel_ = phylum_rewriteclauses;
+ impl_rewriteclauses::impl_rewriteclauses(rewriteclause p1 , rewriteclauses p2)
+ : rewriteclause_1(p1), rewriteclauses_1(p2) { }
+ const enum_phyla impl_rewriteclause::phylum_sel_ = phylum_rewriteclause;
+ impl_rewriteclause_RewriteClause::impl_rewriteclause_RewriteClause(viewnames _viewnames_1, term _term_1)
+ : viewnames_1(_viewnames_1), term_1(_term_1) { }
+ const enum_phyla impl_patternchains::phylum_sel_ = phylum_patternchains;
+ impl_patternchains::impl_patternchains(patternchain p1 , patternchains p2)
+ : patternchain_1(p1), patternchains_1(p2) { }
+ const enum_phyla impl_patternchain::phylum_sel_ = phylum_patternchain;
+ impl_patternchain::impl_patternchain(patternchainitem p1 , patternchain p2)
+ : patternchainitem_1(p1), patternchain_1(p2) { }
+ const enum_phyla impl_outmostpatterns::phylum_sel_ = phylum_outmostpatterns;
+ impl_outmostpatterns::impl_outmostpatterns(outmostpattern p1 , outmostpatterns p2)
+ : outmostpattern_1(p1), outmostpatterns_1(p2) { }
+ const enum_phyla impl_patternchainitem::phylum_sel_ = phylum_patternchainitem;
+ impl_patternchainitem_PatternchainitemDollarid::impl_patternchainitem_PatternchainitemDollarid(ID _ID_1)
+ : ID_1(_ID_1) { }
+ impl_patternchainitem_PatternchainitemGroup::impl_patternchainitem_PatternchainitemGroup(patternchains _patternchains_1)
+ : patternchains_1(_patternchains_1) { }
+ impl_patternchainitem_PatternchainitemOutmost::impl_patternchainitem_PatternchainitemOutmost(outmostpattern _outmostpattern_1)
+ : outmostpattern_1(_outmostpattern_1) { }
+ const enum_phyla impl_outmostpattern::phylum_sel_ = phylum_outmostpattern;
+ impl_outmostpattern_OPDefault::impl_outmostpattern_OPDefault(Cexpression _Cexpression_1)
+ : Cexpression_1(_Cexpression_1) { }
+ impl_outmostpattern_OPWildcard::impl_outmostpattern_OPWildcard(Cexpression _Cexpression_1)
+ : Cexpression_1(_Cexpression_1) { }
+ impl_outmostpattern_OPNonLeafVariable::impl_outmostpattern_OPNonLeafVariable(ID _ID_1, outmostpattern _outmostpattern_1)
+ : ID_1(_ID_1), outmostpattern_1(_outmostpattern_1) { }
+ impl_outmostpattern_OPOperator::impl_outmostpattern_OPOperator(ID _ID_1, patterns _patterns_1, Cexpression _Cexpression_1)
+ : ID_1(_ID_1), patterns_1(_patterns_1), Cexpression_1(_Cexpression_1) { }
+ impl_outmostpattern_OPOperatorWildcard::impl_outmostpattern_OPOperatorWildcard(ID _ID_1, Cexpression _Cexpression_1)
+ : ID_1(_ID_1), Cexpression_1(_Cexpression_1) { }
+ const enum_phyla impl_pattern::phylum_sel_ = phylum_pattern;
+ impl_pattern_PIntLiteral::impl_pattern_PIntLiteral(INT _INT_1)
+ : INT_1(_INT_1) { }
+ impl_pattern_PStringLiteral::impl_pattern_PStringLiteral(CexpressionDQ _CexpressionDQ_1)
+ : CexpressionDQ_1(_CexpressionDQ_1) { }
+ impl_pattern_PWildcard::impl_pattern_PWildcard()
+ { }
+ impl_pattern_PNonLeafVariable::impl_pattern_PNonLeafVariable(ID _ID_1, pattern _pattern_1)
+ : ID_1(_ID_1), pattern_1(_pattern_1) { }
+ impl_pattern_POperator::impl_pattern_POperator(ID _ID_1, patterns _patterns_1)
+ : ID_1(_ID_1), patterns_1(_patterns_1) { }
+ impl_pattern_PVariable::impl_pattern_PVariable(ID _ID_1)
+ : ID_1(_ID_1) { }
+ const enum_phyla impl_patterns::phylum_sel_ = phylum_patterns;
+ impl_patterns::impl_patterns(pattern p1 , patterns p2)
+ : pattern_1(p1), patterns_1(p2) { }
+ const enum_phyla impl_term::phylum_sel_ = phylum_term;
+ impl_term_TIntLiteral::impl_term_TIntLiteral(INT _INT_1)
+ : INT_1(_INT_1) { }
+ impl_term_TStringLiteral::impl_term_TStringLiteral(CexpressionDQ _CexpressionDQ_1)
+ : CexpressionDQ_1(_CexpressionDQ_1) { }
+ impl_term_TCTerm::impl_term_TCTerm(CexpressionSQ _CexpressionSQ_1)
+ : CexpressionSQ_1(_CexpressionSQ_1) { }
+ impl_term_TMemberVarDot::impl_term_TMemberVarDot(term _term_1, ID _ID_1)
+ : term_1(_term_1), ID_1(_ID_1) { }
+ impl_term_TMemberVar::impl_term_TMemberVar(term _term_1, ID _ID_1)
+ : term_1(_term_1), ID_1(_ID_1) { }
+ impl_term_TMethodDot::impl_term_TMethodDot(term _term_1, ID _ID_1, terms _terms_1)
+ : term_1(_term_1), ID_1(_ID_1), terms_1(_terms_1) { }
+ impl_term_TMethod::impl_term_TMethod(term _term_1, ID _ID_1, terms _terms_1)
+ : term_1(_term_1), ID_1(_ID_1), terms_1(_terms_1) { }
+ impl_term_TOperator::impl_term_TOperator(ID _ID_1, terms _terms_1)
+ : ID_1(_ID_1), terms_1(_terms_1) { }
+ impl_term_TVariable::impl_term_TVariable(ID _ID_1)
+ : ID_1(_ID_1) { }
+ const enum_phyla impl_terms::phylum_sel_ = phylum_terms;
+ impl_terms::impl_terms(term p1 , terms p2)
+ : term_1(p1), terms_1(p2) { }
+ const enum_phyla impl_fnfiles::phylum_sel_ = phylum_fnfiles;
+ impl_fnfiles::impl_fnfiles(fnfile p1 , fnfiles p2)
+ : fnfile_1(p1), fnfiles_1(p2) { }
+ const enum_phyla impl_fnfile::phylum_sel_ = phylum_fnfile;
+ impl_fnfile_FnFile::impl_fnfile_FnFile(casestring _casestring_1)
+ : casestring_1(_casestring_1) { }
+ const enum_phyla impl_fndeclarations::phylum_sel_ = phylum_fndeclarations;
+ impl_fndeclarations::impl_fndeclarations(fndeclaration p1 , fndeclarations p2)
+ : fndeclaration_1(p1), fndeclarations_1(p2) { }
+ const enum_phyla impl_fndeclaration::phylum_sel_ = phylum_fndeclaration;
+ impl_fndeclaration_AcMemberDeclaration::impl_fndeclaration_AcMemberDeclaration(ac_declaration_specifiers _ac_declaration_specifiers_1, ac_declarator _ac_declarator_1, ac_constant_expression_option _ac_constant_expression_option_1, fnclass _fnclass_1)
+ : ac_declaration_specifiers_1(_ac_declaration_specifiers_1), ac_declarator_1(_ac_declarator_1), ac_constant_expression_option_1(_ac_constant_expression_option_1), fnclass_1(_fnclass_1) { }
+ impl_fndeclaration_FnAcDeclaration::impl_fndeclaration_FnAcDeclaration(ac_declaration_specifiers _ac_declaration_specifiers_1, ac_declarator _ac_declarator_1, ac_declaration_list _ac_declaration_list_1, ac_opt_base_init_list _ac_opt_base_init_list_1, Ctext _Ctext_1, ID _ID_1, fnclass _fnclass_1)
+ : ac_declaration_specifiers_1(_ac_declaration_specifiers_1), ac_declarator_1(_ac_declarator_1), ac_declaration_list_1(_ac_declaration_list_1), ac_opt_base_init_list_1(_ac_opt_base_init_list_1), Ctext_1(_Ctext_1), ID_1(_ID_1), fnclass_1(_fnclass_1) { }
+ const enum_phyla impl_fnclass::phylum_sel_ = phylum_fnclass;
+ impl_fnclass_ConvOperatorFn::impl_fnclass_ConvOperatorFn()
+ { }
+ impl_fnclass_DestructorFn::impl_fnclass_DestructorFn()
+ { }
+ impl_fnclass_ConstructorFn::impl_fnclass_ConstructorFn()
+ { }
+ impl_fnclass_MemberFn::impl_fnclass_MemberFn()
+ { }
+ impl_fnclass_StaticFn::impl_fnclass_StaticFn(casestring _casestring_1)
+ : casestring_1(_casestring_1) { }
+ impl_fnclass_GlobalFn::impl_fnclass_GlobalFn()
+ { }
+ const enum_phyla impl_Ctext::phylum_sel_ = phylum_Ctext;
+ impl_Ctext::impl_Ctext(Ctext_elem p1 , Ctext p2)
+ : Ctext_elem_1(p1), Ctext_1(p2) { }
+ const enum_phyla impl_Ctext_elem::phylum_sel_ = phylum_Ctext_elem;
+ impl_Ctext_elem_CTextWithexpression::impl_Ctext_elem_CTextWithexpression(withexpressions _withexpressions_1, withcases _withcases_1, contextinfo _contextinfo_1)
+ : withexpressions_1(_withexpressions_1), withcases_1(_withcases_1), contextinfo_1(_contextinfo_1) { }
+ impl_Ctext_elem_CTextForeachexpression::impl_Ctext_elem_CTextForeachexpression(patternchain _patternchain_1, idCexpressions _idCexpressions_1, withexpressions _withexpressions_1, Ctext _Ctext_1, foreach_after _foreach_after_1)
+ : patternchain_1(_patternchain_1), idCexpressions_1(_idCexpressions_1), withexpressions_1(_withexpressions_1), Ctext_1(_Ctext_1), foreach_after_1(_foreach_after_1) { }
+ impl_Ctext_elem_CTextCbody::impl_Ctext_elem_CTextCbody(Ctext _Ctext_1)
+ : Ctext_1(_Ctext_1) { }
+ impl_Ctext_elem_CTextCexpressionSQ::impl_Ctext_elem_CTextCexpressionSQ(CexpressionSQ _CexpressionSQ_1)
+ : CexpressionSQ_1(_CexpressionSQ_1) { }
+ impl_Ctext_elem_CTextCexpressionDQ::impl_Ctext_elem_CTextCexpressionDQ(CexpressionDQ _CexpressionDQ_1)
+ : CexpressionDQ_1(_CexpressionDQ_1) { }
+ impl_Ctext_elem_CTextNl::impl_Ctext_elem_CTextNl(integer _integer_1)
+ : integer_1(_integer_1) { }
+ impl_Ctext_elem_CTextDollarVar::impl_Ctext_elem_CTextDollarVar(INT _INT_1)
+ : INT_1(_INT_1) { }
+ impl_Ctext_elem_CTextLine::impl_Ctext_elem_CTextLine(casestring _casestring_1)
+ : casestring_1(_casestring_1) { }
+ const enum_phyla impl_foreach_after::phylum_sel_ = phylum_foreach_after;
+ impl_foreach_after_ForeachAfter::impl_foreach_after_ForeachAfter(patternchain _patternchain_1, idCexpressions _idCexpressions_1, withexpressions _withexpressions_1, Ctext _Ctext_1)
+ : patternchain_1(_patternchain_1), idCexpressions_1(_idCexpressions_1), withexpressions_1(_withexpressions_1), Ctext_1(_Ctext_1) { }
+ impl_foreach_after_NoForeachAfter::impl_foreach_after_NoForeachAfter()
+ { }
+ const enum_phyla impl_contextinfo::phylum_sel_ = phylum_contextinfo;
+ impl_contextinfo_NotInForeachContext::impl_contextinfo_NotInForeachContext()
+ { }
+ impl_contextinfo_InForeachContext::impl_contextinfo_InForeachContext(patternchain _patternchain_1)
+ : patternchain_1(_patternchain_1) { }
+ const enum_phyla impl_withexpressions::phylum_sel_ = phylum_withexpressions;
+ impl_withexpressions::impl_withexpressions(withexpression p1 , withexpressions p2)
+ : withexpression_1(p1), withexpressions_1(p2) { }
+ const enum_phyla impl_withexpression::phylum_sel_ = phylum_withexpression;
+ impl_withexpression_WECexpression::impl_withexpression_WECexpression(Cexpression _Cexpression_1)
+ : Cexpression_1(_Cexpression_1) { }
+ impl_withexpression_WEVariable::impl_withexpression_WEVariable(ID _ID_1)
+ : ID_1(_ID_1) { }
+ const enum_phyla impl_withcases::phylum_sel_ = phylum_withcases;
+ impl_withcases::impl_withcases(withcase p1 , withcases p2)
+ : withcase_1(p1), withcases_1(p2) { }
+ const enum_phyla impl_withcase::phylum_sel_ = phylum_withcase;
+ impl_withcase_Withcase::impl_withcase_Withcase(patternchains _patternchains_1, Ctext _Ctext_1)
+ : patternchains_1(_patternchains_1), Ctext_1(_Ctext_1) { }
+ const enum_phyla impl_unparsedeclarations::phylum_sel_ = phylum_unparsedeclarations;
+ impl_unparsedeclarations::impl_unparsedeclarations(unparsedeclaration p1 , unparsedeclarations p2)
+ : unparsedeclaration_1(p1), unparsedeclarations_1(p2) { }
+ const enum_phyla impl_unparsedeclaration::phylum_sel_ = phylum_unparsedeclaration;
+ impl_unparsedeclaration_UnparseDeclaration::impl_unparsedeclaration_UnparseDeclaration(outmostpatterns _outmostpatterns_1, unparseclauses _unparseclauses_1)
+ : outmostpatterns_1(_outmostpatterns_1), unparseclauses_1(_unparseclauses_1) { }
+ const enum_phyla impl_unparseclauses::phylum_sel_ = phylum_unparseclauses;
+ impl_unparseclauses::impl_unparseclauses(unparseclause p1 , unparseclauses p2)
+ : unparseclause_1(p1), unparseclauses_1(p2) { }
+ const enum_phyla impl_unparseclause::phylum_sel_ = phylum_unparseclause;
+ impl_unparseclause_UnparseClause::impl_unparseclause_UnparseClause(viewnames _viewnames_1, unparseitems _unparseitems_1)
+ : viewnames_1(_viewnames_1), unparseitems_1(_unparseitems_1) { }
+ const enum_phyla impl_viewnames::phylum_sel_ = phylum_viewnames;
+ impl_viewnames::impl_viewnames(ID p1 , viewnames p2)
+ : ID_1(p1), viewnames_1(p2) { }
+ const enum_phyla impl_unparseitems::phylum_sel_ = phylum_unparseitems;
+ impl_unparseitems::impl_unparseitems(unparseitem p1 , unparseitems p2)
+ : unparseitem_1(p1), unparseitems_1(p2) { }
+ const enum_phyla impl_unparseitem::phylum_sel_ = phylum_unparseitem;
+ impl_unparseitem_UViewVarDecl::impl_unparseitem_UViewVarDecl(ID _ID_1, ID _ID_2, Cexpression _Cexpression_1)
+ : ID_1(_ID_1), ID_2(_ID_2), Cexpression_1(_Cexpression_1) { }
+ impl_unparseitem_UnpBody::impl_unparseitem_UnpBody(languageoption _languageoption_1, unparseitems _unparseitems_1)
+ : languageoption_1(_languageoption_1), unparseitems_1(_unparseitems_1) { }
+ impl_unparseitem_UnpCtext::impl_unparseitem_UnpCtext(languageoption _languageoption_1, Ctext _Ctext_1)
+ : languageoption_1(_languageoption_1), Ctext_1(_Ctext_1) { }
+ impl_unparseitem_UnpSubexpr::impl_unparseitem_UnpSubexpr(languageoption _languageoption_1, unpsubterm _unpsubterm_1, viewnameoption _viewnameoption_1)
+ : languageoption_1(_languageoption_1), unpsubterm_1(_unpsubterm_1), viewnameoption_1(_viewnameoption_1) { }
+ impl_unparseitem_UnpStr::impl_unparseitem_UnpStr(languageoption _languageoption_1, CexpressionDQ _CexpressionDQ_1, viewnameoption _viewnameoption_1)
+ : languageoption_1(_languageoption_1), CexpressionDQ_1(_CexpressionDQ_1), viewnameoption_1(_viewnameoption_1) { }
+ const enum_phyla impl_unpsubterm::phylum_sel_ = phylum_unpsubterm;
+ impl_unpsubterm_UnpCastedVariable::impl_unpsubterm_UnpCastedVariable(ID _ID_1, ID _ID_2)
+ : ID_1(_ID_1), ID_2(_ID_2) { }
+ impl_unpsubterm_UnpDollarvarAttr::impl_unpsubterm_UnpDollarvarAttr(INT _INT_1, unpattributes _unpattributes_1)
+ : INT_1(_INT_1), unpattributes_1(_unpattributes_1) { }
+ impl_unpsubterm_UnpSubAttr::impl_unpsubterm_UnpSubAttr(ID _ID_1, unpattributes _unpattributes_1)
+ : ID_1(_ID_1), unpattributes_1(_unpattributes_1) { }
+ impl_unpsubterm_UnpDollarvarTerm::impl_unpsubterm_UnpDollarvarTerm(INT _INT_1)
+ : INT_1(_INT_1) { }
+ impl_unpsubterm_UnpSubTerm::impl_unpsubterm_UnpSubTerm(ID _ID_1)
+ : ID_1(_ID_1) { }
+ const enum_phyla impl_unpattributes::phylum_sel_ = phylum_unpattributes;
+ impl_unpattributes::impl_unpattributes(ID p1 , unpattributes p2)
+ : ID_1(p1), unpattributes_1(p2) { }
+ const enum_phyla impl_viewnameoption::phylum_sel_ = phylum_viewnameoption;
+ impl_viewnameoption_YesViewname::impl_viewnameoption_YesViewname(ID _ID_1)
+ : ID_1(_ID_1) { }
+ impl_viewnameoption_NoViewname::impl_viewnameoption_NoViewname()
+ { }
+ const enum_phyla impl_languageoption::phylum_sel_ = phylum_languageoption;
+ impl_languageoption_LanguageList::impl_languageoption_LanguageList(languagenames _languagenames_1)
+ : languagenames_1(_languagenames_1) { }
+ impl_languageoption_NoLanguagename::impl_languageoption_NoLanguagename()
+ { }
+ const enum_phyla impl_languagenames::phylum_sel_ = phylum_languagenames;
+ impl_languagenames::impl_languagenames(ID p1 , languagenames p2)
+ : ID_1(p1), languagenames_1(p2) { }
+ const enum_phyla impl_fileline::phylum_sel_ = phylum_fileline;
+ impl_fileline_PosNoFileLine::impl_fileline_PosNoFileLine()
+ { }
+ impl_fileline_NoFileLine::impl_fileline_NoFileLine()
+ { }
+ const enum_phyla impl_scopetypefilelinestack::phylum_sel_ = phylum_scopetypefilelinestack;
+ impl_scopetypefilelinestack::impl_scopetypefilelinestack(scopetypefileline p1 , scopetypefilelinestack p2)
+ : scopetypefileline_1(p1), scopetypefilelinestack_1(p2) { }
+ const enum_phyla impl_scopetypefileline::phylum_sel_ = phylum_scopetypefileline;
+ impl_scopetypefileline_ScopeTypeFileLine::impl_scopetypefileline_ScopeTypeFileLine(integer _integer_1, IDtype _IDtype_1, casestring _casestring_1, integer _integer_2)
+ : integer_1(_integer_1), IDtype_1(_IDtype_1), casestring_1(_casestring_1), integer_2(_integer_2) { }
+ const enum_phyla impl_IDtype::phylum_sel_ = phylum_IDtype;
+ impl_IDtype_ITLanguageName::impl_IDtype_ITLanguageName(integer _integer_1)
+ : integer_1(_integer_1) { }
+ impl_IDtype_ITPatternVariable::impl_IDtype_ITPatternVariable(ID _ID_1, integer _integer_1)
+ : ID_1(_ID_1), integer_1(_integer_1) { }
+ impl_IDtype_ITUserFunction::impl_IDtype_ITUserFunction(fnclass _fnclass_1)
+ : fnclass_1(_fnclass_1) { }
+ impl_IDtype_ITUserRView::impl_IDtype_ITUserRView()
+ { }
+ impl_IDtype_ITPredefinedRView::impl_IDtype_ITPredefinedRView()
+ { }
+ impl_IDtype_ITUViewVar::impl_IDtype_ITUViewVar()
+ { }
+ impl_IDtype_ITUserUView::impl_IDtype_ITUserUView()
+ { }
+ impl_IDtype_ITPredefinedUView::impl_IDtype_ITPredefinedUView()
+ { }
+ impl_IDtype_ITStorageClass::impl_IDtype_ITStorageClass()
+ { }
+ impl_IDtype_ITPredefinedStorageClass::impl_IDtype_ITPredefinedStorageClass()
+ { }
+ impl_IDtype_ITUserOperator::impl_IDtype_ITUserOperator(alternative _alternative_1, ID _ID_1)
+ : alternative_1(_alternative_1), ID_1(_ID_1) { }
+ impl_IDtype_ITPredefinedOperator::impl_IDtype_ITPredefinedOperator(alternative _alternative_1, ID _ID_1)
+ : alternative_1(_alternative_1), ID_1(_ID_1) { }
+ impl_IDtype_ITUserPhylum::impl_IDtype_ITUserPhylum(phylumdeclaration _phylumdeclaration_1)
+ : phylumdeclaration_1(_phylumdeclaration_1) { }
+ impl_IDtype_ITPredefinedPhylum::impl_IDtype_ITPredefinedPhylum(phylumdeclaration _phylumdeclaration_1)
+ : phylumdeclaration_1(_phylumdeclaration_1) { }
+ impl_IDtype_ITUnknown::impl_IDtype_ITUnknown()
+ { }
+ const enum_phyla impl_operators::phylum_sel_ = phylum_operators;
+ impl_operators::impl_operators(ID p1 , operators p2)
+ : ID_1(p1), operators_1(p2) { }
+ const enum_phyla impl_phyla::phylum_sel_ = phylum_phyla;
+ impl_phyla::impl_phyla(ID p1 , phyla p2)
+ : ID_1(p1), phyla_1(p2) { }
+ const enum_phyla impl_variables::phylum_sel_ = phylum_variables;
+ impl_variables::impl_variables(ID p1 , variables p2)
+ : ID_1(p1), variables_1(p2) { }
+ const enum_phyla impl_dollarvarstatus::phylum_sel_ = phylum_dollarvarstatus;
+ impl_dollarvarstatus_DVDisallowed::impl_dollarvarstatus_DVDisallowed()
+ { }
+ impl_dollarvarstatus_DVAllowed::impl_dollarvarstatus_DVAllowed()
+ { }
+ const enum_phyla impl_tribool::phylum_sel_ = phylum_tribool;
+ impl_tribool_Bigger::impl_tribool_Bigger()
+ { }
+ impl_tribool_Smaller::impl_tribool_Smaller()
+ { }
+ impl_tribool_Equal::impl_tribool_Equal()
+ { }
+ const enum_phyla impl_patternrepresentations::phylum_sel_ = phylum_patternrepresentations;
+ impl_patternrepresentations::impl_patternrepresentations(patternrepresentation p1 , patternrepresentations p2)
+ : patternrepresentation_1(p1), patternrepresentations_1(p2) { }
+ const enum_phyla impl_patternrepresentation::phylum_sel_ = phylum_patternrepresentation;
+ impl_patternrepresentation::impl_patternrepresentation(elem_patternrepresentation p1 , patternrepresentation p2)
+ : elem_patternrepresentation_1(p1), patternrepresentation_1(p2) { }
+ const enum_phyla impl_elem_patternrepresentation::phylum_sel_ = phylum_elem_patternrepresentation;
+ impl_elem_patternrepresentation_PRIntLiteral::impl_elem_patternrepresentation_PRIntLiteral(path _path_1, INT _INT_1)
+ : path_1(_path_1), INT_1(_INT_1) { }
+ impl_elem_patternrepresentation_PRStringLiteral::impl_elem_patternrepresentation_PRStringLiteral(path _path_1, CexpressionDQ _CexpressionDQ_1)
+ : path_1(_path_1), CexpressionDQ_1(_CexpressionDQ_1) { }
+ impl_elem_patternrepresentation_PRDefault::impl_elem_patternrepresentation_PRDefault()
+ { }
+ impl_elem_patternrepresentation_PRWildcard::impl_elem_patternrepresentation_PRWildcard(path _path_1)
+ : path_1(_path_1) { }
+ impl_elem_patternrepresentation_PRNonLeafBinding::impl_elem_patternrepresentation_PRNonLeafBinding(path _path_1, ID _ID_1, patternrepresentation _patternrepresentation_1)
+ : path_1(_path_1), ID_1(_ID_1), patternrepresentation_1(_patternrepresentation_1) { }
+ impl_elem_patternrepresentation_PRUserPredicate::impl_elem_patternrepresentation_PRUserPredicate(Cexpression _Cexpression_1)
+ : Cexpression_1(_Cexpression_1) { }
+ impl_elem_patternrepresentation_PROperPredicate::impl_elem_patternrepresentation_PROperPredicate(path _path_1, ID _ID_1)
+ : path_1(_path_1), ID_1(_ID_1) { }
+ impl_elem_patternrepresentation_PRVarPredicate::impl_elem_patternrepresentation_PRVarPredicate(paths _paths_1, ID _ID_1, patternrepresentation _patternrepresentation_1)
+ : paths_1(_paths_1), ID_1(_ID_1), patternrepresentation_1(_patternrepresentation_1) { }
+ impl_elem_patternrepresentation_PRBinding::impl_elem_patternrepresentation_PRBinding(path _path_1, ID _ID_1)
+ : path_1(_path_1), ID_1(_ID_1) { }
+ const enum_phyla impl_path::phylum_sel_ = phylum_path;
+ impl_path::impl_path(integer p1 , path p2)
+ : integer_1(p1), path_1(p2) { }
+ const enum_phyla impl_paths::phylum_sel_ = phylum_paths;
+ impl_paths::impl_paths(path p1 , paths p2)
+ : path_1(p1), paths_1(p2) { }
+ const enum_phyla impl_argsnumbers::phylum_sel_ = phylum_argsnumbers;
+ impl_argsnumbers::impl_argsnumbers(integer p1 , argsnumbers p2)
+ : integer_1(p1), argsnumbers_1(p2) { }
+ const enum_phyla impl_rewriterulesinfo::phylum_sel_ = phylum_rewriterulesinfo;
+ impl_rewriterulesinfo::impl_rewriterulesinfo(rewriteruleinfo p1 , rewriterulesinfo p2)
+ : rewriteruleinfo_1(p1), rewriterulesinfo_1(p2) { }
+ const enum_phyla impl_rewriteruleinfo::phylum_sel_ = phylum_rewriteruleinfo;
+ impl_rewriteruleinfo_Rewriteruleinfo::impl_rewriteruleinfo_Rewriteruleinfo(patternrepresentation _patternrepresentation_1, patternrepresentation _patternrepresentation_2, rewriteclause _rewriteclause_1)
+ : patternrepresentation_1(_patternrepresentation_1), patternrepresentation_2(_patternrepresentation_2), rewriteclause_1(_rewriteclause_1) { }
+ const enum_phyla impl_withcasesinfo::phylum_sel_ = phylum_withcasesinfo;
+ impl_withcasesinfo::impl_withcasesinfo(withcaseinfo p1 , withcasesinfo p2)
+ : withcaseinfo_1(p1), withcasesinfo_1(p2) { }
+ const enum_phyla impl_withcaseinfo::phylum_sel_ = phylum_withcaseinfo;
+ impl_withcaseinfo_Withcaseinfo::impl_withcaseinfo_Withcaseinfo(patternrepresentation _patternrepresentation_1, patternrepresentation _patternrepresentation_2, Ctext _Ctext_1)
+ : patternrepresentation_1(_patternrepresentation_1), patternrepresentation_2(_patternrepresentation_2), Ctext_1(_Ctext_1) { }
+ const enum_phyla impl_rewriteviewsinfo::phylum_sel_ = phylum_rewriteviewsinfo;
+ impl_rewriteviewsinfo::impl_rewriteviewsinfo(rewriteviewinfo p1 , rewriteviewsinfo p2)
+ : rewriteviewinfo_1(p1), rewriteviewsinfo_1(p2) { }
+ const enum_phyla impl_rewriteviewinfo::phylum_sel_ = phylum_rewriteviewinfo;
+ impl_rewriteviewinfo_Rewriteviewinfo::impl_rewriteviewinfo_Rewriteviewinfo(ID _ID_1, rewriterulesinfo _rewriterulesinfo_1)
+ : ID_1(_ID_1), rewriterulesinfo_1(_rewriterulesinfo_1) { }
+ const enum_phyla impl_unparseviewsinfo::phylum_sel_ = phylum_unparseviewsinfo;
+ impl_unparseviewsinfo::impl_unparseviewsinfo(unparseviewinfo p1 , unparseviewsinfo p2)
+ : unparseviewinfo_1(p1), unparseviewsinfo_1(p2) { }
+ const enum_phyla impl_unparseviewinfo::phylum_sel_ = phylum_unparseviewinfo;
+ impl_unparseviewinfo_Unparseviewinfo::impl_unparseviewinfo_Unparseviewinfo(ID _ID_1, unparsedeclsinfo _unparsedeclsinfo_1)
+ : ID_1(_ID_1), unparsedeclsinfo_1(_unparsedeclsinfo_1) { }
+ const enum_phyla impl_unparsedeclsinfo::phylum_sel_ = phylum_unparsedeclsinfo;
+ impl_unparsedeclsinfo::impl_unparsedeclsinfo(unparsedeclinfo p1 , unparsedeclsinfo p2)
+ : unparsedeclinfo_1(p1), unparsedeclsinfo_1(p2) { }
+ const enum_phyla impl_unparsedeclinfo::phylum_sel_ = phylum_unparsedeclinfo;
+ impl_unparsedeclinfo_Unparsedeclinfo::impl_unparsedeclinfo_Unparsedeclinfo(patternrepresentation _patternrepresentation_1, patternrepresentation _patternrepresentation_2, unparseclause _unparseclause_1)
+ : patternrepresentation_1(_patternrepresentation_1), patternrepresentation_2(_patternrepresentation_2), unparseclause_1(_unparseclause_1) { }
+ const enum_phyla impl_ac_declaration::phylum_sel_ = phylum_ac_declaration;
+ impl_ac_declaration_AcDeclaration::impl_ac_declaration_AcDeclaration(ac_declaration_specifiers _ac_declaration_specifiers_1, ac_init_declarator_list _ac_init_declarator_list_1)
+ : ac_declaration_specifiers_1(_ac_declaration_specifiers_1), ac_init_declarator_list_1(_ac_init_declarator_list_1) { }
+ const enum_phyla impl_ac_declaration_list::phylum_sel_ = phylum_ac_declaration_list;
+ impl_ac_declaration_list::impl_ac_declaration_list(ac_declaration p1 , ac_declaration_list p2)
+ : ac_declaration_1(p1), ac_declaration_list_1(p2) { }
+ const enum_phyla impl_ac_declaration_specifiers::phylum_sel_ = phylum_ac_declaration_specifiers;
+ impl_ac_declaration_specifiers::impl_ac_declaration_specifiers(ac_declaration_specifier p1 , ac_declaration_specifiers p2)
+ : ac_declaration_specifier_1(p1), ac_declaration_specifiers_1(p2) { }
+ const enum_phyla impl_ac_declaration_specifier::phylum_sel_ = phylum_ac_declaration_specifier;
+ impl_ac_declaration_specifier_AcDeclSpecTypeQual::impl_ac_declaration_specifier_AcDeclSpecTypeQual(ac_type_qualifier _ac_type_qualifier_1)
+ : ac_type_qualifier_1(_ac_type_qualifier_1) { }
+ impl_ac_declaration_specifier_AcDeclSpecTypeSpec::impl_ac_declaration_specifier_AcDeclSpecTypeSpec(ac_type_specifier _ac_type_specifier_1)
+ : ac_type_specifier_1(_ac_type_specifier_1) { }
+ impl_ac_declaration_specifier_AcDeclSpecStorageSpec::impl_ac_declaration_specifier_AcDeclSpecStorageSpec(ac_storage_class_specifier _ac_storage_class_specifier_1)
+ : ac_storage_class_specifier_1(_ac_storage_class_specifier_1) { }
+ const enum_phyla impl_ac_storage_class_specifier::phylum_sel_ = phylum_ac_storage_class_specifier;
+ impl_ac_storage_class_specifier_AcVirtual::impl_ac_storage_class_specifier_AcVirtual()
+ { }
+ impl_ac_storage_class_specifier_AcTypedef::impl_ac_storage_class_specifier_AcTypedef()
+ { }
+ impl_ac_storage_class_specifier_AcExtern::impl_ac_storage_class_specifier_AcExtern()
+ { }
+ impl_ac_storage_class_specifier_AcStatic::impl_ac_storage_class_specifier_AcStatic()
+ { }
+ impl_ac_storage_class_specifier_AcRegister::impl_ac_storage_class_specifier_AcRegister()
+ { }
+ impl_ac_storage_class_specifier_AcAuto::impl_ac_storage_class_specifier_AcAuto()
+ { }
+ const enum_phyla impl_ac_type_specifier::phylum_sel_ = phylum_ac_type_specifier;
+ impl_ac_type_specifier_AcTypeSpec::impl_ac_type_specifier_AcTypeSpec(ID _ID_1)
+ : ID_1(_ID_1) { }
+ const enum_phyla impl_ac_type_qualifier::phylum_sel_ = phylum_ac_type_qualifier;
+ impl_ac_type_qualifier_AcNoQualifier::impl_ac_type_qualifier_AcNoQualifier()
+ { }
+ impl_ac_type_qualifier_AcUnsigned::impl_ac_type_qualifier_AcUnsigned()
+ { }
+ impl_ac_type_qualifier_AcVolatile::impl_ac_type_qualifier_AcVolatile()
+ { }
+ impl_ac_type_qualifier_AcConst::impl_ac_type_qualifier_AcConst()
+ { }
+ const enum_phyla impl_ac_init_declarator_list::phylum_sel_ = phylum_ac_init_declarator_list;
+ impl_ac_init_declarator_list::impl_ac_init_declarator_list(ac_init_declarator p1 , ac_init_declarator_list p2)
+ : ac_init_declarator_1(p1), ac_init_declarator_list_1(p2) { }
+ const enum_phyla impl_ac_init_declarator::phylum_sel_ = phylum_ac_init_declarator;
+ impl_ac_init_declarator_AcInitDecl::impl_ac_init_declarator_AcInitDecl(ac_declarator _ac_declarator_1)
+ : ac_declarator_1(_ac_declarator_1) { }
+ const enum_phyla impl_ac_declarator::phylum_sel_ = phylum_ac_declarator;
+ impl_ac_declarator_AcDeclarator::impl_ac_declarator_AcDeclarator(ac_pointer_option _ac_pointer_option_1, ac_ref_option _ac_ref_option_1, ac_direct_declarator _ac_direct_declarator_1)
+ : ac_pointer_option_1(_ac_pointer_option_1), ac_ref_option_1(_ac_ref_option_1), ac_direct_declarator_1(_ac_direct_declarator_1) { }
+ const enum_phyla impl_ac_direct_declarator::phylum_sel_ = phylum_ac_direct_declarator;
+ impl_ac_direct_declarator_AcOperatorDeclId::impl_ac_direct_declarator_AcOperatorDeclId(ac_operator_name _ac_operator_name_1)
+ : ac_operator_name_1(_ac_operator_name_1) { }
+ impl_ac_direct_declarator_AcConvOperatorDecl::impl_ac_direct_declarator_AcConvOperatorDecl(ID _ID_1, ID _ID_2)
+ : ID_1(_ID_1), ID_2(_ID_2) { }
+ impl_ac_direct_declarator_AcMemberDecl::impl_ac_direct_declarator_AcMemberDecl(ID _ID_1, ID _ID_2, ac_constant_expression_list _ac_constant_expression_list_1)
+ : ID_1(_ID_1), ID_2(_ID_2), ac_constant_expression_list_1(_ac_constant_expression_list_1) { }
+ impl_ac_direct_declarator_AcQualifiedDeclProto::impl_ac_direct_declarator_AcQualifiedDeclProto(ac_class_qualifier_list _ac_class_qualifier_list_1, ac_direct_declarator _ac_direct_declarator_1, ac_parameter_type_list _ac_parameter_type_list_1, ac_type_qualifier _ac_type_qualifier_1)
+ : ac_class_qualifier_list_1(_ac_class_qualifier_list_1), ac_direct_declarator_1(_ac_direct_declarator_1), ac_parameter_type_list_1(_ac_parameter_type_list_1), ac_type_qualifier_1(_ac_type_qualifier_1) { }
+ impl_ac_direct_declarator_AcDirectDeclProto::impl_ac_direct_declarator_AcDirectDeclProto(ac_direct_declarator _ac_direct_declarator_1, ac_parameter_type_list _ac_parameter_type_list_1)
+ : ac_direct_declarator_1(_ac_direct_declarator_1), ac_parameter_type_list_1(_ac_parameter_type_list_1) { }
+ impl_ac_direct_declarator_AcDirectDeclArray::impl_ac_direct_declarator_AcDirectDeclArray(ac_direct_declarator _ac_direct_declarator_1, ac_constant_expression_option _ac_constant_expression_option_1)
+ : ac_direct_declarator_1(_ac_direct_declarator_1), ac_constant_expression_option_1(_ac_constant_expression_option_1) { }
+ impl_ac_direct_declarator_AcDirectDeclPack::impl_ac_direct_declarator_AcDirectDeclPack(ac_declarator _ac_declarator_1)
+ : ac_declarator_1(_ac_declarator_1) { }
+ impl_ac_direct_declarator_AcDirectDeclId::impl_ac_direct_declarator_AcDirectDeclId(ID _ID_1)
+ : ID_1(_ID_1) { }
+ const enum_phyla impl_ac_pointer_option::phylum_sel_ = phylum_ac_pointer_option;
+ impl_ac_pointer_option_Yespointer::impl_ac_pointer_option_Yespointer(ac_pointer _ac_pointer_1)
+ : ac_pointer_1(_ac_pointer_1) { }
+ impl_ac_pointer_option_Nopointer::impl_ac_pointer_option_Nopointer()
+ { }
+ const enum_phyla impl_ac_pointer::phylum_sel_ = phylum_ac_pointer;
+ impl_ac_pointer_AcPointerCons::impl_ac_pointer_AcPointerCons(ac_type_qualifier_list _ac_type_qualifier_list_1, ac_pointer _ac_pointer_1)
+ : ac_type_qualifier_list_1(_ac_type_qualifier_list_1), ac_pointer_1(_ac_pointer_1) { }
+ impl_ac_pointer_AcPointerNil::impl_ac_pointer_AcPointerNil(ac_type_qualifier_list _ac_type_qualifier_list_1)
+ : ac_type_qualifier_list_1(_ac_type_qualifier_list_1) { }
+ const enum_phyla impl_ac_ref_option::phylum_sel_ = phylum_ac_ref_option;
+ impl_ac_ref_option_AcRef::impl_ac_ref_option_AcRef()
+ { }
+ impl_ac_ref_option_AcNoRef::impl_ac_ref_option_AcNoRef()
+ { }
+ const enum_phyla impl_ac_operator_name::phylum_sel_ = phylum_ac_operator_name;
+ impl_ac_operator_name_AcOperatorName::impl_ac_operator_name_AcOperatorName(casestring _casestring_1)
+ : casestring_1(_casestring_1) { }
+ const enum_phyla impl_ac_class_qualifier_help_list::phylum_sel_ = phylum_ac_class_qualifier_help_list;
+ impl_ac_class_qualifier_help_list::impl_ac_class_qualifier_help_list(ac_direct_declarator p1 , ac_class_qualifier_help_list p2)
+ : ac_direct_declarator_1(p1), ac_class_qualifier_help_list_1(p2) { }
+ const enum_phyla impl_ac_class_qualifier_list::phylum_sel_ = phylum_ac_class_qualifier_list;
+ impl_ac_class_qualifier_list::impl_ac_class_qualifier_list(ID p1 , ac_class_qualifier_list p2)
+ : ID_1(p1), ac_class_qualifier_list_1(p2) { }
+ const enum_phyla impl_ac_type_qualifier_list::phylum_sel_ = phylum_ac_type_qualifier_list;
+ impl_ac_type_qualifier_list::impl_ac_type_qualifier_list(ac_type_qualifier p1 , ac_type_qualifier_list p2)
+ : ac_type_qualifier_1(p1), ac_type_qualifier_list_1(p2) { }
+ const enum_phyla impl_ac_parameter_type_list::phylum_sel_ = phylum_ac_parameter_type_list;
+ impl_ac_parameter_type_list_AcParList3Dot::impl_ac_parameter_type_list_AcParList3Dot(ac_parameter_list _ac_parameter_list_1)
+ : ac_parameter_list_1(_ac_parameter_list_1) { }
+ impl_ac_parameter_type_list_AcParList::impl_ac_parameter_type_list_AcParList(ac_parameter_list _ac_parameter_list_1)
+ : ac_parameter_list_1(_ac_parameter_list_1) { }
+ const enum_phyla impl_ac_parameter_list::phylum_sel_ = phylum_ac_parameter_list;
+ impl_ac_parameter_list::impl_ac_parameter_list(ac_parameter_declaration p1 , ac_parameter_list p2)
+ : ac_parameter_declaration_1(p1), ac_parameter_list_1(p2) { }
+ const enum_phyla impl_ac_parameter_declaration::phylum_sel_ = phylum_ac_parameter_declaration;
+ impl_ac_parameter_declaration_AcParDeclAbsdecl::impl_ac_parameter_declaration_AcParDeclAbsdecl(ac_declaration_specifiers _ac_declaration_specifiers_1, ac_abstract_declarator _ac_abstract_declarator_1, ac_constant_expression_option _ac_constant_expression_option_1)
+ : ac_declaration_specifiers_1(_ac_declaration_specifiers_1), ac_abstract_declarator_1(_ac_abstract_declarator_1), ac_constant_expression_option_1(_ac_constant_expression_option_1) { }
+ impl_ac_parameter_declaration_AcParDeclDecl::impl_ac_parameter_declaration_AcParDeclDecl(ac_declaration_specifiers _ac_declaration_specifiers_1, ac_declarator _ac_declarator_1, ac_constant_expression_option _ac_constant_expression_option_1)
+ : ac_declaration_specifiers_1(_ac_declaration_specifiers_1), ac_declarator_1(_ac_declarator_1), ac_constant_expression_option_1(_ac_constant_expression_option_1) { }
+ const enum_phyla impl_ac_identifier_list::phylum_sel_ = phylum_ac_identifier_list;
+ impl_ac_identifier_list::impl_ac_identifier_list(ID p1 , ac_identifier_list p2)
+ : ID_1(p1), ac_identifier_list_1(p2) { }
+ const enum_phyla impl_ac_abstract_declarator::phylum_sel_ = phylum_ac_abstract_declarator;
+ impl_ac_abstract_declarator_AcAbsdeclDirdecl::impl_ac_abstract_declarator_AcAbsdeclDirdecl(ac_pointer_option _ac_pointer_option_1, ac_direct_abstract_declarator _ac_direct_abstract_declarator_1)
+ : ac_pointer_option_1(_ac_pointer_option_1), ac_direct_abstract_declarator_1(_ac_direct_abstract_declarator_1) { }
+ impl_ac_abstract_declarator_AcAbsdeclPointer::impl_ac_abstract_declarator_AcAbsdeclPointer(ac_pointer _ac_pointer_1)
+ : ac_pointer_1(_ac_pointer_1) { }
+ const enum_phyla impl_ac_direct_abstract_declarator_option::phylum_sel_ = phylum_ac_direct_abstract_declarator_option;
+ impl_ac_direct_abstract_declarator_option_Yesac_direct_abstract_declarator::impl_ac_direct_abstract_declarator_option_Yesac_direct_abstract_declarator(ac_direct_abstract_declarator _ac_direct_abstract_declarator_1)
+ : ac_direct_abstract_declarator_1(_ac_direct_abstract_declarator_1) { }
+ impl_ac_direct_abstract_declarator_option_Noac_direct_abstract_declarator::impl_ac_direct_abstract_declarator_option_Noac_direct_abstract_declarator()
+ { }
+ const enum_phyla impl_ac_direct_abstract_declarator::phylum_sel_ = phylum_ac_direct_abstract_declarator;
+ impl_ac_direct_abstract_declarator_AcDirAbsdeclFn::impl_ac_direct_abstract_declarator_AcDirAbsdeclFn(ac_direct_abstract_declarator_option _ac_direct_abstract_declarator_option_1, ac_parameter_type_list _ac_parameter_type_list_1)
+ : ac_direct_abstract_declarator_option_1(_ac_direct_abstract_declarator_option_1), ac_parameter_type_list_1(_ac_parameter_type_list_1) { }
+ impl_ac_direct_abstract_declarator_AcDirAbsdeclArray::impl_ac_direct_abstract_declarator_AcDirAbsdeclArray(ac_direct_abstract_declarator_option _ac_direct_abstract_declarator_option_1, ac_constant_expression_option _ac_constant_expression_option_1)
+ : ac_direct_abstract_declarator_option_1(_ac_direct_abstract_declarator_option_1), ac_constant_expression_option_1(_ac_constant_expression_option_1) { }
+ impl_ac_direct_abstract_declarator_AcDirAbsdeclPack::impl_ac_direct_abstract_declarator_AcDirAbsdeclPack(ac_abstract_declarator _ac_abstract_declarator_1)
+ : ac_abstract_declarator_1(_ac_abstract_declarator_1) { }
+ const enum_phyla impl_ac_constant_expression_option::phylum_sel_ = phylum_ac_constant_expression_option;
+ impl_ac_constant_expression_option_Noac_constant_expression::impl_ac_constant_expression_option_Noac_constant_expression()
+ { }
+ impl_ac_constant_expression_option_Yesac_constant_expression::impl_ac_constant_expression_option_Yesac_constant_expression(ac_constant_expression _ac_constant_expression_1)
+ : ac_constant_expression_1(_ac_constant_expression_1) { }
+ const enum_phyla impl_ac_constant_expression::phylum_sel_ = phylum_ac_constant_expression;
+ impl_ac_constant_expression_AcConstExpr::impl_ac_constant_expression_AcConstExpr(Cexpression _Cexpression_1)
+ : Cexpression_1(_Cexpression_1) { }
+ const enum_phyla impl_ac_constant_expression_list::phylum_sel_ = phylum_ac_constant_expression_list;
+ impl_ac_constant_expression_list::impl_ac_constant_expression_list(ac_constant_expression p1 , ac_constant_expression_list p2)
+ : ac_constant_expression_1(p1), ac_constant_expression_list_1(p2) { }
+ const enum_phyla impl_ac_opt_base_init_list::phylum_sel_ = phylum_ac_opt_base_init_list;
+ impl_ac_opt_base_init_list_AcYesBaseInit::impl_ac_opt_base_init_list_AcYesBaseInit(ac_base_init_list _ac_base_init_list_1)
+ : ac_base_init_list_1(_ac_base_init_list_1) { }
+ impl_ac_opt_base_init_list_AcNoBaseInit::impl_ac_opt_base_init_list_AcNoBaseInit()
+ { }
+ const enum_phyla impl_ac_base_init_list::phylum_sel_ = phylum_ac_base_init_list;
+ impl_ac_base_init_list::impl_ac_base_init_list(ac_base_init p1 , ac_base_init_list p2)
+ : ac_base_init_1(p1), ac_base_init_list_1(p2) { }
+ const enum_phyla impl_ac_base_init::phylum_sel_ = phylum_ac_base_init;
+ impl_ac_base_init_AcBaseInit::impl_ac_base_init_AcBaseInit(ID _ID_1, ac_constant_expression _ac_constant_expression_1)
+ : ID_1(_ID_1), ac_constant_expression_1(_ac_constant_expression_1) { }
+ const enum_phyla impl_baseclass_declarations::phylum_sel_ = phylum_baseclass_declarations;
+ impl_baseclass_declarations::impl_baseclass_declarations(baseclass_decl p1 , baseclass_declarations p2)
+ : baseclass_decl_1(p1), baseclass_declarations_1(p2) { }
+ const enum_phyla impl_baseclass_decl::phylum_sel_ = phylum_baseclass_decl;
+ impl_baseclass_decl_BaseClassDecl::impl_baseclass_decl_BaseClassDecl(ID _ID_1, baseclass_list _baseclass_list_1)
+ : ID_1(_ID_1), baseclass_list_1(_baseclass_list_1) { }
+ const enum_phyla impl_baseclass_list::phylum_sel_ = phylum_baseclass_list;
+ impl_baseclass_list::impl_baseclass_list(ID p1 , baseclass_list p2)
+ : ID_1(p1), baseclass_list_1(p2) { }
+ const enum_phyla impl_error::phylum_sel_ = phylum_error;
+ impl_error_Warning::impl_error_Warning(fileline _fileline_1, problem _problem_1)
+ : fileline_1(_fileline_1), problem_1(_problem_1) { }
+ impl_error_NonFatal::impl_error_NonFatal(fileline _fileline_1, problem _problem_1)
+ : fileline_1(_fileline_1), problem_1(_problem_1) { }
+ impl_error_Fatal::impl_error_Fatal(fileline _fileline_1, problem _problem_1)
+ : fileline_1(_fileline_1), problem_1(_problem_1) { }
+ const enum_phyla impl_problem::phylum_sel_ = phylum_problem;
+ impl_problem_Problem6::impl_problem_Problem6(casestring _casestring_1, casestring _casestring_2, casestring _casestring_3, casestring _casestring_4, casestring _casestring_5, casestring _casestring_6)
+ : casestring_1(_casestring_1), casestring_2(_casestring_2), casestring_3(_casestring_3), casestring_4(_casestring_4), casestring_5(_casestring_5), casestring_6(_casestring_6) { }
+ impl_problem_Problem5::impl_problem_Problem5(casestring _casestring_1, casestring _casestring_2, casestring _casestring_3, casestring _casestring_4, casestring _casestring_5)
+ : casestring_1(_casestring_1), casestring_2(_casestring_2), casestring_3(_casestring_3), casestring_4(_casestring_4), casestring_5(_casestring_5) { }
+ impl_problem_Problem4::impl_problem_Problem4(casestring _casestring_1, casestring _casestring_2, casestring _casestring_3, casestring _casestring_4)
+ : casestring_1(_casestring_1), casestring_2(_casestring_2), casestring_3(_casestring_3), casestring_4(_casestring_4) { }
+ impl_problem_Problem3int1::impl_problem_Problem3int1(casestring _casestring_1, casestring _casestring_2, casestring _casestring_3, integer _integer_1, casestring _casestring_4)
+ : casestring_1(_casestring_1), casestring_2(_casestring_2), casestring_3(_casestring_3), integer_1(_integer_1), casestring_4(_casestring_4) { }
+ impl_problem_Problem3::impl_problem_Problem3(casestring _casestring_1, casestring _casestring_2, casestring _casestring_3)
+ : casestring_1(_casestring_1), casestring_2(_casestring_2), casestring_3(_casestring_3) { }
+ impl_problem_Problem2::impl_problem_Problem2(casestring _casestring_1, casestring _casestring_2)
+ : casestring_1(_casestring_1), casestring_2(_casestring_2) { }
+ impl_problem_Problem1storageoption1ID::impl_problem_Problem1storageoption1ID(casestring _casestring_1, storageoption _storageoption_1, casestring _casestring_2, ID _ID_1)
+ : casestring_1(_casestring_1), storageoption_1(_storageoption_1), casestring_2(_casestring_2), ID_1(_ID_1) { }
+ impl_problem_Problem1INT1ID1ID::impl_problem_Problem1INT1ID1ID(casestring _casestring_1, INT _INT_1, casestring _casestring_2, ID _ID_1, casestring _casestring_3, ID _ID_2)
+ : casestring_1(_casestring_1), INT_1(_INT_1), casestring_2(_casestring_2), ID_1(_ID_1), casestring_3(_casestring_3), ID_2(_ID_2) { }
+ impl_problem_Problem1ID1ID1ID::impl_problem_Problem1ID1ID1ID(casestring _casestring_1, ID _ID_1, casestring _casestring_2, ID _ID_2, casestring _casestring_3, ID _ID_3)
+ : casestring_1(_casestring_1), ID_1(_ID_1), casestring_2(_casestring_2), ID_2(_ID_2), casestring_3(_casestring_3), ID_3(_ID_3) { }
+ impl_problem_Problem1INT1ID::impl_problem_Problem1INT1ID(casestring _casestring_1, INT _INT_1, casestring _casestring_2, ID _ID_1)
+ : casestring_1(_casestring_1), INT_1(_INT_1), casestring_2(_casestring_2), ID_1(_ID_1) { }
+ impl_problem_Problem1int1::impl_problem_Problem1int1(casestring _casestring_1, integer _integer_1, casestring _casestring_2)
+ : casestring_1(_casestring_1), integer_1(_integer_1), casestring_2(_casestring_2) { }
+ impl_problem_Problem1INT::impl_problem_Problem1INT(casestring _casestring_1, INT _INT_1)
+ : casestring_1(_casestring_1), INT_1(_INT_1) { }
+ impl_problem_Problem1t1ID::impl_problem_Problem1t1ID(casestring _casestring_1, IDtype _IDtype_1, casestring _casestring_2, ID _ID_1)
+ : casestring_1(_casestring_1), IDtype_1(_IDtype_1), casestring_2(_casestring_2), ID_1(_ID_1) { }
+ impl_problem_Problem1ID1ID::impl_problem_Problem1ID1ID(casestring _casestring_1, ID _ID_1, casestring _casestring_2, ID _ID_2)
+ : casestring_1(_casestring_1), ID_1(_ID_1), casestring_2(_casestring_2), ID_2(_ID_2) { }
+ impl_problem_Problem1we::impl_problem_Problem1we(casestring _casestring_1, withexpression _withexpression_1)
+ : casestring_1(_casestring_1), withexpression_1(_withexpression_1) { }
+ impl_problem_Problem1tID::impl_problem_Problem1tID(casestring _casestring_1, ID _ID_1)
+ : casestring_1(_casestring_1), ID_1(_ID_1) { }
+ impl_problem_Problem1ID::impl_problem_Problem1ID(casestring _casestring_1, ID _ID_1)
+ : casestring_1(_casestring_1), ID_1(_ID_1) { }
+ impl_problem_Problem1::impl_problem_Problem1(casestring _casestring_1)
+ : casestring_1(_casestring_1) { }
+ const enum_phyla impl_addedphylumdeclarations::phylum_sel_ = phylum_addedphylumdeclarations;
+ impl_addedphylumdeclarations::impl_addedphylumdeclarations(addedphylumdeclaration p1 , addedphylumdeclarations p2)
+ : addedphylumdeclaration_1(p1), addedphylumdeclarations_1(p2) { }
+ const enum_phyla impl_addedphylumdeclaration::phylum_sel_ = phylum_addedphylumdeclaration;
+ impl_addedphylumdeclaration_AddedPhylumdeclaration::impl_addedphylumdeclaration_AddedPhylumdeclaration(uniqID _uniqID_1)
+ : uniqID_1(_uniqID_1) { }
+ const enum_phyla impl_countedphylumdeclarations::phylum_sel_ = phylum_countedphylumdeclarations;
+ impl_countedphylumdeclarations::impl_countedphylumdeclarations(countedphylumdeclaration p1 , countedphylumdeclarations p2)
+ : countedphylumdeclaration_1(p1), countedphylumdeclarations_1(p2) { }
+ const enum_phyla impl_countedphylumdeclaration::phylum_sel_ = phylum_countedphylumdeclaration;
+ impl_countedphylumdeclaration_CountedPhylumdeclaration::impl_countedphylumdeclaration_CountedPhylumdeclaration(uniqID _uniqID_1)
+ : uniqID_1(_uniqID_1) { }
+ const enum_phyla impl_charruns::phylum_sel_ = phylum_charruns;
+ impl_charruns_Stars::impl_charruns_Stars()
+ { }
+ impl_charruns_QuotedNewlines::impl_charruns_QuotedNewlines()
+ { }
+ impl_charruns_Newlines::impl_charruns_Newlines()
+ { }
+ const enum_phyla impl_bindingidmarks::phylum_sel_ = phylum_bindingidmarks;
+ impl_bindingidmarks::impl_bindingidmarks(bindingidmark p1 , bindingidmarks p2)
+ : bindingidmark_1(p1), bindingidmarks_1(p2) { }
+ const enum_phyla impl_bindingidmark::phylum_sel_ = phylum_bindingidmark;
+ impl_bindingidmark_BindingIdMark::impl_bindingidmark_BindingIdMark(uniqID _uniqID_1)
+ : uniqID_1(_uniqID_1) { }
+
+ #ifdef KC_STATISTICS
+ KC_OPERATOR_STATISTICS operator_statistics[KC_NO_OF_OPERATORS];
+ static int kc_casestring_strlen =0;
+ static int kc_nocasestring_strlen =0;
+ # define KC_COLLECT_STATS0(v) v
+ #else
+ # define KC_COLLECT_STATS0(v)
+ #endif
+
+ #ifndef KC_CREATE_STATS
+ # define KC_CREATE_STATS(oper) operator_statistics[oper].created++;
+ #endif
+ #ifndef KC_EXISTINGNOTFOUND_STATS
+ # define KC_EXISTINGNOTFOUND_STATS(oper) operator_statistics[oper].existing_not_found++;
+ #endif
+
+ #ifndef KC_FREE_CALLED_STATS
+ # define KC_FREE_CALLED_STATS(oper,rec) operator_statistics[oper].free_called[(rec?true:false)]++;
+ #endif
+
+ #ifndef KC_FREED_STATS
+ # define KC_FREED_STATS(oper,rec) operator_statistics[oper].freed[(rec?true:false)]++;
+ #endif
+ static hashtable_struct_t kc_not_uniq_static_hashtable;
+ static hashtable_struct_t uniq_static_hashtable;
+
+ bool kc_storageclass_still_uniq[] = {
+ true, true };
+
+ hashtable_t hashtables[] = {
+ &kc_not_uniq_static_hashtable,
+ &uniq_static_hashtable,
+ };
+
+ const char* kc_storageclassnames[] = { "kc_not_uniq", "uniq" };
+
+ namespace { // all local to k.cc
+
+ uniqID kc_initialize_uniqID(uniqID kc_x)
+ {
+ kc_x->type = ITUnknown();
+ kc_x->line = 0;
+ kc_x->file = mkcasestring("");
+ kc_x->scopeinfo = Nilscopetypefilelinestack();
+
+ return kc_x;
+ }
+
+ ID kc_initialize_ID(ID kc_x)
+ {
+ kc_x->type = ITUnknown();
+ kc_x->named_subphylum = 0;
+ kc_x->line = 0;
+ kc_x->file = mkcasestring("");
+
+ return kc_x;
+ }
+
+ INT kc_initialize_INT(INT kc_x)
+ {
+ kc_x->line = 0;
+ kc_x->file = mkcasestring("");
+
+ return kc_x;
+ }
+
+ STRING kc_initialize_STRING(STRING kc_x)
+ {
+ kc_x->line = 0;
+ kc_x->file = mkcasestring("");
+
+ return kc_x;
+ }
+
+ phylumdeclaration kc_initialize_phylumdeclaration(phylumdeclaration kc_x)
+ {
+ kc_x->marked = 0;
+ kc_x->additional_members = Nilfndeclarations();
+ kc_x->base_classes = Nilbaseclass_list();
+
+ return kc_x;
+ }
+
+ storageclasses kc_initialize_storageclasses(storageclasses kc_x)
+ {
+ kc_x->phyla = Nilphylumnames();
+
+ return kc_x;
+ }
+
+ alternative kc_initialize_alternative(alternative kc_x)
+ {
+ kc_x->rewriteinfo = Nilrewriterulesinfo();
+ kc_x->unparseinfo = Nilunparsedeclsinfo();
+ kc_x->additional_members = Nilfndeclarations();
+ kc_x->base_classes = Nilbaseclass_list();
+
+ return kc_x;
+ }
+
+ Cexpression kc_initialize_Cexpression(Cexpression kc_x)
+ {
+ kc_x->line = 0;
+ kc_x->file = mkcasestring("");
+
+ return kc_x;
+ }
+
+ idCexpression kc_initialize_idCexpression(idCexpression kc_x)
+ {
+ kc_x->id = f_emptyId();
+
+ return kc_x;
+ }
+
+ includefile kc_initialize_includefile(includefile kc_x)
+ {
+ kc_x->inc_type = include_unknown;
+ kc_x->inc[0] = Nilincludedeclarations();
+ kc_x->inc[1] = Nilincludedeclarations();
+ if (Theincludefiles == 0) {
+ Theincludefiles = Consincludefiles( kc_x, Nilincludefiles());
+ } else {
+ Theincludefiles = Consincludefiles( kc_x, Theincludefiles);
+ }
+
+
+ return kc_x;
+ }
+
+ includedeclaration kc_initialize_includedeclaration(includedeclaration kc_x)
+ {
+ kc_x->line = 0;
+ kc_x->file = mkcasestring("");
+
+ return kc_x;
+ }
+
+ patternchains kc_initialize_patternchains(patternchains kc_x)
+ {
+ kc_x->line = 0;
+ kc_x->file = mkcasestring("");
+
+ return kc_x;
+ }
+
+ patternchain kc_initialize_patternchain(patternchain kc_x)
+ {
+ kc_x->line = 0;
+ kc_x->file = mkcasestring("");
+
+ return kc_x;
+ }
+
+ patternchainitem kc_initialize_patternchainitem(patternchainitem kc_x)
+ {
+ kc_x->line = 0;
+ kc_x->file = mkcasestring("");
+ kc_x->type = f_emptyId();
+
+ return kc_x;
+ }
+
+ outmostpattern kc_initialize_outmostpattern(outmostpattern kc_x)
+ {
+ kc_x->line = 0;
+ kc_x->file = mkcasestring("");
+ kc_x->type = f_emptyId();
+
+ return kc_x;
+ }
+
+ term kc_initialize_term(term kc_x)
+ {
+ kc_x->line = 0;
+ kc_x->file = mkcasestring("");
+
+ return kc_x;
+ }
+
+ fnfile kc_initialize_fnfile(fnfile kc_x)
+ {
+ kc_x->fns = Nilfndeclarations();
+ if (Thefnfiles == 0) {
+ Thefnfiles = Consfnfiles( kc_x, Nilfnfiles());
+ } else {
+ Thefnfiles = Consfnfiles( kc_x, Thefnfiles);
+ }
+
+
+ return kc_x;
+ }
+
+ fndeclaration kc_initialize_fndeclaration(fndeclaration kc_x)
+ {
+ kc_x->last_line = 0;
+ kc_x->file = mkcasestring("");
+ {
+ fndeclaration kc_selvar_0_1 = phylum_cast<fndeclaration>(kc_x);
+ if ((kc_selvar_0_1->prod_sel() == sel_FnAcDeclaration)) {
+ const ac_declarator fn_args = phylum_cast<const impl_fndeclaration_FnAcDeclaration*>(kc_selvar_0_1)->ac_declarator_1;
+ const ac_declaration_list C_vardecls = phylum_cast<const impl_fndeclaration_FnAcDeclaration*>(kc_selvar_0_1)->ac_declaration_list_1;
+
+ kc_selvar_0_1->sorted = sort_extend_parameter_type_list( C_vardecls, fn_args );
+
+ } else
+ {
+ kc_selvar_0_1->sorted = AcParList( Nilac_parameter_list() );
+ }
+ }
+
+
+ return kc_x;
+ }
+
+ Ctext kc_initialize_Ctext(Ctext kc_x)
+ {
+ kc_x->line = 0;
+ kc_x->file = mkcasestring("");
+
+ return kc_x;
+ }
+
+ Ctext_elem kc_initialize_Ctext_elem(Ctext_elem kc_x)
+ {
+ kc_x->line = 0;
+ kc_x->file = mkcasestring("");
+
+ return kc_x;
+ }
+
+ foreach_after kc_initialize_foreach_after(foreach_after kc_x)
+ {
+ kc_x->line = 0;
+ kc_x->file = mkcasestring("");
+
+ return kc_x;
+ }
+
+ withexpressions kc_initialize_withexpressions(withexpressions kc_x)
+ {
+ kc_x->type = 0;
+ kc_x->line = 0;
+ kc_x->file = mkcasestring("");
+ {
+ withexpressions kc_selvar_0_1 = phylum_cast<withexpressions>(kc_x);
+ if ((kc_selvar_0_1->prod_sel() == sel_Conswithexpressions)) {
+ const withexpression h = (kc_selvar_0_1)->withexpression_1;
+ const withexpressions t = (kc_selvar_0_1)->withexpressions_1;
+
+ kc_selvar_0_1->type = Consphylumnames( h->type, t->type );
+ kc_selvar_0_1->line = h->line;
+ kc_selvar_0_1->file = h->file;
+
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_Nilwithexpressions)) {
+
+ kc_selvar_0_1->type = Nilphylumnames();
+
+ } else
+ kc_no_default_in_with( "", __LINE__, __FILE__ );
+ }
+
+
+ return kc_x;
+ }
+
+ withexpression kc_initialize_withexpression(withexpression kc_x)
+ {
+ kc_x->type = f_emptyId();
+ kc_x->line = 0;
+ kc_x->file = mkcasestring("");
+
+ {
+ withexpression kc_selvar_0_1 = phylum_cast<withexpression>(kc_x);
+ if ((kc_selvar_0_1->prod_sel() == sel_WECexpression)) {
+ const Cexpression e = phylum_cast<const impl_withexpression_WECexpression*>(kc_selvar_0_1)->Cexpression_1;
+
+ kc_selvar_0_1->line = e->line;
+ kc_selvar_0_1->file = e->file;
+
+ } else
+ if ((kc_selvar_0_1->prod_sel() == sel_WEVariable)) {
+ const ID id = phylum_cast<const impl_withexpression_WEVariable*>(kc_selvar_0_1)->ID_1;
+
+ kc_selvar_0_1->line = id->line;
+ kc_selvar_0_1->file = id->file;
+
+ } else
+ kc_no_default_in_with( "", __LINE__, __FILE__ );
+ }
+
+
+ return kc_x;
+ }
+
+ viewnames kc_initialize_viewnames(viewnames kc_x)
+ {
+ kc_x->is_extern = false;
+
+ return kc_x;
+ }
+
+ unparseitem kc_initialize_unparseitem(unparseitem kc_x)
+ {
+ kc_x->text_nr = 0;
+
+ return kc_x;
+ }
+
+ elem_patternrepresentation kc_initialize_elem_patternrepresentation(elem_patternrepresentation kc_x)
+ {
+ kc_x->line = 0;
+ kc_x->file = mkcasestring("");
+ kc_x->type = f_emptyId();
+
+ return kc_x;
+ }
+
+ path kc_initialize_path(path kc_x)
+ {
+ kc_x->op = f_emptyId();
+ kc_x->id = f_emptyId();
+
+ return kc_x;
+ }
+
+ ac_operator_name kc_initialize_ac_operator_name(ac_operator_name kc_x)
+ {
+ kc_x->line = 0;
+ kc_x->file = mkcasestring("");
+
+ return kc_x;
+ }
+
+ addedphylumdeclaration kc_initialize_addedphylumdeclaration(addedphylumdeclaration kc_x)
+ {
+ kc_x->added = false;
+ if (!pl_addedphylumdeclarations)
+ pl_addedphylumdeclarations =
+ Consaddedphylumdeclarations( kc_x, Niladdedphylumdeclarations() );
+ else
+ pl_addedphylumdeclarations =
+ Consaddedphylumdeclarations( kc_x, pl_addedphylumdeclarations );
+
+
+ return kc_x;
+ }
+
+ countedphylumdeclaration kc_initialize_countedphylumdeclaration(countedphylumdeclaration kc_x)
+ {
+ kc_x->count = 0;
+ if (!pl_countedphylumdeclarations)
+ pl_countedphylumdeclarations =
+ Conscountedphylumdeclarations( kc_x, Nilcountedphylumdeclarations() );
+ else
+ pl_countedphylumdeclarations =
+ Conscountedphylumdeclarations( kc_x, pl_countedphylumdeclarations );
+
+
+ return kc_x;
+ }
+
+ bindingidmark kc_initialize_bindingidmark(bindingidmark kc_x)
+ {
+ kc_x->marked = false;
+
+ if (! Thebindingidmarks)
+ Thebindingidmarks = Consbindingidmarks( kc_x, Nilbindingidmarks() );
+ else
+ Thebindingidmarks = Consbindingidmarks( kc_x, Thebindingidmarks );
+
+
+ return kc_x;
+ }
+
+
+ } // namespace
+
+ enum_phyla
+ impl_abstract_phylum::phylum() const {
+ return operator_info[prod_sel()].phylum;
+ }
+
+ const char*
+ impl_abstract_phylum::phylum_name() const {
+ return phylum_info[phylum()].name;
+ }
+
+ const char*
+ impl_abstract_phylum::op_name() const {
+ return operator_info[prod_sel()].name;
+ }
+
+ casestring
+ mkcasestring(const kc_char *kc_s, int length)
+ {
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel__Str));
+
+ casestring kc_x=new impl_casestring__Str(kc_s);
+ if(length>=0)
+ kc_x->make_own(length);
+
+ casestring unique_kc_x=hashtables[uniq]->ht_check_insert((casestring)kc_x);
+ if(unique_kc_x!=kc_x) {
+ if(length<0)
+ kc_x->name=0;
+
+ delete kc_x;
+ kc_x=unique_kc_x;
+ } else {
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel__Str));
+ if(length<0)
+ kc_x->make_own(static_cast<int>(kc_strlen(kc_s)));
+
+ kc_x->post_create();
+ }
+ return kc_x;
+ }
+
+ nocasestring
+ mknocasestring(const kc_char *kc_s, int length)
+ {
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NoCaseStr));
+
+ nocasestring kc_x=new impl_nocasestring_NoCaseStr(kc_s);
+ if(length>=0)
+ kc_x->make_own(length);
+ nocasestring unique_kc_x=hashtables[uniq]->ht_check_insert((nocasestring)kc_x);
+ if(unique_kc_x!=kc_x) {
+ if(length<0)
+ kc_x->name=0;
+ delete kc_x;
+ kc_x=unique_kc_x;
+ } else {
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NoCaseStr));
+ if(length<0)
+ kc_x->make_own(static_cast<int>(kc_strlen(kc_s)));
+ kc_x->post_create();
+ }
+
+ return kc_x;
+ }
+
+ integer
+ mkinteger(const INTEGER kc_i)
+ {
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel__Int));
+
+ integer kc_x =new impl_integer__Int(kc_i);
+ integer unique_kc_x=hashtables[uniq]->ht_check_insert(kc_x);
+ if(unique_kc_x!=kc_x) {
+ delete kc_x;
+ kc_x=unique_kc_x;
+ } else {
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel__Int));
+ kc_x->post_create();
+ }
+
+ return kc_x;
+ }
+
+ real
+ mkreal(const REAL kc_r)
+ {
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel__Real));
+
+ real kc_x=new impl_real__Real(kc_r);
+ real unique_kc_x=hashtables[uniq]->ht_check_insert(kc_x);
+ if(unique_kc_x!=kc_x) {
+ delete kc_x;
+ kc_x=unique_kc_x;
+ } else {
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel__Real));
+ kc_x->post_create();
+ }
+
+ return kc_x;
+ }
+
+ voidptr
+ mkvoidptr(void *kc_p)
+ {
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel__VoidPtr));
+ voidptr kc_x=new impl_voidptr__VoidPtr(kc_p);
+ voidptr unique_kc_x=hashtables[uniq]->ht_check_insert(kc_x);
+ if(unique_kc_x!=kc_x) {
+ delete kc_x;
+ kc_x=unique_kc_x;
+ } else {
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel__VoidPtr));
+ kc_x->post_create();
+ }
+ return kc_x;
+ }
+
+ impl_uniqID_Str*
+ Str(casestring _casestring_1) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ uniqID kc_x=new impl_uniqID_Str(_casestring_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Str));
+ uniqID unique_kc_x= hashtables[uniq]->ht_check_insert(kc_x);
+ if(unique_kc_x!=kc_x) {
+ delete kc_x;
+ kc_x=unique_kc_x;
+ } else {
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Str));
+ kc_x->post_create();
+ kc_x = kc_initialize_uniqID(kc_x);
+ }
+ return static_cast<impl_uniqID_Str*>(kc_x);
+ }
+
+ impl_ID_Id*
+ Id(uniqID _uniqID_1) {
+ assertPhylum(_uniqID_1, phylum_uniqID);
+ ID kc_x = new impl_ID_Id(_uniqID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Id));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Id));
+ kc_x->post_create();
+ kc_x = kc_initialize_ID(kc_x);
+ return static_cast<impl_ID_Id*>(kc_x);
+ }
+
+ impl_INT_Int*
+ Int(integer _integer_1) {
+ assertPhylum(_integer_1, phylum_integer);
+ INT kc_x = new impl_INT_Int(_integer_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Int));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Int));
+ kc_x->post_create();
+ kc_x = kc_initialize_INT(kc_x);
+ return static_cast<impl_INT_Int*>(kc_x);
+ }
+
+ impl_STRING_String*
+ String(casestring _casestring_1) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ STRING kc_x = new impl_STRING_String(_casestring_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_String));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_String));
+ kc_x->post_create();
+ kc_x = kc_initialize_STRING(kc_x);
+ return static_cast<impl_STRING_String*>(kc_x);
+ }
+
+ impl_phylumdeclarationsroot_PhylumDeclarations*
+ PhylumDeclarations(phylumdeclarations _phylumdeclarations_1) {
+ assertPhylum(_phylumdeclarations_1, phylum_phylumdeclarations);
+ phylumdeclarationsroot kc_x = new impl_phylumdeclarationsroot_PhylumDeclarations(_phylumdeclarations_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PhylumDeclarations));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PhylumDeclarations));
+ kc_x->post_create();
+ return static_cast<impl_phylumdeclarationsroot_PhylumDeclarations*>(kc_x);
+ }
+
+ impl_phylumdeclarations*
+ Nilphylumdeclarations() {
+ phylumdeclarations kc_x = new impl_phylumdeclarations();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilphylumdeclarations));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilphylumdeclarations));
+ kc_x->post_create();
+ return static_cast<impl_phylumdeclarations*>(kc_x);
+ }
+
+ impl_phylumdeclarations*
+ Consphylumdeclarations(phylumdeclaration _phylumdeclaration_1, phylumdeclarations _phylumdeclarations_1) {
+ assertPhylum(_phylumdeclaration_1, phylum_phylumdeclaration);
+ assertPhylum(_phylumdeclarations_1, phylum_phylumdeclarations);
+ phylumdeclarations kc_x = new impl_phylumdeclarations(_phylumdeclaration_1, _phylumdeclarations_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consphylumdeclarations));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consphylumdeclarations));
+ kc_x->post_create();
+ return static_cast<impl_phylumdeclarations*>(kc_x);
+ }
+
+ impl_phylumnames*
+ Nilphylumnames() {
+ phylumnames kc_x = new impl_phylumnames();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilphylumnames));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilphylumnames));
+ kc_x->post_create();
+ return static_cast<impl_phylumnames*>(kc_x);
+ }
+
+ impl_phylumnames*
+ Consphylumnames(ID _ID_1, phylumnames _phylumnames_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_phylumnames_1, phylum_phylumnames);
+ phylumnames kc_x = new impl_phylumnames(_ID_1, _phylumnames_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consphylumnames));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consphylumnames));
+ kc_x->post_create();
+ return static_cast<impl_phylumnames*>(kc_x);
+ }
+
+ impl_phylumdeclaration_PhylumDeclaration*
+ PhylumDeclaration(ID _ID_1, storageoption _storageoption_1, productionblock _productionblock_1, Ccode_option _Ccode_option_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_storageoption_1, phylum_storageoption);
+ assertPhylum(_productionblock_1, phylum_productionblock);
+ assertPhylum(_Ccode_option_1, phylum_Ccode_option);
+ phylumdeclaration kc_x = new impl_phylumdeclaration_PhylumDeclaration(_ID_1, _storageoption_1, _productionblock_1, _Ccode_option_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PhylumDeclaration));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PhylumDeclaration));
+ kc_x->post_create();
+ kc_x = kc_initialize_phylumdeclaration(kc_x);
+ return static_cast<impl_phylumdeclaration_PhylumDeclaration*>(kc_x);
+ }
+
+ impl_storageoption_NoStorageOption*
+ NoStorageOption() {
+ storageoption kc_x = new impl_storageoption_NoStorageOption();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NoStorageOption));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NoStorageOption));
+ kc_x->post_create();
+ return static_cast<impl_storageoption_NoStorageOption*>(kc_x);
+ }
+
+ impl_storageoption_NegativeStorageOption*
+ NegativeStorageOption(ID _ID_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ storageoption kc_x = new impl_storageoption_NegativeStorageOption(_ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NegativeStorageOption));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NegativeStorageOption));
+ kc_x->post_create();
+ return static_cast<impl_storageoption_NegativeStorageOption*>(kc_x);
+ }
+
+ impl_storageoption_PositiveStorageOption*
+ PositiveStorageOption(ID _ID_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ storageoption kc_x = new impl_storageoption_PositiveStorageOption(_ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PositiveStorageOption));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PositiveStorageOption));
+ kc_x->post_create();
+ return static_cast<impl_storageoption_PositiveStorageOption*>(kc_x);
+ }
+
+ impl_storageclasses*
+ Nilstorageclasses() {
+ storageclasses kc_x = new impl_storageclasses();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilstorageclasses));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilstorageclasses));
+ kc_x->post_create();
+ kc_x = kc_initialize_storageclasses(kc_x);
+ return static_cast<impl_storageclasses*>(kc_x);
+ }
+
+ impl_storageclasses*
+ Consstorageclasses(ID _ID_1, storageclasses _storageclasses_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_storageclasses_1, phylum_storageclasses);
+ storageclasses kc_x = new impl_storageclasses(_ID_1, _storageclasses_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consstorageclasses));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consstorageclasses));
+ kc_x->post_create();
+ kc_x = kc_initialize_storageclasses(kc_x);
+ return static_cast<impl_storageclasses*>(kc_x);
+ }
+
+ impl_productionblock_Emptyproductionblock*
+ Emptyproductionblock() {
+ productionblock kc_x = new impl_productionblock_Emptyproductionblock();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Emptyproductionblock));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Emptyproductionblock));
+ kc_x->post_create();
+ return static_cast<impl_productionblock_Emptyproductionblock*>(kc_x);
+ }
+
+ impl_productionblock_ListAlternatives*
+ ListAlternatives(alternatives _alternatives_1, ID _ID_1) {
+ assertPhylum(_alternatives_1, phylum_alternatives);
+ assertPhylum(_ID_1, phylum_ID);
+ productionblock kc_x = new impl_productionblock_ListAlternatives(_alternatives_1, _ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ListAlternatives));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ListAlternatives));
+ kc_x->post_create();
+ return static_cast<impl_productionblock_ListAlternatives*>(kc_x);
+ }
+
+ impl_productionblock_NonlistAlternatives*
+ NonlistAlternatives(alternatives _alternatives_1) {
+ assertPhylum(_alternatives_1, phylum_alternatives);
+ productionblock kc_x = new impl_productionblock_NonlistAlternatives(_alternatives_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NonlistAlternatives));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NonlistAlternatives));
+ kc_x->post_create();
+ return static_cast<impl_productionblock_NonlistAlternatives*>(kc_x);
+ }
+
+ impl_productionblock_PredefinedAlternatives*
+ PredefinedAlternatives(alternatives _alternatives_1) {
+ assertPhylum(_alternatives_1, phylum_alternatives);
+ productionblock kc_x = new impl_productionblock_PredefinedAlternatives(_alternatives_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PredefinedAlternatives));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PredefinedAlternatives));
+ kc_x->post_create();
+ return static_cast<impl_productionblock_PredefinedAlternatives*>(kc_x);
+ }
+
+ impl_alternatives*
+ Nilalternatives() {
+ alternatives kc_x = new impl_alternatives();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilalternatives));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilalternatives));
+ kc_x->post_create();
+ return static_cast<impl_alternatives*>(kc_x);
+ }
+
+ impl_alternatives*
+ Consalternatives(alternative _alternative_1, alternatives _alternatives_1) {
+ assertPhylum(_alternative_1, phylum_alternative);
+ assertPhylum(_alternatives_1, phylum_alternatives);
+ alternatives kc_x = new impl_alternatives(_alternative_1, _alternatives_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consalternatives));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consalternatives));
+ kc_x->post_create();
+ return static_cast<impl_alternatives*>(kc_x);
+ }
+
+ impl_alternative_Alternative*
+ Alternative(ID _ID_1, arguments _arguments_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_arguments_1, phylum_arguments);
+ alternative kc_x = new impl_alternative_Alternative(_ID_1, _arguments_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Alternative));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Alternative));
+ kc_x->post_create();
+ kc_x = kc_initialize_alternative(kc_x);
+ return static_cast<impl_alternative_Alternative*>(kc_x);
+ }
+
+ impl_arguments*
+ Nilarguments() {
+ arguments kc_x = new impl_arguments();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilarguments));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilarguments));
+ kc_x->post_create();
+ return static_cast<impl_arguments*>(kc_x);
+ }
+
+ impl_arguments*
+ Consarguments(ID _ID_1, arguments _arguments_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_arguments_1, phylum_arguments);
+ arguments kc_x = new impl_arguments(_ID_1, _arguments_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consarguments));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consarguments));
+ kc_x->post_create();
+ return static_cast<impl_arguments*>(kc_x);
+ }
+
+ impl_argument_Argument*
+ Argument(ID _ID_1, integer _integer_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_integer_1, phylum_integer);
+ argument kc_x = new impl_argument_Argument(_ID_1, _integer_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Argument));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Argument));
+ kc_x->post_create();
+ return static_cast<impl_argument_Argument*>(kc_x);
+ }
+
+ impl_Ccode_option_CcodeOption*
+ CcodeOption(attributes _attributes_1, Ctexts _Ctexts_1) {
+ assertPhylum(_attributes_1, phylum_attributes);
+ assertPhylum(_Ctexts_1, phylum_Ctexts);
+ Ccode_option kc_x = new impl_Ccode_option_CcodeOption(_attributes_1, _Ctexts_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CcodeOption));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CcodeOption));
+ kc_x->post_create();
+ return static_cast<impl_Ccode_option_CcodeOption*>(kc_x);
+ }
+
+ impl_attributes*
+ Nilattributes() {
+ attributes kc_x = new impl_attributes();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilattributes));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilattributes));
+ kc_x->post_create();
+ return static_cast<impl_attributes*>(kc_x);
+ }
+
+ impl_attributes*
+ Consattributes(attribute _attribute_1, attributes _attributes_1) {
+ assertPhylum(_attribute_1, phylum_attribute);
+ assertPhylum(_attributes_1, phylum_attributes);
+ attributes kc_x = new impl_attributes(_attribute_1, _attributes_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consattributes));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consattributes));
+ kc_x->post_create();
+ return static_cast<impl_attributes*>(kc_x);
+ }
+
+ impl_attribute_Attribute*
+ Attribute(ID _ID_1, ID _ID_2, attribute_initialisation_option _attribute_initialisation_option_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_ID_2, phylum_ID);
+ assertPhylum(_attribute_initialisation_option_1, phylum_attribute_initialisation_option);
+ attribute kc_x = new impl_attribute_Attribute(_ID_1, _ID_2, _attribute_initialisation_option_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Attribute));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Attribute));
+ kc_x->post_create();
+ return static_cast<impl_attribute_Attribute*>(kc_x);
+ }
+
+ impl_attribute_initialisation_option_Noattribute_initialisation*
+ Noattribute_initialisation() {
+ attribute_initialisation_option kc_x = new impl_attribute_initialisation_option_Noattribute_initialisation();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Noattribute_initialisation));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Noattribute_initialisation));
+ kc_x->post_create();
+ return static_cast<impl_attribute_initialisation_option_Noattribute_initialisation*>(kc_x);
+ }
+
+ impl_attribute_initialisation_option_Yesattribute_initialisation*
+ Yesattribute_initialisation(Cexpression _Cexpression_1) {
+ assertPhylum(_Cexpression_1, phylum_Cexpression);
+ attribute_initialisation_option kc_x = new impl_attribute_initialisation_option_Yesattribute_initialisation(_Cexpression_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Yesattribute_initialisation));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Yesattribute_initialisation));
+ kc_x->post_create();
+ return static_cast<impl_attribute_initialisation_option_Yesattribute_initialisation*>(kc_x);
+ }
+
+ impl_Cexpression*
+ NilCexpression() {
+ Cexpression kc_x = new impl_Cexpression();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NilCexpression));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NilCexpression));
+ kc_x->post_create();
+ kc_x = kc_initialize_Cexpression(kc_x);
+ return static_cast<impl_Cexpression*>(kc_x);
+ }
+
+ impl_Cexpression*
+ ConsCexpression(Cexpression_elem _Cexpression_elem_1, Cexpression _Cexpression_1) {
+ assertPhylum(_Cexpression_elem_1, phylum_Cexpression_elem);
+ assertPhylum(_Cexpression_1, phylum_Cexpression);
+ Cexpression kc_x = new impl_Cexpression(_Cexpression_elem_1, _Cexpression_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ConsCexpression));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ConsCexpression));
+ kc_x->post_create();
+ kc_x = kc_initialize_Cexpression(kc_x);
+ return static_cast<impl_Cexpression*>(kc_x);
+ }
+
+ impl_Cexpression_elem_CExpressionPart*
+ CExpressionPart(casestring _casestring_1) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ Cexpression_elem kc_x = new impl_Cexpression_elem_CExpressionPart(_casestring_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionPart));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionPart));
+ kc_x->post_create();
+ return static_cast<impl_Cexpression_elem_CExpressionPart*>(kc_x);
+ }
+
+ impl_Cexpression_elem_CExpressionDollarvar*
+ CExpressionDollarvar(INT _INT_1) {
+ assertPhylum(_INT_1, phylum_INT);
+ Cexpression_elem kc_x = new impl_Cexpression_elem_CExpressionDollarvar(_INT_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionDollarvar));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionDollarvar));
+ kc_x->post_create();
+ return static_cast<impl_Cexpression_elem_CExpressionDollarvar*>(kc_x);
+ }
+
+ impl_Cexpression_elem_CExpressionNl*
+ CExpressionNl() {
+ Cexpression_elem kc_x = new impl_Cexpression_elem_CExpressionNl();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionNl));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionNl));
+ kc_x->post_create();
+ return static_cast<impl_Cexpression_elem_CExpressionNl*>(kc_x);
+ }
+
+ impl_Cexpression_elem_CExpressionDQ*
+ CExpressionDQ(CexpressionDQ _CexpressionDQ_1) {
+ assertPhylum(_CexpressionDQ_1, phylum_CexpressionDQ);
+ Cexpression_elem kc_x = new impl_Cexpression_elem_CExpressionDQ(_CexpressionDQ_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionDQ));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionDQ));
+ kc_x->post_create();
+ return static_cast<impl_Cexpression_elem_CExpressionDQ*>(kc_x);
+ }
+
+ impl_Cexpression_elem_CExpressionSQ*
+ CExpressionSQ(CexpressionSQ _CexpressionSQ_1) {
+ assertPhylum(_CexpressionSQ_1, phylum_CexpressionSQ);
+ Cexpression_elem kc_x = new impl_Cexpression_elem_CExpressionSQ(_CexpressionSQ_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionSQ));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionSQ));
+ kc_x->post_create();
+ return static_cast<impl_Cexpression_elem_CExpressionSQ*>(kc_x);
+ }
+
+ impl_Cexpression_elem_CExpressionPack*
+ CExpressionPack(Cexpression _Cexpression_1) {
+ assertPhylum(_Cexpression_1, phylum_Cexpression);
+ Cexpression_elem kc_x = new impl_Cexpression_elem_CExpressionPack(_Cexpression_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionPack));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionPack));
+ kc_x->post_create();
+ return static_cast<impl_Cexpression_elem_CExpressionPack*>(kc_x);
+ }
+
+ impl_Cexpression_elem_CExpressionArray*
+ CExpressionArray(Cexpression _Cexpression_1) {
+ assertPhylum(_Cexpression_1, phylum_Cexpression);
+ Cexpression_elem kc_x = new impl_Cexpression_elem_CExpressionArray(_Cexpression_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionArray));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionArray));
+ kc_x->post_create();
+ return static_cast<impl_Cexpression_elem_CExpressionArray*>(kc_x);
+ }
+
+ impl_CexpressionDQ*
+ NilCexpressionDQ() {
+ CexpressionDQ kc_x = new impl_CexpressionDQ();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NilCexpressionDQ));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NilCexpressionDQ));
+ kc_x->post_create();
+ return static_cast<impl_CexpressionDQ*>(kc_x);
+ }
+
+ impl_CexpressionDQ*
+ ConsCexpressionDQ(CexpressionDQ_elem _CexpressionDQ_elem_1, CexpressionDQ _CexpressionDQ_1) {
+ assertPhylum(_CexpressionDQ_elem_1, phylum_CexpressionDQ_elem);
+ assertPhylum(_CexpressionDQ_1, phylum_CexpressionDQ);
+ CexpressionDQ kc_x = new impl_CexpressionDQ(_CexpressionDQ_elem_1, _CexpressionDQ_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ConsCexpressionDQ));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ConsCexpressionDQ));
+ kc_x->post_create();
+ return static_cast<impl_CexpressionDQ*>(kc_x);
+ }
+
+ impl_CexpressionDQ_elem_CExpressionDQPart*
+ CExpressionDQPart(casestring _casestring_1) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ CexpressionDQ_elem kc_x = new impl_CexpressionDQ_elem_CExpressionDQPart(_casestring_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionDQPart));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionDQPart));
+ kc_x->post_create();
+ return static_cast<impl_CexpressionDQ_elem_CExpressionDQPart*>(kc_x);
+ }
+
+ impl_CexpressionDQ_elem_CExpressionDQNl*
+ CExpressionDQNl() {
+ CexpressionDQ_elem kc_x = new impl_CexpressionDQ_elem_CExpressionDQNl();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionDQNl));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionDQNl));
+ kc_x->post_create();
+ return static_cast<impl_CexpressionDQ_elem_CExpressionDQNl*>(kc_x);
+ }
+
+ impl_CexpressionSQ*
+ NilCexpressionSQ() {
+ CexpressionSQ kc_x = new impl_CexpressionSQ();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NilCexpressionSQ));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NilCexpressionSQ));
+ kc_x->post_create();
+ return static_cast<impl_CexpressionSQ*>(kc_x);
+ }
+
+ impl_CexpressionSQ*
+ ConsCexpressionSQ(CexpressionSQ_elem _CexpressionSQ_elem_1, CexpressionSQ _CexpressionSQ_1) {
+ assertPhylum(_CexpressionSQ_elem_1, phylum_CexpressionSQ_elem);
+ assertPhylum(_CexpressionSQ_1, phylum_CexpressionSQ);
+ CexpressionSQ kc_x = new impl_CexpressionSQ(_CexpressionSQ_elem_1, _CexpressionSQ_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ConsCexpressionSQ));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ConsCexpressionSQ));
+ kc_x->post_create();
+ return static_cast<impl_CexpressionSQ*>(kc_x);
+ }
+
+ impl_CexpressionSQ_elem_CExpressionSQPart*
+ CExpressionSQPart(casestring _casestring_1) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ CexpressionSQ_elem kc_x = new impl_CexpressionSQ_elem_CExpressionSQPart(_casestring_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionSQPart));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionSQPart));
+ kc_x->post_create();
+ return static_cast<impl_CexpressionSQ_elem_CExpressionSQPart*>(kc_x);
+ }
+
+ impl_CexpressionSQ_elem_CExpressionSQNl*
+ CExpressionSQNl() {
+ CexpressionSQ_elem kc_x = new impl_CexpressionSQ_elem_CExpressionSQNl();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionSQNl));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionSQNl));
+ kc_x->post_create();
+ return static_cast<impl_CexpressionSQ_elem_CExpressionSQNl*>(kc_x);
+ }
+
+ impl_idCexpressions*
+ NilidCexpressions() {
+ idCexpressions kc_x = new impl_idCexpressions();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NilidCexpressions));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NilidCexpressions));
+ kc_x->post_create();
+ return static_cast<impl_idCexpressions*>(kc_x);
+ }
+
+ impl_idCexpressions*
+ ConsidCexpressions(idCexpression _idCexpression_1, idCexpressions _idCexpressions_1) {
+ assertPhylum(_idCexpression_1, phylum_idCexpression);
+ assertPhylum(_idCexpressions_1, phylum_idCexpressions);
+ idCexpressions kc_x = new impl_idCexpressions(_idCexpression_1, _idCexpressions_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ConsidCexpressions));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ConsidCexpressions));
+ kc_x->post_create();
+ return static_cast<impl_idCexpressions*>(kc_x);
+ }
+
+ impl_idCexpression_IdCexpression*
+ IdCexpression(ID _ID_1, Cexpression _Cexpression_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_Cexpression_1, phylum_Cexpression);
+ idCexpression kc_x = new impl_idCexpression_IdCexpression(_ID_1, _Cexpression_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_IdCexpression));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_IdCexpression));
+ kc_x->post_create();
+ kc_x = kc_initialize_idCexpression(kc_x);
+ return static_cast<impl_idCexpression_IdCexpression*>(kc_x);
+ }
+
+ impl_Ctexts*
+ NilCtexts() {
+ Ctexts kc_x = new impl_Ctexts();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NilCtexts));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NilCtexts));
+ kc_x->post_create();
+ return static_cast<impl_Ctexts*>(kc_x);
+ }
+
+ impl_Ctexts*
+ ConsCtexts(Ctext _Ctext_1, Ctexts _Ctexts_1) {
+ assertPhylum(_Ctext_1, phylum_Ctext);
+ assertPhylum(_Ctexts_1, phylum_Ctexts);
+ Ctexts kc_x = new impl_Ctexts(_Ctext_1, _Ctexts_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ConsCtexts));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ConsCtexts));
+ kc_x->post_create();
+ return static_cast<impl_Ctexts*>(kc_x);
+ }
+
+ impl_includefiles*
+ Nilincludefiles() {
+ includefiles kc_x = new impl_includefiles();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilincludefiles));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilincludefiles));
+ kc_x->post_create();
+ return static_cast<impl_includefiles*>(kc_x);
+ }
+
+ impl_includefiles*
+ Consincludefiles(includefile _includefile_1, includefiles _includefiles_1) {
+ assertPhylum(_includefile_1, phylum_includefile);
+ assertPhylum(_includefiles_1, phylum_includefiles);
+ includefiles kc_x = new impl_includefiles(_includefile_1, _includefiles_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consincludefiles));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consincludefiles));
+ kc_x->post_create();
+ return static_cast<impl_includefiles*>(kc_x);
+ }
+
+ impl_includefile_IncludeFile*
+ IncludeFile(casestring _casestring_1) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ includefile kc_x=new impl_includefile_IncludeFile(_casestring_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_IncludeFile));
+ includefile unique_kc_x= hashtables[uniq]->ht_check_insert(kc_x);
+ if(unique_kc_x!=kc_x) {
+ delete kc_x;
+ kc_x=unique_kc_x;
+ } else {
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_IncludeFile));
+ kc_x->post_create();
+ kc_x = kc_initialize_includefile(kc_x);
+ }
+ return static_cast<impl_includefile_IncludeFile*>(kc_x);
+ }
+
+ impl_includedeclarations*
+ Nilincludedeclarations() {
+ includedeclarations kc_x = new impl_includedeclarations();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilincludedeclarations));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilincludedeclarations));
+ kc_x->post_create();
+ return static_cast<impl_includedeclarations*>(kc_x);
+ }
+
+ impl_includedeclarations*
+ Consincludedeclarations(includedeclaration _includedeclaration_1, includedeclarations _includedeclarations_1) {
+ assertPhylum(_includedeclaration_1, phylum_includedeclaration);
+ assertPhylum(_includedeclarations_1, phylum_includedeclarations);
+ includedeclarations kc_x = new impl_includedeclarations(_includedeclaration_1, _includedeclarations_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consincludedeclarations));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consincludedeclarations));
+ kc_x->post_create();
+ return static_cast<impl_includedeclarations*>(kc_x);
+ }
+
+ impl_includedeclaration_IncludeDeclaration*
+ IncludeDeclaration(casestring _casestring_1) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ includedeclaration kc_x = new impl_includedeclaration_IncludeDeclaration(_casestring_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_IncludeDeclaration));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_IncludeDeclaration));
+ kc_x->post_create();
+ kc_x = kc_initialize_includedeclaration(kc_x);
+ return static_cast<impl_includedeclaration_IncludeDeclaration*>(kc_x);
+ }
+
+ impl_rwdeclarations*
+ Nilrwdeclarations() {
+ rwdeclarations kc_x = new impl_rwdeclarations();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilrwdeclarations));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilrwdeclarations));
+ kc_x->post_create();
+ return static_cast<impl_rwdeclarations*>(kc_x);
+ }
+
+ impl_rwdeclarations*
+ Consrwdeclarations(rwdeclaration _rwdeclaration_1, rwdeclarations _rwdeclarations_1) {
+ assertPhylum(_rwdeclaration_1, phylum_rwdeclaration);
+ assertPhylum(_rwdeclarations_1, phylum_rwdeclarations);
+ rwdeclarations kc_x = new impl_rwdeclarations(_rwdeclaration_1, _rwdeclarations_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consrwdeclarations));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consrwdeclarations));
+ kc_x->post_create();
+ return static_cast<impl_rwdeclarations*>(kc_x);
+ }
+
+ impl_rwdeclaration_RwDeclaration*
+ RwDeclaration(outmostpatterns _outmostpatterns_1, rewriteclauses _rewriteclauses_1) {
+ assertPhylum(_outmostpatterns_1, phylum_outmostpatterns);
+ assertPhylum(_rewriteclauses_1, phylum_rewriteclauses);
+ rwdeclaration kc_x = new impl_rwdeclaration_RwDeclaration(_outmostpatterns_1, _rewriteclauses_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_RwDeclaration));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_RwDeclaration));
+ kc_x->post_create();
+ return static_cast<impl_rwdeclaration_RwDeclaration*>(kc_x);
+ }
+
+ impl_rewriteclauses*
+ Nilrewriteclauses() {
+ rewriteclauses kc_x = new impl_rewriteclauses();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilrewriteclauses));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilrewriteclauses));
+ kc_x->post_create();
+ return static_cast<impl_rewriteclauses*>(kc_x);
+ }
+
+ impl_rewriteclauses*
+ Consrewriteclauses(rewriteclause _rewriteclause_1, rewriteclauses _rewriteclauses_1) {
+ assertPhylum(_rewriteclause_1, phylum_rewriteclause);
+ assertPhylum(_rewriteclauses_1, phylum_rewriteclauses);
+ rewriteclauses kc_x = new impl_rewriteclauses(_rewriteclause_1, _rewriteclauses_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consrewriteclauses));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consrewriteclauses));
+ kc_x->post_create();
+ return static_cast<impl_rewriteclauses*>(kc_x);
+ }
+
+ impl_rewriteclause_RewriteClause*
+ RewriteClause(viewnames _viewnames_1, term _term_1) {
+ assertPhylum(_viewnames_1, phylum_viewnames);
+ assertPhylum(_term_1, phylum_term);
+ rewriteclause kc_x = new impl_rewriteclause_RewriteClause(_viewnames_1, _term_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_RewriteClause));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_RewriteClause));
+ kc_x->post_create();
+ return static_cast<impl_rewriteclause_RewriteClause*>(kc_x);
+ }
+
+ impl_patternchains*
+ Nilpatternchains() {
+ patternchains kc_x = new impl_patternchains();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilpatternchains));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilpatternchains));
+ kc_x->post_create();
+ kc_x = kc_initialize_patternchains(kc_x);
+ return static_cast<impl_patternchains*>(kc_x);
+ }
+
+ impl_patternchains*
+ Conspatternchains(patternchain _patternchain_1, patternchains _patternchains_1) {
+ assertPhylum(_patternchain_1, phylum_patternchain);
+ assertPhylum(_patternchains_1, phylum_patternchains);
+ patternchains kc_x = new impl_patternchains(_patternchain_1, _patternchains_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conspatternchains));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conspatternchains));
+ kc_x->post_create();
+ kc_x = kc_initialize_patternchains(kc_x);
+ return static_cast<impl_patternchains*>(kc_x);
+ }
+
+ impl_patternchain*
+ Nilpatternchain() {
+ patternchain kc_x = new impl_patternchain();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilpatternchain));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilpatternchain));
+ kc_x->post_create();
+ kc_x = kc_initialize_patternchain(kc_x);
+ return static_cast<impl_patternchain*>(kc_x);
+ }
+
+ impl_patternchain*
+ Conspatternchain(patternchainitem _patternchainitem_1, patternchain _patternchain_1) {
+ assertPhylum(_patternchainitem_1, phylum_patternchainitem);
+ assertPhylum(_patternchain_1, phylum_patternchain);
+ patternchain kc_x = new impl_patternchain(_patternchainitem_1, _patternchain_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conspatternchain));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conspatternchain));
+ kc_x->post_create();
+ kc_x = kc_initialize_patternchain(kc_x);
+ return static_cast<impl_patternchain*>(kc_x);
+ }
+
+ impl_outmostpatterns*
+ Niloutmostpatterns() {
+ outmostpatterns kc_x = new impl_outmostpatterns();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Niloutmostpatterns));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Niloutmostpatterns));
+ kc_x->post_create();
+ return static_cast<impl_outmostpatterns*>(kc_x);
+ }
+
+ impl_outmostpatterns*
+ Consoutmostpatterns(outmostpattern _outmostpattern_1, outmostpatterns _outmostpatterns_1) {
+ assertPhylum(_outmostpattern_1, phylum_outmostpattern);
+ assertPhylum(_outmostpatterns_1, phylum_outmostpatterns);
+ outmostpatterns kc_x = new impl_outmostpatterns(_outmostpattern_1, _outmostpatterns_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consoutmostpatterns));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consoutmostpatterns));
+ kc_x->post_create();
+ return static_cast<impl_outmostpatterns*>(kc_x);
+ }
+
+ impl_patternchainitem_PatternchainitemOutmost*
+ PatternchainitemOutmost(outmostpattern _outmostpattern_1) {
+ assertPhylum(_outmostpattern_1, phylum_outmostpattern);
+ patternchainitem kc_x = new impl_patternchainitem_PatternchainitemOutmost(_outmostpattern_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PatternchainitemOutmost));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PatternchainitemOutmost));
+ kc_x->post_create();
+ kc_x = kc_initialize_patternchainitem(kc_x);
+ return static_cast<impl_patternchainitem_PatternchainitemOutmost*>(kc_x);
+ }
+
+ impl_patternchainitem_PatternchainitemGroup*
+ PatternchainitemGroup(patternchains _patternchains_1) {
+ assertPhylum(_patternchains_1, phylum_patternchains);
+ patternchainitem kc_x = new impl_patternchainitem_PatternchainitemGroup(_patternchains_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PatternchainitemGroup));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PatternchainitemGroup));
+ kc_x->post_create();
+ kc_x = kc_initialize_patternchainitem(kc_x);
+ return static_cast<impl_patternchainitem_PatternchainitemGroup*>(kc_x);
+ }
+
+ impl_patternchainitem_PatternchainitemDollarid*
+ PatternchainitemDollarid(ID _ID_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ patternchainitem kc_x = new impl_patternchainitem_PatternchainitemDollarid(_ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PatternchainitemDollarid));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PatternchainitemDollarid));
+ kc_x->post_create();
+ kc_x = kc_initialize_patternchainitem(kc_x);
+ return static_cast<impl_patternchainitem_PatternchainitemDollarid*>(kc_x);
+ }
+
+ impl_outmostpattern_OPOperatorWildcard*
+ OPOperatorWildcard(ID _ID_1, Cexpression _Cexpression_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_Cexpression_1, phylum_Cexpression);
+ outmostpattern kc_x = new impl_outmostpattern_OPOperatorWildcard(_ID_1, _Cexpression_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_OPOperatorWildcard));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_OPOperatorWildcard));
+ kc_x->post_create();
+ kc_x = kc_initialize_outmostpattern(kc_x);
+ return static_cast<impl_outmostpattern_OPOperatorWildcard*>(kc_x);
+ }
+
+ impl_outmostpattern_OPOperator*
+ OPOperator(ID _ID_1, patterns _patterns_1, Cexpression _Cexpression_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_patterns_1, phylum_patterns);
+ assertPhylum(_Cexpression_1, phylum_Cexpression);
+ outmostpattern kc_x = new impl_outmostpattern_OPOperator(_ID_1, _patterns_1, _Cexpression_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_OPOperator));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_OPOperator));
+ kc_x->post_create();
+ kc_x = kc_initialize_outmostpattern(kc_x);
+ return static_cast<impl_outmostpattern_OPOperator*>(kc_x);
+ }
+
+ impl_outmostpattern_OPNonLeafVariable*
+ OPNonLeafVariable(ID _ID_1, outmostpattern _outmostpattern_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_outmostpattern_1, phylum_outmostpattern);
+ outmostpattern kc_x = new impl_outmostpattern_OPNonLeafVariable(_ID_1, _outmostpattern_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_OPNonLeafVariable));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_OPNonLeafVariable));
+ kc_x->post_create();
+ kc_x = kc_initialize_outmostpattern(kc_x);
+ return static_cast<impl_outmostpattern_OPNonLeafVariable*>(kc_x);
+ }
+
+ impl_outmostpattern_OPWildcard*
+ OPWildcard(Cexpression _Cexpression_1) {
+ assertPhylum(_Cexpression_1, phylum_Cexpression);
+ outmostpattern kc_x = new impl_outmostpattern_OPWildcard(_Cexpression_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_OPWildcard));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_OPWildcard));
+ kc_x->post_create();
+ kc_x = kc_initialize_outmostpattern(kc_x);
+ return static_cast<impl_outmostpattern_OPWildcard*>(kc_x);
+ }
+
+ impl_outmostpattern_OPDefault*
+ OPDefault(Cexpression _Cexpression_1) {
+ assertPhylum(_Cexpression_1, phylum_Cexpression);
+ outmostpattern kc_x = new impl_outmostpattern_OPDefault(_Cexpression_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_OPDefault));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_OPDefault));
+ kc_x->post_create();
+ kc_x = kc_initialize_outmostpattern(kc_x);
+ return static_cast<impl_outmostpattern_OPDefault*>(kc_x);
+ }
+
+ impl_pattern_PVariable*
+ PVariable(ID _ID_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ pattern kc_x = new impl_pattern_PVariable(_ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PVariable));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PVariable));
+ kc_x->post_create();
+ return static_cast<impl_pattern_PVariable*>(kc_x);
+ }
+
+ impl_pattern_POperator*
+ POperator(ID _ID_1, patterns _patterns_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_patterns_1, phylum_patterns);
+ pattern kc_x = new impl_pattern_POperator(_ID_1, _patterns_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_POperator));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_POperator));
+ kc_x->post_create();
+ return static_cast<impl_pattern_POperator*>(kc_x);
+ }
+
+ impl_pattern_PNonLeafVariable*
+ PNonLeafVariable(ID _ID_1, pattern _pattern_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_pattern_1, phylum_pattern);
+ pattern kc_x = new impl_pattern_PNonLeafVariable(_ID_1, _pattern_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PNonLeafVariable));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PNonLeafVariable));
+ kc_x->post_create();
+ return static_cast<impl_pattern_PNonLeafVariable*>(kc_x);
+ }
+
+ impl_pattern_PWildcard*
+ PWildcard() {
+ pattern kc_x = new impl_pattern_PWildcard();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PWildcard));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PWildcard));
+ kc_x->post_create();
+ return static_cast<impl_pattern_PWildcard*>(kc_x);
+ }
+
+ impl_pattern_PStringLiteral*
+ PStringLiteral(CexpressionDQ _CexpressionDQ_1) {
+ assertPhylum(_CexpressionDQ_1, phylum_CexpressionDQ);
+ pattern kc_x = new impl_pattern_PStringLiteral(_CexpressionDQ_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PStringLiteral));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PStringLiteral));
+ kc_x->post_create();
+ return static_cast<impl_pattern_PStringLiteral*>(kc_x);
+ }
+
+ impl_pattern_PIntLiteral*
+ PIntLiteral(INT _INT_1) {
+ assertPhylum(_INT_1, phylum_INT);
+ pattern kc_x = new impl_pattern_PIntLiteral(_INT_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PIntLiteral));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PIntLiteral));
+ kc_x->post_create();
+ return static_cast<impl_pattern_PIntLiteral*>(kc_x);
+ }
+
+ impl_patterns*
+ Nilpatterns() {
+ patterns kc_x = new impl_patterns();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilpatterns));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilpatterns));
+ kc_x->post_create();
+ return static_cast<impl_patterns*>(kc_x);
+ }
+
+ impl_patterns*
+ Conspatterns(pattern _pattern_1, patterns _patterns_1) {
+ assertPhylum(_pattern_1, phylum_pattern);
+ assertPhylum(_patterns_1, phylum_patterns);
+ patterns kc_x = new impl_patterns(_pattern_1, _patterns_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conspatterns));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conspatterns));
+ kc_x->post_create();
+ return static_cast<impl_patterns*>(kc_x);
+ }
+
+ impl_term_TVariable*
+ TVariable(ID _ID_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ term kc_x = new impl_term_TVariable(_ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TVariable));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TVariable));
+ kc_x->post_create();
+ kc_x = kc_initialize_term(kc_x);
+ return static_cast<impl_term_TVariable*>(kc_x);
+ }
+
+ impl_term_TOperator*
+ TOperator(ID _ID_1, terms _terms_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_terms_1, phylum_terms);
+ term kc_x = new impl_term_TOperator(_ID_1, _terms_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TOperator));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TOperator));
+ kc_x->post_create();
+ kc_x = kc_initialize_term(kc_x);
+ return static_cast<impl_term_TOperator*>(kc_x);
+ }
+
+ impl_term_TMethod*
+ TMethod(term _term_1, ID _ID_1, terms _terms_1) {
+ assertPhylum(_term_1, phylum_term);
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_terms_1, phylum_terms);
+ term kc_x = new impl_term_TMethod(_term_1, _ID_1, _terms_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TMethod));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TMethod));
+ kc_x->post_create();
+ kc_x = kc_initialize_term(kc_x);
+ return static_cast<impl_term_TMethod*>(kc_x);
+ }
+
+ impl_term_TMethodDot*
+ TMethodDot(term _term_1, ID _ID_1, terms _terms_1) {
+ assertPhylum(_term_1, phylum_term);
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_terms_1, phylum_terms);
+ term kc_x = new impl_term_TMethodDot(_term_1, _ID_1, _terms_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TMethodDot));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TMethodDot));
+ kc_x->post_create();
+ kc_x = kc_initialize_term(kc_x);
+ return static_cast<impl_term_TMethodDot*>(kc_x);
+ }
+
+ impl_term_TMemberVar*
+ TMemberVar(term _term_1, ID _ID_1) {
+ assertPhylum(_term_1, phylum_term);
+ assertPhylum(_ID_1, phylum_ID);
+ term kc_x = new impl_term_TMemberVar(_term_1, _ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TMemberVar));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TMemberVar));
+ kc_x->post_create();
+ kc_x = kc_initialize_term(kc_x);
+ return static_cast<impl_term_TMemberVar*>(kc_x);
+ }
+
+ impl_term_TMemberVarDot*
+ TMemberVarDot(term _term_1, ID _ID_1) {
+ assertPhylum(_term_1, phylum_term);
+ assertPhylum(_ID_1, phylum_ID);
+ term kc_x = new impl_term_TMemberVarDot(_term_1, _ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TMemberVarDot));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TMemberVarDot));
+ kc_x->post_create();
+ kc_x = kc_initialize_term(kc_x);
+ return static_cast<impl_term_TMemberVarDot*>(kc_x);
+ }
+
+ impl_term_TCTerm*
+ TCTerm(CexpressionSQ _CexpressionSQ_1) {
+ assertPhylum(_CexpressionSQ_1, phylum_CexpressionSQ);
+ term kc_x = new impl_term_TCTerm(_CexpressionSQ_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TCTerm));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TCTerm));
+ kc_x->post_create();
+ kc_x = kc_initialize_term(kc_x);
+ return static_cast<impl_term_TCTerm*>(kc_x);
+ }
+
+ impl_term_TStringLiteral*
+ TStringLiteral(CexpressionDQ _CexpressionDQ_1) {
+ assertPhylum(_CexpressionDQ_1, phylum_CexpressionDQ);
+ term kc_x = new impl_term_TStringLiteral(_CexpressionDQ_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TStringLiteral));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TStringLiteral));
+ kc_x->post_create();
+ kc_x = kc_initialize_term(kc_x);
+ return static_cast<impl_term_TStringLiteral*>(kc_x);
+ }
+
+ impl_term_TIntLiteral*
+ TIntLiteral(INT _INT_1) {
+ assertPhylum(_INT_1, phylum_INT);
+ term kc_x = new impl_term_TIntLiteral(_INT_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TIntLiteral));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TIntLiteral));
+ kc_x->post_create();
+ kc_x = kc_initialize_term(kc_x);
+ return static_cast<impl_term_TIntLiteral*>(kc_x);
+ }
+
+ impl_terms*
+ Nilterms() {
+ terms kc_x = new impl_terms();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilterms));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilterms));
+ kc_x->post_create();
+ return static_cast<impl_terms*>(kc_x);
+ }
+
+ impl_terms*
+ Consterms(term _term_1, terms _terms_1) {
+ assertPhylum(_term_1, phylum_term);
+ assertPhylum(_terms_1, phylum_terms);
+ terms kc_x = new impl_terms(_term_1, _terms_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consterms));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consterms));
+ kc_x->post_create();
+ return static_cast<impl_terms*>(kc_x);
+ }
+
+ impl_fnfiles*
+ Nilfnfiles() {
+ fnfiles kc_x = new impl_fnfiles();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilfnfiles));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilfnfiles));
+ kc_x->post_create();
+ return static_cast<impl_fnfiles*>(kc_x);
+ }
+
+ impl_fnfiles*
+ Consfnfiles(fnfile _fnfile_1, fnfiles _fnfiles_1) {
+ assertPhylum(_fnfile_1, phylum_fnfile);
+ assertPhylum(_fnfiles_1, phylum_fnfiles);
+ fnfiles kc_x = new impl_fnfiles(_fnfile_1, _fnfiles_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consfnfiles));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consfnfiles));
+ kc_x->post_create();
+ return static_cast<impl_fnfiles*>(kc_x);
+ }
+
+ impl_fnfile_FnFile*
+ FnFile(casestring _casestring_1) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ fnfile kc_x=new impl_fnfile_FnFile(_casestring_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_FnFile));
+ fnfile unique_kc_x= hashtables[uniq]->ht_check_insert(kc_x);
+ if(unique_kc_x!=kc_x) {
+ delete kc_x;
+ kc_x=unique_kc_x;
+ } else {
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_FnFile));
+ kc_x->post_create();
+ kc_x = kc_initialize_fnfile(kc_x);
+ }
+ return static_cast<impl_fnfile_FnFile*>(kc_x);
+ }
+
+ impl_fndeclarations*
+ Nilfndeclarations() {
+ fndeclarations kc_x = new impl_fndeclarations();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilfndeclarations));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilfndeclarations));
+ kc_x->post_create();
+ return static_cast<impl_fndeclarations*>(kc_x);
+ }
+
+ impl_fndeclarations*
+ Consfndeclarations(fndeclaration _fndeclaration_1, fndeclarations _fndeclarations_1) {
+ assertPhylum(_fndeclaration_1, phylum_fndeclaration);
+ assertPhylum(_fndeclarations_1, phylum_fndeclarations);
+ fndeclarations kc_x = new impl_fndeclarations(_fndeclaration_1, _fndeclarations_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consfndeclarations));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consfndeclarations));
+ kc_x->post_create();
+ return static_cast<impl_fndeclarations*>(kc_x);
+ }
+
+ impl_fndeclaration_FnAcDeclaration*
+ FnAcDeclaration(ac_declaration_specifiers _ac_declaration_specifiers_1, ac_declarator _ac_declarator_1, ac_declaration_list _ac_declaration_list_1, ac_opt_base_init_list _ac_opt_base_init_list_1, Ctext _Ctext_1, ID _ID_1, fnclass _fnclass_1) {
+ assertPhylum(_ac_declaration_specifiers_1, phylum_ac_declaration_specifiers);
+ assertPhylum(_ac_declarator_1, phylum_ac_declarator);
+ assertPhylum(_ac_declaration_list_1, phylum_ac_declaration_list);
+ assertPhylum(_ac_opt_base_init_list_1, phylum_ac_opt_base_init_list);
+ assertPhylum(_Ctext_1, phylum_Ctext);
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_fnclass_1, phylum_fnclass);
+ fndeclaration kc_x = new impl_fndeclaration_FnAcDeclaration(_ac_declaration_specifiers_1, _ac_declarator_1, _ac_declaration_list_1, _ac_opt_base_init_list_1, _Ctext_1, _ID_1, _fnclass_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_FnAcDeclaration));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_FnAcDeclaration));
+ kc_x->post_create();
+ kc_x = kc_initialize_fndeclaration(kc_x);
+ return static_cast<impl_fndeclaration_FnAcDeclaration*>(kc_x);
+ }
+
+ impl_fndeclaration_AcMemberDeclaration*
+ AcMemberDeclaration(ac_declaration_specifiers _ac_declaration_specifiers_1, ac_declarator _ac_declarator_1, ac_constant_expression_option _ac_constant_expression_option_1, fnclass _fnclass_1) {
+ assertPhylum(_ac_declaration_specifiers_1, phylum_ac_declaration_specifiers);
+ assertPhylum(_ac_declarator_1, phylum_ac_declarator);
+ assertPhylum(_ac_constant_expression_option_1, phylum_ac_constant_expression_option);
+ assertPhylum(_fnclass_1, phylum_fnclass);
+ fndeclaration kc_x = new impl_fndeclaration_AcMemberDeclaration(_ac_declaration_specifiers_1, _ac_declarator_1, _ac_constant_expression_option_1, _fnclass_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcMemberDeclaration));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcMemberDeclaration));
+ kc_x->post_create();
+ kc_x = kc_initialize_fndeclaration(kc_x);
+ return static_cast<impl_fndeclaration_AcMemberDeclaration*>(kc_x);
+ }
+
+ impl_fnclass_GlobalFn*
+ GlobalFn() {
+ fnclass kc_x = new impl_fnclass_GlobalFn();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_GlobalFn));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_GlobalFn));
+ kc_x->post_create();
+ return static_cast<impl_fnclass_GlobalFn*>(kc_x);
+ }
+
+ impl_fnclass_StaticFn*
+ StaticFn(casestring _casestring_1) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ fnclass kc_x = new impl_fnclass_StaticFn(_casestring_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_StaticFn));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_StaticFn));
+ kc_x->post_create();
+ return static_cast<impl_fnclass_StaticFn*>(kc_x);
+ }
+
+ impl_fnclass_MemberFn*
+ MemberFn() {
+ fnclass kc_x = new impl_fnclass_MemberFn();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_MemberFn));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_MemberFn));
+ kc_x->post_create();
+ return static_cast<impl_fnclass_MemberFn*>(kc_x);
+ }
+
+ impl_fnclass_ConstructorFn*
+ ConstructorFn() {
+ fnclass kc_x = new impl_fnclass_ConstructorFn();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ConstructorFn));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ConstructorFn));
+ kc_x->post_create();
+ return static_cast<impl_fnclass_ConstructorFn*>(kc_x);
+ }
+
+ impl_fnclass_DestructorFn*
+ DestructorFn() {
+ fnclass kc_x = new impl_fnclass_DestructorFn();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_DestructorFn));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_DestructorFn));
+ kc_x->post_create();
+ return static_cast<impl_fnclass_DestructorFn*>(kc_x);
+ }
+
+ impl_fnclass_ConvOperatorFn*
+ ConvOperatorFn() {
+ fnclass kc_x = new impl_fnclass_ConvOperatorFn();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ConvOperatorFn));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ConvOperatorFn));
+ kc_x->post_create();
+ return static_cast<impl_fnclass_ConvOperatorFn*>(kc_x);
+ }
+
+ impl_Ctext*
+ NilCtext() {
+ Ctext kc_x = new impl_Ctext();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NilCtext));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NilCtext));
+ kc_x->post_create();
+ kc_x = kc_initialize_Ctext(kc_x);
+ return static_cast<impl_Ctext*>(kc_x);
+ }
+
+ impl_Ctext*
+ ConsCtext(Ctext_elem _Ctext_elem_1, Ctext _Ctext_1) {
+ assertPhylum(_Ctext_elem_1, phylum_Ctext_elem);
+ assertPhylum(_Ctext_1, phylum_Ctext);
+ Ctext kc_x = new impl_Ctext(_Ctext_elem_1, _Ctext_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ConsCtext));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ConsCtext));
+ kc_x->post_create();
+ kc_x = kc_initialize_Ctext(kc_x);
+ return static_cast<impl_Ctext*>(kc_x);
+ }
+
+ impl_Ctext_elem_CTextLine*
+ CTextLine(casestring _casestring_1) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ Ctext_elem kc_x = new impl_Ctext_elem_CTextLine(_casestring_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CTextLine));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CTextLine));
+ kc_x->post_create();
+ kc_x = kc_initialize_Ctext_elem(kc_x);
+ return static_cast<impl_Ctext_elem_CTextLine*>(kc_x);
+ }
+
+ impl_Ctext_elem_CTextDollarVar*
+ CTextDollarVar(INT _INT_1) {
+ assertPhylum(_INT_1, phylum_INT);
+ Ctext_elem kc_x = new impl_Ctext_elem_CTextDollarVar(_INT_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CTextDollarVar));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CTextDollarVar));
+ kc_x->post_create();
+ kc_x = kc_initialize_Ctext_elem(kc_x);
+ return static_cast<impl_Ctext_elem_CTextDollarVar*>(kc_x);
+ }
+
+ impl_Ctext_elem_CTextNl*
+ CTextNl(integer _integer_1) {
+ assertPhylum(_integer_1, phylum_integer);
+ Ctext_elem kc_x = new impl_Ctext_elem_CTextNl(_integer_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CTextNl));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CTextNl));
+ kc_x->post_create();
+ kc_x = kc_initialize_Ctext_elem(kc_x);
+ return static_cast<impl_Ctext_elem_CTextNl*>(kc_x);
+ }
+
+ impl_Ctext_elem_CTextCexpressionDQ*
+ CTextCexpressionDQ(CexpressionDQ _CexpressionDQ_1) {
+ assertPhylum(_CexpressionDQ_1, phylum_CexpressionDQ);
+ Ctext_elem kc_x = new impl_Ctext_elem_CTextCexpressionDQ(_CexpressionDQ_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CTextCexpressionDQ));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CTextCexpressionDQ));
+ kc_x->post_create();
+ kc_x = kc_initialize_Ctext_elem(kc_x);
+ return static_cast<impl_Ctext_elem_CTextCexpressionDQ*>(kc_x);
+ }
+
+ impl_Ctext_elem_CTextCexpressionSQ*
+ CTextCexpressionSQ(CexpressionSQ _CexpressionSQ_1) {
+ assertPhylum(_CexpressionSQ_1, phylum_CexpressionSQ);
+ Ctext_elem kc_x = new impl_Ctext_elem_CTextCexpressionSQ(_CexpressionSQ_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CTextCexpressionSQ));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CTextCexpressionSQ));
+ kc_x->post_create();
+ kc_x = kc_initialize_Ctext_elem(kc_x);
+ return static_cast<impl_Ctext_elem_CTextCexpressionSQ*>(kc_x);
+ }
+
+ impl_Ctext_elem_CTextCbody*
+ CTextCbody(Ctext _Ctext_1) {
+ assertPhylum(_Ctext_1, phylum_Ctext);
+ Ctext_elem kc_x = new impl_Ctext_elem_CTextCbody(_Ctext_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CTextCbody));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CTextCbody));
+ kc_x->post_create();
+ kc_x = kc_initialize_Ctext_elem(kc_x);
+ return static_cast<impl_Ctext_elem_CTextCbody*>(kc_x);
+ }
+
+ impl_Ctext_elem_CTextForeachexpression*
+ CTextForeachexpression(patternchain _patternchain_1, idCexpressions _idCexpressions_1, withexpressions _withexpressions_1, Ctext _Ctext_1, foreach_after _foreach_after_1) {
+ assertPhylum(_patternchain_1, phylum_patternchain);
+ assertPhylum(_idCexpressions_1, phylum_idCexpressions);
+ assertPhylum(_withexpressions_1, phylum_withexpressions);
+ assertPhylum(_Ctext_1, phylum_Ctext);
+ assertPhylum(_foreach_after_1, phylum_foreach_after);
+ Ctext_elem kc_x = new impl_Ctext_elem_CTextForeachexpression(_patternchain_1, _idCexpressions_1, _withexpressions_1, _Ctext_1, _foreach_after_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CTextForeachexpression));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CTextForeachexpression));
+ kc_x->post_create();
+ kc_x = kc_initialize_Ctext_elem(kc_x);
+ return static_cast<impl_Ctext_elem_CTextForeachexpression*>(kc_x);
+ }
+
+ impl_Ctext_elem_CTextWithexpression*
+ CTextWithexpression(withexpressions _withexpressions_1, withcases _withcases_1, contextinfo _contextinfo_1) {
+ assertPhylum(_withexpressions_1, phylum_withexpressions);
+ assertPhylum(_withcases_1, phylum_withcases);
+ assertPhylum(_contextinfo_1, phylum_contextinfo);
+ Ctext_elem kc_x = new impl_Ctext_elem_CTextWithexpression(_withexpressions_1, _withcases_1, _contextinfo_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CTextWithexpression));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CTextWithexpression));
+ kc_x->post_create();
+ kc_x = kc_initialize_Ctext_elem(kc_x);
+ return static_cast<impl_Ctext_elem_CTextWithexpression*>(kc_x);
+ }
+
+ impl_foreach_after_NoForeachAfter*
+ NoForeachAfter() {
+ foreach_after kc_x = new impl_foreach_after_NoForeachAfter();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NoForeachAfter));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NoForeachAfter));
+ kc_x->post_create();
+ kc_x = kc_initialize_foreach_after(kc_x);
+ return static_cast<impl_foreach_after_NoForeachAfter*>(kc_x);
+ }
+
+ impl_foreach_after_ForeachAfter*
+ ForeachAfter(patternchain _patternchain_1, idCexpressions _idCexpressions_1, withexpressions _withexpressions_1, Ctext _Ctext_1) {
+ assertPhylum(_patternchain_1, phylum_patternchain);
+ assertPhylum(_idCexpressions_1, phylum_idCexpressions);
+ assertPhylum(_withexpressions_1, phylum_withexpressions);
+ assertPhylum(_Ctext_1, phylum_Ctext);
+ foreach_after kc_x = new impl_foreach_after_ForeachAfter(_patternchain_1, _idCexpressions_1, _withexpressions_1, _Ctext_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ForeachAfter));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ForeachAfter));
+ kc_x->post_create();
+ kc_x = kc_initialize_foreach_after(kc_x);
+ return static_cast<impl_foreach_after_ForeachAfter*>(kc_x);
+ }
+
+ impl_contextinfo_InForeachContext*
+ InForeachContext(patternchain _patternchain_1) {
+ assertPhylum(_patternchain_1, phylum_patternchain);
+ contextinfo kc_x = new impl_contextinfo_InForeachContext(_patternchain_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_InForeachContext));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_InForeachContext));
+ kc_x->post_create();
+ return static_cast<impl_contextinfo_InForeachContext*>(kc_x);
+ }
+
+ impl_contextinfo_NotInForeachContext*
+ NotInForeachContext() {
+ contextinfo kc_x = new impl_contextinfo_NotInForeachContext();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NotInForeachContext));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NotInForeachContext));
+ kc_x->post_create();
+ return static_cast<impl_contextinfo_NotInForeachContext*>(kc_x);
+ }
+
+ impl_withexpressions*
+ Nilwithexpressions() {
+ withexpressions kc_x = new impl_withexpressions();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilwithexpressions));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilwithexpressions));
+ kc_x->post_create();
+ kc_x = kc_initialize_withexpressions(kc_x);
+ return static_cast<impl_withexpressions*>(kc_x);
+ }
+
+ impl_withexpressions*
+ Conswithexpressions(withexpression _withexpression_1, withexpressions _withexpressions_1) {
+ assertPhylum(_withexpression_1, phylum_withexpression);
+ assertPhylum(_withexpressions_1, phylum_withexpressions);
+ withexpressions kc_x = new impl_withexpressions(_withexpression_1, _withexpressions_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conswithexpressions));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conswithexpressions));
+ kc_x->post_create();
+ kc_x = kc_initialize_withexpressions(kc_x);
+ return static_cast<impl_withexpressions*>(kc_x);
+ }
+
+ impl_withexpression_WEVariable*
+ WEVariable(ID _ID_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ withexpression kc_x = new impl_withexpression_WEVariable(_ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_WEVariable));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_WEVariable));
+ kc_x->post_create();
+ kc_x = kc_initialize_withexpression(kc_x);
+ return static_cast<impl_withexpression_WEVariable*>(kc_x);
+ }
+
+ impl_withexpression_WECexpression*
+ WECexpression(Cexpression _Cexpression_1) {
+ assertPhylum(_Cexpression_1, phylum_Cexpression);
+ withexpression kc_x = new impl_withexpression_WECexpression(_Cexpression_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_WECexpression));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_WECexpression));
+ kc_x->post_create();
+ kc_x = kc_initialize_withexpression(kc_x);
+ return static_cast<impl_withexpression_WECexpression*>(kc_x);
+ }
+
+ impl_withcases*
+ Nilwithcases() {
+ withcases kc_x = new impl_withcases();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilwithcases));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilwithcases));
+ kc_x->post_create();
+ return static_cast<impl_withcases*>(kc_x);
+ }
+
+ impl_withcases*
+ Conswithcases(withcase _withcase_1, withcases _withcases_1) {
+ assertPhylum(_withcase_1, phylum_withcase);
+ assertPhylum(_withcases_1, phylum_withcases);
+ withcases kc_x = new impl_withcases(_withcase_1, _withcases_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conswithcases));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conswithcases));
+ kc_x->post_create();
+ return static_cast<impl_withcases*>(kc_x);
+ }
+
+ impl_withcase_Withcase*
+ Withcase(patternchains _patternchains_1, Ctext _Ctext_1) {
+ assertPhylum(_patternchains_1, phylum_patternchains);
+ assertPhylum(_Ctext_1, phylum_Ctext);
+ withcase kc_x = new impl_withcase_Withcase(_patternchains_1, _Ctext_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Withcase));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Withcase));
+ kc_x->post_create();
+ return static_cast<impl_withcase_Withcase*>(kc_x);
+ }
+
+ impl_unparsedeclarations*
+ Nilunparsedeclarations() {
+ unparsedeclarations kc_x = new impl_unparsedeclarations();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilunparsedeclarations));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilunparsedeclarations));
+ kc_x->post_create();
+ return static_cast<impl_unparsedeclarations*>(kc_x);
+ }
+
+ impl_unparsedeclarations*
+ Consunparsedeclarations(unparsedeclaration _unparsedeclaration_1, unparsedeclarations _unparsedeclarations_1) {
+ assertPhylum(_unparsedeclaration_1, phylum_unparsedeclaration);
+ assertPhylum(_unparsedeclarations_1, phylum_unparsedeclarations);
+ unparsedeclarations kc_x = new impl_unparsedeclarations(_unparsedeclaration_1, _unparsedeclarations_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consunparsedeclarations));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consunparsedeclarations));
+ kc_x->post_create();
+ return static_cast<impl_unparsedeclarations*>(kc_x);
+ }
+
+ impl_unparsedeclaration_UnparseDeclaration*
+ UnparseDeclaration(outmostpatterns _outmostpatterns_1, unparseclauses _unparseclauses_1) {
+ assertPhylum(_outmostpatterns_1, phylum_outmostpatterns);
+ assertPhylum(_unparseclauses_1, phylum_unparseclauses);
+ unparsedeclaration kc_x = new impl_unparsedeclaration_UnparseDeclaration(_outmostpatterns_1, _unparseclauses_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnparseDeclaration));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnparseDeclaration));
+ kc_x->post_create();
+ return static_cast<impl_unparsedeclaration_UnparseDeclaration*>(kc_x);
+ }
+
+ impl_unparseclauses*
+ Nilunparseclauses() {
+ unparseclauses kc_x = new impl_unparseclauses();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilunparseclauses));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilunparseclauses));
+ kc_x->post_create();
+ return static_cast<impl_unparseclauses*>(kc_x);
+ }
+
+ impl_unparseclauses*
+ Consunparseclauses(unparseclause _unparseclause_1, unparseclauses _unparseclauses_1) {
+ assertPhylum(_unparseclause_1, phylum_unparseclause);
+ assertPhylum(_unparseclauses_1, phylum_unparseclauses);
+ unparseclauses kc_x = new impl_unparseclauses(_unparseclause_1, _unparseclauses_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consunparseclauses));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consunparseclauses));
+ kc_x->post_create();
+ return static_cast<impl_unparseclauses*>(kc_x);
+ }
+
+ impl_unparseclause_UnparseClause*
+ UnparseClause(viewnames _viewnames_1, unparseitems _unparseitems_1) {
+ assertPhylum(_viewnames_1, phylum_viewnames);
+ assertPhylum(_unparseitems_1, phylum_unparseitems);
+ unparseclause kc_x = new impl_unparseclause_UnparseClause(_viewnames_1, _unparseitems_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnparseClause));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnparseClause));
+ kc_x->post_create();
+ return static_cast<impl_unparseclause_UnparseClause*>(kc_x);
+ }
+
+ impl_viewnames*
+ Nilviewnames() {
+ viewnames kc_x = new impl_viewnames();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilviewnames));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilviewnames));
+ kc_x->post_create();
+ kc_x = kc_initialize_viewnames(kc_x);
+ return static_cast<impl_viewnames*>(kc_x);
+ }
+
+ impl_viewnames*
+ Consviewnames(ID _ID_1, viewnames _viewnames_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_viewnames_1, phylum_viewnames);
+ viewnames kc_x = new impl_viewnames(_ID_1, _viewnames_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consviewnames));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consviewnames));
+ kc_x->post_create();
+ kc_x = kc_initialize_viewnames(kc_x);
+ return static_cast<impl_viewnames*>(kc_x);
+ }
+
+ impl_unparseitems*
+ Nilunparseitems() {
+ unparseitems kc_x = new impl_unparseitems();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilunparseitems));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilunparseitems));
+ kc_x->post_create();
+ return static_cast<impl_unparseitems*>(kc_x);
+ }
+
+ impl_unparseitems*
+ Consunparseitems(unparseitem _unparseitem_1, unparseitems _unparseitems_1) {
+ assertPhylum(_unparseitem_1, phylum_unparseitem);
+ assertPhylum(_unparseitems_1, phylum_unparseitems);
+ unparseitems kc_x = new impl_unparseitems(_unparseitem_1, _unparseitems_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consunparseitems));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consunparseitems));
+ kc_x->post_create();
+ return static_cast<impl_unparseitems*>(kc_x);
+ }
+
+ impl_unparseitem_UnpStr*
+ UnpStr(languageoption _languageoption_1, CexpressionDQ _CexpressionDQ_1, viewnameoption _viewnameoption_1) {
+ assertPhylum(_languageoption_1, phylum_languageoption);
+ assertPhylum(_CexpressionDQ_1, phylum_CexpressionDQ);
+ assertPhylum(_viewnameoption_1, phylum_viewnameoption);
+ unparseitem kc_x = new impl_unparseitem_UnpStr(_languageoption_1, _CexpressionDQ_1, _viewnameoption_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnpStr));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnpStr));
+ kc_x->post_create();
+ kc_x = kc_initialize_unparseitem(kc_x);
+ return static_cast<impl_unparseitem_UnpStr*>(kc_x);
+ }
+
+ impl_unparseitem_UnpSubexpr*
+ UnpSubexpr(languageoption _languageoption_1, unpsubterm _unpsubterm_1, viewnameoption _viewnameoption_1) {
+ assertPhylum(_languageoption_1, phylum_languageoption);
+ assertPhylum(_unpsubterm_1, phylum_unpsubterm);
+ assertPhylum(_viewnameoption_1, phylum_viewnameoption);
+ unparseitem kc_x = new impl_unparseitem_UnpSubexpr(_languageoption_1, _unpsubterm_1, _viewnameoption_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnpSubexpr));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnpSubexpr));
+ kc_x->post_create();
+ kc_x = kc_initialize_unparseitem(kc_x);
+ return static_cast<impl_unparseitem_UnpSubexpr*>(kc_x);
+ }
+
+ impl_unparseitem_UnpCtext*
+ UnpCtext(languageoption _languageoption_1, Ctext _Ctext_1) {
+ assertPhylum(_languageoption_1, phylum_languageoption);
+ assertPhylum(_Ctext_1, phylum_Ctext);
+ unparseitem kc_x = new impl_unparseitem_UnpCtext(_languageoption_1, _Ctext_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnpCtext));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnpCtext));
+ kc_x->post_create();
+ kc_x = kc_initialize_unparseitem(kc_x);
+ return static_cast<impl_unparseitem_UnpCtext*>(kc_x);
+ }
+
+ impl_unparseitem_UnpBody*
+ UnpBody(languageoption _languageoption_1, unparseitems _unparseitems_1) {
+ assertPhylum(_languageoption_1, phylum_languageoption);
+ assertPhylum(_unparseitems_1, phylum_unparseitems);
+ unparseitem kc_x = new impl_unparseitem_UnpBody(_languageoption_1, _unparseitems_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnpBody));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnpBody));
+ kc_x->post_create();
+ kc_x = kc_initialize_unparseitem(kc_x);
+ return static_cast<impl_unparseitem_UnpBody*>(kc_x);
+ }
+
+ impl_unparseitem_UViewVarDecl*
+ UViewVarDecl(ID _ID_1, ID _ID_2, Cexpression _Cexpression_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_ID_2, phylum_ID);
+ assertPhylum(_Cexpression_1, phylum_Cexpression);
+ unparseitem kc_x = new impl_unparseitem_UViewVarDecl(_ID_1, _ID_2, _Cexpression_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UViewVarDecl));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UViewVarDecl));
+ kc_x->post_create();
+ kc_x = kc_initialize_unparseitem(kc_x);
+ return static_cast<impl_unparseitem_UViewVarDecl*>(kc_x);
+ }
+
+ impl_unpsubterm_UnpSubTerm*
+ UnpSubTerm(ID _ID_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ unpsubterm kc_x = new impl_unpsubterm_UnpSubTerm(_ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnpSubTerm));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnpSubTerm));
+ kc_x->post_create();
+ return static_cast<impl_unpsubterm_UnpSubTerm*>(kc_x);
+ }
+
+ impl_unpsubterm_UnpDollarvarTerm*
+ UnpDollarvarTerm(INT _INT_1) {
+ assertPhylum(_INT_1, phylum_INT);
+ unpsubterm kc_x = new impl_unpsubterm_UnpDollarvarTerm(_INT_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnpDollarvarTerm));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnpDollarvarTerm));
+ kc_x->post_create();
+ return static_cast<impl_unpsubterm_UnpDollarvarTerm*>(kc_x);
+ }
+
+ impl_unpsubterm_UnpSubAttr*
+ UnpSubAttr(ID _ID_1, unpattributes _unpattributes_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_unpattributes_1, phylum_unpattributes);
+ unpsubterm kc_x = new impl_unpsubterm_UnpSubAttr(_ID_1, _unpattributes_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnpSubAttr));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnpSubAttr));
+ kc_x->post_create();
+ return static_cast<impl_unpsubterm_UnpSubAttr*>(kc_x);
+ }
+
+ impl_unpsubterm_UnpDollarvarAttr*
+ UnpDollarvarAttr(INT _INT_1, unpattributes _unpattributes_1) {
+ assertPhylum(_INT_1, phylum_INT);
+ assertPhylum(_unpattributes_1, phylum_unpattributes);
+ unpsubterm kc_x = new impl_unpsubterm_UnpDollarvarAttr(_INT_1, _unpattributes_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnpDollarvarAttr));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnpDollarvarAttr));
+ kc_x->post_create();
+ return static_cast<impl_unpsubterm_UnpDollarvarAttr*>(kc_x);
+ }
+
+ impl_unpsubterm_UnpCastedVariable*
+ UnpCastedVariable(ID _ID_1, ID _ID_2) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_ID_2, phylum_ID);
+ unpsubterm kc_x = new impl_unpsubterm_UnpCastedVariable(_ID_1, _ID_2);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnpCastedVariable));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnpCastedVariable));
+ kc_x->post_create();
+ return static_cast<impl_unpsubterm_UnpCastedVariable*>(kc_x);
+ }
+
+ impl_unpattributes*
+ Nilunpattributes() {
+ unpattributes kc_x = new impl_unpattributes();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilunpattributes));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilunpattributes));
+ kc_x->post_create();
+ return static_cast<impl_unpattributes*>(kc_x);
+ }
+
+ impl_unpattributes*
+ Consunpattributes(ID _ID_1, unpattributes _unpattributes_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_unpattributes_1, phylum_unpattributes);
+ unpattributes kc_x = new impl_unpattributes(_ID_1, _unpattributes_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consunpattributes));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consunpattributes));
+ kc_x->post_create();
+ return static_cast<impl_unpattributes*>(kc_x);
+ }
+
+ impl_viewnameoption_NoViewname*
+ NoViewname() {
+ viewnameoption kc_x = new impl_viewnameoption_NoViewname();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NoViewname));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NoViewname));
+ kc_x->post_create();
+ return static_cast<impl_viewnameoption_NoViewname*>(kc_x);
+ }
+
+ impl_viewnameoption_YesViewname*
+ YesViewname(ID _ID_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ viewnameoption kc_x = new impl_viewnameoption_YesViewname(_ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_YesViewname));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_YesViewname));
+ kc_x->post_create();
+ return static_cast<impl_viewnameoption_YesViewname*>(kc_x);
+ }
+
+ impl_languageoption_NoLanguagename*
+ NoLanguagename() {
+ languageoption kc_x = new impl_languageoption_NoLanguagename();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NoLanguagename));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NoLanguagename));
+ kc_x->post_create();
+ return static_cast<impl_languageoption_NoLanguagename*>(kc_x);
+ }
+
+ impl_languageoption_LanguageList*
+ LanguageList(languagenames _languagenames_1) {
+ assertPhylum(_languagenames_1, phylum_languagenames);
+ languageoption kc_x = new impl_languageoption_LanguageList(_languagenames_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_LanguageList));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_LanguageList));
+ kc_x->post_create();
+ return static_cast<impl_languageoption_LanguageList*>(kc_x);
+ }
+
+ impl_languagenames*
+ Nillanguagenames() {
+ languagenames kc_x = new impl_languagenames();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nillanguagenames));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nillanguagenames));
+ kc_x->post_create();
+ return static_cast<impl_languagenames*>(kc_x);
+ }
+
+ impl_languagenames*
+ Conslanguagenames(ID _ID_1, languagenames _languagenames_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_languagenames_1, phylum_languagenames);
+ languagenames kc_x = new impl_languagenames(_ID_1, _languagenames_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conslanguagenames));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conslanguagenames));
+ kc_x->post_create();
+ return static_cast<impl_languagenames*>(kc_x);
+ }
+
+ impl_fileline_FileLine*
+ FileLine(casestring _file, int _line) {
+ fileline kc_x = new impl_fileline_FileLine(_file, _line);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_FileLine));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_FileLine));
+ kc_x->post_create();
+ return static_cast<impl_fileline_FileLine*>(kc_x);
+ }
+
+ impl_fileline_NoFileLine*
+ NoFileLine() {
+ fileline kc_x = new impl_fileline_NoFileLine();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NoFileLine));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NoFileLine));
+ kc_x->post_create();
+ return static_cast<impl_fileline_NoFileLine*>(kc_x);
+ }
+
+ impl_fileline_PosNoFileLine*
+ PosNoFileLine() {
+ fileline kc_x = new impl_fileline_PosNoFileLine();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PosNoFileLine));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PosNoFileLine));
+ kc_x->post_create();
+ return static_cast<impl_fileline_PosNoFileLine*>(kc_x);
+ }
+
+ impl_scopetypefilelinestack*
+ Nilscopetypefilelinestack() {
+ scopetypefilelinestack kc_x = new impl_scopetypefilelinestack();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilscopetypefilelinestack));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilscopetypefilelinestack));
+ kc_x->post_create();
+ return static_cast<impl_scopetypefilelinestack*>(kc_x);
+ }
+
+ impl_scopetypefilelinestack*
+ Consscopetypefilelinestack(scopetypefileline _scopetypefileline_1, scopetypefilelinestack _scopetypefilelinestack_1) {
+ assertPhylum(_scopetypefileline_1, phylum_scopetypefileline);
+ assertPhylum(_scopetypefilelinestack_1, phylum_scopetypefilelinestack);
+ scopetypefilelinestack kc_x = new impl_scopetypefilelinestack(_scopetypefileline_1, _scopetypefilelinestack_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consscopetypefilelinestack));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consscopetypefilelinestack));
+ kc_x->post_create();
+ return static_cast<impl_scopetypefilelinestack*>(kc_x);
+ }
+
+ impl_scopetypefileline_ScopeTypeFileLine*
+ ScopeTypeFileLine(integer _integer_1, IDtype _IDtype_1, casestring _casestring_1, integer _integer_2) {
+ assertPhylum(_integer_1, phylum_integer);
+ assertPhylum(_IDtype_1, phylum_IDtype);
+ assertPhylum(_casestring_1, phylum_casestring);
+ assertPhylum(_integer_2, phylum_integer);
+ scopetypefileline kc_x = new impl_scopetypefileline_ScopeTypeFileLine(_integer_1, _IDtype_1, _casestring_1, _integer_2);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ScopeTypeFileLine));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ScopeTypeFileLine));
+ kc_x->post_create();
+ return static_cast<impl_scopetypefileline_ScopeTypeFileLine*>(kc_x);
+ }
+
+ impl_IDtype_ITUnknown*
+ ITUnknown() {
+ IDtype kc_x = new impl_IDtype_ITUnknown();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITUnknown));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITUnknown));
+ kc_x->post_create();
+ return static_cast<impl_IDtype_ITUnknown*>(kc_x);
+ }
+
+ impl_IDtype_ITPredefinedPhylum*
+ ITPredefinedPhylum(phylumdeclaration _phylumdeclaration_1) {
+ assertPhylum(_phylumdeclaration_1, phylum_phylumdeclaration);
+ IDtype kc_x = new impl_IDtype_ITPredefinedPhylum(_phylumdeclaration_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITPredefinedPhylum));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITPredefinedPhylum));
+ kc_x->post_create();
+ return static_cast<impl_IDtype_ITPredefinedPhylum*>(kc_x);
+ }
+
+ impl_IDtype_ITUserPhylum*
+ ITUserPhylum(phylumdeclaration _phylumdeclaration_1) {
+ assertPhylum(_phylumdeclaration_1, phylum_phylumdeclaration);
+ IDtype kc_x = new impl_IDtype_ITUserPhylum(_phylumdeclaration_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITUserPhylum));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITUserPhylum));
+ kc_x->post_create();
+ return static_cast<impl_IDtype_ITUserPhylum*>(kc_x);
+ }
+
+ impl_IDtype_ITPredefinedOperator*
+ ITPredefinedOperator(alternative _alternative_1, ID _ID_1) {
+ assertPhylum(_alternative_1, phylum_alternative);
+ assertPhylum(_ID_1, phylum_ID);
+ IDtype kc_x = new impl_IDtype_ITPredefinedOperator(_alternative_1, _ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITPredefinedOperator));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITPredefinedOperator));
+ kc_x->post_create();
+ return static_cast<impl_IDtype_ITPredefinedOperator*>(kc_x);
+ }
+
+ impl_IDtype_ITUserOperator*
+ ITUserOperator(alternative _alternative_1, ID _ID_1) {
+ assertPhylum(_alternative_1, phylum_alternative);
+ assertPhylum(_ID_1, phylum_ID);
+ IDtype kc_x = new impl_IDtype_ITUserOperator(_alternative_1, _ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITUserOperator));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITUserOperator));
+ kc_x->post_create();
+ return static_cast<impl_IDtype_ITUserOperator*>(kc_x);
+ }
+
+ impl_IDtype_ITPredefinedStorageClass*
+ ITPredefinedStorageClass() {
+ IDtype kc_x = new impl_IDtype_ITPredefinedStorageClass();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITPredefinedStorageClass));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITPredefinedStorageClass));
+ kc_x->post_create();
+ return static_cast<impl_IDtype_ITPredefinedStorageClass*>(kc_x);
+ }
+
+ impl_IDtype_ITStorageClass*
+ ITStorageClass() {
+ IDtype kc_x = new impl_IDtype_ITStorageClass();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITStorageClass));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITStorageClass));
+ kc_x->post_create();
+ return static_cast<impl_IDtype_ITStorageClass*>(kc_x);
+ }
+
+ impl_IDtype_ITPredefinedUView*
+ ITPredefinedUView() {
+ IDtype kc_x = new impl_IDtype_ITPredefinedUView();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITPredefinedUView));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITPredefinedUView));
+ kc_x->post_create();
+ return static_cast<impl_IDtype_ITPredefinedUView*>(kc_x);
+ }
+
+ impl_IDtype_ITUserUView*
+ ITUserUView() {
+ IDtype kc_x = new impl_IDtype_ITUserUView();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITUserUView));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITUserUView));
+ kc_x->post_create();
+ return static_cast<impl_IDtype_ITUserUView*>(kc_x);
+ }
+
+ impl_IDtype_ITUViewVar*
+ ITUViewVar() {
+ IDtype kc_x = new impl_IDtype_ITUViewVar();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITUViewVar));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITUViewVar));
+ kc_x->post_create();
+ return static_cast<impl_IDtype_ITUViewVar*>(kc_x);
+ }
+
+ impl_IDtype_ITPredefinedRView*
+ ITPredefinedRView() {
+ IDtype kc_x = new impl_IDtype_ITPredefinedRView();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITPredefinedRView));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITPredefinedRView));
+ kc_x->post_create();
+ return static_cast<impl_IDtype_ITPredefinedRView*>(kc_x);
+ }
+
+ impl_IDtype_ITUserRView*
+ ITUserRView() {
+ IDtype kc_x = new impl_IDtype_ITUserRView();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITUserRView));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITUserRView));
+ kc_x->post_create();
+ return static_cast<impl_IDtype_ITUserRView*>(kc_x);
+ }
+
+ impl_IDtype_ITUserFunction*
+ ITUserFunction(fnclass _fnclass_1) {
+ assertPhylum(_fnclass_1, phylum_fnclass);
+ IDtype kc_x = new impl_IDtype_ITUserFunction(_fnclass_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITUserFunction));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITUserFunction));
+ kc_x->post_create();
+ return static_cast<impl_IDtype_ITUserFunction*>(kc_x);
+ }
+
+ impl_IDtype_ITPatternVariable*
+ ITPatternVariable(ID _ID_1, integer _integer_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_integer_1, phylum_integer);
+ IDtype kc_x = new impl_IDtype_ITPatternVariable(_ID_1, _integer_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITPatternVariable));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITPatternVariable));
+ kc_x->post_create();
+ return static_cast<impl_IDtype_ITPatternVariable*>(kc_x);
+ }
+
+ impl_IDtype_ITLanguageName*
+ ITLanguageName(integer _integer_1) {
+ assertPhylum(_integer_1, phylum_integer);
+ IDtype kc_x = new impl_IDtype_ITLanguageName(_integer_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITLanguageName));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITLanguageName));
+ kc_x->post_create();
+ return static_cast<impl_IDtype_ITLanguageName*>(kc_x);
+ }
+
+ impl_operators*
+ Niloperators() {
+ operators kc_x = new impl_operators();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Niloperators));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Niloperators));
+ kc_x->post_create();
+ return static_cast<impl_operators*>(kc_x);
+ }
+
+ impl_operators*
+ Consoperators(ID _ID_1, operators _operators_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_operators_1, phylum_operators);
+ operators kc_x = new impl_operators(_ID_1, _operators_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consoperators));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consoperators));
+ kc_x->post_create();
+ return static_cast<impl_operators*>(kc_x);
+ }
+
+ impl_phyla*
+ Nilphyla() {
+ phyla kc_x = new impl_phyla();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilphyla));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilphyla));
+ kc_x->post_create();
+ return static_cast<impl_phyla*>(kc_x);
+ }
+
+ impl_phyla*
+ Consphyla(ID _ID_1, phyla _phyla_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_phyla_1, phylum_phyla);
+ phyla kc_x = new impl_phyla(_ID_1, _phyla_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consphyla));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consphyla));
+ kc_x->post_create();
+ return static_cast<impl_phyla*>(kc_x);
+ }
+
+ impl_variables*
+ Nilvariables() {
+ variables kc_x = new impl_variables();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilvariables));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilvariables));
+ kc_x->post_create();
+ return static_cast<impl_variables*>(kc_x);
+ }
+
+ impl_variables*
+ Consvariables(ID _ID_1, variables _variables_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_variables_1, phylum_variables);
+ variables kc_x = new impl_variables(_ID_1, _variables_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consvariables));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consvariables));
+ kc_x->post_create();
+ return static_cast<impl_variables*>(kc_x);
+ }
+
+ impl_dollarvarstatus_DVAllowed*
+ DVAllowed() {
+ dollarvarstatus kc_x = new impl_dollarvarstatus_DVAllowed();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_DVAllowed));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_DVAllowed));
+ kc_x->post_create();
+ return static_cast<impl_dollarvarstatus_DVAllowed*>(kc_x);
+ }
+
+ impl_dollarvarstatus_DVDisallowed*
+ DVDisallowed() {
+ dollarvarstatus kc_x = new impl_dollarvarstatus_DVDisallowed();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_DVDisallowed));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_DVDisallowed));
+ kc_x->post_create();
+ return static_cast<impl_dollarvarstatus_DVDisallowed*>(kc_x);
+ }
+
+ impl_tribool_Equal*
+ Equal() {
+ tribool kc_x = new impl_tribool_Equal();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Equal));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Equal));
+ kc_x->post_create();
+ return static_cast<impl_tribool_Equal*>(kc_x);
+ }
+
+ impl_tribool_Smaller*
+ Smaller() {
+ tribool kc_x = new impl_tribool_Smaller();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Smaller));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Smaller));
+ kc_x->post_create();
+ return static_cast<impl_tribool_Smaller*>(kc_x);
+ }
+
+ impl_tribool_Bigger*
+ Bigger() {
+ tribool kc_x = new impl_tribool_Bigger();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Bigger));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Bigger));
+ kc_x->post_create();
+ return static_cast<impl_tribool_Bigger*>(kc_x);
+ }
+
+ impl_patternrepresentations*
+ Nilpatternrepresentations() {
+ patternrepresentations kc_x = new impl_patternrepresentations();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilpatternrepresentations));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilpatternrepresentations));
+ kc_x->post_create();
+ return static_cast<impl_patternrepresentations*>(kc_x);
+ }
+
+ impl_patternrepresentations*
+ Conspatternrepresentations(patternrepresentation _patternrepresentation_1, patternrepresentations _patternrepresentations_1) {
+ assertPhylum(_patternrepresentation_1, phylum_patternrepresentation);
+ assertPhylum(_patternrepresentations_1, phylum_patternrepresentations);
+ patternrepresentations kc_x = new impl_patternrepresentations(_patternrepresentation_1, _patternrepresentations_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conspatternrepresentations));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conspatternrepresentations));
+ kc_x->post_create();
+ return static_cast<impl_patternrepresentations*>(kc_x);
+ }
+
+ impl_patternrepresentation*
+ Nilpatternrepresentation() {
+ patternrepresentation kc_x = new impl_patternrepresentation();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilpatternrepresentation));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilpatternrepresentation));
+ kc_x->post_create();
+ return static_cast<impl_patternrepresentation*>(kc_x);
+ }
+
+ impl_patternrepresentation*
+ Conspatternrepresentation(elem_patternrepresentation _elem_patternrepresentation_1, patternrepresentation _patternrepresentation_1) {
+ assertPhylum(_elem_patternrepresentation_1, phylum_elem_patternrepresentation);
+ assertPhylum(_patternrepresentation_1, phylum_patternrepresentation);
+ patternrepresentation kc_x = new impl_patternrepresentation(_elem_patternrepresentation_1, _patternrepresentation_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conspatternrepresentation));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conspatternrepresentation));
+ kc_x->post_create();
+ return static_cast<impl_patternrepresentation*>(kc_x);
+ }
+
+ impl_elem_patternrepresentation_PRBinding*
+ PRBinding(path _path_1, ID _ID_1) {
+ assertPhylum(_path_1, phylum_path);
+ assertPhylum(_ID_1, phylum_ID);
+ elem_patternrepresentation kc_x = new impl_elem_patternrepresentation_PRBinding(_path_1, _ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PRBinding));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PRBinding));
+ kc_x->post_create();
+ kc_x = kc_initialize_elem_patternrepresentation(kc_x);
+ return static_cast<impl_elem_patternrepresentation_PRBinding*>(kc_x);
+ }
+
+ impl_elem_patternrepresentation_PRVarPredicate*
+ PRVarPredicate(paths _paths_1, ID _ID_1, patternrepresentation _patternrepresentation_1) {
+ assertPhylum(_paths_1, phylum_paths);
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_patternrepresentation_1, phylum_patternrepresentation);
+ elem_patternrepresentation kc_x = new impl_elem_patternrepresentation_PRVarPredicate(_paths_1, _ID_1, _patternrepresentation_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PRVarPredicate));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PRVarPredicate));
+ kc_x->post_create();
+ kc_x = kc_initialize_elem_patternrepresentation(kc_x);
+ return static_cast<impl_elem_patternrepresentation_PRVarPredicate*>(kc_x);
+ }
+
+ impl_elem_patternrepresentation_PROperPredicate*
+ PROperPredicate(path _path_1, ID _ID_1) {
+ assertPhylum(_path_1, phylum_path);
+ assertPhylum(_ID_1, phylum_ID);
+ elem_patternrepresentation kc_x = new impl_elem_patternrepresentation_PROperPredicate(_path_1, _ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PROperPredicate));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PROperPredicate));
+ kc_x->post_create();
+ kc_x = kc_initialize_elem_patternrepresentation(kc_x);
+ return static_cast<impl_elem_patternrepresentation_PROperPredicate*>(kc_x);
+ }
+
+ impl_elem_patternrepresentation_PRUserPredicate*
+ PRUserPredicate(Cexpression _Cexpression_1) {
+ assertPhylum(_Cexpression_1, phylum_Cexpression);
+ elem_patternrepresentation kc_x = new impl_elem_patternrepresentation_PRUserPredicate(_Cexpression_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PRUserPredicate));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PRUserPredicate));
+ kc_x->post_create();
+ kc_x = kc_initialize_elem_patternrepresentation(kc_x);
+ return static_cast<impl_elem_patternrepresentation_PRUserPredicate*>(kc_x);
+ }
+
+ impl_elem_patternrepresentation_PRNonLeafBinding*
+ PRNonLeafBinding(path _path_1, ID _ID_1, patternrepresentation _patternrepresentation_1) {
+ assertPhylum(_path_1, phylum_path);
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_patternrepresentation_1, phylum_patternrepresentation);
+ elem_patternrepresentation kc_x = new impl_elem_patternrepresentation_PRNonLeafBinding(_path_1, _ID_1, _patternrepresentation_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PRNonLeafBinding));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PRNonLeafBinding));
+ kc_x->post_create();
+ kc_x = kc_initialize_elem_patternrepresentation(kc_x);
+ return static_cast<impl_elem_patternrepresentation_PRNonLeafBinding*>(kc_x);
+ }
+
+ impl_elem_patternrepresentation_PRWildcard*
+ PRWildcard(path _path_1) {
+ assertPhylum(_path_1, phylum_path);
+ elem_patternrepresentation kc_x = new impl_elem_patternrepresentation_PRWildcard(_path_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PRWildcard));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PRWildcard));
+ kc_x->post_create();
+ kc_x = kc_initialize_elem_patternrepresentation(kc_x);
+ return static_cast<impl_elem_patternrepresentation_PRWildcard*>(kc_x);
+ }
+
+ impl_elem_patternrepresentation_PRDefault*
+ PRDefault() {
+ elem_patternrepresentation kc_x = new impl_elem_patternrepresentation_PRDefault();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PRDefault));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PRDefault));
+ kc_x->post_create();
+ kc_x = kc_initialize_elem_patternrepresentation(kc_x);
+ return static_cast<impl_elem_patternrepresentation_PRDefault*>(kc_x);
+ }
+
+ impl_elem_patternrepresentation_PRStringLiteral*
+ PRStringLiteral(path _path_1, CexpressionDQ _CexpressionDQ_1) {
+ assertPhylum(_path_1, phylum_path);
+ assertPhylum(_CexpressionDQ_1, phylum_CexpressionDQ);
+ elem_patternrepresentation kc_x = new impl_elem_patternrepresentation_PRStringLiteral(_path_1, _CexpressionDQ_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PRStringLiteral));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PRStringLiteral));
+ kc_x->post_create();
+ kc_x = kc_initialize_elem_patternrepresentation(kc_x);
+ return static_cast<impl_elem_patternrepresentation_PRStringLiteral*>(kc_x);
+ }
+
+ impl_elem_patternrepresentation_PRIntLiteral*
+ PRIntLiteral(path _path_1, INT _INT_1) {
+ assertPhylum(_path_1, phylum_path);
+ assertPhylum(_INT_1, phylum_INT);
+ elem_patternrepresentation kc_x = new impl_elem_patternrepresentation_PRIntLiteral(_path_1, _INT_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PRIntLiteral));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PRIntLiteral));
+ kc_x->post_create();
+ kc_x = kc_initialize_elem_patternrepresentation(kc_x);
+ return static_cast<impl_elem_patternrepresentation_PRIntLiteral*>(kc_x);
+ }
+
+ impl_path*
+ Nilpath() {
+ path kc_x = new impl_path();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilpath));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilpath));
+ kc_x->post_create();
+ kc_x = kc_initialize_path(kc_x);
+ return static_cast<impl_path*>(kc_x);
+ }
+
+ impl_path*
+ Conspath(integer _integer_1, path _path_1) {
+ assertPhylum(_integer_1, phylum_integer);
+ assertPhylum(_path_1, phylum_path);
+ path kc_x = new impl_path(_integer_1, _path_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conspath));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conspath));
+ kc_x->post_create();
+ kc_x = kc_initialize_path(kc_x);
+ return static_cast<impl_path*>(kc_x);
+ }
+
+ impl_paths*
+ Nilpaths() {
+ paths kc_x = new impl_paths();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilpaths));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilpaths));
+ kc_x->post_create();
+ return static_cast<impl_paths*>(kc_x);
+ }
+
+ impl_paths*
+ Conspaths(path _path_1, paths _paths_1) {
+ assertPhylum(_path_1, phylum_path);
+ assertPhylum(_paths_1, phylum_paths);
+ paths kc_x = new impl_paths(_path_1, _paths_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conspaths));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conspaths));
+ kc_x->post_create();
+ return static_cast<impl_paths*>(kc_x);
+ }
+
+ impl_argsnumbers*
+ Nilargsnumbers() {
+ argsnumbers kc_x = new impl_argsnumbers();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilargsnumbers));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilargsnumbers));
+ kc_x->post_create();
+ return static_cast<impl_argsnumbers*>(kc_x);
+ }
+
+ impl_argsnumbers*
+ Consargsnumbers(integer _integer_1, argsnumbers _argsnumbers_1) {
+ assertPhylum(_integer_1, phylum_integer);
+ assertPhylum(_argsnumbers_1, phylum_argsnumbers);
+ argsnumbers kc_x = new impl_argsnumbers(_integer_1, _argsnumbers_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consargsnumbers));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consargsnumbers));
+ kc_x->post_create();
+ return static_cast<impl_argsnumbers*>(kc_x);
+ }
+
+ impl_rewriterulesinfo*
+ Nilrewriterulesinfo() {
+ rewriterulesinfo kc_x = new impl_rewriterulesinfo();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilrewriterulesinfo));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilrewriterulesinfo));
+ kc_x->post_create();
+ return static_cast<impl_rewriterulesinfo*>(kc_x);
+ }
+
+ impl_rewriterulesinfo*
+ Consrewriterulesinfo(rewriteruleinfo _rewriteruleinfo_1, rewriterulesinfo _rewriterulesinfo_1) {
+ assertPhylum(_rewriteruleinfo_1, phylum_rewriteruleinfo);
+ assertPhylum(_rewriterulesinfo_1, phylum_rewriterulesinfo);
+ rewriterulesinfo kc_x = new impl_rewriterulesinfo(_rewriteruleinfo_1, _rewriterulesinfo_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consrewriterulesinfo));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consrewriterulesinfo));
+ kc_x->post_create();
+ return static_cast<impl_rewriterulesinfo*>(kc_x);
+ }
+
+ impl_rewriteruleinfo_Rewriteruleinfo*
+ Rewriteruleinfo(patternrepresentation _patternrepresentation_1, patternrepresentation _patternrepresentation_2, rewriteclause _rewriteclause_1) {
+ assertPhylum(_patternrepresentation_1, phylum_patternrepresentation);
+ assertPhylum(_patternrepresentation_2, phylum_patternrepresentation);
+ assertPhylum(_rewriteclause_1, phylum_rewriteclause);
+ rewriteruleinfo kc_x = new impl_rewriteruleinfo_Rewriteruleinfo(_patternrepresentation_1, _patternrepresentation_2, _rewriteclause_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Rewriteruleinfo));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Rewriteruleinfo));
+ kc_x->post_create();
+ return static_cast<impl_rewriteruleinfo_Rewriteruleinfo*>(kc_x);
+ }
+
+ impl_withcasesinfo*
+ Nilwithcasesinfo() {
+ withcasesinfo kc_x = new impl_withcasesinfo();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilwithcasesinfo));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilwithcasesinfo));
+ kc_x->post_create();
+ return static_cast<impl_withcasesinfo*>(kc_x);
+ }
+
+ impl_withcasesinfo*
+ Conswithcasesinfo(withcaseinfo _withcaseinfo_1, withcasesinfo _withcasesinfo_1) {
+ assertPhylum(_withcaseinfo_1, phylum_withcaseinfo);
+ assertPhylum(_withcasesinfo_1, phylum_withcasesinfo);
+ withcasesinfo kc_x = new impl_withcasesinfo(_withcaseinfo_1, _withcasesinfo_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conswithcasesinfo));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conswithcasesinfo));
+ kc_x->post_create();
+ return static_cast<impl_withcasesinfo*>(kc_x);
+ }
+
+ impl_withcaseinfo_Withcaseinfo*
+ Withcaseinfo(patternrepresentation _patternrepresentation_1, patternrepresentation _patternrepresentation_2, Ctext _Ctext_1) {
+ assertPhylum(_patternrepresentation_1, phylum_patternrepresentation);
+ assertPhylum(_patternrepresentation_2, phylum_patternrepresentation);
+ assertPhylum(_Ctext_1, phylum_Ctext);
+ withcaseinfo kc_x = new impl_withcaseinfo_Withcaseinfo(_patternrepresentation_1, _patternrepresentation_2, _Ctext_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Withcaseinfo));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Withcaseinfo));
+ kc_x->post_create();
+ return static_cast<impl_withcaseinfo_Withcaseinfo*>(kc_x);
+ }
+
+ impl_rewriteviewsinfo*
+ Nilrewriteviewsinfo() {
+ rewriteviewsinfo kc_x = new impl_rewriteviewsinfo();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilrewriteviewsinfo));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilrewriteviewsinfo));
+ kc_x->post_create();
+ return static_cast<impl_rewriteviewsinfo*>(kc_x);
+ }
+
+ impl_rewriteviewsinfo*
+ Consrewriteviewsinfo(rewriteviewinfo _rewriteviewinfo_1, rewriteviewsinfo _rewriteviewsinfo_1) {
+ assertPhylum(_rewriteviewinfo_1, phylum_rewriteviewinfo);
+ assertPhylum(_rewriteviewsinfo_1, phylum_rewriteviewsinfo);
+ rewriteviewsinfo kc_x = new impl_rewriteviewsinfo(_rewriteviewinfo_1, _rewriteviewsinfo_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consrewriteviewsinfo));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consrewriteviewsinfo));
+ kc_x->post_create();
+ return static_cast<impl_rewriteviewsinfo*>(kc_x);
+ }
+
+ impl_rewriteviewinfo_Rewriteviewinfo*
+ Rewriteviewinfo(ID _ID_1, rewriterulesinfo _rewriterulesinfo_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_rewriterulesinfo_1, phylum_rewriterulesinfo);
+ rewriteviewinfo kc_x = new impl_rewriteviewinfo_Rewriteviewinfo(_ID_1, _rewriterulesinfo_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Rewriteviewinfo));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Rewriteviewinfo));
+ kc_x->post_create();
+ return static_cast<impl_rewriteviewinfo_Rewriteviewinfo*>(kc_x);
+ }
+
+ impl_unparseviewsinfo*
+ Nilunparseviewsinfo() {
+ unparseviewsinfo kc_x = new impl_unparseviewsinfo();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilunparseviewsinfo));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilunparseviewsinfo));
+ kc_x->post_create();
+ return static_cast<impl_unparseviewsinfo*>(kc_x);
+ }
+
+ impl_unparseviewsinfo*
+ Consunparseviewsinfo(unparseviewinfo _unparseviewinfo_1, unparseviewsinfo _unparseviewsinfo_1) {
+ assertPhylum(_unparseviewinfo_1, phylum_unparseviewinfo);
+ assertPhylum(_unparseviewsinfo_1, phylum_unparseviewsinfo);
+ unparseviewsinfo kc_x = new impl_unparseviewsinfo(_unparseviewinfo_1, _unparseviewsinfo_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consunparseviewsinfo));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consunparseviewsinfo));
+ kc_x->post_create();
+ return static_cast<impl_unparseviewsinfo*>(kc_x);
+ }
+
+ impl_unparseviewinfo_Unparseviewinfo*
+ Unparseviewinfo(ID _ID_1, unparsedeclsinfo _unparsedeclsinfo_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_unparsedeclsinfo_1, phylum_unparsedeclsinfo);
+ unparseviewinfo kc_x = new impl_unparseviewinfo_Unparseviewinfo(_ID_1, _unparsedeclsinfo_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Unparseviewinfo));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Unparseviewinfo));
+ kc_x->post_create();
+ return static_cast<impl_unparseviewinfo_Unparseviewinfo*>(kc_x);
+ }
+
+ impl_unparsedeclsinfo*
+ Nilunparsedeclsinfo() {
+ unparsedeclsinfo kc_x = new impl_unparsedeclsinfo();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilunparsedeclsinfo));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilunparsedeclsinfo));
+ kc_x->post_create();
+ return static_cast<impl_unparsedeclsinfo*>(kc_x);
+ }
+
+ impl_unparsedeclsinfo*
+ Consunparsedeclsinfo(unparsedeclinfo _unparsedeclinfo_1, unparsedeclsinfo _unparsedeclsinfo_1) {
+ assertPhylum(_unparsedeclinfo_1, phylum_unparsedeclinfo);
+ assertPhylum(_unparsedeclsinfo_1, phylum_unparsedeclsinfo);
+ unparsedeclsinfo kc_x = new impl_unparsedeclsinfo(_unparsedeclinfo_1, _unparsedeclsinfo_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consunparsedeclsinfo));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consunparsedeclsinfo));
+ kc_x->post_create();
+ return static_cast<impl_unparsedeclsinfo*>(kc_x);
+ }
+
+ impl_unparsedeclinfo_Unparsedeclinfo*
+ Unparsedeclinfo(patternrepresentation _patternrepresentation_1, patternrepresentation _patternrepresentation_2, unparseclause _unparseclause_1) {
+ assertPhylum(_patternrepresentation_1, phylum_patternrepresentation);
+ assertPhylum(_patternrepresentation_2, phylum_patternrepresentation);
+ assertPhylum(_unparseclause_1, phylum_unparseclause);
+ unparsedeclinfo kc_x = new impl_unparsedeclinfo_Unparsedeclinfo(_patternrepresentation_1, _patternrepresentation_2, _unparseclause_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Unparsedeclinfo));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Unparsedeclinfo));
+ kc_x->post_create();
+ return static_cast<impl_unparsedeclinfo_Unparsedeclinfo*>(kc_x);
+ }
+
+ impl_ac_declaration_AcDeclaration*
+ AcDeclaration(ac_declaration_specifiers _ac_declaration_specifiers_1, ac_init_declarator_list _ac_init_declarator_list_1) {
+ assertPhylum(_ac_declaration_specifiers_1, phylum_ac_declaration_specifiers);
+ assertPhylum(_ac_init_declarator_list_1, phylum_ac_init_declarator_list);
+ ac_declaration kc_x = new impl_ac_declaration_AcDeclaration(_ac_declaration_specifiers_1, _ac_init_declarator_list_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDeclaration));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDeclaration));
+ kc_x->post_create();
+ return static_cast<impl_ac_declaration_AcDeclaration*>(kc_x);
+ }
+
+ impl_ac_declaration_list*
+ Nilac_declaration_list() {
+ ac_declaration_list kc_x = new impl_ac_declaration_list();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilac_declaration_list));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilac_declaration_list));
+ kc_x->post_create();
+ return static_cast<impl_ac_declaration_list*>(kc_x);
+ }
+
+ impl_ac_declaration_list*
+ Consac_declaration_list(ac_declaration _ac_declaration_1, ac_declaration_list _ac_declaration_list_1) {
+ assertPhylum(_ac_declaration_1, phylum_ac_declaration);
+ assertPhylum(_ac_declaration_list_1, phylum_ac_declaration_list);
+ ac_declaration_list kc_x = new impl_ac_declaration_list(_ac_declaration_1, _ac_declaration_list_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consac_declaration_list));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consac_declaration_list));
+ kc_x->post_create();
+ return static_cast<impl_ac_declaration_list*>(kc_x);
+ }
+
+ impl_ac_declaration_specifiers*
+ Nilac_declaration_specifiers() {
+ ac_declaration_specifiers kc_x = new impl_ac_declaration_specifiers();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilac_declaration_specifiers));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilac_declaration_specifiers));
+ kc_x->post_create();
+ return static_cast<impl_ac_declaration_specifiers*>(kc_x);
+ }
+
+ impl_ac_declaration_specifiers*
+ Consac_declaration_specifiers(ac_declaration_specifier _ac_declaration_specifier_1, ac_declaration_specifiers _ac_declaration_specifiers_1) {
+ assertPhylum(_ac_declaration_specifier_1, phylum_ac_declaration_specifier);
+ assertPhylum(_ac_declaration_specifiers_1, phylum_ac_declaration_specifiers);
+ ac_declaration_specifiers kc_x = new impl_ac_declaration_specifiers(_ac_declaration_specifier_1, _ac_declaration_specifiers_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consac_declaration_specifiers));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consac_declaration_specifiers));
+ kc_x->post_create();
+ return static_cast<impl_ac_declaration_specifiers*>(kc_x);
+ }
+
+ impl_ac_declaration_specifier_AcDeclSpecStorageSpec*
+ AcDeclSpecStorageSpec(ac_storage_class_specifier _ac_storage_class_specifier_1) {
+ assertPhylum(_ac_storage_class_specifier_1, phylum_ac_storage_class_specifier);
+ ac_declaration_specifier kc_x = new impl_ac_declaration_specifier_AcDeclSpecStorageSpec(_ac_storage_class_specifier_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDeclSpecStorageSpec));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDeclSpecStorageSpec));
+ kc_x->post_create();
+ return static_cast<impl_ac_declaration_specifier_AcDeclSpecStorageSpec*>(kc_x);
+ }
+
+ impl_ac_declaration_specifier_AcDeclSpecTypeSpec*
+ AcDeclSpecTypeSpec(ac_type_specifier _ac_type_specifier_1) {
+ assertPhylum(_ac_type_specifier_1, phylum_ac_type_specifier);
+ ac_declaration_specifier kc_x = new impl_ac_declaration_specifier_AcDeclSpecTypeSpec(_ac_type_specifier_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDeclSpecTypeSpec));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDeclSpecTypeSpec));
+ kc_x->post_create();
+ return static_cast<impl_ac_declaration_specifier_AcDeclSpecTypeSpec*>(kc_x);
+ }
+
+ impl_ac_declaration_specifier_AcDeclSpecTypeQual*
+ AcDeclSpecTypeQual(ac_type_qualifier _ac_type_qualifier_1) {
+ assertPhylum(_ac_type_qualifier_1, phylum_ac_type_qualifier);
+ ac_declaration_specifier kc_x = new impl_ac_declaration_specifier_AcDeclSpecTypeQual(_ac_type_qualifier_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDeclSpecTypeQual));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDeclSpecTypeQual));
+ kc_x->post_create();
+ return static_cast<impl_ac_declaration_specifier_AcDeclSpecTypeQual*>(kc_x);
+ }
+
+ impl_ac_storage_class_specifier_AcAuto*
+ AcAuto() {
+ ac_storage_class_specifier kc_x = new impl_ac_storage_class_specifier_AcAuto();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcAuto));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcAuto));
+ kc_x->post_create();
+ return static_cast<impl_ac_storage_class_specifier_AcAuto*>(kc_x);
+ }
+
+ impl_ac_storage_class_specifier_AcRegister*
+ AcRegister() {
+ ac_storage_class_specifier kc_x = new impl_ac_storage_class_specifier_AcRegister();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcRegister));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcRegister));
+ kc_x->post_create();
+ return static_cast<impl_ac_storage_class_specifier_AcRegister*>(kc_x);
+ }
+
+ impl_ac_storage_class_specifier_AcStatic*
+ AcStatic() {
+ ac_storage_class_specifier kc_x = new impl_ac_storage_class_specifier_AcStatic();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcStatic));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcStatic));
+ kc_x->post_create();
+ return static_cast<impl_ac_storage_class_specifier_AcStatic*>(kc_x);
+ }
+
+ impl_ac_storage_class_specifier_AcExtern*
+ AcExtern() {
+ ac_storage_class_specifier kc_x = new impl_ac_storage_class_specifier_AcExtern();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcExtern));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcExtern));
+ kc_x->post_create();
+ return static_cast<impl_ac_storage_class_specifier_AcExtern*>(kc_x);
+ }
+
+ impl_ac_storage_class_specifier_AcTypedef*
+ AcTypedef() {
+ ac_storage_class_specifier kc_x = new impl_ac_storage_class_specifier_AcTypedef();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcTypedef));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcTypedef));
+ kc_x->post_create();
+ return static_cast<impl_ac_storage_class_specifier_AcTypedef*>(kc_x);
+ }
+
+ impl_ac_storage_class_specifier_AcVirtual*
+ AcVirtual() {
+ ac_storage_class_specifier kc_x = new impl_ac_storage_class_specifier_AcVirtual();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcVirtual));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcVirtual));
+ kc_x->post_create();
+ return static_cast<impl_ac_storage_class_specifier_AcVirtual*>(kc_x);
+ }
+
+ impl_ac_type_specifier_AcTypeSpec*
+ AcTypeSpec(ID _ID_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ ac_type_specifier kc_x = new impl_ac_type_specifier_AcTypeSpec(_ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcTypeSpec));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcTypeSpec));
+ kc_x->post_create();
+ return static_cast<impl_ac_type_specifier_AcTypeSpec*>(kc_x);
+ }
+
+ impl_ac_type_qualifier_AcConst*
+ AcConst() {
+ ac_type_qualifier kc_x = new impl_ac_type_qualifier_AcConst();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcConst));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcConst));
+ kc_x->post_create();
+ return static_cast<impl_ac_type_qualifier_AcConst*>(kc_x);
+ }
+
+ impl_ac_type_qualifier_AcVolatile*
+ AcVolatile() {
+ ac_type_qualifier kc_x = new impl_ac_type_qualifier_AcVolatile();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcVolatile));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcVolatile));
+ kc_x->post_create();
+ return static_cast<impl_ac_type_qualifier_AcVolatile*>(kc_x);
+ }
+
+ impl_ac_type_qualifier_AcUnsigned*
+ AcUnsigned() {
+ ac_type_qualifier kc_x = new impl_ac_type_qualifier_AcUnsigned();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcUnsigned));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcUnsigned));
+ kc_x->post_create();
+ return static_cast<impl_ac_type_qualifier_AcUnsigned*>(kc_x);
+ }
+
+ impl_ac_type_qualifier_AcNoQualifier*
+ AcNoQualifier() {
+ ac_type_qualifier kc_x = new impl_ac_type_qualifier_AcNoQualifier();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcNoQualifier));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcNoQualifier));
+ kc_x->post_create();
+ return static_cast<impl_ac_type_qualifier_AcNoQualifier*>(kc_x);
+ }
+
+ impl_ac_init_declarator_list*
+ Nilac_init_declarator_list() {
+ ac_init_declarator_list kc_x = new impl_ac_init_declarator_list();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilac_init_declarator_list));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilac_init_declarator_list));
+ kc_x->post_create();
+ return static_cast<impl_ac_init_declarator_list*>(kc_x);
+ }
+
+ impl_ac_init_declarator_list*
+ Consac_init_declarator_list(ac_init_declarator _ac_init_declarator_1, ac_init_declarator_list _ac_init_declarator_list_1) {
+ assertPhylum(_ac_init_declarator_1, phylum_ac_init_declarator);
+ assertPhylum(_ac_init_declarator_list_1, phylum_ac_init_declarator_list);
+ ac_init_declarator_list kc_x = new impl_ac_init_declarator_list(_ac_init_declarator_1, _ac_init_declarator_list_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consac_init_declarator_list));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consac_init_declarator_list));
+ kc_x->post_create();
+ return static_cast<impl_ac_init_declarator_list*>(kc_x);
+ }
+
+ impl_ac_init_declarator_AcInitDecl*
+ AcInitDecl(ac_declarator _ac_declarator_1) {
+ assertPhylum(_ac_declarator_1, phylum_ac_declarator);
+ ac_init_declarator kc_x = new impl_ac_init_declarator_AcInitDecl(_ac_declarator_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcInitDecl));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcInitDecl));
+ kc_x->post_create();
+ return static_cast<impl_ac_init_declarator_AcInitDecl*>(kc_x);
+ }
+
+ impl_ac_declarator_AcDeclarator*
+ AcDeclarator(ac_pointer_option _ac_pointer_option_1, ac_ref_option _ac_ref_option_1, ac_direct_declarator _ac_direct_declarator_1) {
+ assertPhylum(_ac_pointer_option_1, phylum_ac_pointer_option);
+ assertPhylum(_ac_ref_option_1, phylum_ac_ref_option);
+ assertPhylum(_ac_direct_declarator_1, phylum_ac_direct_declarator);
+ ac_declarator kc_x = new impl_ac_declarator_AcDeclarator(_ac_pointer_option_1, _ac_ref_option_1, _ac_direct_declarator_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDeclarator));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDeclarator));
+ kc_x->post_create();
+ return static_cast<impl_ac_declarator_AcDeclarator*>(kc_x);
+ }
+
+ impl_ac_direct_declarator_AcDirectDeclId*
+ AcDirectDeclId(ID _ID_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ ac_direct_declarator kc_x = new impl_ac_direct_declarator_AcDirectDeclId(_ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDirectDeclId));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDirectDeclId));
+ kc_x->post_create();
+ return static_cast<impl_ac_direct_declarator_AcDirectDeclId*>(kc_x);
+ }
+
+ impl_ac_direct_declarator_AcDirectDeclPack*
+ AcDirectDeclPack(ac_declarator _ac_declarator_1) {
+ assertPhylum(_ac_declarator_1, phylum_ac_declarator);
+ ac_direct_declarator kc_x = new impl_ac_direct_declarator_AcDirectDeclPack(_ac_declarator_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDirectDeclPack));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDirectDeclPack));
+ kc_x->post_create();
+ return static_cast<impl_ac_direct_declarator_AcDirectDeclPack*>(kc_x);
+ }
+
+ impl_ac_direct_declarator_AcDirectDeclArray*
+ AcDirectDeclArray(ac_direct_declarator _ac_direct_declarator_1, ac_constant_expression_option _ac_constant_expression_option_1) {
+ assertPhylum(_ac_direct_declarator_1, phylum_ac_direct_declarator);
+ assertPhylum(_ac_constant_expression_option_1, phylum_ac_constant_expression_option);
+ ac_direct_declarator kc_x = new impl_ac_direct_declarator_AcDirectDeclArray(_ac_direct_declarator_1, _ac_constant_expression_option_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDirectDeclArray));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDirectDeclArray));
+ kc_x->post_create();
+ return static_cast<impl_ac_direct_declarator_AcDirectDeclArray*>(kc_x);
+ }
+
+ impl_ac_direct_declarator_AcDirectDeclProto*
+ AcDirectDeclProto(ac_direct_declarator _ac_direct_declarator_1, ac_parameter_type_list _ac_parameter_type_list_1) {
+ assertPhylum(_ac_direct_declarator_1, phylum_ac_direct_declarator);
+ assertPhylum(_ac_parameter_type_list_1, phylum_ac_parameter_type_list);
+ ac_direct_declarator kc_x = new impl_ac_direct_declarator_AcDirectDeclProto(_ac_direct_declarator_1, _ac_parameter_type_list_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDirectDeclProto));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDirectDeclProto));
+ kc_x->post_create();
+ return static_cast<impl_ac_direct_declarator_AcDirectDeclProto*>(kc_x);
+ }
+
+ impl_ac_direct_declarator_AcQualifiedDeclProto*
+ AcQualifiedDeclProto(ac_class_qualifier_list _ac_class_qualifier_list_1, ac_direct_declarator _ac_direct_declarator_1, ac_parameter_type_list _ac_parameter_type_list_1, ac_type_qualifier _ac_type_qualifier_1) {
+ assertPhylum(_ac_class_qualifier_list_1, phylum_ac_class_qualifier_list);
+ assertPhylum(_ac_direct_declarator_1, phylum_ac_direct_declarator);
+ assertPhylum(_ac_parameter_type_list_1, phylum_ac_parameter_type_list);
+ assertPhylum(_ac_type_qualifier_1, phylum_ac_type_qualifier);
+ ac_direct_declarator kc_x = new impl_ac_direct_declarator_AcQualifiedDeclProto(_ac_class_qualifier_list_1, _ac_direct_declarator_1, _ac_parameter_type_list_1, _ac_type_qualifier_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcQualifiedDeclProto));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcQualifiedDeclProto));
+ kc_x->post_create();
+ return static_cast<impl_ac_direct_declarator_AcQualifiedDeclProto*>(kc_x);
+ }
+
+ impl_ac_direct_declarator_AcMemberDecl*
+ AcMemberDecl(ID _ID_1, ID _ID_2, ac_constant_expression_list _ac_constant_expression_list_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_ID_2, phylum_ID);
+ assertPhylum(_ac_constant_expression_list_1, phylum_ac_constant_expression_list);
+ ac_direct_declarator kc_x = new impl_ac_direct_declarator_AcMemberDecl(_ID_1, _ID_2, _ac_constant_expression_list_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcMemberDecl));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcMemberDecl));
+ kc_x->post_create();
+ return static_cast<impl_ac_direct_declarator_AcMemberDecl*>(kc_x);
+ }
+
+ impl_ac_direct_declarator_AcConvOperatorDecl*
+ AcConvOperatorDecl(ID _ID_1, ID _ID_2) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_ID_2, phylum_ID);
+ ac_direct_declarator kc_x = new impl_ac_direct_declarator_AcConvOperatorDecl(_ID_1, _ID_2);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcConvOperatorDecl));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcConvOperatorDecl));
+ kc_x->post_create();
+ return static_cast<impl_ac_direct_declarator_AcConvOperatorDecl*>(kc_x);
+ }
+
+ impl_ac_direct_declarator_AcOperatorDeclId*
+ AcOperatorDeclId(ac_operator_name _ac_operator_name_1) {
+ assertPhylum(_ac_operator_name_1, phylum_ac_operator_name);
+ ac_direct_declarator kc_x = new impl_ac_direct_declarator_AcOperatorDeclId(_ac_operator_name_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcOperatorDeclId));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcOperatorDeclId));
+ kc_x->post_create();
+ return static_cast<impl_ac_direct_declarator_AcOperatorDeclId*>(kc_x);
+ }
+
+ impl_ac_pointer_option_Nopointer*
+ Nopointer() {
+ ac_pointer_option kc_x = new impl_ac_pointer_option_Nopointer();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nopointer));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nopointer));
+ kc_x->post_create();
+ return static_cast<impl_ac_pointer_option_Nopointer*>(kc_x);
+ }
+
+ impl_ac_pointer_option_Yespointer*
+ Yespointer(ac_pointer _ac_pointer_1) {
+ assertPhylum(_ac_pointer_1, phylum_ac_pointer);
+ ac_pointer_option kc_x = new impl_ac_pointer_option_Yespointer(_ac_pointer_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Yespointer));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Yespointer));
+ kc_x->post_create();
+ return static_cast<impl_ac_pointer_option_Yespointer*>(kc_x);
+ }
+
+ impl_ac_pointer_AcPointerNil*
+ AcPointerNil(ac_type_qualifier_list _ac_type_qualifier_list_1) {
+ assertPhylum(_ac_type_qualifier_list_1, phylum_ac_type_qualifier_list);
+ ac_pointer kc_x = new impl_ac_pointer_AcPointerNil(_ac_type_qualifier_list_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcPointerNil));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcPointerNil));
+ kc_x->post_create();
+ return static_cast<impl_ac_pointer_AcPointerNil*>(kc_x);
+ }
+
+ impl_ac_pointer_AcPointerCons*
+ AcPointerCons(ac_type_qualifier_list _ac_type_qualifier_list_1, ac_pointer _ac_pointer_1) {
+ assertPhylum(_ac_type_qualifier_list_1, phylum_ac_type_qualifier_list);
+ assertPhylum(_ac_pointer_1, phylum_ac_pointer);
+ ac_pointer kc_x = new impl_ac_pointer_AcPointerCons(_ac_type_qualifier_list_1, _ac_pointer_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcPointerCons));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcPointerCons));
+ kc_x->post_create();
+ return static_cast<impl_ac_pointer_AcPointerCons*>(kc_x);
+ }
+
+ impl_ac_ref_option_AcNoRef*
+ AcNoRef() {
+ ac_ref_option kc_x = new impl_ac_ref_option_AcNoRef();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcNoRef));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcNoRef));
+ kc_x->post_create();
+ return static_cast<impl_ac_ref_option_AcNoRef*>(kc_x);
+ }
+
+ impl_ac_ref_option_AcRef*
+ AcRef() {
+ ac_ref_option kc_x = new impl_ac_ref_option_AcRef();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcRef));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcRef));
+ kc_x->post_create();
+ return static_cast<impl_ac_ref_option_AcRef*>(kc_x);
+ }
+
+ impl_ac_operator_name_AcOperatorName*
+ AcOperatorName(casestring _casestring_1) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ ac_operator_name kc_x = new impl_ac_operator_name_AcOperatorName(_casestring_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcOperatorName));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcOperatorName));
+ kc_x->post_create();
+ kc_x = kc_initialize_ac_operator_name(kc_x);
+ return static_cast<impl_ac_operator_name_AcOperatorName*>(kc_x);
+ }
+
+ impl_ac_class_qualifier_help_list*
+ Nilac_class_qualifier_help_list() {
+ ac_class_qualifier_help_list kc_x = new impl_ac_class_qualifier_help_list();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilac_class_qualifier_help_list));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilac_class_qualifier_help_list));
+ kc_x->post_create();
+ return static_cast<impl_ac_class_qualifier_help_list*>(kc_x);
+ }
+
+ impl_ac_class_qualifier_help_list*
+ Consac_class_qualifier_help_list(ac_direct_declarator _ac_direct_declarator_1, ac_class_qualifier_help_list _ac_class_qualifier_help_list_1) {
+ assertPhylum(_ac_direct_declarator_1, phylum_ac_direct_declarator);
+ assertPhylum(_ac_class_qualifier_help_list_1, phylum_ac_class_qualifier_help_list);
+ ac_class_qualifier_help_list kc_x = new impl_ac_class_qualifier_help_list(_ac_direct_declarator_1, _ac_class_qualifier_help_list_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consac_class_qualifier_help_list));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consac_class_qualifier_help_list));
+ kc_x->post_create();
+ return static_cast<impl_ac_class_qualifier_help_list*>(kc_x);
+ }
+
+ impl_ac_class_qualifier_list*
+ Nilac_class_qualifier_list() {
+ ac_class_qualifier_list kc_x = new impl_ac_class_qualifier_list();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilac_class_qualifier_list));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilac_class_qualifier_list));
+ kc_x->post_create();
+ return static_cast<impl_ac_class_qualifier_list*>(kc_x);
+ }
+
+ impl_ac_class_qualifier_list*
+ Consac_class_qualifier_list(ID _ID_1, ac_class_qualifier_list _ac_class_qualifier_list_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_ac_class_qualifier_list_1, phylum_ac_class_qualifier_list);
+ ac_class_qualifier_list kc_x = new impl_ac_class_qualifier_list(_ID_1, _ac_class_qualifier_list_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consac_class_qualifier_list));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consac_class_qualifier_list));
+ kc_x->post_create();
+ return static_cast<impl_ac_class_qualifier_list*>(kc_x);
+ }
+
+ impl_ac_type_qualifier_list*
+ Nilac_type_qualifier_list() {
+ ac_type_qualifier_list kc_x = new impl_ac_type_qualifier_list();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilac_type_qualifier_list));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilac_type_qualifier_list));
+ kc_x->post_create();
+ return static_cast<impl_ac_type_qualifier_list*>(kc_x);
+ }
+
+ impl_ac_type_qualifier_list*
+ Consac_type_qualifier_list(ac_type_qualifier _ac_type_qualifier_1, ac_type_qualifier_list _ac_type_qualifier_list_1) {
+ assertPhylum(_ac_type_qualifier_1, phylum_ac_type_qualifier);
+ assertPhylum(_ac_type_qualifier_list_1, phylum_ac_type_qualifier_list);
+ ac_type_qualifier_list kc_x = new impl_ac_type_qualifier_list(_ac_type_qualifier_1, _ac_type_qualifier_list_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consac_type_qualifier_list));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consac_type_qualifier_list));
+ kc_x->post_create();
+ return static_cast<impl_ac_type_qualifier_list*>(kc_x);
+ }
+
+ impl_ac_parameter_type_list_AcParList*
+ AcParList(ac_parameter_list _ac_parameter_list_1) {
+ assertPhylum(_ac_parameter_list_1, phylum_ac_parameter_list);
+ ac_parameter_type_list kc_x = new impl_ac_parameter_type_list_AcParList(_ac_parameter_list_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcParList));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcParList));
+ kc_x->post_create();
+ return static_cast<impl_ac_parameter_type_list_AcParList*>(kc_x);
+ }
+
+ impl_ac_parameter_type_list_AcParList3Dot*
+ AcParList3Dot(ac_parameter_list _ac_parameter_list_1) {
+ assertPhylum(_ac_parameter_list_1, phylum_ac_parameter_list);
+ ac_parameter_type_list kc_x = new impl_ac_parameter_type_list_AcParList3Dot(_ac_parameter_list_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcParList3Dot));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcParList3Dot));
+ kc_x->post_create();
+ return static_cast<impl_ac_parameter_type_list_AcParList3Dot*>(kc_x);
+ }
+
+ impl_ac_parameter_list*
+ Nilac_parameter_list() {
+ ac_parameter_list kc_x = new impl_ac_parameter_list();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilac_parameter_list));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilac_parameter_list));
+ kc_x->post_create();
+ return static_cast<impl_ac_parameter_list*>(kc_x);
+ }
+
+ impl_ac_parameter_list*
+ Consac_parameter_list(ac_parameter_declaration _ac_parameter_declaration_1, ac_parameter_list _ac_parameter_list_1) {
+ assertPhylum(_ac_parameter_declaration_1, phylum_ac_parameter_declaration);
+ assertPhylum(_ac_parameter_list_1, phylum_ac_parameter_list);
+ ac_parameter_list kc_x = new impl_ac_parameter_list(_ac_parameter_declaration_1, _ac_parameter_list_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consac_parameter_list));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consac_parameter_list));
+ kc_x->post_create();
+ return static_cast<impl_ac_parameter_list*>(kc_x);
+ }
+
+ impl_ac_parameter_declaration_AcParDeclDecl*
+ AcParDeclDecl(ac_declaration_specifiers _ac_declaration_specifiers_1, ac_declarator _ac_declarator_1, ac_constant_expression_option _ac_constant_expression_option_1) {
+ assertPhylum(_ac_declaration_specifiers_1, phylum_ac_declaration_specifiers);
+ assertPhylum(_ac_declarator_1, phylum_ac_declarator);
+ assertPhylum(_ac_constant_expression_option_1, phylum_ac_constant_expression_option);
+ ac_parameter_declaration kc_x = new impl_ac_parameter_declaration_AcParDeclDecl(_ac_declaration_specifiers_1, _ac_declarator_1, _ac_constant_expression_option_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcParDeclDecl));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcParDeclDecl));
+ kc_x->post_create();
+ return static_cast<impl_ac_parameter_declaration_AcParDeclDecl*>(kc_x);
+ }
+
+ impl_ac_parameter_declaration_AcParDeclAbsdecl*
+ AcParDeclAbsdecl(ac_declaration_specifiers _ac_declaration_specifiers_1, ac_abstract_declarator _ac_abstract_declarator_1, ac_constant_expression_option _ac_constant_expression_option_1) {
+ assertPhylum(_ac_declaration_specifiers_1, phylum_ac_declaration_specifiers);
+ assertPhylum(_ac_abstract_declarator_1, phylum_ac_abstract_declarator);
+ assertPhylum(_ac_constant_expression_option_1, phylum_ac_constant_expression_option);
+ ac_parameter_declaration kc_x = new impl_ac_parameter_declaration_AcParDeclAbsdecl(_ac_declaration_specifiers_1, _ac_abstract_declarator_1, _ac_constant_expression_option_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcParDeclAbsdecl));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcParDeclAbsdecl));
+ kc_x->post_create();
+ return static_cast<impl_ac_parameter_declaration_AcParDeclAbsdecl*>(kc_x);
+ }
+
+ impl_ac_identifier_list*
+ Nilac_identifier_list() {
+ ac_identifier_list kc_x = new impl_ac_identifier_list();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilac_identifier_list));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilac_identifier_list));
+ kc_x->post_create();
+ return static_cast<impl_ac_identifier_list*>(kc_x);
+ }
+
+ impl_ac_identifier_list*
+ Consac_identifier_list(ID _ID_1, ac_identifier_list _ac_identifier_list_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_ac_identifier_list_1, phylum_ac_identifier_list);
+ ac_identifier_list kc_x = new impl_ac_identifier_list(_ID_1, _ac_identifier_list_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consac_identifier_list));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consac_identifier_list));
+ kc_x->post_create();
+ return static_cast<impl_ac_identifier_list*>(kc_x);
+ }
+
+ impl_ac_abstract_declarator_AcAbsdeclPointer*
+ AcAbsdeclPointer(ac_pointer _ac_pointer_1) {
+ assertPhylum(_ac_pointer_1, phylum_ac_pointer);
+ ac_abstract_declarator kc_x = new impl_ac_abstract_declarator_AcAbsdeclPointer(_ac_pointer_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcAbsdeclPointer));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcAbsdeclPointer));
+ kc_x->post_create();
+ return static_cast<impl_ac_abstract_declarator_AcAbsdeclPointer*>(kc_x);
+ }
+
+ impl_ac_abstract_declarator_AcAbsdeclDirdecl*
+ AcAbsdeclDirdecl(ac_pointer_option _ac_pointer_option_1, ac_direct_abstract_declarator _ac_direct_abstract_declarator_1) {
+ assertPhylum(_ac_pointer_option_1, phylum_ac_pointer_option);
+ assertPhylum(_ac_direct_abstract_declarator_1, phylum_ac_direct_abstract_declarator);
+ ac_abstract_declarator kc_x = new impl_ac_abstract_declarator_AcAbsdeclDirdecl(_ac_pointer_option_1, _ac_direct_abstract_declarator_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcAbsdeclDirdecl));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcAbsdeclDirdecl));
+ kc_x->post_create();
+ return static_cast<impl_ac_abstract_declarator_AcAbsdeclDirdecl*>(kc_x);
+ }
+
+ impl_ac_direct_abstract_declarator_option_Noac_direct_abstract_declarator*
+ Noac_direct_abstract_declarator() {
+ ac_direct_abstract_declarator_option kc_x = new impl_ac_direct_abstract_declarator_option_Noac_direct_abstract_declarator();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Noac_direct_abstract_declarator));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Noac_direct_abstract_declarator));
+ kc_x->post_create();
+ return static_cast<impl_ac_direct_abstract_declarator_option_Noac_direct_abstract_declarator*>(kc_x);
+ }
+
+ impl_ac_direct_abstract_declarator_option_Yesac_direct_abstract_declarator*
+ Yesac_direct_abstract_declarator(ac_direct_abstract_declarator _ac_direct_abstract_declarator_1) {
+ assertPhylum(_ac_direct_abstract_declarator_1, phylum_ac_direct_abstract_declarator);
+ ac_direct_abstract_declarator_option kc_x = new impl_ac_direct_abstract_declarator_option_Yesac_direct_abstract_declarator(_ac_direct_abstract_declarator_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Yesac_direct_abstract_declarator));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Yesac_direct_abstract_declarator));
+ kc_x->post_create();
+ return static_cast<impl_ac_direct_abstract_declarator_option_Yesac_direct_abstract_declarator*>(kc_x);
+ }
+
+ impl_ac_direct_abstract_declarator_AcDirAbsdeclPack*
+ AcDirAbsdeclPack(ac_abstract_declarator _ac_abstract_declarator_1) {
+ assertPhylum(_ac_abstract_declarator_1, phylum_ac_abstract_declarator);
+ ac_direct_abstract_declarator kc_x = new impl_ac_direct_abstract_declarator_AcDirAbsdeclPack(_ac_abstract_declarator_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDirAbsdeclPack));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDirAbsdeclPack));
+ kc_x->post_create();
+ return static_cast<impl_ac_direct_abstract_declarator_AcDirAbsdeclPack*>(kc_x);
+ }
+
+ impl_ac_direct_abstract_declarator_AcDirAbsdeclArray*
+ AcDirAbsdeclArray(ac_direct_abstract_declarator_option _ac_direct_abstract_declarator_option_1, ac_constant_expression_option _ac_constant_expression_option_1) {
+ assertPhylum(_ac_direct_abstract_declarator_option_1, phylum_ac_direct_abstract_declarator_option);
+ assertPhylum(_ac_constant_expression_option_1, phylum_ac_constant_expression_option);
+ ac_direct_abstract_declarator kc_x = new impl_ac_direct_abstract_declarator_AcDirAbsdeclArray(_ac_direct_abstract_declarator_option_1, _ac_constant_expression_option_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDirAbsdeclArray));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDirAbsdeclArray));
+ kc_x->post_create();
+ return static_cast<impl_ac_direct_abstract_declarator_AcDirAbsdeclArray*>(kc_x);
+ }
+
+ impl_ac_direct_abstract_declarator_AcDirAbsdeclFn*
+ AcDirAbsdeclFn(ac_direct_abstract_declarator_option _ac_direct_abstract_declarator_option_1, ac_parameter_type_list _ac_parameter_type_list_1) {
+ assertPhylum(_ac_direct_abstract_declarator_option_1, phylum_ac_direct_abstract_declarator_option);
+ assertPhylum(_ac_parameter_type_list_1, phylum_ac_parameter_type_list);
+ ac_direct_abstract_declarator kc_x = new impl_ac_direct_abstract_declarator_AcDirAbsdeclFn(_ac_direct_abstract_declarator_option_1, _ac_parameter_type_list_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDirAbsdeclFn));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDirAbsdeclFn));
+ kc_x->post_create();
+ return static_cast<impl_ac_direct_abstract_declarator_AcDirAbsdeclFn*>(kc_x);
+ }
+
+ impl_ac_constant_expression_option_Yesac_constant_expression*
+ Yesac_constant_expression(ac_constant_expression _ac_constant_expression_1) {
+ assertPhylum(_ac_constant_expression_1, phylum_ac_constant_expression);
+ ac_constant_expression_option kc_x = new impl_ac_constant_expression_option_Yesac_constant_expression(_ac_constant_expression_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Yesac_constant_expression));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Yesac_constant_expression));
+ kc_x->post_create();
+ return static_cast<impl_ac_constant_expression_option_Yesac_constant_expression*>(kc_x);
+ }
+
+ impl_ac_constant_expression_option_Noac_constant_expression*
+ Noac_constant_expression() {
+ ac_constant_expression_option kc_x = new impl_ac_constant_expression_option_Noac_constant_expression();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Noac_constant_expression));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Noac_constant_expression));
+ kc_x->post_create();
+ return static_cast<impl_ac_constant_expression_option_Noac_constant_expression*>(kc_x);
+ }
+
+ impl_ac_constant_expression_AcConstExpr*
+ AcConstExpr(Cexpression _Cexpression_1) {
+ assertPhylum(_Cexpression_1, phylum_Cexpression);
+ ac_constant_expression kc_x = new impl_ac_constant_expression_AcConstExpr(_Cexpression_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcConstExpr));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcConstExpr));
+ kc_x->post_create();
+ return static_cast<impl_ac_constant_expression_AcConstExpr*>(kc_x);
+ }
+
+ impl_ac_constant_expression_list*
+ Nilac_constant_expression_list() {
+ ac_constant_expression_list kc_x = new impl_ac_constant_expression_list();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilac_constant_expression_list));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilac_constant_expression_list));
+ kc_x->post_create();
+ return static_cast<impl_ac_constant_expression_list*>(kc_x);
+ }
+
+ impl_ac_constant_expression_list*
+ Consac_constant_expression_list(ac_constant_expression _ac_constant_expression_1, ac_constant_expression_list _ac_constant_expression_list_1) {
+ assertPhylum(_ac_constant_expression_1, phylum_ac_constant_expression);
+ assertPhylum(_ac_constant_expression_list_1, phylum_ac_constant_expression_list);
+ ac_constant_expression_list kc_x = new impl_ac_constant_expression_list(_ac_constant_expression_1, _ac_constant_expression_list_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consac_constant_expression_list));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consac_constant_expression_list));
+ kc_x->post_create();
+ return static_cast<impl_ac_constant_expression_list*>(kc_x);
+ }
+
+ impl_ac_opt_base_init_list_AcNoBaseInit*
+ AcNoBaseInit() {
+ ac_opt_base_init_list kc_x = new impl_ac_opt_base_init_list_AcNoBaseInit();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcNoBaseInit));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcNoBaseInit));
+ kc_x->post_create();
+ return static_cast<impl_ac_opt_base_init_list_AcNoBaseInit*>(kc_x);
+ }
+
+ impl_ac_opt_base_init_list_AcYesBaseInit*
+ AcYesBaseInit(ac_base_init_list _ac_base_init_list_1) {
+ assertPhylum(_ac_base_init_list_1, phylum_ac_base_init_list);
+ ac_opt_base_init_list kc_x = new impl_ac_opt_base_init_list_AcYesBaseInit(_ac_base_init_list_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcYesBaseInit));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcYesBaseInit));
+ kc_x->post_create();
+ return static_cast<impl_ac_opt_base_init_list_AcYesBaseInit*>(kc_x);
+ }
+
+ impl_ac_base_init_list*
+ Nilac_base_init_list() {
+ ac_base_init_list kc_x = new impl_ac_base_init_list();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilac_base_init_list));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilac_base_init_list));
+ kc_x->post_create();
+ return static_cast<impl_ac_base_init_list*>(kc_x);
+ }
+
+ impl_ac_base_init_list*
+ Consac_base_init_list(ac_base_init _ac_base_init_1, ac_base_init_list _ac_base_init_list_1) {
+ assertPhylum(_ac_base_init_1, phylum_ac_base_init);
+ assertPhylum(_ac_base_init_list_1, phylum_ac_base_init_list);
+ ac_base_init_list kc_x = new impl_ac_base_init_list(_ac_base_init_1, _ac_base_init_list_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consac_base_init_list));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consac_base_init_list));
+ kc_x->post_create();
+ return static_cast<impl_ac_base_init_list*>(kc_x);
+ }
+
+ impl_ac_base_init_AcBaseInit*
+ AcBaseInit(ID _ID_1, ac_constant_expression _ac_constant_expression_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_ac_constant_expression_1, phylum_ac_constant_expression);
+ ac_base_init kc_x = new impl_ac_base_init_AcBaseInit(_ID_1, _ac_constant_expression_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcBaseInit));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcBaseInit));
+ kc_x->post_create();
+ return static_cast<impl_ac_base_init_AcBaseInit*>(kc_x);
+ }
+
+ impl_baseclass_declarations*
+ Nilbaseclass_declarations() {
+ baseclass_declarations kc_x = new impl_baseclass_declarations();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilbaseclass_declarations));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilbaseclass_declarations));
+ kc_x->post_create();
+ return static_cast<impl_baseclass_declarations*>(kc_x);
+ }
+
+ impl_baseclass_declarations*
+ Consbaseclass_declarations(baseclass_decl _baseclass_decl_1, baseclass_declarations _baseclass_declarations_1) {
+ assertPhylum(_baseclass_decl_1, phylum_baseclass_decl);
+ assertPhylum(_baseclass_declarations_1, phylum_baseclass_declarations);
+ baseclass_declarations kc_x = new impl_baseclass_declarations(_baseclass_decl_1, _baseclass_declarations_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consbaseclass_declarations));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consbaseclass_declarations));
+ kc_x->post_create();
+ return static_cast<impl_baseclass_declarations*>(kc_x);
+ }
+
+ impl_baseclass_decl_BaseClassDecl*
+ BaseClassDecl(ID _ID_1, baseclass_list _baseclass_list_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_baseclass_list_1, phylum_baseclass_list);
+ baseclass_decl kc_x = new impl_baseclass_decl_BaseClassDecl(_ID_1, _baseclass_list_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_BaseClassDecl));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_BaseClassDecl));
+ kc_x->post_create();
+ return static_cast<impl_baseclass_decl_BaseClassDecl*>(kc_x);
+ }
+
+ impl_baseclass_list*
+ Nilbaseclass_list() {
+ baseclass_list kc_x = new impl_baseclass_list();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilbaseclass_list));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilbaseclass_list));
+ kc_x->post_create();
+ return static_cast<impl_baseclass_list*>(kc_x);
+ }
+
+ impl_baseclass_list*
+ Consbaseclass_list(ID _ID_1, baseclass_list _baseclass_list_1) {
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_baseclass_list_1, phylum_baseclass_list);
+ baseclass_list kc_x = new impl_baseclass_list(_ID_1, _baseclass_list_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consbaseclass_list));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consbaseclass_list));
+ kc_x->post_create();
+ return static_cast<impl_baseclass_list*>(kc_x);
+ }
+
+ impl_error_Fatal*
+ Fatal(fileline _fileline_1, problem _problem_1) {
+ assertPhylum(_fileline_1, phylum_fileline);
+ assertPhylum(_problem_1, phylum_problem);
+ error kc_x = new impl_error_Fatal(_fileline_1, _problem_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Fatal));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Fatal));
+ kc_x->post_create();
+ return static_cast<impl_error_Fatal*>(kc_x);
+ }
+
+ impl_error_NonFatal*
+ NonFatal(fileline _fileline_1, problem _problem_1) {
+ assertPhylum(_fileline_1, phylum_fileline);
+ assertPhylum(_problem_1, phylum_problem);
+ error kc_x = new impl_error_NonFatal(_fileline_1, _problem_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NonFatal));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NonFatal));
+ kc_x->post_create();
+ return static_cast<impl_error_NonFatal*>(kc_x);
+ }
+
+ impl_error_Warning*
+ Warning(fileline _fileline_1, problem _problem_1) {
+ assertPhylum(_fileline_1, phylum_fileline);
+ assertPhylum(_problem_1, phylum_problem);
+ error kc_x = new impl_error_Warning(_fileline_1, _problem_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Warning));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Warning));
+ kc_x->post_create();
+ return static_cast<impl_error_Warning*>(kc_x);
+ }
+
+ impl_problem_Problem1*
+ Problem1(casestring _casestring_1) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ problem kc_x = new impl_problem_Problem1(_casestring_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1));
+ kc_x->post_create();
+ return static_cast<impl_problem_Problem1*>(kc_x);
+ }
+
+ impl_problem_Problem1ID*
+ Problem1ID(casestring _casestring_1, ID _ID_1) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ assertPhylum(_ID_1, phylum_ID);
+ problem kc_x = new impl_problem_Problem1ID(_casestring_1, _ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1ID));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1ID));
+ kc_x->post_create();
+ return static_cast<impl_problem_Problem1ID*>(kc_x);
+ }
+
+ impl_problem_Problem1tID*
+ Problem1tID(casestring _casestring_1, ID _ID_1) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ assertPhylum(_ID_1, phylum_ID);
+ problem kc_x = new impl_problem_Problem1tID(_casestring_1, _ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1tID));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1tID));
+ kc_x->post_create();
+ return static_cast<impl_problem_Problem1tID*>(kc_x);
+ }
+
+ impl_problem_Problem1we*
+ Problem1we(casestring _casestring_1, withexpression _withexpression_1) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ assertPhylum(_withexpression_1, phylum_withexpression);
+ problem kc_x = new impl_problem_Problem1we(_casestring_1, _withexpression_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1we));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1we));
+ kc_x->post_create();
+ return static_cast<impl_problem_Problem1we*>(kc_x);
+ }
+
+ impl_problem_Problem1ID1ID*
+ Problem1ID1ID(casestring _casestring_1, ID _ID_1, casestring _casestring_2, ID _ID_2) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_casestring_2, phylum_casestring);
+ assertPhylum(_ID_2, phylum_ID);
+ problem kc_x = new impl_problem_Problem1ID1ID(_casestring_1, _ID_1, _casestring_2, _ID_2);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1ID1ID));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1ID1ID));
+ kc_x->post_create();
+ return static_cast<impl_problem_Problem1ID1ID*>(kc_x);
+ }
+
+ impl_problem_Problem1t1ID*
+ Problem1t1ID(casestring _casestring_1, IDtype _IDtype_1, casestring _casestring_2, ID _ID_1) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ assertPhylum(_IDtype_1, phylum_IDtype);
+ assertPhylum(_casestring_2, phylum_casestring);
+ assertPhylum(_ID_1, phylum_ID);
+ problem kc_x = new impl_problem_Problem1t1ID(_casestring_1, _IDtype_1, _casestring_2, _ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1t1ID));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1t1ID));
+ kc_x->post_create();
+ return static_cast<impl_problem_Problem1t1ID*>(kc_x);
+ }
+
+ impl_problem_Problem1INT*
+ Problem1INT(casestring _casestring_1, INT _INT_1) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ assertPhylum(_INT_1, phylum_INT);
+ problem kc_x = new impl_problem_Problem1INT(_casestring_1, _INT_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1INT));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1INT));
+ kc_x->post_create();
+ return static_cast<impl_problem_Problem1INT*>(kc_x);
+ }
+
+ impl_problem_Problem1int1*
+ Problem1int1(casestring _casestring_1, integer _integer_1, casestring _casestring_2) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ assertPhylum(_integer_1, phylum_integer);
+ assertPhylum(_casestring_2, phylum_casestring);
+ problem kc_x = new impl_problem_Problem1int1(_casestring_1, _integer_1, _casestring_2);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1int1));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1int1));
+ kc_x->post_create();
+ return static_cast<impl_problem_Problem1int1*>(kc_x);
+ }
+
+ impl_problem_Problem1INT1ID*
+ Problem1INT1ID(casestring _casestring_1, INT _INT_1, casestring _casestring_2, ID _ID_1) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ assertPhylum(_INT_1, phylum_INT);
+ assertPhylum(_casestring_2, phylum_casestring);
+ assertPhylum(_ID_1, phylum_ID);
+ problem kc_x = new impl_problem_Problem1INT1ID(_casestring_1, _INT_1, _casestring_2, _ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1INT1ID));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1INT1ID));
+ kc_x->post_create();
+ return static_cast<impl_problem_Problem1INT1ID*>(kc_x);
+ }
+
+ impl_problem_Problem1ID1ID1ID*
+ Problem1ID1ID1ID(casestring _casestring_1, ID _ID_1, casestring _casestring_2, ID _ID_2, casestring _casestring_3, ID _ID_3) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_casestring_2, phylum_casestring);
+ assertPhylum(_ID_2, phylum_ID);
+ assertPhylum(_casestring_3, phylum_casestring);
+ assertPhylum(_ID_3, phylum_ID);
+ problem kc_x = new impl_problem_Problem1ID1ID1ID(_casestring_1, _ID_1, _casestring_2, _ID_2, _casestring_3, _ID_3);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1ID1ID1ID));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1ID1ID1ID));
+ kc_x->post_create();
+ return static_cast<impl_problem_Problem1ID1ID1ID*>(kc_x);
+ }
+
+ impl_problem_Problem1INT1ID1ID*
+ Problem1INT1ID1ID(casestring _casestring_1, INT _INT_1, casestring _casestring_2, ID _ID_1, casestring _casestring_3, ID _ID_2) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ assertPhylum(_INT_1, phylum_INT);
+ assertPhylum(_casestring_2, phylum_casestring);
+ assertPhylum(_ID_1, phylum_ID);
+ assertPhylum(_casestring_3, phylum_casestring);
+ assertPhylum(_ID_2, phylum_ID);
+ problem kc_x = new impl_problem_Problem1INT1ID1ID(_casestring_1, _INT_1, _casestring_2, _ID_1, _casestring_3, _ID_2);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1INT1ID1ID));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1INT1ID1ID));
+ kc_x->post_create();
+ return static_cast<impl_problem_Problem1INT1ID1ID*>(kc_x);
+ }
+
+ impl_problem_Problem1storageoption1ID*
+ Problem1storageoption1ID(casestring _casestring_1, storageoption _storageoption_1, casestring _casestring_2, ID _ID_1) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ assertPhylum(_storageoption_1, phylum_storageoption);
+ assertPhylum(_casestring_2, phylum_casestring);
+ assertPhylum(_ID_1, phylum_ID);
+ problem kc_x = new impl_problem_Problem1storageoption1ID(_casestring_1, _storageoption_1, _casestring_2, _ID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1storageoption1ID));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1storageoption1ID));
+ kc_x->post_create();
+ return static_cast<impl_problem_Problem1storageoption1ID*>(kc_x);
+ }
+
+ impl_problem_Problem2*
+ Problem2(casestring _casestring_1, casestring _casestring_2) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ assertPhylum(_casestring_2, phylum_casestring);
+ problem kc_x = new impl_problem_Problem2(_casestring_1, _casestring_2);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem2));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem2));
+ kc_x->post_create();
+ return static_cast<impl_problem_Problem2*>(kc_x);
+ }
+
+ impl_problem_Problem3*
+ Problem3(casestring _casestring_1, casestring _casestring_2, casestring _casestring_3) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ assertPhylum(_casestring_2, phylum_casestring);
+ assertPhylum(_casestring_3, phylum_casestring);
+ problem kc_x = new impl_problem_Problem3(_casestring_1, _casestring_2, _casestring_3);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem3));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem3));
+ kc_x->post_create();
+ return static_cast<impl_problem_Problem3*>(kc_x);
+ }
+
+ impl_problem_Problem3int1*
+ Problem3int1(casestring _casestring_1, casestring _casestring_2, casestring _casestring_3, integer _integer_1, casestring _casestring_4) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ assertPhylum(_casestring_2, phylum_casestring);
+ assertPhylum(_casestring_3, phylum_casestring);
+ assertPhylum(_integer_1, phylum_integer);
+ assertPhylum(_casestring_4, phylum_casestring);
+ problem kc_x = new impl_problem_Problem3int1(_casestring_1, _casestring_2, _casestring_3, _integer_1, _casestring_4);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem3int1));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem3int1));
+ kc_x->post_create();
+ return static_cast<impl_problem_Problem3int1*>(kc_x);
+ }
+
+ impl_problem_Problem4*
+ Problem4(casestring _casestring_1, casestring _casestring_2, casestring _casestring_3, casestring _casestring_4) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ assertPhylum(_casestring_2, phylum_casestring);
+ assertPhylum(_casestring_3, phylum_casestring);
+ assertPhylum(_casestring_4, phylum_casestring);
+ problem kc_x = new impl_problem_Problem4(_casestring_1, _casestring_2, _casestring_3, _casestring_4);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem4));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem4));
+ kc_x->post_create();
+ return static_cast<impl_problem_Problem4*>(kc_x);
+ }
+
+ impl_problem_Problem5*
+ Problem5(casestring _casestring_1, casestring _casestring_2, casestring _casestring_3, casestring _casestring_4, casestring _casestring_5) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ assertPhylum(_casestring_2, phylum_casestring);
+ assertPhylum(_casestring_3, phylum_casestring);
+ assertPhylum(_casestring_4, phylum_casestring);
+ assertPhylum(_casestring_5, phylum_casestring);
+ problem kc_x = new impl_problem_Problem5(_casestring_1, _casestring_2, _casestring_3, _casestring_4, _casestring_5);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem5));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem5));
+ kc_x->post_create();
+ return static_cast<impl_problem_Problem5*>(kc_x);
+ }
+
+ impl_problem_Problem6*
+ Problem6(casestring _casestring_1, casestring _casestring_2, casestring _casestring_3, casestring _casestring_4, casestring _casestring_5, casestring _casestring_6) {
+ assertPhylum(_casestring_1, phylum_casestring);
+ assertPhylum(_casestring_2, phylum_casestring);
+ assertPhylum(_casestring_3, phylum_casestring);
+ assertPhylum(_casestring_4, phylum_casestring);
+ assertPhylum(_casestring_5, phylum_casestring);
+ assertPhylum(_casestring_6, phylum_casestring);
+ problem kc_x = new impl_problem_Problem6(_casestring_1, _casestring_2, _casestring_3, _casestring_4, _casestring_5, _casestring_6);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem6));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem6));
+ kc_x->post_create();
+ return static_cast<impl_problem_Problem6*>(kc_x);
+ }
+
+ impl_addedphylumdeclarations*
+ Niladdedphylumdeclarations() {
+ addedphylumdeclarations kc_x = new impl_addedphylumdeclarations();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Niladdedphylumdeclarations));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Niladdedphylumdeclarations));
+ kc_x->post_create();
+ return static_cast<impl_addedphylumdeclarations*>(kc_x);
+ }
+
+ impl_addedphylumdeclarations*
+ Consaddedphylumdeclarations(addedphylumdeclaration _addedphylumdeclaration_1, addedphylumdeclarations _addedphylumdeclarations_1) {
+ assertPhylum(_addedphylumdeclaration_1, phylum_addedphylumdeclaration);
+ assertPhylum(_addedphylumdeclarations_1, phylum_addedphylumdeclarations);
+ addedphylumdeclarations kc_x = new impl_addedphylumdeclarations(_addedphylumdeclaration_1, _addedphylumdeclarations_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consaddedphylumdeclarations));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consaddedphylumdeclarations));
+ kc_x->post_create();
+ return static_cast<impl_addedphylumdeclarations*>(kc_x);
+ }
+
+ impl_addedphylumdeclaration_AddedPhylumdeclaration*
+ AddedPhylumdeclaration(uniqID _uniqID_1) {
+ assertPhylum(_uniqID_1, phylum_uniqID);
+ addedphylumdeclaration kc_x = new impl_addedphylumdeclaration_AddedPhylumdeclaration(_uniqID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AddedPhylumdeclaration));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AddedPhylumdeclaration));
+ kc_x->post_create();
+ kc_x = kc_initialize_addedphylumdeclaration(kc_x);
+ return static_cast<impl_addedphylumdeclaration_AddedPhylumdeclaration*>(kc_x);
+ }
+
+ impl_countedphylumdeclarations*
+ Nilcountedphylumdeclarations() {
+ countedphylumdeclarations kc_x = new impl_countedphylumdeclarations();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilcountedphylumdeclarations));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilcountedphylumdeclarations));
+ kc_x->post_create();
+ return static_cast<impl_countedphylumdeclarations*>(kc_x);
+ }
+
+ impl_countedphylumdeclarations*
+ Conscountedphylumdeclarations(countedphylumdeclaration _countedphylumdeclaration_1, countedphylumdeclarations _countedphylumdeclarations_1) {
+ assertPhylum(_countedphylumdeclaration_1, phylum_countedphylumdeclaration);
+ assertPhylum(_countedphylumdeclarations_1, phylum_countedphylumdeclarations);
+ countedphylumdeclarations kc_x = new impl_countedphylumdeclarations(_countedphylumdeclaration_1, _countedphylumdeclarations_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conscountedphylumdeclarations));
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conscountedphylumdeclarations));
+ kc_x->post_create();
+ return static_cast<impl_countedphylumdeclarations*>(kc_x);
+ }
+
+ impl_countedphylumdeclaration_CountedPhylumdeclaration*
+ CountedPhylumdeclaration(uniqID _uniqID_1) {
+ assertPhylum(_uniqID_1, phylum_uniqID);
+ countedphylumdeclaration kc_x=new impl_countedphylumdeclaration_CountedPhylumdeclaration(_uniqID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CountedPhylumdeclaration));
+ countedphylumdeclaration unique_kc_x= hashtables[uniq]->ht_check_insert(kc_x);
+ if(unique_kc_x!=kc_x) {
+ delete kc_x;
+ kc_x=unique_kc_x;
+ } else {
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CountedPhylumdeclaration));
+ kc_x->post_create();
+ kc_x = kc_initialize_countedphylumdeclaration(kc_x);
+ }
+ return static_cast<impl_countedphylumdeclaration_CountedPhylumdeclaration*>(kc_x);
+ }
+
+ impl_charruns_Newlines*
+ Newlines() {
+ charruns kc_x=new impl_charruns_Newlines();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Newlines));
+ charruns unique_kc_x= hashtables[uniq]->ht_check_insert(kc_x);
+ if(unique_kc_x!=kc_x) {
+ delete kc_x;
+ kc_x=unique_kc_x;
+ } else {
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Newlines));
+ kc_x->post_create();
+ }
+ return static_cast<impl_charruns_Newlines*>(kc_x);
+ }
+
+ impl_charruns_QuotedNewlines*
+ QuotedNewlines() {
+ charruns kc_x=new impl_charruns_QuotedNewlines();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_QuotedNewlines));
+ charruns unique_kc_x= hashtables[uniq]->ht_check_insert(kc_x);
+ if(unique_kc_x!=kc_x) {
+ delete kc_x;
+ kc_x=unique_kc_x;
+ } else {
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_QuotedNewlines));
+ kc_x->post_create();
+ }
+ return static_cast<impl_charruns_QuotedNewlines*>(kc_x);
+ }
+
+ impl_charruns_Stars*
+ Stars() {
+ charruns kc_x=new impl_charruns_Stars();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Stars));
+ charruns unique_kc_x= hashtables[uniq]->ht_check_insert(kc_x);
+ if(unique_kc_x!=kc_x) {
+ delete kc_x;
+ kc_x=unique_kc_x;
+ } else {
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Stars));
+ kc_x->post_create();
+ }
+ return static_cast<impl_charruns_Stars*>(kc_x);
+ }
+
+ impl_bindingidmarks*
+ Nilbindingidmarks() {
+ bindingidmarks kc_x=new impl_bindingidmarks();
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilbindingidmarks));
+ bindingidmarks unique_kc_x= hashtables[uniq]->ht_check_insert(kc_x);
+ if(unique_kc_x!=kc_x) {
+ delete kc_x;
+ kc_x=unique_kc_x;
+ } else {
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilbindingidmarks));
+ kc_x->post_create();
+ }
+ return static_cast<impl_bindingidmarks*>(kc_x);
+ }
+
+ impl_bindingidmarks*
+ Consbindingidmarks(bindingidmark _bindingidmark_1, bindingidmarks _bindingidmarks_1) {
+ assertPhylum(_bindingidmark_1, phylum_bindingidmark);
+ assertPhylum(_bindingidmarks_1, phylum_bindingidmarks);
+ bindingidmarks kc_x=new impl_bindingidmarks(_bindingidmark_1, _bindingidmarks_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consbindingidmarks));
+ bindingidmarks unique_kc_x= hashtables[uniq]->ht_check_insert(kc_x);
+ if(unique_kc_x!=kc_x) {
+ delete kc_x;
+ kc_x=unique_kc_x;
+ } else {
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consbindingidmarks));
+ kc_x->post_create();
+ }
+ return static_cast<impl_bindingidmarks*>(kc_x);
+ }
+
+ impl_bindingidmark_BindingIdMark*
+ BindingIdMark(uniqID _uniqID_1) {
+ assertPhylum(_uniqID_1, phylum_uniqID);
+ bindingidmark kc_x=new impl_bindingidmark_BindingIdMark(_uniqID_1);
+ KC_COLLECT_STATS0(KC_CREATE_STATS(sel_BindingIdMark));
+ bindingidmark unique_kc_x= hashtables[uniq]->ht_check_insert(kc_x);
+ if(unique_kc_x!=kc_x) {
+ delete kc_x;
+ kc_x=unique_kc_x;
+ } else {
+ KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_BindingIdMark));
+ kc_x->post_create();
+ kc_x = kc_initialize_bindingidmark(kc_x);
+ }
+ return static_cast<impl_bindingidmark_BindingIdMark*>(kc_x);
+ }
+
+
+ abstract_phylum
+ kc_create(enum_operators createOp, abstract_phylum kc_p1, abstract_phylum kc_p2, abstract_phylum kc_p3, abstract_phylum kc_p4, abstract_phylum kc_p5, abstract_phylum kc_p6, abstract_phylum kc_p7)
+ {
+ switch(createOp) {
+ case sel__VoidPtr:
+ case sel__Int:
+ case sel__Real:
+ case sel__Str:
+ case sel_NoCaseStr:
+ assertionFailed("Cannot create this kind of phylum - predefined phyla must be handled seperately");break;
+ case sel_BindingIdMark:
+ return BindingIdMark(phylum_cast<uniqID>(kc_p1));
+ case sel_Consbindingidmarks:
+ return Consbindingidmarks(phylum_cast<bindingidmark>(kc_p1), phylum_cast<bindingidmarks>(kc_p2));
+ case sel_Nilbindingidmarks:
+ return Nilbindingidmarks();
+ case sel_Stars:
+ return Stars();
+ case sel_QuotedNewlines:
+ return QuotedNewlines();
+ case sel_Newlines:
+ return Newlines();
+ case sel_CountedPhylumdeclaration:
+ return CountedPhylumdeclaration(phylum_cast<uniqID>(kc_p1));
+ case sel_Conscountedphylumdeclarations:
+ return Conscountedphylumdeclarations(phylum_cast<countedphylumdeclaration>(kc_p1), phylum_cast<countedphylumdeclarations>(kc_p2));
+ case sel_Nilcountedphylumdeclarations:
+ return Nilcountedphylumdeclarations();
+ case sel_AddedPhylumdeclaration:
+ return AddedPhylumdeclaration(phylum_cast<uniqID>(kc_p1));
+ case sel_Consaddedphylumdeclarations:
+ return Consaddedphylumdeclarations(phylum_cast<addedphylumdeclaration>(kc_p1), phylum_cast<addedphylumdeclarations>(kc_p2));
+ case sel_Niladdedphylumdeclarations:
+ return Niladdedphylumdeclarations();
+ case sel_Problem6:
+ return Problem6(phylum_cast<casestring>(kc_p1), phylum_cast<casestring>(kc_p2), phylum_cast<casestring>(kc_p3), phylum_cast<casestring>(kc_p4), phylum_cast<casestring>(kc_p5), phylum_cast<casestring>(kc_p6));
+ case sel_Problem5:
+ return Problem5(phylum_cast<casestring>(kc_p1), phylum_cast<casestring>(kc_p2), phylum_cast<casestring>(kc_p3), phylum_cast<casestring>(kc_p4), phylum_cast<casestring>(kc_p5));
+ case sel_Problem4:
+ return Problem4(phylum_cast<casestring>(kc_p1), phylum_cast<casestring>(kc_p2), phylum_cast<casestring>(kc_p3), phylum_cast<casestring>(kc_p4));
+ case sel_Problem3int1:
+ return Problem3int1(phylum_cast<casestring>(kc_p1), phylum_cast<casestring>(kc_p2), phylum_cast<casestring>(kc_p3), phylum_cast<integer>(kc_p4), phylum_cast<casestring>(kc_p5));
+ case sel_Problem3:
+ return Problem3(phylum_cast<casestring>(kc_p1), phylum_cast<casestring>(kc_p2), phylum_cast<casestring>(kc_p3));
+ case sel_Problem2:
+ return Problem2(phylum_cast<casestring>(kc_p1), phylum_cast<casestring>(kc_p2));
+ case sel_Problem1storageoption1ID:
+ return Problem1storageoption1ID(phylum_cast<casestring>(kc_p1), phylum_cast<storageoption>(kc_p2), phylum_cast<casestring>(kc_p3), phylum_cast<ID>(kc_p4));
+ case sel_Problem1INT1ID1ID:
+ return Problem1INT1ID1ID(phylum_cast<casestring>(kc_p1), phylum_cast<INT>(kc_p2), phylum_cast<casestring>(kc_p3), phylum_cast<ID>(kc_p4), phylum_cast<casestring>(kc_p5), phylum_cast<ID>(kc_p6));
+ case sel_Problem1ID1ID1ID:
+ return Problem1ID1ID1ID(phylum_cast<casestring>(kc_p1), phylum_cast<ID>(kc_p2), phylum_cast<casestring>(kc_p3), phylum_cast<ID>(kc_p4), phylum_cast<casestring>(kc_p5), phylum_cast<ID>(kc_p6));
+ case sel_Problem1INT1ID:
+ return Problem1INT1ID(phylum_cast<casestring>(kc_p1), phylum_cast<INT>(kc_p2), phylum_cast<casestring>(kc_p3), phylum_cast<ID>(kc_p4));
+ case sel_Problem1int1:
+ return Problem1int1(phylum_cast<casestring>(kc_p1), phylum_cast<integer>(kc_p2), phylum_cast<casestring>(kc_p3));
+ case sel_Problem1INT:
+ return Problem1INT(phylum_cast<casestring>(kc_p1), phylum_cast<INT>(kc_p2));
+ case sel_Problem1t1ID:
+ return Problem1t1ID(phylum_cast<casestring>(kc_p1), phylum_cast<IDtype>(kc_p2), phylum_cast<casestring>(kc_p3), phylum_cast<ID>(kc_p4));
+ case sel_Problem1ID1ID:
+ return Problem1ID1ID(phylum_cast<casestring>(kc_p1), phylum_cast<ID>(kc_p2), phylum_cast<casestring>(kc_p3), phylum_cast<ID>(kc_p4));
+ case sel_Problem1we:
+ return Problem1we(phylum_cast<casestring>(kc_p1), phylum_cast<withexpression>(kc_p2));
+ case sel_Problem1tID:
+ return Problem1tID(phylum_cast<casestring>(kc_p1), phylum_cast<ID>(kc_p2));
+ case sel_Problem1ID:
+ return Problem1ID(phylum_cast<casestring>(kc_p1), phylum_cast<ID>(kc_p2));
+ case sel_Problem1:
+ return Problem1(phylum_cast<casestring>(kc_p1));
+ case sel_Warning:
+ return Warning(phylum_cast<fileline>(kc_p1), phylum_cast<problem>(kc_p2));
+ case sel_NonFatal:
+ return NonFatal(phylum_cast<fileline>(kc_p1), phylum_cast<problem>(kc_p2));
+ case sel_Fatal:
+ return Fatal(phylum_cast<fileline>(kc_p1), phylum_cast<problem>(kc_p2));
+ case sel_Consbaseclass_list:
+ return Consbaseclass_list(phylum_cast<ID>(kc_p1), phylum_cast<baseclass_list>(kc_p2));
+ case sel_Nilbaseclass_list:
+ return Nilbaseclass_list();
+ case sel_BaseClassDecl:
+ return BaseClassDecl(phylum_cast<ID>(kc_p1), phylum_cast<baseclass_list>(kc_p2));
+ case sel_Consbaseclass_declarations:
+ return Consbaseclass_declarations(phylum_cast<baseclass_decl>(kc_p1), phylum_cast<baseclass_declarations>(kc_p2));
+ case sel_Nilbaseclass_declarations:
+ return Nilbaseclass_declarations();
+ case sel_AcBaseInit:
+ return AcBaseInit(phylum_cast<ID>(kc_p1), phylum_cast<ac_constant_expression>(kc_p2));
+ case sel_Consac_base_init_list:
+ return Consac_base_init_list(phylum_cast<ac_base_init>(kc_p1), phylum_cast<ac_base_init_list>(kc_p2));
+ case sel_Nilac_base_init_list:
+ return Nilac_base_init_list();
+ case sel_AcYesBaseInit:
+ return AcYesBaseInit(phylum_cast<ac_base_init_list>(kc_p1));
+ case sel_AcNoBaseInit:
+ return AcNoBaseInit();
+ case sel_Consac_constant_expression_list:
+ return Consac_constant_expression_list(phylum_cast<ac_constant_expression>(kc_p1), phylum_cast<ac_constant_expression_list>(kc_p2));
+ case sel_Nilac_constant_expression_list:
+ return Nilac_constant_expression_list();
+ case sel_AcConstExpr:
+ return AcConstExpr(phylum_cast<Cexpression>(kc_p1));
+ case sel_Noac_constant_expression:
+ return Noac_constant_expression();
+ case sel_Yesac_constant_expression:
+ return Yesac_constant_expression(phylum_cast<ac_constant_expression>(kc_p1));
+ case sel_AcDirAbsdeclFn:
+ return AcDirAbsdeclFn(phylum_cast<ac_direct_abstract_declarator_option>(kc_p1), phylum_cast<ac_parameter_type_list>(kc_p2));
+ case sel_AcDirAbsdeclArray:
+ return AcDirAbsdeclArray(phylum_cast<ac_direct_abstract_declarator_option>(kc_p1), phylum_cast<ac_constant_expression_option>(kc_p2));
+ case sel_AcDirAbsdeclPack:
+ return AcDirAbsdeclPack(phylum_cast<ac_abstract_declarator>(kc_p1));
+ case sel_Yesac_direct_abstract_declarator:
+ return Yesac_direct_abstract_declarator(phylum_cast<ac_direct_abstract_declarator>(kc_p1));
+ case sel_Noac_direct_abstract_declarator:
+ return Noac_direct_abstract_declarator();
+ case sel_AcAbsdeclDirdecl:
+ return AcAbsdeclDirdecl(phylum_cast<ac_pointer_option>(kc_p1), phylum_cast<ac_direct_abstract_declarator>(kc_p2));
+ case sel_AcAbsdeclPointer:
+ return AcAbsdeclPointer(phylum_cast<ac_pointer>(kc_p1));
+ case sel_Consac_identifier_list:
+ return Consac_identifier_list(phylum_cast<ID>(kc_p1), phylum_cast<ac_identifier_list>(kc_p2));
+ case sel_Nilac_identifier_list:
+ return Nilac_identifier_list();
+ case sel_AcParDeclAbsdecl:
+ return AcParDeclAbsdecl(phylum_cast<ac_declaration_specifiers>(kc_p1), phylum_cast<ac_abstract_declarator>(kc_p2), phylum_cast<ac_constant_expression_option>(kc_p3));
+ case sel_AcParDeclDecl:
+ return AcParDeclDecl(phylum_cast<ac_declaration_specifiers>(kc_p1), phylum_cast<ac_declarator>(kc_p2), phylum_cast<ac_constant_expression_option>(kc_p3));
+ case sel_Consac_parameter_list:
+ return Consac_parameter_list(phylum_cast<ac_parameter_declaration>(kc_p1), phylum_cast<ac_parameter_list>(kc_p2));
+ case sel_Nilac_parameter_list:
+ return Nilac_parameter_list();
+ case sel_AcParList3Dot:
+ return AcParList3Dot(phylum_cast<ac_parameter_list>(kc_p1));
+ case sel_AcParList:
+ return AcParList(phylum_cast<ac_parameter_list>(kc_p1));
+ case sel_Consac_type_qualifier_list:
+ return Consac_type_qualifier_list(phylum_cast<ac_type_qualifier>(kc_p1), phylum_cast<ac_type_qualifier_list>(kc_p2));
+ case sel_Nilac_type_qualifier_list:
+ return Nilac_type_qualifier_list();
+ case sel_Consac_class_qualifier_list:
+ return Consac_class_qualifier_list(phylum_cast<ID>(kc_p1), phylum_cast<ac_class_qualifier_list>(kc_p2));
+ case sel_Nilac_class_qualifier_list:
+ return Nilac_class_qualifier_list();
+ case sel_Consac_class_qualifier_help_list:
+ return Consac_class_qualifier_help_list(phylum_cast<ac_direct_declarator>(kc_p1), phylum_cast<ac_class_qualifier_help_list>(kc_p2));
+ case sel_Nilac_class_qualifier_help_list:
+ return Nilac_class_qualifier_help_list();
+ case sel_AcOperatorName:
+ return AcOperatorName(phylum_cast<casestring>(kc_p1));
+ case sel_AcRef:
+ return AcRef();
+ case sel_AcNoRef:
+ return AcNoRef();
+ case sel_AcPointerCons:
+ return AcPointerCons(phylum_cast<ac_type_qualifier_list>(kc_p1), phylum_cast<ac_pointer>(kc_p2));
+ case sel_AcPointerNil:
+ return AcPointerNil(phylum_cast<ac_type_qualifier_list>(kc_p1));
+ case sel_Yespointer:
+ return Yespointer(phylum_cast<ac_pointer>(kc_p1));
+ case sel_Nopointer:
+ return Nopointer();
+ case sel_AcOperatorDeclId:
+ return AcOperatorDeclId(phylum_cast<ac_operator_name>(kc_p1));
+ case sel_AcConvOperatorDecl:
+ return AcConvOperatorDecl(phylum_cast<ID>(kc_p1), phylum_cast<ID>(kc_p2));
+ case sel_AcMemberDecl:
+ return AcMemberDecl(phylum_cast<ID>(kc_p1), phylum_cast<ID>(kc_p2), phylum_cast<ac_constant_expression_list>(kc_p3));
+ case sel_AcQualifiedDeclProto:
+ return AcQualifiedDeclProto(phylum_cast<ac_class_qualifier_list>(kc_p1), phylum_cast<ac_direct_declarator>(kc_p2), phylum_cast<ac_parameter_type_list>(kc_p3), phylum_cast<ac_type_qualifier>(kc_p4));
+ case sel_AcDirectDeclProto:
+ return AcDirectDeclProto(phylum_cast<ac_direct_declarator>(kc_p1), phylum_cast<ac_parameter_type_list>(kc_p2));
+ case sel_AcDirectDeclArray:
+ return AcDirectDeclArray(phylum_cast<ac_direct_declarator>(kc_p1), phylum_cast<ac_constant_expression_option>(kc_p2));
+ case sel_AcDirectDeclPack:
+ return AcDirectDeclPack(phylum_cast<ac_declarator>(kc_p1));
+ case sel_AcDirectDeclId:
+ return AcDirectDeclId(phylum_cast<ID>(kc_p1));
+ case sel_AcDeclarator:
+ return AcDeclarator(phylum_cast<ac_pointer_option>(kc_p1), phylum_cast<ac_ref_option>(kc_p2), phylum_cast<ac_direct_declarator>(kc_p3));
+ case sel_AcInitDecl:
+ return AcInitDecl(phylum_cast<ac_declarator>(kc_p1));
+ case sel_Consac_init_declarator_list:
+ return Consac_init_declarator_list(phylum_cast<ac_init_declarator>(kc_p1), phylum_cast<ac_init_declarator_list>(kc_p2));
+ case sel_Nilac_init_declarator_list:
+ return Nilac_init_declarator_list();
+ case sel_AcNoQualifier:
+ return AcNoQualifier();
+ case sel_AcUnsigned:
+ return AcUnsigned();
+ case sel_AcVolatile:
+ return AcVolatile();
+ case sel_AcConst:
+ return AcConst();
+ case sel_AcTypeSpec:
+ return AcTypeSpec(phylum_cast<ID>(kc_p1));
+ case sel_AcVirtual:
+ return AcVirtual();
+ case sel_AcTypedef:
+ return AcTypedef();
+ case sel_AcExtern:
+ return AcExtern();
+ case sel_AcStatic:
+ return AcStatic();
+ case sel_AcRegister:
+ return AcRegister();
+ case sel_AcAuto:
+ return AcAuto();
+ case sel_AcDeclSpecTypeQual:
+ return AcDeclSpecTypeQual(phylum_cast<ac_type_qualifier>(kc_p1));
+ case sel_AcDeclSpecTypeSpec:
+ return AcDeclSpecTypeSpec(phylum_cast<ac_type_specifier>(kc_p1));
+ case sel_AcDeclSpecStorageSpec:
+ return AcDeclSpecStorageSpec(phylum_cast<ac_storage_class_specifier>(kc_p1));
+ case sel_Consac_declaration_specifiers:
+ return Consac_declaration_specifiers(phylum_cast<ac_declaration_specifier>(kc_p1), phylum_cast<ac_declaration_specifiers>(kc_p2));
+ case sel_Nilac_declaration_specifiers:
+ return Nilac_declaration_specifiers();
+ case sel_Consac_declaration_list:
+ return Consac_declaration_list(phylum_cast<ac_declaration>(kc_p1), phylum_cast<ac_declaration_list>(kc_p2));
+ case sel_Nilac_declaration_list:
+ return Nilac_declaration_list();
+ case sel_AcDeclaration:
+ return AcDeclaration(phylum_cast<ac_declaration_specifiers>(kc_p1), phylum_cast<ac_init_declarator_list>(kc_p2));
+ case sel_Unparsedeclinfo:
+ return Unparsedeclinfo(phylum_cast<patternrepresentation>(kc_p1), phylum_cast<patternrepresentation>(kc_p2), phylum_cast<unparseclause>(kc_p3));
+ case sel_Consunparsedeclsinfo:
+ return Consunparsedeclsinfo(phylum_cast<unparsedeclinfo>(kc_p1), phylum_cast<unparsedeclsinfo>(kc_p2));
+ case sel_Nilunparsedeclsinfo:
+ return Nilunparsedeclsinfo();
+ case sel_Unparseviewinfo:
+ return Unparseviewinfo(phylum_cast<ID>(kc_p1), phylum_cast<unparsedeclsinfo>(kc_p2));
+ case sel_Consunparseviewsinfo:
+ return Consunparseviewsinfo(phylum_cast<unparseviewinfo>(kc_p1), phylum_cast<unparseviewsinfo>(kc_p2));
+ case sel_Nilunparseviewsinfo:
+ return Nilunparseviewsinfo();
+ case sel_Rewriteviewinfo:
+ return Rewriteviewinfo(phylum_cast<ID>(kc_p1), phylum_cast<rewriterulesinfo>(kc_p2));
+ case sel_Consrewriteviewsinfo:
+ return Consrewriteviewsinfo(phylum_cast<rewriteviewinfo>(kc_p1), phylum_cast<rewriteviewsinfo>(kc_p2));
+ case sel_Nilrewriteviewsinfo:
+ return Nilrewriteviewsinfo();
+ case sel_Withcaseinfo:
+ return Withcaseinfo(phylum_cast<patternrepresentation>(kc_p1), phylum_cast<patternrepresentation>(kc_p2), phylum_cast<Ctext>(kc_p3));
+ case sel_Conswithcasesinfo:
+ return Conswithcasesinfo(phylum_cast<withcaseinfo>(kc_p1), phylum_cast<withcasesinfo>(kc_p2));
+ case sel_Nilwithcasesinfo:
+ return Nilwithcasesinfo();
+ case sel_Rewriteruleinfo:
+ return Rewriteruleinfo(phylum_cast<patternrepresentation>(kc_p1), phylum_cast<patternrepresentation>(kc_p2), phylum_cast<rewriteclause>(kc_p3));
+ case sel_Consrewriterulesinfo:
+ return Consrewriterulesinfo(phylum_cast<rewriteruleinfo>(kc_p1), phylum_cast<rewriterulesinfo>(kc_p2));
+ case sel_Nilrewriterulesinfo:
+ return Nilrewriterulesinfo();
+ case sel_Consargsnumbers:
+ return Consargsnumbers(phylum_cast<integer>(kc_p1), phylum_cast<argsnumbers>(kc_p2));
+ case sel_Nilargsnumbers:
+ return Nilargsnumbers();
+ case sel_Conspaths:
+ return Conspaths(phylum_cast<path>(kc_p1), phylum_cast<paths>(kc_p2));
+ case sel_Nilpaths:
+ return Nilpaths();
+ case sel_Conspath:
+ return Conspath(phylum_cast<integer>(kc_p1), phylum_cast<path>(kc_p2));
+ case sel_Nilpath:
+ return Nilpath();
+ case sel_PRIntLiteral:
+ return PRIntLiteral(phylum_cast<path>(kc_p1), phylum_cast<INT>(kc_p2));
+ case sel_PRStringLiteral:
+ return PRStringLiteral(phylum_cast<path>(kc_p1), phylum_cast<CexpressionDQ>(kc_p2));
+ case sel_PRDefault:
+ return PRDefault();
+ case sel_PRWildcard:
+ return PRWildcard(phylum_cast<path>(kc_p1));
+ case sel_PRNonLeafBinding:
+ return PRNonLeafBinding(phylum_cast<path>(kc_p1), phylum_cast<ID>(kc_p2), phylum_cast<patternrepresentation>(kc_p3));
+ case sel_PRUserPredicate:
+ return PRUserPredicate(phylum_cast<Cexpression>(kc_p1));
+ case sel_PROperPredicate:
+ return PROperPredicate(phylum_cast<path>(kc_p1), phylum_cast<ID>(kc_p2));
+ case sel_PRVarPredicate:
+ return PRVarPredicate(phylum_cast<paths>(kc_p1), phylum_cast<ID>(kc_p2), phylum_cast<patternrepresentation>(kc_p3));
+ case sel_PRBinding:
+ return PRBinding(phylum_cast<path>(kc_p1), phylum_cast<ID>(kc_p2));
+ case sel_Conspatternrepresentation:
+ return Conspatternrepresentation(phylum_cast<elem_patternrepresentation>(kc_p1), phylum_cast<patternrepresentation>(kc_p2));
+ case sel_Nilpatternrepresentation:
+ return Nilpatternrepresentation();
+ case sel_Conspatternrepresentations:
+ return Conspatternrepresentations(phylum_cast<patternrepresentation>(kc_p1), phylum_cast<patternrepresentations>(kc_p2));
+ case sel_Nilpatternrepresentations:
+ return Nilpatternrepresentations();
+ case sel_Bigger:
+ return Bigger();
+ case sel_Smaller:
+ return Smaller();
+ case sel_Equal:
+ return Equal();
+ case sel_DVDisallowed:
+ return DVDisallowed();
+ case sel_DVAllowed:
+ return DVAllowed();
+ case sel_Consvariables:
+ return Consvariables(phylum_cast<ID>(kc_p1), phylum_cast<variables>(kc_p2));
+ case sel_Nilvariables:
+ return Nilvariables();
+ case sel_Consphyla:
+ return Consphyla(phylum_cast<ID>(kc_p1), phylum_cast<phyla>(kc_p2));
+ case sel_Nilphyla:
+ return Nilphyla();
+ case sel_Consoperators:
+ return Consoperators(phylum_cast<ID>(kc_p1), phylum_cast<operators>(kc_p2));
+ case sel_Niloperators:
+ return Niloperators();
+ case sel_ITLanguageName:
+ return ITLanguageName(phylum_cast<integer>(kc_p1));
+ case sel_ITPatternVariable:
+ return ITPatternVariable(phylum_cast<ID>(kc_p1), phylum_cast<integer>(kc_p2));
+ case sel_ITUserFunction:
+ return ITUserFunction(phylum_cast<fnclass>(kc_p1));
+ case sel_ITUserRView:
+ return ITUserRView();
+ case sel_ITPredefinedRView:
+ return ITPredefinedRView();
+ case sel_ITUViewVar:
+ return ITUViewVar();
+ case sel_ITUserUView:
+ return ITUserUView();
+ case sel_ITPredefinedUView:
+ return ITPredefinedUView();
+ case sel_ITStorageClass:
+ return ITStorageClass();
+ case sel_ITPredefinedStorageClass:
+ return ITPredefinedStorageClass();
+ case sel_ITUserOperator:
+ return ITUserOperator(phylum_cast<alternative>(kc_p1), phylum_cast<ID>(kc_p2));
+ case sel_ITPredefinedOperator:
+ return ITPredefinedOperator(phylum_cast<alternative>(kc_p1), phylum_cast<ID>(kc_p2));
+ case sel_ITUserPhylum:
+ return ITUserPhylum(phylum_cast<phylumdeclaration>(kc_p1));
+ case sel_ITPredefinedPhylum:
+ return ITPredefinedPhylum(phylum_cast<phylumdeclaration>(kc_p1));
+ case sel_ITUnknown:
+ return ITUnknown();
+ case sel_ScopeTypeFileLine:
+ return ScopeTypeFileLine(phylum_cast<integer>(kc_p1), phylum_cast<IDtype>(kc_p2), phylum_cast<casestring>(kc_p3), phylum_cast<integer>(kc_p4));
+ case sel_Consscopetypefilelinestack:
+ return Consscopetypefilelinestack(phylum_cast<scopetypefileline>(kc_p1), phylum_cast<scopetypefilelinestack>(kc_p2));
+ case sel_Nilscopetypefilelinestack:
+ return Nilscopetypefilelinestack();
+ case sel_PosNoFileLine:
+ return PosNoFileLine();
+ case sel_NoFileLine:
+ return NoFileLine();
+ case sel_FileLine:
+ return FileLine();
+ case sel_Conslanguagenames:
+ return Conslanguagenames(phylum_cast<ID>(kc_p1), phylum_cast<languagenames>(kc_p2));
+ case sel_Nillanguagenames:
+ return Nillanguagenames();
+ case sel_LanguageList:
+ return LanguageList(phylum_cast<languagenames>(kc_p1));
+ case sel_NoLanguagename:
+ return NoLanguagename();
+ case sel_YesViewname:
+ return YesViewname(phylum_cast<ID>(kc_p1));
+ case sel_NoViewname:
+ return NoViewname();
+ case sel_Consunpattributes:
+ return Consunpattributes(phylum_cast<ID>(kc_p1), phylum_cast<unpattributes>(kc_p2));
+ case sel_Nilunpattributes:
+ return Nilunpattributes();
+ case sel_UnpCastedVariable:
+ return UnpCastedVariable(phylum_cast<ID>(kc_p1), phylum_cast<ID>(kc_p2));
+ case sel_UnpDollarvarAttr:
+ return UnpDollarvarAttr(phylum_cast<INT>(kc_p1), phylum_cast<unpattributes>(kc_p2));
+ case sel_UnpSubAttr:
+ return UnpSubAttr(phylum_cast<ID>(kc_p1), phylum_cast<unpattributes>(kc_p2));
+ case sel_UnpDollarvarTerm:
+ return UnpDollarvarTerm(phylum_cast<INT>(kc_p1));
+ case sel_UnpSubTerm:
+ return UnpSubTerm(phylum_cast<ID>(kc_p1));
+ case sel_UViewVarDecl:
+ return UViewVarDecl(phylum_cast<ID>(kc_p1), phylum_cast<ID>(kc_p2), phylum_cast<Cexpression>(kc_p3));
+ case sel_UnpBody:
+ return UnpBody(phylum_cast<languageoption>(kc_p1), phylum_cast<unparseitems>(kc_p2));
+ case sel_UnpCtext:
+ return UnpCtext(phylum_cast<languageoption>(kc_p1), phylum_cast<Ctext>(kc_p2));
+ case sel_UnpSubexpr:
+ return UnpSubexpr(phylum_cast<languageoption>(kc_p1), phylum_cast<unpsubterm>(kc_p2), phylum_cast<viewnameoption>(kc_p3));
+ case sel_UnpStr:
+ return UnpStr(phylum_cast<languageoption>(kc_p1), phylum_cast<CexpressionDQ>(kc_p2), phylum_cast<viewnameoption>(kc_p3));
+ case sel_Consunparseitems:
+ return Consunparseitems(phylum_cast<unparseitem>(kc_p1), phylum_cast<unparseitems>(kc_p2));
+ case sel_Nilunparseitems:
+ return Nilunparseitems();
+ case sel_Consviewnames:
+ return Consviewnames(phylum_cast<ID>(kc_p1), phylum_cast<viewnames>(kc_p2));
+ case sel_Nilviewnames:
+ return Nilviewnames();
+ case sel_UnparseClause:
+ return UnparseClause(phylum_cast<viewnames>(kc_p1), phylum_cast<unparseitems>(kc_p2));
+ case sel_Consunparseclauses:
+ return Consunparseclauses(phylum_cast<unparseclause>(kc_p1), phylum_cast<unparseclauses>(kc_p2));
+ case sel_Nilunparseclauses:
+ return Nilunparseclauses();
+ case sel_UnparseDeclaration:
+ return UnparseDeclaration(phylum_cast<outmostpatterns>(kc_p1), phylum_cast<unparseclauses>(kc_p2));
+ case sel_Consunparsedeclarations:
+ return Consunparsedeclarations(phylum_cast<unparsedeclaration>(kc_p1), phylum_cast<unparsedeclarations>(kc_p2));
+ case sel_Nilunparsedeclarations:
+ return Nilunparsedeclarations();
+ case sel_Withcase:
+ return Withcase(phylum_cast<patternchains>(kc_p1), phylum_cast<Ctext>(kc_p2));
+ case sel_Conswithcases:
+ return Conswithcases(phylum_cast<withcase>(kc_p1), phylum_cast<withcases>(kc_p2));
+ case sel_Nilwithcases:
+ return Nilwithcases();
+ case sel_WECexpression:
+ return WECexpression(phylum_cast<Cexpression>(kc_p1));
+ case sel_WEVariable:
+ return WEVariable(phylum_cast<ID>(kc_p1));
+ case sel_Conswithexpressions:
+ return Conswithexpressions(phylum_cast<withexpression>(kc_p1), phylum_cast<withexpressions>(kc_p2));
+ case sel_Nilwithexpressions:
+ return Nilwithexpressions();
+ case sel_NotInForeachContext:
+ return NotInForeachContext();
+ case sel_InForeachContext:
+ return InForeachContext(phylum_cast<patternchain>(kc_p1));
+ case sel_ForeachAfter:
+ return ForeachAfter(phylum_cast<patternchain>(kc_p1), phylum_cast<idCexpressions>(kc_p2), phylum_cast<withexpressions>(kc_p3), phylum_cast<Ctext>(kc_p4));
+ case sel_NoForeachAfter:
+ return NoForeachAfter();
+ case sel_CTextWithexpression:
+ return CTextWithexpression(phylum_cast<withexpressions>(kc_p1), phylum_cast<withcases>(kc_p2), phylum_cast<contextinfo>(kc_p3));
+ case sel_CTextForeachexpression:
+ return CTextForeachexpression(phylum_cast<patternchain>(kc_p1), phylum_cast<idCexpressions>(kc_p2), phylum_cast<withexpressions>(kc_p3), phylum_cast<Ctext>(kc_p4), phylum_cast<foreach_after>(kc_p5));
+ case sel_CTextCbody:
+ return CTextCbody(phylum_cast<Ctext>(kc_p1));
+ case sel_CTextCexpressionSQ:
+ return CTextCexpressionSQ(phylum_cast<CexpressionSQ>(kc_p1));
+ case sel_CTextCexpressionDQ:
+ return CTextCexpressionDQ(phylum_cast<CexpressionDQ>(kc_p1));
+ case sel_CTextNl:
+ return CTextNl(phylum_cast<integer>(kc_p1));
+ case sel_CTextDollarVar:
+ return CTextDollarVar(phylum_cast<INT>(kc_p1));
+ case sel_CTextLine:
+ return CTextLine(phylum_cast<casestring>(kc_p1));
+ case sel_ConsCtext:
+ return ConsCtext(phylum_cast<Ctext_elem>(kc_p1), phylum_cast<Ctext>(kc_p2));
+ case sel_NilCtext:
+ return NilCtext();
+ case sel_ConvOperatorFn:
+ return ConvOperatorFn();
+ case sel_DestructorFn:
+ return DestructorFn();
+ case sel_ConstructorFn:
+ return ConstructorFn();
+ case sel_MemberFn:
+ return MemberFn();
+ case sel_StaticFn:
+ return StaticFn(phylum_cast<casestring>(kc_p1));
+ case sel_GlobalFn:
+ return GlobalFn();
+ case sel_AcMemberDeclaration:
+ return AcMemberDeclaration(phylum_cast<ac_declaration_specifiers>(kc_p1), phylum_cast<ac_declarator>(kc_p2), phylum_cast<ac_constant_expression_option>(kc_p3), phylum_cast<fnclass>(kc_p4));
+ case sel_FnAcDeclaration:
+ return FnAcDeclaration(phylum_cast<ac_declaration_specifiers>(kc_p1), phylum_cast<ac_declarator>(kc_p2), phylum_cast<ac_declaration_list>(kc_p3), phylum_cast<ac_opt_base_init_list>(kc_p4), phylum_cast<Ctext>(kc_p5), phylum_cast<ID>(kc_p6), phylum_cast<fnclass>(kc_p7));
+ case sel_Consfndeclarations:
+ return Consfndeclarations(phylum_cast<fndeclaration>(kc_p1), phylum_cast<fndeclarations>(kc_p2));
+ case sel_Nilfndeclarations:
+ return Nilfndeclarations();
+ case sel_FnFile:
+ return FnFile(phylum_cast<casestring>(kc_p1));
+ case sel_Consfnfiles:
+ return Consfnfiles(phylum_cast<fnfile>(kc_p1), phylum_cast<fnfiles>(kc_p2));
+ case sel_Nilfnfiles:
+ return Nilfnfiles();
+ case sel_Consterms:
+ return Consterms(phylum_cast<term>(kc_p1), phylum_cast<terms>(kc_p2));
+ case sel_Nilterms:
+ return Nilterms();
+ case sel_TIntLiteral:
+ return TIntLiteral(phylum_cast<INT>(kc_p1));
+ case sel_TStringLiteral:
+ return TStringLiteral(phylum_cast<CexpressionDQ>(kc_p1));
+ case sel_TCTerm:
+ return TCTerm(phylum_cast<CexpressionSQ>(kc_p1));
+ case sel_TMemberVarDot:
+ return TMemberVarDot(phylum_cast<term>(kc_p1), phylum_cast<ID>(kc_p2));
+ case sel_TMemberVar:
+ return TMemberVar(phylum_cast<term>(kc_p1), phylum_cast<ID>(kc_p2));
+ case sel_TMethodDot:
+ return TMethodDot(phylum_cast<term>(kc_p1), phylum_cast<ID>(kc_p2), phylum_cast<terms>(kc_p3));
+ case sel_TMethod:
+ return TMethod(phylum_cast<term>(kc_p1), phylum_cast<ID>(kc_p2), phylum_cast<terms>(kc_p3));
+ case sel_TOperator:
+ return TOperator(phylum_cast<ID>(kc_p1), phylum_cast<terms>(kc_p2));
+ case sel_TVariable:
+ return TVariable(phylum_cast<ID>(kc_p1));
+ case sel_Conspatterns:
+ return Conspatterns(phylum_cast<pattern>(kc_p1), phylum_cast<patterns>(kc_p2));
+ case sel_Nilpatterns:
+ return Nilpatterns();
+ case sel_PIntLiteral:
+ return PIntLiteral(phylum_cast<INT>(kc_p1));
+ case sel_PStringLiteral:
+ return PStringLiteral(phylum_cast<CexpressionDQ>(kc_p1));
+ case sel_PWildcard:
+ return PWildcard();
+ case sel_PNonLeafVariable:
+ return PNonLeafVariable(phylum_cast<ID>(kc_p1), phylum_cast<pattern>(kc_p2));
+ case sel_POperator:
+ return POperator(phylum_cast<ID>(kc_p1), phylum_cast<patterns>(kc_p2));
+ case sel_PVariable:
+ return PVariable(phylum_cast<ID>(kc_p1));
+ case sel_OPDefault:
+ return OPDefault(phylum_cast<Cexpression>(kc_p1));
+ case sel_OPWildcard:
+ return OPWildcard(phylum_cast<Cexpression>(kc_p1));
+ case sel_OPNonLeafVariable:
+ return OPNonLeafVariable(phylum_cast<ID>(kc_p1), phylum_cast<outmostpattern>(kc_p2));
+ case sel_OPOperator:
+ return OPOperator(phylum_cast<ID>(kc_p1), phylum_cast<patterns>(kc_p2), phylum_cast<Cexpression>(kc_p3));
+ case sel_OPOperatorWildcard:
+ return OPOperatorWildcard(phylum_cast<ID>(kc_p1), phylum_cast<Cexpression>(kc_p2));
+ case sel_PatternchainitemDollarid:
+ return PatternchainitemDollarid(phylum_cast<ID>(kc_p1));
+ case sel_PatternchainitemGroup:
+ return PatternchainitemGroup(phylum_cast<patternchains>(kc_p1));
+ case sel_PatternchainitemOutmost:
+ return PatternchainitemOutmost(phylum_cast<outmostpattern>(kc_p1));
+ case sel_Consoutmostpatterns:
+ return Consoutmostpatterns(phylum_cast<outmostpattern>(kc_p1), phylum_cast<outmostpatterns>(kc_p2));
+ case sel_Niloutmostpatterns:
+ return Niloutmostpatterns();
+ case sel_Conspatternchain:
+ return Conspatternchain(phylum_cast<patternchainitem>(kc_p1), phylum_cast<patternchain>(kc_p2));
+ case sel_Nilpatternchain:
+ return Nilpatternchain();
+ case sel_Conspatternchains:
+ return Conspatternchains(phylum_cast<patternchain>(kc_p1), phylum_cast<patternchains>(kc_p2));
+ case sel_Nilpatternchains:
+ return Nilpatternchains();
+ case sel_RewriteClause:
+ return RewriteClause(phylum_cast<viewnames>(kc_p1), phylum_cast<term>(kc_p2));
+ case sel_Consrewriteclauses:
+ return Consrewriteclauses(phylum_cast<rewriteclause>(kc_p1), phylum_cast<rewriteclauses>(kc_p2));
+ case sel_Nilrewriteclauses:
+ return Nilrewriteclauses();
+ case sel_RwDeclaration:
+ return RwDeclaration(phylum_cast<outmostpatterns>(kc_p1), phylum_cast<rewriteclauses>(kc_p2));
+ case sel_Consrwdeclarations:
+ return Consrwdeclarations(phylum_cast<rwdeclaration>(kc_p1), phylum_cast<rwdeclarations>(kc_p2));
+ case sel_Nilrwdeclarations:
+ return Nilrwdeclarations();
+ case sel_IncludeDeclaration:
+ return IncludeDeclaration(phylum_cast<casestring>(kc_p1));
+ case sel_Consincludedeclarations:
+ return Consincludedeclarations(phylum_cast<includedeclaration>(kc_p1), phylum_cast<includedeclarations>(kc_p2));
+ case sel_Nilincludedeclarations:
+ return Nilincludedeclarations();
+ case sel_IncludeFile:
+ return IncludeFile(phylum_cast<casestring>(kc_p1));
+ case sel_Consincludefiles:
+ return Consincludefiles(phylum_cast<includefile>(kc_p1), phylum_cast<includefiles>(kc_p2));
+ case sel_Nilincludefiles:
+ return Nilincludefiles();
+ case sel_ConsCtexts:
+ return ConsCtexts(phylum_cast<Ctext>(kc_p1), phylum_cast<Ctexts>(kc_p2));
+ case sel_NilCtexts:
+ return NilCtexts();
+ case sel_IdCexpression:
+ return IdCexpression(phylum_cast<ID>(kc_p1), phylum_cast<Cexpression>(kc_p2));
+ case sel_ConsidCexpressions:
+ return ConsidCexpressions(phylum_cast<idCexpression>(kc_p1), phylum_cast<idCexpressions>(kc_p2));
+ case sel_NilidCexpressions:
+ return NilidCexpressions();
+ case sel_CExpressionSQNl:
+ return CExpressionSQNl();
+ case sel_CExpressionSQPart:
+ return CExpressionSQPart(phylum_cast<casestring>(kc_p1));
+ case sel_ConsCexpressionSQ:
+ return ConsCexpressionSQ(phylum_cast<CexpressionSQ_elem>(kc_p1), phylum_cast<CexpressionSQ>(kc_p2));
+ case sel_NilCexpressionSQ:
+ return NilCexpressionSQ();
+ case sel_CExpressionDQNl:
+ return CExpressionDQNl();
+ case sel_CExpressionDQPart:
+ return CExpressionDQPart(phylum_cast<casestring>(kc_p1));
+ case sel_ConsCexpressionDQ:
+ return ConsCexpressionDQ(phylum_cast<CexpressionDQ_elem>(kc_p1), phylum_cast<CexpressionDQ>(kc_p2));
+ case sel_NilCexpressionDQ:
+ return NilCexpressionDQ();
+ case sel_CExpressionArray:
+ return CExpressionArray(phylum_cast<Cexpression>(kc_p1));
+ case sel_CExpressionPack:
+ return CExpressionPack(phylum_cast<Cexpression>(kc_p1));
+ case sel_CExpressionSQ:
+ return CExpressionSQ(phylum_cast<CexpressionSQ>(kc_p1));
+ case sel_CExpressionDQ:
+ return CExpressionDQ(phylum_cast<CexpressionDQ>(kc_p1));
+ case sel_CExpressionNl:
+ return CExpressionNl();
+ case sel_CExpressionDollarvar:
+ return CExpressionDollarvar(phylum_cast<INT>(kc_p1));
+ case sel_CExpressionPart:
+ return CExpressionPart(phylum_cast<casestring>(kc_p1));
+ case sel_ConsCexpression:
+ return ConsCexpression(phylum_cast<Cexpression_elem>(kc_p1), phylum_cast<Cexpression>(kc_p2));
+ case sel_NilCexpression:
+ return NilCexpression();
+ case sel_Yesattribute_initialisation:
+ return Yesattribute_initialisation(phylum_cast<Cexpression>(kc_p1));
+ case sel_Noattribute_initialisation:
+ return Noattribute_initialisation();
+ case sel_Attribute:
+ return Attribute(phylum_cast<ID>(kc_p1), phylum_cast<ID>(kc_p2), phylum_cast<attribute_initialisation_option>(kc_p3));
+ case sel_Consattributes:
+ return Consattributes(phylum_cast<attribute>(kc_p1), phylum_cast<attributes>(kc_p2));
+ case sel_Nilattributes:
+ return Nilattributes();
+ case sel_CcodeOption:
+ return CcodeOption(phylum_cast<attributes>(kc_p1), phylum_cast<Ctexts>(kc_p2));
+ case sel_Argument:
+ return Argument(phylum_cast<ID>(kc_p1), phylum_cast<integer>(kc_p2));
+ case sel_Consarguments:
+ return Consarguments(phylum_cast<ID>(kc_p1), phylum_cast<arguments>(kc_p2));
+ case sel_Nilarguments:
+ return Nilarguments();
+ case sel_Alternative:
+ return Alternative(phylum_cast<ID>(kc_p1), phylum_cast<arguments>(kc_p2));
+ case sel_Consalternatives:
+ return Consalternatives(phylum_cast<alternative>(kc_p1), phylum_cast<alternatives>(kc_p2));
+ case sel_Nilalternatives:
+ return Nilalternatives();
+ case sel_PredefinedAlternatives:
+ return PredefinedAlternatives(phylum_cast<alternatives>(kc_p1));
+ case sel_NonlistAlternatives:
+ return NonlistAlternatives(phylum_cast<alternatives>(kc_p1));
+ case sel_ListAlternatives:
+ return ListAlternatives(phylum_cast<alternatives>(kc_p1), phylum_cast<ID>(kc_p2));
+ case sel_Emptyproductionblock:
+ return Emptyproductionblock();
+ case sel_Consstorageclasses:
+ return Consstorageclasses(phylum_cast<ID>(kc_p1), phylum_cast<storageclasses>(kc_p2));
+ case sel_Nilstorageclasses:
+ return Nilstorageclasses();
+ case sel_PositiveStorageOption:
+ return PositiveStorageOption(phylum_cast<ID>(kc_p1));
+ case sel_NegativeStorageOption:
+ return NegativeStorageOption(phylum_cast<ID>(kc_p1));
+ case sel_NoStorageOption:
+ return NoStorageOption();
+ case sel_PhylumDeclaration:
+ return PhylumDeclaration(phylum_cast<ID>(kc_p1), phylum_cast<storageoption>(kc_p2), phylum_cast<productionblock>(kc_p3), phylum_cast<Ccode_option>(kc_p4));
+ case sel_Consphylumnames:
+ return Consphylumnames(phylum_cast<ID>(kc_p1), phylum_cast<phylumnames>(kc_p2));
+ case sel_Nilphylumnames:
+ return Nilphylumnames();
+ case sel_Consphylumdeclarations:
+ return Consphylumdeclarations(phylum_cast<phylumdeclaration>(kc_p1), phylum_cast<phylumdeclarations>(kc_p2));
+ case sel_Nilphylumdeclarations:
+ return Nilphylumdeclarations();
+ case sel_PhylumDeclarations:
+ return PhylumDeclarations(phylum_cast<phylumdeclarations>(kc_p1));
+ case sel_String:
+ return String(phylum_cast<casestring>(kc_p1));
+ case sel_Int:
+ return Int(phylum_cast<integer>(kc_p1));
+ case sel_Id:
+ return Id(phylum_cast<uniqID>(kc_p1));
+ case sel_Str:
+ return Str(phylum_cast<casestring>(kc_p1));
+ default:
+ assertionFailed("Cannot create this kind of phylum - unkown operator id");
+ }
+ NORETURN
+ }
+
+ abstract_phylum&
+ attributeOf(abstract_phylum kc_p, int no)
+ {
+ assertionFailed("Cannot select attribute for this kind of phylum - has no attributes");
+ NORETURN
+ }
+
+ abstract_phylum
+ impl_abstract_phylum::subphylum(int) const
+ {
+ return 0;
+ }
+
+ void
+ impl_abstract_phylum::set_subphylum(int,abstract_phylum)
+ {
+ }
+
+ void
+ impl_abstract_phylum::free(bool kc_rec)
+ {
+ KC_COLLECT_STATS0(KC_FREE_CALLED_STATS(prod_sel(), kc_rec));
+ if (!phylum_info[phylum()].uniq_stored) {
+ if (kc_rec) {
+ abstract_phylum son;
+ for (int kc_i=0; (son = subphylum(kc_i)); kc_i++)
+ {
+ if (son!=0) son->free(kc_rec);
+ son=0;
+ }
+ }
+ KC_COLLECT_STATS0(KC_FREED_STATS(prod_sel(), kc_rec));
+ delete this;
+ }
+ }
+
+ bool
+ impl_abstract_phylum::eq(c_abstract_phylum kc_p2) const
+ {
+ if (this == kc_p2)
+ return true;
+ if (prod_sel() != kc_p2->prod_sel())
+ return false;
+
+ int kc_st = phylum_info[phylum()].uniq_stored;
+ if (kc_st && kc_storageclass_still_uniq[kc_st])
+ return false;
+
+ c_abstract_phylum son1;
+ for (int kc_i=0; (son1 = subphylum(kc_i)); kc_i++) {
+ if (!son1->eq(kc_p2->subphylum(kc_i)))
+ return false;
+ }
+
+ return true;
+ }
+
+ static string kc_indentation = "";
+ static const char *kc_printformat_not_nullary_open = "%s%s(\n";
+ static const char *kc_printformat_list_open = "%s%s\n";
+
+ static const char *kc_printformat_not_nullary_close = "%s)\n";
+ static const char *kc_printformat_nullary = "%s%s()\n";
+
+ void
+ impl_abstract_phylum::fprint(FILE*kc_f)
+ {
+ int kc_i;
+
+ if (!kc_f) kc_f = stdout;
+ abstract_list al = dynamic_cast<abstract_list>(this);
+ if (al != 0 && !al->is_nil()) {
+ fprintf(kc_f, kc_printformat_list_open, kc_indentation.c_str(), op_name());
+ kc_indentation+="| ";
+ subphylum(0)->fprint(kc_f);
+ kc_indentation=kc_indentation.substr(0, kc_indentation.length()-2);
+ phylum_cast<abstract_list>(subphylum(1))->fprint_list(kc_f);
+ kc_indentation=kc_indentation.substr(0, kc_indentation.length()-2);
+ } else // not list
+ switch(phylum()) {
+ case phylum_voidptr:
+ fprintf(kc_f, "%s%p\n", kc_indentation.c_str(), static_cast<voidptr>(this)->pointer);
+ break;
+ case phylum_casestring:
+ case phylum_nocasestring:
+ fprintf(kc_f, "%s%s\n", kc_indentation.c_str(), static_cast<casestring>(this)->name);
+ break;
+ case phylum_integer:
+ fprintf(kc_f, "%s%i\n", kc_indentation.c_str(), static_cast<integer>(this)->value);
+ break;
+ case phylum_real:
+ fprintf(kc_f, "%s%f\n", kc_indentation.c_str(), static_cast<real>(this)->value);
+ break;
+ default:
+ if (!subphylum(0)) {
+ fprintf(kc_f, kc_printformat_nullary, kc_indentation.c_str(), op_name());
+ } else {
+ fprintf(kc_f, kc_printformat_not_nullary_open, kc_indentation.c_str(), op_name());
+ kc_indentation+=" ";
+ abstract_phylum son;
+ for (kc_i=0; (son = subphylum(kc_i)); kc_i++) {
+ son->fprint(kc_f);
+ }
+ kc_indentation=kc_indentation.substr(0, kc_indentation.length()-2);
+ fprintf(kc_f, kc_printformat_not_nullary_close, kc_indentation.c_str());
+ }
+ }
+ }
+
+ void
+ impl_abstract_phylum::print()
+ {
+ fprint(stdout);
+ }
+
+ void
+ impl_abstract_list::fprint_list(FILE*kc_f)
+ {
+ if (!kc_f)
+ kc_f = stdout;
+ if (this->is_nil()) {
+ kc_indentation+="`-";
+ fprintf(kc_f, kc_printformat_nullary, kc_indentation.c_str(), op_name());
+ } else {
+ kc_indentation+="|-";
+ fprintf(kc_f, kc_printformat_list_open, kc_indentation.c_str(), op_name());
+ kc_indentation=kc_indentation.substr(0, kc_indentation.length()-2);
+ kc_indentation+="| ";
+ subphylum(0)->fprint(kc_f);
+ kc_indentation=kc_indentation.substr(0, kc_indentation.length()-2);
+ phylum_cast<abstract_list>(subphylum(1))->fprint_list(kc_f);
+ }
+ }
+
+ int
+ impl_abstract_list::length() const
+ {
+ int kc_length = 0;
+ c_abstract_phylum kc_p = this;
+ while((kc_p = kc_p->subphylum(1)))
+ kc_length++;
+ return kc_length;
+ }
+ void impl_abstract_list::freelist()
+ {
+ abstract_phylum kc_p = this, kc_tmp_p;
+ do {
+ kc_tmp_p=kc_p->subphylum(1);
+ kc_p->free(false);
+ kc_p=kc_tmp_p;
+ } while(kc_p);
+ }
+ abstract_phylum
+ impl_abstract_list::do_concat(c_abstract_phylum kc_p2, enum_operators mk) const
+ {
+ abstract_phylum next = subphylum(1);
+ if(!next)
+ return const_cast<abstract_phylum>(kc_p2);
+ return kc_create(mk, subphylum(0), static_cast<abstract_list>(next)->do_concat(kc_p2, mk));
+ }
+
+ abstract_phylum
+ impl_abstract_list::do_reverse(c_abstract_phylum tail, enum_operators mk) const
+ {
+ for (impl_abstract_list const* iterator_ = this; iterator_->subphylum(1) != 0;
+ iterator_ = static_cast<impl_abstract_list const*>(iterator_->subphylum(1)) )
+ tail = kc_create(mk, iterator_->subphylum(0), const_cast<abstract_phylum>(tail));
+ return const_cast<abstract_phylum>(tail);
+ }
+
+ abstract_phylum
+ impl_abstract_list::last() const
+ {
+ c_abstract_phylum kc_p = this, next = subphylum(1), nextnext;
+ #ifdef _AFX
+ ASSERT(next);
+ if(!next)
+ return NULL;
+ #else
+ if(!next){
+ fflush(stdout);
+ fprintf(stderr, "Internal Error: list::last was called with argument Nil%s\n", phylum_name());
+ exit(1);
+ }
+ #endif
+ while ((nextnext = next->subphylum(1))) {
+ kc_p = next;
+ next = nextnext;
+ }
+ return const_cast<abstract_phylum>(kc_p->subphylum(0));/* XXX remove cast */
+ }
+
+ abstract_phylum
+ impl_abstract_list::do_map(abstract_phylum (*kc_fp)(abstract_phylum), enum_operators mk)
+ {
+ abstract_phylum el = subphylum(0);
+ if (!el)
+ return this;
+ abstract_list next = static_cast<abstract_list>(subphylum(1));
+ return kc_create(mk, kc_fp(el), next->do_map(kc_fp, mk));
+ }
+
+ abstract_phylum
+ impl_abstract_list::do_filter(bool (*kc_fp)(abstract_phylum), enum_operators mk)
+ {
+ abstract_phylum el = subphylum(0);
+ if (!el)
+ return this;
+ abstract_list next = static_cast<abstract_list>(subphylum(1));
+ if ((*kc_fp)(el)) {
+ return kc_create(mk, el, next->do_filter(kc_fp, mk));
+ } else {
+ return next->do_filter(kc_fp, mk);
+ }
+ }
+
+ abstract_list
+ impl_abstract_list::do_append(abstract_phylum new_last, abstract_list eol)
+ {
+ abstract_list next = this;
+ while (!next->is_nil())
+ next = phylum_cast<abstract_list>(next->subphylum(1));
+ next->set_subphylum(0, new_last);
+ next->set_subphylum(1, eol);
+ return next;
+ }
+
+ abstract_phylum
+ impl_abstract_list::do_merge(abstract_list second,abstract_phylum(*kc_fp)(abstract_phylum,abstract_phylum), enum_operators mk)
+ {
+ abstract_phylum el = subphylum(0);
+ if (!el)
+ return this;
+ abstract_phylum el2 = second->subphylum(0);
+ if (!el2)
+ return el2;
+ abstract_list next = static_cast<abstract_list>(subphylum(1));
+ abstract_list next2 = static_cast<abstract_list>(second->subphylum(1));
+ return kc_create(mk, kc_fp(el,el2), next->do_merge(next2, kc_fp, mk));
+ }
+
+ abstract_phylum
+ impl_abstract_list::do_reduce(abstract_phylum neutral, abstract_phylum(*kc_fp)(abstract_phylum,abstract_phylum)) {
+ abstract_phylum el = subphylum(0);
+ if (!el)
+ return neutral;
+ abstract_list next = static_cast<abstract_list>(subphylum(1));
+ return kc_fp(el,next->do_reduce(neutral,kc_fp));
+ }
+
+
+ extern const char* kc_storageclassnames[];
+
+ #ifdef KC_STATISTICS
+ void do_print_operator_statistics(FILE * kc_f)
+ {
+ unsigned int kc_i;
+ assertNonNull( kc_f );
+ fprintf(kc_f, "%-*s| %-*s| %-*s| %-*s| %-*s| %-*s| %-*s| %-*s| %-*s| %-*s\n", 38 , "Operator", 3, "Sz", 8, "#oper", 8, "#new", 8, "#exist", 8, "#frnrec", 8, "#frrec", 8, "#freed", 8, "#rem", 9, "total (bytes)");
+ fprintf(kc_f, "%-*s|%*s |%*d |%*d |%*d |%*d |%*d |%*d |%*d |%*d\n", 38, "case sensitive strings", 3, "-", 8, operator_statistics[sel__Str].created, 8, operator_statistics[sel__Str].existing_not_found, 8, operator_statistics[sel__Str].created-operator_statistics[sel__Str].existing_not_found, 8, 0, 8, 0, 8, 0, 8, 0, 9, kc_casestring_strlen);
+ fprintf(kc_f, "%-*s|%*s |%*d |%*d |%*d |%*d |%*d |%*d |%*d |%*d\n", 38, "case insensitive strings", 3, "-", 8, operator_statistics[sel_NoCaseStr].created, 8, operator_statistics[sel_NoCaseStr].existing_not_found, 8, operator_statistics[sel_NoCaseStr].created-operator_statistics[sel_NoCaseStr].existing_not_found, 8, 0, 8, 0, 8, 0, 8, 0, 9, kc_nocasestring_strlen);
+ for (kc_i = one_before_first_operator+1; kc_i < last_operator; kc_i++) {
+ fprintf(kc_f, "%-*s|%*d |%*d |%*d |%*d |%*d |%*d |%*d |%*d |%*d\n", 38, operator_info[kc_i].name, 3, operator_info[kc_i].size, 8, operator_statistics[kc_i].created, 8, operator_statistics[kc_i].existing_not_found, 8, operator_statistics[kc_i].created-operator_statistics[kc_i].existing_not_found, 8, operator_statistics[kc_i].free_called[false], 8, operator_statistics[kc_i].free_called[true], 8, operator_statistics[kc_i].freed[false]+operator_statistics[kc_i].freed[true], 8, operator_statistics[kc_i].existing_not_found-(operator_statistics[kc_i].freed[false]+operator_statistics[kc_i].freed[true]), 9, operator_info[kc_i].size*(operator_statistics[kc_i].existing_not_found-(operator_statistics[kc_i].freed[false]+operator_statistics[kc_i].freed[true])));
+ }
+ }
+ #endif // KC_STATISTICS
+
+ const char*
+ phylumname_or_error(enum_phyla kc_phy)
+ {
+ if ((kc_phy <= one_before_first_phylum) || (kc_phy >= last_phylum)) {
+ char *kc_strof_error;
+ sprintf((kc_strof_error=new char[69]), "Internal Error: unknown phylum number: %d", kc_phy);
+ return kc_strof_error;
+ } else {
+ return phylum_info[kc_phy].name;
+ } }
+
+
+ const char*
+ kc_operatorname_or_error(enum_operators kc_operator)
+ {
+ if ((kc_operator <= one_before_first_operator) || (kc_operator >= last_operator)) {
+ char *kc_strof_error;
+ sprintf((kc_strof_error=new char[71]), "Internal Error: unknown operator number: %d", kc_operator);
+ return kc_strof_error;
+ } else {
+ return operator_info[kc_operator].name;
+ } }
+
+ phylumdeclarations
+ concat(c_phylumdeclarations kc_p1, c_phylumdeclarations kc_p2)
+ { return dynamic_cast<phylumdeclarations>(kc_p1->do_concat(kc_p2, sel_Consphylumdeclarations)); }
+
+ phylumdeclarations
+ impl_phylumdeclarations::reverse() const
+ { return dynamic_cast<phylumdeclarations>(do_reverse(Nilphylumdeclarations(), sel_Consphylumdeclarations)); }
+
+ phylumdeclaration
+ impl_phylumdeclarations::last() const
+ { return dynamic_cast<phylumdeclaration>(impl_abstract_list::last()); }
+
+ bool
+ impl_phylumdeclarations::is_nil() const
+ {
+ return phylumdeclaration_1==0 && phylumdeclarations_1==0;
+ }
+
+ phylumdeclarations
+ impl_phylumdeclarations::map(phylumdeclaration (*kc_fp)(phylumdeclaration))
+ { return dynamic_cast<phylumdeclarations>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consphylumdeclarations)); }
+ phylumdeclarations
+ impl_phylumdeclarations::filter(bool (*kc_fp)(phylumdeclaration))
+ { return dynamic_cast<phylumdeclarations>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consphylumdeclarations)); }
+
+ phylumdeclarations
+ impl_phylumdeclarations::append(phylumdeclaration new_last)
+ {
+ return dynamic_cast<phylumdeclarations>(do_append(new_last, Nilphylumdeclarations()));
+ }
+ phylumdeclarations
+ impl_phylumdeclarations::merge( phylumdeclarations second, phylumdeclaration (*kc_fp)(phylumdeclaration, phylumdeclaration))
+ {
+ return dynamic_cast<phylumdeclarations>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consphylumdeclarations));
+ }
+ phylumdeclaration
+ impl_phylumdeclarations::reduce( phylumdeclaration neutral, phylumdeclaration (*kc_fp)(phylumdeclaration, phylumdeclaration))
+ {
+ return dynamic_cast<phylumdeclaration>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ phylumnames
+ concat(c_phylumnames kc_p1, c_phylumnames kc_p2)
+ { return dynamic_cast<phylumnames>(kc_p1->do_concat(kc_p2, sel_Consphylumnames)); }
+
+ phylumnames
+ impl_phylumnames::reverse() const
+ { return dynamic_cast<phylumnames>(do_reverse(Nilphylumnames(), sel_Consphylumnames)); }
+
+ ID
+ impl_phylumnames::last() const
+ { return dynamic_cast<ID>(impl_abstract_list::last()); }
+
+ bool
+ impl_phylumnames::is_nil() const
+ {
+ return ID_1==0 && phylumnames_1==0;
+ }
+
+ phylumnames
+ impl_phylumnames::map(ID (*kc_fp)(ID))
+ { return dynamic_cast<phylumnames>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consphylumnames)); }
+ phylumnames
+ impl_phylumnames::filter(bool (*kc_fp)(ID))
+ { return dynamic_cast<phylumnames>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consphylumnames)); }
+
+ phylumnames
+ impl_phylumnames::append(ID new_last)
+ {
+ return dynamic_cast<phylumnames>(do_append(new_last, Nilphylumnames()));
+ }
+ phylumnames
+ impl_phylumnames::merge( phylumnames second, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<phylumnames>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consphylumnames));
+ }
+ ID
+ impl_phylumnames::reduce( ID neutral, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<ID>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ storageclasses
+ concat(c_storageclasses kc_p1, c_storageclasses kc_p2)
+ { return dynamic_cast<storageclasses>(kc_p1->do_concat(kc_p2, sel_Consstorageclasses)); }
+
+ storageclasses
+ impl_storageclasses::reverse() const
+ { return dynamic_cast<storageclasses>(do_reverse(Nilstorageclasses(), sel_Consstorageclasses)); }
+
+ ID
+ impl_storageclasses::last() const
+ { return dynamic_cast<ID>(impl_abstract_list::last()); }
+
+ bool
+ impl_storageclasses::is_nil() const
+ {
+ return ID_1==0 && storageclasses_1==0;
+ }
+
+ storageclasses
+ impl_storageclasses::map(ID (*kc_fp)(ID))
+ { return dynamic_cast<storageclasses>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consstorageclasses)); }
+ storageclasses
+ impl_storageclasses::filter(bool (*kc_fp)(ID))
+ { return dynamic_cast<storageclasses>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consstorageclasses)); }
+
+ storageclasses
+ impl_storageclasses::append(ID new_last)
+ {
+ return dynamic_cast<storageclasses>(do_append(new_last, Nilstorageclasses()));
+ }
+ storageclasses
+ impl_storageclasses::merge( storageclasses second, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<storageclasses>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consstorageclasses));
+ }
+ ID
+ impl_storageclasses::reduce( ID neutral, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<ID>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ alternatives
+ concat(c_alternatives kc_p1, c_alternatives kc_p2)
+ { return dynamic_cast<alternatives>(kc_p1->do_concat(kc_p2, sel_Consalternatives)); }
+
+ alternatives
+ impl_alternatives::reverse() const
+ { return dynamic_cast<alternatives>(do_reverse(Nilalternatives(), sel_Consalternatives)); }
+
+ alternative
+ impl_alternatives::last() const
+ { return dynamic_cast<alternative>(impl_abstract_list::last()); }
+
+ bool
+ impl_alternatives::is_nil() const
+ {
+ return alternative_1==0 && alternatives_1==0;
+ }
+
+ alternatives
+ impl_alternatives::map(alternative (*kc_fp)(alternative))
+ { return dynamic_cast<alternatives>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consalternatives)); }
+ alternatives
+ impl_alternatives::filter(bool (*kc_fp)(alternative))
+ { return dynamic_cast<alternatives>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consalternatives)); }
+
+ alternatives
+ impl_alternatives::append(alternative new_last)
+ {
+ return dynamic_cast<alternatives>(do_append(new_last, Nilalternatives()));
+ }
+ alternatives
+ impl_alternatives::merge( alternatives second, alternative (*kc_fp)(alternative, alternative))
+ {
+ return dynamic_cast<alternatives>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consalternatives));
+ }
+ alternative
+ impl_alternatives::reduce( alternative neutral, alternative (*kc_fp)(alternative, alternative))
+ {
+ return dynamic_cast<alternative>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ arguments
+ concat(c_arguments kc_p1, c_arguments kc_p2)
+ { return dynamic_cast<arguments>(kc_p1->do_concat(kc_p2, sel_Consarguments)); }
+
+ arguments
+ impl_arguments::reverse() const
+ { return dynamic_cast<arguments>(do_reverse(Nilarguments(), sel_Consarguments)); }
+
+ ID
+ impl_arguments::last() const
+ { return dynamic_cast<ID>(impl_abstract_list::last()); }
+
+ bool
+ impl_arguments::is_nil() const
+ {
+ return ID_1==0 && arguments_1==0;
+ }
+
+ arguments
+ impl_arguments::map(ID (*kc_fp)(ID))
+ { return dynamic_cast<arguments>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consarguments)); }
+ arguments
+ impl_arguments::filter(bool (*kc_fp)(ID))
+ { return dynamic_cast<arguments>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consarguments)); }
+
+ arguments
+ impl_arguments::append(ID new_last)
+ {
+ return dynamic_cast<arguments>(do_append(new_last, Nilarguments()));
+ }
+ arguments
+ impl_arguments::merge( arguments second, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<arguments>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consarguments));
+ }
+ ID
+ impl_arguments::reduce( ID neutral, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<ID>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ attributes
+ concat(c_attributes kc_p1, c_attributes kc_p2)
+ { return dynamic_cast<attributes>(kc_p1->do_concat(kc_p2, sel_Consattributes)); }
+
+ attributes
+ impl_attributes::reverse() const
+ { return dynamic_cast<attributes>(do_reverse(Nilattributes(), sel_Consattributes)); }
+
+ attribute
+ impl_attributes::last() const
+ { return dynamic_cast<attribute>(impl_abstract_list::last()); }
+
+ bool
+ impl_attributes::is_nil() const
+ {
+ return attribute_1==0 && attributes_1==0;
+ }
+
+ attributes
+ impl_attributes::map(attribute (*kc_fp)(attribute))
+ { return dynamic_cast<attributes>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consattributes)); }
+ attributes
+ impl_attributes::filter(bool (*kc_fp)(attribute))
+ { return dynamic_cast<attributes>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consattributes)); }
+
+ attributes
+ impl_attributes::append(attribute new_last)
+ {
+ return dynamic_cast<attributes>(do_append(new_last, Nilattributes()));
+ }
+ attributes
+ impl_attributes::merge( attributes second, attribute (*kc_fp)(attribute, attribute))
+ {
+ return dynamic_cast<attributes>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consattributes));
+ }
+ attribute
+ impl_attributes::reduce( attribute neutral, attribute (*kc_fp)(attribute, attribute))
+ {
+ return dynamic_cast<attribute>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ Cexpression
+ concat(c_Cexpression kc_p1, c_Cexpression kc_p2)
+ { return dynamic_cast<Cexpression>(kc_p1->do_concat(kc_p2, sel_ConsCexpression)); }
+
+ Cexpression
+ impl_Cexpression::reverse() const
+ { return dynamic_cast<Cexpression>(do_reverse(NilCexpression(), sel_ConsCexpression)); }
+
+ Cexpression_elem
+ impl_Cexpression::last() const
+ { return dynamic_cast<Cexpression_elem>(impl_abstract_list::last()); }
+
+ bool
+ impl_Cexpression::is_nil() const
+ {
+ return Cexpression_elem_1==0 && Cexpression_1==0;
+ }
+
+ Cexpression
+ impl_Cexpression::map(Cexpression_elem (*kc_fp)(Cexpression_elem))
+ { return dynamic_cast<Cexpression>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_ConsCexpression)); }
+ Cexpression
+ impl_Cexpression::filter(bool (*kc_fp)(Cexpression_elem))
+ { return dynamic_cast<Cexpression>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_ConsCexpression)); }
+
+ Cexpression
+ impl_Cexpression::append(Cexpression_elem new_last)
+ {
+ return dynamic_cast<Cexpression>(do_append(new_last, NilCexpression()));
+ }
+ Cexpression
+ impl_Cexpression::merge( Cexpression second, Cexpression_elem (*kc_fp)(Cexpression_elem, Cexpression_elem))
+ {
+ return dynamic_cast<Cexpression>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_ConsCexpression));
+ }
+ Cexpression_elem
+ impl_Cexpression::reduce( Cexpression_elem neutral, Cexpression_elem (*kc_fp)(Cexpression_elem, Cexpression_elem))
+ {
+ return dynamic_cast<Cexpression_elem>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ CexpressionDQ
+ concat(c_CexpressionDQ kc_p1, c_CexpressionDQ kc_p2)
+ { return dynamic_cast<CexpressionDQ>(kc_p1->do_concat(kc_p2, sel_ConsCexpressionDQ)); }
+
+ CexpressionDQ
+ impl_CexpressionDQ::reverse() const
+ { return dynamic_cast<CexpressionDQ>(do_reverse(NilCexpressionDQ(), sel_ConsCexpressionDQ)); }
+
+ CexpressionDQ_elem
+ impl_CexpressionDQ::last() const
+ { return dynamic_cast<CexpressionDQ_elem>(impl_abstract_list::last()); }
+
+ bool
+ impl_CexpressionDQ::is_nil() const
+ {
+ return CexpressionDQ_elem_1==0 && CexpressionDQ_1==0;
+ }
+
+ CexpressionDQ
+ impl_CexpressionDQ::map(CexpressionDQ_elem (*kc_fp)(CexpressionDQ_elem))
+ { return dynamic_cast<CexpressionDQ>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_ConsCexpressionDQ)); }
+ CexpressionDQ
+ impl_CexpressionDQ::filter(bool (*kc_fp)(CexpressionDQ_elem))
+ { return dynamic_cast<CexpressionDQ>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_ConsCexpressionDQ)); }
+
+ CexpressionDQ
+ impl_CexpressionDQ::append(CexpressionDQ_elem new_last)
+ {
+ return dynamic_cast<CexpressionDQ>(do_append(new_last, NilCexpressionDQ()));
+ }
+ CexpressionDQ
+ impl_CexpressionDQ::merge( CexpressionDQ second, CexpressionDQ_elem (*kc_fp)(CexpressionDQ_elem, CexpressionDQ_elem))
+ {
+ return dynamic_cast<CexpressionDQ>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_ConsCexpressionDQ));
+ }
+ CexpressionDQ_elem
+ impl_CexpressionDQ::reduce( CexpressionDQ_elem neutral, CexpressionDQ_elem (*kc_fp)(CexpressionDQ_elem, CexpressionDQ_elem))
+ {
+ return dynamic_cast<CexpressionDQ_elem>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ CexpressionSQ
+ concat(c_CexpressionSQ kc_p1, c_CexpressionSQ kc_p2)
+ { return dynamic_cast<CexpressionSQ>(kc_p1->do_concat(kc_p2, sel_ConsCexpressionSQ)); }
+
+ CexpressionSQ
+ impl_CexpressionSQ::reverse() const
+ { return dynamic_cast<CexpressionSQ>(do_reverse(NilCexpressionSQ(), sel_ConsCexpressionSQ)); }
+
+ CexpressionSQ_elem
+ impl_CexpressionSQ::last() const
+ { return dynamic_cast<CexpressionSQ_elem>(impl_abstract_list::last()); }
+
+ bool
+ impl_CexpressionSQ::is_nil() const
+ {
+ return CexpressionSQ_elem_1==0 && CexpressionSQ_1==0;
+ }
+
+ CexpressionSQ
+ impl_CexpressionSQ::map(CexpressionSQ_elem (*kc_fp)(CexpressionSQ_elem))
+ { return dynamic_cast<CexpressionSQ>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_ConsCexpressionSQ)); }
+ CexpressionSQ
+ impl_CexpressionSQ::filter(bool (*kc_fp)(CexpressionSQ_elem))
+ { return dynamic_cast<CexpressionSQ>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_ConsCexpressionSQ)); }
+
+ CexpressionSQ
+ impl_CexpressionSQ::append(CexpressionSQ_elem new_last)
+ {
+ return dynamic_cast<CexpressionSQ>(do_append(new_last, NilCexpressionSQ()));
+ }
+ CexpressionSQ
+ impl_CexpressionSQ::merge( CexpressionSQ second, CexpressionSQ_elem (*kc_fp)(CexpressionSQ_elem, CexpressionSQ_elem))
+ {
+ return dynamic_cast<CexpressionSQ>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_ConsCexpressionSQ));
+ }
+ CexpressionSQ_elem
+ impl_CexpressionSQ::reduce( CexpressionSQ_elem neutral, CexpressionSQ_elem (*kc_fp)(CexpressionSQ_elem, CexpressionSQ_elem))
+ {
+ return dynamic_cast<CexpressionSQ_elem>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ idCexpressions
+ concat(c_idCexpressions kc_p1, c_idCexpressions kc_p2)
+ { return dynamic_cast<idCexpressions>(kc_p1->do_concat(kc_p2, sel_ConsidCexpressions)); }
+
+ idCexpressions
+ impl_idCexpressions::reverse() const
+ { return dynamic_cast<idCexpressions>(do_reverse(NilidCexpressions(), sel_ConsidCexpressions)); }
+
+ idCexpression
+ impl_idCexpressions::last() const
+ { return dynamic_cast<idCexpression>(impl_abstract_list::last()); }
+
+ bool
+ impl_idCexpressions::is_nil() const
+ {
+ return idCexpression_1==0 && idCexpressions_1==0;
+ }
+
+ idCexpressions
+ impl_idCexpressions::map(idCexpression (*kc_fp)(idCexpression))
+ { return dynamic_cast<idCexpressions>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_ConsidCexpressions)); }
+ idCexpressions
+ impl_idCexpressions::filter(bool (*kc_fp)(idCexpression))
+ { return dynamic_cast<idCexpressions>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_ConsidCexpressions)); }
+
+ idCexpressions
+ impl_idCexpressions::append(idCexpression new_last)
+ {
+ return dynamic_cast<idCexpressions>(do_append(new_last, NilidCexpressions()));
+ }
+ idCexpressions
+ impl_idCexpressions::merge( idCexpressions second, idCexpression (*kc_fp)(idCexpression, idCexpression))
+ {
+ return dynamic_cast<idCexpressions>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_ConsidCexpressions));
+ }
+ idCexpression
+ impl_idCexpressions::reduce( idCexpression neutral, idCexpression (*kc_fp)(idCexpression, idCexpression))
+ {
+ return dynamic_cast<idCexpression>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ Ctexts
+ concat(c_Ctexts kc_p1, c_Ctexts kc_p2)
+ { return dynamic_cast<Ctexts>(kc_p1->do_concat(kc_p2, sel_ConsCtexts)); }
+
+ Ctexts
+ impl_Ctexts::reverse() const
+ { return dynamic_cast<Ctexts>(do_reverse(NilCtexts(), sel_ConsCtexts)); }
+
+ Ctext
+ impl_Ctexts::last() const
+ { return dynamic_cast<Ctext>(impl_abstract_list::last()); }
+
+ bool
+ impl_Ctexts::is_nil() const
+ {
+ return Ctext_1==0 && Ctexts_1==0;
+ }
+
+ Ctexts
+ impl_Ctexts::map(Ctext (*kc_fp)(Ctext))
+ { return dynamic_cast<Ctexts>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_ConsCtexts)); }
+ Ctexts
+ impl_Ctexts::filter(bool (*kc_fp)(Ctext))
+ { return dynamic_cast<Ctexts>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_ConsCtexts)); }
+
+ Ctexts
+ impl_Ctexts::append(Ctext new_last)
+ {
+ return dynamic_cast<Ctexts>(do_append(new_last, NilCtexts()));
+ }
+ Ctexts
+ impl_Ctexts::merge( Ctexts second, Ctext (*kc_fp)(Ctext, Ctext))
+ {
+ return dynamic_cast<Ctexts>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_ConsCtexts));
+ }
+ Ctext
+ impl_Ctexts::reduce( Ctext neutral, Ctext (*kc_fp)(Ctext, Ctext))
+ {
+ return dynamic_cast<Ctext>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ includefiles
+ concat(c_includefiles kc_p1, c_includefiles kc_p2)
+ { return dynamic_cast<includefiles>(kc_p1->do_concat(kc_p2, sel_Consincludefiles)); }
+
+ includefiles
+ impl_includefiles::reverse() const
+ { return dynamic_cast<includefiles>(do_reverse(Nilincludefiles(), sel_Consincludefiles)); }
+
+ includefile
+ impl_includefiles::last() const
+ { return dynamic_cast<includefile>(impl_abstract_list::last()); }
+
+ bool
+ impl_includefiles::is_nil() const
+ {
+ return includefile_1==0 && includefiles_1==0;
+ }
+
+ includefiles
+ impl_includefiles::map(includefile (*kc_fp)(includefile))
+ { return dynamic_cast<includefiles>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consincludefiles)); }
+ includefiles
+ impl_includefiles::filter(bool (*kc_fp)(includefile))
+ { return dynamic_cast<includefiles>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consincludefiles)); }
+
+ includefiles
+ impl_includefiles::append(includefile new_last)
+ {
+ return dynamic_cast<includefiles>(do_append(new_last, Nilincludefiles()));
+ }
+ includefiles
+ impl_includefiles::merge( includefiles second, includefile (*kc_fp)(includefile, includefile))
+ {
+ return dynamic_cast<includefiles>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consincludefiles));
+ }
+ includefile
+ impl_includefiles::reduce( includefile neutral, includefile (*kc_fp)(includefile, includefile))
+ {
+ return dynamic_cast<includefile>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ includedeclarations
+ concat(c_includedeclarations kc_p1, c_includedeclarations kc_p2)
+ { return dynamic_cast<includedeclarations>(kc_p1->do_concat(kc_p2, sel_Consincludedeclarations)); }
+
+ includedeclarations
+ impl_includedeclarations::reverse() const
+ { return dynamic_cast<includedeclarations>(do_reverse(Nilincludedeclarations(), sel_Consincludedeclarations)); }
+
+ includedeclaration
+ impl_includedeclarations::last() const
+ { return dynamic_cast<includedeclaration>(impl_abstract_list::last()); }
+
+ bool
+ impl_includedeclarations::is_nil() const
+ {
+ return includedeclaration_1==0 && includedeclarations_1==0;
+ }
+
+ includedeclarations
+ impl_includedeclarations::map(includedeclaration (*kc_fp)(includedeclaration))
+ { return dynamic_cast<includedeclarations>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consincludedeclarations)); }
+ includedeclarations
+ impl_includedeclarations::filter(bool (*kc_fp)(includedeclaration))
+ { return dynamic_cast<includedeclarations>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consincludedeclarations)); }
+
+ includedeclarations
+ impl_includedeclarations::append(includedeclaration new_last)
+ {
+ return dynamic_cast<includedeclarations>(do_append(new_last, Nilincludedeclarations()));
+ }
+ includedeclarations
+ impl_includedeclarations::merge( includedeclarations second, includedeclaration (*kc_fp)(includedeclaration, includedeclaration))
+ {
+ return dynamic_cast<includedeclarations>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consincludedeclarations));
+ }
+ includedeclaration
+ impl_includedeclarations::reduce( includedeclaration neutral, includedeclaration (*kc_fp)(includedeclaration, includedeclaration))
+ {
+ return dynamic_cast<includedeclaration>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ rwdeclarations
+ concat(c_rwdeclarations kc_p1, c_rwdeclarations kc_p2)
+ { return dynamic_cast<rwdeclarations>(kc_p1->do_concat(kc_p2, sel_Consrwdeclarations)); }
+
+ rwdeclarations
+ impl_rwdeclarations::reverse() const
+ { return dynamic_cast<rwdeclarations>(do_reverse(Nilrwdeclarations(), sel_Consrwdeclarations)); }
+
+ rwdeclaration
+ impl_rwdeclarations::last() const
+ { return dynamic_cast<rwdeclaration>(impl_abstract_list::last()); }
+
+ bool
+ impl_rwdeclarations::is_nil() const
+ {
+ return rwdeclaration_1==0 && rwdeclarations_1==0;
+ }
+
+ rwdeclarations
+ impl_rwdeclarations::map(rwdeclaration (*kc_fp)(rwdeclaration))
+ { return dynamic_cast<rwdeclarations>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consrwdeclarations)); }
+ rwdeclarations
+ impl_rwdeclarations::filter(bool (*kc_fp)(rwdeclaration))
+ { return dynamic_cast<rwdeclarations>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consrwdeclarations)); }
+
+ rwdeclarations
+ impl_rwdeclarations::append(rwdeclaration new_last)
+ {
+ return dynamic_cast<rwdeclarations>(do_append(new_last, Nilrwdeclarations()));
+ }
+ rwdeclarations
+ impl_rwdeclarations::merge( rwdeclarations second, rwdeclaration (*kc_fp)(rwdeclaration, rwdeclaration))
+ {
+ return dynamic_cast<rwdeclarations>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consrwdeclarations));
+ }
+ rwdeclaration
+ impl_rwdeclarations::reduce( rwdeclaration neutral, rwdeclaration (*kc_fp)(rwdeclaration, rwdeclaration))
+ {
+ return dynamic_cast<rwdeclaration>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ rewriteclauses
+ concat(c_rewriteclauses kc_p1, c_rewriteclauses kc_p2)
+ { return dynamic_cast<rewriteclauses>(kc_p1->do_concat(kc_p2, sel_Consrewriteclauses)); }
+
+ rewriteclauses
+ impl_rewriteclauses::reverse() const
+ { return dynamic_cast<rewriteclauses>(do_reverse(Nilrewriteclauses(), sel_Consrewriteclauses)); }
+
+ rewriteclause
+ impl_rewriteclauses::last() const
+ { return dynamic_cast<rewriteclause>(impl_abstract_list::last()); }
+
+ bool
+ impl_rewriteclauses::is_nil() const
+ {
+ return rewriteclause_1==0 && rewriteclauses_1==0;
+ }
+
+ rewriteclauses
+ impl_rewriteclauses::map(rewriteclause (*kc_fp)(rewriteclause))
+ { return dynamic_cast<rewriteclauses>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consrewriteclauses)); }
+ rewriteclauses
+ impl_rewriteclauses::filter(bool (*kc_fp)(rewriteclause))
+ { return dynamic_cast<rewriteclauses>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consrewriteclauses)); }
+
+ rewriteclauses
+ impl_rewriteclauses::append(rewriteclause new_last)
+ {
+ return dynamic_cast<rewriteclauses>(do_append(new_last, Nilrewriteclauses()));
+ }
+ rewriteclauses
+ impl_rewriteclauses::merge( rewriteclauses second, rewriteclause (*kc_fp)(rewriteclause, rewriteclause))
+ {
+ return dynamic_cast<rewriteclauses>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consrewriteclauses));
+ }
+ rewriteclause
+ impl_rewriteclauses::reduce( rewriteclause neutral, rewriteclause (*kc_fp)(rewriteclause, rewriteclause))
+ {
+ return dynamic_cast<rewriteclause>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ patternchains
+ concat(c_patternchains kc_p1, c_patternchains kc_p2)
+ { return dynamic_cast<patternchains>(kc_p1->do_concat(kc_p2, sel_Conspatternchains)); }
+
+ patternchains
+ impl_patternchains::reverse() const
+ { return dynamic_cast<patternchains>(do_reverse(Nilpatternchains(), sel_Conspatternchains)); }
+
+ patternchain
+ impl_patternchains::last() const
+ { return dynamic_cast<patternchain>(impl_abstract_list::last()); }
+
+ bool
+ impl_patternchains::is_nil() const
+ {
+ return patternchain_1==0 && patternchains_1==0;
+ }
+
+ patternchains
+ impl_patternchains::map(patternchain (*kc_fp)(patternchain))
+ { return dynamic_cast<patternchains>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Conspatternchains)); }
+ patternchains
+ impl_patternchains::filter(bool (*kc_fp)(patternchain))
+ { return dynamic_cast<patternchains>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Conspatternchains)); }
+
+ patternchains
+ impl_patternchains::append(patternchain new_last)
+ {
+ return dynamic_cast<patternchains>(do_append(new_last, Nilpatternchains()));
+ }
+ patternchains
+ impl_patternchains::merge( patternchains second, patternchain (*kc_fp)(patternchain, patternchain))
+ {
+ return dynamic_cast<patternchains>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Conspatternchains));
+ }
+ patternchain
+ impl_patternchains::reduce( patternchain neutral, patternchain (*kc_fp)(patternchain, patternchain))
+ {
+ return dynamic_cast<patternchain>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ patternchain
+ concat(c_patternchain kc_p1, c_patternchain kc_p2)
+ { return dynamic_cast<patternchain>(kc_p1->do_concat(kc_p2, sel_Conspatternchain)); }
+
+ patternchain
+ impl_patternchain::reverse() const
+ { return dynamic_cast<patternchain>(do_reverse(Nilpatternchain(), sel_Conspatternchain)); }
+
+ patternchainitem
+ impl_patternchain::last() const
+ { return dynamic_cast<patternchainitem>(impl_abstract_list::last()); }
+
+ bool
+ impl_patternchain::is_nil() const
+ {
+ return patternchainitem_1==0 && patternchain_1==0;
+ }
+
+ patternchain
+ impl_patternchain::map(patternchainitem (*kc_fp)(patternchainitem))
+ { return dynamic_cast<patternchain>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Conspatternchain)); }
+ patternchain
+ impl_patternchain::filter(bool (*kc_fp)(patternchainitem))
+ { return dynamic_cast<patternchain>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Conspatternchain)); }
+
+ patternchain
+ impl_patternchain::append(patternchainitem new_last)
+ {
+ return dynamic_cast<patternchain>(do_append(new_last, Nilpatternchain()));
+ }
+ patternchain
+ impl_patternchain::merge( patternchain second, patternchainitem (*kc_fp)(patternchainitem, patternchainitem))
+ {
+ return dynamic_cast<patternchain>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Conspatternchain));
+ }
+ patternchainitem
+ impl_patternchain::reduce( patternchainitem neutral, patternchainitem (*kc_fp)(patternchainitem, patternchainitem))
+ {
+ return dynamic_cast<patternchainitem>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ outmostpatterns
+ concat(c_outmostpatterns kc_p1, c_outmostpatterns kc_p2)
+ { return dynamic_cast<outmostpatterns>(kc_p1->do_concat(kc_p2, sel_Consoutmostpatterns)); }
+
+ outmostpatterns
+ impl_outmostpatterns::reverse() const
+ { return dynamic_cast<outmostpatterns>(do_reverse(Niloutmostpatterns(), sel_Consoutmostpatterns)); }
+
+ outmostpattern
+ impl_outmostpatterns::last() const
+ { return dynamic_cast<outmostpattern>(impl_abstract_list::last()); }
+
+ bool
+ impl_outmostpatterns::is_nil() const
+ {
+ return outmostpattern_1==0 && outmostpatterns_1==0;
+ }
+
+ outmostpatterns
+ impl_outmostpatterns::map(outmostpattern (*kc_fp)(outmostpattern))
+ { return dynamic_cast<outmostpatterns>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consoutmostpatterns)); }
+ outmostpatterns
+ impl_outmostpatterns::filter(bool (*kc_fp)(outmostpattern))
+ { return dynamic_cast<outmostpatterns>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consoutmostpatterns)); }
+
+ outmostpatterns
+ impl_outmostpatterns::append(outmostpattern new_last)
+ {
+ return dynamic_cast<outmostpatterns>(do_append(new_last, Niloutmostpatterns()));
+ }
+ outmostpatterns
+ impl_outmostpatterns::merge( outmostpatterns second, outmostpattern (*kc_fp)(outmostpattern, outmostpattern))
+ {
+ return dynamic_cast<outmostpatterns>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consoutmostpatterns));
+ }
+ outmostpattern
+ impl_outmostpatterns::reduce( outmostpattern neutral, outmostpattern (*kc_fp)(outmostpattern, outmostpattern))
+ {
+ return dynamic_cast<outmostpattern>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ patterns
+ concat(c_patterns kc_p1, c_patterns kc_p2)
+ { return dynamic_cast<patterns>(kc_p1->do_concat(kc_p2, sel_Conspatterns)); }
+
+ patterns
+ impl_patterns::reverse() const
+ { return dynamic_cast<patterns>(do_reverse(Nilpatterns(), sel_Conspatterns)); }
+
+ pattern
+ impl_patterns::last() const
+ { return dynamic_cast<pattern>(impl_abstract_list::last()); }
+
+ bool
+ impl_patterns::is_nil() const
+ {
+ return pattern_1==0 && patterns_1==0;
+ }
+
+ patterns
+ impl_patterns::map(pattern (*kc_fp)(pattern))
+ { return dynamic_cast<patterns>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Conspatterns)); }
+ patterns
+ impl_patterns::filter(bool (*kc_fp)(pattern))
+ { return dynamic_cast<patterns>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Conspatterns)); }
+
+ patterns
+ impl_patterns::append(pattern new_last)
+ {
+ return dynamic_cast<patterns>(do_append(new_last, Nilpatterns()));
+ }
+ patterns
+ impl_patterns::merge( patterns second, pattern (*kc_fp)(pattern, pattern))
+ {
+ return dynamic_cast<patterns>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Conspatterns));
+ }
+ pattern
+ impl_patterns::reduce( pattern neutral, pattern (*kc_fp)(pattern, pattern))
+ {
+ return dynamic_cast<pattern>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ terms
+ concat(c_terms kc_p1, c_terms kc_p2)
+ { return dynamic_cast<terms>(kc_p1->do_concat(kc_p2, sel_Consterms)); }
+
+ terms
+ impl_terms::reverse() const
+ { return dynamic_cast<terms>(do_reverse(Nilterms(), sel_Consterms)); }
+
+ term
+ impl_terms::last() const
+ { return dynamic_cast<term>(impl_abstract_list::last()); }
+
+ bool
+ impl_terms::is_nil() const
+ {
+ return term_1==0 && terms_1==0;
+ }
+
+ terms
+ impl_terms::map(term (*kc_fp)(term))
+ { return dynamic_cast<terms>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consterms)); }
+ terms
+ impl_terms::filter(bool (*kc_fp)(term))
+ { return dynamic_cast<terms>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consterms)); }
+
+ terms
+ impl_terms::append(term new_last)
+ {
+ return dynamic_cast<terms>(do_append(new_last, Nilterms()));
+ }
+ terms
+ impl_terms::merge( terms second, term (*kc_fp)(term, term))
+ {
+ return dynamic_cast<terms>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consterms));
+ }
+ term
+ impl_terms::reduce( term neutral, term (*kc_fp)(term, term))
+ {
+ return dynamic_cast<term>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ fnfiles
+ concat(c_fnfiles kc_p1, c_fnfiles kc_p2)
+ { return dynamic_cast<fnfiles>(kc_p1->do_concat(kc_p2, sel_Consfnfiles)); }
+
+ fnfiles
+ impl_fnfiles::reverse() const
+ { return dynamic_cast<fnfiles>(do_reverse(Nilfnfiles(), sel_Consfnfiles)); }
+
+ fnfile
+ impl_fnfiles::last() const
+ { return dynamic_cast<fnfile>(impl_abstract_list::last()); }
+
+ bool
+ impl_fnfiles::is_nil() const
+ {
+ return fnfile_1==0 && fnfiles_1==0;
+ }
+
+ fnfiles
+ impl_fnfiles::map(fnfile (*kc_fp)(fnfile))
+ { return dynamic_cast<fnfiles>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consfnfiles)); }
+ fnfiles
+ impl_fnfiles::filter(bool (*kc_fp)(fnfile))
+ { return dynamic_cast<fnfiles>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consfnfiles)); }
+
+ fnfiles
+ impl_fnfiles::append(fnfile new_last)
+ {
+ return dynamic_cast<fnfiles>(do_append(new_last, Nilfnfiles()));
+ }
+ fnfiles
+ impl_fnfiles::merge( fnfiles second, fnfile (*kc_fp)(fnfile, fnfile))
+ {
+ return dynamic_cast<fnfiles>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consfnfiles));
+ }
+ fnfile
+ impl_fnfiles::reduce( fnfile neutral, fnfile (*kc_fp)(fnfile, fnfile))
+ {
+ return dynamic_cast<fnfile>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ fndeclarations
+ concat(c_fndeclarations kc_p1, c_fndeclarations kc_p2)
+ { return dynamic_cast<fndeclarations>(kc_p1->do_concat(kc_p2, sel_Consfndeclarations)); }
+
+ fndeclarations
+ impl_fndeclarations::reverse() const
+ { return dynamic_cast<fndeclarations>(do_reverse(Nilfndeclarations(), sel_Consfndeclarations)); }
+
+ fndeclaration
+ impl_fndeclarations::last() const
+ { return dynamic_cast<fndeclaration>(impl_abstract_list::last()); }
+
+ bool
+ impl_fndeclarations::is_nil() const
+ {
+ return fndeclaration_1==0 && fndeclarations_1==0;
+ }
+
+ fndeclarations
+ impl_fndeclarations::map(fndeclaration (*kc_fp)(fndeclaration))
+ { return dynamic_cast<fndeclarations>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consfndeclarations)); }
+ fndeclarations
+ impl_fndeclarations::filter(bool (*kc_fp)(fndeclaration))
+ { return dynamic_cast<fndeclarations>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consfndeclarations)); }
+
+ fndeclarations
+ impl_fndeclarations::append(fndeclaration new_last)
+ {
+ return dynamic_cast<fndeclarations>(do_append(new_last, Nilfndeclarations()));
+ }
+ fndeclarations
+ impl_fndeclarations::merge( fndeclarations second, fndeclaration (*kc_fp)(fndeclaration, fndeclaration))
+ {
+ return dynamic_cast<fndeclarations>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consfndeclarations));
+ }
+ fndeclaration
+ impl_fndeclarations::reduce( fndeclaration neutral, fndeclaration (*kc_fp)(fndeclaration, fndeclaration))
+ {
+ return dynamic_cast<fndeclaration>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ Ctext
+ concat(c_Ctext kc_p1, c_Ctext kc_p2)
+ { return dynamic_cast<Ctext>(kc_p1->do_concat(kc_p2, sel_ConsCtext)); }
+
+ Ctext
+ impl_Ctext::reverse() const
+ { return dynamic_cast<Ctext>(do_reverse(NilCtext(), sel_ConsCtext)); }
+
+ Ctext_elem
+ impl_Ctext::last() const
+ { return dynamic_cast<Ctext_elem>(impl_abstract_list::last()); }
+
+ bool
+ impl_Ctext::is_nil() const
+ {
+ return Ctext_elem_1==0 && Ctext_1==0;
+ }
+
+ Ctext
+ impl_Ctext::map(Ctext_elem (*kc_fp)(Ctext_elem))
+ { return dynamic_cast<Ctext>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_ConsCtext)); }
+ Ctext
+ impl_Ctext::filter(bool (*kc_fp)(Ctext_elem))
+ { return dynamic_cast<Ctext>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_ConsCtext)); }
+
+ Ctext
+ impl_Ctext::append(Ctext_elem new_last)
+ {
+ return dynamic_cast<Ctext>(do_append(new_last, NilCtext()));
+ }
+ Ctext
+ impl_Ctext::merge( Ctext second, Ctext_elem (*kc_fp)(Ctext_elem, Ctext_elem))
+ {
+ return dynamic_cast<Ctext>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_ConsCtext));
+ }
+ Ctext_elem
+ impl_Ctext::reduce( Ctext_elem neutral, Ctext_elem (*kc_fp)(Ctext_elem, Ctext_elem))
+ {
+ return dynamic_cast<Ctext_elem>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ withexpressions
+ concat(c_withexpressions kc_p1, c_withexpressions kc_p2)
+ { return dynamic_cast<withexpressions>(kc_p1->do_concat(kc_p2, sel_Conswithexpressions)); }
+
+ withexpressions
+ impl_withexpressions::reverse() const
+ { return dynamic_cast<withexpressions>(do_reverse(Nilwithexpressions(), sel_Conswithexpressions)); }
+
+ withexpression
+ impl_withexpressions::last() const
+ { return dynamic_cast<withexpression>(impl_abstract_list::last()); }
+
+ bool
+ impl_withexpressions::is_nil() const
+ {
+ return withexpression_1==0 && withexpressions_1==0;
+ }
+
+ withexpressions
+ impl_withexpressions::map(withexpression (*kc_fp)(withexpression))
+ { return dynamic_cast<withexpressions>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Conswithexpressions)); }
+ withexpressions
+ impl_withexpressions::filter(bool (*kc_fp)(withexpression))
+ { return dynamic_cast<withexpressions>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Conswithexpressions)); }
+
+ withexpressions
+ impl_withexpressions::append(withexpression new_last)
+ {
+ return dynamic_cast<withexpressions>(do_append(new_last, Nilwithexpressions()));
+ }
+ withexpressions
+ impl_withexpressions::merge( withexpressions second, withexpression (*kc_fp)(withexpression, withexpression))
+ {
+ return dynamic_cast<withexpressions>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Conswithexpressions));
+ }
+ withexpression
+ impl_withexpressions::reduce( withexpression neutral, withexpression (*kc_fp)(withexpression, withexpression))
+ {
+ return dynamic_cast<withexpression>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ withcases
+ concat(c_withcases kc_p1, c_withcases kc_p2)
+ { return dynamic_cast<withcases>(kc_p1->do_concat(kc_p2, sel_Conswithcases)); }
+
+ withcases
+ impl_withcases::reverse() const
+ { return dynamic_cast<withcases>(do_reverse(Nilwithcases(), sel_Conswithcases)); }
+
+ withcase
+ impl_withcases::last() const
+ { return dynamic_cast<withcase>(impl_abstract_list::last()); }
+
+ bool
+ impl_withcases::is_nil() const
+ {
+ return withcase_1==0 && withcases_1==0;
+ }
+
+ withcases
+ impl_withcases::map(withcase (*kc_fp)(withcase))
+ { return dynamic_cast<withcases>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Conswithcases)); }
+ withcases
+ impl_withcases::filter(bool (*kc_fp)(withcase))
+ { return dynamic_cast<withcases>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Conswithcases)); }
+
+ withcases
+ impl_withcases::append(withcase new_last)
+ {
+ return dynamic_cast<withcases>(do_append(new_last, Nilwithcases()));
+ }
+ withcases
+ impl_withcases::merge( withcases second, withcase (*kc_fp)(withcase, withcase))
+ {
+ return dynamic_cast<withcases>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Conswithcases));
+ }
+ withcase
+ impl_withcases::reduce( withcase neutral, withcase (*kc_fp)(withcase, withcase))
+ {
+ return dynamic_cast<withcase>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ unparsedeclarations
+ concat(c_unparsedeclarations kc_p1, c_unparsedeclarations kc_p2)
+ { return dynamic_cast<unparsedeclarations>(kc_p1->do_concat(kc_p2, sel_Consunparsedeclarations)); }
+
+ unparsedeclarations
+ impl_unparsedeclarations::reverse() const
+ { return dynamic_cast<unparsedeclarations>(do_reverse(Nilunparsedeclarations(), sel_Consunparsedeclarations)); }
+
+ unparsedeclaration
+ impl_unparsedeclarations::last() const
+ { return dynamic_cast<unparsedeclaration>(impl_abstract_list::last()); }
+
+ bool
+ impl_unparsedeclarations::is_nil() const
+ {
+ return unparsedeclaration_1==0 && unparsedeclarations_1==0;
+ }
+
+ unparsedeclarations
+ impl_unparsedeclarations::map(unparsedeclaration (*kc_fp)(unparsedeclaration))
+ { return dynamic_cast<unparsedeclarations>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consunparsedeclarations)); }
+ unparsedeclarations
+ impl_unparsedeclarations::filter(bool (*kc_fp)(unparsedeclaration))
+ { return dynamic_cast<unparsedeclarations>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consunparsedeclarations)); }
+
+ unparsedeclarations
+ impl_unparsedeclarations::append(unparsedeclaration new_last)
+ {
+ return dynamic_cast<unparsedeclarations>(do_append(new_last, Nilunparsedeclarations()));
+ }
+ unparsedeclarations
+ impl_unparsedeclarations::merge( unparsedeclarations second, unparsedeclaration (*kc_fp)(unparsedeclaration, unparsedeclaration))
+ {
+ return dynamic_cast<unparsedeclarations>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consunparsedeclarations));
+ }
+ unparsedeclaration
+ impl_unparsedeclarations::reduce( unparsedeclaration neutral, unparsedeclaration (*kc_fp)(unparsedeclaration, unparsedeclaration))
+ {
+ return dynamic_cast<unparsedeclaration>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ unparseclauses
+ concat(c_unparseclauses kc_p1, c_unparseclauses kc_p2)
+ { return dynamic_cast<unparseclauses>(kc_p1->do_concat(kc_p2, sel_Consunparseclauses)); }
+
+ unparseclauses
+ impl_unparseclauses::reverse() const
+ { return dynamic_cast<unparseclauses>(do_reverse(Nilunparseclauses(), sel_Consunparseclauses)); }
+
+ unparseclause
+ impl_unparseclauses::last() const
+ { return dynamic_cast<unparseclause>(impl_abstract_list::last()); }
+
+ bool
+ impl_unparseclauses::is_nil() const
+ {
+ return unparseclause_1==0 && unparseclauses_1==0;
+ }
+
+ unparseclauses
+ impl_unparseclauses::map(unparseclause (*kc_fp)(unparseclause))
+ { return dynamic_cast<unparseclauses>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consunparseclauses)); }
+ unparseclauses
+ impl_unparseclauses::filter(bool (*kc_fp)(unparseclause))
+ { return dynamic_cast<unparseclauses>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consunparseclauses)); }
+
+ unparseclauses
+ impl_unparseclauses::append(unparseclause new_last)
+ {
+ return dynamic_cast<unparseclauses>(do_append(new_last, Nilunparseclauses()));
+ }
+ unparseclauses
+ impl_unparseclauses::merge( unparseclauses second, unparseclause (*kc_fp)(unparseclause, unparseclause))
+ {
+ return dynamic_cast<unparseclauses>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consunparseclauses));
+ }
+ unparseclause
+ impl_unparseclauses::reduce( unparseclause neutral, unparseclause (*kc_fp)(unparseclause, unparseclause))
+ {
+ return dynamic_cast<unparseclause>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ viewnames
+ concat(c_viewnames kc_p1, c_viewnames kc_p2)
+ { return dynamic_cast<viewnames>(kc_p1->do_concat(kc_p2, sel_Consviewnames)); }
+
+ viewnames
+ impl_viewnames::reverse() const
+ { return dynamic_cast<viewnames>(do_reverse(Nilviewnames(), sel_Consviewnames)); }
+
+ ID
+ impl_viewnames::last() const
+ { return dynamic_cast<ID>(impl_abstract_list::last()); }
+
+ bool
+ impl_viewnames::is_nil() const
+ {
+ return ID_1==0 && viewnames_1==0;
+ }
+
+ viewnames
+ impl_viewnames::map(ID (*kc_fp)(ID))
+ { return dynamic_cast<viewnames>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consviewnames)); }
+ viewnames
+ impl_viewnames::filter(bool (*kc_fp)(ID))
+ { return dynamic_cast<viewnames>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consviewnames)); }
+
+ viewnames
+ impl_viewnames::append(ID new_last)
+ {
+ return dynamic_cast<viewnames>(do_append(new_last, Nilviewnames()));
+ }
+ viewnames
+ impl_viewnames::merge( viewnames second, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<viewnames>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consviewnames));
+ }
+ ID
+ impl_viewnames::reduce( ID neutral, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<ID>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ unparseitems
+ concat(c_unparseitems kc_p1, c_unparseitems kc_p2)
+ { return dynamic_cast<unparseitems>(kc_p1->do_concat(kc_p2, sel_Consunparseitems)); }
+
+ unparseitems
+ impl_unparseitems::reverse() const
+ { return dynamic_cast<unparseitems>(do_reverse(Nilunparseitems(), sel_Consunparseitems)); }
+
+ unparseitem
+ impl_unparseitems::last() const
+ { return dynamic_cast<unparseitem>(impl_abstract_list::last()); }
+
+ bool
+ impl_unparseitems::is_nil() const
+ {
+ return unparseitem_1==0 && unparseitems_1==0;
+ }
+
+ unparseitems
+ impl_unparseitems::map(unparseitem (*kc_fp)(unparseitem))
+ { return dynamic_cast<unparseitems>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consunparseitems)); }
+ unparseitems
+ impl_unparseitems::filter(bool (*kc_fp)(unparseitem))
+ { return dynamic_cast<unparseitems>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consunparseitems)); }
+
+ unparseitems
+ impl_unparseitems::append(unparseitem new_last)
+ {
+ return dynamic_cast<unparseitems>(do_append(new_last, Nilunparseitems()));
+ }
+ unparseitems
+ impl_unparseitems::merge( unparseitems second, unparseitem (*kc_fp)(unparseitem, unparseitem))
+ {
+ return dynamic_cast<unparseitems>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consunparseitems));
+ }
+ unparseitem
+ impl_unparseitems::reduce( unparseitem neutral, unparseitem (*kc_fp)(unparseitem, unparseitem))
+ {
+ return dynamic_cast<unparseitem>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ unpattributes
+ concat(c_unpattributes kc_p1, c_unpattributes kc_p2)
+ { return dynamic_cast<unpattributes>(kc_p1->do_concat(kc_p2, sel_Consunpattributes)); }
+
+ unpattributes
+ impl_unpattributes::reverse() const
+ { return dynamic_cast<unpattributes>(do_reverse(Nilunpattributes(), sel_Consunpattributes)); }
+
+ ID
+ impl_unpattributes::last() const
+ { return dynamic_cast<ID>(impl_abstract_list::last()); }
+
+ bool
+ impl_unpattributes::is_nil() const
+ {
+ return ID_1==0 && unpattributes_1==0;
+ }
+
+ unpattributes
+ impl_unpattributes::map(ID (*kc_fp)(ID))
+ { return dynamic_cast<unpattributes>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consunpattributes)); }
+ unpattributes
+ impl_unpattributes::filter(bool (*kc_fp)(ID))
+ { return dynamic_cast<unpattributes>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consunpattributes)); }
+
+ unpattributes
+ impl_unpattributes::append(ID new_last)
+ {
+ return dynamic_cast<unpattributes>(do_append(new_last, Nilunpattributes()));
+ }
+ unpattributes
+ impl_unpattributes::merge( unpattributes second, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<unpattributes>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consunpattributes));
+ }
+ ID
+ impl_unpattributes::reduce( ID neutral, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<ID>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ languagenames
+ concat(c_languagenames kc_p1, c_languagenames kc_p2)
+ { return dynamic_cast<languagenames>(kc_p1->do_concat(kc_p2, sel_Conslanguagenames)); }
+
+ languagenames
+ impl_languagenames::reverse() const
+ { return dynamic_cast<languagenames>(do_reverse(Nillanguagenames(), sel_Conslanguagenames)); }
+
+ ID
+ impl_languagenames::last() const
+ { return dynamic_cast<ID>(impl_abstract_list::last()); }
+
+ bool
+ impl_languagenames::is_nil() const
+ {
+ return ID_1==0 && languagenames_1==0;
+ }
+
+ languagenames
+ impl_languagenames::map(ID (*kc_fp)(ID))
+ { return dynamic_cast<languagenames>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Conslanguagenames)); }
+ languagenames
+ impl_languagenames::filter(bool (*kc_fp)(ID))
+ { return dynamic_cast<languagenames>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Conslanguagenames)); }
+
+ languagenames
+ impl_languagenames::append(ID new_last)
+ {
+ return dynamic_cast<languagenames>(do_append(new_last, Nillanguagenames()));
+ }
+ languagenames
+ impl_languagenames::merge( languagenames second, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<languagenames>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Conslanguagenames));
+ }
+ ID
+ impl_languagenames::reduce( ID neutral, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<ID>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ scopetypefilelinestack
+ concat(c_scopetypefilelinestack kc_p1, c_scopetypefilelinestack kc_p2)
+ { return dynamic_cast<scopetypefilelinestack>(kc_p1->do_concat(kc_p2, sel_Consscopetypefilelinestack)); }
+
+ scopetypefilelinestack
+ impl_scopetypefilelinestack::reverse() const
+ { return dynamic_cast<scopetypefilelinestack>(do_reverse(Nilscopetypefilelinestack(), sel_Consscopetypefilelinestack)); }
+
+ scopetypefileline
+ impl_scopetypefilelinestack::last() const
+ { return dynamic_cast<scopetypefileline>(impl_abstract_list::last()); }
+
+ bool
+ impl_scopetypefilelinestack::is_nil() const
+ {
+ return scopetypefileline_1==0 && scopetypefilelinestack_1==0;
+ }
+
+ scopetypefilelinestack
+ impl_scopetypefilelinestack::map(scopetypefileline (*kc_fp)(scopetypefileline))
+ { return dynamic_cast<scopetypefilelinestack>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consscopetypefilelinestack)); }
+ scopetypefilelinestack
+ impl_scopetypefilelinestack::filter(bool (*kc_fp)(scopetypefileline))
+ { return dynamic_cast<scopetypefilelinestack>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consscopetypefilelinestack)); }
+
+ scopetypefilelinestack
+ impl_scopetypefilelinestack::append(scopetypefileline new_last)
+ {
+ return dynamic_cast<scopetypefilelinestack>(do_append(new_last, Nilscopetypefilelinestack()));
+ }
+ scopetypefilelinestack
+ impl_scopetypefilelinestack::merge( scopetypefilelinestack second, scopetypefileline (*kc_fp)(scopetypefileline, scopetypefileline))
+ {
+ return dynamic_cast<scopetypefilelinestack>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consscopetypefilelinestack));
+ }
+ scopetypefileline
+ impl_scopetypefilelinestack::reduce( scopetypefileline neutral, scopetypefileline (*kc_fp)(scopetypefileline, scopetypefileline))
+ {
+ return dynamic_cast<scopetypefileline>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ operators
+ concat(c_operators kc_p1, c_operators kc_p2)
+ { return dynamic_cast<operators>(kc_p1->do_concat(kc_p2, sel_Consoperators)); }
+
+ operators
+ impl_operators::reverse() const
+ { return dynamic_cast<operators>(do_reverse(Niloperators(), sel_Consoperators)); }
+
+ ID
+ impl_operators::last() const
+ { return dynamic_cast<ID>(impl_abstract_list::last()); }
+
+ bool
+ impl_operators::is_nil() const
+ {
+ return ID_1==0 && operators_1==0;
+ }
+
+ operators
+ impl_operators::map(ID (*kc_fp)(ID))
+ { return dynamic_cast<operators>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consoperators)); }
+ operators
+ impl_operators::filter(bool (*kc_fp)(ID))
+ { return dynamic_cast<operators>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consoperators)); }
+
+ operators
+ impl_operators::append(ID new_last)
+ {
+ return dynamic_cast<operators>(do_append(new_last, Niloperators()));
+ }
+ operators
+ impl_operators::merge( operators second, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<operators>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consoperators));
+ }
+ ID
+ impl_operators::reduce( ID neutral, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<ID>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ phyla
+ concat(c_phyla kc_p1, c_phyla kc_p2)
+ { return dynamic_cast<phyla>(kc_p1->do_concat(kc_p2, sel_Consphyla)); }
+
+ phyla
+ impl_phyla::reverse() const
+ { return dynamic_cast<phyla>(do_reverse(Nilphyla(), sel_Consphyla)); }
+
+ ID
+ impl_phyla::last() const
+ { return dynamic_cast<ID>(impl_abstract_list::last()); }
+
+ bool
+ impl_phyla::is_nil() const
+ {
+ return ID_1==0 && phyla_1==0;
+ }
+
+ phyla
+ impl_phyla::map(ID (*kc_fp)(ID))
+ { return dynamic_cast<phyla>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consphyla)); }
+ phyla
+ impl_phyla::filter(bool (*kc_fp)(ID))
+ { return dynamic_cast<phyla>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consphyla)); }
+
+ phyla
+ impl_phyla::append(ID new_last)
+ {
+ return dynamic_cast<phyla>(do_append(new_last, Nilphyla()));
+ }
+ phyla
+ impl_phyla::merge( phyla second, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<phyla>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consphyla));
+ }
+ ID
+ impl_phyla::reduce( ID neutral, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<ID>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ variables
+ concat(c_variables kc_p1, c_variables kc_p2)
+ { return dynamic_cast<variables>(kc_p1->do_concat(kc_p2, sel_Consvariables)); }
+
+ variables
+ impl_variables::reverse() const
+ { return dynamic_cast<variables>(do_reverse(Nilvariables(), sel_Consvariables)); }
+
+ ID
+ impl_variables::last() const
+ { return dynamic_cast<ID>(impl_abstract_list::last()); }
+
+ bool
+ impl_variables::is_nil() const
+ {
+ return ID_1==0 && variables_1==0;
+ }
+
+ variables
+ impl_variables::map(ID (*kc_fp)(ID))
+ { return dynamic_cast<variables>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consvariables)); }
+ variables
+ impl_variables::filter(bool (*kc_fp)(ID))
+ { return dynamic_cast<variables>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consvariables)); }
+
+ variables
+ impl_variables::append(ID new_last)
+ {
+ return dynamic_cast<variables>(do_append(new_last, Nilvariables()));
+ }
+ variables
+ impl_variables::merge( variables second, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<variables>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consvariables));
+ }
+ ID
+ impl_variables::reduce( ID neutral, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<ID>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ patternrepresentations
+ concat(c_patternrepresentations kc_p1, c_patternrepresentations kc_p2)
+ { return dynamic_cast<patternrepresentations>(kc_p1->do_concat(kc_p2, sel_Conspatternrepresentations)); }
+
+ patternrepresentations
+ impl_patternrepresentations::reverse() const
+ { return dynamic_cast<patternrepresentations>(do_reverse(Nilpatternrepresentations(), sel_Conspatternrepresentations)); }
+
+ patternrepresentation
+ impl_patternrepresentations::last() const
+ { return dynamic_cast<patternrepresentation>(impl_abstract_list::last()); }
+
+ bool
+ impl_patternrepresentations::is_nil() const
+ {
+ return patternrepresentation_1==0 && patternrepresentations_1==0;
+ }
+
+ patternrepresentations
+ impl_patternrepresentations::map(patternrepresentation (*kc_fp)(patternrepresentation))
+ { return dynamic_cast<patternrepresentations>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Conspatternrepresentations)); }
+ patternrepresentations
+ impl_patternrepresentations::filter(bool (*kc_fp)(patternrepresentation))
+ { return dynamic_cast<patternrepresentations>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Conspatternrepresentations)); }
+
+ patternrepresentations
+ impl_patternrepresentations::append(patternrepresentation new_last)
+ {
+ return dynamic_cast<patternrepresentations>(do_append(new_last, Nilpatternrepresentations()));
+ }
+ patternrepresentations
+ impl_patternrepresentations::merge( patternrepresentations second, patternrepresentation (*kc_fp)(patternrepresentation, patternrepresentation))
+ {
+ return dynamic_cast<patternrepresentations>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Conspatternrepresentations));
+ }
+ patternrepresentation
+ impl_patternrepresentations::reduce( patternrepresentation neutral, patternrepresentation (*kc_fp)(patternrepresentation, patternrepresentation))
+ {
+ return dynamic_cast<patternrepresentation>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ patternrepresentation
+ concat(c_patternrepresentation kc_p1, c_patternrepresentation kc_p2)
+ { return dynamic_cast<patternrepresentation>(kc_p1->do_concat(kc_p2, sel_Conspatternrepresentation)); }
+
+ patternrepresentation
+ impl_patternrepresentation::reverse() const
+ { return dynamic_cast<patternrepresentation>(do_reverse(Nilpatternrepresentation(), sel_Conspatternrepresentation)); }
+
+ elem_patternrepresentation
+ impl_patternrepresentation::last() const
+ { return dynamic_cast<elem_patternrepresentation>(impl_abstract_list::last()); }
+
+ bool
+ impl_patternrepresentation::is_nil() const
+ {
+ return elem_patternrepresentation_1==0 && patternrepresentation_1==0;
+ }
+
+ patternrepresentation
+ impl_patternrepresentation::map(elem_patternrepresentation (*kc_fp)(elem_patternrepresentation))
+ { return dynamic_cast<patternrepresentation>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Conspatternrepresentation)); }
+ patternrepresentation
+ impl_patternrepresentation::filter(bool (*kc_fp)(elem_patternrepresentation))
+ { return dynamic_cast<patternrepresentation>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Conspatternrepresentation)); }
+
+ patternrepresentation
+ impl_patternrepresentation::append(elem_patternrepresentation new_last)
+ {
+ return dynamic_cast<patternrepresentation>(do_append(new_last, Nilpatternrepresentation()));
+ }
+ patternrepresentation
+ impl_patternrepresentation::merge( patternrepresentation second, elem_patternrepresentation (*kc_fp)(elem_patternrepresentation, elem_patternrepresentation))
+ {
+ return dynamic_cast<patternrepresentation>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Conspatternrepresentation));
+ }
+ elem_patternrepresentation
+ impl_patternrepresentation::reduce( elem_patternrepresentation neutral, elem_patternrepresentation (*kc_fp)(elem_patternrepresentation, elem_patternrepresentation))
+ {
+ return dynamic_cast<elem_patternrepresentation>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ path
+ concat(c_path kc_p1, c_path kc_p2)
+ { return dynamic_cast<path>(kc_p1->do_concat(kc_p2, sel_Conspath)); }
+
+ path
+ impl_path::reverse() const
+ { return dynamic_cast<path>(do_reverse(Nilpath(), sel_Conspath)); }
+
+ integer
+ impl_path::last() const
+ { return dynamic_cast<integer>(impl_abstract_list::last()); }
+
+ bool
+ impl_path::is_nil() const
+ {
+ return integer_1==0 && path_1==0;
+ }
+
+ path
+ impl_path::map(integer (*kc_fp)(integer))
+ { return dynamic_cast<path>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Conspath)); }
+ path
+ impl_path::filter(bool (*kc_fp)(integer))
+ { return dynamic_cast<path>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Conspath)); }
+
+ path
+ impl_path::append(integer new_last)
+ {
+ return dynamic_cast<path>(do_append(new_last, Nilpath()));
+ }
+ path
+ impl_path::merge( path second, integer (*kc_fp)(integer, integer))
+ {
+ return dynamic_cast<path>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Conspath));
+ }
+ integer
+ impl_path::reduce( integer neutral, integer (*kc_fp)(integer, integer))
+ {
+ return dynamic_cast<integer>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ paths
+ concat(c_paths kc_p1, c_paths kc_p2)
+ { return dynamic_cast<paths>(kc_p1->do_concat(kc_p2, sel_Conspaths)); }
+
+ paths
+ impl_paths::reverse() const
+ { return dynamic_cast<paths>(do_reverse(Nilpaths(), sel_Conspaths)); }
+
+ path
+ impl_paths::last() const
+ { return dynamic_cast<path>(impl_abstract_list::last()); }
+
+ bool
+ impl_paths::is_nil() const
+ {
+ return path_1==0 && paths_1==0;
+ }
+
+ paths
+ impl_paths::map(path (*kc_fp)(path))
+ { return dynamic_cast<paths>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Conspaths)); }
+ paths
+ impl_paths::filter(bool (*kc_fp)(path))
+ { return dynamic_cast<paths>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Conspaths)); }
+
+ paths
+ impl_paths::append(path new_last)
+ {
+ return dynamic_cast<paths>(do_append(new_last, Nilpaths()));
+ }
+ paths
+ impl_paths::merge( paths second, path (*kc_fp)(path, path))
+ {
+ return dynamic_cast<paths>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Conspaths));
+ }
+ path
+ impl_paths::reduce( path neutral, path (*kc_fp)(path, path))
+ {
+ return dynamic_cast<path>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ argsnumbers
+ concat(c_argsnumbers kc_p1, c_argsnumbers kc_p2)
+ { return dynamic_cast<argsnumbers>(kc_p1->do_concat(kc_p2, sel_Consargsnumbers)); }
+
+ argsnumbers
+ impl_argsnumbers::reverse() const
+ { return dynamic_cast<argsnumbers>(do_reverse(Nilargsnumbers(), sel_Consargsnumbers)); }
+
+ integer
+ impl_argsnumbers::last() const
+ { return dynamic_cast<integer>(impl_abstract_list::last()); }
+
+ bool
+ impl_argsnumbers::is_nil() const
+ {
+ return integer_1==0 && argsnumbers_1==0;
+ }
+
+ argsnumbers
+ impl_argsnumbers::map(integer (*kc_fp)(integer))
+ { return dynamic_cast<argsnumbers>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consargsnumbers)); }
+ argsnumbers
+ impl_argsnumbers::filter(bool (*kc_fp)(integer))
+ { return dynamic_cast<argsnumbers>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consargsnumbers)); }
+
+ argsnumbers
+ impl_argsnumbers::append(integer new_last)
+ {
+ return dynamic_cast<argsnumbers>(do_append(new_last, Nilargsnumbers()));
+ }
+ argsnumbers
+ impl_argsnumbers::merge( argsnumbers second, integer (*kc_fp)(integer, integer))
+ {
+ return dynamic_cast<argsnumbers>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consargsnumbers));
+ }
+ integer
+ impl_argsnumbers::reduce( integer neutral, integer (*kc_fp)(integer, integer))
+ {
+ return dynamic_cast<integer>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ rewriterulesinfo
+ concat(c_rewriterulesinfo kc_p1, c_rewriterulesinfo kc_p2)
+ { return dynamic_cast<rewriterulesinfo>(kc_p1->do_concat(kc_p2, sel_Consrewriterulesinfo)); }
+
+ rewriterulesinfo
+ impl_rewriterulesinfo::reverse() const
+ { return dynamic_cast<rewriterulesinfo>(do_reverse(Nilrewriterulesinfo(), sel_Consrewriterulesinfo)); }
+
+ rewriteruleinfo
+ impl_rewriterulesinfo::last() const
+ { return dynamic_cast<rewriteruleinfo>(impl_abstract_list::last()); }
+
+ bool
+ impl_rewriterulesinfo::is_nil() const
+ {
+ return rewriteruleinfo_1==0 && rewriterulesinfo_1==0;
+ }
+
+ rewriterulesinfo
+ impl_rewriterulesinfo::map(rewriteruleinfo (*kc_fp)(rewriteruleinfo))
+ { return dynamic_cast<rewriterulesinfo>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consrewriterulesinfo)); }
+ rewriterulesinfo
+ impl_rewriterulesinfo::filter(bool (*kc_fp)(rewriteruleinfo))
+ { return dynamic_cast<rewriterulesinfo>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consrewriterulesinfo)); }
+
+ rewriterulesinfo
+ impl_rewriterulesinfo::append(rewriteruleinfo new_last)
+ {
+ return dynamic_cast<rewriterulesinfo>(do_append(new_last, Nilrewriterulesinfo()));
+ }
+ rewriterulesinfo
+ impl_rewriterulesinfo::merge( rewriterulesinfo second, rewriteruleinfo (*kc_fp)(rewriteruleinfo, rewriteruleinfo))
+ {
+ return dynamic_cast<rewriterulesinfo>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consrewriterulesinfo));
+ }
+ rewriteruleinfo
+ impl_rewriterulesinfo::reduce( rewriteruleinfo neutral, rewriteruleinfo (*kc_fp)(rewriteruleinfo, rewriteruleinfo))
+ {
+ return dynamic_cast<rewriteruleinfo>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ withcasesinfo
+ concat(c_withcasesinfo kc_p1, c_withcasesinfo kc_p2)
+ { return dynamic_cast<withcasesinfo>(kc_p1->do_concat(kc_p2, sel_Conswithcasesinfo)); }
+
+ withcasesinfo
+ impl_withcasesinfo::reverse() const
+ { return dynamic_cast<withcasesinfo>(do_reverse(Nilwithcasesinfo(), sel_Conswithcasesinfo)); }
+
+ withcaseinfo
+ impl_withcasesinfo::last() const
+ { return dynamic_cast<withcaseinfo>(impl_abstract_list::last()); }
+
+ bool
+ impl_withcasesinfo::is_nil() const
+ {
+ return withcaseinfo_1==0 && withcasesinfo_1==0;
+ }
+
+ withcasesinfo
+ impl_withcasesinfo::map(withcaseinfo (*kc_fp)(withcaseinfo))
+ { return dynamic_cast<withcasesinfo>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Conswithcasesinfo)); }
+ withcasesinfo
+ impl_withcasesinfo::filter(bool (*kc_fp)(withcaseinfo))
+ { return dynamic_cast<withcasesinfo>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Conswithcasesinfo)); }
+
+ withcasesinfo
+ impl_withcasesinfo::append(withcaseinfo new_last)
+ {
+ return dynamic_cast<withcasesinfo>(do_append(new_last, Nilwithcasesinfo()));
+ }
+ withcasesinfo
+ impl_withcasesinfo::merge( withcasesinfo second, withcaseinfo (*kc_fp)(withcaseinfo, withcaseinfo))
+ {
+ return dynamic_cast<withcasesinfo>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Conswithcasesinfo));
+ }
+ withcaseinfo
+ impl_withcasesinfo::reduce( withcaseinfo neutral, withcaseinfo (*kc_fp)(withcaseinfo, withcaseinfo))
+ {
+ return dynamic_cast<withcaseinfo>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ rewriteviewsinfo
+ concat(c_rewriteviewsinfo kc_p1, c_rewriteviewsinfo kc_p2)
+ { return dynamic_cast<rewriteviewsinfo>(kc_p1->do_concat(kc_p2, sel_Consrewriteviewsinfo)); }
+
+ rewriteviewsinfo
+ impl_rewriteviewsinfo::reverse() const
+ { return dynamic_cast<rewriteviewsinfo>(do_reverse(Nilrewriteviewsinfo(), sel_Consrewriteviewsinfo)); }
+
+ rewriteviewinfo
+ impl_rewriteviewsinfo::last() const
+ { return dynamic_cast<rewriteviewinfo>(impl_abstract_list::last()); }
+
+ bool
+ impl_rewriteviewsinfo::is_nil() const
+ {
+ return rewriteviewinfo_1==0 && rewriteviewsinfo_1==0;
+ }
+
+ rewriteviewsinfo
+ impl_rewriteviewsinfo::map(rewriteviewinfo (*kc_fp)(rewriteviewinfo))
+ { return dynamic_cast<rewriteviewsinfo>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consrewriteviewsinfo)); }
+ rewriteviewsinfo
+ impl_rewriteviewsinfo::filter(bool (*kc_fp)(rewriteviewinfo))
+ { return dynamic_cast<rewriteviewsinfo>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consrewriteviewsinfo)); }
+
+ rewriteviewsinfo
+ impl_rewriteviewsinfo::append(rewriteviewinfo new_last)
+ {
+ return dynamic_cast<rewriteviewsinfo>(do_append(new_last, Nilrewriteviewsinfo()));
+ }
+ rewriteviewsinfo
+ impl_rewriteviewsinfo::merge( rewriteviewsinfo second, rewriteviewinfo (*kc_fp)(rewriteviewinfo, rewriteviewinfo))
+ {
+ return dynamic_cast<rewriteviewsinfo>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consrewriteviewsinfo));
+ }
+ rewriteviewinfo
+ impl_rewriteviewsinfo::reduce( rewriteviewinfo neutral, rewriteviewinfo (*kc_fp)(rewriteviewinfo, rewriteviewinfo))
+ {
+ return dynamic_cast<rewriteviewinfo>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ unparseviewsinfo
+ concat(c_unparseviewsinfo kc_p1, c_unparseviewsinfo kc_p2)
+ { return dynamic_cast<unparseviewsinfo>(kc_p1->do_concat(kc_p2, sel_Consunparseviewsinfo)); }
+
+ unparseviewsinfo
+ impl_unparseviewsinfo::reverse() const
+ { return dynamic_cast<unparseviewsinfo>(do_reverse(Nilunparseviewsinfo(), sel_Consunparseviewsinfo)); }
+
+ unparseviewinfo
+ impl_unparseviewsinfo::last() const
+ { return dynamic_cast<unparseviewinfo>(impl_abstract_list::last()); }
+
+ bool
+ impl_unparseviewsinfo::is_nil() const
+ {
+ return unparseviewinfo_1==0 && unparseviewsinfo_1==0;
+ }
+
+ unparseviewsinfo
+ impl_unparseviewsinfo::map(unparseviewinfo (*kc_fp)(unparseviewinfo))
+ { return dynamic_cast<unparseviewsinfo>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consunparseviewsinfo)); }
+ unparseviewsinfo
+ impl_unparseviewsinfo::filter(bool (*kc_fp)(unparseviewinfo))
+ { return dynamic_cast<unparseviewsinfo>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consunparseviewsinfo)); }
+
+ unparseviewsinfo
+ impl_unparseviewsinfo::append(unparseviewinfo new_last)
+ {
+ return dynamic_cast<unparseviewsinfo>(do_append(new_last, Nilunparseviewsinfo()));
+ }
+ unparseviewsinfo
+ impl_unparseviewsinfo::merge( unparseviewsinfo second, unparseviewinfo (*kc_fp)(unparseviewinfo, unparseviewinfo))
+ {
+ return dynamic_cast<unparseviewsinfo>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consunparseviewsinfo));
+ }
+ unparseviewinfo
+ impl_unparseviewsinfo::reduce( unparseviewinfo neutral, unparseviewinfo (*kc_fp)(unparseviewinfo, unparseviewinfo))
+ {
+ return dynamic_cast<unparseviewinfo>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ unparsedeclsinfo
+ concat(c_unparsedeclsinfo kc_p1, c_unparsedeclsinfo kc_p2)
+ { return dynamic_cast<unparsedeclsinfo>(kc_p1->do_concat(kc_p2, sel_Consunparsedeclsinfo)); }
+
+ unparsedeclsinfo
+ impl_unparsedeclsinfo::reverse() const
+ { return dynamic_cast<unparsedeclsinfo>(do_reverse(Nilunparsedeclsinfo(), sel_Consunparsedeclsinfo)); }
+
+ unparsedeclinfo
+ impl_unparsedeclsinfo::last() const
+ { return dynamic_cast<unparsedeclinfo>(impl_abstract_list::last()); }
+
+ bool
+ impl_unparsedeclsinfo::is_nil() const
+ {
+ return unparsedeclinfo_1==0 && unparsedeclsinfo_1==0;
+ }
+
+ unparsedeclsinfo
+ impl_unparsedeclsinfo::map(unparsedeclinfo (*kc_fp)(unparsedeclinfo))
+ { return dynamic_cast<unparsedeclsinfo>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consunparsedeclsinfo)); }
+ unparsedeclsinfo
+ impl_unparsedeclsinfo::filter(bool (*kc_fp)(unparsedeclinfo))
+ { return dynamic_cast<unparsedeclsinfo>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consunparsedeclsinfo)); }
+
+ unparsedeclsinfo
+ impl_unparsedeclsinfo::append(unparsedeclinfo new_last)
+ {
+ return dynamic_cast<unparsedeclsinfo>(do_append(new_last, Nilunparsedeclsinfo()));
+ }
+ unparsedeclsinfo
+ impl_unparsedeclsinfo::merge( unparsedeclsinfo second, unparsedeclinfo (*kc_fp)(unparsedeclinfo, unparsedeclinfo))
+ {
+ return dynamic_cast<unparsedeclsinfo>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consunparsedeclsinfo));
+ }
+ unparsedeclinfo
+ impl_unparsedeclsinfo::reduce( unparsedeclinfo neutral, unparsedeclinfo (*kc_fp)(unparsedeclinfo, unparsedeclinfo))
+ {
+ return dynamic_cast<unparsedeclinfo>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ ac_declaration_list
+ concat(c_ac_declaration_list kc_p1, c_ac_declaration_list kc_p2)
+ { return dynamic_cast<ac_declaration_list>(kc_p1->do_concat(kc_p2, sel_Consac_declaration_list)); }
+
+ ac_declaration_list
+ impl_ac_declaration_list::reverse() const
+ { return dynamic_cast<ac_declaration_list>(do_reverse(Nilac_declaration_list(), sel_Consac_declaration_list)); }
+
+ ac_declaration
+ impl_ac_declaration_list::last() const
+ { return dynamic_cast<ac_declaration>(impl_abstract_list::last()); }
+
+ bool
+ impl_ac_declaration_list::is_nil() const
+ {
+ return ac_declaration_1==0 && ac_declaration_list_1==0;
+ }
+
+ ac_declaration_list
+ impl_ac_declaration_list::map(ac_declaration (*kc_fp)(ac_declaration))
+ { return dynamic_cast<ac_declaration_list>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consac_declaration_list)); }
+ ac_declaration_list
+ impl_ac_declaration_list::filter(bool (*kc_fp)(ac_declaration))
+ { return dynamic_cast<ac_declaration_list>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consac_declaration_list)); }
+
+ ac_declaration_list
+ impl_ac_declaration_list::append(ac_declaration new_last)
+ {
+ return dynamic_cast<ac_declaration_list>(do_append(new_last, Nilac_declaration_list()));
+ }
+ ac_declaration_list
+ impl_ac_declaration_list::merge( ac_declaration_list second, ac_declaration (*kc_fp)(ac_declaration, ac_declaration))
+ {
+ return dynamic_cast<ac_declaration_list>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consac_declaration_list));
+ }
+ ac_declaration
+ impl_ac_declaration_list::reduce( ac_declaration neutral, ac_declaration (*kc_fp)(ac_declaration, ac_declaration))
+ {
+ return dynamic_cast<ac_declaration>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ ac_declaration_specifiers
+ concat(c_ac_declaration_specifiers kc_p1, c_ac_declaration_specifiers kc_p2)
+ { return dynamic_cast<ac_declaration_specifiers>(kc_p1->do_concat(kc_p2, sel_Consac_declaration_specifiers)); }
+
+ ac_declaration_specifiers
+ impl_ac_declaration_specifiers::reverse() const
+ { return dynamic_cast<ac_declaration_specifiers>(do_reverse(Nilac_declaration_specifiers(), sel_Consac_declaration_specifiers)); }
+
+ ac_declaration_specifier
+ impl_ac_declaration_specifiers::last() const
+ { return dynamic_cast<ac_declaration_specifier>(impl_abstract_list::last()); }
+
+ bool
+ impl_ac_declaration_specifiers::is_nil() const
+ {
+ return ac_declaration_specifier_1==0 && ac_declaration_specifiers_1==0;
+ }
+
+ ac_declaration_specifiers
+ impl_ac_declaration_specifiers::map(ac_declaration_specifier (*kc_fp)(ac_declaration_specifier))
+ { return dynamic_cast<ac_declaration_specifiers>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consac_declaration_specifiers)); }
+ ac_declaration_specifiers
+ impl_ac_declaration_specifiers::filter(bool (*kc_fp)(ac_declaration_specifier))
+ { return dynamic_cast<ac_declaration_specifiers>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consac_declaration_specifiers)); }
+
+ ac_declaration_specifiers
+ impl_ac_declaration_specifiers::append(ac_declaration_specifier new_last)
+ {
+ return dynamic_cast<ac_declaration_specifiers>(do_append(new_last, Nilac_declaration_specifiers()));
+ }
+ ac_declaration_specifiers
+ impl_ac_declaration_specifiers::merge( ac_declaration_specifiers second, ac_declaration_specifier (*kc_fp)(ac_declaration_specifier, ac_declaration_specifier))
+ {
+ return dynamic_cast<ac_declaration_specifiers>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consac_declaration_specifiers));
+ }
+ ac_declaration_specifier
+ impl_ac_declaration_specifiers::reduce( ac_declaration_specifier neutral, ac_declaration_specifier (*kc_fp)(ac_declaration_specifier, ac_declaration_specifier))
+ {
+ return dynamic_cast<ac_declaration_specifier>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ ac_init_declarator_list
+ concat(c_ac_init_declarator_list kc_p1, c_ac_init_declarator_list kc_p2)
+ { return dynamic_cast<ac_init_declarator_list>(kc_p1->do_concat(kc_p2, sel_Consac_init_declarator_list)); }
+
+ ac_init_declarator_list
+ impl_ac_init_declarator_list::reverse() const
+ { return dynamic_cast<ac_init_declarator_list>(do_reverse(Nilac_init_declarator_list(), sel_Consac_init_declarator_list)); }
+
+ ac_init_declarator
+ impl_ac_init_declarator_list::last() const
+ { return dynamic_cast<ac_init_declarator>(impl_abstract_list::last()); }
+
+ bool
+ impl_ac_init_declarator_list::is_nil() const
+ {
+ return ac_init_declarator_1==0 && ac_init_declarator_list_1==0;
+ }
+
+ ac_init_declarator_list
+ impl_ac_init_declarator_list::map(ac_init_declarator (*kc_fp)(ac_init_declarator))
+ { return dynamic_cast<ac_init_declarator_list>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consac_init_declarator_list)); }
+ ac_init_declarator_list
+ impl_ac_init_declarator_list::filter(bool (*kc_fp)(ac_init_declarator))
+ { return dynamic_cast<ac_init_declarator_list>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consac_init_declarator_list)); }
+
+ ac_init_declarator_list
+ impl_ac_init_declarator_list::append(ac_init_declarator new_last)
+ {
+ return dynamic_cast<ac_init_declarator_list>(do_append(new_last, Nilac_init_declarator_list()));
+ }
+ ac_init_declarator_list
+ impl_ac_init_declarator_list::merge( ac_init_declarator_list second, ac_init_declarator (*kc_fp)(ac_init_declarator, ac_init_declarator))
+ {
+ return dynamic_cast<ac_init_declarator_list>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consac_init_declarator_list));
+ }
+ ac_init_declarator
+ impl_ac_init_declarator_list::reduce( ac_init_declarator neutral, ac_init_declarator (*kc_fp)(ac_init_declarator, ac_init_declarator))
+ {
+ return dynamic_cast<ac_init_declarator>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ ac_class_qualifier_help_list
+ concat(c_ac_class_qualifier_help_list kc_p1, c_ac_class_qualifier_help_list kc_p2)
+ { return dynamic_cast<ac_class_qualifier_help_list>(kc_p1->do_concat(kc_p2, sel_Consac_class_qualifier_help_list)); }
+
+ ac_class_qualifier_help_list
+ impl_ac_class_qualifier_help_list::reverse() const
+ { return dynamic_cast<ac_class_qualifier_help_list>(do_reverse(Nilac_class_qualifier_help_list(), sel_Consac_class_qualifier_help_list)); }
+
+ ac_direct_declarator
+ impl_ac_class_qualifier_help_list::last() const
+ { return dynamic_cast<ac_direct_declarator>(impl_abstract_list::last()); }
+
+ bool
+ impl_ac_class_qualifier_help_list::is_nil() const
+ {
+ return ac_direct_declarator_1==0 && ac_class_qualifier_help_list_1==0;
+ }
+
+ ac_class_qualifier_help_list
+ impl_ac_class_qualifier_help_list::map(ac_direct_declarator (*kc_fp)(ac_direct_declarator))
+ { return dynamic_cast<ac_class_qualifier_help_list>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consac_class_qualifier_help_list)); }
+ ac_class_qualifier_help_list
+ impl_ac_class_qualifier_help_list::filter(bool (*kc_fp)(ac_direct_declarator))
+ { return dynamic_cast<ac_class_qualifier_help_list>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consac_class_qualifier_help_list)); }
+
+ ac_class_qualifier_help_list
+ impl_ac_class_qualifier_help_list::append(ac_direct_declarator new_last)
+ {
+ return dynamic_cast<ac_class_qualifier_help_list>(do_append(new_last, Nilac_class_qualifier_help_list()));
+ }
+ ac_class_qualifier_help_list
+ impl_ac_class_qualifier_help_list::merge( ac_class_qualifier_help_list second, ac_direct_declarator (*kc_fp)(ac_direct_declarator, ac_direct_declarator))
+ {
+ return dynamic_cast<ac_class_qualifier_help_list>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consac_class_qualifier_help_list));
+ }
+ ac_direct_declarator
+ impl_ac_class_qualifier_help_list::reduce( ac_direct_declarator neutral, ac_direct_declarator (*kc_fp)(ac_direct_declarator, ac_direct_declarator))
+ {
+ return dynamic_cast<ac_direct_declarator>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ ac_class_qualifier_list
+ concat(c_ac_class_qualifier_list kc_p1, c_ac_class_qualifier_list kc_p2)
+ { return dynamic_cast<ac_class_qualifier_list>(kc_p1->do_concat(kc_p2, sel_Consac_class_qualifier_list)); }
+
+ ac_class_qualifier_list
+ impl_ac_class_qualifier_list::reverse() const
+ { return dynamic_cast<ac_class_qualifier_list>(do_reverse(Nilac_class_qualifier_list(), sel_Consac_class_qualifier_list)); }
+
+ ID
+ impl_ac_class_qualifier_list::last() const
+ { return dynamic_cast<ID>(impl_abstract_list::last()); }
+
+ bool
+ impl_ac_class_qualifier_list::is_nil() const
+ {
+ return ID_1==0 && ac_class_qualifier_list_1==0;
+ }
+
+ ac_class_qualifier_list
+ impl_ac_class_qualifier_list::map(ID (*kc_fp)(ID))
+ { return dynamic_cast<ac_class_qualifier_list>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consac_class_qualifier_list)); }
+ ac_class_qualifier_list
+ impl_ac_class_qualifier_list::filter(bool (*kc_fp)(ID))
+ { return dynamic_cast<ac_class_qualifier_list>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consac_class_qualifier_list)); }
+
+ ac_class_qualifier_list
+ impl_ac_class_qualifier_list::append(ID new_last)
+ {
+ return dynamic_cast<ac_class_qualifier_list>(do_append(new_last, Nilac_class_qualifier_list()));
+ }
+ ac_class_qualifier_list
+ impl_ac_class_qualifier_list::merge( ac_class_qualifier_list second, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<ac_class_qualifier_list>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consac_class_qualifier_list));
+ }
+ ID
+ impl_ac_class_qualifier_list::reduce( ID neutral, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<ID>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ ac_type_qualifier_list
+ concat(c_ac_type_qualifier_list kc_p1, c_ac_type_qualifier_list kc_p2)
+ { return dynamic_cast<ac_type_qualifier_list>(kc_p1->do_concat(kc_p2, sel_Consac_type_qualifier_list)); }
+
+ ac_type_qualifier_list
+ impl_ac_type_qualifier_list::reverse() const
+ { return dynamic_cast<ac_type_qualifier_list>(do_reverse(Nilac_type_qualifier_list(), sel_Consac_type_qualifier_list)); }
+
+ ac_type_qualifier
+ impl_ac_type_qualifier_list::last() const
+ { return dynamic_cast<ac_type_qualifier>(impl_abstract_list::last()); }
+
+ bool
+ impl_ac_type_qualifier_list::is_nil() const
+ {
+ return ac_type_qualifier_1==0 && ac_type_qualifier_list_1==0;
+ }
+
+ ac_type_qualifier_list
+ impl_ac_type_qualifier_list::map(ac_type_qualifier (*kc_fp)(ac_type_qualifier))
+ { return dynamic_cast<ac_type_qualifier_list>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consac_type_qualifier_list)); }
+ ac_type_qualifier_list
+ impl_ac_type_qualifier_list::filter(bool (*kc_fp)(ac_type_qualifier))
+ { return dynamic_cast<ac_type_qualifier_list>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consac_type_qualifier_list)); }
+
+ ac_type_qualifier_list
+ impl_ac_type_qualifier_list::append(ac_type_qualifier new_last)
+ {
+ return dynamic_cast<ac_type_qualifier_list>(do_append(new_last, Nilac_type_qualifier_list()));
+ }
+ ac_type_qualifier_list
+ impl_ac_type_qualifier_list::merge( ac_type_qualifier_list second, ac_type_qualifier (*kc_fp)(ac_type_qualifier, ac_type_qualifier))
+ {
+ return dynamic_cast<ac_type_qualifier_list>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consac_type_qualifier_list));
+ }
+ ac_type_qualifier
+ impl_ac_type_qualifier_list::reduce( ac_type_qualifier neutral, ac_type_qualifier (*kc_fp)(ac_type_qualifier, ac_type_qualifier))
+ {
+ return dynamic_cast<ac_type_qualifier>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ ac_parameter_list
+ concat(c_ac_parameter_list kc_p1, c_ac_parameter_list kc_p2)
+ { return dynamic_cast<ac_parameter_list>(kc_p1->do_concat(kc_p2, sel_Consac_parameter_list)); }
+
+ ac_parameter_list
+ impl_ac_parameter_list::reverse() const
+ { return dynamic_cast<ac_parameter_list>(do_reverse(Nilac_parameter_list(), sel_Consac_parameter_list)); }
+
+ ac_parameter_declaration
+ impl_ac_parameter_list::last() const
+ { return dynamic_cast<ac_parameter_declaration>(impl_abstract_list::last()); }
+
+ bool
+ impl_ac_parameter_list::is_nil() const
+ {
+ return ac_parameter_declaration_1==0 && ac_parameter_list_1==0;
+ }
+
+ ac_parameter_list
+ impl_ac_parameter_list::map(ac_parameter_declaration (*kc_fp)(ac_parameter_declaration))
+ { return dynamic_cast<ac_parameter_list>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consac_parameter_list)); }
+ ac_parameter_list
+ impl_ac_parameter_list::filter(bool (*kc_fp)(ac_parameter_declaration))
+ { return dynamic_cast<ac_parameter_list>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consac_parameter_list)); }
+
+ ac_parameter_list
+ impl_ac_parameter_list::append(ac_parameter_declaration new_last)
+ {
+ return dynamic_cast<ac_parameter_list>(do_append(new_last, Nilac_parameter_list()));
+ }
+ ac_parameter_list
+ impl_ac_parameter_list::merge( ac_parameter_list second, ac_parameter_declaration (*kc_fp)(ac_parameter_declaration, ac_parameter_declaration))
+ {
+ return dynamic_cast<ac_parameter_list>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consac_parameter_list));
+ }
+ ac_parameter_declaration
+ impl_ac_parameter_list::reduce( ac_parameter_declaration neutral, ac_parameter_declaration (*kc_fp)(ac_parameter_declaration, ac_parameter_declaration))
+ {
+ return dynamic_cast<ac_parameter_declaration>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ ac_identifier_list
+ concat(c_ac_identifier_list kc_p1, c_ac_identifier_list kc_p2)
+ { return dynamic_cast<ac_identifier_list>(kc_p1->do_concat(kc_p2, sel_Consac_identifier_list)); }
+
+ ac_identifier_list
+ impl_ac_identifier_list::reverse() const
+ { return dynamic_cast<ac_identifier_list>(do_reverse(Nilac_identifier_list(), sel_Consac_identifier_list)); }
+
+ ID
+ impl_ac_identifier_list::last() const
+ { return dynamic_cast<ID>(impl_abstract_list::last()); }
+
+ bool
+ impl_ac_identifier_list::is_nil() const
+ {
+ return ID_1==0 && ac_identifier_list_1==0;
+ }
+
+ ac_identifier_list
+ impl_ac_identifier_list::map(ID (*kc_fp)(ID))
+ { return dynamic_cast<ac_identifier_list>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consac_identifier_list)); }
+ ac_identifier_list
+ impl_ac_identifier_list::filter(bool (*kc_fp)(ID))
+ { return dynamic_cast<ac_identifier_list>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consac_identifier_list)); }
+
+ ac_identifier_list
+ impl_ac_identifier_list::append(ID new_last)
+ {
+ return dynamic_cast<ac_identifier_list>(do_append(new_last, Nilac_identifier_list()));
+ }
+ ac_identifier_list
+ impl_ac_identifier_list::merge( ac_identifier_list second, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<ac_identifier_list>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consac_identifier_list));
+ }
+ ID
+ impl_ac_identifier_list::reduce( ID neutral, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<ID>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ ac_constant_expression_list
+ concat(c_ac_constant_expression_list kc_p1, c_ac_constant_expression_list kc_p2)
+ { return dynamic_cast<ac_constant_expression_list>(kc_p1->do_concat(kc_p2, sel_Consac_constant_expression_list)); }
+
+ ac_constant_expression_list
+ impl_ac_constant_expression_list::reverse() const
+ { return dynamic_cast<ac_constant_expression_list>(do_reverse(Nilac_constant_expression_list(), sel_Consac_constant_expression_list)); }
+
+ ac_constant_expression
+ impl_ac_constant_expression_list::last() const
+ { return dynamic_cast<ac_constant_expression>(impl_abstract_list::last()); }
+
+ bool
+ impl_ac_constant_expression_list::is_nil() const
+ {
+ return ac_constant_expression_1==0 && ac_constant_expression_list_1==0;
+ }
+
+ ac_constant_expression_list
+ impl_ac_constant_expression_list::map(ac_constant_expression (*kc_fp)(ac_constant_expression))
+ { return dynamic_cast<ac_constant_expression_list>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consac_constant_expression_list)); }
+ ac_constant_expression_list
+ impl_ac_constant_expression_list::filter(bool (*kc_fp)(ac_constant_expression))
+ { return dynamic_cast<ac_constant_expression_list>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consac_constant_expression_list)); }
+
+ ac_constant_expression_list
+ impl_ac_constant_expression_list::append(ac_constant_expression new_last)
+ {
+ return dynamic_cast<ac_constant_expression_list>(do_append(new_last, Nilac_constant_expression_list()));
+ }
+ ac_constant_expression_list
+ impl_ac_constant_expression_list::merge( ac_constant_expression_list second, ac_constant_expression (*kc_fp)(ac_constant_expression, ac_constant_expression))
+ {
+ return dynamic_cast<ac_constant_expression_list>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consac_constant_expression_list));
+ }
+ ac_constant_expression
+ impl_ac_constant_expression_list::reduce( ac_constant_expression neutral, ac_constant_expression (*kc_fp)(ac_constant_expression, ac_constant_expression))
+ {
+ return dynamic_cast<ac_constant_expression>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ ac_base_init_list
+ concat(c_ac_base_init_list kc_p1, c_ac_base_init_list kc_p2)
+ { return dynamic_cast<ac_base_init_list>(kc_p1->do_concat(kc_p2, sel_Consac_base_init_list)); }
+
+ ac_base_init_list
+ impl_ac_base_init_list::reverse() const
+ { return dynamic_cast<ac_base_init_list>(do_reverse(Nilac_base_init_list(), sel_Consac_base_init_list)); }
+
+ ac_base_init
+ impl_ac_base_init_list::last() const
+ { return dynamic_cast<ac_base_init>(impl_abstract_list::last()); }
+
+ bool
+ impl_ac_base_init_list::is_nil() const
+ {
+ return ac_base_init_1==0 && ac_base_init_list_1==0;
+ }
+
+ ac_base_init_list
+ impl_ac_base_init_list::map(ac_base_init (*kc_fp)(ac_base_init))
+ { return dynamic_cast<ac_base_init_list>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consac_base_init_list)); }
+ ac_base_init_list
+ impl_ac_base_init_list::filter(bool (*kc_fp)(ac_base_init))
+ { return dynamic_cast<ac_base_init_list>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consac_base_init_list)); }
+
+ ac_base_init_list
+ impl_ac_base_init_list::append(ac_base_init new_last)
+ {
+ return dynamic_cast<ac_base_init_list>(do_append(new_last, Nilac_base_init_list()));
+ }
+ ac_base_init_list
+ impl_ac_base_init_list::merge( ac_base_init_list second, ac_base_init (*kc_fp)(ac_base_init, ac_base_init))
+ {
+ return dynamic_cast<ac_base_init_list>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consac_base_init_list));
+ }
+ ac_base_init
+ impl_ac_base_init_list::reduce( ac_base_init neutral, ac_base_init (*kc_fp)(ac_base_init, ac_base_init))
+ {
+ return dynamic_cast<ac_base_init>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ baseclass_declarations
+ concat(c_baseclass_declarations kc_p1, c_baseclass_declarations kc_p2)
+ { return dynamic_cast<baseclass_declarations>(kc_p1->do_concat(kc_p2, sel_Consbaseclass_declarations)); }
+
+ baseclass_declarations
+ impl_baseclass_declarations::reverse() const
+ { return dynamic_cast<baseclass_declarations>(do_reverse(Nilbaseclass_declarations(), sel_Consbaseclass_declarations)); }
+
+ baseclass_decl
+ impl_baseclass_declarations::last() const
+ { return dynamic_cast<baseclass_decl>(impl_abstract_list::last()); }
+
+ bool
+ impl_baseclass_declarations::is_nil() const
+ {
+ return baseclass_decl_1==0 && baseclass_declarations_1==0;
+ }
+
+ baseclass_declarations
+ impl_baseclass_declarations::map(baseclass_decl (*kc_fp)(baseclass_decl))
+ { return dynamic_cast<baseclass_declarations>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consbaseclass_declarations)); }
+ baseclass_declarations
+ impl_baseclass_declarations::filter(bool (*kc_fp)(baseclass_decl))
+ { return dynamic_cast<baseclass_declarations>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consbaseclass_declarations)); }
+
+ baseclass_declarations
+ impl_baseclass_declarations::append(baseclass_decl new_last)
+ {
+ return dynamic_cast<baseclass_declarations>(do_append(new_last, Nilbaseclass_declarations()));
+ }
+ baseclass_declarations
+ impl_baseclass_declarations::merge( baseclass_declarations second, baseclass_decl (*kc_fp)(baseclass_decl, baseclass_decl))
+ {
+ return dynamic_cast<baseclass_declarations>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consbaseclass_declarations));
+ }
+ baseclass_decl
+ impl_baseclass_declarations::reduce( baseclass_decl neutral, baseclass_decl (*kc_fp)(baseclass_decl, baseclass_decl))
+ {
+ return dynamic_cast<baseclass_decl>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ baseclass_list
+ concat(c_baseclass_list kc_p1, c_baseclass_list kc_p2)
+ { return dynamic_cast<baseclass_list>(kc_p1->do_concat(kc_p2, sel_Consbaseclass_list)); }
+
+ baseclass_list
+ impl_baseclass_list::reverse() const
+ { return dynamic_cast<baseclass_list>(do_reverse(Nilbaseclass_list(), sel_Consbaseclass_list)); }
+
+ ID
+ impl_baseclass_list::last() const
+ { return dynamic_cast<ID>(impl_abstract_list::last()); }
+
+ bool
+ impl_baseclass_list::is_nil() const
+ {
+ return ID_1==0 && baseclass_list_1==0;
+ }
+
+ baseclass_list
+ impl_baseclass_list::map(ID (*kc_fp)(ID))
+ { return dynamic_cast<baseclass_list>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consbaseclass_list)); }
+ baseclass_list
+ impl_baseclass_list::filter(bool (*kc_fp)(ID))
+ { return dynamic_cast<baseclass_list>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consbaseclass_list)); }
+
+ baseclass_list
+ impl_baseclass_list::append(ID new_last)
+ {
+ return dynamic_cast<baseclass_list>(do_append(new_last, Nilbaseclass_list()));
+ }
+ baseclass_list
+ impl_baseclass_list::merge( baseclass_list second, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<baseclass_list>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consbaseclass_list));
+ }
+ ID
+ impl_baseclass_list::reduce( ID neutral, ID (*kc_fp)(ID, ID))
+ {
+ return dynamic_cast<ID>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ addedphylumdeclarations
+ concat(c_addedphylumdeclarations kc_p1, c_addedphylumdeclarations kc_p2)
+ { return dynamic_cast<addedphylumdeclarations>(kc_p1->do_concat(kc_p2, sel_Consaddedphylumdeclarations)); }
+
+ addedphylumdeclarations
+ impl_addedphylumdeclarations::reverse() const
+ { return dynamic_cast<addedphylumdeclarations>(do_reverse(Niladdedphylumdeclarations(), sel_Consaddedphylumdeclarations)); }
+
+ addedphylumdeclaration
+ impl_addedphylumdeclarations::last() const
+ { return dynamic_cast<addedphylumdeclaration>(impl_abstract_list::last()); }
+
+ bool
+ impl_addedphylumdeclarations::is_nil() const
+ {
+ return addedphylumdeclaration_1==0 && addedphylumdeclarations_1==0;
+ }
+
+ addedphylumdeclarations
+ impl_addedphylumdeclarations::map(addedphylumdeclaration (*kc_fp)(addedphylumdeclaration))
+ { return dynamic_cast<addedphylumdeclarations>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consaddedphylumdeclarations)); }
+ addedphylumdeclarations
+ impl_addedphylumdeclarations::filter(bool (*kc_fp)(addedphylumdeclaration))
+ { return dynamic_cast<addedphylumdeclarations>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consaddedphylumdeclarations)); }
+
+ addedphylumdeclarations
+ impl_addedphylumdeclarations::append(addedphylumdeclaration new_last)
+ {
+ return dynamic_cast<addedphylumdeclarations>(do_append(new_last, Niladdedphylumdeclarations()));
+ }
+ addedphylumdeclarations
+ impl_addedphylumdeclarations::merge( addedphylumdeclarations second, addedphylumdeclaration (*kc_fp)(addedphylumdeclaration, addedphylumdeclaration))
+ {
+ return dynamic_cast<addedphylumdeclarations>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consaddedphylumdeclarations));
+ }
+ addedphylumdeclaration
+ impl_addedphylumdeclarations::reduce( addedphylumdeclaration neutral, addedphylumdeclaration (*kc_fp)(addedphylumdeclaration, addedphylumdeclaration))
+ {
+ return dynamic_cast<addedphylumdeclaration>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ countedphylumdeclarations
+ concat(c_countedphylumdeclarations kc_p1, c_countedphylumdeclarations kc_p2)
+ { return dynamic_cast<countedphylumdeclarations>(kc_p1->do_concat(kc_p2, sel_Conscountedphylumdeclarations)); }
+
+ countedphylumdeclarations
+ impl_countedphylumdeclarations::reverse() const
+ { return dynamic_cast<countedphylumdeclarations>(do_reverse(Nilcountedphylumdeclarations(), sel_Conscountedphylumdeclarations)); }
+
+ countedphylumdeclaration
+ impl_countedphylumdeclarations::last() const
+ { return dynamic_cast<countedphylumdeclaration>(impl_abstract_list::last()); }
+
+ bool
+ impl_countedphylumdeclarations::is_nil() const
+ {
+ return countedphylumdeclaration_1==0 && countedphylumdeclarations_1==0;
+ }
+
+ countedphylumdeclarations
+ impl_countedphylumdeclarations::map(countedphylumdeclaration (*kc_fp)(countedphylumdeclaration))
+ { return dynamic_cast<countedphylumdeclarations>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Conscountedphylumdeclarations)); }
+ countedphylumdeclarations
+ impl_countedphylumdeclarations::filter(bool (*kc_fp)(countedphylumdeclaration))
+ { return dynamic_cast<countedphylumdeclarations>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Conscountedphylumdeclarations)); }
+
+ countedphylumdeclarations
+ impl_countedphylumdeclarations::append(countedphylumdeclaration new_last)
+ {
+ return dynamic_cast<countedphylumdeclarations>(do_append(new_last, Nilcountedphylumdeclarations()));
+ }
+ countedphylumdeclarations
+ impl_countedphylumdeclarations::merge( countedphylumdeclarations second, countedphylumdeclaration (*kc_fp)(countedphylumdeclaration, countedphylumdeclaration))
+ {
+ return dynamic_cast<countedphylumdeclarations>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Conscountedphylumdeclarations));
+ }
+ countedphylumdeclaration
+ impl_countedphylumdeclarations::reduce( countedphylumdeclaration neutral, countedphylumdeclaration (*kc_fp)(countedphylumdeclaration, countedphylumdeclaration))
+ {
+ return dynamic_cast<countedphylumdeclaration>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ bindingidmarks
+ concat(c_bindingidmarks kc_p1, c_bindingidmarks kc_p2)
+ { return dynamic_cast<bindingidmarks>(kc_p1->do_concat(kc_p2, sel_Consbindingidmarks)); }
+
+ bindingidmarks
+ impl_bindingidmarks::reverse() const
+ { return dynamic_cast<bindingidmarks>(do_reverse(Nilbindingidmarks(), sel_Consbindingidmarks)); }
+
+ bindingidmark
+ impl_bindingidmarks::last() const
+ { return dynamic_cast<bindingidmark>(impl_abstract_list::last()); }
+
+ bool
+ impl_bindingidmarks::is_nil() const
+ {
+ return bindingidmark_1==0 && bindingidmarks_1==0;
+ }
+
+ bindingidmarks
+ impl_bindingidmarks::map(bindingidmark (*kc_fp)(bindingidmark))
+ { return dynamic_cast<bindingidmarks>(do_map((abstract_phylum (*)(abstract_phylum))kc_fp, sel_Consbindingidmarks)); }
+ bindingidmarks
+ impl_bindingidmarks::filter(bool (*kc_fp)(bindingidmark))
+ { return dynamic_cast<bindingidmarks>(do_filter((bool (*)(abstract_phylum))kc_fp, sel_Consbindingidmarks)); }
+
+ bindingidmarks
+ impl_bindingidmarks::append(bindingidmark new_last)
+ {
+ return dynamic_cast<bindingidmarks>(do_append(new_last, Nilbindingidmarks()));
+ }
+ bindingidmarks
+ impl_bindingidmarks::merge( bindingidmarks second, bindingidmark (*kc_fp)(bindingidmark, bindingidmark))
+ {
+ return dynamic_cast<bindingidmarks>(do_merge(second,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp, sel_Consbindingidmarks));
+ }
+ bindingidmark
+ impl_bindingidmarks::reduce( bindingidmark neutral, bindingidmark (*kc_fp)(bindingidmark, bindingidmark))
+ {
+ return dynamic_cast<bindingidmark>(do_reduce(neutral,(abstract_phylum(*)(abstract_phylum,abstract_phylum))kc_fp));
+ }
+
+ abstract_phylum
+ impl_abstract_phylum::copy(bool kc_copy_attributes) const
+ {
+ enum_phyla kc_phy = phylum(); // XXX - implement special cases in subclasses - MvL
+ KC_OPERATOR_INFO *kc_op_info = &operator_info[prod_sel()];
+ kc_storageclass_t kc_st = phylum_info[kc_op_info->phylum].uniq_stored;
+ if (kc_st && kc_storageclass_still_uniq[kc_st])
+ return const_cast<abstract_phylum>(this);
+ abstract_phylum kc_answer=0;
+ if (kc_phy == phylum_casestring) {
+ kc_answer=mkcasestring((dynamic_cast<c_casestring>(this))->name);
+ } else if (kc_phy == phylum_nocasestring) {
+ kc_answer=mknocasestring((dynamic_cast<c_nocasestring>(this))->name);
+ } else if (kc_phy == phylum_voidptr) {
+ kc_answer=mkvoidptr((dynamic_cast<c_voidptr>(this))->pointer);
+ } else if (kc_phy == phylum_integer) {
+ kc_answer=mkinteger((dynamic_cast<c_integer>(this))->value);
+ } else if (kc_phy == phylum_real) {
+ kc_answer=mkreal((dynamic_cast<c_real>(this))->value);
+ } else {
+ abstract_phylum kc_subtmp[7], child;
+ for (int kc_i = 0; (child = subphylum(kc_i)); kc_i++) {
+ kc_subtmp[kc_i] = child->copy(kc_copy_attributes);
+ }
+ switch(kc_op_info->no_sons) {
+ case 0: kc_answer = kc_create(prod_sel()); break;
+ case 1: kc_answer = kc_create(prod_sel(), kc_subtmp[0]); break;
+ case 2: kc_answer = kc_create(prod_sel(), kc_subtmp[0], kc_subtmp[1]); break;
+ case 3: kc_answer = kc_create(prod_sel(), kc_subtmp[0], kc_subtmp[1], kc_subtmp[2]); break;
+ case 4: kc_answer = kc_create(prod_sel(), kc_subtmp[0], kc_subtmp[1], kc_subtmp[2], kc_subtmp[3]); break;
+ case 5: kc_answer = kc_create(prod_sel(), kc_subtmp[0], kc_subtmp[1], kc_subtmp[2], kc_subtmp[3], kc_subtmp[4]); break;
+ case 6: kc_answer = kc_create(prod_sel(), kc_subtmp[0], kc_subtmp[1], kc_subtmp[2], kc_subtmp[3], kc_subtmp[4], kc_subtmp[5]); break;
+ case 7: kc_answer = kc_create(prod_sel(), kc_subtmp[0], kc_subtmp[1], kc_subtmp[2], kc_subtmp[3], kc_subtmp[4], kc_subtmp[5], kc_subtmp[6]); break;
+ default: assertionFailed("unexpected number of sub-phyla");
+ }
+ }
+ if (kc_copy_attributes)
+ copy_attributes(kc_phy, this, kc_answer);
+ return kc_answer;
+ }
+
+
+ } // namespace kc
Index: llvm/test/Programs/MultiSource/Applications/kimwitu++/k.h
diff -c /dev/null llvm/test/Programs/MultiSource/Applications/kimwitu++/k.h:1.1
*** /dev/null Tue Apr 6 15:25:26 2004
--- llvm/test/Programs/MultiSource/Applications/kimwitu++/k.h Tue Apr 6 15:25:12 2004
***************
*** 0 ****
--- 1,7162 ----
+ /* translation of file(s)
+
+ "abs.k"
+ "main.k"
+ "parse.k"
+ "error.k"
+ "occur.k"
+ "util.k"
+ "gen.k"
+ "gutil.k"
+ "pat.k"
+ */
+ /* generated by:
+ * @(#)$Author: criswell $
+ */
+ #ifndef KC_TYPES_HEADER
+ #define KC_TYPES_HEADER
+
+ #define KIMWITUVERSIONMAJOR 2
+ #define KIMWITUVERSIONMINOR 3
+ #define KIMWITUVERSIONMICRO 6
+
+ #include <stdio.h>
+ #include <stddef.h>
+ #include <string>
+
+ namespace kc {
+
+ #ifndef INTEGER
+ # define INTEGER int
+ #endif
+ #ifndef REAL
+ # define REAL double
+ #endif
+
+ typedef char kc_cchar_t;
+ typedef unsigned short kc_wchar_t;
+
+ typedef std::string kc_cstring_t;
+ typedef std::wstring kc_wstring_t;
+
+ #ifdef KC_UNICODE
+ #define kc_t(TEXT) L ## TEXT
+ typedef kc_wchar_t kc_char;
+ typedef kc_wstring_t kc_string_t;
+
+ #if defined(_WIN32) && ! defined (__GNUC__)
+ #define kc_strlen wcslen
+ #define kc_strcmp wcscmp
+ #define kc_strcasecmp _wcsicmp
+ #define kc_strcpy wcscpy
+ #define kc_strncpy wcsncpy
+ #define kc_tolower towlower
+ #define kc_print_integer(buf,number) swprintf(buf,kc_t("%d"),number)
+ #define kc_print_real(buf,number) swprintf(buf,kc_t("%g"),number)
+
+ // needed for printdot and csgio only
+ inline
+ kc_cstring_t kc_to_cstring(const kc_wstring_t& s) {
+ USES_CONVERSION;
+ return W2CA(s.c_str());
+ }
+
+ // needed for csgio only
+ inline
+ kc_wstring_t kc_to_wstring(const kc_cstring_t& s) {
+ USES_CONVERSION;
+ return A2CW(s.c_str());
+ }
+
+ #else
+ // if you want to use UNICODE on other platforms you have to write the following functions by your own
+ int kc_strlen(const kc_char*);
+ int kc_strcmp(const kc_char*,const kc_char*);
+ int kc_strcasecmp(const kc_char*,const kc_char*);
+ int kc_strcpy(kc_char*,const kc_char*);
+ int kc_strncpy(kc_char*,const kc_char*, int);
+ kc_char kc_tolower(kc_char);
+ int kc_print_integer(kc_char* buffer, INTEGER number );
+ int kc_print_real(kc_char* buffer, REAL number);
+
+ // needed for printdot and csgio only
+ kc_cstring_t kc_to_cstring(const kc_wstring_t& );
+ // needed for csgio only
+ kc_wstring_t kc_to_wstring(const kc_cstring_t& );
+
+ #endif
+
+ #else // !KC_UNICODE
+
+ #define kc_t(TEXT) TEXT
+ typedef kc_cchar_t kc_char;
+ typedef kc_cstring_t kc_string_t;
+
+ #define kc_strlen strlen
+ #define kc_strcmp strcmp
+ #if defined(_WIN32) && ! defined (__GNUC__)
+ #define kc_strcasecmp _stricmp
+ #else
+ #define kc_strcasecmp strcasecmp
+ #endif
+ #define kc_strcpy strcpy
+ #define kc_strncpy strncpy
+ #define kc_tolower tolower
+ #define kc_print_integer(buf,number) sprintf(buf,kc_t("%d"),number)
+ #define kc_print_real(buf,number) sprintf(buf,kc_t("%g"),number)
+ #endif
+ class uview_class;
+ typedef uview_class& uview;
+ typedef const uview_class& c_uview;
+
+ typedef class printer_functor_class& printer_functor;
+ typedef void (*printer_function)(const kc_char*, uview);
+
+ class rview_class;
+ typedef rview_class& rview;
+ typedef const rview_class& c_rview;
+
+ }
+
+ // Some compilers know __attribute__. Right now we test for the GNU compiler
+ // and Intel's icc (for ia32) and ecc (for ia64).
+ #if !defined __GNUC__ && !defined __ICC && !defined __ECC
+ # define __attribute__(x)
+ #endif
+
+ // Since all definitions are in namespace kc now, there is no need
+ // give them a kc_ prefix. Old code may still rely on the prefix, so these
+ // macros are generated for backwards compatibility
+ #ifdef KC_DEPRECATED
+ #define kc_PhylumInfo phylum_info
+ #define kc_OperatorInfo operator_info
+ #define kc_last_uview last_uview
+ #define kc_uviews uviews
+ #define kc_rviews rviews
+ #define kc_ht_reuse ht_clear
+ #define kc_ht_clear ht_clear
+ #define kc_ht_assign ht_assign
+ #define kc_ht_assigned ht_assigned
+ #define kc_phylum_nocasestring phylum_nocasestring
+ #define kc_tag_nocasestring_NoCaseStr impl_nocasestring_NoCaseStr
+ #define kc_phylum_casestring phylum_casestring
+ #define kc_tag_casestring__Str impl_casestring__Str
+ #define kc_phylum_real phylum_real
+ #define kc_tag_real__Real impl_real__Real
+ #define kc_phylum_integer phylum_integer
+ #define kc_tag_integer__Int impl_integer__Int
+ #define kc_phylum_voidptr phylum_voidptr
+ #define kc_tag_voidptr__VoidPtr impl_voidptr__VoidPtr
+ #define kc_phylum_uniqID phylum_uniqID
+ #define kc_tag_uniqID_Str impl_uniqID_Str
+ #define kc_phylum_ID phylum_ID
+ #define kc_tag_ID_Id impl_ID_Id
+ #define kc_phylum_INT phylum_INT
+ #define kc_tag_INT_Int impl_INT_Int
+ #define kc_phylum_STRING phylum_STRING
+ #define kc_tag_STRING_String impl_STRING_String
+ #define kc_phylum_phylumdeclarationsroot phylum_phylumdeclarationsroot
+ #define kc_tag_phylumdeclarationsroot_PhylumDeclarations impl_phylumdeclarationsroot_PhylumDeclarations
+ #define kc_phylum_phylumdeclarations phylum_phylumdeclarations
+ #define kc_tag_phylumdeclarations_Nilphylumdeclarations impl_phylumdeclarations_Nilphylumdeclarations
+ #define kc_tag_phylumdeclarations_Consphylumdeclarations impl_phylumdeclarations_Consphylumdeclarations
+ #define kc_phylum_phylumnames phylum_phylumnames
+ #define kc_tag_phylumnames_Nilphylumnames impl_phylumnames_Nilphylumnames
+ #define kc_tag_phylumnames_Consphylumnames impl_phylumnames_Consphylumnames
+ #define kc_phylum_phylumdeclaration phylum_phylumdeclaration
+ #define kc_tag_phylumdeclaration_PhylumDeclaration impl_phylumdeclaration_PhylumDeclaration
+ #define kc_phylum_storageoption phylum_storageoption
+ #define kc_tag_storageoption_NoStorageOption impl_storageoption_NoStorageOption
+ #define kc_tag_storageoption_NegativeStorageOption impl_storageoption_NegativeStorageOption
+ #define kc_tag_storageoption_PositiveStorageOption impl_storageoption_PositiveStorageOption
+ #define kc_phylum_storageclasses phylum_storageclasses
+ #define kc_tag_storageclasses_Nilstorageclasses impl_storageclasses_Nilstorageclasses
+ #define kc_tag_storageclasses_Consstorageclasses impl_storageclasses_Consstorageclasses
+ #define kc_phylum_productionblock phylum_productionblock
+ #define kc_tag_productionblock_Emptyproductionblock impl_productionblock_Emptyproductionblock
+ #define kc_tag_productionblock_ListAlternatives impl_productionblock_ListAlternatives
+ #define kc_tag_productionblock_NonlistAlternatives impl_productionblock_NonlistAlternatives
+ #define kc_tag_productionblock_PredefinedAlternatives impl_productionblock_PredefinedAlternatives
+ #define kc_phylum_alternatives phylum_alternatives
+ #define kc_tag_alternatives_Nilalternatives impl_alternatives_Nilalternatives
+ #define kc_tag_alternatives_Consalternatives impl_alternatives_Consalternatives
+ #define kc_phylum_alternative phylum_alternative
+ #define kc_tag_alternative_Alternative impl_alternative_Alternative
+ #define kc_phylum_arguments phylum_arguments
+ #define kc_tag_arguments_Nilarguments impl_arguments_Nilarguments
+ #define kc_tag_arguments_Consarguments impl_arguments_Consarguments
+ #define kc_phylum_argument phylum_argument
+ #define kc_tag_argument_Argument impl_argument_Argument
+ #define kc_phylum_Ccode_option phylum_Ccode_option
+ #define kc_tag_Ccode_option_CcodeOption impl_Ccode_option_CcodeOption
+ #define kc_phylum_attributes phylum_attributes
+ #define kc_tag_attributes_Nilattributes impl_attributes_Nilattributes
+ #define kc_tag_attributes_Consattributes impl_attributes_Consattributes
+ #define kc_phylum_attribute phylum_attribute
+ #define kc_tag_attribute_Attribute impl_attribute_Attribute
+ #define kc_phylum_attribute_initialisation_option phylum_attribute_initialisation_option
+ #define kc_tag_attribute_initialisation_option_Noattribute_initialisation impl_attribute_initialisation_option_Noattribute_initialisation
+ #define kc_tag_attribute_initialisation_option_Yesattribute_initialisation impl_attribute_initialisation_option_Yesattribute_initialisation
+ #define kc_phylum_Cexpression phylum_Cexpression
+ #define kc_tag_Cexpression_NilCexpression impl_Cexpression_NilCexpression
+ #define kc_tag_Cexpression_ConsCexpression impl_Cexpression_ConsCexpression
+ #define kc_phylum_Cexpression_elem phylum_Cexpression_elem
+ #define kc_tag_Cexpression_elem_CExpressionPart impl_Cexpression_elem_CExpressionPart
+ #define kc_tag_Cexpression_elem_CExpressionDollarvar impl_Cexpression_elem_CExpressionDollarvar
+ #define kc_tag_Cexpression_elem_CExpressionNl impl_Cexpression_elem_CExpressionNl
+ #define kc_tag_Cexpression_elem_CExpressionDQ impl_Cexpression_elem_CExpressionDQ
+ #define kc_tag_Cexpression_elem_CExpressionSQ impl_Cexpression_elem_CExpressionSQ
+ #define kc_tag_Cexpression_elem_CExpressionPack impl_Cexpression_elem_CExpressionPack
+ #define kc_tag_Cexpression_elem_CExpressionArray impl_Cexpression_elem_CExpressionArray
+ #define kc_phylum_CexpressionDQ phylum_CexpressionDQ
+ #define kc_tag_CexpressionDQ_NilCexpressionDQ impl_CexpressionDQ_NilCexpressionDQ
+ #define kc_tag_CexpressionDQ_ConsCexpressionDQ impl_CexpressionDQ_ConsCexpressionDQ
+ #define kc_phylum_CexpressionDQ_elem phylum_CexpressionDQ_elem
+ #define kc_tag_CexpressionDQ_elem_CExpressionDQPart impl_CexpressionDQ_elem_CExpressionDQPart
+ #define kc_tag_CexpressionDQ_elem_CExpressionDQNl impl_CexpressionDQ_elem_CExpressionDQNl
+ #define kc_phylum_CexpressionSQ phylum_CexpressionSQ
+ #define kc_tag_CexpressionSQ_NilCexpressionSQ impl_CexpressionSQ_NilCexpressionSQ
+ #define kc_tag_CexpressionSQ_ConsCexpressionSQ impl_CexpressionSQ_ConsCexpressionSQ
+ #define kc_phylum_CexpressionSQ_elem phylum_CexpressionSQ_elem
+ #define kc_tag_CexpressionSQ_elem_CExpressionSQPart impl_CexpressionSQ_elem_CExpressionSQPart
+ #define kc_tag_CexpressionSQ_elem_CExpressionSQNl impl_CexpressionSQ_elem_CExpressionSQNl
+ #define kc_phylum_idCexpressions phylum_idCexpressions
+ #define kc_tag_idCexpressions_NilidCexpressions impl_idCexpressions_NilidCexpressions
+ #define kc_tag_idCexpressions_ConsidCexpressions impl_idCexpressions_ConsidCexpressions
+ #define kc_phylum_idCexpression phylum_idCexpression
+ #define kc_tag_idCexpression_IdCexpression impl_idCexpression_IdCexpression
+ #define kc_phylum_Ctexts phylum_Ctexts
+ #define kc_tag_Ctexts_NilCtexts impl_Ctexts_NilCtexts
+ #define kc_tag_Ctexts_ConsCtexts impl_Ctexts_ConsCtexts
+ #define kc_phylum_includefiles phylum_includefiles
+ #define kc_tag_includefiles_Nilincludefiles impl_includefiles_Nilincludefiles
+ #define kc_tag_includefiles_Consincludefiles impl_includefiles_Consincludefiles
+ #define kc_phylum_includefile phylum_includefile
+ #define kc_tag_includefile_IncludeFile impl_includefile_IncludeFile
+ #define kc_phylum_includedeclarations phylum_includedeclarations
+ #define kc_tag_includedeclarations_Nilincludedeclarations impl_includedeclarations_Nilincludedeclarations
+ #define kc_tag_includedeclarations_Consincludedeclarations impl_includedeclarations_Consincludedeclarations
+ #define kc_phylum_includedeclaration phylum_includedeclaration
+ #define kc_tag_includedeclaration_IncludeDeclaration impl_includedeclaration_IncludeDeclaration
+ #define kc_phylum_rwdeclarations phylum_rwdeclarations
+ #define kc_tag_rwdeclarations_Nilrwdeclarations impl_rwdeclarations_Nilrwdeclarations
+ #define kc_tag_rwdeclarations_Consrwdeclarations impl_rwdeclarations_Consrwdeclarations
+ #define kc_phylum_rwdeclaration phylum_rwdeclaration
+ #define kc_tag_rwdeclaration_RwDeclaration impl_rwdeclaration_RwDeclaration
+ #define kc_phylum_rewriteclauses phylum_rewriteclauses
+ #define kc_tag_rewriteclauses_Nilrewriteclauses impl_rewriteclauses_Nilrewriteclauses
+ #define kc_tag_rewriteclauses_Consrewriteclauses impl_rewriteclauses_Consrewriteclauses
+ #define kc_phylum_rewriteclause phylum_rewriteclause
+ #define kc_tag_rewriteclause_RewriteClause impl_rewriteclause_RewriteClause
+ #define kc_phylum_patternchains phylum_patternchains
+ #define kc_tag_patternchains_Nilpatternchains impl_patternchains_Nilpatternchains
+ #define kc_tag_patternchains_Conspatternchains impl_patternchains_Conspatternchains
+ #define kc_phylum_patternchain phylum_patternchain
+ #define kc_tag_patternchain_Nilpatternchain impl_patternchain_Nilpatternchain
+ #define kc_tag_patternchain_Conspatternchain impl_patternchain_Conspatternchain
+ #define kc_phylum_outmostpatterns phylum_outmostpatterns
+ #define kc_tag_outmostpatterns_Niloutmostpatterns impl_outmostpatterns_Niloutmostpatterns
+ #define kc_tag_outmostpatterns_Consoutmostpatterns impl_outmostpatterns_Consoutmostpatterns
+ #define kc_phylum_patternchainitem phylum_patternchainitem
+ #define kc_tag_patternchainitem_PatternchainitemOutmost impl_patternchainitem_PatternchainitemOutmost
+ #define kc_tag_patternchainitem_PatternchainitemGroup impl_patternchainitem_PatternchainitemGroup
+ #define kc_tag_patternchainitem_PatternchainitemDollarid impl_patternchainitem_PatternchainitemDollarid
+ #define kc_phylum_outmostpattern phylum_outmostpattern
+ #define kc_tag_outmostpattern_OPOperatorWildcard impl_outmostpattern_OPOperatorWildcard
+ #define kc_tag_outmostpattern_OPOperator impl_outmostpattern_OPOperator
+ #define kc_tag_outmostpattern_OPNonLeafVariable impl_outmostpattern_OPNonLeafVariable
+ #define kc_tag_outmostpattern_OPWildcard impl_outmostpattern_OPWildcard
+ #define kc_tag_outmostpattern_OPDefault impl_outmostpattern_OPDefault
+ #define kc_phylum_pattern phylum_pattern
+ #define kc_tag_pattern_PVariable impl_pattern_PVariable
+ #define kc_tag_pattern_POperator impl_pattern_POperator
+ #define kc_tag_pattern_PNonLeafVariable impl_pattern_PNonLeafVariable
+ #define kc_tag_pattern_PWildcard impl_pattern_PWildcard
+ #define kc_tag_pattern_PStringLiteral impl_pattern_PStringLiteral
+ #define kc_tag_pattern_PIntLiteral impl_pattern_PIntLiteral
+ #define kc_phylum_patterns phylum_patterns
+ #define kc_tag_patterns_Nilpatterns impl_patterns_Nilpatterns
+ #define kc_tag_patterns_Conspatterns impl_patterns_Conspatterns
+ #define kc_phylum_term phylum_term
+ #define kc_tag_term_TVariable impl_term_TVariable
+ #define kc_tag_term_TOperator impl_term_TOperator
+ #define kc_tag_term_TMethod impl_term_TMethod
+ #define kc_tag_term_TMethodDot impl_term_TMethodDot
+ #define kc_tag_term_TMemberVar impl_term_TMemberVar
+ #define kc_tag_term_TMemberVarDot impl_term_TMemberVarDot
+ #define kc_tag_term_TCTerm impl_term_TCTerm
+ #define kc_tag_term_TStringLiteral impl_term_TStringLiteral
+ #define kc_tag_term_TIntLiteral impl_term_TIntLiteral
+ #define kc_phylum_terms phylum_terms
+ #define kc_tag_terms_Nilterms impl_terms_Nilterms
+ #define kc_tag_terms_Consterms impl_terms_Consterms
+ #define kc_phylum_fnfiles phylum_fnfiles
+ #define kc_tag_fnfiles_Nilfnfiles impl_fnfiles_Nilfnfiles
+ #define kc_tag_fnfiles_Consfnfiles impl_fnfiles_Consfnfiles
+ #define kc_phylum_fnfile phylum_fnfile
+ #define kc_tag_fnfile_FnFile impl_fnfile_FnFile
+ #define kc_phylum_fndeclarations phylum_fndeclarations
+ #define kc_tag_fndeclarations_Nilfndeclarations impl_fndeclarations_Nilfndeclarations
+ #define kc_tag_fndeclarations_Consfndeclarations impl_fndeclarations_Consfndeclarations
+ #define kc_phylum_fndeclaration phylum_fndeclaration
+ #define kc_tag_fndeclaration_FnAcDeclaration impl_fndeclaration_FnAcDeclaration
+ #define kc_tag_fndeclaration_AcMemberDeclaration impl_fndeclaration_AcMemberDeclaration
+ #define kc_phylum_fnclass phylum_fnclass
+ #define kc_tag_fnclass_GlobalFn impl_fnclass_GlobalFn
+ #define kc_tag_fnclass_StaticFn impl_fnclass_StaticFn
+ #define kc_tag_fnclass_MemberFn impl_fnclass_MemberFn
+ #define kc_tag_fnclass_ConstructorFn impl_fnclass_ConstructorFn
+ #define kc_tag_fnclass_DestructorFn impl_fnclass_DestructorFn
+ #define kc_tag_fnclass_ConvOperatorFn impl_fnclass_ConvOperatorFn
+ #define kc_phylum_Ctext phylum_Ctext
+ #define kc_tag_Ctext_NilCtext impl_Ctext_NilCtext
+ #define kc_tag_Ctext_ConsCtext impl_Ctext_ConsCtext
+ #define kc_phylum_Ctext_elem phylum_Ctext_elem
+ #define kc_tag_Ctext_elem_CTextLine impl_Ctext_elem_CTextLine
+ #define kc_tag_Ctext_elem_CTextDollarVar impl_Ctext_elem_CTextDollarVar
+ #define kc_tag_Ctext_elem_CTextNl impl_Ctext_elem_CTextNl
+ #define kc_tag_Ctext_elem_CTextCexpressionDQ impl_Ctext_elem_CTextCexpressionDQ
+ #define kc_tag_Ctext_elem_CTextCexpressionSQ impl_Ctext_elem_CTextCexpressionSQ
+ #define kc_tag_Ctext_elem_CTextCbody impl_Ctext_elem_CTextCbody
+ #define kc_tag_Ctext_elem_CTextForeachexpression impl_Ctext_elem_CTextForeachexpression
+ #define kc_tag_Ctext_elem_CTextWithexpression impl_Ctext_elem_CTextWithexpression
+ #define kc_phylum_foreach_after phylum_foreach_after
+ #define kc_tag_foreach_after_NoForeachAfter impl_foreach_after_NoForeachAfter
+ #define kc_tag_foreach_after_ForeachAfter impl_foreach_after_ForeachAfter
+ #define kc_phylum_contextinfo phylum_contextinfo
+ #define kc_tag_contextinfo_InForeachContext impl_contextinfo_InForeachContext
+ #define kc_tag_contextinfo_NotInForeachContext impl_contextinfo_NotInForeachContext
+ #define kc_phylum_withexpressions phylum_withexpressions
+ #define kc_tag_withexpressions_Nilwithexpressions impl_withexpressions_Nilwithexpressions
+ #define kc_tag_withexpressions_Conswithexpressions impl_withexpressions_Conswithexpressions
+ #define kc_phylum_withexpression phylum_withexpression
+ #define kc_tag_withexpression_WEVariable impl_withexpression_WEVariable
+ #define kc_tag_withexpression_WECexpression impl_withexpression_WECexpression
+ #define kc_phylum_withcases phylum_withcases
+ #define kc_tag_withcases_Nilwithcases impl_withcases_Nilwithcases
+ #define kc_tag_withcases_Conswithcases impl_withcases_Conswithcases
+ #define kc_phylum_withcase phylum_withcase
+ #define kc_tag_withcase_Withcase impl_withcase_Withcase
+ #define kc_phylum_unparsedeclarations phylum_unparsedeclarations
+ #define kc_tag_unparsedeclarations_Nilunparsedeclarations impl_unparsedeclarations_Nilunparsedeclarations
+ #define kc_tag_unparsedeclarations_Consunparsedeclarations impl_unparsedeclarations_Consunparsedeclarations
+ #define kc_phylum_unparsedeclaration phylum_unparsedeclaration
+ #define kc_tag_unparsedeclaration_UnparseDeclaration impl_unparsedeclaration_UnparseDeclaration
+ #define kc_phylum_unparseclauses phylum_unparseclauses
+ #define kc_tag_unparseclauses_Nilunparseclauses impl_unparseclauses_Nilunparseclauses
+ #define kc_tag_unparseclauses_Consunparseclauses impl_unparseclauses_Consunparseclauses
+ #define kc_phylum_unparseclause phylum_unparseclause
+ #define kc_tag_unparseclause_UnparseClause impl_unparseclause_UnparseClause
+ #define kc_phylum_viewnames phylum_viewnames
+ #define kc_tag_viewnames_Nilviewnames impl_viewnames_Nilviewnames
+ #define kc_tag_viewnames_Consviewnames impl_viewnames_Consviewnames
+ #define kc_phylum_unparseitems phylum_unparseitems
+ #define kc_tag_unparseitems_Nilunparseitems impl_unparseitems_Nilunparseitems
+ #define kc_tag_unparseitems_Consunparseitems impl_unparseitems_Consunparseitems
+ #define kc_phylum_unparseitem phylum_unparseitem
+ #define kc_tag_unparseitem_UnpStr impl_unparseitem_UnpStr
+ #define kc_tag_unparseitem_UnpSubexpr impl_unparseitem_UnpSubexpr
+ #define kc_tag_unparseitem_UnpCtext impl_unparseitem_UnpCtext
+ #define kc_tag_unparseitem_UnpBody impl_unparseitem_UnpBody
+ #define kc_tag_unparseitem_UViewVarDecl impl_unparseitem_UViewVarDecl
+ #define kc_phylum_unpsubterm phylum_unpsubterm
+ #define kc_tag_unpsubterm_UnpSubTerm impl_unpsubterm_UnpSubTerm
+ #define kc_tag_unpsubterm_UnpDollarvarTerm impl_unpsubterm_UnpDollarvarTerm
+ #define kc_tag_unpsubterm_UnpSubAttr impl_unpsubterm_UnpSubAttr
+ #define kc_tag_unpsubterm_UnpDollarvarAttr impl_unpsubterm_UnpDollarvarAttr
+ #define kc_tag_unpsubterm_UnpCastedVariable impl_unpsubterm_UnpCastedVariable
+ #define kc_phylum_unpattributes phylum_unpattributes
+ #define kc_tag_unpattributes_Nilunpattributes impl_unpattributes_Nilunpattributes
+ #define kc_tag_unpattributes_Consunpattributes impl_unpattributes_Consunpattributes
+ #define kc_phylum_viewnameoption phylum_viewnameoption
+ #define kc_tag_viewnameoption_NoViewname impl_viewnameoption_NoViewname
+ #define kc_tag_viewnameoption_YesViewname impl_viewnameoption_YesViewname
+ #define kc_phylum_languageoption phylum_languageoption
+ #define kc_tag_languageoption_NoLanguagename impl_languageoption_NoLanguagename
+ #define kc_tag_languageoption_LanguageList impl_languageoption_LanguageList
+ #define kc_phylum_languagenames phylum_languagenames
+ #define kc_tag_languagenames_Nillanguagenames impl_languagenames_Nillanguagenames
+ #define kc_tag_languagenames_Conslanguagenames impl_languagenames_Conslanguagenames
+ #define kc_phylum_fileline phylum_fileline
+ #define kc_tag_fileline_FileLine impl_fileline_FileLine
+ #define kc_tag_fileline_NoFileLine impl_fileline_NoFileLine
+ #define kc_tag_fileline_PosNoFileLine impl_fileline_PosNoFileLine
+ #define kc_phylum_scopetypefilelinestack phylum_scopetypefilelinestack
+ #define kc_tag_scopetypefilelinestack_Nilscopetypefilelinestack impl_scopetypefilelinestack_Nilscopetypefilelinestack
+ #define kc_tag_scopetypefilelinestack_Consscopetypefilelinestack impl_scopetypefilelinestack_Consscopetypefilelinestack
+ #define kc_phylum_scopetypefileline phylum_scopetypefileline
+ #define kc_tag_scopetypefileline_ScopeTypeFileLine impl_scopetypefileline_ScopeTypeFileLine
+ #define kc_phylum_IDtype phylum_IDtype
+ #define kc_tag_IDtype_ITUnknown impl_IDtype_ITUnknown
+ #define kc_tag_IDtype_ITPredefinedPhylum impl_IDtype_ITPredefinedPhylum
+ #define kc_tag_IDtype_ITUserPhylum impl_IDtype_ITUserPhylum
+ #define kc_tag_IDtype_ITPredefinedOperator impl_IDtype_ITPredefinedOperator
+ #define kc_tag_IDtype_ITUserOperator impl_IDtype_ITUserOperator
+ #define kc_tag_IDtype_ITPredefinedStorageClass impl_IDtype_ITPredefinedStorageClass
+ #define kc_tag_IDtype_ITStorageClass impl_IDtype_ITStorageClass
+ #define kc_tag_IDtype_ITPredefinedUView impl_IDtype_ITPredefinedUView
+ #define kc_tag_IDtype_ITUserUView impl_IDtype_ITUserUView
+ #define kc_tag_IDtype_ITUViewVar impl_IDtype_ITUViewVar
+ #define kc_tag_IDtype_ITPredefinedRView impl_IDtype_ITPredefinedRView
+ #define kc_tag_IDtype_ITUserRView impl_IDtype_ITUserRView
+ #define kc_tag_IDtype_ITUserFunction impl_IDtype_ITUserFunction
+ #define kc_tag_IDtype_ITPatternVariable impl_IDtype_ITPatternVariable
+ #define kc_tag_IDtype_ITLanguageName impl_IDtype_ITLanguageName
+ #define kc_phylum_operators phylum_operators
+ #define kc_tag_operators_Niloperators impl_operators_Niloperators
+ #define kc_tag_operators_Consoperators impl_operators_Consoperators
+ #define kc_phylum_phyla phylum_phyla
+ #define kc_tag_phyla_Nilphyla impl_phyla_Nilphyla
+ #define kc_tag_phyla_Consphyla impl_phyla_Consphyla
+ #define kc_phylum_variables phylum_variables
+ #define kc_tag_variables_Nilvariables impl_variables_Nilvariables
+ #define kc_tag_variables_Consvariables impl_variables_Consvariables
+ #define kc_phylum_dollarvarstatus phylum_dollarvarstatus
+ #define kc_tag_dollarvarstatus_DVAllowed impl_dollarvarstatus_DVAllowed
+ #define kc_tag_dollarvarstatus_DVDisallowed impl_dollarvarstatus_DVDisallowed
+ #define kc_phylum_tribool phylum_tribool
+ #define kc_tag_tribool_Equal impl_tribool_Equal
+ #define kc_tag_tribool_Smaller impl_tribool_Smaller
+ #define kc_tag_tribool_Bigger impl_tribool_Bigger
+ #define kc_phylum_patternrepresentations phylum_patternrepresentations
+ #define kc_tag_patternrepresentations_Nilpatternrepresentations impl_patternrepresentations_Nilpatternrepresentations
+ #define kc_tag_patternrepresentations_Conspatternrepresentations impl_patternrepresentations_Conspatternrepresentations
+ #define kc_phylum_patternrepresentation phylum_patternrepresentation
+ #define kc_tag_patternrepresentation_Nilpatternrepresentation impl_patternrepresentation_Nilpatternrepresentation
+ #define kc_tag_patternrepresentation_Conspatternrepresentation impl_patternrepresentation_Conspatternrepresentation
+ #define kc_phylum_elem_patternrepresentation phylum_elem_patternrepresentation
+ #define kc_tag_elem_patternrepresentation_PRBinding impl_elem_patternrepresentation_PRBinding
+ #define kc_tag_elem_patternrepresentation_PRVarPredicate impl_elem_patternrepresentation_PRVarPredicate
+ #define kc_tag_elem_patternrepresentation_PROperPredicate impl_elem_patternrepresentation_PROperPredicate
+ #define kc_tag_elem_patternrepresentation_PRUserPredicate impl_elem_patternrepresentation_PRUserPredicate
+ #define kc_tag_elem_patternrepresentation_PRNonLeafBinding impl_elem_patternrepresentation_PRNonLeafBinding
+ #define kc_tag_elem_patternrepresentation_PRWildcard impl_elem_patternrepresentation_PRWildcard
+ #define kc_tag_elem_patternrepresentation_PRDefault impl_elem_patternrepresentation_PRDefault
+ #define kc_tag_elem_patternrepresentation_PRStringLiteral impl_elem_patternrepresentation_PRStringLiteral
+ #define kc_tag_elem_patternrepresentation_PRIntLiteral impl_elem_patternrepresentation_PRIntLiteral
+ #define kc_phylum_path phylum_path
+ #define kc_tag_path_Nilpath impl_path_Nilpath
+ #define kc_tag_path_Conspath impl_path_Conspath
+ #define kc_phylum_paths phylum_paths
+ #define kc_tag_paths_Nilpaths impl_paths_Nilpaths
+ #define kc_tag_paths_Conspaths impl_paths_Conspaths
+ #define kc_phylum_argsnumbers phylum_argsnumbers
+ #define kc_tag_argsnumbers_Nilargsnumbers impl_argsnumbers_Nilargsnumbers
+ #define kc_tag_argsnumbers_Consargsnumbers impl_argsnumbers_Consargsnumbers
+ #define kc_phylum_rewriterulesinfo phylum_rewriterulesinfo
+ #define kc_tag_rewriterulesinfo_Nilrewriterulesinfo impl_rewriterulesinfo_Nilrewriterulesinfo
+ #define kc_tag_rewriterulesinfo_Consrewriterulesinfo impl_rewriterulesinfo_Consrewriterulesinfo
+ #define kc_phylum_rewriteruleinfo phylum_rewriteruleinfo
+ #define kc_tag_rewriteruleinfo_Rewriteruleinfo impl_rewriteruleinfo_Rewriteruleinfo
+ #define kc_phylum_withcasesinfo phylum_withcasesinfo
+ #define kc_tag_withcasesinfo_Nilwithcasesinfo impl_withcasesinfo_Nilwithcasesinfo
+ #define kc_tag_withcasesinfo_Conswithcasesinfo impl_withcasesinfo_Conswithcasesinfo
+ #define kc_phylum_withcaseinfo phylum_withcaseinfo
+ #define kc_tag_withcaseinfo_Withcaseinfo impl_withcaseinfo_Withcaseinfo
+ #define kc_phylum_rewriteviewsinfo phylum_rewriteviewsinfo
+ #define kc_tag_rewriteviewsinfo_Nilrewriteviewsinfo impl_rewriteviewsinfo_Nilrewriteviewsinfo
+ #define kc_tag_rewriteviewsinfo_Consrewriteviewsinfo impl_rewriteviewsinfo_Consrewriteviewsinfo
+ #define kc_phylum_rewriteviewinfo phylum_rewriteviewinfo
+ #define kc_tag_rewriteviewinfo_Rewriteviewinfo impl_rewriteviewinfo_Rewriteviewinfo
+ #define kc_phylum_unparseviewsinfo phylum_unparseviewsinfo
+ #define kc_tag_unparseviewsinfo_Nilunparseviewsinfo impl_unparseviewsinfo_Nilunparseviewsinfo
+ #define kc_tag_unparseviewsinfo_Consunparseviewsinfo impl_unparseviewsinfo_Consunparseviewsinfo
+ #define kc_phylum_unparseviewinfo phylum_unparseviewinfo
+ #define kc_tag_unparseviewinfo_Unparseviewinfo impl_unparseviewinfo_Unparseviewinfo
+ #define kc_phylum_unparsedeclsinfo phylum_unparsedeclsinfo
+ #define kc_tag_unparsedeclsinfo_Nilunparsedeclsinfo impl_unparsedeclsinfo_Nilunparsedeclsinfo
+ #define kc_tag_unparsedeclsinfo_Consunparsedeclsinfo impl_unparsedeclsinfo_Consunparsedeclsinfo
+ #define kc_phylum_unparsedeclinfo phylum_unparsedeclinfo
+ #define kc_tag_unparsedeclinfo_Unparsedeclinfo impl_unparsedeclinfo_Unparsedeclinfo
+ #define kc_phylum_ac_declaration phylum_ac_declaration
+ #define kc_tag_ac_declaration_AcDeclaration impl_ac_declaration_AcDeclaration
+ #define kc_phylum_ac_declaration_list phylum_ac_declaration_list
+ #define kc_tag_ac_declaration_list_Nilac_declaration_list impl_ac_declaration_list_Nilac_declaration_list
+ #define kc_tag_ac_declaration_list_Consac_declaration_list impl_ac_declaration_list_Consac_declaration_list
+ #define kc_phylum_ac_declaration_specifiers phylum_ac_declaration_specifiers
+ #define kc_tag_ac_declaration_specifiers_Nilac_declaration_specifiers impl_ac_declaration_specifiers_Nilac_declaration_specifiers
+ #define kc_tag_ac_declaration_specifiers_Consac_declaration_specifiers impl_ac_declaration_specifiers_Consac_declaration_specifiers
+ #define kc_phylum_ac_declaration_specifier phylum_ac_declaration_specifier
+ #define kc_tag_ac_declaration_specifier_AcDeclSpecStorageSpec impl_ac_declaration_specifier_AcDeclSpecStorageSpec
+ #define kc_tag_ac_declaration_specifier_AcDeclSpecTypeSpec impl_ac_declaration_specifier_AcDeclSpecTypeSpec
+ #define kc_tag_ac_declaration_specifier_AcDeclSpecTypeQual impl_ac_declaration_specifier_AcDeclSpecTypeQual
+ #define kc_phylum_ac_storage_class_specifier phylum_ac_storage_class_specifier
+ #define kc_tag_ac_storage_class_specifier_AcAuto impl_ac_storage_class_specifier_AcAuto
+ #define kc_tag_ac_storage_class_specifier_AcRegister impl_ac_storage_class_specifier_AcRegister
+ #define kc_tag_ac_storage_class_specifier_AcStatic impl_ac_storage_class_specifier_AcStatic
+ #define kc_tag_ac_storage_class_specifier_AcExtern impl_ac_storage_class_specifier_AcExtern
+ #define kc_tag_ac_storage_class_specifier_AcTypedef impl_ac_storage_class_specifier_AcTypedef
+ #define kc_tag_ac_storage_class_specifier_AcVirtual impl_ac_storage_class_specifier_AcVirtual
+ #define kc_phylum_ac_type_specifier phylum_ac_type_specifier
+ #define kc_tag_ac_type_specifier_AcTypeSpec impl_ac_type_specifier_AcTypeSpec
+ #define kc_phylum_ac_type_qualifier phylum_ac_type_qualifier
+ #define kc_tag_ac_type_qualifier_AcConst impl_ac_type_qualifier_AcConst
+ #define kc_tag_ac_type_qualifier_AcVolatile impl_ac_type_qualifier_AcVolatile
+ #define kc_tag_ac_type_qualifier_AcUnsigned impl_ac_type_qualifier_AcUnsigned
+ #define kc_tag_ac_type_qualifier_AcNoQualifier impl_ac_type_qualifier_AcNoQualifier
+ #define kc_phylum_ac_init_declarator_list phylum_ac_init_declarator_list
+ #define kc_tag_ac_init_declarator_list_Nilac_init_declarator_list impl_ac_init_declarator_list_Nilac_init_declarator_list
+ #define kc_tag_ac_init_declarator_list_Consac_init_declarator_list impl_ac_init_declarator_list_Consac_init_declarator_list
+ #define kc_phylum_ac_init_declarator phylum_ac_init_declarator
+ #define kc_tag_ac_init_declarator_AcInitDecl impl_ac_init_declarator_AcInitDecl
+ #define kc_phylum_ac_declarator phylum_ac_declarator
+ #define kc_tag_ac_declarator_AcDeclarator impl_ac_declarator_AcDeclarator
+ #define kc_phylum_ac_direct_declarator phylum_ac_direct_declarator
+ #define kc_tag_ac_direct_declarator_AcDirectDeclId impl_ac_direct_declarator_AcDirectDeclId
+ #define kc_tag_ac_direct_declarator_AcDirectDeclPack impl_ac_direct_declarator_AcDirectDeclPack
+ #define kc_tag_ac_direct_declarator_AcDirectDeclArray impl_ac_direct_declarator_AcDirectDeclArray
+ #define kc_tag_ac_direct_declarator_AcDirectDeclProto impl_ac_direct_declarator_AcDirectDeclProto
+ #define kc_tag_ac_direct_declarator_AcQualifiedDeclProto impl_ac_direct_declarator_AcQualifiedDeclProto
+ #define kc_tag_ac_direct_declarator_AcMemberDecl impl_ac_direct_declarator_AcMemberDecl
+ #define kc_tag_ac_direct_declarator_AcConvOperatorDecl impl_ac_direct_declarator_AcConvOperatorDecl
+ #define kc_tag_ac_direct_declarator_AcOperatorDeclId impl_ac_direct_declarator_AcOperatorDeclId
+ #define kc_phylum_ac_pointer_option phylum_ac_pointer_option
+ #define kc_tag_ac_pointer_option_Nopointer impl_ac_pointer_option_Nopointer
+ #define kc_tag_ac_pointer_option_Yespointer impl_ac_pointer_option_Yespointer
+ #define kc_phylum_ac_pointer phylum_ac_pointer
+ #define kc_tag_ac_pointer_AcPointerNil impl_ac_pointer_AcPointerNil
+ #define kc_tag_ac_pointer_AcPointerCons impl_ac_pointer_AcPointerCons
+ #define kc_phylum_ac_ref_option phylum_ac_ref_option
+ #define kc_tag_ac_ref_option_AcNoRef impl_ac_ref_option_AcNoRef
+ #define kc_tag_ac_ref_option_AcRef impl_ac_ref_option_AcRef
+ #define kc_phylum_ac_operator_name phylum_ac_operator_name
+ #define kc_tag_ac_operator_name_AcOperatorName impl_ac_operator_name_AcOperatorName
+ #define kc_phylum_ac_class_qualifier_help_list phylum_ac_class_qualifier_help_list
+ #define kc_tag_ac_class_qualifier_help_list_Nilac_class_qualifier_help_list impl_ac_class_qualifier_help_list_Nilac_class_qualifier_help_list
+ #define kc_tag_ac_class_qualifier_help_list_Consac_class_qualifier_help_list impl_ac_class_qualifier_help_list_Consac_class_qualifier_help_list
+ #define kc_phylum_ac_class_qualifier_list phylum_ac_class_qualifier_list
+ #define kc_tag_ac_class_qualifier_list_Nilac_class_qualifier_list impl_ac_class_qualifier_list_Nilac_class_qualifier_list
+ #define kc_tag_ac_class_qualifier_list_Consac_class_qualifier_list impl_ac_class_qualifier_list_Consac_class_qualifier_list
+ #define kc_phylum_ac_type_qualifier_list phylum_ac_type_qualifier_list
+ #define kc_tag_ac_type_qualifier_list_Nilac_type_qualifier_list impl_ac_type_qualifier_list_Nilac_type_qualifier_list
+ #define kc_tag_ac_type_qualifier_list_Consac_type_qualifier_list impl_ac_type_qualifier_list_Consac_type_qualifier_list
+ #define kc_phylum_ac_parameter_type_list phylum_ac_parameter_type_list
+ #define kc_tag_ac_parameter_type_list_AcParList impl_ac_parameter_type_list_AcParList
+ #define kc_tag_ac_parameter_type_list_AcParList3Dot impl_ac_parameter_type_list_AcParList3Dot
+ #define kc_phylum_ac_parameter_list phylum_ac_parameter_list
+ #define kc_tag_ac_parameter_list_Nilac_parameter_list impl_ac_parameter_list_Nilac_parameter_list
+ #define kc_tag_ac_parameter_list_Consac_parameter_list impl_ac_parameter_list_Consac_parameter_list
+ #define kc_phylum_ac_parameter_declaration phylum_ac_parameter_declaration
+ #define kc_tag_ac_parameter_declaration_AcParDeclDecl impl_ac_parameter_declaration_AcParDeclDecl
+ #define kc_tag_ac_parameter_declaration_AcParDeclAbsdecl impl_ac_parameter_declaration_AcParDeclAbsdecl
+ #define kc_phylum_ac_identifier_list phylum_ac_identifier_list
+ #define kc_tag_ac_identifier_list_Nilac_identifier_list impl_ac_identifier_list_Nilac_identifier_list
+ #define kc_tag_ac_identifier_list_Consac_identifier_list impl_ac_identifier_list_Consac_identifier_list
+ #define kc_phylum_ac_abstract_declarator phylum_ac_abstract_declarator
+ #define kc_tag_ac_abstract_declarator_AcAbsdeclPointer impl_ac_abstract_declarator_AcAbsdeclPointer
+ #define kc_tag_ac_abstract_declarator_AcAbsdeclDirdecl impl_ac_abstract_declarator_AcAbsdeclDirdecl
+ #define kc_phylum_ac_direct_abstract_declarator_option phylum_ac_direct_abstract_declarator_option
+ #define kc_tag_ac_direct_abstract_declarator_option_Noac_direct_abstract_declarator impl_ac_direct_abstract_declarator_option_Noac_direct_abstract_declarator
+ #define kc_tag_ac_direct_abstract_declarator_option_Yesac_direct_abstract_declarator impl_ac_direct_abstract_declarator_option_Yesac_direct_abstract_declarator
+ #define kc_phylum_ac_direct_abstract_declarator phylum_ac_direct_abstract_declarator
+ #define kc_tag_ac_direct_abstract_declarator_AcDirAbsdeclPack impl_ac_direct_abstract_declarator_AcDirAbsdeclPack
+ #define kc_tag_ac_direct_abstract_declarator_AcDirAbsdeclArray impl_ac_direct_abstract_declarator_AcDirAbsdeclArray
+ #define kc_tag_ac_direct_abstract_declarator_AcDirAbsdeclFn impl_ac_direct_abstract_declarator_AcDirAbsdeclFn
+ #define kc_phylum_ac_constant_expression_option phylum_ac_constant_expression_option
+ #define kc_tag_ac_constant_expression_option_Yesac_constant_expression impl_ac_constant_expression_option_Yesac_constant_expression
+ #define kc_tag_ac_constant_expression_option_Noac_constant_expression impl_ac_constant_expression_option_Noac_constant_expression
+ #define kc_phylum_ac_constant_expression phylum_ac_constant_expression
+ #define kc_tag_ac_constant_expression_AcConstExpr impl_ac_constant_expression_AcConstExpr
+ #define kc_phylum_ac_constant_expression_list phylum_ac_constant_expression_list
+ #define kc_tag_ac_constant_expression_list_Nilac_constant_expression_list impl_ac_constant_expression_list_Nilac_constant_expression_list
+ #define kc_tag_ac_constant_expression_list_Consac_constant_expression_list impl_ac_constant_expression_list_Consac_constant_expression_list
+ #define kc_phylum_ac_opt_base_init_list phylum_ac_opt_base_init_list
+ #define kc_tag_ac_opt_base_init_list_AcNoBaseInit impl_ac_opt_base_init_list_AcNoBaseInit
+ #define kc_tag_ac_opt_base_init_list_AcYesBaseInit impl_ac_opt_base_init_list_AcYesBaseInit
+ #define kc_phylum_ac_base_init_list phylum_ac_base_init_list
+ #define kc_tag_ac_base_init_list_Nilac_base_init_list impl_ac_base_init_list_Nilac_base_init_list
+ #define kc_tag_ac_base_init_list_Consac_base_init_list impl_ac_base_init_list_Consac_base_init_list
+ #define kc_phylum_ac_base_init phylum_ac_base_init
+ #define kc_tag_ac_base_init_AcBaseInit impl_ac_base_init_AcBaseInit
+ #define kc_phylum_baseclass_declarations phylum_baseclass_declarations
+ #define kc_tag_baseclass_declarations_Nilbaseclass_declarations impl_baseclass_declarations_Nilbaseclass_declarations
+ #define kc_tag_baseclass_declarations_Consbaseclass_declarations impl_baseclass_declarations_Consbaseclass_declarations
+ #define kc_phylum_baseclass_decl phylum_baseclass_decl
+ #define kc_tag_baseclass_decl_BaseClassDecl impl_baseclass_decl_BaseClassDecl
+ #define kc_phylum_baseclass_list phylum_baseclass_list
+ #define kc_tag_baseclass_list_Nilbaseclass_list impl_baseclass_list_Nilbaseclass_list
+ #define kc_tag_baseclass_list_Consbaseclass_list impl_baseclass_list_Consbaseclass_list
+ #define kc_phylum_error phylum_error
+ #define kc_tag_error_Fatal impl_error_Fatal
+ #define kc_tag_error_NonFatal impl_error_NonFatal
+ #define kc_tag_error_Warning impl_error_Warning
+ #define kc_phylum_problem phylum_problem
+ #define kc_tag_problem_Problem1 impl_problem_Problem1
+ #define kc_tag_problem_Problem1ID impl_problem_Problem1ID
+ #define kc_tag_problem_Problem1tID impl_problem_Problem1tID
+ #define kc_tag_problem_Problem1we impl_problem_Problem1we
+ #define kc_tag_problem_Problem1ID1ID impl_problem_Problem1ID1ID
+ #define kc_tag_problem_Problem1t1ID impl_problem_Problem1t1ID
+ #define kc_tag_problem_Problem1INT impl_problem_Problem1INT
+ #define kc_tag_problem_Problem1int1 impl_problem_Problem1int1
+ #define kc_tag_problem_Problem1INT1ID impl_problem_Problem1INT1ID
+ #define kc_tag_problem_Problem1ID1ID1ID impl_problem_Problem1ID1ID1ID
+ #define kc_tag_problem_Problem1INT1ID1ID impl_problem_Problem1INT1ID1ID
+ #define kc_tag_problem_Problem1storageoption1ID impl_problem_Problem1storageoption1ID
+ #define kc_tag_problem_Problem2 impl_problem_Problem2
+ #define kc_tag_problem_Problem3 impl_problem_Problem3
+ #define kc_tag_problem_Problem3int1 impl_problem_Problem3int1
+ #define kc_tag_problem_Problem4 impl_problem_Problem4
+ #define kc_tag_problem_Problem5 impl_problem_Problem5
+ #define kc_tag_problem_Problem6 impl_problem_Problem6
+ #define kc_phylum_addedphylumdeclarations phylum_addedphylumdeclarations
+ #define kc_tag_addedphylumdeclarations_Niladdedphylumdeclarations impl_addedphylumdeclarations_Niladdedphylumdeclarations
+ #define kc_tag_addedphylumdeclarations_Consaddedphylumdeclarations impl_addedphylumdeclarations_Consaddedphylumdeclarations
+ #define kc_phylum_addedphylumdeclaration phylum_addedphylumdeclaration
+ #define kc_tag_addedphylumdeclaration_AddedPhylumdeclaration impl_addedphylumdeclaration_AddedPhylumdeclaration
+ #define kc_phylum_countedphylumdeclarations phylum_countedphylumdeclarations
+ #define kc_tag_countedphylumdeclarations_Nilcountedphylumdeclarations impl_countedphylumdeclarations_Nilcountedphylumdeclarations
+ #define kc_tag_countedphylumdeclarations_Conscountedphylumdeclarations impl_countedphylumdeclarations_Conscountedphylumdeclarations
+ #define kc_phylum_countedphylumdeclaration phylum_countedphylumdeclaration
+ #define kc_tag_countedphylumdeclaration_CountedPhylumdeclaration impl_countedphylumdeclaration_CountedPhylumdeclaration
+ #define kc_phylum_charruns phylum_charruns
+ #define kc_tag_charruns_Newlines impl_charruns_Newlines
+ #define kc_tag_charruns_QuotedNewlines impl_charruns_QuotedNewlines
+ #define kc_tag_charruns_Stars impl_charruns_Stars
+ #define kc_phylum_bindingidmarks phylum_bindingidmarks
+ #define kc_tag_bindingidmarks_Nilbindingidmarks impl_bindingidmarks_Nilbindingidmarks
+ #define kc_tag_bindingidmarks_Consbindingidmarks impl_bindingidmarks_Consbindingidmarks
+ #define kc_phylum_bindingidmark phylum_bindingidmark
+ #define kc_tag_bindingidmark_BindingIdMark impl_bindingidmark_BindingIdMark
+
+ #endif // KC_DEPRECATED
+
+ // Some compilers are too stupid to detect that a function will always return
+ // a proper value when it returns one in all branches of an if- or switch-
+ // statement (with final else or default, of course).
+ #if !defined __GNUC__
+ # define NORETURN throw 0;
+ #else
+ # define NORETURN
+ #endif
+
+ namespace kc {
+
+
+ typedef enum { one_before_first_phylum = 0 ,
+ phylum_nocasestring = 1,
+ phylum_casestring = 2,
+ phylum_real = 3,
+ phylum_integer = 4,
+ phylum_voidptr = 5,
+ phylum_uniqID = 6,
+ phylum_ID = 7,
+ phylum_INT = 8,
+ phylum_STRING = 9,
+ phylum_phylumdeclarationsroot = 10,
+ phylum_phylumdeclarations = 11,
+ phylum_phylumnames = 12,
+ phylum_phylumdeclaration = 13,
+ phylum_storageoption = 14,
+ phylum_storageclasses = 15,
+ phylum_productionblock = 16,
+ phylum_alternatives = 17,
+ phylum_alternative = 18,
+ phylum_arguments = 19,
+ phylum_argument = 20,
+ phylum_Ccode_option = 21,
+ phylum_attributes = 22,
+ phylum_attribute = 23,
+ phylum_attribute_initialisation_option = 24,
+ phylum_Cexpression = 25,
+ phylum_Cexpression_elem = 26,
+ phylum_CexpressionDQ = 27,
+ phylum_CexpressionDQ_elem = 28,
+ phylum_CexpressionSQ = 29,
+ phylum_CexpressionSQ_elem = 30,
+ phylum_idCexpressions = 31,
+ phylum_idCexpression = 32,
+ phylum_Ctexts = 33,
+ phylum_includefiles = 34,
+ phylum_includefile = 35,
+ phylum_includedeclarations = 36,
+ phylum_includedeclaration = 37,
+ phylum_rwdeclarations = 38,
+ phylum_rwdeclaration = 39,
+ phylum_rewriteclauses = 40,
+ phylum_rewriteclause = 41,
+ phylum_patternchains = 42,
+ phylum_patternchain = 43,
+ phylum_outmostpatterns = 44,
+ phylum_patternchainitem = 45,
+ phylum_outmostpattern = 46,
+ phylum_pattern = 47,
+ phylum_patterns = 48,
+ phylum_term = 49,
+ phylum_terms = 50,
+ phylum_fnfiles = 51,
+ phylum_fnfile = 52,
+ phylum_fndeclarations = 53,
+ phylum_fndeclaration = 54,
+ phylum_fnclass = 55,
+ phylum_Ctext = 56,
+ phylum_Ctext_elem = 57,
+ phylum_foreach_after = 58,
+ phylum_contextinfo = 59,
+ phylum_withexpressions = 60,
+ phylum_withexpression = 61,
+ phylum_withcases = 62,
+ phylum_withcase = 63,
+ phylum_unparsedeclarations = 64,
+ phylum_unparsedeclaration = 65,
+ phylum_unparseclauses = 66,
+ phylum_unparseclause = 67,
+ phylum_viewnames = 68,
+ phylum_unparseitems = 69,
+ phylum_unparseitem = 70,
+ phylum_unpsubterm = 71,
+ phylum_unpattributes = 72,
+ phylum_viewnameoption = 73,
+ phylum_languageoption = 74,
+ phylum_languagenames = 75,
+ phylum_fileline = 76,
+ phylum_scopetypefilelinestack = 77,
+ phylum_scopetypefileline = 78,
+ phylum_IDtype = 79,
+ phylum_operators = 80,
+ phylum_phyla = 81,
+ phylum_variables = 82,
+ phylum_dollarvarstatus = 83,
+ phylum_tribool = 84,
+ phylum_patternrepresentations = 85,
+ phylum_patternrepresentation = 86,
+ phylum_elem_patternrepresentation = 87,
+ phylum_path = 88,
+ phylum_paths = 89,
+ phylum_argsnumbers = 90,
+ phylum_rewriterulesinfo = 91,
+ phylum_rewriteruleinfo = 92,
+ phylum_withcasesinfo = 93,
+ phylum_withcaseinfo = 94,
+ phylum_rewriteviewsinfo = 95,
+ phylum_rewriteviewinfo = 96,
+ phylum_unparseviewsinfo = 97,
+ phylum_unparseviewinfo = 98,
+ phylum_unparsedeclsinfo = 99,
+ phylum_unparsedeclinfo = 100,
+ phylum_ac_declaration = 101,
+ phylum_ac_declaration_list = 102,
+ phylum_ac_declaration_specifiers = 103,
+ phylum_ac_declaration_specifier = 104,
+ phylum_ac_storage_class_specifier = 105,
+ phylum_ac_type_specifier = 106,
+ phylum_ac_type_qualifier = 107,
+ phylum_ac_init_declarator_list = 108,
+ phylum_ac_init_declarator = 109,
+ phylum_ac_declarator = 110,
+ phylum_ac_direct_declarator = 111,
+ phylum_ac_pointer_option = 112,
+ phylum_ac_pointer = 113,
+ phylum_ac_ref_option = 114,
+ phylum_ac_operator_name = 115,
+ phylum_ac_class_qualifier_help_list = 116,
+ phylum_ac_class_qualifier_list = 117,
+ phylum_ac_type_qualifier_list = 118,
+ phylum_ac_parameter_type_list = 119,
+ phylum_ac_parameter_list = 120,
+ phylum_ac_parameter_declaration = 121,
+ phylum_ac_identifier_list = 122,
+ phylum_ac_abstract_declarator = 123,
+ phylum_ac_direct_abstract_declarator_option = 124,
+ phylum_ac_direct_abstract_declarator = 125,
+ phylum_ac_constant_expression_option = 126,
+ phylum_ac_constant_expression = 127,
+ phylum_ac_constant_expression_list = 128,
+ phylum_ac_opt_base_init_list = 129,
+ phylum_ac_base_init_list = 130,
+ phylum_ac_base_init = 131,
+ phylum_baseclass_declarations = 132,
+ phylum_baseclass_decl = 133,
+ phylum_baseclass_list = 134,
+ phylum_error = 135,
+ phylum_problem = 136,
+ phylum_addedphylumdeclarations = 137,
+ phylum_addedphylumdeclaration = 138,
+ phylum_countedphylumdeclarations = 139,
+ phylum_countedphylumdeclaration = 140,
+ phylum_charruns = 141,
+ phylum_bindingidmarks = 142,
+ phylum_bindingidmark = 143,
+ last_phylum = 144
+ } enum_phyla;
+
+ typedef enum { one_before_first_operator = 0 ,
+ sel_NoCaseStr = 1,
+ sel__Str = 2,
+ sel__Real = 3,
+ sel__Int = 4,
+ sel__VoidPtr = 5,
+ sel_Str = 6,
+ sel_Id = 7,
+ sel_Int = 8,
+ sel_String = 9,
+ sel_PhylumDeclarations = 10,
+ sel_Nilphylumdeclarations = 11,
+ sel_Consphylumdeclarations = 12,
+ sel_Nilphylumnames = 13,
+ sel_Consphylumnames = 14,
+ sel_PhylumDeclaration = 15,
+ sel_NoStorageOption = 16,
+ sel_NegativeStorageOption = 17,
+ sel_PositiveStorageOption = 18,
+ sel_Nilstorageclasses = 19,
+ sel_Consstorageclasses = 20,
+ sel_Emptyproductionblock = 21,
+ sel_ListAlternatives = 22,
+ sel_NonlistAlternatives = 23,
+ sel_PredefinedAlternatives = 24,
+ sel_Nilalternatives = 25,
+ sel_Consalternatives = 26,
+ sel_Alternative = 27,
+ sel_Nilarguments = 28,
+ sel_Consarguments = 29,
+ sel_Argument = 30,
+ sel_CcodeOption = 31,
+ sel_Nilattributes = 32,
+ sel_Consattributes = 33,
+ sel_Attribute = 34,
+ sel_Noattribute_initialisation = 35,
+ sel_Yesattribute_initialisation = 36,
+ sel_NilCexpression = 37,
+ sel_ConsCexpression = 38,
+ sel_CExpressionPart = 39,
+ sel_CExpressionDollarvar = 40,
+ sel_CExpressionNl = 41,
+ sel_CExpressionDQ = 42,
+ sel_CExpressionSQ = 43,
+ sel_CExpressionPack = 44,
+ sel_CExpressionArray = 45,
+ sel_NilCexpressionDQ = 46,
+ sel_ConsCexpressionDQ = 47,
+ sel_CExpressionDQPart = 48,
+ sel_CExpressionDQNl = 49,
+ sel_NilCexpressionSQ = 50,
+ sel_ConsCexpressionSQ = 51,
+ sel_CExpressionSQPart = 52,
+ sel_CExpressionSQNl = 53,
+ sel_NilidCexpressions = 54,
+ sel_ConsidCexpressions = 55,
+ sel_IdCexpression = 56,
+ sel_NilCtexts = 57,
+ sel_ConsCtexts = 58,
+ sel_Nilincludefiles = 59,
+ sel_Consincludefiles = 60,
+ sel_IncludeFile = 61,
+ sel_Nilincludedeclarations = 62,
+ sel_Consincludedeclarations = 63,
+ sel_IncludeDeclaration = 64,
+ sel_Nilrwdeclarations = 65,
+ sel_Consrwdeclarations = 66,
+ sel_RwDeclaration = 67,
+ sel_Nilrewriteclauses = 68,
+ sel_Consrewriteclauses = 69,
+ sel_RewriteClause = 70,
+ sel_Nilpatternchains = 71,
+ sel_Conspatternchains = 72,
+ sel_Nilpatternchain = 73,
+ sel_Conspatternchain = 74,
+ sel_Niloutmostpatterns = 75,
+ sel_Consoutmostpatterns = 76,
+ sel_PatternchainitemOutmost = 77,
+ sel_PatternchainitemGroup = 78,
+ sel_PatternchainitemDollarid = 79,
+ sel_OPOperatorWildcard = 80,
+ sel_OPOperator = 81,
+ sel_OPNonLeafVariable = 82,
+ sel_OPWildcard = 83,
+ sel_OPDefault = 84,
+ sel_PVariable = 85,
+ sel_POperator = 86,
+ sel_PNonLeafVariable = 87,
+ sel_PWildcard = 88,
+ sel_PStringLiteral = 89,
+ sel_PIntLiteral = 90,
+ sel_Nilpatterns = 91,
+ sel_Conspatterns = 92,
+ sel_TVariable = 93,
+ sel_TOperator = 94,
+ sel_TMethod = 95,
+ sel_TMethodDot = 96,
+ sel_TMemberVar = 97,
+ sel_TMemberVarDot = 98,
+ sel_TCTerm = 99,
+ sel_TStringLiteral = 100,
+ sel_TIntLiteral = 101,
+ sel_Nilterms = 102,
+ sel_Consterms = 103,
+ sel_Nilfnfiles = 104,
+ sel_Consfnfiles = 105,
+ sel_FnFile = 106,
+ sel_Nilfndeclarations = 107,
+ sel_Consfndeclarations = 108,
+ sel_FnAcDeclaration = 109,
+ sel_AcMemberDeclaration = 110,
+ sel_GlobalFn = 111,
+ sel_StaticFn = 112,
+ sel_MemberFn = 113,
+ sel_ConstructorFn = 114,
+ sel_DestructorFn = 115,
+ sel_ConvOperatorFn = 116,
+ sel_NilCtext = 117,
+ sel_ConsCtext = 118,
+ sel_CTextLine = 119,
+ sel_CTextDollarVar = 120,
+ sel_CTextNl = 121,
+ sel_CTextCexpressionDQ = 122,
+ sel_CTextCexpressionSQ = 123,
+ sel_CTextCbody = 124,
+ sel_CTextForeachexpression = 125,
+ sel_CTextWithexpression = 126,
+ sel_NoForeachAfter = 127,
+ sel_ForeachAfter = 128,
+ sel_InForeachContext = 129,
+ sel_NotInForeachContext = 130,
+ sel_Nilwithexpressions = 131,
+ sel_Conswithexpressions = 132,
+ sel_WEVariable = 133,
+ sel_WECexpression = 134,
+ sel_Nilwithcases = 135,
+ sel_Conswithcases = 136,
+ sel_Withcase = 137,
+ sel_Nilunparsedeclarations = 138,
+ sel_Consunparsedeclarations = 139,
+ sel_UnparseDeclaration = 140,
+ sel_Nilunparseclauses = 141,
+ sel_Consunparseclauses = 142,
+ sel_UnparseClause = 143,
+ sel_Nilviewnames = 144,
+ sel_Consviewnames = 145,
+ sel_Nilunparseitems = 146,
+ sel_Consunparseitems = 147,
+ sel_UnpStr = 148,
+ sel_UnpSubexpr = 149,
+ sel_UnpCtext = 150,
+ sel_UnpBody = 151,
+ sel_UViewVarDecl = 152,
+ sel_UnpSubTerm = 153,
+ sel_UnpDollarvarTerm = 154,
+ sel_UnpSubAttr = 155,
+ sel_UnpDollarvarAttr = 156,
+ sel_UnpCastedVariable = 157,
+ sel_Nilunpattributes = 158,
+ sel_Consunpattributes = 159,
+ sel_NoViewname = 160,
+ sel_YesViewname = 161,
+ sel_NoLanguagename = 162,
+ sel_LanguageList = 163,
+ sel_Nillanguagenames = 164,
+ sel_Conslanguagenames = 165,
+ sel_FileLine = 166,
+ sel_NoFileLine = 167,
+ sel_PosNoFileLine = 168,
+ sel_Nilscopetypefilelinestack = 169,
+ sel_Consscopetypefilelinestack = 170,
+ sel_ScopeTypeFileLine = 171,
+ sel_ITUnknown = 172,
+ sel_ITPredefinedPhylum = 173,
+ sel_ITUserPhylum = 174,
+ sel_ITPredefinedOperator = 175,
+ sel_ITUserOperator = 176,
+ sel_ITPredefinedStorageClass = 177,
+ sel_ITStorageClass = 178,
+ sel_ITPredefinedUView = 179,
+ sel_ITUserUView = 180,
+ sel_ITUViewVar = 181,
+ sel_ITPredefinedRView = 182,
+ sel_ITUserRView = 183,
+ sel_ITUserFunction = 184,
+ sel_ITPatternVariable = 185,
+ sel_ITLanguageName = 186,
+ sel_Niloperators = 187,
+ sel_Consoperators = 188,
+ sel_Nilphyla = 189,
+ sel_Consphyla = 190,
+ sel_Nilvariables = 191,
+ sel_Consvariables = 192,
+ sel_DVAllowed = 193,
+ sel_DVDisallowed = 194,
+ sel_Equal = 195,
+ sel_Smaller = 196,
+ sel_Bigger = 197,
+ sel_Nilpatternrepresentations = 198,
+ sel_Conspatternrepresentations = 199,
+ sel_Nilpatternrepresentation = 200,
+ sel_Conspatternrepresentation = 201,
+ sel_PRBinding = 202,
+ sel_PRVarPredicate = 203,
+ sel_PROperPredicate = 204,
+ sel_PRUserPredicate = 205,
+ sel_PRNonLeafBinding = 206,
+ sel_PRWildcard = 207,
+ sel_PRDefault = 208,
+ sel_PRStringLiteral = 209,
+ sel_PRIntLiteral = 210,
+ sel_Nilpath = 211,
+ sel_Conspath = 212,
+ sel_Nilpaths = 213,
+ sel_Conspaths = 214,
+ sel_Nilargsnumbers = 215,
+ sel_Consargsnumbers = 216,
+ sel_Nilrewriterulesinfo = 217,
+ sel_Consrewriterulesinfo = 218,
+ sel_Rewriteruleinfo = 219,
+ sel_Nilwithcasesinfo = 220,
+ sel_Conswithcasesinfo = 221,
+ sel_Withcaseinfo = 222,
+ sel_Nilrewriteviewsinfo = 223,
+ sel_Consrewriteviewsinfo = 224,
+ sel_Rewriteviewinfo = 225,
+ sel_Nilunparseviewsinfo = 226,
+ sel_Consunparseviewsinfo = 227,
+ sel_Unparseviewinfo = 228,
+ sel_Nilunparsedeclsinfo = 229,
+ sel_Consunparsedeclsinfo = 230,
+ sel_Unparsedeclinfo = 231,
+ sel_AcDeclaration = 232,
+ sel_Nilac_declaration_list = 233,
+ sel_Consac_declaration_list = 234,
+ sel_Nilac_declaration_specifiers = 235,
+ sel_Consac_declaration_specifiers = 236,
+ sel_AcDeclSpecStorageSpec = 237,
+ sel_AcDeclSpecTypeSpec = 238,
+ sel_AcDeclSpecTypeQual = 239,
+ sel_AcAuto = 240,
+ sel_AcRegister = 241,
+ sel_AcStatic = 242,
+ sel_AcExtern = 243,
+ sel_AcTypedef = 244,
+ sel_AcVirtual = 245,
+ sel_AcTypeSpec = 246,
+ sel_AcConst = 247,
+ sel_AcVolatile = 248,
+ sel_AcUnsigned = 249,
+ sel_AcNoQualifier = 250,
+ sel_Nilac_init_declarator_list = 251,
+ sel_Consac_init_declarator_list = 252,
+ sel_AcInitDecl = 253,
+ sel_AcDeclarator = 254,
+ sel_AcDirectDeclId = 255,
+ sel_AcDirectDeclPack = 256,
+ sel_AcDirectDeclArray = 257,
+ sel_AcDirectDeclProto = 258,
+ sel_AcQualifiedDeclProto = 259,
+ sel_AcMemberDecl = 260,
+ sel_AcConvOperatorDecl = 261,
+ sel_AcOperatorDeclId = 262,
+ sel_Nopointer = 263,
+ sel_Yespointer = 264,
+ sel_AcPointerNil = 265,
+ sel_AcPointerCons = 266,
+ sel_AcNoRef = 267,
+ sel_AcRef = 268,
+ sel_AcOperatorName = 269,
+ sel_Nilac_class_qualifier_help_list = 270,
+ sel_Consac_class_qualifier_help_list = 271,
+ sel_Nilac_class_qualifier_list = 272,
+ sel_Consac_class_qualifier_list = 273,
+ sel_Nilac_type_qualifier_list = 274,
+ sel_Consac_type_qualifier_list = 275,
+ sel_AcParList = 276,
+ sel_AcParList3Dot = 277,
+ sel_Nilac_parameter_list = 278,
+ sel_Consac_parameter_list = 279,
+ sel_AcParDeclDecl = 280,
+ sel_AcParDeclAbsdecl = 281,
+ sel_Nilac_identifier_list = 282,
+ sel_Consac_identifier_list = 283,
+ sel_AcAbsdeclPointer = 284,
+ sel_AcAbsdeclDirdecl = 285,
+ sel_Noac_direct_abstract_declarator = 286,
+ sel_Yesac_direct_abstract_declarator = 287,
+ sel_AcDirAbsdeclPack = 288,
+ sel_AcDirAbsdeclArray = 289,
+ sel_AcDirAbsdeclFn = 290,
+ sel_Yesac_constant_expression = 291,
+ sel_Noac_constant_expression = 292,
+ sel_AcConstExpr = 293,
+ sel_Nilac_constant_expression_list = 294,
+ sel_Consac_constant_expression_list = 295,
+ sel_AcNoBaseInit = 296,
+ sel_AcYesBaseInit = 297,
+ sel_Nilac_base_init_list = 298,
+ sel_Consac_base_init_list = 299,
+ sel_AcBaseInit = 300,
+ sel_Nilbaseclass_declarations = 301,
+ sel_Consbaseclass_declarations = 302,
+ sel_BaseClassDecl = 303,
+ sel_Nilbaseclass_list = 304,
+ sel_Consbaseclass_list = 305,
+ sel_Fatal = 306,
+ sel_NonFatal = 307,
+ sel_Warning = 308,
+ sel_Problem1 = 309,
+ sel_Problem1ID = 310,
+ sel_Problem1tID = 311,
+ sel_Problem1we = 312,
+ sel_Problem1ID1ID = 313,
+ sel_Problem1t1ID = 314,
+ sel_Problem1INT = 315,
+ sel_Problem1int1 = 316,
+ sel_Problem1INT1ID = 317,
+ sel_Problem1ID1ID1ID = 318,
+ sel_Problem1INT1ID1ID = 319,
+ sel_Problem1storageoption1ID = 320,
+ sel_Problem2 = 321,
+ sel_Problem3 = 322,
+ sel_Problem3int1 = 323,
+ sel_Problem4 = 324,
+ sel_Problem5 = 325,
+ sel_Problem6 = 326,
+ sel_Niladdedphylumdeclarations = 327,
+ sel_Consaddedphylumdeclarations = 328,
+ sel_AddedPhylumdeclaration = 329,
+ sel_Nilcountedphylumdeclarations = 330,
+ sel_Conscountedphylumdeclarations = 331,
+ sel_CountedPhylumdeclaration = 332,
+ sel_Newlines = 333,
+ sel_QuotedNewlines = 334,
+ sel_Stars = 335,
+ sel_Nilbindingidmarks = 336,
+ sel_Consbindingidmarks = 337,
+ sel_BindingIdMark = 338,
+ last_operator = 339
+ } enum_operators;
+
+ class impl_abstract_phylum;
+ typedef impl_abstract_phylum * abstract_phylum;
+ typedef const impl_abstract_phylum * c_abstract_phylum;
+ class impl_abstract_list;
+ typedef impl_abstract_list * abstract_list;
+ typedef const impl_abstract_list * c_abstract_list;
+
+ template <typename P, typename T>
+ P phylum_cast(T* t) {
+ return static_cast<P>(t);
+ }
+ template <typename P, typename T>
+ const P phylum_cast(const T* t) {
+ return static_cast<const P>(t);
+ }
+ class impl_nocasestring_NoCaseStr;
+ class impl_casestring__Str;
+ class impl_real__Real;
+ class impl_integer__Int;
+ class impl_voidptr__VoidPtr;
+ class impl_uniqID;
+ class impl_ID;
+ class impl_INT;
+ class impl_STRING;
+ class impl_phylumdeclarationsroot;
+ class impl_phylumdeclarations;
+ class impl_phylumnames;
+ class impl_phylumdeclaration;
+ class impl_storageoption;
+ class impl_storageclasses;
+ class impl_productionblock;
+ class impl_alternatives;
+ class impl_alternative;
+ class impl_arguments;
+ class impl_argument;
+ class impl_Ccode_option;
+ class impl_attributes;
+ class impl_attribute;
+ class impl_attribute_initialisation_option;
+ class impl_Cexpression;
+ class impl_Cexpression_elem;
+ class impl_CexpressionDQ;
+ class impl_CexpressionDQ_elem;
+ class impl_CexpressionSQ;
+ class impl_CexpressionSQ_elem;
+ class impl_idCexpressions;
+ class impl_idCexpression;
+ class impl_Ctexts;
+ class impl_includefiles;
+ class impl_includefile;
+ class impl_includedeclarations;
+ class impl_includedeclaration;
+ class impl_rwdeclarations;
+ class impl_rwdeclaration;
+ class impl_rewriteclauses;
+ class impl_rewriteclause;
+ class impl_patternchains;
+ class impl_patternchain;
+ class impl_outmostpatterns;
+ class impl_patternchainitem;
+ class impl_outmostpattern;
+ class impl_pattern;
+ class impl_patterns;
+ class impl_term;
+ class impl_terms;
+ class impl_fnfiles;
+ class impl_fnfile;
+ class impl_fndeclarations;
+ class impl_fndeclaration;
+ class impl_fnclass;
+ class impl_Ctext;
+ class impl_Ctext_elem;
+ class impl_foreach_after;
+ class impl_contextinfo;
+ class impl_withexpressions;
+ class impl_withexpression;
+ class impl_withcases;
+ class impl_withcase;
+ class impl_unparsedeclarations;
+ class impl_unparsedeclaration;
+ class impl_unparseclauses;
+ class impl_unparseclause;
+ class impl_viewnames;
+ class impl_unparseitems;
+ class impl_unparseitem;
+ class impl_unpsubterm;
+ class impl_unpattributes;
+ class impl_viewnameoption;
+ class impl_languageoption;
+ class impl_languagenames;
+ class impl_fileline;
+ class impl_scopetypefilelinestack;
+ class impl_scopetypefileline;
+ class impl_IDtype;
+ class impl_operators;
+ class impl_phyla;
+ class impl_variables;
+ class impl_dollarvarstatus;
+ class impl_tribool;
+ class impl_patternrepresentations;
+ class impl_patternrepresentation;
+ class impl_elem_patternrepresentation;
+ class impl_path;
+ class impl_paths;
+ class impl_argsnumbers;
+ class impl_rewriterulesinfo;
+ class impl_rewriteruleinfo;
+ class impl_withcasesinfo;
+ class impl_withcaseinfo;
+ class impl_rewriteviewsinfo;
+ class impl_rewriteviewinfo;
+ class impl_unparseviewsinfo;
+ class impl_unparseviewinfo;
+ class impl_unparsedeclsinfo;
+ class impl_unparsedeclinfo;
+ class impl_ac_declaration;
+ class impl_ac_declaration_list;
+ class impl_ac_declaration_specifiers;
+ class impl_ac_declaration_specifier;
+ class impl_ac_storage_class_specifier;
+ class impl_ac_type_specifier;
+ class impl_ac_type_qualifier;
+ class impl_ac_init_declarator_list;
+ class impl_ac_init_declarator;
+ class impl_ac_declarator;
+ class impl_ac_direct_declarator;
+ class impl_ac_pointer_option;
+ class impl_ac_pointer;
+ class impl_ac_ref_option;
+ class impl_ac_operator_name;
+ class impl_ac_class_qualifier_help_list;
+ class impl_ac_class_qualifier_list;
+ class impl_ac_type_qualifier_list;
+ class impl_ac_parameter_type_list;
+ class impl_ac_parameter_list;
+ class impl_ac_parameter_declaration;
+ class impl_ac_identifier_list;
+ class impl_ac_abstract_declarator;
+ class impl_ac_direct_abstract_declarator_option;
+ class impl_ac_direct_abstract_declarator;
+ class impl_ac_constant_expression_option;
+ class impl_ac_constant_expression;
+ class impl_ac_constant_expression_list;
+ class impl_ac_opt_base_init_list;
+ class impl_ac_base_init_list;
+ class impl_ac_base_init;
+ class impl_baseclass_declarations;
+ class impl_baseclass_decl;
+ class impl_baseclass_list;
+ class impl_error;
+ class impl_problem;
+ class impl_addedphylumdeclarations;
+ class impl_addedphylumdeclaration;
+ class impl_countedphylumdeclarations;
+ class impl_countedphylumdeclaration;
+ class impl_charruns;
+ class impl_bindingidmarks;
+ class impl_bindingidmark;
+
+
+ void kc_invalid_operator( const char *kc_func_prefix, enum_phyla kc_phy, int kc_line,
+ const char *kc_file, enum_operators kc_oper ) __attribute__ ((noreturn));
+
+ typedef enum_phyla *enum_phyla_list;
+
+ /*
+ * make sure that the first 'real' storage class _always_ gets a value > 0
+ * and kc_not_uniq gets a value == 0
+ * (because then we can use it as a C boolean)
+ */
+ enum kc_storageclass_t {
+ kc_not_uniq,
+ uniq,
+ last_storageclass
+ };
+
+ typedef struct {
+ const char *name; // name of the phylum
+ enum_operators first_operator; // index in operator_info[]
+ enum_operators last_operator; // index in operator_info[]
+ kc_storageclass_t uniq_stored; // storage class
+ } KC_PHYLUM_INFO;
+
+ typedef struct {
+ const char *name; // name of the operator
+ size_t no_sons; // number of sons
+ bool atomicity; // atomic type or not
+ enum_phyla phylum; // index in phylum_info[]
+ enum_phyla_list subphylum; // indexes in phylum_info[]
+ int no_attrs; // number of attributes
+ enum_phyla_list attribute; // indexes in phylum_info[]
+ size_t size; // size of operator (for statistics)
+ } KC_OPERATOR_INFO;
+
+ typedef enum_phyla_list KC_UNIQ_INFO;
+
+ extern KC_OPERATOR_INFO operator_info[];
+ extern KC_PHYLUM_INFO phylum_info[];
+ extern KC_UNIQ_INFO kc_UniqInfo[];
+
+ #define KC_OP_NAME(op) (operator_info[op].name)
+ #define KC_NO_SONS(prod) (operator_info[prod].no_sons)
+ #define KC_ATOMICITY(prod) (operator_info[prod].atomicity)
+
+
+ typedef impl_nocasestring_NoCaseStr *nocasestring;
+ typedef const impl_nocasestring_NoCaseStr *c_nocasestring;
+ typedef impl_casestring__Str *casestring;
+ typedef const impl_casestring__Str *c_casestring;
+ typedef impl_real__Real *real;
+ typedef const impl_real__Real *c_real;
+ typedef impl_integer__Int *integer;
+ typedef const impl_integer__Int *c_integer;
+ typedef impl_voidptr__VoidPtr *voidptr;
+ typedef const impl_voidptr__VoidPtr *c_voidptr;
+ typedef impl_uniqID *uniqID;
+ typedef const impl_uniqID *c_uniqID;
+ typedef impl_ID *ID;
+ typedef const impl_ID *c_ID;
+ typedef impl_INT *INT;
+ typedef const impl_INT *c_INT;
+ typedef impl_STRING *STRING;
+ typedef const impl_STRING *c_STRING;
+ typedef impl_phylumdeclarationsroot *phylumdeclarationsroot;
+ typedef const impl_phylumdeclarationsroot *c_phylumdeclarationsroot;
+ typedef impl_phylumdeclarations *phylumdeclarations;
+ typedef const impl_phylumdeclarations *c_phylumdeclarations;
+ typedef impl_phylumnames *phylumnames;
+ typedef const impl_phylumnames *c_phylumnames;
+ typedef impl_phylumdeclaration *phylumdeclaration;
+ typedef const impl_phylumdeclaration *c_phylumdeclaration;
+ typedef impl_storageoption *storageoption;
+ typedef const impl_storageoption *c_storageoption;
+ typedef impl_storageclasses *storageclasses;
+ typedef const impl_storageclasses *c_storageclasses;
+ typedef impl_productionblock *productionblock;
+ typedef const impl_productionblock *c_productionblock;
+ typedef impl_alternatives *alternatives;
+ typedef const impl_alternatives *c_alternatives;
+ typedef impl_alternative *alternative;
+ typedef const impl_alternative *c_alternative;
+ typedef impl_arguments *arguments;
+ typedef const impl_arguments *c_arguments;
+ typedef impl_argument *argument;
+ typedef const impl_argument *c_argument;
+ typedef impl_Ccode_option *Ccode_option;
+ typedef const impl_Ccode_option *c_Ccode_option;
+ typedef impl_attributes *attributes;
+ typedef const impl_attributes *c_attributes;
+ typedef impl_attribute *attribute;
+ typedef const impl_attribute *c_attribute;
+ typedef impl_attribute_initialisation_option *attribute_initialisation_option;
+ typedef const impl_attribute_initialisation_option *c_attribute_initialisation_option;
+ typedef impl_Cexpression *Cexpression;
+ typedef const impl_Cexpression *c_Cexpression;
+ typedef impl_Cexpression_elem *Cexpression_elem;
+ typedef const impl_Cexpression_elem *c_Cexpression_elem;
+ typedef impl_CexpressionDQ *CexpressionDQ;
+ typedef const impl_CexpressionDQ *c_CexpressionDQ;
+ typedef impl_CexpressionDQ_elem *CexpressionDQ_elem;
+ typedef const impl_CexpressionDQ_elem *c_CexpressionDQ_elem;
+ typedef impl_CexpressionSQ *CexpressionSQ;
+ typedef const impl_CexpressionSQ *c_CexpressionSQ;
+ typedef impl_CexpressionSQ_elem *CexpressionSQ_elem;
+ typedef const impl_CexpressionSQ_elem *c_CexpressionSQ_elem;
+ typedef impl_idCexpressions *idCexpressions;
+ typedef const impl_idCexpressions *c_idCexpressions;
+ typedef impl_idCexpression *idCexpression;
+ typedef const impl_idCexpression *c_idCexpression;
+ typedef impl_Ctexts *Ctexts;
+ typedef const impl_Ctexts *c_Ctexts;
+ typedef impl_includefiles *includefiles;
+ typedef const impl_includefiles *c_includefiles;
+ typedef impl_includefile *includefile;
+ typedef const impl_includefile *c_includefile;
+ typedef impl_includedeclarations *includedeclarations;
+ typedef const impl_includedeclarations *c_includedeclarations;
+ typedef impl_includedeclaration *includedeclaration;
+ typedef const impl_includedeclaration *c_includedeclaration;
+ typedef impl_rwdeclarations *rwdeclarations;
+ typedef const impl_rwdeclarations *c_rwdeclarations;
+ typedef impl_rwdeclaration *rwdeclaration;
+ typedef const impl_rwdeclaration *c_rwdeclaration;
+ typedef impl_rewriteclauses *rewriteclauses;
+ typedef const impl_rewriteclauses *c_rewriteclauses;
+ typedef impl_rewriteclause *rewriteclause;
+ typedef const impl_rewriteclause *c_rewriteclause;
+ typedef impl_patternchains *patternchains;
+ typedef const impl_patternchains *c_patternchains;
+ typedef impl_patternchain *patternchain;
+ typedef const impl_patternchain *c_patternchain;
+ typedef impl_outmostpatterns *outmostpatterns;
+ typedef const impl_outmostpatterns *c_outmostpatterns;
+ typedef impl_patternchainitem *patternchainitem;
+ typedef const impl_patternchainitem *c_patternchainitem;
+ typedef impl_outmostpattern *outmostpattern;
+ typedef const impl_outmostpattern *c_outmostpattern;
+ typedef impl_pattern *pattern;
+ typedef const impl_pattern *c_pattern;
+ typedef impl_patterns *patterns;
+ typedef const impl_patterns *c_patterns;
+ typedef impl_term *term;
+ typedef const impl_term *c_term;
+ typedef impl_terms *terms;
+ typedef const impl_terms *c_terms;
+ typedef impl_fnfiles *fnfiles;
+ typedef const impl_fnfiles *c_fnfiles;
+ typedef impl_fnfile *fnfile;
+ typedef const impl_fnfile *c_fnfile;
+ typedef impl_fndeclarations *fndeclarations;
+ typedef const impl_fndeclarations *c_fndeclarations;
+ typedef impl_fndeclaration *fndeclaration;
+ typedef const impl_fndeclaration *c_fndeclaration;
+ typedef impl_fnclass *fnclass;
+ typedef const impl_fnclass *c_fnclass;
+ typedef impl_Ctext *Ctext;
+ typedef const impl_Ctext *c_Ctext;
+ typedef impl_Ctext_elem *Ctext_elem;
+ typedef const impl_Ctext_elem *c_Ctext_elem;
+ typedef impl_foreach_after *foreach_after;
+ typedef const impl_foreach_after *c_foreach_after;
+ typedef impl_contextinfo *contextinfo;
+ typedef const impl_contextinfo *c_contextinfo;
+ typedef impl_withexpressions *withexpressions;
+ typedef const impl_withexpressions *c_withexpressions;
+ typedef impl_withexpression *withexpression;
+ typedef const impl_withexpression *c_withexpression;
+ typedef impl_withcases *withcases;
+ typedef const impl_withcases *c_withcases;
+ typedef impl_withcase *withcase;
+ typedef const impl_withcase *c_withcase;
+ typedef impl_unparsedeclarations *unparsedeclarations;
+ typedef const impl_unparsedeclarations *c_unparsedeclarations;
+ typedef impl_unparsedeclaration *unparsedeclaration;
+ typedef const impl_unparsedeclaration *c_unparsedeclaration;
+ typedef impl_unparseclauses *unparseclauses;
+ typedef const impl_unparseclauses *c_unparseclauses;
+ typedef impl_unparseclause *unparseclause;
+ typedef const impl_unparseclause *c_unparseclause;
+ typedef impl_viewnames *viewnames;
+ typedef const impl_viewnames *c_viewnames;
+ typedef impl_unparseitems *unparseitems;
+ typedef const impl_unparseitems *c_unparseitems;
+ typedef impl_unparseitem *unparseitem;
+ typedef const impl_unparseitem *c_unparseitem;
+ typedef impl_unpsubterm *unpsubterm;
+ typedef const impl_unpsubterm *c_unpsubterm;
+ typedef impl_unpattributes *unpattributes;
+ typedef const impl_unpattributes *c_unpattributes;
+ typedef impl_viewnameoption *viewnameoption;
+ typedef const impl_viewnameoption *c_viewnameoption;
+ typedef impl_languageoption *languageoption;
+ typedef const impl_languageoption *c_languageoption;
+ typedef impl_languagenames *languagenames;
+ typedef const impl_languagenames *c_languagenames;
+ typedef impl_fileline *fileline;
+ typedef const impl_fileline *c_fileline;
+ typedef impl_scopetypefilelinestack *scopetypefilelinestack;
+ typedef const impl_scopetypefilelinestack *c_scopetypefilelinestack;
+ typedef impl_scopetypefileline *scopetypefileline;
+ typedef const impl_scopetypefileline *c_scopetypefileline;
+ typedef impl_IDtype *IDtype;
+ typedef const impl_IDtype *c_IDtype;
+ typedef impl_operators *operators;
+ typedef const impl_operators *c_operators;
+ typedef impl_phyla *phyla;
+ typedef const impl_phyla *c_phyla;
+ typedef impl_variables *variables;
+ typedef const impl_variables *c_variables;
+ typedef impl_dollarvarstatus *dollarvarstatus;
+ typedef const impl_dollarvarstatus *c_dollarvarstatus;
+ typedef impl_tribool *tribool;
+ typedef const impl_tribool *c_tribool;
+ typedef impl_patternrepresentations *patternrepresentations;
+ typedef const impl_patternrepresentations *c_patternrepresentations;
+ typedef impl_patternrepresentation *patternrepresentation;
+ typedef const impl_patternrepresentation *c_patternrepresentation;
+ typedef impl_elem_patternrepresentation *elem_patternrepresentation;
+ typedef const impl_elem_patternrepresentation *c_elem_patternrepresentation;
+ typedef impl_path *path;
+ typedef const impl_path *c_path;
+ typedef impl_paths *paths;
+ typedef const impl_paths *c_paths;
+ typedef impl_argsnumbers *argsnumbers;
+ typedef const impl_argsnumbers *c_argsnumbers;
+ typedef impl_rewriterulesinfo *rewriterulesinfo;
+ typedef const impl_rewriterulesinfo *c_rewriterulesinfo;
+ typedef impl_rewriteruleinfo *rewriteruleinfo;
+ typedef const impl_rewriteruleinfo *c_rewriteruleinfo;
+ typedef impl_withcasesinfo *withcasesinfo;
+ typedef const impl_withcasesinfo *c_withcasesinfo;
+ typedef impl_withcaseinfo *withcaseinfo;
+ typedef const impl_withcaseinfo *c_withcaseinfo;
+ typedef impl_rewriteviewsinfo *rewriteviewsinfo;
+ typedef const impl_rewriteviewsinfo *c_rewriteviewsinfo;
+ typedef impl_rewriteviewinfo *rewriteviewinfo;
+ typedef const impl_rewriteviewinfo *c_rewriteviewinfo;
+ typedef impl_unparseviewsinfo *unparseviewsinfo;
+ typedef const impl_unparseviewsinfo *c_unparseviewsinfo;
+ typedef impl_unparseviewinfo *unparseviewinfo;
+ typedef const impl_unparseviewinfo *c_unparseviewinfo;
+ typedef impl_unparsedeclsinfo *unparsedeclsinfo;
+ typedef const impl_unparsedeclsinfo *c_unparsedeclsinfo;
+ typedef impl_unparsedeclinfo *unparsedeclinfo;
+ typedef const impl_unparsedeclinfo *c_unparsedeclinfo;
+ typedef impl_ac_declaration *ac_declaration;
+ typedef const impl_ac_declaration *c_ac_declaration;
+ typedef impl_ac_declaration_list *ac_declaration_list;
+ typedef const impl_ac_declaration_list *c_ac_declaration_list;
+ typedef impl_ac_declaration_specifiers *ac_declaration_specifiers;
+ typedef const impl_ac_declaration_specifiers *c_ac_declaration_specifiers;
+ typedef impl_ac_declaration_specifier *ac_declaration_specifier;
+ typedef const impl_ac_declaration_specifier *c_ac_declaration_specifier;
+ typedef impl_ac_storage_class_specifier *ac_storage_class_specifier;
+ typedef const impl_ac_storage_class_specifier *c_ac_storage_class_specifier;
+ typedef impl_ac_type_specifier *ac_type_specifier;
+ typedef const impl_ac_type_specifier *c_ac_type_specifier;
+ typedef impl_ac_type_qualifier *ac_type_qualifier;
+ typedef const impl_ac_type_qualifier *c_ac_type_qualifier;
+ typedef impl_ac_init_declarator_list *ac_init_declarator_list;
+ typedef const impl_ac_init_declarator_list *c_ac_init_declarator_list;
+ typedef impl_ac_init_declarator *ac_init_declarator;
+ typedef const impl_ac_init_declarator *c_ac_init_declarator;
+ typedef impl_ac_declarator *ac_declarator;
+ typedef const impl_ac_declarator *c_ac_declarator;
+ typedef impl_ac_direct_declarator *ac_direct_declarator;
+ typedef const impl_ac_direct_declarator *c_ac_direct_declarator;
+ typedef impl_ac_pointer_option *ac_pointer_option;
+ typedef const impl_ac_pointer_option *c_ac_pointer_option;
+ typedef impl_ac_pointer *ac_pointer;
+ typedef const impl_ac_pointer *c_ac_pointer;
+ typedef impl_ac_ref_option *ac_ref_option;
+ typedef const impl_ac_ref_option *c_ac_ref_option;
+ typedef impl_ac_operator_name *ac_operator_name;
+ typedef const impl_ac_operator_name *c_ac_operator_name;
+ typedef impl_ac_class_qualifier_help_list *ac_class_qualifier_help_list;
+ typedef const impl_ac_class_qualifier_help_list *c_ac_class_qualifier_help_list;
+ typedef impl_ac_class_qualifier_list *ac_class_qualifier_list;
+ typedef const impl_ac_class_qualifier_list *c_ac_class_qualifier_list;
+ typedef impl_ac_type_qualifier_list *ac_type_qualifier_list;
+ typedef const impl_ac_type_qualifier_list *c_ac_type_qualifier_list;
+ typedef impl_ac_parameter_type_list *ac_parameter_type_list;
+ typedef const impl_ac_parameter_type_list *c_ac_parameter_type_list;
+ typedef impl_ac_parameter_list *ac_parameter_list;
+ typedef const impl_ac_parameter_list *c_ac_parameter_list;
+ typedef impl_ac_parameter_declaration *ac_parameter_declaration;
+ typedef const impl_ac_parameter_declaration *c_ac_parameter_declaration;
+ typedef impl_ac_identifier_list *ac_identifier_list;
+ typedef const impl_ac_identifier_list *c_ac_identifier_list;
+ typedef impl_ac_abstract_declarator *ac_abstract_declarator;
+ typedef const impl_ac_abstract_declarator *c_ac_abstract_declarator;
+ typedef impl_ac_direct_abstract_declarator_option *ac_direct_abstract_declarator_option;
+ typedef const impl_ac_direct_abstract_declarator_option *c_ac_direct_abstract_declarator_option;
+ typedef impl_ac_direct_abstract_declarator *ac_direct_abstract_declarator;
+ typedef const impl_ac_direct_abstract_declarator *c_ac_direct_abstract_declarator;
+ typedef impl_ac_constant_expression_option *ac_constant_expression_option;
+ typedef const impl_ac_constant_expression_option *c_ac_constant_expression_option;
+ typedef impl_ac_constant_expression *ac_constant_expression;
+ typedef const impl_ac_constant_expression *c_ac_constant_expression;
+ typedef impl_ac_constant_expression_list *ac_constant_expression_list;
+ typedef const impl_ac_constant_expression_list *c_ac_constant_expression_list;
+ typedef impl_ac_opt_base_init_list *ac_opt_base_init_list;
+ typedef const impl_ac_opt_base_init_list *c_ac_opt_base_init_list;
+ typedef impl_ac_base_init_list *ac_base_init_list;
+ typedef const impl_ac_base_init_list *c_ac_base_init_list;
+ typedef impl_ac_base_init *ac_base_init;
+ typedef const impl_ac_base_init *c_ac_base_init;
+ typedef impl_baseclass_declarations *baseclass_declarations;
+ typedef const impl_baseclass_declarations *c_baseclass_declarations;
+ typedef impl_baseclass_decl *baseclass_decl;
+ typedef const impl_baseclass_decl *c_baseclass_decl;
+ typedef impl_baseclass_list *baseclass_list;
+ typedef const impl_baseclass_list *c_baseclass_list;
+ typedef impl_error *error;
+ typedef const impl_error *c_error;
+ typedef impl_problem *problem;
+ typedef const impl_problem *c_problem;
+ typedef impl_addedphylumdeclarations *addedphylumdeclarations;
+ typedef const impl_addedphylumdeclarations *c_addedphylumdeclarations;
+ typedef impl_addedphylumdeclaration *addedphylumdeclaration;
+ typedef const impl_addedphylumdeclaration *c_addedphylumdeclaration;
+ typedef impl_countedphylumdeclarations *countedphylumdeclarations;
+ typedef const impl_countedphylumdeclarations *c_countedphylumdeclarations;
+ typedef impl_countedphylumdeclaration *countedphylumdeclaration;
+ typedef const impl_countedphylumdeclaration *c_countedphylumdeclaration;
+ typedef impl_charruns *charruns;
+ typedef const impl_charruns *c_charruns;
+ typedef impl_bindingidmarks *bindingidmarks;
+ typedef const impl_bindingidmarks *c_bindingidmarks;
+ typedef impl_bindingidmark *bindingidmark;
+ typedef const impl_bindingidmark *c_bindingidmark;
+
+ #define KC_NO_OF_OPERATORS 339
+
+
+ } // namespace kc
+ namespace kc { }
+ using namespace kc;
+ /* included stuff */
+ typedef enum {include_header =0, include_file =1, include_unknown, include_both} include_type;
+ class twoIncludedeclarations {
+ includedeclarations inc1, inc2;
+ public:
+ includedeclarations& operator[](int i)
+ { return (i==0) ? inc1 : inc2; }
+ };
+
+ //
+ // The Termprocessor Kimwitu++
+ //
+ // Copyright (C) 1991 University of Twente, Dept TIOS.
+ // Copyright (C) 1998-2003 Humboldt-University of Berlin, Institute of Informatics
+ // All rights reserved.
+ //
+ // Kimwitu++ is free software; you can redistribute it and/or modify
+ // it under the terms of the GNU General Public License as published by
+ // the Free Software Foundation; either version 2 of the License, or
+ // (at your option) any later version.
+ //
+ // Kimwitu++ is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ // GNU General Public License for more details.
+ //
+ // You should have received a copy of the GNU General Public License
+ // along with Kimwitu++; if not, write to the Free Software
+ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ //
+
+ #include "config.h"
+
+ extern char kimwitu_copyright[] ; // defined above
+ extern casestring g_progname;
+ extern char* pg_line;
+ struct cmdline_options {
+ std::string hfilename;
+ std::string ccfilename;
+ bool quiet;
+ bool verbose;
+ bool no_csgio;
+ bool no_unparse;
+ bool no_rewrite;
+ bool no_printdot;
+ bool no_hashtables;
+ bool operator_cast;
+ bool smart_pointer;
+ bool weak_pointer;
+ char covariant;
+ std::string for_bison;
+ bool for_yxx;
+ bool overwrite;
+ bool linedirec;
+ bool rw_loop;
+ std::string stdafx;
+ std::string dllexports;
+ std::string prefix;
+ std::string suffix;
+ std::string filter;
+ std::string msg_format;
+ std::string dir_line;
+ bool warn_drop_identical_patterns; // actually dropped from generated code (old test)
+ bool warn_equivalent_patterns; // informational only (new test)
+ bool warn_overlapping_patterns;
+ cmdline_options(): hfilename(""), ccfilename(""),
+ quiet(false), verbose(false), no_csgio(false), no_unparse(false), no_rewrite(false),
+ no_printdot(false), no_hashtables(false), operator_cast(false), smart_pointer(false),
+ weak_pointer(false), covariant('y'), for_bison(""), for_yxx(false), overwrite(false),
+ linedirec(true), rw_loop(false), stdafx(""), dllexports(""), prefix(""), suffix("cc"),
+ filter(""), msg_format(""), dir_line(""),
+ warn_drop_identical_patterns(true),
+ warn_equivalent_patterns(true),
+ warn_overlapping_patterns(false) { }
+ };
+ extern cmdline_options g_options;
+
+ #define INC_HEADER "HEADER"
+ #define INC_CODE "CODE"
+ #define INC_KC_TYPES_HEADER "KC_TYPES_HEADER"
+ #define INC_KC_TYPES "KC_TYPES"
+ #define INC_KC_REWRITE_HEADER "KC_REWRITE_HEADER"
+ #define INC_KC_REWRITE "KC_REWRITE"
+ #define INC_KC_CSGIO_HEADER "KC_CSGIO_HEADER"
+ #define INC_KC_CSGIO "KC_CSGIO"
+ #define INC_KC_UNPARSE_HEADER "KC_UNPARSE_HEADER"
+ #define INC_KC_UNPARSE "KC_UNPARSE"
+ #define INC_KC_FUNCTIONS_HEADER "KC_FUNCTIONS_%s_HEADER"
+ #define INC_KC_FUNCTIONS "KC_FUNCTIONS_%s"
+
+
+ namespace kc { void leave(int); }
+
+ extern int pg_lineno; /* global line # */
+ extern int pg_column; /* global column # */
+ extern int pg_charpos; /* global charpos # */
+ extern casestring pg_filename; /* global file name */
+ extern int pg_no_of_arguments; /* no_of_arguments */
+ extern phylumdeclarations Thephylumdeclarations; /* global phylumdecls */
+ extern rwdeclarations Therwdeclarations; /* global rw-decls */
+ extern fndeclarations Thefndeclarations; /* fn-decls for the file being parsed */
+ extern fnfiles Thefnfiles; /* global fn-decls */
+ extern includefiles Theincludefiles; /* global incl-decls */
+ extern unparsedeclarations Theunparsedeclarations; /* global unp-decls */
+ extern argsnumbers Theargsnumbers; /* global list of argsnumbers */
+ extern viewnames Theuviewnames; /* global list of u-viewnames */
+ extern viewnames Therviewnames; /* global list of r-viewnames */
+ extern storageclasses Thestorageclasses; /* global list of storageclasses */
+ extern languagenames Thelanguages; /* global list of used languages */
+ extern baseclass_declarations Thebaseclasses; /* global list of defined baseclasses */
+ extern bool pg_uviewshavebeendefined; /* global indication */
+ extern bool pg_rviewshavebeendefined; /* global indication */
+ extern bool pg_storageclasseshavebeendefined; /* global indication */
+ extern bool pg_languageshavebeendefined; /* global indication */
+
+ #include "error.h"
+
+ extern viewnameoption ug_viewnameopt;
+
+ #include "occur.h"
+
+ extern addedphylumdeclarations pl_addedphylumdeclarations;
+
+ extern countedphylumdeclarations pl_countedphylumdeclarations;
+
+ namespace kc { ID f_emptyId(); }
+
+ namespace kc { void collect_strings(void); }
+
+ namespace kc { void unparse_string_collection(void); }
+
+ extern bindingidmarks Thebindingidmarks;
+
+ /* end included stuff */
+
+
+ namespace kc {
+
+ #ifndef KC_NO_DEFAULT_IN_WITH
+ # define KC_NO_DEFAULT_IN_WITH "Internal Error: no default action defined in function %s at %s:%d\n"
+ #endif
+ void kc_no_default_in_with (const char*, int, const char*);
+ void kc_returnless_function (const char *, int, const char*);
+
+ #ifndef NDEBUG
+ # define assertCond(t) do {if (!(t)) kc_assertionFailed(__FILE__,__LINE__);}while(false)
+ # define assertReason(t,s) do {if (!(t)) kc_assertionReasonFailed(__FILE__,__LINE__,s);}while(false)
+ # define assertNonNull(p) do {if (p == 0) kc_assertionNonNullFailed(__FILE__,__LINE__,#p);}while(false)
+ # define assertPhylum(ptr,phy) do { \
+ assertNonNull(ptr); \
+ if (ptr->phylum()!=phy) \
+ kc_assertionOperatorInPhylumFailed(ptr->prod_sel(),#ptr,"->prod_sel()","phy",__FILE__,__LINE__); \
+ } while(false)
+ #else
+ # define assertCond(t)
+ # define assertReason(t,s)
+ # define assertNonNull(ptr)
+ # define assertPhylum(op,phy)
+ #endif
+ #define assertionFailed(s) kc_assertionReasonFailed(__FILE__,__LINE__,s)
+
+ void kc_assertionFailed (const char*, int) __attribute__ ((noreturn));
+ void kc_assertionReasonFailed (const char*, int, const char*) __attribute__ ((noreturn));
+ void kc_assertionNonNullFailed (const char*, int, const char*) __attribute__ ((noreturn));
+ void kc_assertionOperatorInPhylumFailed (int, const char*, const char*, const char*, const char*, int) __attribute__ ((noreturn));
+
+ casestring mkcasestring( const kc_char *, int length = -1);
+ nocasestring mknocasestring( const kc_char *, int length = -1);
+ integer mkinteger( const INTEGER );
+ real mkreal( const REAL );
+ inline casestring _Str( const kc_char * cc) { return mkcasestring(cc); }
+ inline nocasestring NoCaseStr( const kc_char * cc) { return mknocasestring(cc); }
+ inline integer _Int( const INTEGER cc) { return mkinteger(cc); }
+ inline real _Real( const REAL cc) { return mkreal(cc); }
+ class impl_uniqID_Str* Str (casestring);
+ class impl_ID_Id* Id (uniqID);
+ class impl_INT_Int* Int (integer);
+ class impl_STRING_String* String (casestring);
+ class impl_phylumdeclarationsroot_PhylumDeclarations* PhylumDeclarations (phylumdeclarations);
+ phylumdeclarations Nilphylumdeclarations();
+ phylumdeclarations Consphylumdeclarations(phylumdeclaration,phylumdeclarations);
+ phylumnames Nilphylumnames();
+ phylumnames Consphylumnames(ID,phylumnames);
+ class impl_phylumdeclaration_PhylumDeclaration* PhylumDeclaration (ID, storageoption, productionblock, Ccode_option);
+ class impl_storageoption_NoStorageOption* NoStorageOption ();
+ class impl_storageoption_NegativeStorageOption* NegativeStorageOption (ID);
+ class impl_storageoption_PositiveStorageOption* PositiveStorageOption (ID);
+ storageclasses Nilstorageclasses();
+ storageclasses Consstorageclasses(ID,storageclasses);
+ class impl_productionblock_Emptyproductionblock* Emptyproductionblock ();
+ class impl_productionblock_ListAlternatives* ListAlternatives (alternatives, ID);
+ class impl_productionblock_NonlistAlternatives* NonlistAlternatives (alternatives);
+ class impl_productionblock_PredefinedAlternatives* PredefinedAlternatives (alternatives);
+ alternatives Nilalternatives();
+ alternatives Consalternatives(alternative,alternatives);
+ class impl_alternative_Alternative* Alternative (ID, arguments);
+ arguments Nilarguments();
+ arguments Consarguments(ID,arguments);
+ class impl_argument_Argument* Argument (ID, integer);
+ class impl_Ccode_option_CcodeOption* CcodeOption (attributes, Ctexts);
+ attributes Nilattributes();
+ attributes Consattributes(attribute,attributes);
+ class impl_attribute_Attribute* Attribute (ID, ID, attribute_initialisation_option);
+ class impl_attribute_initialisation_option_Noattribute_initialisation* Noattribute_initialisation ();
+ class impl_attribute_initialisation_option_Yesattribute_initialisation* Yesattribute_initialisation (Cexpression);
+ Cexpression NilCexpression();
+ Cexpression ConsCexpression(Cexpression_elem,Cexpression);
+ class impl_Cexpression_elem_CExpressionPart* CExpressionPart (casestring);
+ class impl_Cexpression_elem_CExpressionDollarvar* CExpressionDollarvar (INT);
+ class impl_Cexpression_elem_CExpressionNl* CExpressionNl ();
+ class impl_Cexpression_elem_CExpressionDQ* CExpressionDQ (CexpressionDQ);
+ class impl_Cexpression_elem_CExpressionSQ* CExpressionSQ (CexpressionSQ);
+ class impl_Cexpression_elem_CExpressionPack* CExpressionPack (Cexpression);
+ class impl_Cexpression_elem_CExpressionArray* CExpressionArray (Cexpression);
+ CexpressionDQ NilCexpressionDQ();
+ CexpressionDQ ConsCexpressionDQ(CexpressionDQ_elem,CexpressionDQ);
+ class impl_CexpressionDQ_elem_CExpressionDQPart* CExpressionDQPart (casestring);
+ class impl_CexpressionDQ_elem_CExpressionDQNl* CExpressionDQNl ();
+ CexpressionSQ NilCexpressionSQ();
+ CexpressionSQ ConsCexpressionSQ(CexpressionSQ_elem,CexpressionSQ);
+ class impl_CexpressionSQ_elem_CExpressionSQPart* CExpressionSQPart (casestring);
+ class impl_CexpressionSQ_elem_CExpressionSQNl* CExpressionSQNl ();
+ idCexpressions NilidCexpressions();
+ idCexpressions ConsidCexpressions(idCexpression,idCexpressions);
+ class impl_idCexpression_IdCexpression* IdCexpression (ID, Cexpression);
+ Ctexts NilCtexts();
+ Ctexts ConsCtexts(Ctext,Ctexts);
+ includefiles Nilincludefiles();
+ includefiles Consincludefiles(includefile,includefiles);
+ class impl_includefile_IncludeFile* IncludeFile (casestring);
+ includedeclarations Nilincludedeclarations();
+ includedeclarations Consincludedeclarations(includedeclaration,includedeclarations);
+ class impl_includedeclaration_IncludeDeclaration* IncludeDeclaration (casestring);
+ rwdeclarations Nilrwdeclarations();
+ rwdeclarations Consrwdeclarations(rwdeclaration,rwdeclarations);
+ class impl_rwdeclaration_RwDeclaration* RwDeclaration (outmostpatterns, rewriteclauses);
+ rewriteclauses Nilrewriteclauses();
+ rewriteclauses Consrewriteclauses(rewriteclause,rewriteclauses);
+ class impl_rewriteclause_RewriteClause* RewriteClause (viewnames, term);
+ patternchains Nilpatternchains();
+ patternchains Conspatternchains(patternchain,patternchains);
+ patternchain Nilpatternchain();
+ patternchain Conspatternchain(patternchainitem,patternchain);
+ outmostpatterns Niloutmostpatterns();
+ outmostpatterns Consoutmostpatterns(outmostpattern,outmostpatterns);
+ class impl_patternchainitem_PatternchainitemOutmost* PatternchainitemOutmost (outmostpattern);
+ class impl_patternchainitem_PatternchainitemGroup* PatternchainitemGroup (patternchains);
+ class impl_patternchainitem_PatternchainitemDollarid* PatternchainitemDollarid (ID);
+ class impl_outmostpattern_OPOperatorWildcard* OPOperatorWildcard (ID, Cexpression);
+ class impl_outmostpattern_OPOperator* OPOperator (ID, patterns, Cexpression);
+ class impl_outmostpattern_OPNonLeafVariable* OPNonLeafVariable (ID, outmostpattern);
+ class impl_outmostpattern_OPWildcard* OPWildcard (Cexpression);
+ class impl_outmostpattern_OPDefault* OPDefault (Cexpression);
+ class impl_pattern_PVariable* PVariable (ID);
+ class impl_pattern_POperator* POperator (ID, patterns);
+ class impl_pattern_PNonLeafVariable* PNonLeafVariable (ID, pattern);
+ class impl_pattern_PWildcard* PWildcard ();
+ class impl_pattern_PStringLiteral* PStringLiteral (CexpressionDQ);
+ class impl_pattern_PIntLiteral* PIntLiteral (INT);
+ patterns Nilpatterns();
+ patterns Conspatterns(pattern,patterns);
+ class impl_term_TVariable* TVariable (ID);
+ class impl_term_TOperator* TOperator (ID, terms);
+ class impl_term_TMethod* TMethod (term, ID, terms);
+ class impl_term_TMethodDot* TMethodDot (term, ID, terms);
+ class impl_term_TMemberVar* TMemberVar (term, ID);
+ class impl_term_TMemberVarDot* TMemberVarDot (term, ID);
+ class impl_term_TCTerm* TCTerm (CexpressionSQ);
+ class impl_term_TStringLiteral* TStringLiteral (CexpressionDQ);
+ class impl_term_TIntLiteral* TIntLiteral (INT);
+ terms Nilterms();
+ terms Consterms(term,terms);
+ fnfiles Nilfnfiles();
+ fnfiles Consfnfiles(fnfile,fnfiles);
+ class impl_fnfile_FnFile* FnFile (casestring);
+ fndeclarations Nilfndeclarations();
+ fndeclarations Consfndeclarations(fndeclaration,fndeclarations);
+ class impl_fndeclaration_FnAcDeclaration* FnAcDeclaration (ac_declaration_specifiers, ac_declarator, ac_declaration_list, ac_opt_base_init_list, Ctext, ID, fnclass);
+ class impl_fndeclaration_AcMemberDeclaration* AcMemberDeclaration (ac_declaration_specifiers, ac_declarator, ac_constant_expression_option, fnclass);
+ class impl_fnclass_GlobalFn* GlobalFn ();
+ class impl_fnclass_StaticFn* StaticFn (casestring);
+ class impl_fnclass_MemberFn* MemberFn ();
+ class impl_fnclass_ConstructorFn* ConstructorFn ();
+ class impl_fnclass_DestructorFn* DestructorFn ();
+ class impl_fnclass_ConvOperatorFn* ConvOperatorFn ();
+ Ctext NilCtext();
+ Ctext ConsCtext(Ctext_elem,Ctext);
+ class impl_Ctext_elem_CTextLine* CTextLine (casestring);
+ class impl_Ctext_elem_CTextDollarVar* CTextDollarVar (INT);
+ class impl_Ctext_elem_CTextNl* CTextNl (integer);
+ class impl_Ctext_elem_CTextCexpressionDQ* CTextCexpressionDQ (CexpressionDQ);
+ class impl_Ctext_elem_CTextCexpressionSQ* CTextCexpressionSQ (CexpressionSQ);
+ class impl_Ctext_elem_CTextCbody* CTextCbody (Ctext);
+ class impl_Ctext_elem_CTextForeachexpression* CTextForeachexpression (patternchain, idCexpressions, withexpressions, Ctext, foreach_after);
+ class impl_Ctext_elem_CTextWithexpression* CTextWithexpression (withexpressions, withcases, contextinfo);
+ class impl_foreach_after_NoForeachAfter* NoForeachAfter ();
+ class impl_foreach_after_ForeachAfter* ForeachAfter (patternchain, idCexpressions, withexpressions, Ctext);
+ class impl_contextinfo_InForeachContext* InForeachContext (patternchain);
+ class impl_contextinfo_NotInForeachContext* NotInForeachContext ();
+ withexpressions Nilwithexpressions();
+ withexpressions Conswithexpressions(withexpression,withexpressions);
+ class impl_withexpression_WEVariable* WEVariable (ID);
+ class impl_withexpression_WECexpression* WECexpression (Cexpression);
+ withcases Nilwithcases();
+ withcases Conswithcases(withcase,withcases);
+ class impl_withcase_Withcase* Withcase (patternchains, Ctext);
+ unparsedeclarations Nilunparsedeclarations();
+ unparsedeclarations Consunparsedeclarations(unparsedeclaration,unparsedeclarations);
+ class impl_unparsedeclaration_UnparseDeclaration* UnparseDeclaration (outmostpatterns, unparseclauses);
+ unparseclauses Nilunparseclauses();
+ unparseclauses Consunparseclauses(unparseclause,unparseclauses);
+ class impl_unparseclause_UnparseClause* UnparseClause (viewnames, unparseitems);
+ viewnames Nilviewnames();
+ viewnames Consviewnames(ID,viewnames);
+ unparseitems Nilunparseitems();
+ unparseitems Consunparseitems(unparseitem,unparseitems);
+ class impl_unparseitem_UnpStr* UnpStr (languageoption, CexpressionDQ, viewnameoption);
+ class impl_unparseitem_UnpSubexpr* UnpSubexpr (languageoption, unpsubterm, viewnameoption);
+ class impl_unparseitem_UnpCtext* UnpCtext (languageoption, Ctext);
+ class impl_unparseitem_UnpBody* UnpBody (languageoption, unparseitems);
+ class impl_unparseitem_UViewVarDecl* UViewVarDecl (ID, ID, Cexpression);
+ class impl_unpsubterm_UnpSubTerm* UnpSubTerm (ID);
+ class impl_unpsubterm_UnpDollarvarTerm* UnpDollarvarTerm (INT);
+ class impl_unpsubterm_UnpSubAttr* UnpSubAttr (ID, unpattributes);
+ class impl_unpsubterm_UnpDollarvarAttr* UnpDollarvarAttr (INT, unpattributes);
+ class impl_unpsubterm_UnpCastedVariable* UnpCastedVariable (ID, ID);
+ unpattributes Nilunpattributes();
+ unpattributes Consunpattributes(ID,unpattributes);
+ class impl_viewnameoption_NoViewname* NoViewname ();
+ class impl_viewnameoption_YesViewname* YesViewname (ID);
+ class impl_languageoption_NoLanguagename* NoLanguagename ();
+ class impl_languageoption_LanguageList* LanguageList (languagenames);
+ languagenames Nillanguagenames();
+ languagenames Conslanguagenames(ID,languagenames);
+ class impl_fileline_FileLine* FileLine (casestring _file=0, int _line=0);
+ class impl_fileline_NoFileLine* NoFileLine ();
+ class impl_fileline_PosNoFileLine* PosNoFileLine ();
+ scopetypefilelinestack Nilscopetypefilelinestack();
+ scopetypefilelinestack Consscopetypefilelinestack(scopetypefileline,scopetypefilelinestack);
+ class impl_scopetypefileline_ScopeTypeFileLine* ScopeTypeFileLine (integer, IDtype, casestring, integer);
+ class impl_IDtype_ITUnknown* ITUnknown ();
+ class impl_IDtype_ITPredefinedPhylum* ITPredefinedPhylum (phylumdeclaration);
+ class impl_IDtype_ITUserPhylum* ITUserPhylum (phylumdeclaration);
+ class impl_IDtype_ITPredefinedOperator* ITPredefinedOperator (alternative, ID);
+ class impl_IDtype_ITUserOperator* ITUserOperator (alternative, ID);
+ class impl_IDtype_ITPredefinedStorageClass* ITPredefinedStorageClass ();
+ class impl_IDtype_ITStorageClass* ITStorageClass ();
+ class impl_IDtype_ITPredefinedUView* ITPredefinedUView ();
+ class impl_IDtype_ITUserUView* ITUserUView ();
+ class impl_IDtype_ITUViewVar* ITUViewVar ();
+ class impl_IDtype_ITPredefinedRView* ITPredefinedRView ();
+ class impl_IDtype_ITUserRView* ITUserRView ();
+ class impl_IDtype_ITUserFunction* ITUserFunction (fnclass);
+ class impl_IDtype_ITPatternVariable* ITPatternVariable (ID, integer);
+ class impl_IDtype_ITLanguageName* ITLanguageName (integer);
+ operators Niloperators();
+ operators Consoperators(ID,operators);
+ phyla Nilphyla();
+ phyla Consphyla(ID,phyla);
+ variables Nilvariables();
+ variables Consvariables(ID,variables);
+ class impl_dollarvarstatus_DVAllowed* DVAllowed ();
+ class impl_dollarvarstatus_DVDisallowed* DVDisallowed ();
+ class impl_tribool_Equal* Equal ();
+ class impl_tribool_Smaller* Smaller ();
+ class impl_tribool_Bigger* Bigger ();
+ patternrepresentations Nilpatternrepresentations();
+ patternrepresentations Conspatternrepresentations(patternrepresentation,patternrepresentations);
+ patternrepresentation Nilpatternrepresentation();
+ patternrepresentation Conspatternrepresentation(elem_patternrepresentation,patternrepresentation);
+ class impl_elem_patternrepresentation_PRBinding* PRBinding (path, ID);
+ class impl_elem_patternrepresentation_PRVarPredicate* PRVarPredicate (paths, ID, patternrepresentation);
+ class impl_elem_patternrepresentation_PROperPredicate* PROperPredicate (path, ID);
+ class impl_elem_patternrepresentation_PRUserPredicate* PRUserPredicate (Cexpression);
+ class impl_elem_patternrepresentation_PRNonLeafBinding* PRNonLeafBinding (path, ID, patternrepresentation);
+ class impl_elem_patternrepresentation_PRWildcard* PRWildcard (path);
+ class impl_elem_patternrepresentation_PRDefault* PRDefault ();
+ class impl_elem_patternrepresentation_PRStringLiteral* PRStringLiteral (path, CexpressionDQ);
+ class impl_elem_patternrepresentation_PRIntLiteral* PRIntLiteral (path, INT);
+ path Nilpath();
+ path Conspath(integer,path);
+ paths Nilpaths();
+ paths Conspaths(path,paths);
+ argsnumbers Nilargsnumbers();
+ argsnumbers Consargsnumbers(integer,argsnumbers);
+ rewriterulesinfo Nilrewriterulesinfo();
+ rewriterulesinfo Consrewriterulesinfo(rewriteruleinfo,rewriterulesinfo);
+ class impl_rewriteruleinfo_Rewriteruleinfo* Rewriteruleinfo (patternrepresentation, patternrepresentation, rewriteclause);
+ withcasesinfo Nilwithcasesinfo();
+ withcasesinfo Conswithcasesinfo(withcaseinfo,withcasesinfo);
+ class impl_withcaseinfo_Withcaseinfo* Withcaseinfo (patternrepresentation, patternrepresentation, Ctext);
+ rewriteviewsinfo Nilrewriteviewsinfo();
+ rewriteviewsinfo Consrewriteviewsinfo(rewriteviewinfo,rewriteviewsinfo);
+ class impl_rewriteviewinfo_Rewriteviewinfo* Rewriteviewinfo (ID, rewriterulesinfo);
+ unparseviewsinfo Nilunparseviewsinfo();
+ unparseviewsinfo Consunparseviewsinfo(unparseviewinfo,unparseviewsinfo);
+ class impl_unparseviewinfo_Unparseviewinfo* Unparseviewinfo (ID, unparsedeclsinfo);
+ unparsedeclsinfo Nilunparsedeclsinfo();
+ unparsedeclsinfo Consunparsedeclsinfo(unparsedeclinfo,unparsedeclsinfo);
+ class impl_unparsedeclinfo_Unparsedeclinfo* Unparsedeclinfo (patternrepresentation, patternrepresentation, unparseclause);
+ class impl_ac_declaration_AcDeclaration* AcDeclaration (ac_declaration_specifiers, ac_init_declarator_list);
+ ac_declaration_list Nilac_declaration_list();
+ ac_declaration_list Consac_declaration_list(ac_declaration,ac_declaration_list);
+ ac_declaration_specifiers Nilac_declaration_specifiers();
+ ac_declaration_specifiers Consac_declaration_specifiers(ac_declaration_specifier,ac_declaration_specifiers);
+ class impl_ac_declaration_specifier_AcDeclSpecStorageSpec* AcDeclSpecStorageSpec (ac_storage_class_specifier);
+ class impl_ac_declaration_specifier_AcDeclSpecTypeSpec* AcDeclSpecTypeSpec (ac_type_specifier);
+ class impl_ac_declaration_specifier_AcDeclSpecTypeQual* AcDeclSpecTypeQual (ac_type_qualifier);
+ class impl_ac_storage_class_specifier_AcAuto* AcAuto ();
+ class impl_ac_storage_class_specifier_AcRegister* AcRegister ();
+ class impl_ac_storage_class_specifier_AcStatic* AcStatic ();
+ class impl_ac_storage_class_specifier_AcExtern* AcExtern ();
+ class impl_ac_storage_class_specifier_AcTypedef* AcTypedef ();
+ class impl_ac_storage_class_specifier_AcVirtual* AcVirtual ();
+ class impl_ac_type_specifier_AcTypeSpec* AcTypeSpec (ID);
+ class impl_ac_type_qualifier_AcConst* AcConst ();
+ class impl_ac_type_qualifier_AcVolatile* AcVolatile ();
+ class impl_ac_type_qualifier_AcUnsigned* AcUnsigned ();
+ class impl_ac_type_qualifier_AcNoQualifier* AcNoQualifier ();
+ ac_init_declarator_list Nilac_init_declarator_list();
+ ac_init_declarator_list Consac_init_declarator_list(ac_init_declarator,ac_init_declarator_list);
+ class impl_ac_init_declarator_AcInitDecl* AcInitDecl (ac_declarator);
+ class impl_ac_declarator_AcDeclarator* AcDeclarator (ac_pointer_option, ac_ref_option, ac_direct_declarator);
+ class impl_ac_direct_declarator_AcDirectDeclId* AcDirectDeclId (ID);
+ class impl_ac_direct_declarator_AcDirectDeclPack* AcDirectDeclPack (ac_declarator);
+ class impl_ac_direct_declarator_AcDirectDeclArray* AcDirectDeclArray (ac_direct_declarator, ac_constant_expression_option);
+ class impl_ac_direct_declarator_AcDirectDeclProto* AcDirectDeclProto (ac_direct_declarator, ac_parameter_type_list);
+ class impl_ac_direct_declarator_AcQualifiedDeclProto* AcQualifiedDeclProto (ac_class_qualifier_list, ac_direct_declarator, ac_parameter_type_list, ac_type_qualifier);
+ class impl_ac_direct_declarator_AcMemberDecl* AcMemberDecl (ID, ID, ac_constant_expression_list);
+ class impl_ac_direct_declarator_AcConvOperatorDecl* AcConvOperatorDecl (ID, ID);
+ class impl_ac_direct_declarator_AcOperatorDeclId* AcOperatorDeclId (ac_operator_name);
+ class impl_ac_pointer_option_Nopointer* Nopointer ();
+ class impl_ac_pointer_option_Yespointer* Yespointer (ac_pointer);
+ class impl_ac_pointer_AcPointerNil* AcPointerNil (ac_type_qualifier_list);
+ class impl_ac_pointer_AcPointerCons* AcPointerCons (ac_type_qualifier_list, ac_pointer);
+ class impl_ac_ref_option_AcNoRef* AcNoRef ();
+ class impl_ac_ref_option_AcRef* AcRef ();
+ class impl_ac_operator_name_AcOperatorName* AcOperatorName (casestring);
+ ac_class_qualifier_help_list Nilac_class_qualifier_help_list();
+ ac_class_qualifier_help_list Consac_class_qualifier_help_list(ac_direct_declarator,ac_class_qualifier_help_list);
+ ac_class_qualifier_list Nilac_class_qualifier_list();
+ ac_class_qualifier_list Consac_class_qualifier_list(ID,ac_class_qualifier_list);
+ ac_type_qualifier_list Nilac_type_qualifier_list();
+ ac_type_qualifier_list Consac_type_qualifier_list(ac_type_qualifier,ac_type_qualifier_list);
+ class impl_ac_parameter_type_list_AcParList* AcParList (ac_parameter_list);
+ class impl_ac_parameter_type_list_AcParList3Dot* AcParList3Dot (ac_parameter_list);
+ ac_parameter_list Nilac_parameter_list();
+ ac_parameter_list Consac_parameter_list(ac_parameter_declaration,ac_parameter_list);
+ class impl_ac_parameter_declaration_AcParDeclDecl* AcParDeclDecl (ac_declaration_specifiers, ac_declarator, ac_constant_expression_option);
+ class impl_ac_parameter_declaration_AcParDeclAbsdecl* AcParDeclAbsdecl (ac_declaration_specifiers, ac_abstract_declarator, ac_constant_expression_option);
+ ac_identifier_list Nilac_identifier_list();
+ ac_identifier_list Consac_identifier_list(ID,ac_identifier_list);
+ class impl_ac_abstract_declarator_AcAbsdeclPointer* AcAbsdeclPointer (ac_pointer);
+ class impl_ac_abstract_declarator_AcAbsdeclDirdecl* AcAbsdeclDirdecl (ac_pointer_option, ac_direct_abstract_declarator);
+ class impl_ac_direct_abstract_declarator_option_Noac_direct_abstract_declarator* Noac_direct_abstract_declarator ();
+ class impl_ac_direct_abstract_declarator_option_Yesac_direct_abstract_declarator* Yesac_direct_abstract_declarator (ac_direct_abstract_declarator);
+ class impl_ac_direct_abstract_declarator_AcDirAbsdeclPack* AcDirAbsdeclPack (ac_abstract_declarator);
+ class impl_ac_direct_abstract_declarator_AcDirAbsdeclArray* AcDirAbsdeclArray (ac_direct_abstract_declarator_option, ac_constant_expression_option);
+ class impl_ac_direct_abstract_declarator_AcDirAbsdeclFn* AcDirAbsdeclFn (ac_direct_abstract_declarator_option, ac_parameter_type_list);
+ class impl_ac_constant_expression_option_Yesac_constant_expression* Yesac_constant_expression (ac_constant_expression);
+ class impl_ac_constant_expression_option_Noac_constant_expression* Noac_constant_expression ();
+ class impl_ac_constant_expression_AcConstExpr* AcConstExpr (Cexpression);
+ ac_constant_expression_list Nilac_constant_expression_list();
+ ac_constant_expression_list Consac_constant_expression_list(ac_constant_expression,ac_constant_expression_list);
+ class impl_ac_opt_base_init_list_AcNoBaseInit* AcNoBaseInit ();
+ class impl_ac_opt_base_init_list_AcYesBaseInit* AcYesBaseInit (ac_base_init_list);
+ ac_base_init_list Nilac_base_init_list();
+ ac_base_init_list Consac_base_init_list(ac_base_init,ac_base_init_list);
+ class impl_ac_base_init_AcBaseInit* AcBaseInit (ID, ac_constant_expression);
+ baseclass_declarations Nilbaseclass_declarations();
+ baseclass_declarations Consbaseclass_declarations(baseclass_decl,baseclass_declarations);
+ class impl_baseclass_decl_BaseClassDecl* BaseClassDecl (ID, baseclass_list);
+ baseclass_list Nilbaseclass_list();
+ baseclass_list Consbaseclass_list(ID,baseclass_list);
+ class impl_error_Fatal* Fatal (fileline, problem);
+ class impl_error_NonFatal* NonFatal (fileline, problem);
+ class impl_error_Warning* Warning (fileline, problem);
+ class impl_problem_Problem1* Problem1 (casestring);
+ class impl_problem_Problem1ID* Problem1ID (casestring, ID);
+ class impl_problem_Problem1tID* Problem1tID (casestring, ID);
+ class impl_problem_Problem1we* Problem1we (casestring, withexpression);
+ class impl_problem_Problem1ID1ID* Problem1ID1ID (casestring, ID, casestring, ID);
+ class impl_problem_Problem1t1ID* Problem1t1ID (casestring, IDtype, casestring, ID);
+ class impl_problem_Problem1INT* Problem1INT (casestring, INT);
+ class impl_problem_Problem1int1* Problem1int1 (casestring, integer, casestring);
+ class impl_problem_Problem1INT1ID* Problem1INT1ID (casestring, INT, casestring, ID);
+ class impl_problem_Problem1ID1ID1ID* Problem1ID1ID1ID (casestring, ID, casestring, ID, casestring, ID);
+ class impl_problem_Problem1INT1ID1ID* Problem1INT1ID1ID (casestring, INT, casestring, ID, casestring, ID);
+ class impl_problem_Problem1storageoption1ID* Problem1storageoption1ID (casestring, storageoption, casestring, ID);
+ class impl_problem_Problem2* Problem2 (casestring, casestring);
+ class impl_problem_Problem3* Problem3 (casestring, casestring, casestring);
+ class impl_problem_Problem3int1* Problem3int1 (casestring, casestring, casestring, integer, casestring);
+ class impl_problem_Problem4* Problem4 (casestring, casestring, casestring, casestring);
+ class impl_problem_Problem5* Problem5 (casestring, casestring, casestring, casestring, casestring);
+ class impl_problem_Problem6* Problem6 (casestring, casestring, casestring, casestring, casestring, casestring);
+ addedphylumdeclarations Niladdedphylumdeclarations();
+ addedphylumdeclarations Consaddedphylumdeclarations(addedphylumdeclaration,addedphylumdeclarations);
+ class impl_addedphylumdeclaration_AddedPhylumdeclaration* AddedPhylumdeclaration (uniqID);
+ countedphylumdeclarations Nilcountedphylumdeclarations();
+ countedphylumdeclarations Conscountedphylumdeclarations(countedphylumdeclaration,countedphylumdeclarations);
+ class impl_countedphylumdeclaration_CountedPhylumdeclaration* CountedPhylumdeclaration (uniqID);
+ class impl_charruns_Newlines* Newlines ();
+ class impl_charruns_QuotedNewlines* QuotedNewlines ();
+ class impl_charruns_Stars* Stars ();
+ bindingidmarks Nilbindingidmarks();
+ bindingidmarks Consbindingidmarks(bindingidmark,bindingidmarks);
+ class impl_bindingidmark_BindingIdMark* BindingIdMark (uniqID);
+
+ //namespace Phylum {
+
+ class impl_abstract_phylum {
+ public:
+ virtual enum_operators prod_sel() const =0;
+ static const enum_phyla phylum_sel_;
+ enum_phyla phylum() const;
+ const char* phylum_name() const;
+ const char* op_name() const;
+ virtual abstract_phylum subphylum(int) const;
+ virtual void set_subphylum(int, abstract_phylum);
+ void free(bool recursive=true);
+ bool eq(c_abstract_phylum) const;
+ void print();
+ void fprint(FILE *);
+ abstract_phylum copy(bool kc_copy_attributes) const;
+ void unparse(printer_functor pf, uview uv)
+ { do_unparse(pf, uv); }
+ void unparse(printer_function opf, uview uv);
+ virtual abstract_phylum rewrite(rview v) { return do_rewrite(v); }
+ virtual abstract_phylum do_rewrite(rview) { return this;}
+ // called if a subphylum of an op is rewritten and a new op is created by default rule
+ virtual void rewrite_members(abstract_phylum from) {}
+ virtual void post_create(){}
+ virtual ~impl_abstract_phylum() { }
+ private:
+ virtual void do_unparse(printer_functor, uview) =0;
+ protected:
+ virtual void default_unparse(printer_functor, uview);
+ };
+
+
+ class impl_abstract_list: public impl_abstract_phylum{
+ private:
+ void fprint_list(FILE *);
+ friend class impl_abstract_phylum;
+ protected:
+ abstract_phylum do_concat(c_abstract_phylum other, enum_operators) const;
+ abstract_phylum do_reverse(c_abstract_phylum tail, enum_operators) const;
+ abstract_phylum do_map(abstract_phylum (*kc_fp)(abstract_phylum), enum_operators);
+ abstract_phylum do_filter(bool (*kc_fp)(abstract_phylum), enum_operators);
+ abstract_list do_append(abstract_phylum, abstract_list);
+ abstract_phylum do_merge(abstract_list,abstract_phylum (*kc_fp)(abstract_phylum,abstract_phylum), enum_operators);
+ abstract_phylum do_reduce(abstract_phylum neutral, abstract_phylum (*kc_fp)(abstract_phylum,abstract_phylum));
+ public:
+ virtual bool is_nil() const =0;
+ virtual abstract_list reverse() const =0;
+ int length() const;
+ abstract_phylum last() const;
+ // Non-virtual, non-existing... Type must be known exactly anyway because
+ // of the function given as a parameter
+ //virtual abstract_list map( abstract_phylum (*)( abstract_phylum )) =0;
+ //virtual abstract_list filter(bool (*)(abstract_phylum)) =0;
+ void freelist();
+ };
+
+ abstract_phylum kc_create(enum_operators createOp, abstract_phylum=0, abstract_phylum=0, abstract_phylum=0, abstract_phylum=0, abstract_phylum=0, abstract_phylum=0, abstract_phylum=0);
+ abstract_phylum& attributeOf(abstract_phylum kc_p, int no);
+
+ class impl_nocasestring_NoCaseStr;
+ typedef impl_nocasestring_NoCaseStr impl_nocasestring;
+ class impl_nocasestring_NoCaseStr:public impl_abstract_phylum{
+ public:
+ enum_operators prod_sel() const
+ { return sel_NoCaseStr; }
+ static const enum_phyla phylum_sel_;
+ private:
+ explicit impl_nocasestring_NoCaseStr(const kc_char*);
+ void make_own(int length);
+ friend nocasestring mknocasestring(const kc_char*, int);
+ public:
+ ~impl_nocasestring_NoCaseStr() {
+ #if defined (_MSC_VER) && _MSC_VER<1300
+ delete [] (kc_char*)name;
+ #else
+ delete [] name;
+ #endif
+ }
+
+ nocasestring rewrite( rview )
+ { return this; }
+ kc_char const* name;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_casestring__Str;
+ typedef impl_casestring__Str impl_casestring;
+ class impl_casestring__Str:public impl_abstract_phylum{
+ public:
+ enum_operators prod_sel() const
+ { return sel__Str; }
+ static const enum_phyla phylum_sel_;
+ private:
+ explicit impl_casestring__Str(const kc_char*);
+ void make_own(int length);
+ friend casestring mkcasestring(const kc_char*, int);
+ public:
+ ~impl_casestring__Str() {
+ #if defined (_MSC_VER) && _MSC_VER<1300
+ delete [] (kc_char*)name;
+ #else
+ delete [] name;
+ #endif
+ }
+
+ casestring rewrite( rview )
+ { return this; }
+ kc_char const* name;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_real__Real;
+ typedef impl_real__Real impl_real;
+ class impl_real__Real:public impl_abstract_phylum{
+ public:
+ enum_operators prod_sel() const
+ { return sel__Real; }
+ static const enum_phyla phylum_sel_;
+ explicit impl_real__Real(REAL _value);
+
+ real rewrite( rview )
+ { return this; }
+ REAL value;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_integer__Int;
+ typedef impl_integer__Int impl_integer;
+ class impl_integer__Int:public impl_abstract_phylum{
+ public:
+ enum_operators prod_sel() const
+ { return sel__Int; }
+ static const enum_phyla phylum_sel_;
+ explicit impl_integer__Int(INTEGER _value);
+
+ integer rewrite( rview )
+ { return this; }
+ INTEGER value;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_voidptr__VoidPtr;
+ typedef impl_voidptr__VoidPtr impl_voidptr;
+ class impl_voidptr__VoidPtr:public impl_abstract_phylum{
+ public:
+ enum_operators prod_sel() const
+ { return sel__VoidPtr; }
+ static const enum_phyla phylum_sel_;
+ explicit impl_voidptr__VoidPtr(void* _pointer);
+
+ voidptr rewrite( rview )
+ { return this; }
+ void* pointer;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_uniqID: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ IDtype type;
+ int line;
+ casestring file;
+ scopetypefilelinestack scopeinfo;
+ uniqID rewrite(rview) =0;
+ };
+ class impl_uniqID_Str:public impl_uniqID{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Str; }
+ explicit impl_uniqID_Str(casestring);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ uniqID rewrite( rview );
+ impl_casestring* casestring_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ID: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ IDtype type;
+ casestring named_subphylum;
+ int line;
+ casestring file;
+ ID rewrite(rview) =0;
+ };
+ class impl_ID_Id:public impl_ID{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Id; }
+ explicit impl_ID_Id(uniqID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ID rewrite( rview );
+ impl_uniqID* uniqID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_INT: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ int line;
+ casestring file;
+ INT rewrite(rview) =0;
+ };
+ class impl_INT_Int:public impl_INT{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Int; }
+ explicit impl_INT_Int(integer);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ INT rewrite( rview );
+ impl_integer* integer_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_STRING: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ int line;
+ casestring file;
+ STRING rewrite(rview) =0;
+ };
+ class impl_STRING_String:public impl_STRING{
+ public:
+ enum_operators prod_sel() const
+ { return sel_String; }
+ explicit impl_STRING_String(casestring);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ STRING rewrite( rview );
+ impl_casestring* casestring_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_phylumdeclarationsroot: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ phylumdeclarationsroot rewrite(rview) =0;
+ };
+ class impl_phylumdeclarationsroot_PhylumDeclarations:public impl_phylumdeclarationsroot{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PhylumDeclarations; }
+ explicit impl_phylumdeclarationsroot_PhylumDeclarations(phylumdeclarations);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ phylumdeclarationsroot rewrite( rview );
+ impl_phylumdeclarations* phylumdeclarations_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_phylumdeclarations: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilphylumdeclarations: sel_Consphylumdeclarations;
+ }
+ explicit impl_phylumdeclarations(phylumdeclaration = 0, phylumdeclarations = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend phylumdeclarations concat(c_phylumdeclarations, c_phylumdeclarations);
+ phylumdeclarations reverse() const;
+ phylumdeclarations rewrite(rview);
+ phylumdeclaration last() const;
+ phylumdeclarations append(phylumdeclaration);
+ phylumdeclarations map(phylumdeclaration (*)(phylumdeclaration));
+ phylumdeclarations filter( bool (*)(phylumdeclaration));
+ phylumdeclarations merge( phylumdeclarations, phylumdeclaration (*)(phylumdeclaration, phylumdeclaration));
+ phylumdeclaration reduce( phylumdeclaration, phylumdeclaration (*)(phylumdeclaration, phylumdeclaration));
+ bool is_nil() const;
+ phylumdeclaration phylumdeclaration_1;
+ phylumdeclarations phylumdeclarations_1;
+ private:
+ impl_phylumdeclarations* nil_rewrite(rview);
+ impl_phylumdeclarations* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_phylumnames: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilphylumnames: sel_Consphylumnames;
+ }
+ explicit impl_phylumnames(ID = 0, phylumnames = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend phylumnames concat(c_phylumnames, c_phylumnames);
+ phylumnames reverse() const;
+ phylumnames rewrite(rview);
+ ID last() const;
+ phylumnames append(ID);
+ phylumnames map(ID (*)(ID));
+ phylumnames filter( bool (*)(ID));
+ phylumnames merge( phylumnames, ID (*)(ID, ID));
+ ID reduce( ID, ID (*)(ID, ID));
+ bool is_nil() const;
+ ID ID_1;
+ phylumnames phylumnames_1;
+ private:
+ impl_phylumnames* nil_rewrite(rview);
+ impl_phylumnames* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_phylumdeclaration: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ int marked;
+ fndeclarations additional_members;
+ baseclass_list base_classes;
+ phylumdeclaration rewrite(rview) =0;
+ };
+ class impl_phylumdeclaration_PhylumDeclaration:public impl_phylumdeclaration{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PhylumDeclaration; }
+ explicit impl_phylumdeclaration_PhylumDeclaration(ID, storageoption, productionblock, Ccode_option);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ phylumdeclaration rewrite( rview );
+ impl_ID* ID_1;
+ impl_storageoption* storageoption_1;
+ impl_productionblock* productionblock_1;
+ impl_Ccode_option* Ccode_option_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_storageoption: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ storageoption rewrite(rview) =0;
+ };
+ class impl_storageoption_PositiveStorageOption:public impl_storageoption{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PositiveStorageOption; }
+ explicit impl_storageoption_PositiveStorageOption(ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ storageoption rewrite( rview );
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_storageoption_NegativeStorageOption:public impl_storageoption{
+ public:
+ enum_operators prod_sel() const
+ { return sel_NegativeStorageOption; }
+ explicit impl_storageoption_NegativeStorageOption(ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ storageoption rewrite( rview );
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_storageoption_NoStorageOption:public impl_storageoption{
+ public:
+ enum_operators prod_sel() const
+ { return sel_NoStorageOption; }
+ explicit impl_storageoption_NoStorageOption();
+
+ storageoption rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_storageclasses: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ phylumnames phyla;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilstorageclasses: sel_Consstorageclasses;
+ }
+ explicit impl_storageclasses(ID = 0, storageclasses = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend storageclasses concat(c_storageclasses, c_storageclasses);
+ storageclasses reverse() const;
+ storageclasses rewrite(rview);
+ ID last() const;
+ storageclasses append(ID);
+ storageclasses map(ID (*)(ID));
+ storageclasses filter( bool (*)(ID));
+ storageclasses merge( storageclasses, ID (*)(ID, ID));
+ ID reduce( ID, ID (*)(ID, ID));
+ bool is_nil() const;
+ ID ID_1;
+ storageclasses storageclasses_1;
+ private:
+ impl_storageclasses* nil_rewrite(rview);
+ impl_storageclasses* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_productionblock: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ productionblock rewrite(rview) =0;
+ };
+ class impl_productionblock_PredefinedAlternatives:public impl_productionblock{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PredefinedAlternatives; }
+ explicit impl_productionblock_PredefinedAlternatives(alternatives);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ productionblock rewrite( rview );
+ impl_alternatives* alternatives_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_productionblock_NonlistAlternatives:public impl_productionblock{
+ public:
+ enum_operators prod_sel() const
+ { return sel_NonlistAlternatives; }
+ explicit impl_productionblock_NonlistAlternatives(alternatives);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ productionblock rewrite( rview );
+ impl_alternatives* alternatives_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_productionblock_ListAlternatives:public impl_productionblock{
+ public:
+ enum_operators prod_sel() const
+ { return sel_ListAlternatives; }
+ explicit impl_productionblock_ListAlternatives(alternatives, ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ productionblock rewrite( rview );
+ impl_alternatives* alternatives_1;
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_productionblock_Emptyproductionblock:public impl_productionblock{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Emptyproductionblock; }
+ explicit impl_productionblock_Emptyproductionblock();
+
+ productionblock rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_alternatives: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilalternatives: sel_Consalternatives;
+ }
+ explicit impl_alternatives(alternative = 0, alternatives = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend alternatives concat(c_alternatives, c_alternatives);
+ alternatives reverse() const;
+ alternatives rewrite(rview);
+ alternative last() const;
+ alternatives append(alternative);
+ alternatives map(alternative (*)(alternative));
+ alternatives filter( bool (*)(alternative));
+ alternatives merge( alternatives, alternative (*)(alternative, alternative));
+ alternative reduce( alternative, alternative (*)(alternative, alternative));
+ bool is_nil() const;
+ alternative alternative_1;
+ alternatives alternatives_1;
+ private:
+ impl_alternatives* nil_rewrite(rview);
+ impl_alternatives* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_alternative: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ rewriterulesinfo rewriteinfo;
+ unparsedeclsinfo unparseinfo;
+ fndeclarations additional_members;
+ baseclass_list base_classes;
+ alternative rewrite(rview) =0;
+ };
+ class impl_alternative_Alternative:public impl_alternative{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Alternative; }
+ explicit impl_alternative_Alternative(ID, arguments);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ alternative rewrite( rview );
+ impl_ID* ID_1;
+ impl_arguments* arguments_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_arguments: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ int seqnr;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilarguments: sel_Consarguments;
+ }
+ explicit impl_arguments(ID = 0, arguments = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend arguments concat(c_arguments, c_arguments);
+ arguments reverse() const;
+ arguments rewrite(rview);
+ ID last() const;
+ arguments append(ID);
+ arguments map(ID (*)(ID));
+ arguments filter( bool (*)(ID));
+ arguments merge( arguments, ID (*)(ID, ID));
+ ID reduce( ID, ID (*)(ID, ID));
+ bool is_nil() const;
+ ID ID_1;
+ arguments arguments_1;
+ private:
+ impl_arguments* nil_rewrite(rview);
+ impl_arguments* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_argument: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ argument rewrite(rview) =0;
+ };
+ class impl_argument_Argument:public impl_argument{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Argument; }
+ explicit impl_argument_Argument(ID, integer);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ argument rewrite( rview );
+ impl_ID* ID_1;
+ impl_integer* integer_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_Ccode_option: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ Ccode_option rewrite(rview) =0;
+ };
+ class impl_Ccode_option_CcodeOption:public impl_Ccode_option{
+ public:
+ enum_operators prod_sel() const
+ { return sel_CcodeOption; }
+ explicit impl_Ccode_option_CcodeOption(attributes, Ctexts);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ Ccode_option rewrite( rview );
+ impl_attributes* attributes_1;
+ impl_Ctexts* Ctexts_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_attributes: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilattributes: sel_Consattributes;
+ }
+ explicit impl_attributes(attribute = 0, attributes = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend attributes concat(c_attributes, c_attributes);
+ attributes reverse() const;
+ attributes rewrite(rview);
+ attribute last() const;
+ attributes append(attribute);
+ attributes map(attribute (*)(attribute));
+ attributes filter( bool (*)(attribute));
+ attributes merge( attributes, attribute (*)(attribute, attribute));
+ attribute reduce( attribute, attribute (*)(attribute, attribute));
+ bool is_nil() const;
+ attribute attribute_1;
+ attributes attributes_1;
+ private:
+ impl_attributes* nil_rewrite(rview);
+ impl_attributes* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_attribute: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ attribute rewrite(rview) =0;
+ };
+ class impl_attribute_Attribute:public impl_attribute{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Attribute; }
+ explicit impl_attribute_Attribute(ID, ID, attribute_initialisation_option);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ attribute rewrite( rview );
+ impl_ID* ID_1;
+ impl_ID* ID_2;
+ impl_attribute_initialisation_option* attribute_initialisation_option_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_attribute_initialisation_option: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ attribute_initialisation_option rewrite(rview) =0;
+ };
+ class impl_attribute_initialisation_option_Yesattribute_initialisation:public impl_attribute_initialisation_option{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Yesattribute_initialisation; }
+ explicit impl_attribute_initialisation_option_Yesattribute_initialisation(Cexpression);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ attribute_initialisation_option rewrite( rview );
+ impl_Cexpression* Cexpression_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_attribute_initialisation_option_Noattribute_initialisation:public impl_attribute_initialisation_option{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Noattribute_initialisation; }
+ explicit impl_attribute_initialisation_option_Noattribute_initialisation();
+
+ attribute_initialisation_option rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_Cexpression: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ int line;
+ casestring file;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_NilCexpression: sel_ConsCexpression;
+ }
+ explicit impl_Cexpression(Cexpression_elem = 0, Cexpression = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend Cexpression concat(c_Cexpression, c_Cexpression);
+ Cexpression reverse() const;
+ Cexpression rewrite(rview);
+ Cexpression_elem last() const;
+ Cexpression append(Cexpression_elem);
+ Cexpression map(Cexpression_elem (*)(Cexpression_elem));
+ Cexpression filter( bool (*)(Cexpression_elem));
+ Cexpression merge( Cexpression, Cexpression_elem (*)(Cexpression_elem, Cexpression_elem));
+ Cexpression_elem reduce( Cexpression_elem, Cexpression_elem (*)(Cexpression_elem, Cexpression_elem));
+ bool is_nil() const;
+ Cexpression_elem Cexpression_elem_1;
+ Cexpression Cexpression_1;
+ private:
+ impl_Cexpression* nil_rewrite(rview);
+ impl_Cexpression* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_Cexpression_elem: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ Cexpression_elem rewrite(rview) =0;
+ };
+ class impl_Cexpression_elem_CExpressionArray:public impl_Cexpression_elem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_CExpressionArray; }
+ explicit impl_Cexpression_elem_CExpressionArray(Cexpression);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ Cexpression_elem rewrite( rview );
+ impl_Cexpression* Cexpression_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_Cexpression_elem_CExpressionPack:public impl_Cexpression_elem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_CExpressionPack; }
+ explicit impl_Cexpression_elem_CExpressionPack(Cexpression);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ Cexpression_elem rewrite( rview );
+ impl_Cexpression* Cexpression_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_Cexpression_elem_CExpressionSQ:public impl_Cexpression_elem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_CExpressionSQ; }
+ explicit impl_Cexpression_elem_CExpressionSQ(CexpressionSQ);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ Cexpression_elem rewrite( rview );
+ impl_CexpressionSQ* CexpressionSQ_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_Cexpression_elem_CExpressionDQ:public impl_Cexpression_elem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_CExpressionDQ; }
+ explicit impl_Cexpression_elem_CExpressionDQ(CexpressionDQ);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ Cexpression_elem rewrite( rview );
+ impl_CexpressionDQ* CexpressionDQ_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_Cexpression_elem_CExpressionNl:public impl_Cexpression_elem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_CExpressionNl; }
+ explicit impl_Cexpression_elem_CExpressionNl();
+
+ Cexpression_elem rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_Cexpression_elem_CExpressionDollarvar:public impl_Cexpression_elem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_CExpressionDollarvar; }
+ explicit impl_Cexpression_elem_CExpressionDollarvar(INT);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ Cexpression_elem rewrite( rview );
+ impl_INT* INT_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_Cexpression_elem_CExpressionPart:public impl_Cexpression_elem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_CExpressionPart; }
+ explicit impl_Cexpression_elem_CExpressionPart(casestring);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ Cexpression_elem rewrite( rview );
+ impl_casestring* casestring_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_CexpressionDQ: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_NilCexpressionDQ: sel_ConsCexpressionDQ;
+ }
+ explicit impl_CexpressionDQ(CexpressionDQ_elem = 0, CexpressionDQ = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend CexpressionDQ concat(c_CexpressionDQ, c_CexpressionDQ);
+ CexpressionDQ reverse() const;
+ CexpressionDQ rewrite(rview);
+ CexpressionDQ_elem last() const;
+ CexpressionDQ append(CexpressionDQ_elem);
+ CexpressionDQ map(CexpressionDQ_elem (*)(CexpressionDQ_elem));
+ CexpressionDQ filter( bool (*)(CexpressionDQ_elem));
+ CexpressionDQ merge( CexpressionDQ, CexpressionDQ_elem (*)(CexpressionDQ_elem, CexpressionDQ_elem));
+ CexpressionDQ_elem reduce( CexpressionDQ_elem, CexpressionDQ_elem (*)(CexpressionDQ_elem, CexpressionDQ_elem));
+ bool is_nil() const;
+ CexpressionDQ_elem CexpressionDQ_elem_1;
+ CexpressionDQ CexpressionDQ_1;
+ private:
+ impl_CexpressionDQ* nil_rewrite(rview);
+ impl_CexpressionDQ* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_CexpressionDQ_elem: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ CexpressionDQ_elem rewrite(rview) =0;
+ };
+ class impl_CexpressionDQ_elem_CExpressionDQNl:public impl_CexpressionDQ_elem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_CExpressionDQNl; }
+ explicit impl_CexpressionDQ_elem_CExpressionDQNl();
+
+ CexpressionDQ_elem rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_CexpressionDQ_elem_CExpressionDQPart:public impl_CexpressionDQ_elem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_CExpressionDQPart; }
+ explicit impl_CexpressionDQ_elem_CExpressionDQPart(casestring);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ CexpressionDQ_elem rewrite( rview );
+ impl_casestring* casestring_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_CexpressionSQ: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_NilCexpressionSQ: sel_ConsCexpressionSQ;
+ }
+ explicit impl_CexpressionSQ(CexpressionSQ_elem = 0, CexpressionSQ = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend CexpressionSQ concat(c_CexpressionSQ, c_CexpressionSQ);
+ CexpressionSQ reverse() const;
+ CexpressionSQ rewrite(rview);
+ CexpressionSQ_elem last() const;
+ CexpressionSQ append(CexpressionSQ_elem);
+ CexpressionSQ map(CexpressionSQ_elem (*)(CexpressionSQ_elem));
+ CexpressionSQ filter( bool (*)(CexpressionSQ_elem));
+ CexpressionSQ merge( CexpressionSQ, CexpressionSQ_elem (*)(CexpressionSQ_elem, CexpressionSQ_elem));
+ CexpressionSQ_elem reduce( CexpressionSQ_elem, CexpressionSQ_elem (*)(CexpressionSQ_elem, CexpressionSQ_elem));
+ bool is_nil() const;
+ CexpressionSQ_elem CexpressionSQ_elem_1;
+ CexpressionSQ CexpressionSQ_1;
+ private:
+ impl_CexpressionSQ* nil_rewrite(rview);
+ impl_CexpressionSQ* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_CexpressionSQ_elem: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ CexpressionSQ_elem rewrite(rview) =0;
+ };
+ class impl_CexpressionSQ_elem_CExpressionSQNl:public impl_CexpressionSQ_elem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_CExpressionSQNl; }
+ explicit impl_CexpressionSQ_elem_CExpressionSQNl();
+
+ CexpressionSQ_elem rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_CexpressionSQ_elem_CExpressionSQPart:public impl_CexpressionSQ_elem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_CExpressionSQPart; }
+ explicit impl_CexpressionSQ_elem_CExpressionSQPart(casestring);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ CexpressionSQ_elem rewrite( rview );
+ impl_casestring* casestring_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_idCexpressions: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_NilidCexpressions: sel_ConsidCexpressions;
+ }
+ explicit impl_idCexpressions(idCexpression = 0, idCexpressions = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend idCexpressions concat(c_idCexpressions, c_idCexpressions);
+ idCexpressions reverse() const;
+ idCexpressions rewrite(rview);
+ idCexpression last() const;
+ idCexpressions append(idCexpression);
+ idCexpressions map(idCexpression (*)(idCexpression));
+ idCexpressions filter( bool (*)(idCexpression));
+ idCexpressions merge( idCexpressions, idCexpression (*)(idCexpression, idCexpression));
+ idCexpression reduce( idCexpression, idCexpression (*)(idCexpression, idCexpression));
+ bool is_nil() const;
+ idCexpression idCexpression_1;
+ idCexpressions idCexpressions_1;
+ private:
+ impl_idCexpressions* nil_rewrite(rview);
+ impl_idCexpressions* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_idCexpression: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ID id;
+ idCexpression rewrite(rview) =0;
+ };
+ class impl_idCexpression_IdCexpression:public impl_idCexpression{
+ public:
+ enum_operators prod_sel() const
+ { return sel_IdCexpression; }
+ explicit impl_idCexpression_IdCexpression(ID, Cexpression);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ idCexpression rewrite( rview );
+ impl_ID* ID_1;
+ impl_Cexpression* Cexpression_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_Ctexts: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_NilCtexts: sel_ConsCtexts;
+ }
+ explicit impl_Ctexts(Ctext = 0, Ctexts = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend Ctexts concat(c_Ctexts, c_Ctexts);
+ Ctexts reverse() const;
+ Ctexts rewrite(rview);
+ Ctext last() const;
+ Ctexts append(Ctext);
+ Ctexts map(Ctext (*)(Ctext));
+ Ctexts filter( bool (*)(Ctext));
+ Ctexts merge( Ctexts, Ctext (*)(Ctext, Ctext));
+ Ctext reduce( Ctext, Ctext (*)(Ctext, Ctext));
+ bool is_nil() const;
+ Ctext Ctext_1;
+ Ctexts Ctexts_1;
+ private:
+ impl_Ctexts* nil_rewrite(rview);
+ impl_Ctexts* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_includefiles: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilincludefiles: sel_Consincludefiles;
+ }
+ explicit impl_includefiles(includefile = 0, includefiles = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend includefiles concat(c_includefiles, c_includefiles);
+ includefiles reverse() const;
+ includefiles rewrite(rview);
+ includefile last() const;
+ includefiles append(includefile);
+ includefiles map(includefile (*)(includefile));
+ includefiles filter( bool (*)(includefile));
+ includefiles merge( includefiles, includefile (*)(includefile, includefile));
+ includefile reduce( includefile, includefile (*)(includefile, includefile));
+ bool is_nil() const;
+ includefile includefile_1;
+ includefiles includefiles_1;
+ private:
+ impl_includefiles* nil_rewrite(rview);
+ impl_includefiles* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_includefile: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ include_type inc_type;
+ twoIncludedeclarations inc;
+ includefile rewrite(rview) =0;
+ };
+ class impl_includefile_IncludeFile:public impl_includefile{
+ public:
+ enum_operators prod_sel() const
+ { return sel_IncludeFile; }
+ explicit impl_includefile_IncludeFile(casestring);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ includefile rewrite( rview );
+ impl_casestring* casestring_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_includedeclarations: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilincludedeclarations: sel_Consincludedeclarations;
+ }
+ explicit impl_includedeclarations(includedeclaration = 0, includedeclarations = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend includedeclarations concat(c_includedeclarations, c_includedeclarations);
+ includedeclarations reverse() const;
+ includedeclarations rewrite(rview);
+ includedeclaration last() const;
+ includedeclarations append(includedeclaration);
+ includedeclarations map(includedeclaration (*)(includedeclaration));
+ includedeclarations filter( bool (*)(includedeclaration));
+ includedeclarations merge( includedeclarations, includedeclaration (*)(includedeclaration, includedeclaration));
+ includedeclaration reduce( includedeclaration, includedeclaration (*)(includedeclaration, includedeclaration));
+ bool is_nil() const;
+ includedeclaration includedeclaration_1;
+ includedeclarations includedeclarations_1;
+ private:
+ impl_includedeclarations* nil_rewrite(rview);
+ impl_includedeclarations* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_includedeclaration: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ int line;
+ casestring file;
+ includedeclaration rewrite(rview) =0;
+ };
+ class impl_includedeclaration_IncludeDeclaration:public impl_includedeclaration{
+ public:
+ enum_operators prod_sel() const
+ { return sel_IncludeDeclaration; }
+ explicit impl_includedeclaration_IncludeDeclaration(casestring);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ includedeclaration rewrite( rview );
+ impl_casestring* casestring_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_rwdeclarations: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilrwdeclarations: sel_Consrwdeclarations;
+ }
+ explicit impl_rwdeclarations(rwdeclaration = 0, rwdeclarations = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend rwdeclarations concat(c_rwdeclarations, c_rwdeclarations);
+ rwdeclarations reverse() const;
+ rwdeclarations rewrite(rview);
+ rwdeclaration last() const;
+ rwdeclarations append(rwdeclaration);
+ rwdeclarations map(rwdeclaration (*)(rwdeclaration));
+ rwdeclarations filter( bool (*)(rwdeclaration));
+ rwdeclarations merge( rwdeclarations, rwdeclaration (*)(rwdeclaration, rwdeclaration));
+ rwdeclaration reduce( rwdeclaration, rwdeclaration (*)(rwdeclaration, rwdeclaration));
+ bool is_nil() const;
+ rwdeclaration rwdeclaration_1;
+ rwdeclarations rwdeclarations_1;
+ private:
+ impl_rwdeclarations* nil_rewrite(rview);
+ impl_rwdeclarations* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_rwdeclaration: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ rwdeclaration rewrite(rview) =0;
+ };
+ class impl_rwdeclaration_RwDeclaration:public impl_rwdeclaration{
+ public:
+ enum_operators prod_sel() const
+ { return sel_RwDeclaration; }
+ explicit impl_rwdeclaration_RwDeclaration(outmostpatterns, rewriteclauses);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ rwdeclaration rewrite( rview );
+ impl_outmostpatterns* outmostpatterns_1;
+ impl_rewriteclauses* rewriteclauses_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_rewriteclauses: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilrewriteclauses: sel_Consrewriteclauses;
+ }
+ explicit impl_rewriteclauses(rewriteclause = 0, rewriteclauses = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend rewriteclauses concat(c_rewriteclauses, c_rewriteclauses);
+ rewriteclauses reverse() const;
+ rewriteclauses rewrite(rview);
+ rewriteclause last() const;
+ rewriteclauses append(rewriteclause);
+ rewriteclauses map(rewriteclause (*)(rewriteclause));
+ rewriteclauses filter( bool (*)(rewriteclause));
+ rewriteclauses merge( rewriteclauses, rewriteclause (*)(rewriteclause, rewriteclause));
+ rewriteclause reduce( rewriteclause, rewriteclause (*)(rewriteclause, rewriteclause));
+ bool is_nil() const;
+ rewriteclause rewriteclause_1;
+ rewriteclauses rewriteclauses_1;
+ private:
+ impl_rewriteclauses* nil_rewrite(rview);
+ impl_rewriteclauses* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_rewriteclause: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ rewriteclause rewrite(rview) =0;
+ };
+ class impl_rewriteclause_RewriteClause:public impl_rewriteclause{
+ public:
+ enum_operators prod_sel() const
+ { return sel_RewriteClause; }
+ explicit impl_rewriteclause_RewriteClause(viewnames, term);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ rewriteclause rewrite( rview );
+ impl_viewnames* viewnames_1;
+ impl_term* term_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_patternchains: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ int line;
+ casestring file;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilpatternchains: sel_Conspatternchains;
+ }
+ explicit impl_patternchains(patternchain = 0, patternchains = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend patternchains concat(c_patternchains, c_patternchains);
+ patternchains reverse() const;
+ patternchains rewrite(rview);
+ patternchain last() const;
+ patternchains append(patternchain);
+ patternchains map(patternchain (*)(patternchain));
+ patternchains filter( bool (*)(patternchain));
+ patternchains merge( patternchains, patternchain (*)(patternchain, patternchain));
+ patternchain reduce( patternchain, patternchain (*)(patternchain, patternchain));
+ bool is_nil() const;
+ patternchain patternchain_1;
+ patternchains patternchains_1;
+ private:
+ impl_patternchains* nil_rewrite(rview);
+ impl_patternchains* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_patternchain: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ int line;
+ casestring file;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilpatternchain: sel_Conspatternchain;
+ }
+ explicit impl_patternchain(patternchainitem = 0, patternchain = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend patternchain concat(c_patternchain, c_patternchain);
+ patternchain reverse() const;
+ patternchain rewrite(rview);
+ patternchainitem last() const;
+ patternchain append(patternchainitem);
+ patternchain map(patternchainitem (*)(patternchainitem));
+ patternchain filter( bool (*)(patternchainitem));
+ patternchain merge( patternchain, patternchainitem (*)(patternchainitem, patternchainitem));
+ patternchainitem reduce( patternchainitem, patternchainitem (*)(patternchainitem, patternchainitem));
+ bool is_nil() const;
+ patternchainitem patternchainitem_1;
+ patternchain patternchain_1;
+ private:
+ impl_patternchain* nil_rewrite(rview);
+ impl_patternchain* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_outmostpatterns: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Niloutmostpatterns: sel_Consoutmostpatterns;
+ }
+ explicit impl_outmostpatterns(outmostpattern = 0, outmostpatterns = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend outmostpatterns concat(c_outmostpatterns, c_outmostpatterns);
+ outmostpatterns reverse() const;
+ outmostpatterns rewrite(rview);
+ outmostpattern last() const;
+ outmostpatterns append(outmostpattern);
+ outmostpatterns map(outmostpattern (*)(outmostpattern));
+ outmostpatterns filter( bool (*)(outmostpattern));
+ outmostpatterns merge( outmostpatterns, outmostpattern (*)(outmostpattern, outmostpattern));
+ outmostpattern reduce( outmostpattern, outmostpattern (*)(outmostpattern, outmostpattern));
+ bool is_nil() const;
+ outmostpattern outmostpattern_1;
+ outmostpatterns outmostpatterns_1;
+ private:
+ impl_outmostpatterns* nil_rewrite(rview);
+ impl_outmostpatterns* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_patternchainitem: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ int line;
+ casestring file;
+ ID type;
+ patternchainitem rewrite(rview) =0;
+ };
+ class impl_patternchainitem_PatternchainitemDollarid:public impl_patternchainitem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PatternchainitemDollarid; }
+ explicit impl_patternchainitem_PatternchainitemDollarid(ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ patternchainitem rewrite( rview );
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_patternchainitem_PatternchainitemGroup:public impl_patternchainitem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PatternchainitemGroup; }
+ explicit impl_patternchainitem_PatternchainitemGroup(patternchains);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ patternchainitem rewrite( rview );
+ impl_patternchains* patternchains_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_patternchainitem_PatternchainitemOutmost:public impl_patternchainitem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PatternchainitemOutmost; }
+ explicit impl_patternchainitem_PatternchainitemOutmost(outmostpattern);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ patternchainitem rewrite( rview );
+ impl_outmostpattern* outmostpattern_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_outmostpattern: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ int line;
+ casestring file;
+ ID type;
+ outmostpattern rewrite(rview) =0;
+ };
+ class impl_outmostpattern_OPDefault:public impl_outmostpattern{
+ public:
+ enum_operators prod_sel() const
+ { return sel_OPDefault; }
+ explicit impl_outmostpattern_OPDefault(Cexpression);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ outmostpattern rewrite( rview );
+ impl_Cexpression* Cexpression_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_outmostpattern_OPWildcard:public impl_outmostpattern{
+ public:
+ enum_operators prod_sel() const
+ { return sel_OPWildcard; }
+ explicit impl_outmostpattern_OPWildcard(Cexpression);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ outmostpattern rewrite( rview );
+ impl_Cexpression* Cexpression_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_outmostpattern_OPNonLeafVariable:public impl_outmostpattern{
+ public:
+ enum_operators prod_sel() const
+ { return sel_OPNonLeafVariable; }
+ explicit impl_outmostpattern_OPNonLeafVariable(ID, outmostpattern);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ outmostpattern rewrite( rview );
+ impl_ID* ID_1;
+ impl_outmostpattern* outmostpattern_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_outmostpattern_OPOperator:public impl_outmostpattern{
+ public:
+ enum_operators prod_sel() const
+ { return sel_OPOperator; }
+ explicit impl_outmostpattern_OPOperator(ID, patterns, Cexpression);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ outmostpattern rewrite( rview );
+ impl_ID* ID_1;
+ impl_patterns* patterns_1;
+ impl_Cexpression* Cexpression_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_outmostpattern_OPOperatorWildcard:public impl_outmostpattern{
+ public:
+ enum_operators prod_sel() const
+ { return sel_OPOperatorWildcard; }
+ explicit impl_outmostpattern_OPOperatorWildcard(ID, Cexpression);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ outmostpattern rewrite( rview );
+ impl_ID* ID_1;
+ impl_Cexpression* Cexpression_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_pattern: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ pattern rewrite(rview) =0;
+ };
+ class impl_pattern_PIntLiteral:public impl_pattern{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PIntLiteral; }
+ explicit impl_pattern_PIntLiteral(INT);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ pattern rewrite( rview );
+ impl_INT* INT_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_pattern_PStringLiteral:public impl_pattern{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PStringLiteral; }
+ explicit impl_pattern_PStringLiteral(CexpressionDQ);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ pattern rewrite( rview );
+ impl_CexpressionDQ* CexpressionDQ_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_pattern_PWildcard:public impl_pattern{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PWildcard; }
+ explicit impl_pattern_PWildcard();
+
+ pattern rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_pattern_PNonLeafVariable:public impl_pattern{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PNonLeafVariable; }
+ explicit impl_pattern_PNonLeafVariable(ID, pattern);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ pattern rewrite( rview );
+ impl_ID* ID_1;
+ impl_pattern* pattern_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_pattern_POperator:public impl_pattern{
+ public:
+ enum_operators prod_sel() const
+ { return sel_POperator; }
+ explicit impl_pattern_POperator(ID, patterns);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ pattern rewrite( rview );
+ impl_ID* ID_1;
+ impl_patterns* patterns_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_pattern_PVariable:public impl_pattern{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PVariable; }
+ explicit impl_pattern_PVariable(ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ pattern rewrite( rview );
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_patterns: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilpatterns: sel_Conspatterns;
+ }
+ explicit impl_patterns(pattern = 0, patterns = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend patterns concat(c_patterns, c_patterns);
+ patterns reverse() const;
+ patterns rewrite(rview);
+ pattern last() const;
+ patterns append(pattern);
+ patterns map(pattern (*)(pattern));
+ patterns filter( bool (*)(pattern));
+ patterns merge( patterns, pattern (*)(pattern, pattern));
+ pattern reduce( pattern, pattern (*)(pattern, pattern));
+ bool is_nil() const;
+ pattern pattern_1;
+ patterns patterns_1;
+ private:
+ impl_patterns* nil_rewrite(rview);
+ impl_patterns* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_term: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ int line;
+ casestring file;
+ term rewrite(rview) =0;
+ };
+ class impl_term_TIntLiteral:public impl_term{
+ public:
+ enum_operators prod_sel() const
+ { return sel_TIntLiteral; }
+ explicit impl_term_TIntLiteral(INT);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ term rewrite( rview );
+ impl_INT* INT_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_term_TStringLiteral:public impl_term{
+ public:
+ enum_operators prod_sel() const
+ { return sel_TStringLiteral; }
+ explicit impl_term_TStringLiteral(CexpressionDQ);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ term rewrite( rview );
+ impl_CexpressionDQ* CexpressionDQ_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_term_TCTerm:public impl_term{
+ public:
+ enum_operators prod_sel() const
+ { return sel_TCTerm; }
+ explicit impl_term_TCTerm(CexpressionSQ);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ term rewrite( rview );
+ impl_CexpressionSQ* CexpressionSQ_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_term_TMemberVarDot:public impl_term{
+ public:
+ enum_operators prod_sel() const
+ { return sel_TMemberVarDot; }
+ explicit impl_term_TMemberVarDot(term, ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ term rewrite( rview );
+ impl_term* term_1;
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_term_TMemberVar:public impl_term{
+ public:
+ enum_operators prod_sel() const
+ { return sel_TMemberVar; }
+ explicit impl_term_TMemberVar(term, ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ term rewrite( rview );
+ impl_term* term_1;
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_term_TMethodDot:public impl_term{
+ public:
+ enum_operators prod_sel() const
+ { return sel_TMethodDot; }
+ explicit impl_term_TMethodDot(term, ID, terms);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ term rewrite( rview );
+ impl_term* term_1;
+ impl_ID* ID_1;
+ impl_terms* terms_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_term_TMethod:public impl_term{
+ public:
+ enum_operators prod_sel() const
+ { return sel_TMethod; }
+ explicit impl_term_TMethod(term, ID, terms);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ term rewrite( rview );
+ impl_term* term_1;
+ impl_ID* ID_1;
+ impl_terms* terms_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_term_TOperator:public impl_term{
+ public:
+ enum_operators prod_sel() const
+ { return sel_TOperator; }
+ explicit impl_term_TOperator(ID, terms);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ term rewrite( rview );
+ impl_ID* ID_1;
+ impl_terms* terms_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_term_TVariable:public impl_term{
+ public:
+ enum_operators prod_sel() const
+ { return sel_TVariable; }
+ explicit impl_term_TVariable(ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ term rewrite( rview );
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_terms: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilterms: sel_Consterms;
+ }
+ explicit impl_terms(term = 0, terms = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend terms concat(c_terms, c_terms);
+ terms reverse() const;
+ terms rewrite(rview);
+ term last() const;
+ terms append(term);
+ terms map(term (*)(term));
+ terms filter( bool (*)(term));
+ terms merge( terms, term (*)(term, term));
+ term reduce( term, term (*)(term, term));
+ bool is_nil() const;
+ term term_1;
+ terms terms_1;
+ private:
+ impl_terms* nil_rewrite(rview);
+ impl_terms* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_fnfiles: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilfnfiles: sel_Consfnfiles;
+ }
+ explicit impl_fnfiles(fnfile = 0, fnfiles = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend fnfiles concat(c_fnfiles, c_fnfiles);
+ fnfiles reverse() const;
+ fnfiles rewrite(rview);
+ fnfile last() const;
+ fnfiles append(fnfile);
+ fnfiles map(fnfile (*)(fnfile));
+ fnfiles filter( bool (*)(fnfile));
+ fnfiles merge( fnfiles, fnfile (*)(fnfile, fnfile));
+ fnfile reduce( fnfile, fnfile (*)(fnfile, fnfile));
+ bool is_nil() const;
+ fnfile fnfile_1;
+ fnfiles fnfiles_1;
+ private:
+ impl_fnfiles* nil_rewrite(rview);
+ impl_fnfiles* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_fnfile: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ fndeclarations fns;
+ fnfile rewrite(rview) =0;
+ };
+ class impl_fnfile_FnFile:public impl_fnfile{
+ public:
+ enum_operators prod_sel() const
+ { return sel_FnFile; }
+ explicit impl_fnfile_FnFile(casestring);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ fnfile rewrite( rview );
+ impl_casestring* casestring_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_fndeclarations: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilfndeclarations: sel_Consfndeclarations;
+ }
+ explicit impl_fndeclarations(fndeclaration = 0, fndeclarations = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend fndeclarations concat(c_fndeclarations, c_fndeclarations);
+ fndeclarations reverse() const;
+ fndeclarations rewrite(rview);
+ fndeclaration last() const;
+ fndeclarations append(fndeclaration);
+ fndeclarations map(fndeclaration (*)(fndeclaration));
+ fndeclarations filter( bool (*)(fndeclaration));
+ fndeclarations merge( fndeclarations, fndeclaration (*)(fndeclaration, fndeclaration));
+ fndeclaration reduce( fndeclaration, fndeclaration (*)(fndeclaration, fndeclaration));
+ bool is_nil() const;
+ fndeclaration fndeclaration_1;
+ fndeclarations fndeclarations_1;
+ private:
+ impl_fndeclarations* nil_rewrite(rview);
+ impl_fndeclarations* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_fndeclaration: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ac_parameter_type_list sorted;
+ int last_line;
+ casestring file;
+ bool is_attr;
+ fndeclaration rewrite(rview) =0;
+ };
+ class impl_fndeclaration_AcMemberDeclaration:public impl_fndeclaration{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcMemberDeclaration; }
+ explicit impl_fndeclaration_AcMemberDeclaration(ac_declaration_specifiers, ac_declarator, ac_constant_expression_option, fnclass);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ fndeclaration rewrite( rview );
+ impl_ac_declaration_specifiers* ac_declaration_specifiers_1;
+ impl_ac_declarator* ac_declarator_1;
+ impl_ac_constant_expression_option* ac_constant_expression_option_1;
+ impl_fnclass* fnclass_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_fndeclaration_FnAcDeclaration:public impl_fndeclaration{
+ public:
+ enum_operators prod_sel() const
+ { return sel_FnAcDeclaration; }
+ explicit impl_fndeclaration_FnAcDeclaration(ac_declaration_specifiers, ac_declarator, ac_declaration_list, ac_opt_base_init_list, Ctext, ID, fnclass);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ fndeclaration rewrite( rview );
+ impl_ac_declaration_specifiers* ac_declaration_specifiers_1;
+ impl_ac_declarator* ac_declarator_1;
+ impl_ac_declaration_list* ac_declaration_list_1;
+ impl_ac_opt_base_init_list* ac_opt_base_init_list_1;
+ impl_Ctext* Ctext_1;
+ impl_ID* ID_1;
+ impl_fnclass* fnclass_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_fnclass: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ fnclass rewrite(rview) =0;
+ };
+ class impl_fnclass_ConvOperatorFn:public impl_fnclass{
+ public:
+ enum_operators prod_sel() const
+ { return sel_ConvOperatorFn; }
+ explicit impl_fnclass_ConvOperatorFn();
+
+ fnclass rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_fnclass_DestructorFn:public impl_fnclass{
+ public:
+ enum_operators prod_sel() const
+ { return sel_DestructorFn; }
+ explicit impl_fnclass_DestructorFn();
+
+ fnclass rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_fnclass_ConstructorFn:public impl_fnclass{
+ public:
+ enum_operators prod_sel() const
+ { return sel_ConstructorFn; }
+ explicit impl_fnclass_ConstructorFn();
+
+ fnclass rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_fnclass_MemberFn:public impl_fnclass{
+ public:
+ enum_operators prod_sel() const
+ { return sel_MemberFn; }
+ explicit impl_fnclass_MemberFn();
+
+ fnclass rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_fnclass_StaticFn:public impl_fnclass{
+ public:
+ enum_operators prod_sel() const
+ { return sel_StaticFn; }
+ explicit impl_fnclass_StaticFn(casestring);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ fnclass rewrite( rview );
+ impl_casestring* casestring_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_fnclass_GlobalFn:public impl_fnclass{
+ public:
+ enum_operators prod_sel() const
+ { return sel_GlobalFn; }
+ explicit impl_fnclass_GlobalFn();
+
+ fnclass rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_Ctext: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ int line;
+ casestring file;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_NilCtext: sel_ConsCtext;
+ }
+ explicit impl_Ctext(Ctext_elem = 0, Ctext = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend Ctext concat(c_Ctext, c_Ctext);
+ Ctext reverse() const;
+ Ctext rewrite(rview);
+ Ctext_elem last() const;
+ Ctext append(Ctext_elem);
+ Ctext map(Ctext_elem (*)(Ctext_elem));
+ Ctext filter( bool (*)(Ctext_elem));
+ Ctext merge( Ctext, Ctext_elem (*)(Ctext_elem, Ctext_elem));
+ Ctext_elem reduce( Ctext_elem, Ctext_elem (*)(Ctext_elem, Ctext_elem));
+ bool is_nil() const;
+ Ctext_elem Ctext_elem_1;
+ Ctext Ctext_1;
+ private:
+ impl_Ctext* nil_rewrite(rview);
+ impl_Ctext* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_Ctext_elem: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ int line;
+ casestring file;
+ Ctext_elem rewrite(rview) =0;
+ };
+ class impl_Ctext_elem_CTextWithexpression:public impl_Ctext_elem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_CTextWithexpression; }
+ explicit impl_Ctext_elem_CTextWithexpression(withexpressions, withcases, contextinfo);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ Ctext_elem rewrite( rview );
+ impl_withexpressions* withexpressions_1;
+ impl_withcases* withcases_1;
+ impl_contextinfo* contextinfo_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_Ctext_elem_CTextForeachexpression:public impl_Ctext_elem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_CTextForeachexpression; }
+ explicit impl_Ctext_elem_CTextForeachexpression(patternchain, idCexpressions, withexpressions, Ctext, foreach_after);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ Ctext_elem rewrite( rview );
+ impl_patternchain* patternchain_1;
+ impl_idCexpressions* idCexpressions_1;
+ impl_withexpressions* withexpressions_1;
+ impl_Ctext* Ctext_1;
+ impl_foreach_after* foreach_after_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_Ctext_elem_CTextCbody:public impl_Ctext_elem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_CTextCbody; }
+ explicit impl_Ctext_elem_CTextCbody(Ctext);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ Ctext_elem rewrite( rview );
+ impl_Ctext* Ctext_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_Ctext_elem_CTextCexpressionSQ:public impl_Ctext_elem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_CTextCexpressionSQ; }
+ explicit impl_Ctext_elem_CTextCexpressionSQ(CexpressionSQ);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ Ctext_elem rewrite( rview );
+ impl_CexpressionSQ* CexpressionSQ_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_Ctext_elem_CTextCexpressionDQ:public impl_Ctext_elem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_CTextCexpressionDQ; }
+ explicit impl_Ctext_elem_CTextCexpressionDQ(CexpressionDQ);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ Ctext_elem rewrite( rview );
+ impl_CexpressionDQ* CexpressionDQ_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_Ctext_elem_CTextNl:public impl_Ctext_elem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_CTextNl; }
+ explicit impl_Ctext_elem_CTextNl(integer);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ Ctext_elem rewrite( rview );
+ impl_integer* integer_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_Ctext_elem_CTextDollarVar:public impl_Ctext_elem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_CTextDollarVar; }
+ explicit impl_Ctext_elem_CTextDollarVar(INT);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ Ctext_elem rewrite( rview );
+ impl_INT* INT_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_Ctext_elem_CTextLine:public impl_Ctext_elem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_CTextLine; }
+ explicit impl_Ctext_elem_CTextLine(casestring);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ Ctext_elem rewrite( rview );
+ impl_casestring* casestring_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_foreach_after: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ int line;
+ casestring file;
+ foreach_after rewrite(rview) =0;
+ };
+ class impl_foreach_after_ForeachAfter:public impl_foreach_after{
+ public:
+ enum_operators prod_sel() const
+ { return sel_ForeachAfter; }
+ explicit impl_foreach_after_ForeachAfter(patternchain, idCexpressions, withexpressions, Ctext);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ foreach_after rewrite( rview );
+ impl_patternchain* patternchain_1;
+ impl_idCexpressions* idCexpressions_1;
+ impl_withexpressions* withexpressions_1;
+ impl_Ctext* Ctext_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_foreach_after_NoForeachAfter:public impl_foreach_after{
+ public:
+ enum_operators prod_sel() const
+ { return sel_NoForeachAfter; }
+ explicit impl_foreach_after_NoForeachAfter();
+
+ foreach_after rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_contextinfo: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ contextinfo rewrite(rview) =0;
+ };
+ class impl_contextinfo_NotInForeachContext:public impl_contextinfo{
+ public:
+ enum_operators prod_sel() const
+ { return sel_NotInForeachContext; }
+ explicit impl_contextinfo_NotInForeachContext();
+
+ contextinfo rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_contextinfo_InForeachContext:public impl_contextinfo{
+ public:
+ enum_operators prod_sel() const
+ { return sel_InForeachContext; }
+ explicit impl_contextinfo_InForeachContext(patternchain);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ contextinfo rewrite( rview );
+ impl_patternchain* patternchain_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_withexpressions: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ phylumnames type;
+ int line;
+ casestring file;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilwithexpressions: sel_Conswithexpressions;
+ }
+ explicit impl_withexpressions(withexpression = 0, withexpressions = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend withexpressions concat(c_withexpressions, c_withexpressions);
+ withexpressions reverse() const;
+ withexpressions rewrite(rview);
+ withexpression last() const;
+ withexpressions append(withexpression);
+ withexpressions map(withexpression (*)(withexpression));
+ withexpressions filter( bool (*)(withexpression));
+ withexpressions merge( withexpressions, withexpression (*)(withexpression, withexpression));
+ withexpression reduce( withexpression, withexpression (*)(withexpression, withexpression));
+ bool is_nil() const;
+ withexpression withexpression_1;
+ withexpressions withexpressions_1;
+ private:
+ impl_withexpressions* nil_rewrite(rview);
+ impl_withexpressions* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_withexpression: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ID type;
+ int line;
+ casestring file;
+ withexpression rewrite(rview) =0;
+ };
+ class impl_withexpression_WECexpression:public impl_withexpression{
+ public:
+ enum_operators prod_sel() const
+ { return sel_WECexpression; }
+ explicit impl_withexpression_WECexpression(Cexpression);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ withexpression rewrite( rview );
+ impl_Cexpression* Cexpression_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_withexpression_WEVariable:public impl_withexpression{
+ public:
+ enum_operators prod_sel() const
+ { return sel_WEVariable; }
+ explicit impl_withexpression_WEVariable(ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ withexpression rewrite( rview );
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_withcases: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ withcasesinfo wcinfo;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilwithcases: sel_Conswithcases;
+ }
+ explicit impl_withcases(withcase = 0, withcases = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend withcases concat(c_withcases, c_withcases);
+ withcases reverse() const;
+ withcases rewrite(rview);
+ withcase last() const;
+ withcases append(withcase);
+ withcases map(withcase (*)(withcase));
+ withcases filter( bool (*)(withcase));
+ withcases merge( withcases, withcase (*)(withcase, withcase));
+ withcase reduce( withcase, withcase (*)(withcase, withcase));
+ bool is_nil() const;
+ withcase withcase_1;
+ withcases withcases_1;
+ private:
+ impl_withcases* nil_rewrite(rview);
+ impl_withcases* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_withcase: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ withcasesinfo wcinfo;
+ withcase rewrite(rview) =0;
+ };
+ class impl_withcase_Withcase:public impl_withcase{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Withcase; }
+ explicit impl_withcase_Withcase(patternchains, Ctext);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ withcase rewrite( rview );
+ impl_patternchains* patternchains_1;
+ impl_Ctext* Ctext_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_unparsedeclarations: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilunparsedeclarations: sel_Consunparsedeclarations;
+ }
+ explicit impl_unparsedeclarations(unparsedeclaration = 0, unparsedeclarations = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend unparsedeclarations concat(c_unparsedeclarations, c_unparsedeclarations);
+ unparsedeclarations reverse() const;
+ unparsedeclarations rewrite(rview);
+ unparsedeclaration last() const;
+ unparsedeclarations append(unparsedeclaration);
+ unparsedeclarations map(unparsedeclaration (*)(unparsedeclaration));
+ unparsedeclarations filter( bool (*)(unparsedeclaration));
+ unparsedeclarations merge( unparsedeclarations, unparsedeclaration (*)(unparsedeclaration, unparsedeclaration));
+ unparsedeclaration reduce( unparsedeclaration, unparsedeclaration (*)(unparsedeclaration, unparsedeclaration));
+ bool is_nil() const;
+ unparsedeclaration unparsedeclaration_1;
+ unparsedeclarations unparsedeclarations_1;
+ private:
+ impl_unparsedeclarations* nil_rewrite(rview);
+ impl_unparsedeclarations* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_unparsedeclaration: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ patternrepresentations patternreps;
+ unparsedeclaration rewrite(rview) =0;
+ };
+ class impl_unparsedeclaration_UnparseDeclaration:public impl_unparsedeclaration{
+ public:
+ enum_operators prod_sel() const
+ { return sel_UnparseDeclaration; }
+ explicit impl_unparsedeclaration_UnparseDeclaration(outmostpatterns, unparseclauses);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ unparsedeclaration rewrite( rview );
+ impl_outmostpatterns* outmostpatterns_1;
+ impl_unparseclauses* unparseclauses_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_unparseclauses: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilunparseclauses: sel_Consunparseclauses;
+ }
+ explicit impl_unparseclauses(unparseclause = 0, unparseclauses = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend unparseclauses concat(c_unparseclauses, c_unparseclauses);
+ unparseclauses reverse() const;
+ unparseclauses rewrite(rview);
+ unparseclause last() const;
+ unparseclauses append(unparseclause);
+ unparseclauses map(unparseclause (*)(unparseclause));
+ unparseclauses filter( bool (*)(unparseclause));
+ unparseclauses merge( unparseclauses, unparseclause (*)(unparseclause, unparseclause));
+ unparseclause reduce( unparseclause, unparseclause (*)(unparseclause, unparseclause));
+ bool is_nil() const;
+ unparseclause unparseclause_1;
+ unparseclauses unparseclauses_1;
+ private:
+ impl_unparseclauses* nil_rewrite(rview);
+ impl_unparseclauses* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_unparseclause: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ unparseclause rewrite(rview) =0;
+ };
+ class impl_unparseclause_UnparseClause:public impl_unparseclause{
+ public:
+ enum_operators prod_sel() const
+ { return sel_UnparseClause; }
+ explicit impl_unparseclause_UnparseClause(viewnames, unparseitems);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ unparseclause rewrite( rview );
+ impl_viewnames* viewnames_1;
+ impl_unparseitems* unparseitems_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_viewnames: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ bool is_extern;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilviewnames: sel_Consviewnames;
+ }
+ explicit impl_viewnames(ID = 0, viewnames = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend viewnames concat(c_viewnames, c_viewnames);
+ viewnames reverse() const;
+ viewnames rewrite(rview);
+ ID last() const;
+ viewnames append(ID);
+ viewnames map(ID (*)(ID));
+ viewnames filter( bool (*)(ID));
+ viewnames merge( viewnames, ID (*)(ID, ID));
+ ID reduce( ID, ID (*)(ID, ID));
+ bool is_nil() const;
+ ID ID_1;
+ viewnames viewnames_1;
+ private:
+ impl_viewnames* nil_rewrite(rview);
+ impl_viewnames* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_unparseitems: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilunparseitems: sel_Consunparseitems;
+ }
+ explicit impl_unparseitems(unparseitem = 0, unparseitems = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend unparseitems concat(c_unparseitems, c_unparseitems);
+ unparseitems reverse() const;
+ unparseitems rewrite(rview);
+ unparseitem last() const;
+ unparseitems append(unparseitem);
+ unparseitems map(unparseitem (*)(unparseitem));
+ unparseitems filter( bool (*)(unparseitem));
+ unparseitems merge( unparseitems, unparseitem (*)(unparseitem, unparseitem));
+ unparseitem reduce( unparseitem, unparseitem (*)(unparseitem, unparseitem));
+ bool is_nil() const;
+ unparseitem unparseitem_1;
+ unparseitems unparseitems_1;
+ private:
+ impl_unparseitems* nil_rewrite(rview);
+ impl_unparseitems* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_unparseitem: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ int text_nr;
+ unparseitem rewrite(rview) =0;
+ };
+ class impl_unparseitem_UViewVarDecl:public impl_unparseitem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_UViewVarDecl; }
+ explicit impl_unparseitem_UViewVarDecl(ID, ID, Cexpression);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ unparseitem rewrite( rview );
+ impl_ID* ID_1;
+ impl_ID* ID_2;
+ impl_Cexpression* Cexpression_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_unparseitem_UnpBody:public impl_unparseitem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_UnpBody; }
+ explicit impl_unparseitem_UnpBody(languageoption, unparseitems);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ unparseitem rewrite( rview );
+ impl_languageoption* languageoption_1;
+ impl_unparseitems* unparseitems_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_unparseitem_UnpCtext:public impl_unparseitem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_UnpCtext; }
+ explicit impl_unparseitem_UnpCtext(languageoption, Ctext);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ unparseitem rewrite( rview );
+ impl_languageoption* languageoption_1;
+ impl_Ctext* Ctext_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_unparseitem_UnpSubexpr:public impl_unparseitem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_UnpSubexpr; }
+ explicit impl_unparseitem_UnpSubexpr(languageoption, unpsubterm, viewnameoption);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ unparseitem rewrite( rview );
+ impl_languageoption* languageoption_1;
+ impl_unpsubterm* unpsubterm_1;
+ impl_viewnameoption* viewnameoption_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_unparseitem_UnpStr:public impl_unparseitem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_UnpStr; }
+ explicit impl_unparseitem_UnpStr(languageoption, CexpressionDQ, viewnameoption);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ unparseitem rewrite( rview );
+ impl_languageoption* languageoption_1;
+ impl_CexpressionDQ* CexpressionDQ_1;
+ impl_viewnameoption* viewnameoption_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_unpsubterm: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ unpsubterm rewrite(rview) =0;
+ };
+ class impl_unpsubterm_UnpCastedVariable:public impl_unpsubterm{
+ public:
+ enum_operators prod_sel() const
+ { return sel_UnpCastedVariable; }
+ explicit impl_unpsubterm_UnpCastedVariable(ID, ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ unpsubterm rewrite( rview );
+ impl_ID* ID_1;
+ impl_ID* ID_2;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_unpsubterm_UnpDollarvarAttr:public impl_unpsubterm{
+ public:
+ enum_operators prod_sel() const
+ { return sel_UnpDollarvarAttr; }
+ explicit impl_unpsubterm_UnpDollarvarAttr(INT, unpattributes);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ unpsubterm rewrite( rview );
+ impl_INT* INT_1;
+ impl_unpattributes* unpattributes_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_unpsubterm_UnpSubAttr:public impl_unpsubterm{
+ public:
+ enum_operators prod_sel() const
+ { return sel_UnpSubAttr; }
+ explicit impl_unpsubterm_UnpSubAttr(ID, unpattributes);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ unpsubterm rewrite( rview );
+ impl_ID* ID_1;
+ impl_unpattributes* unpattributes_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_unpsubterm_UnpDollarvarTerm:public impl_unpsubterm{
+ public:
+ enum_operators prod_sel() const
+ { return sel_UnpDollarvarTerm; }
+ explicit impl_unpsubterm_UnpDollarvarTerm(INT);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ unpsubterm rewrite( rview );
+ impl_INT* INT_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_unpsubterm_UnpSubTerm:public impl_unpsubterm{
+ public:
+ enum_operators prod_sel() const
+ { return sel_UnpSubTerm; }
+ explicit impl_unpsubterm_UnpSubTerm(ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ unpsubterm rewrite( rview );
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_unpattributes: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilunpattributes: sel_Consunpattributes;
+ }
+ explicit impl_unpattributes(ID = 0, unpattributes = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend unpattributes concat(c_unpattributes, c_unpattributes);
+ unpattributes reverse() const;
+ unpattributes rewrite(rview);
+ ID last() const;
+ unpattributes append(ID);
+ unpattributes map(ID (*)(ID));
+ unpattributes filter( bool (*)(ID));
+ unpattributes merge( unpattributes, ID (*)(ID, ID));
+ ID reduce( ID, ID (*)(ID, ID));
+ bool is_nil() const;
+ ID ID_1;
+ unpattributes unpattributes_1;
+ private:
+ impl_unpattributes* nil_rewrite(rview);
+ impl_unpattributes* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_viewnameoption: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ viewnameoption rewrite(rview) =0;
+ };
+ class impl_viewnameoption_YesViewname:public impl_viewnameoption{
+ public:
+ enum_operators prod_sel() const
+ { return sel_YesViewname; }
+ explicit impl_viewnameoption_YesViewname(ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ viewnameoption rewrite( rview );
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_viewnameoption_NoViewname:public impl_viewnameoption{
+ public:
+ enum_operators prod_sel() const
+ { return sel_NoViewname; }
+ explicit impl_viewnameoption_NoViewname();
+
+ viewnameoption rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_languageoption: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ languageoption rewrite(rview) =0;
+ };
+ class impl_languageoption_LanguageList:public impl_languageoption{
+ public:
+ enum_operators prod_sel() const
+ { return sel_LanguageList; }
+ explicit impl_languageoption_LanguageList(languagenames);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ languageoption rewrite( rview );
+ impl_languagenames* languagenames_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_languageoption_NoLanguagename:public impl_languageoption{
+ public:
+ enum_operators prod_sel() const
+ { return sel_NoLanguagename; }
+ explicit impl_languageoption_NoLanguagename();
+
+ languageoption rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_languagenames: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nillanguagenames: sel_Conslanguagenames;
+ }
+ explicit impl_languagenames(ID = 0, languagenames = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend languagenames concat(c_languagenames, c_languagenames);
+ languagenames reverse() const;
+ languagenames rewrite(rview);
+ ID last() const;
+ languagenames append(ID);
+ languagenames map(ID (*)(ID));
+ languagenames filter( bool (*)(ID));
+ languagenames merge( languagenames, ID (*)(ID, ID));
+ ID reduce( ID, ID (*)(ID, ID));
+ bool is_nil() const;
+ ID ID_1;
+ languagenames languagenames_1;
+ private:
+ impl_languagenames* nil_rewrite(rview);
+ impl_languagenames* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_fileline: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ casestring file;
+ int line;
+ fileline rewrite(rview) =0;
+ };
+ class impl_fileline_PosNoFileLine:public impl_fileline{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PosNoFileLine; }
+ explicit impl_fileline_PosNoFileLine();
+
+ fileline rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_fileline_NoFileLine:public impl_fileline{
+ public:
+ enum_operators prod_sel() const
+ { return sel_NoFileLine; }
+ explicit impl_fileline_NoFileLine();
+
+ fileline rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_fileline_FileLine:public impl_fileline{
+ public:
+ enum_operators prod_sel() const
+ { return sel_FileLine; }
+
+ fileline rewrite( rview );
+ impl_fileline_FileLine(casestring _file=0, int _line=0);
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_scopetypefilelinestack: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilscopetypefilelinestack: sel_Consscopetypefilelinestack;
+ }
+ explicit impl_scopetypefilelinestack(scopetypefileline = 0, scopetypefilelinestack = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend scopetypefilelinestack concat(c_scopetypefilelinestack, c_scopetypefilelinestack);
+ scopetypefilelinestack reverse() const;
+ scopetypefilelinestack rewrite(rview);
+ scopetypefileline last() const;
+ scopetypefilelinestack append(scopetypefileline);
+ scopetypefilelinestack map(scopetypefileline (*)(scopetypefileline));
+ scopetypefilelinestack filter( bool (*)(scopetypefileline));
+ scopetypefilelinestack merge( scopetypefilelinestack, scopetypefileline (*)(scopetypefileline, scopetypefileline));
+ scopetypefileline reduce( scopetypefileline, scopetypefileline (*)(scopetypefileline, scopetypefileline));
+ bool is_nil() const;
+ scopetypefileline scopetypefileline_1;
+ scopetypefilelinestack scopetypefilelinestack_1;
+ private:
+ impl_scopetypefilelinestack* nil_rewrite(rview);
+ impl_scopetypefilelinestack* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_scopetypefileline: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ scopetypefileline rewrite(rview) =0;
+ };
+ class impl_scopetypefileline_ScopeTypeFileLine:public impl_scopetypefileline{
+ public:
+ enum_operators prod_sel() const
+ { return sel_ScopeTypeFileLine; }
+ explicit impl_scopetypefileline_ScopeTypeFileLine(integer, IDtype, casestring, integer);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ scopetypefileline rewrite( rview );
+ impl_integer* integer_1;
+ impl_IDtype* IDtype_1;
+ impl_casestring* casestring_1;
+ impl_integer* integer_2;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_IDtype: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ IDtype rewrite(rview) =0;
+ };
+ class impl_IDtype_ITLanguageName:public impl_IDtype{
+ public:
+ enum_operators prod_sel() const
+ { return sel_ITLanguageName; }
+ explicit impl_IDtype_ITLanguageName(integer);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ IDtype rewrite( rview );
+ impl_integer* integer_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_IDtype_ITPatternVariable:public impl_IDtype{
+ public:
+ enum_operators prod_sel() const
+ { return sel_ITPatternVariable; }
+ explicit impl_IDtype_ITPatternVariable(ID, integer);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ IDtype rewrite( rview );
+ impl_ID* ID_1;
+ impl_integer* integer_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_IDtype_ITUserFunction:public impl_IDtype{
+ public:
+ enum_operators prod_sel() const
+ { return sel_ITUserFunction; }
+ explicit impl_IDtype_ITUserFunction(fnclass);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ IDtype rewrite( rview );
+ impl_fnclass* fnclass_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_IDtype_ITUserRView:public impl_IDtype{
+ public:
+ enum_operators prod_sel() const
+ { return sel_ITUserRView; }
+ explicit impl_IDtype_ITUserRView();
+
+ IDtype rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_IDtype_ITPredefinedRView:public impl_IDtype{
+ public:
+ enum_operators prod_sel() const
+ { return sel_ITPredefinedRView; }
+ explicit impl_IDtype_ITPredefinedRView();
+
+ IDtype rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_IDtype_ITUViewVar:public impl_IDtype{
+ public:
+ enum_operators prod_sel() const
+ { return sel_ITUViewVar; }
+ explicit impl_IDtype_ITUViewVar();
+
+ IDtype rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_IDtype_ITUserUView:public impl_IDtype{
+ public:
+ enum_operators prod_sel() const
+ { return sel_ITUserUView; }
+ explicit impl_IDtype_ITUserUView();
+
+ IDtype rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_IDtype_ITPredefinedUView:public impl_IDtype{
+ public:
+ enum_operators prod_sel() const
+ { return sel_ITPredefinedUView; }
+ explicit impl_IDtype_ITPredefinedUView();
+
+ IDtype rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_IDtype_ITStorageClass:public impl_IDtype{
+ public:
+ enum_operators prod_sel() const
+ { return sel_ITStorageClass; }
+ explicit impl_IDtype_ITStorageClass();
+
+ IDtype rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_IDtype_ITPredefinedStorageClass:public impl_IDtype{
+ public:
+ enum_operators prod_sel() const
+ { return sel_ITPredefinedStorageClass; }
+ explicit impl_IDtype_ITPredefinedStorageClass();
+
+ IDtype rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_IDtype_ITUserOperator:public impl_IDtype{
+ public:
+ enum_operators prod_sel() const
+ { return sel_ITUserOperator; }
+ explicit impl_IDtype_ITUserOperator(alternative, ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ IDtype rewrite( rview );
+ impl_alternative* alternative_1;
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_IDtype_ITPredefinedOperator:public impl_IDtype{
+ public:
+ enum_operators prod_sel() const
+ { return sel_ITPredefinedOperator; }
+ explicit impl_IDtype_ITPredefinedOperator(alternative, ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ IDtype rewrite( rview );
+ impl_alternative* alternative_1;
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_IDtype_ITUserPhylum:public impl_IDtype{
+ public:
+ enum_operators prod_sel() const
+ { return sel_ITUserPhylum; }
+ explicit impl_IDtype_ITUserPhylum(phylumdeclaration);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ IDtype rewrite( rview );
+ impl_phylumdeclaration* phylumdeclaration_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_IDtype_ITPredefinedPhylum:public impl_IDtype{
+ public:
+ enum_operators prod_sel() const
+ { return sel_ITPredefinedPhylum; }
+ explicit impl_IDtype_ITPredefinedPhylum(phylumdeclaration);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ IDtype rewrite( rview );
+ impl_phylumdeclaration* phylumdeclaration_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_IDtype_ITUnknown:public impl_IDtype{
+ public:
+ enum_operators prod_sel() const
+ { return sel_ITUnknown; }
+ explicit impl_IDtype_ITUnknown();
+
+ IDtype rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_operators: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Niloperators: sel_Consoperators;
+ }
+ explicit impl_operators(ID = 0, operators = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend operators concat(c_operators, c_operators);
+ operators reverse() const;
+ operators rewrite(rview);
+ ID last() const;
+ operators append(ID);
+ operators map(ID (*)(ID));
+ operators filter( bool (*)(ID));
+ operators merge( operators, ID (*)(ID, ID));
+ ID reduce( ID, ID (*)(ID, ID));
+ bool is_nil() const;
+ ID ID_1;
+ operators operators_1;
+ private:
+ impl_operators* nil_rewrite(rview);
+ impl_operators* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_phyla: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilphyla: sel_Consphyla;
+ }
+ explicit impl_phyla(ID = 0, phyla = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend phyla concat(c_phyla, c_phyla);
+ phyla reverse() const;
+ phyla rewrite(rview);
+ ID last() const;
+ phyla append(ID);
+ phyla map(ID (*)(ID));
+ phyla filter( bool (*)(ID));
+ phyla merge( phyla, ID (*)(ID, ID));
+ ID reduce( ID, ID (*)(ID, ID));
+ bool is_nil() const;
+ ID ID_1;
+ phyla phyla_1;
+ private:
+ impl_phyla* nil_rewrite(rview);
+ impl_phyla* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_variables: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilvariables: sel_Consvariables;
+ }
+ explicit impl_variables(ID = 0, variables = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend variables concat(c_variables, c_variables);
+ variables reverse() const;
+ variables rewrite(rview);
+ ID last() const;
+ variables append(ID);
+ variables map(ID (*)(ID));
+ variables filter( bool (*)(ID));
+ variables merge( variables, ID (*)(ID, ID));
+ ID reduce( ID, ID (*)(ID, ID));
+ bool is_nil() const;
+ ID ID_1;
+ variables variables_1;
+ private:
+ impl_variables* nil_rewrite(rview);
+ impl_variables* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_dollarvarstatus: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ dollarvarstatus rewrite(rview) =0;
+ };
+ class impl_dollarvarstatus_DVDisallowed:public impl_dollarvarstatus{
+ public:
+ enum_operators prod_sel() const
+ { return sel_DVDisallowed; }
+ explicit impl_dollarvarstatus_DVDisallowed();
+
+ dollarvarstatus rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_dollarvarstatus_DVAllowed:public impl_dollarvarstatus{
+ public:
+ enum_operators prod_sel() const
+ { return sel_DVAllowed; }
+ explicit impl_dollarvarstatus_DVAllowed();
+
+ dollarvarstatus rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_tribool: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ tribool rewrite(rview) =0;
+ };
+ class impl_tribool_Bigger:public impl_tribool{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Bigger; }
+ explicit impl_tribool_Bigger();
+
+ tribool rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_tribool_Smaller:public impl_tribool{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Smaller; }
+ explicit impl_tribool_Smaller();
+
+ tribool rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_tribool_Equal:public impl_tribool{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Equal; }
+ explicit impl_tribool_Equal();
+
+ tribool rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_patternrepresentations: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilpatternrepresentations: sel_Conspatternrepresentations;
+ }
+ explicit impl_patternrepresentations(patternrepresentation = 0, patternrepresentations = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend patternrepresentations concat(c_patternrepresentations, c_patternrepresentations);
+ patternrepresentations reverse() const;
+ patternrepresentations rewrite(rview);
+ patternrepresentation last() const;
+ patternrepresentations append(patternrepresentation);
+ patternrepresentations map(patternrepresentation (*)(patternrepresentation));
+ patternrepresentations filter( bool (*)(patternrepresentation));
+ patternrepresentations merge( patternrepresentations, patternrepresentation (*)(patternrepresentation, patternrepresentation));
+ patternrepresentation reduce( patternrepresentation, patternrepresentation (*)(patternrepresentation, patternrepresentation));
+ bool is_nil() const;
+ patternrepresentation patternrepresentation_1;
+ patternrepresentations patternrepresentations_1;
+ private:
+ impl_patternrepresentations* nil_rewrite(rview);
+ impl_patternrepresentations* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_patternrepresentation: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilpatternrepresentation: sel_Conspatternrepresentation;
+ }
+ explicit impl_patternrepresentation(elem_patternrepresentation = 0, patternrepresentation = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend patternrepresentation concat(c_patternrepresentation, c_patternrepresentation);
+ patternrepresentation reverse() const;
+ patternrepresentation rewrite(rview);
+ elem_patternrepresentation last() const;
+ patternrepresentation append(elem_patternrepresentation);
+ patternrepresentation map(elem_patternrepresentation (*)(elem_patternrepresentation));
+ patternrepresentation filter( bool (*)(elem_patternrepresentation));
+ patternrepresentation merge( patternrepresentation, elem_patternrepresentation (*)(elem_patternrepresentation, elem_patternrepresentation));
+ elem_patternrepresentation reduce( elem_patternrepresentation, elem_patternrepresentation (*)(elem_patternrepresentation, elem_patternrepresentation));
+ bool is_nil() const;
+ elem_patternrepresentation elem_patternrepresentation_1;
+ patternrepresentation patternrepresentation_1;
+ private:
+ impl_patternrepresentation* nil_rewrite(rview);
+ impl_patternrepresentation* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_elem_patternrepresentation: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ int line;
+ casestring file;
+ ID type;
+ elem_patternrepresentation rewrite(rview) =0;
+ };
+ class impl_elem_patternrepresentation_PRIntLiteral:public impl_elem_patternrepresentation{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PRIntLiteral; }
+ explicit impl_elem_patternrepresentation_PRIntLiteral(path, INT);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ elem_patternrepresentation rewrite( rview );
+ impl_path* path_1;
+ impl_INT* INT_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_elem_patternrepresentation_PRStringLiteral:public impl_elem_patternrepresentation{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PRStringLiteral; }
+ explicit impl_elem_patternrepresentation_PRStringLiteral(path, CexpressionDQ);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ elem_patternrepresentation rewrite( rview );
+ impl_path* path_1;
+ impl_CexpressionDQ* CexpressionDQ_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_elem_patternrepresentation_PRDefault:public impl_elem_patternrepresentation{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PRDefault; }
+ explicit impl_elem_patternrepresentation_PRDefault();
+
+ elem_patternrepresentation rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_elem_patternrepresentation_PRWildcard:public impl_elem_patternrepresentation{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PRWildcard; }
+ explicit impl_elem_patternrepresentation_PRWildcard(path);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ elem_patternrepresentation rewrite( rview );
+ impl_path* path_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_elem_patternrepresentation_PRNonLeafBinding:public impl_elem_patternrepresentation{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PRNonLeafBinding; }
+ explicit impl_elem_patternrepresentation_PRNonLeafBinding(path, ID, patternrepresentation);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ elem_patternrepresentation rewrite( rview );
+ impl_path* path_1;
+ impl_ID* ID_1;
+ impl_patternrepresentation* patternrepresentation_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_elem_patternrepresentation_PRUserPredicate:public impl_elem_patternrepresentation{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PRUserPredicate; }
+ explicit impl_elem_patternrepresentation_PRUserPredicate(Cexpression);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ elem_patternrepresentation rewrite( rview );
+ impl_Cexpression* Cexpression_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_elem_patternrepresentation_PROperPredicate:public impl_elem_patternrepresentation{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PROperPredicate; }
+ explicit impl_elem_patternrepresentation_PROperPredicate(path, ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ elem_patternrepresentation rewrite( rview );
+ impl_path* path_1;
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_elem_patternrepresentation_PRVarPredicate:public impl_elem_patternrepresentation{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PRVarPredicate; }
+ explicit impl_elem_patternrepresentation_PRVarPredicate(paths, ID, patternrepresentation);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ elem_patternrepresentation rewrite( rview );
+ impl_paths* paths_1;
+ impl_ID* ID_1;
+ impl_patternrepresentation* patternrepresentation_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_elem_patternrepresentation_PRBinding:public impl_elem_patternrepresentation{
+ public:
+ enum_operators prod_sel() const
+ { return sel_PRBinding; }
+ explicit impl_elem_patternrepresentation_PRBinding(path, ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ elem_patternrepresentation rewrite( rview );
+ impl_path* path_1;
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_path: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ ID op;
+ ID id;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilpath: sel_Conspath;
+ }
+ explicit impl_path(integer = 0, path = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend path concat(c_path, c_path);
+ path reverse() const;
+ path rewrite(rview);
+ integer last() const;
+ path append(integer);
+ path map(integer (*)(integer));
+ path filter( bool (*)(integer));
+ path merge( path, integer (*)(integer, integer));
+ integer reduce( integer, integer (*)(integer, integer));
+ bool is_nil() const;
+ integer integer_1;
+ path path_1;
+ private:
+ impl_path* nil_rewrite(rview);
+ impl_path* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_paths: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilpaths: sel_Conspaths;
+ }
+ explicit impl_paths(path = 0, paths = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend paths concat(c_paths, c_paths);
+ paths reverse() const;
+ paths rewrite(rview);
+ path last() const;
+ paths append(path);
+ paths map(path (*)(path));
+ paths filter( bool (*)(path));
+ paths merge( paths, path (*)(path, path));
+ path reduce( path, path (*)(path, path));
+ bool is_nil() const;
+ path path_1;
+ paths paths_1;
+ private:
+ impl_paths* nil_rewrite(rview);
+ impl_paths* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_argsnumbers: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilargsnumbers: sel_Consargsnumbers;
+ }
+ explicit impl_argsnumbers(integer = 0, argsnumbers = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend argsnumbers concat(c_argsnumbers, c_argsnumbers);
+ argsnumbers reverse() const;
+ argsnumbers rewrite(rview);
+ integer last() const;
+ argsnumbers append(integer);
+ argsnumbers map(integer (*)(integer));
+ argsnumbers filter( bool (*)(integer));
+ argsnumbers merge( argsnumbers, integer (*)(integer, integer));
+ integer reduce( integer, integer (*)(integer, integer));
+ bool is_nil() const;
+ integer integer_1;
+ argsnumbers argsnumbers_1;
+ private:
+ impl_argsnumbers* nil_rewrite(rview);
+ impl_argsnumbers* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_rewriterulesinfo: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilrewriterulesinfo: sel_Consrewriterulesinfo;
+ }
+ explicit impl_rewriterulesinfo(rewriteruleinfo = 0, rewriterulesinfo = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend rewriterulesinfo concat(c_rewriterulesinfo, c_rewriterulesinfo);
+ rewriterulesinfo reverse() const;
+ rewriterulesinfo rewrite(rview);
+ rewriteruleinfo last() const;
+ rewriterulesinfo append(rewriteruleinfo);
+ rewriterulesinfo map(rewriteruleinfo (*)(rewriteruleinfo));
+ rewriterulesinfo filter( bool (*)(rewriteruleinfo));
+ rewriterulesinfo merge( rewriterulesinfo, rewriteruleinfo (*)(rewriteruleinfo, rewriteruleinfo));
+ rewriteruleinfo reduce( rewriteruleinfo, rewriteruleinfo (*)(rewriteruleinfo, rewriteruleinfo));
+ bool is_nil() const;
+ rewriteruleinfo rewriteruleinfo_1;
+ rewriterulesinfo rewriterulesinfo_1;
+ private:
+ impl_rewriterulesinfo* nil_rewrite(rview);
+ impl_rewriterulesinfo* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_rewriteruleinfo: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ rewriteruleinfo rewrite(rview) =0;
+ };
+ class impl_rewriteruleinfo_Rewriteruleinfo:public impl_rewriteruleinfo{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Rewriteruleinfo; }
+ explicit impl_rewriteruleinfo_Rewriteruleinfo(patternrepresentation, patternrepresentation, rewriteclause);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ rewriteruleinfo rewrite( rview );
+ impl_patternrepresentation* patternrepresentation_1;
+ impl_patternrepresentation* patternrepresentation_2;
+ impl_rewriteclause* rewriteclause_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_withcasesinfo: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilwithcasesinfo: sel_Conswithcasesinfo;
+ }
+ explicit impl_withcasesinfo(withcaseinfo = 0, withcasesinfo = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend withcasesinfo concat(c_withcasesinfo, c_withcasesinfo);
+ withcasesinfo reverse() const;
+ withcasesinfo rewrite(rview);
+ withcaseinfo last() const;
+ withcasesinfo append(withcaseinfo);
+ withcasesinfo map(withcaseinfo (*)(withcaseinfo));
+ withcasesinfo filter( bool (*)(withcaseinfo));
+ withcasesinfo merge( withcasesinfo, withcaseinfo (*)(withcaseinfo, withcaseinfo));
+ withcaseinfo reduce( withcaseinfo, withcaseinfo (*)(withcaseinfo, withcaseinfo));
+ bool is_nil() const;
+ withcaseinfo withcaseinfo_1;
+ withcasesinfo withcasesinfo_1;
+ private:
+ impl_withcasesinfo* nil_rewrite(rview);
+ impl_withcasesinfo* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_withcaseinfo: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ withcaseinfo rewrite(rview) =0;
+ };
+ class impl_withcaseinfo_Withcaseinfo:public impl_withcaseinfo{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Withcaseinfo; }
+ explicit impl_withcaseinfo_Withcaseinfo(patternrepresentation, patternrepresentation, Ctext);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ withcaseinfo rewrite( rview );
+ impl_patternrepresentation* patternrepresentation_1;
+ impl_patternrepresentation* patternrepresentation_2;
+ impl_Ctext* Ctext_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_rewriteviewsinfo: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilrewriteviewsinfo: sel_Consrewriteviewsinfo;
+ }
+ explicit impl_rewriteviewsinfo(rewriteviewinfo = 0, rewriteviewsinfo = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend rewriteviewsinfo concat(c_rewriteviewsinfo, c_rewriteviewsinfo);
+ rewriteviewsinfo reverse() const;
+ rewriteviewsinfo rewrite(rview);
+ rewriteviewinfo last() const;
+ rewriteviewsinfo append(rewriteviewinfo);
+ rewriteviewsinfo map(rewriteviewinfo (*)(rewriteviewinfo));
+ rewriteviewsinfo filter( bool (*)(rewriteviewinfo));
+ rewriteviewsinfo merge( rewriteviewsinfo, rewriteviewinfo (*)(rewriteviewinfo, rewriteviewinfo));
+ rewriteviewinfo reduce( rewriteviewinfo, rewriteviewinfo (*)(rewriteviewinfo, rewriteviewinfo));
+ bool is_nil() const;
+ rewriteviewinfo rewriteviewinfo_1;
+ rewriteviewsinfo rewriteviewsinfo_1;
+ private:
+ impl_rewriteviewsinfo* nil_rewrite(rview);
+ impl_rewriteviewsinfo* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_rewriteviewinfo: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ rewriteviewinfo rewrite(rview) =0;
+ };
+ class impl_rewriteviewinfo_Rewriteviewinfo:public impl_rewriteviewinfo{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Rewriteviewinfo; }
+ explicit impl_rewriteviewinfo_Rewriteviewinfo(ID, rewriterulesinfo);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ rewriteviewinfo rewrite( rview );
+ impl_ID* ID_1;
+ impl_rewriterulesinfo* rewriterulesinfo_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_unparseviewsinfo: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilunparseviewsinfo: sel_Consunparseviewsinfo;
+ }
+ explicit impl_unparseviewsinfo(unparseviewinfo = 0, unparseviewsinfo = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend unparseviewsinfo concat(c_unparseviewsinfo, c_unparseviewsinfo);
+ unparseviewsinfo reverse() const;
+ unparseviewsinfo rewrite(rview);
+ unparseviewinfo last() const;
+ unparseviewsinfo append(unparseviewinfo);
+ unparseviewsinfo map(unparseviewinfo (*)(unparseviewinfo));
+ unparseviewsinfo filter( bool (*)(unparseviewinfo));
+ unparseviewsinfo merge( unparseviewsinfo, unparseviewinfo (*)(unparseviewinfo, unparseviewinfo));
+ unparseviewinfo reduce( unparseviewinfo, unparseviewinfo (*)(unparseviewinfo, unparseviewinfo));
+ bool is_nil() const;
+ unparseviewinfo unparseviewinfo_1;
+ unparseviewsinfo unparseviewsinfo_1;
+ private:
+ impl_unparseviewsinfo* nil_rewrite(rview);
+ impl_unparseviewsinfo* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_unparseviewinfo: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ unparseviewinfo rewrite(rview) =0;
+ };
+ class impl_unparseviewinfo_Unparseviewinfo:public impl_unparseviewinfo{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Unparseviewinfo; }
+ explicit impl_unparseviewinfo_Unparseviewinfo(ID, unparsedeclsinfo);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ unparseviewinfo rewrite( rview );
+ impl_ID* ID_1;
+ impl_unparsedeclsinfo* unparsedeclsinfo_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_unparsedeclsinfo: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilunparsedeclsinfo: sel_Consunparsedeclsinfo;
+ }
+ explicit impl_unparsedeclsinfo(unparsedeclinfo = 0, unparsedeclsinfo = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend unparsedeclsinfo concat(c_unparsedeclsinfo, c_unparsedeclsinfo);
+ unparsedeclsinfo reverse() const;
+ unparsedeclsinfo rewrite(rview);
+ unparsedeclinfo last() const;
+ unparsedeclsinfo append(unparsedeclinfo);
+ unparsedeclsinfo map(unparsedeclinfo (*)(unparsedeclinfo));
+ unparsedeclsinfo filter( bool (*)(unparsedeclinfo));
+ unparsedeclsinfo merge( unparsedeclsinfo, unparsedeclinfo (*)(unparsedeclinfo, unparsedeclinfo));
+ unparsedeclinfo reduce( unparsedeclinfo, unparsedeclinfo (*)(unparsedeclinfo, unparsedeclinfo));
+ bool is_nil() const;
+ unparsedeclinfo unparsedeclinfo_1;
+ unparsedeclsinfo unparsedeclsinfo_1;
+ private:
+ impl_unparsedeclsinfo* nil_rewrite(rview);
+ impl_unparsedeclsinfo* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_unparsedeclinfo: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ unparsedeclinfo rewrite(rview) =0;
+ };
+ class impl_unparsedeclinfo_Unparsedeclinfo:public impl_unparsedeclinfo{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Unparsedeclinfo; }
+ explicit impl_unparsedeclinfo_Unparsedeclinfo(patternrepresentation, patternrepresentation, unparseclause);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ unparsedeclinfo rewrite( rview );
+ impl_patternrepresentation* patternrepresentation_1;
+ impl_patternrepresentation* patternrepresentation_2;
+ impl_unparseclause* unparseclause_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_declaration: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ac_declaration rewrite(rview) =0;
+ };
+ class impl_ac_declaration_AcDeclaration:public impl_ac_declaration{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcDeclaration; }
+ explicit impl_ac_declaration_AcDeclaration(ac_declaration_specifiers, ac_init_declarator_list);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_declaration rewrite( rview );
+ impl_ac_declaration_specifiers* ac_declaration_specifiers_1;
+ impl_ac_init_declarator_list* ac_init_declarator_list_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_declaration_list: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilac_declaration_list: sel_Consac_declaration_list;
+ }
+ explicit impl_ac_declaration_list(ac_declaration = 0, ac_declaration_list = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend ac_declaration_list concat(c_ac_declaration_list, c_ac_declaration_list);
+ ac_declaration_list reverse() const;
+ ac_declaration_list rewrite(rview);
+ ac_declaration last() const;
+ ac_declaration_list append(ac_declaration);
+ ac_declaration_list map(ac_declaration (*)(ac_declaration));
+ ac_declaration_list filter( bool (*)(ac_declaration));
+ ac_declaration_list merge( ac_declaration_list, ac_declaration (*)(ac_declaration, ac_declaration));
+ ac_declaration reduce( ac_declaration, ac_declaration (*)(ac_declaration, ac_declaration));
+ bool is_nil() const;
+ ac_declaration ac_declaration_1;
+ ac_declaration_list ac_declaration_list_1;
+ private:
+ impl_ac_declaration_list* nil_rewrite(rview);
+ impl_ac_declaration_list* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_declaration_specifiers: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilac_declaration_specifiers: sel_Consac_declaration_specifiers;
+ }
+ explicit impl_ac_declaration_specifiers(ac_declaration_specifier = 0, ac_declaration_specifiers = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend ac_declaration_specifiers concat(c_ac_declaration_specifiers, c_ac_declaration_specifiers);
+ ac_declaration_specifiers reverse() const;
+ ac_declaration_specifiers rewrite(rview);
+ ac_declaration_specifier last() const;
+ ac_declaration_specifiers append(ac_declaration_specifier);
+ ac_declaration_specifiers map(ac_declaration_specifier (*)(ac_declaration_specifier));
+ ac_declaration_specifiers filter( bool (*)(ac_declaration_specifier));
+ ac_declaration_specifiers merge( ac_declaration_specifiers, ac_declaration_specifier (*)(ac_declaration_specifier, ac_declaration_specifier));
+ ac_declaration_specifier reduce( ac_declaration_specifier, ac_declaration_specifier (*)(ac_declaration_specifier, ac_declaration_specifier));
+ bool is_nil() const;
+ ac_declaration_specifier ac_declaration_specifier_1;
+ ac_declaration_specifiers ac_declaration_specifiers_1;
+ private:
+ impl_ac_declaration_specifiers* nil_rewrite(rview);
+ impl_ac_declaration_specifiers* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_declaration_specifier: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ac_declaration_specifier rewrite(rview) =0;
+ };
+ class impl_ac_declaration_specifier_AcDeclSpecTypeQual:public impl_ac_declaration_specifier{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcDeclSpecTypeQual; }
+ explicit impl_ac_declaration_specifier_AcDeclSpecTypeQual(ac_type_qualifier);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_declaration_specifier rewrite( rview );
+ impl_ac_type_qualifier* ac_type_qualifier_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_declaration_specifier_AcDeclSpecTypeSpec:public impl_ac_declaration_specifier{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcDeclSpecTypeSpec; }
+ explicit impl_ac_declaration_specifier_AcDeclSpecTypeSpec(ac_type_specifier);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_declaration_specifier rewrite( rview );
+ impl_ac_type_specifier* ac_type_specifier_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_declaration_specifier_AcDeclSpecStorageSpec:public impl_ac_declaration_specifier{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcDeclSpecStorageSpec; }
+ explicit impl_ac_declaration_specifier_AcDeclSpecStorageSpec(ac_storage_class_specifier);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_declaration_specifier rewrite( rview );
+ impl_ac_storage_class_specifier* ac_storage_class_specifier_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_storage_class_specifier: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ac_storage_class_specifier rewrite(rview) =0;
+ };
+ class impl_ac_storage_class_specifier_AcVirtual:public impl_ac_storage_class_specifier{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcVirtual; }
+ explicit impl_ac_storage_class_specifier_AcVirtual();
+
+ ac_storage_class_specifier rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_storage_class_specifier_AcTypedef:public impl_ac_storage_class_specifier{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcTypedef; }
+ explicit impl_ac_storage_class_specifier_AcTypedef();
+
+ ac_storage_class_specifier rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_storage_class_specifier_AcExtern:public impl_ac_storage_class_specifier{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcExtern; }
+ explicit impl_ac_storage_class_specifier_AcExtern();
+
+ ac_storage_class_specifier rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_storage_class_specifier_AcStatic:public impl_ac_storage_class_specifier{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcStatic; }
+ explicit impl_ac_storage_class_specifier_AcStatic();
+
+ ac_storage_class_specifier rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_storage_class_specifier_AcRegister:public impl_ac_storage_class_specifier{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcRegister; }
+ explicit impl_ac_storage_class_specifier_AcRegister();
+
+ ac_storage_class_specifier rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_storage_class_specifier_AcAuto:public impl_ac_storage_class_specifier{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcAuto; }
+ explicit impl_ac_storage_class_specifier_AcAuto();
+
+ ac_storage_class_specifier rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_type_specifier: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ac_type_specifier rewrite(rview) =0;
+ };
+ class impl_ac_type_specifier_AcTypeSpec:public impl_ac_type_specifier{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcTypeSpec; }
+ explicit impl_ac_type_specifier_AcTypeSpec(ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_type_specifier rewrite( rview );
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_type_qualifier: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ac_type_qualifier rewrite(rview) =0;
+ };
+ class impl_ac_type_qualifier_AcNoQualifier:public impl_ac_type_qualifier{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcNoQualifier; }
+ explicit impl_ac_type_qualifier_AcNoQualifier();
+
+ ac_type_qualifier rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_type_qualifier_AcUnsigned:public impl_ac_type_qualifier{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcUnsigned; }
+ explicit impl_ac_type_qualifier_AcUnsigned();
+
+ ac_type_qualifier rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_type_qualifier_AcVolatile:public impl_ac_type_qualifier{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcVolatile; }
+ explicit impl_ac_type_qualifier_AcVolatile();
+
+ ac_type_qualifier rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_type_qualifier_AcConst:public impl_ac_type_qualifier{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcConst; }
+ explicit impl_ac_type_qualifier_AcConst();
+
+ ac_type_qualifier rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_init_declarator_list: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilac_init_declarator_list: sel_Consac_init_declarator_list;
+ }
+ explicit impl_ac_init_declarator_list(ac_init_declarator = 0, ac_init_declarator_list = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend ac_init_declarator_list concat(c_ac_init_declarator_list, c_ac_init_declarator_list);
+ ac_init_declarator_list reverse() const;
+ ac_init_declarator_list rewrite(rview);
+ ac_init_declarator last() const;
+ ac_init_declarator_list append(ac_init_declarator);
+ ac_init_declarator_list map(ac_init_declarator (*)(ac_init_declarator));
+ ac_init_declarator_list filter( bool (*)(ac_init_declarator));
+ ac_init_declarator_list merge( ac_init_declarator_list, ac_init_declarator (*)(ac_init_declarator, ac_init_declarator));
+ ac_init_declarator reduce( ac_init_declarator, ac_init_declarator (*)(ac_init_declarator, ac_init_declarator));
+ bool is_nil() const;
+ ac_init_declarator ac_init_declarator_1;
+ ac_init_declarator_list ac_init_declarator_list_1;
+ private:
+ impl_ac_init_declarator_list* nil_rewrite(rview);
+ impl_ac_init_declarator_list* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_init_declarator: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ac_init_declarator rewrite(rview) =0;
+ };
+ class impl_ac_init_declarator_AcInitDecl:public impl_ac_init_declarator{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcInitDecl; }
+ explicit impl_ac_init_declarator_AcInitDecl(ac_declarator);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_init_declarator rewrite( rview );
+ impl_ac_declarator* ac_declarator_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_declarator: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ac_declarator rewrite(rview) =0;
+ };
+ class impl_ac_declarator_AcDeclarator:public impl_ac_declarator{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcDeclarator; }
+ explicit impl_ac_declarator_AcDeclarator(ac_pointer_option, ac_ref_option, ac_direct_declarator);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_declarator rewrite( rview );
+ impl_ac_pointer_option* ac_pointer_option_1;
+ impl_ac_ref_option* ac_ref_option_1;
+ impl_ac_direct_declarator* ac_direct_declarator_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_direct_declarator: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ac_direct_declarator rewrite(rview) =0;
+ };
+ class impl_ac_direct_declarator_AcOperatorDeclId:public impl_ac_direct_declarator{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcOperatorDeclId; }
+ explicit impl_ac_direct_declarator_AcOperatorDeclId(ac_operator_name);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_direct_declarator rewrite( rview );
+ impl_ac_operator_name* ac_operator_name_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_direct_declarator_AcConvOperatorDecl:public impl_ac_direct_declarator{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcConvOperatorDecl; }
+ explicit impl_ac_direct_declarator_AcConvOperatorDecl(ID, ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_direct_declarator rewrite( rview );
+ impl_ID* ID_1;
+ impl_ID* ID_2;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_direct_declarator_AcMemberDecl:public impl_ac_direct_declarator{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcMemberDecl; }
+ explicit impl_ac_direct_declarator_AcMemberDecl(ID, ID, ac_constant_expression_list);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_direct_declarator rewrite( rview );
+ impl_ID* ID_1;
+ impl_ID* ID_2;
+ impl_ac_constant_expression_list* ac_constant_expression_list_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_direct_declarator_AcQualifiedDeclProto:public impl_ac_direct_declarator{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcQualifiedDeclProto; }
+ explicit impl_ac_direct_declarator_AcQualifiedDeclProto(ac_class_qualifier_list, ac_direct_declarator, ac_parameter_type_list, ac_type_qualifier);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_direct_declarator rewrite( rview );
+ impl_ac_class_qualifier_list* ac_class_qualifier_list_1;
+ impl_ac_direct_declarator* ac_direct_declarator_1;
+ impl_ac_parameter_type_list* ac_parameter_type_list_1;
+ impl_ac_type_qualifier* ac_type_qualifier_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_direct_declarator_AcDirectDeclProto:public impl_ac_direct_declarator{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcDirectDeclProto; }
+ explicit impl_ac_direct_declarator_AcDirectDeclProto(ac_direct_declarator, ac_parameter_type_list);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_direct_declarator rewrite( rview );
+ impl_ac_direct_declarator* ac_direct_declarator_1;
+ impl_ac_parameter_type_list* ac_parameter_type_list_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_direct_declarator_AcDirectDeclArray:public impl_ac_direct_declarator{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcDirectDeclArray; }
+ explicit impl_ac_direct_declarator_AcDirectDeclArray(ac_direct_declarator, ac_constant_expression_option);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_direct_declarator rewrite( rview );
+ impl_ac_direct_declarator* ac_direct_declarator_1;
+ impl_ac_constant_expression_option* ac_constant_expression_option_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_direct_declarator_AcDirectDeclPack:public impl_ac_direct_declarator{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcDirectDeclPack; }
+ explicit impl_ac_direct_declarator_AcDirectDeclPack(ac_declarator);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_direct_declarator rewrite( rview );
+ impl_ac_declarator* ac_declarator_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_direct_declarator_AcDirectDeclId:public impl_ac_direct_declarator{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcDirectDeclId; }
+ explicit impl_ac_direct_declarator_AcDirectDeclId(ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_direct_declarator rewrite( rview );
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_pointer_option: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ac_pointer_option rewrite(rview) =0;
+ };
+ class impl_ac_pointer_option_Yespointer:public impl_ac_pointer_option{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Yespointer; }
+ explicit impl_ac_pointer_option_Yespointer(ac_pointer);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_pointer_option rewrite( rview );
+ impl_ac_pointer* ac_pointer_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_pointer_option_Nopointer:public impl_ac_pointer_option{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Nopointer; }
+ explicit impl_ac_pointer_option_Nopointer();
+
+ ac_pointer_option rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_pointer: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ac_pointer rewrite(rview) =0;
+ };
+ class impl_ac_pointer_AcPointerCons:public impl_ac_pointer{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcPointerCons; }
+ explicit impl_ac_pointer_AcPointerCons(ac_type_qualifier_list, ac_pointer);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_pointer rewrite( rview );
+ impl_ac_type_qualifier_list* ac_type_qualifier_list_1;
+ impl_ac_pointer* ac_pointer_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_pointer_AcPointerNil:public impl_ac_pointer{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcPointerNil; }
+ explicit impl_ac_pointer_AcPointerNil(ac_type_qualifier_list);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_pointer rewrite( rview );
+ impl_ac_type_qualifier_list* ac_type_qualifier_list_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_ref_option: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ac_ref_option rewrite(rview) =0;
+ };
+ class impl_ac_ref_option_AcRef:public impl_ac_ref_option{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcRef; }
+ explicit impl_ac_ref_option_AcRef();
+
+ ac_ref_option rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_ref_option_AcNoRef:public impl_ac_ref_option{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcNoRef; }
+ explicit impl_ac_ref_option_AcNoRef();
+
+ ac_ref_option rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_operator_name: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ int line;
+ casestring file;
+ ac_operator_name rewrite(rview) =0;
+ };
+ class impl_ac_operator_name_AcOperatorName:public impl_ac_operator_name{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcOperatorName; }
+ explicit impl_ac_operator_name_AcOperatorName(casestring);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_operator_name rewrite( rview );
+ impl_casestring* casestring_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_class_qualifier_help_list: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilac_class_qualifier_help_list: sel_Consac_class_qualifier_help_list;
+ }
+ explicit impl_ac_class_qualifier_help_list(ac_direct_declarator = 0, ac_class_qualifier_help_list = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend ac_class_qualifier_help_list concat(c_ac_class_qualifier_help_list, c_ac_class_qualifier_help_list);
+ ac_class_qualifier_help_list reverse() const;
+ ac_class_qualifier_help_list rewrite(rview);
+ ac_direct_declarator last() const;
+ ac_class_qualifier_help_list append(ac_direct_declarator);
+ ac_class_qualifier_help_list map(ac_direct_declarator (*)(ac_direct_declarator));
+ ac_class_qualifier_help_list filter( bool (*)(ac_direct_declarator));
+ ac_class_qualifier_help_list merge( ac_class_qualifier_help_list, ac_direct_declarator (*)(ac_direct_declarator, ac_direct_declarator));
+ ac_direct_declarator reduce( ac_direct_declarator, ac_direct_declarator (*)(ac_direct_declarator, ac_direct_declarator));
+ bool is_nil() const;
+ ac_direct_declarator ac_direct_declarator_1;
+ ac_class_qualifier_help_list ac_class_qualifier_help_list_1;
+ private:
+ impl_ac_class_qualifier_help_list* nil_rewrite(rview);
+ impl_ac_class_qualifier_help_list* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_class_qualifier_list: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilac_class_qualifier_list: sel_Consac_class_qualifier_list;
+ }
+ explicit impl_ac_class_qualifier_list(ID = 0, ac_class_qualifier_list = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend ac_class_qualifier_list concat(c_ac_class_qualifier_list, c_ac_class_qualifier_list);
+ ac_class_qualifier_list reverse() const;
+ ac_class_qualifier_list rewrite(rview);
+ ID last() const;
+ ac_class_qualifier_list append(ID);
+ ac_class_qualifier_list map(ID (*)(ID));
+ ac_class_qualifier_list filter( bool (*)(ID));
+ ac_class_qualifier_list merge( ac_class_qualifier_list, ID (*)(ID, ID));
+ ID reduce( ID, ID (*)(ID, ID));
+ bool is_nil() const;
+ ID ID_1;
+ ac_class_qualifier_list ac_class_qualifier_list_1;
+ private:
+ impl_ac_class_qualifier_list* nil_rewrite(rview);
+ impl_ac_class_qualifier_list* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_type_qualifier_list: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilac_type_qualifier_list: sel_Consac_type_qualifier_list;
+ }
+ explicit impl_ac_type_qualifier_list(ac_type_qualifier = 0, ac_type_qualifier_list = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend ac_type_qualifier_list concat(c_ac_type_qualifier_list, c_ac_type_qualifier_list);
+ ac_type_qualifier_list reverse() const;
+ ac_type_qualifier_list rewrite(rview);
+ ac_type_qualifier last() const;
+ ac_type_qualifier_list append(ac_type_qualifier);
+ ac_type_qualifier_list map(ac_type_qualifier (*)(ac_type_qualifier));
+ ac_type_qualifier_list filter( bool (*)(ac_type_qualifier));
+ ac_type_qualifier_list merge( ac_type_qualifier_list, ac_type_qualifier (*)(ac_type_qualifier, ac_type_qualifier));
+ ac_type_qualifier reduce( ac_type_qualifier, ac_type_qualifier (*)(ac_type_qualifier, ac_type_qualifier));
+ bool is_nil() const;
+ ac_type_qualifier ac_type_qualifier_1;
+ ac_type_qualifier_list ac_type_qualifier_list_1;
+ private:
+ impl_ac_type_qualifier_list* nil_rewrite(rview);
+ impl_ac_type_qualifier_list* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_parameter_type_list: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ac_parameter_type_list rewrite(rview) =0;
+ };
+ class impl_ac_parameter_type_list_AcParList3Dot:public impl_ac_parameter_type_list{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcParList3Dot; }
+ explicit impl_ac_parameter_type_list_AcParList3Dot(ac_parameter_list);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_parameter_type_list rewrite( rview );
+ impl_ac_parameter_list* ac_parameter_list_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_parameter_type_list_AcParList:public impl_ac_parameter_type_list{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcParList; }
+ explicit impl_ac_parameter_type_list_AcParList(ac_parameter_list);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_parameter_type_list rewrite( rview );
+ impl_ac_parameter_list* ac_parameter_list_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_parameter_list: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilac_parameter_list: sel_Consac_parameter_list;
+ }
+ explicit impl_ac_parameter_list(ac_parameter_declaration = 0, ac_parameter_list = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend ac_parameter_list concat(c_ac_parameter_list, c_ac_parameter_list);
+ ac_parameter_list reverse() const;
+ ac_parameter_list rewrite(rview);
+ ac_parameter_declaration last() const;
+ ac_parameter_list append(ac_parameter_declaration);
+ ac_parameter_list map(ac_parameter_declaration (*)(ac_parameter_declaration));
+ ac_parameter_list filter( bool (*)(ac_parameter_declaration));
+ ac_parameter_list merge( ac_parameter_list, ac_parameter_declaration (*)(ac_parameter_declaration, ac_parameter_declaration));
+ ac_parameter_declaration reduce( ac_parameter_declaration, ac_parameter_declaration (*)(ac_parameter_declaration, ac_parameter_declaration));
+ bool is_nil() const;
+ ac_parameter_declaration ac_parameter_declaration_1;
+ ac_parameter_list ac_parameter_list_1;
+ private:
+ impl_ac_parameter_list* nil_rewrite(rview);
+ impl_ac_parameter_list* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_parameter_declaration: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ac_parameter_declaration rewrite(rview) =0;
+ };
+ class impl_ac_parameter_declaration_AcParDeclAbsdecl:public impl_ac_parameter_declaration{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcParDeclAbsdecl; }
+ explicit impl_ac_parameter_declaration_AcParDeclAbsdecl(ac_declaration_specifiers, ac_abstract_declarator, ac_constant_expression_option);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_parameter_declaration rewrite( rview );
+ impl_ac_declaration_specifiers* ac_declaration_specifiers_1;
+ impl_ac_abstract_declarator* ac_abstract_declarator_1;
+ impl_ac_constant_expression_option* ac_constant_expression_option_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_parameter_declaration_AcParDeclDecl:public impl_ac_parameter_declaration{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcParDeclDecl; }
+ explicit impl_ac_parameter_declaration_AcParDeclDecl(ac_declaration_specifiers, ac_declarator, ac_constant_expression_option);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_parameter_declaration rewrite( rview );
+ impl_ac_declaration_specifiers* ac_declaration_specifiers_1;
+ impl_ac_declarator* ac_declarator_1;
+ impl_ac_constant_expression_option* ac_constant_expression_option_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_identifier_list: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilac_identifier_list: sel_Consac_identifier_list;
+ }
+ explicit impl_ac_identifier_list(ID = 0, ac_identifier_list = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend ac_identifier_list concat(c_ac_identifier_list, c_ac_identifier_list);
+ ac_identifier_list reverse() const;
+ ac_identifier_list rewrite(rview);
+ ID last() const;
+ ac_identifier_list append(ID);
+ ac_identifier_list map(ID (*)(ID));
+ ac_identifier_list filter( bool (*)(ID));
+ ac_identifier_list merge( ac_identifier_list, ID (*)(ID, ID));
+ ID reduce( ID, ID (*)(ID, ID));
+ bool is_nil() const;
+ ID ID_1;
+ ac_identifier_list ac_identifier_list_1;
+ private:
+ impl_ac_identifier_list* nil_rewrite(rview);
+ impl_ac_identifier_list* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_abstract_declarator: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ac_abstract_declarator rewrite(rview) =0;
+ };
+ class impl_ac_abstract_declarator_AcAbsdeclDirdecl:public impl_ac_abstract_declarator{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcAbsdeclDirdecl; }
+ explicit impl_ac_abstract_declarator_AcAbsdeclDirdecl(ac_pointer_option, ac_direct_abstract_declarator);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_abstract_declarator rewrite( rview );
+ impl_ac_pointer_option* ac_pointer_option_1;
+ impl_ac_direct_abstract_declarator* ac_direct_abstract_declarator_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_abstract_declarator_AcAbsdeclPointer:public impl_ac_abstract_declarator{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcAbsdeclPointer; }
+ explicit impl_ac_abstract_declarator_AcAbsdeclPointer(ac_pointer);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_abstract_declarator rewrite( rview );
+ impl_ac_pointer* ac_pointer_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_direct_abstract_declarator_option: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ac_direct_abstract_declarator_option rewrite(rview) =0;
+ };
+ class impl_ac_direct_abstract_declarator_option_Yesac_direct_abstract_declarator:public impl_ac_direct_abstract_declarator_option{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Yesac_direct_abstract_declarator; }
+ explicit impl_ac_direct_abstract_declarator_option_Yesac_direct_abstract_declarator(ac_direct_abstract_declarator);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_direct_abstract_declarator_option rewrite( rview );
+ impl_ac_direct_abstract_declarator* ac_direct_abstract_declarator_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_direct_abstract_declarator_option_Noac_direct_abstract_declarator:public impl_ac_direct_abstract_declarator_option{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Noac_direct_abstract_declarator; }
+ explicit impl_ac_direct_abstract_declarator_option_Noac_direct_abstract_declarator();
+
+ ac_direct_abstract_declarator_option rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_direct_abstract_declarator: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ac_direct_abstract_declarator rewrite(rview) =0;
+ };
+ class impl_ac_direct_abstract_declarator_AcDirAbsdeclFn:public impl_ac_direct_abstract_declarator{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcDirAbsdeclFn; }
+ explicit impl_ac_direct_abstract_declarator_AcDirAbsdeclFn(ac_direct_abstract_declarator_option, ac_parameter_type_list);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_direct_abstract_declarator rewrite( rview );
+ impl_ac_direct_abstract_declarator_option* ac_direct_abstract_declarator_option_1;
+ impl_ac_parameter_type_list* ac_parameter_type_list_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_direct_abstract_declarator_AcDirAbsdeclArray:public impl_ac_direct_abstract_declarator{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcDirAbsdeclArray; }
+ explicit impl_ac_direct_abstract_declarator_AcDirAbsdeclArray(ac_direct_abstract_declarator_option, ac_constant_expression_option);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_direct_abstract_declarator rewrite( rview );
+ impl_ac_direct_abstract_declarator_option* ac_direct_abstract_declarator_option_1;
+ impl_ac_constant_expression_option* ac_constant_expression_option_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_direct_abstract_declarator_AcDirAbsdeclPack:public impl_ac_direct_abstract_declarator{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcDirAbsdeclPack; }
+ explicit impl_ac_direct_abstract_declarator_AcDirAbsdeclPack(ac_abstract_declarator);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_direct_abstract_declarator rewrite( rview );
+ impl_ac_abstract_declarator* ac_abstract_declarator_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_constant_expression_option: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ac_constant_expression_option rewrite(rview) =0;
+ };
+ class impl_ac_constant_expression_option_Noac_constant_expression:public impl_ac_constant_expression_option{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Noac_constant_expression; }
+ explicit impl_ac_constant_expression_option_Noac_constant_expression();
+
+ ac_constant_expression_option rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_constant_expression_option_Yesac_constant_expression:public impl_ac_constant_expression_option{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Yesac_constant_expression; }
+ explicit impl_ac_constant_expression_option_Yesac_constant_expression(ac_constant_expression);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_constant_expression_option rewrite( rview );
+ impl_ac_constant_expression* ac_constant_expression_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_constant_expression: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ac_constant_expression rewrite(rview) =0;
+ };
+ class impl_ac_constant_expression_AcConstExpr:public impl_ac_constant_expression{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcConstExpr; }
+ explicit impl_ac_constant_expression_AcConstExpr(Cexpression);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_constant_expression rewrite( rview );
+ impl_Cexpression* Cexpression_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_constant_expression_list: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilac_constant_expression_list: sel_Consac_constant_expression_list;
+ }
+ explicit impl_ac_constant_expression_list(ac_constant_expression = 0, ac_constant_expression_list = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend ac_constant_expression_list concat(c_ac_constant_expression_list, c_ac_constant_expression_list);
+ ac_constant_expression_list reverse() const;
+ ac_constant_expression_list rewrite(rview);
+ ac_constant_expression last() const;
+ ac_constant_expression_list append(ac_constant_expression);
+ ac_constant_expression_list map(ac_constant_expression (*)(ac_constant_expression));
+ ac_constant_expression_list filter( bool (*)(ac_constant_expression));
+ ac_constant_expression_list merge( ac_constant_expression_list, ac_constant_expression (*)(ac_constant_expression, ac_constant_expression));
+ ac_constant_expression reduce( ac_constant_expression, ac_constant_expression (*)(ac_constant_expression, ac_constant_expression));
+ bool is_nil() const;
+ ac_constant_expression ac_constant_expression_1;
+ ac_constant_expression_list ac_constant_expression_list_1;
+ private:
+ impl_ac_constant_expression_list* nil_rewrite(rview);
+ impl_ac_constant_expression_list* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_opt_base_init_list: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ac_opt_base_init_list rewrite(rview) =0;
+ };
+ class impl_ac_opt_base_init_list_AcYesBaseInit:public impl_ac_opt_base_init_list{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcYesBaseInit; }
+ explicit impl_ac_opt_base_init_list_AcYesBaseInit(ac_base_init_list);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_opt_base_init_list rewrite( rview );
+ impl_ac_base_init_list* ac_base_init_list_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_opt_base_init_list_AcNoBaseInit:public impl_ac_opt_base_init_list{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcNoBaseInit; }
+ explicit impl_ac_opt_base_init_list_AcNoBaseInit();
+
+ ac_opt_base_init_list rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_base_init_list: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilac_base_init_list: sel_Consac_base_init_list;
+ }
+ explicit impl_ac_base_init_list(ac_base_init = 0, ac_base_init_list = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend ac_base_init_list concat(c_ac_base_init_list, c_ac_base_init_list);
+ ac_base_init_list reverse() const;
+ ac_base_init_list rewrite(rview);
+ ac_base_init last() const;
+ ac_base_init_list append(ac_base_init);
+ ac_base_init_list map(ac_base_init (*)(ac_base_init));
+ ac_base_init_list filter( bool (*)(ac_base_init));
+ ac_base_init_list merge( ac_base_init_list, ac_base_init (*)(ac_base_init, ac_base_init));
+ ac_base_init reduce( ac_base_init, ac_base_init (*)(ac_base_init, ac_base_init));
+ bool is_nil() const;
+ ac_base_init ac_base_init_1;
+ ac_base_init_list ac_base_init_list_1;
+ private:
+ impl_ac_base_init_list* nil_rewrite(rview);
+ impl_ac_base_init_list* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_ac_base_init: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ ac_base_init rewrite(rview) =0;
+ };
+ class impl_ac_base_init_AcBaseInit:public impl_ac_base_init{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AcBaseInit; }
+ explicit impl_ac_base_init_AcBaseInit(ID, ac_constant_expression);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ ac_base_init rewrite( rview );
+ impl_ID* ID_1;
+ impl_ac_constant_expression* ac_constant_expression_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_baseclass_declarations: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilbaseclass_declarations: sel_Consbaseclass_declarations;
+ }
+ explicit impl_baseclass_declarations(baseclass_decl = 0, baseclass_declarations = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend baseclass_declarations concat(c_baseclass_declarations, c_baseclass_declarations);
+ baseclass_declarations reverse() const;
+ baseclass_declarations rewrite(rview);
+ baseclass_decl last() const;
+ baseclass_declarations append(baseclass_decl);
+ baseclass_declarations map(baseclass_decl (*)(baseclass_decl));
+ baseclass_declarations filter( bool (*)(baseclass_decl));
+ baseclass_declarations merge( baseclass_declarations, baseclass_decl (*)(baseclass_decl, baseclass_decl));
+ baseclass_decl reduce( baseclass_decl, baseclass_decl (*)(baseclass_decl, baseclass_decl));
+ bool is_nil() const;
+ baseclass_decl baseclass_decl_1;
+ baseclass_declarations baseclass_declarations_1;
+ private:
+ impl_baseclass_declarations* nil_rewrite(rview);
+ impl_baseclass_declarations* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_baseclass_decl: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ baseclass_decl rewrite(rview) =0;
+ };
+ class impl_baseclass_decl_BaseClassDecl:public impl_baseclass_decl{
+ public:
+ enum_operators prod_sel() const
+ { return sel_BaseClassDecl; }
+ explicit impl_baseclass_decl_BaseClassDecl(ID, baseclass_list);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ baseclass_decl rewrite( rview );
+ impl_ID* ID_1;
+ impl_baseclass_list* baseclass_list_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_baseclass_list: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilbaseclass_list: sel_Consbaseclass_list;
+ }
+ explicit impl_baseclass_list(ID = 0, baseclass_list = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend baseclass_list concat(c_baseclass_list, c_baseclass_list);
+ baseclass_list reverse() const;
+ baseclass_list rewrite(rview);
+ ID last() const;
+ baseclass_list append(ID);
+ baseclass_list map(ID (*)(ID));
+ baseclass_list filter( bool (*)(ID));
+ baseclass_list merge( baseclass_list, ID (*)(ID, ID));
+ ID reduce( ID, ID (*)(ID, ID));
+ bool is_nil() const;
+ ID ID_1;
+ baseclass_list baseclass_list_1;
+ private:
+ impl_baseclass_list* nil_rewrite(rview);
+ impl_baseclass_list* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_error: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ error rewrite(rview) =0;
+ };
+ class impl_error_Warning:public impl_error{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Warning; }
+ explicit impl_error_Warning(fileline, problem);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ error rewrite( rview );
+ impl_fileline* fileline_1;
+ impl_problem* problem_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_error_NonFatal:public impl_error{
+ public:
+ enum_operators prod_sel() const
+ { return sel_NonFatal; }
+ explicit impl_error_NonFatal(fileline, problem);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ error rewrite( rview );
+ impl_fileline* fileline_1;
+ impl_problem* problem_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_error_Fatal:public impl_error{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Fatal; }
+ explicit impl_error_Fatal(fileline, problem);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ error rewrite( rview );
+ impl_fileline* fileline_1;
+ impl_problem* problem_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_problem: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ problem rewrite(rview) =0;
+ };
+ class impl_problem_Problem6:public impl_problem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Problem6; }
+ explicit impl_problem_Problem6(casestring, casestring, casestring, casestring, casestring, casestring);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ problem rewrite( rview );
+ impl_casestring* casestring_1;
+ impl_casestring* casestring_2;
+ impl_casestring* casestring_3;
+ impl_casestring* casestring_4;
+ impl_casestring* casestring_5;
+ impl_casestring* casestring_6;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_problem_Problem5:public impl_problem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Problem5; }
+ explicit impl_problem_Problem5(casestring, casestring, casestring, casestring, casestring);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ problem rewrite( rview );
+ impl_casestring* casestring_1;
+ impl_casestring* casestring_2;
+ impl_casestring* casestring_3;
+ impl_casestring* casestring_4;
+ impl_casestring* casestring_5;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_problem_Problem4:public impl_problem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Problem4; }
+ explicit impl_problem_Problem4(casestring, casestring, casestring, casestring);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ problem rewrite( rview );
+ impl_casestring* casestring_1;
+ impl_casestring* casestring_2;
+ impl_casestring* casestring_3;
+ impl_casestring* casestring_4;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_problem_Problem3int1:public impl_problem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Problem3int1; }
+ explicit impl_problem_Problem3int1(casestring, casestring, casestring, integer, casestring);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ problem rewrite( rview );
+ impl_casestring* casestring_1;
+ impl_casestring* casestring_2;
+ impl_casestring* casestring_3;
+ impl_integer* integer_1;
+ impl_casestring* casestring_4;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_problem_Problem3:public impl_problem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Problem3; }
+ explicit impl_problem_Problem3(casestring, casestring, casestring);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ problem rewrite( rview );
+ impl_casestring* casestring_1;
+ impl_casestring* casestring_2;
+ impl_casestring* casestring_3;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_problem_Problem2:public impl_problem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Problem2; }
+ explicit impl_problem_Problem2(casestring, casestring);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ problem rewrite( rview );
+ impl_casestring* casestring_1;
+ impl_casestring* casestring_2;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_problem_Problem1storageoption1ID:public impl_problem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Problem1storageoption1ID; }
+ explicit impl_problem_Problem1storageoption1ID(casestring, storageoption, casestring, ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ problem rewrite( rview );
+ impl_casestring* casestring_1;
+ impl_storageoption* storageoption_1;
+ impl_casestring* casestring_2;
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_problem_Problem1INT1ID1ID:public impl_problem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Problem1INT1ID1ID; }
+ explicit impl_problem_Problem1INT1ID1ID(casestring, INT, casestring, ID, casestring, ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ problem rewrite( rview );
+ impl_casestring* casestring_1;
+ impl_INT* INT_1;
+ impl_casestring* casestring_2;
+ impl_ID* ID_1;
+ impl_casestring* casestring_3;
+ impl_ID* ID_2;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_problem_Problem1ID1ID1ID:public impl_problem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Problem1ID1ID1ID; }
+ explicit impl_problem_Problem1ID1ID1ID(casestring, ID, casestring, ID, casestring, ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ problem rewrite( rview );
+ impl_casestring* casestring_1;
+ impl_ID* ID_1;
+ impl_casestring* casestring_2;
+ impl_ID* ID_2;
+ impl_casestring* casestring_3;
+ impl_ID* ID_3;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_problem_Problem1INT1ID:public impl_problem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Problem1INT1ID; }
+ explicit impl_problem_Problem1INT1ID(casestring, INT, casestring, ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ problem rewrite( rview );
+ impl_casestring* casestring_1;
+ impl_INT* INT_1;
+ impl_casestring* casestring_2;
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_problem_Problem1int1:public impl_problem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Problem1int1; }
+ explicit impl_problem_Problem1int1(casestring, integer, casestring);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ problem rewrite( rview );
+ impl_casestring* casestring_1;
+ impl_integer* integer_1;
+ impl_casestring* casestring_2;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_problem_Problem1INT:public impl_problem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Problem1INT; }
+ explicit impl_problem_Problem1INT(casestring, INT);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ problem rewrite( rview );
+ impl_casestring* casestring_1;
+ impl_INT* INT_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_problem_Problem1t1ID:public impl_problem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Problem1t1ID; }
+ explicit impl_problem_Problem1t1ID(casestring, IDtype, casestring, ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ problem rewrite( rview );
+ impl_casestring* casestring_1;
+ impl_IDtype* IDtype_1;
+ impl_casestring* casestring_2;
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_problem_Problem1ID1ID:public impl_problem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Problem1ID1ID; }
+ explicit impl_problem_Problem1ID1ID(casestring, ID, casestring, ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ problem rewrite( rview );
+ impl_casestring* casestring_1;
+ impl_ID* ID_1;
+ impl_casestring* casestring_2;
+ impl_ID* ID_2;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_problem_Problem1we:public impl_problem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Problem1we; }
+ explicit impl_problem_Problem1we(casestring, withexpression);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ problem rewrite( rview );
+ impl_casestring* casestring_1;
+ impl_withexpression* withexpression_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_problem_Problem1tID:public impl_problem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Problem1tID; }
+ explicit impl_problem_Problem1tID(casestring, ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ problem rewrite( rview );
+ impl_casestring* casestring_1;
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_problem_Problem1ID:public impl_problem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Problem1ID; }
+ explicit impl_problem_Problem1ID(casestring, ID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ problem rewrite( rview );
+ impl_casestring* casestring_1;
+ impl_ID* ID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_problem_Problem1:public impl_problem{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Problem1; }
+ explicit impl_problem_Problem1(casestring);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ problem rewrite( rview );
+ impl_casestring* casestring_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_addedphylumdeclarations: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Niladdedphylumdeclarations: sel_Consaddedphylumdeclarations;
+ }
+ explicit impl_addedphylumdeclarations(addedphylumdeclaration = 0, addedphylumdeclarations = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend addedphylumdeclarations concat(c_addedphylumdeclarations, c_addedphylumdeclarations);
+ addedphylumdeclarations reverse() const;
+ addedphylumdeclarations rewrite(rview);
+ addedphylumdeclaration last() const;
+ addedphylumdeclarations append(addedphylumdeclaration);
+ addedphylumdeclarations map(addedphylumdeclaration (*)(addedphylumdeclaration));
+ addedphylumdeclarations filter( bool (*)(addedphylumdeclaration));
+ addedphylumdeclarations merge( addedphylumdeclarations, addedphylumdeclaration (*)(addedphylumdeclaration, addedphylumdeclaration));
+ addedphylumdeclaration reduce( addedphylumdeclaration, addedphylumdeclaration (*)(addedphylumdeclaration, addedphylumdeclaration));
+ bool is_nil() const;
+ addedphylumdeclaration addedphylumdeclaration_1;
+ addedphylumdeclarations addedphylumdeclarations_1;
+ private:
+ impl_addedphylumdeclarations* nil_rewrite(rview);
+ impl_addedphylumdeclarations* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_addedphylumdeclaration: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ bool added;
+ addedphylumdeclaration rewrite(rview) =0;
+ };
+ class impl_addedphylumdeclaration_AddedPhylumdeclaration:public impl_addedphylumdeclaration{
+ public:
+ enum_operators prod_sel() const
+ { return sel_AddedPhylumdeclaration; }
+ explicit impl_addedphylumdeclaration_AddedPhylumdeclaration(uniqID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ addedphylumdeclaration rewrite( rview );
+ impl_uniqID* uniqID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_countedphylumdeclarations: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilcountedphylumdeclarations: sel_Conscountedphylumdeclarations;
+ }
+ explicit impl_countedphylumdeclarations(countedphylumdeclaration = 0, countedphylumdeclarations = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend countedphylumdeclarations concat(c_countedphylumdeclarations, c_countedphylumdeclarations);
+ countedphylumdeclarations reverse() const;
+ countedphylumdeclarations rewrite(rview);
+ countedphylumdeclaration last() const;
+ countedphylumdeclarations append(countedphylumdeclaration);
+ countedphylumdeclarations map(countedphylumdeclaration (*)(countedphylumdeclaration));
+ countedphylumdeclarations filter( bool (*)(countedphylumdeclaration));
+ countedphylumdeclarations merge( countedphylumdeclarations, countedphylumdeclaration (*)(countedphylumdeclaration, countedphylumdeclaration));
+ countedphylumdeclaration reduce( countedphylumdeclaration, countedphylumdeclaration (*)(countedphylumdeclaration, countedphylumdeclaration));
+ bool is_nil() const;
+ countedphylumdeclaration countedphylumdeclaration_1;
+ countedphylumdeclarations countedphylumdeclarations_1;
+ private:
+ impl_countedphylumdeclarations* nil_rewrite(rview);
+ impl_countedphylumdeclarations* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_countedphylumdeclaration: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ int count;
+ countedphylumdeclaration rewrite(rview) =0;
+ };
+ class impl_countedphylumdeclaration_CountedPhylumdeclaration:public impl_countedphylumdeclaration{
+ public:
+ enum_operators prod_sel() const
+ { return sel_CountedPhylumdeclaration; }
+ explicit impl_countedphylumdeclaration_CountedPhylumdeclaration(uniqID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ countedphylumdeclaration rewrite( rview );
+ impl_uniqID* uniqID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_charruns: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ int number;
+ charruns set(int _n= 0);
+ charruns rewrite(rview) =0;
+ };
+ class impl_charruns_Stars:public impl_charruns{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Stars; }
+ explicit impl_charruns_Stars();
+
+ charruns rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_charruns_QuotedNewlines:public impl_charruns{
+ public:
+ enum_operators prod_sel() const
+ { return sel_QuotedNewlines; }
+ explicit impl_charruns_QuotedNewlines();
+
+ charruns rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_charruns_Newlines:public impl_charruns{
+ public:
+ enum_operators prod_sel() const
+ { return sel_Newlines; }
+ explicit impl_charruns_Newlines();
+
+ charruns rewrite( rview );
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_bindingidmarks: public impl_abstract_list{
+ public:
+ static const enum_phyla phylum_sel_;
+ enum_operators prod_sel() const{
+ return is_nil() ? sel_Nilbindingidmarks: sel_Consbindingidmarks;
+ }
+ explicit impl_bindingidmarks(bindingidmark = 0, bindingidmarks = 0);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+ friend bindingidmarks concat(c_bindingidmarks, c_bindingidmarks);
+ bindingidmarks reverse() const;
+ bindingidmarks rewrite(rview);
+ bindingidmark last() const;
+ bindingidmarks append(bindingidmark);
+ bindingidmarks map(bindingidmark (*)(bindingidmark));
+ bindingidmarks filter( bool (*)(bindingidmark));
+ bindingidmarks merge( bindingidmarks, bindingidmark (*)(bindingidmark, bindingidmark));
+ bindingidmark reduce( bindingidmark, bindingidmark (*)(bindingidmark, bindingidmark));
+ bool is_nil() const;
+ bindingidmark bindingidmark_1;
+ bindingidmarks bindingidmarks_1;
+ private:
+ impl_bindingidmarks* nil_rewrite(rview);
+ impl_bindingidmarks* cons_rewrite(rview);
+ void nil_do_unparse(printer_functor, uview);
+ void do_unparse(printer_functor, uview);
+ };
+ class impl_bindingidmark: public impl_abstract_phylum{
+ public:
+ static const enum_phyla phylum_sel_;
+ bool marked;
+ bindingidmark rewrite(rview) =0;
+ };
+ class impl_bindingidmark_BindingIdMark:public impl_bindingidmark{
+ public:
+ enum_operators prod_sel() const
+ { return sel_BindingIdMark; }
+ explicit impl_bindingidmark_BindingIdMark(uniqID);
+ abstract_phylum subphylum(int) const;
+ void set_subphylum(int, abstract_phylum);
+
+ bindingidmark rewrite( rview );
+ impl_uniqID* uniqID_1;
+ private:
+ void do_unparse(printer_functor, uview);
+ };
+
+ //} // namespace Phylum
+
+
+ extern bool kc_storageclass_still_uniq[];
+
+ typedef struct {
+ int created;
+ int existing_not_found;
+ int free_called[2];
+ int freed[2];
+ } KC_OPERATOR_STATISTICS;
+
+ #ifdef KC_STATISTICS
+ # define print_operator_statistics(kc_f) do_print_operator_statistics(kc_f)
+ void do_print_operator_statistics(FILE*);
+ #else
+ # define print_operator_statistics(kc_f)
+ #endif
+
+ typedef class hashtable_struct_t* hashtable_t;
+ const char *phylumname_or_error ( enum_phyla );
+ const char *kc_operatorname_or_error ( enum_operators );
+
+
+ } // namespace kc
+ #endif // KC_TYPES_HEADER
Index: llvm/test/Programs/MultiSource/Applications/kimwitu++/kimwl.cc
diff -c /dev/null llvm/test/Programs/MultiSource/Applications/kimwitu++/kimwl.cc:1.1
*** /dev/null Tue Apr 6 15:25:26 2004
--- llvm/test/Programs/MultiSource/Applications/kimwitu++/kimwl.cc Tue Apr 6 15:25:12 2004
***************
*** 0 ****
--- 1,2682 ----
+
+
+ #define YY_INT_ALIGNED short int
+
+ /* A lexical scanner generated by flex */
+
+ #define FLEX_SCANNER
+ #define YY_FLEX_MAJOR_VERSION 2
+ #define YY_FLEX_MINOR_VERSION 5
+ #define YY_FLEX_SUBMINOR_VERSION 31
+ #if YY_FLEX_SUBMINOR_VERSION > 0
+ #define FLEX_BETA
+ #endif
+
+ /* First, we deal with platform-specific or compiler-specific issues. */
+
+ /* begin standard C headers. */
+ #include <stdio.h>
+ #include <string.h>
+ #include <errno.h>
+ #include <stdlib.h>
+
+ /* end standard C headers. */
+
+ /* flex integer type definitions */
+
+ #ifndef FLEXINT_H
+ #define FLEXINT_H
+
+ /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+ #if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
+ #include <inttypes.h>
+ typedef int8_t flex_int8_t;
+ typedef uint8_t flex_uint8_t;
+ typedef int16_t flex_int16_t;
+ typedef uint16_t flex_uint16_t;
+ typedef int32_t flex_int32_t;
+ typedef uint32_t flex_uint32_t;
+ #else
+ typedef signed char flex_int8_t;
+ typedef short int flex_int16_t;
+ typedef int flex_int32_t;
+ typedef unsigned char flex_uint8_t;
+ typedef unsigned short int flex_uint16_t;
+ typedef unsigned int flex_uint32_t;
+ #endif /* ! C99 */
+
+ /* Limits of integral types. */
+ #ifndef INT8_MIN
+ #define INT8_MIN (-128)
+ #endif
+ #ifndef INT16_MIN
+ #define INT16_MIN (-32767-1)
+ #endif
+ #ifndef INT32_MIN
+ #define INT32_MIN (-2147483647-1)
+ #endif
+ #ifndef INT8_MAX
+ #define INT8_MAX (127)
+ #endif
+ #ifndef INT16_MAX
+ #define INT16_MAX (32767)
+ #endif
+ #ifndef INT32_MAX
+ #define INT32_MAX (2147483647)
+ #endif
+ #ifndef UINT8_MAX
+ #define UINT8_MAX (255U)
+ #endif
+ #ifndef UINT16_MAX
+ #define UINT16_MAX (65535U)
+ #endif
+ #ifndef UINT32_MAX
+ #define UINT32_MAX (4294967295U)
+ #endif
+
+ #endif /* ! FLEXINT_H */
+
+ #ifdef __cplusplus
+
+ /* The "const" storage-class-modifier is valid. */
+ #define YY_USE_CONST
+
+ #else /* ! __cplusplus */
+
+ #if __STDC__
+
+ #define YY_USE_CONST
+
+ #endif /* __STDC__ */
+ #endif /* ! __cplusplus */
+
+ #ifdef YY_USE_CONST
+ #define yyconst const
+ #else
+ #define yyconst
+ #endif
+
+ /* Returned upon end-of-file. */
+ #define YY_NULL 0
+
+ /* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index. If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+ /* Enter a start condition. This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+ #define BEGIN (yy_start) = 1 + 2 *
+
+ /* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state. The YYSTATE alias is for lex
+ * compatibility.
+ */
+ #define YY_START (((yy_start) - 1) / 2)
+ #define YYSTATE YY_START
+
+ /* Action number for EOF rule of a given start state. */
+ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+ /* Special action meaning "start processing a new file". */
+ #define YY_NEW_FILE yyrestart(yyin )
+
+ #define YY_END_OF_BUFFER_CHAR 0
+
+ /* Size of default input buffer. */
+ #ifndef YY_BUF_SIZE
+ #define YY_BUF_SIZE 16384
+ #endif
+
+ #ifndef YY_TYPEDEF_YY_BUFFER_STATE
+ #define YY_TYPEDEF_YY_BUFFER_STATE
+ typedef struct yy_buffer_state *YY_BUFFER_STATE;
+ #endif
+
+ extern int yyleng;
+
+ extern FILE *yyin, *yyout;
+
+ #define EOB_ACT_CONTINUE_SCAN 0
+ #define EOB_ACT_END_OF_FILE 1
+ #define EOB_ACT_LAST_MATCH 2
+
+ /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
+ * access to the local variable yy_act. Since yyless() is a macro, it would break
+ * existing scanners that call yyless() from OUTSIDE yylex.
+ * One obvious solution it to make yy_act a global. I tried that, and saw
+ * a 5% performance hit in a non-yylineno scanner, because yy_act is
+ * normally declared as a register variable-- so it is not worth it.
+ */
+ #define YY_LESS_LINENO(n) \
+ do { \
+ int yyl;\
+ for ( yyl = n; yyl < yyleng; ++yyl )\
+ if ( yytext[yyl] == '\n' )\
+ --yylineno;\
+ }while(0)
+
+ /* Return all but the first "n" matched characters back to the input stream. */
+ #define yyless(n) \
+ do \
+ { \
+ /* Undo effects of setting up yytext. */ \
+ int yyless_macro_arg = (n); \
+ YY_LESS_LINENO(yyless_macro_arg);\
+ *yy_cp = (yy_hold_char); \
+ YY_RESTORE_YY_MORE_OFFSET \
+ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+ YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+ } \
+ while ( 0 )
+
+ #define unput(c) yyunput( c, (yytext_ptr) )
+
+ /* The following is because we cannot portably get our hands on size_t
+ * (without autoconf's help, which isn't available because we want
+ * flex-generated scanners to compile on their own).
+ */
+
+ #ifndef YY_TYPEDEF_YY_SIZE_T
+ #define YY_TYPEDEF_YY_SIZE_T
+ typedef unsigned int yy_size_t;
+ #endif
+
+ #ifndef YY_STRUCT_YY_BUFFER_STATE
+ #define YY_STRUCT_YY_BUFFER_STATE
+ struct yy_buffer_state
+ {
+ FILE *yy_input_file;
+
+ char *yy_ch_buf; /* input buffer */
+ char *yy_buf_pos; /* current position in input buffer */
+
+ /* Size of input buffer in bytes, not including room for EOB
+ * characters.
+ */
+ yy_size_t yy_buf_size;
+
+ /* Number of characters read into yy_ch_buf, not including EOB
+ * characters.
+ */
+ int yy_n_chars;
+
+ /* Whether we "own" the buffer - i.e., we know we created it,
+ * and can realloc() it to grow it, and should free() it to
+ * delete it.
+ */
+ int yy_is_our_buffer;
+
+ /* Whether this is an "interactive" input source; if so, and
+ * if we're using stdio for input, then we want to use getc()
+ * instead of fread(), to make sure we stop fetching input after
+ * each newline.
+ */
+ int yy_is_interactive;
+
+ /* Whether we're considered to be at the beginning of a line.
+ * If so, '^' rules will be active on the next match, otherwise
+ * not.
+ */
+ int yy_at_bol;
+
+ int yy_bs_lineno; /**< The line count. */
+ int yy_bs_column; /**< The column count. */
+
+ /* Whether to try to fill the input buffer when we reach the
+ * end of it.
+ */
+ int yy_fill_buffer;
+
+ int yy_buffer_status;
+
+ #define YY_BUFFER_NEW 0
+ #define YY_BUFFER_NORMAL 1
+ /* When an EOF's been seen but there's still some text to process
+ * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+ * shouldn't try reading from the input source any more. We might
+ * still have a bunch of tokens to match, though, because of
+ * possible backing-up.
+ *
+ * When we actually see the EOF, we change the status to "new"
+ * (via yyrestart()), so that the user can continue scanning by
+ * just pointing yyin at a new input file.
+ */
+ #define YY_BUFFER_EOF_PENDING 2
+
+ };
+ #endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+ /* Stack of input buffers. */
+ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+ /* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+ : NULL)
+
+ /* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+ /* yy_hold_char holds the character lost when yytext is formed. */
+ static char yy_hold_char;
+ static int yy_n_chars; /* number of characters read into yy_ch_buf */
+ int yyleng;
+
+ /* Points to current character in buffer. */
+ static char *yy_c_buf_p = (char *) 0;
+ static int yy_init = 1; /* whether we need to initialize */
+ static int yy_start = 0; /* start state number */
+
+ /* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin. A bit of a hack ...
+ */
+ static int yy_did_buffer_switch_on_eof;
+
+ void yyrestart (FILE *input_file );
+ void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
+ YY_BUFFER_STATE yy_create_buffer (FILE *file,int size );
+ void yy_delete_buffer (YY_BUFFER_STATE b );
+ void yy_flush_buffer (YY_BUFFER_STATE b );
+ void yypush_buffer_state (YY_BUFFER_STATE new_buffer );
+ void yypop_buffer_state (void );
+
+ static void yyensure_buffer_stack (void );
+ static void yy_load_buffer_state (void );
+ static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
+
+ #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+ YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
+ YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );
+ YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len );
+
+ void *yyalloc (yy_size_t );
+ void *yyrealloc (void *,yy_size_t );
+ void yyfree (void * );
+
+ #define yy_new_buffer yy_create_buffer
+
+ #define yy_set_interactive(is_interactive) \
+ { \
+ if ( ! YY_CURRENT_BUFFER ){ \
+ yyensure_buffer_stack (); \
+ YY_CURRENT_BUFFER_LVALUE = \
+ yy_create_buffer(yyin,YY_BUF_SIZE ); \
+ } \
+ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+ }
+
+ #define yy_set_bol(at_bol) \
+ { \
+ if ( ! YY_CURRENT_BUFFER ){\
+ yyensure_buffer_stack (); \
+ YY_CURRENT_BUFFER_LVALUE = \
+ yy_create_buffer(yyin,YY_BUF_SIZE ); \
+ } \
+ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+ }
+
+ #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+ /* Begin user sect3 */
+
+ #define yywrap(n) 1
+ #define YY_SKIP_YYWRAP
+
+ typedef unsigned char YY_CHAR;
+
+ FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+ typedef int yy_state_type;
+
+ #define YY_FLEX_LEX_COMPAT
+ extern int yylineno;
+
+ int yylineno = 1;
+
+ extern char yytext[];
+
+ static yy_state_type yy_get_previous_state (void );
+ static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
+ static int yy_get_next_buffer (void );
+ static void yy_fatal_error (yyconst char msg[] );
+
+ /* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+ #define YY_DO_BEFORE_ACTION \
+ (yytext_ptr) = yy_bp; \
+ yyleng = (size_t) (yy_cp - yy_bp); \
+ (yy_hold_char) = *yy_cp; \
+ *yy_cp = '\0'; \
+ if ( yyleng + (yy_more_offset) >= YYLMAX ) \
+ YY_FATAL_ERROR( "token too large, exceeds YYLMAX" ); \
+ yy_flex_strncpy( &yytext[(yy_more_offset)], (yytext_ptr), yyleng + 1 ); \
+ yyleng += (yy_more_offset); \
+ (yy_prev_more_offset) = (yy_more_offset); \
+ (yy_more_offset) = 0; \
+ (yy_c_buf_p) = yy_cp;
+
+ #define YY_NUM_RULES 93
+ #define YY_END_OF_BUFFER 94
+ /* This struct is not used in this scanner,
+ but its presence is necessary. */
+ struct yy_trans_info
+ {
+ flex_int32_t yy_verify;
+ flex_int32_t yy_nxt;
+ };
+ static yyconst flex_int16_t yy_acclist[414] =
+ { 0,
+ 42, 42, 82, 82, 94, 81, 93, 93, 1, 81,
+ 93, 1, 93, 54, 81, 93, 81, 93, 81, 93,
+ 55, 81, 93, 81, 93, 81, 93, 81, 93, 23,
+ 81, 93, 81, 93, 45, 81, 93, 45, 81, 93,
+ 45, 81, 93, 45, 81, 93, 45, 81, 93, 45,
+ 81, 93, 45, 81, 93, 45, 81, 93, 45, 81,
+ 93, 45, 81, 93, 45, 81, 93, 45, 81, 93,
+ 45, 81, 93, 81, 93, 13, 81, 93, 13,