kimwitu-4.6.1.orig/0040755000176100001440000000000007147767364013503 5ustar debacleuserskimwitu-4.6.1.orig/doc/0040755000176100001440000000000007147767364014250 5ustar debacleuserskimwitu-4.6.1.orig/doc/README0100644000176100001440000000016407076113217015105 0ustar debacleusersThe documentation is packed in a separate .tar.Z file, for easier distribution. It can be placed in this directory. kimwitu-4.6.1.orig/doc/about-kimwitu0100644000176100001440000000343607076113217016756 0ustar debacleusers* What is Kimwitu? Kimwitu is a system that supports the construction of programs that use trees or terms as their main data structure. It is a `meta-tool' in the development process of tools. Its input is an abstract description of terms, annotated with implementation directives, plus a definition of functions on these terms. The output consists of a number of C-files that contain data-structure definitions for the terms, a number of standard functions on those terms, and a translation (in C) of the function definitions in the input (eg. term rewriting). The standard functions can be used to create terms, compare them for equality, read and write them on files in various formats and do manipulations like list concatenation. It can easily be interfaced with Yacc and Lex - the idea is that yacc and lex are used to do the parsing, and Kimwitu routines are used to built and manipulate the parse tree. It can also be used to 'link' components in a toolset - the idea is to define an abstract syntax tree (or more), that will be the interface object, the thing that will be passed between the tools. The various tools then read such an object from file, manipulate it and write the result to file, to be processed by another tool. Only one tool has to do the actual parsing, to build the tree used by the rest of the toolset. The tool builder does not have to worry about the file format: from the abstract description of the interface object Kimwitu generates the read and write routines. * What kind of functions can be defined? Functions in plain C, with the extension of a 'with' statement in which pattern matching can be expressed, and a 'foreach' statement that loops over the elements of a list. Rewrite rules. Unparse rules. * More information (and examples) can be found in the Kimwitu manual. kimwitu-4.6.1.orig/AUTHORS0100644000176100001440000000036007076113217014526 0ustar debacleusersAuthors of Kimwitu. Axel Belinfante . 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. kimwitu-4.6.1.orig/COPYING0100644000176100001440000004313207076113217014515 0ustar debacleusers 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. Copyright (C) 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. , 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. kimwitu-4.6.1.orig/INCOMPATBLE_CHANGE0100644000176100001440000000260107076113217016143 0ustar debacleusersWarning: Kimwitu V4_3 and newer contain incompatible changes wrt Kimwitu V4_0 and older. - the rewrite_ functions contain an additional second parameter for a (rewrite-) view. The default rewrite-view is 'base_rview'. void rewrite_( p, rview v ); - the 'view' type has been 'renamed' to 'uview' (short for Unparse-view), the default 'base_view' has been renamed to 'base_uview'. the '%view' keyword has been renamed to '%uview'. The old names can still be used, but you are encouraged to use the new ones. - there is an extended syntax for rewrite rules: pattern -> < view1 view2 view... : term >; (or even more general, just like unparse rules: pattern1, pattern2, ... -> < views : term >, < views2 : term2 >, ... ; ) and you can declare rewrite views as '%rview view1 view2 ...; In addition, Kimwitu V4_3 and newer contain an incompatible change wrt Kimwitu V4_2_1. (sorry for this confusion) - in V4_2_1 the print_ functions contain an additional (first) parameter (for a file pointer (or 0, for stdout) in V4_3 and V4_0 and older, print_ has only one parameter: void print_( p ); V4_3 and newer contain new fprint_ functions that contain two parameters: void fprint_( FILE* f, p ); See also the CHANGES file in the kc-distr source (src) directory. kimwitu-4.6.1.orig/LICENSE0100644000176100001440000000323407076113217014466 0ustar debacleusersKimwitu, a system that supports the construction of programs that use trees or terms as their main data structure. Copyright (C) 1988-1998 Axel Belinfante, University of Twente, Enschede, The Netherlands. All Rights Reserved 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 Output of Kimwitu (and of works based on Kimwitu) can be used without restriction (even though this output may contain fragments from the source code of Kimwitu (or of works based on Kimwitu), with one nota- ble exception (because Kimwitu is built using itself): The output generated by Kimwitu (and by works based on Kimwitu) from the source code of Kimwitu (and from the source code of works based on Kimwitu) is covered by the GNU General Public License. The structure-file-io reading and writing code has been derived, in part, from The Synthesizer Generator (tm), a product of GrammaTech, Inc, copyright (C) 1991, GrammaTech, Inc. Used with permission. GrammaTech and Synthesizer Generator, are tradenames of GrammaTech, Inc., One Hopkins Place, Ithaca, NY 14850, (607) 273-7340. kimwitu-4.6.1.orig/README0100644000176100001440000000745407076113217014351 0ustar debacleusersEverything you always wanted to know about the Term Processor Kimwitu --- or at least: how to handle this distribution How is this distribution structured? Binaries: kc-distr/bin/kc.sun3 kc-distr/bin/kc.sparc kc-distr/bin/kc.hp9000s300 The bin directory may be empty. Manual: kc-distr/man/kc.1 Tells you all you need to know to invoke kc (Kimwitu). Documentation: kc-distr/doc/* The documentation is in latex format. To print it, go (cd) to the kc-distr/doc directory and execute `make'. NOTE: the documentation may be distributed separately. NOTE: the most recent kimwitu changes and kimwitu language extension may not yet be covered in the documentation. The CHANGES file in the src directory always contains information about the most recent changes/extensions. However, extensions documented only in the CHANGES file may be experimental, and therefore may be changed. We try to limit the amount of such (incompatible) changes to as few as possible, and, if they are necessary, clearly document them, at least in the CHANGES file. Sources: kc-distr/src/* kc-distr/src/Gen/* The Term Processor was made using itself. The kc-distr/src directory contains the `real' *.k (Kimwitu input) sources and the *.[ch] kc-generated files that you need to bootstrap it. The kc-distr/src/Gen directory 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. How do I install Kimwitu? If the kc-distr/bin directory contains the binary you need, rename it `kc' and put it somewhere in your path. If not, go (cd) to kc-distr/src. Then execute `make'. If everything is ok, you will find a new binary `kc-distr/src/Gen/kc'. Put this somewhere in your path. Which architectures are supported? Well, supported... You should be able to compile Kimwitu on any UN*X machine. So far we have been able to compile Kimwitu on sun3 under SunOs 3.5 and 4.0.3, sun4 under SunOs 4.0.3 and 4.1.1, and hp9000s300 under HP-UX 6.5 and 7.0. The code generated by Kimwitu should compile on any UN*X machine, no matter on which architecture it was generated. We have been able to compile it on the machines/operation systems mentioned above. Do I need a running Kimwitu to install Kimwitu? No, you don't. The kc-distr/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 *.[ch] stuff in kc-distr/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 kc-distr/src directory, *not* in the kc-distr/src/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 new' in the kc-distr/src directory. If everything is ok, you will find a new binary kc-distr/src/Gen/kc.new. Who should I contact if I find anything that needs to be changed? (Or have other questions related to Kimwitu.) Axel Belinfante tel. +31/53 4893774 You can contact me for any question related to Kimwitu. Tele Informatics and Open Systems Dept. of Computer Science University of Twente P.O.Box 217 NL-7500 AE ENSCHEDE The NETHERLANDS For the `future proof' addresses see the LICENSE file in this directory. kimwitu-4.6.1.orig/man/0040755000176100001440000000000007147767364014256 5ustar debacleuserskimwitu-4.6.1.orig/man/kc.10100644000176100001440000000416307076113217014715 0ustar debacleusers.TH KC 1 "May 13, 1996" .SH NAME kc \- generate C code from Kimwitu input .SH SYNOPSIS .B kc .B [ .I file\fB.k\fI ... .B ] .br .B kc --version .SH DESCRIPTION .B kc reads the abstract syntax definition, function definitions, rewrite rules and unparse rules from the files given on the command line, or from the standard input if no file arguments were given, and generates for each .I file\fB.k\fI input file a pair of .I file\fB.c\fI and a .I file\fB.h\fI files that contain the translation of the functions defined in the corresponding .I file\fB.k\fI, in addition to the files that are always generated: .B csgiok.[ch], .B rk.[ch] and .B unpk.[ch] files, that contain respectively the CSGIO-, the rewrite- and the unparse-functions, and the .B k.c and .B k.h files that contain the grammar tables and the remaining `default' functions. If no command line file arguments are given, the translation of the user-defined functions will be generated in .B stdin.[ch] files. .LP .B kc does not unnecessarily overwrite a file: if a file would be overwritten with its own (identical) contents, it will not be touched. This makes it easy to write an efficient Makefile. .SH OPTIONS .IP \fB--version\fR 12 print the version number of .B kc and exit (this option is not available in .B kc versions older than V3_9P3) .SH GENERATED FILES .IP k.[ch] 12 the grammar and default functions .IP rk.[ch] 12 the rewrite view declarations and rewrite functions .IP csgiok.[ch] 12 the CSGIO functions .IP unpk.[ch] 12 the unparse view declarations and unparsing functions .IP \fIfile\fR.[ch] 12 translation of user-provided Kimwitu functions. .IP stdin.[ch] 12 translation of user-provided Kimwitu functions if no command line file arguments were given. .SH DIAGNOSTICS If an error is encountered in the Kimwitu input, an apropriate error message will be written on standard error, code generation will be suppressed and a non-zero exit value will be returned. The error messages should be self-explanatory. .SH AUTHOR Axel Belinfante, University of Twente, the Netherlands. .SH CONTACT By Email: .SH VERSION This manual page documents kc V3_* and newer. kimwitu-4.6.1.orig/src/0040755000176100001440000000000007147767367014275 5ustar debacleuserskimwitu-4.6.1.orig/src/AUTHORS0100644000176100001440000000036007076113235015315 0ustar debacleusersAuthors of Kimwitu. Axel Belinfante . 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. kimwitu-4.6.1.orig/src/CHANGES0100644000176100001440000013065707076113233015253 0ustar debacleusersChanges from V4_6 to V4_6_1: (2000/04/14) New license: This version of Kimwitu is distributed under the GNU Public License. This gives you the freedom to hack on the source, and redistribute it, without contacting us first. However, this does _not_ imply that we are no longer interested in your hacks/comments/feedback! In contrast, we are still very much interested in whatever you do with Kimwitu, and in particular, if you hack/change/extend Kimwitu, we are very interested in knowing about it, to see if your work can be integrated in this distribution. Contact: or . Apart from the new license, this version is identical to version V4_6. In particular, ``kc --version'' will return ``V4_6''. Changes from V4_5P5 to V4_6: (1998/03/18) New feature: added a --overwrite flag, that forces kc to always write the generated files, even if the contents of the files are not changed. IMPORTANT Bugfix in the code generation part: one routine in the code generation part depended on the order in which the C compiler evaluates the function arguments :-( (also, an attribute was not initialized properly) By accident, this has not caused problems until now, when kc was compiled with visual c++ 5.0 (windows nt). Minor cleanup in the Makefile. Added target for purify in the Makefile Minor cleanup in the code (which may make it hard use an very old kc to bootstrap, because we now use the %uview statement) Changes from V4_5P4 to V4_5P5: (1998/02/05) Incompatible change: renamed the fprintdotheader and fprintdotfooter routines into resp. fprintdotprologue and fprintdotepilogue, because these names better reflect their use (and they do _not_ print headers or footers in the usual (page header/footer) sense). Changes from V4_5P3 to V4_5P4: (1998/01/29) Porting improvement: with the check for _WIN32 we likely broke compilation by gcc on windows (via the cygnus kit). So, we refined the check for 'win32' system call use: we now use 'normal' system/library call names on windows if __GNUC__ is defined. (we probably should do this in better way, like we do KC_STDC) Changes from V4_5P2 to V4_5P3: (1998/01/29) Minor cleanup in the generated code (to get rid of some warnings) WARNING: one change involves casting a double to float, which may cause loss of data (but then again, we lost it anyway, probably...) Changes from V4_5P1 to V4_5P2: (1998/01/29) Minor change in the source code: we now use (and depend on) the macro KC_STDC being defined when we have an Ansi-C (like) compiler. This macro was introduced in version V4_5P1. Changes from V4_5 to V4_5P1: (1998/01/28) New feature: kc can now be compiled as 'console application' on windows nt by visual c++ 5.0 (by simply compiling all *.c files in the distribution) (see below for what we change to make this possible) Improved on the support for compilation of kc and -generated code as C++ code, and made it compile under windows (visual C++ 5.0) -- it compiles cleanly as a 'windows console application', when compiled as C code, but there is one minor problem when you use visual C++ 5.0 and compile it as C++ code (/TP flag): the flex skeleton file that we use (and that is 'present' in the generated (bootstrap) kimwl.c file) tries, only when compiled as c++ code(!!), to include a unistd.h file which is not avaikable in visual c++ 5.0. However, you can simply remove that include line from kimwl.c, if necessary, and then it compiles cleanly. The current .k source code now contains some more extensive checks to set 'ansi C mode' -- in the next version we can use the support that this version adds to the generated code: each generated file defines at the start of the file the macro KC_STDC if we can (should) use ansi-c 'mode'. You can set this macro as a -D flag for the compiler if necessary (if the current check doesn't detect _your_ ansi-c (like) compiler. If, however, the code _erroneously_ tries to use ansi-c mode, (while your compiler works better in K&R mode) then you can prevent KC_STDC being set, by defining the macro KC_NO_STDC in your Makefile as compiler -D flag, which overrules the above mentioned check. The current source and generated code now looks at the _WIN32 macro to see if 'windows' names (that start with an underscore _) should be used for a small number of system calls. Minor cleanup in generated code: silenced a (visual c++ 5.0) wanning about a couple of signed/unsigned int comparisons. New porting feature: It should now be easy to compile kc on a platform where the Makefile cannot be used! This is the result of a small change in the way we 'bootstrap' kc: we copy/link now all source files into the gen (compilation) directory, and therefore no longer need a -I flag to refer to the source directory, and therefore no longer have to worry about clashes between distributed source files and locally regenerated ones, so we can drop the 'bs' prefix of the 'bootstrap' source files. As a result, it should be possible to simply take all *.[ch] files from the distribution, put them in a directory, and compile the whole lot, to get a working kc!!! Changes from V4_4P1 to V4_5: (1998/01/27) Added support for compilation of kc and kc-generated code as C++ code. kc now compiles under g++ (sunos 5.5.1, gcc 2.7.2.2; linux 2.0.29, gcc 2.7.2.1) it should now be easier to compile kc-generated code as C++ code, because we now (in more places) look if __cplusplus is defined, instead of only looking if __STDC__ is defined (and, as it seems, at least one version of Visual C++ defines by default only __cplusplus and not __STDC__ . I still have to try to compile this version of kc with visual c(++)) Changes from V4_4 to V4_4P1: (1997/05/26) Bugfix in the kc input checker of the patterns in the .k input files: fixed a bug in the pattern compilation code, where the type of outermost pattern variables was lost (we need them sometimes for non-left-lineair patterns), and added the feature that we now can use the type of a non-left-lineair outermost pattern variable to set the type (phylum) of an outmost_pattern (if the type of the pattern variable was set earlier, in an earlier pattern. We now can use 'parameterized patterns' by writing something like: MyReturnType myRoutine(attrs $a, myType $st) { Nilattrs() & *: { return Nilids(); } Consattrs(Attr(a_tp = MyType(tp), a_id, tail), tail) & tp = *: { /* code which is executed if the 'tp' subtree in/below MyType * is equal to the 'st' argument given to the routine. * in this code we can 'read' variables a, st, a_tp, tp, a_id */ } Consattrs(*,tail) & *: { /* code which is executed if the 'tp' subtree in/below MyType * is NOT equal to the 'st' argument given to the routine. */ } } Minor cleanup in the (generated) code, to make it easier to port: we now do only something with SIGIOT if it has been defined. added code for SIGABRT, which is only enabled if SIGABRT is defined Changes from V4_4_H to V4_4: (1997/05/13) Minor cleanup in the generated code, mostly for the fprintdot functions. Changes from V4_4_G to V4_4_H: (1997/04/28) (internal, not distributed) Important fix: Fixed a very old bug in the pattern compiler that caused problems if we grouped multiple patterns with the same body (using separating comma's), and the patterns were non-left-lineair (ie. the same pattern variable occurred more than once in a pattern). For such patterns the generated code _should_ contain eq_... calls that check for the equality of the subterms that correspond with the non-left-lineair variables, but: this equality test was only generated for the last pattern in the comma-separated group.... fixed problems with 'base_view' (introduced withe the uview type): - in the generated code, it could happen that base_view occured twice in the view enum type - in the kc input checker, it could happen that :base_view was not recognized in the unparse rules. New features: updated the fprintdot code (now includes hashing to find duplicate edges between nodes ) changed fprintdot_ interface: added a whole list of parameters: (void) fprintdot_( FILE *kc_f, /* pointer to output file kc_p, /* phylum */ char *kc_root, /* string printed in for 'root' node */ char *kc_edge_prefix, /* string prefix of edge lables */ char *kc_edge_attributes, /* can contain 'dot' edge attributes */ boolean kc_phy_labels, /* do/don't print node labels */ boolean kc_use_ctxt, /* do/don't use the context when sharing */ boolean kc_prt_head_foot /* call the header/footer fns */ ); Important: the string arguments are not checked for 'funny' characters, so you have to escape them yourself, if you want to use them. - The edge_prefix argument can be used when you want to print multiple trees (dags) in one picture, and still be able to see which edges belong to which dag. - The edge_attributes argument can be used to specify edge attributes (for example, colors, fonts, font sizes etc). - The context usage is important to be able to distinguish multiple edges from the same (shared) 'sub-root' node to its sons. - If prt_head_foot is True, you don't have to call fprintdotheader and fprintdotfooter yourself, so instead of doing (void) fprintdotheader(FILE*); /* to start dot file */ (void) fprintdot_phylum(FILE*, phylum, ...., False); (void) fprintdotfooter(FILE*); /* to end this dot file */ you can now do (void) fprintdot_phylum(FILE*, phylum, ...., True); It only need to be set to False if you want to print multiple trees in one picture. - example of usage: fprintdot_expr( stdout, the_expr, "root node", 0, 0, True, True, True ); Other changes: Cleaned up our 'act' after we got a parse error. We now try to always cleanup the generated intermediate files if we get an error (previously there might remain a .kc.* file behind) added forgotten changes to the changes report for V4_4_E (see below) Changes from V4_4_F to V4_4_G: (1997/03/19) (internal, locally distributed) added very first version of functions that print 'dot'(*) output. can be called as: (void) fprintdotheader(FILE*); /* to start dot file */ (void) fprintdot_phylum(FILE*, phylum); (void) fprintdot_phylum2(FILE*, phylum2); ... (void) fprintdotfooter(FILE*); /* to end this dot file */ NB: This interface will most surely change. (*)dot is a tool that takes an input file that contains a textual description of a graph, (ie. nodes and edges), and draws it (outputs a.o. postscript, gif, ...) Changes from V4_4_E to V4_4_F: (1997/03/05) (internal, not distributed) replaced a variable name in the kc source that clashed with C++ keyword operator Changes from V4_4_C to V4_4_E: (1997/03/05) (internal, not distributed) minor change in the generated C code, to get rid of a (C++) compiler warning fixed a buggy bug which caused kc to allow redefinition of operators (ie: no complaint for: aap: Aap() | Noot( aap mies ); mies: Aap() | Noot( aap mies ); This bug seems to have been present for a very long time... Changes from V4_4_B to V4_4_C: (1997/03/05) (internal, not distributed) We now generate C code that can be compiled by a C++ compiler. Changes from V4_4_A to V4_4_B: (1997/03/05) (internal, not distributed) Experimental adittion: clause that will be executed after the end of the foreach body, in which variables are bound to the remaing elements in the lists: foreach( var1 & var2 ; listtype Cons(a,Cons(b,Nil)), listtype Cons(b,Nil) ){ C Code that will be execute only once, with var1 bound to a, and var2 bound to b } afterforeach(lvar1 & lvar2) { C code in which lvar1 is bound to Cons(b,Nil) and lvar2 bound to Nil } Changes from V4_3_1 to V4_4_A: (1997/02/24) (internal, not distributed) Introced more powerful pattern matching code: we now allow things like: with( exp1, exp2 ) { pattern1 & pattern2 : { C code, but no $0 allowed } ( pattern3, pattern4 ) & pattern5 : { C code, but no $0 allowed } } combined with foreach clauses that loop over several variables at the same time (as long as none of the lists is empty) foreach( var1 & var2 ; listtype exp1, listtype exp2 ) { C code (no $0) } foreach( var1 & var1 ; listtype exp1, listtype exp2 ) { C code (no $0) (only executed if both list elements identical (?)) } foreach( pattern1 & var2 ; listtype exp1, listtype exp2 ) { C code with $0 refering to the root of pattern1 (only executed if pattern1 holds) } foreach( pattern1 & $var2 ; listtype exp1, listtype exp2 ) { pattern3 : { C code with $0 refering to var2 } pattern4 : { C code with $0 refering to var2 } } foreach( pattern1 & $var2 & var3 ; listtype e1, listtype e2, listtype e3 ) { pattern2 & pattern3 & pattern4 : { C code but no $0 allowed } ( pattern5, pattern6 ) & pattern7 : { C code but no $0 allowed } } Changes from V4_3 to V4_3_1: (1996/12/10) Small bugfix in the generated rewrite code (problem introduced in V4_1), to get rk.c to compile, and to not generate dead code :-) Changes from V4_2_1 to V4_3: (1996/12/06) WARNING: ONE INCOMPATIBLE change back to V4_0 behaviour: once again, the print_ functions have only one (phylum) argument. This change undoes the incompatibility introduced with the two-argument print_ functions. We now generate separate fprint_ functions that take two arguments: void fprint_( FILE* f, p ) Other changes: integrated supplied code that gives bettor error messages if bison is used as parser generator. To use this, you need perl in your path. The (Unix, sunos) bison output is part of the distribution, so you don't need bison nor perl to use this, until you decide to change kimwy.y. By default it is enabled. It can be disabled by commenting out a few lines in the Makefile. Changed the syntax for Cexpression: we now no longer allow it to contain a 'bare' comma ','. Comma's are now only allowed if they appear between () or [] inside a Cexpression (or inside a quoted string) (questions: should we also take {} into account?) This change is made because, sometime in the future, we want to use comma-separated lists of Cexpressions. So, not allowed is: a,b,c Allowed is eg.: a(b,c) (a,b,c) Fixed a small font-changes problem in the man page. Changes from V4_2 to V4_2_1: (1996/11/08) Minor bugfix: added a missing prototype to the generated csgiok.c file: int kc_set_csgio_hashtablesize(int kc_i); Changes from V4_1 to V4_2: (1996/10/29) (internal, not distributed) New parser error recovery feature (by default disabled, use very strongly DIScouraged): tried to integrate a parser error recovery feature in the Kimwitu parser. As a side effect, we give now slightly better syntax error messages. The error recovery can be enabled by commenting out two(?) lines in the Makefile to use bison as parser generator, and use the supplied bisonsim.rec parser skeleton. However, take care, because it is not too well integrated, and likely gives core-dumps when the recovery algorithm combines already created abstract syntax trees in unexpected ways (ie. causes an Operator to be called with subtree arguments that have the wrong type (phylum). Changes from V4_0 to V4_1: (1996/10/29) (internal, not distributed) WARNING: TWO (2) INCOMPATIBLE new features that break your existing code!! INCOMPATIBLE new feature: you can now use views in rewrite rules. However, this means that you have to update existing code to keep it working: you have to replace all rewrite_(p) calls by rewrite_' term ';' /* backwards compatibility */ | pattern '->' rwclauses ';' rwclauses: rwclause | rwclause [rwclauses] rwclause : '<' rviews ':' term '>' rviews : rview rviews | /*empty*/ The rviews ars simple identifiers, just like the views in unparse rules. However, the rewrite-views and unparse-views are different name-spaces, ie. an identifier can not be used as both a rewrite-view and an unparse-view. Because of this, the 'view' type (from the unparse views) is 'obsoleted' by the new 'uview' type (to which 'view' is typedef-ed, for backwards compatibility), and 'base_view' is 'obsoleted' by 'base_uview' ('base_view' is an alias for backwards compatibility). The '%view' keyword is 'obsoleted' by the '%uview' keyword. For rewrite-views the new 'rview' C type is introduced, with as default the 'base_rview'. The 'backwards compatible' variant of the rwrule is equivalent with both the following new-style forms: rwrule : pattern '->' term ';' rwrule : pattern '->' '<' ':' term '>' ';' rwrule : pattern '->' '<' 'base_rview' ':' term '>' ';' For debugging the generated rk.v file contains a char* arrary kc_rview_names that can be indexed with an rview, such that kc_rview_names[my_view_name] === "my_view_name" This leads to the INCOMPATIBILITY that the rewrite_ functions now have a second parameterm the 'rview': rewrite_( p, rview v ); INCOMPATIBLE new feature: added a file argument to the print_ routines, as first parameter: void print_( FILE* f, p ); For debugging purposes, if f == 0 output is printed to standard output. However, this means that you have to update existing code to keep it working: you have to replace all print_(p) calls by print_ in the generated k.h file (because it uses FILE* in declarations - rearranged the UNIQMALLOCINIT and friends macros - added BUCKETMALLOCINIT and friends macros - added a number of #line statements in with and foreach statements - added checks in the rewrite code to avoid creating a new term when nothing was changed. - fixed the code that checks for literal ints and floats - changed the kc_ht_create and kc_ht_create_simple routines to call the new kc_ht_create_bucket_management routine (with some default args) Changes from V3_6 to V3_7: (1992/11/10) INCOMPATIBLE CHANGE: - changed the syntax of the foreach-pattern-statement; it is now foreach( pattern; listphylum expression ) { C-text } ie we removed the '/' before the pattern, and we now interpret a pattern that contains only an outermost variable as a variable, and we warn if that variable is an operator (ie, if someone tried to use the 'degenerate' pattern syntax) New Feature: - added support for `float' atomic phylum - added 'out of memory callbacks (kc_set_out_of_storage_handler) Other changes: - fixed the code that handles outermost non-leaf variables (like a = pattern) in patterns, esp. in rewrite rules - changed the hashfunctions (should reduce number of collisions) - fixed the kc_print_all_hashtable_statistics routine - added a warning for the foreach-statement foreach( id; listphylum expression ) { C-text } to warn when `id' is the name of an operator (see above) - fixed the `return (function-return-type)0;' code that is printed in the `no-default-in-with' case in with-statements in non-void functions: this code should now only be printed if we know that `(function-return-type)0' is a valid expression (ie. not a struct nor a union or an unknown typedef) - fiddled with memset in order to shutup lint - we now include k.h (guarded!) in the other generated include files to protect careless users - fixed a problem in generated code when a pair of { } was missing (in the code generated for the 'default' cases in rewrite rules, unparse rules or with-statement) - csgio routines should now in all error cases return with an error string (there were cases where they would simply abort) - fixed an obscure bug that caused problems if nullary or binary operators do only occur as list operators - removed a couple of annoying asserts in kc that were not really necessary (error messages had already been reported before the asserts were reached) - added a -DUSE_STAT flag in the kc Makefile (to disable the use of fstat) in kc itself (fstat is not used in the generated code) - we no longer include memory.h in main.k because of problems with non-ansi versions of it. Gimmick: - added a version string for Sun Unbundled `version' program ;-) Changes from V3_5 to V3_6: (1992/07/10) INCOMPATIBLE CHANGES: - we now use the kc_malloc_t type only to interface to the library malloc routines. All kc malloc routines now use (kc_voidptr_t, a typedef to) void*. This is only a problem, and even then not a serious one, for those that defined their own malloc routines for use by kc-generated code, via the (NON)UNIQMALLOC macros. - we now generate function prototypes in all generated files. These prototypes are automatically used if the C-compiler defines the symbol __STDC__ or _cplusplus. In the k.[ch] files we need the ANSI-C elipsis notation (...) for the create-function prototype in the KC_OPERATOR_INFO. Old(er) versions of gcc (eg. 1.37.1) can not handle this. If this happens with your gcc, either get a newer version, try to use your `domestic' cc, or try the gcc -traditional flag. Best of above solutions is to get a new version of gcc, anyways. BACKWARDS COMPATIBLE CHANGE: - the include keywords now have/expect a KC_ prefix instead of KIMW_ Use of KIMW_ will cause a warning, but still works as expected. Other changes: - added a check to make sure that we always can infer the type of a pattern-expression from its pattern(s). If not an error is reported. - fixed the type checking of pattern variables: it now also works ok with nested with-expressions. - we now generated function prototypes in the generated .[ch] files. a warning (not an error) is given when it was not possible to find the type of a formal parameter of a function. - we now use the (ANSI-C) rename and remove routines if possible, instead of link/unlink. - it is now possible to use fstat in the different routine in main.k, to first check if the file-size differ, before actually comparing the files. - added a KC_CSGIO_NO_SHARING define in k.c, that can be used to turn off the use of node-sharing features by the CSGIOwrite routines. - all void* types have been replaced by kc_voidptr_t, for easy port to machines where void* type is not available - we now no longer need -ll to compile kc itself (as long as we don't define LEXDEBUG) - new lint rule (and macro) in the kc Makefile Changes from V3_4 to V3_5: (1992/06/25) - long strings in uparse rules may be mapped onto more than one printer call, to avoid problems with the string length in the generated code. Strings in C code are (again) simply copied into generated files. - for strings in the unparse rules that contain embedded new-line characters, in the generated strings the (escaped) new-line character (\n) is at the start of the `next' line, instead of at the end of the `current' line. The result is that it is save to write (| indicates the `left margin'): |Operator(*) -> [: |"#ifndef foo |# define foo |#endif foo |" ]; The above will be translated into something like: | (*kc_printer)( "#ifndef foo\ |\n#ifndef foo\ |\n# define foo\ |\n#endif foo\ |\n", kc_current_view ); - many minor changes to clean up the code (and silence lint), ie. - removed a number of unused variables (and generated labels) - many local functions/variables are now declared `static' - we now #include in case of an Ansi-C compiler - added a few declarations of non-Ansi, Unix standard library routines (like read, link, unlink, close etc.) - as a consequence of the previous changes, it should now be easy to compile kc with Sun bundled cc. - fixed a bug that caused the generation of zero-element array definitions (like `YYSTYPE kc_subtemp[0];') when all operators are nullary. - fixed the node-sharing in the csgio routines (introduced in V3_4) - changed the strings sharing in the csgio routines. - we now generate only one enum type for all prod_sel's, this may be useful during debugging, as the debugger may now display the enum-name instead of its int value in almost all cases. - quoted literal double-quotes ( '"' changed into '\"' ) in the yacc input, because not all yacc's treat them correctly (watch for sun's yacc) - the generated *.h files can now (again?) be #included by C++, as in extern "C" { #define KC__P(X) X /* to switch on the prototypes */ #include "k.h" #include "any.h" /* generated from `any.k' */ #include "csgiok.h" #include "unpk.h" } However, it is advised to *not* switch on the prototypes while compiling the normal .c files, because it will only result in a complaining ansi-C compiler, probably because the *.c files still use the `old' C function declaration style. Changes from V3_3 to V3_4: (1992/06/01) INCOMPATIBLE CHANGE: - added sorting of the operator map, string and node sharing to the CSGIO routines. The programmers interface has not changed, but structure files with node sharing cannot be read by the `old' CSGIOread routines. Regeneration of the code (= rerun kc), and recompilation should be sufficient to update existing programs. Strings are shared always, nodes are only shared if they are shared (= have the same pointer) in the program that calls CSGIOwrite. Other changes: - fixed a small bug that caused kc to crash after reporting some errors for erroneous input. - minor cleanup to shut up lint. Changes from V3_2 to V3_3: (1992/05/25) (internal, not distributed) - added patchlvl.h file to the sources - we now allow multiple include redirect keywords to follow a %{ - added new hashtable routines, combined with multiple `uniq' storage classes See separate file for the`programmers interface to hash routines'. - added %storageclass declaration %storageclasse uniq1[,] uniq2[,] ... uniqn; - a special comment /*EMPTY*/ is recognized and passed on to the generated C files. The use of /*EMPTY*/ in empty unparse rules/patterns helps to shut up CodeCenter (Saber-C) - minor cleanup of the generated code, to avoid unnessary lint complaints. - added code to suppress kc-caused 'function has return(e); and return;' complaints by lint. if such a comment appears the problem should be in the user code. Changes from V3_1 to V3_2: (1992/02/14) - Fixed a bug in the kc_ci_strcmp routine that is used as cases insensitive strcmp. The bug caused this routine to always return the value 0. Changes from V3_0 to V3_1: (1992/02/12) - Fixed a bug in the generated csgiok.c code, that caused the CSGIOwrite routines to return a non-null result even if no error occured. Changes from V2_8 to V3_0: (1992/02/07) INCOMPATIBLE CHANGES: - the copyk.[ch] files are no longer generated; the copy functions are encorporated in the k.[ch] files. A simple `rm -f copyk.[ch]; touch copyk.c copyk.h' will make most old Makefile's work without changes. - the return type of emalloc (MALLOC) & friends (and argument type of erealloc) is now kc_malloc_t (mapped to char* by default) (in preparation of ANSI-C) - the type of the size argument of emalloc (MALLOC) & friends is now kc_size_t (mapped to unsigned by default) (in preparation of ANSI-C) - (support for) `integer' phylum removed - the KC_FIELD macro no longer exists (at least in the V3_0 version) Other changes: - most code completely rewritten - introduced new superflous (pattern) variables in the source code :-) - shorter file names to be MS DOS compatible. - most generated functions are now table driven, polymorpheus. they are to be called via the `traditional' function names, to allow error checking with lint, and avoid problems with casts. - the pattern matching code has been completely rewriteen - the switch-cases and the with-cases have been combined; dollar variable in a with-clause now refer to subterms of the `enclosing' pattern. - combination of for- and with- clauses (as in the function- definitions with a $ in the argument-list. for ( $ ; ) { } - new syntax for use of the for-clause as a filter: for ( / ; ) { } - multiple patterns can be grouped with the same rewrite-rule right-hand-side, unparse rule or Ctext; the only limitation is that the variables in the the patterns should be of the same type. example: , -> ; , -> [: ]; , : { } /* in with-case */ - the same pattern-syntax can be used in all patterns - new pattern items: /* as _outermost_ pattern, as in switch-cases in kc before V3_0 */ '=' /* to introduce non-leaf variables */ /* to put in a literal int, eg 684 */ /* to put in a literal "quoted string" */ the can be put for a casestring or a nocasestring, the interpretation will be done based on the context. - it is now possible to declare the views that are being used, one or more %view , , ... , ; statements. The % should be the first character of the line. If the Kimwitu input contains one or more %view declarations, then errors will be given for all views that are used but not declared. Typing errors in view names will be caught in this way. For backwards compatibility Kimwitu input does not _have_ to contain a %view declaration. - grouping of unparse-items is now possible, using ${ and $} as `special unparse-items' which are replaced by resp { and } in the generated code, in eg. Pattern() -> [: { if ( ) } ${ $} { else } ${ $} ]; NOTE: it was already possible to write the above example with ${ and $} in the included C code, as: Pattern() -> [: { if ( ) ${ } { $} else ${ } { $} } ]; but the new syntax makes it more useful to look for matching brackets in an editor (eg using the % command in vi) - it is now possible to unparse an attribute of an attribute (of ... ) using (as expected) patternvariable -> a -> b ... Changes from V2_6 to V2_8: (1991/08/27) INCOMPATIBLE CHANGES: - changed initialization routines to allow replacement of a term by another one at initialization time, simply by assigning to the $0 variable in the initialization code NOTE: it is no longer allowed to put a plain `return;' in initialization code; such a `return;' should be replaced by `return $0;' - changed the unparsing syntax for souble-quoted (") strings: strings are now allowed to span multiple lines, the line-breaks in such a string do also appear in the generated code (they are replaced by a \n\ in the generated code) Other Changes: - reorganized parts of the code for easier compilation - removed superflous pattern variables in the source code - added (type checking) checks for the user defined unparsing rules - changed unparsing syntax: it is now possible to put casted variables in the unparse rules, to unparse phyla that are stored in (attibutes of) variables for which kimwitu does not know the type (eg. global variables, or variables that are introduced in the Ctext in an unparse rule). eg. the following unparse rule (not useful, but anyway:) Example(x, y) -> [: { phylum z; z = x; } (phylum)z ]; first instroduces a new (local) variable `z' of phylum `phylum' that is unparsed Syntax: '(' ')' or '(' ')' ':' This will result in a call: unparse_( , kc_printer, kc_current_view ) or unparse_( , kc_printer, ) The gen.k sources of kc contain numerous examples of this. - changed the definition of the KC_FIELD macro, to make gcc `eat' the generated code - added (redefinable) macro INTHASH, that defines the hash function to be used for ints - added (redefinable) macro KC_BUCKET_INC, that defines the size of the increments in the hasbucketsize Version V2_7 was an `internal' version, for which no changes are given here. Changes from V2_5 to V2_6: (1991/02/13) - replaced the assert_( var ) macros by assert_( var, char *varstring ) macros that give better error messages - fixed the problem with the negative milli-seconds in the kc_time_statistics macros - added a `HEADER' keyword for included stuff Changes from V2_4 to V2_5: (1991/01/18) - each input file is now parsed separately, to allow better error messages for for example missing close brackets - added a new pair of output files: copyk.[ch] - added copy_ functions in (new filenames) copyk.[ch] - we no longer remove all the generated files when an error was found in an input file of Kimwitu - minor clean-up in the generated code, to reduce lint error messages - fixed the include mechanism for inclusion in the rewrite (rk.[ch]) files - added the foreach-statement - we now allow dollar variables in the intialisation code and in the arument of the with- and the foreach statement, and in the unparse rules - added a few checks on the use of dollar-variables - added/fixed the code that collects time statistics on a sun[34] enable this code by adding -DKC_TIME_STATISTICS, use the calls void kc_print_time_statistics( FILE *); and void kc_reset_time_statistics(); (actually: they are macros) - you should now use -DKC_OPERATOR_STATISTICS to be able to use void kc_print_operator_statistics(/ FILE *) - introduced new names for the structs and unions - speeded up the kc_ci_strcmp function - added a malloc_uniq function, to malloc stuff that will never be freed - introduced UNIQ{MALLOC,FREE} and NONUNIQ{MALLOC,FREE} macros, to make it easier to use your own malloc package. We now use MALLOC,REALLOC,FREE for the internal bookkeeping, UNIQ{MALLOC,FREE} for the tree/term nodes that will never be freed, and NONUNIQ{MALLOC,FREE} for the tree/term nodes that can be freed. - introduced freelist_ functions, that free list nodes, but not the elements of the list - replaced the recursive length_ function by an iterative one - added a file argument to the kc_print{time,hash,operator}_statistics - speeded up the assert macros: now they only call kc_assert if the assertion fails - fixed the generated pattern matching code: the pattern testing code for the with-clause and the unparsing rules should now be generated in the correct order - we now allow ${ and %} to escape { and } in C-texts - we now define the Kiwitu internal scanner buffer size to be BUFSIZ (it was smaller on HP's) - ?????????????? Changes from V2_3/V2_2 to V2_4: (1990/10/29) - introduced phylum/operator maps that hold info about the phyla/operators - added code to collect statistics about the operator usage. enable this code by adding -DKC_STATISTICS to the cc flags during compilation of the generated code. The statistics can be printed using void kc_print_operator_statistics(/*void*/) - added assert_ macro definitions & calls. Those macros test whether their argument != NULL & has a prod_sel in the range of using assert. They appear in the generated function code direct at the start of each function - speeded up the csgio reading code - fixed reading/writing of unprintable characters in CSGIO format. - fixed strategy for finding unparse_view/pattern combination - added code such that kimwitu detects write errors, eg. because the file system is full V2_2 and V2_3 are almost identical. No changes mentionable. Changes from V2_1 to V2_2/V2_3: (1990/09/19) - reduced the number of strings appearing in the generated code - added unparsing code - added special comments before and after each generated routine, such that it can be removed easily using eg. sed Changes from L4Mar90Plus to V2_1: (1990/08/30) - updated everything to conform to the manual, eg. new interface for CSGIO functions, removed kc_init() routine, only generate new files if they differ from the old ones, allow expressions instead of variables in the with-expression, allow extension of phyla with new operators, attrtibutes or initialization - changed HASH routines kimwitu-4.6.1.orig/src/COPYING0100644000176100001440000004313207076113235015304 0ustar debacleusers 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. Copyright (C) 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. , 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. kimwitu-4.6.1.orig/src/LICENSE0100644000176100001440000000323407076113233015253 0ustar debacleusersKimwitu, a system that supports the construction of programs that use trees or terms as their main data structure. Copyright (C) 1988-1998 Axel Belinfante, University of Twente, Enschede, The Netherlands. All Rights Reserved 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 Output of Kimwitu (and of works based on Kimwitu) can be used without restriction (even though this output may contain fragments from the source code of Kimwitu (or of works based on Kimwitu), with one nota- ble exception (because Kimwitu is built using itself): The output generated by Kimwitu (and by works based on Kimwitu) from the source code of Kimwitu (and from the source code of works based on Kimwitu) is covered by the GNU General Public License. The structure-file-io reading and writing code has been derived, in part, from The Synthesizer Generator (tm), a product of GrammaTech, Inc, copyright (C) 1991, GrammaTech, Inc. Used with permission. GrammaTech and Synthesizer Generator, are tradenames of GrammaTech, Inc., One Hopkins Place, Ithaca, NY 14850, (607) 273-7340. kimwitu-4.6.1.orig/src/Makefile0100644000176100001440000004060307076113221015704 0ustar debacleusers#/* # * The Termprocessor Kimwitu # * # * Copyright (c) 1991 University of Twente, Dept TIOS. # * All rights reserved. # * # */ # This is the makefile for kc. # # Usage: make [ GENDIR=yourgendirpath ] # will bootstrap kc in directory GENDIR, by default set to ./Gen # Usage: make new [ GENDIR=yourgendirpath ] # will make a new kc in directory GENDIR, by default set to ./Gen, # using an existent version, that should be in the PATH # RCSMAKEID = '"@('$(HACK)')$$Id: Makefile,v 2.78 1998/03/18 16:55:24 belinfan Rel $$"' # # files: # kimwy.y grammar # kimwl.l lexicals # kimw.*.k all the rest # note that the ORDER of the .k files is IMPORTANT (for cat / KC) SHELL = /bin/sh ROOT = . GENDIR = Gen DISTRDIR=$(ROOT)/Distr # because we use $(KIMWITUVERSION) as symbolic RCS name, # KIMWITUVERSION is *not* allowed to contain dots: we use _ instead KIMWITUVERSION = `fgrep KIMWITUVERSION $(PATCHLEVELFILE) | awk '{print $$3}' | tail -1` # The stuf below makes that RCSVERSIONID contains the version string, that # can be used in: cc -DVERSION=$(RCSVERSIONID) # This can be done a lot easier if cpp allows string concatenation as in ANSI C # Currently: we put the RCS keyword for the RCSVERSIONID in a separate macro, to # avoid expansion by RCS # Apart from that, we have to hack in the hash (#) symbol, currently using tr. KIMWITUCOPYRIGHTDEFINE = KIMWITUCOPYRIGHT $(RCSCOPYRIGHTID) MAKEFILEVERSIONDEFINE = RCSMAKEID $(RCSMAKEID) NODEFAULTINWITHDEFINE = #-DKC_NO_DEFAULT_IN_WITH='"kc: internal error: no default action defined in with at line %s%d of file %s\\n"' HACK = `echo a | tr 'a' '\043'` RCSKEYWORD = Author RCSCOPYRIGHTID = '"@('$(HACK)')$$$(RCSKEYWORD): $(RESTRCSCOPYRIGHTID) $$"' RESTRCSCOPYRIGHTID = Kimwitu version: '$(KIMWITUVERSION)' (c) 1990-1996 University of Twente KIMWITUVERSIONSTRINGDEFINE = KIMWITUVERSIONSTRING '"'$(KIMWITUVERSION)'"' KIMWITURELEASEDEFINE = KIMWITURELEASE $(RCSRELEASE) RCSRELEASE = '"@('$(HACK)')RELEASE VERSION $(RESTRCSRELEASE)"' RESTRCSRELEASE = '$(KIMWITUVERSION)' # If this defines KC_USE_STAT then fstat will be used in main.k USESTATDEFINE = KC_USE_STAT OLD = $(KIMWITUVERSION) NEW = $(KIMWITUVERSION) PATCHPREFIX = kc-patch. PATCHFILE = "$(PATCHPREFIX)$(OLD)to$(NEW)" RLOGFLAGS= -r$(OLD): # # List the source/object etc files.. Note the use of the # macro substitution to have to list only once the .k files and the # files that are generated from them... # We patch the K__SOURCE variable during the recursive make call # to patch in the path to the source directory K__FILES = \ abs.X \ main.X \ parse.X \ error.X \ defocc.X \ extocc.X \ useocc.X \ util.X \ gen.X \ gutil.X \ pat.X K__GENS = unpk.X k.X rk.X K__SOURCE = $(K__FILES:X=k) K__OBJS = $(K__FILES:X=o) $(K__GENS:X=o) K__CFILES = $(K__FILES:X=c) $(K__GENS:X=c) K__HFILES = $(K__FILES:X=h) $(K__GENS:X=h) PATCHLEVELBASENAME = patchlvl.h PATCHLEVELFILE = $(ROOT)/$(PATCHLEVELBASENAME) BISONSIMPLERECOVERFILE = $(ROOT)/bisonsim.rec BISONSIMPLEERRMSGFILE = $(ROOT)/bisonsim.msg ERRMSG_H_BASENAME = errmsg.h ERRMSG_H_FILE = $(ROOT)/$(ERRMSG_H_BASENAME) ERRMSG_PL_FILE = $(ROOT)/errmsg.pl DEF_H_FILE = defs.h C_SOURCE = H_SOURCE = $(PATCHLEVELFILE) $(ERRMSG_H_FILE) K_SOURCE = $(K__SOURCE) L_SOURCE = $(ROOT)/kimwl.l M_SOURCE = $(ROOT)/Makefile Y_SOURCE = $(ROOT)/kimwy.y S_SOURCE = $(BISONSIMPLERECOVERFILE) $(BISONSIMPLEERRMSGFILE) PL_SOURCE = $(ERRMSG_PL_FILE) K_OBJS = $(K__OBJS) K_CFILES = $(K__CFILES) K_HFILES = $(K__HFILES) LY_CFILES = kimwy.c kimwl.c LY_HFILES = kimwy.h kimwy.hh LY_TFILE = y.output LY_OBJS = $(LY_CFILES:c=o) DF_HFILES = $(DEF_H_FILE) $(DEF_H_FILE)h D_FILES = $(ROOT)/LICENSE $(ROOT)/CHANGES $(ROOT)/README ERRMSG_C_FILE = errmsg.c SOURCE = \ $(C_SOURCE) \ $(H_SOURCE) \ $(K_SOURCE) \ $(L_SOURCE) \ $(M_SOURCE) \ $(Y_SOURCE) \ $(PL_SOURCE) \ $(S_SOURCE) # ERRMSG_OBJ is defined below (if it is to be used) OBJS = $(LY_OBJS) $(K_OBJS) $(ERRMSG_OBJ) CFILES = $(LY_CFILES) $(K_CFILES) HFILES = $(LY_HFILES) $(K_HFILES) $(DF_HFILES) OTHERFILES = tstamp.kc BOOTSTRAPSOURCE = \ $(C_SOURCE) \ $(H_SOURCE) \ $(L_SOURCE) \ $(M_SOURCE) \ $(Y_SOURCE) \ $(PL_SOURCE) \ $(S_SOURCE) \ $(K_CFILES) \ $(K_HFILES) \ $(OTHERFILES) \ $(D_FILES) # Now that we have changed the include path to only the GEN directory, # we no longer need a separate BS_PREFIX, so unset it (so it will be empty) ## BS_PREFIX = bs # # setting of (architecture dependend) flags etc. # # yacc flags: we need both the -d and -v flags YFLAGS = -d -v YACC = bison -y # Next two macros enable the use of an error-recovering bison. # To use them, also use bison as your parser generator # NOTE: this doesn't really work right now (do not use!) ##BISONENV = env BISON_SIMPLE=$(BISONSIMPLERECOVERFILE) ##YCFLAGS = -DBISON_RECOVER # Next three macros enable the use of a bison that gives better error messages. # To use them, also use bison as your parser generator # and use the errmsg.pl perl script to generate the errmsg.c file # This can be used together with YYERROR_VERBOSE BISONENV = env BISON_SIMPLE=$(BISONSIMPLEERRMSGFILE) YCFLAGS = -DYYERRMSG_VERBOSE ERRMSG_OBJ = errmsg.o # Next macro enables the use of better error messages with bison. # To use it, also use bison as your parser generator YCFLAGS1 = -DYYERROR_VERBOSE LEX = flex -l # LFLAGS = -d INCLUDES = -I. #GENDEFINES = -DYYDEBUG=1 #GENDEFINES = -DMYLEXDEBUG #GENDEFINES = -DYYDEBUG=1 -DMYLEXDEBUG DEFINES = $(NODEFAULTINWITHDEFINE) $(YCFLAGS) $(YCFLAGS1) $(GENDEFINES) # the Makefile/Kimwitu version define only necessary for kimwc.c KIMWC_CDEFINES = $(MAKEFILEVERSIONDEFINE) $(KIMWITUCOPYRIGHTDEFINE) $(USESTATDEFINE) $(KIMWITURELEASEDEFINE) $(KIMWITUVERSIONSTRINGDEFINE) DEBUG_CFLAGS = -g #DEBUG_CFLAGS = -pedantic -ansi -O2 -Wall SABER_ANY_ARCH_CFLAGS = $(DEBUG_CFLAGS) $(INCLUDES) ANY_ARCH_CFLAGS = $(SABER_ANY_ARCH_CFLAGS) $(DEFINES) HP_CFLAGS = -Wc,-Ns10000 -Wc,-Np300 LINT_HP_CFLAGS = -Ns100000 -Na100000 -Zn50000 -Zt50000 -Np300 # ARCH_DEPEND_CFLAGS = `(if hp9000s300 ; then echo $(HP_CFLAGS); fi) 2>>/dev/null` # LINT_ARCH_DEPEND_CFLAGS = `(if hp9000s300 ; then echo $(LINT_HP_CFLAGS); fi) 2>>/dev/null` ANY_ARCH_MALLOC_LDFLAGS = HP_MALLOC_LDFLAGS = -lmalloc ARCH_DEPEND_MALLOC_LDFLAGS = `(if hp9000s300 ; then echo $(HP_MALLOC_LDFLAGS); fi) 2>>/dev/null` CFLAGS = $(ANY_ARCH_CFLAGS) $(ARCH_DEPEND_CFLAGS) # LIBS = -ll SABER_CFLAGS = $(SABER_ANY_ARCH_CFLAGS) $(ARCH_DEPEND_CFLAGS) LINT_CFLAGS = $(INCLUDES) $(LINT_ARCH_DEPEND_CFLAGS) $(GENDEFINES) # MALLOC_LDFLAGS = $(ANY_ARCH_MALLOC_LDFLAGS) $(ARCH_DEPEND_MALLOC_LDFLAGS) KC = kc CC = gcc CPP = /usr/lib/cpp # LN = ln -s LN = cp -f CP = cp -f RM = rm -f PURIFY = /Tios/Language/Purify/purify-4.0-solaris2/purify TARGET = kc.new BOOTSTRAPTARGET = kc GENDEPEND = kc.depend GENSABER = kc.saber GENALLSOURCE = GENallsource GENCLEAN = GENclean GENLINT = GENlint # # The Main targets & rules # default: $(GENDIR)/$(BOOTSTRAPTARGET) pure: $(GENDIR)/$(BOOTSTRAPTARGET).pure new: $(GENDIR)/$(TARGET) new.pure: $(GENDIR)/$(TARGET).pure depend: $(GENDIR)/$(GENDEPEND) saber: $(GENDIR)/$(GENSABER) allsource: $(GENDIR)/$(GENALLSOURCE) clean: $(GENDIR)/$(GENCLEAN) lint: $(GENDIR)/$(GENLINT) $(GENDIR)/$(BOOTSTRAPTARGET) $(GENDIR)/$(BOOTSTRAPTARGET).pure:: \ $(GENDIR)/bootstrap.kc $(GENDIR)/$(BOOTSTRAPTARGET) $(GENDIR)/$(BOOTSTRAPTARGET).pure \ $(GENDIR)/$(TARGET) $(GENDIR)/$(TARGET).pure \ $(GENDIR)/$(GENDEPEND) $(GENDIR)/$(GENSABER) \ $(GENDIR)/$(GENALLSOURCE) $(GENDIR)/$(GENCLEAN) \ $(GENDIR)/$(GENLINT) :: @echo "Making $@..." @case $(GENDIR) in \ /*) olddir=`pwd`;; \ */../*) olddir=`pwd`;; \ */./*) olddir=`pwd`;; \ *) olddir=`echo $(GENDIR)|sed 's/[^\/][^\/]*/../g'`;; \ esac; \ if test ! -d $(GENDIR); then mkdir $(GENDIR); fi; \ cd $(GENDIR); \ k__source=""; \ for f in $(K__SOURCE); \ do k__source="$${k__source} $${olddir}/$${f}"; done; \ $(MAKE) -e -f $${olddir}/Makefile \ ROOT=$${olddir} \ K__SOURCE="$${k__source}" \ `basename $@` # When bootrapping (i.e. building kc from .[ch] source), # we _link_ the standard header files and kc-generated code # (because it is unlikely to be overwritten - is that true for kc-generated?) # and we _copy_ the other generated files # (because the may be changed by a re-run yacc(bison) or (f)lex) $(GENDIR)/bootstrap.kc: @echo "Setting up $(GENDIR)..." case $(GENDIR) in \ /*) olddir=`pwd`;; \ */../*) olddir=`pwd`;; \ */./*) olddir=`pwd`;; \ *) olddir=`echo $(GENDIR)|sed 's/[^\/][^\/]*/../g'`;; \ esac; \ if test ! -d $(GENDIR); then mkdir $(GENDIR); fi; \ cd $(GENDIR); \ k__source=""; \ for f in $(K__SOURCE); \ do k__source="$${k__source} $${olddir}/$${f}"; done; \ for f in $(K__CFILES) $(K__HFILES) $(H_SOURCE); \ do $(RM) $${f}; $(LN) $${olddir}/$${f} $${f}; done; \ for f in $(LY_CFILES) $(LY_HFILES) $(LY_TFILE) $(DF_HFILES) $(ERRMSG_C_FILE); \ do $(RM) $${f}; $(CP) $${olddir}/$(BS_PREFIX)$${f} $${f}; done; \ touch tstamp.kc; \ touch bootstrap.kc; # When building a new kc from .k source we copy nothing here. # However, the PATCHLEVELFILE and ERRMSG_H_FILE will be copied by # the dependencies that are written for them below. # running KC on the .k files # HACK because cpp dumps core tstamp.kc: $(K_SOURCE) #if test -f unpk.c; then mv unpk.c old.unpk.c; fi #if test -f util.c; then mv util.c old.util.c; fi #if test -f gutil.c; then mv gutil.c old.gutil.c; fi #if test -f pat.c; then mv pat.c old.pat.c; fi $(KC) $(K_SOURCE) #egrep -v '^#line' unpk.c > ok.unpk.c #if test -f old.unpk.c; then mv old.unpk.c unpk.c; fi #-cmp -s ok.unpk.c unpk.c || mv ok.unpk.c unpk.c #egrep -v '^#line' util.c > ok.util.c #if test -f old.util.c; then mv old.util.c util.c; fi #-cmp -s ok.util.c util.c || mv ok.util.c util.c #egrep -v '^#line' gutil.c > ok.gutil.c #if test -f old.gutil.c; then mv old.gutil.c gutil.c; fi #-cmp -s ok.gutil.c gutil.c || mv ok.gutil.c gutil.c #egrep -v '^#line' pat.c > ok.pat.c #if test -f old.pat.c; then mv old.pat.c pat.c; fi #-cmp -s ok.pat.c pat.c || mv ok.pat.c pat.c touch tstamp.kc $(K_CFILES) $(K_HFILES): tstamp.kc $(TARGET) $(BOOTSTRAPTARGET): $(OBJS) $(CC) $(CFLAGS) $(OBJS) $(MALLOC_LDFLAGS) -o $@ $(LIBS) $(TARGET).pure $(BOOTSTRAPTARGET).pure: $(OBJS) $(PURIFY) $(CC) $(CFLAGS) $(OBJS) $(MALLOC_LDFLAGS) -o $@ $(LIBS) kimwy.c kimwy.h y.output: $(ROOT)/kimwy.y $(BISONENV) $(YACC) $(YFLAGS) $(ROOT)/kimwy.y mv y.tab.c kimwy.c mv y.tab.h kimwy.h kimwl.c: $(ROOT)/kimwl.l $(LEX) $(LFLAGS) $(ROOT)/kimwl.l mv lex.yy.c kimwl.c # we use a perl script to extract verbose error messages from a # y.output file generated by bison. # NOTE: this only works with bison-generated y.output files # NOTE: to use the errmsg.c file, use the BISONSIMPLEERRMSGFILE skeleton file $(ERRMSG_C_FILE): y.output perl $(ERRMSG_PL_FILE) < y.output > $(ERRMSG_C_FILE) # We collect a number of definitions in the defs.h file # we do this for two reasons: # 1) we don't clutter the CC command line with lots of -D flags # 2) we can put the file in the distribution, for non-unix platforms # $(DEF_H_FILE): $(ROOT)/Makefile $(ROOT)/$(PATCHLEVELBASENAME) echo "/* this file is automatically generated by 'make'; do not edit! */" > $@ echo "#ifndef DEFS_H" >> $@ echo '# define ' $(MAKEFILEVERSIONDEFINE) >> $@ echo '# define ' $(KIMWITUCOPYRIGHTDEFINE) >> $@ echo '# define ' $(USESTATDEFINE) >> $@ echo '# define ' $(KIMWITURELEASEDEFINE) >> $@ echo '# define ' $(KIMWITUVERSIONSTRINGDEFINE) >> $@ echo '#endif /* DEFS_H */' >> $@ # Link (or copy - depending on LN definition) header files # from source to compilation (Gen) directory, # such that all include files that we need are there, so # we don't need the source directory in the include path $(ERRMSG_H_BASENAME): $(ERRMSG_H_FILE) $(LN) $(ERRMSG_H_FILE) $@ $(PATCHLEVELBASENAME): $(PATCHLEVELFILE) $(LN) $(PATCHLEVELFILE) $@ # making copies to prevent unnessary compilation kimwy.hh: kimwy.h -cmp -s $@ $? || cp $? $@ $(DEF_H_FILE)h: $(DEF_H_FILE) -cmp -s $@ $? || cp $? $@ # # special (maintenaince) targets # $(GENCLEAN): $(RM) *.o $(TARGET) $(BOOTSTRAPTARGET) veryclean: @echo "Completely Cleaning $(GENDIR)..." @olddir=`pwd`; cd $(GENDIR); \ if test $${olddir} = `pwd`; then echo "You don't want to do this; ";\ echo "you don't want to veryclean the current (sources) directory."; exit 1; fi; \ echo "To $@ directory $(GENDIR) simply execute 'rm -rf $(GENDIR)'"; \ echo "from the shell. Make sure you don't delete anything you would regret..." print: $(SOURCE) npr `ls $?`; touch print newfiles: $(SOURCE) @echo `ls $?` thesource: @echo $(SOURCE) longsource: @ls -lrt $(SOURCE) writablesource: @ls -lrt $(SOURCE) | fgrep 'rw-' | awk '{print $$NF}' theksource: @k__source=""; \ for f in $(K__SOURCE); \ do k__source="$${k__source} ${ROOT}/$${f}"; done; \ echo $${k__source} thecsource: @echo $(C_SOURCE) $(GENALLSOURCE): @echo $(K__SOURCE) $(BOOTSTRAPSOURCE) distr: @case $(GENDIR) in \ /*) olddir=`pwd`;; \ */../*) olddir=`pwd`;; \ */./*) olddir=`pwd`;; \ *) olddir=`echo $(GENDIR)|sed 's/[^\/][^\/]*/../g'`;; \ esac; \ if test ! -d $(GENDIR); then exit 1; fi; \ if test ! -d $(DISTRDIR); then mkdir $(DISTRDIR); fi; \ if test ! -d $(DISTRDIR); then exit 1; fi; \ cd $(GENDIR); \ k__source=""; \ for f in $(K__SOURCE); \ do k__source="$${k__source} $${olddir}/$${f}"; done; \ $(MAKE) -e -f $${olddir}/Makefile ROOT=$${olddir} GENk__source="$${k__source}" GENdistr GENdistr: $(CP) $(GENk__source) $(BOOTSTRAPSOURCE) $(DISTRDIR) for f in $(LY_CFILES) $(LY_HFILES) $(LY_TFILE) $(DF_HFILES) $(ERRMSG_C_FILE); \ do $(CP) $$f $(DISTRDIR)/$(BS_PREFIX)$$f; done # # Debugging # $(GENLINT): $(LINT) $(LINT_CFLAGS) $(CFILES) rk.c csgiok.c > $(LINT).out #lint $(INCLUDES) $(DEFINES) $(CFILES) > lint.out # this rule is recursively called for target 'saber' $(GENSABER): $(CFILES) #cd $(GENDIR) #load $(SABER_CFLAGS) $(CFILES) #cd $(PWD) # # RCS stuff # versionid: @echo '$(RCSVERSIONID)' version: @echo $(KIMWITUVERSION) rlog: -$(RM) -f Changes.since.$(OLD) @for f in $(SOURCE); do \ rlog -N -r$(OLD): $${f} >> Changes.since.$(OLD); \ done release: kcv=$(KIMWITUVERSION) ; \ for f in $(SOURCE); do \ rev=`ident $${f} | awk '{printf("%s", $$3)}' ` ; \ echo "rcs -n$${kcv}:$${rev} -sRel:$${kcv} $${f}" ; \ rcs -n$${kcv}:$${rev} -sRel:$${kcv} $${f} ; \ co -r$${rev} $${f} ; \ done patch: -@old="$(OLD)"; new="$(NEW)"; patchfile=$(PATCHPREFIX)$${old}to$${new}; \ echo "This patch patches Kimwitu from patchlvl $${old} to $${new}.\\\ To apply, cd to the kc-distr/src directory, and execute\\\ \\\ patch < $(PATCHFILE)\\\ \\\ To rebuild kc:\\\ - Make sure you have a working kc in your PATH\\\ - Remove the kc-distr/src/Gen directory if existing (make veryclean)\\\ - execute 'make new' to build the new kc as kc-distr/Gen/kc.new\\\ \\\ \\\ Prereq: $${old}\\\ " |tr '\\' '\012' > $${patchfile}; \ for f in $(SOURCE); do \ rev=`ident $${f} | awk '{printf("%s", $$3)}' ` ; \ echo "rcsdiff -c -r$${old} -r$${new} $${f} |egrep -v '^No differences' >> $${patchfile}" ; \ echo "Index: $${f}" >> $${patchfile}; \ rcsdiff -c -r$${old} -r$${new} $${f} |egrep -v '^No differences' >> $${patchfile} ; \ done # this rule is recursively called by the 'depend' rule $(GENDEPEND): $(RM) ${ROOT}/depend; \ for f in $(CFILES); \ do $(CC) -xM $(INCLUDES) $${f} >> ${ROOT}/depend; done # do $(CPP) -MM $(INCLUDES) $${f} >> $${olddir}/depend; done $(OBJS): k.h main.o: $(PATCHLEVELBASENAME) # defs.h(h) contains a couple of definitions, to be included in main.c main.o: main.c defs.hh # dependencies from here generated using the depend target # slightly edited: # to change kimwy.h into kimwy.hh # to remove the stdio include from the kimwl.o dependency # to replace some file names by macro's kimwy.o : kimwy.c k.h error.h defocc.h useocc.h parse.h \ extocc.h kimwl.o : kimwl.c k.h error.h defocc.h useocc.h \ kimwy.hh abs.o : abs.c k.h error.h defocc.h useocc.h abs.h main.o : main.c k.h error.h defocc.h useocc.h unpk.h gen.h \ gutil.h main.h parse.o : parse.c k.h error.h defocc.h useocc.h util.h extocc.h \ parse.h error.o : error.c k.h error.h defocc.h useocc.h unpk.h gen.h \ error.h defocc.o : defocc.c k.h error.h defocc.h useocc.h defocc.h extocc.o : extocc.c k.h error.h defocc.h useocc.h extocc.h useocc.o : useocc.c k.h error.h defocc.h useocc.h useocc.h util.o : util.c k.h error.h defocc.h useocc.h parse.h util.h gen.o : gen.c k.h error.h defocc.h useocc.h gen.h gutil.o : gutil.c k.h error.h defocc.h useocc.h util.h unpk.h \ gen.h gutil.h pat.o : pat.c k.h error.h defocc.h useocc.h util.h pat.h unpk.o : unpk.c k.h error.h defocc.h useocc.h unpk.h gen.h util.h \ extocc.h parse.h pat.h gutil.h k.o : k.c k.h error.h defocc.h useocc.h errmsg.o: $(ERRMSG_C_FILE) $(ERRMSG_H_BASENAME) kimwitu-4.6.1.orig/src/README0100644000176100001440000000716607076113234015137 0ustar debacleusersEverything you always wanted to know about the Term Processor Kimwitu --- or at least: how to handle this distribution How is this distribution structured? Binaries: kc-distr/bin/kc.sun3 kc-distr/bin/kc.sparc kc-distr/bin/kc.hp9000s300 The bin directory may be empty. Manual: kc-distr/man/kc.1 Tells you all you need to know to invoke kc (Kimwitu). Documentation: kc-distr/doc/* The documentation is in latex format. To print it, go (cd) to the kc-distr/doc directory and execute `make'. Sources: kc-distr/src/* kc-distr/src/Gen/* The Term Processor was made using itself. The kc-distr/src directory contains the `real' *.k (Kimwitu input) sources and the *.[ch] kc-generated files that you need to bootstrap it. The Term Processor was made using yacc and lex. The kc-distr/src directory contains the yacc and lex input sources and the *.[ch] generated files from them, prefixed with `bs' (`bootstrap'), to avoid problems when you run lex or yacc yourself. These files will be copied (with the corect names) to the Gen directory when you run `make'. The kc-distr/src/Gen directory will be created while kc is being made. It will contain (links to) the kc-generated files used for boot-strapping, the copied lex- and yacc-generated files, the compiled .o files and the linked binary executable kc. How do I install Kimwitu? If the kc-distr/bin directory contains the binary you need, rename it `kc' and put it somewhere in your path. If not, go (cd) to kc-distr/src. Then execute `make'. If everything is ok, you will find a new binary `kc-distr/src/Gen/kc'. Put this somewhere in your path. Which architectures are supported? Well, supported... You should be able to compile Kimwitu on any UN*X machine. So far we have been able to compile Kimwitu on sun3 under SunOs 3.5 and 4.0.3, sun4 under SunOs 4.0.3 and 4.1.1, and hp9000s300 under HP-UX 6.5 and 7.0. The code generated by Kimwitu should compile on any UN*X machine, no matter on which architecture it was generated. We have been able to compile it on the machines/operation systems mentioned above. Do I need a running Kimwitu to install Kimwitu? No, you don't. The kc-distr/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 *.[ch] stuff in kc-distr/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 kc-distr/src directory, *not* in the kc-distr/src/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 new' in the kc-distr/src directory. If everything is ok, you will find a new binary kc-distr/src/Gen/kc.new. Who should I contact if I find anything that needs to be changed? (Or have other questions related to Kimwitu.) Axel Belinfante tel. +31/53 4893774 You can contact me for any question related to Kimwitu. Tele Informatics and Open Systems Dept. of Computer Science University of Twente P.O.Box 217 NL-7500 AE ENSCHEDE The NETHERLANDS For the `future proof' addresses see the LICENSE file in this directory. kimwitu-4.6.1.orig/src/abs.c0100644000176100001440000000161507076113221015155 0ustar debacleusers/* translation of file "../abs.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #define KC_FUNCTIONS_abs #define KIMW_FUNCTIONS_abs /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include #ifdef KC_STDC # include #endif #include "k.h" /* included stuff */ #line 2 "../abs.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 29 "abs.c" #line 14 "../abs.k" #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char abs_kAccesSid[] = "@(#)$Id: abs.k,v 1.18 1997/05/26 16:10:31 belinfan Rel $"; #endif #line 35 "abs.c" /* end included stuff */ #include "abs.h" kimwitu-4.6.1.orig/src/abs.h0100644000176100001440000000135307076113232015163 0ustar debacleusers/* translation of file "../abs.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #ifndef KC_FUNCTIONS_abs_HEADER #define KC_FUNCTIONS_abs_HEADER #define KIMW_FUNCTIONS_abs_HEADER /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include "k.h" /* in case a user forgets */ /* included stuff */ #line 2 "../abs.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 27 "abs.h" /* end included stuff */ #endif /* ! KC_FUNCTIONS_abs_HEADER */ kimwitu-4.6.1.orig/src/abs.k0100644000176100001440000003674607076113217015207 0ustar debacleusers%{ CODE HEADER /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ %} /* * abs.k */ %{ #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char abs_kAccesSid[] = "@(#)$Id: abs.k,v 1.18 1997/05/26 16:10:31 belinfan Rel $"; #endif %} /***************************************************************************/ /* * Name conventions: atom phyla are in CAPITALS (like ID, INT) * other phyla are in lowercase * operators are capitalized * */ /***************************************************************************/ /* * ABSTRACT SYNTAX * * Phyla used only as attribute value follow below in a separate section */ uniqID { uniq } : Str( casestring ) { IDtype type = ITUnknown(); int line = 0; casestring file = mkcasestring(""); scopetypefilelinestack scopeinfo = Nilscopetypefilelinestack(); /* * in the scopeinfo we store the last (previous) typeinfo, * together with the _current_ scope, ie the same scope as * in the current typeinfo. * this scope is used to check whether we need to pop the * scopeinfo, or have to wait. This should handle things like: * void foo( v ) phylum v; { * with( v ) { * Operator( s1, x, y ): { * with( s1 ) { * Operator( s2, *, y ): { * with( s2 ) { * Operator( *, y, x ): { * etc. * ie. where we have 'holes' in the scopestack, for certain * variables, like `x' in the example above */ }; ID : Id( uniqID ) { IDtype type = ITUnknown(); int line = 0; casestring file = mkcasestring(""); }; INT : Int( int ) { int line = 0; casestring file = mkcasestring(""); }; STRING : String( casestring ) { int line = 0; casestring file = mkcasestring(""); }; phylumdeclarationsroot : PhylumDeclarations( phylumdeclarations ) ; phylumdeclarations : list phylumdeclaration ; phylumnames : list ID ; phylumdeclaration : PhylumDeclaration( ID storageoption productionblock Ccode_option ) { int marked = 0; }; storageoption : NoStorageOption() | NegativeStorageOption( ID ) | PositiveStorageOption( ID ) ; storageclasses : list ID { phylumnames phyla = Nilphylumnames(); } ; productionblock : Emptyproductionblock() | ListAlternatives( alternatives ID ) | NonlistAlternatives( alternatives ) | PredefinedAlternatives( alternatives ) ; alternatives : list alternative ; alternative : Alternative( ID arguments ) { rewriterulesinfo rewriteinfo = Nilrewriterulesinfo(); unparsedeclsinfo unparseinfo = Nilunparsedeclsinfo(); boolean bigatoms = False; } ; arguments : list ID { int seqnr; }; argument : Argument( ID /*seqnr*/int ) ; Ccode_option : CcodeOption( attributes Ctexts ) ; attributes : list attribute ; attribute : Attribute( ID ID attribute_initialisation_option ) ; attribute_initialisation_option : Noattribute_initialisation() | Yesattribute_initialisation( Cexpression ) ; Cexpression : list Cexpression_elem { int line = 0; casestring file = mkcasestring(""); }; Cexpression_elem : CExpressionPart( casestring ) | CExpressionDollarvar( INT ) | CExpressionNl( int ) | CExpressionDQ( CexpressionDQ ) | CExpressionSQ( CexpressionSQ ) | CExpressionPack( Cexpression ) | CExpressionArray( Cexpression ) ; CexpressionDQ : list CexpressionDQ_elem ; CexpressionDQ_elem : CExpressionDQPart( casestring ) | CExpressionDQNl( int ) ; CexpressionSQ : list CexpressionSQ_elem ; CexpressionSQ_elem : CExpressionSQPart( casestring ) | CExpressionSQNl( int ) ; idCexpressions : list idCexpression ; idCexpression : IdCexpression( ID Cexpression ) { ID id = f_emptyId(); } ; Ctexts : list Ctext ; %{ KC_TYPES_HEADER typedef enum {include_header =0, include_file =1, include_unknown, include_both} include_type; #define INC2 inc[2] %} includefiles : list includefile ; includefile {uniq} : IncludeFile( casestring ) { include_type inc_type = include_unknown; /* indexes in includes */ includedeclarations INC2; includefile newinclude = 0; /*points to new includes for old ones */ { $0->inc[0] = Nilincludedeclarations(); $0->inc[1] = Nilincludedeclarations(); if (Theincludefiles == (includefiles)0) { Theincludefiles = Consincludefiles( $0, Nilincludefiles()); } else { Theincludefiles = Consincludefiles( $0, Theincludefiles); } } }; includedeclarations : list includedeclaration ; includedeclaration : IncludeDeclaration( includes ) { int line = 0; casestring file = mkcasestring(""); }; includes : list include ; include : Include( casestring ) | IncludeNl( int ) ; rwdeclarations : list rwdeclaration ; rwdeclaration : RwDeclaration( outmostpatterns rewriteclauses ) ; rewriteclauses : list rewriteclause ; rewriteclause : RewriteClause( viewnames term ) ; /* concrete syntax: patternchains = patternchain, patternchain,.... */ patternchains : list patternchain { int line = 0; casestring file = mkcasestring(""); } ; /* concrete syntax: patternchain = patternchainitem & patternchainitem & .... */ patternchain : list patternchainitem { int line = 0; casestring file = mkcasestring(""); } ; outmostpatterns : list outmostpattern ; patternchainitem : PatternchainitemOutmost( outmostpattern ) | PatternchainitemGroup( patternchains ) | PatternchainitemDollarid( ID ) { int line = 0; casestring file = mkcasestring(""); ID type = f_emptyId(); } ; outmostpattern : OPOperatorWildcard( ID ) | OPOperator( ID patterns ) | OPNonLeafVariable( ID outmostpattern ) | OPWildcard() | OPDefault() /* HACK!! */ { ID type = f_emptyId(); } ; pattern : PVariable( ID ) | POperator( ID patterns ) | PNonLeafVariable( ID pattern ) | PWildcard() | PStringLiteral( CexpressionDQ ) | PIntLiteral( INT ) ; patterns : list pattern ; term : TVariable( ID ) | TOperator( ID terms ) | TStringLiteral( CexpressionDQ ) | TIntLiteral( INT ) ; terms : list term ; fnfiles : list fnfile ; fnfile {uniq} : FnFile( casestring ) { fndeclarations fns; { $0->fns = Nilfndeclarations(); if (Thefnfiles == (fnfiles)0) { Thefnfiles = Consfnfiles( $0, Nilfnfiles()); } else { Thefnfiles = Consfnfiles( $0, Thefnfiles); } } }; fndeclarations : list fndeclaration ; /* needed for sort_extend_Cvariabledeclarations */ %{ KC_TYPES #include "gutil.h" %} fndeclaration : FnDeclaration( ID/*type*/ int/*pointer*/ ID/*name*/ fnarguments Cvariabledeclarations Ctext fnclass ) | FnAcDeclaration( ac_declaration_specifiers ac_declarator ac_declaration_list Ctext ID/*name*/ fnclass ) { Cvariabledeclarations sorted; ac_parameter_type_list newsorted; int last_line = 0; /* line nr of _last_ line of body (contains close-brace) */ casestring file = mkcasestring(""); { with($0) { FnDeclaration(*, *, *, fn_args, C_vardecls, *, *): { $0->sorted = sort_extend_Cvariabledeclarations( C_vardecls, fn_args ); } FnAcDeclaration(*, fn_args, C_vardecls, *, *, *): { $0->newsorted = sort_extend_parameter_type_list( C_vardecls, fn_args ); } } } } ; fnclass : GlobalFn() | LocalFn( casestring/*filename*/ ) ; fnarguments : list ID ; Cvariabledeclarations : list Cvariabledeclaration ; Cvariabledeclaration : CVariabledeclaration( ID/*type*/ Cvariables ) | Fnargfpdecl( ID/*type*/ Cvariables ) ; Cvariables : list Cvariable ; Cvariable : CVPointer( /*pointer*/int /*name*/ID ) | CVFunction( /*pointer*/int /*pointer*/int /*name*/ID ) ; Ctext : list Ctext_elem { int line = 0; casestring file = mkcasestring(""); } ; Ctext_elem : CTextLine( casestring ) | CTextDollarVar( INT ) | CTextNl( int ) | CTextCexpressionDQ( CexpressionDQ ) | CTextCexpressionSQ( CexpressionSQ ) | CTextCbody( Ctext ) | CTextForeachexpression( patternchain idCexpressions withexpressions Ctext foreach_after ) | CTextWithexpression( withexpressions withcases contextinfo ) { int line = 0; casestring file = mkcasestring(""); } ; foreach_after : NoForeachAfter() | ForeachAfter( patternchain idCexpressions withexpressions Ctext ) { int line = 0; casestring file = mkcasestring(""); } ; contextinfo : InForeachContext( patternchain ) | NotInForeachContext() ; withexpressions : list withexpression { phylumnames type = 0; int line = 0; casestring file = mkcasestring(""); { with($0) { Nilwithexpressions(): { $0->type = Nilphylumnames(); } Conswithexpressions( h, t ): { $0->type = Consphylumnames( h->type, t->type ); $0->line = h->line; $0->file = h->file; } } } } ; withexpression : WEVariable( ID ) | WECexpression( Cexpression ) { ID type = f_emptyId(); int line = 0; casestring file = mkcasestring(""); { with($0) { WEVariable( id ): { $0->line = id->line; $0->file = id->file; } WECexpression( e ): { $0->line = e->line; $0->file = e->file; } } } } ; withcases : list withcase { withcasesinfo wcinfo; } ; withcase : Withcase( patternchains Ctext ) { withcasesinfo wcinfo; } ; unparsedeclarations : list unparsedeclaration ; unparsedeclaration : UnparseDeclaration( outmostpatterns unparseclauses ) { patternrepresentations patternreps; } ; unparseclauses : list unparseclause ; unparseclause : UnparseClause( viewnames unparseitems ) ; viewnames : list ID ; unparseitems : list unparseitem ; unparseitem : UnpStr( CexpressionDQ viewnameoption ) | UnpSubexpr( unpsubterm viewnameoption ) | UnpCtext( Ctext ) | UnpBody( unparseitems ) ; unpsubterm : UnpSubTerm( ID ) | UnpDollarvarTerm( INT ) | UnpSubAttr( ID unpattributes ) | UnpDollarvarAttr( INT unpattributes ) | UnpCastedVariable( ID ID ) ; unpattributes : list ID ; viewnameoption : NoViewname() | YesViewname( ID ) ; /***************************************************************************/ /* * ATTRIBUTE TYPES * */ filelinestack : list fileline ; fileline : FileLine( casestring int ) | NoFileLine() | PosNoFileLine() ; nooperatorsstack : list int ; scopetypefilelinestack : list scopetypefileline ; scopetypefileline : ScopeTypeFileLine( int IDtype casestring int ) ; IDtype : ITUnknown() | ITPredefinedPhylum( phylumdeclaration ) | ITPredefinedBigatomPhylum( phylumdeclaration ) | ITUserPhylum( phylumdeclaration ) | ITPredefinedOperator( alternative /*phylum*/ID ) | ITUserOperator( alternative /*phylum*/ID ) | ITPredefinedStorageClass() | ITStorageClass() | ITPredefinedUView() | ITUserUView() | ITPredefinedRView() | ITUserRView() | ITUserFunction( fnclass ) | ITPatternVariable( /*phylum*/ID /*scope*/ int ) { { with($0) { ITPredefinedBigatomPhylum( PhylumDeclaration( id, *, *, * ) ): { if (cg_bigatomphyla) { cg_bigatomphyla = Consphyla( id, cg_bigatomphyla ); } else { cg_bigatomphyla = Consphyla( id, Nilphyla() ); } } default: {/*EMPTY*/} } } } ; operatorsstack : list operators ; operators : list ID ; phyla : list ID ; variables : list ID ; argumentsstack : list arguments ; phylumstack : list ID ; phylumnamesstack : list phylumnames ; withexpressionsstack : list withexpressions ; operatorstack : list ID ; variablesstack : list variables ; selvarstack : list ID ; dollarvarstatus : DVAllowed() | DVDisallowed() ; dollarvarsallowedstack : list dollarvarstatus ; intstack : list int ; idCexpressionsstack : list idCexpressions ; /***************************************************************************/ /* * TWO-* STUFF FOR PATTERN MATCHING * */ two_phyla : TwoStorageoption( storageoption storageoption ) | TwoProductionblock( productionblock productionblock ) | TwoCcode_option( Ccode_option Ccode_option ) | TwoRewriteruleinfo( rewriteruleinfo rewriteruleinfo ) | TwoWithcaseinfo( withcaseinfo withcaseinfo ) | TwoUnparsedeclinfo( unparsedeclinfo unparsedeclinfo ) | TwoPatternrepresentation( patternrepresentation patternrepresentation ) | TwoElem_patternrepresentation( elem_patternrepresentation elem_patternrepresentation ) | TwoPaths( paths paths ) | TwoPath( path path ) ; tribool : Equal() | Smaller() | Bigger() ; /***************************************************************************/ /* * Stuff for patterns etc. */ patternrepresentations : list patternrepresentation ; patternrepresentation : list elem_patternrepresentation ; elem_patternrepresentation : PRBinding( path ID ) | PRVarPredicate( paths ID patternrepresentation ) | PROperPredicate( path ID ) | PRNonLeafBinding( path ID patternrepresentation ) | PRWildcard( path ) | PRDefault() | PRStringLiteral( path CexpressionDQ ) | PRIntLiteral( path INT ) { ID type = f_emptyId(); }; path : list int { ID op = f_emptyId(); ID id = f_emptyId(); /* we use this only to store info for OPNonLeafVariable */ } ; paths : list path ; /***************************************************************************/ argsnumbers : list int ; /***************************************************************************/ rewriterulesinfo : list rewriteruleinfo ; rewriteruleinfo : Rewriteruleinfo( patternrepresentation/*predicates*/ patternrepresentation/*bindings*/ rewriteclause ) ; withcasesinfo : list withcaseinfo ; withcaseinfo : Withcaseinfo( patternrepresentation/*predicates*/ patternrepresentation/*bindings*/ Ctext ) ; rewriteviewsinfo : list rewriteviewinfo ; rewriteviewinfo : Rewriteviewinfo( ID rewriterulesinfo ) ; unparseviewsinfo : list unparseviewinfo ; unparseviewinfo : Unparseviewinfo( ID unparsedeclsinfo ) ; unparsedeclsinfo : list unparsedeclinfo ; unparsedeclinfo : Unparsedeclinfo( patternrepresentation/*predicates*/ patternrepresentation/*bindings*/ unparseclause ) ; ac_declaration : AcDeclaration( ac_declaration_specifiers ac_init_declarator_list ) ; ac_declaration_list : list ac_declaration ; ac_declaration_specifiers : list ac_declaration_specifier ; ac_declaration_specifier : AcDeclSpecStorageSpec( ac_storage_class_specifier ) | AcDeclSpecTypeSpec( ac_type_specifier ) | AcDeclSpecTypeQual( ac_type_qualifier ) ; ac_storage_class_specifier : AcAuto() | AcRegister() | AcStatic() | AcExtern() | AcTypedef() ; ac_type_specifier : AcTypeSpec( ID ) /* to simplify */ ; ac_type_qualifier : AcConst() | AcVolatile() ; ac_init_declarator_list : list ac_init_declarator ; ac_init_declarator : AcInitDecl( ac_declarator ) /* this one commented out for simplification | ac_declarator '=' ac_initializer */ ; ac_declarator : AcDeclarator( ac_pointer_option ac_direct_declarator ) ; ac_direct_declarator : AcDirectDeclId( ID ) | AcDirectDeclPack( ac_declarator ) | AcDirectDeclArray( ac_direct_declarator ac_constant_expression_option ) | AcDirectDeclProto( ac_direct_declarator ac_parameter_type_list ) | AcDirectDeclKandR( ac_direct_declarator ac_identifier_list ) ; ac_pointer_option : Nopointer() | Yespointer( ac_pointer ) ; ac_pointer : AcPointerNil( ac_type_qualifier_list ) | AcPointerCons( ac_type_qualifier_list ac_pointer ) ; ac_type_qualifier_list : list ac_type_qualifier ; ac_parameter_type_list : AcParList( ac_parameter_list ) | AcParList3Dot( ac_parameter_list ) ; ac_parameter_list : list ac_parameter_declaration ; ac_parameter_declaration : AcParDeclDecl( ac_declaration_specifiers ac_declarator ) | AcParDeclAbsdecl( ac_declaration_specifiers ac_abstract_declarator ) ; ac_identifier_list : list ID ; ac_abstract_declarator : AcAbsdeclPointer( ac_pointer ) | AcAbsdeclDirdecl( ac_pointer_option ac_direct_abstract_declarator ) ; ac_direct_abstract_declarator_option : Noac_direct_abstract_declarator() | Yesac_direct_abstract_declarator( ac_direct_abstract_declarator ) ; ac_direct_abstract_declarator : AcDirAbsdeclPack( ac_abstract_declarator ) | AcDirAbsdeclArray( ac_direct_abstract_declarator_option ac_constant_expression_option ) | AcDirAbsdeclFn( ac_direct_abstract_declarator_option ac_parameter_type_list ) ; /* we don't need a Noac_constant_expression here, because Cexpression * can be the empty string */ ac_constant_expression_option : Yesac_constant_expression( ac_constant_expression ) ; ac_constant_expression : AcConstExpr( Cexpression ) /* to make things easier, I hope... */ ; kimwitu-4.6.1.orig/src/bisonsim.msg0100644000176100001440000004153607076113221016605 0ustar debacleusers/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ /* modified by Ralf Schroeder at 13.05.94 */ /* included as part of the Termprocessor Kimwitu */ /* modified by Axel Belinfante at 09.12.1996 */ #ifdef YYERRMSG_VERBOSE #include "errmsg.h" int yyrecover = 0; /* non verbose error recovery */ #endif /* YYERRMSG_VERBOSE */ #line 3 "/usr/local/lib/bison.simple" /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef alloca #ifdef __GNUC__ #define alloca __builtin_alloca #else /* not GNU C. */ #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) #include #else /* not sparc */ #if defined (MSDOS) && !defined (__TURBOC__) #include #else /* not MSDOS, or __TURBOC__ */ #if defined(_AIX) #include #pragma alloca #else /* not MSDOS, __TURBOC__, or _AIX */ #ifdef __hpux #ifdef __cplusplus extern "C" { void *alloca (unsigned int); }; #else /* not __cplusplus */ void *alloca (); #endif /* not __cplusplus */ #endif /* __hpux */ #endif /* not _AIX */ #endif /* not MSDOS, or __TURBOC__ */ #endif /* not sparc. */ #endif /* not GNU C. */ #endif /* alloca not defined. */ /* This is the parser code that is written into each bison parser when the %semantic_parser declaration is not specified in the grammar. It was written by Richard Stallman by simplifying the hairy parser used when %semantic_parser is specified. */ /* Note: there must be only one dollar sign in this file. It is replaced by the list of actions, each action as one case of the switch. */ #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY -2 #define YYEOF 0 #define YYACCEPT return(0) #define YYABORT return(1) #define YYERROR goto yyerrlab1 /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(token, value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { yychar = (token), yylval = (value); \ yychar1 = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { yyerror ("syntax error: cannot back up"); YYERROR; } \ while (0) #define YYTERROR 1 #define YYERRCODE 256 #ifndef YYPURE #define YYLEX yylex() #endif #ifdef YYPURE #ifdef YYLSP_NEEDED #define YYLEX yylex(&yylval, &yylloc) #else #define YYLEX yylex(&yylval) #endif #endif /* If nonreentrant, generate the variables here */ #ifndef YYPURE int yychar; /* the lookahead symbol */ YYSTYPE yylval; /* the semantic value of the */ /* lookahead symbol */ #ifdef YYLSP_NEEDED YYLTYPE yylloc; /* location data for the lookahead */ /* symbol */ #endif int yynerrs; /* number of parse errors so far */ #endif /* not YYPURE */ #if YYDEBUG != 0 int yydebug; /* nonzero means print parse trace */ /* Since this is uninitialized, it does not stop multiple parsers from coexisting. */ #endif /* YYINITDEPTH indicates the initial size of the parser's stacks */ #ifndef YYINITDEPTH #define YYINITDEPTH 200 #endif /* YYMAXDEPTH is the maximum size the stacks can grow to (effective only if the built-in stack extension method is used). */ #if YYMAXDEPTH == 0 #undef YYMAXDEPTH #endif #ifndef YYMAXDEPTH #define YYMAXDEPTH 10000 #endif /* Prevent warning if -Wstrict-prototypes. */ #ifdef __GNUC__ int yyparse (void); #endif #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ #define __yy_bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT) #else /* not GNU C or C++ */ #ifndef __cplusplus /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_bcopy (from, to, count) char *from; char *to; int count; { register char *f = from; register char *t = to; register int i = count; while (i-- > 0) *t++ = *f++; } #else /* __cplusplus */ /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_bcopy (char *from, char *to, int count) { register char *f = from; register char *t = to; register int i = count; while (i-- > 0) *t++ = *f++; } #endif #endif #line 184 "/usr/local/lib/bison.simple" int yyparse() { register int yystate; register int yyn; register short *yyssp; register YYSTYPE *yyvsp; int yyerrstatus; /* number of tokens to shift before error messages enabled */ int yychar1 = 0; /* lookahead token as an internal (translated) token number */ short yyssa[YYINITDEPTH]; /* the state stack */ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ short *yyss = yyssa; /* refer to the stacks thru separate pointers */ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ #ifdef YYLSP_NEEDED YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ YYLTYPE *yyls = yylsa; YYLTYPE *yylsp; #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) #else #define YYPOPSTACK (yyvsp--, yyssp--) #endif int yystacksize = YYINITDEPTH; #ifdef YYPURE int yychar; YYSTYPE yylval; int yynerrs; #ifdef YYLSP_NEEDED YYLTYPE yylloc; #endif #endif YYSTYPE yyval; /* the variable used to return */ /* semantic values from the action */ /* routines */ int yylen; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Starting parse\n"); #endif yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ yyssp = yyss - 1; yyvsp = yyvs; #ifdef YYLSP_NEEDED yylsp = yyls; #endif /* Push a new state, which is found in yystate . */ /* In all cases, when you get here, the value and location stacks have just been pushed. so pushing a state here evens the stacks. */ yynewstate: *++yyssp = yystate; if (yyssp >= yyss + yystacksize - 1) { /* Give user a chance to reallocate the stack */ /* Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; short *yyss1 = yyss; #ifdef YYLSP_NEEDED YYLTYPE *yyls1 = yyls; #endif /* Get the current used size of the three stacks, in elements. */ int size = yyssp - yyss + 1; #ifdef yyoverflow /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. */ #ifdef YYLSP_NEEDED /* This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yyls1, size * sizeof (*yylsp), &yystacksize); #else yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yystacksize); #endif yyss = yyss1; yyvs = yyvs1; #ifdef YYLSP_NEEDED yyls = yyls1; #endif #else /* no yyoverflow */ /* Extend the stack our own way. */ if (yystacksize >= YYMAXDEPTH) { yyerror("parser stack overflow"); return 2; } yystacksize *= 2; if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp)); yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp)); #ifdef YYLSP_NEEDED yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp)); #endif #endif /* no yyoverflow */ yyssp = yyss + size - 1; yyvsp = yyvs + size - 1; #ifdef YYLSP_NEEDED yylsp = yyls + size - 1; #endif #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Stack size increased to %d\n", yystacksize); #endif if (yyssp >= yyss + yystacksize - 1) YYABORT; } #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Entering state %d\n", yystate); #endif goto yybackup; yybackup: /* Do appropriate processing given the current state. */ /* Read a lookahead token if we need one and don't already have one. */ /* yyresume: */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYFLAG) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* yychar is either YYEMPTY or YYEOF or a valid token in external form. */ if (yychar == YYEMPTY) { #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Reading a token: "); #endif yychar = YYLEX; } /* Convert token to internal form (in yychar1) for indexing tables with */ if (yychar <= 0) /* This means end of input. */ { yychar1 = 0; yychar = YYEOF; /* Don't call YYLEX any more */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Now at end of input.\n"); #endif } else { yychar1 = YYTRANSLATE(yychar); #if YYDEBUG != 0 if (yydebug) { fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); /* Give the individual parser a way to print the precise meaning of a token, for further debugging info. */ #ifdef YYPRINT YYPRINT (stderr, yychar, yylval); #endif fprintf (stderr, ")\n"); } #endif } yyn += yychar1; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) goto yydefault; yyn = yytable[yyn]; /* yyn is what to do for this token type in this state. Negative => reduce, -yyn is rule number. Positive => shift, yyn is new state. New state is final state => don't bother to shift, just return success. 0, or most negative number => error. */ if (yyn < 0) { if (yyn == YYFLAG) goto yyerrlab; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrlab; if (yyn == YYFINAL) YYACCEPT; /* Shift the lookahead token. */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); #endif /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif /* count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; yystate = yyn; goto yynewstate; /* Do the default action for the current state. */ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; /* Do a reduction. yyn is the number of a rule to reduce with. */ yyreduce: yylen = yyr2[yyn]; if (yylen > 0) yyval = yyvsp[1-yylen]; /* implement default value of the action */ #if YYDEBUG != 0 if (yydebug) { int i; fprintf (stderr, "Reducing via rule %d (line %d), ", yyn, yyrline[yyn]); /* Print the symbols being reduced, and their result. */ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) fprintf (stderr, "%s ", yytname[yyrhs[i]]); fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); } #endif $ /* the action file gets copied in in place of this dollarsign */ #line 457 "/usr/local/lib/bison.simple" yyvsp -= yylen; yyssp -= yylen; #ifdef YYLSP_NEEDED yylsp -= yylen; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif *++yyvsp = yyval; #ifdef YYLSP_NEEDED yylsp++; if (yylen == 0) { yylsp->first_line = yylloc.first_line; yylsp->first_column = yylloc.first_column; yylsp->last_line = (yylsp-1)->last_line; yylsp->last_column = (yylsp-1)->last_column; yylsp->text = 0; } else { yylsp->last_line = (yylsp+yylen-1)->last_line; yylsp->last_column = (yylsp+yylen-1)->last_column; } #endif /* Now "shift" the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTBASE] + *yyssp; if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTBASE]; goto yynewstate; yyerrlab: /* here on detecting error */ if (! yyerrstatus) /* If not already recovering from an error, report this error. */ { ++yynerrs; #ifdef YYERROR_VERBOSE yyn = yypact[yystate]; if (yyn > YYFLAG && yyn < YYLAST) { int size = 0; char *msg; int x, count; count = 0; /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) size += strlen(yytname[x]) + 15, count++; # ifdef YYERRMSG_VERBOSE size += strlen(error_message[yystate][2]) + 15; # endif /* YYERRMSG_VERBOSE */ msg = (char *) malloc(size + 15); if (msg != 0) { strcpy(msg, "parse error"); if (count < 5) { count = 0; for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) { strcat(msg, count == 0 ? ", expecting `" : " or `"); strcat(msg, yytname[x]); strcat(msg, "'"); count++; } } # ifdef YYERRMSG_VERBOSE strcat(msg, error_message[yystate][2]); # endif /* YYERRMSG_VERBOSE */ yyerror(msg); free(msg); } else yyerror ("parse error; also virtual memory exceeded"); } else #else # ifdef YYERRMSG_VERBOSE { int size = 0; char *msg; size += strlen(error_message[yystate][2]) + 15; msg = (char *) malloc(size + 15); if (msg != 0) { strcpy(msg, "parse error"); strcat(msg, error_message[yystate][2]); yyerror(msg); free(msg); } else yyerror ("parse error; also virtual memory exceeded"); } } else { if (yyrecover) yyerror("error recovery token ignored"); else # endif /* YYERRMSG_VERBOSE */ #endif /* YYERROR_VERBOSE */ yyerror("parse error"); } goto yyerrlab1; yyerrlab1: /* here on error raised explicitly by an action */ if (yyerrstatus == 3) { /* if just tried and failed to reuse lookahead token after an error, discard it. */ /* return failure if at end of input */ if (yychar == YYEOF) YYABORT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); #endif yychar = YYEMPTY; } /* Else will try to reuse lookahead token after shifting the error token. */ yyerrstatus = 3; /* Each real token shifted decrements this */ goto yyerrhandle; yyerrdefault: /* current state does not do anything special for the error token. */ #if 0 /* This is wrong; only states that explicitly want error tokens should shift them. */ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ if (yyn) goto yydefault; #endif yyerrpop: /* pop the current state because it cannot handle the error token */ if (yyssp == yyss) YYABORT; yyvsp--; yystate = *--yyssp; #ifdef YYLSP_NEEDED yylsp--; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "Error: state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif yyerrhandle: yyn = yypact[yystate]; if (yyn == YYFLAG) goto yyerrdefault; yyn += YYTERROR; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) goto yyerrdefault; yyn = yytable[yyn]; if (yyn < 0) { if (yyn == YYFLAG) goto yyerrpop; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrpop; if (yyn == YYFINAL) YYACCEPT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting error token, "); #endif *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif yystate = yyn; goto yynewstate; } kimwitu-4.6.1.orig/src/bisonsim.rec0100644000176100001440000017213507076113221016570 0ustar debacleusers/* Version of 8 September, 1995 */ /* Version id for Kimwitu: $Id: bisonsim.rec,v 1.1 1996/10/29 17:53:51 belinfan Rel $ */ /***************************************************************************** * * * BFS USING INSERTION/ADVANCED DELETION WITH COSTS ERROR RECOVERY * * Corey Yeatman, Bruce McKenzie, Lorraine de Vere. * * Initial coding: Version 1.0, 12/10/92 * * * * Method: * * Works 'across' each state, finding shifts on symbols, and trying each * * path from the state the error occurred in. It also follows 'chains' of * * reductions order to keep all paths on the same level. Inserts symbols * * and deletes symbols based on total cost. Considers to have recovered * * the moment it finds `lookahead' symbols that can be parsed without * * error. * *****************************************************************************/ #include #include /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef alloca #ifdef __GNUC__ #define alloca __builtin_alloca #else /* Not GNU C. */ #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) #include #else /* Not sparc */ #ifdef __MSDOS__ #include #endif /* MSDOS */ #endif /* Not sparc. */ #endif /* Not GNU C. */ #endif /* alloca not defined. */ #include /* This is the parser code that is written into each bison parser when the %semantic_parser declaration is not specified in the grammar. It was written by Richard Stallman by simplifying the hairy parser used when %semantic_parser is specified. */ /* Note: there must be only one dollar sign in this file. It is replaced by the list of actions, each action as one case of the switch. */ #define yyclearin (yychar = YYEMPTY) #define YYEMPTY -2 #define YYEOF 0 /************* For Error recovery *******************************************/ #define YYACCEPT error_statistics(0); return(0); #define YYABORT error_statistics(0); return(1); #ifndef YYERRCOUNTLIMIT #define YYERRCOUNTLIMIT 1000 #endif int yyerrcountlimit = YYERRCOUNTLIMIT; /* ## needed to implement n-Lookahead */ #ifndef LOOKAHEAD #define LOOKAHEAD 3 #endif int yylookahead = LOOKAHEAD; #ifndef DELARRAYSIZE #define DELARRAYSIZE 100 #endif int yydelarraysize = DELARRAYSIZE; /***************************************************************************/ #define YYERROR goto yyerrlab1 /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYBACKUP(token, value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { yychar = (token), yylval = (value); \ yychar1 = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { yyerror ("syntax error: cannot back up"); YYERROR; } \ while (0) #define YYTERROR 1 #define YYERRCODE 256 #ifndef YYPURE #define YYLEX yylex() #endif #ifdef YYPURE #ifdef YYLSP_NEEDED #define YYLEX yylex(&yylval, &yylloc) #else #define YYLEX yylex(&yylval) #endif #endif /* If nonreentrant, generate the variables here */ #ifndef YYPURE int yychar; /* the lookahead symbol */ YYSTYPE yylval; /* the semantic value of the */ /* lookahead symbol */ #ifdef YYLSP_NEEDED YYLTYPE yylloc; /* location data for the lookahead */ /* symbol */ #endif int yynerrs; /* number of parse errors so far */ #endif /* not YYPURE */ #if YYDEBUG != 0 int yydebug; /* nonzero means print parse trace */ int yydebugerror; /* nonzero means print parse trace on error* / /* Since this is uninitialized, it does not stop multiple parsers from coexisting. */ #endif /* YYINITDEPTH indicates the initial size of the parser's stacks */ #ifndef YYINITDEPTH #define YYINITDEPTH 200 #endif /* YYMAXDEPTH is the maximum size the stacks can grow to (effective only if the built-in stack extension method is used). */ #if YYMAXDEPTH == 0 #undef YYMAXDEPTH #endif #ifndef YYMAXDEPTH #define YYMAXDEPTH 10000 #endif #ifndef __cplusplus /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_bcopy (from, to, count) char *from; char *to; int count; { register char *f = from; register char *t = to; register int i = count; while (i-- > 0) *t++ = *f++; } #else /* __cplusplus */ /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_bcopy (char *from, char *to, int count) { register char *f = from; register char *t = to; register int i = count; while (i-- > 0) *t++ = *f++; } #endif /************* For Error recovery ******************************************* * GLOBAL VARIABLES: * * The global variables necessary are a structure to hold a queue of * * stacks, and another structure to hold debugging information for later * * analysis if YYERRDEBUG is defined. As before, we have pointers to these* * structures, etc. errloc_ptr marks the error position in the state * * stack; is used when we check for loops. Also, a 'switch' yyerrorinfo * * is defined. This gives one of three levels of information error * * recovery : * * 0 : No error recovery information is printed. Only basic facts are * * reported. * * 1 : Gives a summary at the end of the parse as to the error(s) that * * occurred, the symbols inserted, etc. * * 2 : Gives even more elaborate information about the error recovery * * while it is happening. * ****************************************************************************/ /* Bit manipulation macros to look for reentered states - for each state */ /* we have a BITTYPE which will be used to record that we have */ /* investigated this state. Bit `n' will be used to indicate we have seen */ /* state `n` before. A new bitmap is allocated each time the stack drops */ /* below the level at which the bitmap was created or there is a futher */ /* symbol deleted. */ #define BITTYPE short #define BITSPERBYTE 8 #define BITTYPESIZE (sizeof(BITTYPE)*BITSPERBYTE) #define BITARRAY BITTYPE * #define BITSNEEDED (((YYFINAL+1)/BITTYPESIZE)+1) #define MAKEBITS (BITARRAY) calloc(BITSNEEDED,(sizeof(BITTYPE))) #define GETBIT(a,s) (a[s/BITTYPESIZE] & (1<<(s%BITTYPESIZE))) #define TSTBIT(a,s) testbit(a,s) typedef struct stkqueue *stack_queue; #define TOKENTYPE int struct stkqueue { short *stk_ptr; TOKENTYPE *inserted; TOKENTYPE *deleted; int totcost; #ifdef BITMAP short depth; /* depth of stack when bitmap created */ BITARRAY seenstate; #endif stack_queue next; }; stack_queue front, currstk, del_stack; short err_fixed, *TOS_ptr, errloc_ptr; int *ins_costs, *del_costs; int q_length = 0, max_length = 0; TOKENTYPE *syms; short num_read = 0, syms_remaining = 0; char *yymsg = NULL,*yymsgp; int yymsgleft; /* variables for use in implementing N-Lookahead */ int yyerrstatus = 0; /* the number of tokens we have to successfully */ /* parse before another error */ int yyerrorigstatus = 0; /* the number of tokens we have to successfully */ /* parse before another error in original method */ int err_sym = -1; /* the location of the token in error */ #if YYERRDEBUG != 0 int yytokencount; float yyparsetime; typedef struct debuginfo *debug_ptr; struct debuginfo { int errorstate, errorsymbol; int recoverstate, numstvisited, mq_length; int numqueued, numstudied; float start_time, tot_time; TOKENTYPE *inssymbols, *delsymbols; int cost; #ifdef BITMAP int seenbitscreated,seenbitstested,seenbitsalreadyset; #endif debug_ptr next; }; debug_ptr db_base = NULL, db_last = NULL; debug_ptr db_ptr; int yydumpstats = 0; int num_errs = 0; int yyerrorinfo = 0; int states_visited[YYFINAL+1]; int overall_visits[YYFINAL+1]; #endif stack_queue create_stack(); void destroy_stack(); void destroy_queue(); stack_queue copy_stack(); void handle_reduction(); void handle_shift(); void queue_shift(); void queue_shift_on_reduction(); void link_in(); int check_loop(); void move_symbols(); void read_a_symbol(); void queue_deletion(); #if YYERRDEBUG !=0 void printqueue(); #endif void error_statistics(); float get_time(); void yymsginit(); void yymsgcpy(); void yymsgfree(); int yyerrcount = 0; /***************************************************************************/ int yyparse() { register int yystate; register int yyn; register short *yyssp; register YYSTYPE *yyvsp; int yychar1; /* lookahead token as an internal (translated) token number */ short yyssa[YYINITDEPTH]; /* the state stack */ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ short *yyss = yyssa; /* refer to the stacks thru separate pointers */ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ #ifdef YYLSP_NEEDED YYLTYPE *yyls = yylsa; YYLTYPE *yylsp; YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ #define YYPOPSTACK (yyvsp--, yysp--, yylsp--) #else #define YYPOPSTACK (yyvsp--, yysp--) #endif int yystacksize = YYINITDEPTH; #ifdef YYPURE int yychar; YYSTYPE yylval; int yynerrs; #ifdef YYLSP_NEEDED YYLTYPE yylloc; #endif #endif YYSTYPE yyval; /* the variable used to return */ /* semantic values from the action */ /* routines */ int yylen; /************* For Error recovery ******************************************* * LOCAL VARIABLES: * * Only those variables which it is necessary to keep local are in here. * * Others are global for easy access from other functions. Here we define * * pointers to the error stack, the debug information nodes, etc. * ****************************************************************************/ int stack_size, errstk_size, recover_ss = 0, i, j; short *errstk_base, *tmp_ptr, *recover_stk, tmp = 0, recover_flag = 0; float yyrectime; char yychartime[28]; recover_stk = (short *) malloc(yystacksize * sizeof(*yyssp)); ins_costs = (int *) malloc(YYNTBASE * sizeof(int)); del_costs = (int *) malloc(YYNTBASE * sizeof(int)); syms = (TOKENTYPE *) malloc(yydelarraysize * sizeof(TOKENTYPE)); for (i=3; i1) { for (i=3; i= yyss + yystacksize - 1) { /* Give user a chance to reallocate the stack */ /* Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; short *yyss1 = yyss; #ifdef YYLSP_NEEDED YYLTYPE *yyls1 = yyls; #endif /* Get the current used size of the three stacks, in elements. */ int size = yyssp - yyss + 1; #ifdef yyoverflow /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. */ yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), #ifdef YYLSP_NEEDED &yyls1, size * sizeof (*yylsp), #endif &yystacksize); yyss = yyss1; yyvs = yyvs1; #ifdef YYLSP_NEEDED yyls = yyls1; #endif #else /* no yyoverflow */ /* Extend the stack our own way. */ if (yystacksize >= YYMAXDEPTH) { yyerror("parser stack overflow"); return 2; } yystacksize *= 2; if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp)); yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp)); #ifdef YYLSP_NEEDED yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp)); #endif #endif /* no yyoverflow */ yyssp = yyss + size - 1; yyvsp = yyvs + size - 1; #ifdef YYLSP_NEEDED yylsp = yyls + size - 1; #endif #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Stack size increased to %d\n", yystacksize); #endif if (yyssp >= yyss + yystacksize - 1) { YYABORT; } /************* For Error recovery *******************************************/ free(recover_stk); recover_stk = (short *) malloc(yystacksize * sizeof(*yyssp)); /***************************************************************************/ } #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Entering state %d\n", yystate); #endif yybackup: /* Do appropriate processing given the current state. */ /* Read a lookahead token if we need one and don't already have one. */ /* yyresume: */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYFLAG) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* yychar is either YYEMPTY or YYEOF or a valid token in external form. */ if (yychar == YYEMPTY) { /************* For Error recovery ***********************************/ /* force the parser to read input symbols from the lookahead */ /* buffer rather than from input */ if (syms_remaining) { yychar = syms[num_read - syms_remaining]; #if YYDERREBUG != 0 if (yydebug) fprintf(stderr, "Reusing a token %d from those saved during error recovery in syms[%d]: ", yychar, num_read-syms_remaining); #endif } else { /*******************************************************************/ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Reading a token: "); #endif #if YYERRDEBUG != 0 if (yydumpstats) yytokencount++; #endif if (yyerrstatus) { read_a_symbol(); yychar = syms[num_read - syms_remaining]; #if YYERRDEBUG != 0 if (yydebug) fprintf(stderr, "Forced read ahead of token %d and saved in syms[%d]: ", yychar, num_read-syms_remaining); #endif } else yychar = YYLEX; } } /* Convert token to internal form (in yychar1) for indexing tables with */ if (yychar <= 0) /* This means end of input. */ { yychar1 = 0; yychar = YYEOF; /* Don't call YYLEX any more */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Now at end of input.\n"); #endif } else { yychar1 = YYTRANSLATE(yychar); #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Next token is %d (%s)\n", yychar, yytname[yychar1]); #endif } yyn += yychar1; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) { goto yydefault; } yyn = yytable[yyn]; /* yyn is what to do for this token type in this state. Negative => reduce, -yyn is rule number. Positive => shift, yyn is new state. New state is final state => don't bother to shift, just return success. 0, or most negative number => error. */ if (yyn < 0) { if (yyn == YYFLAG) goto yyerrlab; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrlab; if (yyn == YYFINAL) { /************* For Error recovery *******************************************/ if (yyerrstatus) { #if YYERRDEBUG != 0 if (yydebug) fprintf(stderr, "Recoved from error by acepting input (yyerrorstate=%d)\nWith message %s\n", yyerrstatus,yymsg); #endif yyrecovermsg(yymsg); } /***************************************************************************/ YYACCEPT; } /* Shift the lookahead token. */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); #endif /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif /* count tokens shifted since error; after three, turn off error status. */ yystate = yyn; /************* For Error recovery *******************************************/ recover_flag = 0; #if YYERRDEBUG != 0 if (yyerrorinfo >= 2) fprintf(stderr,"Reset recover_flag\n"); #endif if (syms_remaining) syms_remaining--; /* we have successfully read another symbol */ if (yyerrstatus) { if(! --yyerrstatus) { yyerrcount = 0; yyrecovermsg(yymsg); yyerrorigstatus = 0; #if YYERRDEBUG != 0 if (yyerrstatus) fprintf(stderr, "Set yyerrcount to zero\n"); if (yydebug && yyerrstatus) fprintf(stderr, "have read the required %d symbols after error\n", yylookahead); #endif } #if YYERRDEBUG != 0 else { if (yydebug && yyerrstatus) fprintf(stderr, "have to successfully read %d more symbols before another error\n", yyerrstatus); } #endif } /***************************************************************************/ goto yynewstate; /* Do the default action for the current state. */ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; /************* For Error recovery *******************************************/ if (!recover_flag) { recover_ss = yyssp - yyss + 1; __yy_bcopy((char *)yyss, (char *)recover_stk, recover_ss * sizeof(*yyssp)); #if YYERRDEBUG != 0 if (yyerrorinfo >= 2) fprintf(stderr,"Saved recover_stk and set recover_flag\n"); #endif recover_flag = 1; } /***************************************************************************/ /* Do a reduction. yyn is the number of a rule to reduce with. */ yyreduce: yylen = yyr2[yyn]; yyval = yyvsp[1-yylen]; /* implement default value of the action */ #if YYDEBUG != 0 if (yydebug) { int i; fprintf (stderr, "Reducing via rule %d (line %d), ", yyn, yyrline[yyn]); /* Print the symboles being reduced, and their result. */ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) fprintf (stderr, "%s ", yytname[yyrhs[i]]); fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); } #endif $ /* the action file gets copied in in place of this dollarsign */ yyvsp -= yylen; yyssp -= yylen; #ifdef YYLSP_NEEDED yylsp -= yylen; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif *++yyvsp = yyval; #ifdef YYLSP_NEEDED yylsp++; if (yylen == 0) { yylsp->first_line = yylloc.first_line; yylsp->first_column = yylloc.first_column; yylsp->last_line = (yylsp-1)->last_line; yylsp->last_column = (yylsp-1)->last_column; yylsp->text = 0; } else { yylsp->last_line = (yylsp+yylen-1)->last_line; yylsp->last_column = (yylsp+yylen-1)->last_column; } #endif /* Now "shift" the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTBASE] + *yyssp; if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTBASE]; goto yynewstate; /************* For Error recovery ******************************************* * ERROR RECOVERY: This is the section that implements the BFS recovery * * with insert/delete with costs. Firstly, we rreport an error has * * occurred, and increase num_errs. If YYERRDEBUG is on, we print an error* * message. err_fixed is set to zero to show we haven't recovered yet. * * Then we allocate space for the error state stack (equal to the size of * * the current main state stack). Finally, move any `deleted' symbols * * remaining from the last error and save the current symbols. * ****************************************************************************/ yyerrlab: if (yyerrorigstatus) goto yyerroriglab1; #ifdef YYERRDEBUG if (yydebugerror) yydebug = 1; #endif if (! yyerrstatus) /* If not already recovering from an error, report this error. */ { yyerrcount = 0; #ifdef YYERRDEBUG if (yyerrorinfo) fprintf(stderr, "Set yyerrcount to zero\n"); #endif ++yynerrs; yyrectime = get_time(); yymsginit(); yymsgcpy("Parse error on "); yymsgcpy(yytname[yychar1]); #ifdef YYERROR_VERBOSE yyn = yypact[yystate]; if (yyn > YYFLAG && yyn < YYLAST) { int x, count; count = 0; for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) count++; if (count < 5) { count = 0; for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) { yymsgcpy(count == 0 ? ", expecting `" : " or `"); yymsgcpy(yytname[x]); yymsgcpy("'"); count++; } } } #endif /* YYERROR_VERBOSE */ yyerror(yymsg); yymsgfree(); } /************* For Error recovery *******************************************/ #if YYERRDEBUG != 0 if (yyerrorinfo >= 2) fprintf(stderr, "\nError - on token %s has occurred in state %d\n", yytname[yychar1], *yyssp); num_errs++; #endif err_fixed = 0; errstk_base = (short *) malloc(yystacksize * sizeof (*yyssp)); errstk_size = yystacksize; if (yyerrstatus) { #if YYERRDEBUG != 0 if (yydebug) fprintf(stderr, "Another error occurred within %d symbols.\n", yylookahead); free(db_ptr->inssymbols); free(db_ptr->delsymbols); db_ptr->inssymbols = db_ptr->delsymbols = NULL; num_errs--; #endif /* revert back to the situation that we had when the original */ /* error occurred */ yyerrstatus = yylookahead; #if YYERRDEBUG != 0 if (yydebug) fprintf(stderr, "now need to read %d symbols\n", yyerrstatus); #endif yychar = syms[err_sym]; yychar1 = ((syms[err_sym] <= 0) ? 0 : YYTRANSLATE(syms[err_sym])); #if YYERRDEBUG != 0 if (yydebug) fprintf(stderr, "The symbol in error is %s found in sysms[%d]\n", yytname[yychar1], err_sym); #endif goto yymainloop; } /* we only want to alter the input array if we have a new error */ /* ie: we don't want to revert back to an error that occurred earlier */ move_symbols(yychar); /* need to successfully parse this many tokens after recovering from */ /* this error */ yyerrstatus = yylookahead; /* Next, we set our states_visited[] array to 0, and create a new */ /* 'node' in the debugging info linked-list. We also create a */ /* stack-queue structure containing the whole state stack. Then we */ /* go into the main loop. */ #if YYERRDEBUG != 0 for (i=0; ierrorstate = *yyssp; db_ptr->errorsymbol = yychar1; db_ptr->numstvisited = 0; db_ptr->numqueued = 0; db_ptr->numstudied = 0; db_ptr->start_time = get_time(); db_ptr->cost = 0; #ifdef BITMAP db_ptr->seenbitscreated = 0; db_ptr->seenbitstested = 0; db_ptr->seenbitsalreadyset = 0; #endif db_ptr->next = NULL; db_ptr->inssymbols = db_ptr->delsymbols = NULL; if (db_base == NULL) db_base = db_last = db_ptr; else { db_last->next = db_ptr; db_last = db_last->next; } if (yyerrorinfo >= 2) { fprintf(stderr, "Creating a complete copy of the stack for the queue.\n"); if (recover_flag) fprintf(stderr, "This will be before the chain of default reductions was followed.\n"); } #endif stack_size = (recover_flag ? recover_ss : (yyssp - yyss + 1)); /* destroy the queue if it is non empty so that we can build a new one */ /* to recover from this error */ if (front != NULL) destroy_queue(front); front = create_stack(stack_size, 0, 0); #ifdef BITMAP front->depth = stack_size; /* construct a new seen state bits array */ front->seenstate = MAKEBITS; #if YYERRDEBUG != 0 if (yyerrorinfo >= 2) fprintf(stderr, "\nCreated seenstate bits\n"); #endif #endif q_length = max_length = 1; if (recover_flag) __yy_bcopy((char *)recover_stk, (char *)&front->stk_ptr[1], stack_size * sizeof(*yyssp)); else __yy_bcopy((char *)yyss, (char *)&front->stk_ptr[1], stack_size * sizeof(*yyssp)); errloc_ptr = front->stk_ptr[0]; recover_flag = 0; #if YYERRDEBUG != 0 if (yyerrorinfo >= 2) fprintf(stderr,"Reset recover_flag\n"); #endif /* Now we enter the main loop. The first thing to check is to see if */ /* there is nothing in the queue, in which case we cannot recover from */ /* this error. Otherwise, we copy the first stack in the queue to our */ /* error stack (adjusting the error stack size if it is full). Then, we */ /* print info about the states pushed on the stack. */ yymainloop: if (front == NULL) { #if YYERRDEBUG != 0 if (yyerrorinfo >= 2) fprintf(stderr, "Unable to insert string to recover. revert to PANIC mode\n"); #endif goto yyerroriglab; } currstk = front; front = front->next; q_length--; if ((stack_size = currstk->stk_ptr[0]) >= (errstk_size - 20)) { if ((errstk_size *= 2) >= YYMAXDEPTH) { yyerror("Error stack overflow"); YYABORT; } errstk_base = (short *) realloc(errstk_base, errstk_size); #if YYERRDEBUG != 0 fprintf(stderr, "Error stack size was increased to %d elements\n", errstk_size); #endif } __yy_bcopy((char *)&currstk->stk_ptr[1], (char *)errstk_base, stack_size * sizeof(*yyssp)); TOS_ptr = errstk_base + stack_size - 1; #ifdef BITMAP if (TSTBIT(currstk->seenstate,*TOS_ptr)) { #else #ifdef NOLOOPCHECK if (0) { #else if (check_loop(*TOS_ptr)) { #endif #endif #if YYERRDEBUG != 0 if (yyerrorinfo >= 2) fprintf(stderr, "State %d at front of queue already tested so skip\n", *TOS_ptr); #endif goto yymainloop; } #ifdef YYERRDEBUG if (yyerrorinfo) fprintf(stderr, "Tested yyerrcount = %d\n", yyerrcount); #endif if (yyerrcount > yyerrcountlimit) { #ifdef YYERRDEBUG if (yyerrorinfo) { fprintf(stderr, "Error recovery limit exceeded - unable to recover"); fprintf(stderr, "Time spent on recovery %5.2f seconds (%d Qed) \n", get_time()-yyrectime, yyerrcount); } #endif goto yyerroriglab; } #if YYERRDEBUG != 0 db_ptr->numstudied++; if (yyerrorinfo >= 2) { fprintf(stderr, "\nResulting state stack from first in queue : "); for (tmp_ptr = errstk_base; tmp_ptr <= TOS_ptr; tmp_ptr++) fprintf(stderr, "%d ", *tmp_ptr); fprintf(stderr, "\n\n"); } #endif /* If there is a default reduction from the TOS state, we call */ /* handle_reduction to follow the 'chain' of reductions to a state with */ /* shifts - *then* from there we call handle_shifts to add them to the */ /* queue. A reduction should NEVER be enqueued by itself - it must have */ /* a shift at the end of it. (Note that we first make a copy of the state */ /* stack so we can add a further deletion). */ del_stack = copy_stack(currstk, currstk->stk_ptr[0], 0, 0, 1); if (yypact[*TOS_ptr] == YYFLAG) { #if YYERRDEBUG !=0 if (yyerrorinfo >= 2) fprintf(stderr, "Default reduction possible in this state.\n"); #endif handle_reduction(yydefact[*TOS_ptr]); goto yycontinue; } /* The other possibility is to scan through yytable[] and find what */ /* shifts can be done from this state. This is done by handle_shift, */ /* which adds new stack items to the rear of the queue. Then add a */ /* further deletion to the node that was copied earlier. */ handle_shift(yypact[*TOS_ptr]); yycontinue: queue_deletion(del_stack); /* If handle_reduction or handle_shift found a shift on the current */ /* symbol in error from the TOS state, we consider that we have */ /* recovered. We copy the state stack back, adjust pointers, and record */ /* debugging info if necessary. Otherwise, we go back to the beginning of */ /* our main loop. */ if (err_fixed) { #if YYERRDEBUG != 0 if (yyerrorinfo >= 2) { fprintf(stderr, "\nResulting state stack from first in queue : "); for (tmp = 1; tmp <= currstk->stk_ptr[0]; tmp++) fprintf(stderr, "%d ", currstk->stk_ptr[tmp]); fprintf(stderr, "\n\n"); fprintf(stderr, "error stack size is %d\n", currstk->stk_ptr[0]); } #endif yymsginit(); sprintf(yychartime,"(%5.2f)[%d][%d] ",get_time()-yyrectime,currstk->totcost,yyerrcount); yymsgcpy(yychartime); yymsgcpy("Inserted "); if (!currstk->inserted[0]) yymsgcpy("nothing "); else for (i=1; i <= currstk->inserted[0]; i++) { yymsgcpy(yytname[currstk->inserted[i]]); yymsgcpy(" "); } yymsgcpy("and deleted "); if (!currstk->deleted[0]) yymsgcpy("nothing."); else for (i=1; i <= currstk->deleted[0]; i++) { yymsgcpy(yytname[currstk->deleted[i]]); yymsgcpy(" "); } #if YYERRDEBUG != 0 if (yydebug && yyerrorinfo) { fprintf(stderr, "\nBuilt up error message <%s>\n",yymsg); } #endif if (errstk_size != yystacksize) { yystacksize = errstk_size; #if YYERRDEBUG != 0 if (yyerrorinfo >= 2) fprintf(stderr, "Size of state stack increased to %d elements\n", yystacksize); #endif yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyssp)); } stack_size = currstk->stk_ptr[0]; __yy_bcopy((char *)&currstk->stk_ptr[1], (char *)yyss, stack_size * sizeof(*TOS_ptr)); yyssp = yyss + stack_size - 1; yyvsp = yyvs + stack_size - 1; yystate = *yyssp; #if YYERRDEBUG != 0 db_ptr->recoverstate = yystate; db_ptr->numstvisited = 0; for (i=0; inumstvisited++; db_ptr->inssymbols = (TOKENTYPE *) malloc((currstk->inserted[0] + 1) * sizeof(TOKENTYPE)); db_ptr->delsymbols = (TOKENTYPE *) malloc((currstk->deleted[0] + 1) * sizeof(TOKENTYPE)); __yy_bcopy((char *)currstk->inserted, (char *)db_ptr->inssymbols, (currstk->inserted[0] + 1) * sizeof(TOKENTYPE)); __yy_bcopy((char *)currstk->deleted, (char *)db_ptr->delsymbols, (currstk->deleted[0] + 1) * sizeof(TOKENTYPE)); db_ptr->tot_time = get_time() - db_ptr->start_time; db_ptr->cost = currstk->totcost; db_ptr->mq_length = max_length; #endif syms_remaining = num_read - currstk->deleted[0]; yychar = syms[currstk->deleted[0]]; yychar1 = (yychar == 0 ? 0 : YYTRANSLATE(yychar)); #ifdef YYERRDEBUG if (yyerrorinfo) fprintf(stderr,"Getting char=%d from syms[%d]: syms_remaing=%d num_read=%d\n", yychar, currstk->deleted[0], syms_remaining, num_read); #endif /* destroy_queue(front); we do not want to destroy the queue */ /* in case another error occurs within the lookahead period */ destroy_stack(currstk); free(errstk_base); goto yybackup; } #if YYERRDEBUG != 0 if (yyerrorinfo >= 3) printqueue(); #endif destroy_stack(currstk); goto yymainloop; yyerroriglab: /* here on detecting error that can not be repaired */ /* revert back to the situation that we had when the original */ /* error occurred */ yymsginit(); sprintf(yychartime,"(%5.2f)[>%d][%d] ",get_time()-yyrectime,currstk->totcost,yyerrcount); yymsgcpy(yychartime); yymsgcpy("PANIC MODE - Discarded "); yychar = syms[err_sym]; yychar1 = ((syms[err_sym] <= 0) ? 0 : YYTRANSLATE(syms[err_sym])); __yy_bcopy((char *)recover_stk, (char *)yyss, recover_ss * sizeof(*yyssp)); yyerrstatus = yylookahead; syms_remaining = num_read; #if YYERRDEBUG != 0 free(db_ptr->inssymbols); free(db_ptr->delsymbols); db_ptr->inssymbols = db_ptr->delsymbols = NULL; #endif yyerroriglab1: /* here when returning again without enough correct shifts */ if (yyerrorigstatus == 3) { /* if just tried and failed to reuse lookahead token after an error, discard it. */ /* return failure if at end of input */ if (yychar == YYEOF) { yyerror("Encountered end of input while in PANIC mode"); yyrecovermsg(yymsg); YYABORT; } yymsgcpy(" "); yymsgcpy(yytname[yychar1]); #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); #endif if (syms_remaining) syms_remaining--; yychar = YYEMPTY; } /* Else will try to reuse lookahead token after shifting the error token. */ yyerrorigstatus = 3; /* Each real token shifted decrements this */ goto yyerrorighandle; yyerrorigdefault: /* current state does not do anything special for the error token. */ yyerrorigpop: /* pop the current state because it cannot handle the error token */ if (yyssp == yyss) { yyerror("Encountered bottom of stack while in PANIC mode"); yyrecovermsg(yymsg); YYABORT; } yyvsp--; yystate = *--yyssp; #ifdef YYLSP_NEEDED yylsp--; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "Error: state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif yyerrorighandle: yyn = yypact[yystate]; if (yyn == YYFLAG) goto yyerrorigdefault; yyn += YYTERROR; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) goto yyerrorigdefault; yyn = yytable[yyn]; if (yyn < 0) { if (yyn == YYFLAG) goto yyerrorigpop; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrorigpop; if (yyn == YYFINAL) { YYACCEPT; } #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting error token, "); #endif *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif yystate = yyn; goto yynewstate; } /* create_stack : This creates a stack node for the queue of stacks to be */ /* checked. It allocates enough space to store the 'size' stack elements */ /* and 'ins_size' inserted symbol elements, and 'del_size' deleted symbol */ /* elements. We place these sizes into the first location in the allocated */ /* memory. A pointer to the node is returned. */ stack_queue create_stack(size, ins_size, del_size) int size, ins_size, del_size; { stack_queue qnode_ptr = (stack_queue) malloc(sizeof(struct stkqueue)); qnode_ptr->stk_ptr = (short *) malloc((size + 1) * sizeof(short)); qnode_ptr->stk_ptr[0] = size; qnode_ptr->inserted = (TOKENTYPE *) malloc((ins_size + 1) * sizeof(TOKENTYPE)); qnode_ptr->inserted[0]= ins_size; qnode_ptr->deleted = (TOKENTYPE *) malloc((del_size + 1) * sizeof(TOKENTYPE)); qnode_ptr->deleted[0] = del_size; qnode_ptr->totcost = 0; qnode_ptr->next = NULL; return qnode_ptr; } /* destroy_stack : Gets rid of an unwanted stack (queue) node. Requires */ /* a pointer to the node to be passed. */ void destroy_stack(node_ptr) stack_queue node_ptr; { free(node_ptr->stk_ptr); free(node_ptr->inserted); free(node_ptr->deleted); free(node_ptr); } /* destroy_queue : Disposes of a whole queue of stacks. Performed when */ /* we exit the error recovery loop. */ void destroy_queue(head_ptr) stack_queue head_ptr; { stack_queue temp_ptr = head_ptr; while (head_ptr != NULL) { head_ptr = head_ptr->next; destroy_stack(temp_ptr); temp_ptr = head_ptr; } } /* copy_stack : Makes a copy of the state stack and symbol stack in a */ /* new queue-stack node, with additional space (as specified) for new */ /* stack/symbol items. The base_size is needed for when we have just */ /* performed a reduction, and we only want to copy part of the */ /* resulting state stack. Leave the seenbits array and depth the same.*/ stack_queue copy_stack(original, base_size, size_inc, ins_inc, del_inc) stack_queue original; int base_size, size_inc, ins_inc, del_inc; { stack_queue qnode_ptr = create_stack(base_size + size_inc, original->inserted[0] + ins_inc, original->deleted[0] + del_inc); __yy_bcopy((char *)&original->stk_ptr[1], (char *)&qnode_ptr->stk_ptr[1], (base_size * sizeof(short))); __yy_bcopy((char *)&original->inserted[1], (char *)&qnode_ptr->inserted[1], (original->inserted[0] * sizeof(TOKENTYPE))); __yy_bcopy((char *)&original->deleted[1], (char *)&qnode_ptr->deleted[1], (original->deleted[0] * sizeof(TOKENTYPE))); qnode_ptr->totcost = original->totcost; #ifdef BITMAP qnode_ptr->depth = original->depth; qnode_ptr->seenstate = original->seenstate; #endif qnode_ptr->next = NULL; return qnode_ptr; } /* handle_reduction : This function follows 'chains' of reductions to a */ /* state that contains shifts. Only shifts are ever enqueued. It is */ /* recursive, and it updates a global stack node called 'currstk' and */ /* adjusts the top-of-stack via TOS_ptr. The only exit from this function */ /* is to call handle_shifts. */ void handle_reduction(rule_number) short rule_number; { short lhs_nt, length_rhs, shift; stack_queue newstk; short newstacklen; lhs_nt = yyr1[rule_number]; length_rhs = yyr2[rule_number]; #if YYERRDEBUG != 0 states_visited[*TOS_ptr] = overall_visits[*TOS_ptr] = 1; #endif shift = yypgoto[lhs_nt - YYNTBASE] + *(TOS_ptr -= length_rhs); if ((shift >= 0) && (shift <= YYLAST) && (yycheck[shift] == *TOS_ptr)) shift = yytable[shift]; else shift = yydefgoto[lhs_nt - YYNTBASE]; newstacklen = currstk->stk_ptr[0]-length_rhs; #ifdef BITMAP if (newstacklen < currstk->depth) { /* stack dropped below level when seenstate bitmap */ /* created - replace with new array */ currstk->depth = newstacklen; currstk->seenstate = MAKEBITS; #if YYERRDEBUG != 0 db_ptr->seenbitscreated++; if (yyerrorinfo >= 2) fprintf(stderr, "Recreated seenbits on reduction\n"); #endif } if (!check_loop(shift)) #endif { *++TOS_ptr = shift; newstk = copy_stack(currstk, newstacklen, 1, 0, 0); newstk->stk_ptr[newstacklen + 1] = shift; destroy_stack(currstk); currstk = newstk; handle_shift(yypact[shift]); } #if YYERRDEBUG != 0 if (yyerrorinfo >= 2) fprintf(stderr, "At end of handle reduction\n"); #endif } /* handle_shift : Deals with shifts from a state, enqueue-ing a new stack */ /* item for each one found. For reductions we call handle_reduction() and */ /* follow any chain of reductions that may follow to a state with shifts. */ /* This way only shifts on *real* symbols get put into the queue. Also, */ /* if this current stack includes any 'deletes', we don't try to enqueue */ /* any further shifts. */ void handle_shift(base) short base; { int offset, translated_sym; /** temp variable for testing **/ stack_queue actualstk; short *top_ptr, tmp_ptr; int found_soln; /* indicate whether we have found a valid */ /* recovery from the error */ found_soln = 0; /* initialise so that recursive calls to */ /* handle_shift and handle_reduction */ /* don't upset things */ translated_sym = (syms[currstk->deleted[0]] == 0 ? 0 : YYTRANSLATE(syms[currstk->deleted[0]])); #ifdef YYERRDEBUG if (yyerrorinfo) fprintf(stderr,"Getting translated_char=%d from syms[%d]: syms_remaing=%d num_read=%d\n", translated_sym, currstk->deleted[0], syms_remaining, num_read); states_visited[*TOS_ptr] = overall_visits[*TOS_ptr] = 1; #endif if ((base + translated_sym) >= 0 && yycheck[base + translated_sym] == translated_sym) { err_fixed = 1; found_soln = 1; top_ptr = (short *)malloc(sizeof(short)); *top_ptr = *TOS_ptr; actualstk = copy_stack(currstk, currstk->stk_ptr[0], 0, 0, 0); #if YYERRDEBUG != 0 if (yyerrorinfo >= 2) { fprintf(stderr, "We have found a recovery\n"); fprintf(stderr, "Top of stack state is %d\n", *TOS_ptr); } #endif } #if YYERRDEBUG != 0 if (yyerrorinfo >= 2) fprintf(stderr, "Can't recover on a %s from the current state %d...\n\n", yytname[translated_sym], *TOS_ptr); #endif if (currstk->deleted[0] == 0) { /* start loop at 2 to avoid shifts on `error' token */ for (offset = ((base < 0) ? abs(base) : 2); offset <= ((YYLAST - base) < (YYNTBASE - 1) ? YYLAST - base : (YYNTBASE - 1)); offset++) if (yycheck[base + offset] == offset) { int yyn = yytable[base + offset]; if ( (yyn < 0) && (yyn != YYFLAG)) { #if YYERRDEBUG != 0 if (yyerrorinfo >= 2) fprintf(stderr, "Reduction possible on a %s\n", yytname[offset]); #endif queue_shift_on_reduction(-yyn, offset); } else if ( (yyn == 0) || (yyn == YYFLAG)) { #if YYERRDEBUG != 0 if (yyerrorinfo >= 2) fprintf(stderr, "Error possible on a %s\n", yytname[offset]); #endif } else { #if YYERRDEBUG != 0 if (yyerrorinfo >= 2) fprintf(stderr, "Shift possible on a %s\n", yytname[offset]); #endif queue_shift(yyn, offset); } } } if (yydefact[*TOS_ptr]) handle_reduction(yydefact[*TOS_ptr]); if (found_soln == 1) { destroy_stack(currstk); currstk = actualstk; *TOS_ptr = *top_ptr; #if YYERRDEBUG != 0 if (yyerrorinfo >= 2) { fprintf(stderr, "Top of stack state is %d\n", *TOS_ptr); printqueue(); } #endif } #if YYERRDEBUG != 0 if (yyerrorinfo >= 2) fprintf(stderr, "At end of handle_shift\n"); #endif } /* queue_shift : This creates a stack specifically for a shift from a */ /* state, and links it to the queue. */ void queue_shift(shift, symbol) short shift; TOKENTYPE symbol; { stack_queue newstk; if (!check_loop(shift)) { newstk = copy_stack(currstk, currstk->stk_ptr[0], 1, 1, 0); newstk->stk_ptr[currstk->stk_ptr[0] + 1] = shift; newstk->inserted[currstk->inserted[0] + 1] = symbol; newstk->totcost += ins_costs[symbol]; #ifdef YYERRDEBUG if ((yyerrorinfo >= 1) && (symbol==0)) fprintf(stderr,"Used ins_costs of EOF\n"); #endif link_in(newstk); } } /* queue_shift_on_reduction : This is a special case of a shift. We must */ /* make a copy of the stack and find out which state to shift to after */ /* the reduction, and place the symbol into the string of recovery */ /* symbols. */ void queue_shift_on_reduction(rule_number, symbol) short rule_number; TOKENTYPE symbol; { short lhs_nt, length_rhs, shift, newshift, exposedstate; short origstacklen, newstacklen; stack_queue newstk; /* Need to copy stack even if we eventually find a loop as the stack * can grow as a result of empty RHS productions. Make the initial * assumption that the stack doesn't grow more than 5 states. * This corresponds to an four initial empty RHS productions. * Allow stack to grow only if necessary. * At end dont worry about cutting back to final size. */ #if YYERRDEBUG != 0 if (yyerrorinfo >=4) fprintf(stderr,"queue_shift_on_reduction: rule_number=%d, symbol=%s\n", rule_number,yytname[symbol]); #endif origstacklen = newstacklen = currstk->stk_ptr[0]; newstk = copy_stack(currstk, currstk->stk_ptr[0], 5, 1, 0); newstk->inserted[currstk->inserted[0] + 1] = symbol; newstk->totcost += ins_costs[symbol]; yydoreduce: lhs_nt = yyr1[rule_number]; length_rhs = yyr2[rule_number]; newstacklen -= length_rhs; exposedstate = newstk->stk_ptr[newstacklen]; shift = yypgoto[lhs_nt - YYNTBASE] + exposedstate; if ((shift >= 0) && (shift <= YYLAST) && (yycheck[shift] == exposedstate)) shift = yytable[shift]; else shift = yydefgoto[lhs_nt - YYNTBASE]; #if YYERRDEBUG != 0 if (yyerrorinfo >=4) { int i; fprintf(stderr,"\trule_number=%d, symbol=%s origstacklen=%d, newstacklen=%d,\n\tlhs_nt=%d, length_rhs=%d exposedstate=%d, shift=%d\n\tRule:", rule_number,yytname[symbol],origstacklen,newstacklen,lhs_nt,length_rhs,exposedstate,shift); for (i = yyprhs[rule_number]; yyrhs[i] > 0; i++) fprintf (stderr, "%s ", yytname[yyrhs[i]]); fprintf (stderr, " -> %s\n\tstack =", yytname[yyr1[rule_number]]); for (i= 1; i<= newstacklen; i++) fprintf (stderr, "%d ", newstk->stk_ptr[i]); fprintf (stderr, "||| "); for (i= newstacklen+1; i<= newstacklen+length_rhs; i++) fprintf (stderr, "%d ", newstk->stk_ptr[i]); fprintf (stderr, "\n"); } #endif /********* STACK COULD OVERFLOW *********/ newstacklen++; if (newstacklen > newstk->stk_ptr[0]) { fprintf (stderr, "queue_shift_on_reduction: FATAL STACK OVERFLOW\n"); } newstk->stk_ptr[newstacklen] = shift; newshift = yypact[shift]; if (newshift == YYFLAG) { rule_number = yydefact[shift]; #if YYERRDEBUG != 0 if (yyerrorinfo >=4) fprintf(stderr, "Encountered default reduction(%d) in queue_shift_on_reduction.symbol=%d shift=%d\n", rule_number,symbol,shift); #endif goto yydoreduce; } newshift += symbol; if (newshift < 0 || newshift > YYLAST || yycheck[newshift] != symbol) { #if YYERRDEBUG != 0 if (yyerrorinfo >=4) fprintf(stderr,"\tFATAL MISMATCH for newshift=%d yycheck=%d\n",newshift, yycheck[newshift]); #endif destroy_stack(newstk); return; } newshift = yytable[newshift]; /********* NEED TO CHECK THIS IS OK ********/ #if YYERRDEBUG != 0 if (yyerrorinfo >=4) fprintf(stderr,"\tnewshift=%d\n", newshift); #endif if (newshift < 0) { rule_number = - newshift; #if YYERRDEBUG != 0 if (yyerrorinfo >=4) fprintf(stderr,"\trepeat for rule=%d\n\n", rule_number); #endif goto yydoreduce; } if (newshift == 0) { #if YYERRDEBUG != 0 if (yyerrorinfo >= 4) fprintf(stderr, "Encountered error in queue_shift_on_reduction.symbol=%d shift=%d\n", rule_number,symbol,shift); #endif destroy_stack(newstk); return; } /********* STACK COULD OVERFLOW *********/ newstacklen++; if (newstacklen > newstk->stk_ptr[0]) { fprintf (stderr, "queue_shift_on_reduction: FATAL STACK OVERFLOW\n"); } newstk->stk_ptr[newstacklen] = newshift; newstk->stk_ptr[0]=newstacklen; #if YYERRDEBUG != 0 if (yyerrorinfo >= 4) fprintf(stderr,"\tfinal shift newshift=%d\n", newshift); #endif #ifdef BITMAP if (newstacklen < origstacklen) { /* stack dropped below level when seenstate bitmap */ /* created - replace with new array */ newstk->depth = newstacklen; newstk->seenstate = MAKEBITS; #if YYERRDEBUG != 0 db_ptr->seenbitscreated++; if (yyerrorinfo >= 2) fprintf(stderr, "Recreated seenbits on reduction\n"); #endif } if (check_loop(shift)) { destroy_stack(newstk); } else #endif { link_in(newstk); } } #ifdef SAMEELEM int SAME_ELEM(p1,p2) stack_queue p1,p2; { int i; if (p1->totcost != p2->totcost) return(0); if (p1->stk_ptr[0] != p2->stk_ptr[0]) return(0); for(i=1;i<=(p1->stk_ptr[0]);i++) if (p1->stk_ptr[i] != p2->stk_ptr[i]) return(0); if (p1->inserted[0] != p2->inserted[0]) return(0); for(i=1;i<=(p1->inserted[0]);i++) if (p1->inserted[i] != p2->inserted[i]) return(0); if (p1->deleted[0] != p2->deleted[0]) return(0); for(i=1;i<=(p1->deleted[0]);i++) if (p1->deleted[i] != p2->deleted[i]) return(0); return(1); } #endif /* link_in : Inserts a new stack item to the queue based on cost of the */ /* symbols to be inserted and deleted. */ void link_in(newstk) stack_queue newstk; { stack_queue tmp_ptr = front; int placefound = 0; yyerrcount++; if (front == NULL) front = newstk; else if (newstk->totcost < front->totcost) { newstk->next = front; front = newstk; } else { while ((tmp_ptr->next != NULL) && (!placefound)) { #ifdef SAMEELEM if (SAME_ELEM(newstk, tmp_ptr)) { fprintf(stderr, "Found identical elements\n"); return; } #endif if (newstk->totcost >= tmp_ptr->next->totcost) tmp_ptr = tmp_ptr->next; else placefound = 1; } newstk->next = tmp_ptr->next; tmp_ptr->next = newstk; } q_length++; if (q_length > max_length) max_length = q_length; #if YYERRDEBUG != 0 db_ptr->numqueued++; #endif } /* check_loop : Checks to see if adding the given new state to the stack */ /* will create a loop - if so, we won't create a stack item to hold it. */ /* We don't want to be jammed in infinite loops! For this version, since */ /* we are copying the whole stack at a time, we use errloc_ptr so we only */ /* go back as far in the stack as where the error occurred to check for */ /* loops. In fact any reentering of the state means we have already */ /* investigated that state and do not need to add it to the queue again. */ #ifdef BITMAP int testbit(seenstate,state) BITARRAY seenstate; { /* set the `state'th bit of seenstate and return its */ /* previous setting */ BITARRAY p = &seenstate[state / BITTYPESIZE]; int mask = 1<<(state % BITTYPESIZE); int oldval = (*p) & mask; (*p) |= mask; #if YYERRDEBUG != 0 db_ptr->seenbitstested++; if (oldval) db_ptr->seenbitsalreadyset++; #endif return(oldval); } #endif int check_loop(state) short state; { int loop; #ifdef BITMAP int ndel = currstk->deleted[0]; #if YYERRDEBUG != 0 db_ptr->seenbitstested++; #endif if (GETBIT(currstk->seenstate,state)) { #if YYERRDEBUG != 0 db_ptr->seenbitsalreadyset++; if (yyerrorinfo >= 2) fprintf(stderr, "State %d already tested so don't add to queue\n", state); #endif return 1; } /* The following tests is not needed now that seenstate detect loops */ return 0; #else #ifdef NOLOOPCHECK return 0; #else for (loop = errloc_ptr+1; loop <= currstk->stk_ptr[0]; loop++) if (currstk->stk_ptr[loop] == state) { #if YYERRDEBUG != 0 if (yyerrorinfo >= 2) fprintf(stderr, "Loop detected in state %d so don't add to queue\n", state); #endif return 1; } return 0; #endif #endif } /* move_symbols : This is called when we enter the error recovery */ /* routines. If there are symbols remaining in the syms array it moves */ /* them to the front otherwise the current char is placed at the */ /* beginning of the array. */ void move_symbols(thischar) int thischar; { int i; #ifdef YYERRDEBUG if (yyerrorinfo) fprintf(stderr,"In move_symbols with thischar=%d, syms_remaining=%d and num_read=%d\n", thischar, syms_remaining,num_read); #endif if (syms_remaining) { #ifdef YYERRDEBUG if (yyerrorinfo) fprintf(stderr,"Moved %d symbols\n", syms_remaining); #endif for (i=(num_read - syms_remaining); ideleted[0]; if (i == num_read) read_a_symbol(); if ((syms[i - 1] != YYEOF) && (i != num_read)) { delstk->deleted[i] = (syms[i - 1] < 0 ? 0 : YYTRANSLATE(syms[i - 1])); delstk->totcost += del_costs[delstk->deleted[i]]; #ifdef YYERRDEBUG if ((yyerrorinfo >= 1) && (delstk->deleted[i]==0)) fprintf(stderr,"Used del_costs of EOF\n"); #endif #ifdef BITMAP delstk->depth = delstk->stk_ptr[0]; delstk->seenstate = MAKEBITS; #ifdef YYERRDEBUG db_ptr->seenbitscreated++; #endif #endif link_in(delstk); } } /* printqueue : Prints out the state/symbol stacks stored in the queue - */ /* part of the debugging information. */ #if YYERRDEBUG !=0 void printqueue() { stack_queue tmp_ptr = front; int i; if (tmp_ptr == NULL) fprintf(stderr, "\nFor the next iteration: The queue is empty.\n\n"); else { fprintf(stderr, "\nFor the next iteration: The queue is:\n\n"); while (tmp_ptr != NULL) { fprintf(stderr, "States : "); for (i=1; i<= tmp_ptr->stk_ptr[0]; i++) fprintf(stderr, "%2d ", tmp_ptr->stk_ptr[i]); fprintf(stderr, "\nInserted: "); for (i=1; i<= tmp_ptr->inserted[0]; i++) fprintf(stderr, "%s ", yytname[tmp_ptr->inserted[i]]); fprintf(stderr, "\nDeleted : "); for (i=1; i<= tmp_ptr->deleted[0]; i++) fprintf(stderr, "%s ", yytname[tmp_ptr->deleted[i]]); fprintf(stderr, "\nCost : %d\n\n", tmp_ptr->totcost); tmp_ptr = tmp_ptr->next; } fprintf(stderr, "\n"); } } #endif /* error_statistics : Gives info about errors recovered from, and what */ /* symbols were inserted to do this. */ void error_statistics(didnt_recover) int didnt_recover; { #if YYERRDEBUG != 0 debug_ptr db_ptr = db_base; int printsyms, err_count = 1, i, overall = 0; FILE *fptr; if (yydumpstats) { yyparsetime = get_time() - yyparsetime; fprintf(stderr, "Shifted %d tokens in %6.3f seconds", yytokencount, yyparsetime); fprintf(stderr, " (%6.1f tokens per second)\n", (yytokencount / yyparsetime)); } if (yydumpstats && num_errs) { if (didnt_recover) { fprintf(stderr, "Unable to recover.\n"); if (--num_errs) fprintf(stderr, "However, we recovered from %d error%sthat occurred beforehand.\n\n", num_errs, (num_errs == 1) ? " " : "s "); } else fprintf(stderr, "We recovered from %d error%c\n\n", num_errs, (num_errs == 1) ? ' ' : 's'); printf("# Symbols\tNumber_States_Visited\t\tTime\tNumber\tMax Q"); #ifdef BITMAP printf("\tSeen_State_Bitmap"); #endif printf("\nInsert\tDelete\tStudied\tVisited\tTotal\tPerc\t(secs)\tQueued\tLength"); #ifdef BITMAP printf("\tCreate\tTest\tSet"); #endif printf("\tCost\n"); while (num_errs--) { if (db_ptr->inssymbols && db_ptr->delsymbols) printf("%d\t%d\t", db_ptr->inssymbols[0],db_ptr->delsymbols[0]); else printf("PANIC\t"); printf("%d\t%d\t%d\t",db_ptr->numstudied, db_ptr->numstvisited - 1, YYFINAL + 1); printf("%5.1f%%\t", ((double) (db_ptr->numstvisited - 1) / (YYFINAL + 1)) * 100); printf("%6.3f\t", db_ptr->tot_time); printf("%d\t", db_ptr->numqueued); printf("%d\t", db_ptr->mq_length); #ifdef BITMAP printf("%d\t%d\t%d\t", db_ptr->seenbitscreated, db_ptr->seenbitstested, db_ptr->seenbitsalreadyset); #endif printf("%d\n", db_ptr->cost); if (db_ptr->inssymbols && db_ptr->inssymbols[0] > 0) { printf("\tIns: "); for (printsyms = 1; printsyms <= db_ptr->inssymbols[0]; printsyms++) printf("%s ", yytname[db_ptr->inssymbols[printsyms]]); } if (db_ptr->delsymbols && db_ptr->delsymbols[0] > 0) { printf("\n\tDel: "); for (printsyms = 1; printsyms <= db_ptr->delsymbols[0]; printsyms++) printf("%s ", yytname[db_ptr->delsymbols[printsyms]]); } printf("\n"); db_ptr = db_ptr->next; } printf("\n"); } #endif } float get_time() { struct rusage rusage; getrusage(RUSAGE_SELF, &rusage); return(rusage.ru_utime.tv_sec + rusage.ru_utime.tv_usec / 1000000.0 + rusage.ru_stime.tv_sec + rusage.ru_stime.tv_usec / 1000000.0); } /* Routines to build up a message */ void yymsginit() { yymsgleft = 128; if(yymsg!=NULL) free(yymsg); yymsgp = yymsg = malloc(yymsgleft+1); *yymsgp = '\0'; } void yymsgcpy(s) char *s; { while(yymsgleft && *s) { yymsgleft--; *yymsgp++ = *s++; } *yymsgp = '\0'; if (*s) { /* need to increase length */ int currlen = yymsgp - yymsg; yymsg = realloc(yymsg,2*currlen+1); yymsgleft += currlen; yymsgp = yymsg + currlen; yymsgcpy(s); } } void yymsgfree() { free(yymsg); yymsg = NULL; } kimwitu-4.6.1.orig/src/defocc.c0100644000176100001440000005601107076113222015634 0ustar debacleusers/* translation of file "../defocc.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #define KC_FUNCTIONS_defocc #define KIMW_FUNCTIONS_defocc /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include #ifdef KC_STDC # include #endif #include "k.h" /* included stuff */ #line 2 "../defocc.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 29 "defocc.c" #line 14 "../defocc.k" #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char defocc_kAccesSid[] = "@(#)$Id: defocc.k,v 1.9 1996/10/14 11:12:31 belinfan Rel $"; #endif #line 35 "defocc.c" /* end included stuff */ #include "defocc.h" void v_defoccur #ifdef KC_USE_PROTOTYPES (ID id, IDtype it) #else (id, it) ID id; IDtype it; #endif #line 35 "../defocc.k" { id->type = it; { #line 37 "../defocc.k" IDtype kc_selvar_0_1 = it ; #line 37 "../defocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_0_1, "with_expression (1)"); #line 58 "defocc.c" if (( kc_selvar_0_1->prod_sel == sel_ITPatternVariable)) { #line 147 "../defocc.k" int i_s = kc_selvar_0_1->u.ITPatternVariable.int_1; #line 147 "../defocc.k" { #line 148 "../defocc.k" ID kc_selvar_1_1 = id ; #line 148 "../defocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 73 "defocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 149 "../defocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 149 "../defocc.k" { #line 150 "../defocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 150 "../defocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 88 "defocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITPatternVariable)) { #line 152 "../defocc.k" int id_s = kc_selvar_2_1->u.ITPatternVariable.int_1; #line 152 "../defocc.k" if (i_s == id_s) v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of pattern variable:", id ))); #line 94 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 151 "../defocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 99 "defocc.c" } else { #line 153 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal redefinition of ", uid->type, "as pattern variable", id ))); #line 104 "defocc.c" } } #line 154 "../defocc.k" #line 109 "defocc.c" } else kc_no_default_in_with( "v_defoccur", __LINE__, __FILE__ ); } #line 154 "../defocc.k" #line 115 "defocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITUserRView)) { #line 138 "../defocc.k" { #line 139 "../defocc.k" ID kc_selvar_1_1 = id ; #line 139 "../defocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 129 "defocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 140 "../defocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 140 "../defocc.k" { #line 141 "../defocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 141 "../defocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 144 "defocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITUserRView)) { #line 144 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of rewrite view:", id ))); #line 148 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedRView)) { #line 143 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of predefined rewrite view:", id ))); #line 153 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 142 "../defocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 158 "defocc.c" } else { #line 145 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal redefinition of ", uid->type, "as rewrite view", id ))); #line 163 "defocc.c" } } #line 146 "../defocc.k" #line 168 "defocc.c" } else kc_no_default_in_with( "v_defoccur", __LINE__, __FILE__ ); } #line 146 "../defocc.k" #line 174 "defocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITPredefinedRView)) { #line 129 "../defocc.k" { #line 130 "../defocc.k" ID kc_selvar_1_1 = id ; #line 130 "../defocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 188 "defocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 131 "../defocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 131 "../defocc.k" { #line 132 "../defocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 132 "../defocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 203 "defocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITUserRView)) { #line 135 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of rewrite view:", id ))); #line 207 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedRView)) { #line 134 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of predefined rewrite view:", id ))); #line 212 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 133 "../defocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 217 "defocc.c" } else { #line 136 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal predefinition of ", uid->type, "as rewrite view", id ))); #line 222 "defocc.c" } } #line 137 "../defocc.k" #line 227 "defocc.c" } else kc_no_default_in_with( "v_defoccur", __LINE__, __FILE__ ); } #line 137 "../defocc.k" #line 233 "defocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITUserUView)) { #line 120 "../defocc.k" { #line 121 "../defocc.k" ID kc_selvar_1_1 = id ; #line 121 "../defocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 247 "defocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 122 "../defocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 122 "../defocc.k" { #line 123 "../defocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 123 "../defocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 262 "defocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITUserUView)) { #line 126 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of unparse view:", id ))); #line 266 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedUView)) { #line 125 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of predefined unparse view:", id ))); #line 271 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 124 "../defocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 276 "defocc.c" } else { #line 127 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal redefinition of ", uid->type, "as unparse view", id ))); #line 281 "defocc.c" } } #line 128 "../defocc.k" #line 286 "defocc.c" } else kc_no_default_in_with( "v_defoccur", __LINE__, __FILE__ ); } #line 128 "../defocc.k" #line 292 "defocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITPredefinedUView)) { #line 111 "../defocc.k" { #line 112 "../defocc.k" ID kc_selvar_1_1 = id ; #line 112 "../defocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 306 "defocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 113 "../defocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 113 "../defocc.k" { #line 114 "../defocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 114 "../defocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 321 "defocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITUserUView)) { #line 117 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of unparse view:", id ))); #line 325 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedUView)) { #line 116 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of predefined unparse view:", id ))); #line 330 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 115 "../defocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 335 "defocc.c" } else { #line 118 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal predefinition of ", uid->type, "as unparse view", id ))); #line 340 "defocc.c" } } #line 119 "../defocc.k" #line 345 "defocc.c" } else kc_no_default_in_with( "v_defoccur", __LINE__, __FILE__ ); } #line 119 "../defocc.k" #line 351 "defocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITUserFunction)) { #line 96 "../defocc.k" fnclass it_fnc = kc_selvar_0_1->u.ITUserFunction.fnclass_1; #line 96 "../defocc.k" { #line 97 "../defocc.k" ID kc_selvar_1_1 = id ; #line 97 "../defocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 367 "defocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 98 "../defocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 98 "../defocc.k" { #line 99 "../defocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 99 "../defocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 382 "defocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITUserFunction) && ( kc_selvar_2_1->u.ITUserFunction.fnclass_1->prod_sel == sel_LocalFn)) { #line 102 "../defocc.k" { #line 103 "../defocc.k" fnclass kc_selvar_3_1 = it_fnc ; #line 103 "../defocc.k" /*SUPPRESS 622*/ assert_fnclass(kc_selvar_3_1, "with_expression (1)"); #line 395 "defocc.c" if (( kc_selvar_3_1->prod_sel == sel_LocalFn)) { #line 105 "../defocc.k" if (eq_casestring( uid->file, id->file )) { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of local function:", id ))); } #line 402 "defocc.c" } else if (( kc_selvar_3_1->prod_sel == sel_GlobalFn)) { #line 104 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of local function:", id ))); #line 407 "defocc.c" } else kc_no_default_in_with( "v_defoccur", __LINE__, __FILE__ ); } #line 108 "../defocc.k" #line 413 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUserFunction) && ( kc_selvar_2_1->u.ITUserFunction.fnclass_1->prod_sel == sel_GlobalFn)) { #line 101 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of global function:", id ))); #line 418 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 100 "../defocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 423 "defocc.c" } else { #line 109 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal redefinition of ", uid->type, "as function", id ))); #line 428 "defocc.c" } } #line 110 "../defocc.k" #line 433 "defocc.c" } else kc_no_default_in_with( "v_defoccur", __LINE__, __FILE__ ); } #line 110 "../defocc.k" #line 439 "defocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITStorageClass)) { #line 87 "../defocc.k" { #line 88 "../defocc.k" ID kc_selvar_1_1 = id ; #line 88 "../defocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 453 "defocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 89 "../defocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 89 "../defocc.k" { #line 90 "../defocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 90 "../defocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 468 "defocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITStorageClass)) { #line 93 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of storage class:", id ))); #line 472 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedStorageClass)) { #line 92 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of predefined storage class:", id ))); #line 477 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 91 "../defocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 482 "defocc.c" } else { #line 94 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal redefinition of ", uid->type, "as storage class", id ))); #line 487 "defocc.c" } } #line 95 "../defocc.k" #line 492 "defocc.c" } else kc_no_default_in_with( "v_defoccur", __LINE__, __FILE__ ); } #line 95 "../defocc.k" #line 498 "defocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITPredefinedStorageClass)) { #line 78 "../defocc.k" { #line 79 "../defocc.k" ID kc_selvar_1_1 = id ; #line 79 "../defocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 512 "defocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 80 "../defocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 80 "../defocc.k" { #line 81 "../defocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 81 "../defocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 527 "defocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITStorageClass)) { #line 84 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of storage class:", id ))); #line 531 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedStorageClass)) { #line 83 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of predefined storage class:", id ))); #line 536 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 82 "../defocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 541 "defocc.c" } else { #line 85 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal predefinition of ", uid->type, "as storage class", id ))); #line 546 "defocc.c" } } #line 86 "../defocc.k" #line 551 "defocc.c" } else kc_no_default_in_with( "v_defoccur", __LINE__, __FILE__ ); } #line 86 "../defocc.k" #line 557 "defocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITUserOperator)) { #line 69 "../defocc.k" { #line 70 "../defocc.k" ID kc_selvar_1_1 = id ; #line 70 "../defocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 571 "defocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 71 "../defocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 71 "../defocc.k" { #line 72 "../defocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 72 "../defocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 586 "defocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITUserOperator)) { #line 75 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of operator:", id ))); #line 590 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedOperator)) { #line 74 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of predefined operator:", id ))); #line 595 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 73 "../defocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 600 "defocc.c" } else { #line 76 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal redefinition of ", uid->type, "as operator", id ))); #line 605 "defocc.c" } } #line 77 "../defocc.k" #line 610 "defocc.c" } else kc_no_default_in_with( "v_defoccur", __LINE__, __FILE__ ); } #line 77 "../defocc.k" #line 616 "defocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITPredefinedOperator)) { #line 60 "../defocc.k" { #line 61 "../defocc.k" ID kc_selvar_1_1 = id ; #line 61 "../defocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 630 "defocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 62 "../defocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 62 "../defocc.k" { #line 63 "../defocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 63 "../defocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 645 "defocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITUserOperator)) { #line 66 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of operator:", id ))); #line 649 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedOperator)) { #line 65 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of predefined operator:", id ))); #line 654 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 64 "../defocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 659 "defocc.c" } else { #line 67 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal predefinition of ", uid->type, "as operator", id ))); #line 664 "defocc.c" } } #line 68 "../defocc.k" #line 669 "defocc.c" } else kc_no_default_in_with( "v_defoccur", __LINE__, __FILE__ ); } #line 68 "../defocc.k" #line 675 "defocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITUserPhylum)) { #line 50 "../defocc.k" { #line 51 "../defocc.k" ID kc_selvar_1_1 = id ; #line 51 "../defocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 689 "defocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 52 "../defocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 52 "../defocc.k" { #line 53 "../defocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 53 "../defocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 704 "defocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITUserPhylum)) { #line 57 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of phylum:", id ))); #line 708 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedPhylum)) { #line 56 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of predefined phylum:", id ))); #line 713 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 56 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of predefined phylum:", id ))); #line 718 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 54 "../defocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 723 "defocc.c" } else { #line 58 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal redefinition of ", uid->type, "as phylum", id ))); #line 728 "defocc.c" } } #line 59 "../defocc.k" #line 733 "defocc.c" } else kc_no_default_in_with( "v_defoccur", __LINE__, __FILE__ ); } #line 59 "../defocc.k" #line 739 "defocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITPredefinedPhylum)) { #line 40 "../defocc.k" { #line 41 "../defocc.k" ID kc_selvar_1_1 = id ; #line 41 "../defocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 753 "defocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 42 "../defocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 42 "../defocc.k" { #line 43 "../defocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 43 "../defocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 768 "defocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITUserPhylum)) { #line 47 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of phylum:", id ))); #line 772 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedPhylum)) { #line 46 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of predefined phylum:", id ))); #line 777 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 46 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of predefined phylum:", id ))); #line 782 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 44 "../defocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 787 "defocc.c" } else { #line 48 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal predefinition of ", uid->type, "as phylum", id ))); #line 792 "defocc.c" } } #line 49 "../defocc.k" #line 797 "defocc.c" } else kc_no_default_in_with( "v_defoccur", __LINE__, __FILE__ ); } #line 49 "../defocc.k" #line 803 "defocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 40 "../defocc.k" { #line 41 "../defocc.k" ID kc_selvar_1_1 = id ; #line 41 "../defocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 817 "defocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 42 "../defocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 42 "../defocc.k" { #line 43 "../defocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 43 "../defocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 832 "defocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITUserPhylum)) { #line 47 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of phylum:", id ))); #line 836 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedPhylum)) { #line 46 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of predefined phylum:", id ))); #line 841 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 46 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of predefined phylum:", id ))); #line 846 "defocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 44 "../defocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 851 "defocc.c" } else { #line 48 "../defocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal predefinition of ", uid->type, "as phylum", id ))); #line 856 "defocc.c" } } #line 49 "../defocc.k" #line 861 "defocc.c" } else kc_no_default_in_with( "v_defoccur", __LINE__, __FILE__ ); } #line 49 "../defocc.k" #line 867 "defocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITUnknown)) { #line 38 "../defocc.k" /*EMPTY*/ #line 872 "defocc.c" } else kc_no_default_in_with( "v_defoccur", __LINE__, __FILE__ ); } #line 155 "../defocc.k" #line 155 "../defocc.k" } #line 880 "defocc.c" kimwitu-4.6.1.orig/src/defocc.h0100644000176100001440000000145407076113232015643 0ustar debacleusers/* translation of file "../defocc.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #ifndef KC_FUNCTIONS_defocc_HEADER #define KC_FUNCTIONS_defocc_HEADER #define KIMW_FUNCTIONS_defocc_HEADER /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include "k.h" /* in case a user forgets */ /* included stuff */ #line 2 "../defocc.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 27 "defocc.h" /* end included stuff */ void v_defoccur KC__P((ID id, IDtype it)); #endif /* ! KC_FUNCTIONS_defocc_HEADER */ kimwitu-4.6.1.orig/src/defocc.k0100644000176100001440000002116407076113220015643 0ustar debacleusers%{ CODE HEADER /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ %} /* * defocc.k */ %{ #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char defocc_kAccesSid[] = "@(#)$Id: defocc.k,v 1.9 1996/10/14 11:12:31 belinfan Rel $"; #endif %} /***************************************************************************/ %{ KC_TYPES_HEADER #include "defocc.h" %} /***************************************************************************/ /* * This can maybe done easier using an addional (only for pattern-matching) phylum * twoIDtype: TwoIDtype( IDtype IDtype ); * then we can match the combinations of both subterms in one pattern, * allowing more wildcarding and use of several patterns for the same action * (in the new release) * such a trick (using two in patterns) might be more generally useful * when we want to compare two things of the same type! */ void v_defoccur( id, it) ID id; IDtype it; { id->type = it; with( it ) { ITUnknown(): {/*EMPTY*/} ITPredefinedBigatomPhylum( * ), ITPredefinedPhylum( * ): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITPredefinedBigatomPhylum( * ), ITPredefinedPhylum( * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of predefined phylum:", id ))); } ITUserPhylum( * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of phylum:", id ))); } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal predefinition of ", uid->type, "as phylum", id ))); } } } } } ITUserPhylum( * ): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITPredefinedBigatomPhylum( * ), ITPredefinedPhylum( * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of predefined phylum:", id ))); } ITUserPhylum( * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of phylum:", id ))); } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal redefinition of ", uid->type, "as phylum", id ))); } } } } } ITPredefinedOperator( *, * ): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITPredefinedOperator( *, * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of predefined operator:", id ))); } ITUserOperator( *, * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of operator:", id ))); } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal predefinition of ", uid->type, "as operator", id ))); } } } } } ITUserOperator( *, * ): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITPredefinedOperator( *, * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of predefined operator:", id ))); } ITUserOperator( *, * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of operator:", id ))); } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal redefinition of ", uid->type, "as operator", id ))); } } } } } ITPredefinedStorageClass(): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITPredefinedStorageClass(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of predefined storage class:", id ))); } ITStorageClass(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of storage class:", id ))); } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal predefinition of ", uid->type, "as storage class", id ))); } } } } } ITStorageClass(): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITPredefinedStorageClass(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of predefined storage class:", id ))); } ITStorageClass(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of storage class:", id ))); } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal redefinition of ", uid->type, "as storage class", id ))); } } } } } ITUserFunction( it_fnc ): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITUserFunction( GlobalFn() ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of global function:", id ))); } ITUserFunction(LocalFn( * ) ): { with( it_fnc ) { GlobalFn(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of local function:", id ))); } LocalFn( * ): { if (eq_casestring( uid->file, id->file )) { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of local function:", id ))); } } } } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal redefinition of ", uid->type, "as function", id ))); } } } } } ITPredefinedUView(): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITPredefinedUView(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of predefined unparse view:", id ))); } ITUserUView(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of unparse view:", id ))); } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal predefinition of ", uid->type, "as unparse view", id ))); } } } } } ITUserUView(): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITPredefinedUView(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of predefined unparse view:", id ))); } ITUserUView(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of unparse view:", id ))); } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal redefinition of ", uid->type, "as unparse view", id ))); } } } } } ITPredefinedRView(): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITPredefinedRView(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of predefined rewrite view:", id ))); } ITUserRView(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal predefinition of rewrite view:", id ))); } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal predefinition of ", uid->type, "as rewrite view", id ))); } } } } } ITUserRView(): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITPredefinedRView(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of predefined rewrite view:", id ))); } ITUserRView(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of rewrite view:", id ))); } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal redefinition of ", uid->type, "as rewrite view", id ))); } } } } } ITPatternVariable( *, i_s ): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITPatternVariable( *, id_s ): { if (i_s == id_s) v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of pattern variable:", id ))); } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal redefinition of ", uid->type, "as pattern variable", id ))); } } } } } } } kimwitu-4.6.1.orig/src/defs.h0100644000176100001440000000061507076113235015342 0ustar debacleusers/* this file is automatically generated by 'make'; do not edit! */ #ifndef DEFS_H # define RCSMAKEID "@(#)$Id: Makefile,v 2.78 1998/03/18 16:55:24 belinfan Rel $" # define KIMWITUCOPYRIGHT "@(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $" # define KC_USE_STAT # define KIMWITURELEASE "@(#)RELEASE VERSION V4_6" # define KIMWITUVERSIONSTRING "V4_6" #endif /* DEFS_H */ kimwitu-4.6.1.orig/src/defs.hh0100644000176100001440000000061507076113235015512 0ustar debacleusers/* this file is automatically generated by 'make'; do not edit! */ #ifndef DEFS_H # define RCSMAKEID "@(#)$Id: Makefile,v 2.78 1998/03/18 16:55:24 belinfan Rel $" # define KIMWITUCOPYRIGHT "@(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $" # define KC_USE_STAT # define KIMWITURELEASE "@(#)RELEASE VERSION V4_6" # define KIMWITUVERSIONSTRING "V4_6" #endif /* DEFS_H */ kimwitu-4.6.1.orig/src/errmsg.c0100644000176100001440000012346607076113235015725 0ustar debacleusers#include "errmsg.h" char *error_message[][3] = { { "specification @1", "", "\n" }, { "id declarations declaration phylumdeclaration includedeclaration rwdeclaration outmostpatterns outmostpattern unparsedeclaration uviewdeclaration rviewdeclaration storageclassdeclaration ac_function_definition ac_declaration_specifiers ac_storage_class_specifier ac_type_specifier ac_type_qualifier", "T_ID T_INCLUDESTART T_STATIC T_DEFAULT T_PERCENTRVIEW T_PERCENTUVIEW T_PERCENTSTORAGECLASS T_AUTO T_REGISTER T_EXTERN T_TYPEDEF T_CONST T_VOLATILE '*'", "\n\tspecification -> @1 . declarations" }, { "", "", "\n\tid -> T_ID ." }, { "includefiles_option includefiles", "T_ID", "\n\tincludedeclaration -> T_INCLUDESTART . includefiles_option @26 includes T_INCLUDEEND" }, { "", "", "\n\tac_storage_class_specifier -> T_STATIC ." }, { "", "", "\n\toutmostpattern -> T_DEFAULT ." }, { "id defrviewnames", "T_ID", "\n\trviewdeclaration -> T_PERCENTRVIEW . defrviewnames ';'" }, { "id defuviewnames", "T_ID", "\n\tuviewdeclaration -> T_PERCENTUVIEW . defuviewnames ';'" }, { "id defstorageclasses", "T_ID", "\n\tstorageclassdeclaration -> T_PERCENTSTORAGECLASS . defstorageclasses ';'" }, { "", "", "\n\tac_storage_class_specifier -> T_AUTO ." }, { "", "", "\n\tac_storage_class_specifier -> T_REGISTER ." }, { "", "", "\n\tac_storage_class_specifier -> T_EXTERN ." }, { "", "", "\n\tac_storage_class_specifier -> T_TYPEDEF ." }, { "", "", "\n\tac_type_qualifier -> T_CONST ." }, { "", "", "\n\tac_type_qualifier -> T_VOLATILE ." }, { "", "", "\n\toutmostpattern -> '*' ." }, { "storageoption", "'{' '(' '='", "\n\tphylumdeclaration -> id . storageoption ':' @2 productionblock Ccode_option ';'\n\toutmostpattern -> id .\n\toutmostpattern -> id . '(' patternsoption ')'\n\toutmostpattern -> id . '=' outmostpattern\n\tac_type_specifier -> id ." }, { "id declaration phylumdeclaration includedeclaration rwdeclaration outmostpatterns outmostpattern unparsedeclaration uviewdeclaration rviewdeclaration storageclassdeclaration ac_function_definition ac_declaration_specifiers ac_storage_class_specifier ac_type_specifier ac_type_qualifier", "T_ID T_INCLUDESTART T_STATIC T_DEFAULT T_PERCENTRVIEW T_PERCENTUVIEW T_PERCENTSTORAGECLASS T_AUTO T_REGISTER T_EXTERN T_TYPEDEF T_CONST T_VOLATILE '*'", "\n\tspecification -> @1 declarations .\n\tdeclarations -> declarations . declaration" }, { "", "", "\n\tdeclarations -> declaration ." }, { "", "", "\n\tdeclaration -> phylumdeclaration ." }, { "", "", "\n\tdeclaration -> includedeclaration ." }, { "", "", "\n\tdeclaration -> rwdeclaration ." }, { "", "T_ARROW ','", "\n\trwdeclaration -> outmostpatterns . T_ARROW @27 rwclauses_or_term ';'\n\toutmostpatterns -> outmostpatterns . ',' outmostpattern\n\tunparsedeclaration -> outmostpatterns . T_ARROW @31 unparseclauses ';'" }, { "", "", "\n\toutmostpatterns -> outmostpattern ." }, { "", "", "\n\tdeclaration -> unparsedeclaration ." }, { "", "", "\n\tdeclaration -> uviewdeclaration ." }, { "", "", "\n\tdeclaration -> rviewdeclaration ." }, { "", "", "\n\tdeclaration -> storageclassdeclaration ." }, { "", "", "\n\tdeclaration -> ac_function_definition ." }, { "id ac_fn_declarator ac_direct_fn_declarator ac_pointer ac_identifier", "T_ID '$' '*'", "\n\tac_function_definition -> ac_declaration_specifiers . ac_fn_declarator ac_declaration_list_option ac_compound_statement" }, { "id ac_type_specifier ac_type_qualifier", "T_ID T_CONST T_VOLATILE", "\n\tac_declaration_specifiers -> ac_storage_class_specifier . ac_type_specifier\n\tac_declaration_specifiers -> ac_storage_class_specifier . ac_type_qualifier ac_type_specifier" }, { "", "", "\n\tac_declaration_specifiers -> ac_type_specifier ." }, { "id ac_type_specifier", "T_ID", "\n\tac_declaration_specifiers -> ac_type_qualifier . ac_type_specifier" }, { "", "", "\n\tincludefiles -> T_ID ." }, { "@26", "", "\n\tincludedeclaration -> T_INCLUDESTART includefiles_option . @26 includes T_INCLUDEEND" }, { "", "T_ID", "\n\tincludefiles_option -> includefiles .\n\tincludefiles -> includefiles . T_ID" }, { "", "", "\n\tdefrviewnames -> id ." }, { "id", "T_ID ';' ','", "\n\trviewdeclaration -> T_PERCENTRVIEW defrviewnames . ';'\n\tdefrviewnames -> defrviewnames . id\n\tdefrviewnames -> defrviewnames . ',' id" }, { "", "", "\n\tdefuviewnames -> id ." }, { "id", "T_ID ';' ','", "\n\tuviewdeclaration -> T_PERCENTUVIEW defuviewnames . ';'\n\tdefuviewnames -> defuviewnames . id\n\tdefuviewnames -> defuviewnames . ',' id" }, { "", "", "\n\tdefstorageclasses -> id ." }, { "id", "T_ID ';' ','", "\n\tstorageclassdeclaration -> T_PERCENTSTORAGECLASS defstorageclasses . ';'\n\tdefstorageclasses -> defstorageclasses . id\n\tdefstorageclasses -> defstorageclasses . ',' id" }, { "id", "T_ID '!'", "\n\tstorageoption -> '{' . id '}'\n\tstorageoption -> '{' . '!' id '}'" }, { "id int pattern patternsoption patterns", "T_ID T_INT T_DEFAULT '\"' '*'", "\n\toutmostpattern -> id '(' . patternsoption ')'" }, { "id outmostpattern", "T_ID T_DEFAULT '*'", "\n\toutmostpattern -> id '=' . outmostpattern" }, { "", "':'", "\n\tphylumdeclaration -> id storageoption . ':' @2 productionblock Ccode_option ';'" }, { "", "", "\n\tdeclarations -> declarations declaration ." }, { "@27 @31", "", "\n\trwdeclaration -> outmostpatterns T_ARROW . @27 rwclauses_or_term ';'\n\tunparsedeclaration -> outmostpatterns T_ARROW . @31 unparseclauses ';'" }, { "id outmostpattern", "T_ID T_DEFAULT '*'", "\n\toutmostpatterns -> outmostpatterns ',' . outmostpattern" }, { "id", "T_ID", "\n\tac_identifier -> '$' . id" }, { "ac_type_qualifier ac_pointer ac_type_qualifier_list", "T_CONST T_VOLATILE '*'", "\n\tac_pointer -> '*' .\n\tac_pointer -> '*' . ac_type_qualifier_list\n\tac_pointer -> '*' . ac_pointer\n\tac_pointer -> '*' . ac_type_qualifier_list ac_pointer" }, { "", "", "\n\tac_identifier -> id ." }, { "id ac_declaration ac_declaration_list_option ac_declaration_list ac_declaration_specifiers ac_storage_class_specifier ac_type_specifier ac_type_qualifier", "T_ID T_STATIC T_AUTO T_REGISTER T_EXTERN T_TYPEDEF T_CONST T_VOLATILE", "\n\tac_function_definition -> ac_declaration_specifiers ac_fn_declarator . ac_declaration_list_option ac_compound_statement" }, { "", "", "\n\tac_fn_declarator -> ac_direct_fn_declarator ." }, { "id ac_direct_fn_declarator ac_identifier", "T_ID '$'", "\n\tac_fn_declarator -> ac_pointer . ac_direct_fn_declarator" }, { "", "'('", "\n\tac_direct_fn_declarator -> ac_identifier . '(' ac_parameter_type_list ')'\n\tac_direct_fn_declarator -> ac_identifier . '(' ')'\n\tac_direct_fn_declarator -> ac_identifier . '(' ac_identifier_list ')'" }, { "", "", "\n\tac_type_specifier -> id ." }, { "", "", "\n\tac_declaration_specifiers -> ac_storage_class_specifier ac_type_specifier ." }, { "id ac_type_specifier", "T_ID", "\n\tac_declaration_specifiers -> ac_storage_class_specifier ac_type_qualifier . ac_type_specifier" }, { "", "", "\n\tac_declaration_specifiers -> ac_type_qualifier ac_type_specifier ." }, { "includes", "", "\n\tincludedeclaration -> T_INCLUDESTART includefiles_option @26 . includes T_INCLUDEEND" }, { "", "", "\n\tincludefiles -> includefiles T_ID ." }, { "", "", "\n\trviewdeclaration -> T_PERCENTRVIEW defrviewnames ';' ." }, { "id", "T_ID", "\n\tdefrviewnames -> defrviewnames ',' . id" }, { "", "", "\n\tdefrviewnames -> defrviewnames id ." }, { "", "", "\n\tuviewdeclaration -> T_PERCENTUVIEW defuviewnames ';' ." }, { "id", "T_ID", "\n\tdefuviewnames -> defuviewnames ',' . id" }, { "", "", "\n\tdefuviewnames -> defuviewnames id ." }, { "", "", "\n\tstorageclassdeclaration -> T_PERCENTSTORAGECLASS defstorageclasses ';' ." }, { "id", "T_ID", "\n\tdefstorageclasses -> defstorageclasses ',' . id" }, { "", "", "\n\tdefstorageclasses -> defstorageclasses id ." }, { "id", "T_ID", "\n\tstorageoption -> '{' '!' . id '}'" }, { "", "'}'", "\n\tstorageoption -> '{' id . '}'" }, { "", "", "\n\tint -> T_INT ." }, { "", "", "\n\tpattern -> T_DEFAULT ." }, { "@29", "", "\n\tpattern -> '\"' . @29 CexpressionDQ '\"'" }, { "", "", "\n\tpattern -> '*' ." }, { "", "'(' '='", "\n\tpattern -> id .\n\tpattern -> id . '(' patternsoption ')'\n\tpattern -> id . '=' pattern" }, { "", "", "\n\tpattern -> int ." }, { "", "", "\n\tpatterns -> pattern ." }, { "", "')'", "\n\toutmostpattern -> id '(' patternsoption . ')'" }, { "", "','", "\n\tpatternsoption -> patterns .\n\tpatterns -> patterns . ',' pattern" }, { "", "'(' '='", "\n\toutmostpattern -> id .\n\toutmostpattern -> id . '(' patternsoption ')'\n\toutmostpattern -> id . '=' outmostpattern" }, { "", "", "\n\toutmostpattern -> id '=' outmostpattern ." }, { "@2", "", "\n\tphylumdeclaration -> id storageoption ':' . @2 productionblock Ccode_option ';'" }, { "id int rwclauses_or_term rwclauses rwclause term", "T_ID T_INT '\"' '<'", "\n\trwdeclaration -> outmostpatterns T_ARROW @27 . rwclauses_or_term ';'" }, { "unparseclauses unparseclause", "'['", "\n\tunparsedeclaration -> outmostpatterns T_ARROW @31 . unparseclauses ';'" }, { "", "", "\n\toutmostpatterns -> outmostpatterns ',' outmostpattern ." }, { "", "", "\n\tac_identifier -> '$' id ." }, { "", "", "\n\tac_type_qualifier_list -> ac_type_qualifier ." }, { "", "", "\n\tac_pointer -> '*' ac_pointer ." }, { "ac_type_qualifier ac_pointer", "T_CONST T_VOLATILE '*'", "\n\tac_pointer -> '*' ac_type_qualifier_list .\n\tac_pointer -> '*' ac_type_qualifier_list . ac_pointer\n\tac_type_qualifier_list -> ac_type_qualifier_list . ac_type_qualifier" }, { "", "", "\n\tac_declaration_list -> ac_declaration ." }, { "MainCbody ac_compound_statement", "'{'", "\n\tac_function_definition -> ac_declaration_specifiers ac_fn_declarator ac_declaration_list_option . ac_compound_statement" }, { "id ac_declaration ac_declaration_specifiers ac_storage_class_specifier ac_type_specifier ac_type_qualifier", "T_ID T_STATIC T_AUTO T_REGISTER T_EXTERN T_TYPEDEF T_CONST T_VOLATILE", "\n\tac_declaration_list_option -> ac_declaration_list .\n\tac_declaration_list -> ac_declaration_list . ac_declaration" }, { "id ac_init_declarator_list_option ac_init_declarator_list ac_init_declarator ac_declarator ac_direct_declarator ac_pointer ac_identifier", "T_ID '(' '$' '*'", "\n\tac_declaration -> ac_declaration_specifiers . ac_init_declarator_list_option ';'" }, { "", "", "\n\tac_fn_declarator -> ac_pointer ac_direct_fn_declarator ." }, { "id ac_declaration_specifiers ac_storage_class_specifier ac_type_specifier ac_type_qualifier ac_parameter_type_list ac_parameter_list ac_parameter_declaration ac_identifier_list ac_identifier", "T_ID T_STATIC T_AUTO T_REGISTER T_EXTERN T_TYPEDEF T_CONST T_VOLATILE ')' '$'", "\n\tac_direct_fn_declarator -> ac_identifier '(' . ac_parameter_type_list ')'\n\tac_direct_fn_declarator -> ac_identifier '(' . ')'\n\tac_direct_fn_declarator -> ac_identifier '(' . ac_identifier_list ')'" }, { "", "", "\n\tac_declaration_specifiers -> ac_storage_class_specifier ac_type_qualifier ac_type_specifier ." }, { "include", "T_INCLUDE T_INCLUDEEND '\n'", "\n\tincludedeclaration -> T_INCLUDESTART includefiles_option @26 includes . T_INCLUDEEND\n\tincludes -> includes . include" }, { "", "", "\n\tdefrviewnames -> defrviewnames ',' id ." }, { "", "", "\n\tdefuviewnames -> defuviewnames ',' id ." }, { "", "", "\n\tdefstorageclasses -> defstorageclasses ',' id ." }, { "", "'}'", "\n\tstorageoption -> '{' '!' id . '}'" }, { "", "", "\n\tstorageoption -> '{' id '}' ." }, { "CexpressionDQ", "", "\n\tpattern -> '\"' @29 . CexpressionDQ '\"'" }, { "id int pattern patternsoption patterns", "T_ID T_INT T_DEFAULT '\"' '*'", "\n\tpattern -> id '(' . patternsoption ')'" }, { "id int pattern", "T_ID T_INT T_DEFAULT '\"' '*'", "\n\tpattern -> id '=' . pattern" }, { "", "", "\n\toutmostpattern -> id '(' patternsoption ')' ." }, { "id int pattern", "T_ID T_INT T_DEFAULT '\"' '*'", "\n\tpatterns -> patterns ',' . pattern" }, { "id productionblock alternatives alternative", "T_ID T_LIST", "\n\tphylumdeclaration -> id storageoption ':' @2 . productionblock Ccode_option ';'" }, { "@30", "", "\n\tterm -> '\"' . @30 CexpressionDQ '\"'" }, { "useviewnames", "", "\n\trwclause -> '<' . useviewnames ':' term '>'" }, { "", "'('", "\n\tterm -> id .\n\tterm -> id . '(' termsoption ')'" }, { "", "", "\n\tterm -> int ." }, { "", "';'", "\n\trwdeclaration -> outmostpatterns T_ARROW @27 rwclauses_or_term . ';'" }, { "rwclause", "'<'", "\n\trwclauses_or_term -> rwclauses .\n\trwclauses -> rwclauses . rwclause" }, { "", "", "\n\trwclauses -> rwclause ." }, { "", "", "\n\trwclauses_or_term -> term ." }, { "useviewnames", "", "\n\tunparseclause -> '[' . useviewnames ':' unparseitems ']'" }, { "unparseclause", "';' '['", "\n\tunparsedeclaration -> outmostpatterns T_ARROW @31 unparseclauses . ';'\n\tunparseclauses -> unparseclauses . unparseclause" }, { "", "", "\n\tunparseclauses -> unparseclause ." }, { "", "", "\n\tac_type_qualifier_list -> ac_type_qualifier_list ac_type_qualifier ." }, { "", "", "\n\tac_pointer -> '*' ac_type_qualifier_list ac_pointer ." }, { "@9", "", "\n\tMainCbody -> '{' . @9 MainCBodycontinuation @10 '}'" }, { "", "", "\n\tac_compound_statement -> MainCbody ." }, { "", "", "\n\tac_function_definition -> ac_declaration_specifiers ac_fn_declarator ac_declaration_list_option ac_compound_statement ." }, { "", "", "\n\tac_declaration_list -> ac_declaration_list ac_declaration ." }, { "ac_pointer_declarator ac_pointer", "'*'", "\n\tac_direct_declarator -> '(' . ac_pointer_declarator ')'" }, { "", "';'", "\n\tac_declaration -> ac_declaration_specifiers ac_init_declarator_list_option . ';'" }, { "", "','", "\n\tac_init_declarator_list_option -> ac_init_declarator_list .\n\tac_init_declarator_list -> ac_init_declarator_list . ',' ac_init_declarator" }, { "", "", "\n\tac_init_declarator_list -> ac_init_declarator ." }, { "", "", "\n\tac_init_declarator -> ac_declarator ." }, { "", "'(' '['", "\n\tac_declarator -> ac_direct_declarator .\n\tac_direct_declarator -> ac_direct_declarator . '[' ac_constant_expression_option ']'\n\tac_direct_declarator -> ac_direct_declarator . '(' ac_parameter_type_list ')'\n\tac_direct_declarator -> ac_direct_declarator . '(' ')'\n\tac_direct_declarator -> ac_direct_declarator . '(' ac_identifier_list ')'" }, { "id ac_direct_declarator ac_identifier", "T_ID '(' '$'", "\n\tac_declarator -> ac_pointer . ac_direct_declarator" }, { "", "", "\n\tac_direct_declarator -> ac_identifier ." }, { "", "", "\n\tac_direct_fn_declarator -> ac_identifier '(' ')' ." }, { "", "", "\n\tac_type_specifier -> id .\n\tac_identifier -> id ." }, { "id ac_declarator ac_direct_declarator ac_pointer ac_abstract_declarator ac_direct_abstract_declarator ac_identifier", "T_ID '(' '[' '$' '*'", "\n\tac_parameter_declaration -> ac_declaration_specifiers . ac_declarator\n\tac_parameter_declaration -> ac_declaration_specifiers . ac_abstract_declarator" }, { "", "')'", "\n\tac_direct_fn_declarator -> ac_identifier '(' ac_parameter_type_list . ')'" }, { "", "','", "\n\tac_parameter_type_list -> ac_parameter_list .\n\tac_parameter_type_list -> ac_parameter_list . ',' T_DOTDOTDOT\n\tac_parameter_list -> ac_parameter_list . ',' ac_parameter_declaration" }, { "", "", "\n\tac_parameter_list -> ac_parameter_declaration ." }, { "", "')' ','", "\n\tac_direct_fn_declarator -> ac_identifier '(' ac_identifier_list . ')'\n\tac_identifier_list -> ac_identifier_list . ',' ac_identifier" }, { "", "", "\n\tac_identifier_list -> ac_identifier ." }, { "", "", "\n\tinclude -> T_INCLUDE ." }, { "", "", "\n\tincludedeclaration -> T_INCLUDESTART includefiles_option @26 includes T_INCLUDEEND ." }, { "", "", "\n\tinclude -> '\n' ." }, { "", "", "\n\tincludes -> includes include ." }, { "", "", "\n\tstorageoption -> '{' '!' id '}' ." }, { "CexpressionDQ_elem", "T_CEXPRESSION '\n' '\"'", "\n\tCexpressionDQ -> CexpressionDQ . CexpressionDQ_elem\n\tpattern -> '\"' @29 CexpressionDQ . '\"'" }, { "", "')'", "\n\tpattern -> id '(' patternsoption . ')'" }, { "", "", "\n\tpattern -> id '=' pattern ." }, { "", "", "\n\tpatterns -> patterns ',' pattern ." }, { "id", "T_ID", "\n\tproductionblock -> T_LIST . id" }, { "", "'('", "\n\talternative -> id . '(' @3 arguments @4 ')'" }, { "Ccode_option", "'{'", "\n\tphylumdeclaration -> id storageoption ':' @2 productionblock . Ccode_option ';'" }, { "", "'|'", "\n\tproductionblock -> alternatives .\n\talternatives -> alternatives . '|' alternative" }, { "", "", "\n\talternatives -> alternative ." }, { "CexpressionDQ", "", "\n\tterm -> '\"' @30 . CexpressionDQ '\"'" }, { "id", "T_ID ':'", "\n\trwclause -> '<' useviewnames . ':' term '>'\n\tuseviewnames -> useviewnames . id" }, { "id int term termsoption terms", "T_ID T_INT '\"'", "\n\tterm -> id '(' . termsoption ')'" }, { "", "", "\n\trwdeclaration -> outmostpatterns T_ARROW @27 rwclauses_or_term ';' ." }, { "", "", "\n\trwclauses -> rwclauses rwclause ." }, { "id", "T_ID ':'", "\n\tunparseclause -> '[' useviewnames . ':' unparseitems ']'\n\tuseviewnames -> useviewnames . id" }, { "", "", "\n\tunparsedeclaration -> outmostpatterns T_ARROW @31 unparseclauses ';' ." }, { "", "", "\n\tunparseclauses -> unparseclauses unparseclause ." }, { "MainCBodycontinuation Ctext patternchains patternchain patternchainitem_lineinfo @28 withcases withcase", "", "\n\tMainCbody -> '{' @9 . MainCBodycontinuation @10 '}'" }, { "", "')'", "\n\tac_direct_declarator -> '(' ac_pointer_declarator . ')'" }, { "id ac_direct_declarator ac_identifier", "T_ID '(' '$'", "\n\tac_pointer_declarator -> ac_pointer . ac_direct_declarator" }, { "", "", "\n\tac_declaration -> ac_declaration_specifiers ac_init_declarator_list_option ';' ." }, { "id ac_init_declarator ac_declarator ac_direct_declarator ac_pointer ac_identifier", "T_ID '(' '$' '*'", "\n\tac_init_declarator_list -> ac_init_declarator_list ',' . ac_init_declarator" }, { "id ac_declaration_specifiers ac_storage_class_specifier ac_type_specifier ac_type_qualifier ac_parameter_type_list ac_parameter_list ac_parameter_declaration ac_identifier_list ac_identifier", "T_ID T_STATIC T_AUTO T_REGISTER T_EXTERN T_TYPEDEF T_CONST T_VOLATILE ')' '$'", "\n\tac_direct_declarator -> ac_direct_declarator '(' . ac_parameter_type_list ')'\n\tac_direct_declarator -> ac_direct_declarator '(' . ')'\n\tac_direct_declarator -> ac_direct_declarator '(' . ac_identifier_list ')'" }, { "ac_constant_expression_option ac_constant_expression @34", "", "\n\tac_direct_declarator -> ac_direct_declarator '[' . ac_constant_expression_option ']'" }, { "", "'(' '['", "\n\tac_declarator -> ac_pointer ac_direct_declarator .\n\tac_direct_declarator -> ac_direct_declarator . '[' ac_constant_expression_option ']'\n\tac_direct_declarator -> ac_direct_declarator . '(' ac_parameter_type_list ')'\n\tac_direct_declarator -> ac_direct_declarator . '(' ')'\n\tac_direct_declarator -> ac_direct_declarator . '(' ac_identifier_list ')'" }, { "id ac_declaration_specifiers ac_storage_class_specifier ac_type_specifier ac_type_qualifier ac_pointer_declarator ac_pointer ac_parameter_type_list ac_parameter_list ac_parameter_declaration ac_abstract_declarator ac_direct_abstract_declarator", "T_ID T_STATIC T_AUTO T_REGISTER T_EXTERN T_TYPEDEF T_CONST T_VOLATILE '(' ')' '[' '*'", "\n\tac_direct_declarator -> '(' . ac_pointer_declarator ')'\n\tac_direct_abstract_declarator -> '(' . ac_abstract_declarator ')'\n\tac_direct_abstract_declarator -> '(' . ')'\n\tac_direct_abstract_declarator -> '(' . ac_parameter_type_list ')'" }, { "ac_constant_expression_option ac_constant_expression @34", "", "\n\tac_direct_abstract_declarator -> '[' . ac_constant_expression_option ']'" }, { "", "", "\n\tac_parameter_declaration -> ac_declaration_specifiers ac_declarator ." }, { "id ac_direct_declarator ac_direct_abstract_declarator ac_identifier", "T_ID '(' '[' '$'", "\n\tac_declarator -> ac_pointer . ac_direct_declarator\n\tac_abstract_declarator -> ac_pointer .\n\tac_abstract_declarator -> ac_pointer . ac_direct_abstract_declarator" }, { "", "", "\n\tac_parameter_declaration -> ac_declaration_specifiers ac_abstract_declarator ." }, { "", "'(' '['", "\n\tac_abstract_declarator -> ac_direct_abstract_declarator .\n\tac_direct_abstract_declarator -> ac_direct_abstract_declarator . '[' ac_constant_expression_option ']'\n\tac_direct_abstract_declarator -> ac_direct_abstract_declarator . '(' ')'\n\tac_direct_abstract_declarator -> ac_direct_abstract_declarator . '(' ac_parameter_type_list ')'" }, { "", "", "\n\tac_direct_fn_declarator -> ac_identifier '(' ac_parameter_type_list ')' ." }, { "id ac_declaration_specifiers ac_storage_class_specifier ac_type_specifier ac_type_qualifier ac_parameter_declaration", "T_ID T_STATIC T_AUTO T_REGISTER T_EXTERN T_TYPEDEF T_CONST T_VOLATILE T_DOTDOTDOT", "\n\tac_parameter_type_list -> ac_parameter_list ',' . T_DOTDOTDOT\n\tac_parameter_list -> ac_parameter_list ',' . ac_parameter_declaration" }, { "", "", "\n\tac_direct_fn_declarator -> ac_identifier '(' ac_identifier_list ')' ." }, { "id ac_identifier", "T_ID '$'", "\n\tac_identifier_list -> ac_identifier_list ',' . ac_identifier" }, { "", "", "\n\tCexpressionDQ_elem -> T_CEXPRESSION ." }, { "", "", "\n\tCexpressionDQ_elem -> '\n' ." }, { "", "", "\n\tpattern -> '\"' @29 CexpressionDQ '\"' ." }, { "", "", "\n\tCexpressionDQ -> CexpressionDQ CexpressionDQ_elem ." }, { "", "", "\n\tpattern -> id '(' patternsoption ')' ." }, { "", "", "\n\tproductionblock -> T_LIST id ." }, { "@3", "", "\n\talternative -> id '(' . @3 arguments @4 ')'" }, { "attributes_option", "", "\n\tCcode_option -> '{' . attributes_option init_option '}'" }, { "", "';'", "\n\tphylumdeclaration -> id storageoption ':' @2 productionblock Ccode_option . ';'" }, { "id alternative", "T_ID", "\n\talternatives -> alternatives '|' . alternative" }, { "CexpressionDQ_elem", "T_CEXPRESSION '\n' '\"'", "\n\tCexpressionDQ -> CexpressionDQ . CexpressionDQ_elem\n\tterm -> '\"' @30 CexpressionDQ . '\"'" }, { "id int term", "T_ID T_INT '\"'", "\n\trwclause -> '<' useviewnames ':' . term '>'" }, { "", "", "\n\tuseviewnames -> useviewnames id ." }, { "", "", "\n\tterms -> term ." }, { "", "')'", "\n\tterm -> id '(' termsoption . ')'" }, { "", "','", "\n\ttermsoption -> terms .\n\tterms -> terms . ',' term" }, { "unparseitems", "", "\n\tunparseclause -> '[' useviewnames ':' . unparseitems ']'" }, { "@10", "", "\n\tMainCbody -> '{' @9 MainCBodycontinuation . @10 '}'" }, { "@15", "", "\n\tMainCBodycontinuation -> Ctext .\n\tCtext -> Ctext . @15 Ctext_elem" }, { "", "':' ','", "\n\tpatternchains -> patternchains . ',' patternchain\n\twithcase -> patternchains . ':' Cbody" }, { "", "'&'", "\n\tpatternchains -> patternchain .\n\tpatternchain -> patternchain . '&' patternchainitem_lineinfo" }, { "", "", "\n\tpatternchain -> patternchainitem_lineinfo ." }, { "id patternchainitem outmostpattern", "T_ID T_DEFAULT '(' '$' '*'", "\n\tpatternchainitem_lineinfo -> @28 . patternchainitem" }, { "patternchains patternchain patternchainitem_lineinfo @28 withcase", "", "\n\tMainCBodycontinuation -> withcases .\n\twithcases -> withcases . withcase" }, { "", "", "\n\twithcases -> withcase ." }, { "", "", "\n\tac_direct_declarator -> '(' ac_pointer_declarator ')' ." }, { "", "'(' '['", "\n\tac_pointer_declarator -> ac_pointer ac_direct_declarator .\n\tac_direct_declarator -> ac_direct_declarator . '[' ac_constant_expression_option ']'\n\tac_direct_declarator -> ac_direct_declarator . '(' ac_parameter_type_list ')'\n\tac_direct_declarator -> ac_direct_declarator . '(' ')'\n\tac_direct_declarator -> ac_direct_declarator . '(' ac_identifier_list ')'" }, { "", "", "\n\tac_init_declarator_list -> ac_init_declarator_list ',' ac_init_declarator ." }, { "", "", "\n\tac_direct_declarator -> ac_direct_declarator '(' ')' ." }, { "", "')'", "\n\tac_direct_declarator -> ac_direct_declarator '(' ac_parameter_type_list . ')'" }, { "", "')' ','", "\n\tac_direct_declarator -> ac_direct_declarator '(' ac_identifier_list . ')'\n\tac_identifier_list -> ac_identifier_list . ',' ac_identifier" }, { "", "']'", "\n\tac_direct_declarator -> ac_direct_declarator '[' ac_constant_expression_option . ']'" }, { "", "", "\n\tac_constant_expression_option -> ac_constant_expression ." }, { "Cexpression", "", "\n\tac_constant_expression -> @34 . Cexpression" }, { "id ac_declaration_specifiers ac_storage_class_specifier ac_type_specifier ac_type_qualifier ac_pointer ac_parameter_type_list ac_parameter_list ac_parameter_declaration ac_abstract_declarator ac_direct_abstract_declarator", "T_ID T_STATIC T_AUTO T_REGISTER T_EXTERN T_TYPEDEF T_CONST T_VOLATILE '(' ')' '[' '*'", "\n\tac_direct_abstract_declarator -> '(' . ac_abstract_declarator ')'\n\tac_direct_abstract_declarator -> '(' . ')'\n\tac_direct_abstract_declarator -> '(' . ac_parameter_type_list ')'" }, { "", "", "\n\tac_direct_abstract_declarator -> '(' ')' ." }, { "id ac_direct_declarator ac_direct_abstract_declarator ac_identifier", "T_ID '(' '[' '$'", "\n\tac_pointer_declarator -> ac_pointer . ac_direct_declarator\n\tac_abstract_declarator -> ac_pointer .\n\tac_abstract_declarator -> ac_pointer . ac_direct_abstract_declarator" }, { "", "')'", "\n\tac_direct_abstract_declarator -> '(' ac_parameter_type_list . ')'" }, { "", "')'", "\n\tac_direct_abstract_declarator -> '(' ac_abstract_declarator . ')'" }, { "", "']'", "\n\tac_direct_abstract_declarator -> '[' ac_constant_expression_option . ']'" }, { "", "'(' '['", "\n\tac_abstract_declarator -> ac_pointer ac_direct_abstract_declarator .\n\tac_direct_abstract_declarator -> ac_direct_abstract_declarator . '[' ac_constant_expression_option ']'\n\tac_direct_abstract_declarator -> ac_direct_abstract_declarator . '(' ')'\n\tac_direct_abstract_declarator -> ac_direct_abstract_declarator . '(' ac_parameter_type_list ')'" }, { "id ac_declaration_specifiers ac_storage_class_specifier ac_type_specifier ac_type_qualifier ac_parameter_type_list ac_parameter_list ac_parameter_declaration", "T_ID T_STATIC T_AUTO T_REGISTER T_EXTERN T_TYPEDEF T_CONST T_VOLATILE ')'", "\n\tac_direct_abstract_declarator -> ac_direct_abstract_declarator '(' . ')'\n\tac_direct_abstract_declarator -> ac_direct_abstract_declarator '(' . ac_parameter_type_list ')'" }, { "ac_constant_expression_option ac_constant_expression @34", "", "\n\tac_direct_abstract_declarator -> ac_direct_abstract_declarator '[' . ac_constant_expression_option ']'" }, { "", "", "\n\tac_parameter_type_list -> ac_parameter_list ',' T_DOTDOTDOT ." }, { "", "", "\n\tac_parameter_list -> ac_parameter_list ',' ac_parameter_declaration ." }, { "", "", "\n\tac_identifier_list -> ac_identifier_list ',' ac_identifier ." }, { "arguments", "", "\n\talternative -> id '(' @3 . arguments @4 ')'" }, { "id attribute Cbody init_option", "T_ID '{'", "\n\tCcode_option -> '{' attributes_option . init_option '}'\n\tattributes_option -> attributes_option . attribute" }, { "", "", "\n\tphylumdeclaration -> id storageoption ':' @2 productionblock Ccode_option ';' ." }, { "", "", "\n\talternatives -> alternatives '|' alternative ." }, { "", "", "\n\tterm -> '\"' @30 CexpressionDQ '\"' ." }, { "", "'>'", "\n\trwclause -> '<' useviewnames ':' term . '>'" }, { "", "", "\n\tterm -> id '(' termsoption ')' ." }, { "id int term", "T_ID T_INT '\"'", "\n\tterms -> terms ',' . term" }, { "dollarvar id Cbody unparseitem unpsubterm", "T_ID T_DOLLARVAR T_UNPBLOCKSTART '{' '(' '\"' ']'", "\n\tunparseclause -> '[' useviewnames ':' unparseitems . ']'\n\tunparseitems -> unparseitems . unparseitem" }, { "", "'}'", "\n\tMainCbody -> '{' @9 MainCBodycontinuation @10 . '}'" }, { "dollarvar Cbody Ctext_elem", "T_CNEWLINES T_CLINE T_DOLLARVAR T_WITH T_FOREACH '{' '\n' '\"' '''", "\n\tCtext -> Ctext @15 . Ctext_elem" }, { "Cbody", "'{'", "\n\twithcase -> patternchains ':' . Cbody" }, { "patternchain patternchainitem_lineinfo @28", "", "\n\tpatternchains -> patternchains ',' . patternchain" }, { "patternchainitem_lineinfo @28", "", "\n\tpatternchain -> patternchain '&' . patternchainitem_lineinfo" }, { "patternchains patternchain patternchainitem_lineinfo @28", "", "\n\tpatternchainitem -> '(' . patternchains ')'" }, { "id", "T_ID", "\n\tpatternchainitem -> '$' . id" }, { "", "", "\n\tpatternchainitem_lineinfo -> @28 patternchainitem ." }, { "", "", "\n\tpatternchainitem -> outmostpattern ." }, { "", "", "\n\twithcases -> withcases withcase ." }, { "", "", "\n\tac_direct_declarator -> ac_direct_declarator '(' ac_parameter_type_list ')' ." }, { "", "", "\n\tac_direct_declarator -> ac_direct_declarator '(' ac_identifier_list ')' ." }, { "", "", "\n\tac_direct_declarator -> ac_direct_declarator '[' ac_constant_expression_option ']' ." }, { "dollarvar Cexpression_elem", "T_CNEWLINES T_CEXPRESSION T_DOLLARVAR '(' '\n' '\"' ''' '['", "\n\tCexpression -> Cexpression . Cexpression_elem\n\tac_constant_expression -> @34 Cexpression ." }, { "ac_direct_abstract_declarator", "'(' '['", "\n\tac_abstract_declarator -> ac_pointer .\n\tac_abstract_declarator -> ac_pointer . ac_direct_abstract_declarator" }, { "", "", "\n\tac_direct_abstract_declarator -> '(' ac_parameter_type_list ')' ." }, { "", "", "\n\tac_direct_abstract_declarator -> '(' ac_abstract_declarator ')' ." }, { "", "", "\n\tac_direct_abstract_declarator -> '[' ac_constant_expression_option ']' ." }, { "", "", "\n\tac_direct_abstract_declarator -> ac_direct_abstract_declarator '(' ')' ." }, { "", "')'", "\n\tac_direct_abstract_declarator -> ac_direct_abstract_declarator '(' ac_parameter_type_list . ')'" }, { "", "']'", "\n\tac_direct_abstract_declarator -> ac_direct_abstract_declarator '[' ac_constant_expression_option . ']'" }, { "id @4", "T_ID", "\n\talternative -> id '(' @3 arguments . @4 ')'\n\targuments -> arguments . id" }, { "@13", "", "\n\tCbody -> '{' . @13 Ctext @14 '}'" }, { "id", "T_ID", "\n\tattribute -> id . id attribute_init_option ';'" }, { "", "", "\n\tattributes_option -> attributes_option attribute ." }, { "", "", "\n\tinit_option -> Cbody ." }, { "", "'}'", "\n\tCcode_option -> '{' attributes_option init_option . '}'" }, { "", "", "\n\trwclause -> '<' useviewnames ':' term '>' ." }, { "", "", "\n\tterms -> terms ',' term ." }, { "", "", "\n\tdollarvar -> T_DOLLARVAR ." }, { "unparseitems", "", "\n\tunparseitem -> T_UNPBLOCKSTART . unparseitems T_UNPBLOCKEND" }, { "id", "T_ID", "\n\tunpsubterm -> '(' . id ')' id" }, { "@32", "", "\n\tunparseitem -> '\"' . @32 CexpressionDQ '\"' @33 viewnameoption" }, { "", "", "\n\tunparseclause -> '[' useviewnames ':' unparseitems ']' ." }, { "unpattributes unpattribute", "T_ARROW", "\n\tunpsubterm -> dollarvar .\n\tunpsubterm -> dollarvar . unpattributes" }, { "unpattributes unpattribute", "T_ARROW", "\n\tunpsubterm -> id .\n\tunpsubterm -> id . unpattributes" }, { "", "", "\n\tunparseitem -> Cbody ." }, { "", "", "\n\tunparseitems -> unparseitems unparseitem ." }, { "viewnameoption", "':'", "\n\tunparseitem -> unpsubterm . viewnameoption" }, { "", "", "\n\tMainCbody -> '{' @9 MainCBodycontinuation @10 '}' ." }, { "", "", "\n\tCtext_elem -> T_CNEWLINES ." }, { "", "", "\n\tCtext_elem -> T_CLINE ." }, { "@19", "", "\n\tCtext_elem -> T_WITH . @19 '(' @20 withCexpressions @21 ')' '{' withcases '}'" }, { "@18", "", "\n\tCtext_elem -> T_FOREACH . @18 foreach_continuation" }, { "", "", "\n\tCtext_elem -> '\n' ." }, { "@16", "", "\n\tCtext_elem -> '\"' . @16 CexpressionDQ '\"'" }, { "@17", "", "\n\tCtext_elem -> ''' . @17 CexpressionSQ '''" }, { "", "", "\n\tCtext_elem -> dollarvar ." }, { "", "", "\n\tCtext_elem -> Cbody ." }, { "", "", "\n\tCtext -> Ctext @15 Ctext_elem ." }, { "", "", "\n\twithcase -> patternchains ':' Cbody ." }, { "", "'&'", "\n\tpatternchains -> patternchains ',' patternchain .\n\tpatternchain -> patternchain . '&' patternchainitem_lineinfo" }, { "", "", "\n\tpatternchain -> patternchain '&' patternchainitem_lineinfo ." }, { "", "')' ','", "\n\tpatternchains -> patternchains . ',' patternchain\n\tpatternchainitem -> '(' patternchains . ')'" }, { "", "", "\n\tpatternchainitem -> '$' id ." }, { "", "", "\n\tCexpression_elem -> T_CNEWLINES ." }, { "", "", "\n\tCexpression_elem -> T_CEXPRESSION ." }, { "Cexpression_inner", "", "\n\tCexpression_elem -> '(' . Cexpression_inner ')'" }, { "", "", "\n\tCexpression_elem -> '\n' ." }, { "CexpressionDQ", "", "\n\tCexpression_elem -> '\"' . CexpressionDQ '\"'" }, { "CexpressionSQ", "", "\n\tCexpression_elem -> ''' . CexpressionSQ '''" }, { "Cexpression_inner", "", "\n\tCexpression_elem -> '[' . Cexpression_inner ']'" }, { "", "", "\n\tCexpression_elem -> dollarvar ." }, { "", "", "\n\tCexpression -> Cexpression Cexpression_elem ." }, { "", "", "\n\tac_direct_abstract_declarator -> ac_direct_abstract_declarator '(' ac_parameter_type_list ')' ." }, { "", "", "\n\tac_direct_abstract_declarator -> ac_direct_abstract_declarator '[' ac_constant_expression_option ']' ." }, { "", "", "\n\targuments -> arguments id ." }, { "", "')'", "\n\talternative -> id '(' @3 arguments @4 . ')'" }, { "Ctext", "", "\n\tCbody -> '{' @13 . Ctext @14 '}'" }, { "attribute_init_option", "'='", "\n\tattribute -> id id . attribute_init_option ';'" }, { "", "", "\n\tCcode_option -> '{' attributes_option init_option '}' ." }, { "dollarvar id Cbody unparseitem unpsubterm", "T_ID T_DOLLARVAR T_UNPBLOCKSTART T_UNPBLOCKEND '{' '(' '\"'", "\n\tunparseitems -> unparseitems . unparseitem\n\tunparseitem -> T_UNPBLOCKSTART unparseitems . T_UNPBLOCKEND" }, { "", "')'", "\n\tunpsubterm -> '(' id . ')' id" }, { "CexpressionDQ", "", "\n\tunparseitem -> '\"' @32 . CexpressionDQ '\"' @33 viewnameoption" }, { "id", "T_ID", "\n\tunpattribute -> T_ARROW . id" }, { "unpattribute", "T_ARROW", "\n\tunpsubterm -> dollarvar unpattributes .\n\tunpattributes -> unpattributes . unpattribute" }, { "", "", "\n\tunpattributes -> unpattribute ." }, { "unpattribute", "T_ARROW", "\n\tunpsubterm -> id unpattributes .\n\tunpattributes -> unpattributes . unpattribute" }, { "id", "T_ID", "\n\tviewnameoption -> ':' . id" }, { "", "", "\n\tunparseitem -> unpsubterm viewnameoption ." }, { "", "'('", "\n\tCtext_elem -> T_WITH @19 . '(' @20 withCexpressions @21 ')' '{' withcases '}'" }, { "foreach_continuation", "'('", "\n\tCtext_elem -> T_FOREACH @18 . foreach_continuation" }, { "CexpressionDQ", "", "\n\tCtext_elem -> '\"' @16 . CexpressionDQ '\"'" }, { "CexpressionSQ", "", "\n\tCtext_elem -> ''' @17 . CexpressionSQ '''" }, { "", "", "\n\tpatternchainitem -> '(' patternchains ')' ." }, { "dollarvar Cexpression_elem Cexpression_elem_inner", "T_CNEWLINES T_CEXPRESSION T_DOLLARVAR '(' ')' '\n' '\"' ''' '[' ','", "\n\tCexpression_elem -> '(' Cexpression_inner . ')'\n\tCexpression_inner -> Cexpression_inner . Cexpression_elem_inner" }, { "CexpressionDQ_elem", "T_CEXPRESSION '\n' '\"'", "\n\tCexpression_elem -> '\"' CexpressionDQ . '\"'\n\tCexpressionDQ -> CexpressionDQ . CexpressionDQ_elem" }, { "CexpressionSQ_elem", "T_CEXPRESSION '\n' '''", "\n\tCexpression_elem -> ''' CexpressionSQ . '''\n\tCexpressionSQ -> CexpressionSQ . CexpressionSQ_elem" }, { "dollarvar Cexpression_elem Cexpression_elem_inner", "T_CNEWLINES T_CEXPRESSION T_DOLLARVAR '(' '\n' '\"' ''' '[' ']' ','", "\n\tCexpression_elem -> '[' Cexpression_inner . ']'\n\tCexpression_inner -> Cexpression_inner . Cexpression_elem_inner" }, { "", "", "\n\talternative -> id '(' @3 arguments @4 ')' ." }, { "@14 @15", "", "\n\tCbody -> '{' @13 Ctext . @14 '}'\n\tCtext -> Ctext . @15 Ctext_elem" }, { "@5", "", "\n\tattribute_init_option -> '=' . @5 Cexpression" }, { "", "';'", "\n\tattribute -> id id attribute_init_option . ';'" }, { "", "", "\n\tunparseitem -> T_UNPBLOCKSTART unparseitems T_UNPBLOCKEND ." }, { "id", "T_ID", "\n\tunpsubterm -> '(' id ')' . id" }, { "CexpressionDQ_elem", "T_CEXPRESSION '\n' '\"'", "\n\tCexpressionDQ -> CexpressionDQ . CexpressionDQ_elem\n\tunparseitem -> '\"' @32 CexpressionDQ . '\"' @33 viewnameoption" }, { "", "", "\n\tunpattribute -> T_ARROW id ." }, { "", "", "\n\tunpattributes -> unpattributes unpattribute ." }, { "", "", "\n\tviewnameoption -> ':' id ." }, { "@20", "", "\n\tCtext_elem -> T_WITH @19 '(' . @20 withCexpressions @21 ')' '{' withcases '}'" }, { "patternchain patternchainitem_lineinfo @28", "", "\n\tforeach_continuation -> '(' . patternchain ';' @22 idCexpressions ')' MainCbodyinC @23 foreach_end_continuation" }, { "", "", "\n\tCtext_elem -> T_FOREACH @18 foreach_continuation ." }, { "CexpressionDQ_elem", "T_CEXPRESSION '\n' '\"'", "\n\tCexpressionDQ -> CexpressionDQ . CexpressionDQ_elem\n\tCtext_elem -> '\"' @16 CexpressionDQ . '\"'" }, { "CexpressionSQ_elem", "T_CEXPRESSION '\n' '''", "\n\tCexpressionSQ -> CexpressionSQ . CexpressionSQ_elem\n\tCtext_elem -> ''' @17 CexpressionSQ . '''" }, { "", "", "\n\tCexpression_elem -> '(' Cexpression_inner ')' ." }, { "", "", "\n\tCexpression_elem_inner -> ',' ." }, { "", "", "\n\tCexpression_elem_inner -> Cexpression_elem ." }, { "", "", "\n\tCexpression_inner -> Cexpression_inner Cexpression_elem_inner ." }, { "", "", "\n\tCexpression_elem -> '\"' CexpressionDQ '\"' ." }, { "", "", "\n\tCexpressionSQ_elem -> T_CEXPRESSION ." }, { "", "", "\n\tCexpressionSQ_elem -> '\n' ." }, { "", "", "\n\tCexpression_elem -> ''' CexpressionSQ ''' ." }, { "", "", "\n\tCexpressionSQ -> CexpressionSQ CexpressionSQ_elem ." }, { "", "", "\n\tCexpression_elem -> '[' Cexpression_inner ']' ." }, { "", "'}'", "\n\tCbody -> '{' @13 Ctext @14 . '}'" }, { "Cexpression", "", "\n\tattribute_init_option -> '=' @5 . Cexpression" }, { "", "", "\n\tattribute -> id id attribute_init_option ';' ." }, { "", "", "\n\tunpsubterm -> '(' id ')' id ." }, { "@33", "", "\n\tunparseitem -> '\"' @32 CexpressionDQ '\"' . @33 viewnameoption" }, { "Cexpression withCexpression withCexpressions", "", "\n\tCtext_elem -> T_WITH @19 '(' @20 . withCexpressions @21 ')' '{' withcases '}'" }, { "", "';' '&'", "\n\tforeach_continuation -> '(' patternchain . ';' @22 idCexpressions ')' MainCbodyinC @23 foreach_end_continuation\n\tpatternchain -> patternchain . '&' patternchainitem_lineinfo" }, { "", "", "\n\tCtext_elem -> '\"' @16 CexpressionDQ '\"' ." }, { "", "", "\n\tCtext_elem -> ''' @17 CexpressionSQ ''' ." }, { "", "", "\n\tCbody -> '{' @13 Ctext @14 '}' ." }, { "dollarvar Cexpression_elem", "T_CNEWLINES T_CEXPRESSION T_DOLLARVAR '(' '\n' '\"' ''' '['", "\n\tattribute_init_option -> '=' @5 Cexpression .\n\tCexpression -> Cexpression . Cexpression_elem" }, { "viewnameoption", "':'", "\n\tunparseitem -> '\"' @32 CexpressionDQ '\"' @33 . viewnameoption" }, { "dollarvar Cexpression_elem", "T_CNEWLINES T_CEXPRESSION T_DOLLARVAR '(' '\n' '\"' ''' '['", "\n\tCexpression -> Cexpression . Cexpression_elem\n\twithCexpression -> Cexpression ." }, { "", "", "\n\twithCexpressions -> withCexpression ." }, { "@21", "','", "\n\twithCexpressions -> withCexpressions . ',' @8 withCexpression\n\tCtext_elem -> T_WITH @19 '(' @20 withCexpressions . @21 ')' '{' withcases '}'" }, { "@22", "", "\n\tforeach_continuation -> '(' patternchain ';' . @22 idCexpressions ')' MainCbodyinC @23 foreach_end_continuation" }, { "", "", "\n\tunparseitem -> '\"' @32 CexpressionDQ '\"' @33 viewnameoption ." }, { "@8", "", "\n\twithCexpressions -> withCexpressions ',' . @8 withCexpression" }, { "", "')'", "\n\tCtext_elem -> T_WITH @19 '(' @20 withCexpressions @21 . ')' '{' withcases '}'" }, { "id idCexpressions idCexpression", "T_ID", "\n\tforeach_continuation -> '(' patternchain ';' @22 . idCexpressions ')' MainCbodyinC @23 foreach_end_continuation" }, { "Cexpression withCexpression", "", "\n\twithCexpressions -> withCexpressions ',' @8 . withCexpression" }, { "", "'{'", "\n\tCtext_elem -> T_WITH @19 '(' @20 withCexpressions @21 ')' . '{' withcases '}'" }, { "@6", "", "\n\tidCexpression -> id . @6 Cexpression @7" }, { "", "')' ','", "\n\tidCexpressions -> idCexpressions . ',' idCexpression\n\tforeach_continuation -> '(' patternchain ';' @22 idCexpressions . ')' MainCbodyinC @23 foreach_end_continuation" }, { "", "", "\n\tidCexpressions -> idCexpression ." }, { "", "", "\n\twithCexpressions -> withCexpressions ',' @8 withCexpression ." }, { "patternchains patternchain patternchainitem_lineinfo @28 withcases withcase", "", "\n\tCtext_elem -> T_WITH @19 '(' @20 withCexpressions @21 ')' '{' . withcases '}'" }, { "Cexpression", "", "\n\tidCexpression -> id @6 . Cexpression @7" }, { "MainCbodyinC", "'{'", "\n\tforeach_continuation -> '(' patternchain ';' @22 idCexpressions ')' . MainCbodyinC @23 foreach_end_continuation" }, { "id idCexpression", "T_ID", "\n\tidCexpressions -> idCexpressions ',' . idCexpression" }, { "patternchains patternchain patternchainitem_lineinfo @28 withcase", "'}'", "\n\tCtext_elem -> T_WITH @19 '(' @20 withCexpressions @21 ')' '{' withcases . '}'\n\twithcases -> withcases . withcase" }, { "dollarvar Cexpression_elem @7", "T_CNEWLINES T_CEXPRESSION T_DOLLARVAR '(' '\n' '\"' ''' '['", "\n\tCexpression -> Cexpression . Cexpression_elem\n\tidCexpression -> id @6 Cexpression . @7" }, { "@11", "", "\n\tMainCbodyinC -> '{' . @11 MainCBodycontinuation @12 '}'" }, { "@23", "", "\n\tforeach_continuation -> '(' patternchain ';' @22 idCexpressions ')' MainCbodyinC . @23 foreach_end_continuation" }, { "", "", "\n\tidCexpressions -> idCexpressions ',' idCexpression ." }, { "", "", "\n\tCtext_elem -> T_WITH @19 '(' @20 withCexpressions @21 ')' '{' withcases '}' ." }, { "", "", "\n\tidCexpression -> id @6 Cexpression @7 ." }, { "MainCBodycontinuation Ctext patternchains patternchain patternchainitem_lineinfo @28 withcases withcase", "", "\n\tMainCbodyinC -> '{' @11 . MainCBodycontinuation @12 '}'" }, { "foreach_end_continuation", "T_FOREACH_AFTER", "\n\tforeach_continuation -> '(' patternchain ';' @22 idCexpressions ')' MainCbodyinC @23 . foreach_end_continuation" }, { "@12", "", "\n\tMainCbodyinC -> '{' @11 MainCBodycontinuation . @12 '}'" }, { "@24", "", "\n\tforeach_end_continuation -> T_FOREACH_AFTER . @24 '(' patternchain @25 ')' MainCbodyinC" }, { "", "", "\n\tforeach_continuation -> '(' patternchain ';' @22 idCexpressions ')' MainCbodyinC @23 foreach_end_continuation ." }, { "", "'}'", "\n\tMainCbodyinC -> '{' @11 MainCBodycontinuation @12 . '}'" }, { "", "'('", "\n\tforeach_end_continuation -> T_FOREACH_AFTER @24 . '(' patternchain @25 ')' MainCbodyinC" }, { "", "", "\n\tMainCbodyinC -> '{' @11 MainCBodycontinuation @12 '}' ." }, { "patternchain patternchainitem_lineinfo @28", "", "\n\tforeach_end_continuation -> T_FOREACH_AFTER @24 '(' . patternchain @25 ')' MainCbodyinC" }, { "@25", "'&'", "\n\tforeach_end_continuation -> T_FOREACH_AFTER @24 '(' patternchain . @25 ')' MainCbodyinC\n\tpatternchain -> patternchain . '&' patternchainitem_lineinfo" }, { "", "')'", "\n\tforeach_end_continuation -> T_FOREACH_AFTER @24 '(' patternchain @25 . ')' MainCbodyinC" }, { "MainCbodyinC", "'{'", "\n\tforeach_end_continuation -> T_FOREACH_AFTER @24 '(' patternchain @25 ')' . MainCbodyinC" }, { "", "", "\n\tforeach_end_continuation -> T_FOREACH_AFTER @24 '(' patternchain @25 ')' MainCbodyinC ." }, { "$", "", "" }, { "$", "", "" }, {0,0,0}}; kimwitu-4.6.1.orig/src/errmsg.h0100644000176100001440000000034107076113221015707 0ustar debacleusers/* * The Termprocessor Kimwitu * * Copyright (c) 1991-1996 University of Twente, Dept TIOS. * All rights reserved. * */ /* * $Id: errmsg.h,v 1.2 1996/12/09 08:58:20 belinfan Rel $ */ extern char *error_message[][3]; kimwitu-4.6.1.orig/src/errmsg.pl0100755000176100001440000000350607076113221016104 0ustar debacleusers#!/Utils/bin/perl #/* # * The Termprocessor Kimwitu # * # * Copyright (c) 1991-1996 University of Twente, Dept TIOS. # * All rights reserved. # * # */ #/* # * $Id: errmsg.pl,v 1.1 1996/12/09 08:58:20 belinfan Rel $ # */ #***************************************************************************** # # *** Copyright (c) Humboldt University of Berlin, Germany, # *** Department of Computer Science. # *** All rights reserved. # # File : errmsg.pl # Author : Matthias Schwalbe # e-mail : schwalbe@informatik.hu-berlin.de # Project : SDL'92-Compiler 2.x, Incrementel Parser # Date : Mon Nov 21 20:15:35 GMT-0100 1994 # Remark : may not work on other bison versions # History : # #******************************************************************************/ while(<>){ if(/^state 0/){ last; } } print <){ $foo = $_; if($foo =~ /^state [0-9]+/){ $term =~ s/\"/\\\"/g; $rules =~ s/\"/\\\"/g; $rules =~ s/\\n\\t$//g; print "{\n\"$nonterm\",\n\"$term\",\n\"$rules\"\n},\n"; $term = ""; $nonterm = ""; $rules = "\\n\\t"; } elsif($foo =~ /^\s*(\S*)\s*go to state/){ if(! $nonterm == ""){ $nonterm .= " "; } $nonterm .= $1; } elsif($foo =~ /^\s*(\S*)\s*shift, and go to state/){ if(! $term == ""){ $term .= " "; } $term .= $1; } elsif($foo =~ /^\s*(\S*)\s*\[?reduce using rule/){ } elsif($foo =~ /^\s*(\S*\s*->.*)\(rule [0-9]+\)/){ $bar = $1; $bar =~ s/\s*$//; $bar =~ s/ -> / -> /; if($bar !~ /\serror/){ $rules .= $bar; $rules .= "\\n\\t"; } } elsif($foo =~ /^\s*\S*\s*error/){ } elsif($foo =~ /^\s*\$default\s*accept/){ } elsif($foo =~ /\S/){ print "reminder : $foo"; } } print < #ifdef KC_STDC # include #endif #include "k.h" /* included stuff */ #line 2 "../error.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 29 "error.c" #line 14 "../error.k" #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char error_kAccesSid[] = "@(#)$Id: error.k,v 1.28 1998/03/18 17:52:27 belinfan Rel $"; #endif #line 35 "error.c" #line 35 "../error.k" boolean gp_no_fatal_problems; #line 39 "error.c" #line 38 "../error.k" #ifndef KC_STDC extern void exit(/* int */); #endif #line 45 "error.c" #line 319 "../error.k" #define QUOTEDBACKSLASH '\\' #line 49 "error.c" #line 323 "../error.k" #ifndef KC_MAX_STRING_LEN # define KC_MAX_STRING_LEN 200 #endif /* !KC_MAX_STRING_LEN */ viewnameoption ug_viewnameopt; #line 57 "error.c" /* end included stuff */ #include "error.h" static void v_stderr_printer KC__P((char *s, view v)); static void v_file_printer KC__P((char *s, view v, int *lineno, char **filename, int *no_of_printed_string_chars, boolean *doit, FILE *file, void (*printer_fn)(char *dummy1, uview dummy2))); static void v_stdout_printer KC__P((char *s, view v)); problem Problem1S #ifdef KC_USE_PROTOTYPES (char *s1) #else (s1) char *s1; #endif #line 78 "../error.k" { return Problem1( mkcasestring( s1 )); #line 80 "../error.k" } #line 76 "error.c" problem Problem1S1we #ifdef KC_USE_PROTOTYPES (char *s1, withexpression we) #else (s1, we) char *s1; withexpression we; #endif #line 82 "../error.k" { return Problem1we( mkcasestring( s1 ), we ); #line 84 "../error.k" } #line 91 "error.c" problem Problem1S1ID #ifdef KC_USE_PROTOTYPES (char *s1, ID id) #else (s1, id) char *s1; ID id; #endif #line 86 "../error.k" { return Problem1ID( mkcasestring( s1 ), id ); #line 88 "../error.k" } #line 106 "error.c" problem Problem1S1tID #ifdef KC_USE_PROTOTYPES (char *s1, ID id) #else (s1, id) char *s1; ID id; #endif #line 90 "../error.k" { return Problem1tID( mkcasestring( s1 ), id ); #line 92 "../error.k" } #line 121 "error.c" problem Problem1S1ID1S1ID #ifdef KC_USE_PROTOTYPES (char *s1, ID id1, char *s2, ID id2) #else (s1, id1, s2, id2) char *s1; ID id1; char *s2; ID id2; #endif #line 95 "../error.k" { return Problem1ID1ID( mkcasestring( s1 ), id1, mkcasestring( s2 ), id2 ); #line 97 "../error.k" } #line 138 "error.c" problem Problem1S1t1S1ID #ifdef KC_USE_PROTOTYPES (char *s1, IDtype id1, char *s2, ID id2) #else (s1, id1, s2, id2) char *s1; IDtype id1; char *s2; ID id2; #endif #line 99 "../error.k" { return Problem1t1ID( mkcasestring( s1 ), id1, mkcasestring( s2 ), id2 ); #line 101 "../error.k" } #line 155 "error.c" problem Problem1S1INT #ifdef KC_USE_PROTOTYPES (char *s1, INT i1) #else (s1, i1) char *s1; INT i1; #endif #line 104 "../error.k" { return Problem1INT( mkcasestring( s1 ), i1 ); #line 106 "../error.k" } #line 170 "error.c" problem Problem1S1int1S #ifdef KC_USE_PROTOTYPES (char *s1, int i1, char *s2) #else (s1, i1, s2) char *s1; int i1; char *s2; #endif #line 109 "../error.k" { return Problem1int1( mkcasestring( s1 ), i1, mkcasestring( s2 ) ); #line 111 "../error.k" } #line 186 "error.c" problem Problem1S1INT1S1ID #ifdef KC_USE_PROTOTYPES (char *s1, INT i1, char *s2, ID id2) #else (s1, i1, s2, id2) char *s1; INT i1; char *s2; ID id2; #endif #line 114 "../error.k" { return Problem1INT1ID( mkcasestring( s1 ), i1, mkcasestring( s2 ), id2 ); #line 116 "../error.k" } #line 203 "error.c" problem Problem1S1ID1S1ID1S1ID #ifdef KC_USE_PROTOTYPES (char *s1, ID id1, char *s2, ID id2, char *s3, ID id3) #else (s1, id1, s2, id2, s3, id3) char *s1; ID id1; char *s2; ID id2; char *s3; ID id3; #endif #line 119 "../error.k" { return Problem1ID1ID1ID( mkcasestring( s1 ), id1, mkcasestring( s2 ), id2, mkcasestring( s3 ), id3 ); #line 121 "../error.k" } #line 222 "error.c" problem Problem1S1INT1S1ID1S1ID #ifdef KC_USE_PROTOTYPES (char *s1, INT i1, char *s2, ID id2, char *s3, ID id3) #else (s1, i1, s2, id2, s3, id3) char *s1; INT i1; char *s2; ID id2; char *s3; ID id3; #endif #line 124 "../error.k" { return Problem1INT1ID1ID( mkcasestring( s1 ), i1, mkcasestring( s2 ), id2, mkcasestring( s3 ), id3 ); #line 126 "../error.k" } #line 241 "error.c" problem Problem1S1storageoption1S1ID #ifdef KC_USE_PROTOTYPES (char *s1, storageoption so, char *s2, ID id) #else (s1, so, s2, id) char *s1; storageoption so; char *s2; ID id; #endif #line 129 "../error.k" { return Problem1storageoption1ID( mkcasestring( s1 ), so, mkcasestring( s2 ), id ); #line 131 "../error.k" } #line 258 "error.c" problem Problem2S #ifdef KC_USE_PROTOTYPES (char *s1, char *s2) #else (s1, s2) char *s1; char *s2; #endif #line 133 "../error.k" { return Problem2( mkcasestring( s1 ), mkcasestring( s2 )); #line 135 "../error.k" } #line 273 "error.c" problem ProblemSC #ifdef KC_USE_PROTOTYPES (char *s1, casestring s2) #else (s1, s2) char *s1; casestring s2; #endif #line 137 "../error.k" { return Problem2( mkcasestring( s1 ), s2 ); #line 139 "../error.k" } #line 288 "error.c" problem Problem3S #ifdef KC_USE_PROTOTYPES (char *s1, char *s2, char *s3) #else (s1, s2, s3) char *s1; char *s2; char *s3; #endif #line 141 "../error.k" { return Problem3( mkcasestring( s1 ), mkcasestring( s2 ), mkcasestring( s3 )); #line 143 "../error.k" } #line 304 "error.c" problem Problem4S #ifdef KC_USE_PROTOTYPES (char *s1, char *s2, char *s3, char *s4) #else (s1, s2, s3, s4) char *s1; char *s2; char *s3; char *s4; #endif #line 145 "../error.k" { return Problem4( mkcasestring( s1 ), mkcasestring( s2 ), mkcasestring( s3 ), mkcasestring( s4 ) ); #line 147 "../error.k" } #line 321 "error.c" problem Problem3S1int1S #ifdef KC_USE_PROTOTYPES (char *s1, char *s2, char *s3, int i1, char *s4) #else (s1, s2, s3, i1, s4) char *s1; char *s2; char *s3; int i1; char *s4; #endif #line 150 "../error.k" { return Problem3int1( mkcasestring( s1 ), mkcasestring( s2 ), mkcasestring( s3 ), i1, mkcasestring( s4 ) ); #line 152 "../error.k" } #line 339 "error.c" void v_report #ifdef KC_USE_PROTOTYPES (error e) #else (e) error e; #endif #line 302 "../error.k" { unparse_error( e, v_stderr_printer, view_error ); #line 304 "../error.k" } #line 353 "error.c" static void v_stderr_printer #ifdef KC_USE_PROTOTYPES (char *s, view v) #else (s, v) char *s; view v; #endif #line 308 "../error.k" { KC_LINTUSE(v); (void)fflush( stdout ); (void)fprintf( stderr, "%s", s ); (void)fflush( stderr ); #line 312 "../error.k" } #line 370 "error.c" static void v_file_printer #ifdef KC_USE_PROTOTYPES (char *s, view v, int *lineno, char **filename, int *no_of_printed_string_chars, boolean *doit, FILE *file, void (*printer_fn)(char *dummy1, uview dummy2)) #else (s, v, lineno, filename, no_of_printed_string_chars, doit, file, printer_fn) char *s; view v; int *lineno; char **filename; int *no_of_printed_string_chars; boolean *doit; FILE *file; void (*printer_fn)(); #endif #line 334 "../error.k" { char c; /*SUPPRESS 622*/ assert(file != 0); switch( (int)v ) { case (int) view_no_of_printed_string_chars_reset: *no_of_printed_string_chars = 0; break; case (int)view_printer_reset: *lineno = 1; *filename = s; break; case (int)view_printer_outputfileline: (void)fprintf( file, "\n" ); *lineno = *lineno +1; (void)fprintf( file, "#line %d \"%s\"\n", (*lineno)+1, *filename ); *lineno = *lineno +1; break; default: while(/*SUPPRESS 254*/ (c=*s++)) { switch( c ) { case '\0': return; case '\n': *lineno = *lineno +1; default: if (v == view_gen_unpstr_c) { if (*no_of_printed_string_chars >= KC_MAX_STRING_LEN) { if (*doit) { (void)fprintf( file, "\", " ); unparse_viewnameoption( ug_viewnameopt, printer_fn, view_gen_unparsedefs_other_c ); (void)fprintf( file, " );\n (*kc_printer)(\"" ); *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) { if (c == QUOTEDBACKSLASH) { (void)putc( c, file ); } } (void)putc( c, file ); } } } #line 386 "../error.k" } #line 441 "error.c" static void v_stdout_printer #ifdef KC_USE_PROTOTYPES (char *s, view v) #else (s, v) char *s; view v; #endif #line 389 "../error.k" { static int lineno = 0; static char *filename; static int no_of_printed_string_chars = 0; static boolean doit = False; v_file_printer( s, v, &lineno, &filename, &no_of_printed_string_chars, &doit, stdout, v_stdout_printer ); #line 395 "../error.k" } #line 460 "error.c" void v_hfile_printer #ifdef KC_USE_PROTOTYPES (char *s, view v) #else (s, v) char *s; view v; #endif #line 398 "../error.k" { static int lineno; static char *filename; static int no_of_printed_string_chars = 0; static boolean doit = False; v_file_printer( s, v, &lineno, &filename, &no_of_printed_string_chars, &doit, g_hfile, v_hfile_printer ); #line 404 "../error.k" } #line 479 "error.c" void v_cfile_printer #ifdef KC_USE_PROTOTYPES (char *s, view v) #else (s, v) char *s; view v; #endif #line 407 "../error.k" { static int lineno; static char *filename; static int no_of_printed_string_chars = 0; static boolean doit = False; v_file_printer( s, v, &lineno, &filename, &no_of_printed_string_chars, &doit, g_cfile, v_cfile_printer ); #line 413 "../error.k" } #line 498 "error.c" void v_null_printer #ifdef KC_USE_PROTOTYPES (char *s, view v) #else (s, v) char *s; view v; #endif #line 417 "../error.k" { KC_LINTUSE(s); KC_LINTUSE(v); #line 418 "../error.k" } #line 512 "error.c" kimwitu-4.6.1.orig/src/error.h0100644000176100001440000000421207076113232015544 0ustar debacleusers/* translation of file "../error.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #ifndef KC_FUNCTIONS_error_HEADER #define KC_FUNCTIONS_error_HEADER #define KIMW_FUNCTIONS_error_HEADER /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include "k.h" /* in case a user forgets */ /* included stuff */ #line 2 "../error.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 27 "error.h" #line 31 "../error.k" #include "unpk.h" /* for the definition of view */ extern boolean gp_no_fatal_problems; #line 32 "error.h" /* end included stuff */ problem Problem1S KC__P((char *s1)); problem Problem1S1we KC__P((char *s1, withexpression we)); problem Problem1S1ID KC__P((char *s1, ID id)); problem Problem1S1tID KC__P((char *s1, ID id)); problem Problem1S1ID1S1ID KC__P((char *s1, ID id1, char *s2, ID id2)); problem Problem1S1t1S1ID KC__P((char *s1, IDtype id1, char *s2, ID id2)); problem Problem1S1INT KC__P((char *s1, INT i1)); problem Problem1S1int1S KC__P((char *s1, int i1, char *s2)); problem Problem1S1INT1S1ID KC__P((char *s1, INT i1, char *s2, ID id2)); problem Problem1S1ID1S1ID1S1ID KC__P((char *s1, ID id1, char *s2, ID id2, char *s3, ID id3)); problem Problem1S1INT1S1ID1S1ID KC__P((char *s1, INT i1, char *s2, ID id2, char *s3, ID id3)); problem Problem1S1storageoption1S1ID KC__P((char *s1, storageoption so, char *s2, ID id)); problem Problem2S KC__P((char *s1, char *s2)); problem ProblemSC KC__P((char *s1, casestring s2)); problem Problem3S KC__P((char *s1, char *s2, char *s3)); problem Problem4S KC__P((char *s1, char *s2, char *s3, char *s4)); problem Problem3S1int1S KC__P((char *s1, char *s2, char *s3, int i1, char *s4)); void v_report KC__P((error e)); void v_hfile_printer KC__P((char *s, view v)); void v_cfile_printer KC__P((char *s, view v)); void v_null_printer KC__P((char *s, view v)); #endif /* ! KC_FUNCTIONS_error_HEADER */ kimwitu-4.6.1.orig/src/error.k0100644000176100001440000003212207076113220015545 0ustar debacleusers%{ CODE HEADER /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ %} /* * error.k */ %{ #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char error_kAccesSid[] = "@(#)$Id: error.k,v 1.28 1998/03/18 17:52:27 belinfan Rel $"; #endif %} /***************************************************************************/ /* * For ERROR Reporting */ /* * we want it global... so include the fndecls in k.h */ %{ KC_TYPES_HEADER #include "error.h" %} %{ HEADER #include "unpk.h" /* for the definition of view */ extern boolean gp_no_fatal_problems; %} %{ boolean gp_no_fatal_problems; %} %{ #ifndef KC_STDC extern void exit(/* int */); #endif %} /* we have three sorts of errors: * Fatal causes an exit right after they are reported * NonFatal does not cause an immediate exit, but * does reset gp_no_fatal_problems * Warning does not cause an exit, does not reset gp_no_fatal_problems */ error : Fatal( fileline problem ) | NonFatal( fileline problem ) | Warning( fileline problem ) ; problem : Problem1( casestring ) | Problem1ID( casestring ID ) | Problem1tID( casestring ID ) | Problem1we( casestring withexpression ) | Problem1ID1ID( casestring ID casestring ID ) | Problem1t1ID( casestring IDtype casestring ID ) | Problem1INT( casestring INT ) | Problem1int1( casestring int casestring ) | Problem1INT1ID( casestring INT casestring ID ) | Problem1ID1ID1ID( casestring ID casestring ID casestring ID ) | Problem1INT1ID1ID( casestring INT casestring ID casestring ID ) | Problem1storageoption1ID( casestring storageoption casestring ID ) | Problem2( casestring casestring ) | Problem3( casestring casestring casestring ) | Problem3int1( casestring casestring casestring int casestring ) | Problem4( casestring casestring casestring casestring ) | Problem5( casestring casestring casestring casestring casestring ) | Problem6( casestring casestring casestring casestring casestring casestring ) ; problem Problem1S( s1 ) char *s1; { return Problem1( mkcasestring( s1 )); } problem Problem1S1we( s1, we ) char *s1; withexpression we; { return Problem1we( mkcasestring( s1 ), we ); } problem Problem1S1ID( s1, id ) char *s1; ID id; { return Problem1ID( mkcasestring( s1 ), id ); } problem Problem1S1tID( s1, id ) char *s1; ID id; { return Problem1tID( mkcasestring( s1 ), id ); } problem Problem1S1ID1S1ID( s1, id1, s2, id2 ) char *s1; ID id1; char *s2; ID id2; { return Problem1ID1ID( mkcasestring( s1 ), id1, mkcasestring( s2 ), id2 ); } problem Problem1S1t1S1ID( s1, id1, s2, id2 ) char *s1; IDtype id1; char *s2; ID id2; { return Problem1t1ID( mkcasestring( s1 ), id1, mkcasestring( s2 ), id2 ); } problem Problem1S1INT( s1, i1 ) char *s1; INT i1; { return Problem1INT( mkcasestring( s1 ), i1 ); } problem Problem1S1int1S( s1, i1, s2 ) char *s1; int i1; char *s2; { return Problem1int1( mkcasestring( s1 ), i1, mkcasestring( s2 ) ); } problem Problem1S1INT1S1ID( s1, i1, s2, id2 ) char *s1; INT i1; char *s2; ID id2; { return Problem1INT1ID( mkcasestring( s1 ), i1, mkcasestring( s2 ), id2 ); } problem Problem1S1ID1S1ID1S1ID( s1, id1, s2, id2, s3, id3 ) char *s1; ID id1; char *s2; ID id2; char *s3; ID id3; { return Problem1ID1ID1ID( mkcasestring( s1 ), id1, mkcasestring( s2 ), id2, mkcasestring( s3 ), id3 ); } problem Problem1S1INT1S1ID1S1ID( s1, i1, s2, id2, s3, id3 ) char *s1; INT i1; char *s2; ID id2; char *s3; ID id3; { return Problem1INT1ID1ID( mkcasestring( s1 ), i1, mkcasestring( s2 ), id2, mkcasestring( s3 ), id3 ); } problem Problem1S1storageoption1S1ID( s1, so, s2, id ) char *s1; storageoption so; char *s2; ID id; { return Problem1storageoption1ID( mkcasestring( s1 ), so, mkcasestring( s2 ), id ); } problem Problem2S( s1, s2 ) char *s1; char *s2; { return Problem2( mkcasestring( s1 ), mkcasestring( s2 )); } problem ProblemSC( s1, s2 ) char *s1; casestring s2; { return Problem2( mkcasestring( s1 ), s2 ); } problem Problem3S( s1, s2, s3 ) char *s1; char *s2; char *s3; { return Problem3( mkcasestring( s1 ), mkcasestring( s2 ), mkcasestring( s3 )); } problem Problem4S( s1, s2, s3, s4 ) char *s1; char *s2; char *s3; char *s4; { return Problem4( mkcasestring( s1 ), mkcasestring( s2 ), mkcasestring( s3 ), mkcasestring( s4 ) ); } problem Problem3S1int1S( s1, s2, s3, i1, s4 ) char *s1; char *s2; char *s3; int i1; char *s4; { return Problem3int1( mkcasestring( s1 ), mkcasestring( s2 ), mkcasestring( s3 ), i1, mkcasestring( s4 ) ); } Problem1( s1 ) -> [ view_error: s1 ]; Problem1we( s1, we1 ) -> [ view_error: s1 " " we1 ]; Problem1ID( s1, id ) -> [ view_error: s1 " " id ]; Problem1tID( s1, id ) -> [ view_error: s1 " " id:view_error_tID ]; Problem1ID1ID( s1, id1, s2, id2 ) -> [ view_error: s1 " " id1 " " s2 " " id2 ]; Problem1t1ID( s1, t, s2, id ) -> [ view_error: s1 " " t " " s2 " " id ]; Problem1INT( s1, i1 ) -> [ view_error: s1 " " i1 ]; Problem1int1( s1, i1, s2 ) -> [ view_error: s1 " " i1 " " s2 ]; Problem1INT1ID( s1, i1, s2, id1 ) -> [ view_error: s1 " " i1 " " s2 " " id1 ]; Problem1ID1ID1ID( s1, id1, s2, id2, s3, id3 ) -> [ view_error: s1 " " id1 " " s2 " " id2 " " s3 " " id3 ]; Problem1INT1ID1ID( s1, i1, s2, id1, s3, id2 ) -> [ view_error: s1 " " i1 " " s2 " " id1 " " s3 " " id2 ]; Problem1storageoption1ID( s1, so, s2, id ) -> [ view_error: s1 " " so " " s2 " " id ]; Problem2( s1, s2 ) -> [ view_error: s1 " " s2 ]; Problem3( s1, s2, s3 ) -> [ view_error: s1 " " s2 " " s3 ]; Problem3int1( s1, s2, s3, i1, s4 ) -> [ view_error: s1 " " s2 " " s3 " " i1 " " s4 ]; Problem4( s1, s2, s3, s4 ) -> [ view_error: s1 " " s2 " " s3 " " s4 ]; Problem5( s1, s2, s3, s4, s5 ) -> [ view_error: s1 " " s2 " " s3 " " s4 " " s5 ]; Problem6( s1, s2, s3, s4, s5, s6 ) -> [ view_error: s1 " " s2 " " s3 " " s4 " " s5 " " s6 ]; Id( uid ) -> [ view_error: uid { if (uid->line != 0) } ${ " (introduced at " uid->file ":" uid->line ")" $} ]; Id( uid ) -> [ view_error_tID: uid->type " " uid { if (uid->line != 0) } ${ " (introduced at " uid->file ":" uid->line ")" $} ]; ITUnknown() -> [view_error_tID view_error: {/*EMPTY*/} ]; ITPredefinedPhylum( * ), ITPredefinedBigatomPhylum( * ), ITUserPhylum( * ), ITPredefinedOperator( *, * ), ITPredefinedStorageClass(), ITStorageClass(), ITPredefinedUView(), ITUserUView(), ITPredefinedRView(), ITUserRView(), ITUserFunction( * ), ITPatternVariable( *, * ) -> [view_error_tID: "(it's a " $0:view_error ")" ]; ITUserOperator( *, * ) -> [view_error_tID: "(it's an " $0:view_error ")" ]; ITPredefinedBigatomPhylum( * ), ITPredefinedPhylum( * ) -> [view_error: "predefined phylum" ]; ITUserPhylum( * ) -> [view_error: "phylum" ]; ITPredefinedOperator( *, * ) -> [view_error: "predefined operator" ]; ITUserOperator( *, * ) -> [view_error: "operator" ]; ITPredefinedStorageClass() -> [view_error: "predefined storageclass" ]; ITStorageClass() -> [view_error: "storageclass" ]; ITPredefinedUView() -> [view_error: "predefined unparse view" ]; ITUserUView() -> [view_error: "unparse view" ]; ITPredefinedRView() -> [view_error: "predefined rewrite view" ]; ITUserRView() -> [view_error: "rewrite view" ]; ITUserFunction( * ) -> [view_error: "function" ]; ITPatternVariable( *, * ) -> [view_error: "pattern variable" ]; WEVariable( i ) -> [view_error: i ]; WECexpression( ce ) -> [view_error: ce ]; ConsCexpression( h, t ) -> [view_error: t h ]; NilCexpression() -> [view_error: {/*EMPTY*/} ]; CExpressionPart( s ) -> [view_error: s ]; CExpressionDollarvar( i ) -> [view_error: "$" i ]; CExpressionNl( * ) -> [view_error: " " ]; CExpressionDQ( cedq ) -> [view_error: "\"" cedq "\"" ]; CExpressionSQ( cesq ) -> [view_error: "'" cesq "'" ]; CExpressionPack( ce ) -> [view_error: "(" ce ")" ]; CExpressionArray( ce ) -> [view_error: "[" ce "]" ]; ConsCexpressionDQ( h, t ) -> [view_error: t h ]; NilCexpressionDQ() -> [view_error: {/*EMPTY*/} ]; CExpressionDQPart( s ) -> [view_error: s ]; CExpressionDQNl( * ) -> [view_error: " " ]; ConsCexpressionSQ( h, t ) -> [view_error: t h ]; NilCexpressionSQ() -> [view_error: {/*EMPTY*/} ]; CExpressionSQPart( s ) -> [view_error: s ]; CExpressionSQNl( * ) -> [view_error: " " ]; Str( cs ) -> [ view_error: cs ]; Int( i ) -> [ view_error: i ]; NoStorageOption() -> [ view_error: {/*EMPTY*/} ]; NegativeStorageOption( id ) -> [ view_error: "{! " id/*:base_view*/ " } at " id->file ":" id->line ]; PositiveStorageOption( id ) -> [ view_error: "{ " id/*:base_view*/ " } at " id->file ":" id->line ]; /* * This can be easier if we are allowed to use strings/ints * in the pattern */ FileLine( f, l ) -> [ view_error: { if (l != 0) } ${ " at " { if (strcmp(f->name, "") != 0) } ${ f $} ":" l $} { else if (pg_lineno != 0) } ${ " at " { if (strcmp(pg_filename->name, "") != 0) } ${ (casestring)pg_filename $} ":" (int)pg_lineno $} ] ; NoFileLine() -> [ view_error: { if (pg_lineno != 0) } ${ " at " { if (strcmp(pg_filename->name, "") != 0) } ${ (casestring)pg_filename $} ":" (int)pg_lineno $} ] ; PosNoFileLine() -> [ view_error: { if (pg_lineno != 0) } ${ " at " { if (strcmp(pg_filename->name, "") != 0) } ${ (casestring)pg_filename $} ":" (int)pg_lineno " col:" (int)pg_column $} ] ; %{ KC_UNPARSE #include "main.h" /* for the definition of leave */ %} Fatal( fl, e ) -> [ view_error: { gp_no_fatal_problems=False; } (casestring)g_progname ": fatal error" fl ": " e "\n" { leave( 1 ); } ] ; NonFatal( fl, e ) -> [ view_error: { gp_no_fatal_problems=False; } (casestring)g_progname ": error" fl ": " e "\n" ] ; Warning( fl, e ) -> [ view_error: (casestring)g_progname ": warning" fl ": " e "\n" ] ; void v_report( e ) error e; { unparse_error( e, v_stderr_printer, view_error ); } /*ARGSUSED*/ static void v_stderr_printer( s, v ) char *s; view v; { KC_LINTUSE(v); (void)fflush( stdout ); (void)fprintf( stderr, "%s", s ); (void)fflush( stderr ); } /* * HACK to get rid of backslash problems */ %{ #define QUOTEDBACKSLASH '\\' %} %{ #ifndef KC_MAX_STRING_LEN # define KC_MAX_STRING_LEN 200 #endif /* !KC_MAX_STRING_LEN */ viewnameoption ug_viewnameopt; %} %{ KC_TYPES_HEADER extern viewnameoption ug_viewnameopt; %} static void v_file_printer( char *s, view v, int *lineno, char **filename, int *no_of_printed_string_chars, boolean *doit, FILE *file, void (*printer_fn)(char *dummy1, uview dummy2) ) { char c; /*SUPPRESS 622*/ assert(file != 0); switch( (int)v ) { case (int) view_no_of_printed_string_chars_reset: *no_of_printed_string_chars = 0; break; case (int)view_printer_reset: *lineno = 1; *filename = s; break; case (int)view_printer_outputfileline: (void)fprintf( file, "\n" ); *lineno = *lineno +1; (void)fprintf( file, "#line %d \"%s\"\n", (*lineno)+1, *filename ); *lineno = *lineno +1; break; default: while(/*SUPPRESS 254*/ (c=*s++)) { switch( c ) { case '\0': return; case '\n': /* if (*s == QUOTEDBACKSLASH) s++; */ *lineno = *lineno +1; /* NO break */ default: if (v == view_gen_unpstr_c) { if (*no_of_printed_string_chars >= KC_MAX_STRING_LEN) { if (*doit) { (void)fprintf( file, "\", " ); unparse_viewnameoption( ug_viewnameopt, printer_fn, view_gen_unparsedefs_other_c ); (void)fprintf( file, " );\n (*kc_printer)(\"" ); *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! */ (void)putc( c, file ); } } (void)putc( c, file ); } } } } static void v_stdout_printer( s, v ) char *s; view v; { static int lineno = 0; static char *filename; static int no_of_printed_string_chars = 0; /* to split long double-quoted strings */ static boolean doit = False; v_file_printer( s, v, &lineno, &filename, &no_of_printed_string_chars, &doit, stdout, v_stdout_printer ); } void v_hfile_printer( s, v ) char *s; view v; { static int lineno; static char *filename; static int no_of_printed_string_chars = 0; /* to split long double-quoted strings */ static boolean doit = False; v_file_printer( s, v, &lineno, &filename, &no_of_printed_string_chars, &doit, g_hfile, v_hfile_printer ); } void v_cfile_printer( s, v ) char *s; view v; { static int lineno; static char *filename; static int no_of_printed_string_chars = 0; /* to split long double-quoted strings */ static boolean doit = False; v_file_printer( s, v, &lineno, &filename, &no_of_printed_string_chars, &doit, g_cfile, v_cfile_printer ); } /*ARGSUSED*/ void v_null_printer( s, v ) char *s; view v; { KC_LINTUSE(s); KC_LINTUSE(v); } kimwitu-4.6.1.orig/src/extocc.c0100644000176100001440000005501007076113222015674 0ustar debacleusers/* translation of file "../extocc.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #define KC_FUNCTIONS_extocc #define KIMW_FUNCTIONS_extocc /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include #ifdef KC_STDC # include #endif #include "k.h" /* included stuff */ #line 2 "../extocc.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 29 "extocc.c" #line 14 "../extocc.k" #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char extocc_kAccesSid[] = "@(#)$Id: extocc.k,v 1.13 1997/03/05 15:36:49 belinfan Rel $"; #endif #line 35 "extocc.c" /* end included stuff */ #include "extocc.h" static void do_v_extendoccur KC__P((ID id, IDtype it, boolean warn)); void v_extendoccur #ifdef KC_USE_PROTOTYPES (ID id, IDtype it) #else (id, it) ID id; IDtype it; #endif #line 21 "../extocc.k" { do_v_extendoccur( id, it, True); #line 23 "../extocc.k" } #line 53 "extocc.c" void v_extendoccur_nowarning #ifdef KC_USE_PROTOTYPES (ID id, IDtype it) #else (id, it) ID id; IDtype it; #endif #line 25 "../extocc.k" { do_v_extendoccur( id, it, False); #line 27 "../extocc.k" } #line 68 "extocc.c" static void do_v_extendoccur #ifdef KC_USE_PROTOTYPES (ID id, IDtype it, boolean warn) #else (id, it, warn) ID id; IDtype it; boolean warn; #endif #line 29 "../extocc.k" { id->type = it; { #line 31 "../extocc.k" IDtype kc_selvar_0_1 = it ; #line 31 "../extocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_0_1, "with_expression (1)"); #line 90 "extocc.c" if (( kc_selvar_0_1->prod_sel == sel_ITPatternVariable)) { #line 152 "../extocc.k" ID t_id = kc_selvar_0_1->u.ITPatternVariable.ID_1; #line 152 "../extocc.k" int t_scope = kc_selvar_0_1->u.ITPatternVariable.int_1; #line 152 "../extocc.k" { #line 153 "../extocc.k" ID kc_selvar_1_1 = id ; #line 153 "../extocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 107 "extocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 154 "../extocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 154 "../extocc.k" { #line 155 "../extocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 155 "../extocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 122 "extocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITPatternVariable)) { #line 157 "../extocc.k" ID id_id = kc_selvar_2_1->u.ITPatternVariable.ID_1; #line 157 "../extocc.k" int id_scope = kc_selvar_2_1->u.ITPatternVariable.int_1; #line 157 "../extocc.k" if (t_scope == id_scope) { if (! eq_ID( t_id, id_id )) { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID1S1ID1S1ID( "type mismatch in redefinition of pattern variable:", id, "old type", id_id, "new type", t_id ))); } } else { uid->scopeinfo = Consscopetypefilelinestack( ScopeTypeFileLine(t_scope, uid->type, uid->file, uid->line), uid->scopeinfo ); uid->type = it; uid->line = id->line; uid->file = id->file; } #line 140 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 156 "../extocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 145 "extocc.c" } else { #line 168 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as pattern variable:", id ))); #line 150 "extocc.c" } } #line 169 "../extocc.k" #line 155 "extocc.c" } else kc_no_default_in_with( "do_v_extendoccur", __LINE__, __FILE__ ); } #line 169 "../extocc.k" #line 161 "extocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITUserRView)) { #line 139 "../extocc.k" { #line 140 "../extocc.k" ID kc_selvar_1_1 = id ; #line 140 "../extocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 175 "extocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 141 "../extocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 141 "../extocc.k" { #line 142 "../extocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 142 "../extocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 190 "extocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITUserRView)) { #line 147 "../extocc.k" if (warn) v_report(Warning( FileLine( id->file, id->line ), Problem1S1ID( "superflous redeclaration of rewrite view:", id ))); #line 196 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedRView)) { #line 144 "../extocc.k" if (warn) v_report(Warning( FileLine( id->file, id->line ), Problem1S1ID( "superflous redeclaration of predefined rewrite view:", id ))); #line 203 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 143 "../extocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 208 "extocc.c" } else { #line 150 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as rewrite view:", id ))); #line 213 "extocc.c" } } #line 151 "../extocc.k" #line 218 "extocc.c" } else kc_no_default_in_with( "do_v_extendoccur", __LINE__, __FILE__ ); } #line 151 "../extocc.k" #line 224 "extocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITPredefinedRView)) { #line 130 "../extocc.k" { #line 131 "../extocc.k" ID kc_selvar_1_1 = id ; #line 131 "../extocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 238 "extocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 132 "../extocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 132 "../extocc.k" { #line 133 "../extocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 133 "../extocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 253 "extocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITUserRView)) { #line 136 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of rewrite view:", id ))); #line 257 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedRView)) { #line 135 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of predefined rewrite view:", id ))); #line 262 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 134 "../extocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 267 "extocc.c" } else { #line 137 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as view:", id ))); #line 272 "extocc.c" } } #line 138 "../extocc.k" #line 277 "extocc.c" } else kc_no_default_in_with( "do_v_extendoccur", __LINE__, __FILE__ ); } #line 138 "../extocc.k" #line 283 "extocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITUserUView)) { #line 117 "../extocc.k" { #line 118 "../extocc.k" ID kc_selvar_1_1 = id ; #line 118 "../extocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 297 "extocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 119 "../extocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 119 "../extocc.k" { #line 120 "../extocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 120 "../extocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 312 "extocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITUserUView)) { #line 125 "../extocc.k" if (warn) v_report(Warning( FileLine( id->file, id->line ), Problem1S1ID( "superflous redeclaration of unparse view:", id ))); #line 318 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedUView)) { #line 122 "../extocc.k" if (warn) v_report(Warning( FileLine( id->file, id->line ), Problem1S1ID( "superflous redeclaration of predefined unparse view:", id ))); #line 325 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 121 "../extocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 330 "extocc.c" } else { #line 128 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as unparse view:", id ))); #line 335 "extocc.c" } } #line 129 "../extocc.k" #line 340 "extocc.c" } else kc_no_default_in_with( "do_v_extendoccur", __LINE__, __FILE__ ); } #line 129 "../extocc.k" #line 346 "extocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITPredefinedUView)) { #line 108 "../extocc.k" { #line 109 "../extocc.k" ID kc_selvar_1_1 = id ; #line 109 "../extocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 360 "extocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 110 "../extocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 110 "../extocc.k" { #line 111 "../extocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 111 "../extocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 375 "extocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITUserUView)) { #line 114 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of unparse view:", id ))); #line 379 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedUView)) { #line 113 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of predefined unparse view:", id ))); #line 384 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 112 "../extocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 389 "extocc.c" } else { #line 115 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as view:", id ))); #line 394 "extocc.c" } } #line 116 "../extocc.k" #line 399 "extocc.c" } else kc_no_default_in_with( "do_v_extendoccur", __LINE__, __FILE__ ); } #line 116 "../extocc.k" #line 405 "extocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITUserFunction)) { #line 100 "../extocc.k" { #line 101 "../extocc.k" ID kc_selvar_1_1 = id ; #line 101 "../extocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 419 "extocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 102 "../extocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 102 "../extocc.k" { #line 103 "../extocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 103 "../extocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 434 "extocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITUserFunction)) { #line 105 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of function:", id ))); #line 438 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 104 "../extocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 443 "extocc.c" } else { #line 106 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as function:", id ))); #line 448 "extocc.c" } } #line 107 "../extocc.k" #line 453 "extocc.c" } else kc_no_default_in_with( "do_v_extendoccur", __LINE__, __FILE__ ); } #line 107 "../extocc.k" #line 459 "extocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITStorageClass)) { #line 84 "../extocc.k" { #line 85 "../extocc.k" ID kc_selvar_1_1 = id ; #line 85 "../extocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 473 "extocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 86 "../extocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 86 "../extocc.k" { #line 87 "../extocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 87 "../extocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 488 "extocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITStorageClass)) { #line 95 "../extocc.k" /*EMPTY*/ #line 492 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedStorageClass)) { #line 89 "../extocc.k" /*EMPTY*/ #line 502 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 88 "../extocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 507 "extocc.c" } else kc_no_default_in_with( "do_v_extendoccur", __LINE__, __FILE__ ); } #line 99 "../extocc.k" #line 513 "extocc.c" } else kc_no_default_in_with( "do_v_extendoccur", __LINE__, __FILE__ ); } #line 99 "../extocc.k" #line 519 "extocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITPredefinedStorageClass)) { #line 75 "../extocc.k" { #line 76 "../extocc.k" ID kc_selvar_1_1 = id ; #line 76 "../extocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 533 "extocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 77 "../extocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 77 "../extocc.k" { #line 78 "../extocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 78 "../extocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 548 "extocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITStorageClass)) { #line 81 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of storage class:", id ))); #line 552 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedStorageClass)) { #line 80 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of predefined storage class:", id ))); #line 557 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 79 "../extocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 562 "extocc.c" } else { #line 82 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as storage class:", id ))); #line 567 "extocc.c" } } #line 83 "../extocc.k" #line 572 "extocc.c" } else kc_no_default_in_with( "do_v_extendoccur", __LINE__, __FILE__ ); } #line 83 "../extocc.k" #line 578 "extocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITUserOperator)) { #line 66 "../extocc.k" { #line 67 "../extocc.k" ID kc_selvar_1_1 = id ; #line 67 "../extocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 592 "extocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 68 "../extocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 68 "../extocc.k" { #line 69 "../extocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 69 "../extocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 607 "extocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITUserOperator)) { #line 72 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of operator:", id ))); #line 611 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedOperator)) { #line 71 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of predefined operator:", id ))); #line 616 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 70 "../extocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 621 "extocc.c" } else { #line 73 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as operator:", id ))); #line 626 "extocc.c" } } #line 74 "../extocc.k" #line 631 "extocc.c" } else kc_no_default_in_with( "do_v_extendoccur", __LINE__, __FILE__ ); } #line 74 "../extocc.k" #line 637 "extocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITPredefinedOperator)) { #line 57 "../extocc.k" { #line 58 "../extocc.k" ID kc_selvar_1_1 = id ; #line 58 "../extocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 651 "extocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 59 "../extocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 59 "../extocc.k" { #line 60 "../extocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 60 "../extocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 666 "extocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITUserOperator)) { #line 63 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of operator:", id ))); #line 670 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedOperator)) { #line 62 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of predefined operator:", id ))); #line 675 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 61 "../extocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 680 "extocc.c" } else { #line 64 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as operator:", id ))); #line 685 "extocc.c" } } #line 65 "../extocc.k" #line 690 "extocc.c" } else kc_no_default_in_with( "do_v_extendoccur", __LINE__, __FILE__ ); } #line 65 "../extocc.k" #line 696 "extocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITUserPhylum)) { #line 47 "../extocc.k" { #line 48 "../extocc.k" ID kc_selvar_1_1 = id ; #line 48 "../extocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 710 "extocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 49 "../extocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 49 "../extocc.k" { #line 50 "../extocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 50 "../extocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 725 "extocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedPhylum)) { #line 54 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of predefined phylum:", id ))); #line 729 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 54 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of predefined phylum:", id ))); #line 734 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUserPhylum)) { #line 52 "../extocc.k" /*EMPTY*/ #line 739 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 51 "../extocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 744 "extocc.c" } else { #line 55 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as phylum:", id ))); #line 749 "extocc.c" } } #line 56 "../extocc.k" #line 754 "extocc.c" } else kc_no_default_in_with( "do_v_extendoccur", __LINE__, __FILE__ ); } #line 56 "../extocc.k" #line 760 "extocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITPredefinedPhylum)) { #line 37 "../extocc.k" { #line 38 "../extocc.k" ID kc_selvar_1_1 = id ; #line 38 "../extocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 774 "extocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 39 "../extocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 39 "../extocc.k" { #line 40 "../extocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 40 "../extocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 789 "extocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITUserPhylum)) { #line 44 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of phylum:", id ))); #line 793 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedPhylum)) { #line 43 "../extocc.k" /*EMPTY*/ #line 798 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 43 "../extocc.k" /*EMPTY*/ #line 803 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 41 "../extocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 808 "extocc.c" } else { #line 45 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as phylum:", id ))); #line 813 "extocc.c" } } #line 46 "../extocc.k" #line 818 "extocc.c" } else kc_no_default_in_with( "do_v_extendoccur", __LINE__, __FILE__ ); } #line 46 "../extocc.k" #line 824 "extocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 37 "../extocc.k" { #line 38 "../extocc.k" ID kc_selvar_1_1 = id ; #line 38 "../extocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 838 "extocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 39 "../extocc.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 39 "../extocc.k" { #line 40 "../extocc.k" IDtype kc_selvar_2_1 = uid->type ; #line 40 "../extocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 853 "extocc.c" if (( kc_selvar_2_1->prod_sel == sel_ITUserPhylum)) { #line 44 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of phylum:", id ))); #line 857 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedPhylum)) { #line 43 "../extocc.k" /*EMPTY*/ #line 862 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 43 "../extocc.k" /*EMPTY*/ #line 867 "extocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 41 "../extocc.k" uid->type = it; uid->line = id->line; uid->file = id->file; #line 872 "extocc.c" } else { #line 45 "../extocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as phylum:", id ))); #line 877 "extocc.c" } } #line 46 "../extocc.k" #line 882 "extocc.c" } else kc_no_default_in_with( "do_v_extendoccur", __LINE__, __FILE__ ); } #line 46 "../extocc.k" #line 888 "extocc.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITUnknown)) { #line 32 "../extocc.k" { #line 33 "../extocc.k" ID kc_selvar_1_1 = id ; #line 33 "../extocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 902 "extocc.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 34 "../extocc.k" /*EMPTY*/ #line 906 "extocc.c" } else kc_no_default_in_with( "do_v_extendoccur", __LINE__, __FILE__ ); } #line 35 "../extocc.k" #line 912 "extocc.c" } else kc_no_default_in_with( "do_v_extendoccur", __LINE__, __FILE__ ); } #line 170 "../extocc.k" #line 170 "../extocc.k" } #line 920 "extocc.c" kimwitu-4.6.1.orig/src/extocc.h0100644000176100001440000000155007076113232015702 0ustar debacleusers/* translation of file "../extocc.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #ifndef KC_FUNCTIONS_extocc_HEADER #define KC_FUNCTIONS_extocc_HEADER #define KIMW_FUNCTIONS_extocc_HEADER /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include "k.h" /* in case a user forgets */ /* included stuff */ #line 2 "../extocc.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 27 "extocc.h" /* end included stuff */ void v_extendoccur KC__P((ID id, IDtype it)); void v_extendoccur_nowarning KC__P((ID id, IDtype it)); #endif /* ! KC_FUNCTIONS_extocc_HEADER */ kimwitu-4.6.1.orig/src/extocc.k0100644000176100001440000002002507076113220015700 0ustar debacleusers%{ CODE HEADER /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ %} /* * extocc.k */ %{ #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char extocc_kAccesSid[] = "@(#)$Id: extocc.k,v 1.13 1997/03/05 15:36:49 belinfan Rel $"; #endif %} /***************************************************************************/ void v_extendoccur( id, it) ID id; IDtype it; { do_v_extendoccur( id, it, True); } void v_extendoccur_nowarning( id, it) ID id; IDtype it; { do_v_extendoccur( id, it, False); } static void do_v_extendoccur( id, it, warn) ID id; IDtype it; boolean warn; { id->type = it; with( it ) { ITUnknown(): { with( id ) { Id( * ): {/*EMPTY*/} } } ITPredefinedBigatomPhylum( * ), ITPredefinedPhylum( * ): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITPredefinedBigatomPhylum( * ), ITPredefinedPhylum( * ): {/*EMPTY*/} ITUserPhylum( * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of phylum:", id ))); } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as phylum:", id ))); } } } } } ITUserPhylum( * ): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITUserPhylum( * ): {/*EMPTY*/} ITPredefinedBigatomPhylum( * ), ITPredefinedPhylum( * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of predefined phylum:", id ))); } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as phylum:", id ))); } } } } } ITPredefinedOperator( *, * ): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITPredefinedOperator( *, * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of predefined operator:", id ))); } ITUserOperator( *, * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of operator:", id ))); } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as operator:", id ))); } } } } } ITUserOperator( *, * ): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITPredefinedOperator( *, * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of predefined operator:", id ))); } ITUserOperator( *, * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal redefinition of operator:", id ))); } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as operator:", id ))); } } } } } ITPredefinedStorageClass(): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITPredefinedStorageClass(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of predefined storage class:", id ))); } ITStorageClass(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of storage class:", id ))); } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as storage class:", id ))); } } } } } ITStorageClass(): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITPredefinedStorageClass(): { /*EMPTY*/ /********** v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of predefined storage class:", id ))); **********/ } ITStorageClass(): {/*EMPTY*/} /********** default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as storage class:", id ))); } **********/ } } } } ITUserFunction( * ): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITUserFunction( * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of function:", id ))); } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as function:", id ))); } } } } } ITPredefinedUView(): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITPredefinedUView(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of predefined unparse view:", id ))); } ITUserUView(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of unparse view:", id ))); } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as view:", id ))); } } } } } ITUserUView(): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITPredefinedUView(): { if (warn) v_report(Warning( FileLine( id->file, id->line ), Problem1S1ID( "superflous redeclaration of predefined unparse view:", id ))); } ITUserUView(): { if (warn) v_report(Warning( FileLine( id->file, id->line ), Problem1S1ID( "superflous redeclaration of unparse view:", id ))); } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as unparse view:", id ))); } } } } } ITPredefinedRView(): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITPredefinedRView(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of predefined rewrite view:", id ))); } ITUserRView(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "illegal extension of rewrite view:", id ))); } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as view:", id ))); } } } } } ITUserRView(): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITPredefinedRView(): { if (warn) v_report(Warning( FileLine( id->file, id->line ), Problem1S1ID( "superflous redeclaration of predefined rewrite view:", id ))); } ITUserRView(): { if (warn) v_report(Warning( FileLine( id->file, id->line ), Problem1S1ID( "superflous redeclaration of rewrite view:", id ))); } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as rewrite view:", id ))); } } } } } ITPatternVariable( t_id, t_scope ): { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { uid->type = it; uid->line = id->line; uid->file = id->file; } ITPatternVariable( id_id, id_scope ): { if (t_scope == id_scope) { if (! eq_ID( t_id, id_id )) { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID1S1ID1S1ID( "type mismatch in redefinition of pattern variable:", id, "old type", id_id, "new type", t_id ))); } } else { uid->scopeinfo = Consscopetypefilelinestack( ScopeTypeFileLine(t_scope, uid->type, uid->file, uid->line), uid->scopeinfo ); uid->type = it; uid->line = id->line; uid->file = id->file; } } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1t1S1ID( "illegal extension of", uid->type, "as pattern variable:", id ))); } } } } } } } kimwitu-4.6.1.orig/src/gen.c0100644000176100001440000000161507076113222015162 0ustar debacleusers/* translation of file "../gen.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #define KC_FUNCTIONS_gen #define KIMW_FUNCTIONS_gen /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include #ifdef KC_STDC # include #endif #include "k.h" /* included stuff */ #line 2 "../gen.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 29 "gen.c" #line 14 "../gen.k" #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char gen_kAccesSid[] = "@(#)$Id: gen.k,v 1.94 1998/03/18 17:52:27 belinfan Rel $"; #endif #line 35 "gen.c" /* end included stuff */ #include "gen.h" kimwitu-4.6.1.orig/src/gen.h0100644000176100001440000000135307076113232015167 0ustar debacleusers/* translation of file "../gen.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #ifndef KC_FUNCTIONS_gen_HEADER #define KC_FUNCTIONS_gen_HEADER #define KIMW_FUNCTIONS_gen_HEADER /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include "k.h" /* in case a user forgets */ /* included stuff */ #line 2 "../gen.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 27 "gen.h" /* end included stuff */ #endif /* ! KC_FUNCTIONS_gen_HEADER */ kimwitu-4.6.1.orig/src/gen.k0100644000176100001440000101554407076113220015177 0ustar debacleusers%{ CODE HEADER /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ %} /* * gen.k */ %{ #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char gen_kAccesSid[] = "@(#)$Id: gen.k,v 1.94 1998/03/18 17:52:27 belinfan Rel $"; #endif %} /****** TODO: Suppress the Saber RunTime under/overflow detection (if possible) in the hash code ******/ /***************************************************************************/ /* first of all: the declarations of the views that we use! */ %uview view_filename, view_error, view_error_tID, view_check, view_check_count, view_check_count1, view_check_outmostopers_in_phylum, view_set_type, view_check_is_var, view_gen_initializephyla_c, view_check_u, view_check_r, view_check_viewnames, view_init_stacks, view_check_uniq, view_check_uniq1, view_check_uniq2, view_make_patternreps, view_printer_outputfileline, view_printer_reset, view_no_of_printed_string_chars_reset, view_gen_k_h, view_gen_end_k_h, view_gen_k_c, view_gen_alloc_h, view_gen_alloc_c, view_gen_enumphyla_h, view_gen_enumoperators_h, view_gen_operatormap_type_h, view_gen_phylummap_c, view_gen_operatormap_c, view_count_args, view_gen_operatormap_operator_fn, view_gen_prodsel_fnarg_and_decls, view_gen_prodsel_fnargs, view_gen_prodsel_fnargdecls, view_gen_operatormap_subphyla, view_gen_operatormap_suboffsets, view_gen_uniqmap_c, view_gen_uniqmap_c_1, view_gen_uniqmap_c_2, view_gen_nodetypedefs_h, view_gen_nodetypes_h, view_gen_yaccstacktype_h, view_gen_noofoperators_h, view_gen_booleans_h, view_gen_initialization_h, view_gen_initialization_c, view_gen_assertmacros_h, view_gen_operatordecls_h, view_gen_operatordefs_c, view_gen_operatordefs_c_0, view_gen_operatordefs_c_1, view_gen_operatordefs_c_2, view_gen_operatordefs_c_2a, view_gen_operatordefs_c_3, view_gen_operatordefs_c_3a, view_gen_operatordefs_c_4, view_gen_operatordefs_c_4z, view_gen_operatordefs_c_4a, view_gen_initializephyla_assert_c, view_gen_initializephyla_whiletest_c, view_gen_initializephyla_init_el_c, view_gen_initializephyla_update_loop_c, view_gen_operatordefs_nonhash_c, view_gen_operatordefs_hash_c, view_gen_argseqnr, view_gen_fnargs, view_gen_fnargdecls, view_gen_fnarg_and_decls, view_gen_asserts, view_gen_assignments, view_gen_hash, view_gen_test, view_gen_error_decls_h, view_gen_error_defs_c, view_gen_freedecls_h, view_gen_freedefs_c, view_gen_eqdecls_h, view_gen_eqdefs_c, view_gen_eqdefs_bigatom_c, view_gen_eqdefs_bigatom_do_c, view_gen_printdecls_h, view_gen_printdefs_c, view_gen_printdefs_bigatom_c, view_gen_printdefs_bigatom_do_c, view_gen_printdotdecls_h, view_gen_printdotdefs_c, view_gen_printdotdecls_c, view_gen_printdotdefs_bigatom_c, view_gen_printdotdefs_bigatom_do_c, view_gen_printdotedges_c, view_gen_listdecls_h, view_gen_listdefs_c, view_gen_includes, view_do_gen_includes, view_gen_csgio_start_h, view_gen_csgio_end_h, view_gen_csgio_h, view_gen_csgio_start_c, view_gen_csgio_c, view_gen_csgio_c_read, view_gen_csgio_c_write, view_gen_csgio_bigatom_arguse_c, view_gen_csgio_bigatom_do_arguse_c, view_gen_csgio_scandef_c, view_gen_csgio_scandefs_c, view_gen_csgio_scandef_bigatom_c, view_gen_csgio_scandef_bigatom_do_c, view_gen_csgio_write2structuredefs_c, view_gen_csgio_write2structuredef_c, view_gen_csgio_write2structuredef_bigatom_c, view_gen_csgio_write2structuredef_bigatom_do_c, view_gen_csgio_writephylumdef_scan_c, view_gen_csgio_writephylumdef_write_c, view_gen_copy_attributes_c, view_gen_copy_attributes_c_doit, view_gen_copydecls_h, view_gen_copydefs_c, view_gen_copydefs_bigatom_argdefs_c, view_gen_copydefs_bigatom_argset_c, view_gen_copydefs_bigatom_arguse_c, view_gen_copydefs_bigatom_do_arguse_c, view_gen_rewritek_h, view_gen_end_rewritek_h, view_gen_rewritek_c, view_gen_rewritedecls_h, view_gen_rewritedefs_c, view_gen_rewritedefs_default_c, view_gen_rewritedefs_other_c, view_gen_rewritedefs_rewritearg_c, view_gen_rewritedefs_nl_arg_c, view_gen_rewritedefs_testarg_c, view_gen_rewritedefs_dotestarg_c, view_gen_rewritedefs_args_c, view_gen_withcases_and_default, view_rw_predicates, view_wc_predicates, view_unp_predicates, view_wc_bindings, view_unp_bindings, view_rw_bindings, view_gen_fnk_h, view_gen_fnkdecls_c, view_gen_fnk_c, view_gen_fnkarg_and_decls, view_gen_fn_pointer_name, view_gen_fnkargs, view_gen_fnkdecls, view_gen_fns_start_h, view_gen_fns_end_h, view_gen_fns_start_c, view_gen_fns_owninclude_c, view_gen_unpk_h, view_gen_unparsedecls_h, view_uview_def, view_gen_end_unpk_h, view_gen_unpk_c, view_gen_default_types_unpk_c, view_gen_unparsedefs_c, view_gen_unparsedefs_default_c, view_gen_unparsedefs_other_c, view_gen_unpstr_c ; /***************************************************************************/ PhylumDeclarations( * ) -> [view_printer_outputfileline: {/*EMPTY*/} ]; PhylumDeclarations( * ) -> [view_printer_reset: {/*EMPTY*/} ]; PhylumDeclarations( * ) -> [view_no_of_printed_string_chars_reset: {/*EMPTY*/} ]; /***************************************************************************/ Nilfnfiles() -> [: {/*EMPTY*/} ]; Consfnfiles( f, r_f ) -> [: r_f " \"" f "\" " ]; /***************************************************************************/ PhylumDeclarations( * ) -> [view_gen_k_h: "/* translation of file(s) " (fnfiles)Thefnfiles " */ /* generated by: * " (charptr)kimwitu_copyright " */ #ifndef KC_TYPES_HEADER #define KC_TYPES_HEADER #define KIMW_TYPES_HEADER /* backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include /* eg. for FILE* */ #include /* eg. for size_t */ typedef void *kc_voidptr_t; typedef void (*kc_voidfnptr_t)(); #ifdef KC_STDC typedef const void* kc_constvoidptr_t; #else typedef kc_voidptr_t kc_constvoidptr_t; #endif #ifndef KC_MALLOC_T # if defined(KC_STDC) && (!defined(sun) || defined(lint)) typedef kc_voidptr_t kc_malloc_t; # else typedef char *kc_malloc_t; # endif #else typedef KC_MALLOC_T kc_malloc_t; #endif #ifndef KC_REALLOC_ARG_T # if defined(sun) && defined(KC_STDC) typedef kc_voidptr_t kc_realloc_arg_t; # else typedef kc_malloc_t kc_realloc_arg_t; # endif #else typedef KC_REALLOC_ARG_T kc_realloc_arg_t; #endif #ifndef KC_SIZE_T # ifdef KC_STDC typedef size_t kc_size_t; # else typedef unsigned kc_size_t; # endif #else typedef KC_SIZE_T kc_size_t; #endif #ifndef KC__P # ifdef KC_STDC # define KC__P(kc_p) kc_p # ifndef KC__C # define KC__C(kc_c) kc_c # endif # else # define KC__P(kc_p) () # endif #endif #ifndef KC__C # define KC__C(kc_c) #endif #ifdef KC_STDC # ifndef KC_USE_PROTOTYPES # define KC_USE_PROTOTYPES # endif #else # undef KC_USE_PROTOTYPES # ifndef KC_KEEP_TYPE_QUALIFIERS # define const # define volatile # endif #endif #ifndef KC_DOTDOTDOT # ifdef KC_OLD_DOTDOTDOT # define KC_DOTDOTDOT ... # else # define KC_DOTDOTDOT kc_enum_operators,... # endif #endif #ifndef KC_PRINTDOT_LABELSIZE # define KC_PRINTDOT_LABELSIZE 1023 #endif " ]; PhylumDeclarations( * ) -> [view_gen_end_k_h: " #endif /* KC_TYPES_HEADER */ " ]; /***************************************************************************/ PhylumDeclarations( * ) -> [view_gen_k_c: "/*LINTLIBRARY*/ /* translation of file(s) " (fnfiles)Thefnfiles " */ /* generated by: * " (charptr)kimwitu_copyright " */ #define KC_TYPES #define KIMW_TYPES /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include #include #include #if ((! defined(KC_STDC) ) && defined(sun)) extern char *sprintf(); #endif #include #ifdef KC_STDC # include #else # include /*for memset*/ #endif typedef size_t kc_memset_size_t; /* needed for sun */ #include \"k.h\" #ifndef KC_STDC extern void exit KC__P((int)); #endif #if ((! defined(KC_STDC) ) && defined(sun)) /* kc_memset_firstarg_t should be void* kc_voidptr_t, but sun's include files are dumb */ # ifndef KC_MEMSET_FIRSTARG_T typedef char *kc_memset_firstarg_t; # else typedef KC_MEMSET_FIRSTARG_T kc_memset_firstarg_t; # endif #else typedef kc_voidptr_t kc_memset_firstarg_t; #endif " ]; /***************************************************************************/ PhylumDeclarations( * ) -> [view_gen_alloc_h: "kc_voidfnptr_t kc_set_out_of_storage_handler KC__P(( kc_voidfnptr_t )); kc_voidptr_t emalloc KC__P(( kc_size_t )), ecalloc KC__P(( kc_size_t, kc_size_t )), erealloc KC__P(( kc_voidptr_t, kc_size_t )); kc_voidptr_t uniqmalloc KC__P(( kc_size_t, kc_voidptr_t )); void uniqfreeelement KC__P(( kc_voidptr_t, kc_voidptr_t )); void uniqfreeall KC__P(( kc_voidptr_t )); void kc_print_memory_info_statistics KC__P(( FILE*, kc_voidptr_t )); #ifndef KC_STDC kc_malloc_t malloc KC__P(( kc_size_t )), calloc KC__P(( kc_size_t, kc_size_t )), realloc KC__P(( kc_realloc_arg_t, kc_size_t )); #endif void kc_bzero KC__P(( char*, int )); " ]; /***************************************************************************/ PhylumDeclarations( * ) -> [view_gen_alloc_c: "static kc_voidfnptr_t kc_out_of_storage_handler = 0; kc_voidfnptr_t kc_set_out_of_storage_handler #ifdef KC_USE_PROTOTYPES ( kc_voidfnptr_t kc_handler ) #else (kc_handler) kc_voidfnptr_t kc_handler; #endif { kc_voidfnptr_t kc_tmp_handler = kc_out_of_storage_handler; kc_out_of_storage_handler = kc_handler; return kc_tmp_handler; } kc_voidptr_t emalloc /* check return from malloc */ #ifdef KC_USE_PROTOTYPES (kc_size_t kc_n) #else (kc_n) kc_size_t kc_n; #endif { kc_voidptr_t kc_p; while ((kc_p = (kc_voidptr_t)malloc((kc_size_t)kc_n)) == 0) { if (kc_out_of_storage_handler) { (*kc_out_of_storage_handler)(); } else { (void)fflush(stdout); (void)fprintf(stderr,\"out of memory in emalloc\\n\"); exit( 1 ); /*NOTREACHED*/ } } return kc_p; } kc_voidptr_t ecalloc /* check return from calloc */ #ifdef KC_USE_PROTOTYPES (kc_size_t kc_n, kc_size_t kc_s) #else (kc_n,kc_s) kc_size_t kc_n, kc_s; #endif { kc_voidptr_t kc_p; while ((kc_p = (kc_voidptr_t)calloc((kc_size_t)kc_n,(kc_size_t)kc_s)) == 0) { if (kc_out_of_storage_handler) { (*kc_out_of_storage_handler)(); } else { (void)fflush(stdout); (void)fprintf(stderr,\"out of memory in ecalloc\\n\"); exit( 1 ); /*NOTREACHED*/ } } return kc_p; } kc_voidptr_t erealloc /* check return from realloc */ #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_r, kc_size_t kc_s) #else (kc_r,kc_s) kc_voidptr_t kc_r; kc_size_t kc_s; #endif { kc_voidptr_t kc_p; while ((kc_p = (kc_voidptr_t)realloc((kc_realloc_arg_t)kc_r,(kc_size_t)kc_s)) == 0) { if (kc_out_of_storage_handler) { (*kc_out_of_storage_handler)(); } else { (void)fflush(stdout); (void)fprintf(stderr,\"out of memory in erealloc\\n\"); exit( 1 ); /*NOTREACHED*/ } } return kc_p; } void kc_bzero #ifdef KC_USE_PROTOTYPES (register char *kc_p, register int kc_s) #else (kc_p,kc_s) register char *kc_p; register int kc_s; #endif { while (kc_s--) { *kc_p++ = '\\0'; } } " ]; /***************************************************************************/ PhylumDeclarations( pds ) -> [view_gen_enumphyla_h: { g_no_of_phyla = PHYLUMNUMBEROFFSET; } "typedef enum { kc_one_before_first_phylum = " (int)g_no_of_phyla " , " { g_no_of_phyla++; } pds " kc_last_phylum = " (int)g_no_of_phyla " } kc_enum_phyla; " ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_enumphyla_h: rpds pd ]; Nilphylumdeclarations() -> [view_gen_enumphyla_h: {/*EMPTY*/} ]; PhylumDeclaration( id, *, *, * ) -> [view_gen_enumphyla_h: " kc_phylum_" id " = " (int)g_no_of_phyla ", " { g_no_of_phyla++; } ]; /***************************************************************************/ PhylumDeclarations( pds ) -> [view_gen_enumoperators_h: { g_no_of_operators = OPERATORNUMBEROFFSET; } "typedef enum { kc_one_before_first_operator = " (int)g_no_of_operators " , " { g_no_of_operators++; } pds " kc_last_operator = " (int)g_no_of_operators " } kc_enum_operators; " ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_enumoperators_h: rpds pd ]; Nilphylumdeclarations() -> [view_gen_enumoperators_h: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_enumoperators_h: {/*EMPTY*/} ]; PhylumDeclaration( *, *, ListAlternatives( a, * ), * ), PhylumDeclaration( *, *, NonlistAlternatives( a ), * ), PhylumDeclaration( *, *, PredefinedAlternatives( a ), * ) -> [view_gen_enumoperators_h: a ]; Consalternatives( a, as ) -> [view_gen_enumoperators_h: as a ]; Consalternatives( a, Nilalternatives()) -> [view_gen_enumoperators_h: a ]; Alternative( id, * ) -> [view_gen_enumoperators_h: " sel_" id " = " (int)g_no_of_operators ", " { g_no_of_operators++; } ]; /***************************************************************************/ PhylumDeclarations( * ) -> [view_gen_operatormap_type_h: "typedef kc_enum_phyla *kc_enum_phyla_list; typedef kc_size_t *kc_size_t_list; /* size_t is defined in ANSI C */ /* * 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) */ typedef enum { /*kc_not_uniq = 0, kc_uniq_nullary_operator,*/ " (storageclasses)Thestorageclasses ", kc_last_storageclass } kc_storageclass_t; typedef struct { char *name; /* name of the phylum */ kc_size_t size; /* size of the struct phylum record */ kc_enum_operators first_operator; /* index in kc_OperatorInfo[] */ kc_enum_operators last_operator; /* index in kc_OperatorInfo[] */ kc_storageclass_t uniq_stored; /* storage class */ void (*copy_attributes) KC__P((kc_voidptr_t, kc_voidptr_t)); /* routine that copies attributes */ } KC_PHYLUM_INFO; typedef struct { char *name; /* name of the operator */ int no_sons; /* number of sons */ int atomicity; /* atomic type or not (used as a boolean) */ kc_enum_phyla phylum; /* index in kc_PhylumInfo[] */ kc_enum_phyla_list subphylum; /* indexes in kc_PhylumInfo[] */ kc_size_t_list suboffset; /* offsets of sub-phyla (pointers) in the phylum record */ kc_storageclass_t uniq_stored; /* storage class */ kc_voidptr_t (*create_routine) KC__P((KC_DOTDOTDOT)); /* create routine */ } KC_OPERATOR_INFO; typedef kc_enum_phyla_list KC_UNIQ_INFO; extern KC_OPERATOR_INFO kc_OperatorInfo[]; extern KC_PHYLUM_INFO kc_PhylumInfo[]; extern KC_UNIQ_INFO kc_UniqInfo[]; #ifndef KC_SUBPHYLUM # ifdef lint # define KC_SUBPHYLUM(kc_phylum, kc_offset) (kc_phylum,kc_offset,0) # else # define KC_SUBPHYLUM(kc_phylum, kc_offset) (*((char**)(((char*)kc_phylum)+(kc_offset)))) # endif #endif " ]; Nilstorageclasses() -> [view_gen_operatormap_type_h: {/*EMPTY*/} ]; Consstorageclasses( sc, Nilstorageclasses()) -> [view_gen_operatormap_type_h: sc ]; Consstorageclasses( sc, r_sc) -> [view_gen_operatormap_type_h: r_sc ", " sc ]; /***************************************************************************/ PhylumDeclarations( d ) -> [view_gen_phylummap_c: "KC_PHYLUM_INFO kc_PhylumInfo[] = { " ${ { int i = PHYLUMNUMBEROFFSET; do } ${ { /*PHYLUMNUMBEROFFSET + 1 times*/ } " { \"\", 0, kc_one_before_first_operator, kc_one_before_first_operator, (kc_storageclass_t)0, 0 }, /* dummy element */ " { i--; } $} { while (i >= 0); } $} d " { \"\", 0, kc_one_before_first_operator, kc_one_before_first_operator, (kc_storageclass_t)0, 0 } /* last element */ }; " ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_phylummap_c: rpds pd ]; Nilphylumdeclarations() -> [view_gen_phylummap_c: {/*EMPTY*/} ]; PhylumDeclaration( id, st_opt, pb, cco ) -> [view_gen_phylummap_c: { gl_phylum = id; } /* for int we need another sizof, below */ { if ((strcmp( f_strofID( id ), "int" ) == 0) || (strcmp( f_strofID( id ), "float" ) == 0) || (strcmp( f_strofID( id ), "voidptr" ) == 0)) } ${ " { \"" id "\", sizeof(" id "), " pb ", " st_opt ", " cco " }, " $} { else } ${ " { \"" id "\", sizeof(struct kc_tag_" id "), " pb ", " st_opt ", " cco " }, " $} { gl_phylum = 0; } ]; NoStorageOption() -> [view_gen_phylummap_c: "kc_not_uniq" ]; NegativeStorageOption( * ) -> [view_gen_phylummap_c: "kc_not_uniq" ]; PositiveStorageOption( sc ) -> [view_gen_phylummap_c: sc ]; Emptyproductionblock() -> [view_gen_phylummap_c: {/*EMPTY*/} ]; ListAlternatives( Consalternatives( Alternative( oid, * ), Nilalternatives() ), * ), NonlistAlternatives( Consalternatives( Alternative( oid, * ), Nilalternatives() ) ), PredefinedAlternatives( Consalternatives( Alternative( oid, * ), Nilalternatives() ) ) /* HACK: should we do something special for predefined phyla? */ -> [view_gen_phylummap_c: "sel_" oid ", sel_" oid ]; ListAlternatives( Consalternatives( Alternative( oid, * ), ra ), * ), NonlistAlternatives( Consalternatives( Alternative( oid, * ), ra ) ), PredefinedAlternatives( Consalternatives( Alternative( oid, * ), ra ) ) -> [view_gen_phylummap_c: "sel_" ra ", sel_" oid ]; Nilalternatives() -> [view_gen_phylummap_c: {/*EMPTY*/} ]; Consalternatives( Alternative( oid, * ), Nilalternatives() ) -> [view_gen_phylummap_c: oid ]; Consalternatives( *, ra ) -> [view_gen_phylummap_c: ra ]; CcodeOption( a, * ) -> [view_gen_phylummap_c: a ]; Nilattributes() -> [view_gen_phylummap_c: "0" ]; Consattributes( *, * ) -> [view_gen_phylummap_c: "KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_" (ID)gl_phylum ]; /***************************************************************************/ PhylumDeclarations( d ) -> [view_gen_operatormap_c: d:view_gen_operatormap_operator_fn " " d:view_gen_operatormap_subphyla " #ifndef KC_OFFSETOF # define KC_OFFSETOF(kc_record, kc_operator, kc_subphylum) ((kc_size_t) \\ ((char*)(&((kc_record *)0)->u.kc_operator.kc_subphylum) - (char*)((kc_record *)0))) #endif " d:view_gen_operatormap_suboffsets " KC_OPERATOR_INFO kc_OperatorInfo[] = { " ${ { int i = OPERATORNUMBEROFFSET; do } ${ { /*OPERATORNUMBEROFFSET + 1 times*/ } " { \"\", 0, 0, kc_one_before_first_phylum, (kc_enum_phyla_list)0, (kc_size_t_list)0, (kc_storageclass_t)0, 0 }, /* dummy element */ " { i--; } $} { while (i >= 0); } $} d " { (char*)0, 0, 0, kc_one_before_first_phylum, (kc_enum_phyla_list)0, (kc_size_t_list)0, (kc_storageclass_t)0, 0 } /* last element */ }; " ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_operatormap_c: rpds pd ]; Nilphylumdeclarations() -> [view_gen_operatormap_c: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_operatormap_c: {/*EMPTY*/} ]; PhylumDeclaration( id, st_opt, ListAlternatives( a, * ), cco ), PhylumDeclaration( id, st_opt, NonlistAlternatives( a ), cco ) -> [view_gen_operatormap_c: { gl_phylum = id; gl_storageoption = st_opt; gl_atomicity = 0; gl_no_attributes = f_no_attrs_in_Ccode_option( cco ); } a { gl_phylum = 0; gl_storageoption = 0; gl_no_attributes = False; } ]; PhylumDeclaration( id, st_opt, PredefinedAlternatives( a ), cco ) -> [view_gen_operatormap_c: { gl_phylum = id; gl_storageoption = st_opt; gl_atomicity = 1; gl_no_attributes = f_no_attrs_in_Ccode_option( cco ); } a { gl_phylum = 0; gl_storageoption = 0; gl_no_attributes = False; } ]; Nilalternatives() -> [view_gen_operatormap_c: {/*EMPTY*/} ]; Consalternatives( Alternative( oid, args ), ra ) -> [view_gen_operatormap_c: ra args:view_count_args " { \"" oid "\", " (int)gl_no_of_args ", " (int)gl_atomicity ", kc_phylum_" (ID)gl_phylum ", " { if (gl_no_of_args) } ${ "kc_subphyla_" oid ", kc_suboffsets_" oid ", " (storageoption)gl_storageoption:view_gen_phylummap_c $} { else } ${ "(kc_enum_phyla_list)0, (kc_size_t_list)0, " { if ((int) gl_no_attributes) } ${ "kc_uniq_nullary_operator" $} { else } ${ (storageoption)gl_storageoption $} $} ", " { if (gl_atomicity) } ${ "0" $} { else } ${ "(kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_" oid $} " }, " ]; NoStorageOption() -> [view_gen_operatormap_c: "kc_not_uniq" ]; NegativeStorageOption( * ) -> [view_gen_operatormap_c: "kc_not_uniq" ]; PositiveStorageOption( * ) -> [view_gen_operatormap_c: "kc_uniq_nullary_operator" ]; /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ Nilarguments() -> [view_count_args: { gl_no_of_args = 0; } ]; Consarguments( *, ra ) -> [view_count_args: ra { gl_no_of_args++; } ]; /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ Consphylumdeclarations( pd, rpds ) -> [view_gen_operatormap_operator_fn: rpds pd ]; Nilphylumdeclarations() -> [view_gen_operatormap_operator_fn: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_operatormap_operator_fn: {/*EMPTY*/} ]; PhylumDeclaration( *, *, PredefinedAlternatives( * ), * ) -> [view_gen_operatormap_operator_fn: {/*EMPTY*/} ]; PhylumDeclaration( id, *, ListAlternatives( a, * ), * ), PhylumDeclaration( id, *, NonlistAlternatives( a ), * ) -> [view_gen_operatormap_operator_fn: { gl_phylum = id; } a { gl_phylum = (ID) 0; } ]; Nilalternatives() -> [view_gen_operatormap_operator_fn: {/*EMPTY*/} ]; Consalternatives( Alternative( oid, args ), ra ) -> [view_gen_operatormap_operator_fn: ra "static " (ID)gl_phylum " kc_opfn_" oid " #ifdef KC_USE_PROTOTYPES (" args:view_gen_prodsel_fnarg_and_decls ") #else (" args:view_gen_prodsel_fnargs ")" args:view_gen_prodsel_fnargdecls " #endif { return " oid "(" args:view_gen_fnargs "); } " ]; Nilarguments() -> [view_gen_prodsel_fnarg_and_decls: "kc_enum_operators kc_prod_sel" ]; Consarguments( *, * ) -> [view_gen_prodsel_fnarg_and_decls: "kc_enum_operators kc_prod_sel, " $0:view_gen_fnarg_and_decls ]; Nilarguments() -> [view_gen_prodsel_fnargs: "kc_prod_sel" ]; Consarguments( *, * ) -> [view_gen_prodsel_fnargs: "kc_prod_sel, " $0:view_gen_fnargs ]; Nilarguments() -> [view_gen_prodsel_fnargdecls: "kc_enum_operators kc_prod_sel;" ]; Consarguments( *, * ) -> [view_gen_prodsel_fnargdecls: "kc_enum_operators kc_prod_sel; " $0:view_gen_fnargdecls ]; /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ Consphylumdeclarations( pd, rpds ) -> [view_gen_operatormap_subphyla: rpds pd ]; Nilphylumdeclarations() -> [view_gen_operatormap_subphyla: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_operatormap_subphyla: {/*EMPTY*/} ]; PhylumDeclaration( *, *, ListAlternatives( a, * ), * ), PhylumDeclaration( *, *, NonlistAlternatives( a ), * ), PhylumDeclaration( *, *, PredefinedAlternatives( a ), * ) -> [view_gen_operatormap_subphyla: a ]; Nilalternatives() -> [view_gen_operatormap_subphyla: {/*EMPTY*/} ]; Consalternatives( Alternative( oid, args ), ra ) -> [view_gen_operatormap_subphyla: ra args:view_count_args { if (gl_no_of_args) } ${ "static kc_enum_phyla kc_subphyla_" oid "[] = { " args " }; " $} ]; Nilarguments() -> [view_gen_operatormap_subphyla: {/*EMPTY*/} ]; Consarguments( a, ra ) -> [view_gen_operatormap_subphyla: ra ", " "kc_phylum_" a ]; Consarguments( a, Nilarguments() ) -> [view_gen_operatormap_subphyla: "kc_phylum_" a ]; /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ Consphylumdeclarations( pd, rpds ) -> [view_gen_operatormap_suboffsets: rpds pd ]; Nilphylumdeclarations() -> [view_gen_operatormap_suboffsets: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_operatormap_suboffsets: {/*EMPTY*/} ]; PhylumDeclaration( id, *, ListAlternatives( a, * ), * ), PhylumDeclaration( id, *, NonlistAlternatives( a ), * ), PhylumDeclaration( id, *, PredefinedAlternatives( a ), * ) -> [view_gen_operatormap_suboffsets: { gl_phylum = id; } a { gl_phylum = 0; } ]; Nilalternatives() -> [view_gen_operatormap_suboffsets: {/*EMPTY*/} ]; Consalternatives( Alternative( oid, args ), ra ) -> [view_gen_operatormap_suboffsets: ra { gl_operator = oid; } args:view_count_args { if (gl_no_of_args) } ${ "static kc_size_t kc_suboffsets_" oid "[] = { " args " }; " $} { gl_operator = 0; } ]; Nilarguments() -> [view_gen_operatormap_suboffsets: {/*EMPTY*/} ]; Consarguments( *, ra ) -> [view_gen_operatormap_suboffsets: ra ", " "KC_OFFSETOF( struct kc_tag_" (ID)gl_phylum ", " (ID)gl_operator ", " $0:view_gen_argseqnr " )" ]; Consarguments( *, Nilarguments() ) -> [view_gen_operatormap_suboffsets: "KC_OFFSETOF( struct kc_tag_" (ID)gl_phylum ", " (ID)gl_operator ", " $0:view_gen_argseqnr " )" ]; /***************************************************************************/ Nilstorageclasses() -> [view_gen_uniqmap_c: {/*EMPTY*/} ]; Consstorageclasses( *, * ) -> [view_gen_uniqmap_c: $0:view_gen_uniqmap_c_1 " KC_UNIQ_INFO kc_UniqInfo[] = { " $0:view_gen_uniqmap_c_2 " }; " ]; Nilstorageclasses() -> [view_gen_uniqmap_c_1: {/*EMPTY*/} ]; Consstorageclasses( sc, r_sc ) -> [view_gen_uniqmap_c_1: r_sc { if (length_phylumnames($0->phyla) > 0) } ${ "static kc_enum_phyla kc_phylumstorageclass_" sc "[] = { kc_one_before_first_phylum, " $0->phyla "kc_last_phylum }; " $} ]; Nilphylumnames() -> [view_gen_uniqmap_c_1: {/*EMPTY*/} ]; Consphylumnames( pn, r_pn ) -> [view_gen_uniqmap_c_1: r_pn "kc_phylum_" pn ", " ]; Nilstorageclasses() -> [view_gen_uniqmap_c_2: {/*EMPTY*/} ]; Consstorageclasses( sc, Nilstorageclasses() ) -> [view_gen_uniqmap_c_2: { if (length_phylumnames($0->phyla) > 0) } ${ " kc_phylumstorageclass_" sc $} { else } ${ " (KC_UNIQ_INFO)0" $} ]; Consstorageclasses( sc, r_sc ) -> [view_gen_uniqmap_c_2: r_sc { if (length_phylumnames($0->phyla) > 0) } ${ ", kc_phylumstorageclass_" sc $} { else } ${ ", (KC_UNIQ_INFO)0" $} ]; /***************************************************************************/ PhylumDeclarations( d ) -> [view_gen_nodetypedefs_h: "typedef union kc_tag_YYSTYPE YYSTYPE; typedef struct kc_tag_kc_hashnode_t *kc_hashnode_t; typedef struct kc_tag_kc_dotedgenode_t *kc_dotedgenode_t; " d " " ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_nodetypedefs_h: rpds pd ]; Nilphylumdeclarations() -> [view_gen_nodetypedefs_h: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_nodetypedefs_h: {/*EMPTY*/} ]; PhylumDeclaration( id, *, ListAlternatives( *, * ), * ), PhylumDeclaration( id, *, NonlistAlternatives( * ), * ) -> [view_gen_nodetypedefs_h: "typedef struct kc_tag_" id " *" id "; " ]; PhylumDeclaration( id, *, PredefinedAlternatives( * ), * ) -> [view_gen_nodetypedefs_h: { if ((strcmp( f_strofID( id ), "int" ) == 0) || (strcmp( f_strofID( id ), "float" ) == 0)) } ${ { /*EMPTY*/ } $} { else if (strcmp( f_strofID( id ), "voidptr" ) == 0) } ${ "typedef kc_voidptr_t " id "; " $} { else /* [no]casestring*/ } ${ "typedef struct kc_tag_" id " *" id "; " $} ]; /***************************************************************************/ PhylumDeclarations( d ) -> [view_gen_nodetypes_h: "struct kc_tag_kc_hashnode_t { kc_enum_operators prod_sel; YYSTYPE ptr; int number; boolean created; }; struct kc_tag_kc_dotedgenode_t { kc_enum_operators prod_sel; kc_enum_phyla phy_from; YYSTYPE ptr_from; kc_enum_phyla phy_to; YYSTYPE ptr_to; int son_nr; char *label; int lsize; kc_dotedgenode_t next; }; " d ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_nodetypes_h: rpds pd ]; Nilphylumdeclarations() -> [view_gen_nodetypes_h: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_nodetypes_h: {/*EMPTY*/} ]; PhylumDeclaration( id, *, ListAlternatives( a, * ), cco ), PhylumDeclaration( id, *, NonlistAlternatives( a ), cco ) -> [view_gen_nodetypes_h: "struct kc_tag_" id " { kc_enum_operators prod_sel; " { if (! f_all_alternatives_nullary( a )) } ${ " union { " a " } u; " $} cco "}; " ]; PhylumDeclaration( id, *, PredefinedAlternatives( * ), * ) -> [view_gen_nodetypes_h: { if ((strcmp( f_strofID( id ), "int" ) == 0) || (strcmp( f_strofID( id ), "float" ) == 0) || (strcmp( f_strofID( id ), "voidptr" ) == 0)) } ${ { /*EMPTY*/ } $} { else /* [no]casestring*/ } ${ "struct kc_tag_" id " { kc_enum_operators prod_sel; char *name; }; " $} ]; Nilalternatives() -> [view_gen_nodetypes_h: {/*EMPTY*/} ]; Consalternatives( Alternative( *, Nilarguments() ), ra ) -> [view_gen_nodetypes_h: ra ]; Consalternatives( Alternative( oid, args ), ra ) -> [view_gen_nodetypes_h: ra " struct { " args " } " oid "; " ]; Consarguments( a, rargs ) -> [view_gen_nodetypes_h: rargs " " a " " a "_" $0->seqnr "; " ]; CcodeOption( a, * ) -> [view_gen_nodetypes_h: a ]; Nilattributes() -> [view_gen_nodetypes_h: {/*EMPTY*/} ]; Consattributes( Attribute( t, id, * ), ra ) -> [view_gen_nodetypes_h: ra " " t " " id "; " ]; /***************************************************************************/ PhylumDeclarations( d ) -> [view_gen_yaccstacktype_h: "union kc_tag_YYSTYPE { kc_hashnode_t yt_kc_hashnode_t; kc_dotedgenode_t yt_kc_dotedgenode_t; " d "}; extern YYSTYPE yylval; " ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_yaccstacktype_h: rpds pd ]; Nilphylumdeclarations() -> [view_gen_yaccstacktype_h: {/*EMPTY*/} ]; PhylumDeclaration( id, *, *, * ) -> [view_gen_yaccstacktype_h: " " id " yt_" id "; " ]; /***************************************************************************/ PhylumDeclarations( * ) -> [view_gen_noofoperators_h: "#define KC_NO_OF_OPERATORS " (int) g_no_of_operators " " ]; /***************************************************************************/ PhylumDeclarations( * ) -> [view_gen_booleans_h: "typedef enum { KC_False=0, KC_True=1 } kc_tp_boolean; #if ! (defined(True) || defined(False)) # define True KC_True # define False KC_False # define boolean kc_tp_boolean #else # if ! defined(boolean) # define boolean int # endif #endif " ]; /***************************************************************************/ PhylumDeclarations( * ) -> [view_gen_initialization_h: "#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 KC__P((char*, int, char*)); void kc_returnless_function KC__P((char *, int, char*)); #ifndef KC_SEPARATE_HASH_LEVELS # define KC_IS_HT_STORE_STATIC =kc_ht_store_static #else # define KC_IS_HT_STORE_STATIC #endif /* * small tricks to shut up lint */ #if (defined(lint) || defined(SABER) || defined(CODECENTER)) # define KC_LINTUSE(x) if(x)x=x #else # define KC_LINTUSE(x) #endif /* * the following trick is because for Saber (CenterLine) we have * the possibillity to load a file either as .c or as .o, * so we can not have a maybe nonexisting variable as in the * lint variant. * we may want to SUPPRESS a Saber warning about unused variable. */ #if defined(lint) extern int kc_zero_constant; #else # if (defined(SABER) || defined(CODECENTER)) static int kc_zero_constant = 0; # else # define kc_zero_constant 0 # endif #endif #ifndef NDEBUG # define assert(t) do {if (!(t)) kc_assertionFailed(__FILE__,__LINE__);}while(kc_zero_constant) # define _assert(t) do {if (!(t)) kc_assertionFailed(__FILE__,__LINE__);}while(kc_zero_constant) # define assertReason(t,s) do {if (!(t)) kc_assertionReasonFailed(__FILE__,__LINE__,s);}while(kc_zero_constant) # define assertNonNull(ptr,str) do {if (ptr == NULL) kc_assertionNonNullFailed(str,__FILE__,__LINE__);}while(kc_zero_constant) # define assertOperatorInPhylumFn(op,str1,str2,phy,fn) do {if ((op<(int)kc_PhylumInfo[(int)phy].first_operator)||(op>(int)kc_PhylumInfo[(int)phy].last_operator)) fn(op,str1,str2,(int)phy,__FILE__,__LINE__);}while(kc_zero_constant) # define assertOperatorInPhylum(op,str1,str2,phy) assertOperatorInPhylumFn(op,str1,str2,phy,kc_assertionOperatorInPhylumFailed) # define assertPhylum(ptr,ptrstr,phy) do{if((phy!=kc_phylum_int)&&(phy!=kc_phylum_float)&&(phy!=kc_phylum_voidptr)){assertNonNull(ptr,ptrstr);assertOperatorInPhylum((int)(ptr->prod_sel),ptrstr,\"->prod_sel\",phy);}}while(kc_zero_constant) # define assertNonIntPhylum(ptr,ptrstr,phy) do{assertNonNull(ptr,ptrstr);assertOperatorInPhylum((int)(ptr->prod_sel),ptrstr,\"->prod_sel\",phy);}while(kc_zero_constant) #else # define assert(t) # define _assert(t) # define assertReason(t,s) # define assertNonNull(ptr,str) # define assertOperatorInPhylumFn(op,str1,str2,phy,fn) # define assertOperatorInPhylum(op,str1,str2,phy) # define assertPhylum(ptr,ptrstr,phy) # define assertNonIntPhylum(ptr,ptrstr,phy) #endif void kc_assertionFailed KC__P((char*, int)); void kc_assertionReasonFailed KC__P((char*, int, char*)); void kc_assertionNonNullFailed KC__P((char*, char*, int)); void kc_assertionOperatorInPhylumFailed KC__P((int, char*, char*, int, char*, int)); /* void kc_invalid_operator KC__P((char*, kc_enum_phyla, int, char*, int)); */ " ]; /***************************************************************************/ PhylumDeclarations( * ) -> [view_gen_initialization_c: "#if defined(lint) int kc_zero_constant = 0; #endif void kc_no_default_in_with #ifdef KC_USE_PROTOTYPES ( char *kc_func, int kc_line, char *kc_file ) #else ( kc_func, kc_line, kc_file ) char *kc_func; int kc_line; char *kc_file; #endif { (void)fflush(stdout); (void)fprintf( stderr, KC_NO_DEFAULT_IN_WITH, kc_func, kc_file, kc_line ); #ifndef KC_NODEFAULT_NO_ABORT abort(); #else exit( 1 ); #endif } void kc_returnless_function #ifdef KC_USE_PROTOTYPES ( char *kc_func, int kc_line, char *kc_file ) #else ( kc_func, kc_line, kc_file ) char *kc_func; int kc_line; char *kc_file; #endif { (void)fflush(stdout); (void)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 } void kc_assertionFailed #ifdef KC_USE_PROTOTYPES (char *kc_fn, int kc_l) #else (kc_fn, kc_l) char *kc_fn; int kc_l; #endif { (void)fflush(stdout); (void)fprintf( stderr, \"Internal Error: Assertion failed at %s:%d\\n\", kc_fn, kc_l ); #ifndef KC_ASSERT_NO_ABORT abort(); #else exit( 1 ); #endif } void kc_assertionReasonFailed #ifdef KC_USE_PROTOTYPES (char *kc_fn, int kc_l, char *kc_s) #else (kc_fn, kc_l, kc_s) char *kc_fn; int kc_l; char *kc_s; #endif { (void)fflush(stdout); (void)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 } void kc_assertionNonNullFailed #ifdef KC_USE_PROTOTYPES (char *kc_str, char *kc_fn, int kc_l) #else (kc_str, kc_fn, kc_l) char *kc_str; char *kc_fn; int kc_l; #endif { (void)fflush(stdout); (void)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 } void kc_assertionOperatorInPhylumFailed #ifdef KC_USE_PROTOTYPES (int kc_op, char *kc_str1, char *kc_str2, int kc_phy, char *kc_fn, int kc_l) #else (kc_op, kc_str1, kc_str2, kc_phy, kc_fn, kc_l) int kc_op; char *kc_str1; char *kc_str2; int kc_phy; char *kc_fn; int kc_l; #endif { (void)fflush(stdout); if ((kc_op <= (int)kc_one_before_first_operator) || (kc_op >= (int)kc_last_operator)) { (void)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_PhylumInfo[(int)kc_phy].name, kc_str1, kc_str2, kc_op ); } else { (void)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_PhylumInfo[(int)kc_phy].name, kc_str1, kc_str2, kc_OperatorInfo[kc_op].name, kc_op, kc_PhylumInfo[(int)kc_OperatorInfo[kc_op].phylum].name ); } #ifndef KC_ASSERT_NO_ABORT abort(); #else exit( 1 ); #endif } static void kc_invalid_operator #ifdef KC_USE_PROTOTYPES ( char *kc_func_prefix, kc_enum_phyla kc_phy, int kc_line, char *kc_file, int kc_oper ) #else ( kc_func_prefix, kc_phy, kc_line, kc_file, kc_oper ) char *kc_func_prefix; kc_enum_phyla kc_phy; int kc_line; char *kc_file; int kc_oper; #endif { (void)fflush(stdout); (void)fprintf( stderr, \"Internal Error: invalid operator code in %s%s at %s:%d: %s\\n\", kc_func_prefix, kc_phylumname_or_error( (int)kc_phy ), kc_file, kc_line, kc_operatorname_or_error( kc_oper )); #ifndef KC_INVALID_OPERATOR_NO_ABORT abort(); #else exit( 1 ); #endif } " ]; /***************************************************************************/ PhylumDeclarations( d ) -> [view_gen_assertmacros_h: d ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_assertmacros_h: rpds pd ]; Nilphylumdeclarations() -> [view_gen_assertmacros_h: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_assertmacros_h: {/*EMPTY*/} ]; PhylumDeclaration( id, *, ListAlternatives( *, * ), * ), PhylumDeclaration( id, *, NonlistAlternatives( * ), * ) -> [view_gen_assertmacros_h: "#define assert_" id "(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_" id ") " ]; PhylumDeclaration( id, *, PredefinedAlternatives( * ), * ) -> [view_gen_assertmacros_h: { if ((strcmp( f_strofID( id ), "int" ) == 0) || (strcmp( f_strofID( id ), "float" ) == 0) || (strcmp( f_strofID( id ), "voidptr" ) == 0)) } ${ "#define assert_" id "(p,pstr) " $} { else } ${ "#define assert_" id "(c, cstr) assertNonIntPhylum(c,cstr,(int)kc_phylum_" id ") " $} ]; /***************************************************************************/ PhylumDeclarations( d ) -> [view_gen_operatordecls_h: "typedef struct { int create; int existing_not_found; int free_called[2]; int freed[2]; } KC_OPERATOR_STATISTICS; #ifdef KC_STATISTICS # define kc_print_operator_statistics(kc_f) kc_do_print_operator_statistics(kc_f) void kc_do_print_operator_statistics KC__P(( FILE* )); #else /*KC_STATISTICS*/ # define kc_print_operator_statistics(kc_f) #endif /*KC_STATISTICS*/ typedef struct kc_tag_kc_hashtableentry_t { YYSTYPE *index; /* index[ibound] */ int ibound; /* nr of slots; index of first nonexist */ int nr; /* nr of occupied; index of first free */ } kc_hashtableentry_t; typedef enum { kc_ht_store_static = 0, kc_ht_store_dynamic KC_IS_HT_STORE_STATIC, kc_last_storage_mode } kc_hastable_storage_mode_t; typedef struct kc_tag_kc_hashtable_struct_t *kc_hashtable_t; typedef struct kc_tag_kc_private_malloc_t { kc_voidptr_t malloc_private_data; struct kc_tag_kc_private_malloc_t *next; struct kc_tag_kc_private_malloc_t *prev; } *kc_private_malloc_t; typedef struct kc_tag_kc_hashtable_struct_t { /* general stuff */ kc_hashtableentry_t (*hashtable)[kc_last_storage_mode]; /* hashtable[size][dynamic/static] */ int size; /* nr of buckets in the hashtable; index of first nonexist */ int kc_to_be_freed; /* should be True for dynamic, False for statically allocated structures */ kc_hashtable_t next; /* to build a linked list of all hashtables created, ever */ kc_hashtable_t prev; /* to build a linked list of all hashtables created, ever */ /* node allocation */ kc_voidptr_t (*malloc_initialise) KC__P(()); /* routine to initialise a new block(list/level), returns the malloc_private_data */ kc_voidptr_t (*malloc) KC__P((kc_size_t, kc_voidptr_t)); /* routine to be used to create elements in the hashtable */ void (*free_element) KC__P((kc_voidptr_t, kc_voidptr_t)); /* routine to be used to free one element allocated using malloc */ void (*free_all_elements) KC__P((kc_voidptr_t)); /* routine to be used to free elements in a block(list/level) */ boolean (*in_block) KC__P((kc_voidptr_t, kc_voidptr_t)); /* routine to test if an element is in a block */ kc_voidptr_t malloc_private_data; /* private data for the malloc routine, for current block */ kc_voidptr_t static_malloc_private_data; /* private data for the malloc routine */ kc_private_malloc_t dynamic_malloc_private_data; /* private data for the malloc routine */ kc_private_malloc_t dec_dynamic_malloc_private_data; /* dec-level-ed dynamic_malloc_private_data == dynamic_malloc_private_data->prev if defined */ kc_hastable_storage_mode_t mode; /* either dynamic or static */ void (*malloc_info) KC__P((FILE*, kc_voidptr_t)); /* routine to print info on malloc structure */ /* bucket allocation */ kc_voidptr_t (*bucket_alloc_initialise) KC__P(()); /* routine to initialise the bucket allocation stuff, returns the malloc_private_data */ kc_voidptr_t (*bucket_calloc) KC__P((kc_size_t, kc_size_t, kc_voidptr_t)); /* routine to be used to create buckets in the hashtable */ kc_voidptr_t (*bucket_realloc) KC__P((kc_voidptr_t, kc_size_t, kc_size_t, kc_voidptr_t)); /* routine to be used to realloc buckets in the hashtable */ kc_voidptr_t bucket_alloc_private_data; /* private data for the bucket alloc routines */ void (*free_bucket) KC__P((kc_voidptr_t, kc_size_t, kc_voidptr_t)); /* routine to be used to free one bucket */ void (*free_buckets) KC__P((kc_voidptr_t)); /* routine to be used to free all buckets */ int bucket_alloc_inc; /* size of increments in bucket alloced memory */ /* default: KC_BUCKET_INC */ void (*bucket_alloc_info) KC__P((FILE*, kc_voidptr_t)); /* routine to print info on bucket alloc structure */ } kc_hashtable_struct_t; void kc_print_hash_statistics KC__P((FILE*)); void kc_print_all_hashtable_statistics KC__P((FILE*)); void kc_print_hashtable_statistics KC__P(( FILE*, kc_hashtable_t)); void kc_ht_static KC__P((kc_storageclass_t)); void kc_ht_dynamic KC__P((kc_storageclass_t)); void kc_ht_inc_level KC__P((kc_storageclass_t)); void kc_ht_dec_level KC__P((kc_storageclass_t)); void kc_ht_free_level KC__P((kc_storageclass_t)); kc_hashtable_t kc_ht_create_bucketmanagement KC__P((int, kc_voidptr_t (*)(), kc_voidptr_t (*)(kc_size_t, kc_voidptr_t), void (*)(kc_voidptr_t, kc_voidptr_t), void (*)(kc_voidptr_t), boolean (*)(kc_voidptr_t, kc_voidptr_t), void (*)(FILE*, kc_voidptr_t), kc_voidptr_t (*)(), kc_voidptr_t (*)(kc_size_t, kc_size_t, kc_voidptr_t), kc_voidptr_t (*)( kc_voidptr_t, kc_size_t, kc_size_t, kc_voidptr_t), void (*)(kc_voidptr_t, kc_size_t, kc_voidptr_t), void (*)(kc_voidptr_t), int, void (*)(FILE*, kc_voidptr_t))); kc_hashtable_t kc_ht_create KC__P((int, kc_voidptr_t(*)(), kc_voidptr_t(*)(kc_size_t, kc_voidptr_t), void (*)(kc_voidptr_t, kc_voidptr_t), void (*)(kc_voidptr_t), boolean (*)(kc_voidptr_t, kc_voidptr_t))); kc_hashtable_t kc_ht_create_simple KC__P((int)); kc_hashtable_t kc_ht_assign KC__P((kc_hashtable_t, kc_storageclass_t)); kc_hashtable_t kc_ht_assigned KC__P((kc_storageclass_t)); void kc_ht_clear KC__P((kc_hashtable_t)); void kc_ht_reuse KC__P((kc_hashtable_t)); void kc_ht_delete KC__P((kc_hashtable_t)); int kc_ci_strcmp KC__P(( char *, char * )); /* Maybe should be static? */ casestring mkcasestring KC__P(( char * )); nocasestring mknocasestring KC__P(( char * )); kc_hashnode_t kc_mksharinghashnode KC__P(( YYSTYPE, kc_hashtable_t, kc_enum_phyla )); kc_hashnode_t kc_mknonsharinghashnode KC__P(( YYSTYPE, kc_hashtable_t, kc_enum_phyla )); kc_dotedgenode_t kc_mkdotedgenode KC__P(( kc_hashtable_t, YYSTYPE, kc_enum_phyla, YYSTYPE, kc_enum_phyla, int )); kc_voidptr_t kc_do_copy_phylum KC__P(( kc_voidptr_t, boolean, kc_enum_phyla )); /* NOT static because we use it in csgiok.c */ " d ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_operatordecls_h: rpds pd ]; Nilphylumdeclarations() -> [view_gen_operatordecls_h: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_operatordecls_h: {/*EMPTY*/} ]; PhylumDeclaration( id, *, ListAlternatives( a, * ), * ), PhylumDeclaration( id, *, NonlistAlternatives( a ), * ) -> [view_gen_operatordecls_h: id " " a "; " ]; PhylumDeclaration( *, *, PredefinedAlternatives( * ), * ) -> [view_gen_operatordecls_h: {/*EMPTY*/} ]; Nilalternatives() -> [view_gen_operatordecls_h: {/*EMPTY*/} ]; Consalternatives( Alternative( oid, args ), ra ) -> [view_gen_operatordecls_h: ra ", " oid " KC__P((" args "))" ]; Consalternatives( Alternative( oid, args ), Nilalternatives() ) -> [view_gen_operatordecls_h: oid " KC__P((" args "))" ]; Consarguments( a, Nilarguments() ) -> [view_gen_operatordecls_h: a ]; Consarguments( a, rargs ) -> [view_gen_operatordecls_h: rargs ", " a ]; /***************************************************************************/ %{ KC_UNPARSE #define FMOP 38 #define FMSZ 3 #define FMNCR 8 #define FMNCRD 8 #define FMEXIST 8 #define FMFRNC 8 #define FMFRRC 8 #define FMFREED 8 #define FMREM 8 #define FMTOT 9 %} PhylumDeclarations( d ) -> [view_gen_operatordefs_c: "/* macro's that do the string concatenation */ #define KC_MIdStr(s) s #ifdef KC_STDC # define KC_MStrConc(s1,s2) s1 ## s2 #else # define KC_MStrConc(s1,s2) KC_MIdStr(s1)s2 #endif #ifndef KC_MEMORY_BLOCKSIZE # define KC_MEMORY_BLOCKSIZE 20000 #endif #ifndef LARGEPRIME # define LARGEPRIME 80021 #endif #if LARGEPRIME < 0 # define LARGEPRIME 0 #endif #ifndef KC_BUCKET_INC # define KC_BUCKET_INC 8 #endif #ifndef HASH # define HASH(x) kc_hashval = ((kc_hashval<<3) + (((unsigned)x)>>2)) #endif #ifndef INTHASH # define INTHASH(x) kc_hashval = ((kc_hashval<<10) + (unsigned)x) #endif #ifndef FLOATHASH # define FLOATHASH(x) kc_hashval = ((kc_hashval<<10) + (unsigned)x) #endif #ifndef VOIDPTRHASH # define VOIDPTRHASH(x) HASH(x) #endif #ifndef OPERATORHASH # define OPERATORHASH(x) kc_hashval = (kc_hashval + (unsigned)x * 73) #endif #ifndef CASESTRHASH # define CASESTRHASH(x) kc_hashval = ((kc_hashval<<3) + (unsigned)kc_casestrhash(x)) #endif #ifndef NOCASESTRHASH # define NOCASESTRHASH(x) kc_hashval = ((kc_hashval<<3) + (unsigned)kc_nocasestrhash(x)) #endif #ifndef MALLOC # define MALLOC emalloc #endif #ifndef CALLOC # define CALLOC ecalloc #endif #ifndef REALLOC /* * # ifdef lint * # define REALLOC(kc_p,kc_s) (kc_p,kc_s,0) * # else */ # define REALLOC erealloc /* * # endif */ #endif #ifndef FREE # define FREE efree #endif #ifndef efree /* * # ifdef lint * # define efree(kc_p) * # else */ # define efree(kc_p) free((kc_malloc_t)(kc_p)) /* * # endif */ #endif #ifndef KC_ALIGN typedef union kc_Align_tag { long l; int i; } kc_Align; #else typedef KC_ALIGN kc_Align; #endif #ifndef UNIQMALLOCINIT # define UNIQMALLOCINIT uniqmallocinit # ifndef UNIQMALLOC2 # define UNIQMALLOC2 uniqmalloc # endif # ifndef UNIQFREEELEMENT # define UNIQFREEELEMENT uniqfreeelement # endif # ifndef UNIQFREEALL # define UNIQFREEALL uniqfreeall # endif # ifndef INUNIQBLOCK # define INUNIQBLOCK isinuniqmalloccedblock # endif # ifndef UNIQMEMORYINFO # define UNIQMEMORYINFO kc_print_memory_info_statistics # endif #else # ifndef UNIQFREEELEMENT # define UNIQFREEELEMENT 0 # endif # ifndef UNIQFREEALL # define UNIQFREEALL 0 # endif # ifndef INUNIQBLOCK # define INUNIQBLOCK 0 # endif # ifndef UNIQMEMORYINFO # define UNIQMEMORYINFO 0 # endif #endif #ifndef BUCKETALLOCINIT # define BUCKETALLOCINIT 0 # ifndef BUCKETCALLOC # define BUCKETCALLOC kc_wrap_bucket_malloc # endif # ifndef BUCKETREALLOC # define BUCKETREALLOC kc_wrap_bucket_realloc # endif # ifndef BUCKETFREE # define BUCKETFREE kc_wrap_bucket_free # endif # ifndef BUCKETSFREE # define BUCKETSFREE 0 # endif # ifndef BUCKETMEMORYINFO # define BUCKETMEMORYINFO 0 # endif #else # ifndef BUCKETFREE # define BUCKETFREE 0 # endif # ifndef BUCKETSFREE # define BUCKETSFREE 0 # endif # ifndef BUCKETMEMORYINFO # define BUCKETMEMORYINFO 0 # endif #endif #ifndef BUCKETINC # define BUCKETINC KC_BUCKET_INC #endif #ifndef NONUNIQMALLOC # define NONUNIQMALLOC emalloc #endif #ifndef NONUNIQFREE # define NONUNIQFREE efree #endif #ifndef KC_BZERO # define KC_BZERO(kc_p, kc_s) (void)memset((kc_memset_firstarg_t)kc_p, 0, (kc_memset_size_t)kc_s) #endif typedef struct kc_tag_kc_memory_blockinfo_t *kc_memory_blocksinfo_t; typedef struct kc_tag_kc_memory_blockinfo_t kc_memory_blockinfo_t; typedef struct kc_tag_kc_memory_info_t kc_memory_info_t; static kc_memory_blocksinfo_t kc_mainmemory_freelist = 0; struct kc_tag_kc_memory_blockinfo_t { kc_voidptr_t block; /* pointer to the allocated structure */ kc_size_t size; /* size of allocated structure */ kc_memory_blocksinfo_t next; /* next block in list */ kc_memory_blocksinfo_t prev; /* prev block in list */ }; struct kc_tag_kc_memory_info_t { kc_memory_blocksinfo_t kc_memory_blocklist; /* points to block currently in use */ int kc_memory_left; /* remaining bytes in current block */ kc_voidptr_t kc_memory_ptr; /* address of first free byte in current block */ kc_memory_blocksinfo_t *kc_memory_freelist; /* pointer to variable that holds freelist */ int kc_to_be_freed; /* should be 0 for statically created nodes, and 1 for dynamically created ones */ kc_size_t kc_wanted_blocksize; /* prefered size of chunks */ }; static kc_memory_blocksinfo_t kc_memory_createblock #ifdef KC_USE_PROTOTYPES (kc_size_t kc_n, kc_memory_info_t *kc_malloc_private_info) #else (kc_n, kc_malloc_private_info) kc_size_t kc_n; kc_memory_info_t *kc_malloc_private_info; #endif { kc_voidptr_t kc_p; kc_memory_blocksinfo_t kc_l; kc_size_t kc_size; /* we use plain malloc for adminstrative things, and test for the return status */ kc_l = (kc_memory_blocksinfo_t)MALLOC((kc_size_t)sizeof(kc_memory_blockinfo_t)); kc_size = (kc_malloc_private_info->kc_wanted_blocksize > kc_n) ? kc_malloc_private_info->kc_wanted_blocksize : kc_n; kc_p = (kc_voidptr_t)MALLOC((kc_size_t)kc_size); kc_l->block = kc_p; kc_l->size = kc_size; return kc_l; } /* * we use first fit when reusing a block */ static kc_memory_blocksinfo_t kc_memory_reuseblock #ifdef KC_USE_PROTOTYPES (kc_size_t kc_n, kc_memory_info_t *kc_malloc_private_info) #else (kc_n, kc_malloc_private_info) kc_size_t kc_n; kc_memory_info_t *kc_malloc_private_info; #endif { kc_memory_blocksinfo_t kc_l; if (*kc_malloc_private_info->kc_memory_freelist == 0) { /* no elements in freelist */ return (kc_memory_blocksinfo_t)0; } kc_l = *kc_malloc_private_info->kc_memory_freelist; do { /* at least one time, because we have at least one element */ if (kc_l->size >= kc_n) { if (kc_l->next != kc_l) { /* the list contains > 1 elements */ kc_l->prev->next = kc_l->next; kc_l->next->prev = kc_l->prev; /* make sure that we don't loose the handle to the list */ if (kc_l == *kc_malloc_private_info->kc_memory_freelist) { *kc_malloc_private_info->kc_memory_freelist = kc_l->next; } } else { /* we release the last free element */ *kc_malloc_private_info->kc_memory_freelist = 0; } return kc_l; } kc_l = kc_l->next; } while(kc_l != *kc_malloc_private_info->kc_memory_freelist); return (kc_memory_blocksinfo_t)0; } static void kc_memory_newblock #ifdef KC_USE_PROTOTYPES (kc_size_t kc_n, kc_memory_info_t *kc_malloc_private_info) #else (kc_n, kc_malloc_private_info) kc_size_t kc_n; kc_memory_info_t *kc_malloc_private_info; #endif { kc_memory_blocksinfo_t kc_l; if ((kc_l = kc_memory_reuseblock(kc_n, kc_malloc_private_info)) == 0) { kc_l = kc_memory_createblock(kc_n, kc_malloc_private_info); } if (kc_malloc_private_info->kc_memory_blocklist != 0) { kc_l->next = kc_malloc_private_info->kc_memory_blocklist; kc_malloc_private_info->kc_memory_blocklist->prev->next = kc_l; kc_l->prev = kc_malloc_private_info->kc_memory_blocklist->prev; kc_malloc_private_info->kc_memory_blocklist->prev = kc_l; } else { kc_l->next = kc_l; kc_l->prev = kc_l; } kc_malloc_private_info->kc_memory_blocklist = kc_l; kc_malloc_private_info->kc_memory_left = kc_l->size; kc_malloc_private_info->kc_memory_ptr = kc_l->block; } static void kc_print_memory_blocks_info_statistics #ifdef KC_USE_PROTOTYPES (FILE *kc_f, kc_memory_blocksinfo_t kc_a_memory_blocksinfo_t) #else (kc_f, kc_a_memory_blocksinfo_t) FILE *kc_f; kc_memory_blocksinfo_t kc_a_memory_blocksinfo_t; #endif { kc_memory_blocksinfo_t kc_tmp = kc_a_memory_blocksinfo_t; if (kc_tmp) { /* at least one block? */ do { fprintf(kc_f, \" block-size (at %p): %d\\n\", kc_tmp->block, kc_tmp->size); kc_tmp = kc_tmp->next; } while(kc_tmp && (kc_tmp != kc_a_memory_blocksinfo_t)); } else { fprintf(kc_f, \" no blocks allocated\\n\"); } } void kc_print_memory_info_statistics #ifdef KC_USE_PROTOTYPES (FILE *kc_f, kc_voidptr_t kc_malloc_private_info) #else (kc_f, kc_malloc_private_info) FILE *kc_f; kc_voidptr_t kc_malloc_private_info; #endif { kc_memory_info_t *kc_a_memory_info_t = (kc_memory_info_t *)kc_malloc_private_info; fprintf(kc_f, \" to-be-freed: %s\\n\", (kc_a_memory_info_t->kc_to_be_freed ? \"yes\" : \"no\")); fprintf(kc_f, \" wanted block-size: %d\\n\", kc_a_memory_info_t->kc_wanted_blocksize); fprintf(kc_f, \" remaining in current block: %d\\n\", kc_a_memory_info_t->kc_memory_left); fprintf(kc_f, \" blocks-info (at %p):\\n\", kc_a_memory_info_t->kc_memory_blocklist); kc_print_memory_blocks_info_statistics(kc_f, kc_a_memory_info_t->kc_memory_blocklist); fprintf(kc_f, \" freelist-info (at %p):\\n\", *kc_a_memory_info_t->kc_memory_freelist); kc_print_memory_blocks_info_statistics(kc_f, *kc_a_memory_info_t->kc_memory_freelist); } /* * the %p in the routine below is ANSI-C standard (but implementation dependent) * for void*; instead we could use %p */ void kc_print_hashtable_memory_statistics #ifdef KC_USE_PROTOTYPES (FILE *kc_f, kc_hashtable_t kc_a_hashtable_t) #else (kc_f, kc_a_hashtable_t) FILE *kc_f; kc_hashtable_t kc_a_hashtable_t; #endif { kc_private_malloc_t kc_tmp; int kc_i; fprintf(kc_f, \"current allocation scheme: %s\\n\", ((kc_a_hashtable_t->mode == kc_ht_store_static) ? \"static\" : \"dynamic\")); if (kc_a_hashtable_t->malloc_info) { fprintf(kc_f, \"static allocation info (info ptr: %p):\\n\", kc_a_hashtable_t->static_malloc_private_data); (*kc_a_hashtable_t->malloc_info)(kc_f, kc_a_hashtable_t->static_malloc_private_data); kc_tmp = kc_a_hashtable_t->dynamic_malloc_private_data; kc_i = 0; fprintf(kc_f, \"dynamic allocation info: counting from top (level 0) of level stack\\n\"); while(kc_tmp) { fprintf(kc_f, \"dynamic allocation info for level %d,(info ptr: %p):\\n\", kc_i, kc_tmp->malloc_private_data); (*kc_a_hashtable_t->malloc_info)(kc_f, kc_tmp->malloc_private_data); kc_i++; kc_tmp = kc_tmp->next; } kc_tmp = kc_a_hashtable_t->dec_dynamic_malloc_private_data; kc_i = 0; fprintf(kc_f, \"dynamic allocation info: levels to be freed, counting from bottom\\n\"); while(kc_tmp) { fprintf(kc_f, \"dynamic allocation info for level %d,(info ptr: %p):\\n\", kc_i, kc_tmp->malloc_private_data); (*kc_a_hashtable_t->malloc_info)(kc_f, kc_tmp->malloc_private_data); kc_i++; kc_tmp = kc_tmp->prev; } } } kc_voidptr_t uniqmalloc /* check return from malloc */ #ifdef KC_USE_PROTOTYPES (kc_size_t kc_n, kc_voidptr_t kc_malloc_private_info) #else (kc_n, kc_malloc_private_info) kc_size_t kc_n; kc_voidptr_t kc_malloc_private_info; #endif { kc_voidptr_t kc_p; kc_memory_info_t *kc_a_memory_info_t = (kc_memory_info_t *)kc_malloc_private_info; /* all blocks should be a multiple of the alignment requirement */ kc_n += sizeof(kc_Align) - 1 - ((kc_n - 1) % sizeof(kc_Align)); if ( kc_a_memory_info_t->kc_memory_left < (int)kc_n ) kc_memory_newblock(kc_n, kc_a_memory_info_t); kc_a_memory_info_t->kc_memory_left -= kc_n; kc_p = kc_a_memory_info_t->kc_memory_ptr; kc_a_memory_info_t->kc_memory_ptr = (kc_voidptr_t)((char*)(kc_a_memory_info_t->kc_memory_ptr) + kc_n); return kc_p; } kc_memory_info_t *uniqmallocinit #ifdef KC_USE_PROTOTYPES ( /*kc_size_t kc_n*/ ) #else ( /*kc_n*/ ) /*kc_size_t kc_n;*/ #endif { kc_memory_info_t *kc_p; kc_p = (kc_memory_info_t*)MALLOC((kc_size_t)sizeof(kc_memory_info_t)); kc_p->kc_memory_blocklist = 0; kc_p->kc_memory_left = 0; kc_p->kc_memory_ptr = 0; kc_p->kc_memory_freelist = &kc_mainmemory_freelist; kc_p->kc_to_be_freed = 1; kc_p->kc_wanted_blocksize = /*(kc_n <= 0) ?*/ KC_MEMORY_BLOCKSIZE /*: kc_n*/; return kc_p; } boolean isinuniqmalloccedblock #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, kc_voidptr_t kc_malloc_private_info) #else (kc_p, kc_malloc_private_info) kc_voidptr_t kc_p; kc_voidptr_t kc_malloc_private_info; #endif { kc_memory_blocksinfo_t kc_l; kc_memory_info_t *kc_a_memory_info_t = (kc_memory_info_t *)kc_malloc_private_info; if (kc_a_memory_info_t->kc_memory_blocklist == 0) { return False; } kc_l = kc_a_memory_info_t->kc_memory_blocklist; do { if (((char*)kc_p >= (char*)kc_l->block) && ((char*)kc_p < (char*)((char*)kc_l->block + kc_l->size))) { return True; } kc_l = kc_l->next; } while(kc_l != kc_a_memory_info_t->kc_memory_blocklist); return False; } /*ARGSUSED*/ void uniqfreeelement /* free (prepare for reuse of) one element in private info */ #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_ptr, kc_voidptr_t kc_malloc_private_info) #else (kc_ptr, kc_malloc_private_info) kc_voidptr_t kc_ptr; kc_voidptr_t kc_malloc_private_info; #endif { } void uniqfreeall /* free (prepare for reuse of) everything in private info */ #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_malloc_private_info) #else (kc_malloc_private_info) kc_voidptr_t kc_malloc_private_info; #endif { kc_memory_info_t *kc_a_memory_info_t = (kc_memory_info_t *)kc_malloc_private_info; if (kc_a_memory_info_t->kc_memory_blocklist != 0) { kc_memory_blocksinfo_t kc_a_memory_blocklist = kc_a_memory_info_t->kc_memory_blocklist; kc_memory_blocksinfo_t kc_blockptr = kc_a_memory_blocklist; do { KC_BZERO(kc_blockptr->block, kc_blockptr->size); kc_blockptr = kc_blockptr->next; } while (kc_blockptr != kc_a_memory_blocklist); if (*kc_a_memory_info_t->kc_memory_freelist == 0) { *kc_a_memory_info_t->kc_memory_freelist = kc_a_memory_info_t->kc_memory_blocklist; } else { kc_a_memory_info_t->kc_memory_blocklist->prev->next = (*kc_a_memory_info_t->kc_memory_freelist); (*kc_a_memory_info_t->kc_memory_freelist)->prev->next = kc_a_memory_info_t->kc_memory_blocklist; kc_blockptr = kc_a_memory_info_t->kc_memory_blocklist->prev; kc_a_memory_info_t->kc_memory_blocklist->prev = (*kc_a_memory_info_t->kc_memory_freelist)->prev; (*kc_a_memory_info_t->kc_memory_freelist)->prev = kc_blockptr;; } } /* just to be sure, this is NECESSARY in case kc_a_memory_info_t->kc_to_be_freed holds */ kc_a_memory_info_t->kc_memory_blocklist = 0; kc_a_memory_info_t->kc_memory_left = 0; kc_a_memory_info_t->kc_memory_ptr = 0; kc_a_memory_info_t->kc_memory_left = 0; if (kc_a_memory_info_t->kc_to_be_freed) { /* we must be sure that it wasn't dynamically allocated */ KC_BZERO(kc_a_memory_info_t, sizeof(kc_memory_info_t)); FREE((kc_voidptr_t)kc_a_memory_info_t); } } /*ARGSUSED*/ kc_voidptr_t kc_wrap_bucket_malloc #ifdef KC_USE_PROTOTYPES (kc_size_t kc_a_size, kc_size_t kc_a_number, kc_voidptr_t kc_a_private_malloc_info) #else (kc_a_size, kc_a_number, kc_a_private_malloc_info) kc_size_t kc_a_size; kc_size_t kc_a_number; kc_voidptr_t kc_a_private_malloc_info; #endif { return MALLOC((kc_size_t)kc_a_size*kc_a_number); } /*ARGSUSED*/ kc_voidptr_t kc_wrap_bucket_realloc #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_ptr, kc_size_t kc_a_oldsize, kc_size_t kc_a_newsize, kc_voidptr_t kc_a_private_malloc_info) #else (kc_ptr, kc_a_oldsize, kc_a_newsize, kc_a_private_malloc_info) kc_voidptr_t kc_ptr; kc_size_t kc_a_oldsize; kc_size_t kc_a_newsize; kc_voidptr_t kc_a_private_malloc_info; #endif { return REALLOC(kc_ptr, kc_a_newsize); } /*ARGSUSED*/ void kc_wrap_bucket_free #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_ptr, kc_size_t kc_a_size, kc_voidptr_t kc_a_private_malloc_info) #else (kc_ptr, kc_a_size, kc_a_private_malloc_info) kc_voidptr_t kc_ptr; kc_size_t kc_a_size; kc_voidptr_t kc_a_private_malloc_info; #endif { (void)FREE(kc_ptr); } #ifdef KC_STATISTICS KC_OPERATOR_STATISTICS kc_OperatorStatistics[KC_NO_OF_OPERATORS]; # define KC_COLLECT_STATS0(v) v #else # define KC_COLLECT_STATS0(v) #endif #ifndef KC_CREATE_STATS # define KC_CREATE_STATS(oper) kc_OperatorStatistics[(int)oper].create++; #endif #ifndef KC_EXISTINGNOTFOUND_STATS # define KC_EXISTINGNOTFOUND_STATS(oper) kc_OperatorStatistics[(int)oper].existing_not_found++; #endif #ifndef KC_FREE_CALLED_STATS # define KC_FREE_CALLED_STATS(oper,rec) kc_OperatorStatistics[(int)oper].free_called[(int)(rec?True:False)]++; #endif #ifndef KC_FREED_STATS # define KC_FREED_STATS(oper,rec) kc_OperatorStatistics[(int)oper].freed[(int)(rec?True:False)]++; #endif " (storageclasses)Thestorageclasses:view_gen_operatordefs_c_0 " static boolean kc_storageclass_still_uniq[] = { " (storageclasses)Thestorageclasses:view_gen_operatordefs_c_1 " }; " (storageclasses)Thestorageclasses:view_gen_operatordefs_c_2 " #if 0 /* ! (defined(lint) || defined(SABER) || defined(CODECENTER)) */ /* currently not used */ static kc_memory_info_t *kc_memory_info[] = { " (storageclasses)Thestorageclasses:view_gen_operatordefs_c_2a " }; #endif static kc_hashtable_struct_t kc_static_hashtables[] = { " (storageclasses)Thestorageclasses:view_gen_operatordefs_c_4 "}; static kc_hashtable_t kc_hashtables[] = { " (storageclasses)Thestorageclasses:view_gen_operatordefs_c_3 "}; static char* kc_storageclassnames[] = { "(storageclasses)Thestorageclasses " }; static kc_hashtable_t kc_all_hashtables = &kc_static_hashtables[0]; static int kc_primes[] = { 1009, 1091, 1193, 1297, 1423, 1543, 1693, 1847, 2003, 2203, 2381, 2609, 2833, 3089, 3371, 3673, 4007, 4373, 4783, 5209, 5683, 6197, 6761, 7369, 8039, 8761, 9587, 10427, 11383, 12409, 13537, 14767, 16111, 17569, 19181, 20921, 22807, 24889, 27143, 29611, 32299, 35251, 38447, 41941, 45751, 49919, 54443, 59387, 64793, 70687, 77101, 80021, 84121, 91753, 100103, 109199, 119129, 129953, 141761, 154643, 168713, 184039, 200771, 219017, 238939, 260647, 284357, 310223, 338407, 369169, 402739, 439339, 479263, 522829, 570359, 622241, 678773, 740477, 807797, 881233, 961339, 1048759, 1144081, 1248083, 1361573, 1485347, 1620347, 1767679, 1928351, 2103653, 2294891, 2503511, 2731103, 2979391, 3250243, 3545719, 3868057, 4219687, 4603297, 5021773, 5478299, 5976329, 6519647, 7112351, 7758899, 8464273, 9233729, 10073153, 10988893, 11987891, 13077707, 14266573, 15563531, 16978399, 18521897, 20205697, 22042607, 24046487, 26232491, 28617269, 31218823, 34056907, 37152979, 40530541, 44215117, 48234733, 52619639, 57403277, 62621729, 68314613, 74525021, 81300017, 88690949, 96753739, 105549557, 115144957, 125612671, 137032001, 149489477, 163079431, 177904801, 194077981, 211721429, 230968853, 251966009, 274871969, 299860369, 327120389, 356858597, 389300293, 424691207, 463299493, 505417691, 551364677, 601488779, 656169539, 715821317, 780896041, 851886569, 929330767, 1013815373, 1105980433, 1206524183, 1316208139, 1435863449, 1566396463, 1708796171, 1864141193, 2033608601, 0, 0 /* last two elements should ALWAYS be 0 */ }; #ifdef KC_STATISTICS static int kc_casestring_strlen =0; static int kc_nocasestring_strlen =0; void kc_do_print_operator_statistics #ifdef KC_USE_PROTOTYPES (FILE * kc_f) #else (kc_f) FILE *kc_f; #endif { unsigned int kc_i; /*SUPPRESS 622*/ assertNonNull( kc_f,\"kc_f\" ); (void)fprintf(kc_f, \"%-*s| %-*s| %-*s| %-*s| %-*s| %-*s| %-*s| %-*s| %-*s| %-*s\\n\", " (int)FMOP " , \"Operator\", " (int)FMSZ ", \"Sz\", " (int)FMNCR ", \"#oper\", " (int)FMNCRD ", \"#new\", " (int)FMEXIST ", \"#exist\", " (int)FMFRNC ", \"#frnrec\", " (int)FMFRRC ", \"#frrec\", " (int)FMFREED ", \"#freed\", " (int)FMREM ", \"#rem\", " (int)FMTOT ", \"total (bytes)\"); (void)fprintf(kc_f, \"%-*s|%*s |%*d |%*d |%*d |%*d |%*d |%*d |%*d |%*d\\n\", " (int)FMOP ", \"case sensitive strings\", " (int)FMSZ ", \"-\", " (int)FMNCR ", kc_OperatorStatistics[(int)sel__Str].create, " (int)FMNCRD ", kc_OperatorStatistics[(int)sel__Str].existing_not_found, " (int)FMEXIST ", kc_OperatorStatistics[(int)sel__Str].create-kc_OperatorStatistics[(int)sel__Str].existing_not_found, " (int)FMFRNC ", 0, " (int)FMFRRC ", 0, " (int)FMFREED ", 0, " (int)FMREM ", 0, " (int)FMTOT ", kc_casestring_strlen); (void)fprintf(kc_f, \"%-*s|%*s |%*d |%*d |%*d |%*d |%*d |%*d |%*d |%*d\\n\", " (int)FMOP ", \"case insensitive strings\", " (int)FMSZ ", \"-\", " (int)FMNCR ", kc_OperatorStatistics[(int)sel_NoCaseStr].create, " (int)FMNCRD ", kc_OperatorStatistics[(int)sel_NoCaseStr].existing_not_found, " (int)FMEXIST ", kc_OperatorStatistics[(int)sel_NoCaseStr].create-kc_OperatorStatistics[(int)sel_NoCaseStr].existing_not_found, " (int)FMFRNC ", 0, " (int)FMFRRC ", 0, " (int)FMFREED ", 0, " (int)FMREM ", 0, " (int)FMTOT ", kc_nocasestring_strlen); for (kc_i = (int)kc_one_before_first_operator+1; kc_i < (int)kc_last_operator; kc_i++) { (void)fprintf(kc_f, \"%-*s|%*d |%*d |%*d |%*d |%*d |%*d |%*d |%*d |%*d\\n\", " (int)FMOP ", kc_OperatorInfo[kc_i].name, " (int)FMSZ ", kc_PhylumInfo[(int)kc_OperatorInfo[kc_i].phylum].size, " (int)FMNCR ", kc_OperatorStatistics[kc_i].create, " (int)FMNCRD ", kc_OperatorStatistics[kc_i].existing_not_found, " (int)FMEXIST ", kc_OperatorStatistics[kc_i].create-kc_OperatorStatistics[kc_i].existing_not_found, " (int)FMFRNC ", kc_OperatorStatistics[kc_i].free_called[(int)False], " (int)FMFRRC ", kc_OperatorStatistics[kc_i].free_called[(int)True], " (int)FMFREED ", kc_OperatorStatistics[kc_i].freed[(int)False]+kc_OperatorStatistics[kc_i].freed[(int)True], " (int)FMREM ", kc_OperatorStatistics[kc_i].existing_not_found-(kc_OperatorStatistics[kc_i].freed[(int)False]+kc_OperatorStatistics[kc_i].freed[(int)True]), " (int)FMTOT ", (kc_PhylumInfo[(int)kc_OperatorInfo[(int)kc_i].phylum].size)*(kc_OperatorStatistics[kc_i].existing_not_found-(kc_OperatorStatistics[kc_i].freed[(int)False]+kc_OperatorStatistics[kc_i].freed[(int)True]))); } } #endif /* KC_STATISTICS */ void kc_print_hash_statistics #ifdef KC_USE_PROTOTYPES (FILE *kc_f) #else (kc_f) FILE *kc_f; #endif { unsigned int kc_k; /*SUPPRESS 622*/ /*assertNonNull(kc_f,\"kc_f\");*/ if (kc_f == NULL) kc_f = stdout; for (kc_k=0; kc_k < (int)kc_last_storageclass; kc_k++) { (void)fprintf(kc_f, \"Information for storage class %s: \\n\", kc_storageclassnames[kc_k]); kc_print_hashtable_statistics(kc_f, kc_hashtables[kc_k]); } } void kc_print_all_hashtable_statistics #ifdef KC_USE_PROTOTYPES (FILE *kc_f) #else (kc_f) FILE *kc_f; #endif { kc_hashtable_t kc_a_hashtable_t = kc_all_hashtables; unsigned int kc_k; boolean kc_st_found; /*SUPPRESS 622*/ /*assertNonNull(kc_f,\"kc_f\");*/ if (kc_f == NULL) kc_f = stdout; do { /* at least one time, because we have at least one element */ kc_st_found = False; for (kc_k=0; kc_k < (int)kc_last_storageclass; kc_k++) { if (kc_hashtables[kc_k] == kc_a_hashtable_t) { kc_st_found = True; (void)fprintf(kc_f, \"Information for storage class %s: \\n\", kc_storageclassnames[kc_k]); } } if (! kc_st_found) { (void)fprintf(kc_f, \"Information for unknown storage class: \\n\"); } kc_print_hashtable_statistics(kc_f, kc_a_hashtable_t); kc_print_hashtable_memory_statistics(kc_f, kc_a_hashtable_t); kc_a_hashtable_t = kc_a_hashtable_t->next; } while(kc_a_hashtable_t != kc_all_hashtables); } void kc_print_hashtable_statistics #ifdef KC_USE_PROTOTYPES (FILE *kc_f, kc_hashtable_t kc_a_hashtable_t) #else (kc_f, kc_a_hashtable_t) FILE *kc_f; kc_hashtable_t kc_a_hashtable_t; #endif { boolean kc_goon; int kc_entries[9]; int kc_o_8 = 0; int kc_o_20 = 0; int kc_o_100 = 0; int kc_total = 0; int kc_i, kc_j; /*SUPPRESS 622*/ /*(kc_f,\"kc_f\");*/ if (kc_f == NULL) kc_f = stdout; (void)fprintf(kc_f, \"\\tsize:\\t%d\\n\",kc_a_hashtable_t->size); for (kc_i=0; kc_i < 9; kc_i++) kc_entries[kc_i]=0; for (kc_i=0;kc_isize;kc_i++) { int kc_m=0, kc_n; for (kc_n=0;kc_n<(int)kc_last_storage_mode;kc_n++) { kc_m += kc_a_hashtable_t->hashtable[kc_i][kc_n].nr; } kc_total += kc_m; if (kc_m >100) {kc_o_100 ++; (void)fprintf(kc_f, \">100: key %d (%d elts)\\n\",kc_i,kc_m); } else if (kc_m >20) {kc_o_20 ++; (void)fprintf(kc_f, \">20: key %d (%d elts)\\n\",kc_i,kc_m); } else if (kc_m > 8) kc_o_8 ++; else { kc_j =0; kc_goon = True; while ( kc_goon && (kc_j < 9)) { if (kc_m == kc_j) { kc_entries[kc_j]++; kc_goon = False; } else kc_j++; } } } (void)fprintf(kc_f, \"The spreading is: \\n\"); for (kc_j=0; kc_j < 9; kc_j++) { (void)fprintf(kc_f, \"\\t%d elts:\\t%d\\n\",kc_j, kc_entries[kc_j]); } (void)fprintf(kc_f, \"\\tOver 8 elts:\\t%d\\n\",kc_o_8); (void)fprintf(kc_f, \"\\tOver 20 elts:\\t%d\\n\",kc_o_20); (void)fprintf(kc_f, \"\\tOver 100 elts:\\t%d\\n\",kc_o_100); (void)fprintf(kc_f, \" Total number of cells: %d\\n\",kc_total); (void)fprintf(kc_f, \" Number of buckets: %d\\n\",kc_a_hashtable_t->size); } static void kc_growindex #ifdef KC_USE_PROTOTYPES (kc_hashtableentry_t *kc_hte, kc_hashtable_t kc_a_ht) #else (kc_hte, kc_a_ht) kc_hashtableentry_t *kc_hte; kc_hashtable_t kc_a_ht; #endif { int kc_newsize = kc_hte->ibound + kc_a_ht->bucket_alloc_inc; if (kc_newsize == kc_a_ht->bucket_alloc_inc) kc_hte->index = (YYSTYPE *) (*kc_a_ht->bucket_calloc)((kc_size_t)kc_newsize, (kc_size_t)sizeof(YYSTYPE), kc_a_ht->bucket_alloc_private_data); else kc_hte->index = (YYSTYPE *) (*kc_a_ht->bucket_realloc)((kc_voidptr_t)kc_hte->index, (kc_size_t)kc_hte->ibound * sizeof(YYSTYPE), (kc_size_t)kc_newsize * sizeof(YYSTYPE), kc_a_ht->bucket_alloc_private_data); kc_hte->ibound = kc_newsize; } void kc_ht_static #ifdef KC_USE_PROTOTYPES (kc_storageclass_t kc_a_storageclass_t) #else (kc_a_storageclass_t) kc_storageclass_t kc_a_storageclass_t; #endif { kc_hashtables[(int)kc_a_storageclass_t]->mode = kc_ht_store_static; kc_hashtables[(int)kc_a_storageclass_t]->malloc_private_data = kc_hashtables[(int)kc_a_storageclass_t]->static_malloc_private_data; } void kc_ht_dynamic #ifdef KC_USE_PROTOTYPES (kc_storageclass_t kc_a_storageclass_t) #else (kc_a_storageclass_t) kc_storageclass_t kc_a_storageclass_t; #endif { kc_hashtables[(int)kc_a_storageclass_t]->mode = kc_ht_store_dynamic; if (kc_hashtables[(int)kc_a_storageclass_t]->dynamic_malloc_private_data != 0) { kc_ht_inc_level(kc_a_storageclass_t); } kc_hashtables[(int)kc_a_storageclass_t]->malloc_private_data = kc_hashtables[(int)kc_a_storageclass_t]->dynamic_malloc_private_data->malloc_private_data; } void kc_ht_inc_level #ifdef KC_USE_PROTOTYPES (kc_storageclass_t kc_a_storageclass_t) #else (kc_a_storageclass_t) kc_storageclass_t kc_a_storageclass_t; #endif { kc_private_malloc_t kc_a_private_malloc_t = (kc_private_malloc_t)MALLOC(sizeof(struct kc_tag_kc_private_malloc_t)); kc_a_private_malloc_t->next = kc_hashtables[(int)kc_a_storageclass_t]->dynamic_malloc_private_data; if (kc_hashtables[(int)kc_a_storageclass_t]->dynamic_malloc_private_data != 0 ) { kc_hashtables[(int)kc_a_storageclass_t]->dynamic_malloc_private_data->prev = kc_a_private_malloc_t; } kc_a_private_malloc_t->prev = kc_hashtables[(int)kc_a_storageclass_t]->dec_dynamic_malloc_private_data; kc_a_private_malloc_t->malloc_private_data = (*kc_hashtables[(int)kc_a_storageclass_t]->malloc_initialise)(); kc_hashtables[(int)kc_a_storageclass_t]->dynamic_malloc_private_data = kc_a_private_malloc_t; } void kc_ht_dec_level #ifdef KC_USE_PROTOTYPES (kc_storageclass_t kc_a_storageclass_t) #else (kc_a_storageclass_t) kc_storageclass_t kc_a_storageclass_t; #endif { int kc_i, kc_j, kc_m; kc_hashtableentry_t* kc_hte; kc_hashtable_t kc_a_hashtable_t = kc_hashtables[(int)kc_a_storageclass_t]; if (kc_a_hashtable_t->dynamic_malloc_private_data != 0) { kc_a_hashtable_t->dec_dynamic_malloc_private_data = kc_a_hashtable_t->dynamic_malloc_private_data; kc_a_hashtable_t->dynamic_malloc_private_data = kc_a_hashtable_t->dynamic_malloc_private_data->next; for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) { kc_m = (int)kc_ht_store_dynamic; kc_hte = &kc_a_hashtable_t->hashtable[kc_i][kc_m]; for (kc_j=kc_hte->nr -1; kc_j >= 0; kc_j--) { kc_private_malloc_t kc_a_private_malloc_t = kc_a_hashtable_t->dec_dynamic_malloc_private_data; boolean kc_is_in_block = (*kc_a_hashtable_t->in_block)((kc_voidptr_t)kc_hte->index[kc_j].yt_casestring, kc_a_private_malloc_t->malloc_private_data); #if 0 /* not necessary, because every kc_ht_dec_level call takes care of its own level */ while ((!kc_is_in_block) && kc_a_private_malloc_t->prev) { kc_a_private_malloc_t = kc_a_private_malloc_t->prev; kc_is_in_block = (*kc_a_hashtable_t->in_block)((kc_voidptr_t)kc_hte->index[kc_j].yt_casestring, kc_a_private_malloc_t->malloc_private_data); } #endif if (kc_is_in_block) { kc_hte->nr--; kc_hte->index[kc_j] = kc_hte->index[kc_hte->nr]; kc_hte->index[kc_hte->nr].yt_casestring = 0; } #ifdef KC_SEPARATE_HASH_LEVELS else { break; } #endif } } } else { /* should be a better error message */ /*SUPPRESS 622*/ assert(kc_zero_constant); } } /* free the previous level(s) in the level-list, ie * the sublist that is reachable via dec_dynamic_malloc_private_data, * and via the prev field of the current dynamic node, if defined * follow prev's to the left start, freeing the blocks while moving * and freeing the administration nodes themselves */ static void kc_ht_do_free_level #ifdef KC_USE_PROTOTYPES (kc_hashtable_t kc_a_hashtable_t) #else (kc_a_hashtable_t) kc_hashtable_t kc_a_hashtable_t; #endif { kc_private_malloc_t kc_a_private_malloc_t, kc_b_private_malloc_t; if (kc_a_hashtable_t->dec_dynamic_malloc_private_data != 0) { kc_a_private_malloc_t = kc_a_hashtable_t->dec_dynamic_malloc_private_data; while (kc_a_private_malloc_t != 0) { if (kc_a_hashtable_t->free_all_elements != 0) { (*kc_a_hashtable_t->free_all_elements)(kc_a_private_malloc_t->malloc_private_data); } kc_b_private_malloc_t = kc_a_private_malloc_t; kc_a_private_malloc_t = kc_a_private_malloc_t->prev; KC_BZERO(kc_b_private_malloc_t, sizeof(struct kc_tag_kc_private_malloc_t)); FREE((kc_voidptr_t)kc_b_private_malloc_t); } kc_a_hashtable_t->dec_dynamic_malloc_private_data = 0; if (kc_a_hashtable_t->dynamic_malloc_private_data != 0) { kc_a_hashtable_t->dynamic_malloc_private_data->prev = 0; } } } void kc_ht_free_level #ifdef KC_USE_PROTOTYPES (kc_storageclass_t kc_a_storageclass_t) #else (kc_a_storageclass_t) kc_storageclass_t kc_a_storageclass_t; #endif { kc_ht_do_free_level(kc_hashtables[(int)kc_a_storageclass_t]); } static int kc_choose_prime #ifdef KC_USE_PROTOTYPES (int kc_a_size) #else (kc_a_size) int kc_a_size; #endif { int kc_i =0; while((kc_primes[kc_i] < kc_a_size) && (kc_primes[kc_i+1] > 0)) { kc_i++; } return kc_primes[kc_i]; } kc_hashtable_t kc_ht_create_bucketmanagement #ifdef KC_USE_PROTOTYPES (int kc_a_size, kc_voidptr_t (*kc_a_malloc_initialise)(), kc_voidptr_t (*kc_a_malloc)(kc_size_t, kc_voidptr_t), void (*kc_a_free_element)(kc_voidptr_t, kc_voidptr_t), void (*kc_a_free_all_elements)(kc_voidptr_t), boolean (*kc_a_in_block)(kc_voidptr_t, kc_voidptr_t), void (*kc_a_malloc_info)(FILE*, kc_voidptr_t), kc_voidptr_t (*kc_a_bucket_alloc_initialise)(), kc_voidptr_t (*kc_a_bucket_calloc)(kc_size_t, kc_size_t, kc_voidptr_t), kc_voidptr_t (*kc_a_bucket_realloc)( kc_voidptr_t, kc_size_t, kc_size_t, kc_voidptr_t), void (*kc_a_free_bucket)(kc_voidptr_t, kc_size_t, kc_voidptr_t), void (*kc_a_free_buckets)(kc_voidptr_t), int kc_a_bucket_alloc_inc, void (*kc_a_bucket_alloc_info)(FILE*, kc_voidptr_t) ) #else (kc_a_size, kc_a_malloc_initialise, kc_a_malloc, kc_a_free_element, kc_a_free_all_elements, kc_a_in_block, kc_a_malloc_info, kc_a_bucket_alloc_initialise, kc_a_bucket_calloc, kc_a_bucket_realloc, kc_a_free_bucket, kc_a_free_buckets, kc_a_bucket_alloc_inc, kc_a_bucket_alloc_info ) int kc_a_size; kc_voidptr_t (*kc_a_malloc_initialise)KC__P(()); kc_voidptr_t (*kc_a_malloc)KC__P((kc_size_t, kc_voidptr_t)); void (*kc_a_free_element)KC__P((kc_voidptr_t, kc_voidptr_t)); void (*kc_a_free_all_elements)KC__P((kc_voidptr_t)); boolean (*kc_a_in_block)KC__P((kc_voidptr_t, kc_voidptr_t)); void (*kc_a_malloc_info)KC__P((FILE*, kc_voidptr_t)); kc_voidptr_t (*kc_a_bucket_alloc_initialise)KC__P(()); kc_voidptr_t (*kc_a_bucket_calloc)KC__P((kc_size_t, size_t, kc_voidptr_t)); kc_voidptr_t (*kc_a_bucket_realloc)KC__P(( kc_voidptr_t, kc_size_t, kc_size_t, kc_voidptr_t)); void (*kc_a_free_bucket)KC__P((kc_voidptr_t, kc_size_t, kc_voidptr_t)); void (*kc_a_free_buckets)KC__P((kc_voidptr_t)); int kc_a_bucket_alloc_inc; void (*kc_a_bucket_alloc_info)KC__P((FILE*, kc_voidptr_t)); #endif { kc_hashtable_t kc_a_hashtable_t = (kc_hashtable_t)MALLOC(sizeof(kc_hashtable_struct_t)); kc_a_hashtable_t->size = kc_choose_prime(kc_a_size); kc_a_hashtable_t->hashtable = (kc_hashtableentry_t(*)[(int)kc_last_storage_mode])CALLOC((kc_size_t)kc_a_hashtable_t->size*((int)kc_last_storage_mode), (kc_size_t)sizeof(kc_hashtableentry_t)); kc_a_hashtable_t->malloc_initialise = kc_a_malloc_initialise; kc_a_hashtable_t->malloc = kc_a_malloc; kc_a_hashtable_t->free_element = kc_a_free_element; kc_a_hashtable_t->free_all_elements = kc_a_free_all_elements; kc_a_hashtable_t->in_block = kc_a_in_block; kc_a_hashtable_t->static_malloc_private_data = (kc_voidptr_t)(*kc_a_hashtable_t->malloc_initialise)(); kc_a_hashtable_t->malloc_private_data = kc_a_hashtable_t->static_malloc_private_data; kc_a_hashtable_t->dynamic_malloc_private_data = 0; kc_a_hashtable_t->dec_dynamic_malloc_private_data = 0; kc_a_hashtable_t->mode = kc_ht_store_static; kc_a_hashtable_t->malloc_info = kc_a_malloc_info; kc_a_hashtable_t->bucket_alloc_initialise = kc_a_bucket_alloc_initialise; kc_a_hashtable_t->bucket_calloc = kc_a_bucket_calloc; kc_a_hashtable_t->bucket_realloc = kc_a_bucket_realloc; kc_a_hashtable_t->free_bucket = kc_a_free_bucket; kc_a_hashtable_t->free_buckets = kc_a_free_buckets; kc_a_hashtable_t->bucket_alloc_info = kc_a_bucket_alloc_info; kc_a_hashtable_t->bucket_alloc_inc = (kc_a_bucket_alloc_inc ? kc_a_bucket_alloc_inc : KC_BUCKET_INC); kc_a_hashtable_t->bucket_alloc_private_data = (kc_a_hashtable_t->bucket_alloc_initialise) ? (kc_voidptr_t)(*kc_a_hashtable_t->bucket_alloc_initialise)() : 0; kc_a_hashtable_t->kc_to_be_freed = 1; kc_a_hashtable_t->next = kc_all_hashtables; kc_a_hashtable_t->prev = kc_all_hashtables->prev; kc_all_hashtables->prev->next = kc_a_hashtable_t; kc_all_hashtables->prev = kc_a_hashtable_t; kc_all_hashtables = kc_a_hashtable_t; return kc_a_hashtable_t; } kc_hashtable_t kc_ht_create #ifdef KC_USE_PROTOTYPES (int kc_a_size, kc_voidptr_t (*kc_a_malloc_initialise)(), kc_voidptr_t (*kc_a_malloc)(kc_size_t, kc_voidptr_t), void (*kc_a_free_element)(kc_voidptr_t, kc_voidptr_t), void (*kc_a_free_all_elements)(kc_voidptr_t), boolean (*kc_a_in_block)(kc_voidptr_t, kc_voidptr_t)) #else (kc_a_size, kc_a_malloc_initialise, kc_a_malloc, kc_a_free_element, kc_a_free_all_elements, kc_a_in_block) int kc_a_size; kc_voidptr_t (*kc_a_malloc_initialise)KC__P(()); kc_voidptr_t (*kc_a_malloc)KC__P((kc_size_t, kc_voidptr_t)); void (*kc_a_free_element)KC__P((kc_voidptr_t, kc_voidptr_t)); void (*kc_a_free_all_elements)KC__P((kc_voidptr_t)); boolean (*kc_a_in_block)KC__P((kc_voidptr_t, kc_voidptr_t)); #endif { kc_voidptr_t (*kc_tmp_malloc_initialise)KC__P(()) = (kc_voidptr_t(*)())UNIQMALLOCINIT; void (*kc_tmp_malloc_info)KC__P((FILE*, kc_voidptr_t)) = (kc_tmp_malloc_initialise == kc_a_malloc_initialise) ? (void(*)KC__P((FILE*, kc_voidptr_t)))UNIQMEMORYINFO : (void(*)KC__P((FILE*, kc_voidptr_t)))0 ; /* do something special (wrt mallocinfo?) if we know that our malloc is being used */ return kc_ht_create_bucketmanagement(kc_a_size, kc_a_malloc_initialise, kc_a_malloc, kc_a_free_element, kc_a_free_all_elements, kc_a_in_block, kc_tmp_malloc_info, (kc_voidptr_t(*)())BUCKETALLOCINIT, BUCKETCALLOC, BUCKETREALLOC, BUCKETFREE, (void(*)KC__P((kc_voidptr_t)))BUCKETSFREE, BUCKETINC, (void(*)KC__P((FILE*, kc_voidptr_t)))BUCKETMEMORYINFO); } kc_hashtable_t kc_ht_create_simple #ifdef KC_USE_PROTOTYPES (int kc_a_size) #else (kc_a_size) int kc_a_size; #endif { return kc_ht_create_bucketmanagement(kc_a_size, (kc_voidptr_t(*)())UNIQMALLOCINIT, UNIQMALLOC2, (void (*)KC__P((kc_voidptr_t, kc_voidptr_t)))0/*UNIQFREEELEMENT*/, UNIQFREEALL, INUNIQBLOCK, UNIQMEMORYINFO, (kc_voidptr_t(*)())BUCKETALLOCINIT, BUCKETCALLOC, BUCKETREALLOC, BUCKETFREE, (void(*)KC__P((kc_voidptr_t)))BUCKETSFREE, BUCKETINC, (void(*)KC__P((FILE*, kc_voidptr_t)))BUCKETMEMORYINFO); } kc_hashtable_t kc_ht_assign #ifdef KC_USE_PROTOTYPES (kc_hashtable_t kc_a_hashtable_t, kc_storageclass_t kc_a_storageclass_t) #else (kc_a_hashtable_t, kc_a_storageclass_t) kc_hashtable_t kc_a_hashtable_t; kc_storageclass_t kc_a_storageclass_t; #endif { kc_hashtable_t kc_tmp = kc_hashtables[(int)kc_a_storageclass_t]; kc_hashtables[(int)kc_a_storageclass_t] = kc_a_hashtable_t; kc_storageclass_still_uniq[(int)kc_a_storageclass_t] = False; return kc_tmp; } kc_hashtable_t kc_ht_assigned #ifdef KC_USE_PROTOTYPES (kc_storageclass_t kc_a_storageclass_t) #else (kc_a_storageclass_t) kc_storageclass_t kc_a_storageclass_t; #endif { return kc_hashtables[(int)kc_a_storageclass_t]; } static void kc_ht_free_single_elements #ifdef KC_USE_PROTOTYPES (kc_hashtable_t kc_a_hashtable_t, int kc_i, int kc_m) #else (kc_a_hashtable_t, kc_i, kc_m) kc_hashtable_t kc_a_hashtable_t; int kc_i; int kc_m; #endif { int kc_j; if ((int)kc_m == (int)kc_ht_store_static) { for (kc_j=0; kc_j < kc_a_hashtable_t->hashtable[kc_i][kc_m].nr; kc_j++) { (*kc_a_hashtable_t->free_element)((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index[kc_j].yt_casestring, kc_a_hashtable_t->static_malloc_private_data); } } else { kc_voidptr_t kc_a_private_data = 0; if ((kc_a_hashtable_t->dynamic_malloc_private_data == 0) || (kc_a_hashtable_t->dynamic_malloc_private_data->malloc_private_data == 0)) { kc_a_private_data = 0; } else if (kc_a_hashtable_t->dynamic_malloc_private_data->next == 0) { kc_a_private_data = kc_a_hashtable_t->dynamic_malloc_private_data->malloc_private_data; } for (kc_j=0; kc_j < kc_a_hashtable_t->hashtable[kc_i][kc_m].nr; kc_j++) { (*kc_a_hashtable_t->free_element)((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index[kc_j].yt_casestring, kc_a_private_data); } } } static void kc_ht_do_clear_all_elements #ifdef KC_USE_PROTOTYPES (kc_hashtable_t kc_a_hashtable_t, boolean kc_reuse, boolean kc_reinit) #else (kc_a_hashtable_t, kc_reuse, kc_reinit) kc_hashtable_t kc_a_hashtable_t; boolean kc_reuse; boolean kc_reinit; #endif { int kc_i, kc_m; kc_private_malloc_t kc_a_private_malloc_t; /* free all static stuff */ (*kc_a_hashtable_t->free_all_elements)(kc_a_hashtable_t->static_malloc_private_data); /* free all dynamic stuff */ /* walk to end of list of levels, kc_ht_do_free_level will free last and all * previous levels in the list */ if (kc_a_hashtable_t->dynamic_malloc_private_data != 0) { kc_a_private_malloc_t = kc_a_hashtable_t->dynamic_malloc_private_data; while(kc_a_private_malloc_t->next != 0) { kc_a_private_malloc_t = kc_a_private_malloc_t->next; } kc_a_hashtable_t->dec_dynamic_malloc_private_data = kc_a_private_malloc_t; kc_a_hashtable_t->dynamic_malloc_private_data = 0; kc_ht_do_free_level(kc_a_hashtable_t); } /* free/reuse the buckets, and re-initialize the hashtable-entries */ if (kc_reuse) { /* zero the buckets; reset nr field */ for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) { for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) { /* we only do something if nr !=0, else there is nothing to do * because of our 'invariant' */ if (kc_a_hashtable_t->hashtable[kc_i][kc_m].nr) { KC_BZERO((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index, (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE)); kc_a_hashtable_t->hashtable[kc_i][kc_m].nr = 0; } } } } else if (kc_reinit) { /* zero & free the buckets; reset nr, index, ibound fields */ if (kc_a_hashtable_t->free_buckets) { (*kc_a_hashtable_t->free_buckets)(kc_a_hashtable_t->bucket_alloc_private_data); KC_BZERO(kc_a_hashtable_t->hashtable, (kc_size_t)kc_a_hashtable_t->size*((int)kc_last_storage_mode)*sizeof(kc_hashtableentry_t)); #if 0 for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) { for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) { /* we do something if ibound !=0, it is not suficient to * look only at the nr field, because the nr field might be * reset in a previous reuse operation. * we could as well look for an non-null index field. */ if (kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound) { kc_a_hashtable_t->hashtable[kc_i][kc_m].index = 0; kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound = 0; kc_a_hashtable_t->hashtable[kc_i][kc_m].nr = 0; } } } #endif } else if (kc_a_hashtable_t->free_bucket) { for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) { for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) { /* we do something if ibound !=0, it is not suficient to * look only at the nr field, because the nr field might be * reset in a previous reuse operation. * we could as well look for an non-null index field. */ if (kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound) { KC_BZERO((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index, (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE)); (*kc_a_hashtable_t->free_bucket)((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index, (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE), kc_a_hashtable_t->bucket_alloc_private_data); kc_a_hashtable_t->hashtable[kc_i][kc_m].index = 0; kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound = 0; kc_a_hashtable_t->hashtable[kc_i][kc_m].nr = 0; } } } } else { /* should be a better error message */ /*SUPPRESS 622*/ assert(kc_zero_constant); } } else { /* zero & free the buckets */ if (kc_a_hashtable_t->free_buckets) { (*kc_a_hashtable_t->free_buckets)(kc_a_hashtable_t->bucket_alloc_private_data); } else if (kc_a_hashtable_t->free_bucket) { for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) { for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) { /* we do something if index !=0, it is not suficient to * look only at the nr field, because the nr field might be * reset in a previous reuse operation. * we could as well look for an non-null ibound field. */ if (kc_a_hashtable_t->hashtable[kc_i][kc_m].index) { KC_BZERO((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index, (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE)); (*kc_a_hashtable_t->free_bucket)((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index, (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE), kc_a_hashtable_t->bucket_alloc_private_data); } } } } else { /* should be a better error message */ /*SUPPRESS 622*/ assert(kc_zero_constant); } } } static void kc_ht_do_clear_no_all_elements #ifdef KC_USE_PROTOTYPES (kc_hashtable_t kc_a_hashtable_t, boolean kc_reuse, boolean kc_reinit) #else (kc_a_hashtable_t, kc_reuse, kc_reinit) kc_hashtable_t kc_a_hashtable_t; boolean kc_reuse; boolean kc_reinit; #endif { int kc_i, kc_m; /* free all static stuff */ /* done on the fly, below */ /* free all dynamic stuff */ /* done on the fly, below */ /* free/reuse the buckets, and re-initialize the hashtable-entries */ if (kc_reuse) { /* zero the buckets; reset nr field */ for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) { for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) { /* we only do something if nr !=0, else there is nothing to do * because of our 'invariant' */ if (kc_a_hashtable_t->hashtable[kc_i][kc_m].nr) { kc_ht_free_single_elements(kc_a_hashtable_t, kc_i, kc_m); KC_BZERO((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index, (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE)); kc_a_hashtable_t->hashtable[kc_i][kc_m].nr = 0; } } } } else if (kc_reinit) { /* zero & free the buckets; reset nr, index, ibound fields */ if (kc_a_hashtable_t->free_buckets) { (*kc_a_hashtable_t->free_buckets)(kc_a_hashtable_t->bucket_alloc_private_data); KC_BZERO(kc_a_hashtable_t->hashtable, (kc_size_t)kc_a_hashtable_t->size*((int)kc_last_storage_mode)*sizeof(kc_hashtableentry_t)); #if 0 for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) { for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) { /* we do something if ibound !=0, it is not suficient to * look only at the nr field, because the nr field might be * reset in a previous reuse operation. * we could as well look for an non-null index field. */ if (kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound) { kc_ht_free_single_elements(kc_a_hashtable_t, kc_i, kc_m); kc_a_hashtable_t->hashtable[kc_i][kc_m].index = 0; kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound = 0; kc_a_hashtable_t->hashtable[kc_i][kc_m].nr = 0; } } } #endif } else if (kc_a_hashtable_t->free_bucket) { for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) { for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) { /* we do something if ibound !=0, it is not suficient to * look only at the nr field, because the nr field might be * reset in a previous reuse operation. * we could as well look for an non-null index field. */ if (kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound) { kc_ht_free_single_elements(kc_a_hashtable_t, kc_i, kc_m); KC_BZERO((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index, (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE)); (*kc_a_hashtable_t->free_bucket)((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index, (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE), kc_a_hashtable_t->bucket_alloc_private_data); kc_a_hashtable_t->hashtable[kc_i][kc_m].index = 0; kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound = 0; kc_a_hashtable_t->hashtable[kc_i][kc_m].nr = 0; } } } } else { /* should be a better error message */ /*SUPPRESS 622*/ assert(kc_zero_constant); } } else { /* zero & free the buckets */ if (kc_a_hashtable_t->free_buckets) { (*kc_a_hashtable_t->free_buckets)(kc_a_hashtable_t->bucket_alloc_private_data); } else if (kc_a_hashtable_t->free_bucket) { for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) { for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) { /* we do something if index !=0, it is not suficient to * look only at the nr field, because the nr field might be * reset in a previous reuse operation. * we could as well look for an non-null ibound field. */ if (kc_a_hashtable_t->hashtable[kc_i][kc_m].index) { kc_ht_free_single_elements(kc_a_hashtable_t, kc_i, kc_m); KC_BZERO((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index, (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE)); (*kc_a_hashtable_t->free_bucket)((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index, (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE), kc_a_hashtable_t->bucket_alloc_private_data); } } } } else { /* should be a better error message */ /*SUPPRESS 622*/ assert(kc_zero_constant); } } } static void kc_ht_do_clear #ifdef KC_USE_PROTOTYPES (kc_hashtable_t kc_a_hashtable_t, boolean kc_reuse, boolean kc_reinit) #else (kc_a_hashtable_t, kc_reuse, kc_reinit) kc_hashtable_t kc_a_hashtable_t; boolean kc_reuse; boolean kc_reinit; #endif { if (kc_a_hashtable_t->free_all_elements) { kc_ht_do_clear_all_elements(kc_a_hashtable_t, kc_reuse, kc_reinit); } else { kc_ht_do_clear_no_all_elements(kc_a_hashtable_t, kc_reuse, kc_reinit); } } void kc_ht_clear #ifdef KC_USE_PROTOTYPES (kc_hashtable_t kc_a_hashtable_t) #else (kc_a_hashtable_t) kc_hashtable_t kc_a_hashtable_t; #endif { kc_ht_do_clear(kc_a_hashtable_t, False, True ); if (kc_a_hashtable_t->kc_to_be_freed) { kc_a_hashtable_t->static_malloc_private_data = (kc_voidptr_t)(*kc_a_hashtable_t->malloc_initialise)(); } /* else: it is a statically allocated hashtable with a statically allocated * static_malloc_private_data that will not be freed either... we have to * trust that our free_all_elements routine (called via kc_ht_do_clear) * prepares the static_malloc_private_data for reuse */ kc_a_hashtable_t->malloc_private_data = kc_a_hashtable_t->static_malloc_private_data; kc_a_hashtable_t->dynamic_malloc_private_data = 0; kc_a_hashtable_t->dec_dynamic_malloc_private_data = 0; kc_a_hashtable_t->mode = kc_ht_store_static; kc_a_hashtable_t->bucket_alloc_private_data = (kc_a_hashtable_t->bucket_alloc_initialise) ? (kc_voidptr_t)(*kc_a_hashtable_t->bucket_alloc_initialise)() : 0; } void kc_ht_reuse #ifdef KC_USE_PROTOTYPES (kc_hashtable_t kc_a_hashtable_t) #else (kc_a_hashtable_t) kc_hashtable_t kc_a_hashtable_t; #endif { kc_ht_do_clear(kc_a_hashtable_t, True, True ); if (kc_a_hashtable_t->kc_to_be_freed) { kc_a_hashtable_t->static_malloc_private_data = (kc_voidptr_t)(*kc_a_hashtable_t->malloc_initialise)(); } /* else: it is a statically allocated hashtable with a statically allocated * static_malloc_private_data that will not be freed either... we have to * trust that our free_all_elements routine (called via kc_ht_do_clear) * prepares the static_malloc_private_data for reuse */ kc_a_hashtable_t->malloc_private_data = kc_a_hashtable_t->static_malloc_private_data; kc_a_hashtable_t->dynamic_malloc_private_data = 0; kc_a_hashtable_t->dec_dynamic_malloc_private_data = 0; kc_a_hashtable_t->mode = kc_ht_store_static; kc_a_hashtable_t->bucket_alloc_private_data = (kc_a_hashtable_t->bucket_alloc_initialise) ? (kc_voidptr_t)(*kc_a_hashtable_t->bucket_alloc_initialise)() : 0; } void kc_ht_delete #ifdef KC_USE_PROTOTYPES (kc_hashtable_t kc_a_hashtable_t) #else (kc_a_hashtable_t) kc_hashtable_t kc_a_hashtable_t; #endif { kc_ht_do_clear(kc_a_hashtable_t, False, False); if (kc_a_hashtable_t->kc_to_be_freed) { kc_a_hashtable_t->next->prev = kc_a_hashtable_t->prev; kc_a_hashtable_t->prev->next = kc_a_hashtable_t->next; if (kc_all_hashtables == kc_a_hashtable_t) { kc_all_hashtables = kc_a_hashtable_t->next; } KC_BZERO((kc_voidptr_t)kc_a_hashtable_t->hashtable, (kc_size_t)sizeof(struct kc_tag_kc_hashtableentry_t) * kc_a_hashtable_t->size); FREE((kc_voidptr_t)kc_a_hashtable_t->hashtable); KC_BZERO((kc_voidptr_t)kc_a_hashtable_t, sizeof(struct kc_tag_kc_hashtable_struct_t)); FREE((kc_voidptr_t)kc_a_hashtable_t); } } /* atoms creation */ #ifdef KC_STDC # define kc_mylower(c) (isupper(c) ? tolower(c) : c) #else # define kc_mylower(c) ((isascii(c) && isupper(c)) ? tolower(c) : c) #endif /* should be static, maybe? */ int kc_ci_strcmp #ifdef KC_USE_PROTOTYPES (char *kc_s1, char *kc_s2) #else (kc_s1, kc_s2) char *kc_s1, *kc_s2; #endif { int tmp; while ((*kc_s1 != '\\0') && (*kc_s2 != '\\0')) { if ( (tmp = kc_mylower(*kc_s1) - kc_mylower(*kc_s2)) != 0 ) return tmp; kc_s1++; kc_s2++; } return( (*kc_s1 != '\\0') - (*kc_s2 != '\\0') ); } static unsigned kc_casestrhash #ifdef KC_USE_PROTOTYPES (char *kc_s) #else (kc_s) char *kc_s; #endif { register unsigned kc_i = 0; register char *kc_sp; for (kc_sp = kc_s; *kc_sp != '\\0'; kc_sp++) kc_i = (unsigned)((kc_i * 75) + *kc_sp); return kc_i; } static unsigned kc_nocasestrhash #ifdef KC_USE_PROTOTYPES (char *kc_s) #else (kc_s) char *kc_s; #endif { register unsigned kc_i = 0; register char *kc_sp; for (kc_sp = kc_s; *kc_sp != '\\0'; kc_sp++) kc_i = (unsigned)((kc_i * 75) + kc_mylower(*kc_sp)); return kc_i; } #undef kc_mylower " d:view_gen_initializephyla_c "casestring mkcasestring #ifdef KC_USE_PROTOTYPES (char *kc_s) #else (kc_s) char *kc_s; #endif { register casestring kc_x; int kc_i; register kc_hashtableentry_t* kc_hte; unsigned kc_hashval = (unsigned)0; YYSTYPE *kc_ptr, *kc_beyond; kc_hashtable_t kc_a_ht = kc_hashtables[(int)uniq]; KC_COLLECT_STATS0(KC_CREATE_STATS(sel__Str)); OPERATORHASH((unsigned) sel__Str); CASESTRHASH(kc_s); kc_hashval = kc_hashval%kc_a_ht->size; for (kc_i=0; kc_i < (int)kc_last_storage_mode; kc_i++) { kc_hte = &(kc_a_ht->hashtable[kc_hashval][kc_i]); if (kc_hte->nr != 0) { kc_beyond = &kc_hte->index[kc_hte->nr]; for (kc_ptr = &kc_hte->index[0]; kc_ptr < kc_beyond; kc_ptr++){ kc_x= kc_ptr->yt_casestring; if ((kc_x->prod_sel == sel__Str) && (strcmp(kc_x->name, kc_s) == 0)) return(kc_x); } } } KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel__Str)); kc_hte = &(kc_a_ht->hashtable[kc_hashval][(int)kc_a_ht->mode]); if (kc_hte->nr >= kc_hte->ibound) kc_growindex(kc_hte, kc_a_ht); kc_x = (casestring)(*kc_a_ht->malloc)((kc_size_t)sizeof(struct kc_tag_casestring), kc_a_ht->malloc_private_data); kc_x->name = (char*)(*kc_a_ht->malloc)((kc_size_t)(strlen(kc_s))+1, kc_a_ht->malloc_private_data); kc_x->prod_sel = sel__Str; (void)strcpy(kc_x->name, kc_s); kc_hte->index[kc_hte->nr++].yt_casestring = kc_x; KC_COLLECT_STATS0(kc_casestring_strlen += strlen(kc_s)+1;); return kc_x; } nocasestring mknocasestring #ifdef KC_USE_PROTOTYPES (char *kc_s) #else (kc_s) char *kc_s; #endif { register nocasestring kc_x; int kc_i; register kc_hashtableentry_t* kc_hte; unsigned kc_hashval = (unsigned)0; YYSTYPE *kc_ptr, *kc_beyond; kc_hashtable_t kc_a_ht = kc_hashtables[(int)uniq]; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NoCaseStr)); OPERATORHASH((unsigned) sel_NoCaseStr); NOCASESTRHASH(kc_s); kc_hashval = kc_hashval%kc_a_ht->size; for (kc_i=0; kc_i < (int)kc_last_storage_mode; kc_i++) { kc_hte = &(kc_a_ht->hashtable[kc_hashval][kc_i]); if (kc_hte->nr != 0) { kc_beyond = &kc_hte->index[kc_hte->nr]; for (kc_ptr = &kc_hte->index[0]; kc_ptr < kc_beyond; kc_ptr++){ kc_x= kc_ptr->yt_nocasestring; if ((kc_x->prod_sel == sel_NoCaseStr) && (kc_ci_strcmp(kc_x->name, kc_s) == 0)) return(kc_x); } } } KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NoCaseStr)); kc_hte = &(kc_a_ht->hashtable[kc_hashval][(int)kc_a_ht->mode]); if (kc_hte->nr >= kc_hte->ibound) kc_growindex(kc_hte, kc_a_ht); kc_x = (nocasestring)(*kc_a_ht->malloc)((kc_size_t)sizeof(struct kc_tag_nocasestring), kc_a_ht->malloc_private_data); kc_x->name = (char*)(*kc_a_ht->malloc)((kc_size_t)(strlen(kc_s))+1, kc_a_ht->malloc_private_data); kc_x->prod_sel = sel_NoCaseStr; (void)strcpy(kc_x->name, kc_s); kc_hte->index[kc_hte->nr++].yt_nocasestring = kc_x; KC_COLLECT_STATS0(kc_nocasestring_strlen += strlen(kc_s)+1;); return kc_x; } kc_hashnode_t kc_mksharinghashnode #ifdef KC_USE_PROTOTYPES (YYSTYPE kc_s, kc_hashtable_t kc_a_ht, kc_enum_phyla kc_phylum) #else (kc_s, kc_a_ht, kc_phylum) YYSTYPE kc_s; kc_hashtable_t kc_a_ht; kc_enum_phyla kc_phylum; #endif { register kc_hashnode_t kc_x; int kc_i; register kc_hashtableentry_t* kc_hte; unsigned kc_hashval = (unsigned)0; YYSTYPE *kc_ptr, *kc_beyond; switch(kc_phylum) { case (int)kc_phylum_int: INTHASH(kc_s.yt_int); break; case (int)kc_phylum_float: FLOATHASH(kc_s.yt_float); break; default: HASH(kc_s.yt_voidptr); break; } kc_hashval = kc_hashval%kc_a_ht->size; for (kc_i=0; kc_i < (int)kc_last_storage_mode; kc_i++) { kc_hte = &(kc_a_ht->hashtable[kc_hashval][kc_i]); if (kc_hte->nr != 0) { kc_beyond = &kc_hte->index[kc_hte->nr]; for (kc_ptr = &kc_hte->index[0]; kc_ptr < kc_beyond; kc_ptr++){ kc_x= kc_ptr->yt_kc_hashnode_t; if ((kc_x->prod_sel == (kc_enum_operators)0) && (((kc_phylum == kc_phylum_int) && (kc_x->ptr.yt_int == kc_s.yt_int)) || ((kc_phylum == kc_phylum_float) && (kc_x->ptr.yt_float == kc_s.yt_float)) || (kc_x->ptr.yt_voidptr == kc_s.yt_voidptr))) return(kc_x); } } } kc_hte = &(kc_a_ht->hashtable[kc_hashval][(int)kc_a_ht->mode]); if (kc_hte->nr >= kc_hte->ibound) kc_growindex(kc_hte, kc_a_ht); kc_x = (kc_hashnode_t)(*kc_a_ht->malloc)((kc_size_t)sizeof(struct kc_tag_kc_hashnode_t), kc_a_ht->malloc_private_data); kc_x->ptr = kc_s; kc_x->number = -1; /* IMPORTANT: some code depends on this -1 */ kc_x->created = False; kc_x->prod_sel = (kc_enum_operators)0; kc_hte->index[kc_hte->nr++].yt_kc_hashnode_t = kc_x; return kc_x; } /*ARGSUSED*/ kc_hashnode_t kc_mknonsharinghashnode #ifdef KC_USE_PROTOTYPES (YYSTYPE kc_s, kc_hashtable_t kc_a_ht, kc_enum_phyla kc_phylum) #else (kc_s, kc_a_ht, kc_phylum) YYSTYPE kc_s; kc_hashtable_t kc_a_ht; kc_enum_phyla kc_phylum; #endif { static struct kc_tag_kc_hashnode_t kc_x_struct; kc_x_struct.number = -1; /* IMPORTANT: some code depends on this -1 */ kc_x_struct.created = False; return &kc_x_struct; } kc_dotedgenode_t kc_mkdotedgenode #ifdef KC_USE_PROTOTYPES (kc_hashtable_t kc_a_ht, YYSTYPE kc_s_from, kc_enum_phyla kc_phy_from, YYSTYPE kc_s_to, kc_enum_phyla kc_phy_to, int kc_son_nr) #else (kc_a_ht, kc_s_from, kc_phy_from, kc_s_to, kc_phy_to, kc_son_nr) kc_hashtable_t kc_a_ht; YYSTYPE kc_s_from; kc_enum_phyla kc_phy_from; YYSTYPE kc_s_to; kc_enum_phyla kc_phy_to; int kc_son_nr; #endif { register kc_dotedgenode_t kc_x; int kc_i; register kc_hashtableentry_t* kc_hte; unsigned kc_hashval = (unsigned)0; YYSTYPE *kc_ptr, *kc_beyond; OPERATORHASH((unsigned) kc_phy_from); switch(kc_phy_from) { case (int)kc_phylum_int: INTHASH(kc_s_from.yt_int); break; case (int)kc_phylum_float: FLOATHASH(kc_s_from.yt_float); break; default: HASH(kc_s_from.yt_voidptr); break; } OPERATORHASH((unsigned) kc_phy_to); switch(kc_phy_to) { case (int)kc_phylum_int: INTHASH(kc_s_to.yt_int); break; case (int)kc_phylum_float: FLOATHASH(kc_s_to.yt_float); break; default: HASH(kc_s_to.yt_voidptr); break; } INTHASH(kc_son_nr); kc_hashval = kc_hashval%kc_a_ht->size; for (kc_i=0; kc_i < (int)kc_last_storage_mode; kc_i++) { kc_hte = &(kc_a_ht->hashtable[kc_hashval][kc_i]); if (kc_hte->nr != 0) { kc_beyond = &kc_hte->index[kc_hte->nr]; for (kc_ptr = &kc_hte->index[0]; kc_ptr < kc_beyond; kc_ptr++){ kc_x= kc_ptr->yt_kc_dotedgenode_t; if ((kc_x->prod_sel == (kc_enum_operators)0) && (kc_x->phy_from == kc_phy_from) && (kc_x->phy_to == kc_phy_to) && (kc_x->son_nr == kc_son_nr) && (((kc_phy_from == kc_phylum_int) && (kc_x->ptr_from.yt_int == kc_s_from.yt_int)) || ((kc_phy_from == kc_phylum_float) && (kc_x->ptr_from.yt_float == kc_s_from.yt_float)) || (kc_x->ptr_from.yt_voidptr == kc_s_from.yt_voidptr)) && (((kc_phy_to == kc_phylum_int) && (kc_x->ptr_to.yt_int == kc_s_to.yt_int)) || ((kc_phy_to == kc_phylum_float) && (kc_x->ptr_to.yt_float == kc_s_to.yt_float)) || (kc_x->ptr_to.yt_voidptr == kc_s_to.yt_voidptr)) ) return(kc_x); } } } kc_hte = &(kc_a_ht->hashtable[kc_hashval][(int)kc_a_ht->mode]); if (kc_hte->nr >= kc_hte->ibound) kc_growindex(kc_hte, kc_a_ht); kc_x = (kc_dotedgenode_t)(*kc_a_ht->malloc)((kc_size_t)sizeof(struct kc_tag_kc_dotedgenode_t), kc_a_ht->malloc_private_data); kc_x->ptr_to = kc_s_to; kc_x->ptr_from = kc_s_from; kc_x->phy_from = kc_phy_from; kc_x->phy_to = kc_phy_to; kc_x->son_nr = kc_son_nr; kc_x->label = 0; kc_x->lsize = 0; kc_x->next = 0; kc_x->prod_sel = (kc_enum_operators)0; kc_hte->index[kc_hte->nr++].yt_kc_dotedgenode_t = kc_x; return kc_x; } " d ]; Nilstorageclasses() -> [view_gen_operatordefs_c: {/*EMPTY*/} ]; Consstorageclasses( sc, Nilstorageclasses()) -> [view_gen_operatordefs_c: "\"" sc "\"" ]; Consstorageclasses( sc, r_sc) -> [view_gen_operatordefs_c: r_sc ", \"" sc "\"" ]; Nilstorageclasses() -> [view_gen_operatordefs_c_0: {/*EMPTY*/} ]; Consstorageclasses( sc, r_sc) -> [view_gen_operatordefs_c_0: r_sc "static kc_hashtableentry_t kc_mainhasharray_" sc "[LARGEPRIME+1][(int)kc_last_storage_mode]; /* +1 because LARGEPRIME can be 0 */ " ]; Consstorageclasses( sc = Id( Str( "kc_not_uniq")), r_sc), Consstorageclasses( sc = Id( Str( "kc_uniq_nullary_operator")), r_sc) -> [view_gen_operatordefs_c_0: r_sc "static kc_hashtableentry_t kc_mainhasharray_" sc "[1][(int)kc_last_storage_mode]; " ]; Nilstorageclasses() -> [view_gen_operatordefs_c_1: {/*EMPTY*/} ]; Consstorageclasses( *, Nilstorageclasses()) -> [view_gen_operatordefs_c_1: "True" ]; Consstorageclasses( *, r_sc) -> [view_gen_operatordefs_c_1: r_sc ", True" ]; Nilstorageclasses() -> [view_gen_operatordefs_c_2: {/*EMPTY*/} ]; Consstorageclasses( sc, r_sc) -> [view_gen_operatordefs_c_2: r_sc "static kc_memory_info_t kc_memory_info_" sc " = { 0, 0, 0, &kc_mainmemory_freelist, 0, KC_MEMORY_BLOCKSIZE }; " ]; Nilstorageclasses() -> [view_gen_operatordefs_c_2a: {/*EMPTY*/} ]; Consstorageclasses( sc, Nilstorageclasses()) -> [view_gen_operatordefs_c_2a: "&kc_memory_info_" sc ]; Consstorageclasses( sc, r_sc) -> [view_gen_operatordefs_c_2a: r_sc ", &kc_memory_info_" sc ]; Nilstorageclasses() -> [view_gen_operatordefs_c_3: {/*EMPTY*/} ]; Consstorageclasses( *, Nilstorageclasses()) -> [view_gen_operatordefs_c_3: $0:view_gen_operatordefs_c_3a ]; Consstorageclasses( *, r_sc) -> [view_gen_operatordefs_c_3: r_sc ", " $0:view_gen_operatordefs_c_3a ]; Consstorageclasses( sc, *) -> [view_gen_operatordefs_c_3a: "&kc_static_hashtables[(int)" sc "]" ]; Nilstorageclasses() -> [view_gen_operatordefs_c_4: {/*EMPTY*/} ]; Consstorageclasses( *, *) -> [view_gen_operatordefs_c_4: { gl_nr_of_hashtables = length_storageclasses( Thestorageclasses ); gl_hashtablenr_next = 1; gl_hashtablenr_prev = gl_nr_of_hashtables - 1; } $0:view_gen_operatordefs_c_4z ]; Nilstorageclasses() -> [view_gen_operatordefs_c_4z: {/*EMPTY*/} ]; Consstorageclasses( *, Nilstorageclasses()) -> [view_gen_operatordefs_c_4z: $0:view_gen_operatordefs_c_4a ]; Consstorageclasses( *, r_sc) -> [view_gen_operatordefs_c_4z: r_sc ", " $0:view_gen_operatordefs_c_4a ]; Consstorageclasses( sc = Id( Str( "kc_not_uniq")), *), Consstorageclasses( sc = Id( Str( "kc_uniq_nullary_operator")), *) -> [view_gen_operatordefs_c_4a: "{ kc_mainhasharray_" sc ", 0 /*size*/, 0 /*kc_to_be_freed*/, &kc_static_hashtables[" (int)gl_hashtablenr_next "], &kc_static_hashtables[" (int)gl_hashtablenr_prev "], /* node allocation*/ (kc_voidptr_t(*)())UNIQMALLOCINIT, UNIQMALLOC2, 0 /*UNIQFREEELEMENT*/, UNIQFREEALL, INUNIQBLOCK, (kc_voidptr_t)&kc_memory_info_" sc " /*malloc_private_data*/, (kc_voidptr_t)&kc_memory_info_" sc " /*static_malloc_private_data*/, 0 /*dynamic_malloc_private_data*/, 0 /*dec_dynamic_malloc_private_data*/, kc_ht_store_static, UNIQMEMORYINFO, /* bucket allocation */ BUCKETALLOCINIT, BUCKETCALLOC, BUCKETREALLOC, 0 /*bucket_alloc_private_data*/, BUCKETFREE, BUCKETSFREE, BUCKETINC, BUCKETMEMORYINFO }" { gl_hashtablenr_next = (gl_hashtablenr_next + 1) % gl_nr_of_hashtables; gl_hashtablenr_prev = (gl_hashtablenr_prev + 1) % gl_nr_of_hashtables; } ]; Consstorageclasses( sc, *) -> [view_gen_operatordefs_c_4a: "{ kc_mainhasharray_" sc ", LARGEPRIME /*size*/, 0 /*kc_to_be_freed*/, &kc_static_hashtables[" (int)gl_hashtablenr_next "], &kc_static_hashtables[" (int)gl_hashtablenr_prev "], /* node allocation*/ (kc_voidptr_t(*)())UNIQMALLOCINIT, UNIQMALLOC2, 0 /*UNIQFREEELEMENT*/, UNIQFREEALL, INUNIQBLOCK, (kc_voidptr_t)&kc_memory_info_" sc ", (kc_voidptr_t)&kc_memory_info_" sc ", 0 /*dynamic_malloc_private_data*/, 0 /*dec_dynamic_malloc_private_data*/, kc_ht_store_static, UNIQMEMORYINFO, /* bucket allocation */ BUCKETALLOCINIT, BUCKETCALLOC, BUCKETREALLOC, 0 /*bucket_alloc_private_data*/, BUCKETFREE, BUCKETSFREE, BUCKETINC, BUCKETMEMORYINFO }" { gl_hashtablenr_next = (gl_hashtablenr_next + 1) % gl_nr_of_hashtables; gl_hashtablenr_prev = (gl_hashtablenr_prev + 1) % gl_nr_of_hashtables; } ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_initializephyla_c: rpds pd ]; Nilphylumdeclarations() -> [view_gen_initializephyla_c: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_initializephyla_c: {/*EMPTY*/} ]; PhylumDeclaration( id, *, ListAlternatives( *, * ), cco ), PhylumDeclaration( id, *, NonlistAlternatives( * ), cco ) -> [view_gen_initializephyla_c: { if (f_something_to_initialize( cco )) } ${ "static " id " kc_initialize_" id " #ifdef KC_USE_PROTOTYPES (" id " kc_x) #else (kc_x) " id " kc_x; #endif { " cco (charptr)g_emptystring:view_printer_outputfileline " return kc_x; } " $} ]; PhylumDeclaration( *, *, PredefinedAlternatives( * ), * ) -> [view_gen_initializephyla_c: {/*EMPTY*/} ]; CcodeOption( attr, init ) -> [view_gen_initializephyla_c: attr init ]; Consattributes( Attribute( *, aid, Yesattribute_initialisation( cexpr )), ra) -> [view_gen_initializephyla_c: { ID selvar; } ra { selvar = Id(Str(mkcasestring("kc_x"))); selvar->line = aid->line; /* give selvar the line/file info of attribute name */ selvar->file = aid->file; /*cf_pushselvar( selvar );*/ cf_pushdollarvar( selvar ); cf_pushdollarvarext( f_emptyId() ); cf_pushoperator( f_emptyId() ); } "#line " aid->line " \"" aid->file:view_filename "\" kc_x->" aid " = " cexpr "; " { /*cf_popselvar();*/ cf_popdollarvar(); cf_popdollarvarext(); cf_popoperator(); } ]; Consattributes( Attribute( *, *, Noattribute_initialisation()), ra ) -> [view_gen_initializephyla_c: ra ]; Nilattributes() -> [view_gen_initializephyla_c: {/*EMPTY*/} ]; ConsCtexts( ct, cts ) -> [view_gen_initializephyla_c: { ID selvar; } cts { selvar = Id(Str(mkcasestring("kc_x"))); selvar->line = ct->line; /* give selvar the line/file info of the ctext */ selvar->file = ct->file; /*cf_pushselvar( selvar );*/ cf_pushdollarvar( selvar ); cf_pushdollarvarext( f_emptyId() ); cf_pushoperator( f_emptyId() ); } "#line " ct->line " \"" ct->file:view_filename "\" " ct (charptr)g_emptystring:view_printer_outputfileline { /*cf_popselvar();*/ cf_popdollarvar(); cf_popdollarvarext(); cf_popoperator(); } ]; ConsCexpression( ce, ces ) -> [view_gen_initializephyla_c: ces ce ]; NilCexpression() -> [view_gen_initializephyla_c: {/*EMPTY*/} ]; CExpressionPart( cs ) -> [view_gen_initializephyla_c: cs ]; UnpDollarvarTerm( i ), UnpDollarvarAttr( i, * ), CTextDollarVar( i ), CExpressionDollarvar( i ) -> [view_gen_initializephyla_c: { ID oid = f_emptyId(), dollarvar = cf_topdollarvar(), dollarvarext = cf_topdollarvarext(); argument arg; boolean nulvar = True; with( i ) { Int( ii ): { if (ii != 0) { nulvar = False; oid = cf_topoperator(); arg = f_argumentofoperator( oid, i ); } } } } /* below we use the fact that the dollar var is only allowed if there is * only ONE dollar. And we know that in that case it will have number one... * so we DEPEND on that... */ { if (nulvar) } ${ (ID)dollarvar (ID)dollarvarext $} { else } ${ (ID)dollarvar (ID)dollarvarext "->u." (ID)oid "." (argument)arg { free_argument( arg, False/* TOBECHECKED*/ ); } $} ]; Argument( id, i ) -> [ /*allow all views here */: id "_" i ]; CExpressionNl( i ) -> [view_gen_initializephyla_c: { char *nl_string = f_mknls( i ); } (charptr)nl_string ]; CExpressionDQ( cedq ) -> [view_gen_initializephyla_c: "\"" cedq "\"" ]; CExpressionSQ( cesq ) -> [view_gen_initializephyla_c: "'" cesq "'" ]; CExpressionPack( cexpr ) -> [view_gen_initializephyla_c: "(" cexpr ")" ]; CExpressionArray( cexpr ) -> [view_gen_initializephyla_c: "[" cexpr "]" ]; NilCtexts() -> [view_gen_initializephyla_c: {/*EMPTY*/} ]; ConsCtext( cte, ct ) -> [view_gen_initializephyla_c: { gl_print_line_directive = False; } ct cte ]; NilCtext() -> [view_gen_initializephyla_c: {/*EMPTY*/} ]; CTextLine( cs ) -> [view_gen_initializephyla_c: { if (gl_print_line_directive) } ${ "#line " $0->line " \"" $0->file:view_filename "\" " { gl_print_line_directive = False; } $} cs ]; CTextNl( i ) -> [view_gen_initializephyla_c: { char *nl_string; } { if (gl_print_line_directive) } ${ "#line " $0->line " \"" $0->file:view_filename "\" " { gl_print_line_directive = False; } { nl_string = f_mknls( i - 1 ); } $} { else } ${ { nl_string = f_mknls( i ); } $} (charptr)nl_string ]; CTextCexpressionDQ( cedq ) -> [view_gen_initializephyla_c: { if (gl_print_line_directive) } ${ "#line " $0->line " \"" $0->file:view_filename "\" " { gl_print_line_directive = False; } $} "\"" cedq "\"" ]; CTextCexpressionSQ( cesq ) -> [view_gen_initializephyla_c: { if (gl_print_line_directive) } ${ "#line " $0->line " \"" $0->file:view_filename "\" " { gl_print_line_directive = False; } $} "'" cesq "'" ]; CTextCbody( ct ) -> [view_gen_initializephyla_c: { if (gl_print_line_directive) } ${ "#line " $0->line " \"" $0->file:view_filename "\" " { gl_print_line_directive = False; } $} "{" ct "}" { if (gl_print_line_directive) } ${ " " $} ]; CTextForeachexpression( *, idcexpr, *, ct, fa ) -> [view_gen_initializephyla_c: { ID selvar = f_mkselvar("kc_selvar_", g_ctext_level); selvar->line = $0->line; /* give selvar the line/file info of the ctext */ selvar->file = $0->file; cf_pushselvar( selvar ); } "{ " idcexpr idcexpr:view_gen_initializephyla_assert_c (charptr)g_emptystring:view_printer_outputfileline "while( " idcexpr:view_gen_initializephyla_whiletest_c " ) { " idcexpr:view_gen_initializephyla_init_el_c "{ #line " ct->line " \"" ct->file:view_filename "\" " ct (charptr)g_emptystring:view_printer_outputfileline "} " idcexpr:view_gen_initializephyla_update_loop_c (charptr)g_emptystring:view_printer_outputfileline "} " { cf_popselvar(); selvar = Id(Str(mkcasestring("kc_fe_selvar"))); selvar->line = fa->line; /* give selvar the line/file info of the ctext */ selvar->file = fa->file; cf_pushselvar( selvar ); } fa "} " { cf_popselvar(); gl_print_line_directive = True; } ]; NoForeachAfter() -> [view_gen_initializephyla_c: {/*EMPTY*/} ]; ForeachAfter( *, *, *, ct ) -> [view_gen_initializephyla_c: "{ #line " ct->line " \"" ct->file:view_filename "\" " ct (charptr)g_emptystring:view_printer_outputfileline "} " ]; NilidCexpressions() -> [view_gen_initializephyla_c view_gen_initializephyla_assert_c view_gen_initializephyla_whiletest_c view_gen_initializephyla_init_el_c view_gen_initializephyla_update_loop_c : { g_fe_selvar_nr = 0; } ]; ConsidCexpressions( IdCexpression( tid, cexpr ), t ) -> [view_gen_initializephyla_c: t { g_fe_selvar_nr++; } { if (cexpr->line) } ${ "#line " cexpr->line " \"" cexpr->file:view_filename "\" " $} tid " kc_fe_selvar_" (int)g_fe_selvar_nr " = " cexpr "; " ]; ConsidCexpressions( IdCexpression( tid, cexpr ), t ) -> [view_gen_initializephyla_assert_c: t { g_fe_selvar_nr++; } { if (cexpr->line) } ${ "#line " cexpr->line " \"" cexpr->file:view_filename "\" " $} "/*SUPPRESS 622*/ assert_" tid "(kc_fe_selvar_" (int)g_fe_selvar_nr ", \"foreach_list_expression\"); " ]; ConsidCexpressions( IdCexpression( tid, cexpr ), t ) -> [view_gen_initializephyla_whiletest_c: t { g_fe_selvar_nr++; } " && kc_fe_selvar_" (int)g_fe_selvar_nr "->prod_sel == sel_Cons" tid " " ]; ConsidCexpressions( IdCexpression( tid, cexpr ), t = NilidCexpressions() ) -> [view_gen_initializephyla_whiletest_c: t { g_fe_selvar_nr++; } " kc_fe_selvar_" (int)g_fe_selvar_nr "->prod_sel == sel_Cons" tid " " ]; ConsidCexpressions( ice = IdCexpression( tid, cexpr ), t ) -> [view_gen_initializephyla_init_el_c: { ID element_type = f_listelementphylum( tid ); ID selvar = cf_topselvar(); } t { g_fe_selvar_nr++; } (ID)element_type " " (ID)selvar "_" (int)g_fe_selvar_nr " = kc_fe_selvar_" (int)g_fe_selvar_nr "->u.Cons" tid "." (ID)element_type "_1; " ]; ConsidCexpressions( IdCexpression( tid, cexpr ), t ) -> [view_gen_initializephyla_update_loop_c: t { g_fe_selvar_nr++; } "kc_fe_selvar_" (int)g_fe_selvar_nr " = kc_fe_selvar_" (int)g_fe_selvar_nr "->u.Cons" tid "." tid "_1; #line " cexpr->line " \"" cexpr->file:view_filename "\" /*SUPPRESS 622*/ assert_" tid "(kc_fe_selvar_" (int)g_fe_selvar_nr ", \"sublist_of_foreach_list_expression\"); " ]; ctw = CTextWithexpression( wexpr, wcs, in_foreach_context ) -> [view_gen_initializephyla_c: { if (wcs->wcinfo) } ${ { /* ID selvar_type = f_phylumofwithcasesinfo( wcs->wcinfo );*/ ID selvar; int p; patternchain fe_pc = 0; withcasesinfo rewr_wcinfo = my_rewrite_withcasesinfo(wcs->wcinfo); with(in_foreach_context) { InForeachContext(mp): { selvar = cf_topselvar(); /* already pushed in Foreach context */ cf_pushinforeachcontext(1); fe_pc = mp; } NotInForeachContext(): { selvar = f_mkselvar("kc_selvar_", g_ctext_level); selvar->line = ctw->line; /* give selvar the line/file info of the ctext */ selvar->file = ctw->file; cf_pushselvar( selvar ); cf_pushinforeachcontext(0); } } } "{ " /*********** #line " $0->line " \"" $0->file:view_filename "\" " (ID)selvar_type " " (ID)selvar " = " wexpr "; ************/ { if (! cf_topinforeachcontext()) } ${ wexpr $} wexpr:view_gen_initializephyla_assert_c (charptr)g_emptystring:view_printer_outputfileline { if (! cf_topinforeachcontext()) { cf_pushdollarvar( selvar ); cf_pushdollarvarext( Id(Str(mkcasestring("_1"))) ); } else if ((p = pos_of_sole_dollar_or_pattern_in_patternchain(fe_pc)) >= 0) { cf_pushdollarvar( selvar ); cf_pushdollarvarext( f_mkselvar("_", p) ); } } (withcasesinfo)rewr_wcinfo:view_gen_withcases_and_default { if (! cf_topinforeachcontext()) { cf_popselvar(); cf_popdollarvar(); cf_popdollarvarext(); } else if (p >= 0) { cf_popdollarvar(); cf_popdollarvarext(); } cf_popinforeachcontext(); } "} " { gl_print_line_directive = True; } $} { else { v_report(NonFatal( FileLine( $0->file, $0->line ), Problem1S( "internal error: no info for withcases of CTextWithexpression" ))); } } ]; Nilwithexpressions() -> [view_gen_initializephyla_c view_gen_initializephyla_assert_c: { g_withexpr_nr = 0; } ]; Conswithexpressions( h, t ) -> [view_gen_initializephyla_c: { ID selvar = cf_topselvar(); } t { g_withexpr_nr++; } { if (h->line) } ${ "#line " h->line " \"" h->file:view_filename "\" " $} { assert( ! (eq_ID(h->type, f_emptyId())) ); } h->type " " (ID)selvar "_" (int)g_withexpr_nr " = " h "; " ]; Conswithexpressions( h, t ) -> [view_gen_initializephyla_assert_c: { ID selvar = cf_topselvar(); } t { g_withexpr_nr++; } { if ($0->line) } ${ "#line " $0->line " \"" $0->file:view_filename "\" " $} { assert( ! (eq_ID(h->type, f_emptyId())) ); } "/*SUPPRESS 622*/ assert_" h->type "(" (ID)selvar "_" (int)g_withexpr_nr ", \"with_expression (" (int)g_withexpr_nr ")\"); " ]; WEVariable( id ) -> [view_gen_initializephyla_c: id ]; WECexpression( cexpr ) -> [view_gen_initializephyla_c: " " cexpr " " ]; ConsCexpressionDQ( cedqe, cedq ) -> [view_gen_initializephyla_c: cedq cedqe ]; NilCexpressionDQ() -> [view_gen_initializephyla_c: {/*EMPTY*/} ]; CExpressionDQPart( cs ) -> [view_gen_initializephyla_c: cs ]; CExpressionDQNl( i ) -> [view_gen_initializephyla_c: { char *nl_string = f_mknls( i ); } (charptr)nl_string ]; ConsCexpressionSQ( cesqe, cesq ) -> [view_gen_initializephyla_c: cesq cesqe ]; NilCexpressionSQ() -> [view_gen_initializephyla_c: {/*EMPTY*/} ]; CExpressionSQPart( cs ) -> [view_gen_initializephyla_c: cs ]; CExpressionSQNl( i ) -> [view_gen_initializephyla_c: { char *nl_string = f_mknls( i ); } (charptr)nl_string ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_operatordefs_c: rpds pd ]; Nilphylumdeclarations() -> [view_gen_operatordefs_c: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_operatordefs_c: {/*EMPTY*/} ]; PhylumDeclaration( id, NoStorageOption(), ListAlternatives( alt, * ), cco ), PhylumDeclaration( id, NegativeStorageOption( * ), ListAlternatives( alt, * ), cco ), PhylumDeclaration( id, NoStorageOption(), NonlistAlternatives( alt ), cco ), PhylumDeclaration( id, NegativeStorageOption( * ), NonlistAlternatives( alt ), cco ) -> [view_gen_operatordefs_c: { gl_phylum = id; gl_cco = cco; } alt:view_gen_operatordefs_nonhash_c { gl_phylum = (ID) 0; gl_cco = (Ccode_option)0; } ]; PhylumDeclaration( id, PositiveStorageOption( sto ), ListAlternatives( alt, * ), cco ), PhylumDeclaration( id, PositiveStorageOption( sto ), NonlistAlternatives( alt ), cco ) -> [view_gen_operatordefs_c: { gl_phylum = id; gl_cco = cco; gl_sto = sto; } alt:view_gen_operatordefs_hash_c { gl_phylum = (ID) 0; gl_cco = (Ccode_option)0; gl_sto = (ID)0; } ]; PhylumDeclaration( *, *, PredefinedAlternatives( * ), * ) -> [view_gen_operatordefs_c: {/*EMPTY*/} ]; Consalternatives( Alternative( oid, args ), ra ) -> [view_gen_operatordefs_nonhash_c: ra { gl_operator = oid; } (ID)gl_phylum " " oid " #ifdef KC_USE_PROTOTYPES (" args:view_gen_fnarg_and_decls ") #else (" args:view_gen_fnargs ")" args:view_gen_fnargdecls " #endif {" { if (f_Nilarguments( args ) && f_no_attrs_in_Ccode_option( gl_cco )) } ${ " static " (ID)gl_phylum " kc_x = (" (ID)gl_phylum ")0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_" oid ")); if (kc_x == (" (ID)gl_phylum ")0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_" oid " )); kc_x = (" (ID)gl_phylum ")(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_" (ID)gl_phylum "), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_" oid "; } " $} { else } ${ " register " (ID)gl_phylum " kc_x = (" (ID)gl_phylum ") NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_" (ID)gl_phylum ")); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_" oid ")); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_" oid ")); " args:view_gen_asserts " kc_x->prod_sel = sel_" oid "; " args:view_gen_assignments $} { if (f_something_to_initialize( gl_cco )) } ${ " kc_x = kc_initialize_" (ID)gl_phylum "(kc_x); " $} " return kc_x; " "} " { gl_operator = (ID)0; } ]; Consalternatives( Alternative( oid, args ), ra ) -> [view_gen_operatordefs_hash_c: ra { gl_operator = oid; } { if (f_Nilarguments( args )) } ${ (ID)gl_phylum " " oid " #ifdef KC_USE_PROTOTYPES (" args:view_gen_fnarg_and_decls ") #else (" args:view_gen_fnargs ")" args:view_gen_fnargdecls " #endif {" " static " (ID)gl_phylum " kc_x = (" (ID)gl_phylum ")0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_" oid ")); if (kc_x == (" (ID)gl_phylum ")0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_" oid " )); kc_x = (" (ID)gl_phylum ")(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_" (ID)gl_phylum "), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_" oid "; " { if (f_something_to_initialize( gl_cco )) } ${ " kc_x = kc_initialize_" (ID)gl_phylum "(kc_x); " $} " } return kc_x; } " $} { else } ${ (ID)gl_phylum " " (ID)gl_operator " #ifdef KC_USE_PROTOTYPES (" args:view_gen_fnarg_and_decls ") #else (" args:view_gen_fnargs ")" args:view_gen_fnargdecls " #endif { register " (ID)gl_phylum " kc_x; int kc_i; register kc_hashtableentry_t* kc_hte; unsigned kc_hashval = (unsigned)0; YYSTYPE *kc_ptr, *kc_beyond; kc_hashtable_t kc_a_ht = kc_hashtables[(int)" (ID)gl_sto "]; " args:view_gen_asserts " KC_COLLECT_STATS0(KC_CREATE_STATS(sel_" (ID)gl_operator ")); OPERATORHASH((unsigned) sel_" (ID)gl_operator "); " args:view_gen_hash " kc_hashval = kc_hashval%kc_a_ht->size; for (kc_i=0; kc_i < (int)kc_last_storage_mode; kc_i++) { kc_hte = &(kc_a_ht->hashtable[kc_hashval][kc_i]); if (kc_hte->nr != 0) { kc_beyond = &kc_hte->index[kc_hte->nr]; for (kc_ptr = &kc_hte->index[0]; kc_ptr < kc_beyond; kc_ptr++){ kc_x= kc_ptr->yt_" (ID)gl_phylum "; if ((kc_x->prod_sel == sel_" (ID)gl_operator ") " args:view_gen_test " ) return(kc_x); } } } KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_" (ID)gl_operator ")); kc_hte = &(kc_a_ht->hashtable[kc_hashval][(int)kc_a_ht->mode]); if (kc_hte->nr >= kc_hte->ibound) kc_growindex(kc_hte, kc_a_ht); kc_x = (" (ID)gl_phylum ")(*kc_a_ht->malloc)((kc_size_t)sizeof(struct kc_tag_" (ID)gl_phylum "), kc_a_ht->malloc_private_data); kc_x->prod_sel = sel_" (ID)gl_operator "; " args:view_gen_assignments " kc_hte->index[kc_hte->nr++].yt_" (ID)gl_phylum " = kc_x; " { if (f_something_to_initialize( gl_cco )) } ${ " kc_x = kc_initialize_" (ID)gl_phylum "(kc_x); " $} " return kc_x; } " $} { gl_operator = (ID)0; } ]; Consarguments( a, * ) -> [view_gen_argseqnr: a "_" $0->seqnr ]; Nilarguments() -> [view_gen_fnargs: {/*EMPTY*/} ]; Consarguments( *, Nilarguments() ) -> [view_gen_fnargs: $0:view_gen_argseqnr ]; Consarguments( *, rargs ) -> [view_gen_fnargs: rargs ", " $0:view_gen_argseqnr ]; Nilarguments() -> [view_gen_fnargdecls: {/*EMPTY*/} ]; Consarguments( a, rargs ) -> [view_gen_fnargdecls: rargs " " a " " $0:view_gen_argseqnr "; " ]; Nilarguments() -> [view_gen_fnarg_and_decls: {/*EMPTY*/} ]; Consarguments( a, Nilarguments() ) -> [view_gen_fnarg_and_decls: a " " $0:view_gen_argseqnr ]; Consarguments( a, rargs ) -> [view_gen_fnarg_and_decls: rargs ", " a " " $0:view_gen_argseqnr ]; Nilarguments() -> [view_gen_asserts: {/*EMPTY*/} ]; Consarguments( a, rargs ) -> [view_gen_asserts: rargs " /*SUPPRESS 622*/ assert_" a "( " $0:view_gen_argseqnr ", \"" $0:view_gen_argseqnr "\" ); " ]; Nilarguments() -> [view_gen_assignments: {/*EMPTY*/} ]; Consarguments( *, rargs ) -> [view_gen_assignments: rargs " kc_x->u." (ID)gl_operator "." $0:view_gen_argseqnr " = " $0:view_gen_argseqnr "; " ]; Nilarguments() -> [view_gen_hash: {/*EMPTY*/} ]; Consarguments( a, rargs ) -> [view_gen_hash: rargs { if (eq_ID( Id(Str(mkcasestring("int"))), a )) } ${ " INTHASH(" $0:view_gen_argseqnr "); " $} { else if (eq_ID( Id(Str(mkcasestring("float"))), a )) } ${ " FLOATHASH(" $0:view_gen_argseqnr "); " $} { else if (eq_ID( Id(Str(mkcasestring("voidptr"))), a )) } ${ " VOIDPTRHASH(" $0:view_gen_argseqnr "); " $} { else } ${ " HASH(" $0:view_gen_argseqnr "); " $} ]; Nilarguments() -> [view_gen_test: {/*EMPTY*/} ]; Consarguments( *, rargs ) -> [view_gen_test: rargs " && (kc_x->u." (ID)gl_operator "." $0:view_gen_argseqnr " == " $0:view_gen_argseqnr ")" ]; /***************************************************************************/ PhylumDeclarations( * ) -> [view_gen_error_decls_h: "char *kc_phylumname_or_error KC__P(( int )); char *kc_operatorname_or_error KC__P(( int )); " ]; PhylumDeclarations( * ) -> [view_gen_error_defs_c: { char *strof_phylum_error="Internal Error: unknown phylum number: "; int strlen_strof_phylum_error = strlen(strof_phylum_error)+30; casestring cstrof_phylum_error = mkcasestring(strof_phylum_error); char *strof_operator_error="Internal Error: unknown operator number: "; int strlen_strof_operator_error = strlen(strof_operator_error)+30; casestring cstrof_operator_error = mkcasestring(strof_operator_error); } "char *kc_phylumname_or_error #ifdef KC_USE_PROTOTYPES (int kc_phylum) #else (kc_phylum) int kc_phylum; #endif { if ((kc_phylum <= (int)kc_one_before_first_phylum) || (kc_phylum >= (int)kc_last_phylum)) { char *kc_strof_error; (void)sprintf((kc_strof_error=(char*)MALLOC(" (int)strlen_strof_phylum_error ")), \"" (casestring)cstrof_phylum_error "%d\", kc_phylum); return kc_strof_error; } else { return kc_PhylumInfo[kc_phylum].name; } } char *kc_operatorname_or_error #ifdef KC_USE_PROTOTYPES (int kc_operator) #else (kc_operator) int kc_operator; #endif { if ((kc_operator <= (int)kc_one_before_first_operator) || (kc_operator >= (int)kc_last_operator)) { char *kc_strof_error; (void)sprintf((kc_strof_error=(char*)MALLOC(" (int)strlen_strof_operator_error ")), \"" (casestring)cstrof_operator_error "%d\", kc_operator); return kc_strof_error; } else { return kc_OperatorInfo[kc_operator].name; } } " ]; /***************************************************************************/ PhylumDeclarations( pds ) -> [view_gen_freedecls_h: pds ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_freedecls_h: rpds pd ]; Nilphylumdeclarations() -> [view_gen_freedecls_h: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_freedecls_h: {/*EMPTY*/} ]; PhylumDeclaration( id, *, *, * ) -> [view_gen_freedecls_h: "void free_" id " KC__P(( " id ", boolean )); " ]; /***************************************************************************/ PhylumDeclarations( pds ) -> [view_gen_freedefs_c: "/*ARGSUSED*/ static void kc_do_free_phylum #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, boolean kc_rec, kc_enum_phyla kc_phylum) #else (kc_p, kc_rec, kc_phylum) kc_voidptr_t kc_p; boolean kc_rec; kc_enum_phyla kc_phylum; #endif { kc_enum_operators kc_prodsel; KC_OPERATOR_INFO *kc_op_info; /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum); kc_prodsel = (kc_phylum == kc_phylum_int ? sel__Int : (kc_phylum == kc_phylum_float ? sel__Real : (kc_phylum == kc_phylum_voidptr ? sel__VoidPtr : ((casestring)kc_p)->prod_sel))); kc_op_info = &kc_OperatorInfo[(int)kc_prodsel]; KC_COLLECT_STATS0(KC_FREE_CALLED_STATS((int)kc_prodsel, kc_rec)); if (! kc_op_info->uniq_stored) { if (kc_rec) { int kc_i; for (kc_i=0; kc_i < kc_op_info->no_sons; kc_i++) { kc_do_free_phylum( (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_op_info->suboffset[kc_i]), kc_rec, kc_op_info->subphylum[kc_i] ); } } KC_COLLECT_STATS0(KC_FREED_STATS((int)kc_prodsel, kc_rec)); KC_BZERO((kc_voidptr_t)kc_p, kc_PhylumInfo[(int)kc_phylum].size); NONUNIQFREE((kc_voidptr_t)kc_p); } } " pds ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_freedefs_c: rpds pd ]; Nilphylumdeclarations() -> [view_gen_freedefs_c: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_freedefs_c: {/*EMPTY*/} ]; PhylumDeclaration( id, *, PredefinedAlternatives( Consalternatives( Alternative( oid, * ), Nilalternatives() )), * ) -> [view_gen_freedefs_c: "/*ARGSUSED*/ void free_" id " #ifdef KC_USE_PROTOTYPES (" id " kc_p, boolean kc_rec) #else (kc_p, kc_rec) " id " kc_p; boolean kc_rec; #endif { KC_COLLECT_STATS0(KC_FREE_CALLED_STATS((int)sel_" oid ", kc_rec)); } " ]; PhylumDeclaration( id, *, ListAlternatives( *, * ), * ), PhylumDeclaration( id, *, NonlistAlternatives( * ), * ) -> [view_gen_freedefs_c: "/*ARGSUSED*/ void free_" id " #ifdef KC_USE_PROTOTYPES (" id " kc_p, boolean kc_rec) #else (kc_p, kc_rec) " id " kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_" id "); } " ]; /***************************************************************************/ PhylumDeclarations( pds ) -> [view_gen_eqdecls_h: pds ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_eqdecls_h: rpds pd ]; Nilphylumdeclarations() -> [view_gen_eqdecls_h: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_eqdecls_h: {/*EMPTY*/} ]; PhylumDeclaration( id, *, *, * ) -> [view_gen_eqdecls_h: "boolean eq_" id " KC__P(( " id ", " id " )); " ]; /***************************************************************************/ PhylumDeclarations( pds ) -> [view_gen_eqdefs_c: "/*ARGSUSED*/ static boolean kc_do_eq_phylum #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p1, kc_voidptr_t kc_p2, kc_enum_phyla kc_phylum) #else (kc_p1, kc_p2, kc_phylum) kc_voidptr_t kc_p1, kc_p2; kc_enum_phyla kc_phylum; #endif { int kc_i; kc_enum_operators kc_prodsel; int kc_st; KC_OPERATOR_INFO *kc_op_info; kc_hashtable_t kc_a_ht; " (phyla)cg_bigatomphyla " if (kc_p1 == kc_p2) return True; if (kc_phylum == kc_phylum_voidptr) return False; /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p1),\"kc_p1\",kc_phylum); /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p2),\"kc_p2\",kc_phylum); if ((kc_prodsel = ((casestring)kc_p1)->prod_sel) != ((casestring)kc_p2)->prod_sel) return False; kc_op_info = &kc_OperatorInfo[(int)kc_prodsel]; kc_st = (int)kc_op_info->uniq_stored; kc_a_ht = kc_hashtables[kc_st]; if (kc_st && (kc_storageclass_still_uniq[kc_st] || ((kc_a_ht->in_block != 0) && (*kc_a_ht->in_block)((kc_voidptr_t)kc_p1, kc_a_ht->malloc_private_data) && (*kc_a_ht->in_block)((kc_voidptr_t)kc_p2, kc_a_ht->malloc_private_data)))) return False; " { if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) } ${ " switch(kc_prodsel) { " (operators)cg_bigatomoperators " default: " $} " for (kc_i=0; kc_i < kc_op_info->no_sons; kc_i++) { if (! kc_do_eq_phylum( (kc_voidptr_t)KC_SUBPHYLUM(kc_p1, kc_op_info->suboffset[kc_i]), (kc_voidptr_t)KC_SUBPHYLUM(kc_p2, kc_op_info->suboffset[kc_i]), kc_op_info->subphylum[kc_i] )) { return False; } } return True; " { if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) } ${ " } " $} "} " pds ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_eqdefs_c: rpds pd ]; Nilphylumdeclarations() -> [view_gen_eqdefs_c: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_eqdefs_c: {/*EMPTY*/} ]; PhylumDeclaration( id, *, PredefinedAlternatives( * ), * ) -> [view_gen_eqdefs_c: "/*ARGSUSED*/ boolean eq_" id " #ifdef KC_USE_PROTOTYPES (" id " kc_p1, " id " kc_p2) #else (kc_p1, kc_p2) " id " kc_p1, kc_p2; #endif { return (boolean)(kc_p1 == kc_p2); } " ]; PhylumDeclaration( id, *, ListAlternatives( *, * ), * ), PhylumDeclaration( id, *, NonlistAlternatives( * ), * ) -> [view_gen_eqdefs_c: "/*ARGSUSED*/ boolean eq_" id " #ifdef KC_USE_PROTOTYPES (" id " kc_p1, " id " kc_p2) #else (kc_p1, kc_p2) " id " kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_" id "); } " ]; Nilphyla() -> [view_gen_eqdefs_c: {/*EMPTY*/} ]; Consphyla( a_phy, r_phy ) -> [view_gen_eqdefs_c: r_phy " /*SUPPRESS 622*/ assertReason(kc_phylum != kc_phylum_" a_phy ", \"kc_do_eq_phylum called with kc_phylum_" a_phy " argument\"); " ]; Niloperators() -> [view_gen_eqdefs_c: {/*EMPTY*/} ]; Consoperators( a_op, r_op ) -> [view_gen_eqdefs_c: { arguments args; } r_op { args = f_argumentsofoperator( a_op ); gl_operator = a_op; gl_phylum = f_phylumofoperator( a_op ); if (length_arguments(args) > 0) } ${ " case (int)sel_" (ID)a_op ": return ((" (arguments)args:view_gen_eqdefs_bigatom_c ") ? True : False); " $} { gl_operator = 0; gl_phylum = 0; } ]; Nilarguments() -> [view_gen_eqdefs_bigatom_c: {/*EMPTY*/} ]; Consarguments( *, r_args ) -> [view_gen_eqdefs_bigatom_c: r_args " && " $0:view_gen_eqdefs_bigatom_do_c ]; Consarguments( *, Nilarguments() ) -> [view_gen_eqdefs_bigatom_c: $0:view_gen_eqdefs_bigatom_do_c ]; Consarguments( a_arg, * ) -> [view_gen_eqdefs_bigatom_do_c: { if (f_isbigatom( a_arg )) } ${ "eq_" a_arg "(((" (ID)gl_phylum ")kc_p1)->u." (ID)gl_operator "." a_arg "_" $0->seqnr ", ((" (ID)gl_phylum ")kc_p2)->u." (ID)gl_operator "." a_arg "_" $0->seqnr ")" $} { else } ${ "kc_do_eq_phylum((kc_voidptr_t)((" (ID)gl_phylum ")kc_p1)->u." (ID)gl_operator "." a_arg "_" $0->seqnr ", (kc_voidptr_t)((" (ID)gl_phylum ")kc_p2)->u." (ID)gl_operator "." a_arg "_" $0->seqnr ", kc_phylum_" a_arg ")" $} ]; /***************************************************************************/ PhylumDeclarations( pds ) -> [view_gen_printdecls_h: pds ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_printdecls_h: rpds pd ]; Nilphylumdeclarations() -> [view_gen_printdecls_h: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_printdecls_h: {/*EMPTY*/} ]; PhylumDeclaration( id, *, *, * ) -> [view_gen_printdecls_h: "void print_" id " KC__P(( " id " )); void fprint_" id " KC__P(( FILE*, " id " )); " ]; /***************************************************************************/ PhylumDeclarations( pds ) -> [view_gen_printdefs_c: "static int kc_indentation = 0; static char *kc_printformat_not_nullair_open = \"%*s%s(\\n\"; static char *kc_printformat_not_nullair_close = \"%*s)\\n\"; static char *kc_printformat_nullair = \"%*s%s()\\n\"; static void kc_do_print_phylum #ifdef KC_USE_PROTOTYPES (FILE *kc_f, kc_voidptr_t kc_p, kc_enum_phyla kc_phylum) #else (kc_f, kc_p, kc_phylum) FILE *kc_f; kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; #endif { int kc_i; " (phyla)cg_bigatomphyla " /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum); if (!kc_f) kc_f = stdout; if (kc_phylum == kc_phylum_voidptr) { (void)fprintf(kc_f, \"%*s%p\\n\", kc_indentation, \"\", kc_p); } else if ((kc_phylum == kc_phylum_casestring) || (kc_phylum == kc_phylum_nocasestring)) { (void)fprintf(kc_f, \"%*s%s\\n\", kc_indentation, \"\", ((casestring)kc_p)->name); } else { kc_enum_operators kc_prodsel = ((casestring)kc_p)->prod_sel; KC_OPERATOR_INFO *kc_op_info = &kc_OperatorInfo[(int)kc_prodsel]; if (! kc_op_info->no_sons) { (void)fprintf(kc_f, kc_printformat_nullair, kc_indentation, \"\", kc_op_info->name); } else { (void)fprintf(kc_f, kc_printformat_not_nullair_open, kc_indentation, \"\", kc_op_info->name); kc_indentation++; " { if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) } ${ " switch(kc_prodsel) { " (operators)cg_bigatomoperators " default: " $} " for (kc_i=0; kc_i < kc_op_info->no_sons; kc_i++) { kc_do_print_phylum(kc_f, (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_op_info->suboffset[kc_i]), kc_op_info->subphylum[kc_i] ); } " { if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) } ${ " } " $} " kc_indentation--; (void)fprintf(kc_f, kc_printformat_not_nullair_close, kc_indentation, \"\"); } } } " pds ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_printdefs_c: rpds pd ]; Nilphylumdeclarations() -> [view_gen_printdefs_c: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_printdefs_c: {/*EMPTY*/} ]; PhylumDeclaration( id, *, PredefinedAlternatives( * ), * ) -> [view_gen_printdefs_c: "void print_" id " #ifdef KC_USE_PROTOTYPES (" id " kc_p) #else (kc_p) " id " kc_p; #endif " { if (strcmp( f_strofID( id ), "float" ) == 0)} ${ "{ (void)fprintf(stdout, \"%*s%f\\n\", kc_indentation, \"\", kc_p); } " $} {else if (strcmp( f_strofID( id ), "int" ) == 0)} ${ "{ (void)fprintf(stdout, \"%*s%d\\n\", kc_indentation, \"\", kc_p); } " $} {else} ${ "{ kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_" id "); } " $} "void fprint_" id " #ifdef KC_USE_PROTOTYPES (FILE *kc_f, " id " kc_p) #else (kc_f, kc_p) FILE *kc_f; " id " kc_p; #endif " { if (strcmp( f_strofID( id ), "float" ) == 0)} ${ "{ if (!kc_f) kc_f = stdout; (void)fprintf(kc_f, \"%*s%f\\n\", kc_indentation, \"\", kc_p); } " $} {else if (strcmp( f_strofID( id ), "int" ) == 0)} ${ "{ if (!kc_f) kc_f = stdout; (void)fprintf(kc_f, \"%*s%d\\n\", kc_indentation, \"\", kc_p); } " $} {else} ${ "{ kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_" id "); } " $} ]; PhylumDeclaration( id, *, ListAlternatives( *, * ), * ), PhylumDeclaration( id, *, NonlistAlternatives( * ), * ) -> [view_gen_printdefs_c: "void print_" id " #ifdef KC_USE_PROTOTYPES (" id " kc_p) #else (kc_p) " id " kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_" id "); } void fprint_" id " #ifdef KC_USE_PROTOTYPES (FILE *kc_f, " id " kc_p) #else (kc_f, kc_p) FILE *kc_f; " id " kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_" id "); } " ]; Nilphyla() -> [view_gen_printdefs_c: {/*EMPTY*/} ]; Consphyla( a_phy, r_phy ) -> [view_gen_printdefs_c: r_phy " /*SUPPRESS 622*/ assertReason(kc_phylum != kc_phylum_" a_phy ", \"kc_do_print_phylum called with kc_phylum_" a_phy " argument\"); " ]; Niloperators() -> [view_gen_printdefs_c: {/*EMPTY*/} ]; Consoperators( a_op, r_op ) -> [view_gen_printdefs_c: { arguments args; } r_op { args = f_argumentsofoperator( a_op ); gl_operator = a_op; gl_phylum = f_phylumofoperator( a_op ); if (length_arguments(args) > 0) } ${ " case (int)sel_" (ID)a_op ": { " (arguments)args:view_gen_printdefs_bigatom_c " break; } " $} { gl_operator = 0; gl_phylum = 0; } ]; Nilarguments() -> [view_gen_printdefs_bigatom_c: {/*EMPTY*/} ]; Consarguments( *, r_args ) -> [view_gen_printdefs_bigatom_c: r_args $0:view_gen_printdefs_bigatom_do_c ]; Consarguments( *, Nilarguments() ) -> [view_gen_printdefs_bigatom_c: $0:view_gen_printdefs_bigatom_do_c ]; Consarguments( a_arg, * ) -> [view_gen_printdefs_bigatom_do_c: { if (f_isbigatom( a_arg )) } ${ " fprint_" a_arg "(kc_f, ((" (ID)gl_phylum ")kc_p)->u." (ID)gl_operator "." a_arg "_" $0->seqnr "); " $} { else } ${ " kc_do_print_phylum(kc_f, (kc_voidptr_t)((" (ID)gl_phylum ")kc_p)->u." (ID)gl_operator "." a_arg "_" $0->seqnr ", kc_phylum_" a_arg " ); " $} ]; /***************************************************************************/ PhylumDeclarations( pds ) -> [view_gen_printdotdecls_h: "void fprintdotprologue KC__P(( FILE* )); void fprintdotepilogue KC__P(( FILE* )); int kc_set_fprintdot_hashtablesize KC__P(( int )); " pds ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_printdotdecls_h: rpds pd ]; Nilphylumdeclarations() -> [view_gen_printdotdecls_h: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_printdotdecls_h: {/*EMPTY*/} ]; PhylumDeclaration( id, *, *, * ) -> [view_gen_printdotdecls_h: "void fprintdot_" id " KC__P(( FILE*, " id ", char*, char*, char*, boolean, boolean, boolean )); " ]; /***************************************************************************/ PhylumDeclarations( pds ) -> [view_gen_printdotdefs_c: pds:view_gen_printdotdecls_c /* declare static routines first */ " static void kc_do_printdot_subgraph_prologue KC__P((FILE*, kc_voidptr_t, kc_enum_phyla, char*, char*, boolean, boolean)); static void kc_do_printdot_subgraph_epilogue KC__P((FILE*)); static void kc_do_printdot_genfields KC__P((FILE*, int, kc_enum_phyla, boolean)); static void kc_do_printdot_id_of_phylum KC__P((FILE*, kc_voidptr_t, kc_enum_phyla, boolean, kc_voidptr_t, int)); static void kc_do_printdot_do_add_edge KC__P((YYSTYPE, kc_enum_phyla, YYSTYPE, kc_enum_phyla, int, int*, kc_dotedgenode_t*, char*)); static void kc_do_printdot_add_edge KC__P((kc_voidptr_t, kc_enum_phyla, kc_voidptr_t, kc_enum_phyla, int, int*, kc_dotedgenode_t*, char*)); static void kc_do_printdot_edges KC__P((FILE*, kc_dotedgenode_t, char*, boolean)); static void kc_do_printdot_phylum KC__P((FILE*, kc_voidptr_t, kc_enum_phyla, boolean, int*, kc_dotedgenode_t*, char*, boolean, boolean, kc_voidptr_t, int)); static kc_hashtable_t kc_fprintdot_hashtable; static int kc_fprintdot_hashtablesize = 5000; int kc_set_fprintdot_hashtablesize #ifdef KC_USE_PROTOTYPES (int kc_i) #else (kc_i) int kc_i; #endif { int kc_tmp = kc_fprintdot_hashtablesize; kc_fprintdot_hashtablesize = kc_i; return kc_tmp; } static void kc_do_printdot_subgraph_prologue #ifdef KC_USE_PROTOTYPES (FILE *kc_f, kc_voidptr_t kc_p, kc_enum_phyla kc_phylum, char *kc_root, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt) #else (kc_f, kc_p, kc_phylum, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt) FILE *kc_f; kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; char *kc_root; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt; #endif { if (!kc_f) kc_f = stdout; (void)fprintf(kc_f, \"/*subgraph*/ {\\n\"); if (kc_root) { (void)fprintf(kc_f, \"\\\"%s\\\" [shape=ellipse\", kc_root); if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) { (void)fprintf(kc_f, \", %s\", kc_edge_attributes); } if (kc_phy_labels) { (void)fprintf(kc_f, \", label=\\\"%s\\\\n%s\\\"\", kc_root, kc_PhylumInfo[kc_phylum].name); } (void)fprintf(kc_f, \"];\\n\"); (void)fprintf(kc_f, \"\\\"%s\\\" ->\", kc_root); kc_do_printdot_id_of_phylum(kc_f, kc_p, kc_phylum, kc_use_ctxt, 0, 0); if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) { (void)fprintf(kc_f, \"[%s]\", kc_edge_attributes); } (void)fprintf(kc_f, \";\\n\"); } } static void kc_do_printdot_subgraph_epilogue #ifdef KC_USE_PROTOTYPES (FILE *kc_f) #else (kc_f) FILE *kc_f; #endif { if (!kc_f) kc_f = stdout; (void)fprintf(kc_f, \"}\\n\"); } void fprintdotprologue #ifdef KC_USE_PROTOTYPES (FILE *kc_f) #else (kc_f) FILE *kc_f; #endif { if (!kc_f) kc_f = stdout; (void)fprintf(kc_f, \"digraph kc_output{\\n\"); (void)fprintf(kc_f, \"node [shape=record, height=.1, fontname=Helvetica];\\n\"); } void fprintdotepilogue #ifdef KC_USE_PROTOTYPES (FILE *kc_f) #else (kc_f) FILE *kc_f; #endif { if (!kc_f) kc_f = stdout; (void)fprintf(kc_f, \"}\\n\"); } static void kc_do_printdot_genfields #ifdef KC_USE_PROTOTYPES (FILE *kc_f, int kc_prodsel, kc_enum_phyla kc_phylum, boolean kc_phy_labels) #else (kc_f, kc_prodsel, kc_phylum, kc_phy_labels) FILE *kc_f; int kc_prodsel; kc_enum_phyla kc_phylum; boolean kc_phy_labels; #endif { int kc_i = 1; KC_OPERATOR_INFO *kc_op_info = &kc_OperatorInfo[(int)kc_prodsel]; if (kc_op_info->no_sons <= 0) return; if (!kc_f) kc_f = stdout; while(kc_i < kc_op_info->no_sons) { (void)fprintf(kc_f, \"\", kc_i); if (kc_phy_labels) { (void)fprintf(kc_f, \"%s\", kc_PhylumInfo[(int)kc_op_info->subphylum[kc_i-1]].name); } (void)fprintf(kc_f, \"|\"); kc_i++; } (void)fprintf(kc_f, \"\", kc_i); if (kc_phy_labels) { (void)fprintf(kc_f, \"%s\", kc_PhylumInfo[(int)kc_op_info->subphylum[kc_i-1]].name); } } static void kc_do_printdot_id_of_phylum #ifdef KC_USE_PROTOTYPES (FILE *kc_f, kc_voidptr_t kc_p, kc_enum_phyla kc_phylum, boolean kc_use_ctxt, kc_voidptr_t kc_ctxt, int kc_son_nr) #else (kc_f, kc_p, kc_phylum, kc_use_ctxt, kc_ctxt, kc_son_nr) FILE *kc_f; kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; boolean kc_use_ctxt; kc_voidptr_t kc_ctxt; int kc_son_nr; #endif { " (phyla)cg_bigatomphyla " /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum); if (!kc_f) kc_f = stdout; if (kc_phylum == kc_phylum_voidptr) { (void)fprintf(kc_f, \"kcidp%p\", kc_p); if (kc_use_ctxt) { (void)fprintf(kc_f, \"_%p_%d\", kc_ctxt, kc_son_nr); } } else if ((kc_phylum == kc_phylum_casestring) || (kc_phylum == kc_phylum_nocasestring)) { (void)fprintf(kc_f, \"kcids%p\", ((casestring)kc_p)); if (kc_use_ctxt) { (void)fprintf(kc_f, \"_%p_%d\", kc_ctxt, kc_son_nr); } } else { (void)fprintf(kc_f, \"kcidx%p\", kc_p); } } static void kc_do_printdot_do_add_edge #ifdef KC_USE_PROTOTYPES (YYSTYPE kc_p, kc_enum_phyla kc_phylum, YYSTYPE kc_sub_p, kc_enum_phyla kc_sub_phylum, int kc_son_nr, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix) #else (kc_p, kc_phylum, kc_sub_p, kc_sub_phylum, kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; kc_voidptr_t kc_sub_p; kc_enum_phyla kc_sub_phylum; int kc_son_nr; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix; #endif { kc_dotedgenode_t kc_hn; char kc_buf[30]; kc_hn = kc_mkdotedgenode(kc_fprintdot_hashtable, kc_p, kc_phylum, kc_sub_p, kc_sub_phylum, kc_son_nr); if (! kc_hn->label) { kc_hn->label = (char*)(*kc_fprintdot_hashtable->malloc)((kc_size_t)(KC_PRINTDOT_LABELSIZE+1)*sizeof(char), kc_fprintdot_hashtable->malloc_private_data); kc_hn->lsize = KC_PRINTDOT_LABELSIZE; (void)strcpy(kc_hn->label, \"\"); kc_hn->next = *kc_edges; *kc_edges = kc_hn; } else { char kc_buf2[30]; (void)sprintf(kc_buf2, \", \"); (void)strncat(kc_hn->label, kc_buf2, kc_hn->lsize - strlen(kc_hn->label)); } if (kc_edge_prefix) { (void)strncat(kc_hn->label, kc_edge_prefix, kc_hn->lsize - strlen(kc_hn->label)); } (void)sprintf(kc_buf, \"%d\", *kc_edge_nr); (void)strncat(kc_hn->label, kc_buf, kc_hn->lsize - strlen(kc_hn->label)); (*kc_edge_nr)++; } static void kc_do_printdot_add_edge #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, kc_enum_phyla kc_phylum, kc_voidptr_t kc_sub_p, kc_enum_phyla kc_sub_phylum, int kc_son_nr, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix) #else (kc_p, kc_phylum, kc_sub_p, kc_sub_phylum, kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; kc_voidptr_t kc_sub_p; kc_enum_phyla kc_sub_phylum; int kc_son_nr; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix; #endif { YYSTYPE kc_n, kc_sub_n; " (phyla)cg_bigatomphyla " /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum); kc_n.yt_voidptr = kc_p; kc_sub_n.yt_voidptr = kc_sub_p; kc_do_printdot_do_add_edge(kc_n, kc_phylum, kc_sub_n, kc_sub_phylum, kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix); } static void kc_do_printdot_edges #ifdef KC_USE_PROTOTYPES (FILE *kc_f, kc_dotedgenode_t kc_edges, char *kc_edge_attributes, boolean kc_use_ctxt) #else (kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt) FILE *kc_f; kc_dotedgenode_t kc_edges; char *kc_edge_attributes; boolean kc_use_ctxt; #endif { kc_dotedgenode_t kc_p = kc_edges; if (!kc_f) kc_f = stdout; while(kc_p) { kc_do_printdot_id_of_phylum(kc_f, kc_p->ptr_from.yt_voidptr, kc_p->phy_from, kc_use_ctxt, 0, 0); (void)fprintf(kc_f, \":f%d -> \", kc_p->son_nr); " { if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) } ${ " switch(kc_p->phy_to) { " (phyla)cg_bigatomphyla:view_gen_printdotedges_c " default: " $} " kc_do_printdot_id_of_phylum(kc_f, kc_p->ptr_to.yt_voidptr, kc_p->phy_to, kc_use_ctxt, kc_p->ptr_from.yt_voidptr, kc_p->son_nr); " { if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) } ${ " } " $} " (void)fprintf(kc_f, \" [label=\\\"%s\\\"\", kc_p->label); if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) { (void)fprintf(kc_f, \", %s\", kc_edge_attributes); } (void)fprintf(kc_f, \"];\\n\"); kc_p = kc_p->next; } } static void kc_do_printdot_phylum #ifdef KC_USE_PROTOTYPES (FILE *kc_f, kc_voidptr_t kc_p, kc_enum_phyla kc_phylum, boolean kc_outmost, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix, boolean kc_phy_labels, boolean kc_use_ctxt, kc_voidptr_t kc_ctxt, int kc_son_nr) #else (kc_f, kc_p, kc_phylum, kc_outmost, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_ctxt, kc_son_nr) FILE *kc_f; kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; boolean kc_outmost; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix; boolean kc_phy_labels; boolean kc_use_ctxt; kc_voidptr_t kc_ctxt; int kc_son_nr; #endif { int kc_i; " (phyla)cg_bigatomphyla " /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum); if (!kc_f) kc_f = stdout; if (kc_phylum == kc_phylum_voidptr) { kc_do_printdot_id_of_phylum(kc_f, kc_p, kc_phylum, kc_use_ctxt, kc_ctxt, kc_son_nr); (void)fprintf(kc_f, \" [label=\\\"%p\\\", shape=ellipse];\\n\", kc_p); } else if ((kc_phylum == kc_phylum_casestring) || (kc_phylum == kc_phylum_nocasestring)) { kc_do_printdot_id_of_phylum(kc_f, kc_p, kc_phylum, kc_use_ctxt, kc_ctxt, kc_son_nr); (void)fprintf(kc_f, \" [label=\\\"%s\\\", shape=ellipse];\\n\", ((casestring)kc_p)->name); } else { kc_enum_operators kc_prodsel = ((casestring)kc_p)->prod_sel; KC_OPERATOR_INFO *kc_op_info = &kc_OperatorInfo[(int)kc_prodsel]; if (! kc_op_info->no_sons) { kc_do_printdot_id_of_phylum(kc_f, kc_p, kc_phylum, kc_use_ctxt, kc_ctxt, kc_son_nr); (void)fprintf(kc_f, \" [label=\\\"%s\\\"];\\n\", kc_op_info->name); } else { kc_do_printdot_id_of_phylum(kc_f, kc_p, kc_phylum, kc_use_ctxt, kc_ctxt, kc_son_nr); (void)fprintf(kc_f, \" [label=\\\"{%s|{\", kc_op_info->name); kc_do_printdot_genfields(kc_f, kc_prodsel, kc_phylum, kc_phy_labels); (void)fprintf(kc_f, \"}}\\\"];\\n\"); " { if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) } ${ " switch(kc_prodsel) { " (operators)cg_bigatomoperators " default: " $} " for (kc_i=0; kc_i < kc_op_info->no_sons; kc_i++) { kc_do_printdot_add_edge( kc_p, kc_phylum, (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_op_info->suboffset[kc_i]), kc_op_info->subphylum[kc_i], kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix ); kc_do_printdot_phylum( kc_f, (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_op_info->suboffset[kc_i]), kc_op_info->subphylum[kc_i], False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1 ); } " { if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) } ${ " } " $} " } } } " pds ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_printdotdefs_c view_gen_printdotdecls_c: rpds pd ]; Nilphylumdeclarations() -> [view_gen_printdotdefs_c view_gen_printdotdecls_c: {/*EMPTY*/} ]; /* declare static routines first */ PhylumDeclaration( *, *, *, * ) -> [view_gen_printdotdecls_c: {/*EMPTY*/} ]; PhylumDeclaration( id, *, PredefinedAlternatives( * ), * ) -> [view_gen_printdotdecls_c: "static void kc_do_printdot_subgraph_prologue__" id " KC__P((FILE*, " id ", char*, char*, boolean, boolean)); static void kc_do_printdot_id_of__" id " KC__P((FILE*, " id ", boolean, kc_voidptr_t, int)); static void kc_do_printdot__" id " KC__P((FILE*, " id ", boolean, int*, kc_dotedgenode_t*, char*, boolean, boolean, kc_voidptr_t, int)); /* TERRIBLE HACK: declare non-static, to shut up gcc -Wall ... */ /*static*/ void kc_do_printdot_add_edge_" id " KC__P((kc_voidptr_t, kc_enum_phyla, " id ", int, int*, kc_dotedgenode_t*, char*)); " ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_printdotdefs_c: {/*EMPTY*/} ]; PhylumDeclaration( id, *, PredefinedAlternatives( * ), * ) -> [view_gen_printdotdefs_c: "static void kc_do_printdot_subgraph_prologue__" id " #ifdef KC_USE_PROTOTYPES (FILE *kc_f, " id " kc_p, char *kc_root, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt) #else (kc_f, kc_p, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt) FILE *kc_f; " id " kc_p; char *kc_root; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt; #endif { if (!kc_f) kc_f = stdout; (void)fprintf(kc_f, \"/*subgraph*/ {\\n\"); if (kc_root) { (void)fprintf(kc_f, \"\\\"%s\\\" [shape=ellipse\", kc_root); if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) { (void)fprintf(kc_f, \", %s\", kc_edge_attributes); } if (kc_phy_labels) { (void)fprintf(kc_f, \", label=\\\"%s\\\\n%s\\\"\", kc_root, kc_PhylumInfo[kc_phylum_" id "].name); } (void)fprintf(kc_f, \"];\\n\"); (void)fprintf(kc_f, \"\\\"%s\\\" ->\", kc_root); kc_do_printdot_id_of__" id "(kc_f, kc_p, kc_use_ctxt, 0, 0); if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) { (void)fprintf(kc_f, \"[%s]\", kc_edge_attributes); } (void)fprintf(kc_f, \";\\n\"); } } static void kc_do_printdot_id_of__" id " #ifdef KC_USE_PROTOTYPES (FILE *kc_f, " id " kc_p, boolean kc_use_ctxt, kc_voidptr_t kc_ctxt, int kc_son_nr) #else (kc_f, kc_p, kc_use_ctxt, kc_ctxt, kc_son_nr) FILE *kc_f; " id " kc_p; boolean kc_use_ctxt; kc_voidptr_t kc_ctxt; int kc_son_nr; #endif " { if (strcmp( f_strofID( id ), "float" ) == 0)} ${ "{ if (kc_use_ctxt) { (void)fprintf(kc_f, \"\\\"kcidf%f_%p_%d\\\"\", kc_p, kc_ctxt, kc_son_nr); } else { (void)fprintf(kc_f, \"\\\"kcidf%f\\\"\", kc_p); } } " $} {else if (strcmp( f_strofID( id ), "int" ) == 0)} ${ "{ if (kc_use_ctxt) { (void)fprintf(kc_f, \"\\\"kcidi%d_%p_%d\\\"\", kc_p, kc_ctxt, kc_son_nr); } else { (void)fprintf(kc_f, \"\\\"kcidi%d\\\"\", kc_p); } } " $} {else} ${ "{ kc_do_printdot_id_of_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_" id ", kc_use_ctxt, kc_ctxt, kc_son_nr); } " $} "static void kc_do_printdot__" id " #ifdef KC_USE_PROTOTYPES (FILE *kc_f, " id " kc_p, boolean kc_outmost, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix, boolean kc_phy_labels, boolean kc_use_ctxt, kc_voidptr_t kc_ctxt, int kc_son_nr) #else (kc_f, kc_p, kc_outmost, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_ctxt, kc_son_nr) FILE *kc_f; " id " kc_p; boolean kc_outmost; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix; boolean kc_phy_labels; boolean kc_use_ctxt; kc_voidptr_t kc_ctxt; int kc_son_nr; #endif " { if (strcmp( f_strofID( id ), "float" ) == 0)} ${ "{ if (!kc_f) kc_f = stdout; kc_do_printdot_id_of__" id "(kc_f, kc_p, kc_use_ctxt, kc_ctxt, kc_son_nr); (void)fprintf(kc_f, \" [label=\\\"%f\\\", shape=ellipse];\\n\", kc_p); } " $} {else if (strcmp( f_strofID( id ), "int" ) == 0)} ${ "{ if (!kc_f) kc_f = stdout; kc_do_printdot_id_of__" id "(kc_f, kc_p, kc_use_ctxt, kc_ctxt, kc_son_nr); (void)fprintf(kc_f, \" [label=\\\"%d\\\", shape=ellipse];\\n\", kc_p); } " $} {else} ${ "{ kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_" id ", kc_outmost, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_ctxt, kc_son_nr); } " $} "/* TERRIBLE HACK: declare non-static, to shut up gcc -Wall ... */ /*static*/ void kc_do_printdot_add_edge_" id " #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, kc_enum_phyla kc_phylum, " id " kc_sub_p, int kc_son_nr, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix) #else (kc_p, kc_phylum, kc_sub_p, kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; " id " kc_sub_p; int kc_son_nr; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix; #endif " { if (strcmp( f_strofID( id ), "float" ) == 0)} ${ "{ YYSTYPE kc_n, kc_sub_n; kc_n.yt_voidptr = kc_p; kc_sub_n.yt_" id " = kc_sub_p; kc_do_printdot_do_add_edge(kc_n, kc_phylum, kc_sub_n, kc_phylum_" id ", kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix); } " $} {else if (strcmp( f_strofID( id ), "int" ) == 0)} ${ "{ YYSTYPE kc_n, kc_sub_n; kc_n.yt_voidptr = kc_p; kc_sub_n.yt_" id " = kc_sub_p; kc_do_printdot_do_add_edge(kc_n, kc_phylum, kc_sub_n, kc_phylum_" id ", kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix); } " $} {else} ${ "{ kc_do_printdot_add_edge(kc_p, kc_phylum, kc_sub_p, kc_phylum_" id ", kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix); } " $} "void fprintdot_" id " #ifdef KC_USE_PROTOTYPES (FILE *kc_f, " id " kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; " id " kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue__" id "(kc_f, kc_p, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot__" id "(kc_f, kc_p, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } " ]; PhylumDeclaration( id, *, ListAlternatives( *, * ), * ), PhylumDeclaration( id, *, NonlistAlternatives( * ), * ) -> [view_gen_printdotdefs_c: "void fprintdot_" id " #ifdef KC_USE_PROTOTYPES (FILE *kc_f, " id " kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; " id " kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_" id ", kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_" id ", True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } " ]; /* * * * * * * * * * * */ Nilphyla() -> [view_gen_printdotdefs_c: {/*EMPTY*/} ]; Consphyla( a_phy, r_phy ) -> [view_gen_printdotdefs_c: r_phy " /*SUPPRESS 622*/ assertReason(kc_phylum != kc_phylum_" a_phy ", \"kc_do_printdot_phylum called with kc_phylum_" a_phy " argument\"); " ]; /* * * * * * * * * * * */ Niloperators() -> [view_gen_printdotdefs_c: {/*EMPTY*/} ]; Consoperators( a_op, r_op ) -> [view_gen_printdotdefs_c: { arguments args; } r_op { args = f_argumentsofoperator( a_op ); gl_operator = a_op; gl_phylum = f_phylumofoperator( a_op ); if (length_arguments(args) > 0) } ${ " case (int)sel_" (ID)a_op ": { kc_i = 0; " (arguments)args:view_gen_printdotdefs_bigatom_c " break; } " $} { gl_operator = 0; gl_phylum = 0; } ]; Nilarguments() -> [view_gen_printdotdefs_bigatom_c: {/*EMPTY*/} ]; Consarguments( *, r_args ) -> [view_gen_printdotdefs_bigatom_c: r_args $0:view_gen_printdotdefs_bigatom_do_c ]; Consarguments( *, Nilarguments() ) -> [view_gen_printdotdefs_bigatom_c: $0:view_gen_printdotdefs_bigatom_do_c ]; Consarguments( a_arg, * ) -> [view_gen_printdotdefs_bigatom_do_c: { if (f_isbigatom( a_arg )) } ${ " kc_do_printdot_add_edge_" a_arg "(kc_p, kc_phylum, ((" (ID)gl_phylum ")kc_p)->u." (ID)gl_operator "." a_arg "_" $0->seqnr ", kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__" a_arg "(kc_f, ((" (ID)gl_phylum ")kc_p)->u." (ID)gl_operator "." a_arg "_" $0->seqnr ", False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); " $} { else } ${ " kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((" (ID)gl_phylum ")kc_p)->u." (ID)gl_operator "." a_arg "_" $0->seqnr ", kc_phylum_" a_arg ", kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((" (ID)gl_phylum ")kc_p)->u." (ID)gl_operator "." a_arg "_" $0->seqnr ", kc_phylum_" a_arg ", False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); " $} " kc_i++; " ]; /* * * * * * * * * * * */ Nilphyla() -> [view_gen_printdotedges_c: {/*EMPTY*/} ]; Consphyla( a_phy, r_phy ) -> [view_gen_printdotedges_c: r_phy " case (int)kc_phylum_" a_phy ": { kc_do_printdot_id_of__" a_phy "(kc_f, kc_p->ptr_to.yt_" a_phy ", kc_use_ctxt, kc_p->ptr_from.yt_voidptr, kc_p->son_nr); break; } " ]; /***************************************************************************/ PhylumDeclarations( pds ) -> [view_gen_listdecls_h: pds ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_listdecls_h: rpds pd ]; Nilphylumdeclarations() -> [view_gen_listdecls_h: {/*EMPTY*/} ]; PhylumDeclaration( *, *, *, * ) -> [view_gen_listdecls_h: {/*EMPTY*/} ]; PhylumDeclaration( id, *, ListAlternatives( *, el ), * ) -> [view_gen_listdecls_h: id " concat_" id " KC__P(( " id ", " id " )); " id " reverse_" id " KC__P(( " id " )); int length_" id " KC__P(( " id " )); " el " last_" id " KC__P(( " id " )); " id " map_" id " KC__P(( " id ", " el " (*)(" el "))); " id " filter_" id " KC__P(( " id ", boolean (*)(" el "))); void freelist_" id " KC__P(( " id " )); " ]; /***************************************************************************/ PhylumDeclarations( pds ) -> [view_gen_listdefs_c: "static char *kc_error_concat = \"concat_\"; static char *kc_error_reverse = \"reverse_\"; static char *kc_error_length = \"length_\"; static char *kc_error_last = \"last_\"; static char *kc_error_last_with_nil_argument = \"Internal Error: last_%s was called with argument Nil%s\\n\"; static char *kc_error_map = \"map_\"; static char *kc_error_filter = \"filter_\"; static char *kc_error_freelist = \"freelist_\"; static int kc_do_length_phylum #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, kc_enum_phyla kc_phylum ) #else (kc_p, kc_phylum) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; #endif { boolean kc_not_ready = True; int kc_length = 0; kc_enum_operators kc_prodsel; while(kc_not_ready) { /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum); kc_prodsel = ((casestring)kc_p)->prod_sel; if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].first_operator) { kc_not_ready=False; } else if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].last_operator) { kc_length++; kc_p = (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[1]); } else { kc_invalid_operator(kc_error_length, kc_phylum, __LINE__, __FILE__, (int)kc_prodsel);/*NOTREACHED*/ } } return kc_length; } static void kc_do_freelist_phylum #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, kc_enum_phyla kc_phylum ) #else (kc_p, kc_phylum) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; #endif { boolean kc_not_ready = True; kc_enum_operators kc_prodsel; kc_voidptr_t kc_tmp_p; while(kc_not_ready) { /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum); kc_prodsel = ((casestring)kc_p)->prod_sel; if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].first_operator) { kc_do_free_phylum(kc_p, False, kc_phylum); kc_not_ready=False; } else if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].last_operator) { kc_tmp_p = kc_p; kc_p = (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[1]); kc_do_free_phylum(kc_tmp_p, False, kc_phylum); } else { kc_invalid_operator(kc_error_freelist, kc_phylum, __LINE__, __FILE__, (int)kc_prodsel);/*NOTREACHED*/ } } } static kc_voidptr_t kc_do_concat_phylum #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p1, kc_voidptr_t kc_p2, kc_enum_phyla kc_phylum) #else (kc_p1, kc_p2, kc_phylum) kc_voidptr_t kc_p1, kc_p2; kc_enum_phyla kc_phylum; #endif { kc_enum_operators kc_prodsel; /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p1),\"kc_p1\",kc_phylum); kc_prodsel = ((casestring)kc_p1)->prod_sel; if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].first_operator) { return kc_p2; } else if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].last_operator) { return (kc_voidptr_t)(*kc_OperatorInfo[(int)kc_prodsel].create_routine)( kc_prodsel, (kc_voidptr_t)KC_SUBPHYLUM(kc_p1, kc_OperatorInfo[(int)kc_prodsel].suboffset[0]), kc_do_concat_phylum( (kc_voidptr_t)KC_SUBPHYLUM(kc_p1, kc_OperatorInfo[(int)kc_prodsel].suboffset[1]), kc_p2, kc_phylum ) ); } else { kc_invalid_operator(kc_error_concat, kc_phylum, __LINE__, __FILE__, (int)kc_prodsel);/*NOTREACHED*/return (kc_voidptr_t)0; } } static kc_voidptr_t kc_do_reverse_phylum #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, kc_enum_phyla kc_phylum) #else (kc_p, kc_phylum) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; #endif { boolean kc_not_ready = True; kc_enum_operators kc_prodsel; KC_PHYLUM_INFO *kc_phy_info = &kc_PhylumInfo[(int)kc_phylum]; KC_OPERATOR_INFO *kc_firstop_info = &kc_OperatorInfo[(int)kc_phy_info->first_operator]; KC_OPERATOR_INFO *kc_lastop_info = &kc_OperatorInfo[(int)kc_phy_info->last_operator]; kc_voidptr_t kc_tmp = (*kc_firstop_info->create_routine)(kc_phy_info->first_operator); while(kc_not_ready) { /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum); kc_prodsel = ((casestring)kc_p)->prod_sel; if (kc_prodsel == kc_phy_info->first_operator) { kc_not_ready=False; } else if (kc_prodsel == kc_phy_info->last_operator) { kc_tmp = (kc_voidptr_t)(*kc_lastop_info->create_routine)(kc_prodsel, (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_lastop_info->suboffset[0]), kc_tmp); kc_p = (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_lastop_info->suboffset[1]); } else { kc_invalid_operator(kc_error_reverse, kc_phylum, __LINE__, __FILE__, (int)kc_prodsel);/*NOTREACHED*/ } } return kc_tmp; } static kc_voidptr_t kc_do_last_phylum #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, kc_enum_phyla kc_phylum) #else (kc_p, kc_phylum) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; #endif { boolean kc_not_ready = True; kc_voidptr_t kc_tmp = (kc_voidptr_t)0; kc_enum_operators kc_prodsel; KC_PHYLUM_INFO *kc_phy_info = &kc_PhylumInfo[(int)kc_phylum]; KC_OPERATOR_INFO *kc_lastop_info = &kc_OperatorInfo[(int)kc_phy_info->last_operator]; /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum); if (((casestring)kc_p)->prod_sel == kc_phy_info->first_operator) { (void)fflush(stdout); (void)fprintf(stderr, kc_error_last_with_nil_argument, kc_phy_info->name, kc_phy_info->name); exit( 1 ); /*NOTREACHED*/ } while(kc_not_ready) { /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum); kc_prodsel = ((casestring)kc_p)->prod_sel; if (kc_prodsel == kc_phy_info->first_operator) { kc_not_ready=False; } else if (kc_prodsel == kc_phy_info->last_operator) { kc_tmp = (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_lastop_info->suboffset[0]); kc_p = (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_lastop_info->suboffset[1]); } else { kc_invalid_operator(kc_error_last, kc_phylum, __LINE__, __FILE__, (int)kc_prodsel);/*NOTREACHED*/ } } return kc_tmp; } static kc_voidptr_t kc_do_map_phylum #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, kc_voidptr_t (*kc_fp)(kc_voidptr_t), kc_enum_phyla kc_phylum) #else (kc_p, kc_fp, kc_phylum) kc_voidptr_t kc_p; kc_voidptr_t (*kc_fp)KC__P((kc_voidptr_t)); kc_enum_phyla kc_phylum; #endif { kc_enum_operators kc_prodsel; /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum); kc_prodsel = ((casestring)kc_p)->prod_sel; if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].first_operator) { return kc_p; } else if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].last_operator) { return (kc_voidptr_t)(*kc_OperatorInfo[(int)kc_prodsel].create_routine)( kc_prodsel, (*kc_fp)((kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[0])), kc_do_map_phylum((kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[1]), kc_fp, kc_phylum)); } else { kc_invalid_operator(kc_error_map, kc_phylum, __LINE__, __FILE__, (int)kc_prodsel);/*NOTREACHED*/return (kc_voidptr_t)0; } } static kc_voidptr_t kc_do_filter_phylum #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, boolean (*kc_fp)(kc_voidptr_t), kc_enum_phyla kc_phylum) #else (kc_p, kc_fp, kc_phylum) kc_voidptr_t kc_p; boolean (*kc_fp)KC__P((kc_voidptr_t)); kc_enum_phyla kc_phylum; #endif { kc_enum_operators kc_prodsel; /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum); kc_prodsel = ((casestring)kc_p)->prod_sel; if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].first_operator) { return kc_p; } else if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].last_operator) { if ((*kc_fp)((kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[0]))) { return (kc_voidptr_t)(*kc_OperatorInfo[(int)kc_prodsel].create_routine)( kc_prodsel, (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[0]), kc_do_filter_phylum((kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[1]), kc_fp, kc_phylum)); } else { return kc_do_filter_phylum((kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[1]), kc_fp, kc_phylum); } } else { kc_invalid_operator(kc_error_filter, kc_phylum, __LINE__, __FILE__, (int)kc_prodsel);/*NOTREACHED*/return (kc_voidptr_t)0; } } " pds ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_listdefs_c: rpds pd ]; Nilphylumdeclarations() -> [view_gen_listdefs_c: {/*EMPTY*/} ]; PhylumDeclaration( *, *, *, * ) -> [view_gen_listdefs_c: {/*EMPTY*/} ]; PhylumDeclaration( id, *, ListAlternatives( *, el ), * ) -> [view_gen_listdefs_c: id " concat_" id " #ifdef KC_USE_PROTOTYPES (" id " kc_p1, " id " kc_p2) #else (kc_p1, kc_p2) " id " kc_p1, kc_p2; #endif " { if (f_isbigatom(el)) } ${ "{ /*SUPPRESS 622*/ assert_" id "(kc_p1,\"kc_p1\"); if (kc_p1->prod_sel == sel_Nil" id ") { return kc_p2; } else if (kc_p1->prod_sel == sel_Cons" id ") { return Cons" id "( kc_p1->u.Cons" id "." el "_1, concat_" id "(kc_p1->u.Cons" id "." id "_1, kc_p2) ); } else { kc_invalid_operator(kc_error_concat, kc_phylum_" id ", __LINE__, __FILE__, (int)kc_p1->prod_sel);/*NOTREACHED*/return (" id ")0; } } " $} {else} ${ "{ return (" id ")kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_" id " ); } " $} id " reverse_" id " #ifdef KC_USE_PROTOTYPES (" id " kc_p) #else (kc_p) " id " kc_p; #endif " { if (f_isbigatom(el)) } ${ "{ boolean kc_not_ready = True; " id " kc_tmp = Nil" id "(); while(kc_not_ready) { /*SUPPRESS 622*/ assert_" id "(((casestring)kc_p),\"kc_p\"); if (kc_p->prod_sel == sel_Nil" id ") { kc_not_ready=False; } else if (kc_p->prod_sel == sel_Cons" id ") { kc_tmp = Cons" id "(kc_p->u.Cons" id "." el "_1, kc_tmp); kc_p = kc_p->u.Cons" id "." id "_1; } else { kc_invalid_operator(kc_error_reverse, kc_phylum_" id ", __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/ } } return kc_tmp; } " $} {else} ${ "{ return (" id ")kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_" id " ); } " $} "int length_" id " #ifdef KC_USE_PROTOTYPES (" id " kc_p) #else (kc_p) " id " kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_" id " ); } " el " last_" id " #ifdef KC_USE_PROTOTYPES (" id " kc_p) #else (kc_p) " id " kc_p; #endif " { if (f_isbigatom(el)) } ${ "{ boolean kc_not_ready = True; " el " kc_tmp = (" el ")0; /*SUPPRESS 622*/ assert_" id "(kc_p,\"kc_p\"); if (kc_p->prod_sel == sel_Nil" id ") { (void)fflush(stdout); (void)fprintf(stderr, kc_error_last_with_nil_argument, \"" id "\", \"" id "\"); exit( 1 ); /*NOTREACHED*/ } while(kc_not_ready) { /*SUPPRESS 622*/ assert_" id "(kc_p,\"kc_p\"); if (kc_p->prod_sel == sel_Nil" id ") { kc_not_ready=False; } else if (kc_p->prod_sel == sel_Cons" id ") { kc_tmp = kc_p->u.Cons" id "." el "_1; kc_p = kc_p->u.Cons" id "." id "_1; } else { kc_invalid_operator(kc_error_last, kc_phylum_" id ", __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/ } } return kc_tmp; } " $} {else} ${ "{ return (" el ")kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_" id " ); } " $} id " map_" id " #ifdef KC_USE_PROTOTYPES (" id " kc_p, " el " (*kc_fp)(" el ")) #else (kc_p, kc_fp) " id " kc_p; " el " (*kc_fp)KC__P((" el ")); #endif " { if (f_isbigatom(el)) } ${ "{ /*SUPPRESS 622*/ assert_" id "(kc_p,\"kc_p\"); if (kc_p->prod_sel == sel_Nil" id ") { return kc_p; } else if (kc_p->prod_sel == sel_Cons" id ") { return Cons" id "( (*kc_fp)(kc_p->u.Cons" id "." el "_1), map_" id "(kc_p->u.Cons" id "." id "_1, kc_fp)); } else { kc_invalid_operator(kc_error_map, kc_phylum_" id ", __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/return (" id ")0; } } " $} {else} ${ "{ return (" id ")kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_" id " ); } " $} id " filter_" id " #ifdef KC_USE_PROTOTYPES (" id " kc_p, boolean (*kc_fp)(" el ")) #else (kc_p, kc_fp) " id " kc_p; boolean (*kc_fp)KC__P((" el ")); #endif " { if (f_isbigatom(el)) } ${ "{ /*SUPPRESS 622*/ assert_" id "(kc_p,\"kc_p\"); if (kc_p->prod_sel == sel_Nil" id ") { return kc_p; } else if (kc_p->prod_sel == sel_Cons" id ") { if ((*kc_fp)(kc_p->u.Cons" id "." el "_1)) { return Cons" id "( kc_p->u.Cons" id "." el "_1, filter_" id "(kc_p->u.Cons" id "." id "_1, kc_fp)); } else { return filter_" id "(kc_p->u.Cons" id "." id "_1, kc_fp); } } else { kc_invalid_operator(kc_error_filter, kc_phylum_" id ", __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/return (" id ")0; } } " $} {else} ${ "{ return (" id ")kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_" id " ); } " $} "void freelist_" id " #ifdef KC_USE_PROTOTYPES (" id " kc_p) #else (kc_p) " id " kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_" id " ); } " ]; /***************************************************************************/ /* * Included code * */ Nilincludedeclarations() -> [view_gen_includes: {/*EMPTY*/} ]; Consincludedeclarations( *, * ) -> [view_gen_includes: "/* included stuff */ " $0:view_do_gen_includes "/* end included stuff */ " ]; Nilincludedeclarations() -> [view_do_gen_includes: {/*EMPTY*/} ]; Consincludedeclarations( e ,l) -> [view_do_gen_includes: l e ]; IncludeDeclaration( i ) -> [view_do_gen_includes: "#line " $0->line " \"" $0->file:view_filename "\" " i (charptr)g_emptystring:view_printer_outputfileline ]; Nilincludes() -> [view_do_gen_includes: {/*EMPTY*/} ]; Consincludes( e, l ) -> [view_do_gen_includes: l e ]; Include( c ) -> [view_do_gen_includes: c ]; IncludeNl( i ) -> [view_do_gen_includes: { char *nl_string = f_mknls( i ); } (charptr)nl_string ]; /***************************************************************************/ /* * CSGIO code */ PhylumDeclarations( * ) -> [view_gen_csgio_start_h: "/* translation of file(s) " (fnfiles)Thefnfiles " */ /* generated by: * " (charptr)kimwitu_copyright " */ #ifndef KC_CSGIO_HEADER #define KC_CSGIO_HEADER #define KIMW_CSGIO_HEADER /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include \"k.h\" /* in case a user forgets */ int kc_set_csgio_hashtablesize KC__P((int kc_i)); " ]; PhylumDeclarations( * ) -> [view_gen_csgio_end_h: "#endif /* ! KC_CSGIO_HEADER */ " ]; PhylumDeclarations( pds ) -> [view_gen_csgio_h: pds ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_csgio_h: rpds pd ]; Nilphylumdeclarations() -> [view_gen_csgio_h: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_csgio_h: {/*EMPTY*/} ]; PhylumDeclaration( id, *, ListAlternatives( *, * ), * ), PhylumDeclaration( id, *, PredefinedAlternatives( * ), * ), PhylumDeclaration( id, *, NonlistAlternatives( * ), * ) -> [view_gen_csgio_h: "char *CSGIOread_" id " KC__P(( FILE *, " id "* )); char *CSGIOwrite_" id " KC__P(( FILE *, " id " )); " ]; /***************************************************************************/ PhylumDeclarations( * ) -> [view_gen_csgio_start_c: "/*LINTLIBRARY*/ /* translation of file(s) " (fnfiles)Thefnfiles " */ /* generated by: * " (charptr)kimwitu_copyright " */ #define KC_CSGIO #define KIMW_CSGIO /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include #include #include #include #if ((! defined(KC_STDC) ) && defined(sun)) extern char *sprintf(); #endif #ifdef KC_STDC # include #else extern double atof (/* char* */); #endif #include \"k.h\" #include \"csgiok.h\" " ]; PhylumDeclarations( pds ) -> [view_gen_csgio_c: "/* macro's that do the string concatenation */ #define KC_MIdStr(s) s #ifdef KC_STDC # define KC_MStrConc(s1,s2) s1 ## s2 # define KC_MStrConc3(s1,s2,s3) s1 ## s2 ## s3 #else # define KC_MStrConc(s1,s2) KC_MIdStr(s1)s2 # define KC_MStrConc3(s1,s2,s3) KC_MIdStr(KC_MIdStr(s1)s2)s3 #endif #ifndef MALLOC # define MALLOC emalloc #endif #ifndef REALLOC /* * # ifdef lint * # define REALLOC(kc_p,kc_s) (kc_p,kc_s,0) * # else */ # define REALLOC erealloc /* * # endif */ #endif #ifndef CALLOC # define CALLOC ecalloc #endif #ifndef FREE # define FREE efree #endif #ifndef efree /* * # ifdef lint * # define efree(kc_p) * # else */ # define efree(kc_p) free((kc_malloc_t)(kc_p)) /* * # endif */ #endif /* kc_qsort_firstarg_t should be void* kc_voidptr_t, but sun's include files are dumb */ #ifndef KC_QSORT_FIRSTARG_T typedef char *kc_qsort_firstarg_t; #else typedef KC_QSORT_FIRSTARG_T kc_qsort_firstarg_t; #endif /* macro that does the string concatenation */ #define kc_str_conc2(a,b) (char*)strcat(strcpy((char *) MALLOC((kc_size_t)(strlen(a) + strlen(b) +1)), a), b) /* macro that does the field/son selection */ #ifndef KC_FIELD # define KC_FIELD(var,oper,subphy,subphynr,sonnr) (var->u.oper.KC_MStrConc3(subphy,_,subphynr)) #endif /* macro that reads the integers */ #define kc_do_get_int(c,c_init,i,f)\\ c = c_init;\\ i = 0;\\ while (isdigit(c)){\\ i = (i*10) + (c-'0');\\ c = getc(f);\\ } static char *kc_malloc_area = (char*)0; static kc_size_t kc_sizeof_malloc_area = 0; #define KC_GETMALLOCAREA(kc_s) (((kc_s) > kc_sizeof_malloc_area) ? kc_grow_malloc_area(kc_s) : kc_malloc_area) static char *kc_grow_malloc_area #ifdef KC_USE_PROTOTYPES (kc_size_t kc_s) #else (kc_s) kc_size_t kc_s; #endif { if (kc_malloc_area != (char*)0) FREE((kc_voidptr_t)kc_malloc_area); kc_malloc_area = (char*)MALLOC(kc_s); kc_sizeof_malloc_area = kc_s; return kc_malloc_area; } typedef enum { KC_CSGIOSTATUS_NO_ERR = 0, KC_CSGIOSTATUS_SCAN_ERR_1, KC_CSGIOSTATUS_SCAN_ERR_2, KC_CSGIOSTATUS_SCAN_ERR_3, KC_CSGIOSTATUS_SCAN_ERR_4, KC_CSGIOSTATUS_SCAN_ERR_5, KC_CSGIOSTATUS_GRAM_INCONSISTENT, KC_CSGIOSTATUS_ROK, KC_CSGIOSTATUS_ILLEGAL_OPTION, KC_CSGIOSTATUS_TOO_MANY_OPERATORS, KC_CSGIOSTATUS_WOK, KC_CSGIOSTATUS_TXT_FILE_INPUT, KC_CSGIOSTATUS_SYNTAX_ERROR, KC_CSGIOSTATUS_ILLEGAL_CONTEXT, KC_CSGIOSTATUS_PREMATURE_EOF, KC_CSGIOSTATUS_UNEXP_FATHER_MARK } KC_IO_STATUS; typedef struct { KC_IO_STATUS io_status; char *err_reason; int line; } KC_IO_RETURN; /* global variables */ static jmp_buf kc_priv_env; static char *kc_csgio_err_reason = \"\"; static int kc_no_external_ops; #define KC_NOT_FOUND_OPERATOR -1 static int kc_file_offset_base; static int kc_file_offset; static boolean kc_CSGIOsharing = #ifndef KC_CSGIO_NO_SHARING True #else /* KC_CSGIO_NO_SHARING */ False #endif /* !KC_CSGIO_NO_SHARING */ ; static kc_hashnode_t (*kc_mkhashnode)KC__P((YYSTYPE, kc_hashtable_t, kc_enum_phyla)) = #ifndef KC_CSGIO_NO_SHARING kc_mksharinghashnode #else /* KC_CSGIO_NO_SHARING */ kc_mknonsharinghashnode #endif /* !KC_CSGIO_NO_SHARING */ ; boolean kc_set_csgio_sharing #ifdef KC_USE_PROTOTYPES (boolean kc_i) #else (kc_i) boolean kc_i; #endif { boolean kc_tmp = kc_CSGIOsharing; kc_CSGIOsharing = kc_i; return kc_tmp; } /* Magic File descriptor(s) */ /* Magic descriptors of length up to KC_MAGIC_LENGTH-1 are supported. */ /* When changing KC_MAGIC_LENGTH. change constant in MAGIC_READ_FORMAT to be one less than KC_MAGIC_LENGTH. */ /* Every file is assumed to start with the magic file descriptor for asc_csg_v3 */ static char kc_ascii_prefix_magic_v3[] = \"A#S#C#S#S#L#V#3\"; #define KC_MAGIC_LENGTH 25 #define KC_MAGIC_READ_FORMAT \"%24s\\n\" /* Operators with names of length upto OP_LENGTH-1 are supported. */ /* When changing OP_LENGHTH, change constant in OP_READ_FOMAT to be one less */ #define KC_OP_LENGTH 256 #define KC_OP_READ_FORMAT \"%255s\\n\" /************************/ /* Error-string Routine */ /************************/ static char *kc_CSGIOerrorstring #ifdef KC_USE_PROTOTYPES (KC_IO_STATUS kc_io_status) #else (kc_io_status) KC_IO_STATUS kc_io_status; #endif { switch( (int)kc_io_status ) { case (int)KC_CSGIOSTATUS_NO_ERR: return( \"No errors\" ); case (int)KC_CSGIOSTATUS_SCAN_ERR_1: return( \"Scan error(1)\" ); case (int)KC_CSGIOSTATUS_SCAN_ERR_2: return( \"Scan error(2)\" ); case (int)KC_CSGIOSTATUS_SCAN_ERR_3: return( \"Scan error(3)\" ); case (int)KC_CSGIOSTATUS_SCAN_ERR_4: return( \"Scan error(4)\" ); case (int)KC_CSGIOSTATUS_SCAN_ERR_5: return( \"Scan error(5)\" ); case (int)KC_CSGIOSTATUS_GRAM_INCONSISTENT: return( \"Grammar is inconsistent\" ); case (int)KC_CSGIOSTATUS_ROK: return( \"Read OK structure file\" ); case (int)KC_CSGIOSTATUS_ILLEGAL_OPTION: return( \"Illegal option in write command\" ); case (int)KC_CSGIOSTATUS_TOO_MANY_OPERATORS: return( \"Too many operators for binary format\" ); case (int)KC_CSGIOSTATUS_WOK: return( \"Written OK\" ); case (int)KC_CSGIOSTATUS_TXT_FILE_INPUT: return( \"Read OK Text-file\" ); case (int)KC_CSGIOSTATUS_SYNTAX_ERROR: return( \"Syntax error\" ); case (int)KC_CSGIOSTATUS_ILLEGAL_CONTEXT: return( \"Illegal context for operator\" ); case (int)KC_CSGIOSTATUS_PREMATURE_EOF: return( \"Premature eof in file\" ); case (int)KC_CSGIOSTATUS_UNEXP_FATHER_MARK: return( \"Unexpected FATHER MARKER\" ); default: return( \"Unknown error code\" ); } } static kc_hashtable_t kc_CSGIOhashtable; /* Maps */ typedef struct { int left; int right; } kc_OpToOpMap_tuple_t; static kc_OpToOpMap_tuple_t kc_OpToOpMap[ KC_NO_OF_OPERATORS ]; #define KC_NOT_USED -1 static int kc_op_search #ifdef KC_USE_PROTOTYPES (char *kc_s) #else (kc_s) char *kc_s; #endif { int kc_i; for ( kc_i=0; kc_i < KC_NO_OF_OPERATORS; kc_i++ ) { if ( strcmp( kc_s, kc_OperatorInfo[kc_i].name ) == 0 ) return( kc_i ); } return( KC_NOT_FOUND_OPERATOR ); } static void kc_initializeOpToOpMap #ifdef KC_USE_PROTOTYPES (int kc_v) #else (kc_v) int kc_v; #endif { int kc_i; for ( kc_i=0; kc_i < KC_NO_OF_OPERATORS; kc_i++ ) { kc_OpToOpMap[kc_i].left = kc_i; kc_OpToOpMap[kc_i].right = kc_v; } } static int kc_OpToOpMap_tuple_t_compare_right #ifdef KC_USE_PROTOTYPES (kc_constvoidptr_t kc_el1, kc_constvoidptr_t kc_el2) #else (kc_el1, kc_el2) kc_constvoidptr_t kc_el1, kc_el2; #endif { kc_OpToOpMap_tuple_t *kc_elt1 = (kc_OpToOpMap_tuple_t *)kc_el1; kc_OpToOpMap_tuple_t *kc_elt2 = (kc_OpToOpMap_tuple_t *)kc_el2; /* sort in DECREASING order */ return (kc_elt2->right - kc_elt1->right); } static int kc_OpToOpMap_tuple_t_compare_left #ifdef KC_USE_PROTOTYPES (kc_constvoidptr_t kc_el1, kc_constvoidptr_t kc_el2) #else (kc_el1, kc_el2) kc_constvoidptr_t kc_el1, kc_el2; #endif { kc_OpToOpMap_tuple_t *kc_elt1 = (kc_OpToOpMap_tuple_t *)kc_el1; kc_OpToOpMap_tuple_t *kc_elt2 = (kc_OpToOpMap_tuple_t *)kc_el2; /* sort in INCREASING order */ return (kc_elt1->left - kc_elt2->left); } static void kc_sort_rightOpToOpMap() { qsort((kc_qsort_firstarg_t)kc_OpToOpMap, KC_NO_OF_OPERATORS, sizeof(kc_OpToOpMap_tuple_t), kc_OpToOpMap_tuple_t_compare_right); } static void kc_sort_leftOpToOpMap() { qsort((kc_qsort_firstarg_t)kc_OpToOpMap, KC_NO_OF_OPERATORS, sizeof(kc_OpToOpMap_tuple_t), kc_OpToOpMap_tuple_t_compare_left); } static void kc_renumberOpToOpMap() { int kc_i, kc_j = 0; for ( kc_i=0; kc_i < KC_NO_OF_OPERATORS; kc_i++ ) { if (kc_OpToOpMap[kc_i].right > 0) { kc_OpToOpMap[kc_i].right = kc_j++; } else { kc_OpToOpMap[kc_i].right = KC_NOT_USED; } } } #define KC_MAKE_NEW_MAPPING(ext_op,int_op) kc_OpToOpMap[ext_op].right = int_op; #define KC_MAKE_NEW_SCAN_MAPPING(ext_op) kc_OpToOpMap[ext_op].right++; #define KC_MAP(op) (kc_OpToOpMap[op].right) #define KC_IS_MAPPED(op) (kc_OpToOpMap[op].right != KC_NOT_USED) #define KC_OP_NAME(op) (kc_OperatorInfo[op].name) #define KC_NO_SONS(prod) (kc_OperatorInfo[prod].no_sons) #define KC_ATOMICITY(prod) (kc_OperatorInfo[prod].atomicity) /*ARGSUSED*/ static void kc_error_operator_not_in_phylum #ifdef KC_USE_PROTOTYPES (int kc_op, char *kc_str1, char *kc_str2, int kc_phy, char *kc_fn, int kc_l) #else (kc_op, kc_str1, kc_str2, kc_phy, kc_fn, kc_l) int kc_op; char *kc_str1; char *kc_str2; int kc_phy; char *kc_fn; int kc_l; #endif { char *kc_error_message1 = \"operator not defined in phylum \"; char *kc_error_message2 = \": \"; if ((kc_op <= (int)kc_one_before_first_operator) || (kc_op >= (int)kc_last_operator)) { char kc_value[30]; (void)sprintf(kc_value, \"%d\",kc_op); kc_csgio_err_reason = kc_str_conc2(\"unknown operator number: \",kc_value); } else { kc_csgio_err_reason = (char*)strcat(strcat(strcat(strcpy((char*)MALLOC((kc_size_t)(strlen(kc_error_message1)+strlen(kc_PhylumInfo[kc_phy].name)+strlen(kc_error_message2)+strlen(kc_OperatorInfo[kc_op].name)+1)), kc_error_message1), kc_PhylumInfo[kc_phy].name), kc_error_message2), kc_OperatorInfo[kc_op].name); } longjmp( kc_priv_env, (int)KC_CSGIOSTATUS_ILLEGAL_CONTEXT ); /*NOTREACHED*/ } /* NEED to be extended */ static KC_IO_RETURN kc_io_return #ifdef KC_USE_PROTOTYPES (KC_IO_STATUS kc_status, char *kc_err_reason /*, int kc_line*/) #else (kc_status, kc_err_reason /*, kc_line*/ ) KC_IO_STATUS kc_status; char *kc_err_reason; /*int kc_line;*/ #endif { KC_IO_RETURN kc_r; kc_r.io_status = kc_status; kc_r.err_reason = kc_err_reason; /*kc_r.line = kc_line;*/ return(kc_r); } static char *kc_readKC_IO_RETURN2char #ifdef KC_USE_PROTOTYPES (KC_IO_RETURN kc_p) #else (kc_p) KC_IO_RETURN kc_p; #endif { char *kc_err_ret = (char *)0; char *kc_err_sep = \": \"; if (kc_p.io_status != KC_CSGIOSTATUS_ROK) { char *kc_io_err = kc_CSGIOerrorstring(kc_p.io_status); kc_err_ret = (char *)MALLOC((kc_size_t)strlen(kc_io_err)+strlen(kc_err_sep)+strlen(kc_p.err_reason)+1); (void)strcpy(kc_err_ret, kc_io_err); (void)strcat(kc_err_ret, kc_err_sep); (void)strcat(kc_err_ret, kc_p.err_reason); } return kc_err_ret; } static char *kc_writeKC_IO_RETURN2char #ifdef KC_USE_PROTOTYPES (KC_IO_RETURN kc_p) #else (kc_p) KC_IO_RETURN kc_p; #endif { char *kc_err_ret = (char *)0; char *kc_err_sep = \": \"; if (kc_p.io_status != KC_CSGIOSTATUS_WOK) { char *kc_io_err = kc_CSGIOerrorstring(kc_p.io_status); kc_err_ret = (char *)MALLOC((kc_size_t)strlen(kc_io_err)+strlen(kc_err_sep)+strlen(kc_p.err_reason)+1); (void)strcpy(kc_err_ret, kc_io_err); (void)strcat(kc_err_ret, kc_err_sep); (void)strcat(kc_err_ret, kc_p.err_reason); } return kc_err_ret; } /* Base 64 numbers are written with the digits: : ; < = > ? @ A-Z [ \\ ] ^ _ ` a-y Base 10 numbers are written with the ordinary digits 0-9. Other characters are used in special circumstances: ! Indicates switch between reading attribute and unattributed nodes. # Indicates that the father is the next PROD_INSTANCE in the file. + Indicates that the following bytes are not a base 64 number * Indicates a line containing a (decimal) count of attributes. */ #define KC_B64_ZERO_CHAR ':' #define KC_IS_B64(c) ((unsigned)((c)-KC_B64_ZERO_CHAR)<64) #define KC_ASCII_ZERO '0' #define KC_NON_B64_CHAR '+' #define KC_FATHER_MARKER '#' #define KC_SIX_BIT_MASK 0x3f #ifndef KC_NO_CSGIO_READ /* read and compute the base 64 integer in stream */ static unsigned get_rest_of_b64 #ifdef KC_USE_PROTOTYPES (FILE *kc_stream, register int kc_read_char, char kc_trailing_char) #else (kc_stream, kc_read_char, kc_trailing_char) FILE *kc_stream; register int kc_read_char; char kc_trailing_char; #endif { unsigned kc_next_char; register int kc_offset; register int kc_i = 0; if (!KC_IS_B64(kc_read_char)) longjmp(kc_priv_env, (int)KC_CSGIOSTATUS_SCAN_ERR_1); kc_offset = (int) kc_read_char - KC_B64_ZERO_CHAR; kc_next_char = (unsigned) getc(kc_stream); while(KC_IS_B64(kc_next_char)) { kc_offset += (int) ((kc_next_char - KC_B64_ZERO_CHAR) << (6 * (++kc_i))); kc_next_char = (unsigned) getc(kc_stream); } if (kc_next_char == '-') { kc_offset *= -1; kc_next_char = (unsigned) getc(kc_stream); } if (kc_next_char != (unsigned)kc_trailing_char) longjmp(kc_priv_env, (int)KC_CSGIOSTATUS_SCAN_ERR_1); return((unsigned) kc_offset); } /* read shared functions */ typedef enum { KC_NOT_READ_YET, KC_READ_EARLIER } KC_READ_STATUS; /* variable used by the sharing routines during a read */ /* stores pointers to value_ptr fields */ static YYSTYPE *kc_offset_to_address_map; static char* *kc_offset_to_address_map_base; static void kc_init_read_sharing #ifdef KC_USE_PROTOTYPES (int kc_node_count, int kc_node_count_base) #else (kc_node_count, kc_node_count_base) int kc_node_count; int kc_node_count_base; #endif { kc_offset_to_address_map = (YYSTYPE *)CALLOC((kc_size_t)kc_node_count, (kc_size_t)sizeof(YYSTYPE)); kc_file_offset = 0; kc_offset_to_address_map_base = (char* *)CALLOC((kc_size_t)kc_node_count_base, (kc_size_t)sizeof(char*)); kc_file_offset_base = 0; } static KC_READ_STATUS kc_read_sharing_find #ifdef KC_USE_PROTOTYPES (FILE *kc_stream, YYSTYPE *kc_valptr) #else (kc_stream, kc_valptr) FILE *kc_stream; YYSTYPE *kc_valptr; #endif { char kc_first_char; unsigned kc_offset; kc_first_char = getc(kc_stream); if (KC_IS_B64(kc_first_char)) { kc_offset = get_rest_of_b64(kc_stream, kc_first_char, '\\n'); *kc_valptr = kc_offset_to_address_map[kc_file_offset - (int) kc_offset]; return(KC_READ_EARLIER); } else { (void)ungetc(kc_first_char, kc_stream); return(KC_NOT_READ_YET); } } static KC_READ_STATUS kc_read_sharing_find_base #ifdef KC_USE_PROTOTYPES (FILE *kc_stream, char **kc_valptr) #else (kc_stream, kc_valptr) FILE *kc_stream; char **kc_valptr; #endif { char kc_first_char; unsigned kc_offset; kc_first_char = getc(kc_stream); if (KC_IS_B64(kc_first_char)) { kc_offset = get_rest_of_b64(kc_stream, kc_first_char, '\\n'); *kc_valptr = kc_offset_to_address_map_base[kc_file_offset_base - (int) kc_offset]; return(KC_READ_EARLIER); } else { return(KC_NOT_READ_YET); } } #define kc_read_sharing_store(kc_ptr, kc_loc) \\ kc_offset_to_address_map[kc_loc] = kc_ptr #define kc_read_sharing_store_base(kc_ptr) \\ kc_offset_to_address_map_base[kc_file_offset_base++] = kc_ptr static void kc_end_read_sharing() { FREE((kc_voidptr_t)kc_offset_to_address_map); FREE((kc_voidptr_t)kc_offset_to_address_map_base); } static void kc_CSGIOdo_read_atom_denotation #ifdef KC_USE_PROTOTYPES (FILE *kc_stream, char *kc_sbase, int kc_len) #else (kc_stream, kc_sbase, kc_len) FILE *kc_stream; char *kc_sbase; int kc_len; #endif { char * kc_sptr = kc_sbase; register int kc_ch, kc_ch1; register char kc_test; register int kc_i; for (kc_i=0; kc_iname ); } break; case (int)sel_NoCaseStr: if (kc_read_sharing_find_base( kc_stream, &kc_sbase ) == KC_NOT_READ_YET) { kc_not_read_yet = True; kc_do_get_int(kc_delim,getc(kc_stream),kc_len,kc_stream); if ( kc_delim == EOF ) longjmp(kc_priv_env, (int)KC_CSGIOSTATUS_SCAN_ERR_1); kc_sbase = (char *) KC_GETMALLOCAREA((kc_size_t)(kc_len + 1)); /* +1 for '\\0' */ kc_CSGIOdo_read_atom_denotation(kc_stream, kc_sbase, kc_len); } kc_answer.yt_nocasestring = mknocasestring( kc_sbase ); if (kc_not_read_yet) { kc_read_sharing_store_base( kc_answer.yt_nocasestring->name ); } break; default: { YYSTYPE kc_subtmp[" ${ { int i = last_argsnumbers( Theargsnumbers ); if (i<=0) i = 1; } (int)i $} "]; int kc_i; for (kc_i = 0; kc_i < kc_OperatorInfo[kc_op].no_sons; kc_i++) { kc_subtmp[kc_i] = kc_CSGIOread2dft(kc_stream, kc_OperatorInfo[kc_op].subphylum[kc_i] ); } " { if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) } ${ " switch(kc_op) { " (operators)cg_bigatomoperators " default: " $} " switch(kc_OperatorInfo[kc_op].no_sons) { " (argsnumbers)Theargsnumbers " default: /*SUPPRESS 622*/ assertReason(kc_zero_constant, \"unexpected number of sub-phyla\"); break; } " { if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) } ${ " break; } " $} " }} kc_read_sharing_store( kc_answer, kc_location ); return kc_answer; } static KC_IO_RETURN kc_CSGIOreadphylum #ifdef KC_USE_PROTOTYPES (FILE *kc_stream, YYSTYPE *kc_ptr, kc_enum_phyla kc_phylum) #else (kc_stream, kc_ptr, kc_phylum) FILE *kc_stream; YYSTYPE *kc_ptr; kc_enum_phyla kc_phylum; #endif { KC_IO_STATUS kc_answer; int kc_scan_return_code; char kc_magic_no[KC_MAGIC_LENGTH]; char kc_dollarcode[KC_OP_LENGTH]; char kc_ext_name[KC_OP_LENGTH]; int kc_operator, kc_node_count, kc_node_count_base; kc_csgio_err_reason = \"\"; kc_scan_return_code = fscanf( kc_stream, KC_MAGIC_READ_FORMAT, kc_magic_no ); if ( kc_scan_return_code != 1 ) return( kc_io_return(KC_CSGIOSTATUS_GRAM_INCONSISTENT, \"magic string not scanned\") ); if ( strcmp( kc_magic_no, kc_ascii_prefix_magic_v3 ) != 0 ) return( kc_io_return(KC_CSGIOSTATUS_GRAM_INCONSISTENT,\"scanned magic string is not asc_ssl_v3 magic string\") ); if ( fscanf( kc_stream, \"$%[^ ] \\n\", kc_dollarcode ) != 1 ) return( kc_io_return(KC_CSGIOSTATUS_GRAM_INCONSISTENT,\"problems finding $ before operators\") ); while ( strcmp( kc_dollarcode, \"operators\" ) != 0 ) { if ( fscanf( kc_stream, \"%*[^$]$%[^ ] \\n\", kc_dollarcode) != 1 ) return( kc_io_return(KC_CSGIOSTATUS_GRAM_INCONSISTENT,\"problems finding operators keyword\") ); } /* read all external operator definitions and initialize map */ kc_no_external_ops = 0; kc_initializeOpToOpMap(KC_NOT_FOUND_OPERATOR); while ( ! kc_zero_constant ) { int kc_ext_arity, kc_ext_attr_arity, kc_ext_atomicity; if ( fscanf( kc_stream, \"%[^ ] \", kc_ext_name ) != 1 ) return( kc_io_return(KC_CSGIOSTATUS_SCAN_ERR_3, \"no operator name at start of line\") ); else if ( kc_ext_name[0] == '$' ) break; else if ( fscanf( kc_stream, \"%d %d %d\\n\", &kc_ext_arity, &kc_ext_attr_arity, &kc_ext_atomicity ) != 3 ) return( kc_io_return(KC_CSGIOSTATUS_SCAN_ERR_4, \"no arity, attr_arity or atomicity\") ); else { kc_operator = kc_op_search( kc_ext_name ); if ( ( kc_operator == KC_NOT_FOUND_OPERATOR ) || ( KC_NO_SONS( kc_operator ) != kc_ext_arity ) || ( KC_ATOMICITY( kc_operator) != kc_ext_atomicity ) ) return( kc_io_return(KC_CSGIOSTATUS_GRAM_INCONSISTENT, kc_str_conc2(\"problems with operator: \",kc_ext_name)) ); else { KC_MAKE_NEW_MAPPING( kc_no_external_ops, kc_operator ); kc_no_external_ops++; } } } kc_answer = (KC_IO_STATUS) setjmp( kc_priv_env ); if ( kc_answer != KC_CSGIOSTATUS_NO_ERR ) /* longjmp was called if we get here */ return( kc_io_return(kc_answer, kc_csgio_err_reason)); else { /* ascertain that we are at the $object section, or get to that point */ if ( strcmp( kc_ext_name, \"$object\" ) != 0 ) /* if not at $object */ while ( strcmp( kc_ext_name, \"object\" ) != 0 ) { if ( fscanf( kc_stream, \"%*[^$]$%[^ ]\", kc_ext_name ) != 1 ) return( kc_io_return(KC_CSGIOSTATUS_GRAM_INCONSISTENT, kc_str_conc2(\"problems finding start of object section\",\"\")) ); } /* read node_count; set up address map */ if (fscanf(kc_stream, \"%d %d\\n\", &kc_node_count, &kc_node_count_base) != 2) longjmp(kc_priv_env, (int)KC_CSGIOSTATUS_SCAN_ERR_1); kc_init_read_sharing(kc_node_count, kc_node_count_base); /* for shared values */ /* read the tree (actually a graph) */ *kc_ptr = kc_CSGIOread2dft( kc_stream, kc_phylum ); kc_end_read_sharing(); /* for atomic values */ kc_answer = KC_CSGIOSTATUS_ROK; } return( kc_io_return(kc_answer, \"\") ); } " pds:view_gen_csgio_c_read "#endif /* ! KC_NO_CSGIO_READ */ #ifndef KC_NO_CSGIO_WRITE static int kc_node_count; static int kc_node_count_base; static void kc_print_to_file #ifdef KC_USE_PROTOTYPES (FILE *kc_f, char *kc_value) #else (kc_f, kc_value) FILE *kc_f; char *kc_value; #endif { register unsigned char *kc_vptr = (unsigned char*)kc_value; register int kc_len = strlen(kc_value); register int kc_i; static char kc_hex_digit[] = \"0123456789abcdef\"; (void)fprintf(kc_f, \"%d \", kc_len); for (kc_i=0; kc_i_ptr)--; kc_f->_cnt++; *****************************/ } static void kc_print_b64_to_file #ifdef KC_USE_PROTOTYPES (FILE *kc_f, int kc_value) #else (kc_f, kc_value) FILE *kc_f; int kc_value; #endif { unsigned int kc_pos_value; if (kc_value == 0) { (void)putc(KC_B64_ZERO_CHAR, kc_f); } else { kc_pos_value = abs(kc_value); while (kc_pos_value != 0) { (void)putc((int)((kc_pos_value & KC_SIX_BIT_MASK) + KC_B64_ZERO_CHAR), kc_f); kc_pos_value >>= 6; } if (kc_value < 0) { (void)putc('-', kc_f); } } (void)putc('\\n', kc_f); } " (phyla)cg_bigatomphyla:view_gen_csgio_scandefs_c "static void kc_CSGIOscan #ifdef KC_USE_PROTOTYPES (FILE *kc_stream, kc_voidptr_t kc_p, kc_enum_phyla kc_phylum) #else (kc_stream, kc_p, kc_phylum) FILE *kc_stream; kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; #endif { int kc_i; kc_enum_operators kc_prodsel; kc_hashnode_t kc_hn; YYSTYPE kc_yt; " (phyla)cg_bigatomphyla:view_gen_csgio_scandef_c " /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum); kc_prodsel = (kc_phylum == kc_phylum_voidptr ? sel__VoidPtr : ((casestring)kc_p)->prod_sel); kc_yt.yt_voidptr = kc_p; kc_hn = (*kc_mkhashnode)(kc_yt, kc_CSGIOhashtable, kc_phylum); if (kc_hn->number == -1) { kc_hn->number = kc_node_count++; KC_MAKE_NEW_SCAN_MAPPING( (int)kc_prodsel ); switch((int)kc_prodsel) { case (int)sel__VoidPtr: break; case (int)sel__Str: case (int)sel_NoCaseStr: kc_yt.yt_voidptr = (kc_voidptr_t)((casestring)kc_p)->name; kc_hn = (*kc_mkhashnode)( kc_yt, kc_CSGIOhashtable, kc_phylum_voidptr); if (kc_hn->number == -1) { kc_hn->number = kc_node_count_base++; } break; " { if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) } ${ (operators)cg_bigatomoperators:view_gen_csgio_scandef_c $} " default: for (kc_i=0; kc_i < kc_OperatorInfo[(int)kc_prodsel].no_sons; kc_i++) { kc_CSGIOscan( kc_stream, (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[kc_i]), kc_OperatorInfo[(int)kc_prodsel].subphylum[kc_i] ); } } } } " (phyla)cg_bigatomphyla:view_gen_csgio_write2structuredefs_c "static void kc_CSGIOwrite2structure #ifdef KC_USE_PROTOTYPES (FILE *kc_stream, kc_voidptr_t kc_p, kc_enum_phyla kc_phylum) #else (kc_stream, kc_p, kc_phylum) FILE *kc_stream; kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; #endif { int kc_i; kc_enum_operators kc_prodsel; kc_hashnode_t kc_hn; YYSTYPE kc_yt; " (phyla)cg_bigatomphyla:view_gen_csgio_write2structuredef_c " /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum); kc_prodsel = (kc_phylum == kc_phylum_voidptr ? sel__VoidPtr : ((casestring)kc_p)->prod_sel); kc_yt.yt_voidptr = kc_p; kc_hn = (*kc_mkhashnode)(kc_yt, kc_CSGIOhashtable, kc_phylum); if (kc_hn->created) { kc_print_b64_to_file( kc_stream, kc_file_offset - kc_hn->number ); } else { kc_hn->created = True; (void)fprintf( kc_stream, \"%d\\n\", KC_MAP( (int)kc_prodsel ) ); kc_file_offset++; switch((int)kc_prodsel) { case (int)sel__VoidPtr: { /* FATAL ERROR */ char kc_value[30]; (void)sprintf( kc_value, \"%p\", kc_p); kc_print_to_file( kc_stream, kc_value ); break; } case (int)sel__Str: case (int)sel_NoCaseStr: kc_yt.yt_voidptr = (kc_voidptr_t) ((casestring)kc_p)->name; kc_hn = (*kc_mkhashnode)(kc_yt, kc_CSGIOhashtable, kc_phylum_voidptr); if (kc_hn->created) { kc_print_b64_to_file( kc_stream, kc_file_offset_base - kc_hn->number ); } else { kc_hn->created = True; (void)fprintf( kc_stream, \"%c\", KC_NON_B64_CHAR ); kc_print_to_file( kc_stream, ((casestring)kc_p)->name ); kc_file_offset_base++; } break; " { if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) } ${ (operators)cg_bigatomoperators:view_gen_csgio_write2structuredef_c $} " default: for (kc_i=0; kc_i < kc_OperatorInfo[(int)kc_prodsel].no_sons; kc_i++) { kc_CSGIOwrite2structure( kc_stream, (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[kc_i]), kc_OperatorInfo[(int)kc_prodsel].subphylum[kc_i] ); } } } } static int kc_CSGIO_hashtablesize = 5000; int kc_set_csgio_hashtablesize #ifdef KC_USE_PROTOTYPES (int kc_i) #else (kc_i) int kc_i; #endif { int kc_tmp = kc_CSGIO_hashtablesize; kc_CSGIO_hashtablesize = kc_i; return kc_tmp; } static KC_IO_RETURN kc_CSGIOwritephylum #ifdef KC_USE_PROTOTYPES (FILE *kc_stream, YYSTYPE kc_p, kc_enum_phyla kc_phylum) #else (kc_stream, kc_p, kc_phylum) FILE *kc_stream; YYSTYPE kc_p; kc_enum_phyla kc_phylum; #endif { int kc_i; kc_hashnode_t (*kc_old_mkhashnode)KC__P((YYSTYPE, kc_hashtable_t, kc_enum_phyla)) = kc_mkhashnode; kc_csgio_err_reason = \"\"; if (kc_CSGIOsharing) { kc_CSGIOhashtable = kc_ht_create_simple(kc_CSGIO_hashtablesize); kc_mkhashnode = kc_mksharinghashnode; } else { kc_mkhashnode = kc_mknonsharinghashnode; } /* write out the magic string and $operators string */ (void)fprintf( kc_stream, \"%s\\n$operators \\n\", kc_ascii_prefix_magic_v3 ); /* Initialize map from internal operators to external operators, */ /* initially empty */ kc_no_external_ops = 0; kc_node_count = 0; kc_node_count_base = 0; kc_initializeOpToOpMap(0); /* initialize to 0, not an other value */ /* write out grammar and compute OpToOpMap[] */ " { if (cg_bigatomphyla && length_phyla(cg_bigatomphyla) > 0) } ${ " switch(kc_phylum) { " (phyla)cg_bigatomphyla:view_gen_csgio_writephylumdef_scan_c " default: " $} " kc_CSGIOscan( kc_stream, kc_p.yt_voidptr, kc_phylum ); " { if (cg_bigatomphyla && length_phyla(cg_bigatomphyla) > 0) } ${ " } " $} " /* sort the optoopmap on decreasing operator usage */ kc_sort_rightOpToOpMap(); kc_renumberOpToOpMap(); /* write out the _sorted_ operator table */ for(kc_i = 0; kc_i < KC_NO_OF_OPERATORS; kc_i++) { if (kc_OpToOpMap[kc_i].right != KC_NOT_USED) { (void)fprintf( kc_stream, \"%s %d %d %d\\n\", KC_OP_NAME( kc_OpToOpMap[kc_i].left), KC_NO_SONS( kc_OpToOpMap[kc_i].left ), 0, KC_ATOMICITY( kc_OpToOpMap[kc_i].left ) ); } } /* sort the optoopmap increasing on the operator number */ kc_sort_leftOpToOpMap(); /* write out the grammar terminator string and the number of nodes */ (void)fprintf( kc_stream, \"$object \\n%d %d\\n\", kc_node_count, kc_node_count_base ); /* write out the tree */ kc_file_offset = 0; kc_file_offset_base = 0; " { if (cg_bigatomphyla && length_phyla(cg_bigatomphyla) > 0) } ${ " switch(kc_phylum) { " (phyla)cg_bigatomphyla:view_gen_csgio_writephylumdef_write_c " default: " $} " kc_CSGIOwrite2structure( kc_stream, kc_p.yt_voidptr, kc_phylum ); " { if (cg_bigatomphyla && length_phyla(cg_bigatomphyla) > 0) } ${ " } " $} " if (kc_CSGIOsharing) { kc_ht_delete(kc_CSGIOhashtable); } kc_mkhashnode = kc_old_mkhashnode; return( kc_io_return(KC_CSGIOSTATUS_WOK, kc_csgio_err_reason) ); } " pds:view_gen_csgio_c_write "#endif /* ! KC_NO_CSGIO_WRITE */ " ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_csgio_c_read view_gen_csgio_c_write: rpds pd ]; Nilphylumdeclarations() -> [view_gen_csgio_c_read view_gen_csgio_c_write: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_csgio_c_read view_gen_csgio_c_write: {/*EMPTY*/} ]; PhylumDeclaration( id, *, PredefinedAlternatives( * ), * ) -> [view_gen_csgio_c_read: "char *CSGIOread_" id " #ifdef KC_USE_PROTOTYPES (FILE *kc_stream, " id " *kc_p ) #else (kc_stream, kc_p) FILE *kc_stream; " id " *kc_p; #endif { YYSTYPE kc_value; char *kc_answer = kc_readKC_IO_RETURN2char( kc_CSGIOreadphylum( kc_stream, &kc_value, kc_phylum_" id " )); *kc_p = kc_value.yt_" id "; return kc_answer; } " ]; PhylumDeclaration( id, *, ListAlternatives( *, * ), * ), PhylumDeclaration( id, *, NonlistAlternatives( * ), * ) -> [view_gen_csgio_c_read: "char *CSGIOread_" id " #ifdef KC_USE_PROTOTYPES (FILE *kc_stream, " id " *kc_p ) #else (kc_stream, kc_p) FILE *kc_stream; " id " *kc_p; #endif { YYSTYPE kc_value; char *kc_answer = kc_readKC_IO_RETURN2char( kc_CSGIOreadphylum( kc_stream, &kc_value, kc_phylum_" id " )); *kc_p = kc_value.yt_" id "; return kc_answer; } " ]; PhylumDeclaration( id, *, ListAlternatives( *, * ), * ), PhylumDeclaration( id, *, PredefinedAlternatives( * ), * ), PhylumDeclaration( id, *, NonlistAlternatives( * ), * ) -> [view_gen_csgio_c_write: "char *CSGIOwrite_" id " #ifdef KC_USE_PROTOTYPES (FILE *kc_stream, " id " kc_p ) #else (kc_stream, kc_p) FILE *kc_stream; " id " kc_p; #endif { YYSTYPE kc_y; kc_y.yt_" id " = kc_p; return kc_writeKC_IO_RETURN2char( kc_CSGIOwritephylum( kc_stream, kc_y, kc_phylum_" id " )); } " ]; Nilargsnumbers() -> [view_gen_csgio_c: {/*EMPTY*/} ]; Consargsnumbers( i, r ) -> [view_gen_csgio_c: " case " i ": kc_answer.yt_voidptr = (kc_voidptr_t) (*kc_OperatorInfo[kc_op].create_routine)(" " (kc_enum_operators)kc_op" { if (i > 0) } ${ "," $} ${ { int j; for (j=0; j [view_gen_csgio_c: {/*EMPTY*/} ]; Consoperators( a_op, r_op ) -> [view_gen_csgio_c: { arguments args; ID phy; } r_op { args = f_argumentsofoperator( a_op ); phy = f_phylumofoperator( a_op ); if (length_arguments(args) > 0) ${ } " case (int)sel_" (ID)a_op ": { kc_answer.yt_" (ID)phy " = " (ID)a_op "(" (arguments)args:view_gen_csgio_bigatom_arguse_c "); break; } " { $} } ]; Nilarguments() -> [view_gen_csgio_bigatom_arguse_c: { gl_j = 0; } ]; Consarguments( *, r_args ) -> [view_gen_csgio_bigatom_arguse_c: r_args "," $0:view_gen_csgio_bigatom_do_arguse_c ]; Consarguments( *, Nilarguments() ) -> [view_gen_csgio_bigatom_arguse_c: { gl_j = 0; } $0:view_gen_csgio_bigatom_do_arguse_c ]; Consarguments( a_arg, * ) -> [view_gen_csgio_bigatom_do_arguse_c: " kc_subtmp[" (int)gl_j "].yt_" a_arg { gl_j++; } ]; Nilphyla() -> [view_gen_csgio_scandef_c: {/*EMPTY*/} ]; Consphyla( a_phy, r_phy ) -> [view_gen_csgio_scandef_c: r_phy " /*SUPPRESS 622*/ assertReason(kc_phylum != kc_phylum_" a_phy ", \"kc_CSGIOscan called with kc_phylum_" a_phy " argument\"); " ]; Nilphyla() -> [view_gen_csgio_scandefs_c: {/*EMPTY*/} ]; Consphyla( a_phy, r_phy ) -> [view_gen_csgio_scandefs_c: { ID oper = f_operatorofphylum(a_phy, Int(1)); } r_phy "/*ARGSUSED*/ static void kc_CSGIOscan_" a_phy " #ifdef KC_USE_PROTOTYPES (FILE *kc_stream, " a_phy " kc_p) #else (kc_stream, kc_p) FILE *kc_stream; " a_phy " kc_p; #endif { kc_hashnode_t kc_hn; YYSTYPE kc_yt; /*SUPPRESS 622*/ assert_" a_phy "(kc_p,\"kc_p\"); kc_yt.yt_" a_phy " = kc_p; kc_hn = (*kc_mkhashnode)(kc_yt, kc_CSGIOhashtable, kc_phylum_" a_phy "); if (kc_hn->number == -1) { kc_hn->number = kc_node_count++; KC_MAKE_NEW_SCAN_MAPPING( (int)sel_" (ID)oper " ); } } " ]; Niloperators() -> [view_gen_csgio_scandef_c: {/*EMPTY*/} ]; Consoperators( a_op, r_op ) -> [view_gen_csgio_scandef_c: { arguments args; } r_op { args = f_argumentsofoperator( a_op ); gl_operator = a_op; gl_phylum = f_phylumofoperator( a_op ); if (length_arguments(args) > 0) ${ } " case (int)sel_" (ID)a_op ": { " (arguments)args:view_gen_csgio_scandef_bigatom_c " break; } " { $} gl_operator = 0; gl_phylum = 0; } ]; Nilarguments() -> [view_gen_csgio_scandef_bigatom_c: {/*EMPTY*/} ]; Consarguments( *, r_args ) -> [view_gen_csgio_scandef_bigatom_c: r_args $0:view_gen_csgio_scandef_bigatom_do_c ]; Consarguments( *, Nilarguments() ) -> [view_gen_csgio_scandef_bigatom_c: $0:view_gen_csgio_scandef_bigatom_do_c ]; Consarguments( a_arg, * ) -> [view_gen_csgio_scandef_bigatom_do_c: { if (f_isbigatom( a_arg )) } ${ " kc_CSGIOscan_" a_arg "( kc_stream, ((" (ID)gl_phylum ")kc_p)->u." (ID)gl_operator "." a_arg "_" $0->seqnr "); " $} { else } ${ " kc_CSGIOscan(kc_stream, (kc_voidptr_t)((" (ID)gl_phylum ")kc_p)->u." (ID)gl_operator "." a_arg "_" $0->seqnr ", kc_phylum_" a_arg " ); " $} ]; Nilphyla() -> [view_gen_csgio_write2structuredefs_c: {/*EMPTY*/} ]; Consphyla( a_phy, r_phy ) -> [view_gen_csgio_write2structuredefs_c: { ID oper = f_operatorofphylum(a_phy, Int(1)); } r_phy "static void kc_CSGIOwrite2structure_" a_phy " #ifdef KC_USE_PROTOTYPES (FILE *kc_stream, " a_phy " kc_p) #else (kc_stream, kc_p) FILE *kc_stream; " a_phy " kc_p; #endif { kc_hashnode_t kc_hn; YYSTYPE kc_yt; /*SUPPRESS 622*/ assert_" a_phy "(kc_p,\"kc_p\"); kc_yt.yt_" a_phy " = kc_p; kc_hn = (*kc_mkhashnode)(kc_yt, kc_CSGIOhashtable, kc_phylum_" a_phy "); if (kc_hn->created) { kc_print_b64_to_file( kc_stream, kc_file_offset - kc_hn->number ); } else { kc_hn->created = True; (void)fprintf( kc_stream, \"%d\\n\", KC_MAP( (int)sel_" (ID)oper " ) ); kc_file_offset++; " { if (strcmp(f_strofID( a_phy), "int")==0) } ${ " { char kc_value[30]; (void)sprintf( kc_value, \"%d\", kc_p); kc_print_to_file( kc_stream, kc_value ); } " $} {else} ${ " { char kc_value[30]; (void)sprintf( kc_value, \"%f\", kc_p); kc_print_to_file( kc_stream, kc_value ); } " $} "} } " ]; Nilphyla() -> [view_gen_csgio_write2structuredef_c: {/*EMPTY*/} ]; Consphyla( a_phy, r_phy ) -> [view_gen_csgio_write2structuredef_c: r_phy " /*SUPPRESS 622*/ assertReason(kc_phylum != kc_phylum_" a_phy ", \"kc_CSGIOwrite2structure called with kc_phylum_" a_phy " argument\"); " ]; Niloperators() -> [view_gen_csgio_write2structuredef_c: {/*EMPTY*/} ]; Consoperators( a_op, r_op ) -> [view_gen_csgio_write2structuredef_c: { arguments args; } r_op { args = f_argumentsofoperator( a_op ); gl_operator = a_op; gl_phylum = f_phylumofoperator( a_op ); if (length_arguments(args) > 0) ${ } " case (int)sel_" (ID)a_op ": { " (arguments)args:view_gen_csgio_write2structuredef_bigatom_c " break; } " { $} gl_operator = 0; gl_phylum = 0; } ]; Nilarguments() -> [view_gen_csgio_write2structuredef_bigatom_c: {/*EMPTY*/} ]; Consarguments( *, r_args ) -> [view_gen_csgio_write2structuredef_bigatom_c: r_args $0:view_gen_csgio_write2structuredef_bigatom_do_c ]; Consarguments( *, Nilarguments() ) -> [view_gen_csgio_write2structuredef_bigatom_c: $0:view_gen_csgio_write2structuredef_bigatom_do_c ]; Consarguments( a_arg, * ) -> [view_gen_csgio_write2structuredef_bigatom_do_c: { if (f_isbigatom( a_arg )) } ${ " kc_CSGIOwrite2structure_" a_arg "( kc_stream, ((" (ID)gl_phylum ")kc_p)->u." (ID)gl_operator "." a_arg "_" $0->seqnr "); " $} { else } ${ " kc_CSGIOwrite2structure(kc_stream, (kc_voidptr_t)((" (ID)gl_phylum ")kc_p)->u." (ID)gl_operator "." a_arg "_" $0->seqnr ", kc_phylum_" a_arg " ); " $} ]; Nilphyla() -> [view_gen_csgio_writephylumdef_scan_c: {/*EMPTY*/} ]; Consphyla( a_phy, r_phy ) -> [view_gen_csgio_writephylumdef_scan_c: r_phy " case (int)kc_phylum_" a_phy ": kc_CSGIOscan_" a_phy "( kc_stream, kc_p.yt_" a_phy " ); break; " ]; Nilphyla() -> [view_gen_csgio_writephylumdef_write_c: {/*EMPTY*/} ]; Consphyla( a_phy, r_phy ) -> [view_gen_csgio_writephylumdef_write_c: r_phy " case (int)kc_phylum_" a_phy ": kc_CSGIOwrite2structure_" a_phy "(kc_stream, kc_p.yt_" a_phy "); break; " ]; /***************************************************************************/ /* * attribute copy fnsdefs * */ PhylumDeclarations( pds ) -> [view_gen_copy_attributes_c: pds ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_copy_attributes_c: rpds pd ]; Nilphylumdeclarations() -> [view_gen_copy_attributes_c: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_copy_attributes_c: {/*EMPTY*/} ]; PhylumDeclaration( id, *, *, CcodeOption( a, * )) -> [view_gen_copy_attributes_c: { gl_phylum = id; } a { gl_phylum = 0; } ]; Nilattributes() -> [view_gen_copy_attributes_c: {/*EMPTY*/} ]; Consattributes( *, * ) -> [view_gen_copy_attributes_c: "static void kc_copy_attributes_" (ID)gl_phylum " #ifdef KC_USE_PROTOTYPES (" (ID)gl_phylum " kc_p1, " (ID)gl_phylum " kc_p2) #else (kc_p1, kc_p2) " (ID)gl_phylum " kc_p1, kc_p2; #endif { " $0:view_gen_copy_attributes_c_doit "} " ]; Nilattributes() -> [view_gen_copy_attributes_c_doit: {/*EMPTY*/} ]; Consattributes( Attribute( *, id, * ), ra ) -> [view_gen_copy_attributes_c_doit: ra " kc_p2->" id " = kc_p1->" id "; " ]; /***************************************************************************/ /* * copy fnsdelcs * */ PhylumDeclarations( pds ) -> [view_gen_copydecls_h: pds ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_copydecls_h: rpds pd ]; Nilphylumdeclarations() -> [view_gen_copydecls_h: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_copydecls_h: {/*EMPTY*/} ]; PhylumDeclaration( id, *, *, * ) -> [view_gen_copydecls_h: id " copy_" id " KC__P(( " id ", boolean )); " ]; /***************************************************************************/ /* * copy fnsdefs * */ PhylumDeclarations( pds ) -> [view_gen_copydefs_c: "/*ARGSUSED*/ kc_voidptr_t kc_do_copy_phylum #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, boolean kc_copy_attributes, kc_enum_phyla kc_phylum) #else (kc_p, kc_copy_attributes, kc_phylum) kc_voidptr_t kc_p; boolean kc_copy_attributes; kc_enum_phyla kc_phylum; #endif { kc_voidptr_t kc_subtmp[" ${ { int i = last_argsnumbers( Theargsnumbers ); if (i<=0) i = 1; } (int)i $} "]; kc_voidptr_t kc_answer = 0; int kc_i; kc_enum_operators kc_prodsel; KC_OPERATOR_INFO *kc_op_info; int kc_st; kc_hashtable_t kc_a_ht; /* SHOULD be done using bigatoms? */ " (phyla)cg_bigatomphyla " /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum); if ((kc_phylum == kc_phylum_voidptr)) { return kc_p; } kc_prodsel = ((casestring)kc_p)->prod_sel; kc_op_info = &kc_OperatorInfo[(int)kc_prodsel]; kc_st = (int)kc_op_info->uniq_stored; kc_a_ht = kc_hashtables[kc_st]; if (kc_st && (/* kc_storageclass_still_uniq[kc_st] || */ ((kc_a_ht->in_block != 0) && (*kc_a_ht->in_block)((kc_voidptr_t)kc_p, kc_a_ht->malloc_private_data)))) { return kc_p; } else if (kc_phylum == kc_phylum_casestring) { return (kc_voidptr_t)mkcasestring(((casestring)kc_p)->name); } else if (kc_phylum == kc_phylum_nocasestring) { return (kc_voidptr_t)mknocasestring(((nocasestring)kc_p)->name); } " { if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) } ${ " switch(kc_prodsel) { " (operators)cg_bigatomoperators " default: " $} " for (kc_i = 0; kc_i < kc_op_info->no_sons; kc_i++) { kc_subtmp[kc_i] = kc_do_copy_phylum((kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_op_info->suboffset[kc_i]), kc_copy_attributes, kc_op_info->subphylum[kc_i] ); } switch(kc_op_info->no_sons) { " (argsnumbers)Theargsnumbers " default: /*SUPPRESS 622*/ assertReason(kc_zero_constant, \"unexpected number of sub-phyla\");/*NOTREACHED*/ } " { if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) } ${ " break; } " $} " if (kc_copy_attributes && (kc_PhylumInfo[(int)kc_phylum].copy_attributes != 0)) { (*kc_PhylumInfo[(int)kc_phylum].copy_attributes)(kc_p, kc_answer); } return kc_answer; } " pds ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_copydefs_c: rpds pd ]; Nilphylumdeclarations() -> [view_gen_copydefs_c: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_copydefs_c: {/*EMPTY*/} ]; PhylumDeclaration( id, *, PredefinedAlternatives( * ), * ) -> [view_gen_copydefs_c: "/*ARGSUSED*/ " id " copy_" id " #ifdef KC_USE_PROTOTYPES (" id " kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) " id " kc_p; boolean kc_copy_attributes; #endif " { if ( (strcmp( f_strofID( id ), "int" ) == 0) || (strcmp( f_strofID( id ), "float" ) == 0) ) } ${ "{ return kc_p; } " $} {else} ${ "{ return (" id ")kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_" id "); } " $} ]; PhylumDeclaration( id, *, *, * ) -> [view_gen_copydefs_c: id " copy_" id " #ifdef KC_USE_PROTOTYPES (" id " kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) " id " kc_p; boolean kc_copy_attributes; #endif { return (" id ")kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_" id "); } " ]; Nilphyla() -> [view_gen_copydefs_c: {/*EMPTY*/} ]; Consphyla( a_phy, r_phy ) -> [view_gen_copydefs_c: r_phy " /*SUPPRESS 622*/ assertReason(kc_phylum != kc_phylum_" a_phy ", \"kc_do_copy_phylum called with kc_phylum_" a_phy " argument\"); " ]; Niloperators() -> [view_gen_copydefs_c: {/*EMPTY*/} ]; Consoperators( a_op, r_op ) -> [view_gen_copydefs_c: { arguments args; } r_op { args = f_argumentsofoperator( a_op ); gl_operator = a_op; gl_phylum = f_phylumofoperator( a_op ); if (length_arguments(args) > 0) } ${ " case (int)sel_" (ID)a_op ": { " (arguments)args:view_gen_copydefs_bigatom_argdefs_c (arguments)args:view_gen_copydefs_bigatom_argset_c " kc_answer = (kc_voidptr_t) " (ID)a_op "(" (arguments)args:view_gen_copydefs_bigatom_arguse_c "); break; } " $} { gl_operator = 0; gl_phylum = 0; } ]; Nilarguments() -> [view_gen_copydefs_bigatom_argdefs_c: {/*EMPTY*/} ]; Consarguments( a_arg, r_args ) -> [view_gen_copydefs_bigatom_argdefs_c: r_args { if (f_isbigatom( a_arg )) } ${ " " a_arg " kc_sub_" a_arg "_" $0->seqnr "; " $} ]; Nilarguments() -> [view_gen_copydefs_bigatom_argset_c: { gl_j = 0; } ]; Consarguments( a_arg, r_args ) -> [view_gen_copydefs_bigatom_argset_c: r_args { if (f_isbigatom( a_arg )) } ${ " kc_sub_" a_arg "_" $0->seqnr " = copy_" a_arg "(((" (ID)gl_phylum ")kc_p)->u." (ID)gl_operator "." a_arg "_" $0->seqnr ", kc_copy_attributes); " $} { else } ${ " kc_subtmp[" (int)gl_j "] = kc_do_copy_phylum((kc_voidptr_t)((" (ID)gl_phylum ")kc_p)->u." (ID)gl_operator "." a_arg "_" $0->seqnr ", kc_copy_attributes, kc_phylum_" a_arg "); " $} { gl_j++; } ]; Nilarguments() -> [view_gen_copydefs_bigatom_arguse_c: { gl_j = 0; } ]; Consarguments( *, r_args ) -> [view_gen_copydefs_bigatom_arguse_c: r_args "," $0:view_gen_copydefs_bigatom_do_arguse_c ]; Consarguments( *, Nilarguments() ) -> [view_gen_copydefs_bigatom_arguse_c: { gl_j = 0; } $0:view_gen_copydefs_bigatom_do_arguse_c ]; Consarguments( a_arg, * ) -> [view_gen_copydefs_bigatom_do_arguse_c: { if (f_isbigatom( a_arg )) } ${ " kc_sub_" a_arg "_" $0->seqnr $} { else } ${ " (" a_arg ")kc_subtmp[" (int)gl_j "]" $} { gl_j++; } ]; Nilargsnumbers() -> [view_gen_copydefs_c: {/*EMPTY*/} ]; Consargsnumbers( i, r ) -> [view_gen_copydefs_c: " case " i ": kc_answer = (kc_voidptr_t) (*kc_op_info->create_routine)(" " kc_prodsel" { if (i > 0) } ${ "," $} ${ { int j; for (j=0; j [view_gen_rewritek_h: "/* translation of file(s) " (fnfiles)Thefnfiles " */ /* generated by: * " (charptr)kimwitu_copyright " */ #ifndef KC_REWRITE_HEADER #define KC_REWRITE_HEADER #define KIMW_REWRITE_HEADER /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include \"k.h\" /* in case a user forgets */ typedef enum { " (viewnames)Therviewnames " } rview; extern char *kc_rview_names[]; " ]; PhylumDeclarations( * ) -> [view_gen_end_rewritek_h: " #endif /* KC_TYPES_HEADER */ " ]; /***************************************************************************/ PhylumDeclarations( * ) -> [view_gen_rewritek_c: "/*LINTLIBRARY*/ /* translation of file(s) " (fnfiles)Thefnfiles " */ /* generated by: * " (charptr)kimwitu_copyright " */ #define KC_REWRITE #define KIMW_REWRITE /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include #include #ifdef KC_STDC # include #endif #include \"k.h\" #include \"rk.h\" char *kc_rview_names[] = { " (viewnames)Therviewnames " }; " ]; /***************************************************************************/ PhylumDeclarations( pds ) -> [view_gen_rewritedecls_h: pds ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_rewritedecls_h: rpds pd ]; Nilphylumdeclarations() -> [view_gen_rewritedecls_h: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_rewritedecls_h: {/*EMPTY*/} ]; PhylumDeclaration( id, *, *, * ) -> [view_gen_rewritedecls_h: id " rewrite_" id " KC__P(( " id ", rview )); " ]; /***************************************************************************/ PhylumDeclarations( pds ) -> [view_gen_rewritedefs_c: pds ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_rewritedefs_c: rpds pd ]; Nilphylumdeclarations() -> [view_gen_rewritedefs_c: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_rewritedefs_c: {/*EMPTY*/} ]; PhylumDeclaration( id, *, PredefinedAlternatives( * ), * ) -> [view_gen_rewritedefs_c: { gl_phylum = id; } "/*ARGSUSED*/ "id " rewrite_" id " #ifdef KC_USE_PROTOTYPES (" id " kc_p, rview kc_current_view) #else (kc_p, kc_current_view) " id " kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_" id "( kc_p, \"kc_p\" ); return kc_p; } " { gl_phylum = 0; } ]; PhylumDeclaration( id, *, pb, * ) -> [view_gen_rewritedefs_c: { gl_phylum = id; } { gl_phydecl = f_lookupdecl( gl_phylum ); if ( gl_phydecl == 0 ) { v_report(NonFatal( FileLine( gl_phylum->file, gl_phylum->line ), Problem1S1ID( "internal error: could not find declaration of phylum:", gl_phylum ))); } } "/*ARGSUSED*/ "id " rewrite_" id " #ifdef KC_USE_PROTOTYPES (" id " kc_p, rview kc_current_view) #else (kc_p, kc_current_view) " id " kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_" id "( kc_p, \"kc_p\" ); switch((int)kc_current_view) { " pb " } } " { gl_phylum = 0; gl_phydecl = 0; } ]; ListAlternatives( a, * ), NonlistAlternatives( a ) -> [view_gen_rewritedefs_c: { rewriteviewsinfo a_rewriteviewsinfo = f_rewriteviewsinfoofalternatives( a, Therviewnames ); } { gl_rewrite_goto_used = False; } (rewriteviewsinfo)a_rewriteviewsinfo ]; Nilrewriteviewsinfo() -> [view_gen_rewritedefs_c: {/*EMPTY*/} ]; /* * IMPORTANT we unparse the viewsinfo in reverse order, to make sure that * the kc_unparsing_label is used before defined, ie. * the default view is the last in the switch * so that we can set a variable when we generate a goto, * so that we only generate the label if necessary */ Consrewriteviewsinfo( a_rvi, r_rvi ) -> [view_gen_rewritedefs_c: r_rvi a_rvi ]; Rewriteviewinfo( v, rri ) -> [view_gen_rewritedefs_c: { gl_rewrite_rewriteinfo = rri; } { if (eq_ID( v, Id( Str( mkcasestring( "base_rview" ))))) } ${ $0:view_gen_rewritedefs_default_c $} { else } ${ $0:view_gen_rewritedefs_other_c $} { gl_rewrite_rewriteinfo = 0; } ]; Rewriteviewinfo( v, * ) -> [view_gen_rewritedefs_default_c: " default: " { if (gl_rewrite_goto_used) } ${ " kc_rewrite_default: " $} " case (int)" v ": { " { gl_view = v; } (phylumdeclaration)gl_phydecl { gl_view = 0; } " } " ]; Rewriteviewinfo( *, Nilrewriterulesinfo() ) -> [view_gen_rewritedefs_other_c: {/*EMPTY*/} ]; Rewriteviewinfo( v, * ) -> [view_gen_rewritedefs_other_c: " case (int)" v ": { " { gl_view = v; } (phylumdeclaration)gl_phydecl { gl_view = 0; } " } " { gl_rewrite_goto_used = True; } ]; PhylumDeclaration( *, *, PredefinedAlternatives( * ), * ), PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_rewritedefs_default_c view_gen_rewritedefs_other_c: {/*EMPTY*/} ]; PhylumDeclaration( *, *, ListAlternatives( a, * ), * ), PhylumDeclaration( *, *, NonlistAlternatives( a ), * ) -> [view_gen_rewritedefs_default_c: " switch((int)kc_p->prod_sel) { " a " default: return kc_p;} " ]; PhylumDeclaration( *, *, ListAlternatives( a, * ), * ), PhylumDeclaration( *, *, NonlistAlternatives( a ), * ) -> [view_gen_rewritedefs_other_c: " switch((int)kc_p->prod_sel) { " a " default: goto kc_rewrite_default;} " { gl_rewrite_goto_used = True; } ]; /***** vanaf hier volg de oude code ******/ Nilalternatives() -> [view_gen_rewritedefs_default_c view_gen_rewritedefs_other_c: {/*EMPTY*/} ]; Consalternatives( a, r_a ) -> [view_gen_rewritedefs_default_c view_gen_rewritedefs_other_c: r_a a ]; Alternative( id, args ) -> [view_gen_rewritedefs_default_c: { gl_operator = id; gl_args = args; gl_rewrite_rewriteinfo = f_rewriterulesinfoofalternativeinview($0, gl_view); gl_outmost_nonleaf_predicates = f_outmost_nl_preds_in_rewriterulesinfo(gl_rewrite_rewriteinfo); } " case (int)sel_" id ": { " args:view_gen_rewritedefs_rewritearg_c { if (gl_outmost_nonleaf_predicates) } ${ args:view_gen_rewritedefs_nl_arg_c $} (rewriterulesinfo)gl_rewrite_rewriteinfo " } " { gl_operator = 0; gl_args = 0; gl_rewrite_rewriteinfo = 0; gl_outmost_nonleaf_predicates = False; } ]; Alternative( id, args ) -> [view_gen_rewritedefs_other_c: { gl_operator = id; gl_args = args; gl_rewrite_rewriteinfo = f_rewriterulesinfoofalternativeinview($0, gl_view); gl_outmost_nonleaf_predicates = f_outmost_nl_preds_in_rewriterulesinfo(gl_rewrite_rewriteinfo); } { if (! eq_rewriterulesinfo( gl_rewrite_rewriteinfo, Nilrewriterulesinfo())) } ${ " case (int)sel_" id ": { " args:view_gen_rewritedefs_rewritearg_c { if (gl_outmost_nonleaf_predicates) } ${ args:view_gen_rewritedefs_nl_arg_c $} (rewriterulesinfo)gl_rewrite_rewriteinfo " } " $} { gl_operator = 0; gl_args = 0; gl_rewrite_rewriteinfo = 0; gl_outmost_nonleaf_predicates = False; } ]; Nilarguments() -> [view_gen_rewritedefs_rewritearg_c: {/*EMPTY*/} ]; Consarguments( a_arg, r_args ) -> [view_gen_rewritedefs_rewritearg_c: r_args " " a_arg " " a_arg "_" $0->seqnr " = rewrite_" a_arg "(kc_p->u." (ID)gl_operator "." a_arg "_" $0->seqnr ", kc_current_view); " ]; Nilarguments() -> [view_gen_rewritedefs_nl_arg_c: " " (ID)gl_phylum " kc_rp = kc_p; " ]; Consarguments( *, * ) -> [view_gen_rewritedefs_nl_arg_c: " " (ID)gl_phylum " kc_rp = ((" $0:view_gen_rewritedefs_dotestarg_c ")) ? kc_p : " (ID)gl_operator "(" $0:view_gen_rewritedefs_args_c "); " ]; Nilarguments() -> [view_gen_rewritedefs_testarg_c: " return kc_p; " ]; Consarguments( *, * ) -> [view_gen_rewritedefs_testarg_c: { if (gl_outmost_nonleaf_predicates) } ${ " return kc_rp; " $} { else } ${ " if ((" $0:view_gen_rewritedefs_dotestarg_c ")) return kc_p; else return " (ID)gl_operator "(" $0:view_gen_rewritedefs_args_c "); " $} ]; Nilarguments() -> [view_gen_rewritedefs_dotestarg_c: {/*EMPTY*/} ]; Consarguments( a_arg, Nilarguments() ) -> [view_gen_rewritedefs_dotestarg_c: a_arg "_" $0->seqnr " == kc_p->u." (ID)gl_operator "." a_arg "_" $0->seqnr ]; Consarguments( a_arg, r_args ) -> [view_gen_rewritedefs_dotestarg_c: r_args ") && (" a_arg "_" $0->seqnr " == kc_p->u." (ID)gl_operator "." a_arg "_" $0->seqnr ]; Nilarguments() -> [view_gen_rewritedefs_args_c: {/*EMPTY*/} ]; Consarguments( a_arg, Nilarguments() ) -> [view_gen_rewritedefs_args_c: a_arg "_" $0->seqnr ]; Consarguments( a_arg, r_args ) -> [view_gen_rewritedefs_args_c: r_args ", " a_arg "_" $0->seqnr ]; Nilrewriterulesinfo() -> [view_gen_rewritedefs_default_c: (arguments)gl_args:view_gen_rewritedefs_testarg_c ]; Nilrewriterulesinfo() -> [view_gen_rewritedefs_other_c: " goto kc_rewrite_default; " { gl_rewrite_goto_used = True; } ]; /* we skip the first predicate, it will be for the outermost operator that we handle in the switch */ Consrewriterulesinfo( Rewriteruleinfo( Nilpatternrepresentation(), bindings, RewriteClause( *, t) ), * ), Consrewriterulesinfo( Rewriteruleinfo( Conspatternrepresentation( *, Nilpatternrepresentation() ), bindings, RewriteClause( *, t) ), * ) -> [view_gen_rewritedefs_default_c view_gen_rewritedefs_other_c: " { " bindings:view_rw_bindings (charptr)g_emptystring:view_printer_outputfileline " " (ID)gl_phylum " kc_result = " t "; return (kc_result == kc_p) ? kc_p : rewrite_" (ID)gl_phylum "( kc_result, kc_current_view ); } " ]; Consrewriterulesinfo( Rewriteruleinfo( Conspatternrepresentation( *, r_p ), bindings, RewriteClause( *, t) ), r_rri) -> [view_gen_rewritedefs_default_c view_gen_rewritedefs_other_c: " if ((" r_p:view_rw_predicates ")) { " bindings:view_rw_bindings (charptr)g_emptystring:view_printer_outputfileline " " (ID)gl_phylum " kc_result = " t "; return (kc_result == kc_p) ? kc_p : rewrite_" (ID)gl_phylum "( kc_result, kc_current_view ); } else " r_rri ]; /* withcases stuff */ /* we do not skip the first predicate, because in first try we don't use a switch */ Nilwithcasesinfo() -> [view_gen_withcases_and_default: { if (cf_topinforeachcontext()) } ${ "{/*EMPTY*/ /*skip: no matching pattern in foreach patterns*/} " $} { else if ( (strcmp( gl_return_type, "" ) == 0) || ((strcmp( gl_star_string, "") == 0) && (! f_isphylum( gl_return_ID )) && (! f_is_known_ptr_type( gl_return_ID )) ) ) } ${ "kc_no_default_in_with( \"" (charptr)gl_function "\", __LINE__, __FILE__ ); " $} { else } ${ "{ kc_no_default_in_with( \"" (charptr)gl_function "\", __LINE__, __FILE__ ); return (" (charptr)gl_return_type (charptr)gl_star_string ")0; } " $} ]; Conswithcasesinfo( Withcaseinfo( Nilpatternrepresentation(), bindings, ct ), * ), /* special case for 'outermost wildcard' - shouldn't be triggered */ Conswithcasesinfo( Withcaseinfo( Conspatternrepresentation( PRDefault(), * ), bindings, ct ), * ) -> [: "{ " bindings:view_wc_bindings "#line " ct->line " \"" ct->file:view_filename "\" " ct:view_gen_initializephyla_c (charptr)g_emptystring:view_printer_outputfileline "} " ]; Conswithcasesinfo( Withcaseinfo( p , bindings, ct ), r_rri) -> [: " if ((" p:view_wc_predicates ")) { " bindings:view_wc_bindings "#line " ct->line " \"" ct->file:view_filename "\" " { cf_pushoperator( f_operatorofpatternrepresentation( p ) ); } ct:view_gen_initializephyla_c { cf_popoperator(); } (charptr)g_emptystring:view_printer_outputfileline " } else " r_rri ]; /* pattern stuff */ Nilpatternrepresentation() -> [: {/*EMPTY*/} ]; Conspatternrepresentation( p, Nilpatternrepresentation() ) -> [view_rw_predicates view_wc_predicates view_unp_predicates: p ]; Conspatternrepresentation( p, r_p ) -> [view_rw_predicates view_wc_predicates view_unp_predicates: p ") && (" r_p ]; Conspatternrepresentation( p, r_p ) -> [: p r_p ]; PRNonLeafBinding( p, id, * ), PRBinding( p, id ) -> [: ${ { ID gl_type; if (eq_ID($0->type, f_emptyId())) { gl_type = f_typeof( p ); } else { gl_type = $0->type; } } "#line " id->line " \"" id->file:view_filename "\" " (ID)gl_type " " id " = " p "; " $} ]; Nilpath() -> [: {/*EMPTY*/} ]; /* special case for start of withcase pattern. because we do not skip the * first operator (no switch) we have to place the Nilpath in this place * QUESTION: is the pattern below actually used? Should we use selvarext? */ Nilpath() -> [view_wc_bindings view_wc_predicates: { ID selvar = cf_topselvar(); } " " (ID)selvar ]; /* special case for start of withcase pattern. because we do not skip the * first operator (no switch) we have to place the Nilpath in this place * Also, because the first Conspath contains the expression number, * we special-case this, such that we get 'selvar_exprnumber' as var name. */ Conspath( i, r_p = Nilpath() ) -> [view_wc_bindings view_wc_predicates: r_p "_" i ]; Nilpath() -> [view_unp_bindings view_unp_predicates: " kc_p" ]; Conspath( i, r_p ) -> [: r_p "->u." r_p->op "." ${ { argument gl_argument = f_argumentofoperator( r_p->op, Int( i )); } (argument)gl_argument $} ]; /* special case for start of rewrite path. because we skip the first operator * that is in the switch we always have a Conspath in a rewrite pattern representation */ Nilpath() -> [view_rw_bindings view_rw_predicates: { if (gl_outmost_nonleaf_predicates) } ${ " kc_rp" $} { else /* we have only an outermost nonleaf binding */ } ${ " ((" (arguments)gl_args:view_gen_rewritedefs_dotestarg_c ")) ? kc_p : " (ID)gl_operator "(" (arguments)gl_args:view_gen_rewritedefs_args_c ")" $} ]; Conspath( i, Nilpath() ) -> [view_rw_bindings view_rw_predicates: ${ { argument gl_argument = f_argumentofoperator( $2->op, Int( i )); } (argument)gl_argument $} ]; PRVarPredicate( ps, *, * ) -> [: ps ]; Nilpaths() -> [: {/*EMPTY*/} ]; Conspaths(*, Nilpaths()) -> [: {/*EMPTY*/} ]; Conspaths(p1, Conspaths(p2, Nilpaths())) -> [: ${ { ID gl_type = f_typeof( p1 ); } "eq_" (ID)gl_type "(" p1 ", " p2 ")" $} ]; Conspaths(p1, Conspaths(p2, *)) -> [: ${ { ID gl_type = f_typeof( p1 ); } "eq_" (ID)gl_type "(" p1 ", " p2 ")) && (" $2 $} ]; /* strip leading/trailing 0 from the Oper path */ PROperPredicate( Conspath( *, p), id ) -> [: p "->prod_sel == sel_" id ]; PROperPredicate( Nilpath(), * ) -> [: {/*EMPTY*/} ]; PRDefault(), PRWildcard( * ) -> [: "1 /*default*/" ]; PRStringLiteral( p, Cexprdq ) -> [: { if (strcmp( f_strofID( f_typeof( p ) ), "casestring" ) == 0) } ${ "strcmp(" p "->name, \"" Cexprdq "\")==0" $} { else if (strcmp( f_strofID( f_typeof( p ) ), "nocasestring" ) == 0) } ${ "kc_ci_strcmp(" p "->name, \"" Cexprdq "\")==0" $} { else } ${ { /*SUPPRESS 622*/ assert(kc_zero_constant); /* internal error */ } $} ]; PRIntLiteral( p, i ) -> [: p " == " i ]; TVariable( id ) -> [: id ]; TOperator( id, t ) -> [: id "(" t ")" ]; TStringLiteral( Cexpr ) -> [: Cexpr ]; TIntLiteral( i ) -> [: i ]; Nilterms() -> [: {/*EMPTY*/} ]; Consterms( t, Nilterms() ) -> [: t ]; Consterms( t, r_t ) -> [: r_t ", " t ]; /***************************************************************************/ Nilfndeclarations() -> [view_gen_fnk_h: {/*EMPTY*/} ]; Consfndeclarations( fnd, r_fnds ) -> [view_gen_fnk_h: r_fnds fnd ]; FnDeclaration( fn_t, fn_p, fn_name, *, *, *, GlobalFn() ) -> [view_gen_fnk_h: { char *star_string = f_mkstars( fn_p ); } fn_t " " (charptr)star_string " " fn_name " KC__P((" $0->sorted ")); " ]; FnDeclaration( *, *, *, *, *, *, LocalFn( * ) ) -> [view_gen_fnk_h: {/*EMPTY*/} ]; NilCvariabledeclarations() -> [view_gen_fnk_h: {/*EMPTY*/} ]; ConsCvariabledeclarations( Cvard, NilCvariabledeclarations() ) -> [view_gen_fnk_h: Cvard ]; FnAcDeclaration( fn_ds, fn_d, *, *, *, GlobalFn() ) -> [view_gen_fnk_h: fn_ds " " fn_d:view_gen_fn_pointer_name " KC__P((" $0->newsorted ")); " ]; FnAcDeclaration( *, *, *, *, *, LocalFn( * ) ) -> [view_gen_fnk_h: {/*EMPTY*/} ]; NilCvariabledeclarations() -> [view_gen_fnk_h: {/*EMPTY*/} ]; ConsCvariabledeclarations( Cvard, NilCvariabledeclarations() ) -> [view_gen_fnk_h: Cvard ]; ConsCvariabledeclarations( Cvard, r_Cvards ) -> [view_gen_fnk_h: r_Cvards ", " Cvard ]; CVariabledeclaration( type, a_Cvars ) -> [view_gen_fnk_h: type " " a_Cvars ]; Fnargfpdecl( *, * ) -> [view_gen_fnk_h: {/*EMPTY*/} ]; NilCvariables() -> [view_gen_fnk_h: {/*EMPTY*/} ]; ConsCvariables( a_Cvar, NilCvariables() ) -> [view_gen_fnk_h: a_Cvar ]; ConsCvariables( a_Cvar, r_Cvars ) -> [view_gen_fnk_h: r_Cvars " " a_Cvar ]; CVPointer( pointer, * ) -> [view_gen_fnk_h: { char *star_string = f_mkstars( pointer ); } (charptr)star_string ]; CVFunction( pointer1, pointer2, * ) -> [view_gen_fnk_h: { char *star_string1 = f_mkstars( pointer1 ); char *star_string2 = f_mkstars( pointer2 ); } (charptr)star_string1 "(" (charptr)star_string2 ")()" ]; /***************************************************************************/ Nilfndeclarations() -> [view_gen_fnkdecls_c: {/*EMPTY*/} ]; Consfndeclarations( fnd, r_fnds ) -> [view_gen_fnkdecls_c: r_fnds fnd ]; FnDeclaration( *, *, *, *, *, *, GlobalFn() ) -> [view_gen_fnkdecls_c: {/*EMPTY*/} ]; FnDeclaration( fn_t, fn_p, fn_name, *, *, *, LocalFn( * ) ) -> [view_gen_fnkdecls_c: { char *star_string = f_mkstars( fn_p ); } "static " fn_t " " (charptr)star_string " " fn_name " KC__P((" $0->sorted:view_gen_fnk_h ")); " ]; FnAcDeclaration( *, *, *, *, *, GlobalFn() ) -> [view_gen_fnkdecls_c: {/*EMPTY*/} ]; FnAcDeclaration( fn_ds, fn_d, *, *, *, LocalFn( * ) ) -> [view_gen_fnkdecls_c: fn_ds " " fn_d:view_gen_fn_pointer_name " KC__P((" $0->newsorted ")); " ]; Nilfndeclarations() -> [view_gen_fnk_c: {/*EMPTY*/} ]; Consfndeclarations( fnd, r_fnds ) -> [view_gen_fnk_c: r_fnds fnd ]; FnDeclaration( fn_t, fn_p, fn_name, fn_args, *, ct, fn_c ) -> [view_gen_fnk_c: { char *star_string = f_mkstars( fn_p ); gl_return_type = f_strofID( fn_t ); gl_return_ID = fn_t; gl_star_string = star_string; gl_function = f_strofID( fn_name ); } fn_c fn_t " " (charptr)star_string " " fn_name " #ifdef KC_USE_PROTOTYPES (" $0->sorted:view_gen_fnkarg_and_decls ") #else (" fn_args ") " $0->sorted " #endif #line " ct->line " \"" ct->file:view_filename "\" {" ct:view_gen_initializephyla_c " #line " $0->last_line " \"" $0->file:view_filename "\" }" (charptr)g_emptystring:view_printer_outputfileline " " { gl_return_type = ""; gl_return_ID = 0; gl_star_string = ""; gl_function = ""; } ]; GlobalFn() -> [view_gen_fnk_c: {/*EMPTY*/} ]; LocalFn( * ) -> [view_gen_fnk_c: "static " ]; Nilfnarguments() -> [view_gen_fnk_c: {/*EMPTY*/} ]; Consfnarguments( a_fnarg, Nilfnarguments()) -> [view_gen_fnk_c: a_fnarg ]; Consfnarguments( a_fnarg, r_fnargs ) -> [view_gen_fnk_c: r_fnargs ", " a_fnarg ]; NilCvariabledeclarations() -> [view_gen_fnk_c: {/*EMPTY*/} ]; ConsCvariabledeclarations( Cvard, NilCvariabledeclarations() ) -> [view_gen_fnk_c: Cvard ]; ConsCvariabledeclarations( Cvard, r_Cvards ) -> [view_gen_fnk_c: r_Cvards " " Cvard ]; CVariabledeclaration( type, a_Cvars ) -> [view_gen_fnk_c: type " " a_Cvars ";" ]; Fnargfpdecl( *, * ) -> [view_gen_fnk_c: {/*EMPTY*/} ]; NilCvariables() -> [view_gen_fnk_c: {/*EMPTY*/} ]; ConsCvariables( a_Cvar, NilCvariables() ) -> [view_gen_fnk_c: a_Cvar ]; ConsCvariables( a_Cvar, r_Cvars ) -> [view_gen_fnk_c: r_Cvars "," a_Cvar ]; CVPointer( pointer, name ) -> [view_gen_fnk_c view_gen_fnkarg_and_decls: { char *star_string = f_mkstars( pointer ); } (charptr)star_string name ]; CVFunction( pointer1, pointer2, name ) -> [view_gen_fnk_c view_gen_fnkarg_and_decls: { char *star_string1 = f_mkstars( pointer1 ); char *star_string2 = f_mkstars( pointer2 ); } (charptr)star_string1 "(" (charptr)star_string2 name ")()" ]; NilCvariabledeclarations() -> [view_gen_fnkarg_and_decls: {/*EMPTY*/} ]; ConsCvariabledeclarations( Cvard, NilCvariabledeclarations() ) -> [view_gen_fnkarg_and_decls: Cvard ]; ConsCvariabledeclarations( Cvard, r_Cvards ) -> [view_gen_fnkarg_and_decls: r_Cvards ", " Cvard ]; CVariabledeclaration( type, a_Cvars ) -> [view_gen_fnkarg_and_decls: { gl_type = type; } a_Cvars { gl_type = 0; } ]; Fnargfpdecl( *, * ) -> [view_gen_fnkarg_and_decls: {/*EMPTY*/} ]; NilCvariables() -> [view_gen_fnkarg_and_decls: {/*EMPTY*/} ]; ConsCvariables( a_Cvar, NilCvariables() ) -> [view_gen_fnkarg_and_decls: (ID)gl_type " " a_Cvar ]; ConsCvariables( a_Cvar, r_Cvars ) -> [view_gen_fnkarg_and_decls: r_Cvars ", " (ID)gl_type " " a_Cvar ]; FnAcDeclaration( fn_ds, fn_d, *, ct, fn_name, * ) -> [view_gen_fnk_c: { char *star_string = f_mkstars( f_stars_of_declarator( fn_d ) ); gl_return_ID = f_ID_of_ac_declaration_specifiers( fn_ds ); gl_return_type = f_strofID( gl_return_ID ); gl_star_string = star_string; gl_function = f_strofID( fn_name ); } fn_ds " " fn_d:view_gen_fn_pointer_name " #ifdef KC_USE_PROTOTYPES (" $0->newsorted ") #else (" $0->newsorted:view_gen_fnkargs ") " $0->newsorted:view_gen_fnkdecls " #endif #line " ct->line " \"" ct->file:view_filename "\" {" ct:view_gen_initializephyla_c " #line " $0->last_line " \"" $0->file:view_filename "\" }" (charptr)g_emptystring:view_printer_outputfileline " " { gl_return_type = ""; gl_return_ID = 0; gl_star_string = ""; gl_function = ""; } ]; AcDeclaration( ds, idlo ) -> [: ds " " idlo "; " ]; Consac_declaration_list( h, t ) -> [: t h ]; Consac_declaration_specifiers( h, Nilac_declaration_specifiers() ) -> [: h ]; Consac_declaration_specifiers( h, t ) -> [: t " " h ]; AcAuto() -> [: "auto" ]; AcRegister() -> [: "register" ]; AcStatic() -> [: "static" ]; AcExtern() -> [: "extern" ]; AcTypedef() -> [: "typedef" ]; AcTypeSpec( i ) -> [: i ]; AcConst() -> [: "const" ]; AcVolatile() -> [: "volatile" ]; Consac_init_declarator_list( h , t ) -> [: t " " h ]; Consac_init_declarator_list( h, Nilac_init_declarator_list() ) -> [: h ]; AcInitDecl( d ) -> [: d ]; AcDeclarator( po, dd ) -> [: po dd ]; AcDirectDeclId( i ) -> [: i ]; AcDirectDeclPack( d ) -> [: "(" d ")" ]; AcDirectDeclArray( dd, ceo ) -> [: dd "[" ceo "]" ]; AcDirectDeclProto( dd, ptl ) -> [: dd "(" ptl ")" ]; AcDirectDeclKandR( dd, il ) -> [: dd "(" il ")" ]; Nopointer() -> [: {/*EMPTY*/} ]; Yespointer( p ) -> [: p ]; AcPointerNil( Nilac_type_qualifier_list() ) -> [: "*" ]; AcPointerNil( tql ) -> [: "* " tql " " ]; AcPointerCons( Nilac_type_qualifier_list(), p ) -> [: "*" p ]; AcPointerCons( tql, p ) -> [: "* " tql " " p ]; Consac_type_qualifier_list( h, Nilac_type_qualifier_list() ) -> [: h ]; Consac_type_qualifier_list( h, t ) -> [: t " " h ]; AcParList( pl ) -> [: pl ]; AcParList( Nilac_parameter_list() ) -> [: "void" ]; AcParList3Dot( pl ) -> [: pl ", ..." ]; Consac_parameter_list( h, Nilac_parameter_list() ) -> [: h ]; Consac_parameter_list( h, t ) -> [: t ", " h ]; AcParDeclDecl( ds, d ) -> [: ds " " d ]; AcParDeclAbsdecl( ds, ad ) -> [: ds " " ad ]; Consac_identifier_list( h, Nilac_identifier_list() ) -> [: h ]; Consac_identifier_list( h, t ) -> [: t ", " h ]; AcAbsdeclPointer( p ) -> [: p ]; AcAbsdeclDirdecl( po, dad ) -> [: po dad ]; Yesac_direct_abstract_declarator( dad ) -> [: dad ]; AcDirAbsdeclPack( ad ) -> [: "(" ad ")" ]; AcDirAbsdeclArray( dado, ceo ) -> [: dado "[" ceo "]" ]; AcDirAbsdeclFn( dado, ptl ) -> [: dado "(" ptl ")" ]; AcConstExpr( ce ) -> [: ce:view_gen_initializephyla_c ]; AcDeclarator( po, dd ) -> [view_gen_fn_pointer_name: po dd ]; AcDirectDeclProto( dd, * ) -> [view_gen_fn_pointer_name: dd ]; AcDirectDeclKandR( dd, * ) -> [view_gen_fn_pointer_name: dd ]; AcParList( Nilac_parameter_list() ) -> [view_gen_fnkargs: ]; AcParList3Dot( pl ) -> [view_gen_fnkargs: pl ]; AcParDeclDecl( *, d ) -> [view_gen_fnkargs: d ]; AcParDeclAbsdecl( *, ad ) -> [view_gen_fnkargs: ad ]; AcDeclarator( *, dd ) -> [view_gen_fnkargs: dd ]; AcDirectDeclPack( d ) -> [view_gen_fnkargs: d ]; AcDirectDeclArray( dd, * ) -> [view_gen_fnkargs: dd ]; AcDirectDeclProto( dd, * ) -> [view_gen_fnkargs: dd ]; AcDirectDeclKandR( dd, * ) -> [view_gen_fnkargs: dd ]; AcAbsdeclPointer( * ) -> [view_gen_fnkargs: "kc_arg_missing" ]; AcAbsdeclDirdecl( *, dad ) -> [view_gen_fnkargs: dad ]; AcDirAbsdeclPack( ad ) -> [view_gen_fnkargs: ad ]; AcDirAbsdeclArray( dado, * ) -> [view_gen_fnkargs: dado ]; AcDirAbsdeclFn( dado, * ) -> [view_gen_fnkargs: dado ]; AcParList( Nilac_parameter_list() ) -> [view_gen_fnkdecls: ]; AcParList3Dot( pl ) -> [view_gen_fnkdecls: pl ]; Consac_parameter_list( h, Nilac_parameter_list() ) -> [view_gen_fnkdecls: h ";" ]; Consac_parameter_list( h, t ) -> [view_gen_fnkdecls: t "\n" h ";" ]; AcParDeclDecl( ds, d ) -> [view_gen_fnkdecls: ds " " d ]; AcParDeclAbsdecl( ds, ad ) -> [view_gen_fnkdecls: ds " " ad ]; AcDeclarator( po, dd ) -> [view_gen_fnkdecls: po dd ]; AcDirectDeclId( i ) -> [view_gen_fnkdecls: i ]; AcDirectDeclPack( d ) -> [view_gen_fnkdecls: "(" d ")" ]; AcDirectDeclArray( dd, ceo ) -> [view_gen_fnkdecls: dd "[" ceo "]" ]; AcDirectDeclProto( dd, * ) -> [view_gen_fnkdecls: dd "()" ]; AcDirectDeclKandR( dd, * ) -> [view_gen_fnkdecls: dd "()" ]; AcAbsdeclPointer( p ) -> [view_gen_fnkargs: p " kc_arg_missing" ]; AcAbsdeclDirdecl( p, dad ) -> [view_gen_fnkargs: p dad ]; /***************************************************************************/ %{ KC_UNPARSE #ifndef FREE # define FREE efree #endif #ifndef efree /* * # ifdef lint * # define efree(kc_p) * # else */ # define efree(kc_p) free((kc_malloc_t)(kc_p)) /* * # endif */ #endif %} PhylumDeclarations( * ) -> [view_gen_fns_start_h: { char *printablefilename = f_make_identifier_basename( g_hfilename ); } "/* translation of file \"" (casestring)pg_filename "\" */ /* generated by: * " (charptr)kimwitu_copyright " */ #ifndef KC_FUNCTIONS_" (charptr)printablefilename "_HEADER #define KC_FUNCTIONS_" (charptr)printablefilename "_HEADER #define KIMW_FUNCTIONS_" (charptr)printablefilename "_HEADER /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include \"k.h\" /* in case a user forgets */ " { FREE((kc_voidptr_t) printablefilename ); } ]; PhylumDeclarations( * ) -> [view_gen_fns_end_h: { char *printablefilename = f_make_identifier_basename( g_hfilename ); } "#endif /* ! KC_FUNCTIONS_" (charptr)printablefilename "_HEADER */ " { FREE((kc_voidptr_t) printablefilename ); } ]; /***************************************************************************/ PhylumDeclarations( * ) -> [view_gen_fns_start_c: { char *printablefilename = f_make_identifier_basename( g_cfilename ); } "/* translation of file \"" (casestring)pg_filename "\" */ /* generated by: * " (charptr)kimwitu_copyright " */ #define KC_FUNCTIONS_" (charptr)printablefilename " #define KIMW_FUNCTIONS_" (charptr)printablefilename " /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include #ifdef KC_STDC # include #endif #include \"k.h\" " { FREE((kc_voidptr_t) printablefilename ); } ]; PhylumDeclarations( * ) -> [view_gen_fns_owninclude_c: /* { char *printablefilename = f_make_identifier_basename( g_cfilename ); } */ "#include \"" (charptr)g_hfilename "\" " /* { FREE((kc_voidptr_t) printablefilename ); } */ ]; /***************************************************************************/ /***************************************************************************/ /***************************************************************************/ PhylumDeclarations( * ) -> [view_gen_unpk_h: "/* translation of file(s) " (fnfiles)Thefnfiles " */ /* generated by: * " (charptr)kimwitu_copyright " */ #ifndef KC_UNPARSE_HEADER #define KC_UNPARSE_HEADER #define KIMW_UNPARSE_HEADER /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include \"k.h\" /* in case a user forgets */ " ]; PhylumDeclarations( pds ) -> [view_gen_unparsedecls_h: "#ifndef KC_MAXINTSTRING # define KC_MAXINTSTRING 30 #endif /* !KC_MAXINTSTRING */ typedef enum { " (viewnames)Theuviewnames:view_uview_def " } uview; typedef uview view; /* for backwards compatibility */ extern char *kc_view_names[]; " pds ]; Nilviewnames() -> [view_gen_rewritek_h view_gen_unparsedecls_h view_uview_def: {/*EMPTY*/} ]; Consviewnames( vn, Nilviewnames()) -> [view_gen_rewritek_h view_gen_unparsedecls_h: "\t" vn ]; Consviewnames( vn, r_vn) -> [view_gen_rewritek_h view_gen_unparsedecls_h: r_vn ",\n\t" vn ]; Consviewnames( vn, Nilviewnames()) -> [view_uview_def: "\t" vn { if (eq_ID( vn, Id( Str( mkcasestring( "base_view" ))))) } ${ " = base_uview" $} ]; Consviewnames( vn, r_vn) -> [view_uview_def: r_vn ",\n\t" vn { if (eq_ID( vn, Id( Str( mkcasestring( "base_view" ))))) } ${ " = base_uview" $} ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_unparsedecls_h: rpds pd ]; Nilphylumdeclarations() -> [view_gen_unparsedecls_h: {/*EMPTY*/} ]; PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_unparsedecls_h: {/*EMPTY*/} ]; PhylumDeclaration( id, *, *, * ) -> [view_gen_unparsedecls_h: "void unparse_" id " KC__P(( " id ", void(*)(char*, uview), uview )); " ]; PhylumDeclarations( * ) -> [view_gen_end_unpk_h: " #endif /* KC_UNPARSE_HEADER */ " ]; /***************************************************************************/ PhylumDeclarations( * ) -> [view_gen_unpk_c: "/*LINTLIBRARY*/ /* translation of file(s) " (fnfiles)Thefnfiles " */ /* generated by: * " (charptr)kimwitu_copyright " */ #define KC_UNPARSE #define KIMW_UNPARSE /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include #include #if ((! defined(KC_STDC) ) && defined(sun)) extern char *sprintf(); #endif #ifdef KC_STDC # include #endif #include \"k.h\" #include \"unpk.h\" char *kc_view_names[] = { " (viewnames)Theuviewnames ", \"base_view\" }; " ]; Nilviewnames() -> [view_gen_rewritek_c view_gen_unpk_c: {/*EMPTY*/} ]; Consviewnames( vn, Nilviewnames()) -> [view_gen_rewritek_c view_gen_unpk_c: "\t\"" vn "\"" ]; Consviewnames( vn, r_vn) -> [view_gen_rewritek_c view_gen_unpk_c: r_vn ",\n\t\"" vn "\"" ]; /***************************************************************************/ PhylumDeclarations( * ) -> [view_gen_default_types_unpk_c: "void unparse_casestring #ifdef KC_USE_PROTOTYPES (casestring kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) casestring kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_casestring(kc_p, \"kc_p\"); (*kc_printer)(kc_p->name, kc_current_view); } void unparse_nocasestring #ifdef KC_USE_PROTOTYPES (nocasestring kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) nocasestring kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_nocasestring(kc_p, \"kc_p\"); (*kc_printer)(kc_p->name, kc_current_view); } void unparse_int #ifdef KC_USE_PROTOTYPES (int kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) int kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { char kc_string[KC_MAXINTSTRING]; /* ADD: test if kc_p will fit in the allocated buffer */ (void)sprintf(kc_string, \"%d\", kc_p); (*kc_printer)(kc_string, kc_current_view); } void unparse_float #ifdef KC_USE_PROTOTYPES (float kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) float kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { char kc_string[KC_MAXINTSTRING]; /* ADD: test if kc_p will fit in the allocated buffer */ (void)sprintf(kc_string, \"%f\", kc_p); (*kc_printer)(kc_string, kc_current_view); } void unparse_voidptr #ifdef KC_USE_PROTOTYPES (voidptr kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) voidptr kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { char kc_string[KC_MAXINTSTRING]; /* ADD: test if kc_p will fit in the allocated buffer */ (void)sprintf(kc_string, \"%p\", kc_p); (*kc_printer)(kc_string, kc_current_view); } " ]; PhylumDeclarations( pds ) -> [view_gen_unparsedefs_c: pds ]; Consphylumdeclarations( pd, rpds ) -> [view_gen_unparsedefs_c: rpds pd ]; Nilphylumdeclarations() -> [view_gen_unparsedefs_c: {/*EMPTY*/} ]; PhylumDeclaration( *, *, PredefinedAlternatives( * ), * ), PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_unparsedefs_c: {/*EMPTY*/} ]; PhylumDeclaration( id, *, pb, * ) -> [view_gen_unparsedefs_c: { ID selvar = Id(Str(mkcasestring("kc_p"))); /*cf_pushselvar( selvar );*/ cf_pushdollarvar( selvar ); cf_pushdollarvarext( f_emptyId() ); gl_phylum = id; } "/*ARGSUSED*/ void unparse_" id " #ifdef KC_USE_PROTOTYPES (" id " kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) " id " kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_" id "(kc_p, \"kc_p\"); switch((int)kc_current_view) { " pb " } } " { gl_phylum = 0; /*cf_popselvar();*/ cf_popdollarvar(); cf_popdollarvarext(); } ]; PredefinedAlternatives( * ) -> [view_gen_unparsedefs_c: {/*EMPTY*/} ]; ListAlternatives( a, * ), NonlistAlternatives( a ) -> [view_gen_unparsedefs_c: { unparseviewsinfo a_unparseviewsinfo = f_unparseviewsinfoofalternatives( a, Theuviewnames ); } { gl_unparse_goto_used = False; } (unparseviewsinfo)a_unparseviewsinfo ]; Nilunparseviewsinfo() -> [view_gen_unparsedefs_c: {/*EMPTY*/} ]; /* * IMPORTANT we unparse the viewsinfo in reverse order, to make sure that * the kc_unparsing_label is used before defined, ie. * the default view is the last in the switch * so that we can set a variable when we generate a goto, * so that we only generate the label if necessary */ Consunparseviewsinfo( a_uvi, r_uvi ) -> [view_gen_unparsedefs_c: r_uvi a_uvi ]; Unparseviewinfo( v, * ) -> [view_gen_unparsedefs_c: { if (eq_ID( v, Id( Str( mkcasestring( "base_uview" ))))) } ${ $0:view_gen_unparsedefs_default_c $} { else if (! eq_ID( v, Id( Str( mkcasestring( "base_view" ))))) } ${ $0:view_gen_unparsedefs_other_c $} ]; Unparseviewinfo( v, udi ) -> [view_gen_unparsedefs_default_c: " default: " { if (gl_unparse_goto_used) } ${ " kc_unparsing_default: " $} " case (int)" v ": { " udi " break; } " ]; Unparseviewinfo( *, Nilunparsedeclsinfo() ) -> [view_gen_unparsedefs_other_c: {/*EMPTY*/} ]; Unparseviewinfo( v, udi ) -> [view_gen_unparsedefs_other_c: " case (int)" v ": { " udi " break; } " ]; Nilunparsedeclsinfo() -> [view_gen_unparsedefs_other_c: " goto kc_unparsing_default; " { gl_unparse_goto_used = True; } ]; Nilunparsedeclsinfo() -> [view_gen_unparsedefs_default_c: { phylumdeclaration phydecl = f_lookupdecl( gl_phylum ); if ( phydecl == 0 ) } ${ { v_report(NonFatal( FileLine( gl_phylum->file, gl_phylum->line ), Problem1S1ID( "internal error: could not find declaration of phylum:", gl_phylum ))); } $} { else } ${ (phylumdeclaration)phydecl $} ]; PhylumDeclaration( *, *, PredefinedAlternatives( * ), * ), PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_gen_unparsedefs_default_c: {/*EMPTY*/} ]; PhylumDeclaration( *, *, ListAlternatives( a, * ), * ), PhylumDeclaration( *, *, NonlistAlternatives( a ), * ) -> [view_gen_unparsedefs_default_c: /* if _all_ alternatives have _no_ arguments, then there is nothing to do * here, and can we skip (just as we skip for 'Alternative( *, Nilarguments() )' * in the rule for Consalternatives below). * However, as soon as there is at least one operator in the alternatives we * do have to generate code for it here. */ { if (! f_all_alternatives_nullary( a )) } ${ " switch((int)kc_p->prod_sel) { " a " default:;} " $} ]; Nilalternatives() -> [view_gen_unparsedefs_default_c: {/*EMPTY*/} ]; Consalternatives( Alternative( *, Nilarguments() ), ra ) -> [view_gen_unparsedefs_default_c: ra ]; Consalternatives( Alternative( oid, args ), ra ) -> [view_gen_unparsedefs_default_c: ra { gl_operator = oid; } " case (int)sel_" oid ": " args " break; " { gl_operator = 0; } ]; Consarguments( a, rargs ) -> [view_gen_unparsedefs_default_c: rargs " unparse_" a "( kc_p->u." (ID)gl_operator "." a "_" $0->seqnr ", kc_printer, kc_current_view ); " ]; Consunparsedeclsinfo( Unparsedeclinfo( Nilpatternrepresentation(), bindings, uc ), * ) -> [view_gen_unparsedefs_other_c view_gen_unparsedefs_default_c: bindings:view_unp_bindings uc ]; Consunparsedeclsinfo( Unparsedeclinfo( p , bindings, uc ), r_rri) -> [view_gen_unparsedefs_other_c view_gen_unparsedefs_default_c: " if ((" p:view_unp_predicates ")) { " bindings:view_unp_bindings { cf_pushoperator( f_operatorofpatternrepresentation( p ) ); } uc { cf_popoperator(); } " } else " r_rri ]; UnparseClause( *, ui ) -> [view_gen_unparsedefs_other_c view_gen_unparsedefs_default_c: ui ]; Nilunparseitems() -> [view_gen_unparsedefs_other_c view_gen_unparsedefs_default_c: {/*EMPTY*/} ]; Consunparseitems( a_ui, r_ui ) -> [view_gen_unparsedefs_other_c view_gen_unparsedefs_default_c: r_ui a_ui ]; NoViewname() -> [view_gen_unparsedefs_other_c view_gen_unparsedefs_default_c: "kc_current_view" ]; YesViewname( v ) -> [view_gen_unparsedefs_other_c view_gen_unparsedefs_default_c: v ]; UnpStr( a_CexpressionDQ, a_vnameopt ) -> [view_gen_unparsedefs_other_c view_gen_unparsedefs_default_c: { ug_viewnameopt = a_vnameopt; } { (*kc_printer)( "", view_no_of_printed_string_chars_reset ); } " { (*kc_printer)(\"" a_CexpressionDQ:view_gen_unpstr_c "\", " a_vnameopt "); } " { ug_viewnameopt = 0; } ]; ConsCexpressionDQ( cedqe, cedq ) -> [view_gen_unpstr_c: cedq cedqe ]; NilCexpressionDQ() -> [view_gen_unpstr_c: {/*EMPTY*/} ]; CExpressionDQPart( cs ) -> [view_gen_unpstr_c: cs ]; CExpressionDQNl( i ) -> [view_gen_unpstr_c: { char *nl_string = f_mkquotednls( i ); } (charptr)nl_string ]; UnpSubexpr( sub, a_vnameopt ) -> [view_gen_unparsedefs_other_c view_gen_unparsedefs_default_c: { ID phy = f_typeofunpsubterm( sub, cf_topoperator() ); } " unparse_" (ID)phy "(" sub ", kc_printer, " a_vnameopt "); " ]; UnpSubTerm( st ) -> [view_gen_unparsedefs_other_c view_gen_unparsedefs_default_c: st ]; UnpDollarvarTerm( * ) -> [view_gen_unparsedefs_other_c view_gen_unparsedefs_default_c: $0:view_gen_initializephyla_c ]; UnpSubAttr( st, a_unpattributes ) -> [view_gen_unparsedefs_other_c view_gen_unparsedefs_default_c: st a_unpattributes ]; UnpDollarvarAttr( *, a_unpattributes ) -> [view_gen_unparsedefs_other_c view_gen_unparsedefs_default_c: $0:view_gen_initializephyla_c a_unpattributes ]; UnpCastedVariable( *, a_id ) -> [view_gen_unparsedefs_other_c view_gen_unparsedefs_default_c: a_id ]; UnpCtext( ct ) -> [view_gen_unparsedefs_other_c view_gen_unparsedefs_default_c: "#line " ct->line " \"" ct->file:view_filename "\" " ct:view_gen_initializephyla_c (charptr)g_emptystring:view_printer_outputfileline ]; UnpBody( a_unparseitems ) -> [view_gen_unparsedefs_other_c view_gen_unparsedefs_default_c: "{ " a_unparseitems " } " ]; Nilunpattributes() -> [view_gen_unparsedefs_other_c view_gen_unparsedefs_default_c: {/*EMPTY*/} ]; Consunpattributes( a_attr, r_attr ) -> [view_gen_unparsedefs_other_c view_gen_unparsedefs_default_c: r_attr "->" a_attr ]; kimwitu-4.6.1.orig/src/gutil.c0100644000176100001440000022007707076113222015542 0ustar debacleusers/* translation of file "../gutil.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #define KC_FUNCTIONS_gutil #define KIMW_FUNCTIONS_gutil /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include #ifdef KC_STDC # include #endif #include "k.h" /* included stuff */ #line 2 "../gutil.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 29 "gutil.c" #line 14 "../gutil.k" #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char gutil_kAccesSid[] = "@(#)$Id: gutil.k,v 1.29 1998/01/29 10:57:34 belinfan Rel $"; #endif #line 35 "gutil.c" #line 90 "../gutil.k" /* string(s) stuff */ #include #if (! defined(KC_STDC) ) && defined(sun) extern char *sprintf(); #endif #line 43 "gutil.c" #line 157 "../gutil.k" #include "util.h" #line 47 "gutil.c" #line 277 "../gutil.k" #include "parse.h" #line 51 "gutil.c" #line 365 "../gutil.k" #include "unpk.h" #ifndef MALLOC # define MALLOC emalloc #endif #ifndef REALLOC /* * # ifdef lint * # define REALLOC(kc_p,kc_s) (kc_p,kc_s,0) * # else */ # define REALLOC erealloc /* * # endif */ #endif #ifndef FREE # define FREE efree #endif #ifndef efree /* * # ifdef lint * # define efree(kc_p) * # else */ # define efree(kc_p) free((kc_malloc_t)(kc_p)) /* * # endif */ #endif #line 83 "gutil.c" #line 464 "../gutil.k" #define QUOTEDBACKSLASH '\\' #line 87 "gutil.c" #line 502 "../gutil.k" #define MKSELVARMAXINTREPR 30 #line 91 "gutil.c" #line 602 "../gutil.k" #include #line 95 "gutil.c" #line 634 "../gutil.k" static ID global_filterview; /* to be used by filteronview */ #line 99 "gutil.c" #line 908 "../gutil.k" #include "rk.h" /* for the rewrite_withcasesinfo call below */ #line 103 "gutil.c" /* end included stuff */ #include "gutil.h" static boolean f_attributes_to_initialize KC__P((attributes attr)); static Cvariabledeclaration lookup_and_createCvariabledeclaration KC__P((ID a_fnarg, Cvariabledeclarations C_vardecls)); static ac_parameter_declaration lookup_and_create_ac_parameter_declaration KC__P((ID a_fnarg, ac_declaration_list C_vardecls)); static void check_ac_parameter_declaration KC__P((ac_declaration_list C_vardecls, ac_identifier_list fn_args)); static boolean filterrewriteruleinfoonview KC__P((rewriteruleinfo a_rewriteruleinfo)); static boolean filterunparsedeclinfoonview KC__P((unparsedeclinfo a_unparsedeclinfo)); static boolean is_viewname_in_rewriteruleinfo KC__P((ID a_view, rewriteruleinfo a_rewriteruleinfo)); static boolean is_viewname_in_unparsedeclinfo KC__P((ID a_view, unparsedeclinfo a_unparsedeclinfo)); static boolean is_viewname_in_viewnames KC__P((ID a_view, viewnames a_viewnames)); static rewriterulesinfo f_rewriterulesinfoofalternatives KC__P((alternatives a_alternatives)); static unparsedeclsinfo f_unparsedeclsinfoofalternatives KC__P((alternatives a_alternatives)); static ID f_operatorofelem_patternrepresentation KC__P((elem_patternrepresentation a_elem_patternrepresentation)); static ID f_operatorofpaths KC__P((paths a_paths)); static ID f_operatorofpath KC__P((path a_path)); static boolean f_outmost_nl_preds_in_patternrepresentation KC__P((patternrepresentation p)); static boolean f_outmost_nl_preds_in_elem_patternrepresentation KC__P((elem_patternrepresentation e_p)); static boolean f_outmost_nl_preds_in_paths KC__P((paths p)); boolean f_something_to_initialize #ifdef KC_USE_PROTOTYPES (Ccode_option cco) #else (cco) Ccode_option cco; #endif #line 100 "../gutil.k" { { #line 101 "../gutil.k" Ccode_option kc_selvar_0_1 = cco ; #line 101 "../gutil.k" /*SUPPRESS 622*/ assert_Ccode_option(kc_selvar_0_1, "with_expression (1)"); #line 141 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_CcodeOption)) { #line 102 "../gutil.k" attributes attr = kc_selvar_0_1->u.CcodeOption.attributes_1; #line 102 "../gutil.k" Ctexts ct = kc_selvar_0_1->u.CcodeOption.Ctexts_1; #line 102 "../gutil.k" return (boolean)(f_attributes_to_initialize( attr ) || (! f_NilCtexts( ct ))); #line 151 "gutil.c" } else { kc_no_default_in_with( "f_something_to_initialize", __LINE__, __FILE__ ); return (boolean)0; } } #line 104 "../gutil.k" #line 104 "../gutil.k" } #line 160 "gutil.c" boolean f_NilCtexts #ifdef KC_USE_PROTOTYPES (Ctexts c) #else (c) Ctexts c; #endif #line 107 "../gutil.k" { { #line 108 "../gutil.k" Ctexts kc_selvar_0_1 = c ; #line 108 "../gutil.k" /*SUPPRESS 622*/ assert_Ctexts(kc_selvar_0_1, "with_expression (1)"); #line 179 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_ConsCtexts)) { #line 110 "../gutil.k" return False; #line 183 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_NilCtexts)) { #line 109 "../gutil.k" return True; #line 188 "gutil.c" } else { kc_no_default_in_with( "f_NilCtexts", __LINE__, __FILE__ ); return (boolean)0; } } #line 111 "../gutil.k" #line 111 "../gutil.k" } #line 197 "gutil.c" static boolean f_attributes_to_initialize #ifdef KC_USE_PROTOTYPES (attributes attr) #else (attr) attributes attr; #endif #line 116 "../gutil.k" { { #line 117 "../gutil.k" attributes kc_fe_selvar_1 = attr ; #line 117 "../gutil.k" /*SUPPRESS 622*/ assert_attributes(kc_fe_selvar_1, "foreach_list_expression"); #line 214 "gutil.c" while( kc_fe_selvar_1->prod_sel == sel_Consattributes ) { attribute kc_selvar_0_1 = kc_fe_selvar_1->u.Consattributes.attribute_1; { #line 117 "../gutil.k" { #line 117 "../gutil.k" /*SUPPRESS 622*/ assert_attribute(kc_selvar_0_1, "with_expression (1)"); #line 226 "gutil.c" { #line 117 "../gutil.k" attribute a = kc_selvar_0_1; #line 117 "../gutil.k" { #line 118 "../gutil.k" attribute kc_selvar_1_1 = a ; #line 118 "../gutil.k" /*SUPPRESS 622*/ assert_attribute(kc_selvar_1_1, "with_expression (1)"); #line 241 "gutil.c" if (( kc_selvar_1_1->prod_sel == sel_Attribute) && ( kc_selvar_1_1->u.Attribute.attribute_initialisation_option_1->prod_sel == sel_Yesattribute_initialisation)) { #line 120 "../gutil.k" return True; #line 247 "gutil.c" } else if (( kc_selvar_1_1->prod_sel == sel_Attribute) && ( kc_selvar_1_1->u.Attribute.attribute_initialisation_option_1->prod_sel == sel_Noattribute_initialisation)) { #line 119 "../gutil.k" /*EMPTY*/ #line 252 "gutil.c" } else { kc_no_default_in_with( "f_attributes_to_initialize", __LINE__, __FILE__ ); return (boolean)0; } } #line 124 "../gutil.k" #line 259 "gutil.c" } } #line 263 "gutil.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consattributes.attributes_1; #line 117 "../gutil.k" /*SUPPRESS 622*/ assert_attributes(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 270 "gutil.c" } } #line 125 "../gutil.k" return False; #line 126 "../gutil.k" } #line 278 "gutil.c" boolean f_no_attrs_in_Ccode_option #ifdef KC_USE_PROTOTYPES (Ccode_option cco) #else (cco) Ccode_option cco; #endif #line 129 "../gutil.k" { { #line 130 "../gutil.k" Ccode_option kc_selvar_0_1 = cco ; #line 130 "../gutil.k" /*SUPPRESS 622*/ assert_Ccode_option(kc_selvar_0_1, "with_expression (1)"); #line 297 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_CcodeOption) && ( kc_selvar_0_1->u.CcodeOption.attributes_1->prod_sel == sel_Consattributes)) { #line 132 "../gutil.k" return False; #line 301 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_CcodeOption) && ( kc_selvar_0_1->u.CcodeOption.attributes_1->prod_sel == sel_Nilattributes)) { #line 131 "../gutil.k" return True; #line 306 "gutil.c" } else { kc_no_default_in_with( "f_no_attrs_in_Ccode_option", __LINE__, __FILE__ ); return (boolean)0; } } #line 133 "../gutil.k" #line 133 "../gutil.k" } #line 315 "gutil.c" boolean f_all_alternatives_nullary #ifdef KC_USE_PROTOTYPES (alternatives a) #else (a) alternatives a; #endif #line 144 "../gutil.k" { { #line 145 "../gutil.k" alternatives kc_fe_selvar_1 = a ; #line 145 "../gutil.k" /*SUPPRESS 622*/ assert_alternatives(kc_fe_selvar_1, "foreach_list_expression"); #line 332 "gutil.c" while( kc_fe_selvar_1->prod_sel == sel_Consalternatives ) { alternative kc_selvar_0_1 = kc_fe_selvar_1->u.Consalternatives.alternative_1; { #line 145 "../gutil.k" { #line 145 "../gutil.k" /*SUPPRESS 622*/ assert_alternative(kc_selvar_0_1, "with_expression (1)"); #line 344 "gutil.c" { #line 145 "../gutil.k" alternative alt = kc_selvar_0_1; #line 145 "../gutil.k" { #line 146 "../gutil.k" alternative kc_selvar_1_1 = alt ; #line 146 "../gutil.k" /*SUPPRESS 622*/ assert_alternative(kc_selvar_1_1, "with_expression (1)"); #line 359 "gutil.c" if (( kc_selvar_1_1->prod_sel == sel_Alternative) && ( kc_selvar_1_1->u.Alternative.arguments_1->prod_sel == sel_Nilarguments)) { #line 148 "../gutil.k" /*EMPTY*/ #line 363 "gutil.c" } else if (( kc_selvar_1_1->prod_sel == sel_Alternative) && ( kc_selvar_1_1->u.Alternative.arguments_1->prod_sel == sel_Consarguments)) { #line 147 "../gutil.k" return False; #line 368 "gutil.c" } else { kc_no_default_in_with( "f_all_alternatives_nullary", __LINE__, __FILE__ ); return (boolean)0; } } #line 150 "../gutil.k" #line 375 "gutil.c" } } #line 379 "gutil.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consalternatives.alternatives_1; #line 145 "../gutil.k" /*SUPPRESS 622*/ assert_alternatives(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 386 "gutil.c" } } #line 151 "../gutil.k" return True; #line 152 "../gutil.k" } #line 394 "gutil.c" ID f_phylumofwithcasesinfo #ifdef KC_USE_PROTOTYPES (withcasesinfo wcso) #else (wcso) withcasesinfo wcso; #endif #line 161 "../gutil.k" { ID id; { #line 163 "../gutil.k" withcasesinfo kc_selvar_0_1 = wcso ; #line 163 "../gutil.k" /*SUPPRESS 622*/ assert_withcasesinfo(kc_selvar_0_1, "with_expression (1)"); #line 414 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_Conswithcasesinfo)) { #line 168 "../gutil.k" withcaseinfo wco = kc_selvar_0_1->u.Conswithcasesinfo.withcaseinfo_1; #line 168 "../gutil.k" withcasesinfo r_wcso = kc_selvar_0_1->u.Conswithcasesinfo.withcasesinfo_1; #line 168 "../gutil.k" { #line 169 "../gutil.k" withcaseinfo kc_selvar_1_1 = wco ; #line 169 "../gutil.k" /*SUPPRESS 622*/ assert_withcaseinfo(kc_selvar_1_1, "with_expression (1)"); #line 431 "gutil.c" if (( kc_selvar_1_1->prod_sel == sel_Withcaseinfo)) { #line 170 "../gutil.k" patternrepresentation patrep = kc_selvar_1_1->u.Withcaseinfo.patternrepresentation_1; #line 170 "../gutil.k" if ( eq_ID(id = f_phylumofpatternrepresentation( patrep ), f_emptyId() )) { return f_phylumofwithcasesinfo( r_wcso ); } else { return id; } #line 442 "gutil.c" } else { kc_no_default_in_with( "f_phylumofwithcasesinfo", __LINE__, __FILE__ ); return (ID)0; } } #line 175 "../gutil.k" #line 449 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilwithcasesinfo)) { #line 164 "../gutil.k" v_report(NonFatal( NoFileLine(), Problem1S( "Error: can not find type of with expression" ))); return Id( Str( mkcasestring( "KC_ERRORunknownTYPE" ))); #line 457 "gutil.c" } else { kc_no_default_in_with( "f_phylumofwithcasesinfo", __LINE__, __FILE__ ); return (ID)0; } } #line 175 "../gutil.k" #line 175 "../gutil.k" } #line 466 "gutil.c" ID f_phylumofpatternrepresentation #ifdef KC_USE_PROTOTYPES (patternrepresentation a_patrep) #else (a_patrep) patternrepresentation a_patrep; #endif #line 178 "../gutil.k" { { #line 179 "../gutil.k" patternrepresentation kc_selvar_0_1 = a_patrep ; #line 179 "../gutil.k" /*SUPPRESS 622*/ assert_patternrepresentation(kc_selvar_0_1, "with_expression (1)"); #line 485 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_Conspatternrepresentation)) { #line 183 "../gutil.k" elem_patternrepresentation a_patrep_elem = kc_selvar_0_1->u.Conspatternrepresentation.elem_patternrepresentation_1; #line 183 "../gutil.k" patternrepresentation r_patrep = kc_selvar_0_1->u.Conspatternrepresentation.patternrepresentation_1; #line 183 "../gutil.k" { #line 184 "../gutil.k" elem_patternrepresentation kc_selvar_1_1 = a_patrep_elem ; #line 184 "../gutil.k" /*SUPPRESS 622*/ assert_elem_patternrepresentation(kc_selvar_1_1, "with_expression (1)"); #line 502 "gutil.c" if (( kc_selvar_1_1->prod_sel == sel_PRIntLiteral)) { #line 206 "../gutil.k" return f_phylumofpatternrepresentation( r_patrep ); #line 508 "gutil.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRStringLiteral)) { #line 203 "../gutil.k" return f_phylumofpatternrepresentation( r_patrep ); #line 515 "gutil.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRWildcard)) { #line 200 "../gutil.k" return f_phylumofpatternrepresentation( r_patrep ); #line 522 "gutil.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRDefault)) { #line 197 "../gutil.k" return f_phylumofpatternrepresentation( r_patrep ); #line 529 "gutil.c" } else if (( kc_selvar_1_1->prod_sel == sel_PROperPredicate)) { #line 194 "../gutil.k" ID id = kc_selvar_1_1->u.PROperPredicate.ID_1; #line 194 "../gutil.k" return f_phylumofoperator( id ); #line 538 "gutil.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRVarPredicate)) { #line 191 "../gutil.k" return f_phylumofpatternrepresentation( r_patrep ); #line 545 "gutil.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRNonLeafBinding)) { #line 188 "../gutil.k" return f_phylumofpatternrepresentation( r_patrep ); #line 552 "gutil.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRBinding)) { #line 185 "../gutil.k" return f_phylumofpatternrepresentation( r_patrep ); #line 559 "gutil.c" } else { kc_no_default_in_with( "f_phylumofpatternrepresentation", __LINE__, __FILE__ ); return (ID)0; } } #line 208 "../gutil.k" #line 566 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilpatternrepresentation)) { #line 180 "../gutil.k" return f_emptyId(); #line 573 "gutil.c" } else { kc_no_default_in_with( "f_phylumofpatternrepresentation", __LINE__, __FILE__ ); return (ID)0; } } #line 208 "../gutil.k" #line 208 "../gutil.k" } #line 582 "gutil.c" Cvariabledeclarations sort_extend_Cvariabledeclarations #ifdef KC_USE_PROTOTYPES (Cvariabledeclarations C_vardecls, fnarguments fn_args) #else (C_vardecls, fn_args) Cvariabledeclarations C_vardecls; fnarguments fn_args; #endif #line 213 "../gutil.k" { return t_sort_extend_Cvariabledeclarations( C_vardecls, fn_args, NilCvariabledeclarations() ); #line 215 "../gutil.k" } #line 597 "gutil.c" Cvariabledeclarations t_sort_extend_Cvariabledeclarations #ifdef KC_USE_PROTOTYPES (Cvariabledeclarations C_vardecls, fnarguments fn_args, Cvariabledeclarations temp) #else (C_vardecls, fn_args, temp) Cvariabledeclarations C_vardecls; fnarguments fn_args; Cvariabledeclarations temp; #endif #line 217 "../gutil.k" { { #line 218 "../gutil.k" fnarguments kc_selvar_0_1 = fn_args ; #line 218 "../gutil.k" /*SUPPRESS 622*/ assert_fnarguments(kc_selvar_0_1, "with_expression (1)"); #line 618 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_Consfnarguments)) { #line 220 "../gutil.k" ID a_fnarg = kc_selvar_0_1->u.Consfnarguments.ID_1; #line 220 "../gutil.k" fnarguments r_fnargs = kc_selvar_0_1->u.Consfnarguments.fnarguments_1; #line 220 "../gutil.k" temp = t_sort_extend_Cvariabledeclarations( C_vardecls, r_fnargs, temp ); return ConsCvariabledeclarations( lookup_and_createCvariabledeclaration( a_fnarg, C_vardecls ), temp ); #line 629 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilfnarguments)) { #line 219 "../gutil.k" return temp; #line 634 "gutil.c" } else { kc_no_default_in_with( "t_sort_extend_Cvariabledeclarations", __LINE__, __FILE__ ); return (Cvariabledeclarations)0; } } #line 223 "../gutil.k" #line 223 "../gutil.k" } #line 643 "gutil.c" static Cvariabledeclaration lookup_and_createCvariabledeclaration #ifdef KC_USE_PROTOTYPES (ID a_fnarg, Cvariabledeclarations C_vardecls) #else (a_fnarg, C_vardecls) ID a_fnarg; Cvariabledeclarations C_vardecls; #endif #line 226 "../gutil.k" { Cvariabledeclaration result = 0; int number_of_results = 0; { #line 229 "../gutil.k" Cvariabledeclarations kc_fe_selvar_1 = C_vardecls ; #line 229 "../gutil.k" /*SUPPRESS 622*/ assert_Cvariabledeclarations(kc_fe_selvar_1, "foreach_list_expression"); #line 663 "gutil.c" while( kc_fe_selvar_1->prod_sel == sel_ConsCvariabledeclarations ) { Cvariabledeclaration kc_selvar_0_1 = kc_fe_selvar_1->u.ConsCvariabledeclarations.Cvariabledeclaration_1; { #line 229 "../gutil.k" { #line 229 "../gutil.k" /*SUPPRESS 622*/ assert_Cvariabledeclaration(kc_selvar_0_1, "with_expression (1)"); #line 675 "gutil.c" { #line 229 "../gutil.k" Cvariabledeclaration vard = kc_selvar_0_1; #line 229 "../gutil.k" { #line 230 "../gutil.k" Cvariabledeclaration kc_selvar_1_1 = vard ; #line 230 "../gutil.k" /*SUPPRESS 622*/ assert_Cvariabledeclaration(kc_selvar_1_1, "with_expression (1)"); #line 690 "gutil.c" if (( kc_selvar_1_1->prod_sel == sel_Fnargfpdecl)) { #line 245 "../gutil.k" ID type = kc_selvar_1_1->u.Fnargfpdecl.ID_1; #line 245 "../gutil.k" Cvariables cvars = kc_selvar_1_1->u.Fnargfpdecl.Cvariables_1; #line 245 "../gutil.k" { #line 246 "../gutil.k" Cvariables kc_fe_selvar_1 = cvars ; #line 246 "../gutil.k" /*SUPPRESS 622*/ assert_Cvariables(kc_fe_selvar_1, "foreach_list_expression"); #line 705 "gutil.c" while( kc_fe_selvar_1->prod_sel == sel_ConsCvariables ) { Cvariable kc_selvar_2_1 = kc_fe_selvar_1->u.ConsCvariables.Cvariable_1; { #line 246 "../gutil.k" { #line 246 "../gutil.k" /*SUPPRESS 622*/ assert_Cvariable(kc_selvar_2_1, "with_expression (1)"); #line 717 "gutil.c" { #line 246 "../gutil.k" Cvariable cvar = kc_selvar_2_1; #line 246 "../gutil.k" { #line 247 "../gutil.k" Cvariable kc_selvar_3_1 = cvar ; #line 247 "../gutil.k" /*SUPPRESS 622*/ assert_Cvariable(kc_selvar_3_1, "with_expression (1)"); #line 732 "gutil.c" if (( kc_selvar_3_1->prod_sel == sel_CVFunction)) { #line 253 "../gutil.k" ID name = kc_selvar_3_1->u.CVFunction.ID_1; #line 253 "../gutil.k" if (eq_ID( name, a_fnarg ) ) { result = CVariabledeclaration( type, ConsCvariables( cvar , NilCvariables() )); number_of_results++; } #line 742 "gutil.c" } else if (( kc_selvar_3_1->prod_sel == sel_CVPointer)) { #line 248 "../gutil.k" ID name = kc_selvar_3_1->u.CVPointer.ID_1; #line 248 "../gutil.k" if (eq_ID( name, a_fnarg ) ) { result = CVariabledeclaration( type, ConsCvariables( cvar , NilCvariables() )); number_of_results++; } #line 753 "gutil.c" } else { kc_no_default_in_with( "lookup_and_createCvariabledeclaration", __LINE__, __FILE__ ); return (Cvariabledeclaration)0; } } #line 258 "../gutil.k" #line 760 "gutil.c" } } #line 764 "gutil.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.ConsCvariables.Cvariables_1; #line 246 "../gutil.k" /*SUPPRESS 622*/ assert_Cvariables(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 771 "gutil.c" } } #line 258 "../gutil.k" #line 776 "gutil.c" } else if (( kc_selvar_1_1->prod_sel == sel_CVariabledeclaration)) { #line 231 "../gutil.k" ID type = kc_selvar_1_1->u.CVariabledeclaration.ID_1; #line 231 "../gutil.k" Cvariables cvars = kc_selvar_1_1->u.CVariabledeclaration.Cvariables_1; #line 231 "../gutil.k" { #line 232 "../gutil.k" Cvariables kc_fe_selvar_1 = cvars ; #line 232 "../gutil.k" /*SUPPRESS 622*/ assert_Cvariables(kc_fe_selvar_1, "foreach_list_expression"); #line 792 "gutil.c" while( kc_fe_selvar_1->prod_sel == sel_ConsCvariables ) { Cvariable kc_selvar_2_1 = kc_fe_selvar_1->u.ConsCvariables.Cvariable_1; { #line 232 "../gutil.k" { #line 232 "../gutil.k" /*SUPPRESS 622*/ assert_Cvariable(kc_selvar_2_1, "with_expression (1)"); #line 804 "gutil.c" { #line 232 "../gutil.k" Cvariable cvar = kc_selvar_2_1; #line 232 "../gutil.k" { #line 233 "../gutil.k" Cvariable kc_selvar_3_1 = cvar ; #line 233 "../gutil.k" /*SUPPRESS 622*/ assert_Cvariable(kc_selvar_3_1, "with_expression (1)"); #line 819 "gutil.c" if (( kc_selvar_3_1->prod_sel == sel_CVFunction)) { #line 239 "../gutil.k" ID name = kc_selvar_3_1->u.CVFunction.ID_1; #line 239 "../gutil.k" if (eq_ID( name, a_fnarg ) ) { result = CVariabledeclaration( type, ConsCvariables( cvar , NilCvariables() )); number_of_results++; } #line 829 "gutil.c" } else if (( kc_selvar_3_1->prod_sel == sel_CVPointer)) { #line 234 "../gutil.k" ID name = kc_selvar_3_1->u.CVPointer.ID_1; #line 234 "../gutil.k" if (eq_ID( name, a_fnarg ) ) { result = CVariabledeclaration( type, ConsCvariables( cvar , NilCvariables() )); number_of_results++; } #line 840 "gutil.c" } else { kc_no_default_in_with( "lookup_and_createCvariabledeclaration", __LINE__, __FILE__ ); return (Cvariabledeclaration)0; } } #line 244 "../gutil.k" #line 847 "gutil.c" } } #line 851 "gutil.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.ConsCvariables.Cvariables_1; #line 232 "../gutil.k" /*SUPPRESS 622*/ assert_Cvariables(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 858 "gutil.c" } } #line 244 "../gutil.k" #line 863 "gutil.c" } else { kc_no_default_in_with( "lookup_and_createCvariabledeclaration", __LINE__, __FILE__ ); return (Cvariabledeclaration)0; } } #line 259 "../gutil.k" #line 870 "gutil.c" } } #line 874 "gutil.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.ConsCvariabledeclarations.Cvariabledeclarations_1; #line 229 "../gutil.k" /*SUPPRESS 622*/ assert_Cvariabledeclarations(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 881 "gutil.c" } } #line 260 "../gutil.k" 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 CVariabledeclaration( Id( Str( mkcasestring( "KC_ERRORunknownTYPE" ))), ConsCvariables( CVPointer( 0, a_fnarg ), NilCvariables() )); } #line 272 "../gutil.k" } #line 900 "gutil.c" ac_parameter_type_list sort_extend_parameter_type_list #ifdef KC_USE_PROTOTYPES (ac_declaration_list C_vardecls, ac_declarator decl) #else (C_vardecls, decl) ac_declaration_list C_vardecls; ac_declarator decl; #endif #line 280 "../gutil.k" {{ #line 279 "../gutil.k" ac_declarator kc_selvar_0_1 = decl; #line 279 "../gutil.k" /*SUPPRESS 622*/ assert_ac_declarator(kc_selvar_0_1, "with_expression (1)"); #line 917 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_AcDeclarator)) { #line 281 "../gutil.k" ac_direct_declarator add = kc_selvar_0_1->u.AcDeclarator.ac_direct_declarator_1; #line 281 "../gutil.k" { #line 282 "../gutil.k" ac_direct_declarator kc_selvar_1_1 = add ; #line 282 "../gutil.k" /*SUPPRESS 622*/ assert_ac_direct_declarator(kc_selvar_1_1, "with_expression (1)"); #line 932 "gutil.c" if (( kc_selvar_1_1->prod_sel == sel_AcDirectDeclKandR) && ( kc_selvar_1_1->u.AcDirectDeclKandR.ac_identifier_list_1->prod_sel == sel_Consac_identifier_list) && ( kc_selvar_1_1->u.AcDirectDeclKandR.ac_identifier_list_1->u.Consac_identifier_list.ID_1->prod_sel == sel_Id) && ( kc_selvar_1_1->u.AcDirectDeclKandR.ac_identifier_list_1->u.Consac_identifier_list.ID_1->u.Id.uniqID_1->prod_sel == sel_Str) && (strcmp( kc_selvar_1_1->u.AcDirectDeclKandR.ac_identifier_list_1->u.Consac_identifier_list.ID_1->u.Id.uniqID_1->u.Str.casestring_1->name, "void")==0) && ( kc_selvar_1_1->u.AcDirectDeclKandR.ac_identifier_list_1->u.Consac_identifier_list.ac_identifier_list_1->prod_sel == sel_Nilac_identifier_list)) { #line 287 "../gutil.k" check_ac_parameter_declaration( C_vardecls, Nilac_identifier_list() ); return AcParList( t_sort_extend_parameter_list( C_vardecls, Nilac_identifier_list(), Nilac_parameter_list() ) ); #line 939 "gutil.c" } else if (( kc_selvar_1_1->prod_sel == sel_AcDirectDeclKandR)) { #line 291 "../gutil.k" ac_identifier_list fn_args = kc_selvar_1_1->u.AcDirectDeclKandR.ac_identifier_list_1; #line 291 "../gutil.k" check_ac_parameter_declaration( C_vardecls, fn_args ); return AcParList( t_sort_extend_parameter_list( C_vardecls, fn_args, Nilac_parameter_list() ) ); #line 949 "gutil.c" } else if (( kc_selvar_1_1->prod_sel == sel_AcDirectDeclProto)) { #line 286 "../gutil.k" ac_parameter_type_list fn_proto = kc_selvar_1_1->u.AcDirectDeclProto.ac_parameter_type_list_1; #line 286 "../gutil.k" return fn_proto; #line 956 "gutil.c" } else if (( kc_selvar_1_1->prod_sel == sel_AcDirectDeclArray)) { #line 285 "../gutil.k" return AcParList( Nilac_parameter_list() ); #line 961 "gutil.c" } else if (( kc_selvar_1_1->prod_sel == sel_AcDirectDeclPack)) { #line 285 "../gutil.k" return AcParList( Nilac_parameter_list() ); #line 966 "gutil.c" } else if (( kc_selvar_1_1->prod_sel == sel_AcDirectDeclId)) { #line 285 "../gutil.k" return AcParList( Nilac_parameter_list() ); #line 971 "gutil.c" } else { kc_no_default_in_with( "sort_extend_parameter_type_list", __LINE__, __FILE__ ); return (ac_parameter_type_list)0; } } #line 296 "../gutil.k" #line 978 "gutil.c" } else { kc_no_default_in_with( "sort_extend_parameter_type_list", __LINE__, __FILE__ ); return (ac_parameter_type_list)0; } } #line 297 "../gutil.k" } #line 986 "gutil.c" ac_parameter_list t_sort_extend_parameter_list #ifdef KC_USE_PROTOTYPES (ac_declaration_list C_vardecls, ac_identifier_list fn_args, ac_parameter_list temp) #else (C_vardecls, fn_args, temp) ac_declaration_list C_vardecls; ac_identifier_list fn_args; ac_parameter_list temp; #endif #line 299 "../gutil.k" { { #line 300 "../gutil.k" ac_identifier_list kc_selvar_0_1 = fn_args ; #line 300 "../gutil.k" /*SUPPRESS 622*/ assert_ac_identifier_list(kc_selvar_0_1, "with_expression (1)"); #line 1007 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_Consac_identifier_list)) { #line 302 "../gutil.k" ID a_fnarg = kc_selvar_0_1->u.Consac_identifier_list.ID_1; #line 302 "../gutil.k" ac_identifier_list r_fnargs = kc_selvar_0_1->u.Consac_identifier_list.ac_identifier_list_1; #line 302 "../gutil.k" 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 ); #line 1018 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilac_identifier_list)) { #line 301 "../gutil.k" return temp; #line 1023 "gutil.c" } else { kc_no_default_in_with( "t_sort_extend_parameter_list", __LINE__, __FILE__ ); return (ac_parameter_list)0; } } #line 305 "../gutil.k" #line 305 "../gutil.k" } #line 1032 "gutil.c" static ac_parameter_declaration lookup_and_create_ac_parameter_declaration #ifdef KC_USE_PROTOTYPES (ID a_fnarg, ac_declaration_list C_vardecls) #else (a_fnarg, C_vardecls) ID a_fnarg; ac_declaration_list C_vardecls; #endif #line 308 "../gutil.k" { ac_parameter_declaration result = 0; int number_of_results = 0; { #line 311 "../gutil.k" ac_declaration_list kc_fe_selvar_1 = C_vardecls ; #line 311 "../gutil.k" /*SUPPRESS 622*/ assert_ac_declaration_list(kc_fe_selvar_1, "foreach_list_expression"); #line 1052 "gutil.c" while( kc_fe_selvar_1->prod_sel == sel_Consac_declaration_list ) { ac_declaration kc_selvar_0_1 = kc_fe_selvar_1->u.Consac_declaration_list.ac_declaration_1; { #line 311 "../gutil.k" { #line 311 "../gutil.k" /*SUPPRESS 622*/ assert_ac_declaration(kc_selvar_0_1, "with_expression (1)"); #line 1064 "gutil.c" { #line 311 "../gutil.k" ac_declaration vard = kc_selvar_0_1; #line 311 "../gutil.k" { #line 311 "../gutil.k" ac_declaration kc_selvar_1_1 = vard; #line 311 "../gutil.k" /*SUPPRESS 622*/ assert_ac_declaration(kc_selvar_1_1, "with_expression (1)"); #line 1076 "gutil.c" if (( kc_selvar_1_1->prod_sel == sel_AcDeclaration)) { #line 312 "../gutil.k" ac_declaration_specifiers type = kc_selvar_1_1->u.AcDeclaration.ac_declaration_specifiers_1; #line 312 "../gutil.k" ac_init_declarator_list cvars = kc_selvar_1_1->u.AcDeclaration.ac_init_declarator_list_1; #line 312 "../gutil.k" { #line 313 "../gutil.k" ac_init_declarator_list kc_fe_selvar_1 = cvars ; #line 313 "../gutil.k" /*SUPPRESS 622*/ assert_ac_init_declarator_list(kc_fe_selvar_1, "foreach_list_expression"); #line 1091 "gutil.c" while( kc_fe_selvar_1->prod_sel == sel_Consac_init_declarator_list ) { ac_init_declarator kc_selvar_2_1 = kc_fe_selvar_1->u.Consac_init_declarator_list.ac_init_declarator_1; { #line 313 "../gutil.k" { #line 313 "../gutil.k" /*SUPPRESS 622*/ assert_ac_init_declarator(kc_selvar_2_1, "with_expression (1)"); #line 1103 "gutil.c" { #line 313 "../gutil.k" ac_init_declarator cvar = kc_selvar_2_1; #line 313 "../gutil.k" { #line 313 "../gutil.k" ac_init_declarator kc_selvar_3_1 = cvar; #line 313 "../gutil.k" /*SUPPRESS 622*/ assert_ac_init_declarator(kc_selvar_3_1, "with_expression (1)"); #line 1115 "gutil.c" if (( kc_selvar_3_1->prod_sel == sel_AcInitDecl)) { #line 314 "../gutil.k" ac_declarator decl = kc_selvar_3_1->u.AcInitDecl.ac_declarator_1; #line 314 "../gutil.k" ID name = f_ID_of_declarator( decl ); if (eq_ID( name, a_fnarg ) ) { result = AcParDeclDecl( type, decl ); number_of_results++; } #line 1126 "gutil.c" } else { kc_no_default_in_with( "lookup_and_create_ac_parameter_declaration", __LINE__, __FILE__ ); return (ac_parameter_declaration)0; } } #line 1132 "gutil.c" } } #line 1136 "gutil.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consac_init_declarator_list.ac_init_declarator_list_1; #line 313 "../gutil.k" /*SUPPRESS 622*/ assert_ac_init_declarator_list(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 1143 "gutil.c" } } #line 319 "../gutil.k" #line 1148 "gutil.c" } else { kc_no_default_in_with( "lookup_and_create_ac_parameter_declaration", __LINE__, __FILE__ ); return (ac_parameter_declaration)0; } } #line 1154 "gutil.c" } } #line 1158 "gutil.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consac_declaration_list.ac_declaration_list_1; #line 311 "../gutil.k" /*SUPPRESS 622*/ assert_ac_declaration_list(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 1165 "gutil.c" } } #line 320 "../gutil.k" 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(), AcDirectDeclId( a_fnarg ))); } #line 339 "../gutil.k" } #line 1191 "gutil.c" static void check_ac_parameter_declaration #ifdef KC_USE_PROTOTYPES (ac_declaration_list C_vardecls, ac_identifier_list fn_args) #else (C_vardecls, fn_args) ac_declaration_list C_vardecls; ac_identifier_list fn_args; #endif #line 342 "../gutil.k" { { #line 343 "../gutil.k" ac_declaration_list kc_fe_selvar_1 = C_vardecls ; #line 343 "../gutil.k" /*SUPPRESS 622*/ assert_ac_declaration_list(kc_fe_selvar_1, "foreach_list_expression"); #line 1209 "gutil.c" while( kc_fe_selvar_1->prod_sel == sel_Consac_declaration_list ) { ac_declaration kc_selvar_0_1 = kc_fe_selvar_1->u.Consac_declaration_list.ac_declaration_1; { #line 343 "../gutil.k" { #line 343 "../gutil.k" /*SUPPRESS 622*/ assert_ac_declaration(kc_selvar_0_1, "with_expression (1)"); #line 1221 "gutil.c" { #line 343 "../gutil.k" ac_declaration vard = kc_selvar_0_1; #line 343 "../gutil.k" { #line 343 "../gutil.k" ac_declaration kc_selvar_1_1 = vard; #line 343 "../gutil.k" /*SUPPRESS 622*/ assert_ac_declaration(kc_selvar_1_1, "with_expression (1)"); #line 1233 "gutil.c" if (( kc_selvar_1_1->prod_sel == sel_AcDeclaration)) { #line 344 "../gutil.k" ac_init_declarator_list cvars = kc_selvar_1_1->u.AcDeclaration.ac_init_declarator_list_1; #line 344 "../gutil.k" { #line 345 "../gutil.k" ac_init_declarator_list kc_fe_selvar_1 = cvars ; #line 345 "../gutil.k" /*SUPPRESS 622*/ assert_ac_init_declarator_list(kc_fe_selvar_1, "foreach_list_expression"); #line 1246 "gutil.c" while( kc_fe_selvar_1->prod_sel == sel_Consac_init_declarator_list ) { ac_init_declarator kc_selvar_2_1 = kc_fe_selvar_1->u.Consac_init_declarator_list.ac_init_declarator_1; { #line 345 "../gutil.k" { #line 345 "../gutil.k" /*SUPPRESS 622*/ assert_ac_init_declarator(kc_selvar_2_1, "with_expression (1)"); #line 1258 "gutil.c" { #line 345 "../gutil.k" ac_init_declarator cvar = kc_selvar_2_1; #line 345 "../gutil.k" { #line 345 "../gutil.k" ac_init_declarator kc_selvar_3_1 = cvar; #line 345 "../gutil.k" /*SUPPRESS 622*/ assert_ac_init_declarator(kc_selvar_3_1, "with_expression (1)"); #line 1270 "gutil.c" if (( kc_selvar_3_1->prod_sel == sel_AcInitDecl)) { #line 346 "../gutil.k" ac_declarator decl = kc_selvar_3_1->u.AcInitDecl.ac_declarator_1; #line 346 "../gutil.k" ID name = f_ID_of_declarator( decl ); int number_of_results = 0; { #line 349 "../gutil.k" ac_identifier_list kc_fe_selvar_1 = fn_args; #line 349 "../gutil.k" /*SUPPRESS 622*/ assert_ac_identifier_list(kc_fe_selvar_1, "foreach_list_expression"); #line 1285 "gutil.c" while( kc_fe_selvar_1->prod_sel == sel_Consac_identifier_list ) { ID kc_selvar_4_1 = kc_fe_selvar_1->u.Consac_identifier_list.ID_1; { #line 349 "../gutil.k" { #line 349 "../gutil.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_4_1, "with_expression (1)"); #line 1297 "gutil.c" { #line 349 "../gutil.k" ID a_fnarg = kc_selvar_4_1; #line 349 "../gutil.k" if (eq_ID( name, a_fnarg ) ) { number_of_results++; } #line 1307 "gutil.c" } } #line 1311 "gutil.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consac_identifier_list.ac_identifier_list_1; #line 349 "../gutil.k" /*SUPPRESS 622*/ assert_ac_identifier_list(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 1318 "gutil.c" } } #line 354 "../gutil.k" if (number_of_results > 1) { v_report(Warning( FileLine( name->file, name->line ), Problem1S1ID( "more than one function argument for type definition:", name ))); } else if (number_of_results < 1) { v_report(Warning( FileLine( name->file, name->line ), Problem1S1ID( "can not find declared function argument:", name ))); } #line 1328 "gutil.c" } else kc_no_default_in_with( "check_ac_parameter_declaration", __LINE__, __FILE__ ); } #line 1333 "gutil.c" } } #line 1337 "gutil.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consac_init_declarator_list.ac_init_declarator_list_1; #line 345 "../gutil.k" /*SUPPRESS 622*/ assert_ac_init_declarator_list(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 1344 "gutil.c" } } #line 359 "../gutil.k" #line 1349 "gutil.c" } else kc_no_default_in_with( "check_ac_parameter_declaration", __LINE__, __FILE__ ); } #line 1354 "gutil.c" } } #line 1358 "gutil.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consac_declaration_list.ac_declaration_list_1; #line 343 "../gutil.k" /*SUPPRESS 622*/ assert_ac_declaration_list(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 1365 "gutil.c" } } #line 360 "../gutil.k" #line 360 "../gutil.k" } #line 1372 "gutil.c" void unparse_charptr #ifdef KC_USE_PROTOTYPES (char *s, void (*printer_fn)(char *dummy1, uview dummy2), view v) #else (s, printer_fn, v) char *s; void (*printer_fn)(); view v; #endif #line 396 "../gutil.k" { printer_fn( s, v ); #line 398 "../gutil.k" } #line 1388 "gutil.c" char *f_mkstars #ifdef KC_USE_PROTOTYPES (int i) #else (i) int i; #endif #line 401 "../gutil.k" { static char star_string[] = "**************"; static char *malloced_star_string = 0; static char empty_string[] = ""; if (i <= 0 ) { return empty_string; } else if (i <= (int)strlen(star_string)) { return &(star_string[strlen(star_string)-i]); } else { char *ptr = 0; int j; if (malloced_star_string == 0) { malloced_star_string = (char *)MALLOC((kc_size_t) i+1 ); ptr = malloced_star_string; } else if ( i > (int)strlen(malloced_star_string) ) { malloced_star_string = (char *)REALLOC((kc_voidptr_t)malloced_star_string, (kc_size_t)i+1 ); ptr = malloced_star_string; } if (ptr != 0) { for (j = 0; j< i; j++) { *ptr++ = '*'; } *ptr = '\0'; } return &(malloced_star_string[strlen(malloced_star_string)-i]); } #line 428 "../gutil.k" } #line 1427 "gutil.c" char *f_mknls #ifdef KC_USE_PROTOTYPES (int i) #else (i) int i; #endif #line 431 "../gutil.k" { static char empty_string[] = ""; static char nl_string[] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"; static char *malloced_nl_string = 0; if (i <= 0 ) { return empty_string; } else if (i <= (int)strlen(nl_string)) { return &(nl_string[strlen(nl_string)-i]); } else { char *ptr = 0; int j; if (malloced_nl_string == 0) { malloced_nl_string = (char *)MALLOC( (kc_size_t)i+1 ); ptr = malloced_nl_string; } else if ( i > (int)strlen(malloced_nl_string) ) { malloced_nl_string = (char *)REALLOC( (kc_voidptr_t)malloced_nl_string, (kc_size_t)i+1 ); ptr = malloced_nl_string; } if (ptr != 0) { for (j = 0; j< i; j++) { *ptr++ = '\n'; } *ptr = '\0'; } return &(malloced_nl_string[strlen(malloced_nl_string)-i]); } #line 458 "../gutil.k" } #line 1466 "gutil.c" char *f_mkquotednls #ifdef KC_USE_PROTOTYPES (int ii) #else (ii) int ii; #endif #line 468 "../gutil.k" { static char empty_string[] = ""; static char nl_string[] = "\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n"; static char *malloced_nl_string = 0; int i = 4*ii; if (i <= 0 ) { return empty_string; } else if (i <= (int)strlen(nl_string)) { return &(nl_string[strlen(nl_string)-i]); } else { char *ptr = 0; int j; if (malloced_nl_string == 0) { malloced_nl_string = (char *)MALLOC( (kc_size_t)i+1 ); ptr = malloced_nl_string; } else if ( i > (int)strlen(malloced_nl_string) ) { malloced_nl_string = (char *)REALLOC( (kc_voidptr_t)malloced_nl_string, (kc_size_t)i+1 ); ptr = malloced_nl_string; } if (ptr != 0) { for (j = 0; j< i; j+=4) { *ptr++ = QUOTEDBACKSLASH; *ptr++ = '\n'; *ptr++ = QUOTEDBACKSLASH; *ptr++ = 'n'; } *ptr = '\0'; } return &(malloced_nl_string[strlen(malloced_nl_string)-i]); } #line 499 "../gutil.k" } #line 1509 "gutil.c" ID f_mkselvar #ifdef KC_USE_PROTOTYPES (char *prefix, int level) #else (prefix, level) char *prefix; int level; #endif #line 506 "../gutil.k" { char fixbuf[BUFSIZ]; char *dynbuf = 0; char *buf = 0; ID id; if (strlen(prefix) + MKSELVARMAXINTREPR + 1 > BUFSIZ) { dynbuf = (char*)MALLOC((kc_size_t) strlen(prefix) + MKSELVARMAXINTREPR + 1); buf = dynbuf; } else { buf = fixbuf; } (void)strcpy( buf, prefix ); (void)sprintf( &buf[strlen(prefix)], "%d", level ); id = Id( Str( mkcasestring( buf ))); if (dynbuf != 0) { FREE((kc_voidptr_t) dynbuf ); } return id; #line 527 "../gutil.k" } #line 1543 "gutil.c" ID f_mkselvar2 #ifdef KC_USE_PROTOTYPES (char *prefix, int level, int branch) #else (prefix, level, branch) char *prefix; int level; int branch; #endif #line 530 "../gutil.k" { 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 = (char*)MALLOC((kc_size_t) strlen(prefix) + constant_factor); buf = dynbuf; } else { buf = fixbuf; } (void)strcpy( buf, prefix ); (void)sprintf( &buf[strlen(prefix)], "%d_%d", level, branch ); id = Id( Str( mkcasestring( buf ))); if (dynbuf != 0) { FREE((kc_voidptr_t) dynbuf ); } return id; #line 553 "../gutil.k" } #line 1580 "gutil.c" char *f_mk_filename #ifdef KC_USE_PROTOTYPES (casestring a_casestring, char suffix) #else (a_casestring, suffix) casestring a_casestring; char suffix; #endif #line 566 "../gutil.k" { char *filename, *basename; int baselen; if ((basename = strrchr( a_casestring->name, '/' )) == 0) { basename = a_casestring->name; } if (*basename == '/') { basename++; } else if (*basename == '"') { basename++; } baselen = strlen(basename); filename = (char*)MALLOC((kc_size_t)baselen+3); (void)strcpy( filename, basename ); if (baselen > 0 && filename[baselen-1] == '"' ) { filename[baselen-1] = '\0'; baselen--; } if ( baselen > 1 && (filename[baselen-1] == 'k' && filename[baselen-2] == '.' )) { filename[baselen-1] = suffix; } else { filename[baselen] = '.'; filename[baselen+1] = suffix; filename[baselen+2] = '\0'; } return filename; #line 593 "../gutil.k" } #line 1620 "gutil.c" char *f_make_identifier_basename #ifdef KC_USE_PROTOTYPES (char *fn) #else (fn) char *fn; #endif #line 605 "../gutil.k" { int len, i; char *nn; len = strlen(fn); /*SUPPRESS 622*/ assert(len >2); nn = (char*)MALLOC((kc_size_t)(len-2+1)); (void)strncpy(nn, fn, len-2); nn[len-2] = '\0'; for (i=0; i< len-2; i++) { if (! isalnum(nn[i])) { nn[i] = '_'; } } return nn; #line 620 "../gutil.k" } #line 1647 "gutil.c" rewriterulesinfo f_rewriterulesinfoofalternativeinview #ifdef KC_USE_PROTOTYPES (alternative a_alternative, ID a_view) #else (a_alternative, a_view) alternative a_alternative; ID a_view; #endif #line 638 "../gutil.k" { global_filterview = a_view; return filter_rewriterulesinfo( a_alternative->rewriteinfo, filterrewriteruleinfoonview ); #line 641 "../gutil.k" } #line 1663 "gutil.c" rewriteviewsinfo f_rewriteviewsinfoofalternatives #ifdef KC_USE_PROTOTYPES (alternatives a_alternatives, viewnames a_views) #else (a_alternatives, a_views) alternatives a_alternatives; viewnames a_views; #endif #line 644 "../gutil.k" { rewriterulesinfo tmp_rewriterulesinfo = f_rewriterulesinfoofalternatives( a_alternatives ); rewriteviewsinfo tmp_rewriteviewsinfo = Nilrewriteviewsinfo(); { #line 647 "../gutil.k" viewnames kc_fe_selvar_1 = a_views ; #line 647 "../gutil.k" /*SUPPRESS 622*/ assert_viewnames(kc_fe_selvar_1, "foreach_list_expression"); #line 1683 "gutil.c" while( kc_fe_selvar_1->prod_sel == sel_Consviewnames ) { ID kc_selvar_0_1 = kc_fe_selvar_1->u.Consviewnames.ID_1; { #line 647 "../gutil.k" { #line 647 "../gutil.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 1695 "gutil.c" { #line 647 "../gutil.k" ID a_view = kc_selvar_0_1; #line 647 "../gutil.k" global_filterview = a_view; tmp_rewriteviewsinfo = Consrewriteviewsinfo( Rewriteviewinfo( a_view, filter_rewriterulesinfo( tmp_rewriterulesinfo, filterrewriteruleinfoonview )), tmp_rewriteviewsinfo ); #line 1704 "gutil.c" } } #line 1708 "gutil.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consviewnames.viewnames_1; #line 647 "../gutil.k" /*SUPPRESS 622*/ assert_viewnames(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 1715 "gutil.c" } } #line 651 "../gutil.k" return tmp_rewriteviewsinfo; #line 652 "../gutil.k" } #line 1723 "gutil.c" unparseviewsinfo f_unparseviewsinfoofalternatives #ifdef KC_USE_PROTOTYPES (alternatives a_alternatives, viewnames a_views) #else (a_alternatives, a_views) alternatives a_alternatives; viewnames a_views; #endif #line 655 "../gutil.k" { unparsedeclsinfo tmp_unparsedeclsinfo = f_unparsedeclsinfoofalternatives( a_alternatives ); unparseviewsinfo tmp_unparseviewsinfo = Nilunparseviewsinfo(); { #line 658 "../gutil.k" viewnames kc_fe_selvar_1 = a_views ; #line 658 "../gutil.k" /*SUPPRESS 622*/ assert_viewnames(kc_fe_selvar_1, "foreach_list_expression"); #line 1743 "gutil.c" while( kc_fe_selvar_1->prod_sel == sel_Consviewnames ) { ID kc_selvar_0_1 = kc_fe_selvar_1->u.Consviewnames.ID_1; { #line 658 "../gutil.k" { #line 658 "../gutil.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 1755 "gutil.c" { #line 658 "../gutil.k" ID a_view = kc_selvar_0_1; #line 658 "../gutil.k" global_filterview = a_view; tmp_unparseviewsinfo = Consunparseviewsinfo( Unparseviewinfo( a_view, filter_unparsedeclsinfo( tmp_unparsedeclsinfo, filterunparsedeclinfoonview )), tmp_unparseviewsinfo ); #line 1764 "gutil.c" } } #line 1768 "gutil.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consviewnames.viewnames_1; #line 658 "../gutil.k" /*SUPPRESS 622*/ assert_viewnames(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 1775 "gutil.c" } } #line 662 "../gutil.k" return tmp_unparseviewsinfo; #line 663 "../gutil.k" } #line 1783 "gutil.c" static boolean filterrewriteruleinfoonview #ifdef KC_USE_PROTOTYPES (rewriteruleinfo a_rewriteruleinfo) #else (a_rewriteruleinfo) rewriteruleinfo a_rewriteruleinfo; #endif #line 666 "../gutil.k" { return is_viewname_in_rewriteruleinfo( global_filterview, a_rewriteruleinfo ); #line 668 "../gutil.k" } #line 1797 "gutil.c" static boolean filterunparsedeclinfoonview #ifdef KC_USE_PROTOTYPES (unparsedeclinfo a_unparsedeclinfo) #else (a_unparsedeclinfo) unparsedeclinfo a_unparsedeclinfo; #endif #line 671 "../gutil.k" { return is_viewname_in_unparsedeclinfo( global_filterview, a_unparsedeclinfo ); #line 673 "../gutil.k" } #line 1811 "gutil.c" static boolean is_viewname_in_rewriteruleinfo #ifdef KC_USE_PROTOTYPES (ID a_view, rewriteruleinfo a_rewriteruleinfo) #else (a_view, a_rewriteruleinfo) ID a_view; rewriteruleinfo a_rewriteruleinfo; #endif #line 676 "../gutil.k" { { #line 677 "../gutil.k" rewriteruleinfo kc_selvar_0_1 = a_rewriteruleinfo ; #line 677 "../gutil.k" /*SUPPRESS 622*/ assert_rewriteruleinfo(kc_selvar_0_1, "with_expression (1)"); #line 1831 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_Rewriteruleinfo) && ( kc_selvar_0_1->u.Rewriteruleinfo.rewriteclause_1->prod_sel == sel_RewriteClause)) { #line 678 "../gutil.k" viewnames a_viewnames = kc_selvar_0_1->u.Rewriteruleinfo.rewriteclause_1->u.RewriteClause.viewnames_1; #line 678 "../gutil.k" return is_viewname_in_viewnames( a_view, a_viewnames ); #line 1839 "gutil.c" } else { kc_no_default_in_with( "is_viewname_in_rewriteruleinfo", __LINE__, __FILE__ ); return (boolean)0; } } #line 680 "../gutil.k" #line 680 "../gutil.k" } #line 1848 "gutil.c" static boolean is_viewname_in_unparsedeclinfo #ifdef KC_USE_PROTOTYPES (ID a_view, unparsedeclinfo a_unparsedeclinfo) #else (a_view, a_unparsedeclinfo) ID a_view; unparsedeclinfo a_unparsedeclinfo; #endif #line 683 "../gutil.k" { { #line 684 "../gutil.k" unparsedeclinfo kc_selvar_0_1 = a_unparsedeclinfo ; #line 684 "../gutil.k" /*SUPPRESS 622*/ assert_unparsedeclinfo(kc_selvar_0_1, "with_expression (1)"); #line 1868 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_Unparsedeclinfo) && ( kc_selvar_0_1->u.Unparsedeclinfo.unparseclause_1->prod_sel == sel_UnparseClause)) { #line 685 "../gutil.k" viewnames a_viewnames = kc_selvar_0_1->u.Unparsedeclinfo.unparseclause_1->u.UnparseClause.viewnames_1; #line 685 "../gutil.k" return is_viewname_in_viewnames( a_view, a_viewnames ); #line 1876 "gutil.c" } else { kc_no_default_in_with( "is_viewname_in_unparsedeclinfo", __LINE__, __FILE__ ); return (boolean)0; } } #line 687 "../gutil.k" #line 687 "../gutil.k" } #line 1885 "gutil.c" static boolean is_viewname_in_viewnames #ifdef KC_USE_PROTOTYPES (ID a_view, viewnames a_viewnames) #else (a_view, a_viewnames) ID a_view; viewnames a_viewnames; #endif #line 690 "../gutil.k" { { #line 691 "../gutil.k" viewnames kc_fe_selvar_1 = a_viewnames ; #line 691 "../gutil.k" /*SUPPRESS 622*/ assert_viewnames(kc_fe_selvar_1, "foreach_list_expression"); #line 1903 "gutil.c" while( kc_fe_selvar_1->prod_sel == sel_Consviewnames ) { ID kc_selvar_0_1 = kc_fe_selvar_1->u.Consviewnames.ID_1; { #line 691 "../gutil.k" { #line 691 "../gutil.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 1915 "gutil.c" { #line 691 "../gutil.k" ID a_viewname = kc_selvar_0_1; #line 691 "../gutil.k" if ( eq_ID( a_view, a_viewname ) ) { return True; } #line 1924 "gutil.c" } } #line 1928 "gutil.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consviewnames.viewnames_1; #line 691 "../gutil.k" /*SUPPRESS 622*/ assert_viewnames(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 1935 "gutil.c" } } #line 695 "../gutil.k" return False; #line 696 "../gutil.k" } #line 1943 "gutil.c" static rewriterulesinfo f_rewriterulesinfoofalternatives #ifdef KC_USE_PROTOTYPES (alternatives a_alternatives) #else (a_alternatives) alternatives a_alternatives; #endif #line 705 "../gutil.k" { rewriterulesinfo tmp = Nilrewriterulesinfo(); { #line 707 "../gutil.k" alternatives kc_fe_selvar_1 = a_alternatives ; #line 707 "../gutil.k" /*SUPPRESS 622*/ assert_alternatives(kc_fe_selvar_1, "foreach_list_expression"); #line 1961 "gutil.c" while( kc_fe_selvar_1->prod_sel == sel_Consalternatives ) { alternative kc_selvar_0_1 = kc_fe_selvar_1->u.Consalternatives.alternative_1; { #line 707 "../gutil.k" { #line 707 "../gutil.k" /*SUPPRESS 622*/ assert_alternative(kc_selvar_0_1, "with_expression (1)"); #line 1973 "gutil.c" { #line 707 "../gutil.k" alternative a_alternative = kc_selvar_0_1; #line 707 "../gutil.k" tmp = concat_rewriterulesinfo( a_alternative->rewriteinfo, tmp ); #line 1981 "gutil.c" } } #line 1985 "gutil.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consalternatives.alternatives_1; #line 707 "../gutil.k" /*SUPPRESS 622*/ assert_alternatives(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 1992 "gutil.c" } } #line 710 "../gutil.k" return tmp; #line 711 "../gutil.k" } #line 2000 "gutil.c" static unparsedeclsinfo f_unparsedeclsinfoofalternatives #ifdef KC_USE_PROTOTYPES (alternatives a_alternatives) #else (a_alternatives) alternatives a_alternatives; #endif #line 713 "../gutil.k" { unparsedeclsinfo tmp = Nilunparsedeclsinfo(); { #line 715 "../gutil.k" alternatives kc_fe_selvar_1 = a_alternatives ; #line 715 "../gutil.k" /*SUPPRESS 622*/ assert_alternatives(kc_fe_selvar_1, "foreach_list_expression"); #line 2018 "gutil.c" while( kc_fe_selvar_1->prod_sel == sel_Consalternatives ) { alternative kc_selvar_0_1 = kc_fe_selvar_1->u.Consalternatives.alternative_1; { #line 715 "../gutil.k" { #line 715 "../gutil.k" /*SUPPRESS 622*/ assert_alternative(kc_selvar_0_1, "with_expression (1)"); #line 2030 "gutil.c" { #line 715 "../gutil.k" alternative a_alternative = kc_selvar_0_1; #line 715 "../gutil.k" tmp = concat_unparsedeclsinfo( a_alternative->unparseinfo, tmp ); #line 2038 "gutil.c" } } #line 2042 "gutil.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consalternatives.alternatives_1; #line 715 "../gutil.k" /*SUPPRESS 622*/ assert_alternatives(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 2049 "gutil.c" } } #line 718 "../gutil.k" return tmp; #line 719 "../gutil.k" } #line 2057 "gutil.c" ID f_typeof #ifdef KC_USE_PROTOTYPES (path a_path) #else (a_path) path a_path; #endif #line 722 "../gutil.k" { if (eq_ID(a_path->id, f_emptyId())) { { #line 724 "../gutil.k" path kc_selvar_0_1 = a_path ; #line 724 "../gutil.k" /*SUPPRESS 622*/ assert_path(kc_selvar_0_1, "with_expression (1)"); #line 2077 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_Conspath)) { #line 728 "../gutil.k" int i = kc_selvar_0_1->u.Conspath.int_1; #line 728 "../gutil.k" path r_path = kc_selvar_0_1->u.Conspath.path_1; #line 728 "../gutil.k" return f_subphylumofoperator( r_path->op, Int( i ) ); #line 2087 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilpath)) { #line 725 "../gutil.k" return f_phylumofoperator( a_path->op ); #line 2094 "gutil.c" } else { kc_no_default_in_with( "f_typeof", __LINE__, __FILE__ ); return (ID)0; } } #line 731 "../gutil.k" } else { return a_path->id; } #line 734 "../gutil.k" } #line 2106 "gutil.c" ID f_operatorofpatternrepresentation #ifdef KC_USE_PROTOTYPES (patternrepresentation a_patternrepresentation) #else (a_patternrepresentation) patternrepresentation a_patternrepresentation; #endif #line 737 "../gutil.k" { { #line 738 "../gutil.k" patternrepresentation kc_selvar_0_1 = a_patternrepresentation ; #line 738 "../gutil.k" /*SUPPRESS 622*/ assert_patternrepresentation(kc_selvar_0_1, "with_expression (1)"); #line 2125 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_Conspatternrepresentation)) { #line 742 "../gutil.k" elem_patternrepresentation e = kc_selvar_0_1->u.Conspatternrepresentation.elem_patternrepresentation_1; #line 742 "../gutil.k" return f_operatorofelem_patternrepresentation( e ); #line 2133 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilpatternrepresentation)) { #line 739 "../gutil.k" return f_emptyId(); #line 2140 "gutil.c" } else { kc_no_default_in_with( "f_operatorofpatternrepresentation", __LINE__, __FILE__ ); return (ID)0; } } #line 744 "../gutil.k" #line 744 "../gutil.k" } #line 2149 "gutil.c" static ID f_operatorofelem_patternrepresentation #ifdef KC_USE_PROTOTYPES (elem_patternrepresentation a_elem_patternrepresentation) #else (a_elem_patternrepresentation) elem_patternrepresentation a_elem_patternrepresentation; #endif #line 747 "../gutil.k" { { #line 748 "../gutil.k" elem_patternrepresentation kc_selvar_0_1 = a_elem_patternrepresentation ; #line 748 "../gutil.k" /*SUPPRESS 622*/ assert_elem_patternrepresentation(kc_selvar_0_1, "with_expression (1)"); #line 2168 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_PRIntLiteral)) { #line 756 "../gutil.k" path p = kc_selvar_0_1->u.PRIntLiteral.path_1; #line 756 "../gutil.k" return f_operatorofpath( p ); #line 2174 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_PRStringLiteral)) { #line 755 "../gutil.k" path p = kc_selvar_0_1->u.PRStringLiteral.path_1; #line 755 "../gutil.k" return f_operatorofpath( p ); #line 2181 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_PRWildcard)) { #line 754 "../gutil.k" path p = kc_selvar_0_1->u.PRWildcard.path_1; #line 754 "../gutil.k" return f_operatorofpath( p ); #line 2188 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_PRDefault)) { #line 753 "../gutil.k" return f_emptyId(); #line 2193 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_PRNonLeafBinding)) { #line 752 "../gutil.k" path p = kc_selvar_0_1->u.PRNonLeafBinding.path_1; #line 752 "../gutil.k" return f_operatorofpath( p ); #line 2200 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_PROperPredicate)) { #line 751 "../gutil.k" path p = kc_selvar_0_1->u.PROperPredicate.path_1; #line 751 "../gutil.k" return f_operatorofpath( p ); #line 2207 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_PRVarPredicate)) { #line 750 "../gutil.k" paths ps = kc_selvar_0_1->u.PRVarPredicate.paths_1; #line 750 "../gutil.k" return f_operatorofpaths( ps ); #line 2214 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_PRBinding)) { #line 749 "../gutil.k" path p = kc_selvar_0_1->u.PRBinding.path_1; #line 749 "../gutil.k" return f_operatorofpath( p ); #line 2221 "gutil.c" } else { kc_no_default_in_with( "f_operatorofelem_patternrepresentation", __LINE__, __FILE__ ); return (ID)0; } } #line 757 "../gutil.k" #line 757 "../gutil.k" } #line 2230 "gutil.c" static ID f_operatorofpaths #ifdef KC_USE_PROTOTYPES (paths a_paths) #else (a_paths) paths a_paths; #endif #line 760 "../gutil.k" { { #line 761 "../gutil.k" paths kc_selvar_0_1 = a_paths ; #line 761 "../gutil.k" /*SUPPRESS 622*/ assert_paths(kc_selvar_0_1, "with_expression (1)"); #line 2249 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_Conspaths)) { #line 765 "../gutil.k" path p = kc_selvar_0_1->u.Conspaths.path_1; #line 765 "../gutil.k" return f_operatorofpath( p ); #line 2257 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilpaths)) { #line 762 "../gutil.k" return f_emptyId(); #line 2264 "gutil.c" } else { kc_no_default_in_with( "f_operatorofpaths", __LINE__, __FILE__ ); return (ID)0; } } #line 767 "../gutil.k" #line 767 "../gutil.k" } #line 2273 "gutil.c" static ID f_operatorofpath #ifdef KC_USE_PROTOTYPES (path a_path) #else (a_path) path a_path; #endif #line 770 "../gutil.k" { { #line 771 "../gutil.k" path kc_selvar_0_1 = a_path ; #line 771 "../gutil.k" /*SUPPRESS 622*/ assert_path(kc_selvar_0_1, "with_expression (1)"); #line 2292 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_Conspath)) { #line 775 "../gutil.k" path r_path = kc_selvar_0_1->u.Conspath.path_1; #line 775 "../gutil.k" return r_path->op; #line 2300 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilpath)) { #line 772 "../gutil.k" return a_path->op; #line 2307 "gutil.c" } else { kc_no_default_in_with( "f_operatorofpath", __LINE__, __FILE__ ); return (ID)0; } } #line 777 "../gutil.k" #line 777 "../gutil.k" } #line 2316 "gutil.c" ID f_typeofunpsubterm #ifdef KC_USE_PROTOTYPES (unpsubterm a_unpsubterm, ID a_operator) #else (a_unpsubterm, a_operator) unpsubterm a_unpsubterm; ID a_operator; #endif #line 780 "../gutil.k" { { #line 781 "../gutil.k" unpsubterm kc_selvar_0_1 = a_unpsubterm ; #line 781 "../gutil.k" /*SUPPRESS 622*/ assert_unpsubterm(kc_selvar_0_1, "with_expression (1)"); #line 2336 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_UnpCastedVariable)) { #line 786 "../gutil.k" ID a_cast = kc_selvar_0_1->u.UnpCastedVariable.ID_1; #line 786 "../gutil.k" return a_cast; #line 2342 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_UnpDollarvarAttr)) { #line 785 "../gutil.k" INT i = kc_selvar_0_1->u.UnpDollarvarAttr.INT_1; #line 785 "../gutil.k" unpattributes a_unpattributes = kc_selvar_0_1->u.UnpDollarvarAttr.unpattributes_1; #line 785 "../gutil.k" return f_check_unpattributes_in_phylum( a_unpattributes, f_subphylumofoperator( a_operator, i ) ); #line 2351 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_UnpSubAttr)) { #line 784 "../gutil.k" ID an_id = kc_selvar_0_1->u.UnpSubAttr.ID_1; #line 784 "../gutil.k" unpattributes an_unpattributes = kc_selvar_0_1->u.UnpSubAttr.unpattributes_1; #line 784 "../gutil.k" return f_check_unpattributes_in_phylum( an_unpattributes, f_phylumofpatternID( an_id ) ); #line 2360 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_UnpDollarvarTerm)) { #line 783 "../gutil.k" INT i = kc_selvar_0_1->u.UnpDollarvarTerm.INT_1; #line 783 "../gutil.k" return f_subphylumofoperator( a_operator, i ); #line 2367 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_UnpSubTerm)) { #line 782 "../gutil.k" ID a_id = kc_selvar_0_1->u.UnpSubTerm.ID_1; #line 782 "../gutil.k" return f_phylumofpatternID( a_id ); #line 2374 "gutil.c" } else { kc_no_default_in_with( "f_typeofunpsubterm", __LINE__, __FILE__ ); return (ID)0; } } #line 787 "../gutil.k" #line 787 "../gutil.k" } #line 2383 "gutil.c" boolean f_outmost_nl_preds_in_rewriterulesinfo #ifdef KC_USE_PROTOTYPES (rewriterulesinfo ri) #else (ri) rewriterulesinfo ri; #endif #line 793 "../gutil.k" { { #line 794 "../gutil.k" rewriterulesinfo kc_selvar_0_1 = ri ; #line 794 "../gutil.k" /*SUPPRESS 622*/ assert_rewriterulesinfo(kc_selvar_0_1, "with_expression (1)"); #line 2402 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_Consrewriterulesinfo) && ( kc_selvar_0_1->u.Consrewriterulesinfo.rewriteruleinfo_1->prod_sel == sel_Rewriteruleinfo)) { #line 796 "../gutil.k" patternrepresentation preds = kc_selvar_0_1->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.patternrepresentation_1; #line 796 "../gutil.k" rewriterulesinfo r_ri = kc_selvar_0_1->u.Consrewriterulesinfo.rewriterulesinfo_1; #line 796 "../gutil.k" return (boolean) (f_outmost_nl_preds_in_patternrepresentation( preds ) || f_outmost_nl_preds_in_rewriterulesinfo( r_ri )); #line 2413 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilrewriterulesinfo)) { #line 795 "../gutil.k" return False; #line 2418 "gutil.c" } else { kc_no_default_in_with( "f_outmost_nl_preds_in_rewriterulesinfo", __LINE__, __FILE__ ); return (boolean)0; } } #line 799 "../gutil.k" #line 799 "../gutil.k" } #line 2427 "gutil.c" static boolean f_outmost_nl_preds_in_patternrepresentation #ifdef KC_USE_PROTOTYPES (patternrepresentation p) #else (p) patternrepresentation p; #endif #line 802 "../gutil.k" { { #line 803 "../gutil.k" patternrepresentation kc_selvar_0_1 = p ; #line 803 "../gutil.k" /*SUPPRESS 622*/ assert_patternrepresentation(kc_selvar_0_1, "with_expression (1)"); #line 2446 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_Conspatternrepresentation)) { #line 805 "../gutil.k" elem_patternrepresentation a_p = kc_selvar_0_1->u.Conspatternrepresentation.elem_patternrepresentation_1; #line 805 "../gutil.k" patternrepresentation r_p = kc_selvar_0_1->u.Conspatternrepresentation.patternrepresentation_1; #line 805 "../gutil.k" return (boolean) (f_outmost_nl_preds_in_elem_patternrepresentation( a_p ) || f_outmost_nl_preds_in_patternrepresentation( r_p )); #line 2457 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilpatternrepresentation)) { #line 804 "../gutil.k" return False; #line 2462 "gutil.c" } else { kc_no_default_in_with( "f_outmost_nl_preds_in_patternrepresentation", __LINE__, __FILE__ ); return (boolean)0; } } #line 808 "../gutil.k" #line 808 "../gutil.k" } #line 2471 "gutil.c" static boolean f_outmost_nl_preds_in_elem_patternrepresentation #ifdef KC_USE_PROTOTYPES (elem_patternrepresentation e_p) #else (e_p) elem_patternrepresentation e_p; #endif #line 811 "../gutil.k" { { #line 812 "../gutil.k" elem_patternrepresentation kc_selvar_0_1 = e_p ; #line 812 "../gutil.k" /*SUPPRESS 622*/ assert_elem_patternrepresentation(kc_selvar_0_1, "with_expression (1)"); #line 2490 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_PRIntLiteral)) { #line 822 "../gutil.k" return False; #line 2494 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_PRStringLiteral)) { #line 821 "../gutil.k" return False; #line 2499 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_PRWildcard)) { #line 820 "../gutil.k" return False; #line 2504 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_PRDefault)) { #line 819 "../gutil.k" return False; #line 2509 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_PRNonLeafBinding)) { #line 818 "../gutil.k" return False; #line 2514 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_PROperPredicate)) { #line 817 "../gutil.k" return False; #line 2519 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_PRVarPredicate)) { #line 814 "../gutil.k" paths a_p = kc_selvar_0_1->u.PRVarPredicate.paths_1; #line 814 "../gutil.k" return f_outmost_nl_preds_in_paths( a_p ); #line 2528 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_PRBinding)) { #line 813 "../gutil.k" return False; #line 2533 "gutil.c" } else { kc_no_default_in_with( "f_outmost_nl_preds_in_elem_patternrepresentation", __LINE__, __FILE__ ); return (boolean)0; } } #line 823 "../gutil.k" #line 823 "../gutil.k" } #line 2542 "gutil.c" static boolean f_outmost_nl_preds_in_paths #ifdef KC_USE_PROTOTYPES (paths p) #else (p) paths p; #endif #line 826 "../gutil.k" { { #line 827 "../gutil.k" paths kc_selvar_0_1 = p ; #line 827 "../gutil.k" /*SUPPRESS 622*/ assert_paths(kc_selvar_0_1, "with_expression (1)"); #line 2561 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_Conspaths) && ( kc_selvar_0_1->u.Conspaths.path_1->prod_sel == sel_Conspath)) { #line 830 "../gutil.k" paths r_p = kc_selvar_0_1->u.Conspaths.paths_1; #line 830 "../gutil.k" return f_outmost_nl_preds_in_paths( r_p ); #line 2569 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_Conspaths) && ( kc_selvar_0_1->u.Conspaths.path_1->prod_sel == sel_Nilpath)) { #line 829 "../gutil.k" return True; #line 2574 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilpaths)) { #line 828 "../gutil.k" return False; #line 2579 "gutil.c" } else { kc_no_default_in_with( "f_outmost_nl_preds_in_paths", __LINE__, __FILE__ ); return (boolean)0; } } #line 832 "../gutil.k" #line 832 "../gutil.k" } #line 2588 "gutil.c" boolean f_is_known_ptr_type #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 851 "../gutil.k" { static phylumnames known = 0; if (! known ) { known = Nilphylumnames(); known = Consphylumnames( Id( Str( mkcasestring( "kc_voidptr_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_malloc_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_voidfnptr_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_realloc_arg_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_size_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "size_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "unsigned" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_memset_size_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_memory_blocksinfo_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_enum_phyla" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_enum_operators" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_enum_phyla_list" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_size_t_list" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "KC_UNIQ_INFO" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_hashnode_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_tp_boolean" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "boolean" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_hastable_storage_mode_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_hashtable_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_private_malloc_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_Align" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_qsort_firstarg_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "KC_IO_STATUS" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "view" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "uview" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "rview" ))), known ); } { #line 883 "../gutil.k" phylumnames kc_fe_selvar_1 = known ; #line 883 "../gutil.k" /*SUPPRESS 622*/ assert_phylumnames(kc_fe_selvar_1, "foreach_list_expression"); #line 2636 "gutil.c" while( kc_fe_selvar_1->prod_sel == sel_Consphylumnames ) { ID kc_selvar_0_1 = kc_fe_selvar_1->u.Consphylumnames.ID_1; { #line 883 "../gutil.k" { #line 883 "../gutil.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 2648 "gutil.c" { #line 883 "../gutil.k" ID pn = kc_selvar_0_1; #line 883 "../gutil.k" if ( eq_ID( pn, id )) { return True; } #line 2657 "gutil.c" } } #line 2661 "gutil.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consphylumnames.phylumnames_1; #line 883 "../gutil.k" /*SUPPRESS 622*/ assert_phylumnames(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 2668 "gutil.c" } } #line 887 "../gutil.k" return False; #line 888 "../gutil.k" } #line 2676 "gutil.c" withcasesinfo my_rewrite_withcasesinfo #ifdef KC_USE_PROTOTYPES (withcasesinfo a_withcasesinfo) #else (a_withcasesinfo) withcasesinfo a_withcasesinfo; #endif #line 912 "../gutil.k" {{ #line 911 "../gutil.k" withcasesinfo kc_selvar_0_1 = a_withcasesinfo; #line 911 "../gutil.k" /*SUPPRESS 622*/ assert_withcasesinfo(kc_selvar_0_1, "with_expression (1)"); #line 2692 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_Conswithcasesinfo) && ( kc_selvar_0_1->u.Conswithcasesinfo.withcaseinfo_1->prod_sel == sel_Withcaseinfo)) { #line 914 "../gutil.k" patternrepresentation p = kc_selvar_0_1->u.Conswithcasesinfo.withcaseinfo_1->u.Withcaseinfo.patternrepresentation_1; #line 914 "../gutil.k" patternrepresentation b = kc_selvar_0_1->u.Conswithcasesinfo.withcaseinfo_1->u.Withcaseinfo.patternrepresentation_2; #line 914 "../gutil.k" Ctext ct = kc_selvar_0_1->u.Conswithcasesinfo.withcaseinfo_1->u.Withcaseinfo.Ctext_1; #line 914 "../gutil.k" withcasesinfo r = kc_selvar_0_1->u.Conswithcasesinfo.withcasesinfo_1; #line 914 "../gutil.k" return Conswithcasesinfo( Withcaseinfo( rewrite_patternrepresentation(p, base_rview), b, ct ), my_rewrite_withcasesinfo( r ) ); #line 2709 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilwithcasesinfo)) { #line 913 "../gutil.k" return kc_selvar_0_1; #line 2714 "gutil.c" } else { kc_no_default_in_with( "my_rewrite_withcasesinfo", __LINE__, __FILE__ ); return (withcasesinfo)0; } } #line 920 "../gutil.k" } #line 2722 "gutil.c" int pos_of_sole_dollar_or_pattern_in_patternchain #ifdef KC_USE_PROTOTYPES (patternchain a_patternchain) #else (a_patternchain) patternchain a_patternchain; #endif #line 938 "../gutil.k" { return t_pos_of_sole_dollar_or_pattern_in_patternchain(a_patternchain, -2, 1); #line 941 "../gutil.k" } #line 2737 "gutil.c" int t_pos_of_sole_dollar_or_pattern_in_patternchain #ifdef KC_USE_PROTOTYPES (patternchain a_patternchain, int tmp_result, int pos) #else (a_patternchain, tmp_result, pos) patternchain a_patternchain; int tmp_result; int pos; #endif #line 944 "../gutil.k" { if (tmp_result == -1) { return tmp_result; } { #line 948 "../gutil.k" patternchain kc_selvar_0_1 = a_patternchain ; #line 948 "../gutil.k" /*SUPPRESS 622*/ assert_patternchain(kc_selvar_0_1, "with_expression (1)"); #line 2761 "gutil.c" if (( kc_selvar_0_1->prod_sel == sel_Nilpatternchain)) { #line 986 "../gutil.k" return tmp_result; #line 2767 "gutil.c" } else if (( kc_selvar_0_1->prod_sel == sel_Conspatternchain)) { #line 949 "../gutil.k" patternchainitem h = kc_selvar_0_1->u.Conspatternchain.patternchainitem_1; #line 949 "../gutil.k" patternchain t = kc_selvar_0_1->u.Conspatternchain.patternchain_1; #line 949 "../gutil.k" tmp_result = t_pos_of_sole_dollar_or_pattern_in_patternchain( t, tmp_result, pos+1 ); if (tmp_result == -1) { return tmp_result; } { #line 954 "../gutil.k" patternchainitem kc_selvar_1_1 = h ; #line 954 "../gutil.k" /*SUPPRESS 622*/ assert_patternchainitem(kc_selvar_1_1, "with_expression (1)"); #line 2789 "gutil.c" if (( kc_selvar_1_1->prod_sel == sel_PatternchainitemDollarid)) { #line 980 "../gutil.k" if (tmp_result >= 0) { return -1; } else { return pos; } #line 2798 "gutil.c" } else if (( kc_selvar_1_1->prod_sel == sel_PatternchainitemGroup)) { #line 977 "../gutil.k" return -1; #line 2805 "gutil.c" } else if (( kc_selvar_1_1->prod_sel == sel_PatternchainitemOutmost)) { #line 955 "../gutil.k" outmostpattern p = kc_selvar_1_1->u.PatternchainitemOutmost.outmostpattern_1; #line 955 "../gutil.k" { #line 956 "../gutil.k" outmostpattern kc_selvar_2_1 = p ; #line 956 "../gutil.k" /*SUPPRESS 622*/ assert_outmostpattern(kc_selvar_2_1, "with_expression (1)"); #line 2821 "gutil.c" if (( kc_selvar_2_1->prod_sel == sel_OPOperatorWildcard)) { #line 957 "../gutil.k" ID id = kc_selvar_2_1->u.OPOperatorWildcard.ID_1; #line 957 "../gutil.k" { #line 958 "../gutil.k" ID kc_selvar_3_1 = id ; #line 958 "../gutil.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_3_1, "with_expression (1)"); #line 2836 "gutil.c" if (( kc_selvar_3_1->prod_sel == sel_Id)) { #line 959 "../gutil.k" uniqID uid = kc_selvar_3_1->u.Id.uniqID_1; #line 959 "../gutil.k" { #line 960 "../gutil.k" IDtype kc_selvar_4_1 = uid->type ; #line 960 "../gutil.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_4_1, "with_expression (1)"); #line 2851 "gutil.c" if (( kc_selvar_4_1->prod_sel == sel_ITUnknown)) { #line 962 "../gutil.k" return tmp_result; #line 2857 "gutil.c" } else if (( kc_selvar_4_1->prod_sel == sel_ITPatternVariable)) { #line 962 "../gutil.k" return tmp_result; #line 2864 "gutil.c" } else { #line 965 "../gutil.k" if (tmp_result >= 0) { return -1; } else { return pos; } #line 2874 "gutil.c" } } #line 970 "../gutil.k" #line 2879 "gutil.c" } else { kc_no_default_in_with( "t_pos_of_sole_dollar_or_pattern_in_patternchain", __LINE__, __FILE__ ); return (int)0; } } #line 970 "../gutil.k" #line 2886 "gutil.c" } else { #line 971 "../gutil.k" if (tmp_result >= 0) { return -1; } else { return pos; } #line 2896 "gutil.c" } } #line 976 "../gutil.k" #line 2901 "gutil.c" } else { kc_no_default_in_with( "t_pos_of_sole_dollar_or_pattern_in_patternchain", __LINE__, __FILE__ ); return (int)0; } } #line 985 "../gutil.k" #line 2908 "gutil.c" } else { kc_no_default_in_with( "t_pos_of_sole_dollar_or_pattern_in_patternchain", __LINE__, __FILE__ ); return (int)0; } } #line 990 "../gutil.k" #line 990 "../gutil.k" } #line 2917 "gutil.c" kimwitu-4.6.1.orig/src/gutil.h0100644000176100001440000000570107076113232015543 0ustar debacleusers/* translation of file "../gutil.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #ifndef KC_FUNCTIONS_gutil_HEADER #define KC_FUNCTIONS_gutil_HEADER #define KIMW_FUNCTIONS_gutil_HEADER /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include "k.h" /* in case a user forgets */ /* included stuff */ #line 2 "../gutil.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 27 "gutil.h" /* end included stuff */ boolean f_something_to_initialize KC__P((Ccode_option cco)); boolean f_NilCtexts KC__P((Ctexts c)); boolean f_no_attrs_in_Ccode_option KC__P((Ccode_option cco)); boolean f_all_alternatives_nullary KC__P((alternatives a)); ID f_phylumofwithcasesinfo KC__P((withcasesinfo wcso)); ID f_phylumofpatternrepresentation KC__P((patternrepresentation a_patrep)); Cvariabledeclarations sort_extend_Cvariabledeclarations KC__P((Cvariabledeclarations C_vardecls, fnarguments fn_args)); Cvariabledeclarations t_sort_extend_Cvariabledeclarations KC__P((Cvariabledeclarations C_vardecls, fnarguments fn_args, Cvariabledeclarations temp)); ac_parameter_type_list sort_extend_parameter_type_list KC__P((ac_declaration_list C_vardecls, ac_declarator decl)); ac_parameter_list t_sort_extend_parameter_list KC__P((ac_declaration_list C_vardecls, ac_identifier_list fn_args, ac_parameter_list temp)); void unparse_charptr KC__P((char *s, void (*printer_fn)(char *dummy1, uview dummy2), view v)); char *f_mkstars KC__P((int i)); char *f_mknls KC__P((int i)); char *f_mkquotednls KC__P((int ii)); ID f_mkselvar KC__P((char *prefix, int level)); ID f_mkselvar2 KC__P((char *prefix, int level, int branch)); char *f_mk_filename KC__P((casestring a_casestring, char suffix)); char *f_make_identifier_basename KC__P((char *fn)); rewriterulesinfo f_rewriterulesinfoofalternativeinview KC__P((alternative a_alternative, ID a_view)); rewriteviewsinfo f_rewriteviewsinfoofalternatives KC__P((alternatives a_alternatives, viewnames a_views)); unparseviewsinfo f_unparseviewsinfoofalternatives KC__P((alternatives a_alternatives, viewnames a_views)); ID f_typeof KC__P((path a_path)); ID f_operatorofpatternrepresentation KC__P((patternrepresentation a_patternrepresentation)); ID f_typeofunpsubterm KC__P((unpsubterm a_unpsubterm, ID a_operator)); boolean f_outmost_nl_preds_in_rewriterulesinfo KC__P((rewriterulesinfo ri)); boolean f_is_known_ptr_type KC__P((ID id)); withcasesinfo my_rewrite_withcasesinfo KC__P((withcasesinfo a_withcasesinfo)); int pos_of_sole_dollar_or_pattern_in_patternchain KC__P((patternchain a_patternchain)); int t_pos_of_sole_dollar_or_pattern_in_patternchain KC__P((patternchain a_patternchain, int tmp_result, int pos)); #endif /* ! KC_FUNCTIONS_gutil_HEADER */ kimwitu-4.6.1.orig/src/gutil.k0100644000176100001440000010075407076113221015550 0ustar debacleusers%{ CODE HEADER /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ %} /* * gutil.k */ %{ #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char gutil_kAccesSid[] = "@(#)$Id: gutil.k,v 1.29 1998/01/29 10:57:34 belinfan Rel $"; #endif %} /***************************************************************************/ %{ KC_UNPARSE #include "gutil.h" %} %{ KC_UNPARSE static int g_no_of_phyla; static int g_no_of_operators; static int gl_no_of_args; #define PHYLUMNUMBEROFFSET 0 /* should be >= 0; == the index of the last dummy element */ #define OPERATORNUMBEROFFSET 0 /* should be >= 0; == the index of the last dummy element */ %} %{ KC_UNPARSE static selvarstack cl_selvarstack = 0; /* initialised by the view_init_stacks view in util.k */ #define cf_pushselvar(o) do { cl_selvarstack = Consselvarstack( o, cl_selvarstack ); \ g_ctext_level++; \ } while(kc_zero_constant) #define cf_topselvar() (cl_selvarstack->u.Consselvarstack.ID_1) #define cf_popselvar() do { selvarstack tmp_cl_selvarstack = cl_selvarstack; \ cl_selvarstack = cl_selvarstack->u.Consselvarstack.selvarstack_1; \ free_selvarstack( tmp_cl_selvarstack, False ); \ g_ctext_level--; \ } while(kc_zero_constant) static selvarstack cl_dollarvarstack = 0; /* initialised by the view_init_stacks view in util.k */ #define cf_pushdollarvar(o) do { cl_dollarvarstack = Consselvarstack( o, cl_dollarvarstack ); \ } while(kc_zero_constant) #define cf_topdollarvar() (cl_dollarvarstack->u.Consselvarstack.ID_1) #define cf_popdollarvar() do { selvarstack tmp_cl_dollarvarstack = cl_dollarvarstack; \ cl_dollarvarstack = cl_dollarvarstack->u.Consselvarstack.selvarstack_1; \ free_selvarstack( tmp_cl_dollarvarstack, False ); \ } while(kc_zero_constant) static selvarstack cl_dollarvarextstack = 0; /* initialised by the view_init_stacks view in util.k */ #define cf_pushdollarvarext(o) do { cl_dollarvarextstack = Consselvarstack( o, cl_dollarvarextstack ); \ } while(kc_zero_constant) #define cf_topdollarvarext() (cl_dollarvarextstack->u.Consselvarstack.ID_1) #define cf_popdollarvarext() do { selvarstack tmp_cl_dollarvarextstack = cl_dollarvarextstack; \ cl_dollarvarextstack = cl_dollarvarextstack->u.Consselvarstack.selvarstack_1; \ free_selvarstack( tmp_cl_dollarvarextstack, False ); \ } while(kc_zero_constant) static ID gl_phylum = 0; static phylumdeclaration gl_phydecl = 0; static ID gl_view = 0; static ID gl_operator = 0; static Ccode_option gl_cco = 0; static storageoption gl_storageoption = 0; static int gl_atomicity; /*used as boolean*/ static boolean gl_no_attributes; static arguments gl_args = 0; static rewriterulesinfo gl_rewrite_rewriteinfo = 0; static char *g_emptystring = ""; static int g_ctext_level = 0; static int g_withexpr_nr = 0; static int g_fe_selvar_nr = 0; static char *gl_return_type = ""; static ID gl_return_ID = 0; static char *gl_star_string = ""; static char *gl_function = ""; static ID gl_sto = 0; static int gl_hashtablenr_next = 0; static int gl_hashtablenr_prev = 0; static int gl_nr_of_hashtables = 0; static boolean gl_rewrite_goto_used = False; static boolean gl_unparse_goto_used = False; static boolean gl_outmost_nonleaf_predicates = False; static ID gl_type = 0; static int gl_j = 0; static boolean gl_print_line_directive = False; %} %{ /* string(s) stuff */ #include #if (! defined(KC_STDC) ) && defined(sun) extern char *sprintf(); #endif %} /***************************************************************************/ boolean f_something_to_initialize( cco ) Ccode_option cco; { with( cco ) { CcodeOption( attr, ct ): { return (boolean)(f_attributes_to_initialize( attr ) || (! f_NilCtexts( ct ))); } } } boolean f_NilCtexts( c ) Ctexts c; { with( c ) { NilCtexts(): { return True; } ConsCtexts( *, * ): { return False; } } } static boolean f_attributes_to_initialize( attr ) attributes attr; { foreach( a; attributes attr ) { with( a ) { Attribute( *, *, Noattribute_initialisation() ): {/*EMPTY*/} Attribute( *, *, Yesattribute_initialisation( * )): { return True; } } } return False; } boolean f_no_attrs_in_Ccode_option( cco ) Ccode_option cco; { with( cco ) { CcodeOption( Nilattributes(), * ): { return True; } CcodeOption( Consattributes( *, *), *): { return False; } } } /***************************************************************************/ /* * we use it in the unparse stuff */ %{ KC_UNPARSE_HEADER #include "gen.h" %} boolean f_all_alternatives_nullary( a ) alternatives a; { foreach( alt; alternatives a ) { with( alt ) { Alternative( *, Consarguments( *, * )): { return False; } Alternative( *, Nilarguments() ): {/*EMPTY*/} } } return True; } /***************************************************************************/ %{ #include "util.h" %} ID f_phylumofwithcasesinfo( wcso ) withcasesinfo wcso; { ID id; with( wcso ) { Nilwithcasesinfo(): { v_report(NonFatal( NoFileLine(), Problem1S( "Error: can not find type of with expression" ))); return Id( Str( mkcasestring( "KC_ERRORunknownTYPE" ))); } Conswithcasesinfo( wco, r_wcso ): { with( wco ) { Withcaseinfo( patrep, *, * ): { if ( eq_ID(id = f_phylumofpatternrepresentation( patrep ), f_emptyId() )) { return f_phylumofwithcasesinfo( r_wcso ); } else { return id; } } } } } } ID f_phylumofpatternrepresentation( a_patrep ) patternrepresentation a_patrep; { with( a_patrep ) { Nilpatternrepresentation(): { return f_emptyId(); } Conspatternrepresentation( a_patrep_elem, r_patrep ): { with( a_patrep_elem ) { PRBinding( *, * ): { return f_phylumofpatternrepresentation( r_patrep ); } PRNonLeafBinding( *, *, * ): { return f_phylumofpatternrepresentation( r_patrep ); } PRVarPredicate( *, *, * ): { return f_phylumofpatternrepresentation( r_patrep ); } PROperPredicate( *, id ): { return f_phylumofoperator( id ); } PRDefault(): { return f_phylumofpatternrepresentation( r_patrep ); } PRWildcard( * ): { return f_phylumofpatternrepresentation( r_patrep ); } PRStringLiteral( *, * ): { return f_phylumofpatternrepresentation( r_patrep ); } PRIntLiteral( *, * ): { return f_phylumofpatternrepresentation( r_patrep ); } } } } } /***************************************************************************/ Cvariabledeclarations sort_extend_Cvariabledeclarations( C_vardecls, fn_args ) Cvariabledeclarations C_vardecls; fnarguments fn_args; { return t_sort_extend_Cvariabledeclarations( C_vardecls, fn_args, NilCvariabledeclarations() ); } Cvariabledeclarations t_sort_extend_Cvariabledeclarations( C_vardecls, fn_args, temp ) Cvariabledeclarations C_vardecls; fnarguments fn_args; Cvariabledeclarations temp; { with( fn_args ){ Nilfnarguments() : { return temp; } Consfnarguments( a_fnarg, r_fnargs ): { temp = t_sort_extend_Cvariabledeclarations( C_vardecls, r_fnargs, temp ); return ConsCvariabledeclarations( lookup_and_createCvariabledeclaration( a_fnarg, C_vardecls ), temp ); } } } static Cvariabledeclaration lookup_and_createCvariabledeclaration( a_fnarg, C_vardecls ) ID a_fnarg; Cvariabledeclarations C_vardecls; { Cvariabledeclaration result = 0; int number_of_results = 0; foreach( vard ; Cvariabledeclarations C_vardecls ) { with( vard ) { CVariabledeclaration( type, cvars ): { foreach( cvar; Cvariables cvars ) { with( cvar ) { CVPointer( *, name ): { if (eq_ID( name, a_fnarg ) ) { result = CVariabledeclaration( type, ConsCvariables( cvar , NilCvariables() )); number_of_results++; } } CVFunction( *, *, name ): { if (eq_ID( name, a_fnarg ) ) { result = CVariabledeclaration( type, ConsCvariables( cvar , NilCvariables() )); number_of_results++; } } } } } Fnargfpdecl( type, cvars ): { foreach( cvar; Cvariables cvars ) { with( cvar ) { CVPointer( *, name ): { if (eq_ID( name, a_fnarg ) ) { result = CVariabledeclaration( type, ConsCvariables( cvar , NilCvariables() )); number_of_results++; } } CVFunction( *, *, name ): { if (eq_ID( name, a_fnarg ) ) { result = CVariabledeclaration( type, ConsCvariables( cvar , NilCvariables() )); number_of_results++; } } } } } } } if (number_of_results == 1) { return result; } else { /* error */ 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 { /* (number_of_results < 1) */ v_report(Warning( FileLine( a_fnarg->file, a_fnarg->line ), Problem1S1ID( "can not find type of function argument:", a_fnarg ))); } /* should be handled more gracefully */ return CVariabledeclaration( Id( Str( mkcasestring( "KC_ERRORunknownTYPE" ))), ConsCvariables( CVPointer( 0, a_fnarg ), NilCvariables() )); } } /***************************************************************************/ %{ #include "parse.h" %} ac_parameter_type_list sort_extend_parameter_type_list( C_vardecls, $decl ) ac_declaration_list C_vardecls; ac_declarator decl; { AcDeclarator( *, add ): { with( add ) { AcDirectDeclId( * ), AcDirectDeclPack( * ), AcDirectDeclArray( *, * ): { return AcParList( Nilac_parameter_list() ); } AcDirectDeclProto( *, fn_proto ): { return fn_proto; } AcDirectDeclKandR( *, Consac_identifier_list( Id( Str( "void" )), Nilac_identifier_list() ) ): { /* trick to get an empty parameter list but check the decls */ check_ac_parameter_declaration( C_vardecls, Nilac_identifier_list() ); return AcParList( t_sort_extend_parameter_list( C_vardecls, Nilac_identifier_list(), Nilac_parameter_list() ) ); } AcDirectDeclKandR( *, fn_args ): { check_ac_parameter_declaration( C_vardecls, fn_args ); return AcParList( t_sort_extend_parameter_list( C_vardecls, fn_args, Nilac_parameter_list() ) ); } } } } ac_parameter_list t_sort_extend_parameter_list( C_vardecls, fn_args, temp ) ac_declaration_list C_vardecls; ac_identifier_list fn_args; ac_parameter_list temp; { with( fn_args ){ Nilac_identifier_list() : { return temp; } Consac_identifier_list( a_fnarg, r_fnargs ): { 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 ); } } } static ac_parameter_declaration lookup_and_create_ac_parameter_declaration( a_fnarg, C_vardecls ) ID a_fnarg; ac_declaration_list C_vardecls; { ac_parameter_declaration result = 0; int number_of_results = 0; foreach( $vard ; ac_declaration_list C_vardecls ) { AcDeclaration( type, cvars ): { foreach( $cvar; ac_init_declarator_list cvars ) { AcInitDecl( decl ): { ID name = f_ID_of_declarator( decl ); if (eq_ID( name, a_fnarg ) ) { result = AcParDeclDecl( type, decl ); number_of_results++; } } } } } if (number_of_results == 1) { return result; } else { /* error */ 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 { /* (number_of_results < 1) */ v_report(Warning( FileLine( a_fnarg->file, a_fnarg->line ), Problem1S1ID( "can not find type of function argument:", a_fnarg ))); } /* should be handled more gracefully */ return AcParDeclDecl( Consac_declaration_specifiers( AcDeclSpecTypeSpec( AcTypeSpec( Id( Str( mkcasestring( "KC_ERRORunknownTYPE" ))))), Nilac_declaration_specifiers()), AcDeclarator( Nopointer(), AcDirectDeclId( a_fnarg ))); } } static void check_ac_parameter_declaration( C_vardecls, fn_args ) ac_declaration_list C_vardecls; ac_identifier_list fn_args; { foreach( $vard ; ac_declaration_list C_vardecls ) { AcDeclaration( *, cvars ): { foreach( $cvar; ac_init_declarator_list cvars ) { AcInitDecl( decl ): { ID name = f_ID_of_declarator( decl ); int number_of_results = 0; foreach( a_fnarg; ac_identifier_list fn_args) { if (eq_ID( name, a_fnarg ) ) { number_of_results++; } } if (number_of_results > 1) { v_report(Warning( FileLine( name->file, name->line ), Problem1S1ID( "more than one function argument for type definition:", name ))); } else if (number_of_results < 1) { v_report(Warning( FileLine( name->file, name->line ), Problem1S1ID( "can not find declared function argument:", name ))); } } } } } } /***************************************************************************/ %{ #include "unpk.h" #ifndef MALLOC # define MALLOC emalloc #endif #ifndef REALLOC /* * # ifdef lint * # define REALLOC(kc_p,kc_s) (kc_p,kc_s,0) * # else */ # define REALLOC erealloc /* * # endif */ #endif #ifndef FREE # define FREE efree #endif #ifndef efree /* * # ifdef lint * # define efree(kc_p) * # else */ # define efree(kc_p) free((kc_malloc_t)(kc_p)) /* * # endif */ #endif %} void unparse_charptr( s, printer_fn, v ) char *s; void (*printer_fn)(char *dummy1, uview dummy2); view v; { printer_fn( s, v ); } char *f_mkstars( i ) int i; { static char star_string[] = "**************"; static char *malloced_star_string = 0; static char empty_string[] = ""; if (i <= 0 ) { return empty_string; } else if (i <= (int)strlen(star_string)) { return &(star_string[strlen(star_string)-i]); } else { char *ptr = 0; int j; if (malloced_star_string == 0) { malloced_star_string = (char *)MALLOC((kc_size_t) i+1 ); ptr = malloced_star_string; } else if ( i > (int)strlen(malloced_star_string) ) { malloced_star_string = (char *)REALLOC((kc_voidptr_t)malloced_star_string, (kc_size_t)i+1 ); ptr = malloced_star_string; } if (ptr != 0) { for (j = 0; j< i; j++) { *ptr++ = '*'; } *ptr = '\0'; } return &(malloced_star_string[strlen(malloced_star_string)-i]); } } char *f_mknls( i ) int i; { static char empty_string[] = ""; static char nl_string[] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"; static char *malloced_nl_string = 0; if (i <= 0 ) { return empty_string; } else if (i <= (int)strlen(nl_string)) { return &(nl_string[strlen(nl_string)-i]); } else { char *ptr = 0; int j; if (malloced_nl_string == 0) { malloced_nl_string = (char *)MALLOC( (kc_size_t)i+1 ); ptr = malloced_nl_string; } else if ( i > (int)strlen(malloced_nl_string) ) { malloced_nl_string = (char *)REALLOC( (kc_voidptr_t)malloced_nl_string, (kc_size_t)i+1 ); ptr = malloced_nl_string; } if (ptr != 0) { for (j = 0; j< i; j++) { *ptr++ = '\n'; } *ptr = '\0'; } return &(malloced_nl_string[strlen(malloced_nl_string)-i]); } } /* * HACK to get rid of backslash problems */ %{ #define QUOTEDBACKSLASH '\\' %} char *f_mkquotednls( ii ) int ii; { static char empty_string[] = ""; static char nl_string[] = "\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n"; static char *malloced_nl_string = 0; int i = 4*ii; if (i <= 0 ) { return empty_string; } else if (i <= (int)strlen(nl_string)) { return &(nl_string[strlen(nl_string)-i]); } else { char *ptr = 0; int j; if (malloced_nl_string == 0) { malloced_nl_string = (char *)MALLOC( (kc_size_t)i+1 ); ptr = malloced_nl_string; } else if ( i > (int)strlen(malloced_nl_string) ) { malloced_nl_string = (char *)REALLOC( (kc_voidptr_t)malloced_nl_string, (kc_size_t)i+1 ); ptr = malloced_nl_string; } if (ptr != 0) { for (j = 0; j< i; j+=4) { *ptr++ = QUOTEDBACKSLASH; *ptr++ = '\n'; *ptr++ = QUOTEDBACKSLASH; *ptr++ = 'n'; } *ptr = '\0'; } return &(malloced_nl_string[strlen(malloced_nl_string)-i]); } } %{ #define MKSELVARMAXINTREPR 30 %} ID f_mkselvar( prefix, level) char *prefix; int level; { /* HACK we suppose that MKSELVARMAXINTREPR charcters for the integer will be sufficient * we test for MKSELVARMAXINTREPR+1 for the \0 */ char fixbuf[BUFSIZ]; char *dynbuf = 0; char *buf = 0; ID id; if (strlen(prefix) + MKSELVARMAXINTREPR + 1 > BUFSIZ) { dynbuf = (char*)MALLOC((kc_size_t) strlen(prefix) + MKSELVARMAXINTREPR + 1); buf = dynbuf; } else { buf = fixbuf; } (void)strcpy( buf, prefix ); (void)sprintf( &buf[strlen(prefix)], "%d", level ); id = Id( Str( mkcasestring( buf ))); if (dynbuf != 0) { FREE((kc_voidptr_t) dynbuf ); } return id; } ID f_mkselvar2( prefix, level, branch) char *prefix; int level; int branch; { /* HACK we suppose that 2*MKSELVARMAXINTREPR charcters for the integers will be sufficient * (2 integers, 1 underscore, 1 \0) * we test for 2*MKSELVARMAXINTREPR+2 for the \0 */ 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 = (char*)MALLOC((kc_size_t) strlen(prefix) + constant_factor); buf = dynbuf; } else { buf = fixbuf; } (void)strcpy( buf, prefix ); (void)sprintf( &buf[strlen(prefix)], "%d_%d", level, branch ); id = Id( Str( mkcasestring( buf ))); if (dynbuf != 0) { FREE((kc_voidptr_t) dynbuf ); } return id; } /* * make a file name from a (likely quoted) string, that may contain * a complete (absolute or relative path), and may, or may not end in * `.k'. if the ending is .k, then replace it by the (one letter) suffix; * if we don't have a .k ending, it will probably be stdin, so we * extend the name. * We keep in mind that we may have to remove quotes (") * The _caller_ will have to FREE filename. */ char *f_mk_filename( a_casestring, suffix ) casestring a_casestring; char suffix; { char *filename, *basename; int baselen; if ((basename = strrchr( a_casestring->name, '/' )) == 0) { basename = a_casestring->name; } if (*basename == '/') { basename++; } else if (*basename == '"') { basename++; } baselen = strlen(basename); filename = (char*)MALLOC((kc_size_t)baselen+3); /* for .c\0 */ (void)strcpy( filename, basename ); if (baselen > 0 && filename[baselen-1] == '"' ) { filename[baselen-1] = '\0'; baselen--; } if ( baselen > 1 && (filename[baselen-1] == 'k' && filename[baselen-2] == '.' )) { filename[baselen-1] = suffix; } else { filename[baselen] = '.'; filename[baselen+1] = suffix; filename[baselen+2] = '\0'; } return filename; } /***************************************************************************/ /* * make a name that can be used in the #define file/guard name * derive it from the .c or .h file * (we expect a basename with suffix) */ %{ #include %} char *f_make_identifier_basename( fn ) char *fn; { int len, i; char *nn; len = strlen(fn); /*SUPPRESS 622*/ assert(len >2); nn = (char*)MALLOC((kc_size_t)(len-2+1)); /* -2: drop .c; +1: add '\0' */ (void)strncpy(nn, fn, len-2); nn[len-2] = '\0'; for (i=0; i< len-2; i++) { if (! isalnum(nn[i])) { nn[i] = '_'; } } return nn; } /**************************************************************************/ /* * this function reorders the rewrite/unparsedeclsinfo in a phylum as follows: * the rewrite/unparsedeclsinfos per phylum are collected * (concatenated one after the other) * and then, for each view an rewrite/unparseviewsinfo is created, containing * the 'projection' of the collected rewrite/unparsedeclsinfo on this * particular view. */ %{ static ID global_filterview; /* to be used by filteronview */ %} rewriterulesinfo f_rewriterulesinfoofalternativeinview( a_alternative, a_view ) alternative a_alternative; ID a_view; { global_filterview = a_view; return filter_rewriterulesinfo( a_alternative->rewriteinfo, filterrewriteruleinfoonview ); } rewriteviewsinfo f_rewriteviewsinfoofalternatives( a_alternatives, a_views ) alternatives a_alternatives; viewnames a_views; { rewriterulesinfo tmp_rewriterulesinfo = f_rewriterulesinfoofalternatives( a_alternatives ); rewriteviewsinfo tmp_rewriteviewsinfo = Nilrewriteviewsinfo(); foreach (a_view; viewnames a_views ) { global_filterview = a_view; tmp_rewriteviewsinfo = Consrewriteviewsinfo( Rewriteviewinfo( a_view, filter_rewriterulesinfo( tmp_rewriterulesinfo, filterrewriteruleinfoonview )), tmp_rewriteviewsinfo ); } return tmp_rewriteviewsinfo; } unparseviewsinfo f_unparseviewsinfoofalternatives( a_alternatives, a_views ) alternatives a_alternatives; viewnames a_views; { unparsedeclsinfo tmp_unparsedeclsinfo = f_unparsedeclsinfoofalternatives( a_alternatives ); unparseviewsinfo tmp_unparseviewsinfo = Nilunparseviewsinfo(); foreach (a_view; viewnames a_views ) { global_filterview = a_view; tmp_unparseviewsinfo = Consunparseviewsinfo( Unparseviewinfo( a_view, filter_unparsedeclsinfo( tmp_unparsedeclsinfo, filterunparsedeclinfoonview )), tmp_unparseviewsinfo ); } return tmp_unparseviewsinfo; } static boolean filterrewriteruleinfoonview( a_rewriteruleinfo ) rewriteruleinfo a_rewriteruleinfo; { return is_viewname_in_rewriteruleinfo( global_filterview, a_rewriteruleinfo ); } static boolean filterunparsedeclinfoonview( a_unparsedeclinfo ) unparsedeclinfo a_unparsedeclinfo; { return is_viewname_in_unparsedeclinfo( global_filterview, a_unparsedeclinfo ); } static boolean is_viewname_in_rewriteruleinfo( a_view, a_rewriteruleinfo ) ID a_view; rewriteruleinfo a_rewriteruleinfo; { with( a_rewriteruleinfo ) { Rewriteruleinfo( *, *, RewriteClause( a_viewnames, * )): { return is_viewname_in_viewnames( a_view, a_viewnames ); } } } static boolean is_viewname_in_unparsedeclinfo( a_view, a_unparsedeclinfo ) ID a_view; unparsedeclinfo a_unparsedeclinfo; { with( a_unparsedeclinfo ) { Unparsedeclinfo( *, *, UnparseClause( a_viewnames, * )): { return is_viewname_in_viewnames( a_view, a_viewnames ); } } } static boolean is_viewname_in_viewnames( a_view, a_viewnames ) ID a_view; viewnames a_viewnames; { foreach( a_viewname; viewnames a_viewnames ) { if ( eq_ID( a_view, a_viewname ) ) { return True; } } return False; } /* * collect the rewrite/unparsedeclsinfo of the alternatives. * NOTE: it is of vital importance that the rewrite/unparsedeclsinfo is _not_ * reordered, because the current order corresponds to the tree/pattern * matching strategy. */ static rewriterulesinfo f_rewriterulesinfoofalternatives( a_alternatives ) alternatives a_alternatives; { rewriterulesinfo tmp = Nilrewriterulesinfo(); foreach( a_alternative; alternatives a_alternatives ) { tmp = concat_rewriterulesinfo( a_alternative->rewriteinfo, tmp ); } return tmp; } static unparsedeclsinfo f_unparsedeclsinfoofalternatives( a_alternatives ) alternatives a_alternatives; { unparsedeclsinfo tmp = Nilunparsedeclsinfo(); foreach( a_alternative; alternatives a_alternatives ) { tmp = concat_unparsedeclsinfo( a_alternative->unparseinfo, tmp ); } return tmp; } ID f_typeof( a_path ) path a_path; { if (eq_ID(a_path->id, f_emptyId())) { with( a_path ) { Nilpath(): { return f_phylumofoperator( a_path->op ); } Conspath( i, r_path ): { return f_subphylumofoperator( r_path->op, Int( i ) ); } } } else { return a_path->id; } } ID f_operatorofpatternrepresentation( a_patternrepresentation ) patternrepresentation a_patternrepresentation; { with( a_patternrepresentation ) { Nilpatternrepresentation(): { return f_emptyId(); } Conspatternrepresentation( e, * ): { return f_operatorofelem_patternrepresentation( e ); } } } static ID f_operatorofelem_patternrepresentation(a_elem_patternrepresentation ) elem_patternrepresentation a_elem_patternrepresentation; { with( a_elem_patternrepresentation ) { PRBinding( p, * ): { return f_operatorofpath( p ); } PRVarPredicate( ps, *, * ): { return f_operatorofpaths( ps ); } PROperPredicate( p, * ): { return f_operatorofpath( p ); } PRNonLeafBinding( p, *, * ): { return f_operatorofpath( p ); } PRDefault(): { return f_emptyId(); } PRWildcard( p ): { return f_operatorofpath( p ); } PRStringLiteral( p, * ): { return f_operatorofpath( p ); } PRIntLiteral( p, * ): { return f_operatorofpath( p ); } } } static ID f_operatorofpaths( a_paths ) paths a_paths; { with( a_paths ) { Nilpaths(): { return f_emptyId(); } Conspaths( p, * ): { return f_operatorofpath( p ); } } } static ID f_operatorofpath( a_path ) path a_path; { with( a_path ) { Nilpath(): { return a_path->op; } Conspath( *, r_path ): { return r_path->op; } } } ID f_typeofunpsubterm( a_unpsubterm, a_operator ) unpsubterm a_unpsubterm; ID a_operator; { with( a_unpsubterm ) { UnpSubTerm( a_id ): { return f_phylumofpatternID( a_id ); } UnpDollarvarTerm( i ): { return f_subphylumofoperator( a_operator, i ); } UnpSubAttr( an_id, an_unpattributes ): { return f_check_unpattributes_in_phylum( an_unpattributes, f_phylumofpatternID( an_id ) ); } UnpDollarvarAttr( i, a_unpattributes ): { return f_check_unpattributes_in_phylum( a_unpattributes, f_subphylumofoperator( a_operator, i ) ); } UnpCastedVariable( a_cast, * ): { return a_cast; } } } /**************************************************************************/ boolean f_outmost_nl_preds_in_rewriterulesinfo( ri ) rewriterulesinfo ri; { with( ri ) { Nilrewriterulesinfo(): { return False; } Consrewriterulesinfo( Rewriteruleinfo( preds, *, * ), r_ri ): { return (boolean) (f_outmost_nl_preds_in_patternrepresentation( preds ) || f_outmost_nl_preds_in_rewriterulesinfo( r_ri )); } } } static boolean f_outmost_nl_preds_in_patternrepresentation( p ) patternrepresentation p; { with( p ) { Nilpatternrepresentation(): { return False; } Conspatternrepresentation( a_p, r_p ): { return (boolean) (f_outmost_nl_preds_in_elem_patternrepresentation( a_p ) || f_outmost_nl_preds_in_patternrepresentation( r_p )); } } } static boolean f_outmost_nl_preds_in_elem_patternrepresentation( e_p ) elem_patternrepresentation e_p; { with( e_p ) { PRBinding( *, * ): { return False; } PRVarPredicate( a_p, *, * ): { return f_outmost_nl_preds_in_paths( a_p ); } PROperPredicate( *, * ): { return False; } PRNonLeafBinding( *, *, * ): { return False; } PRDefault(): { return False; } PRWildcard( * ): { return False; } PRStringLiteral( *, * ): { return False; } PRIntLiteral( *, * ): { return False; } } } static boolean f_outmost_nl_preds_in_paths( p ) paths p; { with( p ) { Nilpaths(): { return False; } Conspaths( Nilpath(), * ): { return True; } Conspaths( Conspath( *, * ), r_p ): { return f_outmost_nl_preds_in_paths( r_p ); } } } /***************************************************************************/ /* * this function is called when deciding to print (dummy) `return (cast)0;' * code in a default with case of a non-void function, to suppress lint * messages about `has both return(e); and return;' * * the idea is that when this function is called we know that the return-type * is not a ptr type, nor is it a phylum. * This routine should check if it is something else that we now (ie. that we * generate in kc (eg. a view, a hashtable, a boolean, etc.) * * right now we use a terrible search strategy (linear!), * we should use the the uniq strategy, and have a new IDtype * for types. */ boolean f_is_known_ptr_type( id ) ID id; { static phylumnames known = 0; if (! known ) { /* to be extended with new types */ known = Nilphylumnames(); known = Consphylumnames( Id( Str( mkcasestring( "kc_voidptr_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_malloc_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_voidfnptr_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_realloc_arg_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_size_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "size_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "unsigned" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_memset_size_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_memory_blocksinfo_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_enum_phyla" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_enum_operators" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_enum_phyla_list" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_size_t_list" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "KC_UNIQ_INFO" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_hashnode_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_tp_boolean" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "boolean" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_hastable_storage_mode_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_hashtable_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_private_malloc_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_Align" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "kc_qsort_firstarg_t" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "KC_IO_STATUS" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "view" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "uview" ))), known ); known = Consphylumnames( Id( Str( mkcasestring( "rview" ))), known ); } foreach( pn; phylumnames known ) { if ( eq_ID( pn, id )) { return True; } } return False; } /***************************************************************************/ /* * rewrite rules to simplify the pattern representations, * by eliminating the PRWildcard(*) and PRDefault() * This rules will be used just before code is generared */ Conspatternrepresentation( PRWildcard( * ), r ) -> r; Conspatternrepresentation( PRDefault(), r ) -> r; /* * we need the routine below to make sure that we only rewrite the * predicates in the withcaseinfo. * If we would also rewrite the bindings, we would loose the 'type' * attribute that contains important type information. */ %{ #include "rk.h" /* for the rewrite_withcasesinfo call below */ %} withcasesinfo my_rewrite_withcasesinfo(withcasesinfo $a_withcasesinfo) { Nilwithcasesinfo(): { return $0; } Conswithcasesinfo( Withcaseinfo( p, b, ct ), r ): { return Conswithcasesinfo( Withcaseinfo( rewrite_patternrepresentation(p, base_rview), b, ct ), my_rewrite_withcasesinfo( r ) ); } } /***************************************************************************/ /* * Compute the position of the sole (single) dollar variable or * pattern in a patternchain. This is to be used to set the right $0 * for a foreach statement. * NOTE: if there is more than a single pattern or dollar variable, * then we don't set $0. We call this failure. * We indicate failure by returning -1. * We start with inital return value of -2, meaning: mothing found, but * no failure yet. * A zero or positive return value indicates the index of the pattern * or dollar variable. */ 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) { /*failure*/ return tmp_result; } with( a_patternchain ) { Conspatternchain( h, t ): { tmp_result = t_pos_of_sole_dollar_or_pattern_in_patternchain( t, tmp_result, pos+1 ); if (tmp_result == -1) { /*failure*/ return tmp_result; } with( h ) { PatternchainitemOutmost( p ): { with( p ) { OPOperatorWildcard( id ): { with( id ) { Id( uid ): { with( uid->type ) { ITPatternVariable( *, * ), ITUnknown(): { /* only variable */ return tmp_result; } default: { if (tmp_result >= 0) { return -1; /*failure*/ } else { return pos; } } } } } } default: { if (tmp_result >= 0) { return -1; /*failure*/ } else { return pos; } } } } PatternchainitemGroup( * ): { return -1; /* ERROR found */ } PatternchainitemDollarid( * ): { if (tmp_result >= 0) { return -1; /*failure*/ } else { return pos; } } } } Nilpatternchain(): { return tmp_result; } } } kimwitu-4.6.1.orig/src/k.c0100644000176100001440000433703207076113225014657 0ustar debacleusers/*LINTLIBRARY*/ /* translation of file(s) "../abs.k" "../main.k" "../parse.k" "../error.k" "../defocc.k" "../extocc.k" "../useocc.k" "../util.k" "../gen.k" "../gutil.k" "../pat.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #define KC_TYPES #define KIMW_TYPES /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include #include #include #if ((! defined(KC_STDC) ) && defined(sun)) extern char *sprintf(); #endif #include #ifdef KC_STDC # include #else # include /*for memset*/ #endif typedef size_t kc_memset_size_t; /* needed for sun */ #include "k.h" #ifndef KC_STDC extern void exit KC__P((int)); #endif #if ((! defined(KC_STDC) ) && defined(sun)) /* kc_memset_firstarg_t should be void* kc_voidptr_t, but sun's include files are dumb */ # ifndef KC_MEMSET_FIRSTARG_T typedef char *kc_memset_firstarg_t; # else typedef KC_MEMSET_FIRSTARG_T kc_memset_firstarg_t; # endif #else typedef kc_voidptr_t kc_memset_firstarg_t; #endif static kc_voidfnptr_t kc_out_of_storage_handler = 0; kc_voidfnptr_t kc_set_out_of_storage_handler #ifdef KC_USE_PROTOTYPES ( kc_voidfnptr_t kc_handler ) #else (kc_handler) kc_voidfnptr_t kc_handler; #endif { kc_voidfnptr_t kc_tmp_handler = kc_out_of_storage_handler; kc_out_of_storage_handler = kc_handler; return kc_tmp_handler; } kc_voidptr_t emalloc /* check return from malloc */ #ifdef KC_USE_PROTOTYPES (kc_size_t kc_n) #else (kc_n) kc_size_t kc_n; #endif { kc_voidptr_t kc_p; while ((kc_p = (kc_voidptr_t)malloc((kc_size_t)kc_n)) == 0) { if (kc_out_of_storage_handler) { (*kc_out_of_storage_handler)(); } else { (void)fflush(stdout); (void)fprintf(stderr,"out of memory in emalloc\n"); exit( 1 ); /*NOTREACHED*/ } } return kc_p; } kc_voidptr_t ecalloc /* check return from calloc */ #ifdef KC_USE_PROTOTYPES (kc_size_t kc_n, kc_size_t kc_s) #else (kc_n,kc_s) kc_size_t kc_n, kc_s; #endif { kc_voidptr_t kc_p; while ((kc_p = (kc_voidptr_t)calloc((kc_size_t)kc_n,(kc_size_t)kc_s)) == 0) { if (kc_out_of_storage_handler) { (*kc_out_of_storage_handler)(); } else { (void)fflush(stdout); (void)fprintf(stderr,"out of memory in ecalloc\n"); exit( 1 ); /*NOTREACHED*/ } } return kc_p; } kc_voidptr_t erealloc /* check return from realloc */ #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_r, kc_size_t kc_s) #else (kc_r,kc_s) kc_voidptr_t kc_r; kc_size_t kc_s; #endif { kc_voidptr_t kc_p; while ((kc_p = (kc_voidptr_t)realloc((kc_realloc_arg_t)kc_r,(kc_size_t)kc_s)) == 0) { if (kc_out_of_storage_handler) { (*kc_out_of_storage_handler)(); } else { (void)fflush(stdout); (void)fprintf(stderr,"out of memory in erealloc\n"); exit( 1 ); /*NOTREACHED*/ } } return kc_p; } void kc_bzero #ifdef KC_USE_PROTOTYPES (register char *kc_p, register int kc_s) #else (kc_p,kc_s) register char *kc_p; register int kc_s; #endif { while (kc_s--) { *kc_p++ = '\0'; } } static void kc_copy_attributes_uniqID #ifdef KC_USE_PROTOTYPES (uniqID kc_p1, uniqID kc_p2) #else (kc_p1, kc_p2) uniqID kc_p1, kc_p2; #endif { kc_p2->type = kc_p1->type; kc_p2->line = kc_p1->line; kc_p2->file = kc_p1->file; kc_p2->scopeinfo = kc_p1->scopeinfo; } static void kc_copy_attributes_ID #ifdef KC_USE_PROTOTYPES (ID kc_p1, ID kc_p2) #else (kc_p1, kc_p2) ID kc_p1, kc_p2; #endif { kc_p2->type = kc_p1->type; kc_p2->line = kc_p1->line; kc_p2->file = kc_p1->file; } static void kc_copy_attributes_INT #ifdef KC_USE_PROTOTYPES (INT kc_p1, INT kc_p2) #else (kc_p1, kc_p2) INT kc_p1, kc_p2; #endif { kc_p2->line = kc_p1->line; kc_p2->file = kc_p1->file; } static void kc_copy_attributes_STRING #ifdef KC_USE_PROTOTYPES (STRING kc_p1, STRING kc_p2) #else (kc_p1, kc_p2) STRING kc_p1, kc_p2; #endif { kc_p2->line = kc_p1->line; kc_p2->file = kc_p1->file; } static void kc_copy_attributes_phylumdeclaration #ifdef KC_USE_PROTOTYPES (phylumdeclaration kc_p1, phylumdeclaration kc_p2) #else (kc_p1, kc_p2) phylumdeclaration kc_p1, kc_p2; #endif { kc_p2->marked = kc_p1->marked; } static void kc_copy_attributes_storageclasses #ifdef KC_USE_PROTOTYPES (storageclasses kc_p1, storageclasses kc_p2) #else (kc_p1, kc_p2) storageclasses kc_p1, kc_p2; #endif { kc_p2->phyla = kc_p1->phyla; } static void kc_copy_attributes_alternative #ifdef KC_USE_PROTOTYPES (alternative kc_p1, alternative kc_p2) #else (kc_p1, kc_p2) alternative kc_p1, kc_p2; #endif { kc_p2->rewriteinfo = kc_p1->rewriteinfo; kc_p2->unparseinfo = kc_p1->unparseinfo; kc_p2->bigatoms = kc_p1->bigatoms; } static void kc_copy_attributes_arguments #ifdef KC_USE_PROTOTYPES (arguments kc_p1, arguments kc_p2) #else (kc_p1, kc_p2) arguments kc_p1, kc_p2; #endif { kc_p2->seqnr = kc_p1->seqnr; } static void kc_copy_attributes_Cexpression #ifdef KC_USE_PROTOTYPES (Cexpression kc_p1, Cexpression kc_p2) #else (kc_p1, kc_p2) Cexpression kc_p1, kc_p2; #endif { kc_p2->line = kc_p1->line; kc_p2->file = kc_p1->file; } static void kc_copy_attributes_idCexpression #ifdef KC_USE_PROTOTYPES (idCexpression kc_p1, idCexpression kc_p2) #else (kc_p1, kc_p2) idCexpression kc_p1, kc_p2; #endif { kc_p2->id = kc_p1->id; } static void kc_copy_attributes_includefile #ifdef KC_USE_PROTOTYPES (includefile kc_p1, includefile kc_p2) #else (kc_p1, kc_p2) includefile kc_p1, kc_p2; #endif { kc_p2->inc_type = kc_p1->inc_type; kc_p2->INC2 = kc_p1->INC2; kc_p2->newinclude = kc_p1->newinclude; } static void kc_copy_attributes_includedeclaration #ifdef KC_USE_PROTOTYPES (includedeclaration kc_p1, includedeclaration kc_p2) #else (kc_p1, kc_p2) includedeclaration kc_p1, kc_p2; #endif { kc_p2->line = kc_p1->line; kc_p2->file = kc_p1->file; } static void kc_copy_attributes_patternchains #ifdef KC_USE_PROTOTYPES (patternchains kc_p1, patternchains kc_p2) #else (kc_p1, kc_p2) patternchains kc_p1, kc_p2; #endif { kc_p2->line = kc_p1->line; kc_p2->file = kc_p1->file; } static void kc_copy_attributes_patternchain #ifdef KC_USE_PROTOTYPES (patternchain kc_p1, patternchain kc_p2) #else (kc_p1, kc_p2) patternchain kc_p1, kc_p2; #endif { kc_p2->line = kc_p1->line; kc_p2->file = kc_p1->file; } static void kc_copy_attributes_patternchainitem #ifdef KC_USE_PROTOTYPES (patternchainitem kc_p1, patternchainitem kc_p2) #else (kc_p1, kc_p2) patternchainitem kc_p1, kc_p2; #endif { kc_p2->line = kc_p1->line; kc_p2->file = kc_p1->file; kc_p2->type = kc_p1->type; } static void kc_copy_attributes_outmostpattern #ifdef KC_USE_PROTOTYPES (outmostpattern kc_p1, outmostpattern kc_p2) #else (kc_p1, kc_p2) outmostpattern kc_p1, kc_p2; #endif { kc_p2->type = kc_p1->type; } static void kc_copy_attributes_fnfile #ifdef KC_USE_PROTOTYPES (fnfile kc_p1, fnfile kc_p2) #else (kc_p1, kc_p2) fnfile kc_p1, kc_p2; #endif { kc_p2->fns = kc_p1->fns; } static void kc_copy_attributes_fndeclaration #ifdef KC_USE_PROTOTYPES (fndeclaration kc_p1, fndeclaration kc_p2) #else (kc_p1, kc_p2) fndeclaration kc_p1, kc_p2; #endif { kc_p2->sorted = kc_p1->sorted; kc_p2->newsorted = kc_p1->newsorted; kc_p2->last_line = kc_p1->last_line; kc_p2->file = kc_p1->file; } static void kc_copy_attributes_Ctext #ifdef KC_USE_PROTOTYPES (Ctext kc_p1, Ctext kc_p2) #else (kc_p1, kc_p2) Ctext kc_p1, kc_p2; #endif { kc_p2->line = kc_p1->line; kc_p2->file = kc_p1->file; } static void kc_copy_attributes_Ctext_elem #ifdef KC_USE_PROTOTYPES (Ctext_elem kc_p1, Ctext_elem kc_p2) #else (kc_p1, kc_p2) Ctext_elem kc_p1, kc_p2; #endif { kc_p2->line = kc_p1->line; kc_p2->file = kc_p1->file; } static void kc_copy_attributes_foreach_after #ifdef KC_USE_PROTOTYPES (foreach_after kc_p1, foreach_after kc_p2) #else (kc_p1, kc_p2) foreach_after kc_p1, kc_p2; #endif { kc_p2->line = kc_p1->line; kc_p2->file = kc_p1->file; } static void kc_copy_attributes_withexpressions #ifdef KC_USE_PROTOTYPES (withexpressions kc_p1, withexpressions kc_p2) #else (kc_p1, kc_p2) withexpressions kc_p1, kc_p2; #endif { kc_p2->type = kc_p1->type; kc_p2->line = kc_p1->line; kc_p2->file = kc_p1->file; } static void kc_copy_attributes_withexpression #ifdef KC_USE_PROTOTYPES (withexpression kc_p1, withexpression kc_p2) #else (kc_p1, kc_p2) withexpression kc_p1, kc_p2; #endif { kc_p2->type = kc_p1->type; kc_p2->line = kc_p1->line; kc_p2->file = kc_p1->file; } static void kc_copy_attributes_withcases #ifdef KC_USE_PROTOTYPES (withcases kc_p1, withcases kc_p2) #else (kc_p1, kc_p2) withcases kc_p1, kc_p2; #endif { kc_p2->wcinfo = kc_p1->wcinfo; } static void kc_copy_attributes_withcase #ifdef KC_USE_PROTOTYPES (withcase kc_p1, withcase kc_p2) #else (kc_p1, kc_p2) withcase kc_p1, kc_p2; #endif { kc_p2->wcinfo = kc_p1->wcinfo; } static void kc_copy_attributes_unparsedeclaration #ifdef KC_USE_PROTOTYPES (unparsedeclaration kc_p1, unparsedeclaration kc_p2) #else (kc_p1, kc_p2) unparsedeclaration kc_p1, kc_p2; #endif { kc_p2->patternreps = kc_p1->patternreps; } static void kc_copy_attributes_elem_patternrepresentation #ifdef KC_USE_PROTOTYPES (elem_patternrepresentation kc_p1, elem_patternrepresentation kc_p2) #else (kc_p1, kc_p2) elem_patternrepresentation kc_p1, kc_p2; #endif { kc_p2->type = kc_p1->type; } static void kc_copy_attributes_path #ifdef KC_USE_PROTOTYPES (path kc_p1, path kc_p2) #else (kc_p1, kc_p2) path kc_p1, kc_p2; #endif { kc_p2->op = kc_p1->op; kc_p2->id = kc_p1->id; } static void kc_copy_attributes_addedphylumdeclaration #ifdef KC_USE_PROTOTYPES (addedphylumdeclaration kc_p1, addedphylumdeclaration kc_p2) #else (kc_p1, kc_p2) addedphylumdeclaration kc_p1, kc_p2; #endif { kc_p2->added = kc_p1->added; } static void kc_copy_attributes_countedphylumdeclaration #ifdef KC_USE_PROTOTYPES (countedphylumdeclaration kc_p1, countedphylumdeclaration kc_p2) #else (kc_p1, kc_p2) countedphylumdeclaration kc_p1, kc_p2; #endif { kc_p2->count = kc_p1->count; } static void kc_copy_attributes_bindingidmark #ifdef KC_USE_PROTOTYPES (bindingidmark kc_p1, bindingidmark kc_p2) #else (kc_p1, kc_p2) bindingidmark kc_p1, kc_p2; #endif { kc_p2->marked = kc_p1->marked; } KC_PHYLUM_INFO kc_PhylumInfo[] = { { "", 0, kc_one_before_first_operator, kc_one_before_first_operator, (kc_storageclass_t)0, 0 }, /* dummy element */ { "nocasestring", sizeof(struct kc_tag_nocasestring), sel_NoCaseStr, sel_NoCaseStr, uniq, 0 }, { "casestring", sizeof(struct kc_tag_casestring), sel__Str, sel__Str, uniq, 0 }, { "float", sizeof(float), sel__Real, sel__Real, uniq, 0 }, { "int", sizeof(int), sel__Int, sel__Int, uniq, 0 }, { "voidptr", sizeof(voidptr), sel__VoidPtr, sel__VoidPtr, uniq, 0 }, { "uniqID", sizeof(struct kc_tag_uniqID), sel_Str, sel_Str, uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_uniqID }, { "ID", sizeof(struct kc_tag_ID), sel_Id, sel_Id, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_ID }, { "INT", sizeof(struct kc_tag_INT), sel_Int, sel_Int, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_INT }, { "STRING", sizeof(struct kc_tag_STRING), sel_String, sel_String, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_STRING }, { "phylumdeclarationsroot", sizeof(struct kc_tag_phylumdeclarationsroot), sel_PhylumDeclarations, sel_PhylumDeclarations, kc_not_uniq, 0 }, { "phylumdeclarations", sizeof(struct kc_tag_phylumdeclarations), sel_Nilphylumdeclarations, sel_Consphylumdeclarations, kc_not_uniq, 0 }, { "phylumnames", sizeof(struct kc_tag_phylumnames), sel_Nilphylumnames, sel_Consphylumnames, kc_not_uniq, 0 }, { "phylumdeclaration", sizeof(struct kc_tag_phylumdeclaration), sel_PhylumDeclaration, sel_PhylumDeclaration, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_phylumdeclaration }, { "storageoption", sizeof(struct kc_tag_storageoption), sel_NoStorageOption, sel_PositiveStorageOption, kc_not_uniq, 0 }, { "storageclasses", sizeof(struct kc_tag_storageclasses), sel_Nilstorageclasses, sel_Consstorageclasses, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_storageclasses }, { "productionblock", sizeof(struct kc_tag_productionblock), sel_Emptyproductionblock, sel_PredefinedAlternatives, kc_not_uniq, 0 }, { "alternatives", sizeof(struct kc_tag_alternatives), sel_Nilalternatives, sel_Consalternatives, kc_not_uniq, 0 }, { "alternative", sizeof(struct kc_tag_alternative), sel_Alternative, sel_Alternative, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_alternative }, { "arguments", sizeof(struct kc_tag_arguments), sel_Nilarguments, sel_Consarguments, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_arguments }, { "argument", sizeof(struct kc_tag_argument), sel_Argument, sel_Argument, kc_not_uniq, 0 }, { "Ccode_option", sizeof(struct kc_tag_Ccode_option), sel_CcodeOption, sel_CcodeOption, kc_not_uniq, 0 }, { "attributes", sizeof(struct kc_tag_attributes), sel_Nilattributes, sel_Consattributes, kc_not_uniq, 0 }, { "attribute", sizeof(struct kc_tag_attribute), sel_Attribute, sel_Attribute, kc_not_uniq, 0 }, { "attribute_initialisation_option", sizeof(struct kc_tag_attribute_initialisation_option), sel_Noattribute_initialisation, sel_Yesattribute_initialisation, kc_not_uniq, 0 }, { "Cexpression", sizeof(struct kc_tag_Cexpression), sel_NilCexpression, sel_ConsCexpression, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_Cexpression }, { "Cexpression_elem", sizeof(struct kc_tag_Cexpression_elem), sel_CExpressionPart, sel_CExpressionArray, kc_not_uniq, 0 }, { "CexpressionDQ", sizeof(struct kc_tag_CexpressionDQ), sel_NilCexpressionDQ, sel_ConsCexpressionDQ, kc_not_uniq, 0 }, { "CexpressionDQ_elem", sizeof(struct kc_tag_CexpressionDQ_elem), sel_CExpressionDQPart, sel_CExpressionDQNl, kc_not_uniq, 0 }, { "CexpressionSQ", sizeof(struct kc_tag_CexpressionSQ), sel_NilCexpressionSQ, sel_ConsCexpressionSQ, kc_not_uniq, 0 }, { "CexpressionSQ_elem", sizeof(struct kc_tag_CexpressionSQ_elem), sel_CExpressionSQPart, sel_CExpressionSQNl, kc_not_uniq, 0 }, { "idCexpressions", sizeof(struct kc_tag_idCexpressions), sel_NilidCexpressions, sel_ConsidCexpressions, kc_not_uniq, 0 }, { "idCexpression", sizeof(struct kc_tag_idCexpression), sel_IdCexpression, sel_IdCexpression, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_idCexpression }, { "Ctexts", sizeof(struct kc_tag_Ctexts), sel_NilCtexts, sel_ConsCtexts, kc_not_uniq, 0 }, { "includefiles", sizeof(struct kc_tag_includefiles), sel_Nilincludefiles, sel_Consincludefiles, kc_not_uniq, 0 }, { "includefile", sizeof(struct kc_tag_includefile), sel_IncludeFile, sel_IncludeFile, uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_includefile }, { "includedeclarations", sizeof(struct kc_tag_includedeclarations), sel_Nilincludedeclarations, sel_Consincludedeclarations, kc_not_uniq, 0 }, { "includedeclaration", sizeof(struct kc_tag_includedeclaration), sel_IncludeDeclaration, sel_IncludeDeclaration, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_includedeclaration }, { "includes", sizeof(struct kc_tag_includes), sel_Nilincludes, sel_Consincludes, kc_not_uniq, 0 }, { "include", sizeof(struct kc_tag_include), sel_Include, sel_IncludeNl, kc_not_uniq, 0 }, { "rwdeclarations", sizeof(struct kc_tag_rwdeclarations), sel_Nilrwdeclarations, sel_Consrwdeclarations, kc_not_uniq, 0 }, { "rwdeclaration", sizeof(struct kc_tag_rwdeclaration), sel_RwDeclaration, sel_RwDeclaration, kc_not_uniq, 0 }, { "rewriteclauses", sizeof(struct kc_tag_rewriteclauses), sel_Nilrewriteclauses, sel_Consrewriteclauses, kc_not_uniq, 0 }, { "rewriteclause", sizeof(struct kc_tag_rewriteclause), sel_RewriteClause, sel_RewriteClause, kc_not_uniq, 0 }, { "patternchains", sizeof(struct kc_tag_patternchains), sel_Nilpatternchains, sel_Conspatternchains, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_patternchains }, { "patternchain", sizeof(struct kc_tag_patternchain), sel_Nilpatternchain, sel_Conspatternchain, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_patternchain }, { "outmostpatterns", sizeof(struct kc_tag_outmostpatterns), sel_Niloutmostpatterns, sel_Consoutmostpatterns, kc_not_uniq, 0 }, { "patternchainitem", sizeof(struct kc_tag_patternchainitem), sel_PatternchainitemOutmost, sel_PatternchainitemDollarid, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_patternchainitem }, { "outmostpattern", sizeof(struct kc_tag_outmostpattern), sel_OPOperatorWildcard, sel_OPDefault, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_outmostpattern }, { "pattern", sizeof(struct kc_tag_pattern), sel_PVariable, sel_PIntLiteral, kc_not_uniq, 0 }, { "patterns", sizeof(struct kc_tag_patterns), sel_Nilpatterns, sel_Conspatterns, kc_not_uniq, 0 }, { "term", sizeof(struct kc_tag_term), sel_TVariable, sel_TIntLiteral, kc_not_uniq, 0 }, { "terms", sizeof(struct kc_tag_terms), sel_Nilterms, sel_Consterms, kc_not_uniq, 0 }, { "fnfiles", sizeof(struct kc_tag_fnfiles), sel_Nilfnfiles, sel_Consfnfiles, kc_not_uniq, 0 }, { "fnfile", sizeof(struct kc_tag_fnfile), sel_FnFile, sel_FnFile, uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_fnfile }, { "fndeclarations", sizeof(struct kc_tag_fndeclarations), sel_Nilfndeclarations, sel_Consfndeclarations, kc_not_uniq, 0 }, { "fndeclaration", sizeof(struct kc_tag_fndeclaration), sel_FnDeclaration, sel_FnAcDeclaration, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_fndeclaration }, { "fnclass", sizeof(struct kc_tag_fnclass), sel_GlobalFn, sel_LocalFn, kc_not_uniq, 0 }, { "fnarguments", sizeof(struct kc_tag_fnarguments), sel_Nilfnarguments, sel_Consfnarguments, kc_not_uniq, 0 }, { "Cvariabledeclarations", sizeof(struct kc_tag_Cvariabledeclarations), sel_NilCvariabledeclarations, sel_ConsCvariabledeclarations, kc_not_uniq, 0 }, { "Cvariabledeclaration", sizeof(struct kc_tag_Cvariabledeclaration), sel_CVariabledeclaration, sel_Fnargfpdecl, kc_not_uniq, 0 }, { "Cvariables", sizeof(struct kc_tag_Cvariables), sel_NilCvariables, sel_ConsCvariables, kc_not_uniq, 0 }, { "Cvariable", sizeof(struct kc_tag_Cvariable), sel_CVPointer, sel_CVFunction, kc_not_uniq, 0 }, { "Ctext", sizeof(struct kc_tag_Ctext), sel_NilCtext, sel_ConsCtext, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_Ctext }, { "Ctext_elem", sizeof(struct kc_tag_Ctext_elem), sel_CTextLine, sel_CTextWithexpression, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_Ctext_elem }, { "foreach_after", sizeof(struct kc_tag_foreach_after), sel_NoForeachAfter, sel_ForeachAfter, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_foreach_after }, { "contextinfo", sizeof(struct kc_tag_contextinfo), sel_InForeachContext, sel_NotInForeachContext, kc_not_uniq, 0 }, { "withexpressions", sizeof(struct kc_tag_withexpressions), sel_Nilwithexpressions, sel_Conswithexpressions, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_withexpressions }, { "withexpression", sizeof(struct kc_tag_withexpression), sel_WEVariable, sel_WECexpression, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_withexpression }, { "withcases", sizeof(struct kc_tag_withcases), sel_Nilwithcases, sel_Conswithcases, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_withcases }, { "withcase", sizeof(struct kc_tag_withcase), sel_Withcase, sel_Withcase, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_withcase }, { "unparsedeclarations", sizeof(struct kc_tag_unparsedeclarations), sel_Nilunparsedeclarations, sel_Consunparsedeclarations, kc_not_uniq, 0 }, { "unparsedeclaration", sizeof(struct kc_tag_unparsedeclaration), sel_UnparseDeclaration, sel_UnparseDeclaration, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_unparsedeclaration }, { "unparseclauses", sizeof(struct kc_tag_unparseclauses), sel_Nilunparseclauses, sel_Consunparseclauses, kc_not_uniq, 0 }, { "unparseclause", sizeof(struct kc_tag_unparseclause), sel_UnparseClause, sel_UnparseClause, kc_not_uniq, 0 }, { "viewnames", sizeof(struct kc_tag_viewnames), sel_Nilviewnames, sel_Consviewnames, kc_not_uniq, 0 }, { "unparseitems", sizeof(struct kc_tag_unparseitems), sel_Nilunparseitems, sel_Consunparseitems, kc_not_uniq, 0 }, { "unparseitem", sizeof(struct kc_tag_unparseitem), sel_UnpStr, sel_UnpBody, kc_not_uniq, 0 }, { "unpsubterm", sizeof(struct kc_tag_unpsubterm), sel_UnpSubTerm, sel_UnpCastedVariable, kc_not_uniq, 0 }, { "unpattributes", sizeof(struct kc_tag_unpattributes), sel_Nilunpattributes, sel_Consunpattributes, kc_not_uniq, 0 }, { "viewnameoption", sizeof(struct kc_tag_viewnameoption), sel_NoViewname, sel_YesViewname, kc_not_uniq, 0 }, { "filelinestack", sizeof(struct kc_tag_filelinestack), sel_Nilfilelinestack, sel_Consfilelinestack, kc_not_uniq, 0 }, { "fileline", sizeof(struct kc_tag_fileline), sel_FileLine, sel_PosNoFileLine, kc_not_uniq, 0 }, { "nooperatorsstack", sizeof(struct kc_tag_nooperatorsstack), sel_Nilnooperatorsstack, sel_Consnooperatorsstack, kc_not_uniq, 0 }, { "scopetypefilelinestack", sizeof(struct kc_tag_scopetypefilelinestack), sel_Nilscopetypefilelinestack, sel_Consscopetypefilelinestack, kc_not_uniq, 0 }, { "scopetypefileline", sizeof(struct kc_tag_scopetypefileline), sel_ScopeTypeFileLine, sel_ScopeTypeFileLine, kc_not_uniq, 0 }, { "IDtype", sizeof(struct kc_tag_IDtype), sel_ITUnknown, sel_ITPatternVariable, kc_not_uniq, 0 }, { "operatorsstack", sizeof(struct kc_tag_operatorsstack), sel_Niloperatorsstack, sel_Consoperatorsstack, kc_not_uniq, 0 }, { "operators", sizeof(struct kc_tag_operators), sel_Niloperators, sel_Consoperators, kc_not_uniq, 0 }, { "phyla", sizeof(struct kc_tag_phyla), sel_Nilphyla, sel_Consphyla, kc_not_uniq, 0 }, { "variables", sizeof(struct kc_tag_variables), sel_Nilvariables, sel_Consvariables, kc_not_uniq, 0 }, { "argumentsstack", sizeof(struct kc_tag_argumentsstack), sel_Nilargumentsstack, sel_Consargumentsstack, kc_not_uniq, 0 }, { "phylumstack", sizeof(struct kc_tag_phylumstack), sel_Nilphylumstack, sel_Consphylumstack, kc_not_uniq, 0 }, { "phylumnamesstack", sizeof(struct kc_tag_phylumnamesstack), sel_Nilphylumnamesstack, sel_Consphylumnamesstack, kc_not_uniq, 0 }, { "withexpressionsstack", sizeof(struct kc_tag_withexpressionsstack), sel_Nilwithexpressionsstack, sel_Conswithexpressionsstack, kc_not_uniq, 0 }, { "operatorstack", sizeof(struct kc_tag_operatorstack), sel_Niloperatorstack, sel_Consoperatorstack, kc_not_uniq, 0 }, { "variablesstack", sizeof(struct kc_tag_variablesstack), sel_Nilvariablesstack, sel_Consvariablesstack, kc_not_uniq, 0 }, { "selvarstack", sizeof(struct kc_tag_selvarstack), sel_Nilselvarstack, sel_Consselvarstack, kc_not_uniq, 0 }, { "dollarvarstatus", sizeof(struct kc_tag_dollarvarstatus), sel_DVAllowed, sel_DVDisallowed, kc_not_uniq, 0 }, { "dollarvarsallowedstack", sizeof(struct kc_tag_dollarvarsallowedstack), sel_Nildollarvarsallowedstack, sel_Consdollarvarsallowedstack, kc_not_uniq, 0 }, { "intstack", sizeof(struct kc_tag_intstack), sel_Nilintstack, sel_Consintstack, kc_not_uniq, 0 }, { "idCexpressionsstack", sizeof(struct kc_tag_idCexpressionsstack), sel_NilidCexpressionsstack, sel_ConsidCexpressionsstack, kc_not_uniq, 0 }, { "two_phyla", sizeof(struct kc_tag_two_phyla), sel_TwoStorageoption, sel_TwoPath, kc_not_uniq, 0 }, { "tribool", sizeof(struct kc_tag_tribool), sel_Equal, sel_Bigger, kc_not_uniq, 0 }, { "patternrepresentations", sizeof(struct kc_tag_patternrepresentations), sel_Nilpatternrepresentations, sel_Conspatternrepresentations, kc_not_uniq, 0 }, { "patternrepresentation", sizeof(struct kc_tag_patternrepresentation), sel_Nilpatternrepresentation, sel_Conspatternrepresentation, kc_not_uniq, 0 }, { "elem_patternrepresentation", sizeof(struct kc_tag_elem_patternrepresentation), sel_PRBinding, sel_PRIntLiteral, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_elem_patternrepresentation }, { "path", sizeof(struct kc_tag_path), sel_Nilpath, sel_Conspath, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_path }, { "paths", sizeof(struct kc_tag_paths), sel_Nilpaths, sel_Conspaths, kc_not_uniq, 0 }, { "argsnumbers", sizeof(struct kc_tag_argsnumbers), sel_Nilargsnumbers, sel_Consargsnumbers, kc_not_uniq, 0 }, { "rewriterulesinfo", sizeof(struct kc_tag_rewriterulesinfo), sel_Nilrewriterulesinfo, sel_Consrewriterulesinfo, kc_not_uniq, 0 }, { "rewriteruleinfo", sizeof(struct kc_tag_rewriteruleinfo), sel_Rewriteruleinfo, sel_Rewriteruleinfo, kc_not_uniq, 0 }, { "withcasesinfo", sizeof(struct kc_tag_withcasesinfo), sel_Nilwithcasesinfo, sel_Conswithcasesinfo, kc_not_uniq, 0 }, { "withcaseinfo", sizeof(struct kc_tag_withcaseinfo), sel_Withcaseinfo, sel_Withcaseinfo, kc_not_uniq, 0 }, { "rewriteviewsinfo", sizeof(struct kc_tag_rewriteviewsinfo), sel_Nilrewriteviewsinfo, sel_Consrewriteviewsinfo, kc_not_uniq, 0 }, { "rewriteviewinfo", sizeof(struct kc_tag_rewriteviewinfo), sel_Rewriteviewinfo, sel_Rewriteviewinfo, kc_not_uniq, 0 }, { "unparseviewsinfo", sizeof(struct kc_tag_unparseviewsinfo), sel_Nilunparseviewsinfo, sel_Consunparseviewsinfo, kc_not_uniq, 0 }, { "unparseviewinfo", sizeof(struct kc_tag_unparseviewinfo), sel_Unparseviewinfo, sel_Unparseviewinfo, kc_not_uniq, 0 }, { "unparsedeclsinfo", sizeof(struct kc_tag_unparsedeclsinfo), sel_Nilunparsedeclsinfo, sel_Consunparsedeclsinfo, kc_not_uniq, 0 }, { "unparsedeclinfo", sizeof(struct kc_tag_unparsedeclinfo), sel_Unparsedeclinfo, sel_Unparsedeclinfo, kc_not_uniq, 0 }, { "ac_declaration", sizeof(struct kc_tag_ac_declaration), sel_AcDeclaration, sel_AcDeclaration, kc_not_uniq, 0 }, { "ac_declaration_list", sizeof(struct kc_tag_ac_declaration_list), sel_Nilac_declaration_list, sel_Consac_declaration_list, kc_not_uniq, 0 }, { "ac_declaration_specifiers", sizeof(struct kc_tag_ac_declaration_specifiers), sel_Nilac_declaration_specifiers, sel_Consac_declaration_specifiers, kc_not_uniq, 0 }, { "ac_declaration_specifier", sizeof(struct kc_tag_ac_declaration_specifier), sel_AcDeclSpecStorageSpec, sel_AcDeclSpecTypeQual, kc_not_uniq, 0 }, { "ac_storage_class_specifier", sizeof(struct kc_tag_ac_storage_class_specifier), sel_AcAuto, sel_AcTypedef, kc_not_uniq, 0 }, { "ac_type_specifier", sizeof(struct kc_tag_ac_type_specifier), sel_AcTypeSpec, sel_AcTypeSpec, kc_not_uniq, 0 }, { "ac_type_qualifier", sizeof(struct kc_tag_ac_type_qualifier), sel_AcConst, sel_AcVolatile, kc_not_uniq, 0 }, { "ac_init_declarator_list", sizeof(struct kc_tag_ac_init_declarator_list), sel_Nilac_init_declarator_list, sel_Consac_init_declarator_list, kc_not_uniq, 0 }, { "ac_init_declarator", sizeof(struct kc_tag_ac_init_declarator), sel_AcInitDecl, sel_AcInitDecl, kc_not_uniq, 0 }, { "ac_declarator", sizeof(struct kc_tag_ac_declarator), sel_AcDeclarator, sel_AcDeclarator, kc_not_uniq, 0 }, { "ac_direct_declarator", sizeof(struct kc_tag_ac_direct_declarator), sel_AcDirectDeclId, sel_AcDirectDeclKandR, kc_not_uniq, 0 }, { "ac_pointer_option", sizeof(struct kc_tag_ac_pointer_option), sel_Nopointer, sel_Yespointer, kc_not_uniq, 0 }, { "ac_pointer", sizeof(struct kc_tag_ac_pointer), sel_AcPointerNil, sel_AcPointerCons, kc_not_uniq, 0 }, { "ac_type_qualifier_list", sizeof(struct kc_tag_ac_type_qualifier_list), sel_Nilac_type_qualifier_list, sel_Consac_type_qualifier_list, kc_not_uniq, 0 }, { "ac_parameter_type_list", sizeof(struct kc_tag_ac_parameter_type_list), sel_AcParList, sel_AcParList3Dot, kc_not_uniq, 0 }, { "ac_parameter_list", sizeof(struct kc_tag_ac_parameter_list), sel_Nilac_parameter_list, sel_Consac_parameter_list, kc_not_uniq, 0 }, { "ac_parameter_declaration", sizeof(struct kc_tag_ac_parameter_declaration), sel_AcParDeclDecl, sel_AcParDeclAbsdecl, kc_not_uniq, 0 }, { "ac_identifier_list", sizeof(struct kc_tag_ac_identifier_list), sel_Nilac_identifier_list, sel_Consac_identifier_list, kc_not_uniq, 0 }, { "ac_abstract_declarator", sizeof(struct kc_tag_ac_abstract_declarator), sel_AcAbsdeclPointer, sel_AcAbsdeclDirdecl, kc_not_uniq, 0 }, { "ac_direct_abstract_declarator_option", sizeof(struct kc_tag_ac_direct_abstract_declarator_option), sel_Noac_direct_abstract_declarator, sel_Yesac_direct_abstract_declarator, kc_not_uniq, 0 }, { "ac_direct_abstract_declarator", sizeof(struct kc_tag_ac_direct_abstract_declarator), sel_AcDirAbsdeclPack, sel_AcDirAbsdeclFn, kc_not_uniq, 0 }, { "ac_constant_expression_option", sizeof(struct kc_tag_ac_constant_expression_option), sel_Yesac_constant_expression, sel_Yesac_constant_expression, kc_not_uniq, 0 }, { "ac_constant_expression", sizeof(struct kc_tag_ac_constant_expression), sel_AcConstExpr, sel_AcConstExpr, kc_not_uniq, 0 }, { "error", sizeof(struct kc_tag_error), sel_Fatal, sel_Warning, kc_not_uniq, 0 }, { "problem", sizeof(struct kc_tag_problem), sel_Problem1, sel_Problem6, kc_not_uniq, 0 }, { "addedphylumdeclarations", sizeof(struct kc_tag_addedphylumdeclarations), sel_Niladdedphylumdeclarations, sel_Consaddedphylumdeclarations, kc_not_uniq, 0 }, { "addedphylumdeclaration", sizeof(struct kc_tag_addedphylumdeclaration), sel_AddedPhylumdeclaration, sel_AddedPhylumdeclaration, kc_not_uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_addedphylumdeclaration }, { "countedphylumdeclarations", sizeof(struct kc_tag_countedphylumdeclarations), sel_Nilcountedphylumdeclarations, sel_Conscountedphylumdeclarations, kc_not_uniq, 0 }, { "countedphylumdeclaration", sizeof(struct kc_tag_countedphylumdeclaration), sel_CountedPhylumdeclaration, sel_CountedPhylumdeclaration, uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_countedphylumdeclaration }, { "bindingidmarks", sizeof(struct kc_tag_bindingidmarks), sel_Nilbindingidmarks, sel_Consbindingidmarks, uniq, 0 }, { "bindingidmark", sizeof(struct kc_tag_bindingidmark), sel_BindingIdMark, sel_BindingIdMark, uniq, KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_bindingidmark }, { "", 0, kc_one_before_first_operator, kc_one_before_first_operator, (kc_storageclass_t)0, 0 } /* last element */ }; static uniqID kc_opfn_Str #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1) #else (kc_prod_sel, casestring_1)kc_enum_operators kc_prod_sel; casestring casestring_1; #endif { return Str(casestring_1); } static ID kc_opfn_Id #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, uniqID uniqID_1) #else (kc_prod_sel, uniqID_1)kc_enum_operators kc_prod_sel; uniqID uniqID_1; #endif { return Id(uniqID_1); } static INT kc_opfn_Int #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, int int_1) #else (kc_prod_sel, int_1)kc_enum_operators kc_prod_sel; int int_1; #endif { return Int(int_1); } static STRING kc_opfn_String #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1) #else (kc_prod_sel, casestring_1)kc_enum_operators kc_prod_sel; casestring casestring_1; #endif { return String(casestring_1); } static phylumdeclarationsroot kc_opfn_PhylumDeclarations #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, phylumdeclarations phylumdeclarations_1) #else (kc_prod_sel, phylumdeclarations_1)kc_enum_operators kc_prod_sel; phylumdeclarations phylumdeclarations_1; #endif { return PhylumDeclarations(phylumdeclarations_1); } static phylumdeclarations kc_opfn_Nilphylumdeclarations #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilphylumdeclarations(); } static phylumdeclarations kc_opfn_Consphylumdeclarations #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, phylumdeclaration phylumdeclaration_1, phylumdeclarations phylumdeclarations_1) #else (kc_prod_sel, phylumdeclaration_1, phylumdeclarations_1)kc_enum_operators kc_prod_sel; phylumdeclaration phylumdeclaration_1; phylumdeclarations phylumdeclarations_1; #endif { return Consphylumdeclarations(phylumdeclaration_1, phylumdeclarations_1); } static phylumnames kc_opfn_Nilphylumnames #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilphylumnames(); } static phylumnames kc_opfn_Consphylumnames #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, phylumnames phylumnames_1) #else (kc_prod_sel, ID_1, phylumnames_1)kc_enum_operators kc_prod_sel; ID ID_1; phylumnames phylumnames_1; #endif { return Consphylumnames(ID_1, phylumnames_1); } static phylumdeclaration kc_opfn_PhylumDeclaration #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, storageoption storageoption_1, productionblock productionblock_1, Ccode_option Ccode_option_1) #else (kc_prod_sel, ID_1, storageoption_1, productionblock_1, Ccode_option_1)kc_enum_operators kc_prod_sel; ID ID_1; storageoption storageoption_1; productionblock productionblock_1; Ccode_option Ccode_option_1; #endif { return PhylumDeclaration(ID_1, storageoption_1, productionblock_1, Ccode_option_1); } static storageoption kc_opfn_NoStorageOption #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return NoStorageOption(); } static storageoption kc_opfn_NegativeStorageOption #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1) #else (kc_prod_sel, ID_1)kc_enum_operators kc_prod_sel; ID ID_1; #endif { return NegativeStorageOption(ID_1); } static storageoption kc_opfn_PositiveStorageOption #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1) #else (kc_prod_sel, ID_1)kc_enum_operators kc_prod_sel; ID ID_1; #endif { return PositiveStorageOption(ID_1); } static storageclasses kc_opfn_Nilstorageclasses #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilstorageclasses(); } static storageclasses kc_opfn_Consstorageclasses #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, storageclasses storageclasses_1) #else (kc_prod_sel, ID_1, storageclasses_1)kc_enum_operators kc_prod_sel; ID ID_1; storageclasses storageclasses_1; #endif { return Consstorageclasses(ID_1, storageclasses_1); } static productionblock kc_opfn_Emptyproductionblock #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Emptyproductionblock(); } static productionblock kc_opfn_ListAlternatives #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, alternatives alternatives_1, ID ID_1) #else (kc_prod_sel, alternatives_1, ID_1)kc_enum_operators kc_prod_sel; alternatives alternatives_1; ID ID_1; #endif { return ListAlternatives(alternatives_1, ID_1); } static productionblock kc_opfn_NonlistAlternatives #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, alternatives alternatives_1) #else (kc_prod_sel, alternatives_1)kc_enum_operators kc_prod_sel; alternatives alternatives_1; #endif { return NonlistAlternatives(alternatives_1); } static productionblock kc_opfn_PredefinedAlternatives #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, alternatives alternatives_1) #else (kc_prod_sel, alternatives_1)kc_enum_operators kc_prod_sel; alternatives alternatives_1; #endif { return PredefinedAlternatives(alternatives_1); } static alternatives kc_opfn_Nilalternatives #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilalternatives(); } static alternatives kc_opfn_Consalternatives #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, alternative alternative_1, alternatives alternatives_1) #else (kc_prod_sel, alternative_1, alternatives_1)kc_enum_operators kc_prod_sel; alternative alternative_1; alternatives alternatives_1; #endif { return Consalternatives(alternative_1, alternatives_1); } static alternative kc_opfn_Alternative #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, arguments arguments_1) #else (kc_prod_sel, ID_1, arguments_1)kc_enum_operators kc_prod_sel; ID ID_1; arguments arguments_1; #endif { return Alternative(ID_1, arguments_1); } static arguments kc_opfn_Nilarguments #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilarguments(); } static arguments kc_opfn_Consarguments #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, arguments arguments_1) #else (kc_prod_sel, ID_1, arguments_1)kc_enum_operators kc_prod_sel; ID ID_1; arguments arguments_1; #endif { return Consarguments(ID_1, arguments_1); } static argument kc_opfn_Argument #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, int int_1) #else (kc_prod_sel, ID_1, int_1)kc_enum_operators kc_prod_sel; ID ID_1; int int_1; #endif { return Argument(ID_1, int_1); } static Ccode_option kc_opfn_CcodeOption #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, attributes attributes_1, Ctexts Ctexts_1) #else (kc_prod_sel, attributes_1, Ctexts_1)kc_enum_operators kc_prod_sel; attributes attributes_1; Ctexts Ctexts_1; #endif { return CcodeOption(attributes_1, Ctexts_1); } static attributes kc_opfn_Nilattributes #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilattributes(); } static attributes kc_opfn_Consattributes #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, attribute attribute_1, attributes attributes_1) #else (kc_prod_sel, attribute_1, attributes_1)kc_enum_operators kc_prod_sel; attribute attribute_1; attributes attributes_1; #endif { return Consattributes(attribute_1, attributes_1); } static attribute kc_opfn_Attribute #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, ID ID_2, attribute_initialisation_option attribute_initialisation_option_1) #else (kc_prod_sel, ID_1, ID_2, attribute_initialisation_option_1)kc_enum_operators kc_prod_sel; ID ID_1; ID ID_2; attribute_initialisation_option attribute_initialisation_option_1; #endif { return Attribute(ID_1, ID_2, attribute_initialisation_option_1); } static attribute_initialisation_option kc_opfn_Noattribute_initialisation #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Noattribute_initialisation(); } static attribute_initialisation_option kc_opfn_Yesattribute_initialisation #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, Cexpression Cexpression_1) #else (kc_prod_sel, Cexpression_1)kc_enum_operators kc_prod_sel; Cexpression Cexpression_1; #endif { return Yesattribute_initialisation(Cexpression_1); } static Cexpression kc_opfn_NilCexpression #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return NilCexpression(); } static Cexpression kc_opfn_ConsCexpression #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, Cexpression_elem Cexpression_elem_1, Cexpression Cexpression_1) #else (kc_prod_sel, Cexpression_elem_1, Cexpression_1)kc_enum_operators kc_prod_sel; Cexpression_elem Cexpression_elem_1; Cexpression Cexpression_1; #endif { return ConsCexpression(Cexpression_elem_1, Cexpression_1); } static Cexpression_elem kc_opfn_CExpressionPart #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1) #else (kc_prod_sel, casestring_1)kc_enum_operators kc_prod_sel; casestring casestring_1; #endif { return CExpressionPart(casestring_1); } static Cexpression_elem kc_opfn_CExpressionDollarvar #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, INT INT_1) #else (kc_prod_sel, INT_1)kc_enum_operators kc_prod_sel; INT INT_1; #endif { return CExpressionDollarvar(INT_1); } static Cexpression_elem kc_opfn_CExpressionNl #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, int int_1) #else (kc_prod_sel, int_1)kc_enum_operators kc_prod_sel; int int_1; #endif { return CExpressionNl(int_1); } static Cexpression_elem kc_opfn_CExpressionDQ #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, CexpressionDQ CexpressionDQ_1) #else (kc_prod_sel, CexpressionDQ_1)kc_enum_operators kc_prod_sel; CexpressionDQ CexpressionDQ_1; #endif { return CExpressionDQ(CexpressionDQ_1); } static Cexpression_elem kc_opfn_CExpressionSQ #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, CexpressionSQ CexpressionSQ_1) #else (kc_prod_sel, CexpressionSQ_1)kc_enum_operators kc_prod_sel; CexpressionSQ CexpressionSQ_1; #endif { return CExpressionSQ(CexpressionSQ_1); } static Cexpression_elem kc_opfn_CExpressionPack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, Cexpression Cexpression_1) #else (kc_prod_sel, Cexpression_1)kc_enum_operators kc_prod_sel; Cexpression Cexpression_1; #endif { return CExpressionPack(Cexpression_1); } static Cexpression_elem kc_opfn_CExpressionArray #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, Cexpression Cexpression_1) #else (kc_prod_sel, Cexpression_1)kc_enum_operators kc_prod_sel; Cexpression Cexpression_1; #endif { return CExpressionArray(Cexpression_1); } static CexpressionDQ kc_opfn_NilCexpressionDQ #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return NilCexpressionDQ(); } static CexpressionDQ kc_opfn_ConsCexpressionDQ #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, CexpressionDQ_elem CexpressionDQ_elem_1, CexpressionDQ CexpressionDQ_1) #else (kc_prod_sel, CexpressionDQ_elem_1, CexpressionDQ_1)kc_enum_operators kc_prod_sel; CexpressionDQ_elem CexpressionDQ_elem_1; CexpressionDQ CexpressionDQ_1; #endif { return ConsCexpressionDQ(CexpressionDQ_elem_1, CexpressionDQ_1); } static CexpressionDQ_elem kc_opfn_CExpressionDQPart #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1) #else (kc_prod_sel, casestring_1)kc_enum_operators kc_prod_sel; casestring casestring_1; #endif { return CExpressionDQPart(casestring_1); } static CexpressionDQ_elem kc_opfn_CExpressionDQNl #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, int int_1) #else (kc_prod_sel, int_1)kc_enum_operators kc_prod_sel; int int_1; #endif { return CExpressionDQNl(int_1); } static CexpressionSQ kc_opfn_NilCexpressionSQ #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return NilCexpressionSQ(); } static CexpressionSQ kc_opfn_ConsCexpressionSQ #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, CexpressionSQ_elem CexpressionSQ_elem_1, CexpressionSQ CexpressionSQ_1) #else (kc_prod_sel, CexpressionSQ_elem_1, CexpressionSQ_1)kc_enum_operators kc_prod_sel; CexpressionSQ_elem CexpressionSQ_elem_1; CexpressionSQ CexpressionSQ_1; #endif { return ConsCexpressionSQ(CexpressionSQ_elem_1, CexpressionSQ_1); } static CexpressionSQ_elem kc_opfn_CExpressionSQPart #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1) #else (kc_prod_sel, casestring_1)kc_enum_operators kc_prod_sel; casestring casestring_1; #endif { return CExpressionSQPart(casestring_1); } static CexpressionSQ_elem kc_opfn_CExpressionSQNl #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, int int_1) #else (kc_prod_sel, int_1)kc_enum_operators kc_prod_sel; int int_1; #endif { return CExpressionSQNl(int_1); } static idCexpressions kc_opfn_NilidCexpressions #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return NilidCexpressions(); } static idCexpressions kc_opfn_ConsidCexpressions #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, idCexpression idCexpression_1, idCexpressions idCexpressions_1) #else (kc_prod_sel, idCexpression_1, idCexpressions_1)kc_enum_operators kc_prod_sel; idCexpression idCexpression_1; idCexpressions idCexpressions_1; #endif { return ConsidCexpressions(idCexpression_1, idCexpressions_1); } static idCexpression kc_opfn_IdCexpression #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, Cexpression Cexpression_1) #else (kc_prod_sel, ID_1, Cexpression_1)kc_enum_operators kc_prod_sel; ID ID_1; Cexpression Cexpression_1; #endif { return IdCexpression(ID_1, Cexpression_1); } static Ctexts kc_opfn_NilCtexts #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return NilCtexts(); } static Ctexts kc_opfn_ConsCtexts #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, Ctext Ctext_1, Ctexts Ctexts_1) #else (kc_prod_sel, Ctext_1, Ctexts_1)kc_enum_operators kc_prod_sel; Ctext Ctext_1; Ctexts Ctexts_1; #endif { return ConsCtexts(Ctext_1, Ctexts_1); } static includefiles kc_opfn_Nilincludefiles #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilincludefiles(); } static includefiles kc_opfn_Consincludefiles #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, includefile includefile_1, includefiles includefiles_1) #else (kc_prod_sel, includefile_1, includefiles_1)kc_enum_operators kc_prod_sel; includefile includefile_1; includefiles includefiles_1; #endif { return Consincludefiles(includefile_1, includefiles_1); } static includefile kc_opfn_IncludeFile #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1) #else (kc_prod_sel, casestring_1)kc_enum_operators kc_prod_sel; casestring casestring_1; #endif { return IncludeFile(casestring_1); } static includedeclarations kc_opfn_Nilincludedeclarations #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilincludedeclarations(); } static includedeclarations kc_opfn_Consincludedeclarations #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, includedeclaration includedeclaration_1, includedeclarations includedeclarations_1) #else (kc_prod_sel, includedeclaration_1, includedeclarations_1)kc_enum_operators kc_prod_sel; includedeclaration includedeclaration_1; includedeclarations includedeclarations_1; #endif { return Consincludedeclarations(includedeclaration_1, includedeclarations_1); } static includedeclaration kc_opfn_IncludeDeclaration #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, includes includes_1) #else (kc_prod_sel, includes_1)kc_enum_operators kc_prod_sel; includes includes_1; #endif { return IncludeDeclaration(includes_1); } static includes kc_opfn_Nilincludes #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilincludes(); } static includes kc_opfn_Consincludes #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, include include_1, includes includes_1) #else (kc_prod_sel, include_1, includes_1)kc_enum_operators kc_prod_sel; include include_1; includes includes_1; #endif { return Consincludes(include_1, includes_1); } static include kc_opfn_Include #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1) #else (kc_prod_sel, casestring_1)kc_enum_operators kc_prod_sel; casestring casestring_1; #endif { return Include(casestring_1); } static include kc_opfn_IncludeNl #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, int int_1) #else (kc_prod_sel, int_1)kc_enum_operators kc_prod_sel; int int_1; #endif { return IncludeNl(int_1); } static rwdeclarations kc_opfn_Nilrwdeclarations #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilrwdeclarations(); } static rwdeclarations kc_opfn_Consrwdeclarations #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, rwdeclaration rwdeclaration_1, rwdeclarations rwdeclarations_1) #else (kc_prod_sel, rwdeclaration_1, rwdeclarations_1)kc_enum_operators kc_prod_sel; rwdeclaration rwdeclaration_1; rwdeclarations rwdeclarations_1; #endif { return Consrwdeclarations(rwdeclaration_1, rwdeclarations_1); } static rwdeclaration kc_opfn_RwDeclaration #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, outmostpatterns outmostpatterns_1, rewriteclauses rewriteclauses_1) #else (kc_prod_sel, outmostpatterns_1, rewriteclauses_1)kc_enum_operators kc_prod_sel; outmostpatterns outmostpatterns_1; rewriteclauses rewriteclauses_1; #endif { return RwDeclaration(outmostpatterns_1, rewriteclauses_1); } static rewriteclauses kc_opfn_Nilrewriteclauses #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilrewriteclauses(); } static rewriteclauses kc_opfn_Consrewriteclauses #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, rewriteclause rewriteclause_1, rewriteclauses rewriteclauses_1) #else (kc_prod_sel, rewriteclause_1, rewriteclauses_1)kc_enum_operators kc_prod_sel; rewriteclause rewriteclause_1; rewriteclauses rewriteclauses_1; #endif { return Consrewriteclauses(rewriteclause_1, rewriteclauses_1); } static rewriteclause kc_opfn_RewriteClause #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, viewnames viewnames_1, term term_1) #else (kc_prod_sel, viewnames_1, term_1)kc_enum_operators kc_prod_sel; viewnames viewnames_1; term term_1; #endif { return RewriteClause(viewnames_1, term_1); } static patternchains kc_opfn_Nilpatternchains #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilpatternchains(); } static patternchains kc_opfn_Conspatternchains #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, patternchain patternchain_1, patternchains patternchains_1) #else (kc_prod_sel, patternchain_1, patternchains_1)kc_enum_operators kc_prod_sel; patternchain patternchain_1; patternchains patternchains_1; #endif { return Conspatternchains(patternchain_1, patternchains_1); } static patternchain kc_opfn_Nilpatternchain #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilpatternchain(); } static patternchain kc_opfn_Conspatternchain #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, patternchainitem patternchainitem_1, patternchain patternchain_1) #else (kc_prod_sel, patternchainitem_1, patternchain_1)kc_enum_operators kc_prod_sel; patternchainitem patternchainitem_1; patternchain patternchain_1; #endif { return Conspatternchain(patternchainitem_1, patternchain_1); } static outmostpatterns kc_opfn_Niloutmostpatterns #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Niloutmostpatterns(); } static outmostpatterns kc_opfn_Consoutmostpatterns #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, outmostpattern outmostpattern_1, outmostpatterns outmostpatterns_1) #else (kc_prod_sel, outmostpattern_1, outmostpatterns_1)kc_enum_operators kc_prod_sel; outmostpattern outmostpattern_1; outmostpatterns outmostpatterns_1; #endif { return Consoutmostpatterns(outmostpattern_1, outmostpatterns_1); } static patternchainitem kc_opfn_PatternchainitemOutmost #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, outmostpattern outmostpattern_1) #else (kc_prod_sel, outmostpattern_1)kc_enum_operators kc_prod_sel; outmostpattern outmostpattern_1; #endif { return PatternchainitemOutmost(outmostpattern_1); } static patternchainitem kc_opfn_PatternchainitemGroup #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, patternchains patternchains_1) #else (kc_prod_sel, patternchains_1)kc_enum_operators kc_prod_sel; patternchains patternchains_1; #endif { return PatternchainitemGroup(patternchains_1); } static patternchainitem kc_opfn_PatternchainitemDollarid #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1) #else (kc_prod_sel, ID_1)kc_enum_operators kc_prod_sel; ID ID_1; #endif { return PatternchainitemDollarid(ID_1); } static outmostpattern kc_opfn_OPOperatorWildcard #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1) #else (kc_prod_sel, ID_1)kc_enum_operators kc_prod_sel; ID ID_1; #endif { return OPOperatorWildcard(ID_1); } static outmostpattern kc_opfn_OPOperator #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, patterns patterns_1) #else (kc_prod_sel, ID_1, patterns_1)kc_enum_operators kc_prod_sel; ID ID_1; patterns patterns_1; #endif { return OPOperator(ID_1, patterns_1); } static outmostpattern kc_opfn_OPNonLeafVariable #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, outmostpattern outmostpattern_1) #else (kc_prod_sel, ID_1, outmostpattern_1)kc_enum_operators kc_prod_sel; ID ID_1; outmostpattern outmostpattern_1; #endif { return OPNonLeafVariable(ID_1, outmostpattern_1); } static outmostpattern kc_opfn_OPWildcard #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return OPWildcard(); } static outmostpattern kc_opfn_OPDefault #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return OPDefault(); } static pattern kc_opfn_PVariable #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1) #else (kc_prod_sel, ID_1)kc_enum_operators kc_prod_sel; ID ID_1; #endif { return PVariable(ID_1); } static pattern kc_opfn_POperator #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, patterns patterns_1) #else (kc_prod_sel, ID_1, patterns_1)kc_enum_operators kc_prod_sel; ID ID_1; patterns patterns_1; #endif { return POperator(ID_1, patterns_1); } static pattern kc_opfn_PNonLeafVariable #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, pattern pattern_1) #else (kc_prod_sel, ID_1, pattern_1)kc_enum_operators kc_prod_sel; ID ID_1; pattern pattern_1; #endif { return PNonLeafVariable(ID_1, pattern_1); } static pattern kc_opfn_PWildcard #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return PWildcard(); } static pattern kc_opfn_PStringLiteral #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, CexpressionDQ CexpressionDQ_1) #else (kc_prod_sel, CexpressionDQ_1)kc_enum_operators kc_prod_sel; CexpressionDQ CexpressionDQ_1; #endif { return PStringLiteral(CexpressionDQ_1); } static pattern kc_opfn_PIntLiteral #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, INT INT_1) #else (kc_prod_sel, INT_1)kc_enum_operators kc_prod_sel; INT INT_1; #endif { return PIntLiteral(INT_1); } static patterns kc_opfn_Nilpatterns #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilpatterns(); } static patterns kc_opfn_Conspatterns #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, pattern pattern_1, patterns patterns_1) #else (kc_prod_sel, pattern_1, patterns_1)kc_enum_operators kc_prod_sel; pattern pattern_1; patterns patterns_1; #endif { return Conspatterns(pattern_1, patterns_1); } static term kc_opfn_TVariable #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1) #else (kc_prod_sel, ID_1)kc_enum_operators kc_prod_sel; ID ID_1; #endif { return TVariable(ID_1); } static term kc_opfn_TOperator #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, terms terms_1) #else (kc_prod_sel, ID_1, terms_1)kc_enum_operators kc_prod_sel; ID ID_1; terms terms_1; #endif { return TOperator(ID_1, terms_1); } static term kc_opfn_TStringLiteral #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, CexpressionDQ CexpressionDQ_1) #else (kc_prod_sel, CexpressionDQ_1)kc_enum_operators kc_prod_sel; CexpressionDQ CexpressionDQ_1; #endif { return TStringLiteral(CexpressionDQ_1); } static term kc_opfn_TIntLiteral #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, INT INT_1) #else (kc_prod_sel, INT_1)kc_enum_operators kc_prod_sel; INT INT_1; #endif { return TIntLiteral(INT_1); } static terms kc_opfn_Nilterms #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilterms(); } static terms kc_opfn_Consterms #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, term term_1, terms terms_1) #else (kc_prod_sel, term_1, terms_1)kc_enum_operators kc_prod_sel; term term_1; terms terms_1; #endif { return Consterms(term_1, terms_1); } static fnfiles kc_opfn_Nilfnfiles #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilfnfiles(); } static fnfiles kc_opfn_Consfnfiles #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, fnfile fnfile_1, fnfiles fnfiles_1) #else (kc_prod_sel, fnfile_1, fnfiles_1)kc_enum_operators kc_prod_sel; fnfile fnfile_1; fnfiles fnfiles_1; #endif { return Consfnfiles(fnfile_1, fnfiles_1); } static fnfile kc_opfn_FnFile #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1) #else (kc_prod_sel, casestring_1)kc_enum_operators kc_prod_sel; casestring casestring_1; #endif { return FnFile(casestring_1); } static fndeclarations kc_opfn_Nilfndeclarations #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilfndeclarations(); } static fndeclarations kc_opfn_Consfndeclarations #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, fndeclaration fndeclaration_1, fndeclarations fndeclarations_1) #else (kc_prod_sel, fndeclaration_1, fndeclarations_1)kc_enum_operators kc_prod_sel; fndeclaration fndeclaration_1; fndeclarations fndeclarations_1; #endif { return Consfndeclarations(fndeclaration_1, fndeclarations_1); } static fndeclaration kc_opfn_FnDeclaration #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, int int_1, ID ID_2, fnarguments fnarguments_1, Cvariabledeclarations Cvariabledeclarations_1, Ctext Ctext_1, fnclass fnclass_1) #else (kc_prod_sel, ID_1, int_1, ID_2, fnarguments_1, Cvariabledeclarations_1, Ctext_1, fnclass_1)kc_enum_operators kc_prod_sel; ID ID_1; int int_1; ID ID_2; fnarguments fnarguments_1; Cvariabledeclarations Cvariabledeclarations_1; Ctext Ctext_1; fnclass fnclass_1; #endif { return FnDeclaration(ID_1, int_1, ID_2, fnarguments_1, Cvariabledeclarations_1, Ctext_1, fnclass_1); } static fndeclaration kc_opfn_FnAcDeclaration #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_declaration_specifiers ac_declaration_specifiers_1, ac_declarator ac_declarator_1, ac_declaration_list ac_declaration_list_1, Ctext Ctext_1, ID ID_1, fnclass fnclass_1) #else (kc_prod_sel, ac_declaration_specifiers_1, ac_declarator_1, ac_declaration_list_1, Ctext_1, ID_1, fnclass_1)kc_enum_operators kc_prod_sel; ac_declaration_specifiers ac_declaration_specifiers_1; ac_declarator ac_declarator_1; ac_declaration_list ac_declaration_list_1; Ctext Ctext_1; ID ID_1; fnclass fnclass_1; #endif { return FnAcDeclaration(ac_declaration_specifiers_1, ac_declarator_1, ac_declaration_list_1, Ctext_1, ID_1, fnclass_1); } static fnclass kc_opfn_GlobalFn #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return GlobalFn(); } static fnclass kc_opfn_LocalFn #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1) #else (kc_prod_sel, casestring_1)kc_enum_operators kc_prod_sel; casestring casestring_1; #endif { return LocalFn(casestring_1); } static fnarguments kc_opfn_Nilfnarguments #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilfnarguments(); } static fnarguments kc_opfn_Consfnarguments #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, fnarguments fnarguments_1) #else (kc_prod_sel, ID_1, fnarguments_1)kc_enum_operators kc_prod_sel; ID ID_1; fnarguments fnarguments_1; #endif { return Consfnarguments(ID_1, fnarguments_1); } static Cvariabledeclarations kc_opfn_NilCvariabledeclarations #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return NilCvariabledeclarations(); } static Cvariabledeclarations kc_opfn_ConsCvariabledeclarations #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, Cvariabledeclaration Cvariabledeclaration_1, Cvariabledeclarations Cvariabledeclarations_1) #else (kc_prod_sel, Cvariabledeclaration_1, Cvariabledeclarations_1)kc_enum_operators kc_prod_sel; Cvariabledeclaration Cvariabledeclaration_1; Cvariabledeclarations Cvariabledeclarations_1; #endif { return ConsCvariabledeclarations(Cvariabledeclaration_1, Cvariabledeclarations_1); } static Cvariabledeclaration kc_opfn_CVariabledeclaration #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, Cvariables Cvariables_1) #else (kc_prod_sel, ID_1, Cvariables_1)kc_enum_operators kc_prod_sel; ID ID_1; Cvariables Cvariables_1; #endif { return CVariabledeclaration(ID_1, Cvariables_1); } static Cvariabledeclaration kc_opfn_Fnargfpdecl #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, Cvariables Cvariables_1) #else (kc_prod_sel, ID_1, Cvariables_1)kc_enum_operators kc_prod_sel; ID ID_1; Cvariables Cvariables_1; #endif { return Fnargfpdecl(ID_1, Cvariables_1); } static Cvariables kc_opfn_NilCvariables #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return NilCvariables(); } static Cvariables kc_opfn_ConsCvariables #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, Cvariable Cvariable_1, Cvariables Cvariables_1) #else (kc_prod_sel, Cvariable_1, Cvariables_1)kc_enum_operators kc_prod_sel; Cvariable Cvariable_1; Cvariables Cvariables_1; #endif { return ConsCvariables(Cvariable_1, Cvariables_1); } static Cvariable kc_opfn_CVPointer #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, int int_1, ID ID_1) #else (kc_prod_sel, int_1, ID_1)kc_enum_operators kc_prod_sel; int int_1; ID ID_1; #endif { return CVPointer(int_1, ID_1); } static Cvariable kc_opfn_CVFunction #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, int int_1, int int_2, ID ID_1) #else (kc_prod_sel, int_1, int_2, ID_1)kc_enum_operators kc_prod_sel; int int_1; int int_2; ID ID_1; #endif { return CVFunction(int_1, int_2, ID_1); } static Ctext kc_opfn_NilCtext #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return NilCtext(); } static Ctext kc_opfn_ConsCtext #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, Ctext_elem Ctext_elem_1, Ctext Ctext_1) #else (kc_prod_sel, Ctext_elem_1, Ctext_1)kc_enum_operators kc_prod_sel; Ctext_elem Ctext_elem_1; Ctext Ctext_1; #endif { return ConsCtext(Ctext_elem_1, Ctext_1); } static Ctext_elem kc_opfn_CTextLine #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1) #else (kc_prod_sel, casestring_1)kc_enum_operators kc_prod_sel; casestring casestring_1; #endif { return CTextLine(casestring_1); } static Ctext_elem kc_opfn_CTextDollarVar #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, INT INT_1) #else (kc_prod_sel, INT_1)kc_enum_operators kc_prod_sel; INT INT_1; #endif { return CTextDollarVar(INT_1); } static Ctext_elem kc_opfn_CTextNl #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, int int_1) #else (kc_prod_sel, int_1)kc_enum_operators kc_prod_sel; int int_1; #endif { return CTextNl(int_1); } static Ctext_elem kc_opfn_CTextCexpressionDQ #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, CexpressionDQ CexpressionDQ_1) #else (kc_prod_sel, CexpressionDQ_1)kc_enum_operators kc_prod_sel; CexpressionDQ CexpressionDQ_1; #endif { return CTextCexpressionDQ(CexpressionDQ_1); } static Ctext_elem kc_opfn_CTextCexpressionSQ #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, CexpressionSQ CexpressionSQ_1) #else (kc_prod_sel, CexpressionSQ_1)kc_enum_operators kc_prod_sel; CexpressionSQ CexpressionSQ_1; #endif { return CTextCexpressionSQ(CexpressionSQ_1); } static Ctext_elem kc_opfn_CTextCbody #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, Ctext Ctext_1) #else (kc_prod_sel, Ctext_1)kc_enum_operators kc_prod_sel; Ctext Ctext_1; #endif { return CTextCbody(Ctext_1); } static Ctext_elem kc_opfn_CTextForeachexpression #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, patternchain patternchain_1, idCexpressions idCexpressions_1, withexpressions withexpressions_1, Ctext Ctext_1, foreach_after foreach_after_1) #else (kc_prod_sel, patternchain_1, idCexpressions_1, withexpressions_1, Ctext_1, foreach_after_1)kc_enum_operators kc_prod_sel; patternchain patternchain_1; idCexpressions idCexpressions_1; withexpressions withexpressions_1; Ctext Ctext_1; foreach_after foreach_after_1; #endif { return CTextForeachexpression(patternchain_1, idCexpressions_1, withexpressions_1, Ctext_1, foreach_after_1); } static Ctext_elem kc_opfn_CTextWithexpression #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, withexpressions withexpressions_1, withcases withcases_1, contextinfo contextinfo_1) #else (kc_prod_sel, withexpressions_1, withcases_1, contextinfo_1)kc_enum_operators kc_prod_sel; withexpressions withexpressions_1; withcases withcases_1; contextinfo contextinfo_1; #endif { return CTextWithexpression(withexpressions_1, withcases_1, contextinfo_1); } static foreach_after kc_opfn_NoForeachAfter #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return NoForeachAfter(); } static foreach_after kc_opfn_ForeachAfter #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, patternchain patternchain_1, idCexpressions idCexpressions_1, withexpressions withexpressions_1, Ctext Ctext_1) #else (kc_prod_sel, patternchain_1, idCexpressions_1, withexpressions_1, Ctext_1)kc_enum_operators kc_prod_sel; patternchain patternchain_1; idCexpressions idCexpressions_1; withexpressions withexpressions_1; Ctext Ctext_1; #endif { return ForeachAfter(patternchain_1, idCexpressions_1, withexpressions_1, Ctext_1); } static contextinfo kc_opfn_InForeachContext #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, patternchain patternchain_1) #else (kc_prod_sel, patternchain_1)kc_enum_operators kc_prod_sel; patternchain patternchain_1; #endif { return InForeachContext(patternchain_1); } static contextinfo kc_opfn_NotInForeachContext #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return NotInForeachContext(); } static withexpressions kc_opfn_Nilwithexpressions #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilwithexpressions(); } static withexpressions kc_opfn_Conswithexpressions #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, withexpression withexpression_1, withexpressions withexpressions_1) #else (kc_prod_sel, withexpression_1, withexpressions_1)kc_enum_operators kc_prod_sel; withexpression withexpression_1; withexpressions withexpressions_1; #endif { return Conswithexpressions(withexpression_1, withexpressions_1); } static withexpression kc_opfn_WEVariable #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1) #else (kc_prod_sel, ID_1)kc_enum_operators kc_prod_sel; ID ID_1; #endif { return WEVariable(ID_1); } static withexpression kc_opfn_WECexpression #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, Cexpression Cexpression_1) #else (kc_prod_sel, Cexpression_1)kc_enum_operators kc_prod_sel; Cexpression Cexpression_1; #endif { return WECexpression(Cexpression_1); } static withcases kc_opfn_Nilwithcases #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilwithcases(); } static withcases kc_opfn_Conswithcases #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, withcase withcase_1, withcases withcases_1) #else (kc_prod_sel, withcase_1, withcases_1)kc_enum_operators kc_prod_sel; withcase withcase_1; withcases withcases_1; #endif { return Conswithcases(withcase_1, withcases_1); } static withcase kc_opfn_Withcase #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, patternchains patternchains_1, Ctext Ctext_1) #else (kc_prod_sel, patternchains_1, Ctext_1)kc_enum_operators kc_prod_sel; patternchains patternchains_1; Ctext Ctext_1; #endif { return Withcase(patternchains_1, Ctext_1); } static unparsedeclarations kc_opfn_Nilunparsedeclarations #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilunparsedeclarations(); } static unparsedeclarations kc_opfn_Consunparsedeclarations #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, unparsedeclaration unparsedeclaration_1, unparsedeclarations unparsedeclarations_1) #else (kc_prod_sel, unparsedeclaration_1, unparsedeclarations_1)kc_enum_operators kc_prod_sel; unparsedeclaration unparsedeclaration_1; unparsedeclarations unparsedeclarations_1; #endif { return Consunparsedeclarations(unparsedeclaration_1, unparsedeclarations_1); } static unparsedeclaration kc_opfn_UnparseDeclaration #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, outmostpatterns outmostpatterns_1, unparseclauses unparseclauses_1) #else (kc_prod_sel, outmostpatterns_1, unparseclauses_1)kc_enum_operators kc_prod_sel; outmostpatterns outmostpatterns_1; unparseclauses unparseclauses_1; #endif { return UnparseDeclaration(outmostpatterns_1, unparseclauses_1); } static unparseclauses kc_opfn_Nilunparseclauses #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilunparseclauses(); } static unparseclauses kc_opfn_Consunparseclauses #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, unparseclause unparseclause_1, unparseclauses unparseclauses_1) #else (kc_prod_sel, unparseclause_1, unparseclauses_1)kc_enum_operators kc_prod_sel; unparseclause unparseclause_1; unparseclauses unparseclauses_1; #endif { return Consunparseclauses(unparseclause_1, unparseclauses_1); } static unparseclause kc_opfn_UnparseClause #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, viewnames viewnames_1, unparseitems unparseitems_1) #else (kc_prod_sel, viewnames_1, unparseitems_1)kc_enum_operators kc_prod_sel; viewnames viewnames_1; unparseitems unparseitems_1; #endif { return UnparseClause(viewnames_1, unparseitems_1); } static viewnames kc_opfn_Nilviewnames #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilviewnames(); } static viewnames kc_opfn_Consviewnames #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, viewnames viewnames_1) #else (kc_prod_sel, ID_1, viewnames_1)kc_enum_operators kc_prod_sel; ID ID_1; viewnames viewnames_1; #endif { return Consviewnames(ID_1, viewnames_1); } static unparseitems kc_opfn_Nilunparseitems #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilunparseitems(); } static unparseitems kc_opfn_Consunparseitems #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, unparseitem unparseitem_1, unparseitems unparseitems_1) #else (kc_prod_sel, unparseitem_1, unparseitems_1)kc_enum_operators kc_prod_sel; unparseitem unparseitem_1; unparseitems unparseitems_1; #endif { return Consunparseitems(unparseitem_1, unparseitems_1); } static unparseitem kc_opfn_UnpStr #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, CexpressionDQ CexpressionDQ_1, viewnameoption viewnameoption_1) #else (kc_prod_sel, CexpressionDQ_1, viewnameoption_1)kc_enum_operators kc_prod_sel; CexpressionDQ CexpressionDQ_1; viewnameoption viewnameoption_1; #endif { return UnpStr(CexpressionDQ_1, viewnameoption_1); } static unparseitem kc_opfn_UnpSubexpr #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, unpsubterm unpsubterm_1, viewnameoption viewnameoption_1) #else (kc_prod_sel, unpsubterm_1, viewnameoption_1)kc_enum_operators kc_prod_sel; unpsubterm unpsubterm_1; viewnameoption viewnameoption_1; #endif { return UnpSubexpr(unpsubterm_1, viewnameoption_1); } static unparseitem kc_opfn_UnpCtext #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, Ctext Ctext_1) #else (kc_prod_sel, Ctext_1)kc_enum_operators kc_prod_sel; Ctext Ctext_1; #endif { return UnpCtext(Ctext_1); } static unparseitem kc_opfn_UnpBody #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, unparseitems unparseitems_1) #else (kc_prod_sel, unparseitems_1)kc_enum_operators kc_prod_sel; unparseitems unparseitems_1; #endif { return UnpBody(unparseitems_1); } static unpsubterm kc_opfn_UnpSubTerm #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1) #else (kc_prod_sel, ID_1)kc_enum_operators kc_prod_sel; ID ID_1; #endif { return UnpSubTerm(ID_1); } static unpsubterm kc_opfn_UnpDollarvarTerm #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, INT INT_1) #else (kc_prod_sel, INT_1)kc_enum_operators kc_prod_sel; INT INT_1; #endif { return UnpDollarvarTerm(INT_1); } static unpsubterm kc_opfn_UnpSubAttr #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, unpattributes unpattributes_1) #else (kc_prod_sel, ID_1, unpattributes_1)kc_enum_operators kc_prod_sel; ID ID_1; unpattributes unpattributes_1; #endif { return UnpSubAttr(ID_1, unpattributes_1); } static unpsubterm kc_opfn_UnpDollarvarAttr #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, INT INT_1, unpattributes unpattributes_1) #else (kc_prod_sel, INT_1, unpattributes_1)kc_enum_operators kc_prod_sel; INT INT_1; unpattributes unpattributes_1; #endif { return UnpDollarvarAttr(INT_1, unpattributes_1); } static unpsubterm kc_opfn_UnpCastedVariable #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, ID ID_2) #else (kc_prod_sel, ID_1, ID_2)kc_enum_operators kc_prod_sel; ID ID_1; ID ID_2; #endif { return UnpCastedVariable(ID_1, ID_2); } static unpattributes kc_opfn_Nilunpattributes #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilunpattributes(); } static unpattributes kc_opfn_Consunpattributes #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, unpattributes unpattributes_1) #else (kc_prod_sel, ID_1, unpattributes_1)kc_enum_operators kc_prod_sel; ID ID_1; unpattributes unpattributes_1; #endif { return Consunpattributes(ID_1, unpattributes_1); } static viewnameoption kc_opfn_NoViewname #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return NoViewname(); } static viewnameoption kc_opfn_YesViewname #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1) #else (kc_prod_sel, ID_1)kc_enum_operators kc_prod_sel; ID ID_1; #endif { return YesViewname(ID_1); } static filelinestack kc_opfn_Nilfilelinestack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilfilelinestack(); } static filelinestack kc_opfn_Consfilelinestack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, fileline fileline_1, filelinestack filelinestack_1) #else (kc_prod_sel, fileline_1, filelinestack_1)kc_enum_operators kc_prod_sel; fileline fileline_1; filelinestack filelinestack_1; #endif { return Consfilelinestack(fileline_1, filelinestack_1); } static fileline kc_opfn_FileLine #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1, int int_1) #else (kc_prod_sel, casestring_1, int_1)kc_enum_operators kc_prod_sel; casestring casestring_1; int int_1; #endif { return FileLine(casestring_1, int_1); } static fileline kc_opfn_NoFileLine #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return NoFileLine(); } static fileline kc_opfn_PosNoFileLine #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return PosNoFileLine(); } static nooperatorsstack kc_opfn_Nilnooperatorsstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilnooperatorsstack(); } static nooperatorsstack kc_opfn_Consnooperatorsstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, int int_1, nooperatorsstack nooperatorsstack_1) #else (kc_prod_sel, int_1, nooperatorsstack_1)kc_enum_operators kc_prod_sel; int int_1; nooperatorsstack nooperatorsstack_1; #endif { return Consnooperatorsstack(int_1, nooperatorsstack_1); } static scopetypefilelinestack kc_opfn_Nilscopetypefilelinestack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilscopetypefilelinestack(); } static scopetypefilelinestack kc_opfn_Consscopetypefilelinestack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, scopetypefileline scopetypefileline_1, scopetypefilelinestack scopetypefilelinestack_1) #else (kc_prod_sel, scopetypefileline_1, scopetypefilelinestack_1)kc_enum_operators kc_prod_sel; scopetypefileline scopetypefileline_1; scopetypefilelinestack scopetypefilelinestack_1; #endif { return Consscopetypefilelinestack(scopetypefileline_1, scopetypefilelinestack_1); } static scopetypefileline kc_opfn_ScopeTypeFileLine #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, int int_1, IDtype IDtype_1, casestring casestring_1, int int_2) #else (kc_prod_sel, int_1, IDtype_1, casestring_1, int_2)kc_enum_operators kc_prod_sel; int int_1; IDtype IDtype_1; casestring casestring_1; int int_2; #endif { return ScopeTypeFileLine(int_1, IDtype_1, casestring_1, int_2); } static IDtype kc_opfn_ITUnknown #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return ITUnknown(); } static IDtype kc_opfn_ITPredefinedPhylum #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, phylumdeclaration phylumdeclaration_1) #else (kc_prod_sel, phylumdeclaration_1)kc_enum_operators kc_prod_sel; phylumdeclaration phylumdeclaration_1; #endif { return ITPredefinedPhylum(phylumdeclaration_1); } static IDtype kc_opfn_ITPredefinedBigatomPhylum #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, phylumdeclaration phylumdeclaration_1) #else (kc_prod_sel, phylumdeclaration_1)kc_enum_operators kc_prod_sel; phylumdeclaration phylumdeclaration_1; #endif { return ITPredefinedBigatomPhylum(phylumdeclaration_1); } static IDtype kc_opfn_ITUserPhylum #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, phylumdeclaration phylumdeclaration_1) #else (kc_prod_sel, phylumdeclaration_1)kc_enum_operators kc_prod_sel; phylumdeclaration phylumdeclaration_1; #endif { return ITUserPhylum(phylumdeclaration_1); } static IDtype kc_opfn_ITPredefinedOperator #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, alternative alternative_1, ID ID_1) #else (kc_prod_sel, alternative_1, ID_1)kc_enum_operators kc_prod_sel; alternative alternative_1; ID ID_1; #endif { return ITPredefinedOperator(alternative_1, ID_1); } static IDtype kc_opfn_ITUserOperator #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, alternative alternative_1, ID ID_1) #else (kc_prod_sel, alternative_1, ID_1)kc_enum_operators kc_prod_sel; alternative alternative_1; ID ID_1; #endif { return ITUserOperator(alternative_1, ID_1); } static IDtype kc_opfn_ITPredefinedStorageClass #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return ITPredefinedStorageClass(); } static IDtype kc_opfn_ITStorageClass #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return ITStorageClass(); } static IDtype kc_opfn_ITPredefinedUView #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return ITPredefinedUView(); } static IDtype kc_opfn_ITUserUView #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return ITUserUView(); } static IDtype kc_opfn_ITPredefinedRView #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return ITPredefinedRView(); } static IDtype kc_opfn_ITUserRView #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return ITUserRView(); } static IDtype kc_opfn_ITUserFunction #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, fnclass fnclass_1) #else (kc_prod_sel, fnclass_1)kc_enum_operators kc_prod_sel; fnclass fnclass_1; #endif { return ITUserFunction(fnclass_1); } static IDtype kc_opfn_ITPatternVariable #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, int int_1) #else (kc_prod_sel, ID_1, int_1)kc_enum_operators kc_prod_sel; ID ID_1; int int_1; #endif { return ITPatternVariable(ID_1, int_1); } static operatorsstack kc_opfn_Niloperatorsstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Niloperatorsstack(); } static operatorsstack kc_opfn_Consoperatorsstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, operators operators_1, operatorsstack operatorsstack_1) #else (kc_prod_sel, operators_1, operatorsstack_1)kc_enum_operators kc_prod_sel; operators operators_1; operatorsstack operatorsstack_1; #endif { return Consoperatorsstack(operators_1, operatorsstack_1); } static operators kc_opfn_Niloperators #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Niloperators(); } static operators kc_opfn_Consoperators #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, operators operators_1) #else (kc_prod_sel, ID_1, operators_1)kc_enum_operators kc_prod_sel; ID ID_1; operators operators_1; #endif { return Consoperators(ID_1, operators_1); } static phyla kc_opfn_Nilphyla #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilphyla(); } static phyla kc_opfn_Consphyla #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, phyla phyla_1) #else (kc_prod_sel, ID_1, phyla_1)kc_enum_operators kc_prod_sel; ID ID_1; phyla phyla_1; #endif { return Consphyla(ID_1, phyla_1); } static variables kc_opfn_Nilvariables #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilvariables(); } static variables kc_opfn_Consvariables #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, variables variables_1) #else (kc_prod_sel, ID_1, variables_1)kc_enum_operators kc_prod_sel; ID ID_1; variables variables_1; #endif { return Consvariables(ID_1, variables_1); } static argumentsstack kc_opfn_Nilargumentsstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilargumentsstack(); } static argumentsstack kc_opfn_Consargumentsstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, arguments arguments_1, argumentsstack argumentsstack_1) #else (kc_prod_sel, arguments_1, argumentsstack_1)kc_enum_operators kc_prod_sel; arguments arguments_1; argumentsstack argumentsstack_1; #endif { return Consargumentsstack(arguments_1, argumentsstack_1); } static phylumstack kc_opfn_Nilphylumstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilphylumstack(); } static phylumstack kc_opfn_Consphylumstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, phylumstack phylumstack_1) #else (kc_prod_sel, ID_1, phylumstack_1)kc_enum_operators kc_prod_sel; ID ID_1; phylumstack phylumstack_1; #endif { return Consphylumstack(ID_1, phylumstack_1); } static phylumnamesstack kc_opfn_Nilphylumnamesstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilphylumnamesstack(); } static phylumnamesstack kc_opfn_Consphylumnamesstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, phylumnames phylumnames_1, phylumnamesstack phylumnamesstack_1) #else (kc_prod_sel, phylumnames_1, phylumnamesstack_1)kc_enum_operators kc_prod_sel; phylumnames phylumnames_1; phylumnamesstack phylumnamesstack_1; #endif { return Consphylumnamesstack(phylumnames_1, phylumnamesstack_1); } static withexpressionsstack kc_opfn_Nilwithexpressionsstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilwithexpressionsstack(); } static withexpressionsstack kc_opfn_Conswithexpressionsstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, withexpressions withexpressions_1, withexpressionsstack withexpressionsstack_1) #else (kc_prod_sel, withexpressions_1, withexpressionsstack_1)kc_enum_operators kc_prod_sel; withexpressions withexpressions_1; withexpressionsstack withexpressionsstack_1; #endif { return Conswithexpressionsstack(withexpressions_1, withexpressionsstack_1); } static operatorstack kc_opfn_Niloperatorstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Niloperatorstack(); } static operatorstack kc_opfn_Consoperatorstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, operatorstack operatorstack_1) #else (kc_prod_sel, ID_1, operatorstack_1)kc_enum_operators kc_prod_sel; ID ID_1; operatorstack operatorstack_1; #endif { return Consoperatorstack(ID_1, operatorstack_1); } static variablesstack kc_opfn_Nilvariablesstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilvariablesstack(); } static variablesstack kc_opfn_Consvariablesstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, variables variables_1, variablesstack variablesstack_1) #else (kc_prod_sel, variables_1, variablesstack_1)kc_enum_operators kc_prod_sel; variables variables_1; variablesstack variablesstack_1; #endif { return Consvariablesstack(variables_1, variablesstack_1); } static selvarstack kc_opfn_Nilselvarstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilselvarstack(); } static selvarstack kc_opfn_Consselvarstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, selvarstack selvarstack_1) #else (kc_prod_sel, ID_1, selvarstack_1)kc_enum_operators kc_prod_sel; ID ID_1; selvarstack selvarstack_1; #endif { return Consselvarstack(ID_1, selvarstack_1); } static dollarvarstatus kc_opfn_DVAllowed #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return DVAllowed(); } static dollarvarstatus kc_opfn_DVDisallowed #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return DVDisallowed(); } static dollarvarsallowedstack kc_opfn_Nildollarvarsallowedstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nildollarvarsallowedstack(); } static dollarvarsallowedstack kc_opfn_Consdollarvarsallowedstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, dollarvarstatus dollarvarstatus_1, dollarvarsallowedstack dollarvarsallowedstack_1) #else (kc_prod_sel, dollarvarstatus_1, dollarvarsallowedstack_1)kc_enum_operators kc_prod_sel; dollarvarstatus dollarvarstatus_1; dollarvarsallowedstack dollarvarsallowedstack_1; #endif { return Consdollarvarsallowedstack(dollarvarstatus_1, dollarvarsallowedstack_1); } static intstack kc_opfn_Nilintstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilintstack(); } static intstack kc_opfn_Consintstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, int int_1, intstack intstack_1) #else (kc_prod_sel, int_1, intstack_1)kc_enum_operators kc_prod_sel; int int_1; intstack intstack_1; #endif { return Consintstack(int_1, intstack_1); } static idCexpressionsstack kc_opfn_NilidCexpressionsstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return NilidCexpressionsstack(); } static idCexpressionsstack kc_opfn_ConsidCexpressionsstack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, idCexpressions idCexpressions_1, idCexpressionsstack idCexpressionsstack_1) #else (kc_prod_sel, idCexpressions_1, idCexpressionsstack_1)kc_enum_operators kc_prod_sel; idCexpressions idCexpressions_1; idCexpressionsstack idCexpressionsstack_1; #endif { return ConsidCexpressionsstack(idCexpressions_1, idCexpressionsstack_1); } static two_phyla kc_opfn_TwoStorageoption #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, storageoption storageoption_1, storageoption storageoption_2) #else (kc_prod_sel, storageoption_1, storageoption_2)kc_enum_operators kc_prod_sel; storageoption storageoption_1; storageoption storageoption_2; #endif { return TwoStorageoption(storageoption_1, storageoption_2); } static two_phyla kc_opfn_TwoProductionblock #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, productionblock productionblock_1, productionblock productionblock_2) #else (kc_prod_sel, productionblock_1, productionblock_2)kc_enum_operators kc_prod_sel; productionblock productionblock_1; productionblock productionblock_2; #endif { return TwoProductionblock(productionblock_1, productionblock_2); } static two_phyla kc_opfn_TwoCcode_option #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, Ccode_option Ccode_option_1, Ccode_option Ccode_option_2) #else (kc_prod_sel, Ccode_option_1, Ccode_option_2)kc_enum_operators kc_prod_sel; Ccode_option Ccode_option_1; Ccode_option Ccode_option_2; #endif { return TwoCcode_option(Ccode_option_1, Ccode_option_2); } static two_phyla kc_opfn_TwoRewriteruleinfo #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, rewriteruleinfo rewriteruleinfo_1, rewriteruleinfo rewriteruleinfo_2) #else (kc_prod_sel, rewriteruleinfo_1, rewriteruleinfo_2)kc_enum_operators kc_prod_sel; rewriteruleinfo rewriteruleinfo_1; rewriteruleinfo rewriteruleinfo_2; #endif { return TwoRewriteruleinfo(rewriteruleinfo_1, rewriteruleinfo_2); } static two_phyla kc_opfn_TwoWithcaseinfo #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, withcaseinfo withcaseinfo_1, withcaseinfo withcaseinfo_2) #else (kc_prod_sel, withcaseinfo_1, withcaseinfo_2)kc_enum_operators kc_prod_sel; withcaseinfo withcaseinfo_1; withcaseinfo withcaseinfo_2; #endif { return TwoWithcaseinfo(withcaseinfo_1, withcaseinfo_2); } static two_phyla kc_opfn_TwoUnparsedeclinfo #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, unparsedeclinfo unparsedeclinfo_1, unparsedeclinfo unparsedeclinfo_2) #else (kc_prod_sel, unparsedeclinfo_1, unparsedeclinfo_2)kc_enum_operators kc_prod_sel; unparsedeclinfo unparsedeclinfo_1; unparsedeclinfo unparsedeclinfo_2; #endif { return TwoUnparsedeclinfo(unparsedeclinfo_1, unparsedeclinfo_2); } static two_phyla kc_opfn_TwoPatternrepresentation #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, patternrepresentation patternrepresentation_1, patternrepresentation patternrepresentation_2) #else (kc_prod_sel, patternrepresentation_1, patternrepresentation_2)kc_enum_operators kc_prod_sel; patternrepresentation patternrepresentation_1; patternrepresentation patternrepresentation_2; #endif { return TwoPatternrepresentation(patternrepresentation_1, patternrepresentation_2); } static two_phyla kc_opfn_TwoElem_patternrepresentation #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, elem_patternrepresentation elem_patternrepresentation_1, elem_patternrepresentation elem_patternrepresentation_2) #else (kc_prod_sel, elem_patternrepresentation_1, elem_patternrepresentation_2)kc_enum_operators kc_prod_sel; elem_patternrepresentation elem_patternrepresentation_1; elem_patternrepresentation elem_patternrepresentation_2; #endif { return TwoElem_patternrepresentation(elem_patternrepresentation_1, elem_patternrepresentation_2); } static two_phyla kc_opfn_TwoPaths #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, paths paths_1, paths paths_2) #else (kc_prod_sel, paths_1, paths_2)kc_enum_operators kc_prod_sel; paths paths_1; paths paths_2; #endif { return TwoPaths(paths_1, paths_2); } static two_phyla kc_opfn_TwoPath #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, path path_1, path path_2) #else (kc_prod_sel, path_1, path_2)kc_enum_operators kc_prod_sel; path path_1; path path_2; #endif { return TwoPath(path_1, path_2); } static tribool kc_opfn_Equal #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Equal(); } static tribool kc_opfn_Smaller #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Smaller(); } static tribool kc_opfn_Bigger #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Bigger(); } static patternrepresentations kc_opfn_Nilpatternrepresentations #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilpatternrepresentations(); } static patternrepresentations kc_opfn_Conspatternrepresentations #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, patternrepresentation patternrepresentation_1, patternrepresentations patternrepresentations_1) #else (kc_prod_sel, patternrepresentation_1, patternrepresentations_1)kc_enum_operators kc_prod_sel; patternrepresentation patternrepresentation_1; patternrepresentations patternrepresentations_1; #endif { return Conspatternrepresentations(patternrepresentation_1, patternrepresentations_1); } static patternrepresentation kc_opfn_Nilpatternrepresentation #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilpatternrepresentation(); } static patternrepresentation kc_opfn_Conspatternrepresentation #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, elem_patternrepresentation elem_patternrepresentation_1, patternrepresentation patternrepresentation_1) #else (kc_prod_sel, elem_patternrepresentation_1, patternrepresentation_1)kc_enum_operators kc_prod_sel; elem_patternrepresentation elem_patternrepresentation_1; patternrepresentation patternrepresentation_1; #endif { return Conspatternrepresentation(elem_patternrepresentation_1, patternrepresentation_1); } static elem_patternrepresentation kc_opfn_PRBinding #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, path path_1, ID ID_1) #else (kc_prod_sel, path_1, ID_1)kc_enum_operators kc_prod_sel; path path_1; ID ID_1; #endif { return PRBinding(path_1, ID_1); } static elem_patternrepresentation kc_opfn_PRVarPredicate #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, paths paths_1, ID ID_1, patternrepresentation patternrepresentation_1) #else (kc_prod_sel, paths_1, ID_1, patternrepresentation_1)kc_enum_operators kc_prod_sel; paths paths_1; ID ID_1; patternrepresentation patternrepresentation_1; #endif { return PRVarPredicate(paths_1, ID_1, patternrepresentation_1); } static elem_patternrepresentation kc_opfn_PROperPredicate #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, path path_1, ID ID_1) #else (kc_prod_sel, path_1, ID_1)kc_enum_operators kc_prod_sel; path path_1; ID ID_1; #endif { return PROperPredicate(path_1, ID_1); } static elem_patternrepresentation kc_opfn_PRNonLeafBinding #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, path path_1, ID ID_1, patternrepresentation patternrepresentation_1) #else (kc_prod_sel, path_1, ID_1, patternrepresentation_1)kc_enum_operators kc_prod_sel; path path_1; ID ID_1; patternrepresentation patternrepresentation_1; #endif { return PRNonLeafBinding(path_1, ID_1, patternrepresentation_1); } static elem_patternrepresentation kc_opfn_PRWildcard #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, path path_1) #else (kc_prod_sel, path_1)kc_enum_operators kc_prod_sel; path path_1; #endif { return PRWildcard(path_1); } static elem_patternrepresentation kc_opfn_PRDefault #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return PRDefault(); } static elem_patternrepresentation kc_opfn_PRStringLiteral #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, path path_1, CexpressionDQ CexpressionDQ_1) #else (kc_prod_sel, path_1, CexpressionDQ_1)kc_enum_operators kc_prod_sel; path path_1; CexpressionDQ CexpressionDQ_1; #endif { return PRStringLiteral(path_1, CexpressionDQ_1); } static elem_patternrepresentation kc_opfn_PRIntLiteral #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, path path_1, INT INT_1) #else (kc_prod_sel, path_1, INT_1)kc_enum_operators kc_prod_sel; path path_1; INT INT_1; #endif { return PRIntLiteral(path_1, INT_1); } static path kc_opfn_Nilpath #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilpath(); } static path kc_opfn_Conspath #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, int int_1, path path_1) #else (kc_prod_sel, int_1, path_1)kc_enum_operators kc_prod_sel; int int_1; path path_1; #endif { return Conspath(int_1, path_1); } static paths kc_opfn_Nilpaths #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilpaths(); } static paths kc_opfn_Conspaths #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, path path_1, paths paths_1) #else (kc_prod_sel, path_1, paths_1)kc_enum_operators kc_prod_sel; path path_1; paths paths_1; #endif { return Conspaths(path_1, paths_1); } static argsnumbers kc_opfn_Nilargsnumbers #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilargsnumbers(); } static argsnumbers kc_opfn_Consargsnumbers #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, int int_1, argsnumbers argsnumbers_1) #else (kc_prod_sel, int_1, argsnumbers_1)kc_enum_operators kc_prod_sel; int int_1; argsnumbers argsnumbers_1; #endif { return Consargsnumbers(int_1, argsnumbers_1); } static rewriterulesinfo kc_opfn_Nilrewriterulesinfo #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilrewriterulesinfo(); } static rewriterulesinfo kc_opfn_Consrewriterulesinfo #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, rewriteruleinfo rewriteruleinfo_1, rewriterulesinfo rewriterulesinfo_1) #else (kc_prod_sel, rewriteruleinfo_1, rewriterulesinfo_1)kc_enum_operators kc_prod_sel; rewriteruleinfo rewriteruleinfo_1; rewriterulesinfo rewriterulesinfo_1; #endif { return Consrewriterulesinfo(rewriteruleinfo_1, rewriterulesinfo_1); } static rewriteruleinfo kc_opfn_Rewriteruleinfo #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, patternrepresentation patternrepresentation_1, patternrepresentation patternrepresentation_2, rewriteclause rewriteclause_1) #else (kc_prod_sel, patternrepresentation_1, patternrepresentation_2, rewriteclause_1)kc_enum_operators kc_prod_sel; patternrepresentation patternrepresentation_1; patternrepresentation patternrepresentation_2; rewriteclause rewriteclause_1; #endif { return Rewriteruleinfo(patternrepresentation_1, patternrepresentation_2, rewriteclause_1); } static withcasesinfo kc_opfn_Nilwithcasesinfo #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilwithcasesinfo(); } static withcasesinfo kc_opfn_Conswithcasesinfo #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, withcaseinfo withcaseinfo_1, withcasesinfo withcasesinfo_1) #else (kc_prod_sel, withcaseinfo_1, withcasesinfo_1)kc_enum_operators kc_prod_sel; withcaseinfo withcaseinfo_1; withcasesinfo withcasesinfo_1; #endif { return Conswithcasesinfo(withcaseinfo_1, withcasesinfo_1); } static withcaseinfo kc_opfn_Withcaseinfo #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, patternrepresentation patternrepresentation_1, patternrepresentation patternrepresentation_2, Ctext Ctext_1) #else (kc_prod_sel, patternrepresentation_1, patternrepresentation_2, Ctext_1)kc_enum_operators kc_prod_sel; patternrepresentation patternrepresentation_1; patternrepresentation patternrepresentation_2; Ctext Ctext_1; #endif { return Withcaseinfo(patternrepresentation_1, patternrepresentation_2, Ctext_1); } static rewriteviewsinfo kc_opfn_Nilrewriteviewsinfo #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilrewriteviewsinfo(); } static rewriteviewsinfo kc_opfn_Consrewriteviewsinfo #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, rewriteviewinfo rewriteviewinfo_1, rewriteviewsinfo rewriteviewsinfo_1) #else (kc_prod_sel, rewriteviewinfo_1, rewriteviewsinfo_1)kc_enum_operators kc_prod_sel; rewriteviewinfo rewriteviewinfo_1; rewriteviewsinfo rewriteviewsinfo_1; #endif { return Consrewriteviewsinfo(rewriteviewinfo_1, rewriteviewsinfo_1); } static rewriteviewinfo kc_opfn_Rewriteviewinfo #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, rewriterulesinfo rewriterulesinfo_1) #else (kc_prod_sel, ID_1, rewriterulesinfo_1)kc_enum_operators kc_prod_sel; ID ID_1; rewriterulesinfo rewriterulesinfo_1; #endif { return Rewriteviewinfo(ID_1, rewriterulesinfo_1); } static unparseviewsinfo kc_opfn_Nilunparseviewsinfo #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilunparseviewsinfo(); } static unparseviewsinfo kc_opfn_Consunparseviewsinfo #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, unparseviewinfo unparseviewinfo_1, unparseviewsinfo unparseviewsinfo_1) #else (kc_prod_sel, unparseviewinfo_1, unparseviewsinfo_1)kc_enum_operators kc_prod_sel; unparseviewinfo unparseviewinfo_1; unparseviewsinfo unparseviewsinfo_1; #endif { return Consunparseviewsinfo(unparseviewinfo_1, unparseviewsinfo_1); } static unparseviewinfo kc_opfn_Unparseviewinfo #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, unparsedeclsinfo unparsedeclsinfo_1) #else (kc_prod_sel, ID_1, unparsedeclsinfo_1)kc_enum_operators kc_prod_sel; ID ID_1; unparsedeclsinfo unparsedeclsinfo_1; #endif { return Unparseviewinfo(ID_1, unparsedeclsinfo_1); } static unparsedeclsinfo kc_opfn_Nilunparsedeclsinfo #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilunparsedeclsinfo(); } static unparsedeclsinfo kc_opfn_Consunparsedeclsinfo #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, unparsedeclinfo unparsedeclinfo_1, unparsedeclsinfo unparsedeclsinfo_1) #else (kc_prod_sel, unparsedeclinfo_1, unparsedeclsinfo_1)kc_enum_operators kc_prod_sel; unparsedeclinfo unparsedeclinfo_1; unparsedeclsinfo unparsedeclsinfo_1; #endif { return Consunparsedeclsinfo(unparsedeclinfo_1, unparsedeclsinfo_1); } static unparsedeclinfo kc_opfn_Unparsedeclinfo #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, patternrepresentation patternrepresentation_1, patternrepresentation patternrepresentation_2, unparseclause unparseclause_1) #else (kc_prod_sel, patternrepresentation_1, patternrepresentation_2, unparseclause_1)kc_enum_operators kc_prod_sel; patternrepresentation patternrepresentation_1; patternrepresentation patternrepresentation_2; unparseclause unparseclause_1; #endif { return Unparsedeclinfo(patternrepresentation_1, patternrepresentation_2, unparseclause_1); } static ac_declaration kc_opfn_AcDeclaration #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_declaration_specifiers ac_declaration_specifiers_1, ac_init_declarator_list ac_init_declarator_list_1) #else (kc_prod_sel, ac_declaration_specifiers_1, ac_init_declarator_list_1)kc_enum_operators kc_prod_sel; ac_declaration_specifiers ac_declaration_specifiers_1; ac_init_declarator_list ac_init_declarator_list_1; #endif { return AcDeclaration(ac_declaration_specifiers_1, ac_init_declarator_list_1); } static ac_declaration_list kc_opfn_Nilac_declaration_list #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilac_declaration_list(); } static ac_declaration_list kc_opfn_Consac_declaration_list #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_declaration ac_declaration_1, ac_declaration_list ac_declaration_list_1) #else (kc_prod_sel, ac_declaration_1, ac_declaration_list_1)kc_enum_operators kc_prod_sel; ac_declaration ac_declaration_1; ac_declaration_list ac_declaration_list_1; #endif { return Consac_declaration_list(ac_declaration_1, ac_declaration_list_1); } static ac_declaration_specifiers kc_opfn_Nilac_declaration_specifiers #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilac_declaration_specifiers(); } static ac_declaration_specifiers kc_opfn_Consac_declaration_specifiers #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_declaration_specifier ac_declaration_specifier_1, ac_declaration_specifiers ac_declaration_specifiers_1) #else (kc_prod_sel, ac_declaration_specifier_1, ac_declaration_specifiers_1)kc_enum_operators kc_prod_sel; ac_declaration_specifier ac_declaration_specifier_1; ac_declaration_specifiers ac_declaration_specifiers_1; #endif { return Consac_declaration_specifiers(ac_declaration_specifier_1, ac_declaration_specifiers_1); } static ac_declaration_specifier kc_opfn_AcDeclSpecStorageSpec #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_storage_class_specifier ac_storage_class_specifier_1) #else (kc_prod_sel, ac_storage_class_specifier_1)kc_enum_operators kc_prod_sel; ac_storage_class_specifier ac_storage_class_specifier_1; #endif { return AcDeclSpecStorageSpec(ac_storage_class_specifier_1); } static ac_declaration_specifier kc_opfn_AcDeclSpecTypeSpec #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_type_specifier ac_type_specifier_1) #else (kc_prod_sel, ac_type_specifier_1)kc_enum_operators kc_prod_sel; ac_type_specifier ac_type_specifier_1; #endif { return AcDeclSpecTypeSpec(ac_type_specifier_1); } static ac_declaration_specifier kc_opfn_AcDeclSpecTypeQual #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_type_qualifier ac_type_qualifier_1) #else (kc_prod_sel, ac_type_qualifier_1)kc_enum_operators kc_prod_sel; ac_type_qualifier ac_type_qualifier_1; #endif { return AcDeclSpecTypeQual(ac_type_qualifier_1); } static ac_storage_class_specifier kc_opfn_AcAuto #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return AcAuto(); } static ac_storage_class_specifier kc_opfn_AcRegister #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return AcRegister(); } static ac_storage_class_specifier kc_opfn_AcStatic #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return AcStatic(); } static ac_storage_class_specifier kc_opfn_AcExtern #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return AcExtern(); } static ac_storage_class_specifier kc_opfn_AcTypedef #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return AcTypedef(); } static ac_type_specifier kc_opfn_AcTypeSpec #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1) #else (kc_prod_sel, ID_1)kc_enum_operators kc_prod_sel; ID ID_1; #endif { return AcTypeSpec(ID_1); } static ac_type_qualifier kc_opfn_AcConst #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return AcConst(); } static ac_type_qualifier kc_opfn_AcVolatile #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return AcVolatile(); } static ac_init_declarator_list kc_opfn_Nilac_init_declarator_list #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilac_init_declarator_list(); } static ac_init_declarator_list kc_opfn_Consac_init_declarator_list #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_init_declarator ac_init_declarator_1, ac_init_declarator_list ac_init_declarator_list_1) #else (kc_prod_sel, ac_init_declarator_1, ac_init_declarator_list_1)kc_enum_operators kc_prod_sel; ac_init_declarator ac_init_declarator_1; ac_init_declarator_list ac_init_declarator_list_1; #endif { return Consac_init_declarator_list(ac_init_declarator_1, ac_init_declarator_list_1); } static ac_init_declarator kc_opfn_AcInitDecl #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_declarator ac_declarator_1) #else (kc_prod_sel, ac_declarator_1)kc_enum_operators kc_prod_sel; ac_declarator ac_declarator_1; #endif { return AcInitDecl(ac_declarator_1); } static ac_declarator kc_opfn_AcDeclarator #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_pointer_option ac_pointer_option_1, ac_direct_declarator ac_direct_declarator_1) #else (kc_prod_sel, ac_pointer_option_1, ac_direct_declarator_1)kc_enum_operators kc_prod_sel; ac_pointer_option ac_pointer_option_1; ac_direct_declarator ac_direct_declarator_1; #endif { return AcDeclarator(ac_pointer_option_1, ac_direct_declarator_1); } static ac_direct_declarator kc_opfn_AcDirectDeclId #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1) #else (kc_prod_sel, ID_1)kc_enum_operators kc_prod_sel; ID ID_1; #endif { return AcDirectDeclId(ID_1); } static ac_direct_declarator kc_opfn_AcDirectDeclPack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_declarator ac_declarator_1) #else (kc_prod_sel, ac_declarator_1)kc_enum_operators kc_prod_sel; ac_declarator ac_declarator_1; #endif { return AcDirectDeclPack(ac_declarator_1); } static ac_direct_declarator kc_opfn_AcDirectDeclArray #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_direct_declarator ac_direct_declarator_1, ac_constant_expression_option ac_constant_expression_option_1) #else (kc_prod_sel, ac_direct_declarator_1, ac_constant_expression_option_1)kc_enum_operators kc_prod_sel; ac_direct_declarator ac_direct_declarator_1; ac_constant_expression_option ac_constant_expression_option_1; #endif { return AcDirectDeclArray(ac_direct_declarator_1, ac_constant_expression_option_1); } static ac_direct_declarator kc_opfn_AcDirectDeclProto #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_direct_declarator ac_direct_declarator_1, ac_parameter_type_list ac_parameter_type_list_1) #else (kc_prod_sel, ac_direct_declarator_1, ac_parameter_type_list_1)kc_enum_operators kc_prod_sel; ac_direct_declarator ac_direct_declarator_1; ac_parameter_type_list ac_parameter_type_list_1; #endif { return AcDirectDeclProto(ac_direct_declarator_1, ac_parameter_type_list_1); } static ac_direct_declarator kc_opfn_AcDirectDeclKandR #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_direct_declarator ac_direct_declarator_1, ac_identifier_list ac_identifier_list_1) #else (kc_prod_sel, ac_direct_declarator_1, ac_identifier_list_1)kc_enum_operators kc_prod_sel; ac_direct_declarator ac_direct_declarator_1; ac_identifier_list ac_identifier_list_1; #endif { return AcDirectDeclKandR(ac_direct_declarator_1, ac_identifier_list_1); } static ac_pointer_option kc_opfn_Nopointer #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nopointer(); } static ac_pointer_option kc_opfn_Yespointer #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_pointer ac_pointer_1) #else (kc_prod_sel, ac_pointer_1)kc_enum_operators kc_prod_sel; ac_pointer ac_pointer_1; #endif { return Yespointer(ac_pointer_1); } static ac_pointer kc_opfn_AcPointerNil #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_type_qualifier_list ac_type_qualifier_list_1) #else (kc_prod_sel, ac_type_qualifier_list_1)kc_enum_operators kc_prod_sel; ac_type_qualifier_list ac_type_qualifier_list_1; #endif { return AcPointerNil(ac_type_qualifier_list_1); } static ac_pointer kc_opfn_AcPointerCons #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_type_qualifier_list ac_type_qualifier_list_1, ac_pointer ac_pointer_1) #else (kc_prod_sel, ac_type_qualifier_list_1, ac_pointer_1)kc_enum_operators kc_prod_sel; ac_type_qualifier_list ac_type_qualifier_list_1; ac_pointer ac_pointer_1; #endif { return AcPointerCons(ac_type_qualifier_list_1, ac_pointer_1); } static ac_type_qualifier_list kc_opfn_Nilac_type_qualifier_list #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilac_type_qualifier_list(); } static ac_type_qualifier_list kc_opfn_Consac_type_qualifier_list #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_type_qualifier ac_type_qualifier_1, ac_type_qualifier_list ac_type_qualifier_list_1) #else (kc_prod_sel, ac_type_qualifier_1, ac_type_qualifier_list_1)kc_enum_operators kc_prod_sel; ac_type_qualifier ac_type_qualifier_1; ac_type_qualifier_list ac_type_qualifier_list_1; #endif { return Consac_type_qualifier_list(ac_type_qualifier_1, ac_type_qualifier_list_1); } static ac_parameter_type_list kc_opfn_AcParList #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_parameter_list ac_parameter_list_1) #else (kc_prod_sel, ac_parameter_list_1)kc_enum_operators kc_prod_sel; ac_parameter_list ac_parameter_list_1; #endif { return AcParList(ac_parameter_list_1); } static ac_parameter_type_list kc_opfn_AcParList3Dot #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_parameter_list ac_parameter_list_1) #else (kc_prod_sel, ac_parameter_list_1)kc_enum_operators kc_prod_sel; ac_parameter_list ac_parameter_list_1; #endif { return AcParList3Dot(ac_parameter_list_1); } static ac_parameter_list kc_opfn_Nilac_parameter_list #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilac_parameter_list(); } static ac_parameter_list kc_opfn_Consac_parameter_list #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_parameter_declaration ac_parameter_declaration_1, ac_parameter_list ac_parameter_list_1) #else (kc_prod_sel, ac_parameter_declaration_1, ac_parameter_list_1)kc_enum_operators kc_prod_sel; ac_parameter_declaration ac_parameter_declaration_1; ac_parameter_list ac_parameter_list_1; #endif { return Consac_parameter_list(ac_parameter_declaration_1, ac_parameter_list_1); } static ac_parameter_declaration kc_opfn_AcParDeclDecl #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_declaration_specifiers ac_declaration_specifiers_1, ac_declarator ac_declarator_1) #else (kc_prod_sel, ac_declaration_specifiers_1, ac_declarator_1)kc_enum_operators kc_prod_sel; ac_declaration_specifiers ac_declaration_specifiers_1; ac_declarator ac_declarator_1; #endif { return AcParDeclDecl(ac_declaration_specifiers_1, ac_declarator_1); } static ac_parameter_declaration kc_opfn_AcParDeclAbsdecl #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_declaration_specifiers ac_declaration_specifiers_1, ac_abstract_declarator ac_abstract_declarator_1) #else (kc_prod_sel, ac_declaration_specifiers_1, ac_abstract_declarator_1)kc_enum_operators kc_prod_sel; ac_declaration_specifiers ac_declaration_specifiers_1; ac_abstract_declarator ac_abstract_declarator_1; #endif { return AcParDeclAbsdecl(ac_declaration_specifiers_1, ac_abstract_declarator_1); } static ac_identifier_list kc_opfn_Nilac_identifier_list #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilac_identifier_list(); } static ac_identifier_list kc_opfn_Consac_identifier_list #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ID ID_1, ac_identifier_list ac_identifier_list_1) #else (kc_prod_sel, ID_1, ac_identifier_list_1)kc_enum_operators kc_prod_sel; ID ID_1; ac_identifier_list ac_identifier_list_1; #endif { return Consac_identifier_list(ID_1, ac_identifier_list_1); } static ac_abstract_declarator kc_opfn_AcAbsdeclPointer #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_pointer ac_pointer_1) #else (kc_prod_sel, ac_pointer_1)kc_enum_operators kc_prod_sel; ac_pointer ac_pointer_1; #endif { return AcAbsdeclPointer(ac_pointer_1); } static ac_abstract_declarator kc_opfn_AcAbsdeclDirdecl #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_pointer_option ac_pointer_option_1, ac_direct_abstract_declarator ac_direct_abstract_declarator_1) #else (kc_prod_sel, ac_pointer_option_1, ac_direct_abstract_declarator_1)kc_enum_operators kc_prod_sel; ac_pointer_option ac_pointer_option_1; ac_direct_abstract_declarator ac_direct_abstract_declarator_1; #endif { return AcAbsdeclDirdecl(ac_pointer_option_1, ac_direct_abstract_declarator_1); } static ac_direct_abstract_declarator_option kc_opfn_Noac_direct_abstract_declarator #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Noac_direct_abstract_declarator(); } static ac_direct_abstract_declarator_option kc_opfn_Yesac_direct_abstract_declarator #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_direct_abstract_declarator ac_direct_abstract_declarator_1) #else (kc_prod_sel, ac_direct_abstract_declarator_1)kc_enum_operators kc_prod_sel; ac_direct_abstract_declarator ac_direct_abstract_declarator_1; #endif { return Yesac_direct_abstract_declarator(ac_direct_abstract_declarator_1); } static ac_direct_abstract_declarator kc_opfn_AcDirAbsdeclPack #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_abstract_declarator ac_abstract_declarator_1) #else (kc_prod_sel, ac_abstract_declarator_1)kc_enum_operators kc_prod_sel; ac_abstract_declarator ac_abstract_declarator_1; #endif { return AcDirAbsdeclPack(ac_abstract_declarator_1); } static ac_direct_abstract_declarator kc_opfn_AcDirAbsdeclArray #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_direct_abstract_declarator_option ac_direct_abstract_declarator_option_1, ac_constant_expression_option ac_constant_expression_option_1) #else (kc_prod_sel, ac_direct_abstract_declarator_option_1, ac_constant_expression_option_1)kc_enum_operators kc_prod_sel; ac_direct_abstract_declarator_option ac_direct_abstract_declarator_option_1; ac_constant_expression_option ac_constant_expression_option_1; #endif { return AcDirAbsdeclArray(ac_direct_abstract_declarator_option_1, ac_constant_expression_option_1); } static ac_direct_abstract_declarator kc_opfn_AcDirAbsdeclFn #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_direct_abstract_declarator_option ac_direct_abstract_declarator_option_1, ac_parameter_type_list ac_parameter_type_list_1) #else (kc_prod_sel, ac_direct_abstract_declarator_option_1, ac_parameter_type_list_1)kc_enum_operators kc_prod_sel; ac_direct_abstract_declarator_option ac_direct_abstract_declarator_option_1; ac_parameter_type_list ac_parameter_type_list_1; #endif { return AcDirAbsdeclFn(ac_direct_abstract_declarator_option_1, ac_parameter_type_list_1); } static ac_constant_expression_option kc_opfn_Yesac_constant_expression #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, ac_constant_expression ac_constant_expression_1) #else (kc_prod_sel, ac_constant_expression_1)kc_enum_operators kc_prod_sel; ac_constant_expression ac_constant_expression_1; #endif { return Yesac_constant_expression(ac_constant_expression_1); } static ac_constant_expression kc_opfn_AcConstExpr #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, Cexpression Cexpression_1) #else (kc_prod_sel, Cexpression_1)kc_enum_operators kc_prod_sel; Cexpression Cexpression_1; #endif { return AcConstExpr(Cexpression_1); } static error kc_opfn_Fatal #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, fileline fileline_1, problem problem_1) #else (kc_prod_sel, fileline_1, problem_1)kc_enum_operators kc_prod_sel; fileline fileline_1; problem problem_1; #endif { return Fatal(fileline_1, problem_1); } static error kc_opfn_NonFatal #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, fileline fileline_1, problem problem_1) #else (kc_prod_sel, fileline_1, problem_1)kc_enum_operators kc_prod_sel; fileline fileline_1; problem problem_1; #endif { return NonFatal(fileline_1, problem_1); } static error kc_opfn_Warning #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, fileline fileline_1, problem problem_1) #else (kc_prod_sel, fileline_1, problem_1)kc_enum_operators kc_prod_sel; fileline fileline_1; problem problem_1; #endif { return Warning(fileline_1, problem_1); } static problem kc_opfn_Problem1 #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1) #else (kc_prod_sel, casestring_1)kc_enum_operators kc_prod_sel; casestring casestring_1; #endif { return Problem1(casestring_1); } static problem kc_opfn_Problem1ID #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1, ID ID_1) #else (kc_prod_sel, casestring_1, ID_1)kc_enum_operators kc_prod_sel; casestring casestring_1; ID ID_1; #endif { return Problem1ID(casestring_1, ID_1); } static problem kc_opfn_Problem1tID #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1, ID ID_1) #else (kc_prod_sel, casestring_1, ID_1)kc_enum_operators kc_prod_sel; casestring casestring_1; ID ID_1; #endif { return Problem1tID(casestring_1, ID_1); } static problem kc_opfn_Problem1we #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1, withexpression withexpression_1) #else (kc_prod_sel, casestring_1, withexpression_1)kc_enum_operators kc_prod_sel; casestring casestring_1; withexpression withexpression_1; #endif { return Problem1we(casestring_1, withexpression_1); } static problem kc_opfn_Problem1ID1ID #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1, ID ID_1, casestring casestring_2, ID ID_2) #else (kc_prod_sel, casestring_1, ID_1, casestring_2, ID_2)kc_enum_operators kc_prod_sel; casestring casestring_1; ID ID_1; casestring casestring_2; ID ID_2; #endif { return Problem1ID1ID(casestring_1, ID_1, casestring_2, ID_2); } static problem kc_opfn_Problem1t1ID #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1, IDtype IDtype_1, casestring casestring_2, ID ID_1) #else (kc_prod_sel, casestring_1, IDtype_1, casestring_2, ID_1)kc_enum_operators kc_prod_sel; casestring casestring_1; IDtype IDtype_1; casestring casestring_2; ID ID_1; #endif { return Problem1t1ID(casestring_1, IDtype_1, casestring_2, ID_1); } static problem kc_opfn_Problem1INT #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1, INT INT_1) #else (kc_prod_sel, casestring_1, INT_1)kc_enum_operators kc_prod_sel; casestring casestring_1; INT INT_1; #endif { return Problem1INT(casestring_1, INT_1); } static problem kc_opfn_Problem1int1 #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1, int int_1, casestring casestring_2) #else (kc_prod_sel, casestring_1, int_1, casestring_2)kc_enum_operators kc_prod_sel; casestring casestring_1; int int_1; casestring casestring_2; #endif { return Problem1int1(casestring_1, int_1, casestring_2); } static problem kc_opfn_Problem1INT1ID #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1, INT INT_1, casestring casestring_2, ID ID_1) #else (kc_prod_sel, casestring_1, INT_1, casestring_2, ID_1)kc_enum_operators kc_prod_sel; casestring casestring_1; INT INT_1; casestring casestring_2; ID ID_1; #endif { return Problem1INT1ID(casestring_1, INT_1, casestring_2, ID_1); } static problem kc_opfn_Problem1ID1ID1ID #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1, ID ID_1, casestring casestring_2, ID ID_2, casestring casestring_3, ID ID_3) #else (kc_prod_sel, casestring_1, ID_1, casestring_2, ID_2, casestring_3, ID_3)kc_enum_operators kc_prod_sel; casestring casestring_1; ID ID_1; casestring casestring_2; ID ID_2; casestring casestring_3; ID ID_3; #endif { return Problem1ID1ID1ID(casestring_1, ID_1, casestring_2, ID_2, casestring_3, ID_3); } static problem kc_opfn_Problem1INT1ID1ID #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1, INT INT_1, casestring casestring_2, ID ID_1, casestring casestring_3, ID ID_2) #else (kc_prod_sel, casestring_1, INT_1, casestring_2, ID_1, casestring_3, ID_2)kc_enum_operators kc_prod_sel; casestring casestring_1; INT INT_1; casestring casestring_2; ID ID_1; casestring casestring_3; ID ID_2; #endif { return Problem1INT1ID1ID(casestring_1, INT_1, casestring_2, ID_1, casestring_3, ID_2); } static problem kc_opfn_Problem1storageoption1ID #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1, storageoption storageoption_1, casestring casestring_2, ID ID_1) #else (kc_prod_sel, casestring_1, storageoption_1, casestring_2, ID_1)kc_enum_operators kc_prod_sel; casestring casestring_1; storageoption storageoption_1; casestring casestring_2; ID ID_1; #endif { return Problem1storageoption1ID(casestring_1, storageoption_1, casestring_2, ID_1); } static problem kc_opfn_Problem2 #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1, casestring casestring_2) #else (kc_prod_sel, casestring_1, casestring_2)kc_enum_operators kc_prod_sel; casestring casestring_1; casestring casestring_2; #endif { return Problem2(casestring_1, casestring_2); } static problem kc_opfn_Problem3 #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1, casestring casestring_2, casestring casestring_3) #else (kc_prod_sel, casestring_1, casestring_2, casestring_3)kc_enum_operators kc_prod_sel; casestring casestring_1; casestring casestring_2; casestring casestring_3; #endif { return Problem3(casestring_1, casestring_2, casestring_3); } static problem kc_opfn_Problem3int1 #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1, casestring casestring_2, casestring casestring_3, int int_1, casestring casestring_4) #else (kc_prod_sel, casestring_1, casestring_2, casestring_3, int_1, casestring_4)kc_enum_operators kc_prod_sel; casestring casestring_1; casestring casestring_2; casestring casestring_3; int int_1; casestring casestring_4; #endif { return Problem3int1(casestring_1, casestring_2, casestring_3, int_1, casestring_4); } static problem kc_opfn_Problem4 #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1, casestring casestring_2, casestring casestring_3, casestring casestring_4) #else (kc_prod_sel, casestring_1, casestring_2, casestring_3, casestring_4)kc_enum_operators kc_prod_sel; casestring casestring_1; casestring casestring_2; casestring casestring_3; casestring casestring_4; #endif { return Problem4(casestring_1, casestring_2, casestring_3, casestring_4); } static problem kc_opfn_Problem5 #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1, casestring casestring_2, casestring casestring_3, casestring casestring_4, casestring casestring_5) #else (kc_prod_sel, casestring_1, casestring_2, casestring_3, casestring_4, casestring_5)kc_enum_operators kc_prod_sel; casestring casestring_1; casestring casestring_2; casestring casestring_3; casestring casestring_4; casestring casestring_5; #endif { return Problem5(casestring_1, casestring_2, casestring_3, casestring_4, casestring_5); } static problem kc_opfn_Problem6 #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, casestring casestring_1, casestring casestring_2, casestring casestring_3, casestring casestring_4, casestring casestring_5, casestring casestring_6) #else (kc_prod_sel, casestring_1, casestring_2, casestring_3, casestring_4, casestring_5, casestring_6)kc_enum_operators kc_prod_sel; casestring casestring_1; casestring casestring_2; casestring casestring_3; casestring casestring_4; casestring casestring_5; casestring casestring_6; #endif { return Problem6(casestring_1, casestring_2, casestring_3, casestring_4, casestring_5, casestring_6); } static addedphylumdeclarations kc_opfn_Niladdedphylumdeclarations #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Niladdedphylumdeclarations(); } static addedphylumdeclarations kc_opfn_Consaddedphylumdeclarations #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, addedphylumdeclaration addedphylumdeclaration_1, addedphylumdeclarations addedphylumdeclarations_1) #else (kc_prod_sel, addedphylumdeclaration_1, addedphylumdeclarations_1)kc_enum_operators kc_prod_sel; addedphylumdeclaration addedphylumdeclaration_1; addedphylumdeclarations addedphylumdeclarations_1; #endif { return Consaddedphylumdeclarations(addedphylumdeclaration_1, addedphylumdeclarations_1); } static addedphylumdeclaration kc_opfn_AddedPhylumdeclaration #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, uniqID uniqID_1) #else (kc_prod_sel, uniqID_1)kc_enum_operators kc_prod_sel; uniqID uniqID_1; #endif { return AddedPhylumdeclaration(uniqID_1); } static countedphylumdeclarations kc_opfn_Nilcountedphylumdeclarations #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilcountedphylumdeclarations(); } static countedphylumdeclarations kc_opfn_Conscountedphylumdeclarations #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, countedphylumdeclaration countedphylumdeclaration_1, countedphylumdeclarations countedphylumdeclarations_1) #else (kc_prod_sel, countedphylumdeclaration_1, countedphylumdeclarations_1)kc_enum_operators kc_prod_sel; countedphylumdeclaration countedphylumdeclaration_1; countedphylumdeclarations countedphylumdeclarations_1; #endif { return Conscountedphylumdeclarations(countedphylumdeclaration_1, countedphylumdeclarations_1); } static countedphylumdeclaration kc_opfn_CountedPhylumdeclaration #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, uniqID uniqID_1) #else (kc_prod_sel, uniqID_1)kc_enum_operators kc_prod_sel; uniqID uniqID_1; #endif { return CountedPhylumdeclaration(uniqID_1); } static bindingidmarks kc_opfn_Nilbindingidmarks #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel) #else (kc_prod_sel)kc_enum_operators kc_prod_sel; #endif { return Nilbindingidmarks(); } static bindingidmarks kc_opfn_Consbindingidmarks #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, bindingidmark bindingidmark_1, bindingidmarks bindingidmarks_1) #else (kc_prod_sel, bindingidmark_1, bindingidmarks_1)kc_enum_operators kc_prod_sel; bindingidmark bindingidmark_1; bindingidmarks bindingidmarks_1; #endif { return Consbindingidmarks(bindingidmark_1, bindingidmarks_1); } static bindingidmark kc_opfn_BindingIdMark #ifdef KC_USE_PROTOTYPES (kc_enum_operators kc_prod_sel, uniqID uniqID_1) #else (kc_prod_sel, uniqID_1)kc_enum_operators kc_prod_sel; uniqID uniqID_1; #endif { return BindingIdMark(uniqID_1); } static kc_enum_phyla kc_subphyla_Str[] = { kc_phylum_casestring }; static kc_enum_phyla kc_subphyla_Id[] = { kc_phylum_uniqID }; static kc_enum_phyla kc_subphyla_Int[] = { kc_phylum_int }; static kc_enum_phyla kc_subphyla_String[] = { kc_phylum_casestring }; static kc_enum_phyla kc_subphyla_PhylumDeclarations[] = { kc_phylum_phylumdeclarations }; static kc_enum_phyla kc_subphyla_Consphylumdeclarations[] = { kc_phylum_phylumdeclaration, kc_phylum_phylumdeclarations }; static kc_enum_phyla kc_subphyla_Consphylumnames[] = { kc_phylum_ID, kc_phylum_phylumnames }; static kc_enum_phyla kc_subphyla_PhylumDeclaration[] = { kc_phylum_ID, kc_phylum_storageoption, kc_phylum_productionblock, kc_phylum_Ccode_option }; static kc_enum_phyla kc_subphyla_NegativeStorageOption[] = { kc_phylum_ID }; static kc_enum_phyla kc_subphyla_PositiveStorageOption[] = { kc_phylum_ID }; static kc_enum_phyla kc_subphyla_Consstorageclasses[] = { kc_phylum_ID, kc_phylum_storageclasses }; static kc_enum_phyla kc_subphyla_ListAlternatives[] = { kc_phylum_alternatives, kc_phylum_ID }; static kc_enum_phyla kc_subphyla_NonlistAlternatives[] = { kc_phylum_alternatives }; static kc_enum_phyla kc_subphyla_PredefinedAlternatives[] = { kc_phylum_alternatives }; static kc_enum_phyla kc_subphyla_Consalternatives[] = { kc_phylum_alternative, kc_phylum_alternatives }; static kc_enum_phyla kc_subphyla_Alternative[] = { kc_phylum_ID, kc_phylum_arguments }; static kc_enum_phyla kc_subphyla_Consarguments[] = { kc_phylum_ID, kc_phylum_arguments }; static kc_enum_phyla kc_subphyla_Argument[] = { kc_phylum_ID, kc_phylum_int }; static kc_enum_phyla kc_subphyla_CcodeOption[] = { kc_phylum_attributes, kc_phylum_Ctexts }; static kc_enum_phyla kc_subphyla_Consattributes[] = { kc_phylum_attribute, kc_phylum_attributes }; static kc_enum_phyla kc_subphyla_Attribute[] = { kc_phylum_ID, kc_phylum_ID, kc_phylum_attribute_initialisation_option }; static kc_enum_phyla kc_subphyla_Yesattribute_initialisation[] = { kc_phylum_Cexpression }; static kc_enum_phyla kc_subphyla_ConsCexpression[] = { kc_phylum_Cexpression_elem, kc_phylum_Cexpression }; static kc_enum_phyla kc_subphyla_CExpressionPart[] = { kc_phylum_casestring }; static kc_enum_phyla kc_subphyla_CExpressionDollarvar[] = { kc_phylum_INT }; static kc_enum_phyla kc_subphyla_CExpressionNl[] = { kc_phylum_int }; static kc_enum_phyla kc_subphyla_CExpressionDQ[] = { kc_phylum_CexpressionDQ }; static kc_enum_phyla kc_subphyla_CExpressionSQ[] = { kc_phylum_CexpressionSQ }; static kc_enum_phyla kc_subphyla_CExpressionPack[] = { kc_phylum_Cexpression }; static kc_enum_phyla kc_subphyla_CExpressionArray[] = { kc_phylum_Cexpression }; static kc_enum_phyla kc_subphyla_ConsCexpressionDQ[] = { kc_phylum_CexpressionDQ_elem, kc_phylum_CexpressionDQ }; static kc_enum_phyla kc_subphyla_CExpressionDQPart[] = { kc_phylum_casestring }; static kc_enum_phyla kc_subphyla_CExpressionDQNl[] = { kc_phylum_int }; static kc_enum_phyla kc_subphyla_ConsCexpressionSQ[] = { kc_phylum_CexpressionSQ_elem, kc_phylum_CexpressionSQ }; static kc_enum_phyla kc_subphyla_CExpressionSQPart[] = { kc_phylum_casestring }; static kc_enum_phyla kc_subphyla_CExpressionSQNl[] = { kc_phylum_int }; static kc_enum_phyla kc_subphyla_ConsidCexpressions[] = { kc_phylum_idCexpression, kc_phylum_idCexpressions }; static kc_enum_phyla kc_subphyla_IdCexpression[] = { kc_phylum_ID, kc_phylum_Cexpression }; static kc_enum_phyla kc_subphyla_ConsCtexts[] = { kc_phylum_Ctext, kc_phylum_Ctexts }; static kc_enum_phyla kc_subphyla_Consincludefiles[] = { kc_phylum_includefile, kc_phylum_includefiles }; static kc_enum_phyla kc_subphyla_IncludeFile[] = { kc_phylum_casestring }; static kc_enum_phyla kc_subphyla_Consincludedeclarations[] = { kc_phylum_includedeclaration, kc_phylum_includedeclarations }; static kc_enum_phyla kc_subphyla_IncludeDeclaration[] = { kc_phylum_includes }; static kc_enum_phyla kc_subphyla_Consincludes[] = { kc_phylum_include, kc_phylum_includes }; static kc_enum_phyla kc_subphyla_Include[] = { kc_phylum_casestring }; static kc_enum_phyla kc_subphyla_IncludeNl[] = { kc_phylum_int }; static kc_enum_phyla kc_subphyla_Consrwdeclarations[] = { kc_phylum_rwdeclaration, kc_phylum_rwdeclarations }; static kc_enum_phyla kc_subphyla_RwDeclaration[] = { kc_phylum_outmostpatterns, kc_phylum_rewriteclauses }; static kc_enum_phyla kc_subphyla_Consrewriteclauses[] = { kc_phylum_rewriteclause, kc_phylum_rewriteclauses }; static kc_enum_phyla kc_subphyla_RewriteClause[] = { kc_phylum_viewnames, kc_phylum_term }; static kc_enum_phyla kc_subphyla_Conspatternchains[] = { kc_phylum_patternchain, kc_phylum_patternchains }; static kc_enum_phyla kc_subphyla_Conspatternchain[] = { kc_phylum_patternchainitem, kc_phylum_patternchain }; static kc_enum_phyla kc_subphyla_Consoutmostpatterns[] = { kc_phylum_outmostpattern, kc_phylum_outmostpatterns }; static kc_enum_phyla kc_subphyla_PatternchainitemOutmost[] = { kc_phylum_outmostpattern }; static kc_enum_phyla kc_subphyla_PatternchainitemGroup[] = { kc_phylum_patternchains }; static kc_enum_phyla kc_subphyla_PatternchainitemDollarid[] = { kc_phylum_ID }; static kc_enum_phyla kc_subphyla_OPOperatorWildcard[] = { kc_phylum_ID }; static kc_enum_phyla kc_subphyla_OPOperator[] = { kc_phylum_ID, kc_phylum_patterns }; static kc_enum_phyla kc_subphyla_OPNonLeafVariable[] = { kc_phylum_ID, kc_phylum_outmostpattern }; static kc_enum_phyla kc_subphyla_PVariable[] = { kc_phylum_ID }; static kc_enum_phyla kc_subphyla_POperator[] = { kc_phylum_ID, kc_phylum_patterns }; static kc_enum_phyla kc_subphyla_PNonLeafVariable[] = { kc_phylum_ID, kc_phylum_pattern }; static kc_enum_phyla kc_subphyla_PStringLiteral[] = { kc_phylum_CexpressionDQ }; static kc_enum_phyla kc_subphyla_PIntLiteral[] = { kc_phylum_INT }; static kc_enum_phyla kc_subphyla_Conspatterns[] = { kc_phylum_pattern, kc_phylum_patterns }; static kc_enum_phyla kc_subphyla_TVariable[] = { kc_phylum_ID }; static kc_enum_phyla kc_subphyla_TOperator[] = { kc_phylum_ID, kc_phylum_terms }; static kc_enum_phyla kc_subphyla_TStringLiteral[] = { kc_phylum_CexpressionDQ }; static kc_enum_phyla kc_subphyla_TIntLiteral[] = { kc_phylum_INT }; static kc_enum_phyla kc_subphyla_Consterms[] = { kc_phylum_term, kc_phylum_terms }; static kc_enum_phyla kc_subphyla_Consfnfiles[] = { kc_phylum_fnfile, kc_phylum_fnfiles }; static kc_enum_phyla kc_subphyla_FnFile[] = { kc_phylum_casestring }; static kc_enum_phyla kc_subphyla_Consfndeclarations[] = { kc_phylum_fndeclaration, kc_phylum_fndeclarations }; static kc_enum_phyla kc_subphyla_FnDeclaration[] = { kc_phylum_ID, kc_phylum_int, kc_phylum_ID, kc_phylum_fnarguments, kc_phylum_Cvariabledeclarations, kc_phylum_Ctext, kc_phylum_fnclass }; static kc_enum_phyla kc_subphyla_FnAcDeclaration[] = { kc_phylum_ac_declaration_specifiers, kc_phylum_ac_declarator, kc_phylum_ac_declaration_list, kc_phylum_Ctext, kc_phylum_ID, kc_phylum_fnclass }; static kc_enum_phyla kc_subphyla_LocalFn[] = { kc_phylum_casestring }; static kc_enum_phyla kc_subphyla_Consfnarguments[] = { kc_phylum_ID, kc_phylum_fnarguments }; static kc_enum_phyla kc_subphyla_ConsCvariabledeclarations[] = { kc_phylum_Cvariabledeclaration, kc_phylum_Cvariabledeclarations }; static kc_enum_phyla kc_subphyla_CVariabledeclaration[] = { kc_phylum_ID, kc_phylum_Cvariables }; static kc_enum_phyla kc_subphyla_Fnargfpdecl[] = { kc_phylum_ID, kc_phylum_Cvariables }; static kc_enum_phyla kc_subphyla_ConsCvariables[] = { kc_phylum_Cvariable, kc_phylum_Cvariables }; static kc_enum_phyla kc_subphyla_CVPointer[] = { kc_phylum_int, kc_phylum_ID }; static kc_enum_phyla kc_subphyla_CVFunction[] = { kc_phylum_int, kc_phylum_int, kc_phylum_ID }; static kc_enum_phyla kc_subphyla_ConsCtext[] = { kc_phylum_Ctext_elem, kc_phylum_Ctext }; static kc_enum_phyla kc_subphyla_CTextLine[] = { kc_phylum_casestring }; static kc_enum_phyla kc_subphyla_CTextDollarVar[] = { kc_phylum_INT }; static kc_enum_phyla kc_subphyla_CTextNl[] = { kc_phylum_int }; static kc_enum_phyla kc_subphyla_CTextCexpressionDQ[] = { kc_phylum_CexpressionDQ }; static kc_enum_phyla kc_subphyla_CTextCexpressionSQ[] = { kc_phylum_CexpressionSQ }; static kc_enum_phyla kc_subphyla_CTextCbody[] = { kc_phylum_Ctext }; static kc_enum_phyla kc_subphyla_CTextForeachexpression[] = { kc_phylum_patternchain, kc_phylum_idCexpressions, kc_phylum_withexpressions, kc_phylum_Ctext, kc_phylum_foreach_after }; static kc_enum_phyla kc_subphyla_CTextWithexpression[] = { kc_phylum_withexpressions, kc_phylum_withcases, kc_phylum_contextinfo }; static kc_enum_phyla kc_subphyla_ForeachAfter[] = { kc_phylum_patternchain, kc_phylum_idCexpressions, kc_phylum_withexpressions, kc_phylum_Ctext }; static kc_enum_phyla kc_subphyla_InForeachContext[] = { kc_phylum_patternchain }; static kc_enum_phyla kc_subphyla_Conswithexpressions[] = { kc_phylum_withexpression, kc_phylum_withexpressions }; static kc_enum_phyla kc_subphyla_WEVariable[] = { kc_phylum_ID }; static kc_enum_phyla kc_subphyla_WECexpression[] = { kc_phylum_Cexpression }; static kc_enum_phyla kc_subphyla_Conswithcases[] = { kc_phylum_withcase, kc_phylum_withcases }; static kc_enum_phyla kc_subphyla_Withcase[] = { kc_phylum_patternchains, kc_phylum_Ctext }; static kc_enum_phyla kc_subphyla_Consunparsedeclarations[] = { kc_phylum_unparsedeclaration, kc_phylum_unparsedeclarations }; static kc_enum_phyla kc_subphyla_UnparseDeclaration[] = { kc_phylum_outmostpatterns, kc_phylum_unparseclauses }; static kc_enum_phyla kc_subphyla_Consunparseclauses[] = { kc_phylum_unparseclause, kc_phylum_unparseclauses }; static kc_enum_phyla kc_subphyla_UnparseClause[] = { kc_phylum_viewnames, kc_phylum_unparseitems }; static kc_enum_phyla kc_subphyla_Consviewnames[] = { kc_phylum_ID, kc_phylum_viewnames }; static kc_enum_phyla kc_subphyla_Consunparseitems[] = { kc_phylum_unparseitem, kc_phylum_unparseitems }; static kc_enum_phyla kc_subphyla_UnpStr[] = { kc_phylum_CexpressionDQ, kc_phylum_viewnameoption }; static kc_enum_phyla kc_subphyla_UnpSubexpr[] = { kc_phylum_unpsubterm, kc_phylum_viewnameoption }; static kc_enum_phyla kc_subphyla_UnpCtext[] = { kc_phylum_Ctext }; static kc_enum_phyla kc_subphyla_UnpBody[] = { kc_phylum_unparseitems }; static kc_enum_phyla kc_subphyla_UnpSubTerm[] = { kc_phylum_ID }; static kc_enum_phyla kc_subphyla_UnpDollarvarTerm[] = { kc_phylum_INT }; static kc_enum_phyla kc_subphyla_UnpSubAttr[] = { kc_phylum_ID, kc_phylum_unpattributes }; static kc_enum_phyla kc_subphyla_UnpDollarvarAttr[] = { kc_phylum_INT, kc_phylum_unpattributes }; static kc_enum_phyla kc_subphyla_UnpCastedVariable[] = { kc_phylum_ID, kc_phylum_ID }; static kc_enum_phyla kc_subphyla_Consunpattributes[] = { kc_phylum_ID, kc_phylum_unpattributes }; static kc_enum_phyla kc_subphyla_YesViewname[] = { kc_phylum_ID }; static kc_enum_phyla kc_subphyla_Consfilelinestack[] = { kc_phylum_fileline, kc_phylum_filelinestack }; static kc_enum_phyla kc_subphyla_FileLine[] = { kc_phylum_casestring, kc_phylum_int }; static kc_enum_phyla kc_subphyla_Consnooperatorsstack[] = { kc_phylum_int, kc_phylum_nooperatorsstack }; static kc_enum_phyla kc_subphyla_Consscopetypefilelinestack[] = { kc_phylum_scopetypefileline, kc_phylum_scopetypefilelinestack }; static kc_enum_phyla kc_subphyla_ScopeTypeFileLine[] = { kc_phylum_int, kc_phylum_IDtype, kc_phylum_casestring, kc_phylum_int }; static kc_enum_phyla kc_subphyla_ITPredefinedPhylum[] = { kc_phylum_phylumdeclaration }; static kc_enum_phyla kc_subphyla_ITPredefinedBigatomPhylum[] = { kc_phylum_phylumdeclaration }; static kc_enum_phyla kc_subphyla_ITUserPhylum[] = { kc_phylum_phylumdeclaration }; static kc_enum_phyla kc_subphyla_ITPredefinedOperator[] = { kc_phylum_alternative, kc_phylum_ID }; static kc_enum_phyla kc_subphyla_ITUserOperator[] = { kc_phylum_alternative, kc_phylum_ID }; static kc_enum_phyla kc_subphyla_ITUserFunction[] = { kc_phylum_fnclass }; static kc_enum_phyla kc_subphyla_ITPatternVariable[] = { kc_phylum_ID, kc_phylum_int }; static kc_enum_phyla kc_subphyla_Consoperatorsstack[] = { kc_phylum_operators, kc_phylum_operatorsstack }; static kc_enum_phyla kc_subphyla_Consoperators[] = { kc_phylum_ID, kc_phylum_operators }; static kc_enum_phyla kc_subphyla_Consphyla[] = { kc_phylum_ID, kc_phylum_phyla }; static kc_enum_phyla kc_subphyla_Consvariables[] = { kc_phylum_ID, kc_phylum_variables }; static kc_enum_phyla kc_subphyla_Consargumentsstack[] = { kc_phylum_arguments, kc_phylum_argumentsstack }; static kc_enum_phyla kc_subphyla_Consphylumstack[] = { kc_phylum_ID, kc_phylum_phylumstack }; static kc_enum_phyla kc_subphyla_Consphylumnamesstack[] = { kc_phylum_phylumnames, kc_phylum_phylumnamesstack }; static kc_enum_phyla kc_subphyla_Conswithexpressionsstack[] = { kc_phylum_withexpressions, kc_phylum_withexpressionsstack }; static kc_enum_phyla kc_subphyla_Consoperatorstack[] = { kc_phylum_ID, kc_phylum_operatorstack }; static kc_enum_phyla kc_subphyla_Consvariablesstack[] = { kc_phylum_variables, kc_phylum_variablesstack }; static kc_enum_phyla kc_subphyla_Consselvarstack[] = { kc_phylum_ID, kc_phylum_selvarstack }; static kc_enum_phyla kc_subphyla_Consdollarvarsallowedstack[] = { kc_phylum_dollarvarstatus, kc_phylum_dollarvarsallowedstack }; static kc_enum_phyla kc_subphyla_Consintstack[] = { kc_phylum_int, kc_phylum_intstack }; static kc_enum_phyla kc_subphyla_ConsidCexpressionsstack[] = { kc_phylum_idCexpressions, kc_phylum_idCexpressionsstack }; static kc_enum_phyla kc_subphyla_TwoStorageoption[] = { kc_phylum_storageoption, kc_phylum_storageoption }; static kc_enum_phyla kc_subphyla_TwoProductionblock[] = { kc_phylum_productionblock, kc_phylum_productionblock }; static kc_enum_phyla kc_subphyla_TwoCcode_option[] = { kc_phylum_Ccode_option, kc_phylum_Ccode_option }; static kc_enum_phyla kc_subphyla_TwoRewriteruleinfo[] = { kc_phylum_rewriteruleinfo, kc_phylum_rewriteruleinfo }; static kc_enum_phyla kc_subphyla_TwoWithcaseinfo[] = { kc_phylum_withcaseinfo, kc_phylum_withcaseinfo }; static kc_enum_phyla kc_subphyla_TwoUnparsedeclinfo[] = { kc_phylum_unparsedeclinfo, kc_phylum_unparsedeclinfo }; static kc_enum_phyla kc_subphyla_TwoPatternrepresentation[] = { kc_phylum_patternrepresentation, kc_phylum_patternrepresentation }; static kc_enum_phyla kc_subphyla_TwoElem_patternrepresentation[] = { kc_phylum_elem_patternrepresentation, kc_phylum_elem_patternrepresentation }; static kc_enum_phyla kc_subphyla_TwoPaths[] = { kc_phylum_paths, kc_phylum_paths }; static kc_enum_phyla kc_subphyla_TwoPath[] = { kc_phylum_path, kc_phylum_path }; static kc_enum_phyla kc_subphyla_Conspatternrepresentations[] = { kc_phylum_patternrepresentation, kc_phylum_patternrepresentations }; static kc_enum_phyla kc_subphyla_Conspatternrepresentation[] = { kc_phylum_elem_patternrepresentation, kc_phylum_patternrepresentation }; static kc_enum_phyla kc_subphyla_PRBinding[] = { kc_phylum_path, kc_phylum_ID }; static kc_enum_phyla kc_subphyla_PRVarPredicate[] = { kc_phylum_paths, kc_phylum_ID, kc_phylum_patternrepresentation }; static kc_enum_phyla kc_subphyla_PROperPredicate[] = { kc_phylum_path, kc_phylum_ID }; static kc_enum_phyla kc_subphyla_PRNonLeafBinding[] = { kc_phylum_path, kc_phylum_ID, kc_phylum_patternrepresentation }; static kc_enum_phyla kc_subphyla_PRWildcard[] = { kc_phylum_path }; static kc_enum_phyla kc_subphyla_PRStringLiteral[] = { kc_phylum_path, kc_phylum_CexpressionDQ }; static kc_enum_phyla kc_subphyla_PRIntLiteral[] = { kc_phylum_path, kc_phylum_INT }; static kc_enum_phyla kc_subphyla_Conspath[] = { kc_phylum_int, kc_phylum_path }; static kc_enum_phyla kc_subphyla_Conspaths[] = { kc_phylum_path, kc_phylum_paths }; static kc_enum_phyla kc_subphyla_Consargsnumbers[] = { kc_phylum_int, kc_phylum_argsnumbers }; static kc_enum_phyla kc_subphyla_Consrewriterulesinfo[] = { kc_phylum_rewriteruleinfo, kc_phylum_rewriterulesinfo }; static kc_enum_phyla kc_subphyla_Rewriteruleinfo[] = { kc_phylum_patternrepresentation, kc_phylum_patternrepresentation, kc_phylum_rewriteclause }; static kc_enum_phyla kc_subphyla_Conswithcasesinfo[] = { kc_phylum_withcaseinfo, kc_phylum_withcasesinfo }; static kc_enum_phyla kc_subphyla_Withcaseinfo[] = { kc_phylum_patternrepresentation, kc_phylum_patternrepresentation, kc_phylum_Ctext }; static kc_enum_phyla kc_subphyla_Consrewriteviewsinfo[] = { kc_phylum_rewriteviewinfo, kc_phylum_rewriteviewsinfo }; static kc_enum_phyla kc_subphyla_Rewriteviewinfo[] = { kc_phylum_ID, kc_phylum_rewriterulesinfo }; static kc_enum_phyla kc_subphyla_Consunparseviewsinfo[] = { kc_phylum_unparseviewinfo, kc_phylum_unparseviewsinfo }; static kc_enum_phyla kc_subphyla_Unparseviewinfo[] = { kc_phylum_ID, kc_phylum_unparsedeclsinfo }; static kc_enum_phyla kc_subphyla_Consunparsedeclsinfo[] = { kc_phylum_unparsedeclinfo, kc_phylum_unparsedeclsinfo }; static kc_enum_phyla kc_subphyla_Unparsedeclinfo[] = { kc_phylum_patternrepresentation, kc_phylum_patternrepresentation, kc_phylum_unparseclause }; static kc_enum_phyla kc_subphyla_AcDeclaration[] = { kc_phylum_ac_declaration_specifiers, kc_phylum_ac_init_declarator_list }; static kc_enum_phyla kc_subphyla_Consac_declaration_list[] = { kc_phylum_ac_declaration, kc_phylum_ac_declaration_list }; static kc_enum_phyla kc_subphyla_Consac_declaration_specifiers[] = { kc_phylum_ac_declaration_specifier, kc_phylum_ac_declaration_specifiers }; static kc_enum_phyla kc_subphyla_AcDeclSpecStorageSpec[] = { kc_phylum_ac_storage_class_specifier }; static kc_enum_phyla kc_subphyla_AcDeclSpecTypeSpec[] = { kc_phylum_ac_type_specifier }; static kc_enum_phyla kc_subphyla_AcDeclSpecTypeQual[] = { kc_phylum_ac_type_qualifier }; static kc_enum_phyla kc_subphyla_AcTypeSpec[] = { kc_phylum_ID }; static kc_enum_phyla kc_subphyla_Consac_init_declarator_list[] = { kc_phylum_ac_init_declarator, kc_phylum_ac_init_declarator_list }; static kc_enum_phyla kc_subphyla_AcInitDecl[] = { kc_phylum_ac_declarator }; static kc_enum_phyla kc_subphyla_AcDeclarator[] = { kc_phylum_ac_pointer_option, kc_phylum_ac_direct_declarator }; static kc_enum_phyla kc_subphyla_AcDirectDeclId[] = { kc_phylum_ID }; static kc_enum_phyla kc_subphyla_AcDirectDeclPack[] = { kc_phylum_ac_declarator }; static kc_enum_phyla kc_subphyla_AcDirectDeclArray[] = { kc_phylum_ac_direct_declarator, kc_phylum_ac_constant_expression_option }; static kc_enum_phyla kc_subphyla_AcDirectDeclProto[] = { kc_phylum_ac_direct_declarator, kc_phylum_ac_parameter_type_list }; static kc_enum_phyla kc_subphyla_AcDirectDeclKandR[] = { kc_phylum_ac_direct_declarator, kc_phylum_ac_identifier_list }; static kc_enum_phyla kc_subphyla_Yespointer[] = { kc_phylum_ac_pointer }; static kc_enum_phyla kc_subphyla_AcPointerNil[] = { kc_phylum_ac_type_qualifier_list }; static kc_enum_phyla kc_subphyla_AcPointerCons[] = { kc_phylum_ac_type_qualifier_list, kc_phylum_ac_pointer }; static kc_enum_phyla kc_subphyla_Consac_type_qualifier_list[] = { kc_phylum_ac_type_qualifier, kc_phylum_ac_type_qualifier_list }; static kc_enum_phyla kc_subphyla_AcParList[] = { kc_phylum_ac_parameter_list }; static kc_enum_phyla kc_subphyla_AcParList3Dot[] = { kc_phylum_ac_parameter_list }; static kc_enum_phyla kc_subphyla_Consac_parameter_list[] = { kc_phylum_ac_parameter_declaration, kc_phylum_ac_parameter_list }; static kc_enum_phyla kc_subphyla_AcParDeclDecl[] = { kc_phylum_ac_declaration_specifiers, kc_phylum_ac_declarator }; static kc_enum_phyla kc_subphyla_AcParDeclAbsdecl[] = { kc_phylum_ac_declaration_specifiers, kc_phylum_ac_abstract_declarator }; static kc_enum_phyla kc_subphyla_Consac_identifier_list[] = { kc_phylum_ID, kc_phylum_ac_identifier_list }; static kc_enum_phyla kc_subphyla_AcAbsdeclPointer[] = { kc_phylum_ac_pointer }; static kc_enum_phyla kc_subphyla_AcAbsdeclDirdecl[] = { kc_phylum_ac_pointer_option, kc_phylum_ac_direct_abstract_declarator }; static kc_enum_phyla kc_subphyla_Yesac_direct_abstract_declarator[] = { kc_phylum_ac_direct_abstract_declarator }; static kc_enum_phyla kc_subphyla_AcDirAbsdeclPack[] = { kc_phylum_ac_abstract_declarator }; static kc_enum_phyla kc_subphyla_AcDirAbsdeclArray[] = { kc_phylum_ac_direct_abstract_declarator_option, kc_phylum_ac_constant_expression_option }; static kc_enum_phyla kc_subphyla_AcDirAbsdeclFn[] = { kc_phylum_ac_direct_abstract_declarator_option, kc_phylum_ac_parameter_type_list }; static kc_enum_phyla kc_subphyla_Yesac_constant_expression[] = { kc_phylum_ac_constant_expression }; static kc_enum_phyla kc_subphyla_AcConstExpr[] = { kc_phylum_Cexpression }; static kc_enum_phyla kc_subphyla_Fatal[] = { kc_phylum_fileline, kc_phylum_problem }; static kc_enum_phyla kc_subphyla_NonFatal[] = { kc_phylum_fileline, kc_phylum_problem }; static kc_enum_phyla kc_subphyla_Warning[] = { kc_phylum_fileline, kc_phylum_problem }; static kc_enum_phyla kc_subphyla_Problem1[] = { kc_phylum_casestring }; static kc_enum_phyla kc_subphyla_Problem1ID[] = { kc_phylum_casestring, kc_phylum_ID }; static kc_enum_phyla kc_subphyla_Problem1tID[] = { kc_phylum_casestring, kc_phylum_ID }; static kc_enum_phyla kc_subphyla_Problem1we[] = { kc_phylum_casestring, kc_phylum_withexpression }; static kc_enum_phyla kc_subphyla_Problem1ID1ID[] = { kc_phylum_casestring, kc_phylum_ID, kc_phylum_casestring, kc_phylum_ID }; static kc_enum_phyla kc_subphyla_Problem1t1ID[] = { kc_phylum_casestring, kc_phylum_IDtype, kc_phylum_casestring, kc_phylum_ID }; static kc_enum_phyla kc_subphyla_Problem1INT[] = { kc_phylum_casestring, kc_phylum_INT }; static kc_enum_phyla kc_subphyla_Problem1int1[] = { kc_phylum_casestring, kc_phylum_int, kc_phylum_casestring }; static kc_enum_phyla kc_subphyla_Problem1INT1ID[] = { kc_phylum_casestring, kc_phylum_INT, kc_phylum_casestring, kc_phylum_ID }; static kc_enum_phyla kc_subphyla_Problem1ID1ID1ID[] = { kc_phylum_casestring, kc_phylum_ID, kc_phylum_casestring, kc_phylum_ID, kc_phylum_casestring, kc_phylum_ID }; static kc_enum_phyla kc_subphyla_Problem1INT1ID1ID[] = { kc_phylum_casestring, kc_phylum_INT, kc_phylum_casestring, kc_phylum_ID, kc_phylum_casestring, kc_phylum_ID }; static kc_enum_phyla kc_subphyla_Problem1storageoption1ID[] = { kc_phylum_casestring, kc_phylum_storageoption, kc_phylum_casestring, kc_phylum_ID }; static kc_enum_phyla kc_subphyla_Problem2[] = { kc_phylum_casestring, kc_phylum_casestring }; static kc_enum_phyla kc_subphyla_Problem3[] = { kc_phylum_casestring, kc_phylum_casestring, kc_phylum_casestring }; static kc_enum_phyla kc_subphyla_Problem3int1[] = { kc_phylum_casestring, kc_phylum_casestring, kc_phylum_casestring, kc_phylum_int, kc_phylum_casestring }; static kc_enum_phyla kc_subphyla_Problem4[] = { kc_phylum_casestring, kc_phylum_casestring, kc_phylum_casestring, kc_phylum_casestring }; static kc_enum_phyla kc_subphyla_Problem5[] = { kc_phylum_casestring, kc_phylum_casestring, kc_phylum_casestring, kc_phylum_casestring, kc_phylum_casestring }; static kc_enum_phyla kc_subphyla_Problem6[] = { kc_phylum_casestring, kc_phylum_casestring, kc_phylum_casestring, kc_phylum_casestring, kc_phylum_casestring, kc_phylum_casestring }; static kc_enum_phyla kc_subphyla_Consaddedphylumdeclarations[] = { kc_phylum_addedphylumdeclaration, kc_phylum_addedphylumdeclarations }; static kc_enum_phyla kc_subphyla_AddedPhylumdeclaration[] = { kc_phylum_uniqID }; static kc_enum_phyla kc_subphyla_Conscountedphylumdeclarations[] = { kc_phylum_countedphylumdeclaration, kc_phylum_countedphylumdeclarations }; static kc_enum_phyla kc_subphyla_CountedPhylumdeclaration[] = { kc_phylum_uniqID }; static kc_enum_phyla kc_subphyla_Consbindingidmarks[] = { kc_phylum_bindingidmark, kc_phylum_bindingidmarks }; static kc_enum_phyla kc_subphyla_BindingIdMark[] = { kc_phylum_uniqID }; #ifndef KC_OFFSETOF # define KC_OFFSETOF(kc_record, kc_operator, kc_subphylum) ((kc_size_t) \ ((char*)(&((kc_record *)0)->u.kc_operator.kc_subphylum) - (char*)((kc_record *)0))) #endif static kc_size_t kc_suboffsets_Str[] = { KC_OFFSETOF( struct kc_tag_uniqID, Str, casestring_1 ) }; static kc_size_t kc_suboffsets_Id[] = { KC_OFFSETOF( struct kc_tag_ID, Id, uniqID_1 ) }; static kc_size_t kc_suboffsets_Int[] = { KC_OFFSETOF( struct kc_tag_INT, Int, int_1 ) }; static kc_size_t kc_suboffsets_String[] = { KC_OFFSETOF( struct kc_tag_STRING, String, casestring_1 ) }; static kc_size_t kc_suboffsets_PhylumDeclarations[] = { KC_OFFSETOF( struct kc_tag_phylumdeclarationsroot, PhylumDeclarations, phylumdeclarations_1 ) }; static kc_size_t kc_suboffsets_Consphylumdeclarations[] = { KC_OFFSETOF( struct kc_tag_phylumdeclarations, Consphylumdeclarations, phylumdeclaration_1 ), KC_OFFSETOF( struct kc_tag_phylumdeclarations, Consphylumdeclarations, phylumdeclarations_1 ) }; static kc_size_t kc_suboffsets_Consphylumnames[] = { KC_OFFSETOF( struct kc_tag_phylumnames, Consphylumnames, ID_1 ), KC_OFFSETOF( struct kc_tag_phylumnames, Consphylumnames, phylumnames_1 ) }; static kc_size_t kc_suboffsets_PhylumDeclaration[] = { KC_OFFSETOF( struct kc_tag_phylumdeclaration, PhylumDeclaration, ID_1 ), KC_OFFSETOF( struct kc_tag_phylumdeclaration, PhylumDeclaration, storageoption_1 ), KC_OFFSETOF( struct kc_tag_phylumdeclaration, PhylumDeclaration, productionblock_1 ), KC_OFFSETOF( struct kc_tag_phylumdeclaration, PhylumDeclaration, Ccode_option_1 ) }; static kc_size_t kc_suboffsets_NegativeStorageOption[] = { KC_OFFSETOF( struct kc_tag_storageoption, NegativeStorageOption, ID_1 ) }; static kc_size_t kc_suboffsets_PositiveStorageOption[] = { KC_OFFSETOF( struct kc_tag_storageoption, PositiveStorageOption, ID_1 ) }; static kc_size_t kc_suboffsets_Consstorageclasses[] = { KC_OFFSETOF( struct kc_tag_storageclasses, Consstorageclasses, ID_1 ), KC_OFFSETOF( struct kc_tag_storageclasses, Consstorageclasses, storageclasses_1 ) }; static kc_size_t kc_suboffsets_ListAlternatives[] = { KC_OFFSETOF( struct kc_tag_productionblock, ListAlternatives, alternatives_1 ), KC_OFFSETOF( struct kc_tag_productionblock, ListAlternatives, ID_1 ) }; static kc_size_t kc_suboffsets_NonlistAlternatives[] = { KC_OFFSETOF( struct kc_tag_productionblock, NonlistAlternatives, alternatives_1 ) }; static kc_size_t kc_suboffsets_PredefinedAlternatives[] = { KC_OFFSETOF( struct kc_tag_productionblock, PredefinedAlternatives, alternatives_1 ) }; static kc_size_t kc_suboffsets_Consalternatives[] = { KC_OFFSETOF( struct kc_tag_alternatives, Consalternatives, alternative_1 ), KC_OFFSETOF( struct kc_tag_alternatives, Consalternatives, alternatives_1 ) }; static kc_size_t kc_suboffsets_Alternative[] = { KC_OFFSETOF( struct kc_tag_alternative, Alternative, ID_1 ), KC_OFFSETOF( struct kc_tag_alternative, Alternative, arguments_1 ) }; static kc_size_t kc_suboffsets_Consarguments[] = { KC_OFFSETOF( struct kc_tag_arguments, Consarguments, ID_1 ), KC_OFFSETOF( struct kc_tag_arguments, Consarguments, arguments_1 ) }; static kc_size_t kc_suboffsets_Argument[] = { KC_OFFSETOF( struct kc_tag_argument, Argument, ID_1 ), KC_OFFSETOF( struct kc_tag_argument, Argument, int_1 ) }; static kc_size_t kc_suboffsets_CcodeOption[] = { KC_OFFSETOF( struct kc_tag_Ccode_option, CcodeOption, attributes_1 ), KC_OFFSETOF( struct kc_tag_Ccode_option, CcodeOption, Ctexts_1 ) }; static kc_size_t kc_suboffsets_Consattributes[] = { KC_OFFSETOF( struct kc_tag_attributes, Consattributes, attribute_1 ), KC_OFFSETOF( struct kc_tag_attributes, Consattributes, attributes_1 ) }; static kc_size_t kc_suboffsets_Attribute[] = { KC_OFFSETOF( struct kc_tag_attribute, Attribute, ID_1 ), KC_OFFSETOF( struct kc_tag_attribute, Attribute, ID_2 ), KC_OFFSETOF( struct kc_tag_attribute, Attribute, attribute_initialisation_option_1 ) }; static kc_size_t kc_suboffsets_Yesattribute_initialisation[] = { KC_OFFSETOF( struct kc_tag_attribute_initialisation_option, Yesattribute_initialisation, Cexpression_1 ) }; static kc_size_t kc_suboffsets_ConsCexpression[] = { KC_OFFSETOF( struct kc_tag_Cexpression, ConsCexpression, Cexpression_elem_1 ), KC_OFFSETOF( struct kc_tag_Cexpression, ConsCexpression, Cexpression_1 ) }; static kc_size_t kc_suboffsets_CExpressionPart[] = { KC_OFFSETOF( struct kc_tag_Cexpression_elem, CExpressionPart, casestring_1 ) }; static kc_size_t kc_suboffsets_CExpressionDollarvar[] = { KC_OFFSETOF( struct kc_tag_Cexpression_elem, CExpressionDollarvar, INT_1 ) }; static kc_size_t kc_suboffsets_CExpressionNl[] = { KC_OFFSETOF( struct kc_tag_Cexpression_elem, CExpressionNl, int_1 ) }; static kc_size_t kc_suboffsets_CExpressionDQ[] = { KC_OFFSETOF( struct kc_tag_Cexpression_elem, CExpressionDQ, CexpressionDQ_1 ) }; static kc_size_t kc_suboffsets_CExpressionSQ[] = { KC_OFFSETOF( struct kc_tag_Cexpression_elem, CExpressionSQ, CexpressionSQ_1 ) }; static kc_size_t kc_suboffsets_CExpressionPack[] = { KC_OFFSETOF( struct kc_tag_Cexpression_elem, CExpressionPack, Cexpression_1 ) }; static kc_size_t kc_suboffsets_CExpressionArray[] = { KC_OFFSETOF( struct kc_tag_Cexpression_elem, CExpressionArray, Cexpression_1 ) }; static kc_size_t kc_suboffsets_ConsCexpressionDQ[] = { KC_OFFSETOF( struct kc_tag_CexpressionDQ, ConsCexpressionDQ, CexpressionDQ_elem_1 ), KC_OFFSETOF( struct kc_tag_CexpressionDQ, ConsCexpressionDQ, CexpressionDQ_1 ) }; static kc_size_t kc_suboffsets_CExpressionDQPart[] = { KC_OFFSETOF( struct kc_tag_CexpressionDQ_elem, CExpressionDQPart, casestring_1 ) }; static kc_size_t kc_suboffsets_CExpressionDQNl[] = { KC_OFFSETOF( struct kc_tag_CexpressionDQ_elem, CExpressionDQNl, int_1 ) }; static kc_size_t kc_suboffsets_ConsCexpressionSQ[] = { KC_OFFSETOF( struct kc_tag_CexpressionSQ, ConsCexpressionSQ, CexpressionSQ_elem_1 ), KC_OFFSETOF( struct kc_tag_CexpressionSQ, ConsCexpressionSQ, CexpressionSQ_1 ) }; static kc_size_t kc_suboffsets_CExpressionSQPart[] = { KC_OFFSETOF( struct kc_tag_CexpressionSQ_elem, CExpressionSQPart, casestring_1 ) }; static kc_size_t kc_suboffsets_CExpressionSQNl[] = { KC_OFFSETOF( struct kc_tag_CexpressionSQ_elem, CExpressionSQNl, int_1 ) }; static kc_size_t kc_suboffsets_ConsidCexpressions[] = { KC_OFFSETOF( struct kc_tag_idCexpressions, ConsidCexpressions, idCexpression_1 ), KC_OFFSETOF( struct kc_tag_idCexpressions, ConsidCexpressions, idCexpressions_1 ) }; static kc_size_t kc_suboffsets_IdCexpression[] = { KC_OFFSETOF( struct kc_tag_idCexpression, IdCexpression, ID_1 ), KC_OFFSETOF( struct kc_tag_idCexpression, IdCexpression, Cexpression_1 ) }; static kc_size_t kc_suboffsets_ConsCtexts[] = { KC_OFFSETOF( struct kc_tag_Ctexts, ConsCtexts, Ctext_1 ), KC_OFFSETOF( struct kc_tag_Ctexts, ConsCtexts, Ctexts_1 ) }; static kc_size_t kc_suboffsets_Consincludefiles[] = { KC_OFFSETOF( struct kc_tag_includefiles, Consincludefiles, includefile_1 ), KC_OFFSETOF( struct kc_tag_includefiles, Consincludefiles, includefiles_1 ) }; static kc_size_t kc_suboffsets_IncludeFile[] = { KC_OFFSETOF( struct kc_tag_includefile, IncludeFile, casestring_1 ) }; static kc_size_t kc_suboffsets_Consincludedeclarations[] = { KC_OFFSETOF( struct kc_tag_includedeclarations, Consincludedeclarations, includedeclaration_1 ), KC_OFFSETOF( struct kc_tag_includedeclarations, Consincludedeclarations, includedeclarations_1 ) }; static kc_size_t kc_suboffsets_IncludeDeclaration[] = { KC_OFFSETOF( struct kc_tag_includedeclaration, IncludeDeclaration, includes_1 ) }; static kc_size_t kc_suboffsets_Consincludes[] = { KC_OFFSETOF( struct kc_tag_includes, Consincludes, include_1 ), KC_OFFSETOF( struct kc_tag_includes, Consincludes, includes_1 ) }; static kc_size_t kc_suboffsets_Include[] = { KC_OFFSETOF( struct kc_tag_include, Include, casestring_1 ) }; static kc_size_t kc_suboffsets_IncludeNl[] = { KC_OFFSETOF( struct kc_tag_include, IncludeNl, int_1 ) }; static kc_size_t kc_suboffsets_Consrwdeclarations[] = { KC_OFFSETOF( struct kc_tag_rwdeclarations, Consrwdeclarations, rwdeclaration_1 ), KC_OFFSETOF( struct kc_tag_rwdeclarations, Consrwdeclarations, rwdeclarations_1 ) }; static kc_size_t kc_suboffsets_RwDeclaration[] = { KC_OFFSETOF( struct kc_tag_rwdeclaration, RwDeclaration, outmostpatterns_1 ), KC_OFFSETOF( struct kc_tag_rwdeclaration, RwDeclaration, rewriteclauses_1 ) }; static kc_size_t kc_suboffsets_Consrewriteclauses[] = { KC_OFFSETOF( struct kc_tag_rewriteclauses, Consrewriteclauses, rewriteclause_1 ), KC_OFFSETOF( struct kc_tag_rewriteclauses, Consrewriteclauses, rewriteclauses_1 ) }; static kc_size_t kc_suboffsets_RewriteClause[] = { KC_OFFSETOF( struct kc_tag_rewriteclause, RewriteClause, viewnames_1 ), KC_OFFSETOF( struct kc_tag_rewriteclause, RewriteClause, term_1 ) }; static kc_size_t kc_suboffsets_Conspatternchains[] = { KC_OFFSETOF( struct kc_tag_patternchains, Conspatternchains, patternchain_1 ), KC_OFFSETOF( struct kc_tag_patternchains, Conspatternchains, patternchains_1 ) }; static kc_size_t kc_suboffsets_Conspatternchain[] = { KC_OFFSETOF( struct kc_tag_patternchain, Conspatternchain, patternchainitem_1 ), KC_OFFSETOF( struct kc_tag_patternchain, Conspatternchain, patternchain_1 ) }; static kc_size_t kc_suboffsets_Consoutmostpatterns[] = { KC_OFFSETOF( struct kc_tag_outmostpatterns, Consoutmostpatterns, outmostpattern_1 ), KC_OFFSETOF( struct kc_tag_outmostpatterns, Consoutmostpatterns, outmostpatterns_1 ) }; static kc_size_t kc_suboffsets_PatternchainitemOutmost[] = { KC_OFFSETOF( struct kc_tag_patternchainitem, PatternchainitemOutmost, outmostpattern_1 ) }; static kc_size_t kc_suboffsets_PatternchainitemGroup[] = { KC_OFFSETOF( struct kc_tag_patternchainitem, PatternchainitemGroup, patternchains_1 ) }; static kc_size_t kc_suboffsets_PatternchainitemDollarid[] = { KC_OFFSETOF( struct kc_tag_patternchainitem, PatternchainitemDollarid, ID_1 ) }; static kc_size_t kc_suboffsets_OPOperatorWildcard[] = { KC_OFFSETOF( struct kc_tag_outmostpattern, OPOperatorWildcard, ID_1 ) }; static kc_size_t kc_suboffsets_OPOperator[] = { KC_OFFSETOF( struct kc_tag_outmostpattern, OPOperator, ID_1 ), KC_OFFSETOF( struct kc_tag_outmostpattern, OPOperator, patterns_1 ) }; static kc_size_t kc_suboffsets_OPNonLeafVariable[] = { KC_OFFSETOF( struct kc_tag_outmostpattern, OPNonLeafVariable, ID_1 ), KC_OFFSETOF( struct kc_tag_outmostpattern, OPNonLeafVariable, outmostpattern_1 ) }; static kc_size_t kc_suboffsets_PVariable[] = { KC_OFFSETOF( struct kc_tag_pattern, PVariable, ID_1 ) }; static kc_size_t kc_suboffsets_POperator[] = { KC_OFFSETOF( struct kc_tag_pattern, POperator, ID_1 ), KC_OFFSETOF( struct kc_tag_pattern, POperator, patterns_1 ) }; static kc_size_t kc_suboffsets_PNonLeafVariable[] = { KC_OFFSETOF( struct kc_tag_pattern, PNonLeafVariable, ID_1 ), KC_OFFSETOF( struct kc_tag_pattern, PNonLeafVariable, pattern_1 ) }; static kc_size_t kc_suboffsets_PStringLiteral[] = { KC_OFFSETOF( struct kc_tag_pattern, PStringLiteral, CexpressionDQ_1 ) }; static kc_size_t kc_suboffsets_PIntLiteral[] = { KC_OFFSETOF( struct kc_tag_pattern, PIntLiteral, INT_1 ) }; static kc_size_t kc_suboffsets_Conspatterns[] = { KC_OFFSETOF( struct kc_tag_patterns, Conspatterns, pattern_1 ), KC_OFFSETOF( struct kc_tag_patterns, Conspatterns, patterns_1 ) }; static kc_size_t kc_suboffsets_TVariable[] = { KC_OFFSETOF( struct kc_tag_term, TVariable, ID_1 ) }; static kc_size_t kc_suboffsets_TOperator[] = { KC_OFFSETOF( struct kc_tag_term, TOperator, ID_1 ), KC_OFFSETOF( struct kc_tag_term, TOperator, terms_1 ) }; static kc_size_t kc_suboffsets_TStringLiteral[] = { KC_OFFSETOF( struct kc_tag_term, TStringLiteral, CexpressionDQ_1 ) }; static kc_size_t kc_suboffsets_TIntLiteral[] = { KC_OFFSETOF( struct kc_tag_term, TIntLiteral, INT_1 ) }; static kc_size_t kc_suboffsets_Consterms[] = { KC_OFFSETOF( struct kc_tag_terms, Consterms, term_1 ), KC_OFFSETOF( struct kc_tag_terms, Consterms, terms_1 ) }; static kc_size_t kc_suboffsets_Consfnfiles[] = { KC_OFFSETOF( struct kc_tag_fnfiles, Consfnfiles, fnfile_1 ), KC_OFFSETOF( struct kc_tag_fnfiles, Consfnfiles, fnfiles_1 ) }; static kc_size_t kc_suboffsets_FnFile[] = { KC_OFFSETOF( struct kc_tag_fnfile, FnFile, casestring_1 ) }; static kc_size_t kc_suboffsets_Consfndeclarations[] = { KC_OFFSETOF( struct kc_tag_fndeclarations, Consfndeclarations, fndeclaration_1 ), KC_OFFSETOF( struct kc_tag_fndeclarations, Consfndeclarations, fndeclarations_1 ) }; static kc_size_t kc_suboffsets_FnDeclaration[] = { KC_OFFSETOF( struct kc_tag_fndeclaration, FnDeclaration, ID_1 ), KC_OFFSETOF( struct kc_tag_fndeclaration, FnDeclaration, int_1 ), KC_OFFSETOF( struct kc_tag_fndeclaration, FnDeclaration, ID_2 ), KC_OFFSETOF( struct kc_tag_fndeclaration, FnDeclaration, fnarguments_1 ), KC_OFFSETOF( struct kc_tag_fndeclaration, FnDeclaration, Cvariabledeclarations_1 ), KC_OFFSETOF( struct kc_tag_fndeclaration, FnDeclaration, Ctext_1 ), KC_OFFSETOF( struct kc_tag_fndeclaration, FnDeclaration, fnclass_1 ) }; static kc_size_t kc_suboffsets_FnAcDeclaration[] = { KC_OFFSETOF( struct kc_tag_fndeclaration, FnAcDeclaration, ac_declaration_specifiers_1 ), KC_OFFSETOF( struct kc_tag_fndeclaration, FnAcDeclaration, ac_declarator_1 ), KC_OFFSETOF( struct kc_tag_fndeclaration, FnAcDeclaration, ac_declaration_list_1 ), KC_OFFSETOF( struct kc_tag_fndeclaration, FnAcDeclaration, Ctext_1 ), KC_OFFSETOF( struct kc_tag_fndeclaration, FnAcDeclaration, ID_1 ), KC_OFFSETOF( struct kc_tag_fndeclaration, FnAcDeclaration, fnclass_1 ) }; static kc_size_t kc_suboffsets_LocalFn[] = { KC_OFFSETOF( struct kc_tag_fnclass, LocalFn, casestring_1 ) }; static kc_size_t kc_suboffsets_Consfnarguments[] = { KC_OFFSETOF( struct kc_tag_fnarguments, Consfnarguments, ID_1 ), KC_OFFSETOF( struct kc_tag_fnarguments, Consfnarguments, fnarguments_1 ) }; static kc_size_t kc_suboffsets_ConsCvariabledeclarations[] = { KC_OFFSETOF( struct kc_tag_Cvariabledeclarations, ConsCvariabledeclarations, Cvariabledeclaration_1 ), KC_OFFSETOF( struct kc_tag_Cvariabledeclarations, ConsCvariabledeclarations, Cvariabledeclarations_1 ) }; static kc_size_t kc_suboffsets_CVariabledeclaration[] = { KC_OFFSETOF( struct kc_tag_Cvariabledeclaration, CVariabledeclaration, ID_1 ), KC_OFFSETOF( struct kc_tag_Cvariabledeclaration, CVariabledeclaration, Cvariables_1 ) }; static kc_size_t kc_suboffsets_Fnargfpdecl[] = { KC_OFFSETOF( struct kc_tag_Cvariabledeclaration, Fnargfpdecl, ID_1 ), KC_OFFSETOF( struct kc_tag_Cvariabledeclaration, Fnargfpdecl, Cvariables_1 ) }; static kc_size_t kc_suboffsets_ConsCvariables[] = { KC_OFFSETOF( struct kc_tag_Cvariables, ConsCvariables, Cvariable_1 ), KC_OFFSETOF( struct kc_tag_Cvariables, ConsCvariables, Cvariables_1 ) }; static kc_size_t kc_suboffsets_CVPointer[] = { KC_OFFSETOF( struct kc_tag_Cvariable, CVPointer, int_1 ), KC_OFFSETOF( struct kc_tag_Cvariable, CVPointer, ID_1 ) }; static kc_size_t kc_suboffsets_CVFunction[] = { KC_OFFSETOF( struct kc_tag_Cvariable, CVFunction, int_1 ), KC_OFFSETOF( struct kc_tag_Cvariable, CVFunction, int_2 ), KC_OFFSETOF( struct kc_tag_Cvariable, CVFunction, ID_1 ) }; static kc_size_t kc_suboffsets_ConsCtext[] = { KC_OFFSETOF( struct kc_tag_Ctext, ConsCtext, Ctext_elem_1 ), KC_OFFSETOF( struct kc_tag_Ctext, ConsCtext, Ctext_1 ) }; static kc_size_t kc_suboffsets_CTextLine[] = { KC_OFFSETOF( struct kc_tag_Ctext_elem, CTextLine, casestring_1 ) }; static kc_size_t kc_suboffsets_CTextDollarVar[] = { KC_OFFSETOF( struct kc_tag_Ctext_elem, CTextDollarVar, INT_1 ) }; static kc_size_t kc_suboffsets_CTextNl[] = { KC_OFFSETOF( struct kc_tag_Ctext_elem, CTextNl, int_1 ) }; static kc_size_t kc_suboffsets_CTextCexpressionDQ[] = { KC_OFFSETOF( struct kc_tag_Ctext_elem, CTextCexpressionDQ, CexpressionDQ_1 ) }; static kc_size_t kc_suboffsets_CTextCexpressionSQ[] = { KC_OFFSETOF( struct kc_tag_Ctext_elem, CTextCexpressionSQ, CexpressionSQ_1 ) }; static kc_size_t kc_suboffsets_CTextCbody[] = { KC_OFFSETOF( struct kc_tag_Ctext_elem, CTextCbody, Ctext_1 ) }; static kc_size_t kc_suboffsets_CTextForeachexpression[] = { KC_OFFSETOF( struct kc_tag_Ctext_elem, CTextForeachexpression, patternchain_1 ), KC_OFFSETOF( struct kc_tag_Ctext_elem, CTextForeachexpression, idCexpressions_1 ), KC_OFFSETOF( struct kc_tag_Ctext_elem, CTextForeachexpression, withexpressions_1 ), KC_OFFSETOF( struct kc_tag_Ctext_elem, CTextForeachexpression, Ctext_1 ), KC_OFFSETOF( struct kc_tag_Ctext_elem, CTextForeachexpression, foreach_after_1 ) }; static kc_size_t kc_suboffsets_CTextWithexpression[] = { KC_OFFSETOF( struct kc_tag_Ctext_elem, CTextWithexpression, withexpressions_1 ), KC_OFFSETOF( struct kc_tag_Ctext_elem, CTextWithexpression, withcases_1 ), KC_OFFSETOF( struct kc_tag_Ctext_elem, CTextWithexpression, contextinfo_1 ) }; static kc_size_t kc_suboffsets_ForeachAfter[] = { KC_OFFSETOF( struct kc_tag_foreach_after, ForeachAfter, patternchain_1 ), KC_OFFSETOF( struct kc_tag_foreach_after, ForeachAfter, idCexpressions_1 ), KC_OFFSETOF( struct kc_tag_foreach_after, ForeachAfter, withexpressions_1 ), KC_OFFSETOF( struct kc_tag_foreach_after, ForeachAfter, Ctext_1 ) }; static kc_size_t kc_suboffsets_InForeachContext[] = { KC_OFFSETOF( struct kc_tag_contextinfo, InForeachContext, patternchain_1 ) }; static kc_size_t kc_suboffsets_Conswithexpressions[] = { KC_OFFSETOF( struct kc_tag_withexpressions, Conswithexpressions, withexpression_1 ), KC_OFFSETOF( struct kc_tag_withexpressions, Conswithexpressions, withexpressions_1 ) }; static kc_size_t kc_suboffsets_WEVariable[] = { KC_OFFSETOF( struct kc_tag_withexpression, WEVariable, ID_1 ) }; static kc_size_t kc_suboffsets_WECexpression[] = { KC_OFFSETOF( struct kc_tag_withexpression, WECexpression, Cexpression_1 ) }; static kc_size_t kc_suboffsets_Conswithcases[] = { KC_OFFSETOF( struct kc_tag_withcases, Conswithcases, withcase_1 ), KC_OFFSETOF( struct kc_tag_withcases, Conswithcases, withcases_1 ) }; static kc_size_t kc_suboffsets_Withcase[] = { KC_OFFSETOF( struct kc_tag_withcase, Withcase, patternchains_1 ), KC_OFFSETOF( struct kc_tag_withcase, Withcase, Ctext_1 ) }; static kc_size_t kc_suboffsets_Consunparsedeclarations[] = { KC_OFFSETOF( struct kc_tag_unparsedeclarations, Consunparsedeclarations, unparsedeclaration_1 ), KC_OFFSETOF( struct kc_tag_unparsedeclarations, Consunparsedeclarations, unparsedeclarations_1 ) }; static kc_size_t kc_suboffsets_UnparseDeclaration[] = { KC_OFFSETOF( struct kc_tag_unparsedeclaration, UnparseDeclaration, outmostpatterns_1 ), KC_OFFSETOF( struct kc_tag_unparsedeclaration, UnparseDeclaration, unparseclauses_1 ) }; static kc_size_t kc_suboffsets_Consunparseclauses[] = { KC_OFFSETOF( struct kc_tag_unparseclauses, Consunparseclauses, unparseclause_1 ), KC_OFFSETOF( struct kc_tag_unparseclauses, Consunparseclauses, unparseclauses_1 ) }; static kc_size_t kc_suboffsets_UnparseClause[] = { KC_OFFSETOF( struct kc_tag_unparseclause, UnparseClause, viewnames_1 ), KC_OFFSETOF( struct kc_tag_unparseclause, UnparseClause, unparseitems_1 ) }; static kc_size_t kc_suboffsets_Consviewnames[] = { KC_OFFSETOF( struct kc_tag_viewnames, Consviewnames, ID_1 ), KC_OFFSETOF( struct kc_tag_viewnames, Consviewnames, viewnames_1 ) }; static kc_size_t kc_suboffsets_Consunparseitems[] = { KC_OFFSETOF( struct kc_tag_unparseitems, Consunparseitems, unparseitem_1 ), KC_OFFSETOF( struct kc_tag_unparseitems, Consunparseitems, unparseitems_1 ) }; static kc_size_t kc_suboffsets_UnpStr[] = { KC_OFFSETOF( struct kc_tag_unparseitem, UnpStr, CexpressionDQ_1 ), KC_OFFSETOF( struct kc_tag_unparseitem, UnpStr, viewnameoption_1 ) }; static kc_size_t kc_suboffsets_UnpSubexpr[] = { KC_OFFSETOF( struct kc_tag_unparseitem, UnpSubexpr, unpsubterm_1 ), KC_OFFSETOF( struct kc_tag_unparseitem, UnpSubexpr, viewnameoption_1 ) }; static kc_size_t kc_suboffsets_UnpCtext[] = { KC_OFFSETOF( struct kc_tag_unparseitem, UnpCtext, Ctext_1 ) }; static kc_size_t kc_suboffsets_UnpBody[] = { KC_OFFSETOF( struct kc_tag_unparseitem, UnpBody, unparseitems_1 ) }; static kc_size_t kc_suboffsets_UnpSubTerm[] = { KC_OFFSETOF( struct kc_tag_unpsubterm, UnpSubTerm, ID_1 ) }; static kc_size_t kc_suboffsets_UnpDollarvarTerm[] = { KC_OFFSETOF( struct kc_tag_unpsubterm, UnpDollarvarTerm, INT_1 ) }; static kc_size_t kc_suboffsets_UnpSubAttr[] = { KC_OFFSETOF( struct kc_tag_unpsubterm, UnpSubAttr, ID_1 ), KC_OFFSETOF( struct kc_tag_unpsubterm, UnpSubAttr, unpattributes_1 ) }; static kc_size_t kc_suboffsets_UnpDollarvarAttr[] = { KC_OFFSETOF( struct kc_tag_unpsubterm, UnpDollarvarAttr, INT_1 ), KC_OFFSETOF( struct kc_tag_unpsubterm, UnpDollarvarAttr, unpattributes_1 ) }; static kc_size_t kc_suboffsets_UnpCastedVariable[] = { KC_OFFSETOF( struct kc_tag_unpsubterm, UnpCastedVariable, ID_1 ), KC_OFFSETOF( struct kc_tag_unpsubterm, UnpCastedVariable, ID_2 ) }; static kc_size_t kc_suboffsets_Consunpattributes[] = { KC_OFFSETOF( struct kc_tag_unpattributes, Consunpattributes, ID_1 ), KC_OFFSETOF( struct kc_tag_unpattributes, Consunpattributes, unpattributes_1 ) }; static kc_size_t kc_suboffsets_YesViewname[] = { KC_OFFSETOF( struct kc_tag_viewnameoption, YesViewname, ID_1 ) }; static kc_size_t kc_suboffsets_Consfilelinestack[] = { KC_OFFSETOF( struct kc_tag_filelinestack, Consfilelinestack, fileline_1 ), KC_OFFSETOF( struct kc_tag_filelinestack, Consfilelinestack, filelinestack_1 ) }; static kc_size_t kc_suboffsets_FileLine[] = { KC_OFFSETOF( struct kc_tag_fileline, FileLine, casestring_1 ), KC_OFFSETOF( struct kc_tag_fileline, FileLine, int_1 ) }; static kc_size_t kc_suboffsets_Consnooperatorsstack[] = { KC_OFFSETOF( struct kc_tag_nooperatorsstack, Consnooperatorsstack, int_1 ), KC_OFFSETOF( struct kc_tag_nooperatorsstack, Consnooperatorsstack, nooperatorsstack_1 ) }; static kc_size_t kc_suboffsets_Consscopetypefilelinestack[] = { KC_OFFSETOF( struct kc_tag_scopetypefilelinestack, Consscopetypefilelinestack, scopetypefileline_1 ), KC_OFFSETOF( struct kc_tag_scopetypefilelinestack, Consscopetypefilelinestack, scopetypefilelinestack_1 ) }; static kc_size_t kc_suboffsets_ScopeTypeFileLine[] = { KC_OFFSETOF( struct kc_tag_scopetypefileline, ScopeTypeFileLine, int_1 ), KC_OFFSETOF( struct kc_tag_scopetypefileline, ScopeTypeFileLine, IDtype_1 ), KC_OFFSETOF( struct kc_tag_scopetypefileline, ScopeTypeFileLine, casestring_1 ), KC_OFFSETOF( struct kc_tag_scopetypefileline, ScopeTypeFileLine, int_2 ) }; static kc_size_t kc_suboffsets_ITPredefinedPhylum[] = { KC_OFFSETOF( struct kc_tag_IDtype, ITPredefinedPhylum, phylumdeclaration_1 ) }; static kc_size_t kc_suboffsets_ITPredefinedBigatomPhylum[] = { KC_OFFSETOF( struct kc_tag_IDtype, ITPredefinedBigatomPhylum, phylumdeclaration_1 ) }; static kc_size_t kc_suboffsets_ITUserPhylum[] = { KC_OFFSETOF( struct kc_tag_IDtype, ITUserPhylum, phylumdeclaration_1 ) }; static kc_size_t kc_suboffsets_ITPredefinedOperator[] = { KC_OFFSETOF( struct kc_tag_IDtype, ITPredefinedOperator, alternative_1 ), KC_OFFSETOF( struct kc_tag_IDtype, ITPredefinedOperator, ID_1 ) }; static kc_size_t kc_suboffsets_ITUserOperator[] = { KC_OFFSETOF( struct kc_tag_IDtype, ITUserOperator, alternative_1 ), KC_OFFSETOF( struct kc_tag_IDtype, ITUserOperator, ID_1 ) }; static kc_size_t kc_suboffsets_ITUserFunction[] = { KC_OFFSETOF( struct kc_tag_IDtype, ITUserFunction, fnclass_1 ) }; static kc_size_t kc_suboffsets_ITPatternVariable[] = { KC_OFFSETOF( struct kc_tag_IDtype, ITPatternVariable, ID_1 ), KC_OFFSETOF( struct kc_tag_IDtype, ITPatternVariable, int_1 ) }; static kc_size_t kc_suboffsets_Consoperatorsstack[] = { KC_OFFSETOF( struct kc_tag_operatorsstack, Consoperatorsstack, operators_1 ), KC_OFFSETOF( struct kc_tag_operatorsstack, Consoperatorsstack, operatorsstack_1 ) }; static kc_size_t kc_suboffsets_Consoperators[] = { KC_OFFSETOF( struct kc_tag_operators, Consoperators, ID_1 ), KC_OFFSETOF( struct kc_tag_operators, Consoperators, operators_1 ) }; static kc_size_t kc_suboffsets_Consphyla[] = { KC_OFFSETOF( struct kc_tag_phyla, Consphyla, ID_1 ), KC_OFFSETOF( struct kc_tag_phyla, Consphyla, phyla_1 ) }; static kc_size_t kc_suboffsets_Consvariables[] = { KC_OFFSETOF( struct kc_tag_variables, Consvariables, ID_1 ), KC_OFFSETOF( struct kc_tag_variables, Consvariables, variables_1 ) }; static kc_size_t kc_suboffsets_Consargumentsstack[] = { KC_OFFSETOF( struct kc_tag_argumentsstack, Consargumentsstack, arguments_1 ), KC_OFFSETOF( struct kc_tag_argumentsstack, Consargumentsstack, argumentsstack_1 ) }; static kc_size_t kc_suboffsets_Consphylumstack[] = { KC_OFFSETOF( struct kc_tag_phylumstack, Consphylumstack, ID_1 ), KC_OFFSETOF( struct kc_tag_phylumstack, Consphylumstack, phylumstack_1 ) }; static kc_size_t kc_suboffsets_Consphylumnamesstack[] = { KC_OFFSETOF( struct kc_tag_phylumnamesstack, Consphylumnamesstack, phylumnames_1 ), KC_OFFSETOF( struct kc_tag_phylumnamesstack, Consphylumnamesstack, phylumnamesstack_1 ) }; static kc_size_t kc_suboffsets_Conswithexpressionsstack[] = { KC_OFFSETOF( struct kc_tag_withexpressionsstack, Conswithexpressionsstack, withexpressions_1 ), KC_OFFSETOF( struct kc_tag_withexpressionsstack, Conswithexpressionsstack, withexpressionsstack_1 ) }; static kc_size_t kc_suboffsets_Consoperatorstack[] = { KC_OFFSETOF( struct kc_tag_operatorstack, Consoperatorstack, ID_1 ), KC_OFFSETOF( struct kc_tag_operatorstack, Consoperatorstack, operatorstack_1 ) }; static kc_size_t kc_suboffsets_Consvariablesstack[] = { KC_OFFSETOF( struct kc_tag_variablesstack, Consvariablesstack, variables_1 ), KC_OFFSETOF( struct kc_tag_variablesstack, Consvariablesstack, variablesstack_1 ) }; static kc_size_t kc_suboffsets_Consselvarstack[] = { KC_OFFSETOF( struct kc_tag_selvarstack, Consselvarstack, ID_1 ), KC_OFFSETOF( struct kc_tag_selvarstack, Consselvarstack, selvarstack_1 ) }; static kc_size_t kc_suboffsets_Consdollarvarsallowedstack[] = { KC_OFFSETOF( struct kc_tag_dollarvarsallowedstack, Consdollarvarsallowedstack, dollarvarstatus_1 ), KC_OFFSETOF( struct kc_tag_dollarvarsallowedstack, Consdollarvarsallowedstack, dollarvarsallowedstack_1 ) }; static kc_size_t kc_suboffsets_Consintstack[] = { KC_OFFSETOF( struct kc_tag_intstack, Consintstack, int_1 ), KC_OFFSETOF( struct kc_tag_intstack, Consintstack, intstack_1 ) }; static kc_size_t kc_suboffsets_ConsidCexpressionsstack[] = { KC_OFFSETOF( struct kc_tag_idCexpressionsstack, ConsidCexpressionsstack, idCexpressions_1 ), KC_OFFSETOF( struct kc_tag_idCexpressionsstack, ConsidCexpressionsstack, idCexpressionsstack_1 ) }; static kc_size_t kc_suboffsets_TwoStorageoption[] = { KC_OFFSETOF( struct kc_tag_two_phyla, TwoStorageoption, storageoption_1 ), KC_OFFSETOF( struct kc_tag_two_phyla, TwoStorageoption, storageoption_2 ) }; static kc_size_t kc_suboffsets_TwoProductionblock[] = { KC_OFFSETOF( struct kc_tag_two_phyla, TwoProductionblock, productionblock_1 ), KC_OFFSETOF( struct kc_tag_two_phyla, TwoProductionblock, productionblock_2 ) }; static kc_size_t kc_suboffsets_TwoCcode_option[] = { KC_OFFSETOF( struct kc_tag_two_phyla, TwoCcode_option, Ccode_option_1 ), KC_OFFSETOF( struct kc_tag_two_phyla, TwoCcode_option, Ccode_option_2 ) }; static kc_size_t kc_suboffsets_TwoRewriteruleinfo[] = { KC_OFFSETOF( struct kc_tag_two_phyla, TwoRewriteruleinfo, rewriteruleinfo_1 ), KC_OFFSETOF( struct kc_tag_two_phyla, TwoRewriteruleinfo, rewriteruleinfo_2 ) }; static kc_size_t kc_suboffsets_TwoWithcaseinfo[] = { KC_OFFSETOF( struct kc_tag_two_phyla, TwoWithcaseinfo, withcaseinfo_1 ), KC_OFFSETOF( struct kc_tag_two_phyla, TwoWithcaseinfo, withcaseinfo_2 ) }; static kc_size_t kc_suboffsets_TwoUnparsedeclinfo[] = { KC_OFFSETOF( struct kc_tag_two_phyla, TwoUnparsedeclinfo, unparsedeclinfo_1 ), KC_OFFSETOF( struct kc_tag_two_phyla, TwoUnparsedeclinfo, unparsedeclinfo_2 ) }; static kc_size_t kc_suboffsets_TwoPatternrepresentation[] = { KC_OFFSETOF( struct kc_tag_two_phyla, TwoPatternrepresentation, patternrepresentation_1 ), KC_OFFSETOF( struct kc_tag_two_phyla, TwoPatternrepresentation, patternrepresentation_2 ) }; static kc_size_t kc_suboffsets_TwoElem_patternrepresentation[] = { KC_OFFSETOF( struct kc_tag_two_phyla, TwoElem_patternrepresentation, elem_patternrepresentation_1 ), KC_OFFSETOF( struct kc_tag_two_phyla, TwoElem_patternrepresentation, elem_patternrepresentation_2 ) }; static kc_size_t kc_suboffsets_TwoPaths[] = { KC_OFFSETOF( struct kc_tag_two_phyla, TwoPaths, paths_1 ), KC_OFFSETOF( struct kc_tag_two_phyla, TwoPaths, paths_2 ) }; static kc_size_t kc_suboffsets_TwoPath[] = { KC_OFFSETOF( struct kc_tag_two_phyla, TwoPath, path_1 ), KC_OFFSETOF( struct kc_tag_two_phyla, TwoPath, path_2 ) }; static kc_size_t kc_suboffsets_Conspatternrepresentations[] = { KC_OFFSETOF( struct kc_tag_patternrepresentations, Conspatternrepresentations, patternrepresentation_1 ), KC_OFFSETOF( struct kc_tag_patternrepresentations, Conspatternrepresentations, patternrepresentations_1 ) }; static kc_size_t kc_suboffsets_Conspatternrepresentation[] = { KC_OFFSETOF( struct kc_tag_patternrepresentation, Conspatternrepresentation, elem_patternrepresentation_1 ), KC_OFFSETOF( struct kc_tag_patternrepresentation, Conspatternrepresentation, patternrepresentation_1 ) }; static kc_size_t kc_suboffsets_PRBinding[] = { KC_OFFSETOF( struct kc_tag_elem_patternrepresentation, PRBinding, path_1 ), KC_OFFSETOF( struct kc_tag_elem_patternrepresentation, PRBinding, ID_1 ) }; static kc_size_t kc_suboffsets_PRVarPredicate[] = { KC_OFFSETOF( struct kc_tag_elem_patternrepresentation, PRVarPredicate, paths_1 ), KC_OFFSETOF( struct kc_tag_elem_patternrepresentation, PRVarPredicate, ID_1 ), KC_OFFSETOF( struct kc_tag_elem_patternrepresentation, PRVarPredicate, patternrepresentation_1 ) }; static kc_size_t kc_suboffsets_PROperPredicate[] = { KC_OFFSETOF( struct kc_tag_elem_patternrepresentation, PROperPredicate, path_1 ), KC_OFFSETOF( struct kc_tag_elem_patternrepresentation, PROperPredicate, ID_1 ) }; static kc_size_t kc_suboffsets_PRNonLeafBinding[] = { KC_OFFSETOF( struct kc_tag_elem_patternrepresentation, PRNonLeafBinding, path_1 ), KC_OFFSETOF( struct kc_tag_elem_patternrepresentation, PRNonLeafBinding, ID_1 ), KC_OFFSETOF( struct kc_tag_elem_patternrepresentation, PRNonLeafBinding, patternrepresentation_1 ) }; static kc_size_t kc_suboffsets_PRWildcard[] = { KC_OFFSETOF( struct kc_tag_elem_patternrepresentation, PRWildcard, path_1 ) }; static kc_size_t kc_suboffsets_PRStringLiteral[] = { KC_OFFSETOF( struct kc_tag_elem_patternrepresentation, PRStringLiteral, path_1 ), KC_OFFSETOF( struct kc_tag_elem_patternrepresentation, PRStringLiteral, CexpressionDQ_1 ) }; static kc_size_t kc_suboffsets_PRIntLiteral[] = { KC_OFFSETOF( struct kc_tag_elem_patternrepresentation, PRIntLiteral, path_1 ), KC_OFFSETOF( struct kc_tag_elem_patternrepresentation, PRIntLiteral, INT_1 ) }; static kc_size_t kc_suboffsets_Conspath[] = { KC_OFFSETOF( struct kc_tag_path, Conspath, int_1 ), KC_OFFSETOF( struct kc_tag_path, Conspath, path_1 ) }; static kc_size_t kc_suboffsets_Conspaths[] = { KC_OFFSETOF( struct kc_tag_paths, Conspaths, path_1 ), KC_OFFSETOF( struct kc_tag_paths, Conspaths, paths_1 ) }; static kc_size_t kc_suboffsets_Consargsnumbers[] = { KC_OFFSETOF( struct kc_tag_argsnumbers, Consargsnumbers, int_1 ), KC_OFFSETOF( struct kc_tag_argsnumbers, Consargsnumbers, argsnumbers_1 ) }; static kc_size_t kc_suboffsets_Consrewriterulesinfo[] = { KC_OFFSETOF( struct kc_tag_rewriterulesinfo, Consrewriterulesinfo, rewriteruleinfo_1 ), KC_OFFSETOF( struct kc_tag_rewriterulesinfo, Consrewriterulesinfo, rewriterulesinfo_1 ) }; static kc_size_t kc_suboffsets_Rewriteruleinfo[] = { KC_OFFSETOF( struct kc_tag_rewriteruleinfo, Rewriteruleinfo, patternrepresentation_1 ), KC_OFFSETOF( struct kc_tag_rewriteruleinfo, Rewriteruleinfo, patternrepresentation_2 ), KC_OFFSETOF( struct kc_tag_rewriteruleinfo, Rewriteruleinfo, rewriteclause_1 ) }; static kc_size_t kc_suboffsets_Conswithcasesinfo[] = { KC_OFFSETOF( struct kc_tag_withcasesinfo, Conswithcasesinfo, withcaseinfo_1 ), KC_OFFSETOF( struct kc_tag_withcasesinfo, Conswithcasesinfo, withcasesinfo_1 ) }; static kc_size_t kc_suboffsets_Withcaseinfo[] = { KC_OFFSETOF( struct kc_tag_withcaseinfo, Withcaseinfo, patternrepresentation_1 ), KC_OFFSETOF( struct kc_tag_withcaseinfo, Withcaseinfo, patternrepresentation_2 ), KC_OFFSETOF( struct kc_tag_withcaseinfo, Withcaseinfo, Ctext_1 ) }; static kc_size_t kc_suboffsets_Consrewriteviewsinfo[] = { KC_OFFSETOF( struct kc_tag_rewriteviewsinfo, Consrewriteviewsinfo, rewriteviewinfo_1 ), KC_OFFSETOF( struct kc_tag_rewriteviewsinfo, Consrewriteviewsinfo, rewriteviewsinfo_1 ) }; static kc_size_t kc_suboffsets_Rewriteviewinfo[] = { KC_OFFSETOF( struct kc_tag_rewriteviewinfo, Rewriteviewinfo, ID_1 ), KC_OFFSETOF( struct kc_tag_rewriteviewinfo, Rewriteviewinfo, rewriterulesinfo_1 ) }; static kc_size_t kc_suboffsets_Consunparseviewsinfo[] = { KC_OFFSETOF( struct kc_tag_unparseviewsinfo, Consunparseviewsinfo, unparseviewinfo_1 ), KC_OFFSETOF( struct kc_tag_unparseviewsinfo, Consunparseviewsinfo, unparseviewsinfo_1 ) }; static kc_size_t kc_suboffsets_Unparseviewinfo[] = { KC_OFFSETOF( struct kc_tag_unparseviewinfo, Unparseviewinfo, ID_1 ), KC_OFFSETOF( struct kc_tag_unparseviewinfo, Unparseviewinfo, unparsedeclsinfo_1 ) }; static kc_size_t kc_suboffsets_Consunparsedeclsinfo[] = { KC_OFFSETOF( struct kc_tag_unparsedeclsinfo, Consunparsedeclsinfo, unparsedeclinfo_1 ), KC_OFFSETOF( struct kc_tag_unparsedeclsinfo, Consunparsedeclsinfo, unparsedeclsinfo_1 ) }; static kc_size_t kc_suboffsets_Unparsedeclinfo[] = { KC_OFFSETOF( struct kc_tag_unparsedeclinfo, Unparsedeclinfo, patternrepresentation_1 ), KC_OFFSETOF( struct kc_tag_unparsedeclinfo, Unparsedeclinfo, patternrepresentation_2 ), KC_OFFSETOF( struct kc_tag_unparsedeclinfo, Unparsedeclinfo, unparseclause_1 ) }; static kc_size_t kc_suboffsets_AcDeclaration[] = { KC_OFFSETOF( struct kc_tag_ac_declaration, AcDeclaration, ac_declaration_specifiers_1 ), KC_OFFSETOF( struct kc_tag_ac_declaration, AcDeclaration, ac_init_declarator_list_1 ) }; static kc_size_t kc_suboffsets_Consac_declaration_list[] = { KC_OFFSETOF( struct kc_tag_ac_declaration_list, Consac_declaration_list, ac_declaration_1 ), KC_OFFSETOF( struct kc_tag_ac_declaration_list, Consac_declaration_list, ac_declaration_list_1 ) }; static kc_size_t kc_suboffsets_Consac_declaration_specifiers[] = { KC_OFFSETOF( struct kc_tag_ac_declaration_specifiers, Consac_declaration_specifiers, ac_declaration_specifier_1 ), KC_OFFSETOF( struct kc_tag_ac_declaration_specifiers, Consac_declaration_specifiers, ac_declaration_specifiers_1 ) }; static kc_size_t kc_suboffsets_AcDeclSpecStorageSpec[] = { KC_OFFSETOF( struct kc_tag_ac_declaration_specifier, AcDeclSpecStorageSpec, ac_storage_class_specifier_1 ) }; static kc_size_t kc_suboffsets_AcDeclSpecTypeSpec[] = { KC_OFFSETOF( struct kc_tag_ac_declaration_specifier, AcDeclSpecTypeSpec, ac_type_specifier_1 ) }; static kc_size_t kc_suboffsets_AcDeclSpecTypeQual[] = { KC_OFFSETOF( struct kc_tag_ac_declaration_specifier, AcDeclSpecTypeQual, ac_type_qualifier_1 ) }; static kc_size_t kc_suboffsets_AcTypeSpec[] = { KC_OFFSETOF( struct kc_tag_ac_type_specifier, AcTypeSpec, ID_1 ) }; static kc_size_t kc_suboffsets_Consac_init_declarator_list[] = { KC_OFFSETOF( struct kc_tag_ac_init_declarator_list, Consac_init_declarator_list, ac_init_declarator_1 ), KC_OFFSETOF( struct kc_tag_ac_init_declarator_list, Consac_init_declarator_list, ac_init_declarator_list_1 ) }; static kc_size_t kc_suboffsets_AcInitDecl[] = { KC_OFFSETOF( struct kc_tag_ac_init_declarator, AcInitDecl, ac_declarator_1 ) }; static kc_size_t kc_suboffsets_AcDeclarator[] = { KC_OFFSETOF( struct kc_tag_ac_declarator, AcDeclarator, ac_pointer_option_1 ), KC_OFFSETOF( struct kc_tag_ac_declarator, AcDeclarator, ac_direct_declarator_1 ) }; static kc_size_t kc_suboffsets_AcDirectDeclId[] = { KC_OFFSETOF( struct kc_tag_ac_direct_declarator, AcDirectDeclId, ID_1 ) }; static kc_size_t kc_suboffsets_AcDirectDeclPack[] = { KC_OFFSETOF( struct kc_tag_ac_direct_declarator, AcDirectDeclPack, ac_declarator_1 ) }; static kc_size_t kc_suboffsets_AcDirectDeclArray[] = { KC_OFFSETOF( struct kc_tag_ac_direct_declarator, AcDirectDeclArray, ac_direct_declarator_1 ), KC_OFFSETOF( struct kc_tag_ac_direct_declarator, AcDirectDeclArray, ac_constant_expression_option_1 ) }; static kc_size_t kc_suboffsets_AcDirectDeclProto[] = { KC_OFFSETOF( struct kc_tag_ac_direct_declarator, AcDirectDeclProto, ac_direct_declarator_1 ), KC_OFFSETOF( struct kc_tag_ac_direct_declarator, AcDirectDeclProto, ac_parameter_type_list_1 ) }; static kc_size_t kc_suboffsets_AcDirectDeclKandR[] = { KC_OFFSETOF( struct kc_tag_ac_direct_declarator, AcDirectDeclKandR, ac_direct_declarator_1 ), KC_OFFSETOF( struct kc_tag_ac_direct_declarator, AcDirectDeclKandR, ac_identifier_list_1 ) }; static kc_size_t kc_suboffsets_Yespointer[] = { KC_OFFSETOF( struct kc_tag_ac_pointer_option, Yespointer, ac_pointer_1 ) }; static kc_size_t kc_suboffsets_AcPointerNil[] = { KC_OFFSETOF( struct kc_tag_ac_pointer, AcPointerNil, ac_type_qualifier_list_1 ) }; static kc_size_t kc_suboffsets_AcPointerCons[] = { KC_OFFSETOF( struct kc_tag_ac_pointer, AcPointerCons, ac_type_qualifier_list_1 ), KC_OFFSETOF( struct kc_tag_ac_pointer, AcPointerCons, ac_pointer_1 ) }; static kc_size_t kc_suboffsets_Consac_type_qualifier_list[] = { KC_OFFSETOF( struct kc_tag_ac_type_qualifier_list, Consac_type_qualifier_list, ac_type_qualifier_1 ), KC_OFFSETOF( struct kc_tag_ac_type_qualifier_list, Consac_type_qualifier_list, ac_type_qualifier_list_1 ) }; static kc_size_t kc_suboffsets_AcParList[] = { KC_OFFSETOF( struct kc_tag_ac_parameter_type_list, AcParList, ac_parameter_list_1 ) }; static kc_size_t kc_suboffsets_AcParList3Dot[] = { KC_OFFSETOF( struct kc_tag_ac_parameter_type_list, AcParList3Dot, ac_parameter_list_1 ) }; static kc_size_t kc_suboffsets_Consac_parameter_list[] = { KC_OFFSETOF( struct kc_tag_ac_parameter_list, Consac_parameter_list, ac_parameter_declaration_1 ), KC_OFFSETOF( struct kc_tag_ac_parameter_list, Consac_parameter_list, ac_parameter_list_1 ) }; static kc_size_t kc_suboffsets_AcParDeclDecl[] = { KC_OFFSETOF( struct kc_tag_ac_parameter_declaration, AcParDeclDecl, ac_declaration_specifiers_1 ), KC_OFFSETOF( struct kc_tag_ac_parameter_declaration, AcParDeclDecl, ac_declarator_1 ) }; static kc_size_t kc_suboffsets_AcParDeclAbsdecl[] = { KC_OFFSETOF( struct kc_tag_ac_parameter_declaration, AcParDeclAbsdecl, ac_declaration_specifiers_1 ), KC_OFFSETOF( struct kc_tag_ac_parameter_declaration, AcParDeclAbsdecl, ac_abstract_declarator_1 ) }; static kc_size_t kc_suboffsets_Consac_identifier_list[] = { KC_OFFSETOF( struct kc_tag_ac_identifier_list, Consac_identifier_list, ID_1 ), KC_OFFSETOF( struct kc_tag_ac_identifier_list, Consac_identifier_list, ac_identifier_list_1 ) }; static kc_size_t kc_suboffsets_AcAbsdeclPointer[] = { KC_OFFSETOF( struct kc_tag_ac_abstract_declarator, AcAbsdeclPointer, ac_pointer_1 ) }; static kc_size_t kc_suboffsets_AcAbsdeclDirdecl[] = { KC_OFFSETOF( struct kc_tag_ac_abstract_declarator, AcAbsdeclDirdecl, ac_pointer_option_1 ), KC_OFFSETOF( struct kc_tag_ac_abstract_declarator, AcAbsdeclDirdecl, ac_direct_abstract_declarator_1 ) }; static kc_size_t kc_suboffsets_Yesac_direct_abstract_declarator[] = { KC_OFFSETOF( struct kc_tag_ac_direct_abstract_declarator_option, Yesac_direct_abstract_declarator, ac_direct_abstract_declarator_1 ) }; static kc_size_t kc_suboffsets_AcDirAbsdeclPack[] = { KC_OFFSETOF( struct kc_tag_ac_direct_abstract_declarator, AcDirAbsdeclPack, ac_abstract_declarator_1 ) }; static kc_size_t kc_suboffsets_AcDirAbsdeclArray[] = { KC_OFFSETOF( struct kc_tag_ac_direct_abstract_declarator, AcDirAbsdeclArray, ac_direct_abstract_declarator_option_1 ), KC_OFFSETOF( struct kc_tag_ac_direct_abstract_declarator, AcDirAbsdeclArray, ac_constant_expression_option_1 ) }; static kc_size_t kc_suboffsets_AcDirAbsdeclFn[] = { KC_OFFSETOF( struct kc_tag_ac_direct_abstract_declarator, AcDirAbsdeclFn, ac_direct_abstract_declarator_option_1 ), KC_OFFSETOF( struct kc_tag_ac_direct_abstract_declarator, AcDirAbsdeclFn, ac_parameter_type_list_1 ) }; static kc_size_t kc_suboffsets_Yesac_constant_expression[] = { KC_OFFSETOF( struct kc_tag_ac_constant_expression_option, Yesac_constant_expression, ac_constant_expression_1 ) }; static kc_size_t kc_suboffsets_AcConstExpr[] = { KC_OFFSETOF( struct kc_tag_ac_constant_expression, AcConstExpr, Cexpression_1 ) }; static kc_size_t kc_suboffsets_Fatal[] = { KC_OFFSETOF( struct kc_tag_error, Fatal, fileline_1 ), KC_OFFSETOF( struct kc_tag_error, Fatal, problem_1 ) }; static kc_size_t kc_suboffsets_NonFatal[] = { KC_OFFSETOF( struct kc_tag_error, NonFatal, fileline_1 ), KC_OFFSETOF( struct kc_tag_error, NonFatal, problem_1 ) }; static kc_size_t kc_suboffsets_Warning[] = { KC_OFFSETOF( struct kc_tag_error, Warning, fileline_1 ), KC_OFFSETOF( struct kc_tag_error, Warning, problem_1 ) }; static kc_size_t kc_suboffsets_Problem1[] = { KC_OFFSETOF( struct kc_tag_problem, Problem1, casestring_1 ) }; static kc_size_t kc_suboffsets_Problem1ID[] = { KC_OFFSETOF( struct kc_tag_problem, Problem1ID, casestring_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem1ID, ID_1 ) }; static kc_size_t kc_suboffsets_Problem1tID[] = { KC_OFFSETOF( struct kc_tag_problem, Problem1tID, casestring_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem1tID, ID_1 ) }; static kc_size_t kc_suboffsets_Problem1we[] = { KC_OFFSETOF( struct kc_tag_problem, Problem1we, casestring_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem1we, withexpression_1 ) }; static kc_size_t kc_suboffsets_Problem1ID1ID[] = { KC_OFFSETOF( struct kc_tag_problem, Problem1ID1ID, casestring_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem1ID1ID, ID_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem1ID1ID, casestring_2 ), KC_OFFSETOF( struct kc_tag_problem, Problem1ID1ID, ID_2 ) }; static kc_size_t kc_suboffsets_Problem1t1ID[] = { KC_OFFSETOF( struct kc_tag_problem, Problem1t1ID, casestring_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem1t1ID, IDtype_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem1t1ID, casestring_2 ), KC_OFFSETOF( struct kc_tag_problem, Problem1t1ID, ID_1 ) }; static kc_size_t kc_suboffsets_Problem1INT[] = { KC_OFFSETOF( struct kc_tag_problem, Problem1INT, casestring_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem1INT, INT_1 ) }; static kc_size_t kc_suboffsets_Problem1int1[] = { KC_OFFSETOF( struct kc_tag_problem, Problem1int1, casestring_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem1int1, int_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem1int1, casestring_2 ) }; static kc_size_t kc_suboffsets_Problem1INT1ID[] = { KC_OFFSETOF( struct kc_tag_problem, Problem1INT1ID, casestring_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem1INT1ID, INT_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem1INT1ID, casestring_2 ), KC_OFFSETOF( struct kc_tag_problem, Problem1INT1ID, ID_1 ) }; static kc_size_t kc_suboffsets_Problem1ID1ID1ID[] = { KC_OFFSETOF( struct kc_tag_problem, Problem1ID1ID1ID, casestring_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem1ID1ID1ID, ID_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem1ID1ID1ID, casestring_2 ), KC_OFFSETOF( struct kc_tag_problem, Problem1ID1ID1ID, ID_2 ), KC_OFFSETOF( struct kc_tag_problem, Problem1ID1ID1ID, casestring_3 ), KC_OFFSETOF( struct kc_tag_problem, Problem1ID1ID1ID, ID_3 ) }; static kc_size_t kc_suboffsets_Problem1INT1ID1ID[] = { KC_OFFSETOF( struct kc_tag_problem, Problem1INT1ID1ID, casestring_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem1INT1ID1ID, INT_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem1INT1ID1ID, casestring_2 ), KC_OFFSETOF( struct kc_tag_problem, Problem1INT1ID1ID, ID_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem1INT1ID1ID, casestring_3 ), KC_OFFSETOF( struct kc_tag_problem, Problem1INT1ID1ID, ID_2 ) }; static kc_size_t kc_suboffsets_Problem1storageoption1ID[] = { KC_OFFSETOF( struct kc_tag_problem, Problem1storageoption1ID, casestring_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem1storageoption1ID, storageoption_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem1storageoption1ID, casestring_2 ), KC_OFFSETOF( struct kc_tag_problem, Problem1storageoption1ID, ID_1 ) }; static kc_size_t kc_suboffsets_Problem2[] = { KC_OFFSETOF( struct kc_tag_problem, Problem2, casestring_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem2, casestring_2 ) }; static kc_size_t kc_suboffsets_Problem3[] = { KC_OFFSETOF( struct kc_tag_problem, Problem3, casestring_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem3, casestring_2 ), KC_OFFSETOF( struct kc_tag_problem, Problem3, casestring_3 ) }; static kc_size_t kc_suboffsets_Problem3int1[] = { KC_OFFSETOF( struct kc_tag_problem, Problem3int1, casestring_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem3int1, casestring_2 ), KC_OFFSETOF( struct kc_tag_problem, Problem3int1, casestring_3 ), KC_OFFSETOF( struct kc_tag_problem, Problem3int1, int_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem3int1, casestring_4 ) }; static kc_size_t kc_suboffsets_Problem4[] = { KC_OFFSETOF( struct kc_tag_problem, Problem4, casestring_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem4, casestring_2 ), KC_OFFSETOF( struct kc_tag_problem, Problem4, casestring_3 ), KC_OFFSETOF( struct kc_tag_problem, Problem4, casestring_4 ) }; static kc_size_t kc_suboffsets_Problem5[] = { KC_OFFSETOF( struct kc_tag_problem, Problem5, casestring_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem5, casestring_2 ), KC_OFFSETOF( struct kc_tag_problem, Problem5, casestring_3 ), KC_OFFSETOF( struct kc_tag_problem, Problem5, casestring_4 ), KC_OFFSETOF( struct kc_tag_problem, Problem5, casestring_5 ) }; static kc_size_t kc_suboffsets_Problem6[] = { KC_OFFSETOF( struct kc_tag_problem, Problem6, casestring_1 ), KC_OFFSETOF( struct kc_tag_problem, Problem6, casestring_2 ), KC_OFFSETOF( struct kc_tag_problem, Problem6, casestring_3 ), KC_OFFSETOF( struct kc_tag_problem, Problem6, casestring_4 ), KC_OFFSETOF( struct kc_tag_problem, Problem6, casestring_5 ), KC_OFFSETOF( struct kc_tag_problem, Problem6, casestring_6 ) }; static kc_size_t kc_suboffsets_Consaddedphylumdeclarations[] = { KC_OFFSETOF( struct kc_tag_addedphylumdeclarations, Consaddedphylumdeclarations, addedphylumdeclaration_1 ), KC_OFFSETOF( struct kc_tag_addedphylumdeclarations, Consaddedphylumdeclarations, addedphylumdeclarations_1 ) }; static kc_size_t kc_suboffsets_AddedPhylumdeclaration[] = { KC_OFFSETOF( struct kc_tag_addedphylumdeclaration, AddedPhylumdeclaration, uniqID_1 ) }; static kc_size_t kc_suboffsets_Conscountedphylumdeclarations[] = { KC_OFFSETOF( struct kc_tag_countedphylumdeclarations, Conscountedphylumdeclarations, countedphylumdeclaration_1 ), KC_OFFSETOF( struct kc_tag_countedphylumdeclarations, Conscountedphylumdeclarations, countedphylumdeclarations_1 ) }; static kc_size_t kc_suboffsets_CountedPhylumdeclaration[] = { KC_OFFSETOF( struct kc_tag_countedphylumdeclaration, CountedPhylumdeclaration, uniqID_1 ) }; static kc_size_t kc_suboffsets_Consbindingidmarks[] = { KC_OFFSETOF( struct kc_tag_bindingidmarks, Consbindingidmarks, bindingidmark_1 ), KC_OFFSETOF( struct kc_tag_bindingidmarks, Consbindingidmarks, bindingidmarks_1 ) }; static kc_size_t kc_suboffsets_BindingIdMark[] = { KC_OFFSETOF( struct kc_tag_bindingidmark, BindingIdMark, uniqID_1 ) }; KC_OPERATOR_INFO kc_OperatorInfo[] = { { "", 0, 0, kc_one_before_first_phylum, (kc_enum_phyla_list)0, (kc_size_t_list)0, (kc_storageclass_t)0, 0 }, /* dummy element */ { "NoCaseStr", 0, 1, kc_phylum_nocasestring, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, 0 }, { "_Str", 0, 1, kc_phylum_casestring, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, 0 }, { "_Real", 0, 1, kc_phylum_float, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, 0 }, { "_Int", 0, 1, kc_phylum_int, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, 0 }, { "_VoidPtr", 0, 1, kc_phylum_voidptr, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, 0 }, { "Str", 1, 0, kc_phylum_uniqID, kc_subphyla_Str, kc_suboffsets_Str, uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Str }, { "Id", 1, 0, kc_phylum_ID, kc_subphyla_Id, kc_suboffsets_Id, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Id }, { "Int", 1, 0, kc_phylum_INT, kc_subphyla_Int, kc_suboffsets_Int, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Int }, { "String", 1, 0, kc_phylum_STRING, kc_subphyla_String, kc_suboffsets_String, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_String }, { "PhylumDeclarations", 1, 0, kc_phylum_phylumdeclarationsroot, kc_subphyla_PhylumDeclarations, kc_suboffsets_PhylumDeclarations, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_PhylumDeclarations }, { "Nilphylumdeclarations", 0, 0, kc_phylum_phylumdeclarations, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilphylumdeclarations }, { "Consphylumdeclarations", 2, 0, kc_phylum_phylumdeclarations, kc_subphyla_Consphylumdeclarations, kc_suboffsets_Consphylumdeclarations, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consphylumdeclarations }, { "Nilphylumnames", 0, 0, kc_phylum_phylumnames, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilphylumnames }, { "Consphylumnames", 2, 0, kc_phylum_phylumnames, kc_subphyla_Consphylumnames, kc_suboffsets_Consphylumnames, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consphylumnames }, { "PhylumDeclaration", 4, 0, kc_phylum_phylumdeclaration, kc_subphyla_PhylumDeclaration, kc_suboffsets_PhylumDeclaration, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_PhylumDeclaration }, { "NoStorageOption", 0, 0, kc_phylum_storageoption, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_NoStorageOption }, { "NegativeStorageOption", 1, 0, kc_phylum_storageoption, kc_subphyla_NegativeStorageOption, kc_suboffsets_NegativeStorageOption, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_NegativeStorageOption }, { "PositiveStorageOption", 1, 0, kc_phylum_storageoption, kc_subphyla_PositiveStorageOption, kc_suboffsets_PositiveStorageOption, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_PositiveStorageOption }, { "Nilstorageclasses", 0, 0, kc_phylum_storageclasses, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilstorageclasses }, { "Consstorageclasses", 2, 0, kc_phylum_storageclasses, kc_subphyla_Consstorageclasses, kc_suboffsets_Consstorageclasses, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consstorageclasses }, { "Emptyproductionblock", 0, 0, kc_phylum_productionblock, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Emptyproductionblock }, { "ListAlternatives", 2, 0, kc_phylum_productionblock, kc_subphyla_ListAlternatives, kc_suboffsets_ListAlternatives, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ListAlternatives }, { "NonlistAlternatives", 1, 0, kc_phylum_productionblock, kc_subphyla_NonlistAlternatives, kc_suboffsets_NonlistAlternatives, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_NonlistAlternatives }, { "PredefinedAlternatives", 1, 0, kc_phylum_productionblock, kc_subphyla_PredefinedAlternatives, kc_suboffsets_PredefinedAlternatives, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_PredefinedAlternatives }, { "Nilalternatives", 0, 0, kc_phylum_alternatives, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilalternatives }, { "Consalternatives", 2, 0, kc_phylum_alternatives, kc_subphyla_Consalternatives, kc_suboffsets_Consalternatives, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consalternatives }, { "Alternative", 2, 0, kc_phylum_alternative, kc_subphyla_Alternative, kc_suboffsets_Alternative, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Alternative }, { "Nilarguments", 0, 0, kc_phylum_arguments, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilarguments }, { "Consarguments", 2, 0, kc_phylum_arguments, kc_subphyla_Consarguments, kc_suboffsets_Consarguments, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consarguments }, { "Argument", 2, 0, kc_phylum_argument, kc_subphyla_Argument, kc_suboffsets_Argument, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Argument }, { "CcodeOption", 2, 0, kc_phylum_Ccode_option, kc_subphyla_CcodeOption, kc_suboffsets_CcodeOption, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CcodeOption }, { "Nilattributes", 0, 0, kc_phylum_attributes, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilattributes }, { "Consattributes", 2, 0, kc_phylum_attributes, kc_subphyla_Consattributes, kc_suboffsets_Consattributes, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consattributes }, { "Attribute", 3, 0, kc_phylum_attribute, kc_subphyla_Attribute, kc_suboffsets_Attribute, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Attribute }, { "Noattribute_initialisation", 0, 0, kc_phylum_attribute_initialisation_option, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Noattribute_initialisation }, { "Yesattribute_initialisation", 1, 0, kc_phylum_attribute_initialisation_option, kc_subphyla_Yesattribute_initialisation, kc_suboffsets_Yesattribute_initialisation, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Yesattribute_initialisation }, { "NilCexpression", 0, 0, kc_phylum_Cexpression, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_NilCexpression }, { "ConsCexpression", 2, 0, kc_phylum_Cexpression, kc_subphyla_ConsCexpression, kc_suboffsets_ConsCexpression, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ConsCexpression }, { "CExpressionPart", 1, 0, kc_phylum_Cexpression_elem, kc_subphyla_CExpressionPart, kc_suboffsets_CExpressionPart, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CExpressionPart }, { "CExpressionDollarvar", 1, 0, kc_phylum_Cexpression_elem, kc_subphyla_CExpressionDollarvar, kc_suboffsets_CExpressionDollarvar, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CExpressionDollarvar }, { "CExpressionNl", 1, 0, kc_phylum_Cexpression_elem, kc_subphyla_CExpressionNl, kc_suboffsets_CExpressionNl, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CExpressionNl }, { "CExpressionDQ", 1, 0, kc_phylum_Cexpression_elem, kc_subphyla_CExpressionDQ, kc_suboffsets_CExpressionDQ, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CExpressionDQ }, { "CExpressionSQ", 1, 0, kc_phylum_Cexpression_elem, kc_subphyla_CExpressionSQ, kc_suboffsets_CExpressionSQ, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CExpressionSQ }, { "CExpressionPack", 1, 0, kc_phylum_Cexpression_elem, kc_subphyla_CExpressionPack, kc_suboffsets_CExpressionPack, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CExpressionPack }, { "CExpressionArray", 1, 0, kc_phylum_Cexpression_elem, kc_subphyla_CExpressionArray, kc_suboffsets_CExpressionArray, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CExpressionArray }, { "NilCexpressionDQ", 0, 0, kc_phylum_CexpressionDQ, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_NilCexpressionDQ }, { "ConsCexpressionDQ", 2, 0, kc_phylum_CexpressionDQ, kc_subphyla_ConsCexpressionDQ, kc_suboffsets_ConsCexpressionDQ, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ConsCexpressionDQ }, { "CExpressionDQPart", 1, 0, kc_phylum_CexpressionDQ_elem, kc_subphyla_CExpressionDQPart, kc_suboffsets_CExpressionDQPart, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CExpressionDQPart }, { "CExpressionDQNl", 1, 0, kc_phylum_CexpressionDQ_elem, kc_subphyla_CExpressionDQNl, kc_suboffsets_CExpressionDQNl, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CExpressionDQNl }, { "NilCexpressionSQ", 0, 0, kc_phylum_CexpressionSQ, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_NilCexpressionSQ }, { "ConsCexpressionSQ", 2, 0, kc_phylum_CexpressionSQ, kc_subphyla_ConsCexpressionSQ, kc_suboffsets_ConsCexpressionSQ, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ConsCexpressionSQ }, { "CExpressionSQPart", 1, 0, kc_phylum_CexpressionSQ_elem, kc_subphyla_CExpressionSQPart, kc_suboffsets_CExpressionSQPart, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CExpressionSQPart }, { "CExpressionSQNl", 1, 0, kc_phylum_CexpressionSQ_elem, kc_subphyla_CExpressionSQNl, kc_suboffsets_CExpressionSQNl, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CExpressionSQNl }, { "NilidCexpressions", 0, 0, kc_phylum_idCexpressions, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_NilidCexpressions }, { "ConsidCexpressions", 2, 0, kc_phylum_idCexpressions, kc_subphyla_ConsidCexpressions, kc_suboffsets_ConsidCexpressions, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ConsidCexpressions }, { "IdCexpression", 2, 0, kc_phylum_idCexpression, kc_subphyla_IdCexpression, kc_suboffsets_IdCexpression, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_IdCexpression }, { "NilCtexts", 0, 0, kc_phylum_Ctexts, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_NilCtexts }, { "ConsCtexts", 2, 0, kc_phylum_Ctexts, kc_subphyla_ConsCtexts, kc_suboffsets_ConsCtexts, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ConsCtexts }, { "Nilincludefiles", 0, 0, kc_phylum_includefiles, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilincludefiles }, { "Consincludefiles", 2, 0, kc_phylum_includefiles, kc_subphyla_Consincludefiles, kc_suboffsets_Consincludefiles, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consincludefiles }, { "IncludeFile", 1, 0, kc_phylum_includefile, kc_subphyla_IncludeFile, kc_suboffsets_IncludeFile, uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_IncludeFile }, { "Nilincludedeclarations", 0, 0, kc_phylum_includedeclarations, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilincludedeclarations }, { "Consincludedeclarations", 2, 0, kc_phylum_includedeclarations, kc_subphyla_Consincludedeclarations, kc_suboffsets_Consincludedeclarations, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consincludedeclarations }, { "IncludeDeclaration", 1, 0, kc_phylum_includedeclaration, kc_subphyla_IncludeDeclaration, kc_suboffsets_IncludeDeclaration, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_IncludeDeclaration }, { "Nilincludes", 0, 0, kc_phylum_includes, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilincludes }, { "Consincludes", 2, 0, kc_phylum_includes, kc_subphyla_Consincludes, kc_suboffsets_Consincludes, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consincludes }, { "Include", 1, 0, kc_phylum_include, kc_subphyla_Include, kc_suboffsets_Include, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Include }, { "IncludeNl", 1, 0, kc_phylum_include, kc_subphyla_IncludeNl, kc_suboffsets_IncludeNl, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_IncludeNl }, { "Nilrwdeclarations", 0, 0, kc_phylum_rwdeclarations, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilrwdeclarations }, { "Consrwdeclarations", 2, 0, kc_phylum_rwdeclarations, kc_subphyla_Consrwdeclarations, kc_suboffsets_Consrwdeclarations, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consrwdeclarations }, { "RwDeclaration", 2, 0, kc_phylum_rwdeclaration, kc_subphyla_RwDeclaration, kc_suboffsets_RwDeclaration, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_RwDeclaration }, { "Nilrewriteclauses", 0, 0, kc_phylum_rewriteclauses, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilrewriteclauses }, { "Consrewriteclauses", 2, 0, kc_phylum_rewriteclauses, kc_subphyla_Consrewriteclauses, kc_suboffsets_Consrewriteclauses, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consrewriteclauses }, { "RewriteClause", 2, 0, kc_phylum_rewriteclause, kc_subphyla_RewriteClause, kc_suboffsets_RewriteClause, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_RewriteClause }, { "Nilpatternchains", 0, 0, kc_phylum_patternchains, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilpatternchains }, { "Conspatternchains", 2, 0, kc_phylum_patternchains, kc_subphyla_Conspatternchains, kc_suboffsets_Conspatternchains, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Conspatternchains }, { "Nilpatternchain", 0, 0, kc_phylum_patternchain, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilpatternchain }, { "Conspatternchain", 2, 0, kc_phylum_patternchain, kc_subphyla_Conspatternchain, kc_suboffsets_Conspatternchain, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Conspatternchain }, { "Niloutmostpatterns", 0, 0, kc_phylum_outmostpatterns, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Niloutmostpatterns }, { "Consoutmostpatterns", 2, 0, kc_phylum_outmostpatterns, kc_subphyla_Consoutmostpatterns, kc_suboffsets_Consoutmostpatterns, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consoutmostpatterns }, { "PatternchainitemOutmost", 1, 0, kc_phylum_patternchainitem, kc_subphyla_PatternchainitemOutmost, kc_suboffsets_PatternchainitemOutmost, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_PatternchainitemOutmost }, { "PatternchainitemGroup", 1, 0, kc_phylum_patternchainitem, kc_subphyla_PatternchainitemGroup, kc_suboffsets_PatternchainitemGroup, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_PatternchainitemGroup }, { "PatternchainitemDollarid", 1, 0, kc_phylum_patternchainitem, kc_subphyla_PatternchainitemDollarid, kc_suboffsets_PatternchainitemDollarid, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_PatternchainitemDollarid }, { "OPOperatorWildcard", 1, 0, kc_phylum_outmostpattern, kc_subphyla_OPOperatorWildcard, kc_suboffsets_OPOperatorWildcard, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_OPOperatorWildcard }, { "OPOperator", 2, 0, kc_phylum_outmostpattern, kc_subphyla_OPOperator, kc_suboffsets_OPOperator, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_OPOperator }, { "OPNonLeafVariable", 2, 0, kc_phylum_outmostpattern, kc_subphyla_OPNonLeafVariable, kc_suboffsets_OPNonLeafVariable, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_OPNonLeafVariable }, { "OPWildcard", 0, 0, kc_phylum_outmostpattern, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_OPWildcard }, { "OPDefault", 0, 0, kc_phylum_outmostpattern, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_OPDefault }, { "PVariable", 1, 0, kc_phylum_pattern, kc_subphyla_PVariable, kc_suboffsets_PVariable, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_PVariable }, { "POperator", 2, 0, kc_phylum_pattern, kc_subphyla_POperator, kc_suboffsets_POperator, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_POperator }, { "PNonLeafVariable", 2, 0, kc_phylum_pattern, kc_subphyla_PNonLeafVariable, kc_suboffsets_PNonLeafVariable, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_PNonLeafVariable }, { "PWildcard", 0, 0, kc_phylum_pattern, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_PWildcard }, { "PStringLiteral", 1, 0, kc_phylum_pattern, kc_subphyla_PStringLiteral, kc_suboffsets_PStringLiteral, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_PStringLiteral }, { "PIntLiteral", 1, 0, kc_phylum_pattern, kc_subphyla_PIntLiteral, kc_suboffsets_PIntLiteral, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_PIntLiteral }, { "Nilpatterns", 0, 0, kc_phylum_patterns, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilpatterns }, { "Conspatterns", 2, 0, kc_phylum_patterns, kc_subphyla_Conspatterns, kc_suboffsets_Conspatterns, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Conspatterns }, { "TVariable", 1, 0, kc_phylum_term, kc_subphyla_TVariable, kc_suboffsets_TVariable, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_TVariable }, { "TOperator", 2, 0, kc_phylum_term, kc_subphyla_TOperator, kc_suboffsets_TOperator, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_TOperator }, { "TStringLiteral", 1, 0, kc_phylum_term, kc_subphyla_TStringLiteral, kc_suboffsets_TStringLiteral, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_TStringLiteral }, { "TIntLiteral", 1, 0, kc_phylum_term, kc_subphyla_TIntLiteral, kc_suboffsets_TIntLiteral, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_TIntLiteral }, { "Nilterms", 0, 0, kc_phylum_terms, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilterms }, { "Consterms", 2, 0, kc_phylum_terms, kc_subphyla_Consterms, kc_suboffsets_Consterms, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consterms }, { "Nilfnfiles", 0, 0, kc_phylum_fnfiles, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilfnfiles }, { "Consfnfiles", 2, 0, kc_phylum_fnfiles, kc_subphyla_Consfnfiles, kc_suboffsets_Consfnfiles, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consfnfiles }, { "FnFile", 1, 0, kc_phylum_fnfile, kc_subphyla_FnFile, kc_suboffsets_FnFile, uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_FnFile }, { "Nilfndeclarations", 0, 0, kc_phylum_fndeclarations, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilfndeclarations }, { "Consfndeclarations", 2, 0, kc_phylum_fndeclarations, kc_subphyla_Consfndeclarations, kc_suboffsets_Consfndeclarations, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consfndeclarations }, { "FnDeclaration", 7, 0, kc_phylum_fndeclaration, kc_subphyla_FnDeclaration, kc_suboffsets_FnDeclaration, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_FnDeclaration }, { "FnAcDeclaration", 6, 0, kc_phylum_fndeclaration, kc_subphyla_FnAcDeclaration, kc_suboffsets_FnAcDeclaration, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_FnAcDeclaration }, { "GlobalFn", 0, 0, kc_phylum_fnclass, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_GlobalFn }, { "LocalFn", 1, 0, kc_phylum_fnclass, kc_subphyla_LocalFn, kc_suboffsets_LocalFn, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_LocalFn }, { "Nilfnarguments", 0, 0, kc_phylum_fnarguments, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilfnarguments }, { "Consfnarguments", 2, 0, kc_phylum_fnarguments, kc_subphyla_Consfnarguments, kc_suboffsets_Consfnarguments, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consfnarguments }, { "NilCvariabledeclarations", 0, 0, kc_phylum_Cvariabledeclarations, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_NilCvariabledeclarations }, { "ConsCvariabledeclarations", 2, 0, kc_phylum_Cvariabledeclarations, kc_subphyla_ConsCvariabledeclarations, kc_suboffsets_ConsCvariabledeclarations, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ConsCvariabledeclarations }, { "CVariabledeclaration", 2, 0, kc_phylum_Cvariabledeclaration, kc_subphyla_CVariabledeclaration, kc_suboffsets_CVariabledeclaration, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CVariabledeclaration }, { "Fnargfpdecl", 2, 0, kc_phylum_Cvariabledeclaration, kc_subphyla_Fnargfpdecl, kc_suboffsets_Fnargfpdecl, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Fnargfpdecl }, { "NilCvariables", 0, 0, kc_phylum_Cvariables, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_NilCvariables }, { "ConsCvariables", 2, 0, kc_phylum_Cvariables, kc_subphyla_ConsCvariables, kc_suboffsets_ConsCvariables, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ConsCvariables }, { "CVPointer", 2, 0, kc_phylum_Cvariable, kc_subphyla_CVPointer, kc_suboffsets_CVPointer, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CVPointer }, { "CVFunction", 3, 0, kc_phylum_Cvariable, kc_subphyla_CVFunction, kc_suboffsets_CVFunction, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CVFunction }, { "NilCtext", 0, 0, kc_phylum_Ctext, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_NilCtext }, { "ConsCtext", 2, 0, kc_phylum_Ctext, kc_subphyla_ConsCtext, kc_suboffsets_ConsCtext, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ConsCtext }, { "CTextLine", 1, 0, kc_phylum_Ctext_elem, kc_subphyla_CTextLine, kc_suboffsets_CTextLine, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CTextLine }, { "CTextDollarVar", 1, 0, kc_phylum_Ctext_elem, kc_subphyla_CTextDollarVar, kc_suboffsets_CTextDollarVar, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CTextDollarVar }, { "CTextNl", 1, 0, kc_phylum_Ctext_elem, kc_subphyla_CTextNl, kc_suboffsets_CTextNl, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CTextNl }, { "CTextCexpressionDQ", 1, 0, kc_phylum_Ctext_elem, kc_subphyla_CTextCexpressionDQ, kc_suboffsets_CTextCexpressionDQ, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CTextCexpressionDQ }, { "CTextCexpressionSQ", 1, 0, kc_phylum_Ctext_elem, kc_subphyla_CTextCexpressionSQ, kc_suboffsets_CTextCexpressionSQ, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CTextCexpressionSQ }, { "CTextCbody", 1, 0, kc_phylum_Ctext_elem, kc_subphyla_CTextCbody, kc_suboffsets_CTextCbody, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CTextCbody }, { "CTextForeachexpression", 5, 0, kc_phylum_Ctext_elem, kc_subphyla_CTextForeachexpression, kc_suboffsets_CTextForeachexpression, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CTextForeachexpression }, { "CTextWithexpression", 3, 0, kc_phylum_Ctext_elem, kc_subphyla_CTextWithexpression, kc_suboffsets_CTextWithexpression, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CTextWithexpression }, { "NoForeachAfter", 0, 0, kc_phylum_foreach_after, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_NoForeachAfter }, { "ForeachAfter", 4, 0, kc_phylum_foreach_after, kc_subphyla_ForeachAfter, kc_suboffsets_ForeachAfter, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ForeachAfter }, { "InForeachContext", 1, 0, kc_phylum_contextinfo, kc_subphyla_InForeachContext, kc_suboffsets_InForeachContext, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_InForeachContext }, { "NotInForeachContext", 0, 0, kc_phylum_contextinfo, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_NotInForeachContext }, { "Nilwithexpressions", 0, 0, kc_phylum_withexpressions, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilwithexpressions }, { "Conswithexpressions", 2, 0, kc_phylum_withexpressions, kc_subphyla_Conswithexpressions, kc_suboffsets_Conswithexpressions, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Conswithexpressions }, { "WEVariable", 1, 0, kc_phylum_withexpression, kc_subphyla_WEVariable, kc_suboffsets_WEVariable, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_WEVariable }, { "WECexpression", 1, 0, kc_phylum_withexpression, kc_subphyla_WECexpression, kc_suboffsets_WECexpression, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_WECexpression }, { "Nilwithcases", 0, 0, kc_phylum_withcases, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilwithcases }, { "Conswithcases", 2, 0, kc_phylum_withcases, kc_subphyla_Conswithcases, kc_suboffsets_Conswithcases, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Conswithcases }, { "Withcase", 2, 0, kc_phylum_withcase, kc_subphyla_Withcase, kc_suboffsets_Withcase, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Withcase }, { "Nilunparsedeclarations", 0, 0, kc_phylum_unparsedeclarations, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilunparsedeclarations }, { "Consunparsedeclarations", 2, 0, kc_phylum_unparsedeclarations, kc_subphyla_Consunparsedeclarations, kc_suboffsets_Consunparsedeclarations, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consunparsedeclarations }, { "UnparseDeclaration", 2, 0, kc_phylum_unparsedeclaration, kc_subphyla_UnparseDeclaration, kc_suboffsets_UnparseDeclaration, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_UnparseDeclaration }, { "Nilunparseclauses", 0, 0, kc_phylum_unparseclauses, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilunparseclauses }, { "Consunparseclauses", 2, 0, kc_phylum_unparseclauses, kc_subphyla_Consunparseclauses, kc_suboffsets_Consunparseclauses, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consunparseclauses }, { "UnparseClause", 2, 0, kc_phylum_unparseclause, kc_subphyla_UnparseClause, kc_suboffsets_UnparseClause, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_UnparseClause }, { "Nilviewnames", 0, 0, kc_phylum_viewnames, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilviewnames }, { "Consviewnames", 2, 0, kc_phylum_viewnames, kc_subphyla_Consviewnames, kc_suboffsets_Consviewnames, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consviewnames }, { "Nilunparseitems", 0, 0, kc_phylum_unparseitems, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilunparseitems }, { "Consunparseitems", 2, 0, kc_phylum_unparseitems, kc_subphyla_Consunparseitems, kc_suboffsets_Consunparseitems, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consunparseitems }, { "UnpStr", 2, 0, kc_phylum_unparseitem, kc_subphyla_UnpStr, kc_suboffsets_UnpStr, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_UnpStr }, { "UnpSubexpr", 2, 0, kc_phylum_unparseitem, kc_subphyla_UnpSubexpr, kc_suboffsets_UnpSubexpr, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_UnpSubexpr }, { "UnpCtext", 1, 0, kc_phylum_unparseitem, kc_subphyla_UnpCtext, kc_suboffsets_UnpCtext, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_UnpCtext }, { "UnpBody", 1, 0, kc_phylum_unparseitem, kc_subphyla_UnpBody, kc_suboffsets_UnpBody, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_UnpBody }, { "UnpSubTerm", 1, 0, kc_phylum_unpsubterm, kc_subphyla_UnpSubTerm, kc_suboffsets_UnpSubTerm, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_UnpSubTerm }, { "UnpDollarvarTerm", 1, 0, kc_phylum_unpsubterm, kc_subphyla_UnpDollarvarTerm, kc_suboffsets_UnpDollarvarTerm, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_UnpDollarvarTerm }, { "UnpSubAttr", 2, 0, kc_phylum_unpsubterm, kc_subphyla_UnpSubAttr, kc_suboffsets_UnpSubAttr, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_UnpSubAttr }, { "UnpDollarvarAttr", 2, 0, kc_phylum_unpsubterm, kc_subphyla_UnpDollarvarAttr, kc_suboffsets_UnpDollarvarAttr, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_UnpDollarvarAttr }, { "UnpCastedVariable", 2, 0, kc_phylum_unpsubterm, kc_subphyla_UnpCastedVariable, kc_suboffsets_UnpCastedVariable, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_UnpCastedVariable }, { "Nilunpattributes", 0, 0, kc_phylum_unpattributes, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilunpattributes }, { "Consunpattributes", 2, 0, kc_phylum_unpattributes, kc_subphyla_Consunpattributes, kc_suboffsets_Consunpattributes, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consunpattributes }, { "NoViewname", 0, 0, kc_phylum_viewnameoption, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_NoViewname }, { "YesViewname", 1, 0, kc_phylum_viewnameoption, kc_subphyla_YesViewname, kc_suboffsets_YesViewname, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_YesViewname }, { "Nilfilelinestack", 0, 0, kc_phylum_filelinestack, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilfilelinestack }, { "Consfilelinestack", 2, 0, kc_phylum_filelinestack, kc_subphyla_Consfilelinestack, kc_suboffsets_Consfilelinestack, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consfilelinestack }, { "FileLine", 2, 0, kc_phylum_fileline, kc_subphyla_FileLine, kc_suboffsets_FileLine, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_FileLine }, { "NoFileLine", 0, 0, kc_phylum_fileline, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_NoFileLine }, { "PosNoFileLine", 0, 0, kc_phylum_fileline, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_PosNoFileLine }, { "Nilnooperatorsstack", 0, 0, kc_phylum_nooperatorsstack, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilnooperatorsstack }, { "Consnooperatorsstack", 2, 0, kc_phylum_nooperatorsstack, kc_subphyla_Consnooperatorsstack, kc_suboffsets_Consnooperatorsstack, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consnooperatorsstack }, { "Nilscopetypefilelinestack", 0, 0, kc_phylum_scopetypefilelinestack, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilscopetypefilelinestack }, { "Consscopetypefilelinestack", 2, 0, kc_phylum_scopetypefilelinestack, kc_subphyla_Consscopetypefilelinestack, kc_suboffsets_Consscopetypefilelinestack, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consscopetypefilelinestack }, { "ScopeTypeFileLine", 4, 0, kc_phylum_scopetypefileline, kc_subphyla_ScopeTypeFileLine, kc_suboffsets_ScopeTypeFileLine, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ScopeTypeFileLine }, { "ITUnknown", 0, 0, kc_phylum_IDtype, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ITUnknown }, { "ITPredefinedPhylum", 1, 0, kc_phylum_IDtype, kc_subphyla_ITPredefinedPhylum, kc_suboffsets_ITPredefinedPhylum, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ITPredefinedPhylum }, { "ITPredefinedBigatomPhylum", 1, 0, kc_phylum_IDtype, kc_subphyla_ITPredefinedBigatomPhylum, kc_suboffsets_ITPredefinedBigatomPhylum, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ITPredefinedBigatomPhylum }, { "ITUserPhylum", 1, 0, kc_phylum_IDtype, kc_subphyla_ITUserPhylum, kc_suboffsets_ITUserPhylum, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ITUserPhylum }, { "ITPredefinedOperator", 2, 0, kc_phylum_IDtype, kc_subphyla_ITPredefinedOperator, kc_suboffsets_ITPredefinedOperator, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ITPredefinedOperator }, { "ITUserOperator", 2, 0, kc_phylum_IDtype, kc_subphyla_ITUserOperator, kc_suboffsets_ITUserOperator, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ITUserOperator }, { "ITPredefinedStorageClass", 0, 0, kc_phylum_IDtype, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ITPredefinedStorageClass }, { "ITStorageClass", 0, 0, kc_phylum_IDtype, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ITStorageClass }, { "ITPredefinedUView", 0, 0, kc_phylum_IDtype, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ITPredefinedUView }, { "ITUserUView", 0, 0, kc_phylum_IDtype, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ITUserUView }, { "ITPredefinedRView", 0, 0, kc_phylum_IDtype, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ITPredefinedRView }, { "ITUserRView", 0, 0, kc_phylum_IDtype, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ITUserRView }, { "ITUserFunction", 1, 0, kc_phylum_IDtype, kc_subphyla_ITUserFunction, kc_suboffsets_ITUserFunction, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ITUserFunction }, { "ITPatternVariable", 2, 0, kc_phylum_IDtype, kc_subphyla_ITPatternVariable, kc_suboffsets_ITPatternVariable, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ITPatternVariable }, { "Niloperatorsstack", 0, 0, kc_phylum_operatorsstack, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Niloperatorsstack }, { "Consoperatorsstack", 2, 0, kc_phylum_operatorsstack, kc_subphyla_Consoperatorsstack, kc_suboffsets_Consoperatorsstack, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consoperatorsstack }, { "Niloperators", 0, 0, kc_phylum_operators, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Niloperators }, { "Consoperators", 2, 0, kc_phylum_operators, kc_subphyla_Consoperators, kc_suboffsets_Consoperators, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consoperators }, { "Nilphyla", 0, 0, kc_phylum_phyla, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilphyla }, { "Consphyla", 2, 0, kc_phylum_phyla, kc_subphyla_Consphyla, kc_suboffsets_Consphyla, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consphyla }, { "Nilvariables", 0, 0, kc_phylum_variables, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilvariables }, { "Consvariables", 2, 0, kc_phylum_variables, kc_subphyla_Consvariables, kc_suboffsets_Consvariables, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consvariables }, { "Nilargumentsstack", 0, 0, kc_phylum_argumentsstack, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilargumentsstack }, { "Consargumentsstack", 2, 0, kc_phylum_argumentsstack, kc_subphyla_Consargumentsstack, kc_suboffsets_Consargumentsstack, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consargumentsstack }, { "Nilphylumstack", 0, 0, kc_phylum_phylumstack, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilphylumstack }, { "Consphylumstack", 2, 0, kc_phylum_phylumstack, kc_subphyla_Consphylumstack, kc_suboffsets_Consphylumstack, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consphylumstack }, { "Nilphylumnamesstack", 0, 0, kc_phylum_phylumnamesstack, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilphylumnamesstack }, { "Consphylumnamesstack", 2, 0, kc_phylum_phylumnamesstack, kc_subphyla_Consphylumnamesstack, kc_suboffsets_Consphylumnamesstack, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consphylumnamesstack }, { "Nilwithexpressionsstack", 0, 0, kc_phylum_withexpressionsstack, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilwithexpressionsstack }, { "Conswithexpressionsstack", 2, 0, kc_phylum_withexpressionsstack, kc_subphyla_Conswithexpressionsstack, kc_suboffsets_Conswithexpressionsstack, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Conswithexpressionsstack }, { "Niloperatorstack", 0, 0, kc_phylum_operatorstack, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Niloperatorstack }, { "Consoperatorstack", 2, 0, kc_phylum_operatorstack, kc_subphyla_Consoperatorstack, kc_suboffsets_Consoperatorstack, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consoperatorstack }, { "Nilvariablesstack", 0, 0, kc_phylum_variablesstack, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilvariablesstack }, { "Consvariablesstack", 2, 0, kc_phylum_variablesstack, kc_subphyla_Consvariablesstack, kc_suboffsets_Consvariablesstack, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consvariablesstack }, { "Nilselvarstack", 0, 0, kc_phylum_selvarstack, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilselvarstack }, { "Consselvarstack", 2, 0, kc_phylum_selvarstack, kc_subphyla_Consselvarstack, kc_suboffsets_Consselvarstack, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consselvarstack }, { "DVAllowed", 0, 0, kc_phylum_dollarvarstatus, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_DVAllowed }, { "DVDisallowed", 0, 0, kc_phylum_dollarvarstatus, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_DVDisallowed }, { "Nildollarvarsallowedstack", 0, 0, kc_phylum_dollarvarsallowedstack, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nildollarvarsallowedstack }, { "Consdollarvarsallowedstack", 2, 0, kc_phylum_dollarvarsallowedstack, kc_subphyla_Consdollarvarsallowedstack, kc_suboffsets_Consdollarvarsallowedstack, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consdollarvarsallowedstack }, { "Nilintstack", 0, 0, kc_phylum_intstack, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilintstack }, { "Consintstack", 2, 0, kc_phylum_intstack, kc_subphyla_Consintstack, kc_suboffsets_Consintstack, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consintstack }, { "NilidCexpressionsstack", 0, 0, kc_phylum_idCexpressionsstack, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_NilidCexpressionsstack }, { "ConsidCexpressionsstack", 2, 0, kc_phylum_idCexpressionsstack, kc_subphyla_ConsidCexpressionsstack, kc_suboffsets_ConsidCexpressionsstack, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_ConsidCexpressionsstack }, { "TwoStorageoption", 2, 0, kc_phylum_two_phyla, kc_subphyla_TwoStorageoption, kc_suboffsets_TwoStorageoption, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_TwoStorageoption }, { "TwoProductionblock", 2, 0, kc_phylum_two_phyla, kc_subphyla_TwoProductionblock, kc_suboffsets_TwoProductionblock, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_TwoProductionblock }, { "TwoCcode_option", 2, 0, kc_phylum_two_phyla, kc_subphyla_TwoCcode_option, kc_suboffsets_TwoCcode_option, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_TwoCcode_option }, { "TwoRewriteruleinfo", 2, 0, kc_phylum_two_phyla, kc_subphyla_TwoRewriteruleinfo, kc_suboffsets_TwoRewriteruleinfo, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_TwoRewriteruleinfo }, { "TwoWithcaseinfo", 2, 0, kc_phylum_two_phyla, kc_subphyla_TwoWithcaseinfo, kc_suboffsets_TwoWithcaseinfo, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_TwoWithcaseinfo }, { "TwoUnparsedeclinfo", 2, 0, kc_phylum_two_phyla, kc_subphyla_TwoUnparsedeclinfo, kc_suboffsets_TwoUnparsedeclinfo, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_TwoUnparsedeclinfo }, { "TwoPatternrepresentation", 2, 0, kc_phylum_two_phyla, kc_subphyla_TwoPatternrepresentation, kc_suboffsets_TwoPatternrepresentation, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_TwoPatternrepresentation }, { "TwoElem_patternrepresentation", 2, 0, kc_phylum_two_phyla, kc_subphyla_TwoElem_patternrepresentation, kc_suboffsets_TwoElem_patternrepresentation, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_TwoElem_patternrepresentation }, { "TwoPaths", 2, 0, kc_phylum_two_phyla, kc_subphyla_TwoPaths, kc_suboffsets_TwoPaths, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_TwoPaths }, { "TwoPath", 2, 0, kc_phylum_two_phyla, kc_subphyla_TwoPath, kc_suboffsets_TwoPath, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_TwoPath }, { "Equal", 0, 0, kc_phylum_tribool, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Equal }, { "Smaller", 0, 0, kc_phylum_tribool, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Smaller }, { "Bigger", 0, 0, kc_phylum_tribool, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Bigger }, { "Nilpatternrepresentations", 0, 0, kc_phylum_patternrepresentations, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilpatternrepresentations }, { "Conspatternrepresentations", 2, 0, kc_phylum_patternrepresentations, kc_subphyla_Conspatternrepresentations, kc_suboffsets_Conspatternrepresentations, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Conspatternrepresentations }, { "Nilpatternrepresentation", 0, 0, kc_phylum_patternrepresentation, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilpatternrepresentation }, { "Conspatternrepresentation", 2, 0, kc_phylum_patternrepresentation, kc_subphyla_Conspatternrepresentation, kc_suboffsets_Conspatternrepresentation, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Conspatternrepresentation }, { "PRBinding", 2, 0, kc_phylum_elem_patternrepresentation, kc_subphyla_PRBinding, kc_suboffsets_PRBinding, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_PRBinding }, { "PRVarPredicate", 3, 0, kc_phylum_elem_patternrepresentation, kc_subphyla_PRVarPredicate, kc_suboffsets_PRVarPredicate, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_PRVarPredicate }, { "PROperPredicate", 2, 0, kc_phylum_elem_patternrepresentation, kc_subphyla_PROperPredicate, kc_suboffsets_PROperPredicate, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_PROperPredicate }, { "PRNonLeafBinding", 3, 0, kc_phylum_elem_patternrepresentation, kc_subphyla_PRNonLeafBinding, kc_suboffsets_PRNonLeafBinding, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_PRNonLeafBinding }, { "PRWildcard", 1, 0, kc_phylum_elem_patternrepresentation, kc_subphyla_PRWildcard, kc_suboffsets_PRWildcard, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_PRWildcard }, { "PRDefault", 0, 0, kc_phylum_elem_patternrepresentation, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_PRDefault }, { "PRStringLiteral", 2, 0, kc_phylum_elem_patternrepresentation, kc_subphyla_PRStringLiteral, kc_suboffsets_PRStringLiteral, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_PRStringLiteral }, { "PRIntLiteral", 2, 0, kc_phylum_elem_patternrepresentation, kc_subphyla_PRIntLiteral, kc_suboffsets_PRIntLiteral, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_PRIntLiteral }, { "Nilpath", 0, 0, kc_phylum_path, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilpath }, { "Conspath", 2, 0, kc_phylum_path, kc_subphyla_Conspath, kc_suboffsets_Conspath, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Conspath }, { "Nilpaths", 0, 0, kc_phylum_paths, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilpaths }, { "Conspaths", 2, 0, kc_phylum_paths, kc_subphyla_Conspaths, kc_suboffsets_Conspaths, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Conspaths }, { "Nilargsnumbers", 0, 0, kc_phylum_argsnumbers, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilargsnumbers }, { "Consargsnumbers", 2, 0, kc_phylum_argsnumbers, kc_subphyla_Consargsnumbers, kc_suboffsets_Consargsnumbers, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consargsnumbers }, { "Nilrewriterulesinfo", 0, 0, kc_phylum_rewriterulesinfo, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilrewriterulesinfo }, { "Consrewriterulesinfo", 2, 0, kc_phylum_rewriterulesinfo, kc_subphyla_Consrewriterulesinfo, kc_suboffsets_Consrewriterulesinfo, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consrewriterulesinfo }, { "Rewriteruleinfo", 3, 0, kc_phylum_rewriteruleinfo, kc_subphyla_Rewriteruleinfo, kc_suboffsets_Rewriteruleinfo, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Rewriteruleinfo }, { "Nilwithcasesinfo", 0, 0, kc_phylum_withcasesinfo, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilwithcasesinfo }, { "Conswithcasesinfo", 2, 0, kc_phylum_withcasesinfo, kc_subphyla_Conswithcasesinfo, kc_suboffsets_Conswithcasesinfo, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Conswithcasesinfo }, { "Withcaseinfo", 3, 0, kc_phylum_withcaseinfo, kc_subphyla_Withcaseinfo, kc_suboffsets_Withcaseinfo, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Withcaseinfo }, { "Nilrewriteviewsinfo", 0, 0, kc_phylum_rewriteviewsinfo, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilrewriteviewsinfo }, { "Consrewriteviewsinfo", 2, 0, kc_phylum_rewriteviewsinfo, kc_subphyla_Consrewriteviewsinfo, kc_suboffsets_Consrewriteviewsinfo, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consrewriteviewsinfo }, { "Rewriteviewinfo", 2, 0, kc_phylum_rewriteviewinfo, kc_subphyla_Rewriteviewinfo, kc_suboffsets_Rewriteviewinfo, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Rewriteviewinfo }, { "Nilunparseviewsinfo", 0, 0, kc_phylum_unparseviewsinfo, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilunparseviewsinfo }, { "Consunparseviewsinfo", 2, 0, kc_phylum_unparseviewsinfo, kc_subphyla_Consunparseviewsinfo, kc_suboffsets_Consunparseviewsinfo, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consunparseviewsinfo }, { "Unparseviewinfo", 2, 0, kc_phylum_unparseviewinfo, kc_subphyla_Unparseviewinfo, kc_suboffsets_Unparseviewinfo, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Unparseviewinfo }, { "Nilunparsedeclsinfo", 0, 0, kc_phylum_unparsedeclsinfo, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilunparsedeclsinfo }, { "Consunparsedeclsinfo", 2, 0, kc_phylum_unparsedeclsinfo, kc_subphyla_Consunparsedeclsinfo, kc_suboffsets_Consunparsedeclsinfo, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consunparsedeclsinfo }, { "Unparsedeclinfo", 3, 0, kc_phylum_unparsedeclinfo, kc_subphyla_Unparsedeclinfo, kc_suboffsets_Unparsedeclinfo, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Unparsedeclinfo }, { "AcDeclaration", 2, 0, kc_phylum_ac_declaration, kc_subphyla_AcDeclaration, kc_suboffsets_AcDeclaration, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcDeclaration }, { "Nilac_declaration_list", 0, 0, kc_phylum_ac_declaration_list, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilac_declaration_list }, { "Consac_declaration_list", 2, 0, kc_phylum_ac_declaration_list, kc_subphyla_Consac_declaration_list, kc_suboffsets_Consac_declaration_list, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consac_declaration_list }, { "Nilac_declaration_specifiers", 0, 0, kc_phylum_ac_declaration_specifiers, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilac_declaration_specifiers }, { "Consac_declaration_specifiers", 2, 0, kc_phylum_ac_declaration_specifiers, kc_subphyla_Consac_declaration_specifiers, kc_suboffsets_Consac_declaration_specifiers, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consac_declaration_specifiers }, { "AcDeclSpecStorageSpec", 1, 0, kc_phylum_ac_declaration_specifier, kc_subphyla_AcDeclSpecStorageSpec, kc_suboffsets_AcDeclSpecStorageSpec, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcDeclSpecStorageSpec }, { "AcDeclSpecTypeSpec", 1, 0, kc_phylum_ac_declaration_specifier, kc_subphyla_AcDeclSpecTypeSpec, kc_suboffsets_AcDeclSpecTypeSpec, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcDeclSpecTypeSpec }, { "AcDeclSpecTypeQual", 1, 0, kc_phylum_ac_declaration_specifier, kc_subphyla_AcDeclSpecTypeQual, kc_suboffsets_AcDeclSpecTypeQual, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcDeclSpecTypeQual }, { "AcAuto", 0, 0, kc_phylum_ac_storage_class_specifier, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcAuto }, { "AcRegister", 0, 0, kc_phylum_ac_storage_class_specifier, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcRegister }, { "AcStatic", 0, 0, kc_phylum_ac_storage_class_specifier, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcStatic }, { "AcExtern", 0, 0, kc_phylum_ac_storage_class_specifier, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcExtern }, { "AcTypedef", 0, 0, kc_phylum_ac_storage_class_specifier, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcTypedef }, { "AcTypeSpec", 1, 0, kc_phylum_ac_type_specifier, kc_subphyla_AcTypeSpec, kc_suboffsets_AcTypeSpec, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcTypeSpec }, { "AcConst", 0, 0, kc_phylum_ac_type_qualifier, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcConst }, { "AcVolatile", 0, 0, kc_phylum_ac_type_qualifier, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcVolatile }, { "Nilac_init_declarator_list", 0, 0, kc_phylum_ac_init_declarator_list, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilac_init_declarator_list }, { "Consac_init_declarator_list", 2, 0, kc_phylum_ac_init_declarator_list, kc_subphyla_Consac_init_declarator_list, kc_suboffsets_Consac_init_declarator_list, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consac_init_declarator_list }, { "AcInitDecl", 1, 0, kc_phylum_ac_init_declarator, kc_subphyla_AcInitDecl, kc_suboffsets_AcInitDecl, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcInitDecl }, { "AcDeclarator", 2, 0, kc_phylum_ac_declarator, kc_subphyla_AcDeclarator, kc_suboffsets_AcDeclarator, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcDeclarator }, { "AcDirectDeclId", 1, 0, kc_phylum_ac_direct_declarator, kc_subphyla_AcDirectDeclId, kc_suboffsets_AcDirectDeclId, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcDirectDeclId }, { "AcDirectDeclPack", 1, 0, kc_phylum_ac_direct_declarator, kc_subphyla_AcDirectDeclPack, kc_suboffsets_AcDirectDeclPack, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcDirectDeclPack }, { "AcDirectDeclArray", 2, 0, kc_phylum_ac_direct_declarator, kc_subphyla_AcDirectDeclArray, kc_suboffsets_AcDirectDeclArray, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcDirectDeclArray }, { "AcDirectDeclProto", 2, 0, kc_phylum_ac_direct_declarator, kc_subphyla_AcDirectDeclProto, kc_suboffsets_AcDirectDeclProto, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcDirectDeclProto }, { "AcDirectDeclKandR", 2, 0, kc_phylum_ac_direct_declarator, kc_subphyla_AcDirectDeclKandR, kc_suboffsets_AcDirectDeclKandR, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcDirectDeclKandR }, { "Nopointer", 0, 0, kc_phylum_ac_pointer_option, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nopointer }, { "Yespointer", 1, 0, kc_phylum_ac_pointer_option, kc_subphyla_Yespointer, kc_suboffsets_Yespointer, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Yespointer }, { "AcPointerNil", 1, 0, kc_phylum_ac_pointer, kc_subphyla_AcPointerNil, kc_suboffsets_AcPointerNil, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcPointerNil }, { "AcPointerCons", 2, 0, kc_phylum_ac_pointer, kc_subphyla_AcPointerCons, kc_suboffsets_AcPointerCons, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcPointerCons }, { "Nilac_type_qualifier_list", 0, 0, kc_phylum_ac_type_qualifier_list, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilac_type_qualifier_list }, { "Consac_type_qualifier_list", 2, 0, kc_phylum_ac_type_qualifier_list, kc_subphyla_Consac_type_qualifier_list, kc_suboffsets_Consac_type_qualifier_list, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consac_type_qualifier_list }, { "AcParList", 1, 0, kc_phylum_ac_parameter_type_list, kc_subphyla_AcParList, kc_suboffsets_AcParList, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcParList }, { "AcParList3Dot", 1, 0, kc_phylum_ac_parameter_type_list, kc_subphyla_AcParList3Dot, kc_suboffsets_AcParList3Dot, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcParList3Dot }, { "Nilac_parameter_list", 0, 0, kc_phylum_ac_parameter_list, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilac_parameter_list }, { "Consac_parameter_list", 2, 0, kc_phylum_ac_parameter_list, kc_subphyla_Consac_parameter_list, kc_suboffsets_Consac_parameter_list, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consac_parameter_list }, { "AcParDeclDecl", 2, 0, kc_phylum_ac_parameter_declaration, kc_subphyla_AcParDeclDecl, kc_suboffsets_AcParDeclDecl, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcParDeclDecl }, { "AcParDeclAbsdecl", 2, 0, kc_phylum_ac_parameter_declaration, kc_subphyla_AcParDeclAbsdecl, kc_suboffsets_AcParDeclAbsdecl, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcParDeclAbsdecl }, { "Nilac_identifier_list", 0, 0, kc_phylum_ac_identifier_list, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilac_identifier_list }, { "Consac_identifier_list", 2, 0, kc_phylum_ac_identifier_list, kc_subphyla_Consac_identifier_list, kc_suboffsets_Consac_identifier_list, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consac_identifier_list }, { "AcAbsdeclPointer", 1, 0, kc_phylum_ac_abstract_declarator, kc_subphyla_AcAbsdeclPointer, kc_suboffsets_AcAbsdeclPointer, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcAbsdeclPointer }, { "AcAbsdeclDirdecl", 2, 0, kc_phylum_ac_abstract_declarator, kc_subphyla_AcAbsdeclDirdecl, kc_suboffsets_AcAbsdeclDirdecl, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcAbsdeclDirdecl }, { "Noac_direct_abstract_declarator", 0, 0, kc_phylum_ac_direct_abstract_declarator_option, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Noac_direct_abstract_declarator }, { "Yesac_direct_abstract_declarator", 1, 0, kc_phylum_ac_direct_abstract_declarator_option, kc_subphyla_Yesac_direct_abstract_declarator, kc_suboffsets_Yesac_direct_abstract_declarator, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Yesac_direct_abstract_declarator }, { "AcDirAbsdeclPack", 1, 0, kc_phylum_ac_direct_abstract_declarator, kc_subphyla_AcDirAbsdeclPack, kc_suboffsets_AcDirAbsdeclPack, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcDirAbsdeclPack }, { "AcDirAbsdeclArray", 2, 0, kc_phylum_ac_direct_abstract_declarator, kc_subphyla_AcDirAbsdeclArray, kc_suboffsets_AcDirAbsdeclArray, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcDirAbsdeclArray }, { "AcDirAbsdeclFn", 2, 0, kc_phylum_ac_direct_abstract_declarator, kc_subphyla_AcDirAbsdeclFn, kc_suboffsets_AcDirAbsdeclFn, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcDirAbsdeclFn }, { "Yesac_constant_expression", 1, 0, kc_phylum_ac_constant_expression_option, kc_subphyla_Yesac_constant_expression, kc_suboffsets_Yesac_constant_expression, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Yesac_constant_expression }, { "AcConstExpr", 1, 0, kc_phylum_ac_constant_expression, kc_subphyla_AcConstExpr, kc_suboffsets_AcConstExpr, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AcConstExpr }, { "Fatal", 2, 0, kc_phylum_error, kc_subphyla_Fatal, kc_suboffsets_Fatal, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Fatal }, { "NonFatal", 2, 0, kc_phylum_error, kc_subphyla_NonFatal, kc_suboffsets_NonFatal, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_NonFatal }, { "Warning", 2, 0, kc_phylum_error, kc_subphyla_Warning, kc_suboffsets_Warning, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Warning }, { "Problem1", 1, 0, kc_phylum_problem, kc_subphyla_Problem1, kc_suboffsets_Problem1, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Problem1 }, { "Problem1ID", 2, 0, kc_phylum_problem, kc_subphyla_Problem1ID, kc_suboffsets_Problem1ID, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Problem1ID }, { "Problem1tID", 2, 0, kc_phylum_problem, kc_subphyla_Problem1tID, kc_suboffsets_Problem1tID, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Problem1tID }, { "Problem1we", 2, 0, kc_phylum_problem, kc_subphyla_Problem1we, kc_suboffsets_Problem1we, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Problem1we }, { "Problem1ID1ID", 4, 0, kc_phylum_problem, kc_subphyla_Problem1ID1ID, kc_suboffsets_Problem1ID1ID, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Problem1ID1ID }, { "Problem1t1ID", 4, 0, kc_phylum_problem, kc_subphyla_Problem1t1ID, kc_suboffsets_Problem1t1ID, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Problem1t1ID }, { "Problem1INT", 2, 0, kc_phylum_problem, kc_subphyla_Problem1INT, kc_suboffsets_Problem1INT, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Problem1INT }, { "Problem1int1", 3, 0, kc_phylum_problem, kc_subphyla_Problem1int1, kc_suboffsets_Problem1int1, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Problem1int1 }, { "Problem1INT1ID", 4, 0, kc_phylum_problem, kc_subphyla_Problem1INT1ID, kc_suboffsets_Problem1INT1ID, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Problem1INT1ID }, { "Problem1ID1ID1ID", 6, 0, kc_phylum_problem, kc_subphyla_Problem1ID1ID1ID, kc_suboffsets_Problem1ID1ID1ID, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Problem1ID1ID1ID }, { "Problem1INT1ID1ID", 6, 0, kc_phylum_problem, kc_subphyla_Problem1INT1ID1ID, kc_suboffsets_Problem1INT1ID1ID, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Problem1INT1ID1ID }, { "Problem1storageoption1ID", 4, 0, kc_phylum_problem, kc_subphyla_Problem1storageoption1ID, kc_suboffsets_Problem1storageoption1ID, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Problem1storageoption1ID }, { "Problem2", 2, 0, kc_phylum_problem, kc_subphyla_Problem2, kc_suboffsets_Problem2, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Problem2 }, { "Problem3", 3, 0, kc_phylum_problem, kc_subphyla_Problem3, kc_suboffsets_Problem3, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Problem3 }, { "Problem3int1", 5, 0, kc_phylum_problem, kc_subphyla_Problem3int1, kc_suboffsets_Problem3int1, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Problem3int1 }, { "Problem4", 4, 0, kc_phylum_problem, kc_subphyla_Problem4, kc_suboffsets_Problem4, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Problem4 }, { "Problem5", 5, 0, kc_phylum_problem, kc_subphyla_Problem5, kc_suboffsets_Problem5, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Problem5 }, { "Problem6", 6, 0, kc_phylum_problem, kc_subphyla_Problem6, kc_suboffsets_Problem6, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Problem6 }, { "Niladdedphylumdeclarations", 0, 0, kc_phylum_addedphylumdeclarations, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Niladdedphylumdeclarations }, { "Consaddedphylumdeclarations", 2, 0, kc_phylum_addedphylumdeclarations, kc_subphyla_Consaddedphylumdeclarations, kc_suboffsets_Consaddedphylumdeclarations, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consaddedphylumdeclarations }, { "AddedPhylumdeclaration", 1, 0, kc_phylum_addedphylumdeclaration, kc_subphyla_AddedPhylumdeclaration, kc_suboffsets_AddedPhylumdeclaration, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_AddedPhylumdeclaration }, { "Nilcountedphylumdeclarations", 0, 0, kc_phylum_countedphylumdeclarations, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilcountedphylumdeclarations }, { "Conscountedphylumdeclarations", 2, 0, kc_phylum_countedphylumdeclarations, kc_subphyla_Conscountedphylumdeclarations, kc_suboffsets_Conscountedphylumdeclarations, kc_not_uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Conscountedphylumdeclarations }, { "CountedPhylumdeclaration", 1, 0, kc_phylum_countedphylumdeclaration, kc_subphyla_CountedPhylumdeclaration, kc_suboffsets_CountedPhylumdeclaration, uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_CountedPhylumdeclaration }, { "Nilbindingidmarks", 0, 0, kc_phylum_bindingidmarks, (kc_enum_phyla_list)0, (kc_size_t_list)0, kc_uniq_nullary_operator, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Nilbindingidmarks }, { "Consbindingidmarks", 2, 0, kc_phylum_bindingidmarks, kc_subphyla_Consbindingidmarks, kc_suboffsets_Consbindingidmarks, uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_Consbindingidmarks }, { "BindingIdMark", 1, 0, kc_phylum_bindingidmark, kc_subphyla_BindingIdMark, kc_suboffsets_BindingIdMark, uniq, (kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_BindingIdMark }, { (char*)0, 0, 0, kc_one_before_first_phylum, (kc_enum_phyla_list)0, (kc_size_t_list)0, (kc_storageclass_t)0, 0 } /* last element */ }; static kc_enum_phyla kc_phylumstorageclass_uniq[] = { kc_one_before_first_phylum, kc_phylum_nocasestring, kc_phylum_casestring, kc_phylum_float, kc_phylum_int, kc_phylum_voidptr, kc_phylum_uniqID, kc_phylum_includefile, kc_phylum_fnfile, kc_phylum_countedphylumdeclaration, kc_phylum_bindingidmarks, kc_phylum_bindingidmark, kc_last_phylum }; KC_UNIQ_INFO kc_UniqInfo[] = { (KC_UNIQ_INFO)0, (KC_UNIQ_INFO)0, kc_phylumstorageclass_uniq }; /* included stuff */ #line 348 "../abs.k" #include "gutil.h" #line 3798 "k.c" #line 2 "../main.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 3808 "k.c" /* end included stuff */ #if defined(lint) int kc_zero_constant = 0; #endif void kc_no_default_in_with #ifdef KC_USE_PROTOTYPES ( char *kc_func, int kc_line, char *kc_file ) #else ( kc_func, kc_line, kc_file ) char *kc_func; int kc_line; char *kc_file; #endif { (void)fflush(stdout); (void)fprintf( stderr, KC_NO_DEFAULT_IN_WITH, kc_func, kc_file, kc_line ); #ifndef KC_NODEFAULT_NO_ABORT abort(); #else exit( 1 ); #endif } void kc_returnless_function #ifdef KC_USE_PROTOTYPES ( char *kc_func, int kc_line, char *kc_file ) #else ( kc_func, kc_line, kc_file ) char *kc_func; int kc_line; char *kc_file; #endif { (void)fflush(stdout); (void)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 } void kc_assertionFailed #ifdef KC_USE_PROTOTYPES (char *kc_fn, int kc_l) #else (kc_fn, kc_l) char *kc_fn; int kc_l; #endif { (void)fflush(stdout); (void)fprintf( stderr, "Internal Error: Assertion failed at %s:%d\n", kc_fn, kc_l ); #ifndef KC_ASSERT_NO_ABORT abort(); #else exit( 1 ); #endif } void kc_assertionReasonFailed #ifdef KC_USE_PROTOTYPES (char *kc_fn, int kc_l, char *kc_s) #else (kc_fn, kc_l, kc_s) char *kc_fn; int kc_l; char *kc_s; #endif { (void)fflush(stdout); (void)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 } void kc_assertionNonNullFailed #ifdef KC_USE_PROTOTYPES (char *kc_str, char *kc_fn, int kc_l) #else (kc_str, kc_fn, kc_l) char *kc_str; char *kc_fn; int kc_l; #endif { (void)fflush(stdout); (void)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 } void kc_assertionOperatorInPhylumFailed #ifdef KC_USE_PROTOTYPES (int kc_op, char *kc_str1, char *kc_str2, int kc_phy, char *kc_fn, int kc_l) #else (kc_op, kc_str1, kc_str2, kc_phy, kc_fn, kc_l) int kc_op; char *kc_str1; char *kc_str2; int kc_phy; char *kc_fn; int kc_l; #endif { (void)fflush(stdout); if ((kc_op <= (int)kc_one_before_first_operator) || (kc_op >= (int)kc_last_operator)) { (void)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_PhylumInfo[(int)kc_phy].name, kc_str1, kc_str2, kc_op ); } else { (void)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_PhylumInfo[(int)kc_phy].name, kc_str1, kc_str2, kc_OperatorInfo[kc_op].name, kc_op, kc_PhylumInfo[(int)kc_OperatorInfo[kc_op].phylum].name ); } #ifndef KC_ASSERT_NO_ABORT abort(); #else exit( 1 ); #endif } static void kc_invalid_operator #ifdef KC_USE_PROTOTYPES ( char *kc_func_prefix, kc_enum_phyla kc_phy, int kc_line, char *kc_file, int kc_oper ) #else ( kc_func_prefix, kc_phy, kc_line, kc_file, kc_oper ) char *kc_func_prefix; kc_enum_phyla kc_phy; int kc_line; char *kc_file; int kc_oper; #endif { (void)fflush(stdout); (void)fprintf( stderr, "Internal Error: invalid operator code in %s%s at %s:%d: %s\n", kc_func_prefix, kc_phylumname_or_error( (int)kc_phy ), kc_file, kc_line, kc_operatorname_or_error( kc_oper )); #ifndef KC_INVALID_OPERATOR_NO_ABORT abort(); #else exit( 1 ); #endif } /* macro's that do the string concatenation */ #define KC_MIdStr(s) s #ifdef KC_STDC # define KC_MStrConc(s1,s2) s1 ## s2 #else # define KC_MStrConc(s1,s2) KC_MIdStr(s1)s2 #endif #ifndef KC_MEMORY_BLOCKSIZE # define KC_MEMORY_BLOCKSIZE 20000 #endif #ifndef LARGEPRIME # define LARGEPRIME 80021 #endif #if LARGEPRIME < 0 # define LARGEPRIME 0 #endif #ifndef KC_BUCKET_INC # define KC_BUCKET_INC 8 #endif #ifndef HASH # define HASH(x) kc_hashval = ((kc_hashval<<3) + (((unsigned)x)>>2)) #endif #ifndef INTHASH # define INTHASH(x) kc_hashval = ((kc_hashval<<10) + (unsigned)x) #endif #ifndef FLOATHASH # define FLOATHASH(x) kc_hashval = ((kc_hashval<<10) + (unsigned)x) #endif #ifndef VOIDPTRHASH # define VOIDPTRHASH(x) HASH(x) #endif #ifndef OPERATORHASH # define OPERATORHASH(x) kc_hashval = (kc_hashval + (unsigned)x * 73) #endif #ifndef CASESTRHASH # define CASESTRHASH(x) kc_hashval = ((kc_hashval<<3) + (unsigned)kc_casestrhash(x)) #endif #ifndef NOCASESTRHASH # define NOCASESTRHASH(x) kc_hashval = ((kc_hashval<<3) + (unsigned)kc_nocasestrhash(x)) #endif #ifndef MALLOC # define MALLOC emalloc #endif #ifndef CALLOC # define CALLOC ecalloc #endif #ifndef REALLOC /* * # ifdef lint * # define REALLOC(kc_p,kc_s) (kc_p,kc_s,0) * # else */ # define REALLOC erealloc /* * # endif */ #endif #ifndef FREE # define FREE efree #endif #ifndef efree /* * # ifdef lint * # define efree(kc_p) * # else */ # define efree(kc_p) free((kc_malloc_t)(kc_p)) /* * # endif */ #endif #ifndef KC_ALIGN typedef union kc_Align_tag { long l; int i; } kc_Align; #else typedef KC_ALIGN kc_Align; #endif #ifndef UNIQMALLOCINIT # define UNIQMALLOCINIT uniqmallocinit # ifndef UNIQMALLOC2 # define UNIQMALLOC2 uniqmalloc # endif # ifndef UNIQFREEELEMENT # define UNIQFREEELEMENT uniqfreeelement # endif # ifndef UNIQFREEALL # define UNIQFREEALL uniqfreeall # endif # ifndef INUNIQBLOCK # define INUNIQBLOCK isinuniqmalloccedblock # endif # ifndef UNIQMEMORYINFO # define UNIQMEMORYINFO kc_print_memory_info_statistics # endif #else # ifndef UNIQFREEELEMENT # define UNIQFREEELEMENT 0 # endif # ifndef UNIQFREEALL # define UNIQFREEALL 0 # endif # ifndef INUNIQBLOCK # define INUNIQBLOCK 0 # endif # ifndef UNIQMEMORYINFO # define UNIQMEMORYINFO 0 # endif #endif #ifndef BUCKETALLOCINIT # define BUCKETALLOCINIT 0 # ifndef BUCKETCALLOC # define BUCKETCALLOC kc_wrap_bucket_malloc # endif # ifndef BUCKETREALLOC # define BUCKETREALLOC kc_wrap_bucket_realloc # endif # ifndef BUCKETFREE # define BUCKETFREE kc_wrap_bucket_free # endif # ifndef BUCKETSFREE # define BUCKETSFREE 0 # endif # ifndef BUCKETMEMORYINFO # define BUCKETMEMORYINFO 0 # endif #else # ifndef BUCKETFREE # define BUCKETFREE 0 # endif # ifndef BUCKETSFREE # define BUCKETSFREE 0 # endif # ifndef BUCKETMEMORYINFO # define BUCKETMEMORYINFO 0 # endif #endif #ifndef BUCKETINC # define BUCKETINC KC_BUCKET_INC #endif #ifndef NONUNIQMALLOC # define NONUNIQMALLOC emalloc #endif #ifndef NONUNIQFREE # define NONUNIQFREE efree #endif #ifndef KC_BZERO # define KC_BZERO(kc_p, kc_s) (void)memset((kc_memset_firstarg_t)kc_p, 0, (kc_memset_size_t)kc_s) #endif typedef struct kc_tag_kc_memory_blockinfo_t *kc_memory_blocksinfo_t; typedef struct kc_tag_kc_memory_blockinfo_t kc_memory_blockinfo_t; typedef struct kc_tag_kc_memory_info_t kc_memory_info_t; static kc_memory_blocksinfo_t kc_mainmemory_freelist = 0; struct kc_tag_kc_memory_blockinfo_t { kc_voidptr_t block; /* pointer to the allocated structure */ kc_size_t size; /* size of allocated structure */ kc_memory_blocksinfo_t next; /* next block in list */ kc_memory_blocksinfo_t prev; /* prev block in list */ }; struct kc_tag_kc_memory_info_t { kc_memory_blocksinfo_t kc_memory_blocklist; /* points to block currently in use */ int kc_memory_left; /* remaining bytes in current block */ kc_voidptr_t kc_memory_ptr; /* address of first free byte in current block */ kc_memory_blocksinfo_t *kc_memory_freelist; /* pointer to variable that holds freelist */ int kc_to_be_freed; /* should be 0 for statically created nodes, and 1 for dynamically created ones */ kc_size_t kc_wanted_blocksize; /* prefered size of chunks */ }; static kc_memory_blocksinfo_t kc_memory_createblock #ifdef KC_USE_PROTOTYPES (kc_size_t kc_n, kc_memory_info_t *kc_malloc_private_info) #else (kc_n, kc_malloc_private_info) kc_size_t kc_n; kc_memory_info_t *kc_malloc_private_info; #endif { kc_voidptr_t kc_p; kc_memory_blocksinfo_t kc_l; kc_size_t kc_size; /* we use plain malloc for adminstrative things, and test for the return status */ kc_l = (kc_memory_blocksinfo_t)MALLOC((kc_size_t)sizeof(kc_memory_blockinfo_t)); kc_size = (kc_malloc_private_info->kc_wanted_blocksize > kc_n) ? kc_malloc_private_info->kc_wanted_blocksize : kc_n; kc_p = (kc_voidptr_t)MALLOC((kc_size_t)kc_size); kc_l->block = kc_p; kc_l->size = kc_size; return kc_l; } /* * we use first fit when reusing a block */ static kc_memory_blocksinfo_t kc_memory_reuseblock #ifdef KC_USE_PROTOTYPES (kc_size_t kc_n, kc_memory_info_t *kc_malloc_private_info) #else (kc_n, kc_malloc_private_info) kc_size_t kc_n; kc_memory_info_t *kc_malloc_private_info; #endif { kc_memory_blocksinfo_t kc_l; if (*kc_malloc_private_info->kc_memory_freelist == 0) { /* no elements in freelist */ return (kc_memory_blocksinfo_t)0; } kc_l = *kc_malloc_private_info->kc_memory_freelist; do { /* at least one time, because we have at least one element */ if (kc_l->size >= kc_n) { if (kc_l->next != kc_l) { /* the list contains > 1 elements */ kc_l->prev->next = kc_l->next; kc_l->next->prev = kc_l->prev; /* make sure that we don't loose the handle to the list */ if (kc_l == *kc_malloc_private_info->kc_memory_freelist) { *kc_malloc_private_info->kc_memory_freelist = kc_l->next; } } else { /* we release the last free element */ *kc_malloc_private_info->kc_memory_freelist = 0; } return kc_l; } kc_l = kc_l->next; } while(kc_l != *kc_malloc_private_info->kc_memory_freelist); return (kc_memory_blocksinfo_t)0; } static void kc_memory_newblock #ifdef KC_USE_PROTOTYPES (kc_size_t kc_n, kc_memory_info_t *kc_malloc_private_info) #else (kc_n, kc_malloc_private_info) kc_size_t kc_n; kc_memory_info_t *kc_malloc_private_info; #endif { kc_memory_blocksinfo_t kc_l; if ((kc_l = kc_memory_reuseblock(kc_n, kc_malloc_private_info)) == 0) { kc_l = kc_memory_createblock(kc_n, kc_malloc_private_info); } if (kc_malloc_private_info->kc_memory_blocklist != 0) { kc_l->next = kc_malloc_private_info->kc_memory_blocklist; kc_malloc_private_info->kc_memory_blocklist->prev->next = kc_l; kc_l->prev = kc_malloc_private_info->kc_memory_blocklist->prev; kc_malloc_private_info->kc_memory_blocklist->prev = kc_l; } else { kc_l->next = kc_l; kc_l->prev = kc_l; } kc_malloc_private_info->kc_memory_blocklist = kc_l; kc_malloc_private_info->kc_memory_left = kc_l->size; kc_malloc_private_info->kc_memory_ptr = kc_l->block; } static void kc_print_memory_blocks_info_statistics #ifdef KC_USE_PROTOTYPES (FILE *kc_f, kc_memory_blocksinfo_t kc_a_memory_blocksinfo_t) #else (kc_f, kc_a_memory_blocksinfo_t) FILE *kc_f; kc_memory_blocksinfo_t kc_a_memory_blocksinfo_t; #endif { kc_memory_blocksinfo_t kc_tmp = kc_a_memory_blocksinfo_t; if (kc_tmp) { /* at least one block? */ do { fprintf(kc_f, " block-size (at %p): %d\n", kc_tmp->block, kc_tmp->size); kc_tmp = kc_tmp->next; } while(kc_tmp && (kc_tmp != kc_a_memory_blocksinfo_t)); } else { fprintf(kc_f, " no blocks allocated\n"); } } void kc_print_memory_info_statistics #ifdef KC_USE_PROTOTYPES (FILE *kc_f, kc_voidptr_t kc_malloc_private_info) #else (kc_f, kc_malloc_private_info) FILE *kc_f; kc_voidptr_t kc_malloc_private_info; #endif { kc_memory_info_t *kc_a_memory_info_t = (kc_memory_info_t *)kc_malloc_private_info; fprintf(kc_f, " to-be-freed: %s\n", (kc_a_memory_info_t->kc_to_be_freed ? "yes" : "no")); fprintf(kc_f, " wanted block-size: %d\n", kc_a_memory_info_t->kc_wanted_blocksize); fprintf(kc_f, " remaining in current block: %d\n", kc_a_memory_info_t->kc_memory_left); fprintf(kc_f, " blocks-info (at %p):\n", kc_a_memory_info_t->kc_memory_blocklist); kc_print_memory_blocks_info_statistics(kc_f, kc_a_memory_info_t->kc_memory_blocklist); fprintf(kc_f, " freelist-info (at %p):\n", *kc_a_memory_info_t->kc_memory_freelist); kc_print_memory_blocks_info_statistics(kc_f, *kc_a_memory_info_t->kc_memory_freelist); } /* * the %p in the routine below is ANSI-C standard (but implementation dependent) * for void*; instead we could use %p */ void kc_print_hashtable_memory_statistics #ifdef KC_USE_PROTOTYPES (FILE *kc_f, kc_hashtable_t kc_a_hashtable_t) #else (kc_f, kc_a_hashtable_t) FILE *kc_f; kc_hashtable_t kc_a_hashtable_t; #endif { kc_private_malloc_t kc_tmp; int kc_i; fprintf(kc_f, "current allocation scheme: %s\n", ((kc_a_hashtable_t->mode == kc_ht_store_static) ? "static" : "dynamic")); if (kc_a_hashtable_t->malloc_info) { fprintf(kc_f, "static allocation info (info ptr: %p):\n", kc_a_hashtable_t->static_malloc_private_data); (*kc_a_hashtable_t->malloc_info)(kc_f, kc_a_hashtable_t->static_malloc_private_data); kc_tmp = kc_a_hashtable_t->dynamic_malloc_private_data; kc_i = 0; fprintf(kc_f, "dynamic allocation info: counting from top (level 0) of level stack\n"); while(kc_tmp) { fprintf(kc_f, "dynamic allocation info for level %d,(info ptr: %p):\n", kc_i, kc_tmp->malloc_private_data); (*kc_a_hashtable_t->malloc_info)(kc_f, kc_tmp->malloc_private_data); kc_i++; kc_tmp = kc_tmp->next; } kc_tmp = kc_a_hashtable_t->dec_dynamic_malloc_private_data; kc_i = 0; fprintf(kc_f, "dynamic allocation info: levels to be freed, counting from bottom\n"); while(kc_tmp) { fprintf(kc_f, "dynamic allocation info for level %d,(info ptr: %p):\n", kc_i, kc_tmp->malloc_private_data); (*kc_a_hashtable_t->malloc_info)(kc_f, kc_tmp->malloc_private_data); kc_i++; kc_tmp = kc_tmp->prev; } } } kc_voidptr_t uniqmalloc /* check return from malloc */ #ifdef KC_USE_PROTOTYPES (kc_size_t kc_n, kc_voidptr_t kc_malloc_private_info) #else (kc_n, kc_malloc_private_info) kc_size_t kc_n; kc_voidptr_t kc_malloc_private_info; #endif { kc_voidptr_t kc_p; kc_memory_info_t *kc_a_memory_info_t = (kc_memory_info_t *)kc_malloc_private_info; /* all blocks should be a multiple of the alignment requirement */ kc_n += sizeof(kc_Align) - 1 - ((kc_n - 1) % sizeof(kc_Align)); if ( kc_a_memory_info_t->kc_memory_left < (int)kc_n ) kc_memory_newblock(kc_n, kc_a_memory_info_t); kc_a_memory_info_t->kc_memory_left -= kc_n; kc_p = kc_a_memory_info_t->kc_memory_ptr; kc_a_memory_info_t->kc_memory_ptr = (kc_voidptr_t)((char*)(kc_a_memory_info_t->kc_memory_ptr) + kc_n); return kc_p; } kc_memory_info_t *uniqmallocinit #ifdef KC_USE_PROTOTYPES ( /*kc_size_t kc_n*/ ) #else ( /*kc_n*/ ) /*kc_size_t kc_n;*/ #endif { kc_memory_info_t *kc_p; kc_p = (kc_memory_info_t*)MALLOC((kc_size_t)sizeof(kc_memory_info_t)); kc_p->kc_memory_blocklist = 0; kc_p->kc_memory_left = 0; kc_p->kc_memory_ptr = 0; kc_p->kc_memory_freelist = &kc_mainmemory_freelist; kc_p->kc_to_be_freed = 1; kc_p->kc_wanted_blocksize = /*(kc_n <= 0) ?*/ KC_MEMORY_BLOCKSIZE /*: kc_n*/; return kc_p; } boolean isinuniqmalloccedblock #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, kc_voidptr_t kc_malloc_private_info) #else (kc_p, kc_malloc_private_info) kc_voidptr_t kc_p; kc_voidptr_t kc_malloc_private_info; #endif { kc_memory_blocksinfo_t kc_l; kc_memory_info_t *kc_a_memory_info_t = (kc_memory_info_t *)kc_malloc_private_info; if (kc_a_memory_info_t->kc_memory_blocklist == 0) { return False; } kc_l = kc_a_memory_info_t->kc_memory_blocklist; do { if (((char*)kc_p >= (char*)kc_l->block) && ((char*)kc_p < (char*)((char*)kc_l->block + kc_l->size))) { return True; } kc_l = kc_l->next; } while(kc_l != kc_a_memory_info_t->kc_memory_blocklist); return False; } /*ARGSUSED*/ void uniqfreeelement /* free (prepare for reuse of) one element in private info */ #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_ptr, kc_voidptr_t kc_malloc_private_info) #else (kc_ptr, kc_malloc_private_info) kc_voidptr_t kc_ptr; kc_voidptr_t kc_malloc_private_info; #endif { } void uniqfreeall /* free (prepare for reuse of) everything in private info */ #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_malloc_private_info) #else (kc_malloc_private_info) kc_voidptr_t kc_malloc_private_info; #endif { kc_memory_info_t *kc_a_memory_info_t = (kc_memory_info_t *)kc_malloc_private_info; if (kc_a_memory_info_t->kc_memory_blocklist != 0) { kc_memory_blocksinfo_t kc_a_memory_blocklist = kc_a_memory_info_t->kc_memory_blocklist; kc_memory_blocksinfo_t kc_blockptr = kc_a_memory_blocklist; do { KC_BZERO(kc_blockptr->block, kc_blockptr->size); kc_blockptr = kc_blockptr->next; } while (kc_blockptr != kc_a_memory_blocklist); if (*kc_a_memory_info_t->kc_memory_freelist == 0) { *kc_a_memory_info_t->kc_memory_freelist = kc_a_memory_info_t->kc_memory_blocklist; } else { kc_a_memory_info_t->kc_memory_blocklist->prev->next = (*kc_a_memory_info_t->kc_memory_freelist); (*kc_a_memory_info_t->kc_memory_freelist)->prev->next = kc_a_memory_info_t->kc_memory_blocklist; kc_blockptr = kc_a_memory_info_t->kc_memory_blocklist->prev; kc_a_memory_info_t->kc_memory_blocklist->prev = (*kc_a_memory_info_t->kc_memory_freelist)->prev; (*kc_a_memory_info_t->kc_memory_freelist)->prev = kc_blockptr;; } } /* just to be sure, this is NECESSARY in case kc_a_memory_info_t->kc_to_be_freed holds */ kc_a_memory_info_t->kc_memory_blocklist = 0; kc_a_memory_info_t->kc_memory_left = 0; kc_a_memory_info_t->kc_memory_ptr = 0; kc_a_memory_info_t->kc_memory_left = 0; if (kc_a_memory_info_t->kc_to_be_freed) { /* we must be sure that it wasn't dynamically allocated */ KC_BZERO(kc_a_memory_info_t, sizeof(kc_memory_info_t)); FREE((kc_voidptr_t)kc_a_memory_info_t); } } /*ARGSUSED*/ kc_voidptr_t kc_wrap_bucket_malloc #ifdef KC_USE_PROTOTYPES (kc_size_t kc_a_size, kc_size_t kc_a_number, kc_voidptr_t kc_a_private_malloc_info) #else (kc_a_size, kc_a_number, kc_a_private_malloc_info) kc_size_t kc_a_size; kc_size_t kc_a_number; kc_voidptr_t kc_a_private_malloc_info; #endif { return MALLOC((kc_size_t)kc_a_size*kc_a_number); } /*ARGSUSED*/ kc_voidptr_t kc_wrap_bucket_realloc #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_ptr, kc_size_t kc_a_oldsize, kc_size_t kc_a_newsize, kc_voidptr_t kc_a_private_malloc_info) #else (kc_ptr, kc_a_oldsize, kc_a_newsize, kc_a_private_malloc_info) kc_voidptr_t kc_ptr; kc_size_t kc_a_oldsize; kc_size_t kc_a_newsize; kc_voidptr_t kc_a_private_malloc_info; #endif { return REALLOC(kc_ptr, kc_a_newsize); } /*ARGSUSED*/ void kc_wrap_bucket_free #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_ptr, kc_size_t kc_a_size, kc_voidptr_t kc_a_private_malloc_info) #else (kc_ptr, kc_a_size, kc_a_private_malloc_info) kc_voidptr_t kc_ptr; kc_size_t kc_a_size; kc_voidptr_t kc_a_private_malloc_info; #endif { (void)FREE(kc_ptr); } #ifdef KC_STATISTICS KC_OPERATOR_STATISTICS kc_OperatorStatistics[KC_NO_OF_OPERATORS]; # define KC_COLLECT_STATS0(v) v #else # define KC_COLLECT_STATS0(v) #endif #ifndef KC_CREATE_STATS # define KC_CREATE_STATS(oper) kc_OperatorStatistics[(int)oper].create++; #endif #ifndef KC_EXISTINGNOTFOUND_STATS # define KC_EXISTINGNOTFOUND_STATS(oper) kc_OperatorStatistics[(int)oper].existing_not_found++; #endif #ifndef KC_FREE_CALLED_STATS # define KC_FREE_CALLED_STATS(oper,rec) kc_OperatorStatistics[(int)oper].free_called[(int)(rec?True:False)]++; #endif #ifndef KC_FREED_STATS # define KC_FREED_STATS(oper,rec) kc_OperatorStatistics[(int)oper].freed[(int)(rec?True:False)]++; #endif static kc_hashtableentry_t kc_mainhasharray_kc_not_uniq[1][(int)kc_last_storage_mode]; static kc_hashtableentry_t kc_mainhasharray_kc_uniq_nullary_operator[1][(int)kc_last_storage_mode]; static kc_hashtableentry_t kc_mainhasharray_uniq[LARGEPRIME+1][(int)kc_last_storage_mode]; /* +1 because LARGEPRIME can be 0 */ static boolean kc_storageclass_still_uniq[] = { True, True, True }; static kc_memory_info_t kc_memory_info_kc_not_uniq = { 0, 0, 0, &kc_mainmemory_freelist, 0, KC_MEMORY_BLOCKSIZE }; static kc_memory_info_t kc_memory_info_kc_uniq_nullary_operator = { 0, 0, 0, &kc_mainmemory_freelist, 0, KC_MEMORY_BLOCKSIZE }; static kc_memory_info_t kc_memory_info_uniq = { 0, 0, 0, &kc_mainmemory_freelist, 0, KC_MEMORY_BLOCKSIZE }; #if 0 /* ! (defined(lint) || defined(SABER) || defined(CODECENTER)) */ /* currently not used */ static kc_memory_info_t *kc_memory_info[] = { &kc_memory_info_kc_not_uniq, &kc_memory_info_kc_uniq_nullary_operator, &kc_memory_info_uniq }; #endif static kc_hashtable_struct_t kc_static_hashtables[] = { { kc_mainhasharray_kc_not_uniq, 0 /*size*/, 0 /*kc_to_be_freed*/, &kc_static_hashtables[1], &kc_static_hashtables[2], /* node allocation*/ (kc_voidptr_t(*)())UNIQMALLOCINIT, UNIQMALLOC2, 0 /*UNIQFREEELEMENT*/, UNIQFREEALL, INUNIQBLOCK, (kc_voidptr_t)&kc_memory_info_kc_not_uniq /*malloc_private_data*/, (kc_voidptr_t)&kc_memory_info_kc_not_uniq /*static_malloc_private_data*/, 0 /*dynamic_malloc_private_data*/, 0 /*dec_dynamic_malloc_private_data*/, kc_ht_store_static, UNIQMEMORYINFO, /* bucket allocation */ BUCKETALLOCINIT, BUCKETCALLOC, BUCKETREALLOC, 0 /*bucket_alloc_private_data*/, BUCKETFREE, BUCKETSFREE, BUCKETINC, BUCKETMEMORYINFO }, { kc_mainhasharray_kc_uniq_nullary_operator, 0 /*size*/, 0 /*kc_to_be_freed*/, &kc_static_hashtables[2], &kc_static_hashtables[0], /* node allocation*/ (kc_voidptr_t(*)())UNIQMALLOCINIT, UNIQMALLOC2, 0 /*UNIQFREEELEMENT*/, UNIQFREEALL, INUNIQBLOCK, (kc_voidptr_t)&kc_memory_info_kc_uniq_nullary_operator /*malloc_private_data*/, (kc_voidptr_t)&kc_memory_info_kc_uniq_nullary_operator /*static_malloc_private_data*/, 0 /*dynamic_malloc_private_data*/, 0 /*dec_dynamic_malloc_private_data*/, kc_ht_store_static, UNIQMEMORYINFO, /* bucket allocation */ BUCKETALLOCINIT, BUCKETCALLOC, BUCKETREALLOC, 0 /*bucket_alloc_private_data*/, BUCKETFREE, BUCKETSFREE, BUCKETINC, BUCKETMEMORYINFO }, { kc_mainhasharray_uniq, LARGEPRIME /*size*/, 0 /*kc_to_be_freed*/, &kc_static_hashtables[0], &kc_static_hashtables[1], /* node allocation*/ (kc_voidptr_t(*)())UNIQMALLOCINIT, UNIQMALLOC2, 0 /*UNIQFREEELEMENT*/, UNIQFREEALL, INUNIQBLOCK, (kc_voidptr_t)&kc_memory_info_uniq, (kc_voidptr_t)&kc_memory_info_uniq, 0 /*dynamic_malloc_private_data*/, 0 /*dec_dynamic_malloc_private_data*/, kc_ht_store_static, UNIQMEMORYINFO, /* bucket allocation */ BUCKETALLOCINIT, BUCKETCALLOC, BUCKETREALLOC, 0 /*bucket_alloc_private_data*/, BUCKETFREE, BUCKETSFREE, BUCKETINC, BUCKETMEMORYINFO }}; static kc_hashtable_t kc_hashtables[] = { &kc_static_hashtables[(int)kc_not_uniq], &kc_static_hashtables[(int)kc_uniq_nullary_operator], &kc_static_hashtables[(int)uniq]}; static char* kc_storageclassnames[] = { "kc_not_uniq", "kc_uniq_nullary_operator", "uniq" }; static kc_hashtable_t kc_all_hashtables = &kc_static_hashtables[0]; static int kc_primes[] = { 1009, 1091, 1193, 1297, 1423, 1543, 1693, 1847, 2003, 2203, 2381, 2609, 2833, 3089, 3371, 3673, 4007, 4373, 4783, 5209, 5683, 6197, 6761, 7369, 8039, 8761, 9587, 10427, 11383, 12409, 13537, 14767, 16111, 17569, 19181, 20921, 22807, 24889, 27143, 29611, 32299, 35251, 38447, 41941, 45751, 49919, 54443, 59387, 64793, 70687, 77101, 80021, 84121, 91753, 100103, 109199, 119129, 129953, 141761, 154643, 168713, 184039, 200771, 219017, 238939, 260647, 284357, 310223, 338407, 369169, 402739, 439339, 479263, 522829, 570359, 622241, 678773, 740477, 807797, 881233, 961339, 1048759, 1144081, 1248083, 1361573, 1485347, 1620347, 1767679, 1928351, 2103653, 2294891, 2503511, 2731103, 2979391, 3250243, 3545719, 3868057, 4219687, 4603297, 5021773, 5478299, 5976329, 6519647, 7112351, 7758899, 8464273, 9233729, 10073153, 10988893, 11987891, 13077707, 14266573, 15563531, 16978399, 18521897, 20205697, 22042607, 24046487, 26232491, 28617269, 31218823, 34056907, 37152979, 40530541, 44215117, 48234733, 52619639, 57403277, 62621729, 68314613, 74525021, 81300017, 88690949, 96753739, 105549557, 115144957, 125612671, 137032001, 149489477, 163079431, 177904801, 194077981, 211721429, 230968853, 251966009, 274871969, 299860369, 327120389, 356858597, 389300293, 424691207, 463299493, 505417691, 551364677, 601488779, 656169539, 715821317, 780896041, 851886569, 929330767, 1013815373, 1105980433, 1206524183, 1316208139, 1435863449, 1566396463, 1708796171, 1864141193, 2033608601, 0, 0 /* last two elements should ALWAYS be 0 */ }; #ifdef KC_STATISTICS static int kc_casestring_strlen =0; static int kc_nocasestring_strlen =0; void kc_do_print_operator_statistics #ifdef KC_USE_PROTOTYPES (FILE * kc_f) #else (kc_f) FILE *kc_f; #endif { unsigned int kc_i; /*SUPPRESS 622*/ assertNonNull( kc_f,"kc_f" ); (void)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)"); (void)fprintf(kc_f, "%-*s|%*s |%*d |%*d |%*d |%*d |%*d |%*d |%*d |%*d\n", 38, "case sensitive strings", 3, "-", 8, kc_OperatorStatistics[(int)sel__Str].create, 8, kc_OperatorStatistics[(int)sel__Str].existing_not_found, 8, kc_OperatorStatistics[(int)sel__Str].create-kc_OperatorStatistics[(int)sel__Str].existing_not_found, 8, 0, 8, 0, 8, 0, 8, 0, 9, kc_casestring_strlen); (void)fprintf(kc_f, "%-*s|%*s |%*d |%*d |%*d |%*d |%*d |%*d |%*d |%*d\n", 38, "case insensitive strings", 3, "-", 8, kc_OperatorStatistics[(int)sel_NoCaseStr].create, 8, kc_OperatorStatistics[(int)sel_NoCaseStr].existing_not_found, 8, kc_OperatorStatistics[(int)sel_NoCaseStr].create-kc_OperatorStatistics[(int)sel_NoCaseStr].existing_not_found, 8, 0, 8, 0, 8, 0, 8, 0, 9, kc_nocasestring_strlen); for (kc_i = (int)kc_one_before_first_operator+1; kc_i < (int)kc_last_operator; kc_i++) { (void)fprintf(kc_f, "%-*s|%*d |%*d |%*d |%*d |%*d |%*d |%*d |%*d |%*d\n", 38, kc_OperatorInfo[kc_i].name, 3, kc_PhylumInfo[(int)kc_OperatorInfo[kc_i].phylum].size, 8, kc_OperatorStatistics[kc_i].create, 8, kc_OperatorStatistics[kc_i].existing_not_found, 8, kc_OperatorStatistics[kc_i].create-kc_OperatorStatistics[kc_i].existing_not_found, 8, kc_OperatorStatistics[kc_i].free_called[(int)False], 8, kc_OperatorStatistics[kc_i].free_called[(int)True], 8, kc_OperatorStatistics[kc_i].freed[(int)False]+kc_OperatorStatistics[kc_i].freed[(int)True], 8, kc_OperatorStatistics[kc_i].existing_not_found-(kc_OperatorStatistics[kc_i].freed[(int)False]+kc_OperatorStatistics[kc_i].freed[(int)True]), 9, (kc_PhylumInfo[(int)kc_OperatorInfo[(int)kc_i].phylum].size)*(kc_OperatorStatistics[kc_i].existing_not_found-(kc_OperatorStatistics[kc_i].freed[(int)False]+kc_OperatorStatistics[kc_i].freed[(int)True]))); } } #endif /* KC_STATISTICS */ void kc_print_hash_statistics #ifdef KC_USE_PROTOTYPES (FILE *kc_f) #else (kc_f) FILE *kc_f; #endif { unsigned int kc_k; /*SUPPRESS 622*/ /*assertNonNull(kc_f,"kc_f");*/ if (kc_f == NULL) kc_f = stdout; for (kc_k=0; kc_k < (int)kc_last_storageclass; kc_k++) { (void)fprintf(kc_f, "Information for storage class %s: \n", kc_storageclassnames[kc_k]); kc_print_hashtable_statistics(kc_f, kc_hashtables[kc_k]); } } void kc_print_all_hashtable_statistics #ifdef KC_USE_PROTOTYPES (FILE *kc_f) #else (kc_f) FILE *kc_f; #endif { kc_hashtable_t kc_a_hashtable_t = kc_all_hashtables; unsigned int kc_k; boolean kc_st_found; /*SUPPRESS 622*/ /*assertNonNull(kc_f,"kc_f");*/ if (kc_f == NULL) kc_f = stdout; do { /* at least one time, because we have at least one element */ kc_st_found = False; for (kc_k=0; kc_k < (int)kc_last_storageclass; kc_k++) { if (kc_hashtables[kc_k] == kc_a_hashtable_t) { kc_st_found = True; (void)fprintf(kc_f, "Information for storage class %s: \n", kc_storageclassnames[kc_k]); } } if (! kc_st_found) { (void)fprintf(kc_f, "Information for unknown storage class: \n"); } kc_print_hashtable_statistics(kc_f, kc_a_hashtable_t); kc_print_hashtable_memory_statistics(kc_f, kc_a_hashtable_t); kc_a_hashtable_t = kc_a_hashtable_t->next; } while(kc_a_hashtable_t != kc_all_hashtables); } void kc_print_hashtable_statistics #ifdef KC_USE_PROTOTYPES (FILE *kc_f, kc_hashtable_t kc_a_hashtable_t) #else (kc_f, kc_a_hashtable_t) FILE *kc_f; kc_hashtable_t kc_a_hashtable_t; #endif { boolean kc_goon; int kc_entries[9]; int kc_o_8 = 0; int kc_o_20 = 0; int kc_o_100 = 0; int kc_total = 0; int kc_i, kc_j; /*SUPPRESS 622*/ /*(kc_f,"kc_f");*/ if (kc_f == NULL) kc_f = stdout; (void)fprintf(kc_f, "\tsize:\t%d\n",kc_a_hashtable_t->size); for (kc_i=0; kc_i < 9; kc_i++) kc_entries[kc_i]=0; for (kc_i=0;kc_isize;kc_i++) { int kc_m=0, kc_n; for (kc_n=0;kc_n<(int)kc_last_storage_mode;kc_n++) { kc_m += kc_a_hashtable_t->hashtable[kc_i][kc_n].nr; } kc_total += kc_m; if (kc_m >100) {kc_o_100 ++; (void)fprintf(kc_f, ">100: key %d (%d elts)\n",kc_i,kc_m); } else if (kc_m >20) {kc_o_20 ++; (void)fprintf(kc_f, ">20: key %d (%d elts)\n",kc_i,kc_m); } else if (kc_m > 8) kc_o_8 ++; else { kc_j =0; kc_goon = True; while ( kc_goon && (kc_j < 9)) { if (kc_m == kc_j) { kc_entries[kc_j]++; kc_goon = False; } else kc_j++; } } } (void)fprintf(kc_f, "The spreading is: \n"); for (kc_j=0; kc_j < 9; kc_j++) { (void)fprintf(kc_f, "\t%d elts:\t%d\n",kc_j, kc_entries[kc_j]); } (void)fprintf(kc_f, "\tOver 8 elts:\t%d\n",kc_o_8); (void)fprintf(kc_f, "\tOver 20 elts:\t%d\n",kc_o_20); (void)fprintf(kc_f, "\tOver 100 elts:\t%d\n",kc_o_100); (void)fprintf(kc_f, " Total number of cells: %d\n",kc_total); (void)fprintf(kc_f, " Number of buckets: %d\n",kc_a_hashtable_t->size); } static void kc_growindex #ifdef KC_USE_PROTOTYPES (kc_hashtableentry_t *kc_hte, kc_hashtable_t kc_a_ht) #else (kc_hte, kc_a_ht) kc_hashtableentry_t *kc_hte; kc_hashtable_t kc_a_ht; #endif { int kc_newsize = kc_hte->ibound + kc_a_ht->bucket_alloc_inc; if (kc_newsize == kc_a_ht->bucket_alloc_inc) kc_hte->index = (YYSTYPE *) (*kc_a_ht->bucket_calloc)((kc_size_t)kc_newsize, (kc_size_t)sizeof(YYSTYPE), kc_a_ht->bucket_alloc_private_data); else kc_hte->index = (YYSTYPE *) (*kc_a_ht->bucket_realloc)((kc_voidptr_t)kc_hte->index, (kc_size_t)kc_hte->ibound * sizeof(YYSTYPE), (kc_size_t)kc_newsize * sizeof(YYSTYPE), kc_a_ht->bucket_alloc_private_data); kc_hte->ibound = kc_newsize; } void kc_ht_static #ifdef KC_USE_PROTOTYPES (kc_storageclass_t kc_a_storageclass_t) #else (kc_a_storageclass_t) kc_storageclass_t kc_a_storageclass_t; #endif { kc_hashtables[(int)kc_a_storageclass_t]->mode = kc_ht_store_static; kc_hashtables[(int)kc_a_storageclass_t]->malloc_private_data = kc_hashtables[(int)kc_a_storageclass_t]->static_malloc_private_data; } void kc_ht_dynamic #ifdef KC_USE_PROTOTYPES (kc_storageclass_t kc_a_storageclass_t) #else (kc_a_storageclass_t) kc_storageclass_t kc_a_storageclass_t; #endif { kc_hashtables[(int)kc_a_storageclass_t]->mode = kc_ht_store_dynamic; if (kc_hashtables[(int)kc_a_storageclass_t]->dynamic_malloc_private_data != 0) { kc_ht_inc_level(kc_a_storageclass_t); } kc_hashtables[(int)kc_a_storageclass_t]->malloc_private_data = kc_hashtables[(int)kc_a_storageclass_t]->dynamic_malloc_private_data->malloc_private_data; } void kc_ht_inc_level #ifdef KC_USE_PROTOTYPES (kc_storageclass_t kc_a_storageclass_t) #else (kc_a_storageclass_t) kc_storageclass_t kc_a_storageclass_t; #endif { kc_private_malloc_t kc_a_private_malloc_t = (kc_private_malloc_t)MALLOC(sizeof(struct kc_tag_kc_private_malloc_t)); kc_a_private_malloc_t->next = kc_hashtables[(int)kc_a_storageclass_t]->dynamic_malloc_private_data; if (kc_hashtables[(int)kc_a_storageclass_t]->dynamic_malloc_private_data != 0 ) { kc_hashtables[(int)kc_a_storageclass_t]->dynamic_malloc_private_data->prev = kc_a_private_malloc_t; } kc_a_private_malloc_t->prev = kc_hashtables[(int)kc_a_storageclass_t]->dec_dynamic_malloc_private_data; kc_a_private_malloc_t->malloc_private_data = (*kc_hashtables[(int)kc_a_storageclass_t]->malloc_initialise)(); kc_hashtables[(int)kc_a_storageclass_t]->dynamic_malloc_private_data = kc_a_private_malloc_t; } void kc_ht_dec_level #ifdef KC_USE_PROTOTYPES (kc_storageclass_t kc_a_storageclass_t) #else (kc_a_storageclass_t) kc_storageclass_t kc_a_storageclass_t; #endif { int kc_i, kc_j, kc_m; kc_hashtableentry_t* kc_hte; kc_hashtable_t kc_a_hashtable_t = kc_hashtables[(int)kc_a_storageclass_t]; if (kc_a_hashtable_t->dynamic_malloc_private_data != 0) { kc_a_hashtable_t->dec_dynamic_malloc_private_data = kc_a_hashtable_t->dynamic_malloc_private_data; kc_a_hashtable_t->dynamic_malloc_private_data = kc_a_hashtable_t->dynamic_malloc_private_data->next; for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) { kc_m = (int)kc_ht_store_dynamic; kc_hte = &kc_a_hashtable_t->hashtable[kc_i][kc_m]; for (kc_j=kc_hte->nr -1; kc_j >= 0; kc_j--) { kc_private_malloc_t kc_a_private_malloc_t = kc_a_hashtable_t->dec_dynamic_malloc_private_data; boolean kc_is_in_block = (*kc_a_hashtable_t->in_block)((kc_voidptr_t)kc_hte->index[kc_j].yt_casestring, kc_a_private_malloc_t->malloc_private_data); #if 0 /* not necessary, because every kc_ht_dec_level call takes care of its own level */ while ((!kc_is_in_block) && kc_a_private_malloc_t->prev) { kc_a_private_malloc_t = kc_a_private_malloc_t->prev; kc_is_in_block = (*kc_a_hashtable_t->in_block)((kc_voidptr_t)kc_hte->index[kc_j].yt_casestring, kc_a_private_malloc_t->malloc_private_data); } #endif if (kc_is_in_block) { kc_hte->nr--; kc_hte->index[kc_j] = kc_hte->index[kc_hte->nr]; kc_hte->index[kc_hte->nr].yt_casestring = 0; } #ifdef KC_SEPARATE_HASH_LEVELS else { break; } #endif } } } else { /* should be a better error message */ /*SUPPRESS 622*/ assert(kc_zero_constant); } } /* free the previous level(s) in the level-list, ie * the sublist that is reachable via dec_dynamic_malloc_private_data, * and via the prev field of the current dynamic node, if defined * follow prev's to the left start, freeing the blocks while moving * and freeing the administration nodes themselves */ static void kc_ht_do_free_level #ifdef KC_USE_PROTOTYPES (kc_hashtable_t kc_a_hashtable_t) #else (kc_a_hashtable_t) kc_hashtable_t kc_a_hashtable_t; #endif { kc_private_malloc_t kc_a_private_malloc_t, kc_b_private_malloc_t; if (kc_a_hashtable_t->dec_dynamic_malloc_private_data != 0) { kc_a_private_malloc_t = kc_a_hashtable_t->dec_dynamic_malloc_private_data; while (kc_a_private_malloc_t != 0) { if (kc_a_hashtable_t->free_all_elements != 0) { (*kc_a_hashtable_t->free_all_elements)(kc_a_private_malloc_t->malloc_private_data); } kc_b_private_malloc_t = kc_a_private_malloc_t; kc_a_private_malloc_t = kc_a_private_malloc_t->prev; KC_BZERO(kc_b_private_malloc_t, sizeof(struct kc_tag_kc_private_malloc_t)); FREE((kc_voidptr_t)kc_b_private_malloc_t); } kc_a_hashtable_t->dec_dynamic_malloc_private_data = 0; if (kc_a_hashtable_t->dynamic_malloc_private_data != 0) { kc_a_hashtable_t->dynamic_malloc_private_data->prev = 0; } } } void kc_ht_free_level #ifdef KC_USE_PROTOTYPES (kc_storageclass_t kc_a_storageclass_t) #else (kc_a_storageclass_t) kc_storageclass_t kc_a_storageclass_t; #endif { kc_ht_do_free_level(kc_hashtables[(int)kc_a_storageclass_t]); } static int kc_choose_prime #ifdef KC_USE_PROTOTYPES (int kc_a_size) #else (kc_a_size) int kc_a_size; #endif { int kc_i =0; while((kc_primes[kc_i] < kc_a_size) && (kc_primes[kc_i+1] > 0)) { kc_i++; } return kc_primes[kc_i]; } kc_hashtable_t kc_ht_create_bucketmanagement #ifdef KC_USE_PROTOTYPES (int kc_a_size, kc_voidptr_t (*kc_a_malloc_initialise)(), kc_voidptr_t (*kc_a_malloc)(kc_size_t, kc_voidptr_t), void (*kc_a_free_element)(kc_voidptr_t, kc_voidptr_t), void (*kc_a_free_all_elements)(kc_voidptr_t), boolean (*kc_a_in_block)(kc_voidptr_t, kc_voidptr_t), void (*kc_a_malloc_info)(FILE*, kc_voidptr_t), kc_voidptr_t (*kc_a_bucket_alloc_initialise)(), kc_voidptr_t (*kc_a_bucket_calloc)(kc_size_t, kc_size_t, kc_voidptr_t), kc_voidptr_t (*kc_a_bucket_realloc)( kc_voidptr_t, kc_size_t, kc_size_t, kc_voidptr_t), void (*kc_a_free_bucket)(kc_voidptr_t, kc_size_t, kc_voidptr_t), void (*kc_a_free_buckets)(kc_voidptr_t), int kc_a_bucket_alloc_inc, void (*kc_a_bucket_alloc_info)(FILE*, kc_voidptr_t) ) #else (kc_a_size, kc_a_malloc_initialise, kc_a_malloc, kc_a_free_element, kc_a_free_all_elements, kc_a_in_block, kc_a_malloc_info, kc_a_bucket_alloc_initialise, kc_a_bucket_calloc, kc_a_bucket_realloc, kc_a_free_bucket, kc_a_free_buckets, kc_a_bucket_alloc_inc, kc_a_bucket_alloc_info ) int kc_a_size; kc_voidptr_t (*kc_a_malloc_initialise)KC__P(()); kc_voidptr_t (*kc_a_malloc)KC__P((kc_size_t, kc_voidptr_t)); void (*kc_a_free_element)KC__P((kc_voidptr_t, kc_voidptr_t)); void (*kc_a_free_all_elements)KC__P((kc_voidptr_t)); boolean (*kc_a_in_block)KC__P((kc_voidptr_t, kc_voidptr_t)); void (*kc_a_malloc_info)KC__P((FILE*, kc_voidptr_t)); kc_voidptr_t (*kc_a_bucket_alloc_initialise)KC__P(()); kc_voidptr_t (*kc_a_bucket_calloc)KC__P((kc_size_t, size_t, kc_voidptr_t)); kc_voidptr_t (*kc_a_bucket_realloc)KC__P(( kc_voidptr_t, kc_size_t, kc_size_t, kc_voidptr_t)); void (*kc_a_free_bucket)KC__P((kc_voidptr_t, kc_size_t, kc_voidptr_t)); void (*kc_a_free_buckets)KC__P((kc_voidptr_t)); int kc_a_bucket_alloc_inc; void (*kc_a_bucket_alloc_info)KC__P((FILE*, kc_voidptr_t)); #endif { kc_hashtable_t kc_a_hashtable_t = (kc_hashtable_t)MALLOC(sizeof(kc_hashtable_struct_t)); kc_a_hashtable_t->size = kc_choose_prime(kc_a_size); kc_a_hashtable_t->hashtable = (kc_hashtableentry_t(*)[(int)kc_last_storage_mode])CALLOC((kc_size_t)kc_a_hashtable_t->size*((int)kc_last_storage_mode), (kc_size_t)sizeof(kc_hashtableentry_t)); kc_a_hashtable_t->malloc_initialise = kc_a_malloc_initialise; kc_a_hashtable_t->malloc = kc_a_malloc; kc_a_hashtable_t->free_element = kc_a_free_element; kc_a_hashtable_t->free_all_elements = kc_a_free_all_elements; kc_a_hashtable_t->in_block = kc_a_in_block; kc_a_hashtable_t->static_malloc_private_data = (kc_voidptr_t)(*kc_a_hashtable_t->malloc_initialise)(); kc_a_hashtable_t->malloc_private_data = kc_a_hashtable_t->static_malloc_private_data; kc_a_hashtable_t->dynamic_malloc_private_data = 0; kc_a_hashtable_t->dec_dynamic_malloc_private_data = 0; kc_a_hashtable_t->mode = kc_ht_store_static; kc_a_hashtable_t->malloc_info = kc_a_malloc_info; kc_a_hashtable_t->bucket_alloc_initialise = kc_a_bucket_alloc_initialise; kc_a_hashtable_t->bucket_calloc = kc_a_bucket_calloc; kc_a_hashtable_t->bucket_realloc = kc_a_bucket_realloc; kc_a_hashtable_t->free_bucket = kc_a_free_bucket; kc_a_hashtable_t->free_buckets = kc_a_free_buckets; kc_a_hashtable_t->bucket_alloc_info = kc_a_bucket_alloc_info; kc_a_hashtable_t->bucket_alloc_inc = (kc_a_bucket_alloc_inc ? kc_a_bucket_alloc_inc : KC_BUCKET_INC); kc_a_hashtable_t->bucket_alloc_private_data = (kc_a_hashtable_t->bucket_alloc_initialise) ? (kc_voidptr_t)(*kc_a_hashtable_t->bucket_alloc_initialise)() : 0; kc_a_hashtable_t->kc_to_be_freed = 1; kc_a_hashtable_t->next = kc_all_hashtables; kc_a_hashtable_t->prev = kc_all_hashtables->prev; kc_all_hashtables->prev->next = kc_a_hashtable_t; kc_all_hashtables->prev = kc_a_hashtable_t; kc_all_hashtables = kc_a_hashtable_t; return kc_a_hashtable_t; } kc_hashtable_t kc_ht_create #ifdef KC_USE_PROTOTYPES (int kc_a_size, kc_voidptr_t (*kc_a_malloc_initialise)(), kc_voidptr_t (*kc_a_malloc)(kc_size_t, kc_voidptr_t), void (*kc_a_free_element)(kc_voidptr_t, kc_voidptr_t), void (*kc_a_free_all_elements)(kc_voidptr_t), boolean (*kc_a_in_block)(kc_voidptr_t, kc_voidptr_t)) #else (kc_a_size, kc_a_malloc_initialise, kc_a_malloc, kc_a_free_element, kc_a_free_all_elements, kc_a_in_block) int kc_a_size; kc_voidptr_t (*kc_a_malloc_initialise)KC__P(()); kc_voidptr_t (*kc_a_malloc)KC__P((kc_size_t, kc_voidptr_t)); void (*kc_a_free_element)KC__P((kc_voidptr_t, kc_voidptr_t)); void (*kc_a_free_all_elements)KC__P((kc_voidptr_t)); boolean (*kc_a_in_block)KC__P((kc_voidptr_t, kc_voidptr_t)); #endif { kc_voidptr_t (*kc_tmp_malloc_initialise)KC__P(()) = (kc_voidptr_t(*)())UNIQMALLOCINIT; void (*kc_tmp_malloc_info)KC__P((FILE*, kc_voidptr_t)) = (kc_tmp_malloc_initialise == kc_a_malloc_initialise) ? (void(*)KC__P((FILE*, kc_voidptr_t)))UNIQMEMORYINFO : (void(*)KC__P((FILE*, kc_voidptr_t)))0 ; /* do something special (wrt mallocinfo?) if we know that our malloc is being used */ return kc_ht_create_bucketmanagement(kc_a_size, kc_a_malloc_initialise, kc_a_malloc, kc_a_free_element, kc_a_free_all_elements, kc_a_in_block, kc_tmp_malloc_info, (kc_voidptr_t(*)())BUCKETALLOCINIT, BUCKETCALLOC, BUCKETREALLOC, BUCKETFREE, (void(*)KC__P((kc_voidptr_t)))BUCKETSFREE, BUCKETINC, (void(*)KC__P((FILE*, kc_voidptr_t)))BUCKETMEMORYINFO); } kc_hashtable_t kc_ht_create_simple #ifdef KC_USE_PROTOTYPES (int kc_a_size) #else (kc_a_size) int kc_a_size; #endif { return kc_ht_create_bucketmanagement(kc_a_size, (kc_voidptr_t(*)())UNIQMALLOCINIT, UNIQMALLOC2, (void (*)KC__P((kc_voidptr_t, kc_voidptr_t)))0/*UNIQFREEELEMENT*/, UNIQFREEALL, INUNIQBLOCK, UNIQMEMORYINFO, (kc_voidptr_t(*)())BUCKETALLOCINIT, BUCKETCALLOC, BUCKETREALLOC, BUCKETFREE, (void(*)KC__P((kc_voidptr_t)))BUCKETSFREE, BUCKETINC, (void(*)KC__P((FILE*, kc_voidptr_t)))BUCKETMEMORYINFO); } kc_hashtable_t kc_ht_assign #ifdef KC_USE_PROTOTYPES (kc_hashtable_t kc_a_hashtable_t, kc_storageclass_t kc_a_storageclass_t) #else (kc_a_hashtable_t, kc_a_storageclass_t) kc_hashtable_t kc_a_hashtable_t; kc_storageclass_t kc_a_storageclass_t; #endif { kc_hashtable_t kc_tmp = kc_hashtables[(int)kc_a_storageclass_t]; kc_hashtables[(int)kc_a_storageclass_t] = kc_a_hashtable_t; kc_storageclass_still_uniq[(int)kc_a_storageclass_t] = False; return kc_tmp; } kc_hashtable_t kc_ht_assigned #ifdef KC_USE_PROTOTYPES (kc_storageclass_t kc_a_storageclass_t) #else (kc_a_storageclass_t) kc_storageclass_t kc_a_storageclass_t; #endif { return kc_hashtables[(int)kc_a_storageclass_t]; } static void kc_ht_free_single_elements #ifdef KC_USE_PROTOTYPES (kc_hashtable_t kc_a_hashtable_t, int kc_i, int kc_m) #else (kc_a_hashtable_t, kc_i, kc_m) kc_hashtable_t kc_a_hashtable_t; int kc_i; int kc_m; #endif { int kc_j; if ((int)kc_m == (int)kc_ht_store_static) { for (kc_j=0; kc_j < kc_a_hashtable_t->hashtable[kc_i][kc_m].nr; kc_j++) { (*kc_a_hashtable_t->free_element)((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index[kc_j].yt_casestring, kc_a_hashtable_t->static_malloc_private_data); } } else { kc_voidptr_t kc_a_private_data = 0; if ((kc_a_hashtable_t->dynamic_malloc_private_data == 0) || (kc_a_hashtable_t->dynamic_malloc_private_data->malloc_private_data == 0)) { kc_a_private_data = 0; } else if (kc_a_hashtable_t->dynamic_malloc_private_data->next == 0) { kc_a_private_data = kc_a_hashtable_t->dynamic_malloc_private_data->malloc_private_data; } for (kc_j=0; kc_j < kc_a_hashtable_t->hashtable[kc_i][kc_m].nr; kc_j++) { (*kc_a_hashtable_t->free_element)((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index[kc_j].yt_casestring, kc_a_private_data); } } } static void kc_ht_do_clear_all_elements #ifdef KC_USE_PROTOTYPES (kc_hashtable_t kc_a_hashtable_t, boolean kc_reuse, boolean kc_reinit) #else (kc_a_hashtable_t, kc_reuse, kc_reinit) kc_hashtable_t kc_a_hashtable_t; boolean kc_reuse; boolean kc_reinit; #endif { int kc_i, kc_m; kc_private_malloc_t kc_a_private_malloc_t; /* free all static stuff */ (*kc_a_hashtable_t->free_all_elements)(kc_a_hashtable_t->static_malloc_private_data); /* free all dynamic stuff */ /* walk to end of list of levels, kc_ht_do_free_level will free last and all * previous levels in the list */ if (kc_a_hashtable_t->dynamic_malloc_private_data != 0) { kc_a_private_malloc_t = kc_a_hashtable_t->dynamic_malloc_private_data; while(kc_a_private_malloc_t->next != 0) { kc_a_private_malloc_t = kc_a_private_malloc_t->next; } kc_a_hashtable_t->dec_dynamic_malloc_private_data = kc_a_private_malloc_t; kc_a_hashtable_t->dynamic_malloc_private_data = 0; kc_ht_do_free_level(kc_a_hashtable_t); } /* free/reuse the buckets, and re-initialize the hashtable-entries */ if (kc_reuse) { /* zero the buckets; reset nr field */ for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) { for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) { /* we only do something if nr !=0, else there is nothing to do * because of our 'invariant' */ if (kc_a_hashtable_t->hashtable[kc_i][kc_m].nr) { KC_BZERO((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index, (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE)); kc_a_hashtable_t->hashtable[kc_i][kc_m].nr = 0; } } } } else if (kc_reinit) { /* zero & free the buckets; reset nr, index, ibound fields */ if (kc_a_hashtable_t->free_buckets) { (*kc_a_hashtable_t->free_buckets)(kc_a_hashtable_t->bucket_alloc_private_data); KC_BZERO(kc_a_hashtable_t->hashtable, (kc_size_t)kc_a_hashtable_t->size*((int)kc_last_storage_mode)*sizeof(kc_hashtableentry_t)); #if 0 for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) { for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) { /* we do something if ibound !=0, it is not suficient to * look only at the nr field, because the nr field might be * reset in a previous reuse operation. * we could as well look for an non-null index field. */ if (kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound) { kc_a_hashtable_t->hashtable[kc_i][kc_m].index = 0; kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound = 0; kc_a_hashtable_t->hashtable[kc_i][kc_m].nr = 0; } } } #endif } else if (kc_a_hashtable_t->free_bucket) { for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) { for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) { /* we do something if ibound !=0, it is not suficient to * look only at the nr field, because the nr field might be * reset in a previous reuse operation. * we could as well look for an non-null index field. */ if (kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound) { KC_BZERO((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index, (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE)); (*kc_a_hashtable_t->free_bucket)((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index, (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE), kc_a_hashtable_t->bucket_alloc_private_data); kc_a_hashtable_t->hashtable[kc_i][kc_m].index = 0; kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound = 0; kc_a_hashtable_t->hashtable[kc_i][kc_m].nr = 0; } } } } else { /* should be a better error message */ /*SUPPRESS 622*/ assert(kc_zero_constant); } } else { /* zero & free the buckets */ if (kc_a_hashtable_t->free_buckets) { (*kc_a_hashtable_t->free_buckets)(kc_a_hashtable_t->bucket_alloc_private_data); } else if (kc_a_hashtable_t->free_bucket) { for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) { for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) { /* we do something if index !=0, it is not suficient to * look only at the nr field, because the nr field might be * reset in a previous reuse operation. * we could as well look for an non-null ibound field. */ if (kc_a_hashtable_t->hashtable[kc_i][kc_m].index) { KC_BZERO((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index, (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE)); (*kc_a_hashtable_t->free_bucket)((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index, (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE), kc_a_hashtable_t->bucket_alloc_private_data); } } } } else { /* should be a better error message */ /*SUPPRESS 622*/ assert(kc_zero_constant); } } } static void kc_ht_do_clear_no_all_elements #ifdef KC_USE_PROTOTYPES (kc_hashtable_t kc_a_hashtable_t, boolean kc_reuse, boolean kc_reinit) #else (kc_a_hashtable_t, kc_reuse, kc_reinit) kc_hashtable_t kc_a_hashtable_t; boolean kc_reuse; boolean kc_reinit; #endif { int kc_i, kc_m; /* free all static stuff */ /* done on the fly, below */ /* free all dynamic stuff */ /* done on the fly, below */ /* free/reuse the buckets, and re-initialize the hashtable-entries */ if (kc_reuse) { /* zero the buckets; reset nr field */ for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) { for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) { /* we only do something if nr !=0, else there is nothing to do * because of our 'invariant' */ if (kc_a_hashtable_t->hashtable[kc_i][kc_m].nr) { kc_ht_free_single_elements(kc_a_hashtable_t, kc_i, kc_m); KC_BZERO((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index, (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE)); kc_a_hashtable_t->hashtable[kc_i][kc_m].nr = 0; } } } } else if (kc_reinit) { /* zero & free the buckets; reset nr, index, ibound fields */ if (kc_a_hashtable_t->free_buckets) { (*kc_a_hashtable_t->free_buckets)(kc_a_hashtable_t->bucket_alloc_private_data); KC_BZERO(kc_a_hashtable_t->hashtable, (kc_size_t)kc_a_hashtable_t->size*((int)kc_last_storage_mode)*sizeof(kc_hashtableentry_t)); #if 0 for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) { for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) { /* we do something if ibound !=0, it is not suficient to * look only at the nr field, because the nr field might be * reset in a previous reuse operation. * we could as well look for an non-null index field. */ if (kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound) { kc_ht_free_single_elements(kc_a_hashtable_t, kc_i, kc_m); kc_a_hashtable_t->hashtable[kc_i][kc_m].index = 0; kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound = 0; kc_a_hashtable_t->hashtable[kc_i][kc_m].nr = 0; } } } #endif } else if (kc_a_hashtable_t->free_bucket) { for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) { for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) { /* we do something if ibound !=0, it is not suficient to * look only at the nr field, because the nr field might be * reset in a previous reuse operation. * we could as well look for an non-null index field. */ if (kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound) { kc_ht_free_single_elements(kc_a_hashtable_t, kc_i, kc_m); KC_BZERO((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index, (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE)); (*kc_a_hashtable_t->free_bucket)((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index, (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE), kc_a_hashtable_t->bucket_alloc_private_data); kc_a_hashtable_t->hashtable[kc_i][kc_m].index = 0; kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound = 0; kc_a_hashtable_t->hashtable[kc_i][kc_m].nr = 0; } } } } else { /* should be a better error message */ /*SUPPRESS 622*/ assert(kc_zero_constant); } } else { /* zero & free the buckets */ if (kc_a_hashtable_t->free_buckets) { (*kc_a_hashtable_t->free_buckets)(kc_a_hashtable_t->bucket_alloc_private_data); } else if (kc_a_hashtable_t->free_bucket) { for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) { for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) { /* we do something if index !=0, it is not suficient to * look only at the nr field, because the nr field might be * reset in a previous reuse operation. * we could as well look for an non-null ibound field. */ if (kc_a_hashtable_t->hashtable[kc_i][kc_m].index) { kc_ht_free_single_elements(kc_a_hashtable_t, kc_i, kc_m); KC_BZERO((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index, (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE)); (*kc_a_hashtable_t->free_bucket)((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index, (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE), kc_a_hashtable_t->bucket_alloc_private_data); } } } } else { /* should be a better error message */ /*SUPPRESS 622*/ assert(kc_zero_constant); } } } static void kc_ht_do_clear #ifdef KC_USE_PROTOTYPES (kc_hashtable_t kc_a_hashtable_t, boolean kc_reuse, boolean kc_reinit) #else (kc_a_hashtable_t, kc_reuse, kc_reinit) kc_hashtable_t kc_a_hashtable_t; boolean kc_reuse; boolean kc_reinit; #endif { if (kc_a_hashtable_t->free_all_elements) { kc_ht_do_clear_all_elements(kc_a_hashtable_t, kc_reuse, kc_reinit); } else { kc_ht_do_clear_no_all_elements(kc_a_hashtable_t, kc_reuse, kc_reinit); } } void kc_ht_clear #ifdef KC_USE_PROTOTYPES (kc_hashtable_t kc_a_hashtable_t) #else (kc_a_hashtable_t) kc_hashtable_t kc_a_hashtable_t; #endif { kc_ht_do_clear(kc_a_hashtable_t, False, True ); if (kc_a_hashtable_t->kc_to_be_freed) { kc_a_hashtable_t->static_malloc_private_data = (kc_voidptr_t)(*kc_a_hashtable_t->malloc_initialise)(); } /* else: it is a statically allocated hashtable with a statically allocated * static_malloc_private_data that will not be freed either... we have to * trust that our free_all_elements routine (called via kc_ht_do_clear) * prepares the static_malloc_private_data for reuse */ kc_a_hashtable_t->malloc_private_data = kc_a_hashtable_t->static_malloc_private_data; kc_a_hashtable_t->dynamic_malloc_private_data = 0; kc_a_hashtable_t->dec_dynamic_malloc_private_data = 0; kc_a_hashtable_t->mode = kc_ht_store_static; kc_a_hashtable_t->bucket_alloc_private_data = (kc_a_hashtable_t->bucket_alloc_initialise) ? (kc_voidptr_t)(*kc_a_hashtable_t->bucket_alloc_initialise)() : 0; } void kc_ht_reuse #ifdef KC_USE_PROTOTYPES (kc_hashtable_t kc_a_hashtable_t) #else (kc_a_hashtable_t) kc_hashtable_t kc_a_hashtable_t; #endif { kc_ht_do_clear(kc_a_hashtable_t, True, True ); if (kc_a_hashtable_t->kc_to_be_freed) { kc_a_hashtable_t->static_malloc_private_data = (kc_voidptr_t)(*kc_a_hashtable_t->malloc_initialise)(); } /* else: it is a statically allocated hashtable with a statically allocated * static_malloc_private_data that will not be freed either... we have to * trust that our free_all_elements routine (called via kc_ht_do_clear) * prepares the static_malloc_private_data for reuse */ kc_a_hashtable_t->malloc_private_data = kc_a_hashtable_t->static_malloc_private_data; kc_a_hashtable_t->dynamic_malloc_private_data = 0; kc_a_hashtable_t->dec_dynamic_malloc_private_data = 0; kc_a_hashtable_t->mode = kc_ht_store_static; kc_a_hashtable_t->bucket_alloc_private_data = (kc_a_hashtable_t->bucket_alloc_initialise) ? (kc_voidptr_t)(*kc_a_hashtable_t->bucket_alloc_initialise)() : 0; } void kc_ht_delete #ifdef KC_USE_PROTOTYPES (kc_hashtable_t kc_a_hashtable_t) #else (kc_a_hashtable_t) kc_hashtable_t kc_a_hashtable_t; #endif { kc_ht_do_clear(kc_a_hashtable_t, False, False); if (kc_a_hashtable_t->kc_to_be_freed) { kc_a_hashtable_t->next->prev = kc_a_hashtable_t->prev; kc_a_hashtable_t->prev->next = kc_a_hashtable_t->next; if (kc_all_hashtables == kc_a_hashtable_t) { kc_all_hashtables = kc_a_hashtable_t->next; } KC_BZERO((kc_voidptr_t)kc_a_hashtable_t->hashtable, (kc_size_t)sizeof(struct kc_tag_kc_hashtableentry_t) * kc_a_hashtable_t->size); FREE((kc_voidptr_t)kc_a_hashtable_t->hashtable); KC_BZERO((kc_voidptr_t)kc_a_hashtable_t, sizeof(struct kc_tag_kc_hashtable_struct_t)); FREE((kc_voidptr_t)kc_a_hashtable_t); } } /* atoms creation */ #ifdef KC_STDC # define kc_mylower(c) (isupper(c) ? tolower(c) : c) #else # define kc_mylower(c) ((isascii(c) && isupper(c)) ? tolower(c) : c) #endif /* should be static, maybe? */ int kc_ci_strcmp #ifdef KC_USE_PROTOTYPES (char *kc_s1, char *kc_s2) #else (kc_s1, kc_s2) char *kc_s1, *kc_s2; #endif { int tmp; while ((*kc_s1 != '\0') && (*kc_s2 != '\0')) { if ( (tmp = kc_mylower(*kc_s1) - kc_mylower(*kc_s2)) != 0 ) return tmp; kc_s1++; kc_s2++; } return( (*kc_s1 != '\0') - (*kc_s2 != '\0') ); } static unsigned kc_casestrhash #ifdef KC_USE_PROTOTYPES (char *kc_s) #else (kc_s) char *kc_s; #endif { register unsigned kc_i = 0; register char *kc_sp; for (kc_sp = kc_s; *kc_sp != '\0'; kc_sp++) kc_i = (unsigned)((kc_i * 75) + *kc_sp); return kc_i; } static unsigned kc_nocasestrhash #ifdef KC_USE_PROTOTYPES (char *kc_s) #else (kc_s) char *kc_s; #endif { register unsigned kc_i = 0; register char *kc_sp; for (kc_sp = kc_s; *kc_sp != '\0'; kc_sp++) kc_i = (unsigned)((kc_i * 75) + kc_mylower(*kc_sp)); return kc_i; } #undef kc_mylower static uniqID kc_initialize_uniqID #ifdef KC_USE_PROTOTYPES (uniqID kc_x) #else (kc_x) uniqID kc_x; #endif { #line 35 "../abs.k" kc_x->type = ITUnknown(); #line 36 "../abs.k" kc_x->line = 0; #line 37 "../abs.k" kc_x->file = mkcasestring(""); #line 38 "../abs.k" kc_x->scopeinfo = Nilscopetypefilelinestack(); #line 5449 "k.c" return kc_x; } static ID kc_initialize_ID #ifdef KC_USE_PROTOTYPES (ID kc_x) #else (kc_x) ID kc_x; #endif { #line 60 "../abs.k" kc_x->type = ITUnknown(); #line 61 "../abs.k" kc_x->line = 0; #line 62 "../abs.k" kc_x->file = mkcasestring(""); #line 5467 "k.c" return kc_x; } static INT kc_initialize_INT #ifdef KC_USE_PROTOTYPES (INT kc_x) #else (kc_x) INT kc_x; #endif { #line 67 "../abs.k" kc_x->line = 0; #line 68 "../abs.k" kc_x->file = mkcasestring(""); #line 5483 "k.c" return kc_x; } static STRING kc_initialize_STRING #ifdef KC_USE_PROTOTYPES (STRING kc_x) #else (kc_x) STRING kc_x; #endif { #line 73 "../abs.k" kc_x->line = 0; #line 74 "../abs.k" kc_x->file = mkcasestring(""); #line 5499 "k.c" return kc_x; } static phylumdeclaration kc_initialize_phylumdeclaration #ifdef KC_USE_PROTOTYPES (phylumdeclaration kc_x) #else (kc_x) phylumdeclaration kc_x; #endif { #line 92 "../abs.k" kc_x->marked = 0; #line 5513 "k.c" return kc_x; } static storageclasses kc_initialize_storageclasses #ifdef KC_USE_PROTOTYPES (storageclasses kc_x) #else (kc_x) storageclasses kc_x; #endif { #line 103 "../abs.k" kc_x->phyla = Nilphylumnames(); #line 5527 "k.c" return kc_x; } static alternative kc_initialize_alternative #ifdef KC_USE_PROTOTYPES (alternative kc_x) #else (kc_x) alternative kc_x; #endif { #line 120 "../abs.k" kc_x->rewriteinfo = Nilrewriterulesinfo(); #line 121 "../abs.k" kc_x->unparseinfo = Nilunparsedeclsinfo(); #line 122 "../abs.k" kc_x->bigatoms = False; #line 5545 "k.c" return kc_x; } static Cexpression kc_initialize_Cexpression #ifdef KC_USE_PROTOTYPES (Cexpression kc_x) #else (kc_x) Cexpression kc_x; #endif { #line 154 "../abs.k" kc_x->line = 0; #line 155 "../abs.k" kc_x->file = mkcasestring(""); #line 5561 "k.c" return kc_x; } static idCexpression kc_initialize_idCexpression #ifdef KC_USE_PROTOTYPES (idCexpression kc_x) #else (kc_x) idCexpression kc_x; #endif { #line 193 "../abs.k" kc_x->id = f_emptyId(); #line 5575 "k.c" return kc_x; } static includefile kc_initialize_includefile #ifdef KC_USE_PROTOTYPES (includefile kc_x) #else (kc_x) includefile kc_x; #endif { #line 212 "../abs.k" kc_x->inc_type = include_unknown; #line 214 "../abs.k" kc_x->newinclude = 0; #line 215 "../abs.k" kc_x->inc[0] = Nilincludedeclarations(); kc_x->inc[1] = Nilincludedeclarations(); if (Theincludefiles == (includefiles)0) { Theincludefiles = Consincludefiles( kc_x, Nilincludefiles()); } else { Theincludefiles = Consincludefiles( kc_x, Theincludefiles); } #line 5599 "k.c" #line 5601 "k.c" return kc_x; } static includedeclaration kc_initialize_includedeclaration #ifdef KC_USE_PROTOTYPES (includedeclaration kc_x) #else (kc_x) includedeclaration kc_x; #endif { #line 231 "../abs.k" kc_x->line = 0; #line 232 "../abs.k" kc_x->file = mkcasestring(""); #line 5617 "k.c" return kc_x; } static patternchains kc_initialize_patternchains #ifdef KC_USE_PROTOTYPES (patternchains kc_x) #else (kc_x) patternchains kc_x; #endif { #line 263 "../abs.k" kc_x->line = 0; #line 264 "../abs.k" kc_x->file = mkcasestring(""); #line 5633 "k.c" return kc_x; } static patternchain kc_initialize_patternchain #ifdef KC_USE_PROTOTYPES (patternchain kc_x) #else (kc_x) patternchain kc_x; #endif { #line 271 "../abs.k" kc_x->line = 0; #line 272 "../abs.k" kc_x->file = mkcasestring(""); #line 5649 "k.c" return kc_x; } static patternchainitem kc_initialize_patternchainitem #ifdef KC_USE_PROTOTYPES (patternchainitem kc_x) #else (kc_x) patternchainitem kc_x; #endif { #line 284 "../abs.k" kc_x->line = 0; #line 285 "../abs.k" kc_x->file = mkcasestring(""); #line 286 "../abs.k" kc_x->type = f_emptyId(); #line 5667 "k.c" return kc_x; } static outmostpattern kc_initialize_outmostpattern #ifdef KC_USE_PROTOTYPES (outmostpattern kc_x) #else (kc_x) outmostpattern kc_x; #endif { #line 296 "../abs.k" kc_x->type = f_emptyId(); #line 5681 "k.c" return kc_x; } static fnfile kc_initialize_fnfile #ifdef KC_USE_PROTOTYPES (fnfile kc_x) #else (kc_x) fnfile kc_x; #endif { #line 333 "../abs.k" kc_x->fns = Nilfndeclarations(); if (Thefnfiles == (fnfiles)0) { Thefnfiles = Consfnfiles( kc_x, Nilfnfiles()); } else { Thefnfiles = Consfnfiles( kc_x, Thefnfiles); } #line 5700 "k.c" #line 5702 "k.c" return kc_x; } static fndeclaration kc_initialize_fndeclaration #ifdef KC_USE_PROTOTYPES (fndeclaration kc_x) #else (kc_x) fndeclaration kc_x; #endif { #line 355 "../abs.k" kc_x->last_line = 0; #line 356 "../abs.k" kc_x->file = mkcasestring(""); #line 357 "../abs.k" { #line 357 "../abs.k" fndeclaration kc_selvar_0_1 = kc_x ; #line 357 "../abs.k" /*SUPPRESS 622*/ assert_fndeclaration(kc_selvar_0_1, "with_expression (1)"); #line 5727 "k.c" if (( kc_selvar_0_1->prod_sel == sel_FnAcDeclaration)) { #line 361 "../abs.k" ac_declarator fn_args = kc_selvar_0_1->u.FnAcDeclaration.ac_declarator_1; #line 361 "../abs.k" ac_declaration_list C_vardecls = kc_selvar_0_1->u.FnAcDeclaration.ac_declaration_list_1; #line 361 "../abs.k" kc_selvar_0_1->newsorted = sort_extend_parameter_type_list( C_vardecls, fn_args ); #line 5737 "k.c" } else if (( kc_selvar_0_1->prod_sel == sel_FnDeclaration)) { #line 358 "../abs.k" fnarguments fn_args = kc_selvar_0_1->u.FnDeclaration.fnarguments_1; #line 358 "../abs.k" Cvariabledeclarations C_vardecls = kc_selvar_0_1->u.FnDeclaration.Cvariabledeclarations_1; #line 358 "../abs.k" kc_selvar_0_1->sorted = sort_extend_Cvariabledeclarations( C_vardecls, fn_args ); #line 5748 "k.c" } else kc_no_default_in_with( "", __LINE__, __FILE__ ); } #line 363 "../abs.k" #line 5754 "k.c" #line 5756 "k.c" return kc_x; } static Ctext kc_initialize_Ctext #ifdef KC_USE_PROTOTYPES (Ctext kc_x) #else (kc_x) Ctext kc_x; #endif { #line 396 "../abs.k" kc_x->line = 0; #line 397 "../abs.k" kc_x->file = mkcasestring(""); #line 5772 "k.c" return kc_x; } static Ctext_elem kc_initialize_Ctext_elem #ifdef KC_USE_PROTOTYPES (Ctext_elem kc_x) #else (kc_x) Ctext_elem kc_x; #endif { #line 410 "../abs.k" kc_x->line = 0; #line 411 "../abs.k" kc_x->file = mkcasestring(""); #line 5788 "k.c" return kc_x; } static foreach_after kc_initialize_foreach_after #ifdef KC_USE_PROTOTYPES (foreach_after kc_x) #else (kc_x) foreach_after kc_x; #endif { #line 418 "../abs.k" kc_x->line = 0; #line 419 "../abs.k" kc_x->file = mkcasestring(""); #line 5804 "k.c" return kc_x; } static withexpressions kc_initialize_withexpressions #ifdef KC_USE_PROTOTYPES (withexpressions kc_x) #else (kc_x) withexpressions kc_x; #endif { #line 430 "../abs.k" kc_x->type = 0; #line 431 "../abs.k" kc_x->line = 0; #line 432 "../abs.k" kc_x->file = mkcasestring(""); #line 433 "../abs.k" { #line 433 "../abs.k" withexpressions kc_selvar_0_1 = kc_x ; #line 433 "../abs.k" /*SUPPRESS 622*/ assert_withexpressions(kc_selvar_0_1, "with_expression (1)"); #line 5831 "k.c" if (( kc_selvar_0_1->prod_sel == sel_Conswithexpressions)) { #line 437 "../abs.k" withexpression h = kc_selvar_0_1->u.Conswithexpressions.withexpression_1; #line 437 "../abs.k" withexpressions t = kc_selvar_0_1->u.Conswithexpressions.withexpressions_1; #line 437 "../abs.k" kc_selvar_0_1->type = Consphylumnames( h->type, t->type ); kc_selvar_0_1->line = h->line; kc_selvar_0_1->file = h->file; #line 5843 "k.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilwithexpressions)) { #line 434 "../abs.k" kc_selvar_0_1->type = Nilphylumnames(); #line 5850 "k.c" } else kc_no_default_in_with( "", __LINE__, __FILE__ ); } #line 442 "../abs.k" #line 5856 "k.c" #line 5858 "k.c" return kc_x; } static withexpression kc_initialize_withexpression #ifdef KC_USE_PROTOTYPES (withexpression kc_x) #else (kc_x) withexpression kc_x; #endif { #line 449 "../abs.k" kc_x->type = f_emptyId(); #line 450 "../abs.k" kc_x->line = 0; #line 451 "../abs.k" kc_x->file = mkcasestring(""); #line 452 "../abs.k" { #line 453 "../abs.k" withexpression kc_selvar_0_1 = kc_x ; #line 453 "../abs.k" /*SUPPRESS 622*/ assert_withexpression(kc_selvar_0_1, "with_expression (1)"); #line 5886 "k.c" if (( kc_selvar_0_1->prod_sel == sel_WECexpression)) { #line 458 "../abs.k" Cexpression e = kc_selvar_0_1->u.WECexpression.Cexpression_1; #line 458 "../abs.k" kc_selvar_0_1->line = e->line; kc_selvar_0_1->file = e->file; #line 5895 "k.c" } else if (( kc_selvar_0_1->prod_sel == sel_WEVariable)) { #line 454 "../abs.k" ID id = kc_selvar_0_1->u.WEVariable.ID_1; #line 454 "../abs.k" kc_selvar_0_1->line = id->line; kc_selvar_0_1->file = id->file; #line 5905 "k.c" } else kc_no_default_in_with( "", __LINE__, __FILE__ ); } #line 463 "../abs.k" #line 5911 "k.c" #line 5913 "k.c" return kc_x; } static IDtype kc_initialize_IDtype #ifdef KC_USE_PROTOTYPES (IDtype kc_x) #else (kc_x) IDtype kc_x; #endif { #line 574 "../abs.k" { #line 574 "../abs.k" IDtype kc_selvar_0_1 = kc_x ; #line 574 "../abs.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_0_1, "with_expression (1)"); #line 5934 "k.c" if (( kc_selvar_0_1->prod_sel == sel_ITPredefinedBigatomPhylum) && ( kc_selvar_0_1->u.ITPredefinedBigatomPhylum.phylumdeclaration_1->prod_sel == sel_PhylumDeclaration)) { #line 575 "../abs.k" ID id = kc_selvar_0_1->u.ITPredefinedBigatomPhylum.phylumdeclaration_1->u.PhylumDeclaration.ID_1; #line 575 "../abs.k" if (cg_bigatomphyla) { cg_bigatomphyla = Consphyla( id, cg_bigatomphyla ); } else { cg_bigatomphyla = Consphyla( id, Nilphyla() ); } #line 5945 "k.c" } else { #line 581 "../abs.k" /*EMPTY*/ #line 5950 "k.c" } } #line 582 "../abs.k" #line 5955 "k.c" #line 5957 "k.c" return kc_x; } static elem_patternrepresentation kc_initialize_elem_patternrepresentation #ifdef KC_USE_PROTOTYPES (elem_patternrepresentation kc_x) #else (kc_x) elem_patternrepresentation kc_x; #endif { #line 694 "../abs.k" kc_x->type = f_emptyId(); #line 5971 "k.c" return kc_x; } static path kc_initialize_path #ifdef KC_USE_PROTOTYPES (path kc_x) #else (kc_x) path kc_x; #endif { #line 699 "../abs.k" kc_x->op = f_emptyId(); #line 700 "../abs.k" kc_x->id = f_emptyId(); #line 5987 "k.c" return kc_x; } static addedphylumdeclaration kc_initialize_addedphylumdeclaration #ifdef KC_USE_PROTOTYPES (addedphylumdeclaration kc_x) #else (kc_x) addedphylumdeclaration kc_x; #endif { #line 47 "../util.k" kc_x->added = False; #line 48 "../util.k" if (!pl_addedphylumdeclarations) pl_addedphylumdeclarations = Consaddedphylumdeclarations( kc_x, Niladdedphylumdeclarations() ); else pl_addedphylumdeclarations = Consaddedphylumdeclarations( kc_x, pl_addedphylumdeclarations ); #line 6008 "k.c" #line 6010 "k.c" return kc_x; } static countedphylumdeclaration kc_initialize_countedphylumdeclaration #ifdef KC_USE_PROTOTYPES (countedphylumdeclaration kc_x) #else (kc_x) countedphylumdeclaration kc_x; #endif { #line 96 "../util.k" kc_x->count = 0; #line 97 "../util.k" if (!pl_countedphylumdeclarations) pl_countedphylumdeclarations = Conscountedphylumdeclarations( kc_x, Nilcountedphylumdeclarations() ); else pl_countedphylumdeclarations = Conscountedphylumdeclarations( kc_x, pl_countedphylumdeclarations ); #line 6031 "k.c" #line 6033 "k.c" return kc_x; } static bindingidmark kc_initialize_bindingidmark #ifdef KC_USE_PROTOTYPES (bindingidmark kc_x) #else (kc_x) bindingidmark kc_x; #endif { #line 327 "../pat.k" kc_x->marked = False; #line 328 "../pat.k" if (! Thebindingidmarks) Thebindingidmarks = Consbindingidmarks( kc_x, Nilbindingidmarks() ); else Thebindingidmarks = Consbindingidmarks( kc_x, Thebindingidmarks ); #line 6053 "k.c" #line 6055 "k.c" return kc_x; } casestring mkcasestring #ifdef KC_USE_PROTOTYPES (char *kc_s) #else (kc_s) char *kc_s; #endif { register casestring kc_x; int kc_i; register kc_hashtableentry_t* kc_hte; unsigned kc_hashval = (unsigned)0; YYSTYPE *kc_ptr, *kc_beyond; kc_hashtable_t kc_a_ht = kc_hashtables[(int)uniq]; KC_COLLECT_STATS0(KC_CREATE_STATS(sel__Str)); OPERATORHASH((unsigned) sel__Str); CASESTRHASH(kc_s); kc_hashval = kc_hashval%kc_a_ht->size; for (kc_i=0; kc_i < (int)kc_last_storage_mode; kc_i++) { kc_hte = &(kc_a_ht->hashtable[kc_hashval][kc_i]); if (kc_hte->nr != 0) { kc_beyond = &kc_hte->index[kc_hte->nr]; for (kc_ptr = &kc_hte->index[0]; kc_ptr < kc_beyond; kc_ptr++){ kc_x= kc_ptr->yt_casestring; if ((kc_x->prod_sel == sel__Str) && (strcmp(kc_x->name, kc_s) == 0)) return(kc_x); } } } KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel__Str)); kc_hte = &(kc_a_ht->hashtable[kc_hashval][(int)kc_a_ht->mode]); if (kc_hte->nr >= kc_hte->ibound) kc_growindex(kc_hte, kc_a_ht); kc_x = (casestring)(*kc_a_ht->malloc)((kc_size_t)sizeof(struct kc_tag_casestring), kc_a_ht->malloc_private_data); kc_x->name = (char*)(*kc_a_ht->malloc)((kc_size_t)(strlen(kc_s))+1, kc_a_ht->malloc_private_data); kc_x->prod_sel = sel__Str; (void)strcpy(kc_x->name, kc_s); kc_hte->index[kc_hte->nr++].yt_casestring = kc_x; KC_COLLECT_STATS0(kc_casestring_strlen += strlen(kc_s)+1;); return kc_x; } nocasestring mknocasestring #ifdef KC_USE_PROTOTYPES (char *kc_s) #else (kc_s) char *kc_s; #endif { register nocasestring kc_x; int kc_i; register kc_hashtableentry_t* kc_hte; unsigned kc_hashval = (unsigned)0; YYSTYPE *kc_ptr, *kc_beyond; kc_hashtable_t kc_a_ht = kc_hashtables[(int)uniq]; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NoCaseStr)); OPERATORHASH((unsigned) sel_NoCaseStr); NOCASESTRHASH(kc_s); kc_hashval = kc_hashval%kc_a_ht->size; for (kc_i=0; kc_i < (int)kc_last_storage_mode; kc_i++) { kc_hte = &(kc_a_ht->hashtable[kc_hashval][kc_i]); if (kc_hte->nr != 0) { kc_beyond = &kc_hte->index[kc_hte->nr]; for (kc_ptr = &kc_hte->index[0]; kc_ptr < kc_beyond; kc_ptr++){ kc_x= kc_ptr->yt_nocasestring; if ((kc_x->prod_sel == sel_NoCaseStr) && (kc_ci_strcmp(kc_x->name, kc_s) == 0)) return(kc_x); } } } KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NoCaseStr)); kc_hte = &(kc_a_ht->hashtable[kc_hashval][(int)kc_a_ht->mode]); if (kc_hte->nr >= kc_hte->ibound) kc_growindex(kc_hte, kc_a_ht); kc_x = (nocasestring)(*kc_a_ht->malloc)((kc_size_t)sizeof(struct kc_tag_nocasestring), kc_a_ht->malloc_private_data); kc_x->name = (char*)(*kc_a_ht->malloc)((kc_size_t)(strlen(kc_s))+1, kc_a_ht->malloc_private_data); kc_x->prod_sel = sel_NoCaseStr; (void)strcpy(kc_x->name, kc_s); kc_hte->index[kc_hte->nr++].yt_nocasestring = kc_x; KC_COLLECT_STATS0(kc_nocasestring_strlen += strlen(kc_s)+1;); return kc_x; } kc_hashnode_t kc_mksharinghashnode #ifdef KC_USE_PROTOTYPES (YYSTYPE kc_s, kc_hashtable_t kc_a_ht, kc_enum_phyla kc_phylum) #else (kc_s, kc_a_ht, kc_phylum) YYSTYPE kc_s; kc_hashtable_t kc_a_ht; kc_enum_phyla kc_phylum; #endif { register kc_hashnode_t kc_x; int kc_i; register kc_hashtableentry_t* kc_hte; unsigned kc_hashval = (unsigned)0; YYSTYPE *kc_ptr, *kc_beyond; switch(kc_phylum) { case (int)kc_phylum_int: INTHASH(kc_s.yt_int); break; case (int)kc_phylum_float: FLOATHASH(kc_s.yt_float); break; default: HASH(kc_s.yt_voidptr); break; } kc_hashval = kc_hashval%kc_a_ht->size; for (kc_i=0; kc_i < (int)kc_last_storage_mode; kc_i++) { kc_hte = &(kc_a_ht->hashtable[kc_hashval][kc_i]); if (kc_hte->nr != 0) { kc_beyond = &kc_hte->index[kc_hte->nr]; for (kc_ptr = &kc_hte->index[0]; kc_ptr < kc_beyond; kc_ptr++){ kc_x= kc_ptr->yt_kc_hashnode_t; if ((kc_x->prod_sel == (kc_enum_operators)0) && (((kc_phylum == kc_phylum_int) && (kc_x->ptr.yt_int == kc_s.yt_int)) || ((kc_phylum == kc_phylum_float) && (kc_x->ptr.yt_float == kc_s.yt_float)) || (kc_x->ptr.yt_voidptr == kc_s.yt_voidptr))) return(kc_x); } } } kc_hte = &(kc_a_ht->hashtable[kc_hashval][(int)kc_a_ht->mode]); if (kc_hte->nr >= kc_hte->ibound) kc_growindex(kc_hte, kc_a_ht); kc_x = (kc_hashnode_t)(*kc_a_ht->malloc)((kc_size_t)sizeof(struct kc_tag_kc_hashnode_t), kc_a_ht->malloc_private_data); kc_x->ptr = kc_s; kc_x->number = -1; /* IMPORTANT: some code depends on this -1 */ kc_x->created = False; kc_x->prod_sel = (kc_enum_operators)0; kc_hte->index[kc_hte->nr++].yt_kc_hashnode_t = kc_x; return kc_x; } /*ARGSUSED*/ kc_hashnode_t kc_mknonsharinghashnode #ifdef KC_USE_PROTOTYPES (YYSTYPE kc_s, kc_hashtable_t kc_a_ht, kc_enum_phyla kc_phylum) #else (kc_s, kc_a_ht, kc_phylum) YYSTYPE kc_s; kc_hashtable_t kc_a_ht; kc_enum_phyla kc_phylum; #endif { static struct kc_tag_kc_hashnode_t kc_x_struct; kc_x_struct.number = -1; /* IMPORTANT: some code depends on this -1 */ kc_x_struct.created = False; return &kc_x_struct; } kc_dotedgenode_t kc_mkdotedgenode #ifdef KC_USE_PROTOTYPES (kc_hashtable_t kc_a_ht, YYSTYPE kc_s_from, kc_enum_phyla kc_phy_from, YYSTYPE kc_s_to, kc_enum_phyla kc_phy_to, int kc_son_nr) #else (kc_a_ht, kc_s_from, kc_phy_from, kc_s_to, kc_phy_to, kc_son_nr) kc_hashtable_t kc_a_ht; YYSTYPE kc_s_from; kc_enum_phyla kc_phy_from; YYSTYPE kc_s_to; kc_enum_phyla kc_phy_to; int kc_son_nr; #endif { register kc_dotedgenode_t kc_x; int kc_i; register kc_hashtableentry_t* kc_hte; unsigned kc_hashval = (unsigned)0; YYSTYPE *kc_ptr, *kc_beyond; OPERATORHASH((unsigned) kc_phy_from); switch(kc_phy_from) { case (int)kc_phylum_int: INTHASH(kc_s_from.yt_int); break; case (int)kc_phylum_float: FLOATHASH(kc_s_from.yt_float); break; default: HASH(kc_s_from.yt_voidptr); break; } OPERATORHASH((unsigned) kc_phy_to); switch(kc_phy_to) { case (int)kc_phylum_int: INTHASH(kc_s_to.yt_int); break; case (int)kc_phylum_float: FLOATHASH(kc_s_to.yt_float); break; default: HASH(kc_s_to.yt_voidptr); break; } INTHASH(kc_son_nr); kc_hashval = kc_hashval%kc_a_ht->size; for (kc_i=0; kc_i < (int)kc_last_storage_mode; kc_i++) { kc_hte = &(kc_a_ht->hashtable[kc_hashval][kc_i]); if (kc_hte->nr != 0) { kc_beyond = &kc_hte->index[kc_hte->nr]; for (kc_ptr = &kc_hte->index[0]; kc_ptr < kc_beyond; kc_ptr++){ kc_x= kc_ptr->yt_kc_dotedgenode_t; if ((kc_x->prod_sel == (kc_enum_operators)0) && (kc_x->phy_from == kc_phy_from) && (kc_x->phy_to == kc_phy_to) && (kc_x->son_nr == kc_son_nr) && (((kc_phy_from == kc_phylum_int) && (kc_x->ptr_from.yt_int == kc_s_from.yt_int)) || ((kc_phy_from == kc_phylum_float) && (kc_x->ptr_from.yt_float == kc_s_from.yt_float)) || (kc_x->ptr_from.yt_voidptr == kc_s_from.yt_voidptr)) && (((kc_phy_to == kc_phylum_int) && (kc_x->ptr_to.yt_int == kc_s_to.yt_int)) || ((kc_phy_to == kc_phylum_float) && (kc_x->ptr_to.yt_float == kc_s_to.yt_float)) || (kc_x->ptr_to.yt_voidptr == kc_s_to.yt_voidptr)) ) return(kc_x); } } } kc_hte = &(kc_a_ht->hashtable[kc_hashval][(int)kc_a_ht->mode]); if (kc_hte->nr >= kc_hte->ibound) kc_growindex(kc_hte, kc_a_ht); kc_x = (kc_dotedgenode_t)(*kc_a_ht->malloc)((kc_size_t)sizeof(struct kc_tag_kc_dotedgenode_t), kc_a_ht->malloc_private_data); kc_x->ptr_to = kc_s_to; kc_x->ptr_from = kc_s_from; kc_x->phy_from = kc_phy_from; kc_x->phy_to = kc_phy_to; kc_x->son_nr = kc_son_nr; kc_x->label = 0; kc_x->lsize = 0; kc_x->next = 0; kc_x->prod_sel = (kc_enum_operators)0; kc_hte->index[kc_hte->nr++].yt_kc_dotedgenode_t = kc_x; return kc_x; } uniqID Str #ifdef KC_USE_PROTOTYPES (casestring casestring_1) #else (casestring_1) casestring casestring_1; #endif { register uniqID kc_x; int kc_i; register kc_hashtableentry_t* kc_hte; unsigned kc_hashval = (unsigned)0; YYSTYPE *kc_ptr, *kc_beyond; kc_hashtable_t kc_a_ht = kc_hashtables[(int)uniq]; /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Str)); OPERATORHASH((unsigned) sel_Str); HASH(casestring_1); kc_hashval = kc_hashval%kc_a_ht->size; for (kc_i=0; kc_i < (int)kc_last_storage_mode; kc_i++) { kc_hte = &(kc_a_ht->hashtable[kc_hashval][kc_i]); if (kc_hte->nr != 0) { kc_beyond = &kc_hte->index[kc_hte->nr]; for (kc_ptr = &kc_hte->index[0]; kc_ptr < kc_beyond; kc_ptr++){ kc_x= kc_ptr->yt_uniqID; if ((kc_x->prod_sel == sel_Str) && (kc_x->u.Str.casestring_1 == casestring_1) ) return(kc_x); } } } KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Str)); kc_hte = &(kc_a_ht->hashtable[kc_hashval][(int)kc_a_ht->mode]); if (kc_hte->nr >= kc_hte->ibound) kc_growindex(kc_hte, kc_a_ht); kc_x = (uniqID)(*kc_a_ht->malloc)((kc_size_t)sizeof(struct kc_tag_uniqID), kc_a_ht->malloc_private_data); kc_x->prod_sel = sel_Str; kc_x->u.Str.casestring_1 = casestring_1; kc_hte->index[kc_hte->nr++].yt_uniqID = kc_x; kc_x = kc_initialize_uniqID(kc_x); return kc_x; } ID Id #ifdef KC_USE_PROTOTYPES (uniqID uniqID_1) #else (uniqID_1) uniqID uniqID_1; #endif { register ID kc_x = (ID) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ID)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Id)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Id)); /*SUPPRESS 622*/ assert_uniqID( uniqID_1, "uniqID_1" ); kc_x->prod_sel = sel_Id; kc_x->u.Id.uniqID_1 = uniqID_1; kc_x = kc_initialize_ID(kc_x); return kc_x; } INT Int #ifdef KC_USE_PROTOTYPES (int int_1) #else (int_1) int int_1; #endif { register INT kc_x = (INT) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_INT)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Int)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Int)); /*SUPPRESS 622*/ assert_int( int_1, "int_1" ); kc_x->prod_sel = sel_Int; kc_x->u.Int.int_1 = int_1; kc_x = kc_initialize_INT(kc_x); return kc_x; } STRING String #ifdef KC_USE_PROTOTYPES (casestring casestring_1) #else (casestring_1) casestring casestring_1; #endif { register STRING kc_x = (STRING) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_STRING)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_String)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_String)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); kc_x->prod_sel = sel_String; kc_x->u.String.casestring_1 = casestring_1; kc_x = kc_initialize_STRING(kc_x); return kc_x; } phylumdeclarationsroot PhylumDeclarations #ifdef KC_USE_PROTOTYPES (phylumdeclarations phylumdeclarations_1) #else (phylumdeclarations_1) phylumdeclarations phylumdeclarations_1; #endif { register phylumdeclarationsroot kc_x = (phylumdeclarationsroot) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_phylumdeclarationsroot)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PhylumDeclarations)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PhylumDeclarations)); /*SUPPRESS 622*/ assert_phylumdeclarations( phylumdeclarations_1, "phylumdeclarations_1" ); kc_x->prod_sel = sel_PhylumDeclarations; kc_x->u.PhylumDeclarations.phylumdeclarations_1 = phylumdeclarations_1; return kc_x; } phylumdeclarations Nilphylumdeclarations #ifdef KC_USE_PROTOTYPES () #else () #endif { static phylumdeclarations kc_x = (phylumdeclarations)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilphylumdeclarations)); if (kc_x == (phylumdeclarations)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilphylumdeclarations )); kc_x = (phylumdeclarations)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_phylumdeclarations), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilphylumdeclarations; } return kc_x; } phylumdeclarations Consphylumdeclarations #ifdef KC_USE_PROTOTYPES (phylumdeclaration phylumdeclaration_1, phylumdeclarations phylumdeclarations_1) #else (phylumdeclaration_1, phylumdeclarations_1) phylumdeclaration phylumdeclaration_1; phylumdeclarations phylumdeclarations_1; #endif { register phylumdeclarations kc_x = (phylumdeclarations) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_phylumdeclarations)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consphylumdeclarations)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consphylumdeclarations)); /*SUPPRESS 622*/ assert_phylumdeclaration( phylumdeclaration_1, "phylumdeclaration_1" ); /*SUPPRESS 622*/ assert_phylumdeclarations( phylumdeclarations_1, "phylumdeclarations_1" ); kc_x->prod_sel = sel_Consphylumdeclarations; kc_x->u.Consphylumdeclarations.phylumdeclaration_1 = phylumdeclaration_1; kc_x->u.Consphylumdeclarations.phylumdeclarations_1 = phylumdeclarations_1; return kc_x; } phylumnames Nilphylumnames #ifdef KC_USE_PROTOTYPES () #else () #endif { static phylumnames kc_x = (phylumnames)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilphylumnames)); if (kc_x == (phylumnames)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilphylumnames )); kc_x = (phylumnames)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_phylumnames), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilphylumnames; } return kc_x; } phylumnames Consphylumnames #ifdef KC_USE_PROTOTYPES (ID ID_1, phylumnames phylumnames_1) #else (ID_1, phylumnames_1) ID ID_1; phylumnames phylumnames_1; #endif { register phylumnames kc_x = (phylumnames) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_phylumnames)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consphylumnames)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consphylumnames)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_phylumnames( phylumnames_1, "phylumnames_1" ); kc_x->prod_sel = sel_Consphylumnames; kc_x->u.Consphylumnames.ID_1 = ID_1; kc_x->u.Consphylumnames.phylumnames_1 = phylumnames_1; return kc_x; } phylumdeclaration PhylumDeclaration #ifdef KC_USE_PROTOTYPES (ID ID_1, storageoption storageoption_1, productionblock productionblock_1, Ccode_option Ccode_option_1) #else (ID_1, storageoption_1, productionblock_1, Ccode_option_1) ID ID_1; storageoption storageoption_1; productionblock productionblock_1; Ccode_option Ccode_option_1; #endif { register phylumdeclaration kc_x = (phylumdeclaration) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_phylumdeclaration)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PhylumDeclaration)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PhylumDeclaration)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_storageoption( storageoption_1, "storageoption_1" ); /*SUPPRESS 622*/ assert_productionblock( productionblock_1, "productionblock_1" ); /*SUPPRESS 622*/ assert_Ccode_option( Ccode_option_1, "Ccode_option_1" ); kc_x->prod_sel = sel_PhylumDeclaration; kc_x->u.PhylumDeclaration.ID_1 = ID_1; kc_x->u.PhylumDeclaration.storageoption_1 = storageoption_1; kc_x->u.PhylumDeclaration.productionblock_1 = productionblock_1; kc_x->u.PhylumDeclaration.Ccode_option_1 = Ccode_option_1; kc_x = kc_initialize_phylumdeclaration(kc_x); return kc_x; } storageoption NoStorageOption #ifdef KC_USE_PROTOTYPES () #else () #endif { static storageoption kc_x = (storageoption)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NoStorageOption)); if (kc_x == (storageoption)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NoStorageOption )); kc_x = (storageoption)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_storageoption), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_NoStorageOption; } return kc_x; } storageoption NegativeStorageOption #ifdef KC_USE_PROTOTYPES (ID ID_1) #else (ID_1) ID ID_1; #endif { register storageoption kc_x = (storageoption) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_storageoption)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NegativeStorageOption)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NegativeStorageOption)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_NegativeStorageOption; kc_x->u.NegativeStorageOption.ID_1 = ID_1; return kc_x; } storageoption PositiveStorageOption #ifdef KC_USE_PROTOTYPES (ID ID_1) #else (ID_1) ID ID_1; #endif { register storageoption kc_x = (storageoption) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_storageoption)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PositiveStorageOption)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PositiveStorageOption)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_PositiveStorageOption; kc_x->u.PositiveStorageOption.ID_1 = ID_1; return kc_x; } storageclasses Nilstorageclasses #ifdef KC_USE_PROTOTYPES () #else () #endif { register storageclasses kc_x = (storageclasses) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_storageclasses)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilstorageclasses)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilstorageclasses)); kc_x->prod_sel = sel_Nilstorageclasses; kc_x = kc_initialize_storageclasses(kc_x); return kc_x; } storageclasses Consstorageclasses #ifdef KC_USE_PROTOTYPES (ID ID_1, storageclasses storageclasses_1) #else (ID_1, storageclasses_1) ID ID_1; storageclasses storageclasses_1; #endif { register storageclasses kc_x = (storageclasses) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_storageclasses)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consstorageclasses)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consstorageclasses)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_storageclasses( storageclasses_1, "storageclasses_1" ); kc_x->prod_sel = sel_Consstorageclasses; kc_x->u.Consstorageclasses.ID_1 = ID_1; kc_x->u.Consstorageclasses.storageclasses_1 = storageclasses_1; kc_x = kc_initialize_storageclasses(kc_x); return kc_x; } productionblock Emptyproductionblock #ifdef KC_USE_PROTOTYPES () #else () #endif { static productionblock kc_x = (productionblock)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Emptyproductionblock)); if (kc_x == (productionblock)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Emptyproductionblock )); kc_x = (productionblock)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_productionblock), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Emptyproductionblock; } return kc_x; } productionblock ListAlternatives #ifdef KC_USE_PROTOTYPES (alternatives alternatives_1, ID ID_1) #else (alternatives_1, ID_1) alternatives alternatives_1; ID ID_1; #endif { register productionblock kc_x = (productionblock) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_productionblock)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ListAlternatives)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ListAlternatives)); /*SUPPRESS 622*/ assert_alternatives( alternatives_1, "alternatives_1" ); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_ListAlternatives; kc_x->u.ListAlternatives.alternatives_1 = alternatives_1; kc_x->u.ListAlternatives.ID_1 = ID_1; return kc_x; } productionblock NonlistAlternatives #ifdef KC_USE_PROTOTYPES (alternatives alternatives_1) #else (alternatives_1) alternatives alternatives_1; #endif { register productionblock kc_x = (productionblock) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_productionblock)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NonlistAlternatives)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NonlistAlternatives)); /*SUPPRESS 622*/ assert_alternatives( alternatives_1, "alternatives_1" ); kc_x->prod_sel = sel_NonlistAlternatives; kc_x->u.NonlistAlternatives.alternatives_1 = alternatives_1; return kc_x; } productionblock PredefinedAlternatives #ifdef KC_USE_PROTOTYPES (alternatives alternatives_1) #else (alternatives_1) alternatives alternatives_1; #endif { register productionblock kc_x = (productionblock) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_productionblock)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PredefinedAlternatives)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PredefinedAlternatives)); /*SUPPRESS 622*/ assert_alternatives( alternatives_1, "alternatives_1" ); kc_x->prod_sel = sel_PredefinedAlternatives; kc_x->u.PredefinedAlternatives.alternatives_1 = alternatives_1; return kc_x; } alternatives Nilalternatives #ifdef KC_USE_PROTOTYPES () #else () #endif { static alternatives kc_x = (alternatives)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilalternatives)); if (kc_x == (alternatives)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilalternatives )); kc_x = (alternatives)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_alternatives), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilalternatives; } return kc_x; } alternatives Consalternatives #ifdef KC_USE_PROTOTYPES (alternative alternative_1, alternatives alternatives_1) #else (alternative_1, alternatives_1) alternative alternative_1; alternatives alternatives_1; #endif { register alternatives kc_x = (alternatives) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_alternatives)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consalternatives)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consalternatives)); /*SUPPRESS 622*/ assert_alternative( alternative_1, "alternative_1" ); /*SUPPRESS 622*/ assert_alternatives( alternatives_1, "alternatives_1" ); kc_x->prod_sel = sel_Consalternatives; kc_x->u.Consalternatives.alternative_1 = alternative_1; kc_x->u.Consalternatives.alternatives_1 = alternatives_1; return kc_x; } alternative Alternative #ifdef KC_USE_PROTOTYPES (ID ID_1, arguments arguments_1) #else (ID_1, arguments_1) ID ID_1; arguments arguments_1; #endif { register alternative kc_x = (alternative) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_alternative)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Alternative)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Alternative)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_arguments( arguments_1, "arguments_1" ); kc_x->prod_sel = sel_Alternative; kc_x->u.Alternative.ID_1 = ID_1; kc_x->u.Alternative.arguments_1 = arguments_1; kc_x = kc_initialize_alternative(kc_x); return kc_x; } arguments Nilarguments #ifdef KC_USE_PROTOTYPES () #else () #endif { register arguments kc_x = (arguments) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_arguments)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilarguments)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilarguments)); kc_x->prod_sel = sel_Nilarguments; return kc_x; } arguments Consarguments #ifdef KC_USE_PROTOTYPES (ID ID_1, arguments arguments_1) #else (ID_1, arguments_1) ID ID_1; arguments arguments_1; #endif { register arguments kc_x = (arguments) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_arguments)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consarguments)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consarguments)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_arguments( arguments_1, "arguments_1" ); kc_x->prod_sel = sel_Consarguments; kc_x->u.Consarguments.ID_1 = ID_1; kc_x->u.Consarguments.arguments_1 = arguments_1; return kc_x; } argument Argument #ifdef KC_USE_PROTOTYPES (ID ID_1, int int_1) #else (ID_1, int_1) ID ID_1; int int_1; #endif { register argument kc_x = (argument) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_argument)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Argument)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Argument)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_int( int_1, "int_1" ); kc_x->prod_sel = sel_Argument; kc_x->u.Argument.ID_1 = ID_1; kc_x->u.Argument.int_1 = int_1; return kc_x; } Ccode_option CcodeOption #ifdef KC_USE_PROTOTYPES (attributes attributes_1, Ctexts Ctexts_1) #else (attributes_1, Ctexts_1) attributes attributes_1; Ctexts Ctexts_1; #endif { register Ccode_option kc_x = (Ccode_option) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Ccode_option)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CcodeOption)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CcodeOption)); /*SUPPRESS 622*/ assert_attributes( attributes_1, "attributes_1" ); /*SUPPRESS 622*/ assert_Ctexts( Ctexts_1, "Ctexts_1" ); kc_x->prod_sel = sel_CcodeOption; kc_x->u.CcodeOption.attributes_1 = attributes_1; kc_x->u.CcodeOption.Ctexts_1 = Ctexts_1; return kc_x; } attributes Nilattributes #ifdef KC_USE_PROTOTYPES () #else () #endif { static attributes kc_x = (attributes)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilattributes)); if (kc_x == (attributes)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilattributes )); kc_x = (attributes)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_attributes), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilattributes; } return kc_x; } attributes Consattributes #ifdef KC_USE_PROTOTYPES (attribute attribute_1, attributes attributes_1) #else (attribute_1, attributes_1) attribute attribute_1; attributes attributes_1; #endif { register attributes kc_x = (attributes) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_attributes)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consattributes)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consattributes)); /*SUPPRESS 622*/ assert_attribute( attribute_1, "attribute_1" ); /*SUPPRESS 622*/ assert_attributes( attributes_1, "attributes_1" ); kc_x->prod_sel = sel_Consattributes; kc_x->u.Consattributes.attribute_1 = attribute_1; kc_x->u.Consattributes.attributes_1 = attributes_1; return kc_x; } attribute Attribute #ifdef KC_USE_PROTOTYPES (ID ID_1, ID ID_2, attribute_initialisation_option attribute_initialisation_option_1) #else (ID_1, ID_2, attribute_initialisation_option_1) ID ID_1; ID ID_2; attribute_initialisation_option attribute_initialisation_option_1; #endif { register attribute kc_x = (attribute) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_attribute)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Attribute)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Attribute)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_ID( ID_2, "ID_2" ); /*SUPPRESS 622*/ assert_attribute_initialisation_option( attribute_initialisation_option_1, "attribute_initialisation_option_1" ); kc_x->prod_sel = sel_Attribute; kc_x->u.Attribute.ID_1 = ID_1; kc_x->u.Attribute.ID_2 = ID_2; kc_x->u.Attribute.attribute_initialisation_option_1 = attribute_initialisation_option_1; return kc_x; } attribute_initialisation_option Noattribute_initialisation #ifdef KC_USE_PROTOTYPES () #else () #endif { static attribute_initialisation_option kc_x = (attribute_initialisation_option)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Noattribute_initialisation)); if (kc_x == (attribute_initialisation_option)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Noattribute_initialisation )); kc_x = (attribute_initialisation_option)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_attribute_initialisation_option), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Noattribute_initialisation; } return kc_x; } attribute_initialisation_option Yesattribute_initialisation #ifdef KC_USE_PROTOTYPES (Cexpression Cexpression_1) #else (Cexpression_1) Cexpression Cexpression_1; #endif { register attribute_initialisation_option kc_x = (attribute_initialisation_option) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_attribute_initialisation_option)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Yesattribute_initialisation)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Yesattribute_initialisation)); /*SUPPRESS 622*/ assert_Cexpression( Cexpression_1, "Cexpression_1" ); kc_x->prod_sel = sel_Yesattribute_initialisation; kc_x->u.Yesattribute_initialisation.Cexpression_1 = Cexpression_1; return kc_x; } Cexpression NilCexpression #ifdef KC_USE_PROTOTYPES () #else () #endif { register Cexpression kc_x = (Cexpression) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Cexpression)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NilCexpression)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NilCexpression)); kc_x->prod_sel = sel_NilCexpression; kc_x = kc_initialize_Cexpression(kc_x); return kc_x; } Cexpression ConsCexpression #ifdef KC_USE_PROTOTYPES (Cexpression_elem Cexpression_elem_1, Cexpression Cexpression_1) #else (Cexpression_elem_1, Cexpression_1) Cexpression_elem Cexpression_elem_1; Cexpression Cexpression_1; #endif { register Cexpression kc_x = (Cexpression) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Cexpression)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ConsCexpression)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ConsCexpression)); /*SUPPRESS 622*/ assert_Cexpression_elem( Cexpression_elem_1, "Cexpression_elem_1" ); /*SUPPRESS 622*/ assert_Cexpression( Cexpression_1, "Cexpression_1" ); kc_x->prod_sel = sel_ConsCexpression; kc_x->u.ConsCexpression.Cexpression_elem_1 = Cexpression_elem_1; kc_x->u.ConsCexpression.Cexpression_1 = Cexpression_1; kc_x = kc_initialize_Cexpression(kc_x); return kc_x; } Cexpression_elem CExpressionPart #ifdef KC_USE_PROTOTYPES (casestring casestring_1) #else (casestring_1) casestring casestring_1; #endif { register Cexpression_elem kc_x = (Cexpression_elem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Cexpression_elem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionPart)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionPart)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); kc_x->prod_sel = sel_CExpressionPart; kc_x->u.CExpressionPart.casestring_1 = casestring_1; return kc_x; } Cexpression_elem CExpressionDollarvar #ifdef KC_USE_PROTOTYPES (INT INT_1) #else (INT_1) INT INT_1; #endif { register Cexpression_elem kc_x = (Cexpression_elem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Cexpression_elem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionDollarvar)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionDollarvar)); /*SUPPRESS 622*/ assert_INT( INT_1, "INT_1" ); kc_x->prod_sel = sel_CExpressionDollarvar; kc_x->u.CExpressionDollarvar.INT_1 = INT_1; return kc_x; } Cexpression_elem CExpressionNl #ifdef KC_USE_PROTOTYPES (int int_1) #else (int_1) int int_1; #endif { register Cexpression_elem kc_x = (Cexpression_elem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Cexpression_elem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionNl)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionNl)); /*SUPPRESS 622*/ assert_int( int_1, "int_1" ); kc_x->prod_sel = sel_CExpressionNl; kc_x->u.CExpressionNl.int_1 = int_1; return kc_x; } Cexpression_elem CExpressionDQ #ifdef KC_USE_PROTOTYPES (CexpressionDQ CexpressionDQ_1) #else (CexpressionDQ_1) CexpressionDQ CexpressionDQ_1; #endif { register Cexpression_elem kc_x = (Cexpression_elem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Cexpression_elem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionDQ)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionDQ)); /*SUPPRESS 622*/ assert_CexpressionDQ( CexpressionDQ_1, "CexpressionDQ_1" ); kc_x->prod_sel = sel_CExpressionDQ; kc_x->u.CExpressionDQ.CexpressionDQ_1 = CexpressionDQ_1; return kc_x; } Cexpression_elem CExpressionSQ #ifdef KC_USE_PROTOTYPES (CexpressionSQ CexpressionSQ_1) #else (CexpressionSQ_1) CexpressionSQ CexpressionSQ_1; #endif { register Cexpression_elem kc_x = (Cexpression_elem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Cexpression_elem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionSQ)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionSQ)); /*SUPPRESS 622*/ assert_CexpressionSQ( CexpressionSQ_1, "CexpressionSQ_1" ); kc_x->prod_sel = sel_CExpressionSQ; kc_x->u.CExpressionSQ.CexpressionSQ_1 = CexpressionSQ_1; return kc_x; } Cexpression_elem CExpressionPack #ifdef KC_USE_PROTOTYPES (Cexpression Cexpression_1) #else (Cexpression_1) Cexpression Cexpression_1; #endif { register Cexpression_elem kc_x = (Cexpression_elem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Cexpression_elem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionPack)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionPack)); /*SUPPRESS 622*/ assert_Cexpression( Cexpression_1, "Cexpression_1" ); kc_x->prod_sel = sel_CExpressionPack; kc_x->u.CExpressionPack.Cexpression_1 = Cexpression_1; return kc_x; } Cexpression_elem CExpressionArray #ifdef KC_USE_PROTOTYPES (Cexpression Cexpression_1) #else (Cexpression_1) Cexpression Cexpression_1; #endif { register Cexpression_elem kc_x = (Cexpression_elem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Cexpression_elem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionArray)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionArray)); /*SUPPRESS 622*/ assert_Cexpression( Cexpression_1, "Cexpression_1" ); kc_x->prod_sel = sel_CExpressionArray; kc_x->u.CExpressionArray.Cexpression_1 = Cexpression_1; return kc_x; } CexpressionDQ NilCexpressionDQ #ifdef KC_USE_PROTOTYPES () #else () #endif { static CexpressionDQ kc_x = (CexpressionDQ)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NilCexpressionDQ)); if (kc_x == (CexpressionDQ)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NilCexpressionDQ )); kc_x = (CexpressionDQ)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_CexpressionDQ), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_NilCexpressionDQ; } return kc_x; } CexpressionDQ ConsCexpressionDQ #ifdef KC_USE_PROTOTYPES (CexpressionDQ_elem CexpressionDQ_elem_1, CexpressionDQ CexpressionDQ_1) #else (CexpressionDQ_elem_1, CexpressionDQ_1) CexpressionDQ_elem CexpressionDQ_elem_1; CexpressionDQ CexpressionDQ_1; #endif { register CexpressionDQ kc_x = (CexpressionDQ) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_CexpressionDQ)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ConsCexpressionDQ)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ConsCexpressionDQ)); /*SUPPRESS 622*/ assert_CexpressionDQ_elem( CexpressionDQ_elem_1, "CexpressionDQ_elem_1" ); /*SUPPRESS 622*/ assert_CexpressionDQ( CexpressionDQ_1, "CexpressionDQ_1" ); kc_x->prod_sel = sel_ConsCexpressionDQ; kc_x->u.ConsCexpressionDQ.CexpressionDQ_elem_1 = CexpressionDQ_elem_1; kc_x->u.ConsCexpressionDQ.CexpressionDQ_1 = CexpressionDQ_1; return kc_x; } CexpressionDQ_elem CExpressionDQPart #ifdef KC_USE_PROTOTYPES (casestring casestring_1) #else (casestring_1) casestring casestring_1; #endif { register CexpressionDQ_elem kc_x = (CexpressionDQ_elem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_CexpressionDQ_elem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionDQPart)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionDQPart)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); kc_x->prod_sel = sel_CExpressionDQPart; kc_x->u.CExpressionDQPart.casestring_1 = casestring_1; return kc_x; } CexpressionDQ_elem CExpressionDQNl #ifdef KC_USE_PROTOTYPES (int int_1) #else (int_1) int int_1; #endif { register CexpressionDQ_elem kc_x = (CexpressionDQ_elem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_CexpressionDQ_elem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionDQNl)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionDQNl)); /*SUPPRESS 622*/ assert_int( int_1, "int_1" ); kc_x->prod_sel = sel_CExpressionDQNl; kc_x->u.CExpressionDQNl.int_1 = int_1; return kc_x; } CexpressionSQ NilCexpressionSQ #ifdef KC_USE_PROTOTYPES () #else () #endif { static CexpressionSQ kc_x = (CexpressionSQ)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NilCexpressionSQ)); if (kc_x == (CexpressionSQ)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NilCexpressionSQ )); kc_x = (CexpressionSQ)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_CexpressionSQ), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_NilCexpressionSQ; } return kc_x; } CexpressionSQ ConsCexpressionSQ #ifdef KC_USE_PROTOTYPES (CexpressionSQ_elem CexpressionSQ_elem_1, CexpressionSQ CexpressionSQ_1) #else (CexpressionSQ_elem_1, CexpressionSQ_1) CexpressionSQ_elem CexpressionSQ_elem_1; CexpressionSQ CexpressionSQ_1; #endif { register CexpressionSQ kc_x = (CexpressionSQ) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_CexpressionSQ)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ConsCexpressionSQ)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ConsCexpressionSQ)); /*SUPPRESS 622*/ assert_CexpressionSQ_elem( CexpressionSQ_elem_1, "CexpressionSQ_elem_1" ); /*SUPPRESS 622*/ assert_CexpressionSQ( CexpressionSQ_1, "CexpressionSQ_1" ); kc_x->prod_sel = sel_ConsCexpressionSQ; kc_x->u.ConsCexpressionSQ.CexpressionSQ_elem_1 = CexpressionSQ_elem_1; kc_x->u.ConsCexpressionSQ.CexpressionSQ_1 = CexpressionSQ_1; return kc_x; } CexpressionSQ_elem CExpressionSQPart #ifdef KC_USE_PROTOTYPES (casestring casestring_1) #else (casestring_1) casestring casestring_1; #endif { register CexpressionSQ_elem kc_x = (CexpressionSQ_elem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_CexpressionSQ_elem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionSQPart)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionSQPart)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); kc_x->prod_sel = sel_CExpressionSQPart; kc_x->u.CExpressionSQPart.casestring_1 = casestring_1; return kc_x; } CexpressionSQ_elem CExpressionSQNl #ifdef KC_USE_PROTOTYPES (int int_1) #else (int_1) int int_1; #endif { register CexpressionSQ_elem kc_x = (CexpressionSQ_elem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_CexpressionSQ_elem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CExpressionSQNl)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CExpressionSQNl)); /*SUPPRESS 622*/ assert_int( int_1, "int_1" ); kc_x->prod_sel = sel_CExpressionSQNl; kc_x->u.CExpressionSQNl.int_1 = int_1; return kc_x; } idCexpressions NilidCexpressions #ifdef KC_USE_PROTOTYPES () #else () #endif { static idCexpressions kc_x = (idCexpressions)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NilidCexpressions)); if (kc_x == (idCexpressions)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NilidCexpressions )); kc_x = (idCexpressions)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_idCexpressions), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_NilidCexpressions; } return kc_x; } idCexpressions ConsidCexpressions #ifdef KC_USE_PROTOTYPES (idCexpression idCexpression_1, idCexpressions idCexpressions_1) #else (idCexpression_1, idCexpressions_1) idCexpression idCexpression_1; idCexpressions idCexpressions_1; #endif { register idCexpressions kc_x = (idCexpressions) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_idCexpressions)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ConsidCexpressions)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ConsidCexpressions)); /*SUPPRESS 622*/ assert_idCexpression( idCexpression_1, "idCexpression_1" ); /*SUPPRESS 622*/ assert_idCexpressions( idCexpressions_1, "idCexpressions_1" ); kc_x->prod_sel = sel_ConsidCexpressions; kc_x->u.ConsidCexpressions.idCexpression_1 = idCexpression_1; kc_x->u.ConsidCexpressions.idCexpressions_1 = idCexpressions_1; return kc_x; } idCexpression IdCexpression #ifdef KC_USE_PROTOTYPES (ID ID_1, Cexpression Cexpression_1) #else (ID_1, Cexpression_1) ID ID_1; Cexpression Cexpression_1; #endif { register idCexpression kc_x = (idCexpression) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_idCexpression)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_IdCexpression)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_IdCexpression)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_Cexpression( Cexpression_1, "Cexpression_1" ); kc_x->prod_sel = sel_IdCexpression; kc_x->u.IdCexpression.ID_1 = ID_1; kc_x->u.IdCexpression.Cexpression_1 = Cexpression_1; kc_x = kc_initialize_idCexpression(kc_x); return kc_x; } Ctexts NilCtexts #ifdef KC_USE_PROTOTYPES () #else () #endif { static Ctexts kc_x = (Ctexts)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NilCtexts)); if (kc_x == (Ctexts)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NilCtexts )); kc_x = (Ctexts)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_Ctexts), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_NilCtexts; } return kc_x; } Ctexts ConsCtexts #ifdef KC_USE_PROTOTYPES (Ctext Ctext_1, Ctexts Ctexts_1) #else (Ctext_1, Ctexts_1) Ctext Ctext_1; Ctexts Ctexts_1; #endif { register Ctexts kc_x = (Ctexts) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Ctexts)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ConsCtexts)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ConsCtexts)); /*SUPPRESS 622*/ assert_Ctext( Ctext_1, "Ctext_1" ); /*SUPPRESS 622*/ assert_Ctexts( Ctexts_1, "Ctexts_1" ); kc_x->prod_sel = sel_ConsCtexts; kc_x->u.ConsCtexts.Ctext_1 = Ctext_1; kc_x->u.ConsCtexts.Ctexts_1 = Ctexts_1; return kc_x; } includefiles Nilincludefiles #ifdef KC_USE_PROTOTYPES () #else () #endif { static includefiles kc_x = (includefiles)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilincludefiles)); if (kc_x == (includefiles)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilincludefiles )); kc_x = (includefiles)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_includefiles), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilincludefiles; } return kc_x; } includefiles Consincludefiles #ifdef KC_USE_PROTOTYPES (includefile includefile_1, includefiles includefiles_1) #else (includefile_1, includefiles_1) includefile includefile_1; includefiles includefiles_1; #endif { register includefiles kc_x = (includefiles) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_includefiles)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consincludefiles)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consincludefiles)); /*SUPPRESS 622*/ assert_includefile( includefile_1, "includefile_1" ); /*SUPPRESS 622*/ assert_includefiles( includefiles_1, "includefiles_1" ); kc_x->prod_sel = sel_Consincludefiles; kc_x->u.Consincludefiles.includefile_1 = includefile_1; kc_x->u.Consincludefiles.includefiles_1 = includefiles_1; return kc_x; } includefile IncludeFile #ifdef KC_USE_PROTOTYPES (casestring casestring_1) #else (casestring_1) casestring casestring_1; #endif { register includefile kc_x; int kc_i; register kc_hashtableentry_t* kc_hte; unsigned kc_hashval = (unsigned)0; YYSTYPE *kc_ptr, *kc_beyond; kc_hashtable_t kc_a_ht = kc_hashtables[(int)uniq]; /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_IncludeFile)); OPERATORHASH((unsigned) sel_IncludeFile); HASH(casestring_1); kc_hashval = kc_hashval%kc_a_ht->size; for (kc_i=0; kc_i < (int)kc_last_storage_mode; kc_i++) { kc_hte = &(kc_a_ht->hashtable[kc_hashval][kc_i]); if (kc_hte->nr != 0) { kc_beyond = &kc_hte->index[kc_hte->nr]; for (kc_ptr = &kc_hte->index[0]; kc_ptr < kc_beyond; kc_ptr++){ kc_x= kc_ptr->yt_includefile; if ((kc_x->prod_sel == sel_IncludeFile) && (kc_x->u.IncludeFile.casestring_1 == casestring_1) ) return(kc_x); } } } KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_IncludeFile)); kc_hte = &(kc_a_ht->hashtable[kc_hashval][(int)kc_a_ht->mode]); if (kc_hte->nr >= kc_hte->ibound) kc_growindex(kc_hte, kc_a_ht); kc_x = (includefile)(*kc_a_ht->malloc)((kc_size_t)sizeof(struct kc_tag_includefile), kc_a_ht->malloc_private_data); kc_x->prod_sel = sel_IncludeFile; kc_x->u.IncludeFile.casestring_1 = casestring_1; kc_hte->index[kc_hte->nr++].yt_includefile = kc_x; kc_x = kc_initialize_includefile(kc_x); return kc_x; } includedeclarations Nilincludedeclarations #ifdef KC_USE_PROTOTYPES () #else () #endif { static includedeclarations kc_x = (includedeclarations)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilincludedeclarations)); if (kc_x == (includedeclarations)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilincludedeclarations )); kc_x = (includedeclarations)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_includedeclarations), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilincludedeclarations; } return kc_x; } includedeclarations Consincludedeclarations #ifdef KC_USE_PROTOTYPES (includedeclaration includedeclaration_1, includedeclarations includedeclarations_1) #else (includedeclaration_1, includedeclarations_1) includedeclaration includedeclaration_1; includedeclarations includedeclarations_1; #endif { register includedeclarations kc_x = (includedeclarations) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_includedeclarations)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consincludedeclarations)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consincludedeclarations)); /*SUPPRESS 622*/ assert_includedeclaration( includedeclaration_1, "includedeclaration_1" ); /*SUPPRESS 622*/ assert_includedeclarations( includedeclarations_1, "includedeclarations_1" ); kc_x->prod_sel = sel_Consincludedeclarations; kc_x->u.Consincludedeclarations.includedeclaration_1 = includedeclaration_1; kc_x->u.Consincludedeclarations.includedeclarations_1 = includedeclarations_1; return kc_x; } includedeclaration IncludeDeclaration #ifdef KC_USE_PROTOTYPES (includes includes_1) #else (includes_1) includes includes_1; #endif { register includedeclaration kc_x = (includedeclaration) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_includedeclaration)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_IncludeDeclaration)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_IncludeDeclaration)); /*SUPPRESS 622*/ assert_includes( includes_1, "includes_1" ); kc_x->prod_sel = sel_IncludeDeclaration; kc_x->u.IncludeDeclaration.includes_1 = includes_1; kc_x = kc_initialize_includedeclaration(kc_x); return kc_x; } includes Nilincludes #ifdef KC_USE_PROTOTYPES () #else () #endif { static includes kc_x = (includes)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilincludes)); if (kc_x == (includes)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilincludes )); kc_x = (includes)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_includes), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilincludes; } return kc_x; } includes Consincludes #ifdef KC_USE_PROTOTYPES (include include_1, includes includes_1) #else (include_1, includes_1) include include_1; includes includes_1; #endif { register includes kc_x = (includes) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_includes)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consincludes)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consincludes)); /*SUPPRESS 622*/ assert_include( include_1, "include_1" ); /*SUPPRESS 622*/ assert_includes( includes_1, "includes_1" ); kc_x->prod_sel = sel_Consincludes; kc_x->u.Consincludes.include_1 = include_1; kc_x->u.Consincludes.includes_1 = includes_1; return kc_x; } include Include #ifdef KC_USE_PROTOTYPES (casestring casestring_1) #else (casestring_1) casestring casestring_1; #endif { register include kc_x = (include) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_include)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Include)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Include)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); kc_x->prod_sel = sel_Include; kc_x->u.Include.casestring_1 = casestring_1; return kc_x; } include IncludeNl #ifdef KC_USE_PROTOTYPES (int int_1) #else (int_1) int int_1; #endif { register include kc_x = (include) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_include)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_IncludeNl)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_IncludeNl)); /*SUPPRESS 622*/ assert_int( int_1, "int_1" ); kc_x->prod_sel = sel_IncludeNl; kc_x->u.IncludeNl.int_1 = int_1; return kc_x; } rwdeclarations Nilrwdeclarations #ifdef KC_USE_PROTOTYPES () #else () #endif { static rwdeclarations kc_x = (rwdeclarations)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilrwdeclarations)); if (kc_x == (rwdeclarations)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilrwdeclarations )); kc_x = (rwdeclarations)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_rwdeclarations), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilrwdeclarations; } return kc_x; } rwdeclarations Consrwdeclarations #ifdef KC_USE_PROTOTYPES (rwdeclaration rwdeclaration_1, rwdeclarations rwdeclarations_1) #else (rwdeclaration_1, rwdeclarations_1) rwdeclaration rwdeclaration_1; rwdeclarations rwdeclarations_1; #endif { register rwdeclarations kc_x = (rwdeclarations) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_rwdeclarations)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consrwdeclarations)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consrwdeclarations)); /*SUPPRESS 622*/ assert_rwdeclaration( rwdeclaration_1, "rwdeclaration_1" ); /*SUPPRESS 622*/ assert_rwdeclarations( rwdeclarations_1, "rwdeclarations_1" ); kc_x->prod_sel = sel_Consrwdeclarations; kc_x->u.Consrwdeclarations.rwdeclaration_1 = rwdeclaration_1; kc_x->u.Consrwdeclarations.rwdeclarations_1 = rwdeclarations_1; return kc_x; } rwdeclaration RwDeclaration #ifdef KC_USE_PROTOTYPES (outmostpatterns outmostpatterns_1, rewriteclauses rewriteclauses_1) #else (outmostpatterns_1, rewriteclauses_1) outmostpatterns outmostpatterns_1; rewriteclauses rewriteclauses_1; #endif { register rwdeclaration kc_x = (rwdeclaration) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_rwdeclaration)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_RwDeclaration)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_RwDeclaration)); /*SUPPRESS 622*/ assert_outmostpatterns( outmostpatterns_1, "outmostpatterns_1" ); /*SUPPRESS 622*/ assert_rewriteclauses( rewriteclauses_1, "rewriteclauses_1" ); kc_x->prod_sel = sel_RwDeclaration; kc_x->u.RwDeclaration.outmostpatterns_1 = outmostpatterns_1; kc_x->u.RwDeclaration.rewriteclauses_1 = rewriteclauses_1; return kc_x; } rewriteclauses Nilrewriteclauses #ifdef KC_USE_PROTOTYPES () #else () #endif { static rewriteclauses kc_x = (rewriteclauses)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilrewriteclauses)); if (kc_x == (rewriteclauses)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilrewriteclauses )); kc_x = (rewriteclauses)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_rewriteclauses), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilrewriteclauses; } return kc_x; } rewriteclauses Consrewriteclauses #ifdef KC_USE_PROTOTYPES (rewriteclause rewriteclause_1, rewriteclauses rewriteclauses_1) #else (rewriteclause_1, rewriteclauses_1) rewriteclause rewriteclause_1; rewriteclauses rewriteclauses_1; #endif { register rewriteclauses kc_x = (rewriteclauses) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_rewriteclauses)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consrewriteclauses)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consrewriteclauses)); /*SUPPRESS 622*/ assert_rewriteclause( rewriteclause_1, "rewriteclause_1" ); /*SUPPRESS 622*/ assert_rewriteclauses( rewriteclauses_1, "rewriteclauses_1" ); kc_x->prod_sel = sel_Consrewriteclauses; kc_x->u.Consrewriteclauses.rewriteclause_1 = rewriteclause_1; kc_x->u.Consrewriteclauses.rewriteclauses_1 = rewriteclauses_1; return kc_x; } rewriteclause RewriteClause #ifdef KC_USE_PROTOTYPES (viewnames viewnames_1, term term_1) #else (viewnames_1, term_1) viewnames viewnames_1; term term_1; #endif { register rewriteclause kc_x = (rewriteclause) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_rewriteclause)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_RewriteClause)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_RewriteClause)); /*SUPPRESS 622*/ assert_viewnames( viewnames_1, "viewnames_1" ); /*SUPPRESS 622*/ assert_term( term_1, "term_1" ); kc_x->prod_sel = sel_RewriteClause; kc_x->u.RewriteClause.viewnames_1 = viewnames_1; kc_x->u.RewriteClause.term_1 = term_1; return kc_x; } patternchains Nilpatternchains #ifdef KC_USE_PROTOTYPES () #else () #endif { register patternchains kc_x = (patternchains) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_patternchains)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilpatternchains)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilpatternchains)); kc_x->prod_sel = sel_Nilpatternchains; kc_x = kc_initialize_patternchains(kc_x); return kc_x; } patternchains Conspatternchains #ifdef KC_USE_PROTOTYPES (patternchain patternchain_1, patternchains patternchains_1) #else (patternchain_1, patternchains_1) patternchain patternchain_1; patternchains patternchains_1; #endif { register patternchains kc_x = (patternchains) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_patternchains)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conspatternchains)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conspatternchains)); /*SUPPRESS 622*/ assert_patternchain( patternchain_1, "patternchain_1" ); /*SUPPRESS 622*/ assert_patternchains( patternchains_1, "patternchains_1" ); kc_x->prod_sel = sel_Conspatternchains; kc_x->u.Conspatternchains.patternchain_1 = patternchain_1; kc_x->u.Conspatternchains.patternchains_1 = patternchains_1; kc_x = kc_initialize_patternchains(kc_x); return kc_x; } patternchain Nilpatternchain #ifdef KC_USE_PROTOTYPES () #else () #endif { register patternchain kc_x = (patternchain) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_patternchain)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilpatternchain)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilpatternchain)); kc_x->prod_sel = sel_Nilpatternchain; kc_x = kc_initialize_patternchain(kc_x); return kc_x; } patternchain Conspatternchain #ifdef KC_USE_PROTOTYPES (patternchainitem patternchainitem_1, patternchain patternchain_1) #else (patternchainitem_1, patternchain_1) patternchainitem patternchainitem_1; patternchain patternchain_1; #endif { register patternchain kc_x = (patternchain) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_patternchain)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conspatternchain)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conspatternchain)); /*SUPPRESS 622*/ assert_patternchainitem( patternchainitem_1, "patternchainitem_1" ); /*SUPPRESS 622*/ assert_patternchain( patternchain_1, "patternchain_1" ); kc_x->prod_sel = sel_Conspatternchain; kc_x->u.Conspatternchain.patternchainitem_1 = patternchainitem_1; kc_x->u.Conspatternchain.patternchain_1 = patternchain_1; kc_x = kc_initialize_patternchain(kc_x); return kc_x; } outmostpatterns Niloutmostpatterns #ifdef KC_USE_PROTOTYPES () #else () #endif { static outmostpatterns kc_x = (outmostpatterns)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Niloutmostpatterns)); if (kc_x == (outmostpatterns)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Niloutmostpatterns )); kc_x = (outmostpatterns)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_outmostpatterns), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Niloutmostpatterns; } return kc_x; } outmostpatterns Consoutmostpatterns #ifdef KC_USE_PROTOTYPES (outmostpattern outmostpattern_1, outmostpatterns outmostpatterns_1) #else (outmostpattern_1, outmostpatterns_1) outmostpattern outmostpattern_1; outmostpatterns outmostpatterns_1; #endif { register outmostpatterns kc_x = (outmostpatterns) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_outmostpatterns)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consoutmostpatterns)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consoutmostpatterns)); /*SUPPRESS 622*/ assert_outmostpattern( outmostpattern_1, "outmostpattern_1" ); /*SUPPRESS 622*/ assert_outmostpatterns( outmostpatterns_1, "outmostpatterns_1" ); kc_x->prod_sel = sel_Consoutmostpatterns; kc_x->u.Consoutmostpatterns.outmostpattern_1 = outmostpattern_1; kc_x->u.Consoutmostpatterns.outmostpatterns_1 = outmostpatterns_1; return kc_x; } patternchainitem PatternchainitemOutmost #ifdef KC_USE_PROTOTYPES (outmostpattern outmostpattern_1) #else (outmostpattern_1) outmostpattern outmostpattern_1; #endif { register patternchainitem kc_x = (patternchainitem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_patternchainitem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PatternchainitemOutmost)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PatternchainitemOutmost)); /*SUPPRESS 622*/ assert_outmostpattern( outmostpattern_1, "outmostpattern_1" ); kc_x->prod_sel = sel_PatternchainitemOutmost; kc_x->u.PatternchainitemOutmost.outmostpattern_1 = outmostpattern_1; kc_x = kc_initialize_patternchainitem(kc_x); return kc_x; } patternchainitem PatternchainitemGroup #ifdef KC_USE_PROTOTYPES (patternchains patternchains_1) #else (patternchains_1) patternchains patternchains_1; #endif { register patternchainitem kc_x = (patternchainitem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_patternchainitem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PatternchainitemGroup)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PatternchainitemGroup)); /*SUPPRESS 622*/ assert_patternchains( patternchains_1, "patternchains_1" ); kc_x->prod_sel = sel_PatternchainitemGroup; kc_x->u.PatternchainitemGroup.patternchains_1 = patternchains_1; kc_x = kc_initialize_patternchainitem(kc_x); return kc_x; } patternchainitem PatternchainitemDollarid #ifdef KC_USE_PROTOTYPES (ID ID_1) #else (ID_1) ID ID_1; #endif { register patternchainitem kc_x = (patternchainitem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_patternchainitem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PatternchainitemDollarid)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PatternchainitemDollarid)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_PatternchainitemDollarid; kc_x->u.PatternchainitemDollarid.ID_1 = ID_1; kc_x = kc_initialize_patternchainitem(kc_x); return kc_x; } outmostpattern OPOperatorWildcard #ifdef KC_USE_PROTOTYPES (ID ID_1) #else (ID_1) ID ID_1; #endif { register outmostpattern kc_x = (outmostpattern) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_outmostpattern)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_OPOperatorWildcard)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_OPOperatorWildcard)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_OPOperatorWildcard; kc_x->u.OPOperatorWildcard.ID_1 = ID_1; kc_x = kc_initialize_outmostpattern(kc_x); return kc_x; } outmostpattern OPOperator #ifdef KC_USE_PROTOTYPES (ID ID_1, patterns patterns_1) #else (ID_1, patterns_1) ID ID_1; patterns patterns_1; #endif { register outmostpattern kc_x = (outmostpattern) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_outmostpattern)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_OPOperator)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_OPOperator)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_patterns( patterns_1, "patterns_1" ); kc_x->prod_sel = sel_OPOperator; kc_x->u.OPOperator.ID_1 = ID_1; kc_x->u.OPOperator.patterns_1 = patterns_1; kc_x = kc_initialize_outmostpattern(kc_x); return kc_x; } outmostpattern OPNonLeafVariable #ifdef KC_USE_PROTOTYPES (ID ID_1, outmostpattern outmostpattern_1) #else (ID_1, outmostpattern_1) ID ID_1; outmostpattern outmostpattern_1; #endif { register outmostpattern kc_x = (outmostpattern) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_outmostpattern)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_OPNonLeafVariable)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_OPNonLeafVariable)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_outmostpattern( outmostpattern_1, "outmostpattern_1" ); kc_x->prod_sel = sel_OPNonLeafVariable; kc_x->u.OPNonLeafVariable.ID_1 = ID_1; kc_x->u.OPNonLeafVariable.outmostpattern_1 = outmostpattern_1; kc_x = kc_initialize_outmostpattern(kc_x); return kc_x; } outmostpattern OPWildcard #ifdef KC_USE_PROTOTYPES () #else () #endif { register outmostpattern kc_x = (outmostpattern) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_outmostpattern)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_OPWildcard)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_OPWildcard)); kc_x->prod_sel = sel_OPWildcard; kc_x = kc_initialize_outmostpattern(kc_x); return kc_x; } outmostpattern OPDefault #ifdef KC_USE_PROTOTYPES () #else () #endif { register outmostpattern kc_x = (outmostpattern) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_outmostpattern)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_OPDefault)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_OPDefault)); kc_x->prod_sel = sel_OPDefault; kc_x = kc_initialize_outmostpattern(kc_x); return kc_x; } pattern PVariable #ifdef KC_USE_PROTOTYPES (ID ID_1) #else (ID_1) ID ID_1; #endif { register pattern kc_x = (pattern) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_pattern)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PVariable)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PVariable)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_PVariable; kc_x->u.PVariable.ID_1 = ID_1; return kc_x; } pattern POperator #ifdef KC_USE_PROTOTYPES (ID ID_1, patterns patterns_1) #else (ID_1, patterns_1) ID ID_1; patterns patterns_1; #endif { register pattern kc_x = (pattern) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_pattern)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_POperator)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_POperator)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_patterns( patterns_1, "patterns_1" ); kc_x->prod_sel = sel_POperator; kc_x->u.POperator.ID_1 = ID_1; kc_x->u.POperator.patterns_1 = patterns_1; return kc_x; } pattern PNonLeafVariable #ifdef KC_USE_PROTOTYPES (ID ID_1, pattern pattern_1) #else (ID_1, pattern_1) ID ID_1; pattern pattern_1; #endif { register pattern kc_x = (pattern) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_pattern)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PNonLeafVariable)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PNonLeafVariable)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_pattern( pattern_1, "pattern_1" ); kc_x->prod_sel = sel_PNonLeafVariable; kc_x->u.PNonLeafVariable.ID_1 = ID_1; kc_x->u.PNonLeafVariable.pattern_1 = pattern_1; return kc_x; } pattern PWildcard #ifdef KC_USE_PROTOTYPES () #else () #endif { static pattern kc_x = (pattern)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PWildcard)); if (kc_x == (pattern)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PWildcard )); kc_x = (pattern)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_pattern), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_PWildcard; } return kc_x; } pattern PStringLiteral #ifdef KC_USE_PROTOTYPES (CexpressionDQ CexpressionDQ_1) #else (CexpressionDQ_1) CexpressionDQ CexpressionDQ_1; #endif { register pattern kc_x = (pattern) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_pattern)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PStringLiteral)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PStringLiteral)); /*SUPPRESS 622*/ assert_CexpressionDQ( CexpressionDQ_1, "CexpressionDQ_1" ); kc_x->prod_sel = sel_PStringLiteral; kc_x->u.PStringLiteral.CexpressionDQ_1 = CexpressionDQ_1; return kc_x; } pattern PIntLiteral #ifdef KC_USE_PROTOTYPES (INT INT_1) #else (INT_1) INT INT_1; #endif { register pattern kc_x = (pattern) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_pattern)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PIntLiteral)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PIntLiteral)); /*SUPPRESS 622*/ assert_INT( INT_1, "INT_1" ); kc_x->prod_sel = sel_PIntLiteral; kc_x->u.PIntLiteral.INT_1 = INT_1; return kc_x; } patterns Nilpatterns #ifdef KC_USE_PROTOTYPES () #else () #endif { static patterns kc_x = (patterns)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilpatterns)); if (kc_x == (patterns)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilpatterns )); kc_x = (patterns)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_patterns), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilpatterns; } return kc_x; } patterns Conspatterns #ifdef KC_USE_PROTOTYPES (pattern pattern_1, patterns patterns_1) #else (pattern_1, patterns_1) pattern pattern_1; patterns patterns_1; #endif { register patterns kc_x = (patterns) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_patterns)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conspatterns)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conspatterns)); /*SUPPRESS 622*/ assert_pattern( pattern_1, "pattern_1" ); /*SUPPRESS 622*/ assert_patterns( patterns_1, "patterns_1" ); kc_x->prod_sel = sel_Conspatterns; kc_x->u.Conspatterns.pattern_1 = pattern_1; kc_x->u.Conspatterns.patterns_1 = patterns_1; return kc_x; } term TVariable #ifdef KC_USE_PROTOTYPES (ID ID_1) #else (ID_1) ID ID_1; #endif { register term kc_x = (term) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_term)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TVariable)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TVariable)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_TVariable; kc_x->u.TVariable.ID_1 = ID_1; return kc_x; } term TOperator #ifdef KC_USE_PROTOTYPES (ID ID_1, terms terms_1) #else (ID_1, terms_1) ID ID_1; terms terms_1; #endif { register term kc_x = (term) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_term)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TOperator)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TOperator)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_terms( terms_1, "terms_1" ); kc_x->prod_sel = sel_TOperator; kc_x->u.TOperator.ID_1 = ID_1; kc_x->u.TOperator.terms_1 = terms_1; return kc_x; } term TStringLiteral #ifdef KC_USE_PROTOTYPES (CexpressionDQ CexpressionDQ_1) #else (CexpressionDQ_1) CexpressionDQ CexpressionDQ_1; #endif { register term kc_x = (term) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_term)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TStringLiteral)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TStringLiteral)); /*SUPPRESS 622*/ assert_CexpressionDQ( CexpressionDQ_1, "CexpressionDQ_1" ); kc_x->prod_sel = sel_TStringLiteral; kc_x->u.TStringLiteral.CexpressionDQ_1 = CexpressionDQ_1; return kc_x; } term TIntLiteral #ifdef KC_USE_PROTOTYPES (INT INT_1) #else (INT_1) INT INT_1; #endif { register term kc_x = (term) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_term)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TIntLiteral)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TIntLiteral)); /*SUPPRESS 622*/ assert_INT( INT_1, "INT_1" ); kc_x->prod_sel = sel_TIntLiteral; kc_x->u.TIntLiteral.INT_1 = INT_1; return kc_x; } terms Nilterms #ifdef KC_USE_PROTOTYPES () #else () #endif { static terms kc_x = (terms)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilterms)); if (kc_x == (terms)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilterms )); kc_x = (terms)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_terms), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilterms; } return kc_x; } terms Consterms #ifdef KC_USE_PROTOTYPES (term term_1, terms terms_1) #else (term_1, terms_1) term term_1; terms terms_1; #endif { register terms kc_x = (terms) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_terms)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consterms)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consterms)); /*SUPPRESS 622*/ assert_term( term_1, "term_1" ); /*SUPPRESS 622*/ assert_terms( terms_1, "terms_1" ); kc_x->prod_sel = sel_Consterms; kc_x->u.Consterms.term_1 = term_1; kc_x->u.Consterms.terms_1 = terms_1; return kc_x; } fnfiles Nilfnfiles #ifdef KC_USE_PROTOTYPES () #else () #endif { static fnfiles kc_x = (fnfiles)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilfnfiles)); if (kc_x == (fnfiles)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilfnfiles )); kc_x = (fnfiles)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_fnfiles), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilfnfiles; } return kc_x; } fnfiles Consfnfiles #ifdef KC_USE_PROTOTYPES (fnfile fnfile_1, fnfiles fnfiles_1) #else (fnfile_1, fnfiles_1) fnfile fnfile_1; fnfiles fnfiles_1; #endif { register fnfiles kc_x = (fnfiles) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_fnfiles)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consfnfiles)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consfnfiles)); /*SUPPRESS 622*/ assert_fnfile( fnfile_1, "fnfile_1" ); /*SUPPRESS 622*/ assert_fnfiles( fnfiles_1, "fnfiles_1" ); kc_x->prod_sel = sel_Consfnfiles; kc_x->u.Consfnfiles.fnfile_1 = fnfile_1; kc_x->u.Consfnfiles.fnfiles_1 = fnfiles_1; return kc_x; } fnfile FnFile #ifdef KC_USE_PROTOTYPES (casestring casestring_1) #else (casestring_1) casestring casestring_1; #endif { register fnfile kc_x; int kc_i; register kc_hashtableentry_t* kc_hte; unsigned kc_hashval = (unsigned)0; YYSTYPE *kc_ptr, *kc_beyond; kc_hashtable_t kc_a_ht = kc_hashtables[(int)uniq]; /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_FnFile)); OPERATORHASH((unsigned) sel_FnFile); HASH(casestring_1); kc_hashval = kc_hashval%kc_a_ht->size; for (kc_i=0; kc_i < (int)kc_last_storage_mode; kc_i++) { kc_hte = &(kc_a_ht->hashtable[kc_hashval][kc_i]); if (kc_hte->nr != 0) { kc_beyond = &kc_hte->index[kc_hte->nr]; for (kc_ptr = &kc_hte->index[0]; kc_ptr < kc_beyond; kc_ptr++){ kc_x= kc_ptr->yt_fnfile; if ((kc_x->prod_sel == sel_FnFile) && (kc_x->u.FnFile.casestring_1 == casestring_1) ) return(kc_x); } } } KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_FnFile)); kc_hte = &(kc_a_ht->hashtable[kc_hashval][(int)kc_a_ht->mode]); if (kc_hte->nr >= kc_hte->ibound) kc_growindex(kc_hte, kc_a_ht); kc_x = (fnfile)(*kc_a_ht->malloc)((kc_size_t)sizeof(struct kc_tag_fnfile), kc_a_ht->malloc_private_data); kc_x->prod_sel = sel_FnFile; kc_x->u.FnFile.casestring_1 = casestring_1; kc_hte->index[kc_hte->nr++].yt_fnfile = kc_x; kc_x = kc_initialize_fnfile(kc_x); return kc_x; } fndeclarations Nilfndeclarations #ifdef KC_USE_PROTOTYPES () #else () #endif { static fndeclarations kc_x = (fndeclarations)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilfndeclarations)); if (kc_x == (fndeclarations)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilfndeclarations )); kc_x = (fndeclarations)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_fndeclarations), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilfndeclarations; } return kc_x; } fndeclarations Consfndeclarations #ifdef KC_USE_PROTOTYPES (fndeclaration fndeclaration_1, fndeclarations fndeclarations_1) #else (fndeclaration_1, fndeclarations_1) fndeclaration fndeclaration_1; fndeclarations fndeclarations_1; #endif { register fndeclarations kc_x = (fndeclarations) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_fndeclarations)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consfndeclarations)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consfndeclarations)); /*SUPPRESS 622*/ assert_fndeclaration( fndeclaration_1, "fndeclaration_1" ); /*SUPPRESS 622*/ assert_fndeclarations( fndeclarations_1, "fndeclarations_1" ); kc_x->prod_sel = sel_Consfndeclarations; kc_x->u.Consfndeclarations.fndeclaration_1 = fndeclaration_1; kc_x->u.Consfndeclarations.fndeclarations_1 = fndeclarations_1; return kc_x; } fndeclaration FnDeclaration #ifdef KC_USE_PROTOTYPES (ID ID_1, int int_1, ID ID_2, fnarguments fnarguments_1, Cvariabledeclarations Cvariabledeclarations_1, Ctext Ctext_1, fnclass fnclass_1) #else (ID_1, int_1, ID_2, fnarguments_1, Cvariabledeclarations_1, Ctext_1, fnclass_1) ID ID_1; int int_1; ID ID_2; fnarguments fnarguments_1; Cvariabledeclarations Cvariabledeclarations_1; Ctext Ctext_1; fnclass fnclass_1; #endif { register fndeclaration kc_x = (fndeclaration) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_fndeclaration)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_FnDeclaration)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_FnDeclaration)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_int( int_1, "int_1" ); /*SUPPRESS 622*/ assert_ID( ID_2, "ID_2" ); /*SUPPRESS 622*/ assert_fnarguments( fnarguments_1, "fnarguments_1" ); /*SUPPRESS 622*/ assert_Cvariabledeclarations( Cvariabledeclarations_1, "Cvariabledeclarations_1" ); /*SUPPRESS 622*/ assert_Ctext( Ctext_1, "Ctext_1" ); /*SUPPRESS 622*/ assert_fnclass( fnclass_1, "fnclass_1" ); kc_x->prod_sel = sel_FnDeclaration; kc_x->u.FnDeclaration.ID_1 = ID_1; kc_x->u.FnDeclaration.int_1 = int_1; kc_x->u.FnDeclaration.ID_2 = ID_2; kc_x->u.FnDeclaration.fnarguments_1 = fnarguments_1; kc_x->u.FnDeclaration.Cvariabledeclarations_1 = Cvariabledeclarations_1; kc_x->u.FnDeclaration.Ctext_1 = Ctext_1; kc_x->u.FnDeclaration.fnclass_1 = fnclass_1; kc_x = kc_initialize_fndeclaration(kc_x); return kc_x; } fndeclaration FnAcDeclaration #ifdef KC_USE_PROTOTYPES (ac_declaration_specifiers ac_declaration_specifiers_1, ac_declarator ac_declarator_1, ac_declaration_list ac_declaration_list_1, Ctext Ctext_1, ID ID_1, fnclass fnclass_1) #else (ac_declaration_specifiers_1, ac_declarator_1, ac_declaration_list_1, Ctext_1, ID_1, fnclass_1) ac_declaration_specifiers ac_declaration_specifiers_1; ac_declarator ac_declarator_1; ac_declaration_list ac_declaration_list_1; Ctext Ctext_1; ID ID_1; fnclass fnclass_1; #endif { register fndeclaration kc_x = (fndeclaration) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_fndeclaration)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_FnAcDeclaration)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_FnAcDeclaration)); /*SUPPRESS 622*/ assert_ac_declaration_specifiers( ac_declaration_specifiers_1, "ac_declaration_specifiers_1" ); /*SUPPRESS 622*/ assert_ac_declarator( ac_declarator_1, "ac_declarator_1" ); /*SUPPRESS 622*/ assert_ac_declaration_list( ac_declaration_list_1, "ac_declaration_list_1" ); /*SUPPRESS 622*/ assert_Ctext( Ctext_1, "Ctext_1" ); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_fnclass( fnclass_1, "fnclass_1" ); kc_x->prod_sel = sel_FnAcDeclaration; kc_x->u.FnAcDeclaration.ac_declaration_specifiers_1 = ac_declaration_specifiers_1; kc_x->u.FnAcDeclaration.ac_declarator_1 = ac_declarator_1; kc_x->u.FnAcDeclaration.ac_declaration_list_1 = ac_declaration_list_1; kc_x->u.FnAcDeclaration.Ctext_1 = Ctext_1; kc_x->u.FnAcDeclaration.ID_1 = ID_1; kc_x->u.FnAcDeclaration.fnclass_1 = fnclass_1; kc_x = kc_initialize_fndeclaration(kc_x); return kc_x; } fnclass GlobalFn #ifdef KC_USE_PROTOTYPES () #else () #endif { static fnclass kc_x = (fnclass)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_GlobalFn)); if (kc_x == (fnclass)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_GlobalFn )); kc_x = (fnclass)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_fnclass), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_GlobalFn; } return kc_x; } fnclass LocalFn #ifdef KC_USE_PROTOTYPES (casestring casestring_1) #else (casestring_1) casestring casestring_1; #endif { register fnclass kc_x = (fnclass) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_fnclass)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_LocalFn)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_LocalFn)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); kc_x->prod_sel = sel_LocalFn; kc_x->u.LocalFn.casestring_1 = casestring_1; return kc_x; } fnarguments Nilfnarguments #ifdef KC_USE_PROTOTYPES () #else () #endif { static fnarguments kc_x = (fnarguments)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilfnarguments)); if (kc_x == (fnarguments)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilfnarguments )); kc_x = (fnarguments)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_fnarguments), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilfnarguments; } return kc_x; } fnarguments Consfnarguments #ifdef KC_USE_PROTOTYPES (ID ID_1, fnarguments fnarguments_1) #else (ID_1, fnarguments_1) ID ID_1; fnarguments fnarguments_1; #endif { register fnarguments kc_x = (fnarguments) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_fnarguments)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consfnarguments)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consfnarguments)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_fnarguments( fnarguments_1, "fnarguments_1" ); kc_x->prod_sel = sel_Consfnarguments; kc_x->u.Consfnarguments.ID_1 = ID_1; kc_x->u.Consfnarguments.fnarguments_1 = fnarguments_1; return kc_x; } Cvariabledeclarations NilCvariabledeclarations #ifdef KC_USE_PROTOTYPES () #else () #endif { static Cvariabledeclarations kc_x = (Cvariabledeclarations)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NilCvariabledeclarations)); if (kc_x == (Cvariabledeclarations)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NilCvariabledeclarations )); kc_x = (Cvariabledeclarations)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_Cvariabledeclarations), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_NilCvariabledeclarations; } return kc_x; } Cvariabledeclarations ConsCvariabledeclarations #ifdef KC_USE_PROTOTYPES (Cvariabledeclaration Cvariabledeclaration_1, Cvariabledeclarations Cvariabledeclarations_1) #else (Cvariabledeclaration_1, Cvariabledeclarations_1) Cvariabledeclaration Cvariabledeclaration_1; Cvariabledeclarations Cvariabledeclarations_1; #endif { register Cvariabledeclarations kc_x = (Cvariabledeclarations) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Cvariabledeclarations)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ConsCvariabledeclarations)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ConsCvariabledeclarations)); /*SUPPRESS 622*/ assert_Cvariabledeclaration( Cvariabledeclaration_1, "Cvariabledeclaration_1" ); /*SUPPRESS 622*/ assert_Cvariabledeclarations( Cvariabledeclarations_1, "Cvariabledeclarations_1" ); kc_x->prod_sel = sel_ConsCvariabledeclarations; kc_x->u.ConsCvariabledeclarations.Cvariabledeclaration_1 = Cvariabledeclaration_1; kc_x->u.ConsCvariabledeclarations.Cvariabledeclarations_1 = Cvariabledeclarations_1; return kc_x; } Cvariabledeclaration CVariabledeclaration #ifdef KC_USE_PROTOTYPES (ID ID_1, Cvariables Cvariables_1) #else (ID_1, Cvariables_1) ID ID_1; Cvariables Cvariables_1; #endif { register Cvariabledeclaration kc_x = (Cvariabledeclaration) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Cvariabledeclaration)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CVariabledeclaration)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CVariabledeclaration)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_Cvariables( Cvariables_1, "Cvariables_1" ); kc_x->prod_sel = sel_CVariabledeclaration; kc_x->u.CVariabledeclaration.ID_1 = ID_1; kc_x->u.CVariabledeclaration.Cvariables_1 = Cvariables_1; return kc_x; } Cvariabledeclaration Fnargfpdecl #ifdef KC_USE_PROTOTYPES (ID ID_1, Cvariables Cvariables_1) #else (ID_1, Cvariables_1) ID ID_1; Cvariables Cvariables_1; #endif { register Cvariabledeclaration kc_x = (Cvariabledeclaration) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Cvariabledeclaration)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Fnargfpdecl)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Fnargfpdecl)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_Cvariables( Cvariables_1, "Cvariables_1" ); kc_x->prod_sel = sel_Fnargfpdecl; kc_x->u.Fnargfpdecl.ID_1 = ID_1; kc_x->u.Fnargfpdecl.Cvariables_1 = Cvariables_1; return kc_x; } Cvariables NilCvariables #ifdef KC_USE_PROTOTYPES () #else () #endif { static Cvariables kc_x = (Cvariables)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NilCvariables)); if (kc_x == (Cvariables)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NilCvariables )); kc_x = (Cvariables)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_Cvariables), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_NilCvariables; } return kc_x; } Cvariables ConsCvariables #ifdef KC_USE_PROTOTYPES (Cvariable Cvariable_1, Cvariables Cvariables_1) #else (Cvariable_1, Cvariables_1) Cvariable Cvariable_1; Cvariables Cvariables_1; #endif { register Cvariables kc_x = (Cvariables) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Cvariables)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ConsCvariables)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ConsCvariables)); /*SUPPRESS 622*/ assert_Cvariable( Cvariable_1, "Cvariable_1" ); /*SUPPRESS 622*/ assert_Cvariables( Cvariables_1, "Cvariables_1" ); kc_x->prod_sel = sel_ConsCvariables; kc_x->u.ConsCvariables.Cvariable_1 = Cvariable_1; kc_x->u.ConsCvariables.Cvariables_1 = Cvariables_1; return kc_x; } Cvariable CVPointer #ifdef KC_USE_PROTOTYPES (int int_1, ID ID_1) #else (int_1, ID_1) int int_1; ID ID_1; #endif { register Cvariable kc_x = (Cvariable) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Cvariable)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CVPointer)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CVPointer)); /*SUPPRESS 622*/ assert_int( int_1, "int_1" ); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_CVPointer; kc_x->u.CVPointer.int_1 = int_1; kc_x->u.CVPointer.ID_1 = ID_1; return kc_x; } Cvariable CVFunction #ifdef KC_USE_PROTOTYPES (int int_1, int int_2, ID ID_1) #else (int_1, int_2, ID_1) int int_1; int int_2; ID ID_1; #endif { register Cvariable kc_x = (Cvariable) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Cvariable)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CVFunction)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CVFunction)); /*SUPPRESS 622*/ assert_int( int_1, "int_1" ); /*SUPPRESS 622*/ assert_int( int_2, "int_2" ); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_CVFunction; kc_x->u.CVFunction.int_1 = int_1; kc_x->u.CVFunction.int_2 = int_2; kc_x->u.CVFunction.ID_1 = ID_1; return kc_x; } Ctext NilCtext #ifdef KC_USE_PROTOTYPES () #else () #endif { register Ctext kc_x = (Ctext) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Ctext)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NilCtext)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NilCtext)); kc_x->prod_sel = sel_NilCtext; kc_x = kc_initialize_Ctext(kc_x); return kc_x; } Ctext ConsCtext #ifdef KC_USE_PROTOTYPES (Ctext_elem Ctext_elem_1, Ctext Ctext_1) #else (Ctext_elem_1, Ctext_1) Ctext_elem Ctext_elem_1; Ctext Ctext_1; #endif { register Ctext kc_x = (Ctext) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Ctext)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ConsCtext)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ConsCtext)); /*SUPPRESS 622*/ assert_Ctext_elem( Ctext_elem_1, "Ctext_elem_1" ); /*SUPPRESS 622*/ assert_Ctext( Ctext_1, "Ctext_1" ); kc_x->prod_sel = sel_ConsCtext; kc_x->u.ConsCtext.Ctext_elem_1 = Ctext_elem_1; kc_x->u.ConsCtext.Ctext_1 = Ctext_1; kc_x = kc_initialize_Ctext(kc_x); return kc_x; } Ctext_elem CTextLine #ifdef KC_USE_PROTOTYPES (casestring casestring_1) #else (casestring_1) casestring casestring_1; #endif { register Ctext_elem kc_x = (Ctext_elem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Ctext_elem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CTextLine)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CTextLine)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); kc_x->prod_sel = sel_CTextLine; kc_x->u.CTextLine.casestring_1 = casestring_1; kc_x = kc_initialize_Ctext_elem(kc_x); return kc_x; } Ctext_elem CTextDollarVar #ifdef KC_USE_PROTOTYPES (INT INT_1) #else (INT_1) INT INT_1; #endif { register Ctext_elem kc_x = (Ctext_elem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Ctext_elem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CTextDollarVar)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CTextDollarVar)); /*SUPPRESS 622*/ assert_INT( INT_1, "INT_1" ); kc_x->prod_sel = sel_CTextDollarVar; kc_x->u.CTextDollarVar.INT_1 = INT_1; kc_x = kc_initialize_Ctext_elem(kc_x); return kc_x; } Ctext_elem CTextNl #ifdef KC_USE_PROTOTYPES (int int_1) #else (int_1) int int_1; #endif { register Ctext_elem kc_x = (Ctext_elem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Ctext_elem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CTextNl)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CTextNl)); /*SUPPRESS 622*/ assert_int( int_1, "int_1" ); kc_x->prod_sel = sel_CTextNl; kc_x->u.CTextNl.int_1 = int_1; kc_x = kc_initialize_Ctext_elem(kc_x); return kc_x; } Ctext_elem CTextCexpressionDQ #ifdef KC_USE_PROTOTYPES (CexpressionDQ CexpressionDQ_1) #else (CexpressionDQ_1) CexpressionDQ CexpressionDQ_1; #endif { register Ctext_elem kc_x = (Ctext_elem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Ctext_elem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CTextCexpressionDQ)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CTextCexpressionDQ)); /*SUPPRESS 622*/ assert_CexpressionDQ( CexpressionDQ_1, "CexpressionDQ_1" ); kc_x->prod_sel = sel_CTextCexpressionDQ; kc_x->u.CTextCexpressionDQ.CexpressionDQ_1 = CexpressionDQ_1; kc_x = kc_initialize_Ctext_elem(kc_x); return kc_x; } Ctext_elem CTextCexpressionSQ #ifdef KC_USE_PROTOTYPES (CexpressionSQ CexpressionSQ_1) #else (CexpressionSQ_1) CexpressionSQ CexpressionSQ_1; #endif { register Ctext_elem kc_x = (Ctext_elem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Ctext_elem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CTextCexpressionSQ)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CTextCexpressionSQ)); /*SUPPRESS 622*/ assert_CexpressionSQ( CexpressionSQ_1, "CexpressionSQ_1" ); kc_x->prod_sel = sel_CTextCexpressionSQ; kc_x->u.CTextCexpressionSQ.CexpressionSQ_1 = CexpressionSQ_1; kc_x = kc_initialize_Ctext_elem(kc_x); return kc_x; } Ctext_elem CTextCbody #ifdef KC_USE_PROTOTYPES (Ctext Ctext_1) #else (Ctext_1) Ctext Ctext_1; #endif { register Ctext_elem kc_x = (Ctext_elem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Ctext_elem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CTextCbody)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CTextCbody)); /*SUPPRESS 622*/ assert_Ctext( Ctext_1, "Ctext_1" ); kc_x->prod_sel = sel_CTextCbody; kc_x->u.CTextCbody.Ctext_1 = Ctext_1; kc_x = kc_initialize_Ctext_elem(kc_x); return kc_x; } Ctext_elem CTextForeachexpression #ifdef KC_USE_PROTOTYPES (patternchain patternchain_1, idCexpressions idCexpressions_1, withexpressions withexpressions_1, Ctext Ctext_1, foreach_after foreach_after_1) #else (patternchain_1, idCexpressions_1, withexpressions_1, Ctext_1, foreach_after_1) patternchain patternchain_1; idCexpressions idCexpressions_1; withexpressions withexpressions_1; Ctext Ctext_1; foreach_after foreach_after_1; #endif { register Ctext_elem kc_x = (Ctext_elem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Ctext_elem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CTextForeachexpression)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CTextForeachexpression)); /*SUPPRESS 622*/ assert_patternchain( patternchain_1, "patternchain_1" ); /*SUPPRESS 622*/ assert_idCexpressions( idCexpressions_1, "idCexpressions_1" ); /*SUPPRESS 622*/ assert_withexpressions( withexpressions_1, "withexpressions_1" ); /*SUPPRESS 622*/ assert_Ctext( Ctext_1, "Ctext_1" ); /*SUPPRESS 622*/ assert_foreach_after( foreach_after_1, "foreach_after_1" ); kc_x->prod_sel = sel_CTextForeachexpression; kc_x->u.CTextForeachexpression.patternchain_1 = patternchain_1; kc_x->u.CTextForeachexpression.idCexpressions_1 = idCexpressions_1; kc_x->u.CTextForeachexpression.withexpressions_1 = withexpressions_1; kc_x->u.CTextForeachexpression.Ctext_1 = Ctext_1; kc_x->u.CTextForeachexpression.foreach_after_1 = foreach_after_1; kc_x = kc_initialize_Ctext_elem(kc_x); return kc_x; } Ctext_elem CTextWithexpression #ifdef KC_USE_PROTOTYPES (withexpressions withexpressions_1, withcases withcases_1, contextinfo contextinfo_1) #else (withexpressions_1, withcases_1, contextinfo_1) withexpressions withexpressions_1; withcases withcases_1; contextinfo contextinfo_1; #endif { register Ctext_elem kc_x = (Ctext_elem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_Ctext_elem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CTextWithexpression)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CTextWithexpression)); /*SUPPRESS 622*/ assert_withexpressions( withexpressions_1, "withexpressions_1" ); /*SUPPRESS 622*/ assert_withcases( withcases_1, "withcases_1" ); /*SUPPRESS 622*/ assert_contextinfo( contextinfo_1, "contextinfo_1" ); kc_x->prod_sel = sel_CTextWithexpression; kc_x->u.CTextWithexpression.withexpressions_1 = withexpressions_1; kc_x->u.CTextWithexpression.withcases_1 = withcases_1; kc_x->u.CTextWithexpression.contextinfo_1 = contextinfo_1; kc_x = kc_initialize_Ctext_elem(kc_x); return kc_x; } foreach_after NoForeachAfter #ifdef KC_USE_PROTOTYPES () #else () #endif { register foreach_after kc_x = (foreach_after) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_foreach_after)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NoForeachAfter)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NoForeachAfter)); kc_x->prod_sel = sel_NoForeachAfter; kc_x = kc_initialize_foreach_after(kc_x); return kc_x; } foreach_after ForeachAfter #ifdef KC_USE_PROTOTYPES (patternchain patternchain_1, idCexpressions idCexpressions_1, withexpressions withexpressions_1, Ctext Ctext_1) #else (patternchain_1, idCexpressions_1, withexpressions_1, Ctext_1) patternchain patternchain_1; idCexpressions idCexpressions_1; withexpressions withexpressions_1; Ctext Ctext_1; #endif { register foreach_after kc_x = (foreach_after) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_foreach_after)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ForeachAfter)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ForeachAfter)); /*SUPPRESS 622*/ assert_patternchain( patternchain_1, "patternchain_1" ); /*SUPPRESS 622*/ assert_idCexpressions( idCexpressions_1, "idCexpressions_1" ); /*SUPPRESS 622*/ assert_withexpressions( withexpressions_1, "withexpressions_1" ); /*SUPPRESS 622*/ assert_Ctext( Ctext_1, "Ctext_1" ); kc_x->prod_sel = sel_ForeachAfter; kc_x->u.ForeachAfter.patternchain_1 = patternchain_1; kc_x->u.ForeachAfter.idCexpressions_1 = idCexpressions_1; kc_x->u.ForeachAfter.withexpressions_1 = withexpressions_1; kc_x->u.ForeachAfter.Ctext_1 = Ctext_1; kc_x = kc_initialize_foreach_after(kc_x); return kc_x; } contextinfo InForeachContext #ifdef KC_USE_PROTOTYPES (patternchain patternchain_1) #else (patternchain_1) patternchain patternchain_1; #endif { register contextinfo kc_x = (contextinfo) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_contextinfo)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_InForeachContext)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_InForeachContext)); /*SUPPRESS 622*/ assert_patternchain( patternchain_1, "patternchain_1" ); kc_x->prod_sel = sel_InForeachContext; kc_x->u.InForeachContext.patternchain_1 = patternchain_1; return kc_x; } contextinfo NotInForeachContext #ifdef KC_USE_PROTOTYPES () #else () #endif { static contextinfo kc_x = (contextinfo)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NotInForeachContext)); if (kc_x == (contextinfo)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NotInForeachContext )); kc_x = (contextinfo)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_contextinfo), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_NotInForeachContext; } return kc_x; } withexpressions Nilwithexpressions #ifdef KC_USE_PROTOTYPES () #else () #endif { register withexpressions kc_x = (withexpressions) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_withexpressions)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilwithexpressions)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilwithexpressions)); kc_x->prod_sel = sel_Nilwithexpressions; kc_x = kc_initialize_withexpressions(kc_x); return kc_x; } withexpressions Conswithexpressions #ifdef KC_USE_PROTOTYPES (withexpression withexpression_1, withexpressions withexpressions_1) #else (withexpression_1, withexpressions_1) withexpression withexpression_1; withexpressions withexpressions_1; #endif { register withexpressions kc_x = (withexpressions) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_withexpressions)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conswithexpressions)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conswithexpressions)); /*SUPPRESS 622*/ assert_withexpression( withexpression_1, "withexpression_1" ); /*SUPPRESS 622*/ assert_withexpressions( withexpressions_1, "withexpressions_1" ); kc_x->prod_sel = sel_Conswithexpressions; kc_x->u.Conswithexpressions.withexpression_1 = withexpression_1; kc_x->u.Conswithexpressions.withexpressions_1 = withexpressions_1; kc_x = kc_initialize_withexpressions(kc_x); return kc_x; } withexpression WEVariable #ifdef KC_USE_PROTOTYPES (ID ID_1) #else (ID_1) ID ID_1; #endif { register withexpression kc_x = (withexpression) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_withexpression)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_WEVariable)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_WEVariable)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_WEVariable; kc_x->u.WEVariable.ID_1 = ID_1; kc_x = kc_initialize_withexpression(kc_x); return kc_x; } withexpression WECexpression #ifdef KC_USE_PROTOTYPES (Cexpression Cexpression_1) #else (Cexpression_1) Cexpression Cexpression_1; #endif { register withexpression kc_x = (withexpression) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_withexpression)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_WECexpression)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_WECexpression)); /*SUPPRESS 622*/ assert_Cexpression( Cexpression_1, "Cexpression_1" ); kc_x->prod_sel = sel_WECexpression; kc_x->u.WECexpression.Cexpression_1 = Cexpression_1; kc_x = kc_initialize_withexpression(kc_x); return kc_x; } withcases Nilwithcases #ifdef KC_USE_PROTOTYPES () #else () #endif { register withcases kc_x = (withcases) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_withcases)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilwithcases)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilwithcases)); kc_x->prod_sel = sel_Nilwithcases; return kc_x; } withcases Conswithcases #ifdef KC_USE_PROTOTYPES (withcase withcase_1, withcases withcases_1) #else (withcase_1, withcases_1) withcase withcase_1; withcases withcases_1; #endif { register withcases kc_x = (withcases) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_withcases)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conswithcases)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conswithcases)); /*SUPPRESS 622*/ assert_withcase( withcase_1, "withcase_1" ); /*SUPPRESS 622*/ assert_withcases( withcases_1, "withcases_1" ); kc_x->prod_sel = sel_Conswithcases; kc_x->u.Conswithcases.withcase_1 = withcase_1; kc_x->u.Conswithcases.withcases_1 = withcases_1; return kc_x; } withcase Withcase #ifdef KC_USE_PROTOTYPES (patternchains patternchains_1, Ctext Ctext_1) #else (patternchains_1, Ctext_1) patternchains patternchains_1; Ctext Ctext_1; #endif { register withcase kc_x = (withcase) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_withcase)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Withcase)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Withcase)); /*SUPPRESS 622*/ assert_patternchains( patternchains_1, "patternchains_1" ); /*SUPPRESS 622*/ assert_Ctext( Ctext_1, "Ctext_1" ); kc_x->prod_sel = sel_Withcase; kc_x->u.Withcase.patternchains_1 = patternchains_1; kc_x->u.Withcase.Ctext_1 = Ctext_1; return kc_x; } unparsedeclarations Nilunparsedeclarations #ifdef KC_USE_PROTOTYPES () #else () #endif { static unparsedeclarations kc_x = (unparsedeclarations)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilunparsedeclarations)); if (kc_x == (unparsedeclarations)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilunparsedeclarations )); kc_x = (unparsedeclarations)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_unparsedeclarations), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilunparsedeclarations; } return kc_x; } unparsedeclarations Consunparsedeclarations #ifdef KC_USE_PROTOTYPES (unparsedeclaration unparsedeclaration_1, unparsedeclarations unparsedeclarations_1) #else (unparsedeclaration_1, unparsedeclarations_1) unparsedeclaration unparsedeclaration_1; unparsedeclarations unparsedeclarations_1; #endif { register unparsedeclarations kc_x = (unparsedeclarations) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_unparsedeclarations)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consunparsedeclarations)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consunparsedeclarations)); /*SUPPRESS 622*/ assert_unparsedeclaration( unparsedeclaration_1, "unparsedeclaration_1" ); /*SUPPRESS 622*/ assert_unparsedeclarations( unparsedeclarations_1, "unparsedeclarations_1" ); kc_x->prod_sel = sel_Consunparsedeclarations; kc_x->u.Consunparsedeclarations.unparsedeclaration_1 = unparsedeclaration_1; kc_x->u.Consunparsedeclarations.unparsedeclarations_1 = unparsedeclarations_1; return kc_x; } unparsedeclaration UnparseDeclaration #ifdef KC_USE_PROTOTYPES (outmostpatterns outmostpatterns_1, unparseclauses unparseclauses_1) #else (outmostpatterns_1, unparseclauses_1) outmostpatterns outmostpatterns_1; unparseclauses unparseclauses_1; #endif { register unparsedeclaration kc_x = (unparsedeclaration) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_unparsedeclaration)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnparseDeclaration)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnparseDeclaration)); /*SUPPRESS 622*/ assert_outmostpatterns( outmostpatterns_1, "outmostpatterns_1" ); /*SUPPRESS 622*/ assert_unparseclauses( unparseclauses_1, "unparseclauses_1" ); kc_x->prod_sel = sel_UnparseDeclaration; kc_x->u.UnparseDeclaration.outmostpatterns_1 = outmostpatterns_1; kc_x->u.UnparseDeclaration.unparseclauses_1 = unparseclauses_1; return kc_x; } unparseclauses Nilunparseclauses #ifdef KC_USE_PROTOTYPES () #else () #endif { static unparseclauses kc_x = (unparseclauses)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilunparseclauses)); if (kc_x == (unparseclauses)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilunparseclauses )); kc_x = (unparseclauses)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_unparseclauses), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilunparseclauses; } return kc_x; } unparseclauses Consunparseclauses #ifdef KC_USE_PROTOTYPES (unparseclause unparseclause_1, unparseclauses unparseclauses_1) #else (unparseclause_1, unparseclauses_1) unparseclause unparseclause_1; unparseclauses unparseclauses_1; #endif { register unparseclauses kc_x = (unparseclauses) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_unparseclauses)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consunparseclauses)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consunparseclauses)); /*SUPPRESS 622*/ assert_unparseclause( unparseclause_1, "unparseclause_1" ); /*SUPPRESS 622*/ assert_unparseclauses( unparseclauses_1, "unparseclauses_1" ); kc_x->prod_sel = sel_Consunparseclauses; kc_x->u.Consunparseclauses.unparseclause_1 = unparseclause_1; kc_x->u.Consunparseclauses.unparseclauses_1 = unparseclauses_1; return kc_x; } unparseclause UnparseClause #ifdef KC_USE_PROTOTYPES (viewnames viewnames_1, unparseitems unparseitems_1) #else (viewnames_1, unparseitems_1) viewnames viewnames_1; unparseitems unparseitems_1; #endif { register unparseclause kc_x = (unparseclause) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_unparseclause)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnparseClause)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnparseClause)); /*SUPPRESS 622*/ assert_viewnames( viewnames_1, "viewnames_1" ); /*SUPPRESS 622*/ assert_unparseitems( unparseitems_1, "unparseitems_1" ); kc_x->prod_sel = sel_UnparseClause; kc_x->u.UnparseClause.viewnames_1 = viewnames_1; kc_x->u.UnparseClause.unparseitems_1 = unparseitems_1; return kc_x; } viewnames Nilviewnames #ifdef KC_USE_PROTOTYPES () #else () #endif { static viewnames kc_x = (viewnames)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilviewnames)); if (kc_x == (viewnames)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilviewnames )); kc_x = (viewnames)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_viewnames), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilviewnames; } return kc_x; } viewnames Consviewnames #ifdef KC_USE_PROTOTYPES (ID ID_1, viewnames viewnames_1) #else (ID_1, viewnames_1) ID ID_1; viewnames viewnames_1; #endif { register viewnames kc_x = (viewnames) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_viewnames)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consviewnames)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consviewnames)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_viewnames( viewnames_1, "viewnames_1" ); kc_x->prod_sel = sel_Consviewnames; kc_x->u.Consviewnames.ID_1 = ID_1; kc_x->u.Consviewnames.viewnames_1 = viewnames_1; return kc_x; } unparseitems Nilunparseitems #ifdef KC_USE_PROTOTYPES () #else () #endif { static unparseitems kc_x = (unparseitems)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilunparseitems)); if (kc_x == (unparseitems)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilunparseitems )); kc_x = (unparseitems)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_unparseitems), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilunparseitems; } return kc_x; } unparseitems Consunparseitems #ifdef KC_USE_PROTOTYPES (unparseitem unparseitem_1, unparseitems unparseitems_1) #else (unparseitem_1, unparseitems_1) unparseitem unparseitem_1; unparseitems unparseitems_1; #endif { register unparseitems kc_x = (unparseitems) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_unparseitems)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consunparseitems)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consunparseitems)); /*SUPPRESS 622*/ assert_unparseitem( unparseitem_1, "unparseitem_1" ); /*SUPPRESS 622*/ assert_unparseitems( unparseitems_1, "unparseitems_1" ); kc_x->prod_sel = sel_Consunparseitems; kc_x->u.Consunparseitems.unparseitem_1 = unparseitem_1; kc_x->u.Consunparseitems.unparseitems_1 = unparseitems_1; return kc_x; } unparseitem UnpStr #ifdef KC_USE_PROTOTYPES (CexpressionDQ CexpressionDQ_1, viewnameoption viewnameoption_1) #else (CexpressionDQ_1, viewnameoption_1) CexpressionDQ CexpressionDQ_1; viewnameoption viewnameoption_1; #endif { register unparseitem kc_x = (unparseitem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_unparseitem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnpStr)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnpStr)); /*SUPPRESS 622*/ assert_CexpressionDQ( CexpressionDQ_1, "CexpressionDQ_1" ); /*SUPPRESS 622*/ assert_viewnameoption( viewnameoption_1, "viewnameoption_1" ); kc_x->prod_sel = sel_UnpStr; kc_x->u.UnpStr.CexpressionDQ_1 = CexpressionDQ_1; kc_x->u.UnpStr.viewnameoption_1 = viewnameoption_1; return kc_x; } unparseitem UnpSubexpr #ifdef KC_USE_PROTOTYPES (unpsubterm unpsubterm_1, viewnameoption viewnameoption_1) #else (unpsubterm_1, viewnameoption_1) unpsubterm unpsubterm_1; viewnameoption viewnameoption_1; #endif { register unparseitem kc_x = (unparseitem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_unparseitem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnpSubexpr)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnpSubexpr)); /*SUPPRESS 622*/ assert_unpsubterm( unpsubterm_1, "unpsubterm_1" ); /*SUPPRESS 622*/ assert_viewnameoption( viewnameoption_1, "viewnameoption_1" ); kc_x->prod_sel = sel_UnpSubexpr; kc_x->u.UnpSubexpr.unpsubterm_1 = unpsubterm_1; kc_x->u.UnpSubexpr.viewnameoption_1 = viewnameoption_1; return kc_x; } unparseitem UnpCtext #ifdef KC_USE_PROTOTYPES (Ctext Ctext_1) #else (Ctext_1) Ctext Ctext_1; #endif { register unparseitem kc_x = (unparseitem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_unparseitem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnpCtext)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnpCtext)); /*SUPPRESS 622*/ assert_Ctext( Ctext_1, "Ctext_1" ); kc_x->prod_sel = sel_UnpCtext; kc_x->u.UnpCtext.Ctext_1 = Ctext_1; return kc_x; } unparseitem UnpBody #ifdef KC_USE_PROTOTYPES (unparseitems unparseitems_1) #else (unparseitems_1) unparseitems unparseitems_1; #endif { register unparseitem kc_x = (unparseitem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_unparseitem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnpBody)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnpBody)); /*SUPPRESS 622*/ assert_unparseitems( unparseitems_1, "unparseitems_1" ); kc_x->prod_sel = sel_UnpBody; kc_x->u.UnpBody.unparseitems_1 = unparseitems_1; return kc_x; } unpsubterm UnpSubTerm #ifdef KC_USE_PROTOTYPES (ID ID_1) #else (ID_1) ID ID_1; #endif { register unpsubterm kc_x = (unpsubterm) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_unpsubterm)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnpSubTerm)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnpSubTerm)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_UnpSubTerm; kc_x->u.UnpSubTerm.ID_1 = ID_1; return kc_x; } unpsubterm UnpDollarvarTerm #ifdef KC_USE_PROTOTYPES (INT INT_1) #else (INT_1) INT INT_1; #endif { register unpsubterm kc_x = (unpsubterm) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_unpsubterm)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnpDollarvarTerm)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnpDollarvarTerm)); /*SUPPRESS 622*/ assert_INT( INT_1, "INT_1" ); kc_x->prod_sel = sel_UnpDollarvarTerm; kc_x->u.UnpDollarvarTerm.INT_1 = INT_1; return kc_x; } unpsubterm UnpSubAttr #ifdef KC_USE_PROTOTYPES (ID ID_1, unpattributes unpattributes_1) #else (ID_1, unpattributes_1) ID ID_1; unpattributes unpattributes_1; #endif { register unpsubterm kc_x = (unpsubterm) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_unpsubterm)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnpSubAttr)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnpSubAttr)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_unpattributes( unpattributes_1, "unpattributes_1" ); kc_x->prod_sel = sel_UnpSubAttr; kc_x->u.UnpSubAttr.ID_1 = ID_1; kc_x->u.UnpSubAttr.unpattributes_1 = unpattributes_1; return kc_x; } unpsubterm UnpDollarvarAttr #ifdef KC_USE_PROTOTYPES (INT INT_1, unpattributes unpattributes_1) #else (INT_1, unpattributes_1) INT INT_1; unpattributes unpattributes_1; #endif { register unpsubterm kc_x = (unpsubterm) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_unpsubterm)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnpDollarvarAttr)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnpDollarvarAttr)); /*SUPPRESS 622*/ assert_INT( INT_1, "INT_1" ); /*SUPPRESS 622*/ assert_unpattributes( unpattributes_1, "unpattributes_1" ); kc_x->prod_sel = sel_UnpDollarvarAttr; kc_x->u.UnpDollarvarAttr.INT_1 = INT_1; kc_x->u.UnpDollarvarAttr.unpattributes_1 = unpattributes_1; return kc_x; } unpsubterm UnpCastedVariable #ifdef KC_USE_PROTOTYPES (ID ID_1, ID ID_2) #else (ID_1, ID_2) ID ID_1; ID ID_2; #endif { register unpsubterm kc_x = (unpsubterm) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_unpsubterm)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_UnpCastedVariable)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_UnpCastedVariable)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_ID( ID_2, "ID_2" ); kc_x->prod_sel = sel_UnpCastedVariable; kc_x->u.UnpCastedVariable.ID_1 = ID_1; kc_x->u.UnpCastedVariable.ID_2 = ID_2; return kc_x; } unpattributes Nilunpattributes #ifdef KC_USE_PROTOTYPES () #else () #endif { static unpattributes kc_x = (unpattributes)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilunpattributes)); if (kc_x == (unpattributes)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilunpattributes )); kc_x = (unpattributes)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_unpattributes), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilunpattributes; } return kc_x; } unpattributes Consunpattributes #ifdef KC_USE_PROTOTYPES (ID ID_1, unpattributes unpattributes_1) #else (ID_1, unpattributes_1) ID ID_1; unpattributes unpattributes_1; #endif { register unpattributes kc_x = (unpattributes) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_unpattributes)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consunpattributes)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consunpattributes)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_unpattributes( unpattributes_1, "unpattributes_1" ); kc_x->prod_sel = sel_Consunpattributes; kc_x->u.Consunpattributes.ID_1 = ID_1; kc_x->u.Consunpattributes.unpattributes_1 = unpattributes_1; return kc_x; } viewnameoption NoViewname #ifdef KC_USE_PROTOTYPES () #else () #endif { static viewnameoption kc_x = (viewnameoption)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NoViewname)); if (kc_x == (viewnameoption)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NoViewname )); kc_x = (viewnameoption)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_viewnameoption), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_NoViewname; } return kc_x; } viewnameoption YesViewname #ifdef KC_USE_PROTOTYPES (ID ID_1) #else (ID_1) ID ID_1; #endif { register viewnameoption kc_x = (viewnameoption) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_viewnameoption)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_YesViewname)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_YesViewname)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_YesViewname; kc_x->u.YesViewname.ID_1 = ID_1; return kc_x; } filelinestack Nilfilelinestack #ifdef KC_USE_PROTOTYPES () #else () #endif { static filelinestack kc_x = (filelinestack)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilfilelinestack)); if (kc_x == (filelinestack)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilfilelinestack )); kc_x = (filelinestack)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_filelinestack), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilfilelinestack; } return kc_x; } filelinestack Consfilelinestack #ifdef KC_USE_PROTOTYPES (fileline fileline_1, filelinestack filelinestack_1) #else (fileline_1, filelinestack_1) fileline fileline_1; filelinestack filelinestack_1; #endif { register filelinestack kc_x = (filelinestack) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_filelinestack)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consfilelinestack)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consfilelinestack)); /*SUPPRESS 622*/ assert_fileline( fileline_1, "fileline_1" ); /*SUPPRESS 622*/ assert_filelinestack( filelinestack_1, "filelinestack_1" ); kc_x->prod_sel = sel_Consfilelinestack; kc_x->u.Consfilelinestack.fileline_1 = fileline_1; kc_x->u.Consfilelinestack.filelinestack_1 = filelinestack_1; return kc_x; } fileline FileLine #ifdef KC_USE_PROTOTYPES (casestring casestring_1, int int_1) #else (casestring_1, int_1) casestring casestring_1; int int_1; #endif { register fileline kc_x = (fileline) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_fileline)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_FileLine)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_FileLine)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); /*SUPPRESS 622*/ assert_int( int_1, "int_1" ); kc_x->prod_sel = sel_FileLine; kc_x->u.FileLine.casestring_1 = casestring_1; kc_x->u.FileLine.int_1 = int_1; return kc_x; } fileline NoFileLine #ifdef KC_USE_PROTOTYPES () #else () #endif { static fileline kc_x = (fileline)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NoFileLine)); if (kc_x == (fileline)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NoFileLine )); kc_x = (fileline)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_fileline), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_NoFileLine; } return kc_x; } fileline PosNoFileLine #ifdef KC_USE_PROTOTYPES () #else () #endif { static fileline kc_x = (fileline)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PosNoFileLine)); if (kc_x == (fileline)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PosNoFileLine )); kc_x = (fileline)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_fileline), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_PosNoFileLine; } return kc_x; } nooperatorsstack Nilnooperatorsstack #ifdef KC_USE_PROTOTYPES () #else () #endif { static nooperatorsstack kc_x = (nooperatorsstack)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilnooperatorsstack)); if (kc_x == (nooperatorsstack)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilnooperatorsstack )); kc_x = (nooperatorsstack)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_nooperatorsstack), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilnooperatorsstack; } return kc_x; } nooperatorsstack Consnooperatorsstack #ifdef KC_USE_PROTOTYPES (int int_1, nooperatorsstack nooperatorsstack_1) #else (int_1, nooperatorsstack_1) int int_1; nooperatorsstack nooperatorsstack_1; #endif { register nooperatorsstack kc_x = (nooperatorsstack) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_nooperatorsstack)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consnooperatorsstack)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consnooperatorsstack)); /*SUPPRESS 622*/ assert_int( int_1, "int_1" ); /*SUPPRESS 622*/ assert_nooperatorsstack( nooperatorsstack_1, "nooperatorsstack_1" ); kc_x->prod_sel = sel_Consnooperatorsstack; kc_x->u.Consnooperatorsstack.int_1 = int_1; kc_x->u.Consnooperatorsstack.nooperatorsstack_1 = nooperatorsstack_1; return kc_x; } scopetypefilelinestack Nilscopetypefilelinestack #ifdef KC_USE_PROTOTYPES () #else () #endif { static scopetypefilelinestack kc_x = (scopetypefilelinestack)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilscopetypefilelinestack)); if (kc_x == (scopetypefilelinestack)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilscopetypefilelinestack )); kc_x = (scopetypefilelinestack)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_scopetypefilelinestack), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilscopetypefilelinestack; } return kc_x; } scopetypefilelinestack Consscopetypefilelinestack #ifdef KC_USE_PROTOTYPES (scopetypefileline scopetypefileline_1, scopetypefilelinestack scopetypefilelinestack_1) #else (scopetypefileline_1, scopetypefilelinestack_1) scopetypefileline scopetypefileline_1; scopetypefilelinestack scopetypefilelinestack_1; #endif { register scopetypefilelinestack kc_x = (scopetypefilelinestack) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_scopetypefilelinestack)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consscopetypefilelinestack)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consscopetypefilelinestack)); /*SUPPRESS 622*/ assert_scopetypefileline( scopetypefileline_1, "scopetypefileline_1" ); /*SUPPRESS 622*/ assert_scopetypefilelinestack( scopetypefilelinestack_1, "scopetypefilelinestack_1" ); kc_x->prod_sel = sel_Consscopetypefilelinestack; kc_x->u.Consscopetypefilelinestack.scopetypefileline_1 = scopetypefileline_1; kc_x->u.Consscopetypefilelinestack.scopetypefilelinestack_1 = scopetypefilelinestack_1; return kc_x; } scopetypefileline ScopeTypeFileLine #ifdef KC_USE_PROTOTYPES (int int_1, IDtype IDtype_1, casestring casestring_1, int int_2) #else (int_1, IDtype_1, casestring_1, int_2) int int_1; IDtype IDtype_1; casestring casestring_1; int int_2; #endif { register scopetypefileline kc_x = (scopetypefileline) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_scopetypefileline)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ScopeTypeFileLine)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ScopeTypeFileLine)); /*SUPPRESS 622*/ assert_int( int_1, "int_1" ); /*SUPPRESS 622*/ assert_IDtype( IDtype_1, "IDtype_1" ); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); /*SUPPRESS 622*/ assert_int( int_2, "int_2" ); kc_x->prod_sel = sel_ScopeTypeFileLine; kc_x->u.ScopeTypeFileLine.int_1 = int_1; kc_x->u.ScopeTypeFileLine.IDtype_1 = IDtype_1; kc_x->u.ScopeTypeFileLine.casestring_1 = casestring_1; kc_x->u.ScopeTypeFileLine.int_2 = int_2; return kc_x; } IDtype ITUnknown #ifdef KC_USE_PROTOTYPES () #else () #endif { static IDtype kc_x = (IDtype)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITUnknown)); if (kc_x == (IDtype)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITUnknown )); kc_x = (IDtype)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_IDtype), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_ITUnknown; } kc_x = kc_initialize_IDtype(kc_x); return kc_x; } IDtype ITPredefinedPhylum #ifdef KC_USE_PROTOTYPES (phylumdeclaration phylumdeclaration_1) #else (phylumdeclaration_1) phylumdeclaration phylumdeclaration_1; #endif { register IDtype kc_x = (IDtype) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_IDtype)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITPredefinedPhylum)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITPredefinedPhylum)); /*SUPPRESS 622*/ assert_phylumdeclaration( phylumdeclaration_1, "phylumdeclaration_1" ); kc_x->prod_sel = sel_ITPredefinedPhylum; kc_x->u.ITPredefinedPhylum.phylumdeclaration_1 = phylumdeclaration_1; kc_x = kc_initialize_IDtype(kc_x); return kc_x; } IDtype ITPredefinedBigatomPhylum #ifdef KC_USE_PROTOTYPES (phylumdeclaration phylumdeclaration_1) #else (phylumdeclaration_1) phylumdeclaration phylumdeclaration_1; #endif { register IDtype kc_x = (IDtype) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_IDtype)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITPredefinedBigatomPhylum)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITPredefinedBigatomPhylum)); /*SUPPRESS 622*/ assert_phylumdeclaration( phylumdeclaration_1, "phylumdeclaration_1" ); kc_x->prod_sel = sel_ITPredefinedBigatomPhylum; kc_x->u.ITPredefinedBigatomPhylum.phylumdeclaration_1 = phylumdeclaration_1; kc_x = kc_initialize_IDtype(kc_x); return kc_x; } IDtype ITUserPhylum #ifdef KC_USE_PROTOTYPES (phylumdeclaration phylumdeclaration_1) #else (phylumdeclaration_1) phylumdeclaration phylumdeclaration_1; #endif { register IDtype kc_x = (IDtype) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_IDtype)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITUserPhylum)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITUserPhylum)); /*SUPPRESS 622*/ assert_phylumdeclaration( phylumdeclaration_1, "phylumdeclaration_1" ); kc_x->prod_sel = sel_ITUserPhylum; kc_x->u.ITUserPhylum.phylumdeclaration_1 = phylumdeclaration_1; kc_x = kc_initialize_IDtype(kc_x); return kc_x; } IDtype ITPredefinedOperator #ifdef KC_USE_PROTOTYPES (alternative alternative_1, ID ID_1) #else (alternative_1, ID_1) alternative alternative_1; ID ID_1; #endif { register IDtype kc_x = (IDtype) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_IDtype)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITPredefinedOperator)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITPredefinedOperator)); /*SUPPRESS 622*/ assert_alternative( alternative_1, "alternative_1" ); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_ITPredefinedOperator; kc_x->u.ITPredefinedOperator.alternative_1 = alternative_1; kc_x->u.ITPredefinedOperator.ID_1 = ID_1; kc_x = kc_initialize_IDtype(kc_x); return kc_x; } IDtype ITUserOperator #ifdef KC_USE_PROTOTYPES (alternative alternative_1, ID ID_1) #else (alternative_1, ID_1) alternative alternative_1; ID ID_1; #endif { register IDtype kc_x = (IDtype) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_IDtype)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITUserOperator)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITUserOperator)); /*SUPPRESS 622*/ assert_alternative( alternative_1, "alternative_1" ); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_ITUserOperator; kc_x->u.ITUserOperator.alternative_1 = alternative_1; kc_x->u.ITUserOperator.ID_1 = ID_1; kc_x = kc_initialize_IDtype(kc_x); return kc_x; } IDtype ITPredefinedStorageClass #ifdef KC_USE_PROTOTYPES () #else () #endif { static IDtype kc_x = (IDtype)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITPredefinedStorageClass)); if (kc_x == (IDtype)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITPredefinedStorageClass )); kc_x = (IDtype)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_IDtype), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_ITPredefinedStorageClass; } kc_x = kc_initialize_IDtype(kc_x); return kc_x; } IDtype ITStorageClass #ifdef KC_USE_PROTOTYPES () #else () #endif { static IDtype kc_x = (IDtype)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITStorageClass)); if (kc_x == (IDtype)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITStorageClass )); kc_x = (IDtype)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_IDtype), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_ITStorageClass; } kc_x = kc_initialize_IDtype(kc_x); return kc_x; } IDtype ITPredefinedUView #ifdef KC_USE_PROTOTYPES () #else () #endif { static IDtype kc_x = (IDtype)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITPredefinedUView)); if (kc_x == (IDtype)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITPredefinedUView )); kc_x = (IDtype)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_IDtype), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_ITPredefinedUView; } kc_x = kc_initialize_IDtype(kc_x); return kc_x; } IDtype ITUserUView #ifdef KC_USE_PROTOTYPES () #else () #endif { static IDtype kc_x = (IDtype)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITUserUView)); if (kc_x == (IDtype)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITUserUView )); kc_x = (IDtype)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_IDtype), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_ITUserUView; } kc_x = kc_initialize_IDtype(kc_x); return kc_x; } IDtype ITPredefinedRView #ifdef KC_USE_PROTOTYPES () #else () #endif { static IDtype kc_x = (IDtype)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITPredefinedRView)); if (kc_x == (IDtype)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITPredefinedRView )); kc_x = (IDtype)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_IDtype), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_ITPredefinedRView; } kc_x = kc_initialize_IDtype(kc_x); return kc_x; } IDtype ITUserRView #ifdef KC_USE_PROTOTYPES () #else () #endif { static IDtype kc_x = (IDtype)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITUserRView)); if (kc_x == (IDtype)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITUserRView )); kc_x = (IDtype)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_IDtype), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_ITUserRView; } kc_x = kc_initialize_IDtype(kc_x); return kc_x; } IDtype ITUserFunction #ifdef KC_USE_PROTOTYPES (fnclass fnclass_1) #else (fnclass_1) fnclass fnclass_1; #endif { register IDtype kc_x = (IDtype) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_IDtype)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITUserFunction)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITUserFunction)); /*SUPPRESS 622*/ assert_fnclass( fnclass_1, "fnclass_1" ); kc_x->prod_sel = sel_ITUserFunction; kc_x->u.ITUserFunction.fnclass_1 = fnclass_1; kc_x = kc_initialize_IDtype(kc_x); return kc_x; } IDtype ITPatternVariable #ifdef KC_USE_PROTOTYPES (ID ID_1, int int_1) #else (ID_1, int_1) ID ID_1; int int_1; #endif { register IDtype kc_x = (IDtype) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_IDtype)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ITPatternVariable)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ITPatternVariable)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_int( int_1, "int_1" ); kc_x->prod_sel = sel_ITPatternVariable; kc_x->u.ITPatternVariable.ID_1 = ID_1; kc_x->u.ITPatternVariable.int_1 = int_1; kc_x = kc_initialize_IDtype(kc_x); return kc_x; } operatorsstack Niloperatorsstack #ifdef KC_USE_PROTOTYPES () #else () #endif { static operatorsstack kc_x = (operatorsstack)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Niloperatorsstack)); if (kc_x == (operatorsstack)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Niloperatorsstack )); kc_x = (operatorsstack)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_operatorsstack), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Niloperatorsstack; } return kc_x; } operatorsstack Consoperatorsstack #ifdef KC_USE_PROTOTYPES (operators operators_1, operatorsstack operatorsstack_1) #else (operators_1, operatorsstack_1) operators operators_1; operatorsstack operatorsstack_1; #endif { register operatorsstack kc_x = (operatorsstack) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_operatorsstack)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consoperatorsstack)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consoperatorsstack)); /*SUPPRESS 622*/ assert_operators( operators_1, "operators_1" ); /*SUPPRESS 622*/ assert_operatorsstack( operatorsstack_1, "operatorsstack_1" ); kc_x->prod_sel = sel_Consoperatorsstack; kc_x->u.Consoperatorsstack.operators_1 = operators_1; kc_x->u.Consoperatorsstack.operatorsstack_1 = operatorsstack_1; return kc_x; } operators Niloperators #ifdef KC_USE_PROTOTYPES () #else () #endif { static operators kc_x = (operators)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Niloperators)); if (kc_x == (operators)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Niloperators )); kc_x = (operators)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_operators), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Niloperators; } return kc_x; } operators Consoperators #ifdef KC_USE_PROTOTYPES (ID ID_1, operators operators_1) #else (ID_1, operators_1) ID ID_1; operators operators_1; #endif { register operators kc_x = (operators) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_operators)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consoperators)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consoperators)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_operators( operators_1, "operators_1" ); kc_x->prod_sel = sel_Consoperators; kc_x->u.Consoperators.ID_1 = ID_1; kc_x->u.Consoperators.operators_1 = operators_1; return kc_x; } phyla Nilphyla #ifdef KC_USE_PROTOTYPES () #else () #endif { static phyla kc_x = (phyla)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilphyla)); if (kc_x == (phyla)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilphyla )); kc_x = (phyla)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_phyla), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilphyla; } return kc_x; } phyla Consphyla #ifdef KC_USE_PROTOTYPES (ID ID_1, phyla phyla_1) #else (ID_1, phyla_1) ID ID_1; phyla phyla_1; #endif { register phyla kc_x = (phyla) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_phyla)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consphyla)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consphyla)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_phyla( phyla_1, "phyla_1" ); kc_x->prod_sel = sel_Consphyla; kc_x->u.Consphyla.ID_1 = ID_1; kc_x->u.Consphyla.phyla_1 = phyla_1; return kc_x; } variables Nilvariables #ifdef KC_USE_PROTOTYPES () #else () #endif { static variables kc_x = (variables)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilvariables)); if (kc_x == (variables)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilvariables )); kc_x = (variables)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_variables), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilvariables; } return kc_x; } variables Consvariables #ifdef KC_USE_PROTOTYPES (ID ID_1, variables variables_1) #else (ID_1, variables_1) ID ID_1; variables variables_1; #endif { register variables kc_x = (variables) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_variables)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consvariables)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consvariables)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_variables( variables_1, "variables_1" ); kc_x->prod_sel = sel_Consvariables; kc_x->u.Consvariables.ID_1 = ID_1; kc_x->u.Consvariables.variables_1 = variables_1; return kc_x; } argumentsstack Nilargumentsstack #ifdef KC_USE_PROTOTYPES () #else () #endif { static argumentsstack kc_x = (argumentsstack)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilargumentsstack)); if (kc_x == (argumentsstack)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilargumentsstack )); kc_x = (argumentsstack)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_argumentsstack), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilargumentsstack; } return kc_x; } argumentsstack Consargumentsstack #ifdef KC_USE_PROTOTYPES (arguments arguments_1, argumentsstack argumentsstack_1) #else (arguments_1, argumentsstack_1) arguments arguments_1; argumentsstack argumentsstack_1; #endif { register argumentsstack kc_x = (argumentsstack) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_argumentsstack)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consargumentsstack)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consargumentsstack)); /*SUPPRESS 622*/ assert_arguments( arguments_1, "arguments_1" ); /*SUPPRESS 622*/ assert_argumentsstack( argumentsstack_1, "argumentsstack_1" ); kc_x->prod_sel = sel_Consargumentsstack; kc_x->u.Consargumentsstack.arguments_1 = arguments_1; kc_x->u.Consargumentsstack.argumentsstack_1 = argumentsstack_1; return kc_x; } phylumstack Nilphylumstack #ifdef KC_USE_PROTOTYPES () #else () #endif { static phylumstack kc_x = (phylumstack)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilphylumstack)); if (kc_x == (phylumstack)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilphylumstack )); kc_x = (phylumstack)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_phylumstack), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilphylumstack; } return kc_x; } phylumstack Consphylumstack #ifdef KC_USE_PROTOTYPES (ID ID_1, phylumstack phylumstack_1) #else (ID_1, phylumstack_1) ID ID_1; phylumstack phylumstack_1; #endif { register phylumstack kc_x = (phylumstack) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_phylumstack)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consphylumstack)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consphylumstack)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_phylumstack( phylumstack_1, "phylumstack_1" ); kc_x->prod_sel = sel_Consphylumstack; kc_x->u.Consphylumstack.ID_1 = ID_1; kc_x->u.Consphylumstack.phylumstack_1 = phylumstack_1; return kc_x; } phylumnamesstack Nilphylumnamesstack #ifdef KC_USE_PROTOTYPES () #else () #endif { static phylumnamesstack kc_x = (phylumnamesstack)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilphylumnamesstack)); if (kc_x == (phylumnamesstack)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilphylumnamesstack )); kc_x = (phylumnamesstack)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_phylumnamesstack), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilphylumnamesstack; } return kc_x; } phylumnamesstack Consphylumnamesstack #ifdef KC_USE_PROTOTYPES (phylumnames phylumnames_1, phylumnamesstack phylumnamesstack_1) #else (phylumnames_1, phylumnamesstack_1) phylumnames phylumnames_1; phylumnamesstack phylumnamesstack_1; #endif { register phylumnamesstack kc_x = (phylumnamesstack) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_phylumnamesstack)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consphylumnamesstack)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consphylumnamesstack)); /*SUPPRESS 622*/ assert_phylumnames( phylumnames_1, "phylumnames_1" ); /*SUPPRESS 622*/ assert_phylumnamesstack( phylumnamesstack_1, "phylumnamesstack_1" ); kc_x->prod_sel = sel_Consphylumnamesstack; kc_x->u.Consphylumnamesstack.phylumnames_1 = phylumnames_1; kc_x->u.Consphylumnamesstack.phylumnamesstack_1 = phylumnamesstack_1; return kc_x; } withexpressionsstack Nilwithexpressionsstack #ifdef KC_USE_PROTOTYPES () #else () #endif { static withexpressionsstack kc_x = (withexpressionsstack)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilwithexpressionsstack)); if (kc_x == (withexpressionsstack)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilwithexpressionsstack )); kc_x = (withexpressionsstack)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_withexpressionsstack), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilwithexpressionsstack; } return kc_x; } withexpressionsstack Conswithexpressionsstack #ifdef KC_USE_PROTOTYPES (withexpressions withexpressions_1, withexpressionsstack withexpressionsstack_1) #else (withexpressions_1, withexpressionsstack_1) withexpressions withexpressions_1; withexpressionsstack withexpressionsstack_1; #endif { register withexpressionsstack kc_x = (withexpressionsstack) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_withexpressionsstack)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conswithexpressionsstack)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conswithexpressionsstack)); /*SUPPRESS 622*/ assert_withexpressions( withexpressions_1, "withexpressions_1" ); /*SUPPRESS 622*/ assert_withexpressionsstack( withexpressionsstack_1, "withexpressionsstack_1" ); kc_x->prod_sel = sel_Conswithexpressionsstack; kc_x->u.Conswithexpressionsstack.withexpressions_1 = withexpressions_1; kc_x->u.Conswithexpressionsstack.withexpressionsstack_1 = withexpressionsstack_1; return kc_x; } operatorstack Niloperatorstack #ifdef KC_USE_PROTOTYPES () #else () #endif { static operatorstack kc_x = (operatorstack)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Niloperatorstack)); if (kc_x == (operatorstack)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Niloperatorstack )); kc_x = (operatorstack)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_operatorstack), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Niloperatorstack; } return kc_x; } operatorstack Consoperatorstack #ifdef KC_USE_PROTOTYPES (ID ID_1, operatorstack operatorstack_1) #else (ID_1, operatorstack_1) ID ID_1; operatorstack operatorstack_1; #endif { register operatorstack kc_x = (operatorstack) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_operatorstack)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consoperatorstack)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consoperatorstack)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_operatorstack( operatorstack_1, "operatorstack_1" ); kc_x->prod_sel = sel_Consoperatorstack; kc_x->u.Consoperatorstack.ID_1 = ID_1; kc_x->u.Consoperatorstack.operatorstack_1 = operatorstack_1; return kc_x; } variablesstack Nilvariablesstack #ifdef KC_USE_PROTOTYPES () #else () #endif { static variablesstack kc_x = (variablesstack)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilvariablesstack)); if (kc_x == (variablesstack)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilvariablesstack )); kc_x = (variablesstack)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_variablesstack), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilvariablesstack; } return kc_x; } variablesstack Consvariablesstack #ifdef KC_USE_PROTOTYPES (variables variables_1, variablesstack variablesstack_1) #else (variables_1, variablesstack_1) variables variables_1; variablesstack variablesstack_1; #endif { register variablesstack kc_x = (variablesstack) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_variablesstack)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consvariablesstack)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consvariablesstack)); /*SUPPRESS 622*/ assert_variables( variables_1, "variables_1" ); /*SUPPRESS 622*/ assert_variablesstack( variablesstack_1, "variablesstack_1" ); kc_x->prod_sel = sel_Consvariablesstack; kc_x->u.Consvariablesstack.variables_1 = variables_1; kc_x->u.Consvariablesstack.variablesstack_1 = variablesstack_1; return kc_x; } selvarstack Nilselvarstack #ifdef KC_USE_PROTOTYPES () #else () #endif { static selvarstack kc_x = (selvarstack)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilselvarstack)); if (kc_x == (selvarstack)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilselvarstack )); kc_x = (selvarstack)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_selvarstack), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilselvarstack; } return kc_x; } selvarstack Consselvarstack #ifdef KC_USE_PROTOTYPES (ID ID_1, selvarstack selvarstack_1) #else (ID_1, selvarstack_1) ID ID_1; selvarstack selvarstack_1; #endif { register selvarstack kc_x = (selvarstack) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_selvarstack)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consselvarstack)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consselvarstack)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_selvarstack( selvarstack_1, "selvarstack_1" ); kc_x->prod_sel = sel_Consselvarstack; kc_x->u.Consselvarstack.ID_1 = ID_1; kc_x->u.Consselvarstack.selvarstack_1 = selvarstack_1; return kc_x; } dollarvarstatus DVAllowed #ifdef KC_USE_PROTOTYPES () #else () #endif { static dollarvarstatus kc_x = (dollarvarstatus)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_DVAllowed)); if (kc_x == (dollarvarstatus)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_DVAllowed )); kc_x = (dollarvarstatus)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_dollarvarstatus), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_DVAllowed; } return kc_x; } dollarvarstatus DVDisallowed #ifdef KC_USE_PROTOTYPES () #else () #endif { static dollarvarstatus kc_x = (dollarvarstatus)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_DVDisallowed)); if (kc_x == (dollarvarstatus)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_DVDisallowed )); kc_x = (dollarvarstatus)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_dollarvarstatus), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_DVDisallowed; } return kc_x; } dollarvarsallowedstack Nildollarvarsallowedstack #ifdef KC_USE_PROTOTYPES () #else () #endif { static dollarvarsallowedstack kc_x = (dollarvarsallowedstack)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nildollarvarsallowedstack)); if (kc_x == (dollarvarsallowedstack)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nildollarvarsallowedstack )); kc_x = (dollarvarsallowedstack)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_dollarvarsallowedstack), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nildollarvarsallowedstack; } return kc_x; } dollarvarsallowedstack Consdollarvarsallowedstack #ifdef KC_USE_PROTOTYPES (dollarvarstatus dollarvarstatus_1, dollarvarsallowedstack dollarvarsallowedstack_1) #else (dollarvarstatus_1, dollarvarsallowedstack_1) dollarvarstatus dollarvarstatus_1; dollarvarsallowedstack dollarvarsallowedstack_1; #endif { register dollarvarsallowedstack kc_x = (dollarvarsallowedstack) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_dollarvarsallowedstack)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consdollarvarsallowedstack)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consdollarvarsallowedstack)); /*SUPPRESS 622*/ assert_dollarvarstatus( dollarvarstatus_1, "dollarvarstatus_1" ); /*SUPPRESS 622*/ assert_dollarvarsallowedstack( dollarvarsallowedstack_1, "dollarvarsallowedstack_1" ); kc_x->prod_sel = sel_Consdollarvarsallowedstack; kc_x->u.Consdollarvarsallowedstack.dollarvarstatus_1 = dollarvarstatus_1; kc_x->u.Consdollarvarsallowedstack.dollarvarsallowedstack_1 = dollarvarsallowedstack_1; return kc_x; } intstack Nilintstack #ifdef KC_USE_PROTOTYPES () #else () #endif { static intstack kc_x = (intstack)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilintstack)); if (kc_x == (intstack)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilintstack )); kc_x = (intstack)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_intstack), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilintstack; } return kc_x; } intstack Consintstack #ifdef KC_USE_PROTOTYPES (int int_1, intstack intstack_1) #else (int_1, intstack_1) int int_1; intstack intstack_1; #endif { register intstack kc_x = (intstack) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_intstack)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consintstack)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consintstack)); /*SUPPRESS 622*/ assert_int( int_1, "int_1" ); /*SUPPRESS 622*/ assert_intstack( intstack_1, "intstack_1" ); kc_x->prod_sel = sel_Consintstack; kc_x->u.Consintstack.int_1 = int_1; kc_x->u.Consintstack.intstack_1 = intstack_1; return kc_x; } idCexpressionsstack NilidCexpressionsstack #ifdef KC_USE_PROTOTYPES () #else () #endif { static idCexpressionsstack kc_x = (idCexpressionsstack)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NilidCexpressionsstack)); if (kc_x == (idCexpressionsstack)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NilidCexpressionsstack )); kc_x = (idCexpressionsstack)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_idCexpressionsstack), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_NilidCexpressionsstack; } return kc_x; } idCexpressionsstack ConsidCexpressionsstack #ifdef KC_USE_PROTOTYPES (idCexpressions idCexpressions_1, idCexpressionsstack idCexpressionsstack_1) #else (idCexpressions_1, idCexpressionsstack_1) idCexpressions idCexpressions_1; idCexpressionsstack idCexpressionsstack_1; #endif { register idCexpressionsstack kc_x = (idCexpressionsstack) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_idCexpressionsstack)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_ConsidCexpressionsstack)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_ConsidCexpressionsstack)); /*SUPPRESS 622*/ assert_idCexpressions( idCexpressions_1, "idCexpressions_1" ); /*SUPPRESS 622*/ assert_idCexpressionsstack( idCexpressionsstack_1, "idCexpressionsstack_1" ); kc_x->prod_sel = sel_ConsidCexpressionsstack; kc_x->u.ConsidCexpressionsstack.idCexpressions_1 = idCexpressions_1; kc_x->u.ConsidCexpressionsstack.idCexpressionsstack_1 = idCexpressionsstack_1; return kc_x; } two_phyla TwoStorageoption #ifdef KC_USE_PROTOTYPES (storageoption storageoption_1, storageoption storageoption_2) #else (storageoption_1, storageoption_2) storageoption storageoption_1; storageoption storageoption_2; #endif { register two_phyla kc_x = (two_phyla) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_two_phyla)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TwoStorageoption)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TwoStorageoption)); /*SUPPRESS 622*/ assert_storageoption( storageoption_1, "storageoption_1" ); /*SUPPRESS 622*/ assert_storageoption( storageoption_2, "storageoption_2" ); kc_x->prod_sel = sel_TwoStorageoption; kc_x->u.TwoStorageoption.storageoption_1 = storageoption_1; kc_x->u.TwoStorageoption.storageoption_2 = storageoption_2; return kc_x; } two_phyla TwoProductionblock #ifdef KC_USE_PROTOTYPES (productionblock productionblock_1, productionblock productionblock_2) #else (productionblock_1, productionblock_2) productionblock productionblock_1; productionblock productionblock_2; #endif { register two_phyla kc_x = (two_phyla) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_two_phyla)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TwoProductionblock)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TwoProductionblock)); /*SUPPRESS 622*/ assert_productionblock( productionblock_1, "productionblock_1" ); /*SUPPRESS 622*/ assert_productionblock( productionblock_2, "productionblock_2" ); kc_x->prod_sel = sel_TwoProductionblock; kc_x->u.TwoProductionblock.productionblock_1 = productionblock_1; kc_x->u.TwoProductionblock.productionblock_2 = productionblock_2; return kc_x; } two_phyla TwoCcode_option #ifdef KC_USE_PROTOTYPES (Ccode_option Ccode_option_1, Ccode_option Ccode_option_2) #else (Ccode_option_1, Ccode_option_2) Ccode_option Ccode_option_1; Ccode_option Ccode_option_2; #endif { register two_phyla kc_x = (two_phyla) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_two_phyla)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TwoCcode_option)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TwoCcode_option)); /*SUPPRESS 622*/ assert_Ccode_option( Ccode_option_1, "Ccode_option_1" ); /*SUPPRESS 622*/ assert_Ccode_option( Ccode_option_2, "Ccode_option_2" ); kc_x->prod_sel = sel_TwoCcode_option; kc_x->u.TwoCcode_option.Ccode_option_1 = Ccode_option_1; kc_x->u.TwoCcode_option.Ccode_option_2 = Ccode_option_2; return kc_x; } two_phyla TwoRewriteruleinfo #ifdef KC_USE_PROTOTYPES (rewriteruleinfo rewriteruleinfo_1, rewriteruleinfo rewriteruleinfo_2) #else (rewriteruleinfo_1, rewriteruleinfo_2) rewriteruleinfo rewriteruleinfo_1; rewriteruleinfo rewriteruleinfo_2; #endif { register two_phyla kc_x = (two_phyla) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_two_phyla)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TwoRewriteruleinfo)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TwoRewriteruleinfo)); /*SUPPRESS 622*/ assert_rewriteruleinfo( rewriteruleinfo_1, "rewriteruleinfo_1" ); /*SUPPRESS 622*/ assert_rewriteruleinfo( rewriteruleinfo_2, "rewriteruleinfo_2" ); kc_x->prod_sel = sel_TwoRewriteruleinfo; kc_x->u.TwoRewriteruleinfo.rewriteruleinfo_1 = rewriteruleinfo_1; kc_x->u.TwoRewriteruleinfo.rewriteruleinfo_2 = rewriteruleinfo_2; return kc_x; } two_phyla TwoWithcaseinfo #ifdef KC_USE_PROTOTYPES (withcaseinfo withcaseinfo_1, withcaseinfo withcaseinfo_2) #else (withcaseinfo_1, withcaseinfo_2) withcaseinfo withcaseinfo_1; withcaseinfo withcaseinfo_2; #endif { register two_phyla kc_x = (two_phyla) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_two_phyla)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TwoWithcaseinfo)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TwoWithcaseinfo)); /*SUPPRESS 622*/ assert_withcaseinfo( withcaseinfo_1, "withcaseinfo_1" ); /*SUPPRESS 622*/ assert_withcaseinfo( withcaseinfo_2, "withcaseinfo_2" ); kc_x->prod_sel = sel_TwoWithcaseinfo; kc_x->u.TwoWithcaseinfo.withcaseinfo_1 = withcaseinfo_1; kc_x->u.TwoWithcaseinfo.withcaseinfo_2 = withcaseinfo_2; return kc_x; } two_phyla TwoUnparsedeclinfo #ifdef KC_USE_PROTOTYPES (unparsedeclinfo unparsedeclinfo_1, unparsedeclinfo unparsedeclinfo_2) #else (unparsedeclinfo_1, unparsedeclinfo_2) unparsedeclinfo unparsedeclinfo_1; unparsedeclinfo unparsedeclinfo_2; #endif { register two_phyla kc_x = (two_phyla) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_two_phyla)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TwoUnparsedeclinfo)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TwoUnparsedeclinfo)); /*SUPPRESS 622*/ assert_unparsedeclinfo( unparsedeclinfo_1, "unparsedeclinfo_1" ); /*SUPPRESS 622*/ assert_unparsedeclinfo( unparsedeclinfo_2, "unparsedeclinfo_2" ); kc_x->prod_sel = sel_TwoUnparsedeclinfo; kc_x->u.TwoUnparsedeclinfo.unparsedeclinfo_1 = unparsedeclinfo_1; kc_x->u.TwoUnparsedeclinfo.unparsedeclinfo_2 = unparsedeclinfo_2; return kc_x; } two_phyla TwoPatternrepresentation #ifdef KC_USE_PROTOTYPES (patternrepresentation patternrepresentation_1, patternrepresentation patternrepresentation_2) #else (patternrepresentation_1, patternrepresentation_2) patternrepresentation patternrepresentation_1; patternrepresentation patternrepresentation_2; #endif { register two_phyla kc_x = (two_phyla) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_two_phyla)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TwoPatternrepresentation)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TwoPatternrepresentation)); /*SUPPRESS 622*/ assert_patternrepresentation( patternrepresentation_1, "patternrepresentation_1" ); /*SUPPRESS 622*/ assert_patternrepresentation( patternrepresentation_2, "patternrepresentation_2" ); kc_x->prod_sel = sel_TwoPatternrepresentation; kc_x->u.TwoPatternrepresentation.patternrepresentation_1 = patternrepresentation_1; kc_x->u.TwoPatternrepresentation.patternrepresentation_2 = patternrepresentation_2; return kc_x; } two_phyla TwoElem_patternrepresentation #ifdef KC_USE_PROTOTYPES (elem_patternrepresentation elem_patternrepresentation_1, elem_patternrepresentation elem_patternrepresentation_2) #else (elem_patternrepresentation_1, elem_patternrepresentation_2) elem_patternrepresentation elem_patternrepresentation_1; elem_patternrepresentation elem_patternrepresentation_2; #endif { register two_phyla kc_x = (two_phyla) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_two_phyla)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TwoElem_patternrepresentation)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TwoElem_patternrepresentation)); /*SUPPRESS 622*/ assert_elem_patternrepresentation( elem_patternrepresentation_1, "elem_patternrepresentation_1" ); /*SUPPRESS 622*/ assert_elem_patternrepresentation( elem_patternrepresentation_2, "elem_patternrepresentation_2" ); kc_x->prod_sel = sel_TwoElem_patternrepresentation; kc_x->u.TwoElem_patternrepresentation.elem_patternrepresentation_1 = elem_patternrepresentation_1; kc_x->u.TwoElem_patternrepresentation.elem_patternrepresentation_2 = elem_patternrepresentation_2; return kc_x; } two_phyla TwoPaths #ifdef KC_USE_PROTOTYPES (paths paths_1, paths paths_2) #else (paths_1, paths_2) paths paths_1; paths paths_2; #endif { register two_phyla kc_x = (two_phyla) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_two_phyla)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TwoPaths)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TwoPaths)); /*SUPPRESS 622*/ assert_paths( paths_1, "paths_1" ); /*SUPPRESS 622*/ assert_paths( paths_2, "paths_2" ); kc_x->prod_sel = sel_TwoPaths; kc_x->u.TwoPaths.paths_1 = paths_1; kc_x->u.TwoPaths.paths_2 = paths_2; return kc_x; } two_phyla TwoPath #ifdef KC_USE_PROTOTYPES (path path_1, path path_2) #else (path_1, path_2) path path_1; path path_2; #endif { register two_phyla kc_x = (two_phyla) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_two_phyla)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_TwoPath)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_TwoPath)); /*SUPPRESS 622*/ assert_path( path_1, "path_1" ); /*SUPPRESS 622*/ assert_path( path_2, "path_2" ); kc_x->prod_sel = sel_TwoPath; kc_x->u.TwoPath.path_1 = path_1; kc_x->u.TwoPath.path_2 = path_2; return kc_x; } tribool Equal #ifdef KC_USE_PROTOTYPES () #else () #endif { static tribool kc_x = (tribool)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Equal)); if (kc_x == (tribool)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Equal )); kc_x = (tribool)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_tribool), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Equal; } return kc_x; } tribool Smaller #ifdef KC_USE_PROTOTYPES () #else () #endif { static tribool kc_x = (tribool)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Smaller)); if (kc_x == (tribool)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Smaller )); kc_x = (tribool)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_tribool), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Smaller; } return kc_x; } tribool Bigger #ifdef KC_USE_PROTOTYPES () #else () #endif { static tribool kc_x = (tribool)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Bigger)); if (kc_x == (tribool)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Bigger )); kc_x = (tribool)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_tribool), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Bigger; } return kc_x; } patternrepresentations Nilpatternrepresentations #ifdef KC_USE_PROTOTYPES () #else () #endif { static patternrepresentations kc_x = (patternrepresentations)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilpatternrepresentations)); if (kc_x == (patternrepresentations)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilpatternrepresentations )); kc_x = (patternrepresentations)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_patternrepresentations), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilpatternrepresentations; } return kc_x; } patternrepresentations Conspatternrepresentations #ifdef KC_USE_PROTOTYPES (patternrepresentation patternrepresentation_1, patternrepresentations patternrepresentations_1) #else (patternrepresentation_1, patternrepresentations_1) patternrepresentation patternrepresentation_1; patternrepresentations patternrepresentations_1; #endif { register patternrepresentations kc_x = (patternrepresentations) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_patternrepresentations)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conspatternrepresentations)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conspatternrepresentations)); /*SUPPRESS 622*/ assert_patternrepresentation( patternrepresentation_1, "patternrepresentation_1" ); /*SUPPRESS 622*/ assert_patternrepresentations( patternrepresentations_1, "patternrepresentations_1" ); kc_x->prod_sel = sel_Conspatternrepresentations; kc_x->u.Conspatternrepresentations.patternrepresentation_1 = patternrepresentation_1; kc_x->u.Conspatternrepresentations.patternrepresentations_1 = patternrepresentations_1; return kc_x; } patternrepresentation Nilpatternrepresentation #ifdef KC_USE_PROTOTYPES () #else () #endif { static patternrepresentation kc_x = (patternrepresentation)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilpatternrepresentation)); if (kc_x == (patternrepresentation)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilpatternrepresentation )); kc_x = (patternrepresentation)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_patternrepresentation), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilpatternrepresentation; } return kc_x; } patternrepresentation Conspatternrepresentation #ifdef KC_USE_PROTOTYPES (elem_patternrepresentation elem_patternrepresentation_1, patternrepresentation patternrepresentation_1) #else (elem_patternrepresentation_1, patternrepresentation_1) elem_patternrepresentation elem_patternrepresentation_1; patternrepresentation patternrepresentation_1; #endif { register patternrepresentation kc_x = (patternrepresentation) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_patternrepresentation)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conspatternrepresentation)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conspatternrepresentation)); /*SUPPRESS 622*/ assert_elem_patternrepresentation( elem_patternrepresentation_1, "elem_patternrepresentation_1" ); /*SUPPRESS 622*/ assert_patternrepresentation( patternrepresentation_1, "patternrepresentation_1" ); kc_x->prod_sel = sel_Conspatternrepresentation; kc_x->u.Conspatternrepresentation.elem_patternrepresentation_1 = elem_patternrepresentation_1; kc_x->u.Conspatternrepresentation.patternrepresentation_1 = patternrepresentation_1; return kc_x; } elem_patternrepresentation PRBinding #ifdef KC_USE_PROTOTYPES (path path_1, ID ID_1) #else (path_1, ID_1) path path_1; ID ID_1; #endif { register elem_patternrepresentation kc_x = (elem_patternrepresentation) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_elem_patternrepresentation)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PRBinding)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PRBinding)); /*SUPPRESS 622*/ assert_path( path_1, "path_1" ); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_PRBinding; kc_x->u.PRBinding.path_1 = path_1; kc_x->u.PRBinding.ID_1 = ID_1; kc_x = kc_initialize_elem_patternrepresentation(kc_x); return kc_x; } elem_patternrepresentation PRVarPredicate #ifdef KC_USE_PROTOTYPES (paths paths_1, ID ID_1, patternrepresentation patternrepresentation_1) #else (paths_1, ID_1, patternrepresentation_1) paths paths_1; ID ID_1; patternrepresentation patternrepresentation_1; #endif { register elem_patternrepresentation kc_x = (elem_patternrepresentation) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_elem_patternrepresentation)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PRVarPredicate)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PRVarPredicate)); /*SUPPRESS 622*/ assert_paths( paths_1, "paths_1" ); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_patternrepresentation( patternrepresentation_1, "patternrepresentation_1" ); kc_x->prod_sel = sel_PRVarPredicate; kc_x->u.PRVarPredicate.paths_1 = paths_1; kc_x->u.PRVarPredicate.ID_1 = ID_1; kc_x->u.PRVarPredicate.patternrepresentation_1 = patternrepresentation_1; kc_x = kc_initialize_elem_patternrepresentation(kc_x); return kc_x; } elem_patternrepresentation PROperPredicate #ifdef KC_USE_PROTOTYPES (path path_1, ID ID_1) #else (path_1, ID_1) path path_1; ID ID_1; #endif { register elem_patternrepresentation kc_x = (elem_patternrepresentation) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_elem_patternrepresentation)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PROperPredicate)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PROperPredicate)); /*SUPPRESS 622*/ assert_path( path_1, "path_1" ); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_PROperPredicate; kc_x->u.PROperPredicate.path_1 = path_1; kc_x->u.PROperPredicate.ID_1 = ID_1; kc_x = kc_initialize_elem_patternrepresentation(kc_x); return kc_x; } elem_patternrepresentation PRNonLeafBinding #ifdef KC_USE_PROTOTYPES (path path_1, ID ID_1, patternrepresentation patternrepresentation_1) #else (path_1, ID_1, patternrepresentation_1) path path_1; ID ID_1; patternrepresentation patternrepresentation_1; #endif { register elem_patternrepresentation kc_x = (elem_patternrepresentation) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_elem_patternrepresentation)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PRNonLeafBinding)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PRNonLeafBinding)); /*SUPPRESS 622*/ assert_path( path_1, "path_1" ); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_patternrepresentation( patternrepresentation_1, "patternrepresentation_1" ); kc_x->prod_sel = sel_PRNonLeafBinding; kc_x->u.PRNonLeafBinding.path_1 = path_1; kc_x->u.PRNonLeafBinding.ID_1 = ID_1; kc_x->u.PRNonLeafBinding.patternrepresentation_1 = patternrepresentation_1; kc_x = kc_initialize_elem_patternrepresentation(kc_x); return kc_x; } elem_patternrepresentation PRWildcard #ifdef KC_USE_PROTOTYPES (path path_1) #else (path_1) path path_1; #endif { register elem_patternrepresentation kc_x = (elem_patternrepresentation) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_elem_patternrepresentation)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PRWildcard)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PRWildcard)); /*SUPPRESS 622*/ assert_path( path_1, "path_1" ); kc_x->prod_sel = sel_PRWildcard; kc_x->u.PRWildcard.path_1 = path_1; kc_x = kc_initialize_elem_patternrepresentation(kc_x); return kc_x; } elem_patternrepresentation PRDefault #ifdef KC_USE_PROTOTYPES () #else () #endif { register elem_patternrepresentation kc_x = (elem_patternrepresentation) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_elem_patternrepresentation)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PRDefault)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PRDefault)); kc_x->prod_sel = sel_PRDefault; kc_x = kc_initialize_elem_patternrepresentation(kc_x); return kc_x; } elem_patternrepresentation PRStringLiteral #ifdef KC_USE_PROTOTYPES (path path_1, CexpressionDQ CexpressionDQ_1) #else (path_1, CexpressionDQ_1) path path_1; CexpressionDQ CexpressionDQ_1; #endif { register elem_patternrepresentation kc_x = (elem_patternrepresentation) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_elem_patternrepresentation)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PRStringLiteral)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PRStringLiteral)); /*SUPPRESS 622*/ assert_path( path_1, "path_1" ); /*SUPPRESS 622*/ assert_CexpressionDQ( CexpressionDQ_1, "CexpressionDQ_1" ); kc_x->prod_sel = sel_PRStringLiteral; kc_x->u.PRStringLiteral.path_1 = path_1; kc_x->u.PRStringLiteral.CexpressionDQ_1 = CexpressionDQ_1; kc_x = kc_initialize_elem_patternrepresentation(kc_x); return kc_x; } elem_patternrepresentation PRIntLiteral #ifdef KC_USE_PROTOTYPES (path path_1, INT INT_1) #else (path_1, INT_1) path path_1; INT INT_1; #endif { register elem_patternrepresentation kc_x = (elem_patternrepresentation) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_elem_patternrepresentation)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_PRIntLiteral)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_PRIntLiteral)); /*SUPPRESS 622*/ assert_path( path_1, "path_1" ); /*SUPPRESS 622*/ assert_INT( INT_1, "INT_1" ); kc_x->prod_sel = sel_PRIntLiteral; kc_x->u.PRIntLiteral.path_1 = path_1; kc_x->u.PRIntLiteral.INT_1 = INT_1; kc_x = kc_initialize_elem_patternrepresentation(kc_x); return kc_x; } path Nilpath #ifdef KC_USE_PROTOTYPES () #else () #endif { register path kc_x = (path) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_path)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilpath)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilpath)); kc_x->prod_sel = sel_Nilpath; kc_x = kc_initialize_path(kc_x); return kc_x; } path Conspath #ifdef KC_USE_PROTOTYPES (int int_1, path path_1) #else (int_1, path_1) int int_1; path path_1; #endif { register path kc_x = (path) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_path)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conspath)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conspath)); /*SUPPRESS 622*/ assert_int( int_1, "int_1" ); /*SUPPRESS 622*/ assert_path( path_1, "path_1" ); kc_x->prod_sel = sel_Conspath; kc_x->u.Conspath.int_1 = int_1; kc_x->u.Conspath.path_1 = path_1; kc_x = kc_initialize_path(kc_x); return kc_x; } paths Nilpaths #ifdef KC_USE_PROTOTYPES () #else () #endif { static paths kc_x = (paths)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilpaths)); if (kc_x == (paths)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilpaths )); kc_x = (paths)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_paths), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilpaths; } return kc_x; } paths Conspaths #ifdef KC_USE_PROTOTYPES (path path_1, paths paths_1) #else (path_1, paths_1) path path_1; paths paths_1; #endif { register paths kc_x = (paths) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_paths)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conspaths)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conspaths)); /*SUPPRESS 622*/ assert_path( path_1, "path_1" ); /*SUPPRESS 622*/ assert_paths( paths_1, "paths_1" ); kc_x->prod_sel = sel_Conspaths; kc_x->u.Conspaths.path_1 = path_1; kc_x->u.Conspaths.paths_1 = paths_1; return kc_x; } argsnumbers Nilargsnumbers #ifdef KC_USE_PROTOTYPES () #else () #endif { static argsnumbers kc_x = (argsnumbers)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilargsnumbers)); if (kc_x == (argsnumbers)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilargsnumbers )); kc_x = (argsnumbers)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_argsnumbers), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilargsnumbers; } return kc_x; } argsnumbers Consargsnumbers #ifdef KC_USE_PROTOTYPES (int int_1, argsnumbers argsnumbers_1) #else (int_1, argsnumbers_1) int int_1; argsnumbers argsnumbers_1; #endif { register argsnumbers kc_x = (argsnumbers) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_argsnumbers)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consargsnumbers)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consargsnumbers)); /*SUPPRESS 622*/ assert_int( int_1, "int_1" ); /*SUPPRESS 622*/ assert_argsnumbers( argsnumbers_1, "argsnumbers_1" ); kc_x->prod_sel = sel_Consargsnumbers; kc_x->u.Consargsnumbers.int_1 = int_1; kc_x->u.Consargsnumbers.argsnumbers_1 = argsnumbers_1; return kc_x; } rewriterulesinfo Nilrewriterulesinfo #ifdef KC_USE_PROTOTYPES () #else () #endif { static rewriterulesinfo kc_x = (rewriterulesinfo)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilrewriterulesinfo)); if (kc_x == (rewriterulesinfo)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilrewriterulesinfo )); kc_x = (rewriterulesinfo)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_rewriterulesinfo), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilrewriterulesinfo; } return kc_x; } rewriterulesinfo Consrewriterulesinfo #ifdef KC_USE_PROTOTYPES (rewriteruleinfo rewriteruleinfo_1, rewriterulesinfo rewriterulesinfo_1) #else (rewriteruleinfo_1, rewriterulesinfo_1) rewriteruleinfo rewriteruleinfo_1; rewriterulesinfo rewriterulesinfo_1; #endif { register rewriterulesinfo kc_x = (rewriterulesinfo) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_rewriterulesinfo)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consrewriterulesinfo)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consrewriterulesinfo)); /*SUPPRESS 622*/ assert_rewriteruleinfo( rewriteruleinfo_1, "rewriteruleinfo_1" ); /*SUPPRESS 622*/ assert_rewriterulesinfo( rewriterulesinfo_1, "rewriterulesinfo_1" ); kc_x->prod_sel = sel_Consrewriterulesinfo; kc_x->u.Consrewriterulesinfo.rewriteruleinfo_1 = rewriteruleinfo_1; kc_x->u.Consrewriterulesinfo.rewriterulesinfo_1 = rewriterulesinfo_1; return kc_x; } rewriteruleinfo Rewriteruleinfo #ifdef KC_USE_PROTOTYPES (patternrepresentation patternrepresentation_1, patternrepresentation patternrepresentation_2, rewriteclause rewriteclause_1) #else (patternrepresentation_1, patternrepresentation_2, rewriteclause_1) patternrepresentation patternrepresentation_1; patternrepresentation patternrepresentation_2; rewriteclause rewriteclause_1; #endif { register rewriteruleinfo kc_x = (rewriteruleinfo) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_rewriteruleinfo)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Rewriteruleinfo)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Rewriteruleinfo)); /*SUPPRESS 622*/ assert_patternrepresentation( patternrepresentation_1, "patternrepresentation_1" ); /*SUPPRESS 622*/ assert_patternrepresentation( patternrepresentation_2, "patternrepresentation_2" ); /*SUPPRESS 622*/ assert_rewriteclause( rewriteclause_1, "rewriteclause_1" ); kc_x->prod_sel = sel_Rewriteruleinfo; kc_x->u.Rewriteruleinfo.patternrepresentation_1 = patternrepresentation_1; kc_x->u.Rewriteruleinfo.patternrepresentation_2 = patternrepresentation_2; kc_x->u.Rewriteruleinfo.rewriteclause_1 = rewriteclause_1; return kc_x; } withcasesinfo Nilwithcasesinfo #ifdef KC_USE_PROTOTYPES () #else () #endif { static withcasesinfo kc_x = (withcasesinfo)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilwithcasesinfo)); if (kc_x == (withcasesinfo)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilwithcasesinfo )); kc_x = (withcasesinfo)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_withcasesinfo), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilwithcasesinfo; } return kc_x; } withcasesinfo Conswithcasesinfo #ifdef KC_USE_PROTOTYPES (withcaseinfo withcaseinfo_1, withcasesinfo withcasesinfo_1) #else (withcaseinfo_1, withcasesinfo_1) withcaseinfo withcaseinfo_1; withcasesinfo withcasesinfo_1; #endif { register withcasesinfo kc_x = (withcasesinfo) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_withcasesinfo)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conswithcasesinfo)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conswithcasesinfo)); /*SUPPRESS 622*/ assert_withcaseinfo( withcaseinfo_1, "withcaseinfo_1" ); /*SUPPRESS 622*/ assert_withcasesinfo( withcasesinfo_1, "withcasesinfo_1" ); kc_x->prod_sel = sel_Conswithcasesinfo; kc_x->u.Conswithcasesinfo.withcaseinfo_1 = withcaseinfo_1; kc_x->u.Conswithcasesinfo.withcasesinfo_1 = withcasesinfo_1; return kc_x; } withcaseinfo Withcaseinfo #ifdef KC_USE_PROTOTYPES (patternrepresentation patternrepresentation_1, patternrepresentation patternrepresentation_2, Ctext Ctext_1) #else (patternrepresentation_1, patternrepresentation_2, Ctext_1) patternrepresentation patternrepresentation_1; patternrepresentation patternrepresentation_2; Ctext Ctext_1; #endif { register withcaseinfo kc_x = (withcaseinfo) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_withcaseinfo)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Withcaseinfo)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Withcaseinfo)); /*SUPPRESS 622*/ assert_patternrepresentation( patternrepresentation_1, "patternrepresentation_1" ); /*SUPPRESS 622*/ assert_patternrepresentation( patternrepresentation_2, "patternrepresentation_2" ); /*SUPPRESS 622*/ assert_Ctext( Ctext_1, "Ctext_1" ); kc_x->prod_sel = sel_Withcaseinfo; kc_x->u.Withcaseinfo.patternrepresentation_1 = patternrepresentation_1; kc_x->u.Withcaseinfo.patternrepresentation_2 = patternrepresentation_2; kc_x->u.Withcaseinfo.Ctext_1 = Ctext_1; return kc_x; } rewriteviewsinfo Nilrewriteviewsinfo #ifdef KC_USE_PROTOTYPES () #else () #endif { static rewriteviewsinfo kc_x = (rewriteviewsinfo)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilrewriteviewsinfo)); if (kc_x == (rewriteviewsinfo)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilrewriteviewsinfo )); kc_x = (rewriteviewsinfo)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_rewriteviewsinfo), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilrewriteviewsinfo; } return kc_x; } rewriteviewsinfo Consrewriteviewsinfo #ifdef KC_USE_PROTOTYPES (rewriteviewinfo rewriteviewinfo_1, rewriteviewsinfo rewriteviewsinfo_1) #else (rewriteviewinfo_1, rewriteviewsinfo_1) rewriteviewinfo rewriteviewinfo_1; rewriteviewsinfo rewriteviewsinfo_1; #endif { register rewriteviewsinfo kc_x = (rewriteviewsinfo) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_rewriteviewsinfo)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consrewriteviewsinfo)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consrewriteviewsinfo)); /*SUPPRESS 622*/ assert_rewriteviewinfo( rewriteviewinfo_1, "rewriteviewinfo_1" ); /*SUPPRESS 622*/ assert_rewriteviewsinfo( rewriteviewsinfo_1, "rewriteviewsinfo_1" ); kc_x->prod_sel = sel_Consrewriteviewsinfo; kc_x->u.Consrewriteviewsinfo.rewriteviewinfo_1 = rewriteviewinfo_1; kc_x->u.Consrewriteviewsinfo.rewriteviewsinfo_1 = rewriteviewsinfo_1; return kc_x; } rewriteviewinfo Rewriteviewinfo #ifdef KC_USE_PROTOTYPES (ID ID_1, rewriterulesinfo rewriterulesinfo_1) #else (ID_1, rewriterulesinfo_1) ID ID_1; rewriterulesinfo rewriterulesinfo_1; #endif { register rewriteviewinfo kc_x = (rewriteviewinfo) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_rewriteviewinfo)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Rewriteviewinfo)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Rewriteviewinfo)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_rewriterulesinfo( rewriterulesinfo_1, "rewriterulesinfo_1" ); kc_x->prod_sel = sel_Rewriteviewinfo; kc_x->u.Rewriteviewinfo.ID_1 = ID_1; kc_x->u.Rewriteviewinfo.rewriterulesinfo_1 = rewriterulesinfo_1; return kc_x; } unparseviewsinfo Nilunparseviewsinfo #ifdef KC_USE_PROTOTYPES () #else () #endif { static unparseviewsinfo kc_x = (unparseviewsinfo)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilunparseviewsinfo)); if (kc_x == (unparseviewsinfo)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilunparseviewsinfo )); kc_x = (unparseviewsinfo)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_unparseviewsinfo), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilunparseviewsinfo; } return kc_x; } unparseviewsinfo Consunparseviewsinfo #ifdef KC_USE_PROTOTYPES (unparseviewinfo unparseviewinfo_1, unparseviewsinfo unparseviewsinfo_1) #else (unparseviewinfo_1, unparseviewsinfo_1) unparseviewinfo unparseviewinfo_1; unparseviewsinfo unparseviewsinfo_1; #endif { register unparseviewsinfo kc_x = (unparseviewsinfo) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_unparseviewsinfo)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consunparseviewsinfo)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consunparseviewsinfo)); /*SUPPRESS 622*/ assert_unparseviewinfo( unparseviewinfo_1, "unparseviewinfo_1" ); /*SUPPRESS 622*/ assert_unparseviewsinfo( unparseviewsinfo_1, "unparseviewsinfo_1" ); kc_x->prod_sel = sel_Consunparseviewsinfo; kc_x->u.Consunparseviewsinfo.unparseviewinfo_1 = unparseviewinfo_1; kc_x->u.Consunparseviewsinfo.unparseviewsinfo_1 = unparseviewsinfo_1; return kc_x; } unparseviewinfo Unparseviewinfo #ifdef KC_USE_PROTOTYPES (ID ID_1, unparsedeclsinfo unparsedeclsinfo_1) #else (ID_1, unparsedeclsinfo_1) ID ID_1; unparsedeclsinfo unparsedeclsinfo_1; #endif { register unparseviewinfo kc_x = (unparseviewinfo) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_unparseviewinfo)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Unparseviewinfo)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Unparseviewinfo)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_unparsedeclsinfo( unparsedeclsinfo_1, "unparsedeclsinfo_1" ); kc_x->prod_sel = sel_Unparseviewinfo; kc_x->u.Unparseviewinfo.ID_1 = ID_1; kc_x->u.Unparseviewinfo.unparsedeclsinfo_1 = unparsedeclsinfo_1; return kc_x; } unparsedeclsinfo Nilunparsedeclsinfo #ifdef KC_USE_PROTOTYPES () #else () #endif { static unparsedeclsinfo kc_x = (unparsedeclsinfo)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilunparsedeclsinfo)); if (kc_x == (unparsedeclsinfo)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilunparsedeclsinfo )); kc_x = (unparsedeclsinfo)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_unparsedeclsinfo), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilunparsedeclsinfo; } return kc_x; } unparsedeclsinfo Consunparsedeclsinfo #ifdef KC_USE_PROTOTYPES (unparsedeclinfo unparsedeclinfo_1, unparsedeclsinfo unparsedeclsinfo_1) #else (unparsedeclinfo_1, unparsedeclsinfo_1) unparsedeclinfo unparsedeclinfo_1; unparsedeclsinfo unparsedeclsinfo_1; #endif { register unparsedeclsinfo kc_x = (unparsedeclsinfo) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_unparsedeclsinfo)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consunparsedeclsinfo)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consunparsedeclsinfo)); /*SUPPRESS 622*/ assert_unparsedeclinfo( unparsedeclinfo_1, "unparsedeclinfo_1" ); /*SUPPRESS 622*/ assert_unparsedeclsinfo( unparsedeclsinfo_1, "unparsedeclsinfo_1" ); kc_x->prod_sel = sel_Consunparsedeclsinfo; kc_x->u.Consunparsedeclsinfo.unparsedeclinfo_1 = unparsedeclinfo_1; kc_x->u.Consunparsedeclsinfo.unparsedeclsinfo_1 = unparsedeclsinfo_1; return kc_x; } unparsedeclinfo Unparsedeclinfo #ifdef KC_USE_PROTOTYPES (patternrepresentation patternrepresentation_1, patternrepresentation patternrepresentation_2, unparseclause unparseclause_1) #else (patternrepresentation_1, patternrepresentation_2, unparseclause_1) patternrepresentation patternrepresentation_1; patternrepresentation patternrepresentation_2; unparseclause unparseclause_1; #endif { register unparsedeclinfo kc_x = (unparsedeclinfo) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_unparsedeclinfo)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Unparsedeclinfo)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Unparsedeclinfo)); /*SUPPRESS 622*/ assert_patternrepresentation( patternrepresentation_1, "patternrepresentation_1" ); /*SUPPRESS 622*/ assert_patternrepresentation( patternrepresentation_2, "patternrepresentation_2" ); /*SUPPRESS 622*/ assert_unparseclause( unparseclause_1, "unparseclause_1" ); kc_x->prod_sel = sel_Unparsedeclinfo; kc_x->u.Unparsedeclinfo.patternrepresentation_1 = patternrepresentation_1; kc_x->u.Unparsedeclinfo.patternrepresentation_2 = patternrepresentation_2; kc_x->u.Unparsedeclinfo.unparseclause_1 = unparseclause_1; return kc_x; } ac_declaration AcDeclaration #ifdef KC_USE_PROTOTYPES (ac_declaration_specifiers ac_declaration_specifiers_1, ac_init_declarator_list ac_init_declarator_list_1) #else (ac_declaration_specifiers_1, ac_init_declarator_list_1) ac_declaration_specifiers ac_declaration_specifiers_1; ac_init_declarator_list ac_init_declarator_list_1; #endif { register ac_declaration kc_x = (ac_declaration) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_declaration)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDeclaration)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDeclaration)); /*SUPPRESS 622*/ assert_ac_declaration_specifiers( ac_declaration_specifiers_1, "ac_declaration_specifiers_1" ); /*SUPPRESS 622*/ assert_ac_init_declarator_list( ac_init_declarator_list_1, "ac_init_declarator_list_1" ); kc_x->prod_sel = sel_AcDeclaration; kc_x->u.AcDeclaration.ac_declaration_specifiers_1 = ac_declaration_specifiers_1; kc_x->u.AcDeclaration.ac_init_declarator_list_1 = ac_init_declarator_list_1; return kc_x; } ac_declaration_list Nilac_declaration_list #ifdef KC_USE_PROTOTYPES () #else () #endif { static ac_declaration_list kc_x = (ac_declaration_list)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilac_declaration_list)); if (kc_x == (ac_declaration_list)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilac_declaration_list )); kc_x = (ac_declaration_list)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_ac_declaration_list), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilac_declaration_list; } return kc_x; } ac_declaration_list Consac_declaration_list #ifdef KC_USE_PROTOTYPES (ac_declaration ac_declaration_1, ac_declaration_list ac_declaration_list_1) #else (ac_declaration_1, ac_declaration_list_1) ac_declaration ac_declaration_1; ac_declaration_list ac_declaration_list_1; #endif { register ac_declaration_list kc_x = (ac_declaration_list) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_declaration_list)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consac_declaration_list)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consac_declaration_list)); /*SUPPRESS 622*/ assert_ac_declaration( ac_declaration_1, "ac_declaration_1" ); /*SUPPRESS 622*/ assert_ac_declaration_list( ac_declaration_list_1, "ac_declaration_list_1" ); kc_x->prod_sel = sel_Consac_declaration_list; kc_x->u.Consac_declaration_list.ac_declaration_1 = ac_declaration_1; kc_x->u.Consac_declaration_list.ac_declaration_list_1 = ac_declaration_list_1; return kc_x; } ac_declaration_specifiers Nilac_declaration_specifiers #ifdef KC_USE_PROTOTYPES () #else () #endif { static ac_declaration_specifiers kc_x = (ac_declaration_specifiers)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilac_declaration_specifiers)); if (kc_x == (ac_declaration_specifiers)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilac_declaration_specifiers )); kc_x = (ac_declaration_specifiers)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_ac_declaration_specifiers), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilac_declaration_specifiers; } return kc_x; } ac_declaration_specifiers Consac_declaration_specifiers #ifdef KC_USE_PROTOTYPES (ac_declaration_specifier ac_declaration_specifier_1, ac_declaration_specifiers ac_declaration_specifiers_1) #else (ac_declaration_specifier_1, ac_declaration_specifiers_1) ac_declaration_specifier ac_declaration_specifier_1; ac_declaration_specifiers ac_declaration_specifiers_1; #endif { register ac_declaration_specifiers kc_x = (ac_declaration_specifiers) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_declaration_specifiers)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consac_declaration_specifiers)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consac_declaration_specifiers)); /*SUPPRESS 622*/ assert_ac_declaration_specifier( ac_declaration_specifier_1, "ac_declaration_specifier_1" ); /*SUPPRESS 622*/ assert_ac_declaration_specifiers( ac_declaration_specifiers_1, "ac_declaration_specifiers_1" ); kc_x->prod_sel = sel_Consac_declaration_specifiers; kc_x->u.Consac_declaration_specifiers.ac_declaration_specifier_1 = ac_declaration_specifier_1; kc_x->u.Consac_declaration_specifiers.ac_declaration_specifiers_1 = ac_declaration_specifiers_1; return kc_x; } ac_declaration_specifier AcDeclSpecStorageSpec #ifdef KC_USE_PROTOTYPES (ac_storage_class_specifier ac_storage_class_specifier_1) #else (ac_storage_class_specifier_1) ac_storage_class_specifier ac_storage_class_specifier_1; #endif { register ac_declaration_specifier kc_x = (ac_declaration_specifier) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_declaration_specifier)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDeclSpecStorageSpec)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDeclSpecStorageSpec)); /*SUPPRESS 622*/ assert_ac_storage_class_specifier( ac_storage_class_specifier_1, "ac_storage_class_specifier_1" ); kc_x->prod_sel = sel_AcDeclSpecStorageSpec; kc_x->u.AcDeclSpecStorageSpec.ac_storage_class_specifier_1 = ac_storage_class_specifier_1; return kc_x; } ac_declaration_specifier AcDeclSpecTypeSpec #ifdef KC_USE_PROTOTYPES (ac_type_specifier ac_type_specifier_1) #else (ac_type_specifier_1) ac_type_specifier ac_type_specifier_1; #endif { register ac_declaration_specifier kc_x = (ac_declaration_specifier) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_declaration_specifier)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDeclSpecTypeSpec)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDeclSpecTypeSpec)); /*SUPPRESS 622*/ assert_ac_type_specifier( ac_type_specifier_1, "ac_type_specifier_1" ); kc_x->prod_sel = sel_AcDeclSpecTypeSpec; kc_x->u.AcDeclSpecTypeSpec.ac_type_specifier_1 = ac_type_specifier_1; return kc_x; } ac_declaration_specifier AcDeclSpecTypeQual #ifdef KC_USE_PROTOTYPES (ac_type_qualifier ac_type_qualifier_1) #else (ac_type_qualifier_1) ac_type_qualifier ac_type_qualifier_1; #endif { register ac_declaration_specifier kc_x = (ac_declaration_specifier) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_declaration_specifier)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDeclSpecTypeQual)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDeclSpecTypeQual)); /*SUPPRESS 622*/ assert_ac_type_qualifier( ac_type_qualifier_1, "ac_type_qualifier_1" ); kc_x->prod_sel = sel_AcDeclSpecTypeQual; kc_x->u.AcDeclSpecTypeQual.ac_type_qualifier_1 = ac_type_qualifier_1; return kc_x; } ac_storage_class_specifier AcAuto #ifdef KC_USE_PROTOTYPES () #else () #endif { static ac_storage_class_specifier kc_x = (ac_storage_class_specifier)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcAuto)); if (kc_x == (ac_storage_class_specifier)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcAuto )); kc_x = (ac_storage_class_specifier)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_ac_storage_class_specifier), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_AcAuto; } return kc_x; } ac_storage_class_specifier AcRegister #ifdef KC_USE_PROTOTYPES () #else () #endif { static ac_storage_class_specifier kc_x = (ac_storage_class_specifier)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcRegister)); if (kc_x == (ac_storage_class_specifier)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcRegister )); kc_x = (ac_storage_class_specifier)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_ac_storage_class_specifier), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_AcRegister; } return kc_x; } ac_storage_class_specifier AcStatic #ifdef KC_USE_PROTOTYPES () #else () #endif { static ac_storage_class_specifier kc_x = (ac_storage_class_specifier)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcStatic)); if (kc_x == (ac_storage_class_specifier)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcStatic )); kc_x = (ac_storage_class_specifier)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_ac_storage_class_specifier), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_AcStatic; } return kc_x; } ac_storage_class_specifier AcExtern #ifdef KC_USE_PROTOTYPES () #else () #endif { static ac_storage_class_specifier kc_x = (ac_storage_class_specifier)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcExtern)); if (kc_x == (ac_storage_class_specifier)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcExtern )); kc_x = (ac_storage_class_specifier)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_ac_storage_class_specifier), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_AcExtern; } return kc_x; } ac_storage_class_specifier AcTypedef #ifdef KC_USE_PROTOTYPES () #else () #endif { static ac_storage_class_specifier kc_x = (ac_storage_class_specifier)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcTypedef)); if (kc_x == (ac_storage_class_specifier)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcTypedef )); kc_x = (ac_storage_class_specifier)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_ac_storage_class_specifier), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_AcTypedef; } return kc_x; } ac_type_specifier AcTypeSpec #ifdef KC_USE_PROTOTYPES (ID ID_1) #else (ID_1) ID ID_1; #endif { register ac_type_specifier kc_x = (ac_type_specifier) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_type_specifier)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcTypeSpec)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcTypeSpec)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_AcTypeSpec; kc_x->u.AcTypeSpec.ID_1 = ID_1; return kc_x; } ac_type_qualifier AcConst #ifdef KC_USE_PROTOTYPES () #else () #endif { static ac_type_qualifier kc_x = (ac_type_qualifier)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcConst)); if (kc_x == (ac_type_qualifier)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcConst )); kc_x = (ac_type_qualifier)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_ac_type_qualifier), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_AcConst; } return kc_x; } ac_type_qualifier AcVolatile #ifdef KC_USE_PROTOTYPES () #else () #endif { static ac_type_qualifier kc_x = (ac_type_qualifier)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcVolatile)); if (kc_x == (ac_type_qualifier)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcVolatile )); kc_x = (ac_type_qualifier)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_ac_type_qualifier), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_AcVolatile; } return kc_x; } ac_init_declarator_list Nilac_init_declarator_list #ifdef KC_USE_PROTOTYPES () #else () #endif { static ac_init_declarator_list kc_x = (ac_init_declarator_list)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilac_init_declarator_list)); if (kc_x == (ac_init_declarator_list)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilac_init_declarator_list )); kc_x = (ac_init_declarator_list)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_ac_init_declarator_list), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilac_init_declarator_list; } return kc_x; } ac_init_declarator_list Consac_init_declarator_list #ifdef KC_USE_PROTOTYPES (ac_init_declarator ac_init_declarator_1, ac_init_declarator_list ac_init_declarator_list_1) #else (ac_init_declarator_1, ac_init_declarator_list_1) ac_init_declarator ac_init_declarator_1; ac_init_declarator_list ac_init_declarator_list_1; #endif { register ac_init_declarator_list kc_x = (ac_init_declarator_list) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_init_declarator_list)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consac_init_declarator_list)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consac_init_declarator_list)); /*SUPPRESS 622*/ assert_ac_init_declarator( ac_init_declarator_1, "ac_init_declarator_1" ); /*SUPPRESS 622*/ assert_ac_init_declarator_list( ac_init_declarator_list_1, "ac_init_declarator_list_1" ); kc_x->prod_sel = sel_Consac_init_declarator_list; kc_x->u.Consac_init_declarator_list.ac_init_declarator_1 = ac_init_declarator_1; kc_x->u.Consac_init_declarator_list.ac_init_declarator_list_1 = ac_init_declarator_list_1; return kc_x; } ac_init_declarator AcInitDecl #ifdef KC_USE_PROTOTYPES (ac_declarator ac_declarator_1) #else (ac_declarator_1) ac_declarator ac_declarator_1; #endif { register ac_init_declarator kc_x = (ac_init_declarator) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_init_declarator)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcInitDecl)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcInitDecl)); /*SUPPRESS 622*/ assert_ac_declarator( ac_declarator_1, "ac_declarator_1" ); kc_x->prod_sel = sel_AcInitDecl; kc_x->u.AcInitDecl.ac_declarator_1 = ac_declarator_1; return kc_x; } ac_declarator AcDeclarator #ifdef KC_USE_PROTOTYPES (ac_pointer_option ac_pointer_option_1, ac_direct_declarator ac_direct_declarator_1) #else (ac_pointer_option_1, ac_direct_declarator_1) ac_pointer_option ac_pointer_option_1; ac_direct_declarator ac_direct_declarator_1; #endif { register ac_declarator kc_x = (ac_declarator) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_declarator)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDeclarator)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDeclarator)); /*SUPPRESS 622*/ assert_ac_pointer_option( ac_pointer_option_1, "ac_pointer_option_1" ); /*SUPPRESS 622*/ assert_ac_direct_declarator( ac_direct_declarator_1, "ac_direct_declarator_1" ); kc_x->prod_sel = sel_AcDeclarator; kc_x->u.AcDeclarator.ac_pointer_option_1 = ac_pointer_option_1; kc_x->u.AcDeclarator.ac_direct_declarator_1 = ac_direct_declarator_1; return kc_x; } ac_direct_declarator AcDirectDeclId #ifdef KC_USE_PROTOTYPES (ID ID_1) #else (ID_1) ID ID_1; #endif { register ac_direct_declarator kc_x = (ac_direct_declarator) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_direct_declarator)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDirectDeclId)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDirectDeclId)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_AcDirectDeclId; kc_x->u.AcDirectDeclId.ID_1 = ID_1; return kc_x; } ac_direct_declarator AcDirectDeclPack #ifdef KC_USE_PROTOTYPES (ac_declarator ac_declarator_1) #else (ac_declarator_1) ac_declarator ac_declarator_1; #endif { register ac_direct_declarator kc_x = (ac_direct_declarator) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_direct_declarator)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDirectDeclPack)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDirectDeclPack)); /*SUPPRESS 622*/ assert_ac_declarator( ac_declarator_1, "ac_declarator_1" ); kc_x->prod_sel = sel_AcDirectDeclPack; kc_x->u.AcDirectDeclPack.ac_declarator_1 = ac_declarator_1; return kc_x; } ac_direct_declarator AcDirectDeclArray #ifdef KC_USE_PROTOTYPES (ac_direct_declarator ac_direct_declarator_1, ac_constant_expression_option ac_constant_expression_option_1) #else (ac_direct_declarator_1, ac_constant_expression_option_1) ac_direct_declarator ac_direct_declarator_1; ac_constant_expression_option ac_constant_expression_option_1; #endif { register ac_direct_declarator kc_x = (ac_direct_declarator) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_direct_declarator)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDirectDeclArray)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDirectDeclArray)); /*SUPPRESS 622*/ assert_ac_direct_declarator( ac_direct_declarator_1, "ac_direct_declarator_1" ); /*SUPPRESS 622*/ assert_ac_constant_expression_option( ac_constant_expression_option_1, "ac_constant_expression_option_1" ); kc_x->prod_sel = sel_AcDirectDeclArray; kc_x->u.AcDirectDeclArray.ac_direct_declarator_1 = ac_direct_declarator_1; kc_x->u.AcDirectDeclArray.ac_constant_expression_option_1 = ac_constant_expression_option_1; return kc_x; } ac_direct_declarator AcDirectDeclProto #ifdef KC_USE_PROTOTYPES (ac_direct_declarator ac_direct_declarator_1, ac_parameter_type_list ac_parameter_type_list_1) #else (ac_direct_declarator_1, ac_parameter_type_list_1) ac_direct_declarator ac_direct_declarator_1; ac_parameter_type_list ac_parameter_type_list_1; #endif { register ac_direct_declarator kc_x = (ac_direct_declarator) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_direct_declarator)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDirectDeclProto)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDirectDeclProto)); /*SUPPRESS 622*/ assert_ac_direct_declarator( ac_direct_declarator_1, "ac_direct_declarator_1" ); /*SUPPRESS 622*/ assert_ac_parameter_type_list( ac_parameter_type_list_1, "ac_parameter_type_list_1" ); kc_x->prod_sel = sel_AcDirectDeclProto; kc_x->u.AcDirectDeclProto.ac_direct_declarator_1 = ac_direct_declarator_1; kc_x->u.AcDirectDeclProto.ac_parameter_type_list_1 = ac_parameter_type_list_1; return kc_x; } ac_direct_declarator AcDirectDeclKandR #ifdef KC_USE_PROTOTYPES (ac_direct_declarator ac_direct_declarator_1, ac_identifier_list ac_identifier_list_1) #else (ac_direct_declarator_1, ac_identifier_list_1) ac_direct_declarator ac_direct_declarator_1; ac_identifier_list ac_identifier_list_1; #endif { register ac_direct_declarator kc_x = (ac_direct_declarator) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_direct_declarator)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDirectDeclKandR)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDirectDeclKandR)); /*SUPPRESS 622*/ assert_ac_direct_declarator( ac_direct_declarator_1, "ac_direct_declarator_1" ); /*SUPPRESS 622*/ assert_ac_identifier_list( ac_identifier_list_1, "ac_identifier_list_1" ); kc_x->prod_sel = sel_AcDirectDeclKandR; kc_x->u.AcDirectDeclKandR.ac_direct_declarator_1 = ac_direct_declarator_1; kc_x->u.AcDirectDeclKandR.ac_identifier_list_1 = ac_identifier_list_1; return kc_x; } ac_pointer_option Nopointer #ifdef KC_USE_PROTOTYPES () #else () #endif { static ac_pointer_option kc_x = (ac_pointer_option)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nopointer)); if (kc_x == (ac_pointer_option)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nopointer )); kc_x = (ac_pointer_option)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_ac_pointer_option), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nopointer; } return kc_x; } ac_pointer_option Yespointer #ifdef KC_USE_PROTOTYPES (ac_pointer ac_pointer_1) #else (ac_pointer_1) ac_pointer ac_pointer_1; #endif { register ac_pointer_option kc_x = (ac_pointer_option) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_pointer_option)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Yespointer)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Yespointer)); /*SUPPRESS 622*/ assert_ac_pointer( ac_pointer_1, "ac_pointer_1" ); kc_x->prod_sel = sel_Yespointer; kc_x->u.Yespointer.ac_pointer_1 = ac_pointer_1; return kc_x; } ac_pointer AcPointerNil #ifdef KC_USE_PROTOTYPES (ac_type_qualifier_list ac_type_qualifier_list_1) #else (ac_type_qualifier_list_1) ac_type_qualifier_list ac_type_qualifier_list_1; #endif { register ac_pointer kc_x = (ac_pointer) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_pointer)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcPointerNil)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcPointerNil)); /*SUPPRESS 622*/ assert_ac_type_qualifier_list( ac_type_qualifier_list_1, "ac_type_qualifier_list_1" ); kc_x->prod_sel = sel_AcPointerNil; kc_x->u.AcPointerNil.ac_type_qualifier_list_1 = ac_type_qualifier_list_1; return kc_x; } ac_pointer AcPointerCons #ifdef KC_USE_PROTOTYPES (ac_type_qualifier_list ac_type_qualifier_list_1, ac_pointer ac_pointer_1) #else (ac_type_qualifier_list_1, ac_pointer_1) ac_type_qualifier_list ac_type_qualifier_list_1; ac_pointer ac_pointer_1; #endif { register ac_pointer kc_x = (ac_pointer) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_pointer)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcPointerCons)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcPointerCons)); /*SUPPRESS 622*/ assert_ac_type_qualifier_list( ac_type_qualifier_list_1, "ac_type_qualifier_list_1" ); /*SUPPRESS 622*/ assert_ac_pointer( ac_pointer_1, "ac_pointer_1" ); kc_x->prod_sel = sel_AcPointerCons; kc_x->u.AcPointerCons.ac_type_qualifier_list_1 = ac_type_qualifier_list_1; kc_x->u.AcPointerCons.ac_pointer_1 = ac_pointer_1; return kc_x; } ac_type_qualifier_list Nilac_type_qualifier_list #ifdef KC_USE_PROTOTYPES () #else () #endif { static ac_type_qualifier_list kc_x = (ac_type_qualifier_list)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilac_type_qualifier_list)); if (kc_x == (ac_type_qualifier_list)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilac_type_qualifier_list )); kc_x = (ac_type_qualifier_list)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_ac_type_qualifier_list), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilac_type_qualifier_list; } return kc_x; } ac_type_qualifier_list Consac_type_qualifier_list #ifdef KC_USE_PROTOTYPES (ac_type_qualifier ac_type_qualifier_1, ac_type_qualifier_list ac_type_qualifier_list_1) #else (ac_type_qualifier_1, ac_type_qualifier_list_1) ac_type_qualifier ac_type_qualifier_1; ac_type_qualifier_list ac_type_qualifier_list_1; #endif { register ac_type_qualifier_list kc_x = (ac_type_qualifier_list) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_type_qualifier_list)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consac_type_qualifier_list)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consac_type_qualifier_list)); /*SUPPRESS 622*/ assert_ac_type_qualifier( ac_type_qualifier_1, "ac_type_qualifier_1" ); /*SUPPRESS 622*/ assert_ac_type_qualifier_list( ac_type_qualifier_list_1, "ac_type_qualifier_list_1" ); kc_x->prod_sel = sel_Consac_type_qualifier_list; kc_x->u.Consac_type_qualifier_list.ac_type_qualifier_1 = ac_type_qualifier_1; kc_x->u.Consac_type_qualifier_list.ac_type_qualifier_list_1 = ac_type_qualifier_list_1; return kc_x; } ac_parameter_type_list AcParList #ifdef KC_USE_PROTOTYPES (ac_parameter_list ac_parameter_list_1) #else (ac_parameter_list_1) ac_parameter_list ac_parameter_list_1; #endif { register ac_parameter_type_list kc_x = (ac_parameter_type_list) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_parameter_type_list)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcParList)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcParList)); /*SUPPRESS 622*/ assert_ac_parameter_list( ac_parameter_list_1, "ac_parameter_list_1" ); kc_x->prod_sel = sel_AcParList; kc_x->u.AcParList.ac_parameter_list_1 = ac_parameter_list_1; return kc_x; } ac_parameter_type_list AcParList3Dot #ifdef KC_USE_PROTOTYPES (ac_parameter_list ac_parameter_list_1) #else (ac_parameter_list_1) ac_parameter_list ac_parameter_list_1; #endif { register ac_parameter_type_list kc_x = (ac_parameter_type_list) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_parameter_type_list)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcParList3Dot)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcParList3Dot)); /*SUPPRESS 622*/ assert_ac_parameter_list( ac_parameter_list_1, "ac_parameter_list_1" ); kc_x->prod_sel = sel_AcParList3Dot; kc_x->u.AcParList3Dot.ac_parameter_list_1 = ac_parameter_list_1; return kc_x; } ac_parameter_list Nilac_parameter_list #ifdef KC_USE_PROTOTYPES () #else () #endif { static ac_parameter_list kc_x = (ac_parameter_list)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilac_parameter_list)); if (kc_x == (ac_parameter_list)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilac_parameter_list )); kc_x = (ac_parameter_list)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_ac_parameter_list), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilac_parameter_list; } return kc_x; } ac_parameter_list Consac_parameter_list #ifdef KC_USE_PROTOTYPES (ac_parameter_declaration ac_parameter_declaration_1, ac_parameter_list ac_parameter_list_1) #else (ac_parameter_declaration_1, ac_parameter_list_1) ac_parameter_declaration ac_parameter_declaration_1; ac_parameter_list ac_parameter_list_1; #endif { register ac_parameter_list kc_x = (ac_parameter_list) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_parameter_list)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consac_parameter_list)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consac_parameter_list)); /*SUPPRESS 622*/ assert_ac_parameter_declaration( ac_parameter_declaration_1, "ac_parameter_declaration_1" ); /*SUPPRESS 622*/ assert_ac_parameter_list( ac_parameter_list_1, "ac_parameter_list_1" ); kc_x->prod_sel = sel_Consac_parameter_list; kc_x->u.Consac_parameter_list.ac_parameter_declaration_1 = ac_parameter_declaration_1; kc_x->u.Consac_parameter_list.ac_parameter_list_1 = ac_parameter_list_1; return kc_x; } ac_parameter_declaration AcParDeclDecl #ifdef KC_USE_PROTOTYPES (ac_declaration_specifiers ac_declaration_specifiers_1, ac_declarator ac_declarator_1) #else (ac_declaration_specifiers_1, ac_declarator_1) ac_declaration_specifiers ac_declaration_specifiers_1; ac_declarator ac_declarator_1; #endif { register ac_parameter_declaration kc_x = (ac_parameter_declaration) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_parameter_declaration)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcParDeclDecl)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcParDeclDecl)); /*SUPPRESS 622*/ assert_ac_declaration_specifiers( ac_declaration_specifiers_1, "ac_declaration_specifiers_1" ); /*SUPPRESS 622*/ assert_ac_declarator( ac_declarator_1, "ac_declarator_1" ); kc_x->prod_sel = sel_AcParDeclDecl; kc_x->u.AcParDeclDecl.ac_declaration_specifiers_1 = ac_declaration_specifiers_1; kc_x->u.AcParDeclDecl.ac_declarator_1 = ac_declarator_1; return kc_x; } ac_parameter_declaration AcParDeclAbsdecl #ifdef KC_USE_PROTOTYPES (ac_declaration_specifiers ac_declaration_specifiers_1, ac_abstract_declarator ac_abstract_declarator_1) #else (ac_declaration_specifiers_1, ac_abstract_declarator_1) ac_declaration_specifiers ac_declaration_specifiers_1; ac_abstract_declarator ac_abstract_declarator_1; #endif { register ac_parameter_declaration kc_x = (ac_parameter_declaration) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_parameter_declaration)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcParDeclAbsdecl)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcParDeclAbsdecl)); /*SUPPRESS 622*/ assert_ac_declaration_specifiers( ac_declaration_specifiers_1, "ac_declaration_specifiers_1" ); /*SUPPRESS 622*/ assert_ac_abstract_declarator( ac_abstract_declarator_1, "ac_abstract_declarator_1" ); kc_x->prod_sel = sel_AcParDeclAbsdecl; kc_x->u.AcParDeclAbsdecl.ac_declaration_specifiers_1 = ac_declaration_specifiers_1; kc_x->u.AcParDeclAbsdecl.ac_abstract_declarator_1 = ac_abstract_declarator_1; return kc_x; } ac_identifier_list Nilac_identifier_list #ifdef KC_USE_PROTOTYPES () #else () #endif { static ac_identifier_list kc_x = (ac_identifier_list)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilac_identifier_list)); if (kc_x == (ac_identifier_list)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilac_identifier_list )); kc_x = (ac_identifier_list)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_ac_identifier_list), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilac_identifier_list; } return kc_x; } ac_identifier_list Consac_identifier_list #ifdef KC_USE_PROTOTYPES (ID ID_1, ac_identifier_list ac_identifier_list_1) #else (ID_1, ac_identifier_list_1) ID ID_1; ac_identifier_list ac_identifier_list_1; #endif { register ac_identifier_list kc_x = (ac_identifier_list) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_identifier_list)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consac_identifier_list)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consac_identifier_list)); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_ac_identifier_list( ac_identifier_list_1, "ac_identifier_list_1" ); kc_x->prod_sel = sel_Consac_identifier_list; kc_x->u.Consac_identifier_list.ID_1 = ID_1; kc_x->u.Consac_identifier_list.ac_identifier_list_1 = ac_identifier_list_1; return kc_x; } ac_abstract_declarator AcAbsdeclPointer #ifdef KC_USE_PROTOTYPES (ac_pointer ac_pointer_1) #else (ac_pointer_1) ac_pointer ac_pointer_1; #endif { register ac_abstract_declarator kc_x = (ac_abstract_declarator) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_abstract_declarator)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcAbsdeclPointer)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcAbsdeclPointer)); /*SUPPRESS 622*/ assert_ac_pointer( ac_pointer_1, "ac_pointer_1" ); kc_x->prod_sel = sel_AcAbsdeclPointer; kc_x->u.AcAbsdeclPointer.ac_pointer_1 = ac_pointer_1; return kc_x; } ac_abstract_declarator AcAbsdeclDirdecl #ifdef KC_USE_PROTOTYPES (ac_pointer_option ac_pointer_option_1, ac_direct_abstract_declarator ac_direct_abstract_declarator_1) #else (ac_pointer_option_1, ac_direct_abstract_declarator_1) ac_pointer_option ac_pointer_option_1; ac_direct_abstract_declarator ac_direct_abstract_declarator_1; #endif { register ac_abstract_declarator kc_x = (ac_abstract_declarator) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_abstract_declarator)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcAbsdeclDirdecl)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcAbsdeclDirdecl)); /*SUPPRESS 622*/ assert_ac_pointer_option( ac_pointer_option_1, "ac_pointer_option_1" ); /*SUPPRESS 622*/ assert_ac_direct_abstract_declarator( ac_direct_abstract_declarator_1, "ac_direct_abstract_declarator_1" ); kc_x->prod_sel = sel_AcAbsdeclDirdecl; kc_x->u.AcAbsdeclDirdecl.ac_pointer_option_1 = ac_pointer_option_1; kc_x->u.AcAbsdeclDirdecl.ac_direct_abstract_declarator_1 = ac_direct_abstract_declarator_1; return kc_x; } ac_direct_abstract_declarator_option Noac_direct_abstract_declarator #ifdef KC_USE_PROTOTYPES () #else () #endif { static ac_direct_abstract_declarator_option kc_x = (ac_direct_abstract_declarator_option)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Noac_direct_abstract_declarator)); if (kc_x == (ac_direct_abstract_declarator_option)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Noac_direct_abstract_declarator )); kc_x = (ac_direct_abstract_declarator_option)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_ac_direct_abstract_declarator_option), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Noac_direct_abstract_declarator; } return kc_x; } ac_direct_abstract_declarator_option Yesac_direct_abstract_declarator #ifdef KC_USE_PROTOTYPES (ac_direct_abstract_declarator ac_direct_abstract_declarator_1) #else (ac_direct_abstract_declarator_1) ac_direct_abstract_declarator ac_direct_abstract_declarator_1; #endif { register ac_direct_abstract_declarator_option kc_x = (ac_direct_abstract_declarator_option) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_direct_abstract_declarator_option)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Yesac_direct_abstract_declarator)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Yesac_direct_abstract_declarator)); /*SUPPRESS 622*/ assert_ac_direct_abstract_declarator( ac_direct_abstract_declarator_1, "ac_direct_abstract_declarator_1" ); kc_x->prod_sel = sel_Yesac_direct_abstract_declarator; kc_x->u.Yesac_direct_abstract_declarator.ac_direct_abstract_declarator_1 = ac_direct_abstract_declarator_1; return kc_x; } ac_direct_abstract_declarator AcDirAbsdeclPack #ifdef KC_USE_PROTOTYPES (ac_abstract_declarator ac_abstract_declarator_1) #else (ac_abstract_declarator_1) ac_abstract_declarator ac_abstract_declarator_1; #endif { register ac_direct_abstract_declarator kc_x = (ac_direct_abstract_declarator) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_direct_abstract_declarator)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDirAbsdeclPack)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDirAbsdeclPack)); /*SUPPRESS 622*/ assert_ac_abstract_declarator( ac_abstract_declarator_1, "ac_abstract_declarator_1" ); kc_x->prod_sel = sel_AcDirAbsdeclPack; kc_x->u.AcDirAbsdeclPack.ac_abstract_declarator_1 = ac_abstract_declarator_1; return kc_x; } ac_direct_abstract_declarator AcDirAbsdeclArray #ifdef KC_USE_PROTOTYPES (ac_direct_abstract_declarator_option ac_direct_abstract_declarator_option_1, ac_constant_expression_option ac_constant_expression_option_1) #else (ac_direct_abstract_declarator_option_1, ac_constant_expression_option_1) ac_direct_abstract_declarator_option ac_direct_abstract_declarator_option_1; ac_constant_expression_option ac_constant_expression_option_1; #endif { register ac_direct_abstract_declarator kc_x = (ac_direct_abstract_declarator) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_direct_abstract_declarator)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDirAbsdeclArray)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDirAbsdeclArray)); /*SUPPRESS 622*/ assert_ac_direct_abstract_declarator_option( ac_direct_abstract_declarator_option_1, "ac_direct_abstract_declarator_option_1" ); /*SUPPRESS 622*/ assert_ac_constant_expression_option( ac_constant_expression_option_1, "ac_constant_expression_option_1" ); kc_x->prod_sel = sel_AcDirAbsdeclArray; kc_x->u.AcDirAbsdeclArray.ac_direct_abstract_declarator_option_1 = ac_direct_abstract_declarator_option_1; kc_x->u.AcDirAbsdeclArray.ac_constant_expression_option_1 = ac_constant_expression_option_1; return kc_x; } ac_direct_abstract_declarator AcDirAbsdeclFn #ifdef KC_USE_PROTOTYPES (ac_direct_abstract_declarator_option ac_direct_abstract_declarator_option_1, ac_parameter_type_list ac_parameter_type_list_1) #else (ac_direct_abstract_declarator_option_1, ac_parameter_type_list_1) ac_direct_abstract_declarator_option ac_direct_abstract_declarator_option_1; ac_parameter_type_list ac_parameter_type_list_1; #endif { register ac_direct_abstract_declarator kc_x = (ac_direct_abstract_declarator) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_direct_abstract_declarator)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcDirAbsdeclFn)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcDirAbsdeclFn)); /*SUPPRESS 622*/ assert_ac_direct_abstract_declarator_option( ac_direct_abstract_declarator_option_1, "ac_direct_abstract_declarator_option_1" ); /*SUPPRESS 622*/ assert_ac_parameter_type_list( ac_parameter_type_list_1, "ac_parameter_type_list_1" ); kc_x->prod_sel = sel_AcDirAbsdeclFn; kc_x->u.AcDirAbsdeclFn.ac_direct_abstract_declarator_option_1 = ac_direct_abstract_declarator_option_1; kc_x->u.AcDirAbsdeclFn.ac_parameter_type_list_1 = ac_parameter_type_list_1; return kc_x; } ac_constant_expression_option Yesac_constant_expression #ifdef KC_USE_PROTOTYPES (ac_constant_expression ac_constant_expression_1) #else (ac_constant_expression_1) ac_constant_expression ac_constant_expression_1; #endif { register ac_constant_expression_option kc_x = (ac_constant_expression_option) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_constant_expression_option)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Yesac_constant_expression)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Yesac_constant_expression)); /*SUPPRESS 622*/ assert_ac_constant_expression( ac_constant_expression_1, "ac_constant_expression_1" ); kc_x->prod_sel = sel_Yesac_constant_expression; kc_x->u.Yesac_constant_expression.ac_constant_expression_1 = ac_constant_expression_1; return kc_x; } ac_constant_expression AcConstExpr #ifdef KC_USE_PROTOTYPES (Cexpression Cexpression_1) #else (Cexpression_1) Cexpression Cexpression_1; #endif { register ac_constant_expression kc_x = (ac_constant_expression) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_ac_constant_expression)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AcConstExpr)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AcConstExpr)); /*SUPPRESS 622*/ assert_Cexpression( Cexpression_1, "Cexpression_1" ); kc_x->prod_sel = sel_AcConstExpr; kc_x->u.AcConstExpr.Cexpression_1 = Cexpression_1; return kc_x; } error Fatal #ifdef KC_USE_PROTOTYPES (fileline fileline_1, problem problem_1) #else (fileline_1, problem_1) fileline fileline_1; problem problem_1; #endif { register error kc_x = (error) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_error)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Fatal)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Fatal)); /*SUPPRESS 622*/ assert_fileline( fileline_1, "fileline_1" ); /*SUPPRESS 622*/ assert_problem( problem_1, "problem_1" ); kc_x->prod_sel = sel_Fatal; kc_x->u.Fatal.fileline_1 = fileline_1; kc_x->u.Fatal.problem_1 = problem_1; return kc_x; } error NonFatal #ifdef KC_USE_PROTOTYPES (fileline fileline_1, problem problem_1) #else (fileline_1, problem_1) fileline fileline_1; problem problem_1; #endif { register error kc_x = (error) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_error)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NonFatal)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NonFatal)); /*SUPPRESS 622*/ assert_fileline( fileline_1, "fileline_1" ); /*SUPPRESS 622*/ assert_problem( problem_1, "problem_1" ); kc_x->prod_sel = sel_NonFatal; kc_x->u.NonFatal.fileline_1 = fileline_1; kc_x->u.NonFatal.problem_1 = problem_1; return kc_x; } error Warning #ifdef KC_USE_PROTOTYPES (fileline fileline_1, problem problem_1) #else (fileline_1, problem_1) fileline fileline_1; problem problem_1; #endif { register error kc_x = (error) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_error)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Warning)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Warning)); /*SUPPRESS 622*/ assert_fileline( fileline_1, "fileline_1" ); /*SUPPRESS 622*/ assert_problem( problem_1, "problem_1" ); kc_x->prod_sel = sel_Warning; kc_x->u.Warning.fileline_1 = fileline_1; kc_x->u.Warning.problem_1 = problem_1; return kc_x; } problem Problem1 #ifdef KC_USE_PROTOTYPES (casestring casestring_1) #else (casestring_1) casestring casestring_1; #endif { register problem kc_x = (problem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_problem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); kc_x->prod_sel = sel_Problem1; kc_x->u.Problem1.casestring_1 = casestring_1; return kc_x; } problem Problem1ID #ifdef KC_USE_PROTOTYPES (casestring casestring_1, ID ID_1) #else (casestring_1, ID_1) casestring casestring_1; ID ID_1; #endif { register problem kc_x = (problem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_problem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1ID)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1ID)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_Problem1ID; kc_x->u.Problem1ID.casestring_1 = casestring_1; kc_x->u.Problem1ID.ID_1 = ID_1; return kc_x; } problem Problem1tID #ifdef KC_USE_PROTOTYPES (casestring casestring_1, ID ID_1) #else (casestring_1, ID_1) casestring casestring_1; ID ID_1; #endif { register problem kc_x = (problem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_problem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1tID)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1tID)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_Problem1tID; kc_x->u.Problem1tID.casestring_1 = casestring_1; kc_x->u.Problem1tID.ID_1 = ID_1; return kc_x; } problem Problem1we #ifdef KC_USE_PROTOTYPES (casestring casestring_1, withexpression withexpression_1) #else (casestring_1, withexpression_1) casestring casestring_1; withexpression withexpression_1; #endif { register problem kc_x = (problem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_problem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1we)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1we)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); /*SUPPRESS 622*/ assert_withexpression( withexpression_1, "withexpression_1" ); kc_x->prod_sel = sel_Problem1we; kc_x->u.Problem1we.casestring_1 = casestring_1; kc_x->u.Problem1we.withexpression_1 = withexpression_1; return kc_x; } problem Problem1ID1ID #ifdef KC_USE_PROTOTYPES (casestring casestring_1, ID ID_1, casestring casestring_2, ID ID_2) #else (casestring_1, ID_1, casestring_2, ID_2) casestring casestring_1; ID ID_1; casestring casestring_2; ID ID_2; #endif { register problem kc_x = (problem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_problem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1ID1ID)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1ID1ID)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_casestring( casestring_2, "casestring_2" ); /*SUPPRESS 622*/ assert_ID( ID_2, "ID_2" ); kc_x->prod_sel = sel_Problem1ID1ID; kc_x->u.Problem1ID1ID.casestring_1 = casestring_1; kc_x->u.Problem1ID1ID.ID_1 = ID_1; kc_x->u.Problem1ID1ID.casestring_2 = casestring_2; kc_x->u.Problem1ID1ID.ID_2 = ID_2; return kc_x; } problem Problem1t1ID #ifdef KC_USE_PROTOTYPES (casestring casestring_1, IDtype IDtype_1, casestring casestring_2, ID ID_1) #else (casestring_1, IDtype_1, casestring_2, ID_1) casestring casestring_1; IDtype IDtype_1; casestring casestring_2; ID ID_1; #endif { register problem kc_x = (problem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_problem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1t1ID)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1t1ID)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); /*SUPPRESS 622*/ assert_IDtype( IDtype_1, "IDtype_1" ); /*SUPPRESS 622*/ assert_casestring( casestring_2, "casestring_2" ); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_Problem1t1ID; kc_x->u.Problem1t1ID.casestring_1 = casestring_1; kc_x->u.Problem1t1ID.IDtype_1 = IDtype_1; kc_x->u.Problem1t1ID.casestring_2 = casestring_2; kc_x->u.Problem1t1ID.ID_1 = ID_1; return kc_x; } problem Problem1INT #ifdef KC_USE_PROTOTYPES (casestring casestring_1, INT INT_1) #else (casestring_1, INT_1) casestring casestring_1; INT INT_1; #endif { register problem kc_x = (problem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_problem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1INT)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1INT)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); /*SUPPRESS 622*/ assert_INT( INT_1, "INT_1" ); kc_x->prod_sel = sel_Problem1INT; kc_x->u.Problem1INT.casestring_1 = casestring_1; kc_x->u.Problem1INT.INT_1 = INT_1; return kc_x; } problem Problem1int1 #ifdef KC_USE_PROTOTYPES (casestring casestring_1, int int_1, casestring casestring_2) #else (casestring_1, int_1, casestring_2) casestring casestring_1; int int_1; casestring casestring_2; #endif { register problem kc_x = (problem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_problem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1int1)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1int1)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); /*SUPPRESS 622*/ assert_int( int_1, "int_1" ); /*SUPPRESS 622*/ assert_casestring( casestring_2, "casestring_2" ); kc_x->prod_sel = sel_Problem1int1; kc_x->u.Problem1int1.casestring_1 = casestring_1; kc_x->u.Problem1int1.int_1 = int_1; kc_x->u.Problem1int1.casestring_2 = casestring_2; return kc_x; } problem Problem1INT1ID #ifdef KC_USE_PROTOTYPES (casestring casestring_1, INT INT_1, casestring casestring_2, ID ID_1) #else (casestring_1, INT_1, casestring_2, ID_1) casestring casestring_1; INT INT_1; casestring casestring_2; ID ID_1; #endif { register problem kc_x = (problem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_problem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1INT1ID)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1INT1ID)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); /*SUPPRESS 622*/ assert_INT( INT_1, "INT_1" ); /*SUPPRESS 622*/ assert_casestring( casestring_2, "casestring_2" ); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_Problem1INT1ID; kc_x->u.Problem1INT1ID.casestring_1 = casestring_1; kc_x->u.Problem1INT1ID.INT_1 = INT_1; kc_x->u.Problem1INT1ID.casestring_2 = casestring_2; kc_x->u.Problem1INT1ID.ID_1 = ID_1; return kc_x; } problem Problem1ID1ID1ID #ifdef KC_USE_PROTOTYPES (casestring casestring_1, ID ID_1, casestring casestring_2, ID ID_2, casestring casestring_3, ID ID_3) #else (casestring_1, ID_1, casestring_2, ID_2, casestring_3, ID_3) casestring casestring_1; ID ID_1; casestring casestring_2; ID ID_2; casestring casestring_3; ID ID_3; #endif { register problem kc_x = (problem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_problem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1ID1ID1ID)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1ID1ID1ID)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_casestring( casestring_2, "casestring_2" ); /*SUPPRESS 622*/ assert_ID( ID_2, "ID_2" ); /*SUPPRESS 622*/ assert_casestring( casestring_3, "casestring_3" ); /*SUPPRESS 622*/ assert_ID( ID_3, "ID_3" ); kc_x->prod_sel = sel_Problem1ID1ID1ID; kc_x->u.Problem1ID1ID1ID.casestring_1 = casestring_1; kc_x->u.Problem1ID1ID1ID.ID_1 = ID_1; kc_x->u.Problem1ID1ID1ID.casestring_2 = casestring_2; kc_x->u.Problem1ID1ID1ID.ID_2 = ID_2; kc_x->u.Problem1ID1ID1ID.casestring_3 = casestring_3; kc_x->u.Problem1ID1ID1ID.ID_3 = ID_3; return kc_x; } problem Problem1INT1ID1ID #ifdef KC_USE_PROTOTYPES (casestring casestring_1, INT INT_1, casestring casestring_2, ID ID_1, casestring casestring_3, ID ID_2) #else (casestring_1, INT_1, casestring_2, ID_1, casestring_3, ID_2) casestring casestring_1; INT INT_1; casestring casestring_2; ID ID_1; casestring casestring_3; ID ID_2; #endif { register problem kc_x = (problem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_problem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1INT1ID1ID)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1INT1ID1ID)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); /*SUPPRESS 622*/ assert_INT( INT_1, "INT_1" ); /*SUPPRESS 622*/ assert_casestring( casestring_2, "casestring_2" ); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); /*SUPPRESS 622*/ assert_casestring( casestring_3, "casestring_3" ); /*SUPPRESS 622*/ assert_ID( ID_2, "ID_2" ); kc_x->prod_sel = sel_Problem1INT1ID1ID; kc_x->u.Problem1INT1ID1ID.casestring_1 = casestring_1; kc_x->u.Problem1INT1ID1ID.INT_1 = INT_1; kc_x->u.Problem1INT1ID1ID.casestring_2 = casestring_2; kc_x->u.Problem1INT1ID1ID.ID_1 = ID_1; kc_x->u.Problem1INT1ID1ID.casestring_3 = casestring_3; kc_x->u.Problem1INT1ID1ID.ID_2 = ID_2; return kc_x; } problem Problem1storageoption1ID #ifdef KC_USE_PROTOTYPES (casestring casestring_1, storageoption storageoption_1, casestring casestring_2, ID ID_1) #else (casestring_1, storageoption_1, casestring_2, ID_1) casestring casestring_1; storageoption storageoption_1; casestring casestring_2; ID ID_1; #endif { register problem kc_x = (problem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_problem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem1storageoption1ID)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem1storageoption1ID)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); /*SUPPRESS 622*/ assert_storageoption( storageoption_1, "storageoption_1" ); /*SUPPRESS 622*/ assert_casestring( casestring_2, "casestring_2" ); /*SUPPRESS 622*/ assert_ID( ID_1, "ID_1" ); kc_x->prod_sel = sel_Problem1storageoption1ID; kc_x->u.Problem1storageoption1ID.casestring_1 = casestring_1; kc_x->u.Problem1storageoption1ID.storageoption_1 = storageoption_1; kc_x->u.Problem1storageoption1ID.casestring_2 = casestring_2; kc_x->u.Problem1storageoption1ID.ID_1 = ID_1; return kc_x; } problem Problem2 #ifdef KC_USE_PROTOTYPES (casestring casestring_1, casestring casestring_2) #else (casestring_1, casestring_2) casestring casestring_1; casestring casestring_2; #endif { register problem kc_x = (problem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_problem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem2)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem2)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); /*SUPPRESS 622*/ assert_casestring( casestring_2, "casestring_2" ); kc_x->prod_sel = sel_Problem2; kc_x->u.Problem2.casestring_1 = casestring_1; kc_x->u.Problem2.casestring_2 = casestring_2; return kc_x; } problem Problem3 #ifdef KC_USE_PROTOTYPES (casestring casestring_1, casestring casestring_2, casestring casestring_3) #else (casestring_1, casestring_2, casestring_3) casestring casestring_1; casestring casestring_2; casestring casestring_3; #endif { register problem kc_x = (problem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_problem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem3)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem3)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); /*SUPPRESS 622*/ assert_casestring( casestring_2, "casestring_2" ); /*SUPPRESS 622*/ assert_casestring( casestring_3, "casestring_3" ); kc_x->prod_sel = sel_Problem3; kc_x->u.Problem3.casestring_1 = casestring_1; kc_x->u.Problem3.casestring_2 = casestring_2; kc_x->u.Problem3.casestring_3 = casestring_3; return kc_x; } problem Problem3int1 #ifdef KC_USE_PROTOTYPES (casestring casestring_1, casestring casestring_2, casestring casestring_3, int int_1, casestring casestring_4) #else (casestring_1, casestring_2, casestring_3, int_1, casestring_4) casestring casestring_1; casestring casestring_2; casestring casestring_3; int int_1; casestring casestring_4; #endif { register problem kc_x = (problem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_problem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem3int1)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem3int1)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); /*SUPPRESS 622*/ assert_casestring( casestring_2, "casestring_2" ); /*SUPPRESS 622*/ assert_casestring( casestring_3, "casestring_3" ); /*SUPPRESS 622*/ assert_int( int_1, "int_1" ); /*SUPPRESS 622*/ assert_casestring( casestring_4, "casestring_4" ); kc_x->prod_sel = sel_Problem3int1; kc_x->u.Problem3int1.casestring_1 = casestring_1; kc_x->u.Problem3int1.casestring_2 = casestring_2; kc_x->u.Problem3int1.casestring_3 = casestring_3; kc_x->u.Problem3int1.int_1 = int_1; kc_x->u.Problem3int1.casestring_4 = casestring_4; return kc_x; } problem Problem4 #ifdef KC_USE_PROTOTYPES (casestring casestring_1, casestring casestring_2, casestring casestring_3, casestring casestring_4) #else (casestring_1, casestring_2, casestring_3, casestring_4) casestring casestring_1; casestring casestring_2; casestring casestring_3; casestring casestring_4; #endif { register problem kc_x = (problem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_problem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem4)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem4)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); /*SUPPRESS 622*/ assert_casestring( casestring_2, "casestring_2" ); /*SUPPRESS 622*/ assert_casestring( casestring_3, "casestring_3" ); /*SUPPRESS 622*/ assert_casestring( casestring_4, "casestring_4" ); kc_x->prod_sel = sel_Problem4; kc_x->u.Problem4.casestring_1 = casestring_1; kc_x->u.Problem4.casestring_2 = casestring_2; kc_x->u.Problem4.casestring_3 = casestring_3; kc_x->u.Problem4.casestring_4 = casestring_4; return kc_x; } problem Problem5 #ifdef KC_USE_PROTOTYPES (casestring casestring_1, casestring casestring_2, casestring casestring_3, casestring casestring_4, casestring casestring_5) #else (casestring_1, casestring_2, casestring_3, casestring_4, casestring_5) casestring casestring_1; casestring casestring_2; casestring casestring_3; casestring casestring_4; casestring casestring_5; #endif { register problem kc_x = (problem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_problem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem5)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem5)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); /*SUPPRESS 622*/ assert_casestring( casestring_2, "casestring_2" ); /*SUPPRESS 622*/ assert_casestring( casestring_3, "casestring_3" ); /*SUPPRESS 622*/ assert_casestring( casestring_4, "casestring_4" ); /*SUPPRESS 622*/ assert_casestring( casestring_5, "casestring_5" ); kc_x->prod_sel = sel_Problem5; kc_x->u.Problem5.casestring_1 = casestring_1; kc_x->u.Problem5.casestring_2 = casestring_2; kc_x->u.Problem5.casestring_3 = casestring_3; kc_x->u.Problem5.casestring_4 = casestring_4; kc_x->u.Problem5.casestring_5 = casestring_5; return kc_x; } problem Problem6 #ifdef KC_USE_PROTOTYPES (casestring casestring_1, casestring casestring_2, casestring casestring_3, casestring casestring_4, casestring casestring_5, casestring casestring_6) #else (casestring_1, casestring_2, casestring_3, casestring_4, casestring_5, casestring_6) casestring casestring_1; casestring casestring_2; casestring casestring_3; casestring casestring_4; casestring casestring_5; casestring casestring_6; #endif { register problem kc_x = (problem) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_problem)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Problem6)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Problem6)); /*SUPPRESS 622*/ assert_casestring( casestring_1, "casestring_1" ); /*SUPPRESS 622*/ assert_casestring( casestring_2, "casestring_2" ); /*SUPPRESS 622*/ assert_casestring( casestring_3, "casestring_3" ); /*SUPPRESS 622*/ assert_casestring( casestring_4, "casestring_4" ); /*SUPPRESS 622*/ assert_casestring( casestring_5, "casestring_5" ); /*SUPPRESS 622*/ assert_casestring( casestring_6, "casestring_6" ); kc_x->prod_sel = sel_Problem6; kc_x->u.Problem6.casestring_1 = casestring_1; kc_x->u.Problem6.casestring_2 = casestring_2; kc_x->u.Problem6.casestring_3 = casestring_3; kc_x->u.Problem6.casestring_4 = casestring_4; kc_x->u.Problem6.casestring_5 = casestring_5; kc_x->u.Problem6.casestring_6 = casestring_6; return kc_x; } addedphylumdeclarations Niladdedphylumdeclarations #ifdef KC_USE_PROTOTYPES () #else () #endif { static addedphylumdeclarations kc_x = (addedphylumdeclarations)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Niladdedphylumdeclarations)); if (kc_x == (addedphylumdeclarations)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Niladdedphylumdeclarations )); kc_x = (addedphylumdeclarations)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_addedphylumdeclarations), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Niladdedphylumdeclarations; } return kc_x; } addedphylumdeclarations Consaddedphylumdeclarations #ifdef KC_USE_PROTOTYPES (addedphylumdeclaration addedphylumdeclaration_1, addedphylumdeclarations addedphylumdeclarations_1) #else (addedphylumdeclaration_1, addedphylumdeclarations_1) addedphylumdeclaration addedphylumdeclaration_1; addedphylumdeclarations addedphylumdeclarations_1; #endif { register addedphylumdeclarations kc_x = (addedphylumdeclarations) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_addedphylumdeclarations)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consaddedphylumdeclarations)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consaddedphylumdeclarations)); /*SUPPRESS 622*/ assert_addedphylumdeclaration( addedphylumdeclaration_1, "addedphylumdeclaration_1" ); /*SUPPRESS 622*/ assert_addedphylumdeclarations( addedphylumdeclarations_1, "addedphylumdeclarations_1" ); kc_x->prod_sel = sel_Consaddedphylumdeclarations; kc_x->u.Consaddedphylumdeclarations.addedphylumdeclaration_1 = addedphylumdeclaration_1; kc_x->u.Consaddedphylumdeclarations.addedphylumdeclarations_1 = addedphylumdeclarations_1; return kc_x; } addedphylumdeclaration AddedPhylumdeclaration #ifdef KC_USE_PROTOTYPES (uniqID uniqID_1) #else (uniqID_1) uniqID uniqID_1; #endif { register addedphylumdeclaration kc_x = (addedphylumdeclaration) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_addedphylumdeclaration)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_AddedPhylumdeclaration)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_AddedPhylumdeclaration)); /*SUPPRESS 622*/ assert_uniqID( uniqID_1, "uniqID_1" ); kc_x->prod_sel = sel_AddedPhylumdeclaration; kc_x->u.AddedPhylumdeclaration.uniqID_1 = uniqID_1; kc_x = kc_initialize_addedphylumdeclaration(kc_x); return kc_x; } countedphylumdeclarations Nilcountedphylumdeclarations #ifdef KC_USE_PROTOTYPES () #else () #endif { static countedphylumdeclarations kc_x = (countedphylumdeclarations)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilcountedphylumdeclarations)); if (kc_x == (countedphylumdeclarations)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilcountedphylumdeclarations )); kc_x = (countedphylumdeclarations)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_countedphylumdeclarations), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilcountedphylumdeclarations; } return kc_x; } countedphylumdeclarations Conscountedphylumdeclarations #ifdef KC_USE_PROTOTYPES (countedphylumdeclaration countedphylumdeclaration_1, countedphylumdeclarations countedphylumdeclarations_1) #else (countedphylumdeclaration_1, countedphylumdeclarations_1) countedphylumdeclaration countedphylumdeclaration_1; countedphylumdeclarations countedphylumdeclarations_1; #endif { register countedphylumdeclarations kc_x = (countedphylumdeclarations) NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_countedphylumdeclarations)); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Conscountedphylumdeclarations)); KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Conscountedphylumdeclarations)); /*SUPPRESS 622*/ assert_countedphylumdeclaration( countedphylumdeclaration_1, "countedphylumdeclaration_1" ); /*SUPPRESS 622*/ assert_countedphylumdeclarations( countedphylumdeclarations_1, "countedphylumdeclarations_1" ); kc_x->prod_sel = sel_Conscountedphylumdeclarations; kc_x->u.Conscountedphylumdeclarations.countedphylumdeclaration_1 = countedphylumdeclaration_1; kc_x->u.Conscountedphylumdeclarations.countedphylumdeclarations_1 = countedphylumdeclarations_1; return kc_x; } countedphylumdeclaration CountedPhylumdeclaration #ifdef KC_USE_PROTOTYPES (uniqID uniqID_1) #else (uniqID_1) uniqID uniqID_1; #endif { register countedphylumdeclaration kc_x; int kc_i; register kc_hashtableentry_t* kc_hte; unsigned kc_hashval = (unsigned)0; YYSTYPE *kc_ptr, *kc_beyond; kc_hashtable_t kc_a_ht = kc_hashtables[(int)uniq]; /*SUPPRESS 622*/ assert_uniqID( uniqID_1, "uniqID_1" ); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_CountedPhylumdeclaration)); OPERATORHASH((unsigned) sel_CountedPhylumdeclaration); HASH(uniqID_1); kc_hashval = kc_hashval%kc_a_ht->size; for (kc_i=0; kc_i < (int)kc_last_storage_mode; kc_i++) { kc_hte = &(kc_a_ht->hashtable[kc_hashval][kc_i]); if (kc_hte->nr != 0) { kc_beyond = &kc_hte->index[kc_hte->nr]; for (kc_ptr = &kc_hte->index[0]; kc_ptr < kc_beyond; kc_ptr++){ kc_x= kc_ptr->yt_countedphylumdeclaration; if ((kc_x->prod_sel == sel_CountedPhylumdeclaration) && (kc_x->u.CountedPhylumdeclaration.uniqID_1 == uniqID_1) ) return(kc_x); } } } KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_CountedPhylumdeclaration)); kc_hte = &(kc_a_ht->hashtable[kc_hashval][(int)kc_a_ht->mode]); if (kc_hte->nr >= kc_hte->ibound) kc_growindex(kc_hte, kc_a_ht); kc_x = (countedphylumdeclaration)(*kc_a_ht->malloc)((kc_size_t)sizeof(struct kc_tag_countedphylumdeclaration), kc_a_ht->malloc_private_data); kc_x->prod_sel = sel_CountedPhylumdeclaration; kc_x->u.CountedPhylumdeclaration.uniqID_1 = uniqID_1; kc_hte->index[kc_hte->nr++].yt_countedphylumdeclaration = kc_x; kc_x = kc_initialize_countedphylumdeclaration(kc_x); return kc_x; } bindingidmarks Nilbindingidmarks #ifdef KC_USE_PROTOTYPES () #else () #endif { static bindingidmarks kc_x = (bindingidmarks)0; KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Nilbindingidmarks)); if (kc_x == (bindingidmarks)0) { KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Nilbindingidmarks )); kc_x = (bindingidmarks)(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_bindingidmarks), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data); kc_x->prod_sel = sel_Nilbindingidmarks; } return kc_x; } bindingidmarks Consbindingidmarks #ifdef KC_USE_PROTOTYPES (bindingidmark bindingidmark_1, bindingidmarks bindingidmarks_1) #else (bindingidmark_1, bindingidmarks_1) bindingidmark bindingidmark_1; bindingidmarks bindingidmarks_1; #endif { register bindingidmarks kc_x; int kc_i; register kc_hashtableentry_t* kc_hte; unsigned kc_hashval = (unsigned)0; YYSTYPE *kc_ptr, *kc_beyond; kc_hashtable_t kc_a_ht = kc_hashtables[(int)uniq]; /*SUPPRESS 622*/ assert_bindingidmark( bindingidmark_1, "bindingidmark_1" ); /*SUPPRESS 622*/ assert_bindingidmarks( bindingidmarks_1, "bindingidmarks_1" ); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_Consbindingidmarks)); OPERATORHASH((unsigned) sel_Consbindingidmarks); HASH(bindingidmark_1); HASH(bindingidmarks_1); kc_hashval = kc_hashval%kc_a_ht->size; for (kc_i=0; kc_i < (int)kc_last_storage_mode; kc_i++) { kc_hte = &(kc_a_ht->hashtable[kc_hashval][kc_i]); if (kc_hte->nr != 0) { kc_beyond = &kc_hte->index[kc_hte->nr]; for (kc_ptr = &kc_hte->index[0]; kc_ptr < kc_beyond; kc_ptr++){ kc_x= kc_ptr->yt_bindingidmarks; if ((kc_x->prod_sel == sel_Consbindingidmarks) && (kc_x->u.Consbindingidmarks.bindingidmark_1 == bindingidmark_1) && (kc_x->u.Consbindingidmarks.bindingidmarks_1 == bindingidmarks_1) ) return(kc_x); } } } KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_Consbindingidmarks)); kc_hte = &(kc_a_ht->hashtable[kc_hashval][(int)kc_a_ht->mode]); if (kc_hte->nr >= kc_hte->ibound) kc_growindex(kc_hte, kc_a_ht); kc_x = (bindingidmarks)(*kc_a_ht->malloc)((kc_size_t)sizeof(struct kc_tag_bindingidmarks), kc_a_ht->malloc_private_data); kc_x->prod_sel = sel_Consbindingidmarks; kc_x->u.Consbindingidmarks.bindingidmark_1 = bindingidmark_1; kc_x->u.Consbindingidmarks.bindingidmarks_1 = bindingidmarks_1; kc_hte->index[kc_hte->nr++].yt_bindingidmarks = kc_x; return kc_x; } bindingidmark BindingIdMark #ifdef KC_USE_PROTOTYPES (uniqID uniqID_1) #else (uniqID_1) uniqID uniqID_1; #endif { register bindingidmark kc_x; int kc_i; register kc_hashtableentry_t* kc_hte; unsigned kc_hashval = (unsigned)0; YYSTYPE *kc_ptr, *kc_beyond; kc_hashtable_t kc_a_ht = kc_hashtables[(int)uniq]; /*SUPPRESS 622*/ assert_uniqID( uniqID_1, "uniqID_1" ); KC_COLLECT_STATS0(KC_CREATE_STATS(sel_BindingIdMark)); OPERATORHASH((unsigned) sel_BindingIdMark); HASH(uniqID_1); kc_hashval = kc_hashval%kc_a_ht->size; for (kc_i=0; kc_i < (int)kc_last_storage_mode; kc_i++) { kc_hte = &(kc_a_ht->hashtable[kc_hashval][kc_i]); if (kc_hte->nr != 0) { kc_beyond = &kc_hte->index[kc_hte->nr]; for (kc_ptr = &kc_hte->index[0]; kc_ptr < kc_beyond; kc_ptr++){ kc_x= kc_ptr->yt_bindingidmark; if ((kc_x->prod_sel == sel_BindingIdMark) && (kc_x->u.BindingIdMark.uniqID_1 == uniqID_1) ) return(kc_x); } } } KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_BindingIdMark)); kc_hte = &(kc_a_ht->hashtable[kc_hashval][(int)kc_a_ht->mode]); if (kc_hte->nr >= kc_hte->ibound) kc_growindex(kc_hte, kc_a_ht); kc_x = (bindingidmark)(*kc_a_ht->malloc)((kc_size_t)sizeof(struct kc_tag_bindingidmark), kc_a_ht->malloc_private_data); kc_x->prod_sel = sel_BindingIdMark; kc_x->u.BindingIdMark.uniqID_1 = uniqID_1; kc_hte->index[kc_hte->nr++].yt_bindingidmark = kc_x; kc_x = kc_initialize_bindingidmark(kc_x); return kc_x; } char *kc_phylumname_or_error #ifdef KC_USE_PROTOTYPES (int kc_phylum) #else (kc_phylum) int kc_phylum; #endif { if ((kc_phylum <= (int)kc_one_before_first_phylum) || (kc_phylum >= (int)kc_last_phylum)) { char *kc_strof_error; (void)sprintf((kc_strof_error=(char*)MALLOC(69)), "Internal Error: unknown phylum number: %d", kc_phylum); return kc_strof_error; } else { return kc_PhylumInfo[kc_phylum].name; } } char *kc_operatorname_or_error #ifdef KC_USE_PROTOTYPES (int kc_operator) #else (kc_operator) int kc_operator; #endif { if ((kc_operator <= (int)kc_one_before_first_operator) || (kc_operator >= (int)kc_last_operator)) { char *kc_strof_error; (void)sprintf((kc_strof_error=(char*)MALLOC(71)), "Internal Error: unknown operator number: %d", kc_operator); return kc_strof_error; } else { return kc_OperatorInfo[kc_operator].name; } } /*ARGSUSED*/ static void kc_do_free_phylum #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, boolean kc_rec, kc_enum_phyla kc_phylum) #else (kc_p, kc_rec, kc_phylum) kc_voidptr_t kc_p; boolean kc_rec; kc_enum_phyla kc_phylum; #endif { kc_enum_operators kc_prodsel; KC_OPERATOR_INFO *kc_op_info; /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),"kc_p",kc_phylum); kc_prodsel = (kc_phylum == kc_phylum_int ? sel__Int : (kc_phylum == kc_phylum_float ? sel__Real : (kc_phylum == kc_phylum_voidptr ? sel__VoidPtr : ((casestring)kc_p)->prod_sel))); kc_op_info = &kc_OperatorInfo[(int)kc_prodsel]; KC_COLLECT_STATS0(KC_FREE_CALLED_STATS((int)kc_prodsel, kc_rec)); if (! kc_op_info->uniq_stored) { if (kc_rec) { int kc_i; for (kc_i=0; kc_i < kc_op_info->no_sons; kc_i++) { kc_do_free_phylum( (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_op_info->suboffset[kc_i]), kc_rec, kc_op_info->subphylum[kc_i] ); } } KC_COLLECT_STATS0(KC_FREED_STATS((int)kc_prodsel, kc_rec)); KC_BZERO((kc_voidptr_t)kc_p, kc_PhylumInfo[(int)kc_phylum].size); NONUNIQFREE((kc_voidptr_t)kc_p); } } /*ARGSUSED*/ void free_nocasestring #ifdef KC_USE_PROTOTYPES (nocasestring kc_p, boolean kc_rec) #else (kc_p, kc_rec) nocasestring kc_p; boolean kc_rec; #endif { KC_COLLECT_STATS0(KC_FREE_CALLED_STATS((int)sel_NoCaseStr, kc_rec)); } /*ARGSUSED*/ void free_casestring #ifdef KC_USE_PROTOTYPES (casestring kc_p, boolean kc_rec) #else (kc_p, kc_rec) casestring kc_p; boolean kc_rec; #endif { KC_COLLECT_STATS0(KC_FREE_CALLED_STATS((int)sel__Str, kc_rec)); } /*ARGSUSED*/ void free_float #ifdef KC_USE_PROTOTYPES (float kc_p, boolean kc_rec) #else (kc_p, kc_rec) float kc_p; boolean kc_rec; #endif { KC_COLLECT_STATS0(KC_FREE_CALLED_STATS((int)sel__Real, kc_rec)); } /*ARGSUSED*/ void free_int #ifdef KC_USE_PROTOTYPES (int kc_p, boolean kc_rec) #else (kc_p, kc_rec) int kc_p; boolean kc_rec; #endif { KC_COLLECT_STATS0(KC_FREE_CALLED_STATS((int)sel__Int, kc_rec)); } /*ARGSUSED*/ void free_voidptr #ifdef KC_USE_PROTOTYPES (voidptr kc_p, boolean kc_rec) #else (kc_p, kc_rec) voidptr kc_p; boolean kc_rec; #endif { KC_COLLECT_STATS0(KC_FREE_CALLED_STATS((int)sel__VoidPtr, kc_rec)); } /*ARGSUSED*/ void free_uniqID #ifdef KC_USE_PROTOTYPES (uniqID kc_p, boolean kc_rec) #else (kc_p, kc_rec) uniqID kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_uniqID); } /*ARGSUSED*/ void free_ID #ifdef KC_USE_PROTOTYPES (ID kc_p, boolean kc_rec) #else (kc_p, kc_rec) ID kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ID); } /*ARGSUSED*/ void free_INT #ifdef KC_USE_PROTOTYPES (INT kc_p, boolean kc_rec) #else (kc_p, kc_rec) INT kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_INT); } /*ARGSUSED*/ void free_STRING #ifdef KC_USE_PROTOTYPES (STRING kc_p, boolean kc_rec) #else (kc_p, kc_rec) STRING kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_STRING); } /*ARGSUSED*/ void free_phylumdeclarationsroot #ifdef KC_USE_PROTOTYPES (phylumdeclarationsroot kc_p, boolean kc_rec) #else (kc_p, kc_rec) phylumdeclarationsroot kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_phylumdeclarationsroot); } /*ARGSUSED*/ void free_phylumdeclarations #ifdef KC_USE_PROTOTYPES (phylumdeclarations kc_p, boolean kc_rec) #else (kc_p, kc_rec) phylumdeclarations kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_phylumdeclarations); } /*ARGSUSED*/ void free_phylumnames #ifdef KC_USE_PROTOTYPES (phylumnames kc_p, boolean kc_rec) #else (kc_p, kc_rec) phylumnames kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_phylumnames); } /*ARGSUSED*/ void free_phylumdeclaration #ifdef KC_USE_PROTOTYPES (phylumdeclaration kc_p, boolean kc_rec) #else (kc_p, kc_rec) phylumdeclaration kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_phylumdeclaration); } /*ARGSUSED*/ void free_storageoption #ifdef KC_USE_PROTOTYPES (storageoption kc_p, boolean kc_rec) #else (kc_p, kc_rec) storageoption kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_storageoption); } /*ARGSUSED*/ void free_storageclasses #ifdef KC_USE_PROTOTYPES (storageclasses kc_p, boolean kc_rec) #else (kc_p, kc_rec) storageclasses kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_storageclasses); } /*ARGSUSED*/ void free_productionblock #ifdef KC_USE_PROTOTYPES (productionblock kc_p, boolean kc_rec) #else (kc_p, kc_rec) productionblock kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_productionblock); } /*ARGSUSED*/ void free_alternatives #ifdef KC_USE_PROTOTYPES (alternatives kc_p, boolean kc_rec) #else (kc_p, kc_rec) alternatives kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_alternatives); } /*ARGSUSED*/ void free_alternative #ifdef KC_USE_PROTOTYPES (alternative kc_p, boolean kc_rec) #else (kc_p, kc_rec) alternative kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_alternative); } /*ARGSUSED*/ void free_arguments #ifdef KC_USE_PROTOTYPES (arguments kc_p, boolean kc_rec) #else (kc_p, kc_rec) arguments kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_arguments); } /*ARGSUSED*/ void free_argument #ifdef KC_USE_PROTOTYPES (argument kc_p, boolean kc_rec) #else (kc_p, kc_rec) argument kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_argument); } /*ARGSUSED*/ void free_Ccode_option #ifdef KC_USE_PROTOTYPES (Ccode_option kc_p, boolean kc_rec) #else (kc_p, kc_rec) Ccode_option kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_Ccode_option); } /*ARGSUSED*/ void free_attributes #ifdef KC_USE_PROTOTYPES (attributes kc_p, boolean kc_rec) #else (kc_p, kc_rec) attributes kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_attributes); } /*ARGSUSED*/ void free_attribute #ifdef KC_USE_PROTOTYPES (attribute kc_p, boolean kc_rec) #else (kc_p, kc_rec) attribute kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_attribute); } /*ARGSUSED*/ void free_attribute_initialisation_option #ifdef KC_USE_PROTOTYPES (attribute_initialisation_option kc_p, boolean kc_rec) #else (kc_p, kc_rec) attribute_initialisation_option kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_attribute_initialisation_option); } /*ARGSUSED*/ void free_Cexpression #ifdef KC_USE_PROTOTYPES (Cexpression kc_p, boolean kc_rec) #else (kc_p, kc_rec) Cexpression kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_Cexpression); } /*ARGSUSED*/ void free_Cexpression_elem #ifdef KC_USE_PROTOTYPES (Cexpression_elem kc_p, boolean kc_rec) #else (kc_p, kc_rec) Cexpression_elem kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_Cexpression_elem); } /*ARGSUSED*/ void free_CexpressionDQ #ifdef KC_USE_PROTOTYPES (CexpressionDQ kc_p, boolean kc_rec) #else (kc_p, kc_rec) CexpressionDQ kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_CexpressionDQ); } /*ARGSUSED*/ void free_CexpressionDQ_elem #ifdef KC_USE_PROTOTYPES (CexpressionDQ_elem kc_p, boolean kc_rec) #else (kc_p, kc_rec) CexpressionDQ_elem kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_CexpressionDQ_elem); } /*ARGSUSED*/ void free_CexpressionSQ #ifdef KC_USE_PROTOTYPES (CexpressionSQ kc_p, boolean kc_rec) #else (kc_p, kc_rec) CexpressionSQ kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_CexpressionSQ); } /*ARGSUSED*/ void free_CexpressionSQ_elem #ifdef KC_USE_PROTOTYPES (CexpressionSQ_elem kc_p, boolean kc_rec) #else (kc_p, kc_rec) CexpressionSQ_elem kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_CexpressionSQ_elem); } /*ARGSUSED*/ void free_idCexpressions #ifdef KC_USE_PROTOTYPES (idCexpressions kc_p, boolean kc_rec) #else (kc_p, kc_rec) idCexpressions kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_idCexpressions); } /*ARGSUSED*/ void free_idCexpression #ifdef KC_USE_PROTOTYPES (idCexpression kc_p, boolean kc_rec) #else (kc_p, kc_rec) idCexpression kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_idCexpression); } /*ARGSUSED*/ void free_Ctexts #ifdef KC_USE_PROTOTYPES (Ctexts kc_p, boolean kc_rec) #else (kc_p, kc_rec) Ctexts kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_Ctexts); } /*ARGSUSED*/ void free_includefiles #ifdef KC_USE_PROTOTYPES (includefiles kc_p, boolean kc_rec) #else (kc_p, kc_rec) includefiles kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_includefiles); } /*ARGSUSED*/ void free_includefile #ifdef KC_USE_PROTOTYPES (includefile kc_p, boolean kc_rec) #else (kc_p, kc_rec) includefile kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_includefile); } /*ARGSUSED*/ void free_includedeclarations #ifdef KC_USE_PROTOTYPES (includedeclarations kc_p, boolean kc_rec) #else (kc_p, kc_rec) includedeclarations kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_includedeclarations); } /*ARGSUSED*/ void free_includedeclaration #ifdef KC_USE_PROTOTYPES (includedeclaration kc_p, boolean kc_rec) #else (kc_p, kc_rec) includedeclaration kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_includedeclaration); } /*ARGSUSED*/ void free_includes #ifdef KC_USE_PROTOTYPES (includes kc_p, boolean kc_rec) #else (kc_p, kc_rec) includes kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_includes); } /*ARGSUSED*/ void free_include #ifdef KC_USE_PROTOTYPES (include kc_p, boolean kc_rec) #else (kc_p, kc_rec) include kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_include); } /*ARGSUSED*/ void free_rwdeclarations #ifdef KC_USE_PROTOTYPES (rwdeclarations kc_p, boolean kc_rec) #else (kc_p, kc_rec) rwdeclarations kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_rwdeclarations); } /*ARGSUSED*/ void free_rwdeclaration #ifdef KC_USE_PROTOTYPES (rwdeclaration kc_p, boolean kc_rec) #else (kc_p, kc_rec) rwdeclaration kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_rwdeclaration); } /*ARGSUSED*/ void free_rewriteclauses #ifdef KC_USE_PROTOTYPES (rewriteclauses kc_p, boolean kc_rec) #else (kc_p, kc_rec) rewriteclauses kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_rewriteclauses); } /*ARGSUSED*/ void free_rewriteclause #ifdef KC_USE_PROTOTYPES (rewriteclause kc_p, boolean kc_rec) #else (kc_p, kc_rec) rewriteclause kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_rewriteclause); } /*ARGSUSED*/ void free_patternchains #ifdef KC_USE_PROTOTYPES (patternchains kc_p, boolean kc_rec) #else (kc_p, kc_rec) patternchains kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_patternchains); } /*ARGSUSED*/ void free_patternchain #ifdef KC_USE_PROTOTYPES (patternchain kc_p, boolean kc_rec) #else (kc_p, kc_rec) patternchain kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_patternchain); } /*ARGSUSED*/ void free_outmostpatterns #ifdef KC_USE_PROTOTYPES (outmostpatterns kc_p, boolean kc_rec) #else (kc_p, kc_rec) outmostpatterns kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_outmostpatterns); } /*ARGSUSED*/ void free_patternchainitem #ifdef KC_USE_PROTOTYPES (patternchainitem kc_p, boolean kc_rec) #else (kc_p, kc_rec) patternchainitem kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_patternchainitem); } /*ARGSUSED*/ void free_outmostpattern #ifdef KC_USE_PROTOTYPES (outmostpattern kc_p, boolean kc_rec) #else (kc_p, kc_rec) outmostpattern kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_outmostpattern); } /*ARGSUSED*/ void free_pattern #ifdef KC_USE_PROTOTYPES (pattern kc_p, boolean kc_rec) #else (kc_p, kc_rec) pattern kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_pattern); } /*ARGSUSED*/ void free_patterns #ifdef KC_USE_PROTOTYPES (patterns kc_p, boolean kc_rec) #else (kc_p, kc_rec) patterns kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_patterns); } /*ARGSUSED*/ void free_term #ifdef KC_USE_PROTOTYPES (term kc_p, boolean kc_rec) #else (kc_p, kc_rec) term kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_term); } /*ARGSUSED*/ void free_terms #ifdef KC_USE_PROTOTYPES (terms kc_p, boolean kc_rec) #else (kc_p, kc_rec) terms kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_terms); } /*ARGSUSED*/ void free_fnfiles #ifdef KC_USE_PROTOTYPES (fnfiles kc_p, boolean kc_rec) #else (kc_p, kc_rec) fnfiles kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_fnfiles); } /*ARGSUSED*/ void free_fnfile #ifdef KC_USE_PROTOTYPES (fnfile kc_p, boolean kc_rec) #else (kc_p, kc_rec) fnfile kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_fnfile); } /*ARGSUSED*/ void free_fndeclarations #ifdef KC_USE_PROTOTYPES (fndeclarations kc_p, boolean kc_rec) #else (kc_p, kc_rec) fndeclarations kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_fndeclarations); } /*ARGSUSED*/ void free_fndeclaration #ifdef KC_USE_PROTOTYPES (fndeclaration kc_p, boolean kc_rec) #else (kc_p, kc_rec) fndeclaration kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_fndeclaration); } /*ARGSUSED*/ void free_fnclass #ifdef KC_USE_PROTOTYPES (fnclass kc_p, boolean kc_rec) #else (kc_p, kc_rec) fnclass kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_fnclass); } /*ARGSUSED*/ void free_fnarguments #ifdef KC_USE_PROTOTYPES (fnarguments kc_p, boolean kc_rec) #else (kc_p, kc_rec) fnarguments kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_fnarguments); } /*ARGSUSED*/ void free_Cvariabledeclarations #ifdef KC_USE_PROTOTYPES (Cvariabledeclarations kc_p, boolean kc_rec) #else (kc_p, kc_rec) Cvariabledeclarations kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_Cvariabledeclarations); } /*ARGSUSED*/ void free_Cvariabledeclaration #ifdef KC_USE_PROTOTYPES (Cvariabledeclaration kc_p, boolean kc_rec) #else (kc_p, kc_rec) Cvariabledeclaration kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_Cvariabledeclaration); } /*ARGSUSED*/ void free_Cvariables #ifdef KC_USE_PROTOTYPES (Cvariables kc_p, boolean kc_rec) #else (kc_p, kc_rec) Cvariables kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_Cvariables); } /*ARGSUSED*/ void free_Cvariable #ifdef KC_USE_PROTOTYPES (Cvariable kc_p, boolean kc_rec) #else (kc_p, kc_rec) Cvariable kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_Cvariable); } /*ARGSUSED*/ void free_Ctext #ifdef KC_USE_PROTOTYPES (Ctext kc_p, boolean kc_rec) #else (kc_p, kc_rec) Ctext kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_Ctext); } /*ARGSUSED*/ void free_Ctext_elem #ifdef KC_USE_PROTOTYPES (Ctext_elem kc_p, boolean kc_rec) #else (kc_p, kc_rec) Ctext_elem kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_Ctext_elem); } /*ARGSUSED*/ void free_foreach_after #ifdef KC_USE_PROTOTYPES (foreach_after kc_p, boolean kc_rec) #else (kc_p, kc_rec) foreach_after kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_foreach_after); } /*ARGSUSED*/ void free_contextinfo #ifdef KC_USE_PROTOTYPES (contextinfo kc_p, boolean kc_rec) #else (kc_p, kc_rec) contextinfo kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_contextinfo); } /*ARGSUSED*/ void free_withexpressions #ifdef KC_USE_PROTOTYPES (withexpressions kc_p, boolean kc_rec) #else (kc_p, kc_rec) withexpressions kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_withexpressions); } /*ARGSUSED*/ void free_withexpression #ifdef KC_USE_PROTOTYPES (withexpression kc_p, boolean kc_rec) #else (kc_p, kc_rec) withexpression kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_withexpression); } /*ARGSUSED*/ void free_withcases #ifdef KC_USE_PROTOTYPES (withcases kc_p, boolean kc_rec) #else (kc_p, kc_rec) withcases kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_withcases); } /*ARGSUSED*/ void free_withcase #ifdef KC_USE_PROTOTYPES (withcase kc_p, boolean kc_rec) #else (kc_p, kc_rec) withcase kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_withcase); } /*ARGSUSED*/ void free_unparsedeclarations #ifdef KC_USE_PROTOTYPES (unparsedeclarations kc_p, boolean kc_rec) #else (kc_p, kc_rec) unparsedeclarations kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_unparsedeclarations); } /*ARGSUSED*/ void free_unparsedeclaration #ifdef KC_USE_PROTOTYPES (unparsedeclaration kc_p, boolean kc_rec) #else (kc_p, kc_rec) unparsedeclaration kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_unparsedeclaration); } /*ARGSUSED*/ void free_unparseclauses #ifdef KC_USE_PROTOTYPES (unparseclauses kc_p, boolean kc_rec) #else (kc_p, kc_rec) unparseclauses kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_unparseclauses); } /*ARGSUSED*/ void free_unparseclause #ifdef KC_USE_PROTOTYPES (unparseclause kc_p, boolean kc_rec) #else (kc_p, kc_rec) unparseclause kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_unparseclause); } /*ARGSUSED*/ void free_viewnames #ifdef KC_USE_PROTOTYPES (viewnames kc_p, boolean kc_rec) #else (kc_p, kc_rec) viewnames kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_viewnames); } /*ARGSUSED*/ void free_unparseitems #ifdef KC_USE_PROTOTYPES (unparseitems kc_p, boolean kc_rec) #else (kc_p, kc_rec) unparseitems kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_unparseitems); } /*ARGSUSED*/ void free_unparseitem #ifdef KC_USE_PROTOTYPES (unparseitem kc_p, boolean kc_rec) #else (kc_p, kc_rec) unparseitem kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_unparseitem); } /*ARGSUSED*/ void free_unpsubterm #ifdef KC_USE_PROTOTYPES (unpsubterm kc_p, boolean kc_rec) #else (kc_p, kc_rec) unpsubterm kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_unpsubterm); } /*ARGSUSED*/ void free_unpattributes #ifdef KC_USE_PROTOTYPES (unpattributes kc_p, boolean kc_rec) #else (kc_p, kc_rec) unpattributes kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_unpattributes); } /*ARGSUSED*/ void free_viewnameoption #ifdef KC_USE_PROTOTYPES (viewnameoption kc_p, boolean kc_rec) #else (kc_p, kc_rec) viewnameoption kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_viewnameoption); } /*ARGSUSED*/ void free_filelinestack #ifdef KC_USE_PROTOTYPES (filelinestack kc_p, boolean kc_rec) #else (kc_p, kc_rec) filelinestack kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_filelinestack); } /*ARGSUSED*/ void free_fileline #ifdef KC_USE_PROTOTYPES (fileline kc_p, boolean kc_rec) #else (kc_p, kc_rec) fileline kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_fileline); } /*ARGSUSED*/ void free_nooperatorsstack #ifdef KC_USE_PROTOTYPES (nooperatorsstack kc_p, boolean kc_rec) #else (kc_p, kc_rec) nooperatorsstack kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_nooperatorsstack); } /*ARGSUSED*/ void free_scopetypefilelinestack #ifdef KC_USE_PROTOTYPES (scopetypefilelinestack kc_p, boolean kc_rec) #else (kc_p, kc_rec) scopetypefilelinestack kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_scopetypefilelinestack); } /*ARGSUSED*/ void free_scopetypefileline #ifdef KC_USE_PROTOTYPES (scopetypefileline kc_p, boolean kc_rec) #else (kc_p, kc_rec) scopetypefileline kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_scopetypefileline); } /*ARGSUSED*/ void free_IDtype #ifdef KC_USE_PROTOTYPES (IDtype kc_p, boolean kc_rec) #else (kc_p, kc_rec) IDtype kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_IDtype); } /*ARGSUSED*/ void free_operatorsstack #ifdef KC_USE_PROTOTYPES (operatorsstack kc_p, boolean kc_rec) #else (kc_p, kc_rec) operatorsstack kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_operatorsstack); } /*ARGSUSED*/ void free_operators #ifdef KC_USE_PROTOTYPES (operators kc_p, boolean kc_rec) #else (kc_p, kc_rec) operators kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_operators); } /*ARGSUSED*/ void free_phyla #ifdef KC_USE_PROTOTYPES (phyla kc_p, boolean kc_rec) #else (kc_p, kc_rec) phyla kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_phyla); } /*ARGSUSED*/ void free_variables #ifdef KC_USE_PROTOTYPES (variables kc_p, boolean kc_rec) #else (kc_p, kc_rec) variables kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_variables); } /*ARGSUSED*/ void free_argumentsstack #ifdef KC_USE_PROTOTYPES (argumentsstack kc_p, boolean kc_rec) #else (kc_p, kc_rec) argumentsstack kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_argumentsstack); } /*ARGSUSED*/ void free_phylumstack #ifdef KC_USE_PROTOTYPES (phylumstack kc_p, boolean kc_rec) #else (kc_p, kc_rec) phylumstack kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_phylumstack); } /*ARGSUSED*/ void free_phylumnamesstack #ifdef KC_USE_PROTOTYPES (phylumnamesstack kc_p, boolean kc_rec) #else (kc_p, kc_rec) phylumnamesstack kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_phylumnamesstack); } /*ARGSUSED*/ void free_withexpressionsstack #ifdef KC_USE_PROTOTYPES (withexpressionsstack kc_p, boolean kc_rec) #else (kc_p, kc_rec) withexpressionsstack kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_withexpressionsstack); } /*ARGSUSED*/ void free_operatorstack #ifdef KC_USE_PROTOTYPES (operatorstack kc_p, boolean kc_rec) #else (kc_p, kc_rec) operatorstack kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_operatorstack); } /*ARGSUSED*/ void free_variablesstack #ifdef KC_USE_PROTOTYPES (variablesstack kc_p, boolean kc_rec) #else (kc_p, kc_rec) variablesstack kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_variablesstack); } /*ARGSUSED*/ void free_selvarstack #ifdef KC_USE_PROTOTYPES (selvarstack kc_p, boolean kc_rec) #else (kc_p, kc_rec) selvarstack kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_selvarstack); } /*ARGSUSED*/ void free_dollarvarstatus #ifdef KC_USE_PROTOTYPES (dollarvarstatus kc_p, boolean kc_rec) #else (kc_p, kc_rec) dollarvarstatus kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_dollarvarstatus); } /*ARGSUSED*/ void free_dollarvarsallowedstack #ifdef KC_USE_PROTOTYPES (dollarvarsallowedstack kc_p, boolean kc_rec) #else (kc_p, kc_rec) dollarvarsallowedstack kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_dollarvarsallowedstack); } /*ARGSUSED*/ void free_intstack #ifdef KC_USE_PROTOTYPES (intstack kc_p, boolean kc_rec) #else (kc_p, kc_rec) intstack kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_intstack); } /*ARGSUSED*/ void free_idCexpressionsstack #ifdef KC_USE_PROTOTYPES (idCexpressionsstack kc_p, boolean kc_rec) #else (kc_p, kc_rec) idCexpressionsstack kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_idCexpressionsstack); } /*ARGSUSED*/ void free_two_phyla #ifdef KC_USE_PROTOTYPES (two_phyla kc_p, boolean kc_rec) #else (kc_p, kc_rec) two_phyla kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_two_phyla); } /*ARGSUSED*/ void free_tribool #ifdef KC_USE_PROTOTYPES (tribool kc_p, boolean kc_rec) #else (kc_p, kc_rec) tribool kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_tribool); } /*ARGSUSED*/ void free_patternrepresentations #ifdef KC_USE_PROTOTYPES (patternrepresentations kc_p, boolean kc_rec) #else (kc_p, kc_rec) patternrepresentations kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_patternrepresentations); } /*ARGSUSED*/ void free_patternrepresentation #ifdef KC_USE_PROTOTYPES (patternrepresentation kc_p, boolean kc_rec) #else (kc_p, kc_rec) patternrepresentation kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_patternrepresentation); } /*ARGSUSED*/ void free_elem_patternrepresentation #ifdef KC_USE_PROTOTYPES (elem_patternrepresentation kc_p, boolean kc_rec) #else (kc_p, kc_rec) elem_patternrepresentation kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_elem_patternrepresentation); } /*ARGSUSED*/ void free_path #ifdef KC_USE_PROTOTYPES (path kc_p, boolean kc_rec) #else (kc_p, kc_rec) path kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_path); } /*ARGSUSED*/ void free_paths #ifdef KC_USE_PROTOTYPES (paths kc_p, boolean kc_rec) #else (kc_p, kc_rec) paths kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_paths); } /*ARGSUSED*/ void free_argsnumbers #ifdef KC_USE_PROTOTYPES (argsnumbers kc_p, boolean kc_rec) #else (kc_p, kc_rec) argsnumbers kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_argsnumbers); } /*ARGSUSED*/ void free_rewriterulesinfo #ifdef KC_USE_PROTOTYPES (rewriterulesinfo kc_p, boolean kc_rec) #else (kc_p, kc_rec) rewriterulesinfo kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_rewriterulesinfo); } /*ARGSUSED*/ void free_rewriteruleinfo #ifdef KC_USE_PROTOTYPES (rewriteruleinfo kc_p, boolean kc_rec) #else (kc_p, kc_rec) rewriteruleinfo kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_rewriteruleinfo); } /*ARGSUSED*/ void free_withcasesinfo #ifdef KC_USE_PROTOTYPES (withcasesinfo kc_p, boolean kc_rec) #else (kc_p, kc_rec) withcasesinfo kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_withcasesinfo); } /*ARGSUSED*/ void free_withcaseinfo #ifdef KC_USE_PROTOTYPES (withcaseinfo kc_p, boolean kc_rec) #else (kc_p, kc_rec) withcaseinfo kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_withcaseinfo); } /*ARGSUSED*/ void free_rewriteviewsinfo #ifdef KC_USE_PROTOTYPES (rewriteviewsinfo kc_p, boolean kc_rec) #else (kc_p, kc_rec) rewriteviewsinfo kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_rewriteviewsinfo); } /*ARGSUSED*/ void free_rewriteviewinfo #ifdef KC_USE_PROTOTYPES (rewriteviewinfo kc_p, boolean kc_rec) #else (kc_p, kc_rec) rewriteviewinfo kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_rewriteviewinfo); } /*ARGSUSED*/ void free_unparseviewsinfo #ifdef KC_USE_PROTOTYPES (unparseviewsinfo kc_p, boolean kc_rec) #else (kc_p, kc_rec) unparseviewsinfo kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_unparseviewsinfo); } /*ARGSUSED*/ void free_unparseviewinfo #ifdef KC_USE_PROTOTYPES (unparseviewinfo kc_p, boolean kc_rec) #else (kc_p, kc_rec) unparseviewinfo kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_unparseviewinfo); } /*ARGSUSED*/ void free_unparsedeclsinfo #ifdef KC_USE_PROTOTYPES (unparsedeclsinfo kc_p, boolean kc_rec) #else (kc_p, kc_rec) unparsedeclsinfo kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_unparsedeclsinfo); } /*ARGSUSED*/ void free_unparsedeclinfo #ifdef KC_USE_PROTOTYPES (unparsedeclinfo kc_p, boolean kc_rec) #else (kc_p, kc_rec) unparsedeclinfo kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_unparsedeclinfo); } /*ARGSUSED*/ void free_ac_declaration #ifdef KC_USE_PROTOTYPES (ac_declaration kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_declaration kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_declaration); } /*ARGSUSED*/ void free_ac_declaration_list #ifdef KC_USE_PROTOTYPES (ac_declaration_list kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_declaration_list kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_declaration_list); } /*ARGSUSED*/ void free_ac_declaration_specifiers #ifdef KC_USE_PROTOTYPES (ac_declaration_specifiers kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_declaration_specifiers kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_declaration_specifiers); } /*ARGSUSED*/ void free_ac_declaration_specifier #ifdef KC_USE_PROTOTYPES (ac_declaration_specifier kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_declaration_specifier kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_declaration_specifier); } /*ARGSUSED*/ void free_ac_storage_class_specifier #ifdef KC_USE_PROTOTYPES (ac_storage_class_specifier kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_storage_class_specifier kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_storage_class_specifier); } /*ARGSUSED*/ void free_ac_type_specifier #ifdef KC_USE_PROTOTYPES (ac_type_specifier kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_type_specifier kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_type_specifier); } /*ARGSUSED*/ void free_ac_type_qualifier #ifdef KC_USE_PROTOTYPES (ac_type_qualifier kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_type_qualifier kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_type_qualifier); } /*ARGSUSED*/ void free_ac_init_declarator_list #ifdef KC_USE_PROTOTYPES (ac_init_declarator_list kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_init_declarator_list kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_init_declarator_list); } /*ARGSUSED*/ void free_ac_init_declarator #ifdef KC_USE_PROTOTYPES (ac_init_declarator kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_init_declarator kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_init_declarator); } /*ARGSUSED*/ void free_ac_declarator #ifdef KC_USE_PROTOTYPES (ac_declarator kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_declarator kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_declarator); } /*ARGSUSED*/ void free_ac_direct_declarator #ifdef KC_USE_PROTOTYPES (ac_direct_declarator kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_direct_declarator kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_direct_declarator); } /*ARGSUSED*/ void free_ac_pointer_option #ifdef KC_USE_PROTOTYPES (ac_pointer_option kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_pointer_option kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_pointer_option); } /*ARGSUSED*/ void free_ac_pointer #ifdef KC_USE_PROTOTYPES (ac_pointer kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_pointer kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_pointer); } /*ARGSUSED*/ void free_ac_type_qualifier_list #ifdef KC_USE_PROTOTYPES (ac_type_qualifier_list kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_type_qualifier_list kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_type_qualifier_list); } /*ARGSUSED*/ void free_ac_parameter_type_list #ifdef KC_USE_PROTOTYPES (ac_parameter_type_list kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_parameter_type_list kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_parameter_type_list); } /*ARGSUSED*/ void free_ac_parameter_list #ifdef KC_USE_PROTOTYPES (ac_parameter_list kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_parameter_list kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_parameter_list); } /*ARGSUSED*/ void free_ac_parameter_declaration #ifdef KC_USE_PROTOTYPES (ac_parameter_declaration kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_parameter_declaration kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_parameter_declaration); } /*ARGSUSED*/ void free_ac_identifier_list #ifdef KC_USE_PROTOTYPES (ac_identifier_list kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_identifier_list kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_identifier_list); } /*ARGSUSED*/ void free_ac_abstract_declarator #ifdef KC_USE_PROTOTYPES (ac_abstract_declarator kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_abstract_declarator kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_abstract_declarator); } /*ARGSUSED*/ void free_ac_direct_abstract_declarator_option #ifdef KC_USE_PROTOTYPES (ac_direct_abstract_declarator_option kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_direct_abstract_declarator_option kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_direct_abstract_declarator_option); } /*ARGSUSED*/ void free_ac_direct_abstract_declarator #ifdef KC_USE_PROTOTYPES (ac_direct_abstract_declarator kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_direct_abstract_declarator kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_direct_abstract_declarator); } /*ARGSUSED*/ void free_ac_constant_expression_option #ifdef KC_USE_PROTOTYPES (ac_constant_expression_option kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_constant_expression_option kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_constant_expression_option); } /*ARGSUSED*/ void free_ac_constant_expression #ifdef KC_USE_PROTOTYPES (ac_constant_expression kc_p, boolean kc_rec) #else (kc_p, kc_rec) ac_constant_expression kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_ac_constant_expression); } /*ARGSUSED*/ void free_error #ifdef KC_USE_PROTOTYPES (error kc_p, boolean kc_rec) #else (kc_p, kc_rec) error kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_error); } /*ARGSUSED*/ void free_problem #ifdef KC_USE_PROTOTYPES (problem kc_p, boolean kc_rec) #else (kc_p, kc_rec) problem kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_problem); } /*ARGSUSED*/ void free_addedphylumdeclarations #ifdef KC_USE_PROTOTYPES (addedphylumdeclarations kc_p, boolean kc_rec) #else (kc_p, kc_rec) addedphylumdeclarations kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_addedphylumdeclarations); } /*ARGSUSED*/ void free_addedphylumdeclaration #ifdef KC_USE_PROTOTYPES (addedphylumdeclaration kc_p, boolean kc_rec) #else (kc_p, kc_rec) addedphylumdeclaration kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_addedphylumdeclaration); } /*ARGSUSED*/ void free_countedphylumdeclarations #ifdef KC_USE_PROTOTYPES (countedphylumdeclarations kc_p, boolean kc_rec) #else (kc_p, kc_rec) countedphylumdeclarations kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_countedphylumdeclarations); } /*ARGSUSED*/ void free_countedphylumdeclaration #ifdef KC_USE_PROTOTYPES (countedphylumdeclaration kc_p, boolean kc_rec) #else (kc_p, kc_rec) countedphylumdeclaration kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_countedphylumdeclaration); } /*ARGSUSED*/ void free_bindingidmarks #ifdef KC_USE_PROTOTYPES (bindingidmarks kc_p, boolean kc_rec) #else (kc_p, kc_rec) bindingidmarks kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_bindingidmarks); } /*ARGSUSED*/ void free_bindingidmark #ifdef KC_USE_PROTOTYPES (bindingidmark kc_p, boolean kc_rec) #else (kc_p, kc_rec) bindingidmark kc_p; boolean kc_rec; #endif { kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_bindingidmark); } /*ARGSUSED*/ static boolean kc_do_eq_phylum #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p1, kc_voidptr_t kc_p2, kc_enum_phyla kc_phylum) #else (kc_p1, kc_p2, kc_phylum) kc_voidptr_t kc_p1, kc_p2; kc_enum_phyla kc_phylum; #endif { int kc_i; kc_enum_operators kc_prodsel; int kc_st; KC_OPERATOR_INFO *kc_op_info; kc_hashtable_t kc_a_ht; /*SUPPRESS 622*/ assertReason(kc_phylum != kc_phylum_int, "kc_do_eq_phylum called with kc_phylum_int argument"); /*SUPPRESS 622*/ assertReason(kc_phylum != kc_phylum_float, "kc_do_eq_phylum called with kc_phylum_float argument"); if (kc_p1 == kc_p2) return True; if (kc_phylum == kc_phylum_voidptr) return False; /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p1),"kc_p1",kc_phylum); /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p2),"kc_p2",kc_phylum); if ((kc_prodsel = ((casestring)kc_p1)->prod_sel) != ((casestring)kc_p2)->prod_sel) return False; kc_op_info = &kc_OperatorInfo[(int)kc_prodsel]; kc_st = (int)kc_op_info->uniq_stored; kc_a_ht = kc_hashtables[kc_st]; if (kc_st && (kc_storageclass_still_uniq[kc_st] || ((kc_a_ht->in_block != 0) && (*kc_a_ht->in_block)((kc_voidptr_t)kc_p1, kc_a_ht->malloc_private_data) && (*kc_a_ht->in_block)((kc_voidptr_t)kc_p2, kc_a_ht->malloc_private_data)))) return False; switch(kc_prodsel) { case (int)sel_Int: return ((eq_int(((INT)kc_p1)->u.Int.int_1, ((INT)kc_p2)->u.Int.int_1)) ? True : False); case (int)sel_Argument: return ((kc_do_eq_phylum((kc_voidptr_t)((argument)kc_p1)->u.Argument.ID_1, (kc_voidptr_t)((argument)kc_p2)->u.Argument.ID_1, kc_phylum_ID) && eq_int(((argument)kc_p1)->u.Argument.int_1, ((argument)kc_p2)->u.Argument.int_1)) ? True : False); case (int)sel_CExpressionNl: return ((eq_int(((Cexpression_elem)kc_p1)->u.CExpressionNl.int_1, ((Cexpression_elem)kc_p2)->u.CExpressionNl.int_1)) ? True : False); case (int)sel_CExpressionDQNl: return ((eq_int(((CexpressionDQ_elem)kc_p1)->u.CExpressionDQNl.int_1, ((CexpressionDQ_elem)kc_p2)->u.CExpressionDQNl.int_1)) ? True : False); case (int)sel_CExpressionSQNl: return ((eq_int(((CexpressionSQ_elem)kc_p1)->u.CExpressionSQNl.int_1, ((CexpressionSQ_elem)kc_p2)->u.CExpressionSQNl.int_1)) ? True : False); case (int)sel_IncludeNl: return ((eq_int(((include)kc_p1)->u.IncludeNl.int_1, ((include)kc_p2)->u.IncludeNl.int_1)) ? True : False); case (int)sel_FnDeclaration: return ((kc_do_eq_phylum((kc_voidptr_t)((fndeclaration)kc_p1)->u.FnDeclaration.ID_1, (kc_voidptr_t)((fndeclaration)kc_p2)->u.FnDeclaration.ID_1, kc_phylum_ID) && eq_int(((fndeclaration)kc_p1)->u.FnDeclaration.int_1, ((fndeclaration)kc_p2)->u.FnDeclaration.int_1) && kc_do_eq_phylum((kc_voidptr_t)((fndeclaration)kc_p1)->u.FnDeclaration.ID_2, (kc_voidptr_t)((fndeclaration)kc_p2)->u.FnDeclaration.ID_2, kc_phylum_ID) && kc_do_eq_phylum((kc_voidptr_t)((fndeclaration)kc_p1)->u.FnDeclaration.fnarguments_1, (kc_voidptr_t)((fndeclaration)kc_p2)->u.FnDeclaration.fnarguments_1, kc_phylum_fnarguments) && kc_do_eq_phylum((kc_voidptr_t)((fndeclaration)kc_p1)->u.FnDeclaration.Cvariabledeclarations_1, (kc_voidptr_t)((fndeclaration)kc_p2)->u.FnDeclaration.Cvariabledeclarations_1, kc_phylum_Cvariabledeclarations) && kc_do_eq_phylum((kc_voidptr_t)((fndeclaration)kc_p1)->u.FnDeclaration.Ctext_1, (kc_voidptr_t)((fndeclaration)kc_p2)->u.FnDeclaration.Ctext_1, kc_phylum_Ctext) && kc_do_eq_phylum((kc_voidptr_t)((fndeclaration)kc_p1)->u.FnDeclaration.fnclass_1, (kc_voidptr_t)((fndeclaration)kc_p2)->u.FnDeclaration.fnclass_1, kc_phylum_fnclass)) ? True : False); case (int)sel_CVPointer: return ((eq_int(((Cvariable)kc_p1)->u.CVPointer.int_1, ((Cvariable)kc_p2)->u.CVPointer.int_1) && kc_do_eq_phylum((kc_voidptr_t)((Cvariable)kc_p1)->u.CVPointer.ID_1, (kc_voidptr_t)((Cvariable)kc_p2)->u.CVPointer.ID_1, kc_phylum_ID)) ? True : False); case (int)sel_CVFunction: return ((eq_int(((Cvariable)kc_p1)->u.CVFunction.int_1, ((Cvariable)kc_p2)->u.CVFunction.int_1) && eq_int(((Cvariable)kc_p1)->u.CVFunction.int_2, ((Cvariable)kc_p2)->u.CVFunction.int_2) && kc_do_eq_phylum((kc_voidptr_t)((Cvariable)kc_p1)->u.CVFunction.ID_1, (kc_voidptr_t)((Cvariable)kc_p2)->u.CVFunction.ID_1, kc_phylum_ID)) ? True : False); case (int)sel_CTextNl: return ((eq_int(((Ctext_elem)kc_p1)->u.CTextNl.int_1, ((Ctext_elem)kc_p2)->u.CTextNl.int_1)) ? True : False); case (int)sel_FileLine: return ((kc_do_eq_phylum((kc_voidptr_t)((fileline)kc_p1)->u.FileLine.casestring_1, (kc_voidptr_t)((fileline)kc_p2)->u.FileLine.casestring_1, kc_phylum_casestring) && eq_int(((fileline)kc_p1)->u.FileLine.int_1, ((fileline)kc_p2)->u.FileLine.int_1)) ? True : False); case (int)sel_Consnooperatorsstack: return ((eq_int(((nooperatorsstack)kc_p1)->u.Consnooperatorsstack.int_1, ((nooperatorsstack)kc_p2)->u.Consnooperatorsstack.int_1) && kc_do_eq_phylum((kc_voidptr_t)((nooperatorsstack)kc_p1)->u.Consnooperatorsstack.nooperatorsstack_1, (kc_voidptr_t)((nooperatorsstack)kc_p2)->u.Consnooperatorsstack.nooperatorsstack_1, kc_phylum_nooperatorsstack)) ? True : False); case (int)sel_ScopeTypeFileLine: return ((eq_int(((scopetypefileline)kc_p1)->u.ScopeTypeFileLine.int_1, ((scopetypefileline)kc_p2)->u.ScopeTypeFileLine.int_1) && kc_do_eq_phylum((kc_voidptr_t)((scopetypefileline)kc_p1)->u.ScopeTypeFileLine.IDtype_1, (kc_voidptr_t)((scopetypefileline)kc_p2)->u.ScopeTypeFileLine.IDtype_1, kc_phylum_IDtype) && kc_do_eq_phylum((kc_voidptr_t)((scopetypefileline)kc_p1)->u.ScopeTypeFileLine.casestring_1, (kc_voidptr_t)((scopetypefileline)kc_p2)->u.ScopeTypeFileLine.casestring_1, kc_phylum_casestring) && eq_int(((scopetypefileline)kc_p1)->u.ScopeTypeFileLine.int_2, ((scopetypefileline)kc_p2)->u.ScopeTypeFileLine.int_2)) ? True : False); case (int)sel_ITPatternVariable: return ((kc_do_eq_phylum((kc_voidptr_t)((IDtype)kc_p1)->u.ITPatternVariable.ID_1, (kc_voidptr_t)((IDtype)kc_p2)->u.ITPatternVariable.ID_1, kc_phylum_ID) && eq_int(((IDtype)kc_p1)->u.ITPatternVariable.int_1, ((IDtype)kc_p2)->u.ITPatternVariable.int_1)) ? True : False); case (int)sel_Consintstack: return ((eq_int(((intstack)kc_p1)->u.Consintstack.int_1, ((intstack)kc_p2)->u.Consintstack.int_1) && kc_do_eq_phylum((kc_voidptr_t)((intstack)kc_p1)->u.Consintstack.intstack_1, (kc_voidptr_t)((intstack)kc_p2)->u.Consintstack.intstack_1, kc_phylum_intstack)) ? True : False); case (int)sel_Conspath: return ((eq_int(((path)kc_p1)->u.Conspath.int_1, ((path)kc_p2)->u.Conspath.int_1) && kc_do_eq_phylum((kc_voidptr_t)((path)kc_p1)->u.Conspath.path_1, (kc_voidptr_t)((path)kc_p2)->u.Conspath.path_1, kc_phylum_path)) ? True : False); case (int)sel_Consargsnumbers: return ((eq_int(((argsnumbers)kc_p1)->u.Consargsnumbers.int_1, ((argsnumbers)kc_p2)->u.Consargsnumbers.int_1) && kc_do_eq_phylum((kc_voidptr_t)((argsnumbers)kc_p1)->u.Consargsnumbers.argsnumbers_1, (kc_voidptr_t)((argsnumbers)kc_p2)->u.Consargsnumbers.argsnumbers_1, kc_phylum_argsnumbers)) ? True : False); case (int)sel_Problem1int1: return ((kc_do_eq_phylum((kc_voidptr_t)((problem)kc_p1)->u.Problem1int1.casestring_1, (kc_voidptr_t)((problem)kc_p2)->u.Problem1int1.casestring_1, kc_phylum_casestring) && eq_int(((problem)kc_p1)->u.Problem1int1.int_1, ((problem)kc_p2)->u.Problem1int1.int_1) && kc_do_eq_phylum((kc_voidptr_t)((problem)kc_p1)->u.Problem1int1.casestring_2, (kc_voidptr_t)((problem)kc_p2)->u.Problem1int1.casestring_2, kc_phylum_casestring)) ? True : False); case (int)sel_Problem3int1: return ((kc_do_eq_phylum((kc_voidptr_t)((problem)kc_p1)->u.Problem3int1.casestring_1, (kc_voidptr_t)((problem)kc_p2)->u.Problem3int1.casestring_1, kc_phylum_casestring) && kc_do_eq_phylum((kc_voidptr_t)((problem)kc_p1)->u.Problem3int1.casestring_2, (kc_voidptr_t)((problem)kc_p2)->u.Problem3int1.casestring_2, kc_phylum_casestring) && kc_do_eq_phylum((kc_voidptr_t)((problem)kc_p1)->u.Problem3int1.casestring_3, (kc_voidptr_t)((problem)kc_p2)->u.Problem3int1.casestring_3, kc_phylum_casestring) && eq_int(((problem)kc_p1)->u.Problem3int1.int_1, ((problem)kc_p2)->u.Problem3int1.int_1) && kc_do_eq_phylum((kc_voidptr_t)((problem)kc_p1)->u.Problem3int1.casestring_4, (kc_voidptr_t)((problem)kc_p2)->u.Problem3int1.casestring_4, kc_phylum_casestring)) ? True : False); default: for (kc_i=0; kc_i < kc_op_info->no_sons; kc_i++) { if (! kc_do_eq_phylum( (kc_voidptr_t)KC_SUBPHYLUM(kc_p1, kc_op_info->suboffset[kc_i]), (kc_voidptr_t)KC_SUBPHYLUM(kc_p2, kc_op_info->suboffset[kc_i]), kc_op_info->subphylum[kc_i] )) { return False; } } return True; } } /*ARGSUSED*/ boolean eq_nocasestring #ifdef KC_USE_PROTOTYPES (nocasestring kc_p1, nocasestring kc_p2) #else (kc_p1, kc_p2) nocasestring kc_p1, kc_p2; #endif { return (boolean)(kc_p1 == kc_p2); } /*ARGSUSED*/ boolean eq_casestring #ifdef KC_USE_PROTOTYPES (casestring kc_p1, casestring kc_p2) #else (kc_p1, kc_p2) casestring kc_p1, kc_p2; #endif { return (boolean)(kc_p1 == kc_p2); } /*ARGSUSED*/ boolean eq_float #ifdef KC_USE_PROTOTYPES (float kc_p1, float kc_p2) #else (kc_p1, kc_p2) float kc_p1, kc_p2; #endif { return (boolean)(kc_p1 == kc_p2); } /*ARGSUSED*/ boolean eq_int #ifdef KC_USE_PROTOTYPES (int kc_p1, int kc_p2) #else (kc_p1, kc_p2) int kc_p1, kc_p2; #endif { return (boolean)(kc_p1 == kc_p2); } /*ARGSUSED*/ boolean eq_voidptr #ifdef KC_USE_PROTOTYPES (voidptr kc_p1, voidptr kc_p2) #else (kc_p1, kc_p2) voidptr kc_p1, kc_p2; #endif { return (boolean)(kc_p1 == kc_p2); } /*ARGSUSED*/ boolean eq_uniqID #ifdef KC_USE_PROTOTYPES (uniqID kc_p1, uniqID kc_p2) #else (kc_p1, kc_p2) uniqID kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_uniqID); } /*ARGSUSED*/ boolean eq_ID #ifdef KC_USE_PROTOTYPES (ID kc_p1, ID kc_p2) #else (kc_p1, kc_p2) ID kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ID); } /*ARGSUSED*/ boolean eq_INT #ifdef KC_USE_PROTOTYPES (INT kc_p1, INT kc_p2) #else (kc_p1, kc_p2) INT kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_INT); } /*ARGSUSED*/ boolean eq_STRING #ifdef KC_USE_PROTOTYPES (STRING kc_p1, STRING kc_p2) #else (kc_p1, kc_p2) STRING kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_STRING); } /*ARGSUSED*/ boolean eq_phylumdeclarationsroot #ifdef KC_USE_PROTOTYPES (phylumdeclarationsroot kc_p1, phylumdeclarationsroot kc_p2) #else (kc_p1, kc_p2) phylumdeclarationsroot kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_phylumdeclarationsroot); } /*ARGSUSED*/ boolean eq_phylumdeclarations #ifdef KC_USE_PROTOTYPES (phylumdeclarations kc_p1, phylumdeclarations kc_p2) #else (kc_p1, kc_p2) phylumdeclarations kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_phylumdeclarations); } /*ARGSUSED*/ boolean eq_phylumnames #ifdef KC_USE_PROTOTYPES (phylumnames kc_p1, phylumnames kc_p2) #else (kc_p1, kc_p2) phylumnames kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_phylumnames); } /*ARGSUSED*/ boolean eq_phylumdeclaration #ifdef KC_USE_PROTOTYPES (phylumdeclaration kc_p1, phylumdeclaration kc_p2) #else (kc_p1, kc_p2) phylumdeclaration kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_phylumdeclaration); } /*ARGSUSED*/ boolean eq_storageoption #ifdef KC_USE_PROTOTYPES (storageoption kc_p1, storageoption kc_p2) #else (kc_p1, kc_p2) storageoption kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_storageoption); } /*ARGSUSED*/ boolean eq_storageclasses #ifdef KC_USE_PROTOTYPES (storageclasses kc_p1, storageclasses kc_p2) #else (kc_p1, kc_p2) storageclasses kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_storageclasses); } /*ARGSUSED*/ boolean eq_productionblock #ifdef KC_USE_PROTOTYPES (productionblock kc_p1, productionblock kc_p2) #else (kc_p1, kc_p2) productionblock kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_productionblock); } /*ARGSUSED*/ boolean eq_alternatives #ifdef KC_USE_PROTOTYPES (alternatives kc_p1, alternatives kc_p2) #else (kc_p1, kc_p2) alternatives kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_alternatives); } /*ARGSUSED*/ boolean eq_alternative #ifdef KC_USE_PROTOTYPES (alternative kc_p1, alternative kc_p2) #else (kc_p1, kc_p2) alternative kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_alternative); } /*ARGSUSED*/ boolean eq_arguments #ifdef KC_USE_PROTOTYPES (arguments kc_p1, arguments kc_p2) #else (kc_p1, kc_p2) arguments kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_arguments); } /*ARGSUSED*/ boolean eq_argument #ifdef KC_USE_PROTOTYPES (argument kc_p1, argument kc_p2) #else (kc_p1, kc_p2) argument kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_argument); } /*ARGSUSED*/ boolean eq_Ccode_option #ifdef KC_USE_PROTOTYPES (Ccode_option kc_p1, Ccode_option kc_p2) #else (kc_p1, kc_p2) Ccode_option kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_Ccode_option); } /*ARGSUSED*/ boolean eq_attributes #ifdef KC_USE_PROTOTYPES (attributes kc_p1, attributes kc_p2) #else (kc_p1, kc_p2) attributes kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_attributes); } /*ARGSUSED*/ boolean eq_attribute #ifdef KC_USE_PROTOTYPES (attribute kc_p1, attribute kc_p2) #else (kc_p1, kc_p2) attribute kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_attribute); } /*ARGSUSED*/ boolean eq_attribute_initialisation_option #ifdef KC_USE_PROTOTYPES (attribute_initialisation_option kc_p1, attribute_initialisation_option kc_p2) #else (kc_p1, kc_p2) attribute_initialisation_option kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_attribute_initialisation_option); } /*ARGSUSED*/ boolean eq_Cexpression #ifdef KC_USE_PROTOTYPES (Cexpression kc_p1, Cexpression kc_p2) #else (kc_p1, kc_p2) Cexpression kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_Cexpression); } /*ARGSUSED*/ boolean eq_Cexpression_elem #ifdef KC_USE_PROTOTYPES (Cexpression_elem kc_p1, Cexpression_elem kc_p2) #else (kc_p1, kc_p2) Cexpression_elem kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_Cexpression_elem); } /*ARGSUSED*/ boolean eq_CexpressionDQ #ifdef KC_USE_PROTOTYPES (CexpressionDQ kc_p1, CexpressionDQ kc_p2) #else (kc_p1, kc_p2) CexpressionDQ kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_CexpressionDQ); } /*ARGSUSED*/ boolean eq_CexpressionDQ_elem #ifdef KC_USE_PROTOTYPES (CexpressionDQ_elem kc_p1, CexpressionDQ_elem kc_p2) #else (kc_p1, kc_p2) CexpressionDQ_elem kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_CexpressionDQ_elem); } /*ARGSUSED*/ boolean eq_CexpressionSQ #ifdef KC_USE_PROTOTYPES (CexpressionSQ kc_p1, CexpressionSQ kc_p2) #else (kc_p1, kc_p2) CexpressionSQ kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_CexpressionSQ); } /*ARGSUSED*/ boolean eq_CexpressionSQ_elem #ifdef KC_USE_PROTOTYPES (CexpressionSQ_elem kc_p1, CexpressionSQ_elem kc_p2) #else (kc_p1, kc_p2) CexpressionSQ_elem kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_CexpressionSQ_elem); } /*ARGSUSED*/ boolean eq_idCexpressions #ifdef KC_USE_PROTOTYPES (idCexpressions kc_p1, idCexpressions kc_p2) #else (kc_p1, kc_p2) idCexpressions kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_idCexpressions); } /*ARGSUSED*/ boolean eq_idCexpression #ifdef KC_USE_PROTOTYPES (idCexpression kc_p1, idCexpression kc_p2) #else (kc_p1, kc_p2) idCexpression kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_idCexpression); } /*ARGSUSED*/ boolean eq_Ctexts #ifdef KC_USE_PROTOTYPES (Ctexts kc_p1, Ctexts kc_p2) #else (kc_p1, kc_p2) Ctexts kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_Ctexts); } /*ARGSUSED*/ boolean eq_includefiles #ifdef KC_USE_PROTOTYPES (includefiles kc_p1, includefiles kc_p2) #else (kc_p1, kc_p2) includefiles kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_includefiles); } /*ARGSUSED*/ boolean eq_includefile #ifdef KC_USE_PROTOTYPES (includefile kc_p1, includefile kc_p2) #else (kc_p1, kc_p2) includefile kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_includefile); } /*ARGSUSED*/ boolean eq_includedeclarations #ifdef KC_USE_PROTOTYPES (includedeclarations kc_p1, includedeclarations kc_p2) #else (kc_p1, kc_p2) includedeclarations kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_includedeclarations); } /*ARGSUSED*/ boolean eq_includedeclaration #ifdef KC_USE_PROTOTYPES (includedeclaration kc_p1, includedeclaration kc_p2) #else (kc_p1, kc_p2) includedeclaration kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_includedeclaration); } /*ARGSUSED*/ boolean eq_includes #ifdef KC_USE_PROTOTYPES (includes kc_p1, includes kc_p2) #else (kc_p1, kc_p2) includes kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_includes); } /*ARGSUSED*/ boolean eq_include #ifdef KC_USE_PROTOTYPES (include kc_p1, include kc_p2) #else (kc_p1, kc_p2) include kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_include); } /*ARGSUSED*/ boolean eq_rwdeclarations #ifdef KC_USE_PROTOTYPES (rwdeclarations kc_p1, rwdeclarations kc_p2) #else (kc_p1, kc_p2) rwdeclarations kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_rwdeclarations); } /*ARGSUSED*/ boolean eq_rwdeclaration #ifdef KC_USE_PROTOTYPES (rwdeclaration kc_p1, rwdeclaration kc_p2) #else (kc_p1, kc_p2) rwdeclaration kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_rwdeclaration); } /*ARGSUSED*/ boolean eq_rewriteclauses #ifdef KC_USE_PROTOTYPES (rewriteclauses kc_p1, rewriteclauses kc_p2) #else (kc_p1, kc_p2) rewriteclauses kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_rewriteclauses); } /*ARGSUSED*/ boolean eq_rewriteclause #ifdef KC_USE_PROTOTYPES (rewriteclause kc_p1, rewriteclause kc_p2) #else (kc_p1, kc_p2) rewriteclause kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_rewriteclause); } /*ARGSUSED*/ boolean eq_patternchains #ifdef KC_USE_PROTOTYPES (patternchains kc_p1, patternchains kc_p2) #else (kc_p1, kc_p2) patternchains kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_patternchains); } /*ARGSUSED*/ boolean eq_patternchain #ifdef KC_USE_PROTOTYPES (patternchain kc_p1, patternchain kc_p2) #else (kc_p1, kc_p2) patternchain kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_patternchain); } /*ARGSUSED*/ boolean eq_outmostpatterns #ifdef KC_USE_PROTOTYPES (outmostpatterns kc_p1, outmostpatterns kc_p2) #else (kc_p1, kc_p2) outmostpatterns kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_outmostpatterns); } /*ARGSUSED*/ boolean eq_patternchainitem #ifdef KC_USE_PROTOTYPES (patternchainitem kc_p1, patternchainitem kc_p2) #else (kc_p1, kc_p2) patternchainitem kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_patternchainitem); } /*ARGSUSED*/ boolean eq_outmostpattern #ifdef KC_USE_PROTOTYPES (outmostpattern kc_p1, outmostpattern kc_p2) #else (kc_p1, kc_p2) outmostpattern kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_outmostpattern); } /*ARGSUSED*/ boolean eq_pattern #ifdef KC_USE_PROTOTYPES (pattern kc_p1, pattern kc_p2) #else (kc_p1, kc_p2) pattern kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_pattern); } /*ARGSUSED*/ boolean eq_patterns #ifdef KC_USE_PROTOTYPES (patterns kc_p1, patterns kc_p2) #else (kc_p1, kc_p2) patterns kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_patterns); } /*ARGSUSED*/ boolean eq_term #ifdef KC_USE_PROTOTYPES (term kc_p1, term kc_p2) #else (kc_p1, kc_p2) term kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_term); } /*ARGSUSED*/ boolean eq_terms #ifdef KC_USE_PROTOTYPES (terms kc_p1, terms kc_p2) #else (kc_p1, kc_p2) terms kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_terms); } /*ARGSUSED*/ boolean eq_fnfiles #ifdef KC_USE_PROTOTYPES (fnfiles kc_p1, fnfiles kc_p2) #else (kc_p1, kc_p2) fnfiles kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_fnfiles); } /*ARGSUSED*/ boolean eq_fnfile #ifdef KC_USE_PROTOTYPES (fnfile kc_p1, fnfile kc_p2) #else (kc_p1, kc_p2) fnfile kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_fnfile); } /*ARGSUSED*/ boolean eq_fndeclarations #ifdef KC_USE_PROTOTYPES (fndeclarations kc_p1, fndeclarations kc_p2) #else (kc_p1, kc_p2) fndeclarations kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_fndeclarations); } /*ARGSUSED*/ boolean eq_fndeclaration #ifdef KC_USE_PROTOTYPES (fndeclaration kc_p1, fndeclaration kc_p2) #else (kc_p1, kc_p2) fndeclaration kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_fndeclaration); } /*ARGSUSED*/ boolean eq_fnclass #ifdef KC_USE_PROTOTYPES (fnclass kc_p1, fnclass kc_p2) #else (kc_p1, kc_p2) fnclass kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_fnclass); } /*ARGSUSED*/ boolean eq_fnarguments #ifdef KC_USE_PROTOTYPES (fnarguments kc_p1, fnarguments kc_p2) #else (kc_p1, kc_p2) fnarguments kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_fnarguments); } /*ARGSUSED*/ boolean eq_Cvariabledeclarations #ifdef KC_USE_PROTOTYPES (Cvariabledeclarations kc_p1, Cvariabledeclarations kc_p2) #else (kc_p1, kc_p2) Cvariabledeclarations kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_Cvariabledeclarations); } /*ARGSUSED*/ boolean eq_Cvariabledeclaration #ifdef KC_USE_PROTOTYPES (Cvariabledeclaration kc_p1, Cvariabledeclaration kc_p2) #else (kc_p1, kc_p2) Cvariabledeclaration kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_Cvariabledeclaration); } /*ARGSUSED*/ boolean eq_Cvariables #ifdef KC_USE_PROTOTYPES (Cvariables kc_p1, Cvariables kc_p2) #else (kc_p1, kc_p2) Cvariables kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_Cvariables); } /*ARGSUSED*/ boolean eq_Cvariable #ifdef KC_USE_PROTOTYPES (Cvariable kc_p1, Cvariable kc_p2) #else (kc_p1, kc_p2) Cvariable kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_Cvariable); } /*ARGSUSED*/ boolean eq_Ctext #ifdef KC_USE_PROTOTYPES (Ctext kc_p1, Ctext kc_p2) #else (kc_p1, kc_p2) Ctext kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_Ctext); } /*ARGSUSED*/ boolean eq_Ctext_elem #ifdef KC_USE_PROTOTYPES (Ctext_elem kc_p1, Ctext_elem kc_p2) #else (kc_p1, kc_p2) Ctext_elem kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_Ctext_elem); } /*ARGSUSED*/ boolean eq_foreach_after #ifdef KC_USE_PROTOTYPES (foreach_after kc_p1, foreach_after kc_p2) #else (kc_p1, kc_p2) foreach_after kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_foreach_after); } /*ARGSUSED*/ boolean eq_contextinfo #ifdef KC_USE_PROTOTYPES (contextinfo kc_p1, contextinfo kc_p2) #else (kc_p1, kc_p2) contextinfo kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_contextinfo); } /*ARGSUSED*/ boolean eq_withexpressions #ifdef KC_USE_PROTOTYPES (withexpressions kc_p1, withexpressions kc_p2) #else (kc_p1, kc_p2) withexpressions kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_withexpressions); } /*ARGSUSED*/ boolean eq_withexpression #ifdef KC_USE_PROTOTYPES (withexpression kc_p1, withexpression kc_p2) #else (kc_p1, kc_p2) withexpression kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_withexpression); } /*ARGSUSED*/ boolean eq_withcases #ifdef KC_USE_PROTOTYPES (withcases kc_p1, withcases kc_p2) #else (kc_p1, kc_p2) withcases kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_withcases); } /*ARGSUSED*/ boolean eq_withcase #ifdef KC_USE_PROTOTYPES (withcase kc_p1, withcase kc_p2) #else (kc_p1, kc_p2) withcase kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_withcase); } /*ARGSUSED*/ boolean eq_unparsedeclarations #ifdef KC_USE_PROTOTYPES (unparsedeclarations kc_p1, unparsedeclarations kc_p2) #else (kc_p1, kc_p2) unparsedeclarations kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_unparsedeclarations); } /*ARGSUSED*/ boolean eq_unparsedeclaration #ifdef KC_USE_PROTOTYPES (unparsedeclaration kc_p1, unparsedeclaration kc_p2) #else (kc_p1, kc_p2) unparsedeclaration kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_unparsedeclaration); } /*ARGSUSED*/ boolean eq_unparseclauses #ifdef KC_USE_PROTOTYPES (unparseclauses kc_p1, unparseclauses kc_p2) #else (kc_p1, kc_p2) unparseclauses kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_unparseclauses); } /*ARGSUSED*/ boolean eq_unparseclause #ifdef KC_USE_PROTOTYPES (unparseclause kc_p1, unparseclause kc_p2) #else (kc_p1, kc_p2) unparseclause kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_unparseclause); } /*ARGSUSED*/ boolean eq_viewnames #ifdef KC_USE_PROTOTYPES (viewnames kc_p1, viewnames kc_p2) #else (kc_p1, kc_p2) viewnames kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_viewnames); } /*ARGSUSED*/ boolean eq_unparseitems #ifdef KC_USE_PROTOTYPES (unparseitems kc_p1, unparseitems kc_p2) #else (kc_p1, kc_p2) unparseitems kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_unparseitems); } /*ARGSUSED*/ boolean eq_unparseitem #ifdef KC_USE_PROTOTYPES (unparseitem kc_p1, unparseitem kc_p2) #else (kc_p1, kc_p2) unparseitem kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_unparseitem); } /*ARGSUSED*/ boolean eq_unpsubterm #ifdef KC_USE_PROTOTYPES (unpsubterm kc_p1, unpsubterm kc_p2) #else (kc_p1, kc_p2) unpsubterm kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_unpsubterm); } /*ARGSUSED*/ boolean eq_unpattributes #ifdef KC_USE_PROTOTYPES (unpattributes kc_p1, unpattributes kc_p2) #else (kc_p1, kc_p2) unpattributes kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_unpattributes); } /*ARGSUSED*/ boolean eq_viewnameoption #ifdef KC_USE_PROTOTYPES (viewnameoption kc_p1, viewnameoption kc_p2) #else (kc_p1, kc_p2) viewnameoption kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_viewnameoption); } /*ARGSUSED*/ boolean eq_filelinestack #ifdef KC_USE_PROTOTYPES (filelinestack kc_p1, filelinestack kc_p2) #else (kc_p1, kc_p2) filelinestack kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_filelinestack); } /*ARGSUSED*/ boolean eq_fileline #ifdef KC_USE_PROTOTYPES (fileline kc_p1, fileline kc_p2) #else (kc_p1, kc_p2) fileline kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_fileline); } /*ARGSUSED*/ boolean eq_nooperatorsstack #ifdef KC_USE_PROTOTYPES (nooperatorsstack kc_p1, nooperatorsstack kc_p2) #else (kc_p1, kc_p2) nooperatorsstack kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_nooperatorsstack); } /*ARGSUSED*/ boolean eq_scopetypefilelinestack #ifdef KC_USE_PROTOTYPES (scopetypefilelinestack kc_p1, scopetypefilelinestack kc_p2) #else (kc_p1, kc_p2) scopetypefilelinestack kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_scopetypefilelinestack); } /*ARGSUSED*/ boolean eq_scopetypefileline #ifdef KC_USE_PROTOTYPES (scopetypefileline kc_p1, scopetypefileline kc_p2) #else (kc_p1, kc_p2) scopetypefileline kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_scopetypefileline); } /*ARGSUSED*/ boolean eq_IDtype #ifdef KC_USE_PROTOTYPES (IDtype kc_p1, IDtype kc_p2) #else (kc_p1, kc_p2) IDtype kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_IDtype); } /*ARGSUSED*/ boolean eq_operatorsstack #ifdef KC_USE_PROTOTYPES (operatorsstack kc_p1, operatorsstack kc_p2) #else (kc_p1, kc_p2) operatorsstack kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_operatorsstack); } /*ARGSUSED*/ boolean eq_operators #ifdef KC_USE_PROTOTYPES (operators kc_p1, operators kc_p2) #else (kc_p1, kc_p2) operators kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_operators); } /*ARGSUSED*/ boolean eq_phyla #ifdef KC_USE_PROTOTYPES (phyla kc_p1, phyla kc_p2) #else (kc_p1, kc_p2) phyla kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_phyla); } /*ARGSUSED*/ boolean eq_variables #ifdef KC_USE_PROTOTYPES (variables kc_p1, variables kc_p2) #else (kc_p1, kc_p2) variables kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_variables); } /*ARGSUSED*/ boolean eq_argumentsstack #ifdef KC_USE_PROTOTYPES (argumentsstack kc_p1, argumentsstack kc_p2) #else (kc_p1, kc_p2) argumentsstack kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_argumentsstack); } /*ARGSUSED*/ boolean eq_phylumstack #ifdef KC_USE_PROTOTYPES (phylumstack kc_p1, phylumstack kc_p2) #else (kc_p1, kc_p2) phylumstack kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_phylumstack); } /*ARGSUSED*/ boolean eq_phylumnamesstack #ifdef KC_USE_PROTOTYPES (phylumnamesstack kc_p1, phylumnamesstack kc_p2) #else (kc_p1, kc_p2) phylumnamesstack kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_phylumnamesstack); } /*ARGSUSED*/ boolean eq_withexpressionsstack #ifdef KC_USE_PROTOTYPES (withexpressionsstack kc_p1, withexpressionsstack kc_p2) #else (kc_p1, kc_p2) withexpressionsstack kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_withexpressionsstack); } /*ARGSUSED*/ boolean eq_operatorstack #ifdef KC_USE_PROTOTYPES (operatorstack kc_p1, operatorstack kc_p2) #else (kc_p1, kc_p2) operatorstack kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_operatorstack); } /*ARGSUSED*/ boolean eq_variablesstack #ifdef KC_USE_PROTOTYPES (variablesstack kc_p1, variablesstack kc_p2) #else (kc_p1, kc_p2) variablesstack kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_variablesstack); } /*ARGSUSED*/ boolean eq_selvarstack #ifdef KC_USE_PROTOTYPES (selvarstack kc_p1, selvarstack kc_p2) #else (kc_p1, kc_p2) selvarstack kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_selvarstack); } /*ARGSUSED*/ boolean eq_dollarvarstatus #ifdef KC_USE_PROTOTYPES (dollarvarstatus kc_p1, dollarvarstatus kc_p2) #else (kc_p1, kc_p2) dollarvarstatus kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_dollarvarstatus); } /*ARGSUSED*/ boolean eq_dollarvarsallowedstack #ifdef KC_USE_PROTOTYPES (dollarvarsallowedstack kc_p1, dollarvarsallowedstack kc_p2) #else (kc_p1, kc_p2) dollarvarsallowedstack kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_dollarvarsallowedstack); } /*ARGSUSED*/ boolean eq_intstack #ifdef KC_USE_PROTOTYPES (intstack kc_p1, intstack kc_p2) #else (kc_p1, kc_p2) intstack kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_intstack); } /*ARGSUSED*/ boolean eq_idCexpressionsstack #ifdef KC_USE_PROTOTYPES (idCexpressionsstack kc_p1, idCexpressionsstack kc_p2) #else (kc_p1, kc_p2) idCexpressionsstack kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_idCexpressionsstack); } /*ARGSUSED*/ boolean eq_two_phyla #ifdef KC_USE_PROTOTYPES (two_phyla kc_p1, two_phyla kc_p2) #else (kc_p1, kc_p2) two_phyla kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_two_phyla); } /*ARGSUSED*/ boolean eq_tribool #ifdef KC_USE_PROTOTYPES (tribool kc_p1, tribool kc_p2) #else (kc_p1, kc_p2) tribool kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_tribool); } /*ARGSUSED*/ boolean eq_patternrepresentations #ifdef KC_USE_PROTOTYPES (patternrepresentations kc_p1, patternrepresentations kc_p2) #else (kc_p1, kc_p2) patternrepresentations kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_patternrepresentations); } /*ARGSUSED*/ boolean eq_patternrepresentation #ifdef KC_USE_PROTOTYPES (patternrepresentation kc_p1, patternrepresentation kc_p2) #else (kc_p1, kc_p2) patternrepresentation kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_patternrepresentation); } /*ARGSUSED*/ boolean eq_elem_patternrepresentation #ifdef KC_USE_PROTOTYPES (elem_patternrepresentation kc_p1, elem_patternrepresentation kc_p2) #else (kc_p1, kc_p2) elem_patternrepresentation kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_elem_patternrepresentation); } /*ARGSUSED*/ boolean eq_path #ifdef KC_USE_PROTOTYPES (path kc_p1, path kc_p2) #else (kc_p1, kc_p2) path kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_path); } /*ARGSUSED*/ boolean eq_paths #ifdef KC_USE_PROTOTYPES (paths kc_p1, paths kc_p2) #else (kc_p1, kc_p2) paths kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_paths); } /*ARGSUSED*/ boolean eq_argsnumbers #ifdef KC_USE_PROTOTYPES (argsnumbers kc_p1, argsnumbers kc_p2) #else (kc_p1, kc_p2) argsnumbers kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_argsnumbers); } /*ARGSUSED*/ boolean eq_rewriterulesinfo #ifdef KC_USE_PROTOTYPES (rewriterulesinfo kc_p1, rewriterulesinfo kc_p2) #else (kc_p1, kc_p2) rewriterulesinfo kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_rewriterulesinfo); } /*ARGSUSED*/ boolean eq_rewriteruleinfo #ifdef KC_USE_PROTOTYPES (rewriteruleinfo kc_p1, rewriteruleinfo kc_p2) #else (kc_p1, kc_p2) rewriteruleinfo kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_rewriteruleinfo); } /*ARGSUSED*/ boolean eq_withcasesinfo #ifdef KC_USE_PROTOTYPES (withcasesinfo kc_p1, withcasesinfo kc_p2) #else (kc_p1, kc_p2) withcasesinfo kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_withcasesinfo); } /*ARGSUSED*/ boolean eq_withcaseinfo #ifdef KC_USE_PROTOTYPES (withcaseinfo kc_p1, withcaseinfo kc_p2) #else (kc_p1, kc_p2) withcaseinfo kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_withcaseinfo); } /*ARGSUSED*/ boolean eq_rewriteviewsinfo #ifdef KC_USE_PROTOTYPES (rewriteviewsinfo kc_p1, rewriteviewsinfo kc_p2) #else (kc_p1, kc_p2) rewriteviewsinfo kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_rewriteviewsinfo); } /*ARGSUSED*/ boolean eq_rewriteviewinfo #ifdef KC_USE_PROTOTYPES (rewriteviewinfo kc_p1, rewriteviewinfo kc_p2) #else (kc_p1, kc_p2) rewriteviewinfo kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_rewriteviewinfo); } /*ARGSUSED*/ boolean eq_unparseviewsinfo #ifdef KC_USE_PROTOTYPES (unparseviewsinfo kc_p1, unparseviewsinfo kc_p2) #else (kc_p1, kc_p2) unparseviewsinfo kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_unparseviewsinfo); } /*ARGSUSED*/ boolean eq_unparseviewinfo #ifdef KC_USE_PROTOTYPES (unparseviewinfo kc_p1, unparseviewinfo kc_p2) #else (kc_p1, kc_p2) unparseviewinfo kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_unparseviewinfo); } /*ARGSUSED*/ boolean eq_unparsedeclsinfo #ifdef KC_USE_PROTOTYPES (unparsedeclsinfo kc_p1, unparsedeclsinfo kc_p2) #else (kc_p1, kc_p2) unparsedeclsinfo kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_unparsedeclsinfo); } /*ARGSUSED*/ boolean eq_unparsedeclinfo #ifdef KC_USE_PROTOTYPES (unparsedeclinfo kc_p1, unparsedeclinfo kc_p2) #else (kc_p1, kc_p2) unparsedeclinfo kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_unparsedeclinfo); } /*ARGSUSED*/ boolean eq_ac_declaration #ifdef KC_USE_PROTOTYPES (ac_declaration kc_p1, ac_declaration kc_p2) #else (kc_p1, kc_p2) ac_declaration kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_declaration); } /*ARGSUSED*/ boolean eq_ac_declaration_list #ifdef KC_USE_PROTOTYPES (ac_declaration_list kc_p1, ac_declaration_list kc_p2) #else (kc_p1, kc_p2) ac_declaration_list kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_declaration_list); } /*ARGSUSED*/ boolean eq_ac_declaration_specifiers #ifdef KC_USE_PROTOTYPES (ac_declaration_specifiers kc_p1, ac_declaration_specifiers kc_p2) #else (kc_p1, kc_p2) ac_declaration_specifiers kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_declaration_specifiers); } /*ARGSUSED*/ boolean eq_ac_declaration_specifier #ifdef KC_USE_PROTOTYPES (ac_declaration_specifier kc_p1, ac_declaration_specifier kc_p2) #else (kc_p1, kc_p2) ac_declaration_specifier kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_declaration_specifier); } /*ARGSUSED*/ boolean eq_ac_storage_class_specifier #ifdef KC_USE_PROTOTYPES (ac_storage_class_specifier kc_p1, ac_storage_class_specifier kc_p2) #else (kc_p1, kc_p2) ac_storage_class_specifier kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_storage_class_specifier); } /*ARGSUSED*/ boolean eq_ac_type_specifier #ifdef KC_USE_PROTOTYPES (ac_type_specifier kc_p1, ac_type_specifier kc_p2) #else (kc_p1, kc_p2) ac_type_specifier kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_type_specifier); } /*ARGSUSED*/ boolean eq_ac_type_qualifier #ifdef KC_USE_PROTOTYPES (ac_type_qualifier kc_p1, ac_type_qualifier kc_p2) #else (kc_p1, kc_p2) ac_type_qualifier kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_type_qualifier); } /*ARGSUSED*/ boolean eq_ac_init_declarator_list #ifdef KC_USE_PROTOTYPES (ac_init_declarator_list kc_p1, ac_init_declarator_list kc_p2) #else (kc_p1, kc_p2) ac_init_declarator_list kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_init_declarator_list); } /*ARGSUSED*/ boolean eq_ac_init_declarator #ifdef KC_USE_PROTOTYPES (ac_init_declarator kc_p1, ac_init_declarator kc_p2) #else (kc_p1, kc_p2) ac_init_declarator kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_init_declarator); } /*ARGSUSED*/ boolean eq_ac_declarator #ifdef KC_USE_PROTOTYPES (ac_declarator kc_p1, ac_declarator kc_p2) #else (kc_p1, kc_p2) ac_declarator kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_declarator); } /*ARGSUSED*/ boolean eq_ac_direct_declarator #ifdef KC_USE_PROTOTYPES (ac_direct_declarator kc_p1, ac_direct_declarator kc_p2) #else (kc_p1, kc_p2) ac_direct_declarator kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_direct_declarator); } /*ARGSUSED*/ boolean eq_ac_pointer_option #ifdef KC_USE_PROTOTYPES (ac_pointer_option kc_p1, ac_pointer_option kc_p2) #else (kc_p1, kc_p2) ac_pointer_option kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_pointer_option); } /*ARGSUSED*/ boolean eq_ac_pointer #ifdef KC_USE_PROTOTYPES (ac_pointer kc_p1, ac_pointer kc_p2) #else (kc_p1, kc_p2) ac_pointer kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_pointer); } /*ARGSUSED*/ boolean eq_ac_type_qualifier_list #ifdef KC_USE_PROTOTYPES (ac_type_qualifier_list kc_p1, ac_type_qualifier_list kc_p2) #else (kc_p1, kc_p2) ac_type_qualifier_list kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_type_qualifier_list); } /*ARGSUSED*/ boolean eq_ac_parameter_type_list #ifdef KC_USE_PROTOTYPES (ac_parameter_type_list kc_p1, ac_parameter_type_list kc_p2) #else (kc_p1, kc_p2) ac_parameter_type_list kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_parameter_type_list); } /*ARGSUSED*/ boolean eq_ac_parameter_list #ifdef KC_USE_PROTOTYPES (ac_parameter_list kc_p1, ac_parameter_list kc_p2) #else (kc_p1, kc_p2) ac_parameter_list kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_parameter_list); } /*ARGSUSED*/ boolean eq_ac_parameter_declaration #ifdef KC_USE_PROTOTYPES (ac_parameter_declaration kc_p1, ac_parameter_declaration kc_p2) #else (kc_p1, kc_p2) ac_parameter_declaration kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_parameter_declaration); } /*ARGSUSED*/ boolean eq_ac_identifier_list #ifdef KC_USE_PROTOTYPES (ac_identifier_list kc_p1, ac_identifier_list kc_p2) #else (kc_p1, kc_p2) ac_identifier_list kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_identifier_list); } /*ARGSUSED*/ boolean eq_ac_abstract_declarator #ifdef KC_USE_PROTOTYPES (ac_abstract_declarator kc_p1, ac_abstract_declarator kc_p2) #else (kc_p1, kc_p2) ac_abstract_declarator kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_abstract_declarator); } /*ARGSUSED*/ boolean eq_ac_direct_abstract_declarator_option #ifdef KC_USE_PROTOTYPES (ac_direct_abstract_declarator_option kc_p1, ac_direct_abstract_declarator_option kc_p2) #else (kc_p1, kc_p2) ac_direct_abstract_declarator_option kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_direct_abstract_declarator_option); } /*ARGSUSED*/ boolean eq_ac_direct_abstract_declarator #ifdef KC_USE_PROTOTYPES (ac_direct_abstract_declarator kc_p1, ac_direct_abstract_declarator kc_p2) #else (kc_p1, kc_p2) ac_direct_abstract_declarator kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_direct_abstract_declarator); } /*ARGSUSED*/ boolean eq_ac_constant_expression_option #ifdef KC_USE_PROTOTYPES (ac_constant_expression_option kc_p1, ac_constant_expression_option kc_p2) #else (kc_p1, kc_p2) ac_constant_expression_option kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_constant_expression_option); } /*ARGSUSED*/ boolean eq_ac_constant_expression #ifdef KC_USE_PROTOTYPES (ac_constant_expression kc_p1, ac_constant_expression kc_p2) #else (kc_p1, kc_p2) ac_constant_expression kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_constant_expression); } /*ARGSUSED*/ boolean eq_error #ifdef KC_USE_PROTOTYPES (error kc_p1, error kc_p2) #else (kc_p1, kc_p2) error kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_error); } /*ARGSUSED*/ boolean eq_problem #ifdef KC_USE_PROTOTYPES (problem kc_p1, problem kc_p2) #else (kc_p1, kc_p2) problem kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_problem); } /*ARGSUSED*/ boolean eq_addedphylumdeclarations #ifdef KC_USE_PROTOTYPES (addedphylumdeclarations kc_p1, addedphylumdeclarations kc_p2) #else (kc_p1, kc_p2) addedphylumdeclarations kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_addedphylumdeclarations); } /*ARGSUSED*/ boolean eq_addedphylumdeclaration #ifdef KC_USE_PROTOTYPES (addedphylumdeclaration kc_p1, addedphylumdeclaration kc_p2) #else (kc_p1, kc_p2) addedphylumdeclaration kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_addedphylumdeclaration); } /*ARGSUSED*/ boolean eq_countedphylumdeclarations #ifdef KC_USE_PROTOTYPES (countedphylumdeclarations kc_p1, countedphylumdeclarations kc_p2) #else (kc_p1, kc_p2) countedphylumdeclarations kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_countedphylumdeclarations); } /*ARGSUSED*/ boolean eq_countedphylumdeclaration #ifdef KC_USE_PROTOTYPES (countedphylumdeclaration kc_p1, countedphylumdeclaration kc_p2) #else (kc_p1, kc_p2) countedphylumdeclaration kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_countedphylumdeclaration); } /*ARGSUSED*/ boolean eq_bindingidmarks #ifdef KC_USE_PROTOTYPES (bindingidmarks kc_p1, bindingidmarks kc_p2) #else (kc_p1, kc_p2) bindingidmarks kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_bindingidmarks); } /*ARGSUSED*/ boolean eq_bindingidmark #ifdef KC_USE_PROTOTYPES (bindingidmark kc_p1, bindingidmark kc_p2) #else (kc_p1, kc_p2) bindingidmark kc_p1, kc_p2; #endif { return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_bindingidmark); } static int kc_indentation = 0; static char *kc_printformat_not_nullair_open = "%*s%s(\n"; static char *kc_printformat_not_nullair_close = "%*s)\n"; static char *kc_printformat_nullair = "%*s%s()\n"; static void kc_do_print_phylum #ifdef KC_USE_PROTOTYPES (FILE *kc_f, kc_voidptr_t kc_p, kc_enum_phyla kc_phylum) #else (kc_f, kc_p, kc_phylum) FILE *kc_f; kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; #endif { int kc_i; /*SUPPRESS 622*/ assertReason(kc_phylum != kc_phylum_int, "kc_do_print_phylum called with kc_phylum_int argument"); /*SUPPRESS 622*/ assertReason(kc_phylum != kc_phylum_float, "kc_do_print_phylum called with kc_phylum_float argument"); /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),"kc_p",kc_phylum); if (!kc_f) kc_f = stdout; if (kc_phylum == kc_phylum_voidptr) { (void)fprintf(kc_f, "%*s%p\n", kc_indentation, "", kc_p); } else if ((kc_phylum == kc_phylum_casestring) || (kc_phylum == kc_phylum_nocasestring)) { (void)fprintf(kc_f, "%*s%s\n", kc_indentation, "", ((casestring)kc_p)->name); } else { kc_enum_operators kc_prodsel = ((casestring)kc_p)->prod_sel; KC_OPERATOR_INFO *kc_op_info = &kc_OperatorInfo[(int)kc_prodsel]; if (! kc_op_info->no_sons) { (void)fprintf(kc_f, kc_printformat_nullair, kc_indentation, "", kc_op_info->name); } else { (void)fprintf(kc_f, kc_printformat_not_nullair_open, kc_indentation, "", kc_op_info->name); kc_indentation++; switch(kc_prodsel) { case (int)sel_Int: { fprint_int(kc_f, ((INT)kc_p)->u.Int.int_1); break; } case (int)sel_Argument: { kc_do_print_phylum(kc_f, (kc_voidptr_t)((argument)kc_p)->u.Argument.ID_1, kc_phylum_ID ); fprint_int(kc_f, ((argument)kc_p)->u.Argument.int_1); break; } case (int)sel_CExpressionNl: { fprint_int(kc_f, ((Cexpression_elem)kc_p)->u.CExpressionNl.int_1); break; } case (int)sel_CExpressionDQNl: { fprint_int(kc_f, ((CexpressionDQ_elem)kc_p)->u.CExpressionDQNl.int_1); break; } case (int)sel_CExpressionSQNl: { fprint_int(kc_f, ((CexpressionSQ_elem)kc_p)->u.CExpressionSQNl.int_1); break; } case (int)sel_IncludeNl: { fprint_int(kc_f, ((include)kc_p)->u.IncludeNl.int_1); break; } case (int)sel_FnDeclaration: { kc_do_print_phylum(kc_f, (kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.ID_1, kc_phylum_ID ); fprint_int(kc_f, ((fndeclaration)kc_p)->u.FnDeclaration.int_1); kc_do_print_phylum(kc_f, (kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.ID_2, kc_phylum_ID ); kc_do_print_phylum(kc_f, (kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.fnarguments_1, kc_phylum_fnarguments ); kc_do_print_phylum(kc_f, (kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.Cvariabledeclarations_1, kc_phylum_Cvariabledeclarations ); kc_do_print_phylum(kc_f, (kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.Ctext_1, kc_phylum_Ctext ); kc_do_print_phylum(kc_f, (kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.fnclass_1, kc_phylum_fnclass ); break; } case (int)sel_CVPointer: { fprint_int(kc_f, ((Cvariable)kc_p)->u.CVPointer.int_1); kc_do_print_phylum(kc_f, (kc_voidptr_t)((Cvariable)kc_p)->u.CVPointer.ID_1, kc_phylum_ID ); break; } case (int)sel_CVFunction: { fprint_int(kc_f, ((Cvariable)kc_p)->u.CVFunction.int_1); fprint_int(kc_f, ((Cvariable)kc_p)->u.CVFunction.int_2); kc_do_print_phylum(kc_f, (kc_voidptr_t)((Cvariable)kc_p)->u.CVFunction.ID_1, kc_phylum_ID ); break; } case (int)sel_CTextNl: { fprint_int(kc_f, ((Ctext_elem)kc_p)->u.CTextNl.int_1); break; } case (int)sel_FileLine: { kc_do_print_phylum(kc_f, (kc_voidptr_t)((fileline)kc_p)->u.FileLine.casestring_1, kc_phylum_casestring ); fprint_int(kc_f, ((fileline)kc_p)->u.FileLine.int_1); break; } case (int)sel_Consnooperatorsstack: { fprint_int(kc_f, ((nooperatorsstack)kc_p)->u.Consnooperatorsstack.int_1); kc_do_print_phylum(kc_f, (kc_voidptr_t)((nooperatorsstack)kc_p)->u.Consnooperatorsstack.nooperatorsstack_1, kc_phylum_nooperatorsstack ); break; } case (int)sel_ScopeTypeFileLine: { fprint_int(kc_f, ((scopetypefileline)kc_p)->u.ScopeTypeFileLine.int_1); kc_do_print_phylum(kc_f, (kc_voidptr_t)((scopetypefileline)kc_p)->u.ScopeTypeFileLine.IDtype_1, kc_phylum_IDtype ); kc_do_print_phylum(kc_f, (kc_voidptr_t)((scopetypefileline)kc_p)->u.ScopeTypeFileLine.casestring_1, kc_phylum_casestring ); fprint_int(kc_f, ((scopetypefileline)kc_p)->u.ScopeTypeFileLine.int_2); break; } case (int)sel_ITPatternVariable: { kc_do_print_phylum(kc_f, (kc_voidptr_t)((IDtype)kc_p)->u.ITPatternVariable.ID_1, kc_phylum_ID ); fprint_int(kc_f, ((IDtype)kc_p)->u.ITPatternVariable.int_1); break; } case (int)sel_Consintstack: { fprint_int(kc_f, ((intstack)kc_p)->u.Consintstack.int_1); kc_do_print_phylum(kc_f, (kc_voidptr_t)((intstack)kc_p)->u.Consintstack.intstack_1, kc_phylum_intstack ); break; } case (int)sel_Conspath: { fprint_int(kc_f, ((path)kc_p)->u.Conspath.int_1); kc_do_print_phylum(kc_f, (kc_voidptr_t)((path)kc_p)->u.Conspath.path_1, kc_phylum_path ); break; } case (int)sel_Consargsnumbers: { fprint_int(kc_f, ((argsnumbers)kc_p)->u.Consargsnumbers.int_1); kc_do_print_phylum(kc_f, (kc_voidptr_t)((argsnumbers)kc_p)->u.Consargsnumbers.argsnumbers_1, kc_phylum_argsnumbers ); break; } case (int)sel_Problem1int1: { kc_do_print_phylum(kc_f, (kc_voidptr_t)((problem)kc_p)->u.Problem1int1.casestring_1, kc_phylum_casestring ); fprint_int(kc_f, ((problem)kc_p)->u.Problem1int1.int_1); kc_do_print_phylum(kc_f, (kc_voidptr_t)((problem)kc_p)->u.Problem1int1.casestring_2, kc_phylum_casestring ); break; } case (int)sel_Problem3int1: { kc_do_print_phylum(kc_f, (kc_voidptr_t)((problem)kc_p)->u.Problem3int1.casestring_1, kc_phylum_casestring ); kc_do_print_phylum(kc_f, (kc_voidptr_t)((problem)kc_p)->u.Problem3int1.casestring_2, kc_phylum_casestring ); kc_do_print_phylum(kc_f, (kc_voidptr_t)((problem)kc_p)->u.Problem3int1.casestring_3, kc_phylum_casestring ); fprint_int(kc_f, ((problem)kc_p)->u.Problem3int1.int_1); kc_do_print_phylum(kc_f, (kc_voidptr_t)((problem)kc_p)->u.Problem3int1.casestring_4, kc_phylum_casestring ); break; } default: for (kc_i=0; kc_i < kc_op_info->no_sons; kc_i++) { kc_do_print_phylum(kc_f, (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_op_info->suboffset[kc_i]), kc_op_info->subphylum[kc_i] ); } } kc_indentation--; (void)fprintf(kc_f, kc_printformat_not_nullair_close, kc_indentation, ""); } } } void print_nocasestring #ifdef KC_USE_PROTOTYPES (nocasestring kc_p) #else (kc_p) nocasestring kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_nocasestring); } void fprint_nocasestring #ifdef KC_USE_PROTOTYPES (FILE *kc_f, nocasestring kc_p) #else (kc_f, kc_p) FILE *kc_f; nocasestring kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_nocasestring); } void print_casestring #ifdef KC_USE_PROTOTYPES (casestring kc_p) #else (kc_p) casestring kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_casestring); } void fprint_casestring #ifdef KC_USE_PROTOTYPES (FILE *kc_f, casestring kc_p) #else (kc_f, kc_p) FILE *kc_f; casestring kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_casestring); } void print_float #ifdef KC_USE_PROTOTYPES (float kc_p) #else (kc_p) float kc_p; #endif { (void)fprintf(stdout, "%*s%f\n", kc_indentation, "", kc_p); } void fprint_float #ifdef KC_USE_PROTOTYPES (FILE *kc_f, float kc_p) #else (kc_f, kc_p) FILE *kc_f; float kc_p; #endif { if (!kc_f) kc_f = stdout; (void)fprintf(kc_f, "%*s%f\n", kc_indentation, "", kc_p); } void print_int #ifdef KC_USE_PROTOTYPES (int kc_p) #else (kc_p) int kc_p; #endif { (void)fprintf(stdout, "%*s%d\n", kc_indentation, "", kc_p); } void fprint_int #ifdef KC_USE_PROTOTYPES (FILE *kc_f, int kc_p) #else (kc_f, kc_p) FILE *kc_f; int kc_p; #endif { if (!kc_f) kc_f = stdout; (void)fprintf(kc_f, "%*s%d\n", kc_indentation, "", kc_p); } void print_voidptr #ifdef KC_USE_PROTOTYPES (voidptr kc_p) #else (kc_p) voidptr kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_voidptr); } void fprint_voidptr #ifdef KC_USE_PROTOTYPES (FILE *kc_f, voidptr kc_p) #else (kc_f, kc_p) FILE *kc_f; voidptr kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_voidptr); } void print_uniqID #ifdef KC_USE_PROTOTYPES (uniqID kc_p) #else (kc_p) uniqID kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_uniqID); } void fprint_uniqID #ifdef KC_USE_PROTOTYPES (FILE *kc_f, uniqID kc_p) #else (kc_f, kc_p) FILE *kc_f; uniqID kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_uniqID); } void print_ID #ifdef KC_USE_PROTOTYPES (ID kc_p) #else (kc_p) ID kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ID); } void fprint_ID #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ID kc_p) #else (kc_f, kc_p) FILE *kc_f; ID kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ID); } void print_INT #ifdef KC_USE_PROTOTYPES (INT kc_p) #else (kc_p) INT kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_INT); } void fprint_INT #ifdef KC_USE_PROTOTYPES (FILE *kc_f, INT kc_p) #else (kc_f, kc_p) FILE *kc_f; INT kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_INT); } void print_STRING #ifdef KC_USE_PROTOTYPES (STRING kc_p) #else (kc_p) STRING kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_STRING); } void fprint_STRING #ifdef KC_USE_PROTOTYPES (FILE *kc_f, STRING kc_p) #else (kc_f, kc_p) FILE *kc_f; STRING kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_STRING); } void print_phylumdeclarationsroot #ifdef KC_USE_PROTOTYPES (phylumdeclarationsroot kc_p) #else (kc_p) phylumdeclarationsroot kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_phylumdeclarationsroot); } void fprint_phylumdeclarationsroot #ifdef KC_USE_PROTOTYPES (FILE *kc_f, phylumdeclarationsroot kc_p) #else (kc_f, kc_p) FILE *kc_f; phylumdeclarationsroot kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_phylumdeclarationsroot); } void print_phylumdeclarations #ifdef KC_USE_PROTOTYPES (phylumdeclarations kc_p) #else (kc_p) phylumdeclarations kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_phylumdeclarations); } void fprint_phylumdeclarations #ifdef KC_USE_PROTOTYPES (FILE *kc_f, phylumdeclarations kc_p) #else (kc_f, kc_p) FILE *kc_f; phylumdeclarations kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_phylumdeclarations); } void print_phylumnames #ifdef KC_USE_PROTOTYPES (phylumnames kc_p) #else (kc_p) phylumnames kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_phylumnames); } void fprint_phylumnames #ifdef KC_USE_PROTOTYPES (FILE *kc_f, phylumnames kc_p) #else (kc_f, kc_p) FILE *kc_f; phylumnames kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_phylumnames); } void print_phylumdeclaration #ifdef KC_USE_PROTOTYPES (phylumdeclaration kc_p) #else (kc_p) phylumdeclaration kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_phylumdeclaration); } void fprint_phylumdeclaration #ifdef KC_USE_PROTOTYPES (FILE *kc_f, phylumdeclaration kc_p) #else (kc_f, kc_p) FILE *kc_f; phylumdeclaration kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_phylumdeclaration); } void print_storageoption #ifdef KC_USE_PROTOTYPES (storageoption kc_p) #else (kc_p) storageoption kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_storageoption); } void fprint_storageoption #ifdef KC_USE_PROTOTYPES (FILE *kc_f, storageoption kc_p) #else (kc_f, kc_p) FILE *kc_f; storageoption kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_storageoption); } void print_storageclasses #ifdef KC_USE_PROTOTYPES (storageclasses kc_p) #else (kc_p) storageclasses kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_storageclasses); } void fprint_storageclasses #ifdef KC_USE_PROTOTYPES (FILE *kc_f, storageclasses kc_p) #else (kc_f, kc_p) FILE *kc_f; storageclasses kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_storageclasses); } void print_productionblock #ifdef KC_USE_PROTOTYPES (productionblock kc_p) #else (kc_p) productionblock kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_productionblock); } void fprint_productionblock #ifdef KC_USE_PROTOTYPES (FILE *kc_f, productionblock kc_p) #else (kc_f, kc_p) FILE *kc_f; productionblock kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_productionblock); } void print_alternatives #ifdef KC_USE_PROTOTYPES (alternatives kc_p) #else (kc_p) alternatives kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_alternatives); } void fprint_alternatives #ifdef KC_USE_PROTOTYPES (FILE *kc_f, alternatives kc_p) #else (kc_f, kc_p) FILE *kc_f; alternatives kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_alternatives); } void print_alternative #ifdef KC_USE_PROTOTYPES (alternative kc_p) #else (kc_p) alternative kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_alternative); } void fprint_alternative #ifdef KC_USE_PROTOTYPES (FILE *kc_f, alternative kc_p) #else (kc_f, kc_p) FILE *kc_f; alternative kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_alternative); } void print_arguments #ifdef KC_USE_PROTOTYPES (arguments kc_p) #else (kc_p) arguments kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_arguments); } void fprint_arguments #ifdef KC_USE_PROTOTYPES (FILE *kc_f, arguments kc_p) #else (kc_f, kc_p) FILE *kc_f; arguments kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_arguments); } void print_argument #ifdef KC_USE_PROTOTYPES (argument kc_p) #else (kc_p) argument kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_argument); } void fprint_argument #ifdef KC_USE_PROTOTYPES (FILE *kc_f, argument kc_p) #else (kc_f, kc_p) FILE *kc_f; argument kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_argument); } void print_Ccode_option #ifdef KC_USE_PROTOTYPES (Ccode_option kc_p) #else (kc_p) Ccode_option kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_Ccode_option); } void fprint_Ccode_option #ifdef KC_USE_PROTOTYPES (FILE *kc_f, Ccode_option kc_p) #else (kc_f, kc_p) FILE *kc_f; Ccode_option kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_Ccode_option); } void print_attributes #ifdef KC_USE_PROTOTYPES (attributes kc_p) #else (kc_p) attributes kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_attributes); } void fprint_attributes #ifdef KC_USE_PROTOTYPES (FILE *kc_f, attributes kc_p) #else (kc_f, kc_p) FILE *kc_f; attributes kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_attributes); } void print_attribute #ifdef KC_USE_PROTOTYPES (attribute kc_p) #else (kc_p) attribute kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_attribute); } void fprint_attribute #ifdef KC_USE_PROTOTYPES (FILE *kc_f, attribute kc_p) #else (kc_f, kc_p) FILE *kc_f; attribute kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_attribute); } void print_attribute_initialisation_option #ifdef KC_USE_PROTOTYPES (attribute_initialisation_option kc_p) #else (kc_p) attribute_initialisation_option kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_attribute_initialisation_option); } void fprint_attribute_initialisation_option #ifdef KC_USE_PROTOTYPES (FILE *kc_f, attribute_initialisation_option kc_p) #else (kc_f, kc_p) FILE *kc_f; attribute_initialisation_option kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_attribute_initialisation_option); } void print_Cexpression #ifdef KC_USE_PROTOTYPES (Cexpression kc_p) #else (kc_p) Cexpression kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_Cexpression); } void fprint_Cexpression #ifdef KC_USE_PROTOTYPES (FILE *kc_f, Cexpression kc_p) #else (kc_f, kc_p) FILE *kc_f; Cexpression kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_Cexpression); } void print_Cexpression_elem #ifdef KC_USE_PROTOTYPES (Cexpression_elem kc_p) #else (kc_p) Cexpression_elem kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_Cexpression_elem); } void fprint_Cexpression_elem #ifdef KC_USE_PROTOTYPES (FILE *kc_f, Cexpression_elem kc_p) #else (kc_f, kc_p) FILE *kc_f; Cexpression_elem kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_Cexpression_elem); } void print_CexpressionDQ #ifdef KC_USE_PROTOTYPES (CexpressionDQ kc_p) #else (kc_p) CexpressionDQ kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_CexpressionDQ); } void fprint_CexpressionDQ #ifdef KC_USE_PROTOTYPES (FILE *kc_f, CexpressionDQ kc_p) #else (kc_f, kc_p) FILE *kc_f; CexpressionDQ kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_CexpressionDQ); } void print_CexpressionDQ_elem #ifdef KC_USE_PROTOTYPES (CexpressionDQ_elem kc_p) #else (kc_p) CexpressionDQ_elem kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_CexpressionDQ_elem); } void fprint_CexpressionDQ_elem #ifdef KC_USE_PROTOTYPES (FILE *kc_f, CexpressionDQ_elem kc_p) #else (kc_f, kc_p) FILE *kc_f; CexpressionDQ_elem kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_CexpressionDQ_elem); } void print_CexpressionSQ #ifdef KC_USE_PROTOTYPES (CexpressionSQ kc_p) #else (kc_p) CexpressionSQ kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_CexpressionSQ); } void fprint_CexpressionSQ #ifdef KC_USE_PROTOTYPES (FILE *kc_f, CexpressionSQ kc_p) #else (kc_f, kc_p) FILE *kc_f; CexpressionSQ kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_CexpressionSQ); } void print_CexpressionSQ_elem #ifdef KC_USE_PROTOTYPES (CexpressionSQ_elem kc_p) #else (kc_p) CexpressionSQ_elem kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_CexpressionSQ_elem); } void fprint_CexpressionSQ_elem #ifdef KC_USE_PROTOTYPES (FILE *kc_f, CexpressionSQ_elem kc_p) #else (kc_f, kc_p) FILE *kc_f; CexpressionSQ_elem kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_CexpressionSQ_elem); } void print_idCexpressions #ifdef KC_USE_PROTOTYPES (idCexpressions kc_p) #else (kc_p) idCexpressions kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_idCexpressions); } void fprint_idCexpressions #ifdef KC_USE_PROTOTYPES (FILE *kc_f, idCexpressions kc_p) #else (kc_f, kc_p) FILE *kc_f; idCexpressions kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_idCexpressions); } void print_idCexpression #ifdef KC_USE_PROTOTYPES (idCexpression kc_p) #else (kc_p) idCexpression kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_idCexpression); } void fprint_idCexpression #ifdef KC_USE_PROTOTYPES (FILE *kc_f, idCexpression kc_p) #else (kc_f, kc_p) FILE *kc_f; idCexpression kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_idCexpression); } void print_Ctexts #ifdef KC_USE_PROTOTYPES (Ctexts kc_p) #else (kc_p) Ctexts kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_Ctexts); } void fprint_Ctexts #ifdef KC_USE_PROTOTYPES (FILE *kc_f, Ctexts kc_p) #else (kc_f, kc_p) FILE *kc_f; Ctexts kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_Ctexts); } void print_includefiles #ifdef KC_USE_PROTOTYPES (includefiles kc_p) #else (kc_p) includefiles kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_includefiles); } void fprint_includefiles #ifdef KC_USE_PROTOTYPES (FILE *kc_f, includefiles kc_p) #else (kc_f, kc_p) FILE *kc_f; includefiles kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_includefiles); } void print_includefile #ifdef KC_USE_PROTOTYPES (includefile kc_p) #else (kc_p) includefile kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_includefile); } void fprint_includefile #ifdef KC_USE_PROTOTYPES (FILE *kc_f, includefile kc_p) #else (kc_f, kc_p) FILE *kc_f; includefile kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_includefile); } void print_includedeclarations #ifdef KC_USE_PROTOTYPES (includedeclarations kc_p) #else (kc_p) includedeclarations kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_includedeclarations); } void fprint_includedeclarations #ifdef KC_USE_PROTOTYPES (FILE *kc_f, includedeclarations kc_p) #else (kc_f, kc_p) FILE *kc_f; includedeclarations kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_includedeclarations); } void print_includedeclaration #ifdef KC_USE_PROTOTYPES (includedeclaration kc_p) #else (kc_p) includedeclaration kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_includedeclaration); } void fprint_includedeclaration #ifdef KC_USE_PROTOTYPES (FILE *kc_f, includedeclaration kc_p) #else (kc_f, kc_p) FILE *kc_f; includedeclaration kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_includedeclaration); } void print_includes #ifdef KC_USE_PROTOTYPES (includes kc_p) #else (kc_p) includes kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_includes); } void fprint_includes #ifdef KC_USE_PROTOTYPES (FILE *kc_f, includes kc_p) #else (kc_f, kc_p) FILE *kc_f; includes kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_includes); } void print_include #ifdef KC_USE_PROTOTYPES (include kc_p) #else (kc_p) include kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_include); } void fprint_include #ifdef KC_USE_PROTOTYPES (FILE *kc_f, include kc_p) #else (kc_f, kc_p) FILE *kc_f; include kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_include); } void print_rwdeclarations #ifdef KC_USE_PROTOTYPES (rwdeclarations kc_p) #else (kc_p) rwdeclarations kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_rwdeclarations); } void fprint_rwdeclarations #ifdef KC_USE_PROTOTYPES (FILE *kc_f, rwdeclarations kc_p) #else (kc_f, kc_p) FILE *kc_f; rwdeclarations kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_rwdeclarations); } void print_rwdeclaration #ifdef KC_USE_PROTOTYPES (rwdeclaration kc_p) #else (kc_p) rwdeclaration kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_rwdeclaration); } void fprint_rwdeclaration #ifdef KC_USE_PROTOTYPES (FILE *kc_f, rwdeclaration kc_p) #else (kc_f, kc_p) FILE *kc_f; rwdeclaration kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_rwdeclaration); } void print_rewriteclauses #ifdef KC_USE_PROTOTYPES (rewriteclauses kc_p) #else (kc_p) rewriteclauses kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_rewriteclauses); } void fprint_rewriteclauses #ifdef KC_USE_PROTOTYPES (FILE *kc_f, rewriteclauses kc_p) #else (kc_f, kc_p) FILE *kc_f; rewriteclauses kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_rewriteclauses); } void print_rewriteclause #ifdef KC_USE_PROTOTYPES (rewriteclause kc_p) #else (kc_p) rewriteclause kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_rewriteclause); } void fprint_rewriteclause #ifdef KC_USE_PROTOTYPES (FILE *kc_f, rewriteclause kc_p) #else (kc_f, kc_p) FILE *kc_f; rewriteclause kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_rewriteclause); } void print_patternchains #ifdef KC_USE_PROTOTYPES (patternchains kc_p) #else (kc_p) patternchains kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_patternchains); } void fprint_patternchains #ifdef KC_USE_PROTOTYPES (FILE *kc_f, patternchains kc_p) #else (kc_f, kc_p) FILE *kc_f; patternchains kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_patternchains); } void print_patternchain #ifdef KC_USE_PROTOTYPES (patternchain kc_p) #else (kc_p) patternchain kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_patternchain); } void fprint_patternchain #ifdef KC_USE_PROTOTYPES (FILE *kc_f, patternchain kc_p) #else (kc_f, kc_p) FILE *kc_f; patternchain kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_patternchain); } void print_outmostpatterns #ifdef KC_USE_PROTOTYPES (outmostpatterns kc_p) #else (kc_p) outmostpatterns kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_outmostpatterns); } void fprint_outmostpatterns #ifdef KC_USE_PROTOTYPES (FILE *kc_f, outmostpatterns kc_p) #else (kc_f, kc_p) FILE *kc_f; outmostpatterns kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_outmostpatterns); } void print_patternchainitem #ifdef KC_USE_PROTOTYPES (patternchainitem kc_p) #else (kc_p) patternchainitem kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_patternchainitem); } void fprint_patternchainitem #ifdef KC_USE_PROTOTYPES (FILE *kc_f, patternchainitem kc_p) #else (kc_f, kc_p) FILE *kc_f; patternchainitem kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_patternchainitem); } void print_outmostpattern #ifdef KC_USE_PROTOTYPES (outmostpattern kc_p) #else (kc_p) outmostpattern kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_outmostpattern); } void fprint_outmostpattern #ifdef KC_USE_PROTOTYPES (FILE *kc_f, outmostpattern kc_p) #else (kc_f, kc_p) FILE *kc_f; outmostpattern kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_outmostpattern); } void print_pattern #ifdef KC_USE_PROTOTYPES (pattern kc_p) #else (kc_p) pattern kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_pattern); } void fprint_pattern #ifdef KC_USE_PROTOTYPES (FILE *kc_f, pattern kc_p) #else (kc_f, kc_p) FILE *kc_f; pattern kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_pattern); } void print_patterns #ifdef KC_USE_PROTOTYPES (patterns kc_p) #else (kc_p) patterns kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_patterns); } void fprint_patterns #ifdef KC_USE_PROTOTYPES (FILE *kc_f, patterns kc_p) #else (kc_f, kc_p) FILE *kc_f; patterns kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_patterns); } void print_term #ifdef KC_USE_PROTOTYPES (term kc_p) #else (kc_p) term kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_term); } void fprint_term #ifdef KC_USE_PROTOTYPES (FILE *kc_f, term kc_p) #else (kc_f, kc_p) FILE *kc_f; term kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_term); } void print_terms #ifdef KC_USE_PROTOTYPES (terms kc_p) #else (kc_p) terms kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_terms); } void fprint_terms #ifdef KC_USE_PROTOTYPES (FILE *kc_f, terms kc_p) #else (kc_f, kc_p) FILE *kc_f; terms kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_terms); } void print_fnfiles #ifdef KC_USE_PROTOTYPES (fnfiles kc_p) #else (kc_p) fnfiles kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_fnfiles); } void fprint_fnfiles #ifdef KC_USE_PROTOTYPES (FILE *kc_f, fnfiles kc_p) #else (kc_f, kc_p) FILE *kc_f; fnfiles kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_fnfiles); } void print_fnfile #ifdef KC_USE_PROTOTYPES (fnfile kc_p) #else (kc_p) fnfile kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_fnfile); } void fprint_fnfile #ifdef KC_USE_PROTOTYPES (FILE *kc_f, fnfile kc_p) #else (kc_f, kc_p) FILE *kc_f; fnfile kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_fnfile); } void print_fndeclarations #ifdef KC_USE_PROTOTYPES (fndeclarations kc_p) #else (kc_p) fndeclarations kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_fndeclarations); } void fprint_fndeclarations #ifdef KC_USE_PROTOTYPES (FILE *kc_f, fndeclarations kc_p) #else (kc_f, kc_p) FILE *kc_f; fndeclarations kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_fndeclarations); } void print_fndeclaration #ifdef KC_USE_PROTOTYPES (fndeclaration kc_p) #else (kc_p) fndeclaration kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_fndeclaration); } void fprint_fndeclaration #ifdef KC_USE_PROTOTYPES (FILE *kc_f, fndeclaration kc_p) #else (kc_f, kc_p) FILE *kc_f; fndeclaration kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_fndeclaration); } void print_fnclass #ifdef KC_USE_PROTOTYPES (fnclass kc_p) #else (kc_p) fnclass kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_fnclass); } void fprint_fnclass #ifdef KC_USE_PROTOTYPES (FILE *kc_f, fnclass kc_p) #else (kc_f, kc_p) FILE *kc_f; fnclass kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_fnclass); } void print_fnarguments #ifdef KC_USE_PROTOTYPES (fnarguments kc_p) #else (kc_p) fnarguments kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_fnarguments); } void fprint_fnarguments #ifdef KC_USE_PROTOTYPES (FILE *kc_f, fnarguments kc_p) #else (kc_f, kc_p) FILE *kc_f; fnarguments kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_fnarguments); } void print_Cvariabledeclarations #ifdef KC_USE_PROTOTYPES (Cvariabledeclarations kc_p) #else (kc_p) Cvariabledeclarations kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_Cvariabledeclarations); } void fprint_Cvariabledeclarations #ifdef KC_USE_PROTOTYPES (FILE *kc_f, Cvariabledeclarations kc_p) #else (kc_f, kc_p) FILE *kc_f; Cvariabledeclarations kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_Cvariabledeclarations); } void print_Cvariabledeclaration #ifdef KC_USE_PROTOTYPES (Cvariabledeclaration kc_p) #else (kc_p) Cvariabledeclaration kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_Cvariabledeclaration); } void fprint_Cvariabledeclaration #ifdef KC_USE_PROTOTYPES (FILE *kc_f, Cvariabledeclaration kc_p) #else (kc_f, kc_p) FILE *kc_f; Cvariabledeclaration kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_Cvariabledeclaration); } void print_Cvariables #ifdef KC_USE_PROTOTYPES (Cvariables kc_p) #else (kc_p) Cvariables kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_Cvariables); } void fprint_Cvariables #ifdef KC_USE_PROTOTYPES (FILE *kc_f, Cvariables kc_p) #else (kc_f, kc_p) FILE *kc_f; Cvariables kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_Cvariables); } void print_Cvariable #ifdef KC_USE_PROTOTYPES (Cvariable kc_p) #else (kc_p) Cvariable kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_Cvariable); } void fprint_Cvariable #ifdef KC_USE_PROTOTYPES (FILE *kc_f, Cvariable kc_p) #else (kc_f, kc_p) FILE *kc_f; Cvariable kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_Cvariable); } void print_Ctext #ifdef KC_USE_PROTOTYPES (Ctext kc_p) #else (kc_p) Ctext kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_Ctext); } void fprint_Ctext #ifdef KC_USE_PROTOTYPES (FILE *kc_f, Ctext kc_p) #else (kc_f, kc_p) FILE *kc_f; Ctext kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_Ctext); } void print_Ctext_elem #ifdef KC_USE_PROTOTYPES (Ctext_elem kc_p) #else (kc_p) Ctext_elem kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_Ctext_elem); } void fprint_Ctext_elem #ifdef KC_USE_PROTOTYPES (FILE *kc_f, Ctext_elem kc_p) #else (kc_f, kc_p) FILE *kc_f; Ctext_elem kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_Ctext_elem); } void print_foreach_after #ifdef KC_USE_PROTOTYPES (foreach_after kc_p) #else (kc_p) foreach_after kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_foreach_after); } void fprint_foreach_after #ifdef KC_USE_PROTOTYPES (FILE *kc_f, foreach_after kc_p) #else (kc_f, kc_p) FILE *kc_f; foreach_after kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_foreach_after); } void print_contextinfo #ifdef KC_USE_PROTOTYPES (contextinfo kc_p) #else (kc_p) contextinfo kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_contextinfo); } void fprint_contextinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, contextinfo kc_p) #else (kc_f, kc_p) FILE *kc_f; contextinfo kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_contextinfo); } void print_withexpressions #ifdef KC_USE_PROTOTYPES (withexpressions kc_p) #else (kc_p) withexpressions kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_withexpressions); } void fprint_withexpressions #ifdef KC_USE_PROTOTYPES (FILE *kc_f, withexpressions kc_p) #else (kc_f, kc_p) FILE *kc_f; withexpressions kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_withexpressions); } void print_withexpression #ifdef KC_USE_PROTOTYPES (withexpression kc_p) #else (kc_p) withexpression kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_withexpression); } void fprint_withexpression #ifdef KC_USE_PROTOTYPES (FILE *kc_f, withexpression kc_p) #else (kc_f, kc_p) FILE *kc_f; withexpression kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_withexpression); } void print_withcases #ifdef KC_USE_PROTOTYPES (withcases kc_p) #else (kc_p) withcases kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_withcases); } void fprint_withcases #ifdef KC_USE_PROTOTYPES (FILE *kc_f, withcases kc_p) #else (kc_f, kc_p) FILE *kc_f; withcases kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_withcases); } void print_withcase #ifdef KC_USE_PROTOTYPES (withcase kc_p) #else (kc_p) withcase kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_withcase); } void fprint_withcase #ifdef KC_USE_PROTOTYPES (FILE *kc_f, withcase kc_p) #else (kc_f, kc_p) FILE *kc_f; withcase kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_withcase); } void print_unparsedeclarations #ifdef KC_USE_PROTOTYPES (unparsedeclarations kc_p) #else (kc_p) unparsedeclarations kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_unparsedeclarations); } void fprint_unparsedeclarations #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unparsedeclarations kc_p) #else (kc_f, kc_p) FILE *kc_f; unparsedeclarations kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unparsedeclarations); } void print_unparsedeclaration #ifdef KC_USE_PROTOTYPES (unparsedeclaration kc_p) #else (kc_p) unparsedeclaration kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_unparsedeclaration); } void fprint_unparsedeclaration #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unparsedeclaration kc_p) #else (kc_f, kc_p) FILE *kc_f; unparsedeclaration kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unparsedeclaration); } void print_unparseclauses #ifdef KC_USE_PROTOTYPES (unparseclauses kc_p) #else (kc_p) unparseclauses kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_unparseclauses); } void fprint_unparseclauses #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unparseclauses kc_p) #else (kc_f, kc_p) FILE *kc_f; unparseclauses kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unparseclauses); } void print_unparseclause #ifdef KC_USE_PROTOTYPES (unparseclause kc_p) #else (kc_p) unparseclause kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_unparseclause); } void fprint_unparseclause #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unparseclause kc_p) #else (kc_f, kc_p) FILE *kc_f; unparseclause kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unparseclause); } void print_viewnames #ifdef KC_USE_PROTOTYPES (viewnames kc_p) #else (kc_p) viewnames kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_viewnames); } void fprint_viewnames #ifdef KC_USE_PROTOTYPES (FILE *kc_f, viewnames kc_p) #else (kc_f, kc_p) FILE *kc_f; viewnames kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_viewnames); } void print_unparseitems #ifdef KC_USE_PROTOTYPES (unparseitems kc_p) #else (kc_p) unparseitems kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_unparseitems); } void fprint_unparseitems #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unparseitems kc_p) #else (kc_f, kc_p) FILE *kc_f; unparseitems kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unparseitems); } void print_unparseitem #ifdef KC_USE_PROTOTYPES (unparseitem kc_p) #else (kc_p) unparseitem kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_unparseitem); } void fprint_unparseitem #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unparseitem kc_p) #else (kc_f, kc_p) FILE *kc_f; unparseitem kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unparseitem); } void print_unpsubterm #ifdef KC_USE_PROTOTYPES (unpsubterm kc_p) #else (kc_p) unpsubterm kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_unpsubterm); } void fprint_unpsubterm #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unpsubterm kc_p) #else (kc_f, kc_p) FILE *kc_f; unpsubterm kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unpsubterm); } void print_unpattributes #ifdef KC_USE_PROTOTYPES (unpattributes kc_p) #else (kc_p) unpattributes kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_unpattributes); } void fprint_unpattributes #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unpattributes kc_p) #else (kc_f, kc_p) FILE *kc_f; unpattributes kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unpattributes); } void print_viewnameoption #ifdef KC_USE_PROTOTYPES (viewnameoption kc_p) #else (kc_p) viewnameoption kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_viewnameoption); } void fprint_viewnameoption #ifdef KC_USE_PROTOTYPES (FILE *kc_f, viewnameoption kc_p) #else (kc_f, kc_p) FILE *kc_f; viewnameoption kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_viewnameoption); } void print_filelinestack #ifdef KC_USE_PROTOTYPES (filelinestack kc_p) #else (kc_p) filelinestack kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_filelinestack); } void fprint_filelinestack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, filelinestack kc_p) #else (kc_f, kc_p) FILE *kc_f; filelinestack kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_filelinestack); } void print_fileline #ifdef KC_USE_PROTOTYPES (fileline kc_p) #else (kc_p) fileline kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_fileline); } void fprint_fileline #ifdef KC_USE_PROTOTYPES (FILE *kc_f, fileline kc_p) #else (kc_f, kc_p) FILE *kc_f; fileline kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_fileline); } void print_nooperatorsstack #ifdef KC_USE_PROTOTYPES (nooperatorsstack kc_p) #else (kc_p) nooperatorsstack kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_nooperatorsstack); } void fprint_nooperatorsstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, nooperatorsstack kc_p) #else (kc_f, kc_p) FILE *kc_f; nooperatorsstack kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_nooperatorsstack); } void print_scopetypefilelinestack #ifdef KC_USE_PROTOTYPES (scopetypefilelinestack kc_p) #else (kc_p) scopetypefilelinestack kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_scopetypefilelinestack); } void fprint_scopetypefilelinestack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, scopetypefilelinestack kc_p) #else (kc_f, kc_p) FILE *kc_f; scopetypefilelinestack kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_scopetypefilelinestack); } void print_scopetypefileline #ifdef KC_USE_PROTOTYPES (scopetypefileline kc_p) #else (kc_p) scopetypefileline kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_scopetypefileline); } void fprint_scopetypefileline #ifdef KC_USE_PROTOTYPES (FILE *kc_f, scopetypefileline kc_p) #else (kc_f, kc_p) FILE *kc_f; scopetypefileline kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_scopetypefileline); } void print_IDtype #ifdef KC_USE_PROTOTYPES (IDtype kc_p) #else (kc_p) IDtype kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_IDtype); } void fprint_IDtype #ifdef KC_USE_PROTOTYPES (FILE *kc_f, IDtype kc_p) #else (kc_f, kc_p) FILE *kc_f; IDtype kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_IDtype); } void print_operatorsstack #ifdef KC_USE_PROTOTYPES (operatorsstack kc_p) #else (kc_p) operatorsstack kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_operatorsstack); } void fprint_operatorsstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, operatorsstack kc_p) #else (kc_f, kc_p) FILE *kc_f; operatorsstack kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_operatorsstack); } void print_operators #ifdef KC_USE_PROTOTYPES (operators kc_p) #else (kc_p) operators kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_operators); } void fprint_operators #ifdef KC_USE_PROTOTYPES (FILE *kc_f, operators kc_p) #else (kc_f, kc_p) FILE *kc_f; operators kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_operators); } void print_phyla #ifdef KC_USE_PROTOTYPES (phyla kc_p) #else (kc_p) phyla kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_phyla); } void fprint_phyla #ifdef KC_USE_PROTOTYPES (FILE *kc_f, phyla kc_p) #else (kc_f, kc_p) FILE *kc_f; phyla kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_phyla); } void print_variables #ifdef KC_USE_PROTOTYPES (variables kc_p) #else (kc_p) variables kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_variables); } void fprint_variables #ifdef KC_USE_PROTOTYPES (FILE *kc_f, variables kc_p) #else (kc_f, kc_p) FILE *kc_f; variables kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_variables); } void print_argumentsstack #ifdef KC_USE_PROTOTYPES (argumentsstack kc_p) #else (kc_p) argumentsstack kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_argumentsstack); } void fprint_argumentsstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, argumentsstack kc_p) #else (kc_f, kc_p) FILE *kc_f; argumentsstack kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_argumentsstack); } void print_phylumstack #ifdef KC_USE_PROTOTYPES (phylumstack kc_p) #else (kc_p) phylumstack kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_phylumstack); } void fprint_phylumstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, phylumstack kc_p) #else (kc_f, kc_p) FILE *kc_f; phylumstack kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_phylumstack); } void print_phylumnamesstack #ifdef KC_USE_PROTOTYPES (phylumnamesstack kc_p) #else (kc_p) phylumnamesstack kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_phylumnamesstack); } void fprint_phylumnamesstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, phylumnamesstack kc_p) #else (kc_f, kc_p) FILE *kc_f; phylumnamesstack kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_phylumnamesstack); } void print_withexpressionsstack #ifdef KC_USE_PROTOTYPES (withexpressionsstack kc_p) #else (kc_p) withexpressionsstack kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_withexpressionsstack); } void fprint_withexpressionsstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, withexpressionsstack kc_p) #else (kc_f, kc_p) FILE *kc_f; withexpressionsstack kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_withexpressionsstack); } void print_operatorstack #ifdef KC_USE_PROTOTYPES (operatorstack kc_p) #else (kc_p) operatorstack kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_operatorstack); } void fprint_operatorstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, operatorstack kc_p) #else (kc_f, kc_p) FILE *kc_f; operatorstack kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_operatorstack); } void print_variablesstack #ifdef KC_USE_PROTOTYPES (variablesstack kc_p) #else (kc_p) variablesstack kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_variablesstack); } void fprint_variablesstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, variablesstack kc_p) #else (kc_f, kc_p) FILE *kc_f; variablesstack kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_variablesstack); } void print_selvarstack #ifdef KC_USE_PROTOTYPES (selvarstack kc_p) #else (kc_p) selvarstack kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_selvarstack); } void fprint_selvarstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, selvarstack kc_p) #else (kc_f, kc_p) FILE *kc_f; selvarstack kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_selvarstack); } void print_dollarvarstatus #ifdef KC_USE_PROTOTYPES (dollarvarstatus kc_p) #else (kc_p) dollarvarstatus kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_dollarvarstatus); } void fprint_dollarvarstatus #ifdef KC_USE_PROTOTYPES (FILE *kc_f, dollarvarstatus kc_p) #else (kc_f, kc_p) FILE *kc_f; dollarvarstatus kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_dollarvarstatus); } void print_dollarvarsallowedstack #ifdef KC_USE_PROTOTYPES (dollarvarsallowedstack kc_p) #else (kc_p) dollarvarsallowedstack kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_dollarvarsallowedstack); } void fprint_dollarvarsallowedstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, dollarvarsallowedstack kc_p) #else (kc_f, kc_p) FILE *kc_f; dollarvarsallowedstack kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_dollarvarsallowedstack); } void print_intstack #ifdef KC_USE_PROTOTYPES (intstack kc_p) #else (kc_p) intstack kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_intstack); } void fprint_intstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, intstack kc_p) #else (kc_f, kc_p) FILE *kc_f; intstack kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_intstack); } void print_idCexpressionsstack #ifdef KC_USE_PROTOTYPES (idCexpressionsstack kc_p) #else (kc_p) idCexpressionsstack kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_idCexpressionsstack); } void fprint_idCexpressionsstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, idCexpressionsstack kc_p) #else (kc_f, kc_p) FILE *kc_f; idCexpressionsstack kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_idCexpressionsstack); } void print_two_phyla #ifdef KC_USE_PROTOTYPES (two_phyla kc_p) #else (kc_p) two_phyla kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_two_phyla); } void fprint_two_phyla #ifdef KC_USE_PROTOTYPES (FILE *kc_f, two_phyla kc_p) #else (kc_f, kc_p) FILE *kc_f; two_phyla kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_two_phyla); } void print_tribool #ifdef KC_USE_PROTOTYPES (tribool kc_p) #else (kc_p) tribool kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_tribool); } void fprint_tribool #ifdef KC_USE_PROTOTYPES (FILE *kc_f, tribool kc_p) #else (kc_f, kc_p) FILE *kc_f; tribool kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_tribool); } void print_patternrepresentations #ifdef KC_USE_PROTOTYPES (patternrepresentations kc_p) #else (kc_p) patternrepresentations kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_patternrepresentations); } void fprint_patternrepresentations #ifdef KC_USE_PROTOTYPES (FILE *kc_f, patternrepresentations kc_p) #else (kc_f, kc_p) FILE *kc_f; patternrepresentations kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_patternrepresentations); } void print_patternrepresentation #ifdef KC_USE_PROTOTYPES (patternrepresentation kc_p) #else (kc_p) patternrepresentation kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_patternrepresentation); } void fprint_patternrepresentation #ifdef KC_USE_PROTOTYPES (FILE *kc_f, patternrepresentation kc_p) #else (kc_f, kc_p) FILE *kc_f; patternrepresentation kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_patternrepresentation); } void print_elem_patternrepresentation #ifdef KC_USE_PROTOTYPES (elem_patternrepresentation kc_p) #else (kc_p) elem_patternrepresentation kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_elem_patternrepresentation); } void fprint_elem_patternrepresentation #ifdef KC_USE_PROTOTYPES (FILE *kc_f, elem_patternrepresentation kc_p) #else (kc_f, kc_p) FILE *kc_f; elem_patternrepresentation kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_elem_patternrepresentation); } void print_path #ifdef KC_USE_PROTOTYPES (path kc_p) #else (kc_p) path kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_path); } void fprint_path #ifdef KC_USE_PROTOTYPES (FILE *kc_f, path kc_p) #else (kc_f, kc_p) FILE *kc_f; path kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_path); } void print_paths #ifdef KC_USE_PROTOTYPES (paths kc_p) #else (kc_p) paths kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_paths); } void fprint_paths #ifdef KC_USE_PROTOTYPES (FILE *kc_f, paths kc_p) #else (kc_f, kc_p) FILE *kc_f; paths kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_paths); } void print_argsnumbers #ifdef KC_USE_PROTOTYPES (argsnumbers kc_p) #else (kc_p) argsnumbers kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_argsnumbers); } void fprint_argsnumbers #ifdef KC_USE_PROTOTYPES (FILE *kc_f, argsnumbers kc_p) #else (kc_f, kc_p) FILE *kc_f; argsnumbers kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_argsnumbers); } void print_rewriterulesinfo #ifdef KC_USE_PROTOTYPES (rewriterulesinfo kc_p) #else (kc_p) rewriterulesinfo kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_rewriterulesinfo); } void fprint_rewriterulesinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, rewriterulesinfo kc_p) #else (kc_f, kc_p) FILE *kc_f; rewriterulesinfo kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_rewriterulesinfo); } void print_rewriteruleinfo #ifdef KC_USE_PROTOTYPES (rewriteruleinfo kc_p) #else (kc_p) rewriteruleinfo kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_rewriteruleinfo); } void fprint_rewriteruleinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, rewriteruleinfo kc_p) #else (kc_f, kc_p) FILE *kc_f; rewriteruleinfo kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_rewriteruleinfo); } void print_withcasesinfo #ifdef KC_USE_PROTOTYPES (withcasesinfo kc_p) #else (kc_p) withcasesinfo kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_withcasesinfo); } void fprint_withcasesinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, withcasesinfo kc_p) #else (kc_f, kc_p) FILE *kc_f; withcasesinfo kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_withcasesinfo); } void print_withcaseinfo #ifdef KC_USE_PROTOTYPES (withcaseinfo kc_p) #else (kc_p) withcaseinfo kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_withcaseinfo); } void fprint_withcaseinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, withcaseinfo kc_p) #else (kc_f, kc_p) FILE *kc_f; withcaseinfo kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_withcaseinfo); } void print_rewriteviewsinfo #ifdef KC_USE_PROTOTYPES (rewriteviewsinfo kc_p) #else (kc_p) rewriteviewsinfo kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_rewriteviewsinfo); } void fprint_rewriteviewsinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, rewriteviewsinfo kc_p) #else (kc_f, kc_p) FILE *kc_f; rewriteviewsinfo kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_rewriteviewsinfo); } void print_rewriteviewinfo #ifdef KC_USE_PROTOTYPES (rewriteviewinfo kc_p) #else (kc_p) rewriteviewinfo kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_rewriteviewinfo); } void fprint_rewriteviewinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, rewriteviewinfo kc_p) #else (kc_f, kc_p) FILE *kc_f; rewriteviewinfo kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_rewriteviewinfo); } void print_unparseviewsinfo #ifdef KC_USE_PROTOTYPES (unparseviewsinfo kc_p) #else (kc_p) unparseviewsinfo kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_unparseviewsinfo); } void fprint_unparseviewsinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unparseviewsinfo kc_p) #else (kc_f, kc_p) FILE *kc_f; unparseviewsinfo kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unparseviewsinfo); } void print_unparseviewinfo #ifdef KC_USE_PROTOTYPES (unparseviewinfo kc_p) #else (kc_p) unparseviewinfo kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_unparseviewinfo); } void fprint_unparseviewinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unparseviewinfo kc_p) #else (kc_f, kc_p) FILE *kc_f; unparseviewinfo kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unparseviewinfo); } void print_unparsedeclsinfo #ifdef KC_USE_PROTOTYPES (unparsedeclsinfo kc_p) #else (kc_p) unparsedeclsinfo kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_unparsedeclsinfo); } void fprint_unparsedeclsinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unparsedeclsinfo kc_p) #else (kc_f, kc_p) FILE *kc_f; unparsedeclsinfo kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unparsedeclsinfo); } void print_unparsedeclinfo #ifdef KC_USE_PROTOTYPES (unparsedeclinfo kc_p) #else (kc_p) unparsedeclinfo kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_unparsedeclinfo); } void fprint_unparsedeclinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unparsedeclinfo kc_p) #else (kc_f, kc_p) FILE *kc_f; unparsedeclinfo kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unparsedeclinfo); } void print_ac_declaration #ifdef KC_USE_PROTOTYPES (ac_declaration kc_p) #else (kc_p) ac_declaration kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_declaration); } void fprint_ac_declaration #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_declaration kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_declaration kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_declaration); } void print_ac_declaration_list #ifdef KC_USE_PROTOTYPES (ac_declaration_list kc_p) #else (kc_p) ac_declaration_list kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_declaration_list); } void fprint_ac_declaration_list #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_declaration_list kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_declaration_list kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_declaration_list); } void print_ac_declaration_specifiers #ifdef KC_USE_PROTOTYPES (ac_declaration_specifiers kc_p) #else (kc_p) ac_declaration_specifiers kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_declaration_specifiers); } void fprint_ac_declaration_specifiers #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_declaration_specifiers kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_declaration_specifiers kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_declaration_specifiers); } void print_ac_declaration_specifier #ifdef KC_USE_PROTOTYPES (ac_declaration_specifier kc_p) #else (kc_p) ac_declaration_specifier kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_declaration_specifier); } void fprint_ac_declaration_specifier #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_declaration_specifier kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_declaration_specifier kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_declaration_specifier); } void print_ac_storage_class_specifier #ifdef KC_USE_PROTOTYPES (ac_storage_class_specifier kc_p) #else (kc_p) ac_storage_class_specifier kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_storage_class_specifier); } void fprint_ac_storage_class_specifier #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_storage_class_specifier kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_storage_class_specifier kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_storage_class_specifier); } void print_ac_type_specifier #ifdef KC_USE_PROTOTYPES (ac_type_specifier kc_p) #else (kc_p) ac_type_specifier kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_type_specifier); } void fprint_ac_type_specifier #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_type_specifier kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_type_specifier kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_type_specifier); } void print_ac_type_qualifier #ifdef KC_USE_PROTOTYPES (ac_type_qualifier kc_p) #else (kc_p) ac_type_qualifier kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_type_qualifier); } void fprint_ac_type_qualifier #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_type_qualifier kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_type_qualifier kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_type_qualifier); } void print_ac_init_declarator_list #ifdef KC_USE_PROTOTYPES (ac_init_declarator_list kc_p) #else (kc_p) ac_init_declarator_list kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_init_declarator_list); } void fprint_ac_init_declarator_list #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_init_declarator_list kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_init_declarator_list kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_init_declarator_list); } void print_ac_init_declarator #ifdef KC_USE_PROTOTYPES (ac_init_declarator kc_p) #else (kc_p) ac_init_declarator kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_init_declarator); } void fprint_ac_init_declarator #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_init_declarator kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_init_declarator kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_init_declarator); } void print_ac_declarator #ifdef KC_USE_PROTOTYPES (ac_declarator kc_p) #else (kc_p) ac_declarator kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_declarator); } void fprint_ac_declarator #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_declarator kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_declarator kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_declarator); } void print_ac_direct_declarator #ifdef KC_USE_PROTOTYPES (ac_direct_declarator kc_p) #else (kc_p) ac_direct_declarator kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_direct_declarator); } void fprint_ac_direct_declarator #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_direct_declarator kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_direct_declarator kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_direct_declarator); } void print_ac_pointer_option #ifdef KC_USE_PROTOTYPES (ac_pointer_option kc_p) #else (kc_p) ac_pointer_option kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_pointer_option); } void fprint_ac_pointer_option #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_pointer_option kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_pointer_option kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_pointer_option); } void print_ac_pointer #ifdef KC_USE_PROTOTYPES (ac_pointer kc_p) #else (kc_p) ac_pointer kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_pointer); } void fprint_ac_pointer #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_pointer kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_pointer kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_pointer); } void print_ac_type_qualifier_list #ifdef KC_USE_PROTOTYPES (ac_type_qualifier_list kc_p) #else (kc_p) ac_type_qualifier_list kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_type_qualifier_list); } void fprint_ac_type_qualifier_list #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_type_qualifier_list kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_type_qualifier_list kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_type_qualifier_list); } void print_ac_parameter_type_list #ifdef KC_USE_PROTOTYPES (ac_parameter_type_list kc_p) #else (kc_p) ac_parameter_type_list kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_parameter_type_list); } void fprint_ac_parameter_type_list #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_parameter_type_list kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_parameter_type_list kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_parameter_type_list); } void print_ac_parameter_list #ifdef KC_USE_PROTOTYPES (ac_parameter_list kc_p) #else (kc_p) ac_parameter_list kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_parameter_list); } void fprint_ac_parameter_list #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_parameter_list kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_parameter_list kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_parameter_list); } void print_ac_parameter_declaration #ifdef KC_USE_PROTOTYPES (ac_parameter_declaration kc_p) #else (kc_p) ac_parameter_declaration kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_parameter_declaration); } void fprint_ac_parameter_declaration #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_parameter_declaration kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_parameter_declaration kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_parameter_declaration); } void print_ac_identifier_list #ifdef KC_USE_PROTOTYPES (ac_identifier_list kc_p) #else (kc_p) ac_identifier_list kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_identifier_list); } void fprint_ac_identifier_list #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_identifier_list kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_identifier_list kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_identifier_list); } void print_ac_abstract_declarator #ifdef KC_USE_PROTOTYPES (ac_abstract_declarator kc_p) #else (kc_p) ac_abstract_declarator kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_abstract_declarator); } void fprint_ac_abstract_declarator #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_abstract_declarator kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_abstract_declarator kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_abstract_declarator); } void print_ac_direct_abstract_declarator_option #ifdef KC_USE_PROTOTYPES (ac_direct_abstract_declarator_option kc_p) #else (kc_p) ac_direct_abstract_declarator_option kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_direct_abstract_declarator_option); } void fprint_ac_direct_abstract_declarator_option #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_direct_abstract_declarator_option kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_direct_abstract_declarator_option kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_direct_abstract_declarator_option); } void print_ac_direct_abstract_declarator #ifdef KC_USE_PROTOTYPES (ac_direct_abstract_declarator kc_p) #else (kc_p) ac_direct_abstract_declarator kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_direct_abstract_declarator); } void fprint_ac_direct_abstract_declarator #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_direct_abstract_declarator kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_direct_abstract_declarator kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_direct_abstract_declarator); } void print_ac_constant_expression_option #ifdef KC_USE_PROTOTYPES (ac_constant_expression_option kc_p) #else (kc_p) ac_constant_expression_option kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_constant_expression_option); } void fprint_ac_constant_expression_option #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_constant_expression_option kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_constant_expression_option kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_constant_expression_option); } void print_ac_constant_expression #ifdef KC_USE_PROTOTYPES (ac_constant_expression kc_p) #else (kc_p) ac_constant_expression kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_ac_constant_expression); } void fprint_ac_constant_expression #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_constant_expression kc_p) #else (kc_f, kc_p) FILE *kc_f; ac_constant_expression kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_constant_expression); } void print_error #ifdef KC_USE_PROTOTYPES (error kc_p) #else (kc_p) error kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_error); } void fprint_error #ifdef KC_USE_PROTOTYPES (FILE *kc_f, error kc_p) #else (kc_f, kc_p) FILE *kc_f; error kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_error); } void print_problem #ifdef KC_USE_PROTOTYPES (problem kc_p) #else (kc_p) problem kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_problem); } void fprint_problem #ifdef KC_USE_PROTOTYPES (FILE *kc_f, problem kc_p) #else (kc_f, kc_p) FILE *kc_f; problem kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_problem); } void print_addedphylumdeclarations #ifdef KC_USE_PROTOTYPES (addedphylumdeclarations kc_p) #else (kc_p) addedphylumdeclarations kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_addedphylumdeclarations); } void fprint_addedphylumdeclarations #ifdef KC_USE_PROTOTYPES (FILE *kc_f, addedphylumdeclarations kc_p) #else (kc_f, kc_p) FILE *kc_f; addedphylumdeclarations kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_addedphylumdeclarations); } void print_addedphylumdeclaration #ifdef KC_USE_PROTOTYPES (addedphylumdeclaration kc_p) #else (kc_p) addedphylumdeclaration kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_addedphylumdeclaration); } void fprint_addedphylumdeclaration #ifdef KC_USE_PROTOTYPES (FILE *kc_f, addedphylumdeclaration kc_p) #else (kc_f, kc_p) FILE *kc_f; addedphylumdeclaration kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_addedphylumdeclaration); } void print_countedphylumdeclarations #ifdef KC_USE_PROTOTYPES (countedphylumdeclarations kc_p) #else (kc_p) countedphylumdeclarations kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_countedphylumdeclarations); } void fprint_countedphylumdeclarations #ifdef KC_USE_PROTOTYPES (FILE *kc_f, countedphylumdeclarations kc_p) #else (kc_f, kc_p) FILE *kc_f; countedphylumdeclarations kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_countedphylumdeclarations); } void print_countedphylumdeclaration #ifdef KC_USE_PROTOTYPES (countedphylumdeclaration kc_p) #else (kc_p) countedphylumdeclaration kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_countedphylumdeclaration); } void fprint_countedphylumdeclaration #ifdef KC_USE_PROTOTYPES (FILE *kc_f, countedphylumdeclaration kc_p) #else (kc_f, kc_p) FILE *kc_f; countedphylumdeclaration kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_countedphylumdeclaration); } void print_bindingidmarks #ifdef KC_USE_PROTOTYPES (bindingidmarks kc_p) #else (kc_p) bindingidmarks kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_bindingidmarks); } void fprint_bindingidmarks #ifdef KC_USE_PROTOTYPES (FILE *kc_f, bindingidmarks kc_p) #else (kc_f, kc_p) FILE *kc_f; bindingidmarks kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_bindingidmarks); } void print_bindingidmark #ifdef KC_USE_PROTOTYPES (bindingidmark kc_p) #else (kc_p) bindingidmark kc_p; #endif { kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_bindingidmark); } void fprint_bindingidmark #ifdef KC_USE_PROTOTYPES (FILE *kc_f, bindingidmark kc_p) #else (kc_f, kc_p) FILE *kc_f; bindingidmark kc_p; #endif { kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_bindingidmark); } static void kc_do_printdot_subgraph_prologue__nocasestring KC__P((FILE*, nocasestring, char*, char*, boolean, boolean)); static void kc_do_printdot_id_of__nocasestring KC__P((FILE*, nocasestring, boolean, kc_voidptr_t, int)); static void kc_do_printdot__nocasestring KC__P((FILE*, nocasestring, boolean, int*, kc_dotedgenode_t*, char*, boolean, boolean, kc_voidptr_t, int)); /* TERRIBLE HACK: declare non-static, to shut up gcc -Wall ... */ /*static*/ void kc_do_printdot_add_edge_nocasestring KC__P((kc_voidptr_t, kc_enum_phyla, nocasestring, int, int*, kc_dotedgenode_t*, char*)); static void kc_do_printdot_subgraph_prologue__casestring KC__P((FILE*, casestring, char*, char*, boolean, boolean)); static void kc_do_printdot_id_of__casestring KC__P((FILE*, casestring, boolean, kc_voidptr_t, int)); static void kc_do_printdot__casestring KC__P((FILE*, casestring, boolean, int*, kc_dotedgenode_t*, char*, boolean, boolean, kc_voidptr_t, int)); /* TERRIBLE HACK: declare non-static, to shut up gcc -Wall ... */ /*static*/ void kc_do_printdot_add_edge_casestring KC__P((kc_voidptr_t, kc_enum_phyla, casestring, int, int*, kc_dotedgenode_t*, char*)); static void kc_do_printdot_subgraph_prologue__float KC__P((FILE*, float, char*, char*, boolean, boolean)); static void kc_do_printdot_id_of__float KC__P((FILE*, float, boolean, kc_voidptr_t, int)); static void kc_do_printdot__float KC__P((FILE*, float, boolean, int*, kc_dotedgenode_t*, char*, boolean, boolean, kc_voidptr_t, int)); /* TERRIBLE HACK: declare non-static, to shut up gcc -Wall ... */ /*static*/ void kc_do_printdot_add_edge_float KC__P((kc_voidptr_t, kc_enum_phyla, float, int, int*, kc_dotedgenode_t*, char*)); static void kc_do_printdot_subgraph_prologue__int KC__P((FILE*, int, char*, char*, boolean, boolean)); static void kc_do_printdot_id_of__int KC__P((FILE*, int, boolean, kc_voidptr_t, int)); static void kc_do_printdot__int KC__P((FILE*, int, boolean, int*, kc_dotedgenode_t*, char*, boolean, boolean, kc_voidptr_t, int)); /* TERRIBLE HACK: declare non-static, to shut up gcc -Wall ... */ /*static*/ void kc_do_printdot_add_edge_int KC__P((kc_voidptr_t, kc_enum_phyla, int, int, int*, kc_dotedgenode_t*, char*)); static void kc_do_printdot_subgraph_prologue__voidptr KC__P((FILE*, voidptr, char*, char*, boolean, boolean)); static void kc_do_printdot_id_of__voidptr KC__P((FILE*, voidptr, boolean, kc_voidptr_t, int)); static void kc_do_printdot__voidptr KC__P((FILE*, voidptr, boolean, int*, kc_dotedgenode_t*, char*, boolean, boolean, kc_voidptr_t, int)); /* TERRIBLE HACK: declare non-static, to shut up gcc -Wall ... */ /*static*/ void kc_do_printdot_add_edge_voidptr KC__P((kc_voidptr_t, kc_enum_phyla, voidptr, int, int*, kc_dotedgenode_t*, char*)); static void kc_do_printdot_subgraph_prologue KC__P((FILE*, kc_voidptr_t, kc_enum_phyla, char*, char*, boolean, boolean)); static void kc_do_printdot_subgraph_epilogue KC__P((FILE*)); static void kc_do_printdot_genfields KC__P((FILE*, int, kc_enum_phyla, boolean)); static void kc_do_printdot_id_of_phylum KC__P((FILE*, kc_voidptr_t, kc_enum_phyla, boolean, kc_voidptr_t, int)); static void kc_do_printdot_do_add_edge KC__P((YYSTYPE, kc_enum_phyla, YYSTYPE, kc_enum_phyla, int, int*, kc_dotedgenode_t*, char*)); static void kc_do_printdot_add_edge KC__P((kc_voidptr_t, kc_enum_phyla, kc_voidptr_t, kc_enum_phyla, int, int*, kc_dotedgenode_t*, char*)); static void kc_do_printdot_edges KC__P((FILE*, kc_dotedgenode_t, char*, boolean)); static void kc_do_printdot_phylum KC__P((FILE*, kc_voidptr_t, kc_enum_phyla, boolean, int*, kc_dotedgenode_t*, char*, boolean, boolean, kc_voidptr_t, int)); static kc_hashtable_t kc_fprintdot_hashtable; static int kc_fprintdot_hashtablesize = 5000; int kc_set_fprintdot_hashtablesize #ifdef KC_USE_PROTOTYPES (int kc_i) #else (kc_i) int kc_i; #endif { int kc_tmp = kc_fprintdot_hashtablesize; kc_fprintdot_hashtablesize = kc_i; return kc_tmp; } static void kc_do_printdot_subgraph_prologue #ifdef KC_USE_PROTOTYPES (FILE *kc_f, kc_voidptr_t kc_p, kc_enum_phyla kc_phylum, char *kc_root, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt) #else (kc_f, kc_p, kc_phylum, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt) FILE *kc_f; kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; char *kc_root; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt; #endif { if (!kc_f) kc_f = stdout; (void)fprintf(kc_f, "/*subgraph*/ {\n"); if (kc_root) { (void)fprintf(kc_f, "\"%s\" [shape=ellipse", kc_root); if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) { (void)fprintf(kc_f, ", %s", kc_edge_attributes); } if (kc_phy_labels) { (void)fprintf(kc_f, ", label=\"%s\\n%s\"", kc_root, kc_PhylumInfo[kc_phylum].name); } (void)fprintf(kc_f, "];\n"); (void)fprintf(kc_f, "\"%s\" ->", kc_root); kc_do_printdot_id_of_phylum(kc_f, kc_p, kc_phylum, kc_use_ctxt, 0, 0); if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) { (void)fprintf(kc_f, "[%s]", kc_edge_attributes); } (void)fprintf(kc_f, ";\n"); } } static void kc_do_printdot_subgraph_epilogue #ifdef KC_USE_PROTOTYPES (FILE *kc_f) #else (kc_f) FILE *kc_f; #endif { if (!kc_f) kc_f = stdout; (void)fprintf(kc_f, "}\n"); } void fprintdotprologue #ifdef KC_USE_PROTOTYPES (FILE *kc_f) #else (kc_f) FILE *kc_f; #endif { if (!kc_f) kc_f = stdout; (void)fprintf(kc_f, "digraph kc_output{\n"); (void)fprintf(kc_f, "node [shape=record, height=.1, fontname=Helvetica];\n"); } void fprintdotepilogue #ifdef KC_USE_PROTOTYPES (FILE *kc_f) #else (kc_f) FILE *kc_f; #endif { if (!kc_f) kc_f = stdout; (void)fprintf(kc_f, "}\n"); } static void kc_do_printdot_genfields #ifdef KC_USE_PROTOTYPES (FILE *kc_f, int kc_prodsel, kc_enum_phyla kc_phylum, boolean kc_phy_labels) #else (kc_f, kc_prodsel, kc_phylum, kc_phy_labels) FILE *kc_f; int kc_prodsel; kc_enum_phyla kc_phylum; boolean kc_phy_labels; #endif { int kc_i = 1; KC_OPERATOR_INFO *kc_op_info = &kc_OperatorInfo[(int)kc_prodsel]; if (kc_op_info->no_sons <= 0) return; if (!kc_f) kc_f = stdout; while(kc_i < kc_op_info->no_sons) { (void)fprintf(kc_f, "", kc_i); if (kc_phy_labels) { (void)fprintf(kc_f, "%s", kc_PhylumInfo[(int)kc_op_info->subphylum[kc_i-1]].name); } (void)fprintf(kc_f, "|"); kc_i++; } (void)fprintf(kc_f, "", kc_i); if (kc_phy_labels) { (void)fprintf(kc_f, "%s", kc_PhylumInfo[(int)kc_op_info->subphylum[kc_i-1]].name); } } static void kc_do_printdot_id_of_phylum #ifdef KC_USE_PROTOTYPES (FILE *kc_f, kc_voidptr_t kc_p, kc_enum_phyla kc_phylum, boolean kc_use_ctxt, kc_voidptr_t kc_ctxt, int kc_son_nr) #else (kc_f, kc_p, kc_phylum, kc_use_ctxt, kc_ctxt, kc_son_nr) FILE *kc_f; kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; boolean kc_use_ctxt; kc_voidptr_t kc_ctxt; int kc_son_nr; #endif { /*SUPPRESS 622*/ assertReason(kc_phylum != kc_phylum_int, "kc_do_printdot_phylum called with kc_phylum_int argument"); /*SUPPRESS 622*/ assertReason(kc_phylum != kc_phylum_float, "kc_do_printdot_phylum called with kc_phylum_float argument"); /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),"kc_p",kc_phylum); if (!kc_f) kc_f = stdout; if (kc_phylum == kc_phylum_voidptr) { (void)fprintf(kc_f, "kcidp%p", kc_p); if (kc_use_ctxt) { (void)fprintf(kc_f, "_%p_%d", kc_ctxt, kc_son_nr); } } else if ((kc_phylum == kc_phylum_casestring) || (kc_phylum == kc_phylum_nocasestring)) { (void)fprintf(kc_f, "kcids%p", ((casestring)kc_p)); if (kc_use_ctxt) { (void)fprintf(kc_f, "_%p_%d", kc_ctxt, kc_son_nr); } } else { (void)fprintf(kc_f, "kcidx%p", kc_p); } } static void kc_do_printdot_do_add_edge #ifdef KC_USE_PROTOTYPES (YYSTYPE kc_p, kc_enum_phyla kc_phylum, YYSTYPE kc_sub_p, kc_enum_phyla kc_sub_phylum, int kc_son_nr, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix) #else (kc_p, kc_phylum, kc_sub_p, kc_sub_phylum, kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; kc_voidptr_t kc_sub_p; kc_enum_phyla kc_sub_phylum; int kc_son_nr; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix; #endif { kc_dotedgenode_t kc_hn; char kc_buf[30]; kc_hn = kc_mkdotedgenode(kc_fprintdot_hashtable, kc_p, kc_phylum, kc_sub_p, kc_sub_phylum, kc_son_nr); if (! kc_hn->label) { kc_hn->label = (char*)(*kc_fprintdot_hashtable->malloc)((kc_size_t)(KC_PRINTDOT_LABELSIZE+1)*sizeof(char), kc_fprintdot_hashtable->malloc_private_data); kc_hn->lsize = KC_PRINTDOT_LABELSIZE; (void)strcpy(kc_hn->label, ""); kc_hn->next = *kc_edges; *kc_edges = kc_hn; } else { char kc_buf2[30]; (void)sprintf(kc_buf2, ", "); (void)strncat(kc_hn->label, kc_buf2, kc_hn->lsize - strlen(kc_hn->label)); } if (kc_edge_prefix) { (void)strncat(kc_hn->label, kc_edge_prefix, kc_hn->lsize - strlen(kc_hn->label)); } (void)sprintf(kc_buf, "%d", *kc_edge_nr); (void)strncat(kc_hn->label, kc_buf, kc_hn->lsize - strlen(kc_hn->label)); (*kc_edge_nr)++; } static void kc_do_printdot_add_edge #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, kc_enum_phyla kc_phylum, kc_voidptr_t kc_sub_p, kc_enum_phyla kc_sub_phylum, int kc_son_nr, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix) #else (kc_p, kc_phylum, kc_sub_p, kc_sub_phylum, kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; kc_voidptr_t kc_sub_p; kc_enum_phyla kc_sub_phylum; int kc_son_nr; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix; #endif { YYSTYPE kc_n, kc_sub_n; /*SUPPRESS 622*/ assertReason(kc_phylum != kc_phylum_int, "kc_do_printdot_phylum called with kc_phylum_int argument"); /*SUPPRESS 622*/ assertReason(kc_phylum != kc_phylum_float, "kc_do_printdot_phylum called with kc_phylum_float argument"); /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),"kc_p",kc_phylum); kc_n.yt_voidptr = kc_p; kc_sub_n.yt_voidptr = kc_sub_p; kc_do_printdot_do_add_edge(kc_n, kc_phylum, kc_sub_n, kc_sub_phylum, kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix); } static void kc_do_printdot_edges #ifdef KC_USE_PROTOTYPES (FILE *kc_f, kc_dotedgenode_t kc_edges, char *kc_edge_attributes, boolean kc_use_ctxt) #else (kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt) FILE *kc_f; kc_dotedgenode_t kc_edges; char *kc_edge_attributes; boolean kc_use_ctxt; #endif { kc_dotedgenode_t kc_p = kc_edges; if (!kc_f) kc_f = stdout; while(kc_p) { kc_do_printdot_id_of_phylum(kc_f, kc_p->ptr_from.yt_voidptr, kc_p->phy_from, kc_use_ctxt, 0, 0); (void)fprintf(kc_f, ":f%d -> ", kc_p->son_nr); switch(kc_p->phy_to) { case (int)kc_phylum_int: { kc_do_printdot_id_of__int(kc_f, kc_p->ptr_to.yt_int, kc_use_ctxt, kc_p->ptr_from.yt_voidptr, kc_p->son_nr); break; } case (int)kc_phylum_float: { kc_do_printdot_id_of__float(kc_f, kc_p->ptr_to.yt_float, kc_use_ctxt, kc_p->ptr_from.yt_voidptr, kc_p->son_nr); break; } default: kc_do_printdot_id_of_phylum(kc_f, kc_p->ptr_to.yt_voidptr, kc_p->phy_to, kc_use_ctxt, kc_p->ptr_from.yt_voidptr, kc_p->son_nr); } (void)fprintf(kc_f, " [label=\"%s\"", kc_p->label); if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) { (void)fprintf(kc_f, ", %s", kc_edge_attributes); } (void)fprintf(kc_f, "];\n"); kc_p = kc_p->next; } } static void kc_do_printdot_phylum #ifdef KC_USE_PROTOTYPES (FILE *kc_f, kc_voidptr_t kc_p, kc_enum_phyla kc_phylum, boolean kc_outmost, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix, boolean kc_phy_labels, boolean kc_use_ctxt, kc_voidptr_t kc_ctxt, int kc_son_nr) #else (kc_f, kc_p, kc_phylum, kc_outmost, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_ctxt, kc_son_nr) FILE *kc_f; kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; boolean kc_outmost; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix; boolean kc_phy_labels; boolean kc_use_ctxt; kc_voidptr_t kc_ctxt; int kc_son_nr; #endif { int kc_i; /*SUPPRESS 622*/ assertReason(kc_phylum != kc_phylum_int, "kc_do_printdot_phylum called with kc_phylum_int argument"); /*SUPPRESS 622*/ assertReason(kc_phylum != kc_phylum_float, "kc_do_printdot_phylum called with kc_phylum_float argument"); /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),"kc_p",kc_phylum); if (!kc_f) kc_f = stdout; if (kc_phylum == kc_phylum_voidptr) { kc_do_printdot_id_of_phylum(kc_f, kc_p, kc_phylum, kc_use_ctxt, kc_ctxt, kc_son_nr); (void)fprintf(kc_f, " [label=\"%p\", shape=ellipse];\n", kc_p); } else if ((kc_phylum == kc_phylum_casestring) || (kc_phylum == kc_phylum_nocasestring)) { kc_do_printdot_id_of_phylum(kc_f, kc_p, kc_phylum, kc_use_ctxt, kc_ctxt, kc_son_nr); (void)fprintf(kc_f, " [label=\"%s\", shape=ellipse];\n", ((casestring)kc_p)->name); } else { kc_enum_operators kc_prodsel = ((casestring)kc_p)->prod_sel; KC_OPERATOR_INFO *kc_op_info = &kc_OperatorInfo[(int)kc_prodsel]; if (! kc_op_info->no_sons) { kc_do_printdot_id_of_phylum(kc_f, kc_p, kc_phylum, kc_use_ctxt, kc_ctxt, kc_son_nr); (void)fprintf(kc_f, " [label=\"%s\"];\n", kc_op_info->name); } else { kc_do_printdot_id_of_phylum(kc_f, kc_p, kc_phylum, kc_use_ctxt, kc_ctxt, kc_son_nr); (void)fprintf(kc_f, " [label=\"{%s|{", kc_op_info->name); kc_do_printdot_genfields(kc_f, kc_prodsel, kc_phylum, kc_phy_labels); (void)fprintf(kc_f, "}}\"];\n"); switch(kc_prodsel) { case (int)sel_Int: { kc_i = 0; kc_do_printdot_add_edge_int(kc_p, kc_phylum, ((INT)kc_p)->u.Int.int_1, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__int(kc_f, ((INT)kc_p)->u.Int.int_1, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; break; } case (int)sel_Argument: { kc_i = 0; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((argument)kc_p)->u.Argument.ID_1, kc_phylum_ID, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((argument)kc_p)->u.Argument.ID_1, kc_phylum_ID, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge_int(kc_p, kc_phylum, ((argument)kc_p)->u.Argument.int_1, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__int(kc_f, ((argument)kc_p)->u.Argument.int_1, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; break; } case (int)sel_CExpressionNl: { kc_i = 0; kc_do_printdot_add_edge_int(kc_p, kc_phylum, ((Cexpression_elem)kc_p)->u.CExpressionNl.int_1, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__int(kc_f, ((Cexpression_elem)kc_p)->u.CExpressionNl.int_1, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; break; } case (int)sel_CExpressionDQNl: { kc_i = 0; kc_do_printdot_add_edge_int(kc_p, kc_phylum, ((CexpressionDQ_elem)kc_p)->u.CExpressionDQNl.int_1, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__int(kc_f, ((CexpressionDQ_elem)kc_p)->u.CExpressionDQNl.int_1, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; break; } case (int)sel_CExpressionSQNl: { kc_i = 0; kc_do_printdot_add_edge_int(kc_p, kc_phylum, ((CexpressionSQ_elem)kc_p)->u.CExpressionSQNl.int_1, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__int(kc_f, ((CexpressionSQ_elem)kc_p)->u.CExpressionSQNl.int_1, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; break; } case (int)sel_IncludeNl: { kc_i = 0; kc_do_printdot_add_edge_int(kc_p, kc_phylum, ((include)kc_p)->u.IncludeNl.int_1, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__int(kc_f, ((include)kc_p)->u.IncludeNl.int_1, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; break; } case (int)sel_FnDeclaration: { kc_i = 0; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.ID_1, kc_phylum_ID, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.ID_1, kc_phylum_ID, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge_int(kc_p, kc_phylum, ((fndeclaration)kc_p)->u.FnDeclaration.int_1, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__int(kc_f, ((fndeclaration)kc_p)->u.FnDeclaration.int_1, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.ID_2, kc_phylum_ID, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.ID_2, kc_phylum_ID, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.fnarguments_1, kc_phylum_fnarguments, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.fnarguments_1, kc_phylum_fnarguments, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.Cvariabledeclarations_1, kc_phylum_Cvariabledeclarations, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.Cvariabledeclarations_1, kc_phylum_Cvariabledeclarations, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.Ctext_1, kc_phylum_Ctext, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.Ctext_1, kc_phylum_Ctext, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.fnclass_1, kc_phylum_fnclass, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.fnclass_1, kc_phylum_fnclass, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; break; } case (int)sel_CVPointer: { kc_i = 0; kc_do_printdot_add_edge_int(kc_p, kc_phylum, ((Cvariable)kc_p)->u.CVPointer.int_1, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__int(kc_f, ((Cvariable)kc_p)->u.CVPointer.int_1, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((Cvariable)kc_p)->u.CVPointer.ID_1, kc_phylum_ID, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((Cvariable)kc_p)->u.CVPointer.ID_1, kc_phylum_ID, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; break; } case (int)sel_CVFunction: { kc_i = 0; kc_do_printdot_add_edge_int(kc_p, kc_phylum, ((Cvariable)kc_p)->u.CVFunction.int_1, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__int(kc_f, ((Cvariable)kc_p)->u.CVFunction.int_1, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge_int(kc_p, kc_phylum, ((Cvariable)kc_p)->u.CVFunction.int_2, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__int(kc_f, ((Cvariable)kc_p)->u.CVFunction.int_2, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((Cvariable)kc_p)->u.CVFunction.ID_1, kc_phylum_ID, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((Cvariable)kc_p)->u.CVFunction.ID_1, kc_phylum_ID, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; break; } case (int)sel_CTextNl: { kc_i = 0; kc_do_printdot_add_edge_int(kc_p, kc_phylum, ((Ctext_elem)kc_p)->u.CTextNl.int_1, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__int(kc_f, ((Ctext_elem)kc_p)->u.CTextNl.int_1, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; break; } case (int)sel_FileLine: { kc_i = 0; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((fileline)kc_p)->u.FileLine.casestring_1, kc_phylum_casestring, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((fileline)kc_p)->u.FileLine.casestring_1, kc_phylum_casestring, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge_int(kc_p, kc_phylum, ((fileline)kc_p)->u.FileLine.int_1, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__int(kc_f, ((fileline)kc_p)->u.FileLine.int_1, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; break; } case (int)sel_Consnooperatorsstack: { kc_i = 0; kc_do_printdot_add_edge_int(kc_p, kc_phylum, ((nooperatorsstack)kc_p)->u.Consnooperatorsstack.int_1, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__int(kc_f, ((nooperatorsstack)kc_p)->u.Consnooperatorsstack.int_1, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((nooperatorsstack)kc_p)->u.Consnooperatorsstack.nooperatorsstack_1, kc_phylum_nooperatorsstack, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((nooperatorsstack)kc_p)->u.Consnooperatorsstack.nooperatorsstack_1, kc_phylum_nooperatorsstack, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; break; } case (int)sel_ScopeTypeFileLine: { kc_i = 0; kc_do_printdot_add_edge_int(kc_p, kc_phylum, ((scopetypefileline)kc_p)->u.ScopeTypeFileLine.int_1, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__int(kc_f, ((scopetypefileline)kc_p)->u.ScopeTypeFileLine.int_1, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((scopetypefileline)kc_p)->u.ScopeTypeFileLine.IDtype_1, kc_phylum_IDtype, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((scopetypefileline)kc_p)->u.ScopeTypeFileLine.IDtype_1, kc_phylum_IDtype, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((scopetypefileline)kc_p)->u.ScopeTypeFileLine.casestring_1, kc_phylum_casestring, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((scopetypefileline)kc_p)->u.ScopeTypeFileLine.casestring_1, kc_phylum_casestring, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge_int(kc_p, kc_phylum, ((scopetypefileline)kc_p)->u.ScopeTypeFileLine.int_2, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__int(kc_f, ((scopetypefileline)kc_p)->u.ScopeTypeFileLine.int_2, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; break; } case (int)sel_ITPatternVariable: { kc_i = 0; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((IDtype)kc_p)->u.ITPatternVariable.ID_1, kc_phylum_ID, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((IDtype)kc_p)->u.ITPatternVariable.ID_1, kc_phylum_ID, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge_int(kc_p, kc_phylum, ((IDtype)kc_p)->u.ITPatternVariable.int_1, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__int(kc_f, ((IDtype)kc_p)->u.ITPatternVariable.int_1, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; break; } case (int)sel_Consintstack: { kc_i = 0; kc_do_printdot_add_edge_int(kc_p, kc_phylum, ((intstack)kc_p)->u.Consintstack.int_1, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__int(kc_f, ((intstack)kc_p)->u.Consintstack.int_1, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((intstack)kc_p)->u.Consintstack.intstack_1, kc_phylum_intstack, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((intstack)kc_p)->u.Consintstack.intstack_1, kc_phylum_intstack, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; break; } case (int)sel_Conspath: { kc_i = 0; kc_do_printdot_add_edge_int(kc_p, kc_phylum, ((path)kc_p)->u.Conspath.int_1, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__int(kc_f, ((path)kc_p)->u.Conspath.int_1, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((path)kc_p)->u.Conspath.path_1, kc_phylum_path, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((path)kc_p)->u.Conspath.path_1, kc_phylum_path, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; break; } case (int)sel_Consargsnumbers: { kc_i = 0; kc_do_printdot_add_edge_int(kc_p, kc_phylum, ((argsnumbers)kc_p)->u.Consargsnumbers.int_1, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__int(kc_f, ((argsnumbers)kc_p)->u.Consargsnumbers.int_1, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((argsnumbers)kc_p)->u.Consargsnumbers.argsnumbers_1, kc_phylum_argsnumbers, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((argsnumbers)kc_p)->u.Consargsnumbers.argsnumbers_1, kc_phylum_argsnumbers, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; break; } case (int)sel_Problem1int1: { kc_i = 0; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((problem)kc_p)->u.Problem1int1.casestring_1, kc_phylum_casestring, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((problem)kc_p)->u.Problem1int1.casestring_1, kc_phylum_casestring, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge_int(kc_p, kc_phylum, ((problem)kc_p)->u.Problem1int1.int_1, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__int(kc_f, ((problem)kc_p)->u.Problem1int1.int_1, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((problem)kc_p)->u.Problem1int1.casestring_2, kc_phylum_casestring, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((problem)kc_p)->u.Problem1int1.casestring_2, kc_phylum_casestring, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; break; } case (int)sel_Problem3int1: { kc_i = 0; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((problem)kc_p)->u.Problem3int1.casestring_1, kc_phylum_casestring, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((problem)kc_p)->u.Problem3int1.casestring_1, kc_phylum_casestring, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((problem)kc_p)->u.Problem3int1.casestring_2, kc_phylum_casestring, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((problem)kc_p)->u.Problem3int1.casestring_2, kc_phylum_casestring, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((problem)kc_p)->u.Problem3int1.casestring_3, kc_phylum_casestring, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((problem)kc_p)->u.Problem3int1.casestring_3, kc_phylum_casestring, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge_int(kc_p, kc_phylum, ((problem)kc_p)->u.Problem3int1.int_1, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot__int(kc_f, ((problem)kc_p)->u.Problem3int1.int_1, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((problem)kc_p)->u.Problem3int1.casestring_4, kc_phylum_casestring, kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((problem)kc_p)->u.Problem3int1.casestring_4, kc_phylum_casestring, False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1); kc_i++; break; } default: for (kc_i=0; kc_i < kc_op_info->no_sons; kc_i++) { kc_do_printdot_add_edge( kc_p, kc_phylum, (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_op_info->suboffset[kc_i]), kc_op_info->subphylum[kc_i], kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix ); kc_do_printdot_phylum( kc_f, (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_op_info->suboffset[kc_i]), kc_op_info->subphylum[kc_i], False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1 ); } } } } } static void kc_do_printdot_subgraph_prologue__nocasestring #ifdef KC_USE_PROTOTYPES (FILE *kc_f, nocasestring kc_p, char *kc_root, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt) #else (kc_f, kc_p, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt) FILE *kc_f; nocasestring kc_p; char *kc_root; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt; #endif { if (!kc_f) kc_f = stdout; (void)fprintf(kc_f, "/*subgraph*/ {\n"); if (kc_root) { (void)fprintf(kc_f, "\"%s\" [shape=ellipse", kc_root); if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) { (void)fprintf(kc_f, ", %s", kc_edge_attributes); } if (kc_phy_labels) { (void)fprintf(kc_f, ", label=\"%s\\n%s\"", kc_root, kc_PhylumInfo[kc_phylum_nocasestring].name); } (void)fprintf(kc_f, "];\n"); (void)fprintf(kc_f, "\"%s\" ->", kc_root); kc_do_printdot_id_of__nocasestring(kc_f, kc_p, kc_use_ctxt, 0, 0); if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) { (void)fprintf(kc_f, "[%s]", kc_edge_attributes); } (void)fprintf(kc_f, ";\n"); } } static void kc_do_printdot_id_of__nocasestring #ifdef KC_USE_PROTOTYPES (FILE *kc_f, nocasestring kc_p, boolean kc_use_ctxt, kc_voidptr_t kc_ctxt, int kc_son_nr) #else (kc_f, kc_p, kc_use_ctxt, kc_ctxt, kc_son_nr) FILE *kc_f; nocasestring kc_p; boolean kc_use_ctxt; kc_voidptr_t kc_ctxt; int kc_son_nr; #endif { kc_do_printdot_id_of_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_nocasestring, kc_use_ctxt, kc_ctxt, kc_son_nr); } static void kc_do_printdot__nocasestring #ifdef KC_USE_PROTOTYPES (FILE *kc_f, nocasestring kc_p, boolean kc_outmost, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix, boolean kc_phy_labels, boolean kc_use_ctxt, kc_voidptr_t kc_ctxt, int kc_son_nr) #else (kc_f, kc_p, kc_outmost, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_ctxt, kc_son_nr) FILE *kc_f; nocasestring kc_p; boolean kc_outmost; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix; boolean kc_phy_labels; boolean kc_use_ctxt; kc_voidptr_t kc_ctxt; int kc_son_nr; #endif { kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_nocasestring, kc_outmost, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_ctxt, kc_son_nr); } /* TERRIBLE HACK: declare non-static, to shut up gcc -Wall ... */ /*static*/ void kc_do_printdot_add_edge_nocasestring #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, kc_enum_phyla kc_phylum, nocasestring kc_sub_p, int kc_son_nr, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix) #else (kc_p, kc_phylum, kc_sub_p, kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; nocasestring kc_sub_p; int kc_son_nr; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix; #endif { kc_do_printdot_add_edge(kc_p, kc_phylum, kc_sub_p, kc_phylum_nocasestring, kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix); } void fprintdot_nocasestring #ifdef KC_USE_PROTOTYPES (FILE *kc_f, nocasestring kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; nocasestring kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue__nocasestring(kc_f, kc_p, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot__nocasestring(kc_f, kc_p, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } static void kc_do_printdot_subgraph_prologue__casestring #ifdef KC_USE_PROTOTYPES (FILE *kc_f, casestring kc_p, char *kc_root, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt) #else (kc_f, kc_p, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt) FILE *kc_f; casestring kc_p; char *kc_root; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt; #endif { if (!kc_f) kc_f = stdout; (void)fprintf(kc_f, "/*subgraph*/ {\n"); if (kc_root) { (void)fprintf(kc_f, "\"%s\" [shape=ellipse", kc_root); if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) { (void)fprintf(kc_f, ", %s", kc_edge_attributes); } if (kc_phy_labels) { (void)fprintf(kc_f, ", label=\"%s\\n%s\"", kc_root, kc_PhylumInfo[kc_phylum_casestring].name); } (void)fprintf(kc_f, "];\n"); (void)fprintf(kc_f, "\"%s\" ->", kc_root); kc_do_printdot_id_of__casestring(kc_f, kc_p, kc_use_ctxt, 0, 0); if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) { (void)fprintf(kc_f, "[%s]", kc_edge_attributes); } (void)fprintf(kc_f, ";\n"); } } static void kc_do_printdot_id_of__casestring #ifdef KC_USE_PROTOTYPES (FILE *kc_f, casestring kc_p, boolean kc_use_ctxt, kc_voidptr_t kc_ctxt, int kc_son_nr) #else (kc_f, kc_p, kc_use_ctxt, kc_ctxt, kc_son_nr) FILE *kc_f; casestring kc_p; boolean kc_use_ctxt; kc_voidptr_t kc_ctxt; int kc_son_nr; #endif { kc_do_printdot_id_of_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_casestring, kc_use_ctxt, kc_ctxt, kc_son_nr); } static void kc_do_printdot__casestring #ifdef KC_USE_PROTOTYPES (FILE *kc_f, casestring kc_p, boolean kc_outmost, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix, boolean kc_phy_labels, boolean kc_use_ctxt, kc_voidptr_t kc_ctxt, int kc_son_nr) #else (kc_f, kc_p, kc_outmost, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_ctxt, kc_son_nr) FILE *kc_f; casestring kc_p; boolean kc_outmost; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix; boolean kc_phy_labels; boolean kc_use_ctxt; kc_voidptr_t kc_ctxt; int kc_son_nr; #endif { kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_casestring, kc_outmost, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_ctxt, kc_son_nr); } /* TERRIBLE HACK: declare non-static, to shut up gcc -Wall ... */ /*static*/ void kc_do_printdot_add_edge_casestring #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, kc_enum_phyla kc_phylum, casestring kc_sub_p, int kc_son_nr, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix) #else (kc_p, kc_phylum, kc_sub_p, kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; casestring kc_sub_p; int kc_son_nr; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix; #endif { kc_do_printdot_add_edge(kc_p, kc_phylum, kc_sub_p, kc_phylum_casestring, kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix); } void fprintdot_casestring #ifdef KC_USE_PROTOTYPES (FILE *kc_f, casestring kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; casestring kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue__casestring(kc_f, kc_p, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot__casestring(kc_f, kc_p, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } static void kc_do_printdot_subgraph_prologue__float #ifdef KC_USE_PROTOTYPES (FILE *kc_f, float kc_p, char *kc_root, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt) #else (kc_f, kc_p, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt) FILE *kc_f; float kc_p; char *kc_root; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt; #endif { if (!kc_f) kc_f = stdout; (void)fprintf(kc_f, "/*subgraph*/ {\n"); if (kc_root) { (void)fprintf(kc_f, "\"%s\" [shape=ellipse", kc_root); if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) { (void)fprintf(kc_f, ", %s", kc_edge_attributes); } if (kc_phy_labels) { (void)fprintf(kc_f, ", label=\"%s\\n%s\"", kc_root, kc_PhylumInfo[kc_phylum_float].name); } (void)fprintf(kc_f, "];\n"); (void)fprintf(kc_f, "\"%s\" ->", kc_root); kc_do_printdot_id_of__float(kc_f, kc_p, kc_use_ctxt, 0, 0); if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) { (void)fprintf(kc_f, "[%s]", kc_edge_attributes); } (void)fprintf(kc_f, ";\n"); } } static void kc_do_printdot_id_of__float #ifdef KC_USE_PROTOTYPES (FILE *kc_f, float kc_p, boolean kc_use_ctxt, kc_voidptr_t kc_ctxt, int kc_son_nr) #else (kc_f, kc_p, kc_use_ctxt, kc_ctxt, kc_son_nr) FILE *kc_f; float kc_p; boolean kc_use_ctxt; kc_voidptr_t kc_ctxt; int kc_son_nr; #endif { if (kc_use_ctxt) { (void)fprintf(kc_f, "\"kcidf%f_%p_%d\"", kc_p, kc_ctxt, kc_son_nr); } else { (void)fprintf(kc_f, "\"kcidf%f\"", kc_p); } } static void kc_do_printdot__float #ifdef KC_USE_PROTOTYPES (FILE *kc_f, float kc_p, boolean kc_outmost, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix, boolean kc_phy_labels, boolean kc_use_ctxt, kc_voidptr_t kc_ctxt, int kc_son_nr) #else (kc_f, kc_p, kc_outmost, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_ctxt, kc_son_nr) FILE *kc_f; float kc_p; boolean kc_outmost; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix; boolean kc_phy_labels; boolean kc_use_ctxt; kc_voidptr_t kc_ctxt; int kc_son_nr; #endif { if (!kc_f) kc_f = stdout; kc_do_printdot_id_of__float(kc_f, kc_p, kc_use_ctxt, kc_ctxt, kc_son_nr); (void)fprintf(kc_f, " [label=\"%f\", shape=ellipse];\n", kc_p); } /* TERRIBLE HACK: declare non-static, to shut up gcc -Wall ... */ /*static*/ void kc_do_printdot_add_edge_float #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, kc_enum_phyla kc_phylum, float kc_sub_p, int kc_son_nr, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix) #else (kc_p, kc_phylum, kc_sub_p, kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; float kc_sub_p; int kc_son_nr; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix; #endif { YYSTYPE kc_n, kc_sub_n; kc_n.yt_voidptr = kc_p; kc_sub_n.yt_float = kc_sub_p; kc_do_printdot_do_add_edge(kc_n, kc_phylum, kc_sub_n, kc_phylum_float, kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix); } void fprintdot_float #ifdef KC_USE_PROTOTYPES (FILE *kc_f, float kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; float kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue__float(kc_f, kc_p, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot__float(kc_f, kc_p, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } static void kc_do_printdot_subgraph_prologue__int #ifdef KC_USE_PROTOTYPES (FILE *kc_f, int kc_p, char *kc_root, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt) #else (kc_f, kc_p, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt) FILE *kc_f; int kc_p; char *kc_root; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt; #endif { if (!kc_f) kc_f = stdout; (void)fprintf(kc_f, "/*subgraph*/ {\n"); if (kc_root) { (void)fprintf(kc_f, "\"%s\" [shape=ellipse", kc_root); if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) { (void)fprintf(kc_f, ", %s", kc_edge_attributes); } if (kc_phy_labels) { (void)fprintf(kc_f, ", label=\"%s\\n%s\"", kc_root, kc_PhylumInfo[kc_phylum_int].name); } (void)fprintf(kc_f, "];\n"); (void)fprintf(kc_f, "\"%s\" ->", kc_root); kc_do_printdot_id_of__int(kc_f, kc_p, kc_use_ctxt, 0, 0); if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) { (void)fprintf(kc_f, "[%s]", kc_edge_attributes); } (void)fprintf(kc_f, ";\n"); } } static void kc_do_printdot_id_of__int #ifdef KC_USE_PROTOTYPES (FILE *kc_f, int kc_p, boolean kc_use_ctxt, kc_voidptr_t kc_ctxt, int kc_son_nr) #else (kc_f, kc_p, kc_use_ctxt, kc_ctxt, kc_son_nr) FILE *kc_f; int kc_p; boolean kc_use_ctxt; kc_voidptr_t kc_ctxt; int kc_son_nr; #endif { if (kc_use_ctxt) { (void)fprintf(kc_f, "\"kcidi%d_%p_%d\"", kc_p, kc_ctxt, kc_son_nr); } else { (void)fprintf(kc_f, "\"kcidi%d\"", kc_p); } } static void kc_do_printdot__int #ifdef KC_USE_PROTOTYPES (FILE *kc_f, int kc_p, boolean kc_outmost, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix, boolean kc_phy_labels, boolean kc_use_ctxt, kc_voidptr_t kc_ctxt, int kc_son_nr) #else (kc_f, kc_p, kc_outmost, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_ctxt, kc_son_nr) FILE *kc_f; int kc_p; boolean kc_outmost; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix; boolean kc_phy_labels; boolean kc_use_ctxt; kc_voidptr_t kc_ctxt; int kc_son_nr; #endif { if (!kc_f) kc_f = stdout; kc_do_printdot_id_of__int(kc_f, kc_p, kc_use_ctxt, kc_ctxt, kc_son_nr); (void)fprintf(kc_f, " [label=\"%d\", shape=ellipse];\n", kc_p); } /* TERRIBLE HACK: declare non-static, to shut up gcc -Wall ... */ /*static*/ void kc_do_printdot_add_edge_int #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, kc_enum_phyla kc_phylum, int kc_sub_p, int kc_son_nr, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix) #else (kc_p, kc_phylum, kc_sub_p, kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; int kc_sub_p; int kc_son_nr; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix; #endif { YYSTYPE kc_n, kc_sub_n; kc_n.yt_voidptr = kc_p; kc_sub_n.yt_int = kc_sub_p; kc_do_printdot_do_add_edge(kc_n, kc_phylum, kc_sub_n, kc_phylum_int, kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix); } void fprintdot_int #ifdef KC_USE_PROTOTYPES (FILE *kc_f, int kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; int kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue__int(kc_f, kc_p, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot__int(kc_f, kc_p, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } static void kc_do_printdot_subgraph_prologue__voidptr #ifdef KC_USE_PROTOTYPES (FILE *kc_f, voidptr kc_p, char *kc_root, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt) #else (kc_f, kc_p, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt) FILE *kc_f; voidptr kc_p; char *kc_root; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt; #endif { if (!kc_f) kc_f = stdout; (void)fprintf(kc_f, "/*subgraph*/ {\n"); if (kc_root) { (void)fprintf(kc_f, "\"%s\" [shape=ellipse", kc_root); if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) { (void)fprintf(kc_f, ", %s", kc_edge_attributes); } if (kc_phy_labels) { (void)fprintf(kc_f, ", label=\"%s\\n%s\"", kc_root, kc_PhylumInfo[kc_phylum_voidptr].name); } (void)fprintf(kc_f, "];\n"); (void)fprintf(kc_f, "\"%s\" ->", kc_root); kc_do_printdot_id_of__voidptr(kc_f, kc_p, kc_use_ctxt, 0, 0); if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) { (void)fprintf(kc_f, "[%s]", kc_edge_attributes); } (void)fprintf(kc_f, ";\n"); } } static void kc_do_printdot_id_of__voidptr #ifdef KC_USE_PROTOTYPES (FILE *kc_f, voidptr kc_p, boolean kc_use_ctxt, kc_voidptr_t kc_ctxt, int kc_son_nr) #else (kc_f, kc_p, kc_use_ctxt, kc_ctxt, kc_son_nr) FILE *kc_f; voidptr kc_p; boolean kc_use_ctxt; kc_voidptr_t kc_ctxt; int kc_son_nr; #endif { kc_do_printdot_id_of_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_voidptr, kc_use_ctxt, kc_ctxt, kc_son_nr); } static void kc_do_printdot__voidptr #ifdef KC_USE_PROTOTYPES (FILE *kc_f, voidptr kc_p, boolean kc_outmost, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix, boolean kc_phy_labels, boolean kc_use_ctxt, kc_voidptr_t kc_ctxt, int kc_son_nr) #else (kc_f, kc_p, kc_outmost, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_ctxt, kc_son_nr) FILE *kc_f; voidptr kc_p; boolean kc_outmost; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix; boolean kc_phy_labels; boolean kc_use_ctxt; kc_voidptr_t kc_ctxt; int kc_son_nr; #endif { kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_voidptr, kc_outmost, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_ctxt, kc_son_nr); } /* TERRIBLE HACK: declare non-static, to shut up gcc -Wall ... */ /*static*/ void kc_do_printdot_add_edge_voidptr #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, kc_enum_phyla kc_phylum, voidptr kc_sub_p, int kc_son_nr, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix) #else (kc_p, kc_phylum, kc_sub_p, kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; voidptr kc_sub_p; int kc_son_nr; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix; #endif { kc_do_printdot_add_edge(kc_p, kc_phylum, kc_sub_p, kc_phylum_voidptr, kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix); } void fprintdot_voidptr #ifdef KC_USE_PROTOTYPES (FILE *kc_f, voidptr kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; voidptr kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue__voidptr(kc_f, kc_p, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot__voidptr(kc_f, kc_p, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_uniqID #ifdef KC_USE_PROTOTYPES (FILE *kc_f, uniqID kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; uniqID kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_uniqID, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_uniqID, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ID #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ID kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ID kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ID, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ID, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_INT #ifdef KC_USE_PROTOTYPES (FILE *kc_f, INT kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; INT kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_INT, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_INT, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_STRING #ifdef KC_USE_PROTOTYPES (FILE *kc_f, STRING kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; STRING kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_STRING, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_STRING, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_phylumdeclarationsroot #ifdef KC_USE_PROTOTYPES (FILE *kc_f, phylumdeclarationsroot kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; phylumdeclarationsroot kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_phylumdeclarationsroot, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_phylumdeclarationsroot, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_phylumdeclarations #ifdef KC_USE_PROTOTYPES (FILE *kc_f, phylumdeclarations kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; phylumdeclarations kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_phylumdeclarations, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_phylumdeclarations, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_phylumnames #ifdef KC_USE_PROTOTYPES (FILE *kc_f, phylumnames kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; phylumnames kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_phylumnames, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_phylumnames, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_phylumdeclaration #ifdef KC_USE_PROTOTYPES (FILE *kc_f, phylumdeclaration kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; phylumdeclaration kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_phylumdeclaration, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_phylumdeclaration, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_storageoption #ifdef KC_USE_PROTOTYPES (FILE *kc_f, storageoption kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; storageoption kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_storageoption, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_storageoption, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_storageclasses #ifdef KC_USE_PROTOTYPES (FILE *kc_f, storageclasses kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; storageclasses kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_storageclasses, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_storageclasses, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_productionblock #ifdef KC_USE_PROTOTYPES (FILE *kc_f, productionblock kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; productionblock kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_productionblock, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_productionblock, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_alternatives #ifdef KC_USE_PROTOTYPES (FILE *kc_f, alternatives kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; alternatives kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_alternatives, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_alternatives, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_alternative #ifdef KC_USE_PROTOTYPES (FILE *kc_f, alternative kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; alternative kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_alternative, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_alternative, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_arguments #ifdef KC_USE_PROTOTYPES (FILE *kc_f, arguments kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; arguments kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_arguments, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_arguments, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_argument #ifdef KC_USE_PROTOTYPES (FILE *kc_f, argument kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; argument kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_argument, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_argument, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_Ccode_option #ifdef KC_USE_PROTOTYPES (FILE *kc_f, Ccode_option kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; Ccode_option kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_Ccode_option, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_Ccode_option, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_attributes #ifdef KC_USE_PROTOTYPES (FILE *kc_f, attributes kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; attributes kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_attributes, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_attributes, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_attribute #ifdef KC_USE_PROTOTYPES (FILE *kc_f, attribute kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; attribute kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_attribute, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_attribute, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_attribute_initialisation_option #ifdef KC_USE_PROTOTYPES (FILE *kc_f, attribute_initialisation_option kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; attribute_initialisation_option kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_attribute_initialisation_option, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_attribute_initialisation_option, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_Cexpression #ifdef KC_USE_PROTOTYPES (FILE *kc_f, Cexpression kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; Cexpression kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_Cexpression, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_Cexpression, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_Cexpression_elem #ifdef KC_USE_PROTOTYPES (FILE *kc_f, Cexpression_elem kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; Cexpression_elem kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_Cexpression_elem, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_Cexpression_elem, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_CexpressionDQ #ifdef KC_USE_PROTOTYPES (FILE *kc_f, CexpressionDQ kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; CexpressionDQ kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_CexpressionDQ, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_CexpressionDQ, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_CexpressionDQ_elem #ifdef KC_USE_PROTOTYPES (FILE *kc_f, CexpressionDQ_elem kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; CexpressionDQ_elem kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_CexpressionDQ_elem, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_CexpressionDQ_elem, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_CexpressionSQ #ifdef KC_USE_PROTOTYPES (FILE *kc_f, CexpressionSQ kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; CexpressionSQ kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_CexpressionSQ, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_CexpressionSQ, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_CexpressionSQ_elem #ifdef KC_USE_PROTOTYPES (FILE *kc_f, CexpressionSQ_elem kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; CexpressionSQ_elem kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_CexpressionSQ_elem, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_CexpressionSQ_elem, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_idCexpressions #ifdef KC_USE_PROTOTYPES (FILE *kc_f, idCexpressions kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; idCexpressions kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_idCexpressions, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_idCexpressions, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_idCexpression #ifdef KC_USE_PROTOTYPES (FILE *kc_f, idCexpression kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; idCexpression kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_idCexpression, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_idCexpression, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_Ctexts #ifdef KC_USE_PROTOTYPES (FILE *kc_f, Ctexts kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; Ctexts kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_Ctexts, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_Ctexts, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_includefiles #ifdef KC_USE_PROTOTYPES (FILE *kc_f, includefiles kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; includefiles kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_includefiles, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_includefiles, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_includefile #ifdef KC_USE_PROTOTYPES (FILE *kc_f, includefile kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; includefile kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_includefile, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_includefile, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_includedeclarations #ifdef KC_USE_PROTOTYPES (FILE *kc_f, includedeclarations kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; includedeclarations kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_includedeclarations, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_includedeclarations, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_includedeclaration #ifdef KC_USE_PROTOTYPES (FILE *kc_f, includedeclaration kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; includedeclaration kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_includedeclaration, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_includedeclaration, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_includes #ifdef KC_USE_PROTOTYPES (FILE *kc_f, includes kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; includes kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_includes, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_includes, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_include #ifdef KC_USE_PROTOTYPES (FILE *kc_f, include kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; include kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_include, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_include, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_rwdeclarations #ifdef KC_USE_PROTOTYPES (FILE *kc_f, rwdeclarations kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; rwdeclarations kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_rwdeclarations, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_rwdeclarations, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_rwdeclaration #ifdef KC_USE_PROTOTYPES (FILE *kc_f, rwdeclaration kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; rwdeclaration kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_rwdeclaration, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_rwdeclaration, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_rewriteclauses #ifdef KC_USE_PROTOTYPES (FILE *kc_f, rewriteclauses kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; rewriteclauses kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_rewriteclauses, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_rewriteclauses, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_rewriteclause #ifdef KC_USE_PROTOTYPES (FILE *kc_f, rewriteclause kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; rewriteclause kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_rewriteclause, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_rewriteclause, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_patternchains #ifdef KC_USE_PROTOTYPES (FILE *kc_f, patternchains kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; patternchains kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_patternchains, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_patternchains, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_patternchain #ifdef KC_USE_PROTOTYPES (FILE *kc_f, patternchain kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; patternchain kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_patternchain, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_patternchain, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_outmostpatterns #ifdef KC_USE_PROTOTYPES (FILE *kc_f, outmostpatterns kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; outmostpatterns kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_outmostpatterns, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_outmostpatterns, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_patternchainitem #ifdef KC_USE_PROTOTYPES (FILE *kc_f, patternchainitem kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; patternchainitem kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_patternchainitem, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_patternchainitem, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_outmostpattern #ifdef KC_USE_PROTOTYPES (FILE *kc_f, outmostpattern kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; outmostpattern kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_outmostpattern, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_outmostpattern, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_pattern #ifdef KC_USE_PROTOTYPES (FILE *kc_f, pattern kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; pattern kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_pattern, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_pattern, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_patterns #ifdef KC_USE_PROTOTYPES (FILE *kc_f, patterns kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; patterns kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_patterns, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_patterns, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_term #ifdef KC_USE_PROTOTYPES (FILE *kc_f, term kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; term kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_term, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_term, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_terms #ifdef KC_USE_PROTOTYPES (FILE *kc_f, terms kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; terms kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_terms, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_terms, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_fnfiles #ifdef KC_USE_PROTOTYPES (FILE *kc_f, fnfiles kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; fnfiles kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_fnfiles, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_fnfiles, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_fnfile #ifdef KC_USE_PROTOTYPES (FILE *kc_f, fnfile kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; fnfile kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_fnfile, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_fnfile, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_fndeclarations #ifdef KC_USE_PROTOTYPES (FILE *kc_f, fndeclarations kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; fndeclarations kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_fndeclarations, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_fndeclarations, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_fndeclaration #ifdef KC_USE_PROTOTYPES (FILE *kc_f, fndeclaration kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; fndeclaration kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_fndeclaration, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_fndeclaration, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_fnclass #ifdef KC_USE_PROTOTYPES (FILE *kc_f, fnclass kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; fnclass kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_fnclass, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_fnclass, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_fnarguments #ifdef KC_USE_PROTOTYPES (FILE *kc_f, fnarguments kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; fnarguments kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_fnarguments, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_fnarguments, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_Cvariabledeclarations #ifdef KC_USE_PROTOTYPES (FILE *kc_f, Cvariabledeclarations kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; Cvariabledeclarations kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_Cvariabledeclarations, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_Cvariabledeclarations, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_Cvariabledeclaration #ifdef KC_USE_PROTOTYPES (FILE *kc_f, Cvariabledeclaration kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; Cvariabledeclaration kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_Cvariabledeclaration, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_Cvariabledeclaration, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_Cvariables #ifdef KC_USE_PROTOTYPES (FILE *kc_f, Cvariables kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; Cvariables kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_Cvariables, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_Cvariables, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_Cvariable #ifdef KC_USE_PROTOTYPES (FILE *kc_f, Cvariable kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; Cvariable kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_Cvariable, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_Cvariable, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_Ctext #ifdef KC_USE_PROTOTYPES (FILE *kc_f, Ctext kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; Ctext kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_Ctext, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_Ctext, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_Ctext_elem #ifdef KC_USE_PROTOTYPES (FILE *kc_f, Ctext_elem kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; Ctext_elem kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_Ctext_elem, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_Ctext_elem, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_foreach_after #ifdef KC_USE_PROTOTYPES (FILE *kc_f, foreach_after kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; foreach_after kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_foreach_after, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_foreach_after, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_contextinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, contextinfo kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; contextinfo kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_contextinfo, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_contextinfo, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_withexpressions #ifdef KC_USE_PROTOTYPES (FILE *kc_f, withexpressions kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; withexpressions kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_withexpressions, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_withexpressions, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_withexpression #ifdef KC_USE_PROTOTYPES (FILE *kc_f, withexpression kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; withexpression kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_withexpression, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_withexpression, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_withcases #ifdef KC_USE_PROTOTYPES (FILE *kc_f, withcases kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; withcases kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_withcases, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_withcases, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_withcase #ifdef KC_USE_PROTOTYPES (FILE *kc_f, withcase kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; withcase kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_withcase, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_withcase, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_unparsedeclarations #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unparsedeclarations kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; unparsedeclarations kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_unparsedeclarations, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unparsedeclarations, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_unparsedeclaration #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unparsedeclaration kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; unparsedeclaration kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_unparsedeclaration, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unparsedeclaration, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_unparseclauses #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unparseclauses kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; unparseclauses kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_unparseclauses, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unparseclauses, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_unparseclause #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unparseclause kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; unparseclause kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_unparseclause, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unparseclause, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_viewnames #ifdef KC_USE_PROTOTYPES (FILE *kc_f, viewnames kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; viewnames kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_viewnames, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_viewnames, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_unparseitems #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unparseitems kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; unparseitems kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_unparseitems, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unparseitems, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_unparseitem #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unparseitem kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; unparseitem kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_unparseitem, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unparseitem, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_unpsubterm #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unpsubterm kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; unpsubterm kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_unpsubterm, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unpsubterm, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_unpattributes #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unpattributes kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; unpattributes kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_unpattributes, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unpattributes, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_viewnameoption #ifdef KC_USE_PROTOTYPES (FILE *kc_f, viewnameoption kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; viewnameoption kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_viewnameoption, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_viewnameoption, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_filelinestack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, filelinestack kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; filelinestack kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_filelinestack, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_filelinestack, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_fileline #ifdef KC_USE_PROTOTYPES (FILE *kc_f, fileline kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; fileline kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_fileline, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_fileline, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_nooperatorsstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, nooperatorsstack kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; nooperatorsstack kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_nooperatorsstack, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_nooperatorsstack, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_scopetypefilelinestack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, scopetypefilelinestack kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; scopetypefilelinestack kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_scopetypefilelinestack, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_scopetypefilelinestack, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_scopetypefileline #ifdef KC_USE_PROTOTYPES (FILE *kc_f, scopetypefileline kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; scopetypefileline kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_scopetypefileline, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_scopetypefileline, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_IDtype #ifdef KC_USE_PROTOTYPES (FILE *kc_f, IDtype kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; IDtype kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_IDtype, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_IDtype, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_operatorsstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, operatorsstack kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; operatorsstack kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_operatorsstack, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_operatorsstack, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_operators #ifdef KC_USE_PROTOTYPES (FILE *kc_f, operators kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; operators kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_operators, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_operators, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_phyla #ifdef KC_USE_PROTOTYPES (FILE *kc_f, phyla kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; phyla kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_phyla, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_phyla, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_variables #ifdef KC_USE_PROTOTYPES (FILE *kc_f, variables kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; variables kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_variables, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_variables, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_argumentsstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, argumentsstack kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; argumentsstack kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_argumentsstack, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_argumentsstack, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_phylumstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, phylumstack kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; phylumstack kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_phylumstack, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_phylumstack, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_phylumnamesstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, phylumnamesstack kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; phylumnamesstack kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_phylumnamesstack, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_phylumnamesstack, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_withexpressionsstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, withexpressionsstack kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; withexpressionsstack kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_withexpressionsstack, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_withexpressionsstack, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_operatorstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, operatorstack kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; operatorstack kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_operatorstack, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_operatorstack, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_variablesstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, variablesstack kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; variablesstack kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_variablesstack, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_variablesstack, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_selvarstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, selvarstack kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; selvarstack kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_selvarstack, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_selvarstack, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_dollarvarstatus #ifdef KC_USE_PROTOTYPES (FILE *kc_f, dollarvarstatus kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; dollarvarstatus kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_dollarvarstatus, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_dollarvarstatus, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_dollarvarsallowedstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, dollarvarsallowedstack kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; dollarvarsallowedstack kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_dollarvarsallowedstack, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_dollarvarsallowedstack, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_intstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, intstack kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; intstack kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_intstack, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_intstack, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_idCexpressionsstack #ifdef KC_USE_PROTOTYPES (FILE *kc_f, idCexpressionsstack kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; idCexpressionsstack kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_idCexpressionsstack, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_idCexpressionsstack, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_two_phyla #ifdef KC_USE_PROTOTYPES (FILE *kc_f, two_phyla kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; two_phyla kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_two_phyla, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_two_phyla, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_tribool #ifdef KC_USE_PROTOTYPES (FILE *kc_f, tribool kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; tribool kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_tribool, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_tribool, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_patternrepresentations #ifdef KC_USE_PROTOTYPES (FILE *kc_f, patternrepresentations kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; patternrepresentations kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_patternrepresentations, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_patternrepresentations, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_patternrepresentation #ifdef KC_USE_PROTOTYPES (FILE *kc_f, patternrepresentation kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; patternrepresentation kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_patternrepresentation, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_patternrepresentation, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_elem_patternrepresentation #ifdef KC_USE_PROTOTYPES (FILE *kc_f, elem_patternrepresentation kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; elem_patternrepresentation kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_elem_patternrepresentation, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_elem_patternrepresentation, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_path #ifdef KC_USE_PROTOTYPES (FILE *kc_f, path kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; path kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_path, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_path, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_paths #ifdef KC_USE_PROTOTYPES (FILE *kc_f, paths kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; paths kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_paths, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_paths, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_argsnumbers #ifdef KC_USE_PROTOTYPES (FILE *kc_f, argsnumbers kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; argsnumbers kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_argsnumbers, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_argsnumbers, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_rewriterulesinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, rewriterulesinfo kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; rewriterulesinfo kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_rewriterulesinfo, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_rewriterulesinfo, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_rewriteruleinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, rewriteruleinfo kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; rewriteruleinfo kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_rewriteruleinfo, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_rewriteruleinfo, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_withcasesinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, withcasesinfo kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; withcasesinfo kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_withcasesinfo, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_withcasesinfo, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_withcaseinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, withcaseinfo kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; withcaseinfo kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_withcaseinfo, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_withcaseinfo, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_rewriteviewsinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, rewriteviewsinfo kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; rewriteviewsinfo kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_rewriteviewsinfo, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_rewriteviewsinfo, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_rewriteviewinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, rewriteviewinfo kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; rewriteviewinfo kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_rewriteviewinfo, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_rewriteviewinfo, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_unparseviewsinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unparseviewsinfo kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; unparseviewsinfo kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_unparseviewsinfo, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unparseviewsinfo, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_unparseviewinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unparseviewinfo kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; unparseviewinfo kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_unparseviewinfo, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unparseviewinfo, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_unparsedeclsinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unparsedeclsinfo kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; unparsedeclsinfo kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_unparsedeclsinfo, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unparsedeclsinfo, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_unparsedeclinfo #ifdef KC_USE_PROTOTYPES (FILE *kc_f, unparsedeclinfo kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; unparsedeclinfo kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_unparsedeclinfo, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_unparsedeclinfo, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_declaration #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_declaration kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_declaration kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_declaration, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_declaration, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_declaration_list #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_declaration_list kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_declaration_list kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_declaration_list, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_declaration_list, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_declaration_specifiers #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_declaration_specifiers kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_declaration_specifiers kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_declaration_specifiers, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_declaration_specifiers, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_declaration_specifier #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_declaration_specifier kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_declaration_specifier kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_declaration_specifier, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_declaration_specifier, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_storage_class_specifier #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_storage_class_specifier kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_storage_class_specifier kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_storage_class_specifier, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_storage_class_specifier, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_type_specifier #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_type_specifier kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_type_specifier kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_type_specifier, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_type_specifier, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_type_qualifier #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_type_qualifier kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_type_qualifier kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_type_qualifier, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_type_qualifier, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_init_declarator_list #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_init_declarator_list kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_init_declarator_list kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_init_declarator_list, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_init_declarator_list, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_init_declarator #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_init_declarator kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_init_declarator kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_init_declarator, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_init_declarator, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_declarator #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_declarator kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_declarator kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_declarator, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_declarator, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_direct_declarator #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_direct_declarator kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_direct_declarator kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_direct_declarator, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_direct_declarator, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_pointer_option #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_pointer_option kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_pointer_option kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_pointer_option, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_pointer_option, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_pointer #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_pointer kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_pointer kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_pointer, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_pointer, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_type_qualifier_list #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_type_qualifier_list kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_type_qualifier_list kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_type_qualifier_list, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_type_qualifier_list, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_parameter_type_list #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_parameter_type_list kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_parameter_type_list kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_parameter_type_list, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_parameter_type_list, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_parameter_list #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_parameter_list kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_parameter_list kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_parameter_list, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_parameter_list, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_parameter_declaration #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_parameter_declaration kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_parameter_declaration kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_parameter_declaration, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_parameter_declaration, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_identifier_list #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_identifier_list kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_identifier_list kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_identifier_list, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_identifier_list, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_abstract_declarator #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_abstract_declarator kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_abstract_declarator kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_abstract_declarator, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_abstract_declarator, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_direct_abstract_declarator_option #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_direct_abstract_declarator_option kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_direct_abstract_declarator_option kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_direct_abstract_declarator_option, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_direct_abstract_declarator_option, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_direct_abstract_declarator #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_direct_abstract_declarator kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_direct_abstract_declarator kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_direct_abstract_declarator, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_direct_abstract_declarator, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_constant_expression_option #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_constant_expression_option kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_constant_expression_option kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_constant_expression_option, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_constant_expression_option, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_ac_constant_expression #ifdef KC_USE_PROTOTYPES (FILE *kc_f, ac_constant_expression kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ac_constant_expression kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_ac_constant_expression, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_ac_constant_expression, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_error #ifdef KC_USE_PROTOTYPES (FILE *kc_f, error kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; error kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_error, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_error, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_problem #ifdef KC_USE_PROTOTYPES (FILE *kc_f, problem kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; problem kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_problem, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_problem, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_addedphylumdeclarations #ifdef KC_USE_PROTOTYPES (FILE *kc_f, addedphylumdeclarations kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; addedphylumdeclarations kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_addedphylumdeclarations, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_addedphylumdeclarations, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_addedphylumdeclaration #ifdef KC_USE_PROTOTYPES (FILE *kc_f, addedphylumdeclaration kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; addedphylumdeclaration kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_addedphylumdeclaration, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_addedphylumdeclaration, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_countedphylumdeclarations #ifdef KC_USE_PROTOTYPES (FILE *kc_f, countedphylumdeclarations kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; countedphylumdeclarations kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_countedphylumdeclarations, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_countedphylumdeclarations, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_countedphylumdeclaration #ifdef KC_USE_PROTOTYPES (FILE *kc_f, countedphylumdeclaration kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; countedphylumdeclaration kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_countedphylumdeclaration, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_countedphylumdeclaration, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_bindingidmarks #ifdef KC_USE_PROTOTYPES (FILE *kc_f, bindingidmarks kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; bindingidmarks kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_bindingidmarks, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_bindingidmarks, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } void fprintdot_bindingidmark #ifdef KC_USE_PROTOTYPES (FILE *kc_f, bindingidmark kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot) #else (kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_attributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; bindingidmark kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot; #endif { int kc_edge_nr = 1; kc_dotedgenode_t kc_edges = 0; if (kc_prt_head_foot) fprintdotprologue(kc_f); /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_bindingidmark, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt); kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize); kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_bindingidmark, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0); kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt); kc_ht_delete(kc_fprintdot_hashtable); /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f); if (kc_prt_head_foot) fprintdotepilogue(kc_f); } static char *kc_error_concat = "concat_"; static char *kc_error_reverse = "reverse_"; static char *kc_error_length = "length_"; static char *kc_error_last = "last_"; static char *kc_error_last_with_nil_argument = "Internal Error: last_%s was called with argument Nil%s\n"; static char *kc_error_map = "map_"; static char *kc_error_filter = "filter_"; static char *kc_error_freelist = "freelist_"; static int kc_do_length_phylum #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, kc_enum_phyla kc_phylum ) #else (kc_p, kc_phylum) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; #endif { boolean kc_not_ready = True; int kc_length = 0; kc_enum_operators kc_prodsel; while(kc_not_ready) { /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),"kc_p",kc_phylum); kc_prodsel = ((casestring)kc_p)->prod_sel; if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].first_operator) { kc_not_ready=False; } else if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].last_operator) { kc_length++; kc_p = (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[1]); } else { kc_invalid_operator(kc_error_length, kc_phylum, __LINE__, __FILE__, (int)kc_prodsel);/*NOTREACHED*/ } } return kc_length; } static void kc_do_freelist_phylum #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, kc_enum_phyla kc_phylum ) #else (kc_p, kc_phylum) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; #endif { boolean kc_not_ready = True; kc_enum_operators kc_prodsel; kc_voidptr_t kc_tmp_p; while(kc_not_ready) { /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),"kc_p",kc_phylum); kc_prodsel = ((casestring)kc_p)->prod_sel; if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].first_operator) { kc_do_free_phylum(kc_p, False, kc_phylum); kc_not_ready=False; } else if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].last_operator) { kc_tmp_p = kc_p; kc_p = (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[1]); kc_do_free_phylum(kc_tmp_p, False, kc_phylum); } else { kc_invalid_operator(kc_error_freelist, kc_phylum, __LINE__, __FILE__, (int)kc_prodsel);/*NOTREACHED*/ } } } static kc_voidptr_t kc_do_concat_phylum #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p1, kc_voidptr_t kc_p2, kc_enum_phyla kc_phylum) #else (kc_p1, kc_p2, kc_phylum) kc_voidptr_t kc_p1, kc_p2; kc_enum_phyla kc_phylum; #endif { kc_enum_operators kc_prodsel; /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p1),"kc_p1",kc_phylum); kc_prodsel = ((casestring)kc_p1)->prod_sel; if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].first_operator) { return kc_p2; } else if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].last_operator) { return (kc_voidptr_t)(*kc_OperatorInfo[(int)kc_prodsel].create_routine)( kc_prodsel, (kc_voidptr_t)KC_SUBPHYLUM(kc_p1, kc_OperatorInfo[(int)kc_prodsel].suboffset[0]), kc_do_concat_phylum( (kc_voidptr_t)KC_SUBPHYLUM(kc_p1, kc_OperatorInfo[(int)kc_prodsel].suboffset[1]), kc_p2, kc_phylum ) ); } else { kc_invalid_operator(kc_error_concat, kc_phylum, __LINE__, __FILE__, (int)kc_prodsel);/*NOTREACHED*/return (kc_voidptr_t)0; } } static kc_voidptr_t kc_do_reverse_phylum #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, kc_enum_phyla kc_phylum) #else (kc_p, kc_phylum) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; #endif { boolean kc_not_ready = True; kc_enum_operators kc_prodsel; KC_PHYLUM_INFO *kc_phy_info = &kc_PhylumInfo[(int)kc_phylum]; KC_OPERATOR_INFO *kc_firstop_info = &kc_OperatorInfo[(int)kc_phy_info->first_operator]; KC_OPERATOR_INFO *kc_lastop_info = &kc_OperatorInfo[(int)kc_phy_info->last_operator]; kc_voidptr_t kc_tmp = (*kc_firstop_info->create_routine)(kc_phy_info->first_operator); while(kc_not_ready) { /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),"kc_p",kc_phylum); kc_prodsel = ((casestring)kc_p)->prod_sel; if (kc_prodsel == kc_phy_info->first_operator) { kc_not_ready=False; } else if (kc_prodsel == kc_phy_info->last_operator) { kc_tmp = (kc_voidptr_t)(*kc_lastop_info->create_routine)(kc_prodsel, (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_lastop_info->suboffset[0]), kc_tmp); kc_p = (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_lastop_info->suboffset[1]); } else { kc_invalid_operator(kc_error_reverse, kc_phylum, __LINE__, __FILE__, (int)kc_prodsel);/*NOTREACHED*/ } } return kc_tmp; } static kc_voidptr_t kc_do_last_phylum #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, kc_enum_phyla kc_phylum) #else (kc_p, kc_phylum) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; #endif { boolean kc_not_ready = True; kc_voidptr_t kc_tmp = (kc_voidptr_t)0; kc_enum_operators kc_prodsel; KC_PHYLUM_INFO *kc_phy_info = &kc_PhylumInfo[(int)kc_phylum]; KC_OPERATOR_INFO *kc_lastop_info = &kc_OperatorInfo[(int)kc_phy_info->last_operator]; /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),"kc_p",kc_phylum); if (((casestring)kc_p)->prod_sel == kc_phy_info->first_operator) { (void)fflush(stdout); (void)fprintf(stderr, kc_error_last_with_nil_argument, kc_phy_info->name, kc_phy_info->name); exit( 1 ); /*NOTREACHED*/ } while(kc_not_ready) { /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),"kc_p",kc_phylum); kc_prodsel = ((casestring)kc_p)->prod_sel; if (kc_prodsel == kc_phy_info->first_operator) { kc_not_ready=False; } else if (kc_prodsel == kc_phy_info->last_operator) { kc_tmp = (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_lastop_info->suboffset[0]); kc_p = (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_lastop_info->suboffset[1]); } else { kc_invalid_operator(kc_error_last, kc_phylum, __LINE__, __FILE__, (int)kc_prodsel);/*NOTREACHED*/ } } return kc_tmp; } static kc_voidptr_t kc_do_map_phylum #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, kc_voidptr_t (*kc_fp)(kc_voidptr_t), kc_enum_phyla kc_phylum) #else (kc_p, kc_fp, kc_phylum) kc_voidptr_t kc_p; kc_voidptr_t (*kc_fp)KC__P((kc_voidptr_t)); kc_enum_phyla kc_phylum; #endif { kc_enum_operators kc_prodsel; /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),"kc_p",kc_phylum); kc_prodsel = ((casestring)kc_p)->prod_sel; if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].first_operator) { return kc_p; } else if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].last_operator) { return (kc_voidptr_t)(*kc_OperatorInfo[(int)kc_prodsel].create_routine)( kc_prodsel, (*kc_fp)((kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[0])), kc_do_map_phylum((kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[1]), kc_fp, kc_phylum)); } else { kc_invalid_operator(kc_error_map, kc_phylum, __LINE__, __FILE__, (int)kc_prodsel);/*NOTREACHED*/return (kc_voidptr_t)0; } } static kc_voidptr_t kc_do_filter_phylum #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, boolean (*kc_fp)(kc_voidptr_t), kc_enum_phyla kc_phylum) #else (kc_p, kc_fp, kc_phylum) kc_voidptr_t kc_p; boolean (*kc_fp)KC__P((kc_voidptr_t)); kc_enum_phyla kc_phylum; #endif { kc_enum_operators kc_prodsel; /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),"kc_p",kc_phylum); kc_prodsel = ((casestring)kc_p)->prod_sel; if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].first_operator) { return kc_p; } else if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].last_operator) { if ((*kc_fp)((kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[0]))) { return (kc_voidptr_t)(*kc_OperatorInfo[(int)kc_prodsel].create_routine)( kc_prodsel, (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[0]), kc_do_filter_phylum((kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[1]), kc_fp, kc_phylum)); } else { return kc_do_filter_phylum((kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[1]), kc_fp, kc_phylum); } } else { kc_invalid_operator(kc_error_filter, kc_phylum, __LINE__, __FILE__, (int)kc_prodsel);/*NOTREACHED*/return (kc_voidptr_t)0; } } phylumdeclarations concat_phylumdeclarations #ifdef KC_USE_PROTOTYPES (phylumdeclarations kc_p1, phylumdeclarations kc_p2) #else (kc_p1, kc_p2) phylumdeclarations kc_p1, kc_p2; #endif { return (phylumdeclarations)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_phylumdeclarations ); } phylumdeclarations reverse_phylumdeclarations #ifdef KC_USE_PROTOTYPES (phylumdeclarations kc_p) #else (kc_p) phylumdeclarations kc_p; #endif { return (phylumdeclarations)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_phylumdeclarations ); } int length_phylumdeclarations #ifdef KC_USE_PROTOTYPES (phylumdeclarations kc_p) #else (kc_p) phylumdeclarations kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_phylumdeclarations ); } phylumdeclaration last_phylumdeclarations #ifdef KC_USE_PROTOTYPES (phylumdeclarations kc_p) #else (kc_p) phylumdeclarations kc_p; #endif { return (phylumdeclaration)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_phylumdeclarations ); } phylumdeclarations map_phylumdeclarations #ifdef KC_USE_PROTOTYPES (phylumdeclarations kc_p, phylumdeclaration (*kc_fp)(phylumdeclaration)) #else (kc_p, kc_fp) phylumdeclarations kc_p; phylumdeclaration (*kc_fp)KC__P((phylumdeclaration)); #endif { return (phylumdeclarations)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_phylumdeclarations ); } phylumdeclarations filter_phylumdeclarations #ifdef KC_USE_PROTOTYPES (phylumdeclarations kc_p, boolean (*kc_fp)(phylumdeclaration)) #else (kc_p, kc_fp) phylumdeclarations kc_p; boolean (*kc_fp)KC__P((phylumdeclaration)); #endif { return (phylumdeclarations)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_phylumdeclarations ); } void freelist_phylumdeclarations #ifdef KC_USE_PROTOTYPES (phylumdeclarations kc_p) #else (kc_p) phylumdeclarations kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_phylumdeclarations ); } phylumnames concat_phylumnames #ifdef KC_USE_PROTOTYPES (phylumnames kc_p1, phylumnames kc_p2) #else (kc_p1, kc_p2) phylumnames kc_p1, kc_p2; #endif { return (phylumnames)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_phylumnames ); } phylumnames reverse_phylumnames #ifdef KC_USE_PROTOTYPES (phylumnames kc_p) #else (kc_p) phylumnames kc_p; #endif { return (phylumnames)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_phylumnames ); } int length_phylumnames #ifdef KC_USE_PROTOTYPES (phylumnames kc_p) #else (kc_p) phylumnames kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_phylumnames ); } ID last_phylumnames #ifdef KC_USE_PROTOTYPES (phylumnames kc_p) #else (kc_p) phylumnames kc_p; #endif { return (ID)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_phylumnames ); } phylumnames map_phylumnames #ifdef KC_USE_PROTOTYPES (phylumnames kc_p, ID (*kc_fp)(ID)) #else (kc_p, kc_fp) phylumnames kc_p; ID (*kc_fp)KC__P((ID)); #endif { return (phylumnames)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_phylumnames ); } phylumnames filter_phylumnames #ifdef KC_USE_PROTOTYPES (phylumnames kc_p, boolean (*kc_fp)(ID)) #else (kc_p, kc_fp) phylumnames kc_p; boolean (*kc_fp)KC__P((ID)); #endif { return (phylumnames)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_phylumnames ); } void freelist_phylumnames #ifdef KC_USE_PROTOTYPES (phylumnames kc_p) #else (kc_p) phylumnames kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_phylumnames ); } storageclasses concat_storageclasses #ifdef KC_USE_PROTOTYPES (storageclasses kc_p1, storageclasses kc_p2) #else (kc_p1, kc_p2) storageclasses kc_p1, kc_p2; #endif { return (storageclasses)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_storageclasses ); } storageclasses reverse_storageclasses #ifdef KC_USE_PROTOTYPES (storageclasses kc_p) #else (kc_p) storageclasses kc_p; #endif { return (storageclasses)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_storageclasses ); } int length_storageclasses #ifdef KC_USE_PROTOTYPES (storageclasses kc_p) #else (kc_p) storageclasses kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_storageclasses ); } ID last_storageclasses #ifdef KC_USE_PROTOTYPES (storageclasses kc_p) #else (kc_p) storageclasses kc_p; #endif { return (ID)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_storageclasses ); } storageclasses map_storageclasses #ifdef KC_USE_PROTOTYPES (storageclasses kc_p, ID (*kc_fp)(ID)) #else (kc_p, kc_fp) storageclasses kc_p; ID (*kc_fp)KC__P((ID)); #endif { return (storageclasses)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_storageclasses ); } storageclasses filter_storageclasses #ifdef KC_USE_PROTOTYPES (storageclasses kc_p, boolean (*kc_fp)(ID)) #else (kc_p, kc_fp) storageclasses kc_p; boolean (*kc_fp)KC__P((ID)); #endif { return (storageclasses)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_storageclasses ); } void freelist_storageclasses #ifdef KC_USE_PROTOTYPES (storageclasses kc_p) #else (kc_p) storageclasses kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_storageclasses ); } alternatives concat_alternatives #ifdef KC_USE_PROTOTYPES (alternatives kc_p1, alternatives kc_p2) #else (kc_p1, kc_p2) alternatives kc_p1, kc_p2; #endif { return (alternatives)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_alternatives ); } alternatives reverse_alternatives #ifdef KC_USE_PROTOTYPES (alternatives kc_p) #else (kc_p) alternatives kc_p; #endif { return (alternatives)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_alternatives ); } int length_alternatives #ifdef KC_USE_PROTOTYPES (alternatives kc_p) #else (kc_p) alternatives kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_alternatives ); } alternative last_alternatives #ifdef KC_USE_PROTOTYPES (alternatives kc_p) #else (kc_p) alternatives kc_p; #endif { return (alternative)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_alternatives ); } alternatives map_alternatives #ifdef KC_USE_PROTOTYPES (alternatives kc_p, alternative (*kc_fp)(alternative)) #else (kc_p, kc_fp) alternatives kc_p; alternative (*kc_fp)KC__P((alternative)); #endif { return (alternatives)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_alternatives ); } alternatives filter_alternatives #ifdef KC_USE_PROTOTYPES (alternatives kc_p, boolean (*kc_fp)(alternative)) #else (kc_p, kc_fp) alternatives kc_p; boolean (*kc_fp)KC__P((alternative)); #endif { return (alternatives)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_alternatives ); } void freelist_alternatives #ifdef KC_USE_PROTOTYPES (alternatives kc_p) #else (kc_p) alternatives kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_alternatives ); } arguments concat_arguments #ifdef KC_USE_PROTOTYPES (arguments kc_p1, arguments kc_p2) #else (kc_p1, kc_p2) arguments kc_p1, kc_p2; #endif { return (arguments)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_arguments ); } arguments reverse_arguments #ifdef KC_USE_PROTOTYPES (arguments kc_p) #else (kc_p) arguments kc_p; #endif { return (arguments)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_arguments ); } int length_arguments #ifdef KC_USE_PROTOTYPES (arguments kc_p) #else (kc_p) arguments kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_arguments ); } ID last_arguments #ifdef KC_USE_PROTOTYPES (arguments kc_p) #else (kc_p) arguments kc_p; #endif { return (ID)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_arguments ); } arguments map_arguments #ifdef KC_USE_PROTOTYPES (arguments kc_p, ID (*kc_fp)(ID)) #else (kc_p, kc_fp) arguments kc_p; ID (*kc_fp)KC__P((ID)); #endif { return (arguments)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_arguments ); } arguments filter_arguments #ifdef KC_USE_PROTOTYPES (arguments kc_p, boolean (*kc_fp)(ID)) #else (kc_p, kc_fp) arguments kc_p; boolean (*kc_fp)KC__P((ID)); #endif { return (arguments)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_arguments ); } void freelist_arguments #ifdef KC_USE_PROTOTYPES (arguments kc_p) #else (kc_p) arguments kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_arguments ); } attributes concat_attributes #ifdef KC_USE_PROTOTYPES (attributes kc_p1, attributes kc_p2) #else (kc_p1, kc_p2) attributes kc_p1, kc_p2; #endif { return (attributes)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_attributes ); } attributes reverse_attributes #ifdef KC_USE_PROTOTYPES (attributes kc_p) #else (kc_p) attributes kc_p; #endif { return (attributes)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_attributes ); } int length_attributes #ifdef KC_USE_PROTOTYPES (attributes kc_p) #else (kc_p) attributes kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_attributes ); } attribute last_attributes #ifdef KC_USE_PROTOTYPES (attributes kc_p) #else (kc_p) attributes kc_p; #endif { return (attribute)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_attributes ); } attributes map_attributes #ifdef KC_USE_PROTOTYPES (attributes kc_p, attribute (*kc_fp)(attribute)) #else (kc_p, kc_fp) attributes kc_p; attribute (*kc_fp)KC__P((attribute)); #endif { return (attributes)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_attributes ); } attributes filter_attributes #ifdef KC_USE_PROTOTYPES (attributes kc_p, boolean (*kc_fp)(attribute)) #else (kc_p, kc_fp) attributes kc_p; boolean (*kc_fp)KC__P((attribute)); #endif { return (attributes)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_attributes ); } void freelist_attributes #ifdef KC_USE_PROTOTYPES (attributes kc_p) #else (kc_p) attributes kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_attributes ); } Cexpression concat_Cexpression #ifdef KC_USE_PROTOTYPES (Cexpression kc_p1, Cexpression kc_p2) #else (kc_p1, kc_p2) Cexpression kc_p1, kc_p2; #endif { return (Cexpression)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_Cexpression ); } Cexpression reverse_Cexpression #ifdef KC_USE_PROTOTYPES (Cexpression kc_p) #else (kc_p) Cexpression kc_p; #endif { return (Cexpression)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_Cexpression ); } int length_Cexpression #ifdef KC_USE_PROTOTYPES (Cexpression kc_p) #else (kc_p) Cexpression kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_Cexpression ); } Cexpression_elem last_Cexpression #ifdef KC_USE_PROTOTYPES (Cexpression kc_p) #else (kc_p) Cexpression kc_p; #endif { return (Cexpression_elem)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_Cexpression ); } Cexpression map_Cexpression #ifdef KC_USE_PROTOTYPES (Cexpression kc_p, Cexpression_elem (*kc_fp)(Cexpression_elem)) #else (kc_p, kc_fp) Cexpression kc_p; Cexpression_elem (*kc_fp)KC__P((Cexpression_elem)); #endif { return (Cexpression)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_Cexpression ); } Cexpression filter_Cexpression #ifdef KC_USE_PROTOTYPES (Cexpression kc_p, boolean (*kc_fp)(Cexpression_elem)) #else (kc_p, kc_fp) Cexpression kc_p; boolean (*kc_fp)KC__P((Cexpression_elem)); #endif { return (Cexpression)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_Cexpression ); } void freelist_Cexpression #ifdef KC_USE_PROTOTYPES (Cexpression kc_p) #else (kc_p) Cexpression kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_Cexpression ); } CexpressionDQ concat_CexpressionDQ #ifdef KC_USE_PROTOTYPES (CexpressionDQ kc_p1, CexpressionDQ kc_p2) #else (kc_p1, kc_p2) CexpressionDQ kc_p1, kc_p2; #endif { return (CexpressionDQ)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_CexpressionDQ ); } CexpressionDQ reverse_CexpressionDQ #ifdef KC_USE_PROTOTYPES (CexpressionDQ kc_p) #else (kc_p) CexpressionDQ kc_p; #endif { return (CexpressionDQ)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_CexpressionDQ ); } int length_CexpressionDQ #ifdef KC_USE_PROTOTYPES (CexpressionDQ kc_p) #else (kc_p) CexpressionDQ kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_CexpressionDQ ); } CexpressionDQ_elem last_CexpressionDQ #ifdef KC_USE_PROTOTYPES (CexpressionDQ kc_p) #else (kc_p) CexpressionDQ kc_p; #endif { return (CexpressionDQ_elem)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_CexpressionDQ ); } CexpressionDQ map_CexpressionDQ #ifdef KC_USE_PROTOTYPES (CexpressionDQ kc_p, CexpressionDQ_elem (*kc_fp)(CexpressionDQ_elem)) #else (kc_p, kc_fp) CexpressionDQ kc_p; CexpressionDQ_elem (*kc_fp)KC__P((CexpressionDQ_elem)); #endif { return (CexpressionDQ)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_CexpressionDQ ); } CexpressionDQ filter_CexpressionDQ #ifdef KC_USE_PROTOTYPES (CexpressionDQ kc_p, boolean (*kc_fp)(CexpressionDQ_elem)) #else (kc_p, kc_fp) CexpressionDQ kc_p; boolean (*kc_fp)KC__P((CexpressionDQ_elem)); #endif { return (CexpressionDQ)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_CexpressionDQ ); } void freelist_CexpressionDQ #ifdef KC_USE_PROTOTYPES (CexpressionDQ kc_p) #else (kc_p) CexpressionDQ kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_CexpressionDQ ); } CexpressionSQ concat_CexpressionSQ #ifdef KC_USE_PROTOTYPES (CexpressionSQ kc_p1, CexpressionSQ kc_p2) #else (kc_p1, kc_p2) CexpressionSQ kc_p1, kc_p2; #endif { return (CexpressionSQ)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_CexpressionSQ ); } CexpressionSQ reverse_CexpressionSQ #ifdef KC_USE_PROTOTYPES (CexpressionSQ kc_p) #else (kc_p) CexpressionSQ kc_p; #endif { return (CexpressionSQ)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_CexpressionSQ ); } int length_CexpressionSQ #ifdef KC_USE_PROTOTYPES (CexpressionSQ kc_p) #else (kc_p) CexpressionSQ kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_CexpressionSQ ); } CexpressionSQ_elem last_CexpressionSQ #ifdef KC_USE_PROTOTYPES (CexpressionSQ kc_p) #else (kc_p) CexpressionSQ kc_p; #endif { return (CexpressionSQ_elem)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_CexpressionSQ ); } CexpressionSQ map_CexpressionSQ #ifdef KC_USE_PROTOTYPES (CexpressionSQ kc_p, CexpressionSQ_elem (*kc_fp)(CexpressionSQ_elem)) #else (kc_p, kc_fp) CexpressionSQ kc_p; CexpressionSQ_elem (*kc_fp)KC__P((CexpressionSQ_elem)); #endif { return (CexpressionSQ)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_CexpressionSQ ); } CexpressionSQ filter_CexpressionSQ #ifdef KC_USE_PROTOTYPES (CexpressionSQ kc_p, boolean (*kc_fp)(CexpressionSQ_elem)) #else (kc_p, kc_fp) CexpressionSQ kc_p; boolean (*kc_fp)KC__P((CexpressionSQ_elem)); #endif { return (CexpressionSQ)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_CexpressionSQ ); } void freelist_CexpressionSQ #ifdef KC_USE_PROTOTYPES (CexpressionSQ kc_p) #else (kc_p) CexpressionSQ kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_CexpressionSQ ); } idCexpressions concat_idCexpressions #ifdef KC_USE_PROTOTYPES (idCexpressions kc_p1, idCexpressions kc_p2) #else (kc_p1, kc_p2) idCexpressions kc_p1, kc_p2; #endif { return (idCexpressions)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_idCexpressions ); } idCexpressions reverse_idCexpressions #ifdef KC_USE_PROTOTYPES (idCexpressions kc_p) #else (kc_p) idCexpressions kc_p; #endif { return (idCexpressions)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_idCexpressions ); } int length_idCexpressions #ifdef KC_USE_PROTOTYPES (idCexpressions kc_p) #else (kc_p) idCexpressions kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_idCexpressions ); } idCexpression last_idCexpressions #ifdef KC_USE_PROTOTYPES (idCexpressions kc_p) #else (kc_p) idCexpressions kc_p; #endif { return (idCexpression)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_idCexpressions ); } idCexpressions map_idCexpressions #ifdef KC_USE_PROTOTYPES (idCexpressions kc_p, idCexpression (*kc_fp)(idCexpression)) #else (kc_p, kc_fp) idCexpressions kc_p; idCexpression (*kc_fp)KC__P((idCexpression)); #endif { return (idCexpressions)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_idCexpressions ); } idCexpressions filter_idCexpressions #ifdef KC_USE_PROTOTYPES (idCexpressions kc_p, boolean (*kc_fp)(idCexpression)) #else (kc_p, kc_fp) idCexpressions kc_p; boolean (*kc_fp)KC__P((idCexpression)); #endif { return (idCexpressions)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_idCexpressions ); } void freelist_idCexpressions #ifdef KC_USE_PROTOTYPES (idCexpressions kc_p) #else (kc_p) idCexpressions kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_idCexpressions ); } Ctexts concat_Ctexts #ifdef KC_USE_PROTOTYPES (Ctexts kc_p1, Ctexts kc_p2) #else (kc_p1, kc_p2) Ctexts kc_p1, kc_p2; #endif { return (Ctexts)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_Ctexts ); } Ctexts reverse_Ctexts #ifdef KC_USE_PROTOTYPES (Ctexts kc_p) #else (kc_p) Ctexts kc_p; #endif { return (Ctexts)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_Ctexts ); } int length_Ctexts #ifdef KC_USE_PROTOTYPES (Ctexts kc_p) #else (kc_p) Ctexts kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_Ctexts ); } Ctext last_Ctexts #ifdef KC_USE_PROTOTYPES (Ctexts kc_p) #else (kc_p) Ctexts kc_p; #endif { return (Ctext)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_Ctexts ); } Ctexts map_Ctexts #ifdef KC_USE_PROTOTYPES (Ctexts kc_p, Ctext (*kc_fp)(Ctext)) #else (kc_p, kc_fp) Ctexts kc_p; Ctext (*kc_fp)KC__P((Ctext)); #endif { return (Ctexts)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_Ctexts ); } Ctexts filter_Ctexts #ifdef KC_USE_PROTOTYPES (Ctexts kc_p, boolean (*kc_fp)(Ctext)) #else (kc_p, kc_fp) Ctexts kc_p; boolean (*kc_fp)KC__P((Ctext)); #endif { return (Ctexts)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_Ctexts ); } void freelist_Ctexts #ifdef KC_USE_PROTOTYPES (Ctexts kc_p) #else (kc_p) Ctexts kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_Ctexts ); } includefiles concat_includefiles #ifdef KC_USE_PROTOTYPES (includefiles kc_p1, includefiles kc_p2) #else (kc_p1, kc_p2) includefiles kc_p1, kc_p2; #endif { return (includefiles)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_includefiles ); } includefiles reverse_includefiles #ifdef KC_USE_PROTOTYPES (includefiles kc_p) #else (kc_p) includefiles kc_p; #endif { return (includefiles)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_includefiles ); } int length_includefiles #ifdef KC_USE_PROTOTYPES (includefiles kc_p) #else (kc_p) includefiles kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_includefiles ); } includefile last_includefiles #ifdef KC_USE_PROTOTYPES (includefiles kc_p) #else (kc_p) includefiles kc_p; #endif { return (includefile)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_includefiles ); } includefiles map_includefiles #ifdef KC_USE_PROTOTYPES (includefiles kc_p, includefile (*kc_fp)(includefile)) #else (kc_p, kc_fp) includefiles kc_p; includefile (*kc_fp)KC__P((includefile)); #endif { return (includefiles)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_includefiles ); } includefiles filter_includefiles #ifdef KC_USE_PROTOTYPES (includefiles kc_p, boolean (*kc_fp)(includefile)) #else (kc_p, kc_fp) includefiles kc_p; boolean (*kc_fp)KC__P((includefile)); #endif { return (includefiles)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_includefiles ); } void freelist_includefiles #ifdef KC_USE_PROTOTYPES (includefiles kc_p) #else (kc_p) includefiles kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_includefiles ); } includedeclarations concat_includedeclarations #ifdef KC_USE_PROTOTYPES (includedeclarations kc_p1, includedeclarations kc_p2) #else (kc_p1, kc_p2) includedeclarations kc_p1, kc_p2; #endif { return (includedeclarations)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_includedeclarations ); } includedeclarations reverse_includedeclarations #ifdef KC_USE_PROTOTYPES (includedeclarations kc_p) #else (kc_p) includedeclarations kc_p; #endif { return (includedeclarations)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_includedeclarations ); } int length_includedeclarations #ifdef KC_USE_PROTOTYPES (includedeclarations kc_p) #else (kc_p) includedeclarations kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_includedeclarations ); } includedeclaration last_includedeclarations #ifdef KC_USE_PROTOTYPES (includedeclarations kc_p) #else (kc_p) includedeclarations kc_p; #endif { return (includedeclaration)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_includedeclarations ); } includedeclarations map_includedeclarations #ifdef KC_USE_PROTOTYPES (includedeclarations kc_p, includedeclaration (*kc_fp)(includedeclaration)) #else (kc_p, kc_fp) includedeclarations kc_p; includedeclaration (*kc_fp)KC__P((includedeclaration)); #endif { return (includedeclarations)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_includedeclarations ); } includedeclarations filter_includedeclarations #ifdef KC_USE_PROTOTYPES (includedeclarations kc_p, boolean (*kc_fp)(includedeclaration)) #else (kc_p, kc_fp) includedeclarations kc_p; boolean (*kc_fp)KC__P((includedeclaration)); #endif { return (includedeclarations)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_includedeclarations ); } void freelist_includedeclarations #ifdef KC_USE_PROTOTYPES (includedeclarations kc_p) #else (kc_p) includedeclarations kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_includedeclarations ); } includes concat_includes #ifdef KC_USE_PROTOTYPES (includes kc_p1, includes kc_p2) #else (kc_p1, kc_p2) includes kc_p1, kc_p2; #endif { return (includes)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_includes ); } includes reverse_includes #ifdef KC_USE_PROTOTYPES (includes kc_p) #else (kc_p) includes kc_p; #endif { return (includes)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_includes ); } int length_includes #ifdef KC_USE_PROTOTYPES (includes kc_p) #else (kc_p) includes kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_includes ); } include last_includes #ifdef KC_USE_PROTOTYPES (includes kc_p) #else (kc_p) includes kc_p; #endif { return (include)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_includes ); } includes map_includes #ifdef KC_USE_PROTOTYPES (includes kc_p, include (*kc_fp)(include)) #else (kc_p, kc_fp) includes kc_p; include (*kc_fp)KC__P((include)); #endif { return (includes)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_includes ); } includes filter_includes #ifdef KC_USE_PROTOTYPES (includes kc_p, boolean (*kc_fp)(include)) #else (kc_p, kc_fp) includes kc_p; boolean (*kc_fp)KC__P((include)); #endif { return (includes)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_includes ); } void freelist_includes #ifdef KC_USE_PROTOTYPES (includes kc_p) #else (kc_p) includes kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_includes ); } rwdeclarations concat_rwdeclarations #ifdef KC_USE_PROTOTYPES (rwdeclarations kc_p1, rwdeclarations kc_p2) #else (kc_p1, kc_p2) rwdeclarations kc_p1, kc_p2; #endif { return (rwdeclarations)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_rwdeclarations ); } rwdeclarations reverse_rwdeclarations #ifdef KC_USE_PROTOTYPES (rwdeclarations kc_p) #else (kc_p) rwdeclarations kc_p; #endif { return (rwdeclarations)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_rwdeclarations ); } int length_rwdeclarations #ifdef KC_USE_PROTOTYPES (rwdeclarations kc_p) #else (kc_p) rwdeclarations kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_rwdeclarations ); } rwdeclaration last_rwdeclarations #ifdef KC_USE_PROTOTYPES (rwdeclarations kc_p) #else (kc_p) rwdeclarations kc_p; #endif { return (rwdeclaration)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_rwdeclarations ); } rwdeclarations map_rwdeclarations #ifdef KC_USE_PROTOTYPES (rwdeclarations kc_p, rwdeclaration (*kc_fp)(rwdeclaration)) #else (kc_p, kc_fp) rwdeclarations kc_p; rwdeclaration (*kc_fp)KC__P((rwdeclaration)); #endif { return (rwdeclarations)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_rwdeclarations ); } rwdeclarations filter_rwdeclarations #ifdef KC_USE_PROTOTYPES (rwdeclarations kc_p, boolean (*kc_fp)(rwdeclaration)) #else (kc_p, kc_fp) rwdeclarations kc_p; boolean (*kc_fp)KC__P((rwdeclaration)); #endif { return (rwdeclarations)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_rwdeclarations ); } void freelist_rwdeclarations #ifdef KC_USE_PROTOTYPES (rwdeclarations kc_p) #else (kc_p) rwdeclarations kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_rwdeclarations ); } rewriteclauses concat_rewriteclauses #ifdef KC_USE_PROTOTYPES (rewriteclauses kc_p1, rewriteclauses kc_p2) #else (kc_p1, kc_p2) rewriteclauses kc_p1, kc_p2; #endif { return (rewriteclauses)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_rewriteclauses ); } rewriteclauses reverse_rewriteclauses #ifdef KC_USE_PROTOTYPES (rewriteclauses kc_p) #else (kc_p) rewriteclauses kc_p; #endif { return (rewriteclauses)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_rewriteclauses ); } int length_rewriteclauses #ifdef KC_USE_PROTOTYPES (rewriteclauses kc_p) #else (kc_p) rewriteclauses kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_rewriteclauses ); } rewriteclause last_rewriteclauses #ifdef KC_USE_PROTOTYPES (rewriteclauses kc_p) #else (kc_p) rewriteclauses kc_p; #endif { return (rewriteclause)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_rewriteclauses ); } rewriteclauses map_rewriteclauses #ifdef KC_USE_PROTOTYPES (rewriteclauses kc_p, rewriteclause (*kc_fp)(rewriteclause)) #else (kc_p, kc_fp) rewriteclauses kc_p; rewriteclause (*kc_fp)KC__P((rewriteclause)); #endif { return (rewriteclauses)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_rewriteclauses ); } rewriteclauses filter_rewriteclauses #ifdef KC_USE_PROTOTYPES (rewriteclauses kc_p, boolean (*kc_fp)(rewriteclause)) #else (kc_p, kc_fp) rewriteclauses kc_p; boolean (*kc_fp)KC__P((rewriteclause)); #endif { return (rewriteclauses)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_rewriteclauses ); } void freelist_rewriteclauses #ifdef KC_USE_PROTOTYPES (rewriteclauses kc_p) #else (kc_p) rewriteclauses kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_rewriteclauses ); } patternchains concat_patternchains #ifdef KC_USE_PROTOTYPES (patternchains kc_p1, patternchains kc_p2) #else (kc_p1, kc_p2) patternchains kc_p1, kc_p2; #endif { return (patternchains)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_patternchains ); } patternchains reverse_patternchains #ifdef KC_USE_PROTOTYPES (patternchains kc_p) #else (kc_p) patternchains kc_p; #endif { return (patternchains)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_patternchains ); } int length_patternchains #ifdef KC_USE_PROTOTYPES (patternchains kc_p) #else (kc_p) patternchains kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_patternchains ); } patternchain last_patternchains #ifdef KC_USE_PROTOTYPES (patternchains kc_p) #else (kc_p) patternchains kc_p; #endif { return (patternchain)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_patternchains ); } patternchains map_patternchains #ifdef KC_USE_PROTOTYPES (patternchains kc_p, patternchain (*kc_fp)(patternchain)) #else (kc_p, kc_fp) patternchains kc_p; patternchain (*kc_fp)KC__P((patternchain)); #endif { return (patternchains)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_patternchains ); } patternchains filter_patternchains #ifdef KC_USE_PROTOTYPES (patternchains kc_p, boolean (*kc_fp)(patternchain)) #else (kc_p, kc_fp) patternchains kc_p; boolean (*kc_fp)KC__P((patternchain)); #endif { return (patternchains)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_patternchains ); } void freelist_patternchains #ifdef KC_USE_PROTOTYPES (patternchains kc_p) #else (kc_p) patternchains kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_patternchains ); } patternchain concat_patternchain #ifdef KC_USE_PROTOTYPES (patternchain kc_p1, patternchain kc_p2) #else (kc_p1, kc_p2) patternchain kc_p1, kc_p2; #endif { return (patternchain)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_patternchain ); } patternchain reverse_patternchain #ifdef KC_USE_PROTOTYPES (patternchain kc_p) #else (kc_p) patternchain kc_p; #endif { return (patternchain)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_patternchain ); } int length_patternchain #ifdef KC_USE_PROTOTYPES (patternchain kc_p) #else (kc_p) patternchain kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_patternchain ); } patternchainitem last_patternchain #ifdef KC_USE_PROTOTYPES (patternchain kc_p) #else (kc_p) patternchain kc_p; #endif { return (patternchainitem)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_patternchain ); } patternchain map_patternchain #ifdef KC_USE_PROTOTYPES (patternchain kc_p, patternchainitem (*kc_fp)(patternchainitem)) #else (kc_p, kc_fp) patternchain kc_p; patternchainitem (*kc_fp)KC__P((patternchainitem)); #endif { return (patternchain)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_patternchain ); } patternchain filter_patternchain #ifdef KC_USE_PROTOTYPES (patternchain kc_p, boolean (*kc_fp)(patternchainitem)) #else (kc_p, kc_fp) patternchain kc_p; boolean (*kc_fp)KC__P((patternchainitem)); #endif { return (patternchain)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_patternchain ); } void freelist_patternchain #ifdef KC_USE_PROTOTYPES (patternchain kc_p) #else (kc_p) patternchain kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_patternchain ); } outmostpatterns concat_outmostpatterns #ifdef KC_USE_PROTOTYPES (outmostpatterns kc_p1, outmostpatterns kc_p2) #else (kc_p1, kc_p2) outmostpatterns kc_p1, kc_p2; #endif { return (outmostpatterns)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_outmostpatterns ); } outmostpatterns reverse_outmostpatterns #ifdef KC_USE_PROTOTYPES (outmostpatterns kc_p) #else (kc_p) outmostpatterns kc_p; #endif { return (outmostpatterns)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_outmostpatterns ); } int length_outmostpatterns #ifdef KC_USE_PROTOTYPES (outmostpatterns kc_p) #else (kc_p) outmostpatterns kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_outmostpatterns ); } outmostpattern last_outmostpatterns #ifdef KC_USE_PROTOTYPES (outmostpatterns kc_p) #else (kc_p) outmostpatterns kc_p; #endif { return (outmostpattern)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_outmostpatterns ); } outmostpatterns map_outmostpatterns #ifdef KC_USE_PROTOTYPES (outmostpatterns kc_p, outmostpattern (*kc_fp)(outmostpattern)) #else (kc_p, kc_fp) outmostpatterns kc_p; outmostpattern (*kc_fp)KC__P((outmostpattern)); #endif { return (outmostpatterns)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_outmostpatterns ); } outmostpatterns filter_outmostpatterns #ifdef KC_USE_PROTOTYPES (outmostpatterns kc_p, boolean (*kc_fp)(outmostpattern)) #else (kc_p, kc_fp) outmostpatterns kc_p; boolean (*kc_fp)KC__P((outmostpattern)); #endif { return (outmostpatterns)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_outmostpatterns ); } void freelist_outmostpatterns #ifdef KC_USE_PROTOTYPES (outmostpatterns kc_p) #else (kc_p) outmostpatterns kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_outmostpatterns ); } patterns concat_patterns #ifdef KC_USE_PROTOTYPES (patterns kc_p1, patterns kc_p2) #else (kc_p1, kc_p2) patterns kc_p1, kc_p2; #endif { return (patterns)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_patterns ); } patterns reverse_patterns #ifdef KC_USE_PROTOTYPES (patterns kc_p) #else (kc_p) patterns kc_p; #endif { return (patterns)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_patterns ); } int length_patterns #ifdef KC_USE_PROTOTYPES (patterns kc_p) #else (kc_p) patterns kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_patterns ); } pattern last_patterns #ifdef KC_USE_PROTOTYPES (patterns kc_p) #else (kc_p) patterns kc_p; #endif { return (pattern)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_patterns ); } patterns map_patterns #ifdef KC_USE_PROTOTYPES (patterns kc_p, pattern (*kc_fp)(pattern)) #else (kc_p, kc_fp) patterns kc_p; pattern (*kc_fp)KC__P((pattern)); #endif { return (patterns)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_patterns ); } patterns filter_patterns #ifdef KC_USE_PROTOTYPES (patterns kc_p, boolean (*kc_fp)(pattern)) #else (kc_p, kc_fp) patterns kc_p; boolean (*kc_fp)KC__P((pattern)); #endif { return (patterns)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_patterns ); } void freelist_patterns #ifdef KC_USE_PROTOTYPES (patterns kc_p) #else (kc_p) patterns kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_patterns ); } terms concat_terms #ifdef KC_USE_PROTOTYPES (terms kc_p1, terms kc_p2) #else (kc_p1, kc_p2) terms kc_p1, kc_p2; #endif { return (terms)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_terms ); } terms reverse_terms #ifdef KC_USE_PROTOTYPES (terms kc_p) #else (kc_p) terms kc_p; #endif { return (terms)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_terms ); } int length_terms #ifdef KC_USE_PROTOTYPES (terms kc_p) #else (kc_p) terms kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_terms ); } term last_terms #ifdef KC_USE_PROTOTYPES (terms kc_p) #else (kc_p) terms kc_p; #endif { return (term)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_terms ); } terms map_terms #ifdef KC_USE_PROTOTYPES (terms kc_p, term (*kc_fp)(term)) #else (kc_p, kc_fp) terms kc_p; term (*kc_fp)KC__P((term)); #endif { return (terms)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_terms ); } terms filter_terms #ifdef KC_USE_PROTOTYPES (terms kc_p, boolean (*kc_fp)(term)) #else (kc_p, kc_fp) terms kc_p; boolean (*kc_fp)KC__P((term)); #endif { return (terms)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_terms ); } void freelist_terms #ifdef KC_USE_PROTOTYPES (terms kc_p) #else (kc_p) terms kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_terms ); } fnfiles concat_fnfiles #ifdef KC_USE_PROTOTYPES (fnfiles kc_p1, fnfiles kc_p2) #else (kc_p1, kc_p2) fnfiles kc_p1, kc_p2; #endif { return (fnfiles)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_fnfiles ); } fnfiles reverse_fnfiles #ifdef KC_USE_PROTOTYPES (fnfiles kc_p) #else (kc_p) fnfiles kc_p; #endif { return (fnfiles)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_fnfiles ); } int length_fnfiles #ifdef KC_USE_PROTOTYPES (fnfiles kc_p) #else (kc_p) fnfiles kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_fnfiles ); } fnfile last_fnfiles #ifdef KC_USE_PROTOTYPES (fnfiles kc_p) #else (kc_p) fnfiles kc_p; #endif { return (fnfile)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_fnfiles ); } fnfiles map_fnfiles #ifdef KC_USE_PROTOTYPES (fnfiles kc_p, fnfile (*kc_fp)(fnfile)) #else (kc_p, kc_fp) fnfiles kc_p; fnfile (*kc_fp)KC__P((fnfile)); #endif { return (fnfiles)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_fnfiles ); } fnfiles filter_fnfiles #ifdef KC_USE_PROTOTYPES (fnfiles kc_p, boolean (*kc_fp)(fnfile)) #else (kc_p, kc_fp) fnfiles kc_p; boolean (*kc_fp)KC__P((fnfile)); #endif { return (fnfiles)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_fnfiles ); } void freelist_fnfiles #ifdef KC_USE_PROTOTYPES (fnfiles kc_p) #else (kc_p) fnfiles kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_fnfiles ); } fndeclarations concat_fndeclarations #ifdef KC_USE_PROTOTYPES (fndeclarations kc_p1, fndeclarations kc_p2) #else (kc_p1, kc_p2) fndeclarations kc_p1, kc_p2; #endif { return (fndeclarations)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_fndeclarations ); } fndeclarations reverse_fndeclarations #ifdef KC_USE_PROTOTYPES (fndeclarations kc_p) #else (kc_p) fndeclarations kc_p; #endif { return (fndeclarations)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_fndeclarations ); } int length_fndeclarations #ifdef KC_USE_PROTOTYPES (fndeclarations kc_p) #else (kc_p) fndeclarations kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_fndeclarations ); } fndeclaration last_fndeclarations #ifdef KC_USE_PROTOTYPES (fndeclarations kc_p) #else (kc_p) fndeclarations kc_p; #endif { return (fndeclaration)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_fndeclarations ); } fndeclarations map_fndeclarations #ifdef KC_USE_PROTOTYPES (fndeclarations kc_p, fndeclaration (*kc_fp)(fndeclaration)) #else (kc_p, kc_fp) fndeclarations kc_p; fndeclaration (*kc_fp)KC__P((fndeclaration)); #endif { return (fndeclarations)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_fndeclarations ); } fndeclarations filter_fndeclarations #ifdef KC_USE_PROTOTYPES (fndeclarations kc_p, boolean (*kc_fp)(fndeclaration)) #else (kc_p, kc_fp) fndeclarations kc_p; boolean (*kc_fp)KC__P((fndeclaration)); #endif { return (fndeclarations)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_fndeclarations ); } void freelist_fndeclarations #ifdef KC_USE_PROTOTYPES (fndeclarations kc_p) #else (kc_p) fndeclarations kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_fndeclarations ); } fnarguments concat_fnarguments #ifdef KC_USE_PROTOTYPES (fnarguments kc_p1, fnarguments kc_p2) #else (kc_p1, kc_p2) fnarguments kc_p1, kc_p2; #endif { return (fnarguments)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_fnarguments ); } fnarguments reverse_fnarguments #ifdef KC_USE_PROTOTYPES (fnarguments kc_p) #else (kc_p) fnarguments kc_p; #endif { return (fnarguments)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_fnarguments ); } int length_fnarguments #ifdef KC_USE_PROTOTYPES (fnarguments kc_p) #else (kc_p) fnarguments kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_fnarguments ); } ID last_fnarguments #ifdef KC_USE_PROTOTYPES (fnarguments kc_p) #else (kc_p) fnarguments kc_p; #endif { return (ID)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_fnarguments ); } fnarguments map_fnarguments #ifdef KC_USE_PROTOTYPES (fnarguments kc_p, ID (*kc_fp)(ID)) #else (kc_p, kc_fp) fnarguments kc_p; ID (*kc_fp)KC__P((ID)); #endif { return (fnarguments)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_fnarguments ); } fnarguments filter_fnarguments #ifdef KC_USE_PROTOTYPES (fnarguments kc_p, boolean (*kc_fp)(ID)) #else (kc_p, kc_fp) fnarguments kc_p; boolean (*kc_fp)KC__P((ID)); #endif { return (fnarguments)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_fnarguments ); } void freelist_fnarguments #ifdef KC_USE_PROTOTYPES (fnarguments kc_p) #else (kc_p) fnarguments kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_fnarguments ); } Cvariabledeclarations concat_Cvariabledeclarations #ifdef KC_USE_PROTOTYPES (Cvariabledeclarations kc_p1, Cvariabledeclarations kc_p2) #else (kc_p1, kc_p2) Cvariabledeclarations kc_p1, kc_p2; #endif { return (Cvariabledeclarations)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_Cvariabledeclarations ); } Cvariabledeclarations reverse_Cvariabledeclarations #ifdef KC_USE_PROTOTYPES (Cvariabledeclarations kc_p) #else (kc_p) Cvariabledeclarations kc_p; #endif { return (Cvariabledeclarations)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_Cvariabledeclarations ); } int length_Cvariabledeclarations #ifdef KC_USE_PROTOTYPES (Cvariabledeclarations kc_p) #else (kc_p) Cvariabledeclarations kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_Cvariabledeclarations ); } Cvariabledeclaration last_Cvariabledeclarations #ifdef KC_USE_PROTOTYPES (Cvariabledeclarations kc_p) #else (kc_p) Cvariabledeclarations kc_p; #endif { return (Cvariabledeclaration)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_Cvariabledeclarations ); } Cvariabledeclarations map_Cvariabledeclarations #ifdef KC_USE_PROTOTYPES (Cvariabledeclarations kc_p, Cvariabledeclaration (*kc_fp)(Cvariabledeclaration)) #else (kc_p, kc_fp) Cvariabledeclarations kc_p; Cvariabledeclaration (*kc_fp)KC__P((Cvariabledeclaration)); #endif { return (Cvariabledeclarations)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_Cvariabledeclarations ); } Cvariabledeclarations filter_Cvariabledeclarations #ifdef KC_USE_PROTOTYPES (Cvariabledeclarations kc_p, boolean (*kc_fp)(Cvariabledeclaration)) #else (kc_p, kc_fp) Cvariabledeclarations kc_p; boolean (*kc_fp)KC__P((Cvariabledeclaration)); #endif { return (Cvariabledeclarations)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_Cvariabledeclarations ); } void freelist_Cvariabledeclarations #ifdef KC_USE_PROTOTYPES (Cvariabledeclarations kc_p) #else (kc_p) Cvariabledeclarations kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_Cvariabledeclarations ); } Cvariables concat_Cvariables #ifdef KC_USE_PROTOTYPES (Cvariables kc_p1, Cvariables kc_p2) #else (kc_p1, kc_p2) Cvariables kc_p1, kc_p2; #endif { return (Cvariables)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_Cvariables ); } Cvariables reverse_Cvariables #ifdef KC_USE_PROTOTYPES (Cvariables kc_p) #else (kc_p) Cvariables kc_p; #endif { return (Cvariables)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_Cvariables ); } int length_Cvariables #ifdef KC_USE_PROTOTYPES (Cvariables kc_p) #else (kc_p) Cvariables kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_Cvariables ); } Cvariable last_Cvariables #ifdef KC_USE_PROTOTYPES (Cvariables kc_p) #else (kc_p) Cvariables kc_p; #endif { return (Cvariable)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_Cvariables ); } Cvariables map_Cvariables #ifdef KC_USE_PROTOTYPES (Cvariables kc_p, Cvariable (*kc_fp)(Cvariable)) #else (kc_p, kc_fp) Cvariables kc_p; Cvariable (*kc_fp)KC__P((Cvariable)); #endif { return (Cvariables)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_Cvariables ); } Cvariables filter_Cvariables #ifdef KC_USE_PROTOTYPES (Cvariables kc_p, boolean (*kc_fp)(Cvariable)) #else (kc_p, kc_fp) Cvariables kc_p; boolean (*kc_fp)KC__P((Cvariable)); #endif { return (Cvariables)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_Cvariables ); } void freelist_Cvariables #ifdef KC_USE_PROTOTYPES (Cvariables kc_p) #else (kc_p) Cvariables kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_Cvariables ); } Ctext concat_Ctext #ifdef KC_USE_PROTOTYPES (Ctext kc_p1, Ctext kc_p2) #else (kc_p1, kc_p2) Ctext kc_p1, kc_p2; #endif { return (Ctext)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_Ctext ); } Ctext reverse_Ctext #ifdef KC_USE_PROTOTYPES (Ctext kc_p) #else (kc_p) Ctext kc_p; #endif { return (Ctext)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_Ctext ); } int length_Ctext #ifdef KC_USE_PROTOTYPES (Ctext kc_p) #else (kc_p) Ctext kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_Ctext ); } Ctext_elem last_Ctext #ifdef KC_USE_PROTOTYPES (Ctext kc_p) #else (kc_p) Ctext kc_p; #endif { return (Ctext_elem)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_Ctext ); } Ctext map_Ctext #ifdef KC_USE_PROTOTYPES (Ctext kc_p, Ctext_elem (*kc_fp)(Ctext_elem)) #else (kc_p, kc_fp) Ctext kc_p; Ctext_elem (*kc_fp)KC__P((Ctext_elem)); #endif { return (Ctext)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_Ctext ); } Ctext filter_Ctext #ifdef KC_USE_PROTOTYPES (Ctext kc_p, boolean (*kc_fp)(Ctext_elem)) #else (kc_p, kc_fp) Ctext kc_p; boolean (*kc_fp)KC__P((Ctext_elem)); #endif { return (Ctext)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_Ctext ); } void freelist_Ctext #ifdef KC_USE_PROTOTYPES (Ctext kc_p) #else (kc_p) Ctext kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_Ctext ); } withexpressions concat_withexpressions #ifdef KC_USE_PROTOTYPES (withexpressions kc_p1, withexpressions kc_p2) #else (kc_p1, kc_p2) withexpressions kc_p1, kc_p2; #endif { return (withexpressions)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_withexpressions ); } withexpressions reverse_withexpressions #ifdef KC_USE_PROTOTYPES (withexpressions kc_p) #else (kc_p) withexpressions kc_p; #endif { return (withexpressions)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_withexpressions ); } int length_withexpressions #ifdef KC_USE_PROTOTYPES (withexpressions kc_p) #else (kc_p) withexpressions kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_withexpressions ); } withexpression last_withexpressions #ifdef KC_USE_PROTOTYPES (withexpressions kc_p) #else (kc_p) withexpressions kc_p; #endif { return (withexpression)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_withexpressions ); } withexpressions map_withexpressions #ifdef KC_USE_PROTOTYPES (withexpressions kc_p, withexpression (*kc_fp)(withexpression)) #else (kc_p, kc_fp) withexpressions kc_p; withexpression (*kc_fp)KC__P((withexpression)); #endif { return (withexpressions)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_withexpressions ); } withexpressions filter_withexpressions #ifdef KC_USE_PROTOTYPES (withexpressions kc_p, boolean (*kc_fp)(withexpression)) #else (kc_p, kc_fp) withexpressions kc_p; boolean (*kc_fp)KC__P((withexpression)); #endif { return (withexpressions)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_withexpressions ); } void freelist_withexpressions #ifdef KC_USE_PROTOTYPES (withexpressions kc_p) #else (kc_p) withexpressions kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_withexpressions ); } withcases concat_withcases #ifdef KC_USE_PROTOTYPES (withcases kc_p1, withcases kc_p2) #else (kc_p1, kc_p2) withcases kc_p1, kc_p2; #endif { return (withcases)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_withcases ); } withcases reverse_withcases #ifdef KC_USE_PROTOTYPES (withcases kc_p) #else (kc_p) withcases kc_p; #endif { return (withcases)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_withcases ); } int length_withcases #ifdef KC_USE_PROTOTYPES (withcases kc_p) #else (kc_p) withcases kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_withcases ); } withcase last_withcases #ifdef KC_USE_PROTOTYPES (withcases kc_p) #else (kc_p) withcases kc_p; #endif { return (withcase)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_withcases ); } withcases map_withcases #ifdef KC_USE_PROTOTYPES (withcases kc_p, withcase (*kc_fp)(withcase)) #else (kc_p, kc_fp) withcases kc_p; withcase (*kc_fp)KC__P((withcase)); #endif { return (withcases)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_withcases ); } withcases filter_withcases #ifdef KC_USE_PROTOTYPES (withcases kc_p, boolean (*kc_fp)(withcase)) #else (kc_p, kc_fp) withcases kc_p; boolean (*kc_fp)KC__P((withcase)); #endif { return (withcases)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_withcases ); } void freelist_withcases #ifdef KC_USE_PROTOTYPES (withcases kc_p) #else (kc_p) withcases kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_withcases ); } unparsedeclarations concat_unparsedeclarations #ifdef KC_USE_PROTOTYPES (unparsedeclarations kc_p1, unparsedeclarations kc_p2) #else (kc_p1, kc_p2) unparsedeclarations kc_p1, kc_p2; #endif { return (unparsedeclarations)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_unparsedeclarations ); } unparsedeclarations reverse_unparsedeclarations #ifdef KC_USE_PROTOTYPES (unparsedeclarations kc_p) #else (kc_p) unparsedeclarations kc_p; #endif { return (unparsedeclarations)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_unparsedeclarations ); } int length_unparsedeclarations #ifdef KC_USE_PROTOTYPES (unparsedeclarations kc_p) #else (kc_p) unparsedeclarations kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_unparsedeclarations ); } unparsedeclaration last_unparsedeclarations #ifdef KC_USE_PROTOTYPES (unparsedeclarations kc_p) #else (kc_p) unparsedeclarations kc_p; #endif { return (unparsedeclaration)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_unparsedeclarations ); } unparsedeclarations map_unparsedeclarations #ifdef KC_USE_PROTOTYPES (unparsedeclarations kc_p, unparsedeclaration (*kc_fp)(unparsedeclaration)) #else (kc_p, kc_fp) unparsedeclarations kc_p; unparsedeclaration (*kc_fp)KC__P((unparsedeclaration)); #endif { return (unparsedeclarations)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_unparsedeclarations ); } unparsedeclarations filter_unparsedeclarations #ifdef KC_USE_PROTOTYPES (unparsedeclarations kc_p, boolean (*kc_fp)(unparsedeclaration)) #else (kc_p, kc_fp) unparsedeclarations kc_p; boolean (*kc_fp)KC__P((unparsedeclaration)); #endif { return (unparsedeclarations)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_unparsedeclarations ); } void freelist_unparsedeclarations #ifdef KC_USE_PROTOTYPES (unparsedeclarations kc_p) #else (kc_p) unparsedeclarations kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_unparsedeclarations ); } unparseclauses concat_unparseclauses #ifdef KC_USE_PROTOTYPES (unparseclauses kc_p1, unparseclauses kc_p2) #else (kc_p1, kc_p2) unparseclauses kc_p1, kc_p2; #endif { return (unparseclauses)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_unparseclauses ); } unparseclauses reverse_unparseclauses #ifdef KC_USE_PROTOTYPES (unparseclauses kc_p) #else (kc_p) unparseclauses kc_p; #endif { return (unparseclauses)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_unparseclauses ); } int length_unparseclauses #ifdef KC_USE_PROTOTYPES (unparseclauses kc_p) #else (kc_p) unparseclauses kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_unparseclauses ); } unparseclause last_unparseclauses #ifdef KC_USE_PROTOTYPES (unparseclauses kc_p) #else (kc_p) unparseclauses kc_p; #endif { return (unparseclause)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_unparseclauses ); } unparseclauses map_unparseclauses #ifdef KC_USE_PROTOTYPES (unparseclauses kc_p, unparseclause (*kc_fp)(unparseclause)) #else (kc_p, kc_fp) unparseclauses kc_p; unparseclause (*kc_fp)KC__P((unparseclause)); #endif { return (unparseclauses)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_unparseclauses ); } unparseclauses filter_unparseclauses #ifdef KC_USE_PROTOTYPES (unparseclauses kc_p, boolean (*kc_fp)(unparseclause)) #else (kc_p, kc_fp) unparseclauses kc_p; boolean (*kc_fp)KC__P((unparseclause)); #endif { return (unparseclauses)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_unparseclauses ); } void freelist_unparseclauses #ifdef KC_USE_PROTOTYPES (unparseclauses kc_p) #else (kc_p) unparseclauses kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_unparseclauses ); } viewnames concat_viewnames #ifdef KC_USE_PROTOTYPES (viewnames kc_p1, viewnames kc_p2) #else (kc_p1, kc_p2) viewnames kc_p1, kc_p2; #endif { return (viewnames)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_viewnames ); } viewnames reverse_viewnames #ifdef KC_USE_PROTOTYPES (viewnames kc_p) #else (kc_p) viewnames kc_p; #endif { return (viewnames)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_viewnames ); } int length_viewnames #ifdef KC_USE_PROTOTYPES (viewnames kc_p) #else (kc_p) viewnames kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_viewnames ); } ID last_viewnames #ifdef KC_USE_PROTOTYPES (viewnames kc_p) #else (kc_p) viewnames kc_p; #endif { return (ID)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_viewnames ); } viewnames map_viewnames #ifdef KC_USE_PROTOTYPES (viewnames kc_p, ID (*kc_fp)(ID)) #else (kc_p, kc_fp) viewnames kc_p; ID (*kc_fp)KC__P((ID)); #endif { return (viewnames)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_viewnames ); } viewnames filter_viewnames #ifdef KC_USE_PROTOTYPES (viewnames kc_p, boolean (*kc_fp)(ID)) #else (kc_p, kc_fp) viewnames kc_p; boolean (*kc_fp)KC__P((ID)); #endif { return (viewnames)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_viewnames ); } void freelist_viewnames #ifdef KC_USE_PROTOTYPES (viewnames kc_p) #else (kc_p) viewnames kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_viewnames ); } unparseitems concat_unparseitems #ifdef KC_USE_PROTOTYPES (unparseitems kc_p1, unparseitems kc_p2) #else (kc_p1, kc_p2) unparseitems kc_p1, kc_p2; #endif { return (unparseitems)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_unparseitems ); } unparseitems reverse_unparseitems #ifdef KC_USE_PROTOTYPES (unparseitems kc_p) #else (kc_p) unparseitems kc_p; #endif { return (unparseitems)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_unparseitems ); } int length_unparseitems #ifdef KC_USE_PROTOTYPES (unparseitems kc_p) #else (kc_p) unparseitems kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_unparseitems ); } unparseitem last_unparseitems #ifdef KC_USE_PROTOTYPES (unparseitems kc_p) #else (kc_p) unparseitems kc_p; #endif { return (unparseitem)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_unparseitems ); } unparseitems map_unparseitems #ifdef KC_USE_PROTOTYPES (unparseitems kc_p, unparseitem (*kc_fp)(unparseitem)) #else (kc_p, kc_fp) unparseitems kc_p; unparseitem (*kc_fp)KC__P((unparseitem)); #endif { return (unparseitems)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_unparseitems ); } unparseitems filter_unparseitems #ifdef KC_USE_PROTOTYPES (unparseitems kc_p, boolean (*kc_fp)(unparseitem)) #else (kc_p, kc_fp) unparseitems kc_p; boolean (*kc_fp)KC__P((unparseitem)); #endif { return (unparseitems)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_unparseitems ); } void freelist_unparseitems #ifdef KC_USE_PROTOTYPES (unparseitems kc_p) #else (kc_p) unparseitems kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_unparseitems ); } unpattributes concat_unpattributes #ifdef KC_USE_PROTOTYPES (unpattributes kc_p1, unpattributes kc_p2) #else (kc_p1, kc_p2) unpattributes kc_p1, kc_p2; #endif { return (unpattributes)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_unpattributes ); } unpattributes reverse_unpattributes #ifdef KC_USE_PROTOTYPES (unpattributes kc_p) #else (kc_p) unpattributes kc_p; #endif { return (unpattributes)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_unpattributes ); } int length_unpattributes #ifdef KC_USE_PROTOTYPES (unpattributes kc_p) #else (kc_p) unpattributes kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_unpattributes ); } ID last_unpattributes #ifdef KC_USE_PROTOTYPES (unpattributes kc_p) #else (kc_p) unpattributes kc_p; #endif { return (ID)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_unpattributes ); } unpattributes map_unpattributes #ifdef KC_USE_PROTOTYPES (unpattributes kc_p, ID (*kc_fp)(ID)) #else (kc_p, kc_fp) unpattributes kc_p; ID (*kc_fp)KC__P((ID)); #endif { return (unpattributes)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_unpattributes ); } unpattributes filter_unpattributes #ifdef KC_USE_PROTOTYPES (unpattributes kc_p, boolean (*kc_fp)(ID)) #else (kc_p, kc_fp) unpattributes kc_p; boolean (*kc_fp)KC__P((ID)); #endif { return (unpattributes)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_unpattributes ); } void freelist_unpattributes #ifdef KC_USE_PROTOTYPES (unpattributes kc_p) #else (kc_p) unpattributes kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_unpattributes ); } filelinestack concat_filelinestack #ifdef KC_USE_PROTOTYPES (filelinestack kc_p1, filelinestack kc_p2) #else (kc_p1, kc_p2) filelinestack kc_p1, kc_p2; #endif { return (filelinestack)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_filelinestack ); } filelinestack reverse_filelinestack #ifdef KC_USE_PROTOTYPES (filelinestack kc_p) #else (kc_p) filelinestack kc_p; #endif { return (filelinestack)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_filelinestack ); } int length_filelinestack #ifdef KC_USE_PROTOTYPES (filelinestack kc_p) #else (kc_p) filelinestack kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_filelinestack ); } fileline last_filelinestack #ifdef KC_USE_PROTOTYPES (filelinestack kc_p) #else (kc_p) filelinestack kc_p; #endif { return (fileline)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_filelinestack ); } filelinestack map_filelinestack #ifdef KC_USE_PROTOTYPES (filelinestack kc_p, fileline (*kc_fp)(fileline)) #else (kc_p, kc_fp) filelinestack kc_p; fileline (*kc_fp)KC__P((fileline)); #endif { return (filelinestack)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_filelinestack ); } filelinestack filter_filelinestack #ifdef KC_USE_PROTOTYPES (filelinestack kc_p, boolean (*kc_fp)(fileline)) #else (kc_p, kc_fp) filelinestack kc_p; boolean (*kc_fp)KC__P((fileline)); #endif { return (filelinestack)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_filelinestack ); } void freelist_filelinestack #ifdef KC_USE_PROTOTYPES (filelinestack kc_p) #else (kc_p) filelinestack kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_filelinestack ); } nooperatorsstack concat_nooperatorsstack #ifdef KC_USE_PROTOTYPES (nooperatorsstack kc_p1, nooperatorsstack kc_p2) #else (kc_p1, kc_p2) nooperatorsstack kc_p1, kc_p2; #endif { /*SUPPRESS 622*/ assert_nooperatorsstack(kc_p1,"kc_p1"); if (kc_p1->prod_sel == sel_Nilnooperatorsstack) { return kc_p2; } else if (kc_p1->prod_sel == sel_Consnooperatorsstack) { return Consnooperatorsstack( kc_p1->u.Consnooperatorsstack.int_1, concat_nooperatorsstack(kc_p1->u.Consnooperatorsstack.nooperatorsstack_1, kc_p2) ); } else { kc_invalid_operator(kc_error_concat, kc_phylum_nooperatorsstack, __LINE__, __FILE__, (int)kc_p1->prod_sel);/*NOTREACHED*/return (nooperatorsstack)0; } } nooperatorsstack reverse_nooperatorsstack #ifdef KC_USE_PROTOTYPES (nooperatorsstack kc_p) #else (kc_p) nooperatorsstack kc_p; #endif { boolean kc_not_ready = True; nooperatorsstack kc_tmp = Nilnooperatorsstack(); while(kc_not_ready) { /*SUPPRESS 622*/ assert_nooperatorsstack(((casestring)kc_p),"kc_p"); if (kc_p->prod_sel == sel_Nilnooperatorsstack) { kc_not_ready=False; } else if (kc_p->prod_sel == sel_Consnooperatorsstack) { kc_tmp = Consnooperatorsstack(kc_p->u.Consnooperatorsstack.int_1, kc_tmp); kc_p = kc_p->u.Consnooperatorsstack.nooperatorsstack_1; } else { kc_invalid_operator(kc_error_reverse, kc_phylum_nooperatorsstack, __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/ } } return kc_tmp; } int length_nooperatorsstack #ifdef KC_USE_PROTOTYPES (nooperatorsstack kc_p) #else (kc_p) nooperatorsstack kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_nooperatorsstack ); } int last_nooperatorsstack #ifdef KC_USE_PROTOTYPES (nooperatorsstack kc_p) #else (kc_p) nooperatorsstack kc_p; #endif { boolean kc_not_ready = True; int kc_tmp = (int)0; /*SUPPRESS 622*/ assert_nooperatorsstack(kc_p,"kc_p"); if (kc_p->prod_sel == sel_Nilnooperatorsstack) { (void)fflush(stdout); (void)fprintf(stderr, kc_error_last_with_nil_argument, "nooperatorsstack", "nooperatorsstack"); exit( 1 ); /*NOTREACHED*/ } while(kc_not_ready) { /*SUPPRESS 622*/ assert_nooperatorsstack(kc_p,"kc_p"); if (kc_p->prod_sel == sel_Nilnooperatorsstack) { kc_not_ready=False; } else if (kc_p->prod_sel == sel_Consnooperatorsstack) { kc_tmp = kc_p->u.Consnooperatorsstack.int_1; kc_p = kc_p->u.Consnooperatorsstack.nooperatorsstack_1; } else { kc_invalid_operator(kc_error_last, kc_phylum_nooperatorsstack, __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/ } } return kc_tmp; } nooperatorsstack map_nooperatorsstack #ifdef KC_USE_PROTOTYPES (nooperatorsstack kc_p, int (*kc_fp)(int)) #else (kc_p, kc_fp) nooperatorsstack kc_p; int (*kc_fp)KC__P((int)); #endif { /*SUPPRESS 622*/ assert_nooperatorsstack(kc_p,"kc_p"); if (kc_p->prod_sel == sel_Nilnooperatorsstack) { return kc_p; } else if (kc_p->prod_sel == sel_Consnooperatorsstack) { return Consnooperatorsstack( (*kc_fp)(kc_p->u.Consnooperatorsstack.int_1), map_nooperatorsstack(kc_p->u.Consnooperatorsstack.nooperatorsstack_1, kc_fp)); } else { kc_invalid_operator(kc_error_map, kc_phylum_nooperatorsstack, __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/return (nooperatorsstack)0; } } nooperatorsstack filter_nooperatorsstack #ifdef KC_USE_PROTOTYPES (nooperatorsstack kc_p, boolean (*kc_fp)(int)) #else (kc_p, kc_fp) nooperatorsstack kc_p; boolean (*kc_fp)KC__P((int)); #endif { /*SUPPRESS 622*/ assert_nooperatorsstack(kc_p,"kc_p"); if (kc_p->prod_sel == sel_Nilnooperatorsstack) { return kc_p; } else if (kc_p->prod_sel == sel_Consnooperatorsstack) { if ((*kc_fp)(kc_p->u.Consnooperatorsstack.int_1)) { return Consnooperatorsstack( kc_p->u.Consnooperatorsstack.int_1, filter_nooperatorsstack(kc_p->u.Consnooperatorsstack.nooperatorsstack_1, kc_fp)); } else { return filter_nooperatorsstack(kc_p->u.Consnooperatorsstack.nooperatorsstack_1, kc_fp); } } else { kc_invalid_operator(kc_error_filter, kc_phylum_nooperatorsstack, __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/return (nooperatorsstack)0; } } void freelist_nooperatorsstack #ifdef KC_USE_PROTOTYPES (nooperatorsstack kc_p) #else (kc_p) nooperatorsstack kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_nooperatorsstack ); } scopetypefilelinestack concat_scopetypefilelinestack #ifdef KC_USE_PROTOTYPES (scopetypefilelinestack kc_p1, scopetypefilelinestack kc_p2) #else (kc_p1, kc_p2) scopetypefilelinestack kc_p1, kc_p2; #endif { return (scopetypefilelinestack)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_scopetypefilelinestack ); } scopetypefilelinestack reverse_scopetypefilelinestack #ifdef KC_USE_PROTOTYPES (scopetypefilelinestack kc_p) #else (kc_p) scopetypefilelinestack kc_p; #endif { return (scopetypefilelinestack)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_scopetypefilelinestack ); } int length_scopetypefilelinestack #ifdef KC_USE_PROTOTYPES (scopetypefilelinestack kc_p) #else (kc_p) scopetypefilelinestack kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_scopetypefilelinestack ); } scopetypefileline last_scopetypefilelinestack #ifdef KC_USE_PROTOTYPES (scopetypefilelinestack kc_p) #else (kc_p) scopetypefilelinestack kc_p; #endif { return (scopetypefileline)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_scopetypefilelinestack ); } scopetypefilelinestack map_scopetypefilelinestack #ifdef KC_USE_PROTOTYPES (scopetypefilelinestack kc_p, scopetypefileline (*kc_fp)(scopetypefileline)) #else (kc_p, kc_fp) scopetypefilelinestack kc_p; scopetypefileline (*kc_fp)KC__P((scopetypefileline)); #endif { return (scopetypefilelinestack)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_scopetypefilelinestack ); } scopetypefilelinestack filter_scopetypefilelinestack #ifdef KC_USE_PROTOTYPES (scopetypefilelinestack kc_p, boolean (*kc_fp)(scopetypefileline)) #else (kc_p, kc_fp) scopetypefilelinestack kc_p; boolean (*kc_fp)KC__P((scopetypefileline)); #endif { return (scopetypefilelinestack)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_scopetypefilelinestack ); } void freelist_scopetypefilelinestack #ifdef KC_USE_PROTOTYPES (scopetypefilelinestack kc_p) #else (kc_p) scopetypefilelinestack kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_scopetypefilelinestack ); } operatorsstack concat_operatorsstack #ifdef KC_USE_PROTOTYPES (operatorsstack kc_p1, operatorsstack kc_p2) #else (kc_p1, kc_p2) operatorsstack kc_p1, kc_p2; #endif { return (operatorsstack)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_operatorsstack ); } operatorsstack reverse_operatorsstack #ifdef KC_USE_PROTOTYPES (operatorsstack kc_p) #else (kc_p) operatorsstack kc_p; #endif { return (operatorsstack)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_operatorsstack ); } int length_operatorsstack #ifdef KC_USE_PROTOTYPES (operatorsstack kc_p) #else (kc_p) operatorsstack kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_operatorsstack ); } operators last_operatorsstack #ifdef KC_USE_PROTOTYPES (operatorsstack kc_p) #else (kc_p) operatorsstack kc_p; #endif { return (operators)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_operatorsstack ); } operatorsstack map_operatorsstack #ifdef KC_USE_PROTOTYPES (operatorsstack kc_p, operators (*kc_fp)(operators)) #else (kc_p, kc_fp) operatorsstack kc_p; operators (*kc_fp)KC__P((operators)); #endif { return (operatorsstack)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_operatorsstack ); } operatorsstack filter_operatorsstack #ifdef KC_USE_PROTOTYPES (operatorsstack kc_p, boolean (*kc_fp)(operators)) #else (kc_p, kc_fp) operatorsstack kc_p; boolean (*kc_fp)KC__P((operators)); #endif { return (operatorsstack)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_operatorsstack ); } void freelist_operatorsstack #ifdef KC_USE_PROTOTYPES (operatorsstack kc_p) #else (kc_p) operatorsstack kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_operatorsstack ); } operators concat_operators #ifdef KC_USE_PROTOTYPES (operators kc_p1, operators kc_p2) #else (kc_p1, kc_p2) operators kc_p1, kc_p2; #endif { return (operators)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_operators ); } operators reverse_operators #ifdef KC_USE_PROTOTYPES (operators kc_p) #else (kc_p) operators kc_p; #endif { return (operators)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_operators ); } int length_operators #ifdef KC_USE_PROTOTYPES (operators kc_p) #else (kc_p) operators kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_operators ); } ID last_operators #ifdef KC_USE_PROTOTYPES (operators kc_p) #else (kc_p) operators kc_p; #endif { return (ID)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_operators ); } operators map_operators #ifdef KC_USE_PROTOTYPES (operators kc_p, ID (*kc_fp)(ID)) #else (kc_p, kc_fp) operators kc_p; ID (*kc_fp)KC__P((ID)); #endif { return (operators)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_operators ); } operators filter_operators #ifdef KC_USE_PROTOTYPES (operators kc_p, boolean (*kc_fp)(ID)) #else (kc_p, kc_fp) operators kc_p; boolean (*kc_fp)KC__P((ID)); #endif { return (operators)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_operators ); } void freelist_operators #ifdef KC_USE_PROTOTYPES (operators kc_p) #else (kc_p) operators kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_operators ); } phyla concat_phyla #ifdef KC_USE_PROTOTYPES (phyla kc_p1, phyla kc_p2) #else (kc_p1, kc_p2) phyla kc_p1, kc_p2; #endif { return (phyla)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_phyla ); } phyla reverse_phyla #ifdef KC_USE_PROTOTYPES (phyla kc_p) #else (kc_p) phyla kc_p; #endif { return (phyla)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_phyla ); } int length_phyla #ifdef KC_USE_PROTOTYPES (phyla kc_p) #else (kc_p) phyla kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_phyla ); } ID last_phyla #ifdef KC_USE_PROTOTYPES (phyla kc_p) #else (kc_p) phyla kc_p; #endif { return (ID)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_phyla ); } phyla map_phyla #ifdef KC_USE_PROTOTYPES (phyla kc_p, ID (*kc_fp)(ID)) #else (kc_p, kc_fp) phyla kc_p; ID (*kc_fp)KC__P((ID)); #endif { return (phyla)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_phyla ); } phyla filter_phyla #ifdef KC_USE_PROTOTYPES (phyla kc_p, boolean (*kc_fp)(ID)) #else (kc_p, kc_fp) phyla kc_p; boolean (*kc_fp)KC__P((ID)); #endif { return (phyla)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_phyla ); } void freelist_phyla #ifdef KC_USE_PROTOTYPES (phyla kc_p) #else (kc_p) phyla kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_phyla ); } variables concat_variables #ifdef KC_USE_PROTOTYPES (variables kc_p1, variables kc_p2) #else (kc_p1, kc_p2) variables kc_p1, kc_p2; #endif { return (variables)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_variables ); } variables reverse_variables #ifdef KC_USE_PROTOTYPES (variables kc_p) #else (kc_p) variables kc_p; #endif { return (variables)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_variables ); } int length_variables #ifdef KC_USE_PROTOTYPES (variables kc_p) #else (kc_p) variables kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_variables ); } ID last_variables #ifdef KC_USE_PROTOTYPES (variables kc_p) #else (kc_p) variables kc_p; #endif { return (ID)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_variables ); } variables map_variables #ifdef KC_USE_PROTOTYPES (variables kc_p, ID (*kc_fp)(ID)) #else (kc_p, kc_fp) variables kc_p; ID (*kc_fp)KC__P((ID)); #endif { return (variables)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_variables ); } variables filter_variables #ifdef KC_USE_PROTOTYPES (variables kc_p, boolean (*kc_fp)(ID)) #else (kc_p, kc_fp) variables kc_p; boolean (*kc_fp)KC__P((ID)); #endif { return (variables)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_variables ); } void freelist_variables #ifdef KC_USE_PROTOTYPES (variables kc_p) #else (kc_p) variables kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_variables ); } argumentsstack concat_argumentsstack #ifdef KC_USE_PROTOTYPES (argumentsstack kc_p1, argumentsstack kc_p2) #else (kc_p1, kc_p2) argumentsstack kc_p1, kc_p2; #endif { return (argumentsstack)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_argumentsstack ); } argumentsstack reverse_argumentsstack #ifdef KC_USE_PROTOTYPES (argumentsstack kc_p) #else (kc_p) argumentsstack kc_p; #endif { return (argumentsstack)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_argumentsstack ); } int length_argumentsstack #ifdef KC_USE_PROTOTYPES (argumentsstack kc_p) #else (kc_p) argumentsstack kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_argumentsstack ); } arguments last_argumentsstack #ifdef KC_USE_PROTOTYPES (argumentsstack kc_p) #else (kc_p) argumentsstack kc_p; #endif { return (arguments)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_argumentsstack ); } argumentsstack map_argumentsstack #ifdef KC_USE_PROTOTYPES (argumentsstack kc_p, arguments (*kc_fp)(arguments)) #else (kc_p, kc_fp) argumentsstack kc_p; arguments (*kc_fp)KC__P((arguments)); #endif { return (argumentsstack)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_argumentsstack ); } argumentsstack filter_argumentsstack #ifdef KC_USE_PROTOTYPES (argumentsstack kc_p, boolean (*kc_fp)(arguments)) #else (kc_p, kc_fp) argumentsstack kc_p; boolean (*kc_fp)KC__P((arguments)); #endif { return (argumentsstack)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_argumentsstack ); } void freelist_argumentsstack #ifdef KC_USE_PROTOTYPES (argumentsstack kc_p) #else (kc_p) argumentsstack kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_argumentsstack ); } phylumstack concat_phylumstack #ifdef KC_USE_PROTOTYPES (phylumstack kc_p1, phylumstack kc_p2) #else (kc_p1, kc_p2) phylumstack kc_p1, kc_p2; #endif { return (phylumstack)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_phylumstack ); } phylumstack reverse_phylumstack #ifdef KC_USE_PROTOTYPES (phylumstack kc_p) #else (kc_p) phylumstack kc_p; #endif { return (phylumstack)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_phylumstack ); } int length_phylumstack #ifdef KC_USE_PROTOTYPES (phylumstack kc_p) #else (kc_p) phylumstack kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_phylumstack ); } ID last_phylumstack #ifdef KC_USE_PROTOTYPES (phylumstack kc_p) #else (kc_p) phylumstack kc_p; #endif { return (ID)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_phylumstack ); } phylumstack map_phylumstack #ifdef KC_USE_PROTOTYPES (phylumstack kc_p, ID (*kc_fp)(ID)) #else (kc_p, kc_fp) phylumstack kc_p; ID (*kc_fp)KC__P((ID)); #endif { return (phylumstack)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_phylumstack ); } phylumstack filter_phylumstack #ifdef KC_USE_PROTOTYPES (phylumstack kc_p, boolean (*kc_fp)(ID)) #else (kc_p, kc_fp) phylumstack kc_p; boolean (*kc_fp)KC__P((ID)); #endif { return (phylumstack)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_phylumstack ); } void freelist_phylumstack #ifdef KC_USE_PROTOTYPES (phylumstack kc_p) #else (kc_p) phylumstack kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_phylumstack ); } phylumnamesstack concat_phylumnamesstack #ifdef KC_USE_PROTOTYPES (phylumnamesstack kc_p1, phylumnamesstack kc_p2) #else (kc_p1, kc_p2) phylumnamesstack kc_p1, kc_p2; #endif { return (phylumnamesstack)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_phylumnamesstack ); } phylumnamesstack reverse_phylumnamesstack #ifdef KC_USE_PROTOTYPES (phylumnamesstack kc_p) #else (kc_p) phylumnamesstack kc_p; #endif { return (phylumnamesstack)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_phylumnamesstack ); } int length_phylumnamesstack #ifdef KC_USE_PROTOTYPES (phylumnamesstack kc_p) #else (kc_p) phylumnamesstack kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_phylumnamesstack ); } phylumnames last_phylumnamesstack #ifdef KC_USE_PROTOTYPES (phylumnamesstack kc_p) #else (kc_p) phylumnamesstack kc_p; #endif { return (phylumnames)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_phylumnamesstack ); } phylumnamesstack map_phylumnamesstack #ifdef KC_USE_PROTOTYPES (phylumnamesstack kc_p, phylumnames (*kc_fp)(phylumnames)) #else (kc_p, kc_fp) phylumnamesstack kc_p; phylumnames (*kc_fp)KC__P((phylumnames)); #endif { return (phylumnamesstack)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_phylumnamesstack ); } phylumnamesstack filter_phylumnamesstack #ifdef KC_USE_PROTOTYPES (phylumnamesstack kc_p, boolean (*kc_fp)(phylumnames)) #else (kc_p, kc_fp) phylumnamesstack kc_p; boolean (*kc_fp)KC__P((phylumnames)); #endif { return (phylumnamesstack)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_phylumnamesstack ); } void freelist_phylumnamesstack #ifdef KC_USE_PROTOTYPES (phylumnamesstack kc_p) #else (kc_p) phylumnamesstack kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_phylumnamesstack ); } withexpressionsstack concat_withexpressionsstack #ifdef KC_USE_PROTOTYPES (withexpressionsstack kc_p1, withexpressionsstack kc_p2) #else (kc_p1, kc_p2) withexpressionsstack kc_p1, kc_p2; #endif { return (withexpressionsstack)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_withexpressionsstack ); } withexpressionsstack reverse_withexpressionsstack #ifdef KC_USE_PROTOTYPES (withexpressionsstack kc_p) #else (kc_p) withexpressionsstack kc_p; #endif { return (withexpressionsstack)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_withexpressionsstack ); } int length_withexpressionsstack #ifdef KC_USE_PROTOTYPES (withexpressionsstack kc_p) #else (kc_p) withexpressionsstack kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_withexpressionsstack ); } withexpressions last_withexpressionsstack #ifdef KC_USE_PROTOTYPES (withexpressionsstack kc_p) #else (kc_p) withexpressionsstack kc_p; #endif { return (withexpressions)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_withexpressionsstack ); } withexpressionsstack map_withexpressionsstack #ifdef KC_USE_PROTOTYPES (withexpressionsstack kc_p, withexpressions (*kc_fp)(withexpressions)) #else (kc_p, kc_fp) withexpressionsstack kc_p; withexpressions (*kc_fp)KC__P((withexpressions)); #endif { return (withexpressionsstack)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_withexpressionsstack ); } withexpressionsstack filter_withexpressionsstack #ifdef KC_USE_PROTOTYPES (withexpressionsstack kc_p, boolean (*kc_fp)(withexpressions)) #else (kc_p, kc_fp) withexpressionsstack kc_p; boolean (*kc_fp)KC__P((withexpressions)); #endif { return (withexpressionsstack)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_withexpressionsstack ); } void freelist_withexpressionsstack #ifdef KC_USE_PROTOTYPES (withexpressionsstack kc_p) #else (kc_p) withexpressionsstack kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_withexpressionsstack ); } operatorstack concat_operatorstack #ifdef KC_USE_PROTOTYPES (operatorstack kc_p1, operatorstack kc_p2) #else (kc_p1, kc_p2) operatorstack kc_p1, kc_p2; #endif { return (operatorstack)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_operatorstack ); } operatorstack reverse_operatorstack #ifdef KC_USE_PROTOTYPES (operatorstack kc_p) #else (kc_p) operatorstack kc_p; #endif { return (operatorstack)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_operatorstack ); } int length_operatorstack #ifdef KC_USE_PROTOTYPES (operatorstack kc_p) #else (kc_p) operatorstack kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_operatorstack ); } ID last_operatorstack #ifdef KC_USE_PROTOTYPES (operatorstack kc_p) #else (kc_p) operatorstack kc_p; #endif { return (ID)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_operatorstack ); } operatorstack map_operatorstack #ifdef KC_USE_PROTOTYPES (operatorstack kc_p, ID (*kc_fp)(ID)) #else (kc_p, kc_fp) operatorstack kc_p; ID (*kc_fp)KC__P((ID)); #endif { return (operatorstack)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_operatorstack ); } operatorstack filter_operatorstack #ifdef KC_USE_PROTOTYPES (operatorstack kc_p, boolean (*kc_fp)(ID)) #else (kc_p, kc_fp) operatorstack kc_p; boolean (*kc_fp)KC__P((ID)); #endif { return (operatorstack)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_operatorstack ); } void freelist_operatorstack #ifdef KC_USE_PROTOTYPES (operatorstack kc_p) #else (kc_p) operatorstack kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_operatorstack ); } variablesstack concat_variablesstack #ifdef KC_USE_PROTOTYPES (variablesstack kc_p1, variablesstack kc_p2) #else (kc_p1, kc_p2) variablesstack kc_p1, kc_p2; #endif { return (variablesstack)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_variablesstack ); } variablesstack reverse_variablesstack #ifdef KC_USE_PROTOTYPES (variablesstack kc_p) #else (kc_p) variablesstack kc_p; #endif { return (variablesstack)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_variablesstack ); } int length_variablesstack #ifdef KC_USE_PROTOTYPES (variablesstack kc_p) #else (kc_p) variablesstack kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_variablesstack ); } variables last_variablesstack #ifdef KC_USE_PROTOTYPES (variablesstack kc_p) #else (kc_p) variablesstack kc_p; #endif { return (variables)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_variablesstack ); } variablesstack map_variablesstack #ifdef KC_USE_PROTOTYPES (variablesstack kc_p, variables (*kc_fp)(variables)) #else (kc_p, kc_fp) variablesstack kc_p; variables (*kc_fp)KC__P((variables)); #endif { return (variablesstack)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_variablesstack ); } variablesstack filter_variablesstack #ifdef KC_USE_PROTOTYPES (variablesstack kc_p, boolean (*kc_fp)(variables)) #else (kc_p, kc_fp) variablesstack kc_p; boolean (*kc_fp)KC__P((variables)); #endif { return (variablesstack)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_variablesstack ); } void freelist_variablesstack #ifdef KC_USE_PROTOTYPES (variablesstack kc_p) #else (kc_p) variablesstack kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_variablesstack ); } selvarstack concat_selvarstack #ifdef KC_USE_PROTOTYPES (selvarstack kc_p1, selvarstack kc_p2) #else (kc_p1, kc_p2) selvarstack kc_p1, kc_p2; #endif { return (selvarstack)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_selvarstack ); } selvarstack reverse_selvarstack #ifdef KC_USE_PROTOTYPES (selvarstack kc_p) #else (kc_p) selvarstack kc_p; #endif { return (selvarstack)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_selvarstack ); } int length_selvarstack #ifdef KC_USE_PROTOTYPES (selvarstack kc_p) #else (kc_p) selvarstack kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_selvarstack ); } ID last_selvarstack #ifdef KC_USE_PROTOTYPES (selvarstack kc_p) #else (kc_p) selvarstack kc_p; #endif { return (ID)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_selvarstack ); } selvarstack map_selvarstack #ifdef KC_USE_PROTOTYPES (selvarstack kc_p, ID (*kc_fp)(ID)) #else (kc_p, kc_fp) selvarstack kc_p; ID (*kc_fp)KC__P((ID)); #endif { return (selvarstack)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_selvarstack ); } selvarstack filter_selvarstack #ifdef KC_USE_PROTOTYPES (selvarstack kc_p, boolean (*kc_fp)(ID)) #else (kc_p, kc_fp) selvarstack kc_p; boolean (*kc_fp)KC__P((ID)); #endif { return (selvarstack)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_selvarstack ); } void freelist_selvarstack #ifdef KC_USE_PROTOTYPES (selvarstack kc_p) #else (kc_p) selvarstack kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_selvarstack ); } dollarvarsallowedstack concat_dollarvarsallowedstack #ifdef KC_USE_PROTOTYPES (dollarvarsallowedstack kc_p1, dollarvarsallowedstack kc_p2) #else (kc_p1, kc_p2) dollarvarsallowedstack kc_p1, kc_p2; #endif { return (dollarvarsallowedstack)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_dollarvarsallowedstack ); } dollarvarsallowedstack reverse_dollarvarsallowedstack #ifdef KC_USE_PROTOTYPES (dollarvarsallowedstack kc_p) #else (kc_p) dollarvarsallowedstack kc_p; #endif { return (dollarvarsallowedstack)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_dollarvarsallowedstack ); } int length_dollarvarsallowedstack #ifdef KC_USE_PROTOTYPES (dollarvarsallowedstack kc_p) #else (kc_p) dollarvarsallowedstack kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_dollarvarsallowedstack ); } dollarvarstatus last_dollarvarsallowedstack #ifdef KC_USE_PROTOTYPES (dollarvarsallowedstack kc_p) #else (kc_p) dollarvarsallowedstack kc_p; #endif { return (dollarvarstatus)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_dollarvarsallowedstack ); } dollarvarsallowedstack map_dollarvarsallowedstack #ifdef KC_USE_PROTOTYPES (dollarvarsallowedstack kc_p, dollarvarstatus (*kc_fp)(dollarvarstatus)) #else (kc_p, kc_fp) dollarvarsallowedstack kc_p; dollarvarstatus (*kc_fp)KC__P((dollarvarstatus)); #endif { return (dollarvarsallowedstack)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_dollarvarsallowedstack ); } dollarvarsallowedstack filter_dollarvarsallowedstack #ifdef KC_USE_PROTOTYPES (dollarvarsallowedstack kc_p, boolean (*kc_fp)(dollarvarstatus)) #else (kc_p, kc_fp) dollarvarsallowedstack kc_p; boolean (*kc_fp)KC__P((dollarvarstatus)); #endif { return (dollarvarsallowedstack)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_dollarvarsallowedstack ); } void freelist_dollarvarsallowedstack #ifdef KC_USE_PROTOTYPES (dollarvarsallowedstack kc_p) #else (kc_p) dollarvarsallowedstack kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_dollarvarsallowedstack ); } intstack concat_intstack #ifdef KC_USE_PROTOTYPES (intstack kc_p1, intstack kc_p2) #else (kc_p1, kc_p2) intstack kc_p1, kc_p2; #endif { /*SUPPRESS 622*/ assert_intstack(kc_p1,"kc_p1"); if (kc_p1->prod_sel == sel_Nilintstack) { return kc_p2; } else if (kc_p1->prod_sel == sel_Consintstack) { return Consintstack( kc_p1->u.Consintstack.int_1, concat_intstack(kc_p1->u.Consintstack.intstack_1, kc_p2) ); } else { kc_invalid_operator(kc_error_concat, kc_phylum_intstack, __LINE__, __FILE__, (int)kc_p1->prod_sel);/*NOTREACHED*/return (intstack)0; } } intstack reverse_intstack #ifdef KC_USE_PROTOTYPES (intstack kc_p) #else (kc_p) intstack kc_p; #endif { boolean kc_not_ready = True; intstack kc_tmp = Nilintstack(); while(kc_not_ready) { /*SUPPRESS 622*/ assert_intstack(((casestring)kc_p),"kc_p"); if (kc_p->prod_sel == sel_Nilintstack) { kc_not_ready=False; } else if (kc_p->prod_sel == sel_Consintstack) { kc_tmp = Consintstack(kc_p->u.Consintstack.int_1, kc_tmp); kc_p = kc_p->u.Consintstack.intstack_1; } else { kc_invalid_operator(kc_error_reverse, kc_phylum_intstack, __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/ } } return kc_tmp; } int length_intstack #ifdef KC_USE_PROTOTYPES (intstack kc_p) #else (kc_p) intstack kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_intstack ); } int last_intstack #ifdef KC_USE_PROTOTYPES (intstack kc_p) #else (kc_p) intstack kc_p; #endif { boolean kc_not_ready = True; int kc_tmp = (int)0; /*SUPPRESS 622*/ assert_intstack(kc_p,"kc_p"); if (kc_p->prod_sel == sel_Nilintstack) { (void)fflush(stdout); (void)fprintf(stderr, kc_error_last_with_nil_argument, "intstack", "intstack"); exit( 1 ); /*NOTREACHED*/ } while(kc_not_ready) { /*SUPPRESS 622*/ assert_intstack(kc_p,"kc_p"); if (kc_p->prod_sel == sel_Nilintstack) { kc_not_ready=False; } else if (kc_p->prod_sel == sel_Consintstack) { kc_tmp = kc_p->u.Consintstack.int_1; kc_p = kc_p->u.Consintstack.intstack_1; } else { kc_invalid_operator(kc_error_last, kc_phylum_intstack, __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/ } } return kc_tmp; } intstack map_intstack #ifdef KC_USE_PROTOTYPES (intstack kc_p, int (*kc_fp)(int)) #else (kc_p, kc_fp) intstack kc_p; int (*kc_fp)KC__P((int)); #endif { /*SUPPRESS 622*/ assert_intstack(kc_p,"kc_p"); if (kc_p->prod_sel == sel_Nilintstack) { return kc_p; } else if (kc_p->prod_sel == sel_Consintstack) { return Consintstack( (*kc_fp)(kc_p->u.Consintstack.int_1), map_intstack(kc_p->u.Consintstack.intstack_1, kc_fp)); } else { kc_invalid_operator(kc_error_map, kc_phylum_intstack, __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/return (intstack)0; } } intstack filter_intstack #ifdef KC_USE_PROTOTYPES (intstack kc_p, boolean (*kc_fp)(int)) #else (kc_p, kc_fp) intstack kc_p; boolean (*kc_fp)KC__P((int)); #endif { /*SUPPRESS 622*/ assert_intstack(kc_p,"kc_p"); if (kc_p->prod_sel == sel_Nilintstack) { return kc_p; } else if (kc_p->prod_sel == sel_Consintstack) { if ((*kc_fp)(kc_p->u.Consintstack.int_1)) { return Consintstack( kc_p->u.Consintstack.int_1, filter_intstack(kc_p->u.Consintstack.intstack_1, kc_fp)); } else { return filter_intstack(kc_p->u.Consintstack.intstack_1, kc_fp); } } else { kc_invalid_operator(kc_error_filter, kc_phylum_intstack, __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/return (intstack)0; } } void freelist_intstack #ifdef KC_USE_PROTOTYPES (intstack kc_p) #else (kc_p) intstack kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_intstack ); } idCexpressionsstack concat_idCexpressionsstack #ifdef KC_USE_PROTOTYPES (idCexpressionsstack kc_p1, idCexpressionsstack kc_p2) #else (kc_p1, kc_p2) idCexpressionsstack kc_p1, kc_p2; #endif { return (idCexpressionsstack)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_idCexpressionsstack ); } idCexpressionsstack reverse_idCexpressionsstack #ifdef KC_USE_PROTOTYPES (idCexpressionsstack kc_p) #else (kc_p) idCexpressionsstack kc_p; #endif { return (idCexpressionsstack)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_idCexpressionsstack ); } int length_idCexpressionsstack #ifdef KC_USE_PROTOTYPES (idCexpressionsstack kc_p) #else (kc_p) idCexpressionsstack kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_idCexpressionsstack ); } idCexpressions last_idCexpressionsstack #ifdef KC_USE_PROTOTYPES (idCexpressionsstack kc_p) #else (kc_p) idCexpressionsstack kc_p; #endif { return (idCexpressions)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_idCexpressionsstack ); } idCexpressionsstack map_idCexpressionsstack #ifdef KC_USE_PROTOTYPES (idCexpressionsstack kc_p, idCexpressions (*kc_fp)(idCexpressions)) #else (kc_p, kc_fp) idCexpressionsstack kc_p; idCexpressions (*kc_fp)KC__P((idCexpressions)); #endif { return (idCexpressionsstack)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_idCexpressionsstack ); } idCexpressionsstack filter_idCexpressionsstack #ifdef KC_USE_PROTOTYPES (idCexpressionsstack kc_p, boolean (*kc_fp)(idCexpressions)) #else (kc_p, kc_fp) idCexpressionsstack kc_p; boolean (*kc_fp)KC__P((idCexpressions)); #endif { return (idCexpressionsstack)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_idCexpressionsstack ); } void freelist_idCexpressionsstack #ifdef KC_USE_PROTOTYPES (idCexpressionsstack kc_p) #else (kc_p) idCexpressionsstack kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_idCexpressionsstack ); } patternrepresentations concat_patternrepresentations #ifdef KC_USE_PROTOTYPES (patternrepresentations kc_p1, patternrepresentations kc_p2) #else (kc_p1, kc_p2) patternrepresentations kc_p1, kc_p2; #endif { return (patternrepresentations)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_patternrepresentations ); } patternrepresentations reverse_patternrepresentations #ifdef KC_USE_PROTOTYPES (patternrepresentations kc_p) #else (kc_p) patternrepresentations kc_p; #endif { return (patternrepresentations)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_patternrepresentations ); } int length_patternrepresentations #ifdef KC_USE_PROTOTYPES (patternrepresentations kc_p) #else (kc_p) patternrepresentations kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_patternrepresentations ); } patternrepresentation last_patternrepresentations #ifdef KC_USE_PROTOTYPES (patternrepresentations kc_p) #else (kc_p) patternrepresentations kc_p; #endif { return (patternrepresentation)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_patternrepresentations ); } patternrepresentations map_patternrepresentations #ifdef KC_USE_PROTOTYPES (patternrepresentations kc_p, patternrepresentation (*kc_fp)(patternrepresentation)) #else (kc_p, kc_fp) patternrepresentations kc_p; patternrepresentation (*kc_fp)KC__P((patternrepresentation)); #endif { return (patternrepresentations)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_patternrepresentations ); } patternrepresentations filter_patternrepresentations #ifdef KC_USE_PROTOTYPES (patternrepresentations kc_p, boolean (*kc_fp)(patternrepresentation)) #else (kc_p, kc_fp) patternrepresentations kc_p; boolean (*kc_fp)KC__P((patternrepresentation)); #endif { return (patternrepresentations)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_patternrepresentations ); } void freelist_patternrepresentations #ifdef KC_USE_PROTOTYPES (patternrepresentations kc_p) #else (kc_p) patternrepresentations kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_patternrepresentations ); } patternrepresentation concat_patternrepresentation #ifdef KC_USE_PROTOTYPES (patternrepresentation kc_p1, patternrepresentation kc_p2) #else (kc_p1, kc_p2) patternrepresentation kc_p1, kc_p2; #endif { return (patternrepresentation)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_patternrepresentation ); } patternrepresentation reverse_patternrepresentation #ifdef KC_USE_PROTOTYPES (patternrepresentation kc_p) #else (kc_p) patternrepresentation kc_p; #endif { return (patternrepresentation)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_patternrepresentation ); } int length_patternrepresentation #ifdef KC_USE_PROTOTYPES (patternrepresentation kc_p) #else (kc_p) patternrepresentation kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_patternrepresentation ); } elem_patternrepresentation last_patternrepresentation #ifdef KC_USE_PROTOTYPES (patternrepresentation kc_p) #else (kc_p) patternrepresentation kc_p; #endif { return (elem_patternrepresentation)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_patternrepresentation ); } patternrepresentation map_patternrepresentation #ifdef KC_USE_PROTOTYPES (patternrepresentation kc_p, elem_patternrepresentation (*kc_fp)(elem_patternrepresentation)) #else (kc_p, kc_fp) patternrepresentation kc_p; elem_patternrepresentation (*kc_fp)KC__P((elem_patternrepresentation)); #endif { return (patternrepresentation)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_patternrepresentation ); } patternrepresentation filter_patternrepresentation #ifdef KC_USE_PROTOTYPES (patternrepresentation kc_p, boolean (*kc_fp)(elem_patternrepresentation)) #else (kc_p, kc_fp) patternrepresentation kc_p; boolean (*kc_fp)KC__P((elem_patternrepresentation)); #endif { return (patternrepresentation)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_patternrepresentation ); } void freelist_patternrepresentation #ifdef KC_USE_PROTOTYPES (patternrepresentation kc_p) #else (kc_p) patternrepresentation kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_patternrepresentation ); } path concat_path #ifdef KC_USE_PROTOTYPES (path kc_p1, path kc_p2) #else (kc_p1, kc_p2) path kc_p1, kc_p2; #endif { /*SUPPRESS 622*/ assert_path(kc_p1,"kc_p1"); if (kc_p1->prod_sel == sel_Nilpath) { return kc_p2; } else if (kc_p1->prod_sel == sel_Conspath) { return Conspath( kc_p1->u.Conspath.int_1, concat_path(kc_p1->u.Conspath.path_1, kc_p2) ); } else { kc_invalid_operator(kc_error_concat, kc_phylum_path, __LINE__, __FILE__, (int)kc_p1->prod_sel);/*NOTREACHED*/return (path)0; } } path reverse_path #ifdef KC_USE_PROTOTYPES (path kc_p) #else (kc_p) path kc_p; #endif { boolean kc_not_ready = True; path kc_tmp = Nilpath(); while(kc_not_ready) { /*SUPPRESS 622*/ assert_path(((casestring)kc_p),"kc_p"); if (kc_p->prod_sel == sel_Nilpath) { kc_not_ready=False; } else if (kc_p->prod_sel == sel_Conspath) { kc_tmp = Conspath(kc_p->u.Conspath.int_1, kc_tmp); kc_p = kc_p->u.Conspath.path_1; } else { kc_invalid_operator(kc_error_reverse, kc_phylum_path, __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/ } } return kc_tmp; } int length_path #ifdef KC_USE_PROTOTYPES (path kc_p) #else (kc_p) path kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_path ); } int last_path #ifdef KC_USE_PROTOTYPES (path kc_p) #else (kc_p) path kc_p; #endif { boolean kc_not_ready = True; int kc_tmp = (int)0; /*SUPPRESS 622*/ assert_path(kc_p,"kc_p"); if (kc_p->prod_sel == sel_Nilpath) { (void)fflush(stdout); (void)fprintf(stderr, kc_error_last_with_nil_argument, "path", "path"); exit( 1 ); /*NOTREACHED*/ } while(kc_not_ready) { /*SUPPRESS 622*/ assert_path(kc_p,"kc_p"); if (kc_p->prod_sel == sel_Nilpath) { kc_not_ready=False; } else if (kc_p->prod_sel == sel_Conspath) { kc_tmp = kc_p->u.Conspath.int_1; kc_p = kc_p->u.Conspath.path_1; } else { kc_invalid_operator(kc_error_last, kc_phylum_path, __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/ } } return kc_tmp; } path map_path #ifdef KC_USE_PROTOTYPES (path kc_p, int (*kc_fp)(int)) #else (kc_p, kc_fp) path kc_p; int (*kc_fp)KC__P((int)); #endif { /*SUPPRESS 622*/ assert_path(kc_p,"kc_p"); if (kc_p->prod_sel == sel_Nilpath) { return kc_p; } else if (kc_p->prod_sel == sel_Conspath) { return Conspath( (*kc_fp)(kc_p->u.Conspath.int_1), map_path(kc_p->u.Conspath.path_1, kc_fp)); } else { kc_invalid_operator(kc_error_map, kc_phylum_path, __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/return (path)0; } } path filter_path #ifdef KC_USE_PROTOTYPES (path kc_p, boolean (*kc_fp)(int)) #else (kc_p, kc_fp) path kc_p; boolean (*kc_fp)KC__P((int)); #endif { /*SUPPRESS 622*/ assert_path(kc_p,"kc_p"); if (kc_p->prod_sel == sel_Nilpath) { return kc_p; } else if (kc_p->prod_sel == sel_Conspath) { if ((*kc_fp)(kc_p->u.Conspath.int_1)) { return Conspath( kc_p->u.Conspath.int_1, filter_path(kc_p->u.Conspath.path_1, kc_fp)); } else { return filter_path(kc_p->u.Conspath.path_1, kc_fp); } } else { kc_invalid_operator(kc_error_filter, kc_phylum_path, __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/return (path)0; } } void freelist_path #ifdef KC_USE_PROTOTYPES (path kc_p) #else (kc_p) path kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_path ); } paths concat_paths #ifdef KC_USE_PROTOTYPES (paths kc_p1, paths kc_p2) #else (kc_p1, kc_p2) paths kc_p1, kc_p2; #endif { return (paths)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_paths ); } paths reverse_paths #ifdef KC_USE_PROTOTYPES (paths kc_p) #else (kc_p) paths kc_p; #endif { return (paths)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_paths ); } int length_paths #ifdef KC_USE_PROTOTYPES (paths kc_p) #else (kc_p) paths kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_paths ); } path last_paths #ifdef KC_USE_PROTOTYPES (paths kc_p) #else (kc_p) paths kc_p; #endif { return (path)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_paths ); } paths map_paths #ifdef KC_USE_PROTOTYPES (paths kc_p, path (*kc_fp)(path)) #else (kc_p, kc_fp) paths kc_p; path (*kc_fp)KC__P((path)); #endif { return (paths)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_paths ); } paths filter_paths #ifdef KC_USE_PROTOTYPES (paths kc_p, boolean (*kc_fp)(path)) #else (kc_p, kc_fp) paths kc_p; boolean (*kc_fp)KC__P((path)); #endif { return (paths)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_paths ); } void freelist_paths #ifdef KC_USE_PROTOTYPES (paths kc_p) #else (kc_p) paths kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_paths ); } argsnumbers concat_argsnumbers #ifdef KC_USE_PROTOTYPES (argsnumbers kc_p1, argsnumbers kc_p2) #else (kc_p1, kc_p2) argsnumbers kc_p1, kc_p2; #endif { /*SUPPRESS 622*/ assert_argsnumbers(kc_p1,"kc_p1"); if (kc_p1->prod_sel == sel_Nilargsnumbers) { return kc_p2; } else if (kc_p1->prod_sel == sel_Consargsnumbers) { return Consargsnumbers( kc_p1->u.Consargsnumbers.int_1, concat_argsnumbers(kc_p1->u.Consargsnumbers.argsnumbers_1, kc_p2) ); } else { kc_invalid_operator(kc_error_concat, kc_phylum_argsnumbers, __LINE__, __FILE__, (int)kc_p1->prod_sel);/*NOTREACHED*/return (argsnumbers)0; } } argsnumbers reverse_argsnumbers #ifdef KC_USE_PROTOTYPES (argsnumbers kc_p) #else (kc_p) argsnumbers kc_p; #endif { boolean kc_not_ready = True; argsnumbers kc_tmp = Nilargsnumbers(); while(kc_not_ready) { /*SUPPRESS 622*/ assert_argsnumbers(((casestring)kc_p),"kc_p"); if (kc_p->prod_sel == sel_Nilargsnumbers) { kc_not_ready=False; } else if (kc_p->prod_sel == sel_Consargsnumbers) { kc_tmp = Consargsnumbers(kc_p->u.Consargsnumbers.int_1, kc_tmp); kc_p = kc_p->u.Consargsnumbers.argsnumbers_1; } else { kc_invalid_operator(kc_error_reverse, kc_phylum_argsnumbers, __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/ } } return kc_tmp; } int length_argsnumbers #ifdef KC_USE_PROTOTYPES (argsnumbers kc_p) #else (kc_p) argsnumbers kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_argsnumbers ); } int last_argsnumbers #ifdef KC_USE_PROTOTYPES (argsnumbers kc_p) #else (kc_p) argsnumbers kc_p; #endif { boolean kc_not_ready = True; int kc_tmp = (int)0; /*SUPPRESS 622*/ assert_argsnumbers(kc_p,"kc_p"); if (kc_p->prod_sel == sel_Nilargsnumbers) { (void)fflush(stdout); (void)fprintf(stderr, kc_error_last_with_nil_argument, "argsnumbers", "argsnumbers"); exit( 1 ); /*NOTREACHED*/ } while(kc_not_ready) { /*SUPPRESS 622*/ assert_argsnumbers(kc_p,"kc_p"); if (kc_p->prod_sel == sel_Nilargsnumbers) { kc_not_ready=False; } else if (kc_p->prod_sel == sel_Consargsnumbers) { kc_tmp = kc_p->u.Consargsnumbers.int_1; kc_p = kc_p->u.Consargsnumbers.argsnumbers_1; } else { kc_invalid_operator(kc_error_last, kc_phylum_argsnumbers, __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/ } } return kc_tmp; } argsnumbers map_argsnumbers #ifdef KC_USE_PROTOTYPES (argsnumbers kc_p, int (*kc_fp)(int)) #else (kc_p, kc_fp) argsnumbers kc_p; int (*kc_fp)KC__P((int)); #endif { /*SUPPRESS 622*/ assert_argsnumbers(kc_p,"kc_p"); if (kc_p->prod_sel == sel_Nilargsnumbers) { return kc_p; } else if (kc_p->prod_sel == sel_Consargsnumbers) { return Consargsnumbers( (*kc_fp)(kc_p->u.Consargsnumbers.int_1), map_argsnumbers(kc_p->u.Consargsnumbers.argsnumbers_1, kc_fp)); } else { kc_invalid_operator(kc_error_map, kc_phylum_argsnumbers, __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/return (argsnumbers)0; } } argsnumbers filter_argsnumbers #ifdef KC_USE_PROTOTYPES (argsnumbers kc_p, boolean (*kc_fp)(int)) #else (kc_p, kc_fp) argsnumbers kc_p; boolean (*kc_fp)KC__P((int)); #endif { /*SUPPRESS 622*/ assert_argsnumbers(kc_p,"kc_p"); if (kc_p->prod_sel == sel_Nilargsnumbers) { return kc_p; } else if (kc_p->prod_sel == sel_Consargsnumbers) { if ((*kc_fp)(kc_p->u.Consargsnumbers.int_1)) { return Consargsnumbers( kc_p->u.Consargsnumbers.int_1, filter_argsnumbers(kc_p->u.Consargsnumbers.argsnumbers_1, kc_fp)); } else { return filter_argsnumbers(kc_p->u.Consargsnumbers.argsnumbers_1, kc_fp); } } else { kc_invalid_operator(kc_error_filter, kc_phylum_argsnumbers, __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/return (argsnumbers)0; } } void freelist_argsnumbers #ifdef KC_USE_PROTOTYPES (argsnumbers kc_p) #else (kc_p) argsnumbers kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_argsnumbers ); } rewriterulesinfo concat_rewriterulesinfo #ifdef KC_USE_PROTOTYPES (rewriterulesinfo kc_p1, rewriterulesinfo kc_p2) #else (kc_p1, kc_p2) rewriterulesinfo kc_p1, kc_p2; #endif { return (rewriterulesinfo)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_rewriterulesinfo ); } rewriterulesinfo reverse_rewriterulesinfo #ifdef KC_USE_PROTOTYPES (rewriterulesinfo kc_p) #else (kc_p) rewriterulesinfo kc_p; #endif { return (rewriterulesinfo)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_rewriterulesinfo ); } int length_rewriterulesinfo #ifdef KC_USE_PROTOTYPES (rewriterulesinfo kc_p) #else (kc_p) rewriterulesinfo kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_rewriterulesinfo ); } rewriteruleinfo last_rewriterulesinfo #ifdef KC_USE_PROTOTYPES (rewriterulesinfo kc_p) #else (kc_p) rewriterulesinfo kc_p; #endif { return (rewriteruleinfo)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_rewriterulesinfo ); } rewriterulesinfo map_rewriterulesinfo #ifdef KC_USE_PROTOTYPES (rewriterulesinfo kc_p, rewriteruleinfo (*kc_fp)(rewriteruleinfo)) #else (kc_p, kc_fp) rewriterulesinfo kc_p; rewriteruleinfo (*kc_fp)KC__P((rewriteruleinfo)); #endif { return (rewriterulesinfo)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_rewriterulesinfo ); } rewriterulesinfo filter_rewriterulesinfo #ifdef KC_USE_PROTOTYPES (rewriterulesinfo kc_p, boolean (*kc_fp)(rewriteruleinfo)) #else (kc_p, kc_fp) rewriterulesinfo kc_p; boolean (*kc_fp)KC__P((rewriteruleinfo)); #endif { return (rewriterulesinfo)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_rewriterulesinfo ); } void freelist_rewriterulesinfo #ifdef KC_USE_PROTOTYPES (rewriterulesinfo kc_p) #else (kc_p) rewriterulesinfo kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_rewriterulesinfo ); } withcasesinfo concat_withcasesinfo #ifdef KC_USE_PROTOTYPES (withcasesinfo kc_p1, withcasesinfo kc_p2) #else (kc_p1, kc_p2) withcasesinfo kc_p1, kc_p2; #endif { return (withcasesinfo)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_withcasesinfo ); } withcasesinfo reverse_withcasesinfo #ifdef KC_USE_PROTOTYPES (withcasesinfo kc_p) #else (kc_p) withcasesinfo kc_p; #endif { return (withcasesinfo)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_withcasesinfo ); } int length_withcasesinfo #ifdef KC_USE_PROTOTYPES (withcasesinfo kc_p) #else (kc_p) withcasesinfo kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_withcasesinfo ); } withcaseinfo last_withcasesinfo #ifdef KC_USE_PROTOTYPES (withcasesinfo kc_p) #else (kc_p) withcasesinfo kc_p; #endif { return (withcaseinfo)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_withcasesinfo ); } withcasesinfo map_withcasesinfo #ifdef KC_USE_PROTOTYPES (withcasesinfo kc_p, withcaseinfo (*kc_fp)(withcaseinfo)) #else (kc_p, kc_fp) withcasesinfo kc_p; withcaseinfo (*kc_fp)KC__P((withcaseinfo)); #endif { return (withcasesinfo)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_withcasesinfo ); } withcasesinfo filter_withcasesinfo #ifdef KC_USE_PROTOTYPES (withcasesinfo kc_p, boolean (*kc_fp)(withcaseinfo)) #else (kc_p, kc_fp) withcasesinfo kc_p; boolean (*kc_fp)KC__P((withcaseinfo)); #endif { return (withcasesinfo)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_withcasesinfo ); } void freelist_withcasesinfo #ifdef KC_USE_PROTOTYPES (withcasesinfo kc_p) #else (kc_p) withcasesinfo kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_withcasesinfo ); } rewriteviewsinfo concat_rewriteviewsinfo #ifdef KC_USE_PROTOTYPES (rewriteviewsinfo kc_p1, rewriteviewsinfo kc_p2) #else (kc_p1, kc_p2) rewriteviewsinfo kc_p1, kc_p2; #endif { return (rewriteviewsinfo)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_rewriteviewsinfo ); } rewriteviewsinfo reverse_rewriteviewsinfo #ifdef KC_USE_PROTOTYPES (rewriteviewsinfo kc_p) #else (kc_p) rewriteviewsinfo kc_p; #endif { return (rewriteviewsinfo)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_rewriteviewsinfo ); } int length_rewriteviewsinfo #ifdef KC_USE_PROTOTYPES (rewriteviewsinfo kc_p) #else (kc_p) rewriteviewsinfo kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_rewriteviewsinfo ); } rewriteviewinfo last_rewriteviewsinfo #ifdef KC_USE_PROTOTYPES (rewriteviewsinfo kc_p) #else (kc_p) rewriteviewsinfo kc_p; #endif { return (rewriteviewinfo)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_rewriteviewsinfo ); } rewriteviewsinfo map_rewriteviewsinfo #ifdef KC_USE_PROTOTYPES (rewriteviewsinfo kc_p, rewriteviewinfo (*kc_fp)(rewriteviewinfo)) #else (kc_p, kc_fp) rewriteviewsinfo kc_p; rewriteviewinfo (*kc_fp)KC__P((rewriteviewinfo)); #endif { return (rewriteviewsinfo)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_rewriteviewsinfo ); } rewriteviewsinfo filter_rewriteviewsinfo #ifdef KC_USE_PROTOTYPES (rewriteviewsinfo kc_p, boolean (*kc_fp)(rewriteviewinfo)) #else (kc_p, kc_fp) rewriteviewsinfo kc_p; boolean (*kc_fp)KC__P((rewriteviewinfo)); #endif { return (rewriteviewsinfo)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_rewriteviewsinfo ); } void freelist_rewriteviewsinfo #ifdef KC_USE_PROTOTYPES (rewriteviewsinfo kc_p) #else (kc_p) rewriteviewsinfo kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_rewriteviewsinfo ); } unparseviewsinfo concat_unparseviewsinfo #ifdef KC_USE_PROTOTYPES (unparseviewsinfo kc_p1, unparseviewsinfo kc_p2) #else (kc_p1, kc_p2) unparseviewsinfo kc_p1, kc_p2; #endif { return (unparseviewsinfo)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_unparseviewsinfo ); } unparseviewsinfo reverse_unparseviewsinfo #ifdef KC_USE_PROTOTYPES (unparseviewsinfo kc_p) #else (kc_p) unparseviewsinfo kc_p; #endif { return (unparseviewsinfo)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_unparseviewsinfo ); } int length_unparseviewsinfo #ifdef KC_USE_PROTOTYPES (unparseviewsinfo kc_p) #else (kc_p) unparseviewsinfo kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_unparseviewsinfo ); } unparseviewinfo last_unparseviewsinfo #ifdef KC_USE_PROTOTYPES (unparseviewsinfo kc_p) #else (kc_p) unparseviewsinfo kc_p; #endif { return (unparseviewinfo)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_unparseviewsinfo ); } unparseviewsinfo map_unparseviewsinfo #ifdef KC_USE_PROTOTYPES (unparseviewsinfo kc_p, unparseviewinfo (*kc_fp)(unparseviewinfo)) #else (kc_p, kc_fp) unparseviewsinfo kc_p; unparseviewinfo (*kc_fp)KC__P((unparseviewinfo)); #endif { return (unparseviewsinfo)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_unparseviewsinfo ); } unparseviewsinfo filter_unparseviewsinfo #ifdef KC_USE_PROTOTYPES (unparseviewsinfo kc_p, boolean (*kc_fp)(unparseviewinfo)) #else (kc_p, kc_fp) unparseviewsinfo kc_p; boolean (*kc_fp)KC__P((unparseviewinfo)); #endif { return (unparseviewsinfo)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_unparseviewsinfo ); } void freelist_unparseviewsinfo #ifdef KC_USE_PROTOTYPES (unparseviewsinfo kc_p) #else (kc_p) unparseviewsinfo kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_unparseviewsinfo ); } unparsedeclsinfo concat_unparsedeclsinfo #ifdef KC_USE_PROTOTYPES (unparsedeclsinfo kc_p1, unparsedeclsinfo kc_p2) #else (kc_p1, kc_p2) unparsedeclsinfo kc_p1, kc_p2; #endif { return (unparsedeclsinfo)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_unparsedeclsinfo ); } unparsedeclsinfo reverse_unparsedeclsinfo #ifdef KC_USE_PROTOTYPES (unparsedeclsinfo kc_p) #else (kc_p) unparsedeclsinfo kc_p; #endif { return (unparsedeclsinfo)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_unparsedeclsinfo ); } int length_unparsedeclsinfo #ifdef KC_USE_PROTOTYPES (unparsedeclsinfo kc_p) #else (kc_p) unparsedeclsinfo kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_unparsedeclsinfo ); } unparsedeclinfo last_unparsedeclsinfo #ifdef KC_USE_PROTOTYPES (unparsedeclsinfo kc_p) #else (kc_p) unparsedeclsinfo kc_p; #endif { return (unparsedeclinfo)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_unparsedeclsinfo ); } unparsedeclsinfo map_unparsedeclsinfo #ifdef KC_USE_PROTOTYPES (unparsedeclsinfo kc_p, unparsedeclinfo (*kc_fp)(unparsedeclinfo)) #else (kc_p, kc_fp) unparsedeclsinfo kc_p; unparsedeclinfo (*kc_fp)KC__P((unparsedeclinfo)); #endif { return (unparsedeclsinfo)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_unparsedeclsinfo ); } unparsedeclsinfo filter_unparsedeclsinfo #ifdef KC_USE_PROTOTYPES (unparsedeclsinfo kc_p, boolean (*kc_fp)(unparsedeclinfo)) #else (kc_p, kc_fp) unparsedeclsinfo kc_p; boolean (*kc_fp)KC__P((unparsedeclinfo)); #endif { return (unparsedeclsinfo)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_unparsedeclsinfo ); } void freelist_unparsedeclsinfo #ifdef KC_USE_PROTOTYPES (unparsedeclsinfo kc_p) #else (kc_p) unparsedeclsinfo kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_unparsedeclsinfo ); } ac_declaration_list concat_ac_declaration_list #ifdef KC_USE_PROTOTYPES (ac_declaration_list kc_p1, ac_declaration_list kc_p2) #else (kc_p1, kc_p2) ac_declaration_list kc_p1, kc_p2; #endif { return (ac_declaration_list)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_declaration_list ); } ac_declaration_list reverse_ac_declaration_list #ifdef KC_USE_PROTOTYPES (ac_declaration_list kc_p) #else (kc_p) ac_declaration_list kc_p; #endif { return (ac_declaration_list)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_declaration_list ); } int length_ac_declaration_list #ifdef KC_USE_PROTOTYPES (ac_declaration_list kc_p) #else (kc_p) ac_declaration_list kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_declaration_list ); } ac_declaration last_ac_declaration_list #ifdef KC_USE_PROTOTYPES (ac_declaration_list kc_p) #else (kc_p) ac_declaration_list kc_p; #endif { return (ac_declaration)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_declaration_list ); } ac_declaration_list map_ac_declaration_list #ifdef KC_USE_PROTOTYPES (ac_declaration_list kc_p, ac_declaration (*kc_fp)(ac_declaration)) #else (kc_p, kc_fp) ac_declaration_list kc_p; ac_declaration (*kc_fp)KC__P((ac_declaration)); #endif { return (ac_declaration_list)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_ac_declaration_list ); } ac_declaration_list filter_ac_declaration_list #ifdef KC_USE_PROTOTYPES (ac_declaration_list kc_p, boolean (*kc_fp)(ac_declaration)) #else (kc_p, kc_fp) ac_declaration_list kc_p; boolean (*kc_fp)KC__P((ac_declaration)); #endif { return (ac_declaration_list)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_ac_declaration_list ); } void freelist_ac_declaration_list #ifdef KC_USE_PROTOTYPES (ac_declaration_list kc_p) #else (kc_p) ac_declaration_list kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_declaration_list ); } ac_declaration_specifiers concat_ac_declaration_specifiers #ifdef KC_USE_PROTOTYPES (ac_declaration_specifiers kc_p1, ac_declaration_specifiers kc_p2) #else (kc_p1, kc_p2) ac_declaration_specifiers kc_p1, kc_p2; #endif { return (ac_declaration_specifiers)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_declaration_specifiers ); } ac_declaration_specifiers reverse_ac_declaration_specifiers #ifdef KC_USE_PROTOTYPES (ac_declaration_specifiers kc_p) #else (kc_p) ac_declaration_specifiers kc_p; #endif { return (ac_declaration_specifiers)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_declaration_specifiers ); } int length_ac_declaration_specifiers #ifdef KC_USE_PROTOTYPES (ac_declaration_specifiers kc_p) #else (kc_p) ac_declaration_specifiers kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_declaration_specifiers ); } ac_declaration_specifier last_ac_declaration_specifiers #ifdef KC_USE_PROTOTYPES (ac_declaration_specifiers kc_p) #else (kc_p) ac_declaration_specifiers kc_p; #endif { return (ac_declaration_specifier)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_declaration_specifiers ); } ac_declaration_specifiers map_ac_declaration_specifiers #ifdef KC_USE_PROTOTYPES (ac_declaration_specifiers kc_p, ac_declaration_specifier (*kc_fp)(ac_declaration_specifier)) #else (kc_p, kc_fp) ac_declaration_specifiers kc_p; ac_declaration_specifier (*kc_fp)KC__P((ac_declaration_specifier)); #endif { return (ac_declaration_specifiers)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_ac_declaration_specifiers ); } ac_declaration_specifiers filter_ac_declaration_specifiers #ifdef KC_USE_PROTOTYPES (ac_declaration_specifiers kc_p, boolean (*kc_fp)(ac_declaration_specifier)) #else (kc_p, kc_fp) ac_declaration_specifiers kc_p; boolean (*kc_fp)KC__P((ac_declaration_specifier)); #endif { return (ac_declaration_specifiers)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_ac_declaration_specifiers ); } void freelist_ac_declaration_specifiers #ifdef KC_USE_PROTOTYPES (ac_declaration_specifiers kc_p) #else (kc_p) ac_declaration_specifiers kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_declaration_specifiers ); } ac_init_declarator_list concat_ac_init_declarator_list #ifdef KC_USE_PROTOTYPES (ac_init_declarator_list kc_p1, ac_init_declarator_list kc_p2) #else (kc_p1, kc_p2) ac_init_declarator_list kc_p1, kc_p2; #endif { return (ac_init_declarator_list)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_init_declarator_list ); } ac_init_declarator_list reverse_ac_init_declarator_list #ifdef KC_USE_PROTOTYPES (ac_init_declarator_list kc_p) #else (kc_p) ac_init_declarator_list kc_p; #endif { return (ac_init_declarator_list)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_init_declarator_list ); } int length_ac_init_declarator_list #ifdef KC_USE_PROTOTYPES (ac_init_declarator_list kc_p) #else (kc_p) ac_init_declarator_list kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_init_declarator_list ); } ac_init_declarator last_ac_init_declarator_list #ifdef KC_USE_PROTOTYPES (ac_init_declarator_list kc_p) #else (kc_p) ac_init_declarator_list kc_p; #endif { return (ac_init_declarator)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_init_declarator_list ); } ac_init_declarator_list map_ac_init_declarator_list #ifdef KC_USE_PROTOTYPES (ac_init_declarator_list kc_p, ac_init_declarator (*kc_fp)(ac_init_declarator)) #else (kc_p, kc_fp) ac_init_declarator_list kc_p; ac_init_declarator (*kc_fp)KC__P((ac_init_declarator)); #endif { return (ac_init_declarator_list)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_ac_init_declarator_list ); } ac_init_declarator_list filter_ac_init_declarator_list #ifdef KC_USE_PROTOTYPES (ac_init_declarator_list kc_p, boolean (*kc_fp)(ac_init_declarator)) #else (kc_p, kc_fp) ac_init_declarator_list kc_p; boolean (*kc_fp)KC__P((ac_init_declarator)); #endif { return (ac_init_declarator_list)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_ac_init_declarator_list ); } void freelist_ac_init_declarator_list #ifdef KC_USE_PROTOTYPES (ac_init_declarator_list kc_p) #else (kc_p) ac_init_declarator_list kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_init_declarator_list ); } ac_type_qualifier_list concat_ac_type_qualifier_list #ifdef KC_USE_PROTOTYPES (ac_type_qualifier_list kc_p1, ac_type_qualifier_list kc_p2) #else (kc_p1, kc_p2) ac_type_qualifier_list kc_p1, kc_p2; #endif { return (ac_type_qualifier_list)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_type_qualifier_list ); } ac_type_qualifier_list reverse_ac_type_qualifier_list #ifdef KC_USE_PROTOTYPES (ac_type_qualifier_list kc_p) #else (kc_p) ac_type_qualifier_list kc_p; #endif { return (ac_type_qualifier_list)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_type_qualifier_list ); } int length_ac_type_qualifier_list #ifdef KC_USE_PROTOTYPES (ac_type_qualifier_list kc_p) #else (kc_p) ac_type_qualifier_list kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_type_qualifier_list ); } ac_type_qualifier last_ac_type_qualifier_list #ifdef KC_USE_PROTOTYPES (ac_type_qualifier_list kc_p) #else (kc_p) ac_type_qualifier_list kc_p; #endif { return (ac_type_qualifier)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_type_qualifier_list ); } ac_type_qualifier_list map_ac_type_qualifier_list #ifdef KC_USE_PROTOTYPES (ac_type_qualifier_list kc_p, ac_type_qualifier (*kc_fp)(ac_type_qualifier)) #else (kc_p, kc_fp) ac_type_qualifier_list kc_p; ac_type_qualifier (*kc_fp)KC__P((ac_type_qualifier)); #endif { return (ac_type_qualifier_list)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_ac_type_qualifier_list ); } ac_type_qualifier_list filter_ac_type_qualifier_list #ifdef KC_USE_PROTOTYPES (ac_type_qualifier_list kc_p, boolean (*kc_fp)(ac_type_qualifier)) #else (kc_p, kc_fp) ac_type_qualifier_list kc_p; boolean (*kc_fp)KC__P((ac_type_qualifier)); #endif { return (ac_type_qualifier_list)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_ac_type_qualifier_list ); } void freelist_ac_type_qualifier_list #ifdef KC_USE_PROTOTYPES (ac_type_qualifier_list kc_p) #else (kc_p) ac_type_qualifier_list kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_type_qualifier_list ); } ac_parameter_list concat_ac_parameter_list #ifdef KC_USE_PROTOTYPES (ac_parameter_list kc_p1, ac_parameter_list kc_p2) #else (kc_p1, kc_p2) ac_parameter_list kc_p1, kc_p2; #endif { return (ac_parameter_list)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_parameter_list ); } ac_parameter_list reverse_ac_parameter_list #ifdef KC_USE_PROTOTYPES (ac_parameter_list kc_p) #else (kc_p) ac_parameter_list kc_p; #endif { return (ac_parameter_list)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_parameter_list ); } int length_ac_parameter_list #ifdef KC_USE_PROTOTYPES (ac_parameter_list kc_p) #else (kc_p) ac_parameter_list kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_parameter_list ); } ac_parameter_declaration last_ac_parameter_list #ifdef KC_USE_PROTOTYPES (ac_parameter_list kc_p) #else (kc_p) ac_parameter_list kc_p; #endif { return (ac_parameter_declaration)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_parameter_list ); } ac_parameter_list map_ac_parameter_list #ifdef KC_USE_PROTOTYPES (ac_parameter_list kc_p, ac_parameter_declaration (*kc_fp)(ac_parameter_declaration)) #else (kc_p, kc_fp) ac_parameter_list kc_p; ac_parameter_declaration (*kc_fp)KC__P((ac_parameter_declaration)); #endif { return (ac_parameter_list)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_ac_parameter_list ); } ac_parameter_list filter_ac_parameter_list #ifdef KC_USE_PROTOTYPES (ac_parameter_list kc_p, boolean (*kc_fp)(ac_parameter_declaration)) #else (kc_p, kc_fp) ac_parameter_list kc_p; boolean (*kc_fp)KC__P((ac_parameter_declaration)); #endif { return (ac_parameter_list)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_ac_parameter_list ); } void freelist_ac_parameter_list #ifdef KC_USE_PROTOTYPES (ac_parameter_list kc_p) #else (kc_p) ac_parameter_list kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_parameter_list ); } ac_identifier_list concat_ac_identifier_list #ifdef KC_USE_PROTOTYPES (ac_identifier_list kc_p1, ac_identifier_list kc_p2) #else (kc_p1, kc_p2) ac_identifier_list kc_p1, kc_p2; #endif { return (ac_identifier_list)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_ac_identifier_list ); } ac_identifier_list reverse_ac_identifier_list #ifdef KC_USE_PROTOTYPES (ac_identifier_list kc_p) #else (kc_p) ac_identifier_list kc_p; #endif { return (ac_identifier_list)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_identifier_list ); } int length_ac_identifier_list #ifdef KC_USE_PROTOTYPES (ac_identifier_list kc_p) #else (kc_p) ac_identifier_list kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_identifier_list ); } ID last_ac_identifier_list #ifdef KC_USE_PROTOTYPES (ac_identifier_list kc_p) #else (kc_p) ac_identifier_list kc_p; #endif { return (ID)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_identifier_list ); } ac_identifier_list map_ac_identifier_list #ifdef KC_USE_PROTOTYPES (ac_identifier_list kc_p, ID (*kc_fp)(ID)) #else (kc_p, kc_fp) ac_identifier_list kc_p; ID (*kc_fp)KC__P((ID)); #endif { return (ac_identifier_list)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_ac_identifier_list ); } ac_identifier_list filter_ac_identifier_list #ifdef KC_USE_PROTOTYPES (ac_identifier_list kc_p, boolean (*kc_fp)(ID)) #else (kc_p, kc_fp) ac_identifier_list kc_p; boolean (*kc_fp)KC__P((ID)); #endif { return (ac_identifier_list)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_ac_identifier_list ); } void freelist_ac_identifier_list #ifdef KC_USE_PROTOTYPES (ac_identifier_list kc_p) #else (kc_p) ac_identifier_list kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_ac_identifier_list ); } addedphylumdeclarations concat_addedphylumdeclarations #ifdef KC_USE_PROTOTYPES (addedphylumdeclarations kc_p1, addedphylumdeclarations kc_p2) #else (kc_p1, kc_p2) addedphylumdeclarations kc_p1, kc_p2; #endif { return (addedphylumdeclarations)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_addedphylumdeclarations ); } addedphylumdeclarations reverse_addedphylumdeclarations #ifdef KC_USE_PROTOTYPES (addedphylumdeclarations kc_p) #else (kc_p) addedphylumdeclarations kc_p; #endif { return (addedphylumdeclarations)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_addedphylumdeclarations ); } int length_addedphylumdeclarations #ifdef KC_USE_PROTOTYPES (addedphylumdeclarations kc_p) #else (kc_p) addedphylumdeclarations kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_addedphylumdeclarations ); } addedphylumdeclaration last_addedphylumdeclarations #ifdef KC_USE_PROTOTYPES (addedphylumdeclarations kc_p) #else (kc_p) addedphylumdeclarations kc_p; #endif { return (addedphylumdeclaration)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_addedphylumdeclarations ); } addedphylumdeclarations map_addedphylumdeclarations #ifdef KC_USE_PROTOTYPES (addedphylumdeclarations kc_p, addedphylumdeclaration (*kc_fp)(addedphylumdeclaration)) #else (kc_p, kc_fp) addedphylumdeclarations kc_p; addedphylumdeclaration (*kc_fp)KC__P((addedphylumdeclaration)); #endif { return (addedphylumdeclarations)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_addedphylumdeclarations ); } addedphylumdeclarations filter_addedphylumdeclarations #ifdef KC_USE_PROTOTYPES (addedphylumdeclarations kc_p, boolean (*kc_fp)(addedphylumdeclaration)) #else (kc_p, kc_fp) addedphylumdeclarations kc_p; boolean (*kc_fp)KC__P((addedphylumdeclaration)); #endif { return (addedphylumdeclarations)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_addedphylumdeclarations ); } void freelist_addedphylumdeclarations #ifdef KC_USE_PROTOTYPES (addedphylumdeclarations kc_p) #else (kc_p) addedphylumdeclarations kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_addedphylumdeclarations ); } countedphylumdeclarations concat_countedphylumdeclarations #ifdef KC_USE_PROTOTYPES (countedphylumdeclarations kc_p1, countedphylumdeclarations kc_p2) #else (kc_p1, kc_p2) countedphylumdeclarations kc_p1, kc_p2; #endif { return (countedphylumdeclarations)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_countedphylumdeclarations ); } countedphylumdeclarations reverse_countedphylumdeclarations #ifdef KC_USE_PROTOTYPES (countedphylumdeclarations kc_p) #else (kc_p) countedphylumdeclarations kc_p; #endif { return (countedphylumdeclarations)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_countedphylumdeclarations ); } int length_countedphylumdeclarations #ifdef KC_USE_PROTOTYPES (countedphylumdeclarations kc_p) #else (kc_p) countedphylumdeclarations kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_countedphylumdeclarations ); } countedphylumdeclaration last_countedphylumdeclarations #ifdef KC_USE_PROTOTYPES (countedphylumdeclarations kc_p) #else (kc_p) countedphylumdeclarations kc_p; #endif { return (countedphylumdeclaration)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_countedphylumdeclarations ); } countedphylumdeclarations map_countedphylumdeclarations #ifdef KC_USE_PROTOTYPES (countedphylumdeclarations kc_p, countedphylumdeclaration (*kc_fp)(countedphylumdeclaration)) #else (kc_p, kc_fp) countedphylumdeclarations kc_p; countedphylumdeclaration (*kc_fp)KC__P((countedphylumdeclaration)); #endif { return (countedphylumdeclarations)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_countedphylumdeclarations ); } countedphylumdeclarations filter_countedphylumdeclarations #ifdef KC_USE_PROTOTYPES (countedphylumdeclarations kc_p, boolean (*kc_fp)(countedphylumdeclaration)) #else (kc_p, kc_fp) countedphylumdeclarations kc_p; boolean (*kc_fp)KC__P((countedphylumdeclaration)); #endif { return (countedphylumdeclarations)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_countedphylumdeclarations ); } void freelist_countedphylumdeclarations #ifdef KC_USE_PROTOTYPES (countedphylumdeclarations kc_p) #else (kc_p) countedphylumdeclarations kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_countedphylumdeclarations ); } bindingidmarks concat_bindingidmarks #ifdef KC_USE_PROTOTYPES (bindingidmarks kc_p1, bindingidmarks kc_p2) #else (kc_p1, kc_p2) bindingidmarks kc_p1, kc_p2; #endif { return (bindingidmarks)kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_bindingidmarks ); } bindingidmarks reverse_bindingidmarks #ifdef KC_USE_PROTOTYPES (bindingidmarks kc_p) #else (kc_p) bindingidmarks kc_p; #endif { return (bindingidmarks)kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_bindingidmarks ); } int length_bindingidmarks #ifdef KC_USE_PROTOTYPES (bindingidmarks kc_p) #else (kc_p) bindingidmarks kc_p; #endif { return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_bindingidmarks ); } bindingidmark last_bindingidmarks #ifdef KC_USE_PROTOTYPES (bindingidmarks kc_p) #else (kc_p) bindingidmarks kc_p; #endif { return (bindingidmark)kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_bindingidmarks ); } bindingidmarks map_bindingidmarks #ifdef KC_USE_PROTOTYPES (bindingidmarks kc_p, bindingidmark (*kc_fp)(bindingidmark)) #else (kc_p, kc_fp) bindingidmarks kc_p; bindingidmark (*kc_fp)KC__P((bindingidmark)); #endif { return (bindingidmarks)kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_bindingidmarks ); } bindingidmarks filter_bindingidmarks #ifdef KC_USE_PROTOTYPES (bindingidmarks kc_p, boolean (*kc_fp)(bindingidmark)) #else (kc_p, kc_fp) bindingidmarks kc_p; boolean (*kc_fp)KC__P((bindingidmark)); #endif { return (bindingidmarks)kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_bindingidmarks ); } void freelist_bindingidmarks #ifdef KC_USE_PROTOTYPES (bindingidmarks kc_p) #else (kc_p) bindingidmarks kc_p; #endif { kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_bindingidmarks ); } /*ARGSUSED*/ kc_voidptr_t kc_do_copy_phylum #ifdef KC_USE_PROTOTYPES (kc_voidptr_t kc_p, boolean kc_copy_attributes, kc_enum_phyla kc_phylum) #else (kc_p, kc_copy_attributes, kc_phylum) kc_voidptr_t kc_p; boolean kc_copy_attributes; kc_enum_phyla kc_phylum; #endif { kc_voidptr_t kc_subtmp[7]; kc_voidptr_t kc_answer = 0; int kc_i; kc_enum_operators kc_prodsel; KC_OPERATOR_INFO *kc_op_info; int kc_st; kc_hashtable_t kc_a_ht; /* SHOULD be done using bigatoms? */ /*SUPPRESS 622*/ assertReason(kc_phylum != kc_phylum_int, "kc_do_copy_phylum called with kc_phylum_int argument"); /*SUPPRESS 622*/ assertReason(kc_phylum != kc_phylum_float, "kc_do_copy_phylum called with kc_phylum_float argument"); /*SUPPRESS 622*/ assertPhylum(((casestring)kc_p),"kc_p",kc_phylum); if ((kc_phylum == kc_phylum_voidptr)) { return kc_p; } kc_prodsel = ((casestring)kc_p)->prod_sel; kc_op_info = &kc_OperatorInfo[(int)kc_prodsel]; kc_st = (int)kc_op_info->uniq_stored; kc_a_ht = kc_hashtables[kc_st]; if (kc_st && (/* kc_storageclass_still_uniq[kc_st] || */ ((kc_a_ht->in_block != 0) && (*kc_a_ht->in_block)((kc_voidptr_t)kc_p, kc_a_ht->malloc_private_data)))) { return kc_p; } else if (kc_phylum == kc_phylum_casestring) { return (kc_voidptr_t)mkcasestring(((casestring)kc_p)->name); } else if (kc_phylum == kc_phylum_nocasestring) { return (kc_voidptr_t)mknocasestring(((nocasestring)kc_p)->name); } switch(kc_prodsel) { case (int)sel_Int: { int kc_sub_int_1; kc_sub_int_1 = copy_int(((INT)kc_p)->u.Int.int_1, kc_copy_attributes); kc_answer = (kc_voidptr_t) Int( kc_sub_int_1); break; } case (int)sel_Argument: { int kc_sub_int_1; kc_subtmp[0] = kc_do_copy_phylum((kc_voidptr_t)((argument)kc_p)->u.Argument.ID_1, kc_copy_attributes, kc_phylum_ID); kc_sub_int_1 = copy_int(((argument)kc_p)->u.Argument.int_1, kc_copy_attributes); kc_answer = (kc_voidptr_t) Argument( (ID)kc_subtmp[0], kc_sub_int_1); break; } case (int)sel_CExpressionNl: { int kc_sub_int_1; kc_sub_int_1 = copy_int(((Cexpression_elem)kc_p)->u.CExpressionNl.int_1, kc_copy_attributes); kc_answer = (kc_voidptr_t) CExpressionNl( kc_sub_int_1); break; } case (int)sel_CExpressionDQNl: { int kc_sub_int_1; kc_sub_int_1 = copy_int(((CexpressionDQ_elem)kc_p)->u.CExpressionDQNl.int_1, kc_copy_attributes); kc_answer = (kc_voidptr_t) CExpressionDQNl( kc_sub_int_1); break; } case (int)sel_CExpressionSQNl: { int kc_sub_int_1; kc_sub_int_1 = copy_int(((CexpressionSQ_elem)kc_p)->u.CExpressionSQNl.int_1, kc_copy_attributes); kc_answer = (kc_voidptr_t) CExpressionSQNl( kc_sub_int_1); break; } case (int)sel_IncludeNl: { int kc_sub_int_1; kc_sub_int_1 = copy_int(((include)kc_p)->u.IncludeNl.int_1, kc_copy_attributes); kc_answer = (kc_voidptr_t) IncludeNl( kc_sub_int_1); break; } case (int)sel_FnDeclaration: { int kc_sub_int_1; kc_subtmp[0] = kc_do_copy_phylum((kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.ID_1, kc_copy_attributes, kc_phylum_ID); kc_sub_int_1 = copy_int(((fndeclaration)kc_p)->u.FnDeclaration.int_1, kc_copy_attributes); kc_subtmp[2] = kc_do_copy_phylum((kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.ID_2, kc_copy_attributes, kc_phylum_ID); kc_subtmp[3] = kc_do_copy_phylum((kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.fnarguments_1, kc_copy_attributes, kc_phylum_fnarguments); kc_subtmp[4] = kc_do_copy_phylum((kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.Cvariabledeclarations_1, kc_copy_attributes, kc_phylum_Cvariabledeclarations); kc_subtmp[5] = kc_do_copy_phylum((kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.Ctext_1, kc_copy_attributes, kc_phylum_Ctext); kc_subtmp[6] = kc_do_copy_phylum((kc_voidptr_t)((fndeclaration)kc_p)->u.FnDeclaration.fnclass_1, kc_copy_attributes, kc_phylum_fnclass); kc_answer = (kc_voidptr_t) FnDeclaration( (ID)kc_subtmp[0], kc_sub_int_1, (ID)kc_subtmp[2], (fnarguments)kc_subtmp[3], (Cvariabledeclarations)kc_subtmp[4], (Ctext)kc_subtmp[5], (fnclass)kc_subtmp[6]); break; } case (int)sel_CVPointer: { int kc_sub_int_1; kc_sub_int_1 = copy_int(((Cvariable)kc_p)->u.CVPointer.int_1, kc_copy_attributes); kc_subtmp[1] = kc_do_copy_phylum((kc_voidptr_t)((Cvariable)kc_p)->u.CVPointer.ID_1, kc_copy_attributes, kc_phylum_ID); kc_answer = (kc_voidptr_t) CVPointer( kc_sub_int_1, (ID)kc_subtmp[1]); break; } case (int)sel_CVFunction: { int kc_sub_int_1; int kc_sub_int_2; kc_sub_int_1 = copy_int(((Cvariable)kc_p)->u.CVFunction.int_1, kc_copy_attributes); kc_sub_int_2 = copy_int(((Cvariable)kc_p)->u.CVFunction.int_2, kc_copy_attributes); kc_subtmp[2] = kc_do_copy_phylum((kc_voidptr_t)((Cvariable)kc_p)->u.CVFunction.ID_1, kc_copy_attributes, kc_phylum_ID); kc_answer = (kc_voidptr_t) CVFunction( kc_sub_int_1, kc_sub_int_2, (ID)kc_subtmp[2]); break; } case (int)sel_CTextNl: { int kc_sub_int_1; kc_sub_int_1 = copy_int(((Ctext_elem)kc_p)->u.CTextNl.int_1, kc_copy_attributes); kc_answer = (kc_voidptr_t) CTextNl( kc_sub_int_1); break; } case (int)sel_FileLine: { int kc_sub_int_1; kc_subtmp[0] = kc_do_copy_phylum((kc_voidptr_t)((fileline)kc_p)->u.FileLine.casestring_1, kc_copy_attributes, kc_phylum_casestring); kc_sub_int_1 = copy_int(((fileline)kc_p)->u.FileLine.int_1, kc_copy_attributes); kc_answer = (kc_voidptr_t) FileLine( (casestring)kc_subtmp[0], kc_sub_int_1); break; } case (int)sel_Consnooperatorsstack: { int kc_sub_int_1; kc_sub_int_1 = copy_int(((nooperatorsstack)kc_p)->u.Consnooperatorsstack.int_1, kc_copy_attributes); kc_subtmp[1] = kc_do_copy_phylum((kc_voidptr_t)((nooperatorsstack)kc_p)->u.Consnooperatorsstack.nooperatorsstack_1, kc_copy_attributes, kc_phylum_nooperatorsstack); kc_answer = (kc_voidptr_t) Consnooperatorsstack( kc_sub_int_1, (nooperatorsstack)kc_subtmp[1]); break; } case (int)sel_ScopeTypeFileLine: { int kc_sub_int_1; int kc_sub_int_2; kc_sub_int_1 = copy_int(((scopetypefileline)kc_p)->u.ScopeTypeFileLine.int_1, kc_copy_attributes); kc_subtmp[1] = kc_do_copy_phylum((kc_voidptr_t)((scopetypefileline)kc_p)->u.ScopeTypeFileLine.IDtype_1, kc_copy_attributes, kc_phylum_IDtype); kc_subtmp[2] = kc_do_copy_phylum((kc_voidptr_t)((scopetypefileline)kc_p)->u.ScopeTypeFileLine.casestring_1, kc_copy_attributes, kc_phylum_casestring); kc_sub_int_2 = copy_int(((scopetypefileline)kc_p)->u.ScopeTypeFileLine.int_2, kc_copy_attributes); kc_answer = (kc_voidptr_t) ScopeTypeFileLine( kc_sub_int_1, (IDtype)kc_subtmp[1], (casestring)kc_subtmp[2], kc_sub_int_2); break; } case (int)sel_ITPatternVariable: { int kc_sub_int_1; kc_subtmp[0] = kc_do_copy_phylum((kc_voidptr_t)((IDtype)kc_p)->u.ITPatternVariable.ID_1, kc_copy_attributes, kc_phylum_ID); kc_sub_int_1 = copy_int(((IDtype)kc_p)->u.ITPatternVariable.int_1, kc_copy_attributes); kc_answer = (kc_voidptr_t) ITPatternVariable( (ID)kc_subtmp[0], kc_sub_int_1); break; } case (int)sel_Consintstack: { int kc_sub_int_1; kc_sub_int_1 = copy_int(((intstack)kc_p)->u.Consintstack.int_1, kc_copy_attributes); kc_subtmp[1] = kc_do_copy_phylum((kc_voidptr_t)((intstack)kc_p)->u.Consintstack.intstack_1, kc_copy_attributes, kc_phylum_intstack); kc_answer = (kc_voidptr_t) Consintstack( kc_sub_int_1, (intstack)kc_subtmp[1]); break; } case (int)sel_Conspath: { int kc_sub_int_1; kc_sub_int_1 = copy_int(((path)kc_p)->u.Conspath.int_1, kc_copy_attributes); kc_subtmp[1] = kc_do_copy_phylum((kc_voidptr_t)((path)kc_p)->u.Conspath.path_1, kc_copy_attributes, kc_phylum_path); kc_answer = (kc_voidptr_t) Conspath( kc_sub_int_1, (path)kc_subtmp[1]); break; } case (int)sel_Consargsnumbers: { int kc_sub_int_1; kc_sub_int_1 = copy_int(((argsnumbers)kc_p)->u.Consargsnumbers.int_1, kc_copy_attributes); kc_subtmp[1] = kc_do_copy_phylum((kc_voidptr_t)((argsnumbers)kc_p)->u.Consargsnumbers.argsnumbers_1, kc_copy_attributes, kc_phylum_argsnumbers); kc_answer = (kc_voidptr_t) Consargsnumbers( kc_sub_int_1, (argsnumbers)kc_subtmp[1]); break; } case (int)sel_Problem1int1: { int kc_sub_int_1; kc_subtmp[0] = kc_do_copy_phylum((kc_voidptr_t)((problem)kc_p)->u.Problem1int1.casestring_1, kc_copy_attributes, kc_phylum_casestring); kc_sub_int_1 = copy_int(((problem)kc_p)->u.Problem1int1.int_1, kc_copy_attributes); kc_subtmp[2] = kc_do_copy_phylum((kc_voidptr_t)((problem)kc_p)->u.Problem1int1.casestring_2, kc_copy_attributes, kc_phylum_casestring); kc_answer = (kc_voidptr_t) Problem1int1( (casestring)kc_subtmp[0], kc_sub_int_1, (casestring)kc_subtmp[2]); break; } case (int)sel_Problem3int1: { int kc_sub_int_1; kc_subtmp[0] = kc_do_copy_phylum((kc_voidptr_t)((problem)kc_p)->u.Problem3int1.casestring_1, kc_copy_attributes, kc_phylum_casestring); kc_subtmp[1] = kc_do_copy_phylum((kc_voidptr_t)((problem)kc_p)->u.Problem3int1.casestring_2, kc_copy_attributes, kc_phylum_casestring); kc_subtmp[2] = kc_do_copy_phylum((kc_voidptr_t)((problem)kc_p)->u.Problem3int1.casestring_3, kc_copy_attributes, kc_phylum_casestring); kc_sub_int_1 = copy_int(((problem)kc_p)->u.Problem3int1.int_1, kc_copy_attributes); kc_subtmp[4] = kc_do_copy_phylum((kc_voidptr_t)((problem)kc_p)->u.Problem3int1.casestring_4, kc_copy_attributes, kc_phylum_casestring); kc_answer = (kc_voidptr_t) Problem3int1( (casestring)kc_subtmp[0], (casestring)kc_subtmp[1], (casestring)kc_subtmp[2], kc_sub_int_1, (casestring)kc_subtmp[4]); break; } default: for (kc_i = 0; kc_i < kc_op_info->no_sons; kc_i++) { kc_subtmp[kc_i] = kc_do_copy_phylum((kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_op_info->suboffset[kc_i]), kc_copy_attributes, kc_op_info->subphylum[kc_i] ); } switch(kc_op_info->no_sons) { case 0: kc_answer = (kc_voidptr_t) (*kc_op_info->create_routine)( kc_prodsel); break; case 1: kc_answer = (kc_voidptr_t) (*kc_op_info->create_routine)( kc_prodsel, kc_subtmp[0] ); break; case 2: kc_answer = (kc_voidptr_t) (*kc_op_info->create_routine)( kc_prodsel, kc_subtmp[0], kc_subtmp[1] ); break; case 3: kc_answer = (kc_voidptr_t) (*kc_op_info->create_routine)( kc_prodsel, kc_subtmp[0], kc_subtmp[1], kc_subtmp[2] ); break; case 4: kc_answer = (kc_voidptr_t) (*kc_op_info->create_routine)( kc_prodsel, kc_subtmp[0], kc_subtmp[1], kc_subtmp[2], kc_subtmp[3] ); break; case 5: kc_answer = (kc_voidptr_t) (*kc_op_info->create_routine)( kc_prodsel, kc_subtmp[0], kc_subtmp[1], kc_subtmp[2], kc_subtmp[3], kc_subtmp[4] ); break; case 6: kc_answer = (kc_voidptr_t) (*kc_op_info->create_routine)( kc_prodsel, kc_subtmp[0], kc_subtmp[1], kc_subtmp[2], kc_subtmp[3], kc_subtmp[4], kc_subtmp[5] ); break; case 7: kc_answer = (kc_voidptr_t) (*kc_op_info->create_routine)( kc_prodsel, kc_subtmp[0], kc_subtmp[1], kc_subtmp[2], kc_subtmp[3], kc_subtmp[4], kc_subtmp[5], kc_subtmp[6] ); break; default: /*SUPPRESS 622*/ assertReason(kc_zero_constant, "unexpected number of sub-phyla");/*NOTREACHED*/ } break; } if (kc_copy_attributes && (kc_PhylumInfo[(int)kc_phylum].copy_attributes != 0)) { (*kc_PhylumInfo[(int)kc_phylum].copy_attributes)(kc_p, kc_answer); } return kc_answer; } /*ARGSUSED*/ nocasestring copy_nocasestring #ifdef KC_USE_PROTOTYPES (nocasestring kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) nocasestring kc_p; boolean kc_copy_attributes; #endif { return (nocasestring)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_nocasestring); } /*ARGSUSED*/ casestring copy_casestring #ifdef KC_USE_PROTOTYPES (casestring kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) casestring kc_p; boolean kc_copy_attributes; #endif { return (casestring)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_casestring); } /*ARGSUSED*/ float copy_float #ifdef KC_USE_PROTOTYPES (float kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) float kc_p; boolean kc_copy_attributes; #endif { return kc_p; } /*ARGSUSED*/ int copy_int #ifdef KC_USE_PROTOTYPES (int kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) int kc_p; boolean kc_copy_attributes; #endif { return kc_p; } /*ARGSUSED*/ voidptr copy_voidptr #ifdef KC_USE_PROTOTYPES (voidptr kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) voidptr kc_p; boolean kc_copy_attributes; #endif { return (voidptr)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_voidptr); } uniqID copy_uniqID #ifdef KC_USE_PROTOTYPES (uniqID kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) uniqID kc_p; boolean kc_copy_attributes; #endif { return (uniqID)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_uniqID); } ID copy_ID #ifdef KC_USE_PROTOTYPES (ID kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ID kc_p; boolean kc_copy_attributes; #endif { return (ID)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ID); } INT copy_INT #ifdef KC_USE_PROTOTYPES (INT kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) INT kc_p; boolean kc_copy_attributes; #endif { return (INT)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_INT); } STRING copy_STRING #ifdef KC_USE_PROTOTYPES (STRING kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) STRING kc_p; boolean kc_copy_attributes; #endif { return (STRING)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_STRING); } phylumdeclarationsroot copy_phylumdeclarationsroot #ifdef KC_USE_PROTOTYPES (phylumdeclarationsroot kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) phylumdeclarationsroot kc_p; boolean kc_copy_attributes; #endif { return (phylumdeclarationsroot)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_phylumdeclarationsroot); } phylumdeclarations copy_phylumdeclarations #ifdef KC_USE_PROTOTYPES (phylumdeclarations kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) phylumdeclarations kc_p; boolean kc_copy_attributes; #endif { return (phylumdeclarations)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_phylumdeclarations); } phylumnames copy_phylumnames #ifdef KC_USE_PROTOTYPES (phylumnames kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) phylumnames kc_p; boolean kc_copy_attributes; #endif { return (phylumnames)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_phylumnames); } phylumdeclaration copy_phylumdeclaration #ifdef KC_USE_PROTOTYPES (phylumdeclaration kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) phylumdeclaration kc_p; boolean kc_copy_attributes; #endif { return (phylumdeclaration)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_phylumdeclaration); } storageoption copy_storageoption #ifdef KC_USE_PROTOTYPES (storageoption kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) storageoption kc_p; boolean kc_copy_attributes; #endif { return (storageoption)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_storageoption); } storageclasses copy_storageclasses #ifdef KC_USE_PROTOTYPES (storageclasses kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) storageclasses kc_p; boolean kc_copy_attributes; #endif { return (storageclasses)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_storageclasses); } productionblock copy_productionblock #ifdef KC_USE_PROTOTYPES (productionblock kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) productionblock kc_p; boolean kc_copy_attributes; #endif { return (productionblock)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_productionblock); } alternatives copy_alternatives #ifdef KC_USE_PROTOTYPES (alternatives kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) alternatives kc_p; boolean kc_copy_attributes; #endif { return (alternatives)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_alternatives); } alternative copy_alternative #ifdef KC_USE_PROTOTYPES (alternative kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) alternative kc_p; boolean kc_copy_attributes; #endif { return (alternative)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_alternative); } arguments copy_arguments #ifdef KC_USE_PROTOTYPES (arguments kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) arguments kc_p; boolean kc_copy_attributes; #endif { return (arguments)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_arguments); } argument copy_argument #ifdef KC_USE_PROTOTYPES (argument kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) argument kc_p; boolean kc_copy_attributes; #endif { return (argument)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_argument); } Ccode_option copy_Ccode_option #ifdef KC_USE_PROTOTYPES (Ccode_option kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) Ccode_option kc_p; boolean kc_copy_attributes; #endif { return (Ccode_option)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_Ccode_option); } attributes copy_attributes #ifdef KC_USE_PROTOTYPES (attributes kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) attributes kc_p; boolean kc_copy_attributes; #endif { return (attributes)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_attributes); } attribute copy_attribute #ifdef KC_USE_PROTOTYPES (attribute kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) attribute kc_p; boolean kc_copy_attributes; #endif { return (attribute)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_attribute); } attribute_initialisation_option copy_attribute_initialisation_option #ifdef KC_USE_PROTOTYPES (attribute_initialisation_option kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) attribute_initialisation_option kc_p; boolean kc_copy_attributes; #endif { return (attribute_initialisation_option)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_attribute_initialisation_option); } Cexpression copy_Cexpression #ifdef KC_USE_PROTOTYPES (Cexpression kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) Cexpression kc_p; boolean kc_copy_attributes; #endif { return (Cexpression)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_Cexpression); } Cexpression_elem copy_Cexpression_elem #ifdef KC_USE_PROTOTYPES (Cexpression_elem kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) Cexpression_elem kc_p; boolean kc_copy_attributes; #endif { return (Cexpression_elem)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_Cexpression_elem); } CexpressionDQ copy_CexpressionDQ #ifdef KC_USE_PROTOTYPES (CexpressionDQ kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) CexpressionDQ kc_p; boolean kc_copy_attributes; #endif { return (CexpressionDQ)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_CexpressionDQ); } CexpressionDQ_elem copy_CexpressionDQ_elem #ifdef KC_USE_PROTOTYPES (CexpressionDQ_elem kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) CexpressionDQ_elem kc_p; boolean kc_copy_attributes; #endif { return (CexpressionDQ_elem)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_CexpressionDQ_elem); } CexpressionSQ copy_CexpressionSQ #ifdef KC_USE_PROTOTYPES (CexpressionSQ kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) CexpressionSQ kc_p; boolean kc_copy_attributes; #endif { return (CexpressionSQ)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_CexpressionSQ); } CexpressionSQ_elem copy_CexpressionSQ_elem #ifdef KC_USE_PROTOTYPES (CexpressionSQ_elem kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) CexpressionSQ_elem kc_p; boolean kc_copy_attributes; #endif { return (CexpressionSQ_elem)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_CexpressionSQ_elem); } idCexpressions copy_idCexpressions #ifdef KC_USE_PROTOTYPES (idCexpressions kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) idCexpressions kc_p; boolean kc_copy_attributes; #endif { return (idCexpressions)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_idCexpressions); } idCexpression copy_idCexpression #ifdef KC_USE_PROTOTYPES (idCexpression kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) idCexpression kc_p; boolean kc_copy_attributes; #endif { return (idCexpression)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_idCexpression); } Ctexts copy_Ctexts #ifdef KC_USE_PROTOTYPES (Ctexts kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) Ctexts kc_p; boolean kc_copy_attributes; #endif { return (Ctexts)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_Ctexts); } includefiles copy_includefiles #ifdef KC_USE_PROTOTYPES (includefiles kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) includefiles kc_p; boolean kc_copy_attributes; #endif { return (includefiles)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_includefiles); } includefile copy_includefile #ifdef KC_USE_PROTOTYPES (includefile kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) includefile kc_p; boolean kc_copy_attributes; #endif { return (includefile)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_includefile); } includedeclarations copy_includedeclarations #ifdef KC_USE_PROTOTYPES (includedeclarations kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) includedeclarations kc_p; boolean kc_copy_attributes; #endif { return (includedeclarations)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_includedeclarations); } includedeclaration copy_includedeclaration #ifdef KC_USE_PROTOTYPES (includedeclaration kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) includedeclaration kc_p; boolean kc_copy_attributes; #endif { return (includedeclaration)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_includedeclaration); } includes copy_includes #ifdef KC_USE_PROTOTYPES (includes kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) includes kc_p; boolean kc_copy_attributes; #endif { return (includes)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_includes); } include copy_include #ifdef KC_USE_PROTOTYPES (include kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) include kc_p; boolean kc_copy_attributes; #endif { return (include)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_include); } rwdeclarations copy_rwdeclarations #ifdef KC_USE_PROTOTYPES (rwdeclarations kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) rwdeclarations kc_p; boolean kc_copy_attributes; #endif { return (rwdeclarations)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_rwdeclarations); } rwdeclaration copy_rwdeclaration #ifdef KC_USE_PROTOTYPES (rwdeclaration kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) rwdeclaration kc_p; boolean kc_copy_attributes; #endif { return (rwdeclaration)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_rwdeclaration); } rewriteclauses copy_rewriteclauses #ifdef KC_USE_PROTOTYPES (rewriteclauses kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) rewriteclauses kc_p; boolean kc_copy_attributes; #endif { return (rewriteclauses)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_rewriteclauses); } rewriteclause copy_rewriteclause #ifdef KC_USE_PROTOTYPES (rewriteclause kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) rewriteclause kc_p; boolean kc_copy_attributes; #endif { return (rewriteclause)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_rewriteclause); } patternchains copy_patternchains #ifdef KC_USE_PROTOTYPES (patternchains kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) patternchains kc_p; boolean kc_copy_attributes; #endif { return (patternchains)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_patternchains); } patternchain copy_patternchain #ifdef KC_USE_PROTOTYPES (patternchain kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) patternchain kc_p; boolean kc_copy_attributes; #endif { return (patternchain)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_patternchain); } outmostpatterns copy_outmostpatterns #ifdef KC_USE_PROTOTYPES (outmostpatterns kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) outmostpatterns kc_p; boolean kc_copy_attributes; #endif { return (outmostpatterns)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_outmostpatterns); } patternchainitem copy_patternchainitem #ifdef KC_USE_PROTOTYPES (patternchainitem kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) patternchainitem kc_p; boolean kc_copy_attributes; #endif { return (patternchainitem)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_patternchainitem); } outmostpattern copy_outmostpattern #ifdef KC_USE_PROTOTYPES (outmostpattern kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) outmostpattern kc_p; boolean kc_copy_attributes; #endif { return (outmostpattern)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_outmostpattern); } pattern copy_pattern #ifdef KC_USE_PROTOTYPES (pattern kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) pattern kc_p; boolean kc_copy_attributes; #endif { return (pattern)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_pattern); } patterns copy_patterns #ifdef KC_USE_PROTOTYPES (patterns kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) patterns kc_p; boolean kc_copy_attributes; #endif { return (patterns)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_patterns); } term copy_term #ifdef KC_USE_PROTOTYPES (term kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) term kc_p; boolean kc_copy_attributes; #endif { return (term)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_term); } terms copy_terms #ifdef KC_USE_PROTOTYPES (terms kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) terms kc_p; boolean kc_copy_attributes; #endif { return (terms)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_terms); } fnfiles copy_fnfiles #ifdef KC_USE_PROTOTYPES (fnfiles kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) fnfiles kc_p; boolean kc_copy_attributes; #endif { return (fnfiles)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_fnfiles); } fnfile copy_fnfile #ifdef KC_USE_PROTOTYPES (fnfile kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) fnfile kc_p; boolean kc_copy_attributes; #endif { return (fnfile)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_fnfile); } fndeclarations copy_fndeclarations #ifdef KC_USE_PROTOTYPES (fndeclarations kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) fndeclarations kc_p; boolean kc_copy_attributes; #endif { return (fndeclarations)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_fndeclarations); } fndeclaration copy_fndeclaration #ifdef KC_USE_PROTOTYPES (fndeclaration kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) fndeclaration kc_p; boolean kc_copy_attributes; #endif { return (fndeclaration)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_fndeclaration); } fnclass copy_fnclass #ifdef KC_USE_PROTOTYPES (fnclass kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) fnclass kc_p; boolean kc_copy_attributes; #endif { return (fnclass)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_fnclass); } fnarguments copy_fnarguments #ifdef KC_USE_PROTOTYPES (fnarguments kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) fnarguments kc_p; boolean kc_copy_attributes; #endif { return (fnarguments)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_fnarguments); } Cvariabledeclarations copy_Cvariabledeclarations #ifdef KC_USE_PROTOTYPES (Cvariabledeclarations kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) Cvariabledeclarations kc_p; boolean kc_copy_attributes; #endif { return (Cvariabledeclarations)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_Cvariabledeclarations); } Cvariabledeclaration copy_Cvariabledeclaration #ifdef KC_USE_PROTOTYPES (Cvariabledeclaration kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) Cvariabledeclaration kc_p; boolean kc_copy_attributes; #endif { return (Cvariabledeclaration)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_Cvariabledeclaration); } Cvariables copy_Cvariables #ifdef KC_USE_PROTOTYPES (Cvariables kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) Cvariables kc_p; boolean kc_copy_attributes; #endif { return (Cvariables)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_Cvariables); } Cvariable copy_Cvariable #ifdef KC_USE_PROTOTYPES (Cvariable kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) Cvariable kc_p; boolean kc_copy_attributes; #endif { return (Cvariable)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_Cvariable); } Ctext copy_Ctext #ifdef KC_USE_PROTOTYPES (Ctext kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) Ctext kc_p; boolean kc_copy_attributes; #endif { return (Ctext)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_Ctext); } Ctext_elem copy_Ctext_elem #ifdef KC_USE_PROTOTYPES (Ctext_elem kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) Ctext_elem kc_p; boolean kc_copy_attributes; #endif { return (Ctext_elem)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_Ctext_elem); } foreach_after copy_foreach_after #ifdef KC_USE_PROTOTYPES (foreach_after kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) foreach_after kc_p; boolean kc_copy_attributes; #endif { return (foreach_after)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_foreach_after); } contextinfo copy_contextinfo #ifdef KC_USE_PROTOTYPES (contextinfo kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) contextinfo kc_p; boolean kc_copy_attributes; #endif { return (contextinfo)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_contextinfo); } withexpressions copy_withexpressions #ifdef KC_USE_PROTOTYPES (withexpressions kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) withexpressions kc_p; boolean kc_copy_attributes; #endif { return (withexpressions)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_withexpressions); } withexpression copy_withexpression #ifdef KC_USE_PROTOTYPES (withexpression kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) withexpression kc_p; boolean kc_copy_attributes; #endif { return (withexpression)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_withexpression); } withcases copy_withcases #ifdef KC_USE_PROTOTYPES (withcases kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) withcases kc_p; boolean kc_copy_attributes; #endif { return (withcases)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_withcases); } withcase copy_withcase #ifdef KC_USE_PROTOTYPES (withcase kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) withcase kc_p; boolean kc_copy_attributes; #endif { return (withcase)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_withcase); } unparsedeclarations copy_unparsedeclarations #ifdef KC_USE_PROTOTYPES (unparsedeclarations kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) unparsedeclarations kc_p; boolean kc_copy_attributes; #endif { return (unparsedeclarations)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_unparsedeclarations); } unparsedeclaration copy_unparsedeclaration #ifdef KC_USE_PROTOTYPES (unparsedeclaration kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) unparsedeclaration kc_p; boolean kc_copy_attributes; #endif { return (unparsedeclaration)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_unparsedeclaration); } unparseclauses copy_unparseclauses #ifdef KC_USE_PROTOTYPES (unparseclauses kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) unparseclauses kc_p; boolean kc_copy_attributes; #endif { return (unparseclauses)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_unparseclauses); } unparseclause copy_unparseclause #ifdef KC_USE_PROTOTYPES (unparseclause kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) unparseclause kc_p; boolean kc_copy_attributes; #endif { return (unparseclause)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_unparseclause); } viewnames copy_viewnames #ifdef KC_USE_PROTOTYPES (viewnames kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) viewnames kc_p; boolean kc_copy_attributes; #endif { return (viewnames)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_viewnames); } unparseitems copy_unparseitems #ifdef KC_USE_PROTOTYPES (unparseitems kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) unparseitems kc_p; boolean kc_copy_attributes; #endif { return (unparseitems)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_unparseitems); } unparseitem copy_unparseitem #ifdef KC_USE_PROTOTYPES (unparseitem kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) unparseitem kc_p; boolean kc_copy_attributes; #endif { return (unparseitem)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_unparseitem); } unpsubterm copy_unpsubterm #ifdef KC_USE_PROTOTYPES (unpsubterm kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) unpsubterm kc_p; boolean kc_copy_attributes; #endif { return (unpsubterm)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_unpsubterm); } unpattributes copy_unpattributes #ifdef KC_USE_PROTOTYPES (unpattributes kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) unpattributes kc_p; boolean kc_copy_attributes; #endif { return (unpattributes)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_unpattributes); } viewnameoption copy_viewnameoption #ifdef KC_USE_PROTOTYPES (viewnameoption kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) viewnameoption kc_p; boolean kc_copy_attributes; #endif { return (viewnameoption)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_viewnameoption); } filelinestack copy_filelinestack #ifdef KC_USE_PROTOTYPES (filelinestack kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) filelinestack kc_p; boolean kc_copy_attributes; #endif { return (filelinestack)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_filelinestack); } fileline copy_fileline #ifdef KC_USE_PROTOTYPES (fileline kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) fileline kc_p; boolean kc_copy_attributes; #endif { return (fileline)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_fileline); } nooperatorsstack copy_nooperatorsstack #ifdef KC_USE_PROTOTYPES (nooperatorsstack kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) nooperatorsstack kc_p; boolean kc_copy_attributes; #endif { return (nooperatorsstack)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_nooperatorsstack); } scopetypefilelinestack copy_scopetypefilelinestack #ifdef KC_USE_PROTOTYPES (scopetypefilelinestack kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) scopetypefilelinestack kc_p; boolean kc_copy_attributes; #endif { return (scopetypefilelinestack)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_scopetypefilelinestack); } scopetypefileline copy_scopetypefileline #ifdef KC_USE_PROTOTYPES (scopetypefileline kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) scopetypefileline kc_p; boolean kc_copy_attributes; #endif { return (scopetypefileline)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_scopetypefileline); } IDtype copy_IDtype #ifdef KC_USE_PROTOTYPES (IDtype kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) IDtype kc_p; boolean kc_copy_attributes; #endif { return (IDtype)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_IDtype); } operatorsstack copy_operatorsstack #ifdef KC_USE_PROTOTYPES (operatorsstack kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) operatorsstack kc_p; boolean kc_copy_attributes; #endif { return (operatorsstack)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_operatorsstack); } operators copy_operators #ifdef KC_USE_PROTOTYPES (operators kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) operators kc_p; boolean kc_copy_attributes; #endif { return (operators)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_operators); } phyla copy_phyla #ifdef KC_USE_PROTOTYPES (phyla kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) phyla kc_p; boolean kc_copy_attributes; #endif { return (phyla)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_phyla); } variables copy_variables #ifdef KC_USE_PROTOTYPES (variables kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) variables kc_p; boolean kc_copy_attributes; #endif { return (variables)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_variables); } argumentsstack copy_argumentsstack #ifdef KC_USE_PROTOTYPES (argumentsstack kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) argumentsstack kc_p; boolean kc_copy_attributes; #endif { return (argumentsstack)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_argumentsstack); } phylumstack copy_phylumstack #ifdef KC_USE_PROTOTYPES (phylumstack kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) phylumstack kc_p; boolean kc_copy_attributes; #endif { return (phylumstack)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_phylumstack); } phylumnamesstack copy_phylumnamesstack #ifdef KC_USE_PROTOTYPES (phylumnamesstack kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) phylumnamesstack kc_p; boolean kc_copy_attributes; #endif { return (phylumnamesstack)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_phylumnamesstack); } withexpressionsstack copy_withexpressionsstack #ifdef KC_USE_PROTOTYPES (withexpressionsstack kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) withexpressionsstack kc_p; boolean kc_copy_attributes; #endif { return (withexpressionsstack)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_withexpressionsstack); } operatorstack copy_operatorstack #ifdef KC_USE_PROTOTYPES (operatorstack kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) operatorstack kc_p; boolean kc_copy_attributes; #endif { return (operatorstack)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_operatorstack); } variablesstack copy_variablesstack #ifdef KC_USE_PROTOTYPES (variablesstack kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) variablesstack kc_p; boolean kc_copy_attributes; #endif { return (variablesstack)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_variablesstack); } selvarstack copy_selvarstack #ifdef KC_USE_PROTOTYPES (selvarstack kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) selvarstack kc_p; boolean kc_copy_attributes; #endif { return (selvarstack)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_selvarstack); } dollarvarstatus copy_dollarvarstatus #ifdef KC_USE_PROTOTYPES (dollarvarstatus kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) dollarvarstatus kc_p; boolean kc_copy_attributes; #endif { return (dollarvarstatus)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_dollarvarstatus); } dollarvarsallowedstack copy_dollarvarsallowedstack #ifdef KC_USE_PROTOTYPES (dollarvarsallowedstack kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) dollarvarsallowedstack kc_p; boolean kc_copy_attributes; #endif { return (dollarvarsallowedstack)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_dollarvarsallowedstack); } intstack copy_intstack #ifdef KC_USE_PROTOTYPES (intstack kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) intstack kc_p; boolean kc_copy_attributes; #endif { return (intstack)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_intstack); } idCexpressionsstack copy_idCexpressionsstack #ifdef KC_USE_PROTOTYPES (idCexpressionsstack kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) idCexpressionsstack kc_p; boolean kc_copy_attributes; #endif { return (idCexpressionsstack)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_idCexpressionsstack); } two_phyla copy_two_phyla #ifdef KC_USE_PROTOTYPES (two_phyla kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) two_phyla kc_p; boolean kc_copy_attributes; #endif { return (two_phyla)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_two_phyla); } tribool copy_tribool #ifdef KC_USE_PROTOTYPES (tribool kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) tribool kc_p; boolean kc_copy_attributes; #endif { return (tribool)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_tribool); } patternrepresentations copy_patternrepresentations #ifdef KC_USE_PROTOTYPES (patternrepresentations kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) patternrepresentations kc_p; boolean kc_copy_attributes; #endif { return (patternrepresentations)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_patternrepresentations); } patternrepresentation copy_patternrepresentation #ifdef KC_USE_PROTOTYPES (patternrepresentation kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) patternrepresentation kc_p; boolean kc_copy_attributes; #endif { return (patternrepresentation)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_patternrepresentation); } elem_patternrepresentation copy_elem_patternrepresentation #ifdef KC_USE_PROTOTYPES (elem_patternrepresentation kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) elem_patternrepresentation kc_p; boolean kc_copy_attributes; #endif { return (elem_patternrepresentation)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_elem_patternrepresentation); } path copy_path #ifdef KC_USE_PROTOTYPES (path kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) path kc_p; boolean kc_copy_attributes; #endif { return (path)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_path); } paths copy_paths #ifdef KC_USE_PROTOTYPES (paths kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) paths kc_p; boolean kc_copy_attributes; #endif { return (paths)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_paths); } argsnumbers copy_argsnumbers #ifdef KC_USE_PROTOTYPES (argsnumbers kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) argsnumbers kc_p; boolean kc_copy_attributes; #endif { return (argsnumbers)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_argsnumbers); } rewriterulesinfo copy_rewriterulesinfo #ifdef KC_USE_PROTOTYPES (rewriterulesinfo kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) rewriterulesinfo kc_p; boolean kc_copy_attributes; #endif { return (rewriterulesinfo)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_rewriterulesinfo); } rewriteruleinfo copy_rewriteruleinfo #ifdef KC_USE_PROTOTYPES (rewriteruleinfo kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) rewriteruleinfo kc_p; boolean kc_copy_attributes; #endif { return (rewriteruleinfo)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_rewriteruleinfo); } withcasesinfo copy_withcasesinfo #ifdef KC_USE_PROTOTYPES (withcasesinfo kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) withcasesinfo kc_p; boolean kc_copy_attributes; #endif { return (withcasesinfo)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_withcasesinfo); } withcaseinfo copy_withcaseinfo #ifdef KC_USE_PROTOTYPES (withcaseinfo kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) withcaseinfo kc_p; boolean kc_copy_attributes; #endif { return (withcaseinfo)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_withcaseinfo); } rewriteviewsinfo copy_rewriteviewsinfo #ifdef KC_USE_PROTOTYPES (rewriteviewsinfo kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) rewriteviewsinfo kc_p; boolean kc_copy_attributes; #endif { return (rewriteviewsinfo)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_rewriteviewsinfo); } rewriteviewinfo copy_rewriteviewinfo #ifdef KC_USE_PROTOTYPES (rewriteviewinfo kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) rewriteviewinfo kc_p; boolean kc_copy_attributes; #endif { return (rewriteviewinfo)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_rewriteviewinfo); } unparseviewsinfo copy_unparseviewsinfo #ifdef KC_USE_PROTOTYPES (unparseviewsinfo kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) unparseviewsinfo kc_p; boolean kc_copy_attributes; #endif { return (unparseviewsinfo)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_unparseviewsinfo); } unparseviewinfo copy_unparseviewinfo #ifdef KC_USE_PROTOTYPES (unparseviewinfo kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) unparseviewinfo kc_p; boolean kc_copy_attributes; #endif { return (unparseviewinfo)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_unparseviewinfo); } unparsedeclsinfo copy_unparsedeclsinfo #ifdef KC_USE_PROTOTYPES (unparsedeclsinfo kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) unparsedeclsinfo kc_p; boolean kc_copy_attributes; #endif { return (unparsedeclsinfo)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_unparsedeclsinfo); } unparsedeclinfo copy_unparsedeclinfo #ifdef KC_USE_PROTOTYPES (unparsedeclinfo kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) unparsedeclinfo kc_p; boolean kc_copy_attributes; #endif { return (unparsedeclinfo)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_unparsedeclinfo); } ac_declaration copy_ac_declaration #ifdef KC_USE_PROTOTYPES (ac_declaration kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_declaration kc_p; boolean kc_copy_attributes; #endif { return (ac_declaration)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_declaration); } ac_declaration_list copy_ac_declaration_list #ifdef KC_USE_PROTOTYPES (ac_declaration_list kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_declaration_list kc_p; boolean kc_copy_attributes; #endif { return (ac_declaration_list)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_declaration_list); } ac_declaration_specifiers copy_ac_declaration_specifiers #ifdef KC_USE_PROTOTYPES (ac_declaration_specifiers kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_declaration_specifiers kc_p; boolean kc_copy_attributes; #endif { return (ac_declaration_specifiers)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_declaration_specifiers); } ac_declaration_specifier copy_ac_declaration_specifier #ifdef KC_USE_PROTOTYPES (ac_declaration_specifier kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_declaration_specifier kc_p; boolean kc_copy_attributes; #endif { return (ac_declaration_specifier)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_declaration_specifier); } ac_storage_class_specifier copy_ac_storage_class_specifier #ifdef KC_USE_PROTOTYPES (ac_storage_class_specifier kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_storage_class_specifier kc_p; boolean kc_copy_attributes; #endif { return (ac_storage_class_specifier)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_storage_class_specifier); } ac_type_specifier copy_ac_type_specifier #ifdef KC_USE_PROTOTYPES (ac_type_specifier kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_type_specifier kc_p; boolean kc_copy_attributes; #endif { return (ac_type_specifier)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_type_specifier); } ac_type_qualifier copy_ac_type_qualifier #ifdef KC_USE_PROTOTYPES (ac_type_qualifier kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_type_qualifier kc_p; boolean kc_copy_attributes; #endif { return (ac_type_qualifier)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_type_qualifier); } ac_init_declarator_list copy_ac_init_declarator_list #ifdef KC_USE_PROTOTYPES (ac_init_declarator_list kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_init_declarator_list kc_p; boolean kc_copy_attributes; #endif { return (ac_init_declarator_list)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_init_declarator_list); } ac_init_declarator copy_ac_init_declarator #ifdef KC_USE_PROTOTYPES (ac_init_declarator kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_init_declarator kc_p; boolean kc_copy_attributes; #endif { return (ac_init_declarator)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_init_declarator); } ac_declarator copy_ac_declarator #ifdef KC_USE_PROTOTYPES (ac_declarator kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_declarator kc_p; boolean kc_copy_attributes; #endif { return (ac_declarator)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_declarator); } ac_direct_declarator copy_ac_direct_declarator #ifdef KC_USE_PROTOTYPES (ac_direct_declarator kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_direct_declarator kc_p; boolean kc_copy_attributes; #endif { return (ac_direct_declarator)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_direct_declarator); } ac_pointer_option copy_ac_pointer_option #ifdef KC_USE_PROTOTYPES (ac_pointer_option kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_pointer_option kc_p; boolean kc_copy_attributes; #endif { return (ac_pointer_option)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_pointer_option); } ac_pointer copy_ac_pointer #ifdef KC_USE_PROTOTYPES (ac_pointer kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_pointer kc_p; boolean kc_copy_attributes; #endif { return (ac_pointer)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_pointer); } ac_type_qualifier_list copy_ac_type_qualifier_list #ifdef KC_USE_PROTOTYPES (ac_type_qualifier_list kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_type_qualifier_list kc_p; boolean kc_copy_attributes; #endif { return (ac_type_qualifier_list)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_type_qualifier_list); } ac_parameter_type_list copy_ac_parameter_type_list #ifdef KC_USE_PROTOTYPES (ac_parameter_type_list kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_parameter_type_list kc_p; boolean kc_copy_attributes; #endif { return (ac_parameter_type_list)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_parameter_type_list); } ac_parameter_list copy_ac_parameter_list #ifdef KC_USE_PROTOTYPES (ac_parameter_list kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_parameter_list kc_p; boolean kc_copy_attributes; #endif { return (ac_parameter_list)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_parameter_list); } ac_parameter_declaration copy_ac_parameter_declaration #ifdef KC_USE_PROTOTYPES (ac_parameter_declaration kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_parameter_declaration kc_p; boolean kc_copy_attributes; #endif { return (ac_parameter_declaration)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_parameter_declaration); } ac_identifier_list copy_ac_identifier_list #ifdef KC_USE_PROTOTYPES (ac_identifier_list kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_identifier_list kc_p; boolean kc_copy_attributes; #endif { return (ac_identifier_list)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_identifier_list); } ac_abstract_declarator copy_ac_abstract_declarator #ifdef KC_USE_PROTOTYPES (ac_abstract_declarator kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_abstract_declarator kc_p; boolean kc_copy_attributes; #endif { return (ac_abstract_declarator)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_abstract_declarator); } ac_direct_abstract_declarator_option copy_ac_direct_abstract_declarator_option #ifdef KC_USE_PROTOTYPES (ac_direct_abstract_declarator_option kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_direct_abstract_declarator_option kc_p; boolean kc_copy_attributes; #endif { return (ac_direct_abstract_declarator_option)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_direct_abstract_declarator_option); } ac_direct_abstract_declarator copy_ac_direct_abstract_declarator #ifdef KC_USE_PROTOTYPES (ac_direct_abstract_declarator kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_direct_abstract_declarator kc_p; boolean kc_copy_attributes; #endif { return (ac_direct_abstract_declarator)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_direct_abstract_declarator); } ac_constant_expression_option copy_ac_constant_expression_option #ifdef KC_USE_PROTOTYPES (ac_constant_expression_option kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_constant_expression_option kc_p; boolean kc_copy_attributes; #endif { return (ac_constant_expression_option)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_constant_expression_option); } ac_constant_expression copy_ac_constant_expression #ifdef KC_USE_PROTOTYPES (ac_constant_expression kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) ac_constant_expression kc_p; boolean kc_copy_attributes; #endif { return (ac_constant_expression)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_ac_constant_expression); } error copy_error #ifdef KC_USE_PROTOTYPES (error kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) error kc_p; boolean kc_copy_attributes; #endif { return (error)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_error); } problem copy_problem #ifdef KC_USE_PROTOTYPES (problem kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) problem kc_p; boolean kc_copy_attributes; #endif { return (problem)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_problem); } addedphylumdeclarations copy_addedphylumdeclarations #ifdef KC_USE_PROTOTYPES (addedphylumdeclarations kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) addedphylumdeclarations kc_p; boolean kc_copy_attributes; #endif { return (addedphylumdeclarations)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_addedphylumdeclarations); } addedphylumdeclaration copy_addedphylumdeclaration #ifdef KC_USE_PROTOTYPES (addedphylumdeclaration kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) addedphylumdeclaration kc_p; boolean kc_copy_attributes; #endif { return (addedphylumdeclaration)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_addedphylumdeclaration); } countedphylumdeclarations copy_countedphylumdeclarations #ifdef KC_USE_PROTOTYPES (countedphylumdeclarations kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) countedphylumdeclarations kc_p; boolean kc_copy_attributes; #endif { return (countedphylumdeclarations)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_countedphylumdeclarations); } countedphylumdeclaration copy_countedphylumdeclaration #ifdef KC_USE_PROTOTYPES (countedphylumdeclaration kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) countedphylumdeclaration kc_p; boolean kc_copy_attributes; #endif { return (countedphylumdeclaration)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_countedphylumdeclaration); } bindingidmarks copy_bindingidmarks #ifdef KC_USE_PROTOTYPES (bindingidmarks kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) bindingidmarks kc_p; boolean kc_copy_attributes; #endif { return (bindingidmarks)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_bindingidmarks); } bindingidmark copy_bindingidmark #ifdef KC_USE_PROTOTYPES (bindingidmark kc_p, boolean kc_copy_attributes) #else (kc_p, kc_copy_attributes) bindingidmark kc_p; boolean kc_copy_attributes; #endif { return (bindingidmark)kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_bindingidmark); } kimwitu-4.6.1.orig/src/k.h0100644000176100001440000062607507076113233014667 0ustar debacleusers/* translation of file(s) "../abs.k" "../main.k" "../parse.k" "../error.k" "../defocc.k" "../extocc.k" "../useocc.k" "../util.k" "../gen.k" "../gutil.k" "../pat.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #ifndef KC_TYPES_HEADER #define KC_TYPES_HEADER #define KIMW_TYPES_HEADER /* backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include /* eg. for FILE* */ #include /* eg. for size_t */ typedef void *kc_voidptr_t; typedef void (*kc_voidfnptr_t)(); #ifdef KC_STDC typedef const void* kc_constvoidptr_t; #else typedef kc_voidptr_t kc_constvoidptr_t; #endif #ifndef KC_MALLOC_T # if defined(KC_STDC) && (!defined(sun) || defined(lint)) typedef kc_voidptr_t kc_malloc_t; # else typedef char *kc_malloc_t; # endif #else typedef KC_MALLOC_T kc_malloc_t; #endif #ifndef KC_REALLOC_ARG_T # if defined(sun) && defined(KC_STDC) typedef kc_voidptr_t kc_realloc_arg_t; # else typedef kc_malloc_t kc_realloc_arg_t; # endif #else typedef KC_REALLOC_ARG_T kc_realloc_arg_t; #endif #ifndef KC_SIZE_T # ifdef KC_STDC typedef size_t kc_size_t; # else typedef unsigned kc_size_t; # endif #else typedef KC_SIZE_T kc_size_t; #endif #ifndef KC__P # ifdef KC_STDC # define KC__P(kc_p) kc_p # ifndef KC__C # define KC__C(kc_c) kc_c # endif # else # define KC__P(kc_p) () # endif #endif #ifndef KC__C # define KC__C(kc_c) #endif #ifdef KC_STDC # ifndef KC_USE_PROTOTYPES # define KC_USE_PROTOTYPES # endif #else # undef KC_USE_PROTOTYPES # ifndef KC_KEEP_TYPE_QUALIFIERS # define const # define volatile # endif #endif #ifndef KC_DOTDOTDOT # ifdef KC_OLD_DOTDOTDOT # define KC_DOTDOTDOT ... # else # define KC_DOTDOTDOT kc_enum_operators,... # endif #endif #ifndef KC_PRINTDOT_LABELSIZE # define KC_PRINTDOT_LABELSIZE 1023 #endif kc_voidfnptr_t kc_set_out_of_storage_handler KC__P(( kc_voidfnptr_t )); kc_voidptr_t emalloc KC__P(( kc_size_t )), ecalloc KC__P(( kc_size_t, kc_size_t )), erealloc KC__P(( kc_voidptr_t, kc_size_t )); kc_voidptr_t uniqmalloc KC__P(( kc_size_t, kc_voidptr_t )); void uniqfreeelement KC__P(( kc_voidptr_t, kc_voidptr_t )); void uniqfreeall KC__P(( kc_voidptr_t )); void kc_print_memory_info_statistics KC__P(( FILE*, kc_voidptr_t )); #ifndef KC_STDC kc_malloc_t malloc KC__P(( kc_size_t )), calloc KC__P(( kc_size_t, kc_size_t )), realloc KC__P(( kc_realloc_arg_t, kc_size_t )); #endif void kc_bzero KC__P(( char*, int )); typedef enum { kc_one_before_first_phylum = 0 , kc_phylum_nocasestring = 1, kc_phylum_casestring = 2, kc_phylum_float = 3, kc_phylum_int = 4, kc_phylum_voidptr = 5, kc_phylum_uniqID = 6, kc_phylum_ID = 7, kc_phylum_INT = 8, kc_phylum_STRING = 9, kc_phylum_phylumdeclarationsroot = 10, kc_phylum_phylumdeclarations = 11, kc_phylum_phylumnames = 12, kc_phylum_phylumdeclaration = 13, kc_phylum_storageoption = 14, kc_phylum_storageclasses = 15, kc_phylum_productionblock = 16, kc_phylum_alternatives = 17, kc_phylum_alternative = 18, kc_phylum_arguments = 19, kc_phylum_argument = 20, kc_phylum_Ccode_option = 21, kc_phylum_attributes = 22, kc_phylum_attribute = 23, kc_phylum_attribute_initialisation_option = 24, kc_phylum_Cexpression = 25, kc_phylum_Cexpression_elem = 26, kc_phylum_CexpressionDQ = 27, kc_phylum_CexpressionDQ_elem = 28, kc_phylum_CexpressionSQ = 29, kc_phylum_CexpressionSQ_elem = 30, kc_phylum_idCexpressions = 31, kc_phylum_idCexpression = 32, kc_phylum_Ctexts = 33, kc_phylum_includefiles = 34, kc_phylum_includefile = 35, kc_phylum_includedeclarations = 36, kc_phylum_includedeclaration = 37, kc_phylum_includes = 38, kc_phylum_include = 39, kc_phylum_rwdeclarations = 40, kc_phylum_rwdeclaration = 41, kc_phylum_rewriteclauses = 42, kc_phylum_rewriteclause = 43, kc_phylum_patternchains = 44, kc_phylum_patternchain = 45, kc_phylum_outmostpatterns = 46, kc_phylum_patternchainitem = 47, kc_phylum_outmostpattern = 48, kc_phylum_pattern = 49, kc_phylum_patterns = 50, kc_phylum_term = 51, kc_phylum_terms = 52, kc_phylum_fnfiles = 53, kc_phylum_fnfile = 54, kc_phylum_fndeclarations = 55, kc_phylum_fndeclaration = 56, kc_phylum_fnclass = 57, kc_phylum_fnarguments = 58, kc_phylum_Cvariabledeclarations = 59, kc_phylum_Cvariabledeclaration = 60, kc_phylum_Cvariables = 61, kc_phylum_Cvariable = 62, kc_phylum_Ctext = 63, kc_phylum_Ctext_elem = 64, kc_phylum_foreach_after = 65, kc_phylum_contextinfo = 66, kc_phylum_withexpressions = 67, kc_phylum_withexpression = 68, kc_phylum_withcases = 69, kc_phylum_withcase = 70, kc_phylum_unparsedeclarations = 71, kc_phylum_unparsedeclaration = 72, kc_phylum_unparseclauses = 73, kc_phylum_unparseclause = 74, kc_phylum_viewnames = 75, kc_phylum_unparseitems = 76, kc_phylum_unparseitem = 77, kc_phylum_unpsubterm = 78, kc_phylum_unpattributes = 79, kc_phylum_viewnameoption = 80, kc_phylum_filelinestack = 81, kc_phylum_fileline = 82, kc_phylum_nooperatorsstack = 83, kc_phylum_scopetypefilelinestack = 84, kc_phylum_scopetypefileline = 85, kc_phylum_IDtype = 86, kc_phylum_operatorsstack = 87, kc_phylum_operators = 88, kc_phylum_phyla = 89, kc_phylum_variables = 90, kc_phylum_argumentsstack = 91, kc_phylum_phylumstack = 92, kc_phylum_phylumnamesstack = 93, kc_phylum_withexpressionsstack = 94, kc_phylum_operatorstack = 95, kc_phylum_variablesstack = 96, kc_phylum_selvarstack = 97, kc_phylum_dollarvarstatus = 98, kc_phylum_dollarvarsallowedstack = 99, kc_phylum_intstack = 100, kc_phylum_idCexpressionsstack = 101, kc_phylum_two_phyla = 102, kc_phylum_tribool = 103, kc_phylum_patternrepresentations = 104, kc_phylum_patternrepresentation = 105, kc_phylum_elem_patternrepresentation = 106, kc_phylum_path = 107, kc_phylum_paths = 108, kc_phylum_argsnumbers = 109, kc_phylum_rewriterulesinfo = 110, kc_phylum_rewriteruleinfo = 111, kc_phylum_withcasesinfo = 112, kc_phylum_withcaseinfo = 113, kc_phylum_rewriteviewsinfo = 114, kc_phylum_rewriteviewinfo = 115, kc_phylum_unparseviewsinfo = 116, kc_phylum_unparseviewinfo = 117, kc_phylum_unparsedeclsinfo = 118, kc_phylum_unparsedeclinfo = 119, kc_phylum_ac_declaration = 120, kc_phylum_ac_declaration_list = 121, kc_phylum_ac_declaration_specifiers = 122, kc_phylum_ac_declaration_specifier = 123, kc_phylum_ac_storage_class_specifier = 124, kc_phylum_ac_type_specifier = 125, kc_phylum_ac_type_qualifier = 126, kc_phylum_ac_init_declarator_list = 127, kc_phylum_ac_init_declarator = 128, kc_phylum_ac_declarator = 129, kc_phylum_ac_direct_declarator = 130, kc_phylum_ac_pointer_option = 131, kc_phylum_ac_pointer = 132, kc_phylum_ac_type_qualifier_list = 133, kc_phylum_ac_parameter_type_list = 134, kc_phylum_ac_parameter_list = 135, kc_phylum_ac_parameter_declaration = 136, kc_phylum_ac_identifier_list = 137, kc_phylum_ac_abstract_declarator = 138, kc_phylum_ac_direct_abstract_declarator_option = 139, kc_phylum_ac_direct_abstract_declarator = 140, kc_phylum_ac_constant_expression_option = 141, kc_phylum_ac_constant_expression = 142, kc_phylum_error = 143, kc_phylum_problem = 144, kc_phylum_addedphylumdeclarations = 145, kc_phylum_addedphylumdeclaration = 146, kc_phylum_countedphylumdeclarations = 147, kc_phylum_countedphylumdeclaration = 148, kc_phylum_bindingidmarks = 149, kc_phylum_bindingidmark = 150, kc_last_phylum = 151 } kc_enum_phyla; typedef enum { kc_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_Nilincludes = 65, sel_Consincludes = 66, sel_Include = 67, sel_IncludeNl = 68, sel_Nilrwdeclarations = 69, sel_Consrwdeclarations = 70, sel_RwDeclaration = 71, sel_Nilrewriteclauses = 72, sel_Consrewriteclauses = 73, sel_RewriteClause = 74, sel_Nilpatternchains = 75, sel_Conspatternchains = 76, sel_Nilpatternchain = 77, sel_Conspatternchain = 78, sel_Niloutmostpatterns = 79, sel_Consoutmostpatterns = 80, sel_PatternchainitemOutmost = 81, sel_PatternchainitemGroup = 82, sel_PatternchainitemDollarid = 83, sel_OPOperatorWildcard = 84, sel_OPOperator = 85, sel_OPNonLeafVariable = 86, sel_OPWildcard = 87, sel_OPDefault = 88, sel_PVariable = 89, sel_POperator = 90, sel_PNonLeafVariable = 91, sel_PWildcard = 92, sel_PStringLiteral = 93, sel_PIntLiteral = 94, sel_Nilpatterns = 95, sel_Conspatterns = 96, sel_TVariable = 97, sel_TOperator = 98, sel_TStringLiteral = 99, sel_TIntLiteral = 100, sel_Nilterms = 101, sel_Consterms = 102, sel_Nilfnfiles = 103, sel_Consfnfiles = 104, sel_FnFile = 105, sel_Nilfndeclarations = 106, sel_Consfndeclarations = 107, sel_FnDeclaration = 108, sel_FnAcDeclaration = 109, sel_GlobalFn = 110, sel_LocalFn = 111, sel_Nilfnarguments = 112, sel_Consfnarguments = 113, sel_NilCvariabledeclarations = 114, sel_ConsCvariabledeclarations = 115, sel_CVariabledeclaration = 116, sel_Fnargfpdecl = 117, sel_NilCvariables = 118, sel_ConsCvariables = 119, sel_CVPointer = 120, sel_CVFunction = 121, sel_NilCtext = 122, sel_ConsCtext = 123, sel_CTextLine = 124, sel_CTextDollarVar = 125, sel_CTextNl = 126, sel_CTextCexpressionDQ = 127, sel_CTextCexpressionSQ = 128, sel_CTextCbody = 129, sel_CTextForeachexpression = 130, sel_CTextWithexpression = 131, sel_NoForeachAfter = 132, sel_ForeachAfter = 133, sel_InForeachContext = 134, sel_NotInForeachContext = 135, sel_Nilwithexpressions = 136, sel_Conswithexpressions = 137, sel_WEVariable = 138, sel_WECexpression = 139, sel_Nilwithcases = 140, sel_Conswithcases = 141, sel_Withcase = 142, sel_Nilunparsedeclarations = 143, sel_Consunparsedeclarations = 144, sel_UnparseDeclaration = 145, sel_Nilunparseclauses = 146, sel_Consunparseclauses = 147, sel_UnparseClause = 148, sel_Nilviewnames = 149, sel_Consviewnames = 150, sel_Nilunparseitems = 151, sel_Consunparseitems = 152, sel_UnpStr = 153, sel_UnpSubexpr = 154, sel_UnpCtext = 155, sel_UnpBody = 156, sel_UnpSubTerm = 157, sel_UnpDollarvarTerm = 158, sel_UnpSubAttr = 159, sel_UnpDollarvarAttr = 160, sel_UnpCastedVariable = 161, sel_Nilunpattributes = 162, sel_Consunpattributes = 163, sel_NoViewname = 164, sel_YesViewname = 165, sel_Nilfilelinestack = 166, sel_Consfilelinestack = 167, sel_FileLine = 168, sel_NoFileLine = 169, sel_PosNoFileLine = 170, sel_Nilnooperatorsstack = 171, sel_Consnooperatorsstack = 172, sel_Nilscopetypefilelinestack = 173, sel_Consscopetypefilelinestack = 174, sel_ScopeTypeFileLine = 175, sel_ITUnknown = 176, sel_ITPredefinedPhylum = 177, sel_ITPredefinedBigatomPhylum = 178, sel_ITUserPhylum = 179, sel_ITPredefinedOperator = 180, sel_ITUserOperator = 181, sel_ITPredefinedStorageClass = 182, sel_ITStorageClass = 183, sel_ITPredefinedUView = 184, sel_ITUserUView = 185, sel_ITPredefinedRView = 186, sel_ITUserRView = 187, sel_ITUserFunction = 188, sel_ITPatternVariable = 189, sel_Niloperatorsstack = 190, sel_Consoperatorsstack = 191, sel_Niloperators = 192, sel_Consoperators = 193, sel_Nilphyla = 194, sel_Consphyla = 195, sel_Nilvariables = 196, sel_Consvariables = 197, sel_Nilargumentsstack = 198, sel_Consargumentsstack = 199, sel_Nilphylumstack = 200, sel_Consphylumstack = 201, sel_Nilphylumnamesstack = 202, sel_Consphylumnamesstack = 203, sel_Nilwithexpressionsstack = 204, sel_Conswithexpressionsstack = 205, sel_Niloperatorstack = 206, sel_Consoperatorstack = 207, sel_Nilvariablesstack = 208, sel_Consvariablesstack = 209, sel_Nilselvarstack = 210, sel_Consselvarstack = 211, sel_DVAllowed = 212, sel_DVDisallowed = 213, sel_Nildollarvarsallowedstack = 214, sel_Consdollarvarsallowedstack = 215, sel_Nilintstack = 216, sel_Consintstack = 217, sel_NilidCexpressionsstack = 218, sel_ConsidCexpressionsstack = 219, sel_TwoStorageoption = 220, sel_TwoProductionblock = 221, sel_TwoCcode_option = 222, sel_TwoRewriteruleinfo = 223, sel_TwoWithcaseinfo = 224, sel_TwoUnparsedeclinfo = 225, sel_TwoPatternrepresentation = 226, sel_TwoElem_patternrepresentation = 227, sel_TwoPaths = 228, sel_TwoPath = 229, sel_Equal = 230, sel_Smaller = 231, sel_Bigger = 232, sel_Nilpatternrepresentations = 233, sel_Conspatternrepresentations = 234, sel_Nilpatternrepresentation = 235, sel_Conspatternrepresentation = 236, sel_PRBinding = 237, sel_PRVarPredicate = 238, sel_PROperPredicate = 239, sel_PRNonLeafBinding = 240, sel_PRWildcard = 241, sel_PRDefault = 242, sel_PRStringLiteral = 243, sel_PRIntLiteral = 244, sel_Nilpath = 245, sel_Conspath = 246, sel_Nilpaths = 247, sel_Conspaths = 248, sel_Nilargsnumbers = 249, sel_Consargsnumbers = 250, sel_Nilrewriterulesinfo = 251, sel_Consrewriterulesinfo = 252, sel_Rewriteruleinfo = 253, sel_Nilwithcasesinfo = 254, sel_Conswithcasesinfo = 255, sel_Withcaseinfo = 256, sel_Nilrewriteviewsinfo = 257, sel_Consrewriteviewsinfo = 258, sel_Rewriteviewinfo = 259, sel_Nilunparseviewsinfo = 260, sel_Consunparseviewsinfo = 261, sel_Unparseviewinfo = 262, sel_Nilunparsedeclsinfo = 263, sel_Consunparsedeclsinfo = 264, sel_Unparsedeclinfo = 265, sel_AcDeclaration = 266, sel_Nilac_declaration_list = 267, sel_Consac_declaration_list = 268, sel_Nilac_declaration_specifiers = 269, sel_Consac_declaration_specifiers = 270, sel_AcDeclSpecStorageSpec = 271, sel_AcDeclSpecTypeSpec = 272, sel_AcDeclSpecTypeQual = 273, sel_AcAuto = 274, sel_AcRegister = 275, sel_AcStatic = 276, sel_AcExtern = 277, sel_AcTypedef = 278, sel_AcTypeSpec = 279, sel_AcConst = 280, sel_AcVolatile = 281, sel_Nilac_init_declarator_list = 282, sel_Consac_init_declarator_list = 283, sel_AcInitDecl = 284, sel_AcDeclarator = 285, sel_AcDirectDeclId = 286, sel_AcDirectDeclPack = 287, sel_AcDirectDeclArray = 288, sel_AcDirectDeclProto = 289, sel_AcDirectDeclKandR = 290, sel_Nopointer = 291, sel_Yespointer = 292, sel_AcPointerNil = 293, sel_AcPointerCons = 294, sel_Nilac_type_qualifier_list = 295, sel_Consac_type_qualifier_list = 296, sel_AcParList = 297, sel_AcParList3Dot = 298, sel_Nilac_parameter_list = 299, sel_Consac_parameter_list = 300, sel_AcParDeclDecl = 301, sel_AcParDeclAbsdecl = 302, sel_Nilac_identifier_list = 303, sel_Consac_identifier_list = 304, sel_AcAbsdeclPointer = 305, sel_AcAbsdeclDirdecl = 306, sel_Noac_direct_abstract_declarator = 307, sel_Yesac_direct_abstract_declarator = 308, sel_AcDirAbsdeclPack = 309, sel_AcDirAbsdeclArray = 310, sel_AcDirAbsdeclFn = 311, sel_Yesac_constant_expression = 312, sel_AcConstExpr = 313, sel_Fatal = 314, sel_NonFatal = 315, sel_Warning = 316, sel_Problem1 = 317, sel_Problem1ID = 318, sel_Problem1tID = 319, sel_Problem1we = 320, sel_Problem1ID1ID = 321, sel_Problem1t1ID = 322, sel_Problem1INT = 323, sel_Problem1int1 = 324, sel_Problem1INT1ID = 325, sel_Problem1ID1ID1ID = 326, sel_Problem1INT1ID1ID = 327, sel_Problem1storageoption1ID = 328, sel_Problem2 = 329, sel_Problem3 = 330, sel_Problem3int1 = 331, sel_Problem4 = 332, sel_Problem5 = 333, sel_Problem6 = 334, sel_Niladdedphylumdeclarations = 335, sel_Consaddedphylumdeclarations = 336, sel_AddedPhylumdeclaration = 337, sel_Nilcountedphylumdeclarations = 338, sel_Conscountedphylumdeclarations = 339, sel_CountedPhylumdeclaration = 340, sel_Nilbindingidmarks = 341, sel_Consbindingidmarks = 342, sel_BindingIdMark = 343, kc_last_operator = 344 } kc_enum_operators; typedef union kc_tag_YYSTYPE YYSTYPE; typedef struct kc_tag_kc_hashnode_t *kc_hashnode_t; typedef struct kc_tag_kc_dotedgenode_t *kc_dotedgenode_t; typedef struct kc_tag_nocasestring *nocasestring; typedef struct kc_tag_casestring *casestring; typedef kc_voidptr_t voidptr; typedef struct kc_tag_uniqID *uniqID; typedef struct kc_tag_ID *ID; typedef struct kc_tag_INT *INT; typedef struct kc_tag_STRING *STRING; typedef struct kc_tag_phylumdeclarationsroot *phylumdeclarationsroot; typedef struct kc_tag_phylumdeclarations *phylumdeclarations; typedef struct kc_tag_phylumnames *phylumnames; typedef struct kc_tag_phylumdeclaration *phylumdeclaration; typedef struct kc_tag_storageoption *storageoption; typedef struct kc_tag_storageclasses *storageclasses; typedef struct kc_tag_productionblock *productionblock; typedef struct kc_tag_alternatives *alternatives; typedef struct kc_tag_alternative *alternative; typedef struct kc_tag_arguments *arguments; typedef struct kc_tag_argument *argument; typedef struct kc_tag_Ccode_option *Ccode_option; typedef struct kc_tag_attributes *attributes; typedef struct kc_tag_attribute *attribute; typedef struct kc_tag_attribute_initialisation_option *attribute_initialisation_option; typedef struct kc_tag_Cexpression *Cexpression; typedef struct kc_tag_Cexpression_elem *Cexpression_elem; typedef struct kc_tag_CexpressionDQ *CexpressionDQ; typedef struct kc_tag_CexpressionDQ_elem *CexpressionDQ_elem; typedef struct kc_tag_CexpressionSQ *CexpressionSQ; typedef struct kc_tag_CexpressionSQ_elem *CexpressionSQ_elem; typedef struct kc_tag_idCexpressions *idCexpressions; typedef struct kc_tag_idCexpression *idCexpression; typedef struct kc_tag_Ctexts *Ctexts; typedef struct kc_tag_includefiles *includefiles; typedef struct kc_tag_includefile *includefile; typedef struct kc_tag_includedeclarations *includedeclarations; typedef struct kc_tag_includedeclaration *includedeclaration; typedef struct kc_tag_includes *includes; typedef struct kc_tag_include *include; typedef struct kc_tag_rwdeclarations *rwdeclarations; typedef struct kc_tag_rwdeclaration *rwdeclaration; typedef struct kc_tag_rewriteclauses *rewriteclauses; typedef struct kc_tag_rewriteclause *rewriteclause; typedef struct kc_tag_patternchains *patternchains; typedef struct kc_tag_patternchain *patternchain; typedef struct kc_tag_outmostpatterns *outmostpatterns; typedef struct kc_tag_patternchainitem *patternchainitem; typedef struct kc_tag_outmostpattern *outmostpattern; typedef struct kc_tag_pattern *pattern; typedef struct kc_tag_patterns *patterns; typedef struct kc_tag_term *term; typedef struct kc_tag_terms *terms; typedef struct kc_tag_fnfiles *fnfiles; typedef struct kc_tag_fnfile *fnfile; typedef struct kc_tag_fndeclarations *fndeclarations; typedef struct kc_tag_fndeclaration *fndeclaration; typedef struct kc_tag_fnclass *fnclass; typedef struct kc_tag_fnarguments *fnarguments; typedef struct kc_tag_Cvariabledeclarations *Cvariabledeclarations; typedef struct kc_tag_Cvariabledeclaration *Cvariabledeclaration; typedef struct kc_tag_Cvariables *Cvariables; typedef struct kc_tag_Cvariable *Cvariable; typedef struct kc_tag_Ctext *Ctext; typedef struct kc_tag_Ctext_elem *Ctext_elem; typedef struct kc_tag_foreach_after *foreach_after; typedef struct kc_tag_contextinfo *contextinfo; typedef struct kc_tag_withexpressions *withexpressions; typedef struct kc_tag_withexpression *withexpression; typedef struct kc_tag_withcases *withcases; typedef struct kc_tag_withcase *withcase; typedef struct kc_tag_unparsedeclarations *unparsedeclarations; typedef struct kc_tag_unparsedeclaration *unparsedeclaration; typedef struct kc_tag_unparseclauses *unparseclauses; typedef struct kc_tag_unparseclause *unparseclause; typedef struct kc_tag_viewnames *viewnames; typedef struct kc_tag_unparseitems *unparseitems; typedef struct kc_tag_unparseitem *unparseitem; typedef struct kc_tag_unpsubterm *unpsubterm; typedef struct kc_tag_unpattributes *unpattributes; typedef struct kc_tag_viewnameoption *viewnameoption; typedef struct kc_tag_filelinestack *filelinestack; typedef struct kc_tag_fileline *fileline; typedef struct kc_tag_nooperatorsstack *nooperatorsstack; typedef struct kc_tag_scopetypefilelinestack *scopetypefilelinestack; typedef struct kc_tag_scopetypefileline *scopetypefileline; typedef struct kc_tag_IDtype *IDtype; typedef struct kc_tag_operatorsstack *operatorsstack; typedef struct kc_tag_operators *operators; typedef struct kc_tag_phyla *phyla; typedef struct kc_tag_variables *variables; typedef struct kc_tag_argumentsstack *argumentsstack; typedef struct kc_tag_phylumstack *phylumstack; typedef struct kc_tag_phylumnamesstack *phylumnamesstack; typedef struct kc_tag_withexpressionsstack *withexpressionsstack; typedef struct kc_tag_operatorstack *operatorstack; typedef struct kc_tag_variablesstack *variablesstack; typedef struct kc_tag_selvarstack *selvarstack; typedef struct kc_tag_dollarvarstatus *dollarvarstatus; typedef struct kc_tag_dollarvarsallowedstack *dollarvarsallowedstack; typedef struct kc_tag_intstack *intstack; typedef struct kc_tag_idCexpressionsstack *idCexpressionsstack; typedef struct kc_tag_two_phyla *two_phyla; typedef struct kc_tag_tribool *tribool; typedef struct kc_tag_patternrepresentations *patternrepresentations; typedef struct kc_tag_patternrepresentation *patternrepresentation; typedef struct kc_tag_elem_patternrepresentation *elem_patternrepresentation; typedef struct kc_tag_path *path; typedef struct kc_tag_paths *paths; typedef struct kc_tag_argsnumbers *argsnumbers; typedef struct kc_tag_rewriterulesinfo *rewriterulesinfo; typedef struct kc_tag_rewriteruleinfo *rewriteruleinfo; typedef struct kc_tag_withcasesinfo *withcasesinfo; typedef struct kc_tag_withcaseinfo *withcaseinfo; typedef struct kc_tag_rewriteviewsinfo *rewriteviewsinfo; typedef struct kc_tag_rewriteviewinfo *rewriteviewinfo; typedef struct kc_tag_unparseviewsinfo *unparseviewsinfo; typedef struct kc_tag_unparseviewinfo *unparseviewinfo; typedef struct kc_tag_unparsedeclsinfo *unparsedeclsinfo; typedef struct kc_tag_unparsedeclinfo *unparsedeclinfo; typedef struct kc_tag_ac_declaration *ac_declaration; typedef struct kc_tag_ac_declaration_list *ac_declaration_list; typedef struct kc_tag_ac_declaration_specifiers *ac_declaration_specifiers; typedef struct kc_tag_ac_declaration_specifier *ac_declaration_specifier; typedef struct kc_tag_ac_storage_class_specifier *ac_storage_class_specifier; typedef struct kc_tag_ac_type_specifier *ac_type_specifier; typedef struct kc_tag_ac_type_qualifier *ac_type_qualifier; typedef struct kc_tag_ac_init_declarator_list *ac_init_declarator_list; typedef struct kc_tag_ac_init_declarator *ac_init_declarator; typedef struct kc_tag_ac_declarator *ac_declarator; typedef struct kc_tag_ac_direct_declarator *ac_direct_declarator; typedef struct kc_tag_ac_pointer_option *ac_pointer_option; typedef struct kc_tag_ac_pointer *ac_pointer; typedef struct kc_tag_ac_type_qualifier_list *ac_type_qualifier_list; typedef struct kc_tag_ac_parameter_type_list *ac_parameter_type_list; typedef struct kc_tag_ac_parameter_list *ac_parameter_list; typedef struct kc_tag_ac_parameter_declaration *ac_parameter_declaration; typedef struct kc_tag_ac_identifier_list *ac_identifier_list; typedef struct kc_tag_ac_abstract_declarator *ac_abstract_declarator; typedef struct kc_tag_ac_direct_abstract_declarator_option *ac_direct_abstract_declarator_option; typedef struct kc_tag_ac_direct_abstract_declarator *ac_direct_abstract_declarator; typedef struct kc_tag_ac_constant_expression_option *ac_constant_expression_option; typedef struct kc_tag_ac_constant_expression *ac_constant_expression; typedef struct kc_tag_error *error; typedef struct kc_tag_problem *problem; typedef struct kc_tag_addedphylumdeclarations *addedphylumdeclarations; typedef struct kc_tag_addedphylumdeclaration *addedphylumdeclaration; typedef struct kc_tag_countedphylumdeclarations *countedphylumdeclarations; typedef struct kc_tag_countedphylumdeclaration *countedphylumdeclaration; typedef struct kc_tag_bindingidmarks *bindingidmarks; typedef struct kc_tag_bindingidmark *bindingidmark; typedef kc_enum_phyla *kc_enum_phyla_list; typedef kc_size_t *kc_size_t_list; /* size_t is defined in ANSI C */ /* * 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) */ typedef enum { /*kc_not_uniq = 0, kc_uniq_nullary_operator,*/ kc_not_uniq, kc_uniq_nullary_operator, uniq, kc_last_storageclass } kc_storageclass_t; typedef struct { char *name; /* name of the phylum */ kc_size_t size; /* size of the struct phylum record */ kc_enum_operators first_operator; /* index in kc_OperatorInfo[] */ kc_enum_operators last_operator; /* index in kc_OperatorInfo[] */ kc_storageclass_t uniq_stored; /* storage class */ void (*copy_attributes) KC__P((kc_voidptr_t, kc_voidptr_t)); /* routine that copies attributes */ } KC_PHYLUM_INFO; typedef struct { char *name; /* name of the operator */ int no_sons; /* number of sons */ int atomicity; /* atomic type or not (used as a boolean) */ kc_enum_phyla phylum; /* index in kc_PhylumInfo[] */ kc_enum_phyla_list subphylum; /* indexes in kc_PhylumInfo[] */ kc_size_t_list suboffset; /* offsets of sub-phyla (pointers) in the phylum record */ kc_storageclass_t uniq_stored; /* storage class */ kc_voidptr_t (*create_routine) KC__P((KC_DOTDOTDOT)); /* create routine */ } KC_OPERATOR_INFO; typedef kc_enum_phyla_list KC_UNIQ_INFO; extern KC_OPERATOR_INFO kc_OperatorInfo[]; extern KC_PHYLUM_INFO kc_PhylumInfo[]; extern KC_UNIQ_INFO kc_UniqInfo[]; #ifndef KC_SUBPHYLUM # ifdef lint # define KC_SUBPHYLUM(kc_phylum, kc_offset) (kc_phylum,kc_offset,0) # else # define KC_SUBPHYLUM(kc_phylum, kc_offset) (*((char**)(((char*)kc_phylum)+(kc_offset)))) # endif #endif union kc_tag_YYSTYPE { kc_hashnode_t yt_kc_hashnode_t; kc_dotedgenode_t yt_kc_dotedgenode_t; nocasestring yt_nocasestring; casestring yt_casestring; float yt_float; int yt_int; voidptr yt_voidptr; uniqID yt_uniqID; ID yt_ID; INT yt_INT; STRING yt_STRING; phylumdeclarationsroot yt_phylumdeclarationsroot; phylumdeclarations yt_phylumdeclarations; phylumnames yt_phylumnames; phylumdeclaration yt_phylumdeclaration; storageoption yt_storageoption; storageclasses yt_storageclasses; productionblock yt_productionblock; alternatives yt_alternatives; alternative yt_alternative; arguments yt_arguments; argument yt_argument; Ccode_option yt_Ccode_option; attributes yt_attributes; attribute yt_attribute; attribute_initialisation_option yt_attribute_initialisation_option; Cexpression yt_Cexpression; Cexpression_elem yt_Cexpression_elem; CexpressionDQ yt_CexpressionDQ; CexpressionDQ_elem yt_CexpressionDQ_elem; CexpressionSQ yt_CexpressionSQ; CexpressionSQ_elem yt_CexpressionSQ_elem; idCexpressions yt_idCexpressions; idCexpression yt_idCexpression; Ctexts yt_Ctexts; includefiles yt_includefiles; includefile yt_includefile; includedeclarations yt_includedeclarations; includedeclaration yt_includedeclaration; includes yt_includes; include yt_include; rwdeclarations yt_rwdeclarations; rwdeclaration yt_rwdeclaration; rewriteclauses yt_rewriteclauses; rewriteclause yt_rewriteclause; patternchains yt_patternchains; patternchain yt_patternchain; outmostpatterns yt_outmostpatterns; patternchainitem yt_patternchainitem; outmostpattern yt_outmostpattern; pattern yt_pattern; patterns yt_patterns; term yt_term; terms yt_terms; fnfiles yt_fnfiles; fnfile yt_fnfile; fndeclarations yt_fndeclarations; fndeclaration yt_fndeclaration; fnclass yt_fnclass; fnarguments yt_fnarguments; Cvariabledeclarations yt_Cvariabledeclarations; Cvariabledeclaration yt_Cvariabledeclaration; Cvariables yt_Cvariables; Cvariable yt_Cvariable; Ctext yt_Ctext; Ctext_elem yt_Ctext_elem; foreach_after yt_foreach_after; contextinfo yt_contextinfo; withexpressions yt_withexpressions; withexpression yt_withexpression; withcases yt_withcases; withcase yt_withcase; unparsedeclarations yt_unparsedeclarations; unparsedeclaration yt_unparsedeclaration; unparseclauses yt_unparseclauses; unparseclause yt_unparseclause; viewnames yt_viewnames; unparseitems yt_unparseitems; unparseitem yt_unparseitem; unpsubterm yt_unpsubterm; unpattributes yt_unpattributes; viewnameoption yt_viewnameoption; filelinestack yt_filelinestack; fileline yt_fileline; nooperatorsstack yt_nooperatorsstack; scopetypefilelinestack yt_scopetypefilelinestack; scopetypefileline yt_scopetypefileline; IDtype yt_IDtype; operatorsstack yt_operatorsstack; operators yt_operators; phyla yt_phyla; variables yt_variables; argumentsstack yt_argumentsstack; phylumstack yt_phylumstack; phylumnamesstack yt_phylumnamesstack; withexpressionsstack yt_withexpressionsstack; operatorstack yt_operatorstack; variablesstack yt_variablesstack; selvarstack yt_selvarstack; dollarvarstatus yt_dollarvarstatus; dollarvarsallowedstack yt_dollarvarsallowedstack; intstack yt_intstack; idCexpressionsstack yt_idCexpressionsstack; two_phyla yt_two_phyla; tribool yt_tribool; patternrepresentations yt_patternrepresentations; patternrepresentation yt_patternrepresentation; elem_patternrepresentation yt_elem_patternrepresentation; path yt_path; paths yt_paths; argsnumbers yt_argsnumbers; rewriterulesinfo yt_rewriterulesinfo; rewriteruleinfo yt_rewriteruleinfo; withcasesinfo yt_withcasesinfo; withcaseinfo yt_withcaseinfo; rewriteviewsinfo yt_rewriteviewsinfo; rewriteviewinfo yt_rewriteviewinfo; unparseviewsinfo yt_unparseviewsinfo; unparseviewinfo yt_unparseviewinfo; unparsedeclsinfo yt_unparsedeclsinfo; unparsedeclinfo yt_unparsedeclinfo; ac_declaration yt_ac_declaration; ac_declaration_list yt_ac_declaration_list; ac_declaration_specifiers yt_ac_declaration_specifiers; ac_declaration_specifier yt_ac_declaration_specifier; ac_storage_class_specifier yt_ac_storage_class_specifier; ac_type_specifier yt_ac_type_specifier; ac_type_qualifier yt_ac_type_qualifier; ac_init_declarator_list yt_ac_init_declarator_list; ac_init_declarator yt_ac_init_declarator; ac_declarator yt_ac_declarator; ac_direct_declarator yt_ac_direct_declarator; ac_pointer_option yt_ac_pointer_option; ac_pointer yt_ac_pointer; ac_type_qualifier_list yt_ac_type_qualifier_list; ac_parameter_type_list yt_ac_parameter_type_list; ac_parameter_list yt_ac_parameter_list; ac_parameter_declaration yt_ac_parameter_declaration; ac_identifier_list yt_ac_identifier_list; ac_abstract_declarator yt_ac_abstract_declarator; ac_direct_abstract_declarator_option yt_ac_direct_abstract_declarator_option; ac_direct_abstract_declarator yt_ac_direct_abstract_declarator; ac_constant_expression_option yt_ac_constant_expression_option; ac_constant_expression yt_ac_constant_expression; error yt_error; problem yt_problem; addedphylumdeclarations yt_addedphylumdeclarations; addedphylumdeclaration yt_addedphylumdeclaration; countedphylumdeclarations yt_countedphylumdeclarations; countedphylumdeclaration yt_countedphylumdeclaration; bindingidmarks yt_bindingidmarks; bindingidmark yt_bindingidmark; }; extern YYSTYPE yylval; #define KC_NO_OF_OPERATORS 344 typedef enum { KC_False=0, KC_True=1 } kc_tp_boolean; #if ! (defined(True) || defined(False)) # define True KC_True # define False KC_False # define boolean kc_tp_boolean #else # if ! defined(boolean) # define boolean int # endif #endif /* included stuff */ #line 202 "../abs.k" typedef enum {include_header =0, include_file =1, include_unknown, include_both} include_type; #define INC2 inc[2] #line 984 "k.h" #line 2 "../main.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 994 "k.h" #line 117 "../main.k" extern char kimwitu_copyright[]; /* defined above */ extern casestring g_progname; #include extern FILE *g_hfile; extern FILE *g_cfile; extern char *g_hfilename; extern char *g_cfilename; #line 1004 "k.h" #line 233 "../main.k" #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" /* old keyword for baclwords compatibility */ #define INC_KIMW_TYPES_HEADER "KIMW_TYPES_HEADER" #define INC_KIMW_TYPES "KIMW_TYPES" #define INC_KIMW_REWRITE_HEADER "KIMW_REWRITE_HEADER" #define INC_KIMW_REWRITE "KIMW_REWRITE" #define INC_KIMW_CSGIO_HEADER "KIMW_CSGIO_HEADER" #define INC_KIMW_CSGIO "KIMW_CSGIO" #define INC_KIMW_UNPARSE_HEADER "KIMW_UNPARSE_HEADER" #define INC_KIMW_UNPARSE "KIMW_UNPARSE" #line 1027 "k.h" #line 22 "../parse.k" 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 boolean pg_uviewshavebeendefined; /* global indication */ extern boolean pg_rviewshavebeendefined; /* global indication */ extern boolean pg_storageclasseshavebeendefined; /* global indication */ #line 1048 "k.h" #line 27 "../error.k" #include "error.h" #line 1052 "k.h" #line 330 "../error.k" extern viewnameoption ug_viewnameopt; #line 1056 "k.h" #line 22 "../defocc.k" #include "defocc.h" #line 1060 "k.h" #line 21 "../useocc.k" #include "useocc.h" #line 1064 "k.h" #line 23 "../util.k" #ifndef KC_LINTUSE # if (defined(lint) || defined(SABER) || defined(CODECENTER)) extern int kc_zero_constant; # define KC_LINTUSE(x) if(x)x=x # else # define kc_zero_constant 0 # define KC_LINTUSE(x) # endif #endif #line 1076 "k.h" #line 40 "../util.k" extern addedphylumdeclarations pl_addedphylumdeclarations; #line 1080 "k.h" #line 84 "../util.k" extern countedphylumdeclarations pl_countedphylumdeclarations; #line 1084 "k.h" #line 143 "../util.k" extern operators cg_bigatomoperators; /* global big-atoms operators */ extern phyla cg_bigatomphyla; /* global big-atoms phyla */ #line 1089 "k.h" #line 1291 "../util.k" extern ID f_emptyId(); #line 1093 "k.h" #line 317 "../pat.k" extern bindingidmarks Thebindingidmarks; #line 1097 "k.h" /* end included stuff */ #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 KC__P((char*, int, char*)); void kc_returnless_function KC__P((char *, int, char*)); #ifndef KC_SEPARATE_HASH_LEVELS # define KC_IS_HT_STORE_STATIC =kc_ht_store_static #else # define KC_IS_HT_STORE_STATIC #endif /* * small tricks to shut up lint */ #if (defined(lint) || defined(SABER) || defined(CODECENTER)) # define KC_LINTUSE(x) if(x)x=x #else # define KC_LINTUSE(x) #endif /* * the following trick is because for Saber (CenterLine) we have * the possibillity to load a file either as .c or as .o, * so we can not have a maybe nonexisting variable as in the * lint variant. * we may want to SUPPRESS a Saber warning about unused variable. */ #if defined(lint) extern int kc_zero_constant; #else # if (defined(SABER) || defined(CODECENTER)) static int kc_zero_constant = 0; # else # define kc_zero_constant 0 # endif #endif #ifndef NDEBUG # define assert(t) do {if (!(t)) kc_assertionFailed(__FILE__,__LINE__);}while(kc_zero_constant) # define _assert(t) do {if (!(t)) kc_assertionFailed(__FILE__,__LINE__);}while(kc_zero_constant) # define assertReason(t,s) do {if (!(t)) kc_assertionReasonFailed(__FILE__,__LINE__,s);}while(kc_zero_constant) # define assertNonNull(ptr,str) do {if (ptr == NULL) kc_assertionNonNullFailed(str,__FILE__,__LINE__);}while(kc_zero_constant) # define assertOperatorInPhylumFn(op,str1,str2,phy,fn) do {if ((op<(int)kc_PhylumInfo[(int)phy].first_operator)||(op>(int)kc_PhylumInfo[(int)phy].last_operator)) fn(op,str1,str2,(int)phy,__FILE__,__LINE__);}while(kc_zero_constant) # define assertOperatorInPhylum(op,str1,str2,phy) assertOperatorInPhylumFn(op,str1,str2,phy,kc_assertionOperatorInPhylumFailed) # define assertPhylum(ptr,ptrstr,phy) do{if((phy!=kc_phylum_int)&&(phy!=kc_phylum_float)&&(phy!=kc_phylum_voidptr)){assertNonNull(ptr,ptrstr);assertOperatorInPhylum((int)(ptr->prod_sel),ptrstr,"->prod_sel",phy);}}while(kc_zero_constant) # define assertNonIntPhylum(ptr,ptrstr,phy) do{assertNonNull(ptr,ptrstr);assertOperatorInPhylum((int)(ptr->prod_sel),ptrstr,"->prod_sel",phy);}while(kc_zero_constant) #else # define assert(t) # define _assert(t) # define assertReason(t,s) # define assertNonNull(ptr,str) # define assertOperatorInPhylumFn(op,str1,str2,phy,fn) # define assertOperatorInPhylum(op,str1,str2,phy) # define assertPhylum(ptr,ptrstr,phy) # define assertNonIntPhylum(ptr,ptrstr,phy) #endif void kc_assertionFailed KC__P((char*, int)); void kc_assertionReasonFailed KC__P((char*, int, char*)); void kc_assertionNonNullFailed KC__P((char*, char*, int)); void kc_assertionOperatorInPhylumFailed KC__P((int, char*, char*, int, char*, int)); /* void kc_invalid_operator KC__P((char*, kc_enum_phyla, int, char*, int)); */ #define assert_nocasestring(c, cstr) assertNonIntPhylum(c,cstr,(int)kc_phylum_nocasestring) #define assert_casestring(c, cstr) assertNonIntPhylum(c,cstr,(int)kc_phylum_casestring) #define assert_float(p,pstr) #define assert_int(p,pstr) #define assert_voidptr(p,pstr) #define assert_uniqID(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_uniqID) #define assert_ID(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ID) #define assert_INT(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_INT) #define assert_STRING(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_STRING) #define assert_phylumdeclarationsroot(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_phylumdeclarationsroot) #define assert_phylumdeclarations(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_phylumdeclarations) #define assert_phylumnames(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_phylumnames) #define assert_phylumdeclaration(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_phylumdeclaration) #define assert_storageoption(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_storageoption) #define assert_storageclasses(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_storageclasses) #define assert_productionblock(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_productionblock) #define assert_alternatives(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_alternatives) #define assert_alternative(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_alternative) #define assert_arguments(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_arguments) #define assert_argument(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_argument) #define assert_Ccode_option(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_Ccode_option) #define assert_attributes(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_attributes) #define assert_attribute(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_attribute) #define assert_attribute_initialisation_option(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_attribute_initialisation_option) #define assert_Cexpression(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_Cexpression) #define assert_Cexpression_elem(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_Cexpression_elem) #define assert_CexpressionDQ(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_CexpressionDQ) #define assert_CexpressionDQ_elem(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_CexpressionDQ_elem) #define assert_CexpressionSQ(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_CexpressionSQ) #define assert_CexpressionSQ_elem(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_CexpressionSQ_elem) #define assert_idCexpressions(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_idCexpressions) #define assert_idCexpression(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_idCexpression) #define assert_Ctexts(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_Ctexts) #define assert_includefiles(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_includefiles) #define assert_includefile(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_includefile) #define assert_includedeclarations(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_includedeclarations) #define assert_includedeclaration(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_includedeclaration) #define assert_includes(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_includes) #define assert_include(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_include) #define assert_rwdeclarations(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_rwdeclarations) #define assert_rwdeclaration(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_rwdeclaration) #define assert_rewriteclauses(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_rewriteclauses) #define assert_rewriteclause(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_rewriteclause) #define assert_patternchains(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_patternchains) #define assert_patternchain(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_patternchain) #define assert_outmostpatterns(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_outmostpatterns) #define assert_patternchainitem(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_patternchainitem) #define assert_outmostpattern(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_outmostpattern) #define assert_pattern(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_pattern) #define assert_patterns(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_patterns) #define assert_term(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_term) #define assert_terms(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_terms) #define assert_fnfiles(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_fnfiles) #define assert_fnfile(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_fnfile) #define assert_fndeclarations(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_fndeclarations) #define assert_fndeclaration(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_fndeclaration) #define assert_fnclass(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_fnclass) #define assert_fnarguments(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_fnarguments) #define assert_Cvariabledeclarations(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_Cvariabledeclarations) #define assert_Cvariabledeclaration(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_Cvariabledeclaration) #define assert_Cvariables(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_Cvariables) #define assert_Cvariable(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_Cvariable) #define assert_Ctext(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_Ctext) #define assert_Ctext_elem(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_Ctext_elem) #define assert_foreach_after(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_foreach_after) #define assert_contextinfo(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_contextinfo) #define assert_withexpressions(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_withexpressions) #define assert_withexpression(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_withexpression) #define assert_withcases(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_withcases) #define assert_withcase(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_withcase) #define assert_unparsedeclarations(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_unparsedeclarations) #define assert_unparsedeclaration(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_unparsedeclaration) #define assert_unparseclauses(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_unparseclauses) #define assert_unparseclause(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_unparseclause) #define assert_viewnames(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_viewnames) #define assert_unparseitems(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_unparseitems) #define assert_unparseitem(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_unparseitem) #define assert_unpsubterm(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_unpsubterm) #define assert_unpattributes(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_unpattributes) #define assert_viewnameoption(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_viewnameoption) #define assert_filelinestack(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_filelinestack) #define assert_fileline(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_fileline) #define assert_nooperatorsstack(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_nooperatorsstack) #define assert_scopetypefilelinestack(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_scopetypefilelinestack) #define assert_scopetypefileline(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_scopetypefileline) #define assert_IDtype(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_IDtype) #define assert_operatorsstack(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_operatorsstack) #define assert_operators(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_operators) #define assert_phyla(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_phyla) #define assert_variables(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_variables) #define assert_argumentsstack(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_argumentsstack) #define assert_phylumstack(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_phylumstack) #define assert_phylumnamesstack(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_phylumnamesstack) #define assert_withexpressionsstack(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_withexpressionsstack) #define assert_operatorstack(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_operatorstack) #define assert_variablesstack(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_variablesstack) #define assert_selvarstack(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_selvarstack) #define assert_dollarvarstatus(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_dollarvarstatus) #define assert_dollarvarsallowedstack(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_dollarvarsallowedstack) #define assert_intstack(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_intstack) #define assert_idCexpressionsstack(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_idCexpressionsstack) #define assert_two_phyla(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_two_phyla) #define assert_tribool(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_tribool) #define assert_patternrepresentations(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_patternrepresentations) #define assert_patternrepresentation(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_patternrepresentation) #define assert_elem_patternrepresentation(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_elem_patternrepresentation) #define assert_path(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_path) #define assert_paths(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_paths) #define assert_argsnumbers(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_argsnumbers) #define assert_rewriterulesinfo(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_rewriterulesinfo) #define assert_rewriteruleinfo(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_rewriteruleinfo) #define assert_withcasesinfo(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_withcasesinfo) #define assert_withcaseinfo(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_withcaseinfo) #define assert_rewriteviewsinfo(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_rewriteviewsinfo) #define assert_rewriteviewinfo(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_rewriteviewinfo) #define assert_unparseviewsinfo(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_unparseviewsinfo) #define assert_unparseviewinfo(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_unparseviewinfo) #define assert_unparsedeclsinfo(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_unparsedeclsinfo) #define assert_unparsedeclinfo(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_unparsedeclinfo) #define assert_ac_declaration(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_declaration) #define assert_ac_declaration_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_declaration_list) #define assert_ac_declaration_specifiers(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_declaration_specifiers) #define assert_ac_declaration_specifier(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_declaration_specifier) #define assert_ac_storage_class_specifier(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_storage_class_specifier) #define assert_ac_type_specifier(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_type_specifier) #define assert_ac_type_qualifier(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_type_qualifier) #define assert_ac_init_declarator_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_init_declarator_list) #define assert_ac_init_declarator(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_init_declarator) #define assert_ac_declarator(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_declarator) #define assert_ac_direct_declarator(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_direct_declarator) #define assert_ac_pointer_option(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_pointer_option) #define assert_ac_pointer(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_pointer) #define assert_ac_type_qualifier_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_type_qualifier_list) #define assert_ac_parameter_type_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_parameter_type_list) #define assert_ac_parameter_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_parameter_list) #define assert_ac_parameter_declaration(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_parameter_declaration) #define assert_ac_identifier_list(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_identifier_list) #define assert_ac_abstract_declarator(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_abstract_declarator) #define assert_ac_direct_abstract_declarator_option(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_direct_abstract_declarator_option) #define assert_ac_direct_abstract_declarator(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_direct_abstract_declarator) #define assert_ac_constant_expression_option(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_constant_expression_option) #define assert_ac_constant_expression(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_ac_constant_expression) #define assert_error(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_error) #define assert_problem(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_problem) #define assert_addedphylumdeclarations(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_addedphylumdeclarations) #define assert_addedphylumdeclaration(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_addedphylumdeclaration) #define assert_countedphylumdeclarations(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_countedphylumdeclarations) #define assert_countedphylumdeclaration(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_countedphylumdeclaration) #define assert_bindingidmarks(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_bindingidmarks) #define assert_bindingidmark(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_bindingidmark) typedef struct { int create; int existing_not_found; int free_called[2]; int freed[2]; } KC_OPERATOR_STATISTICS; #ifdef KC_STATISTICS # define kc_print_operator_statistics(kc_f) kc_do_print_operator_statistics(kc_f) void kc_do_print_operator_statistics KC__P(( FILE* )); #else /*KC_STATISTICS*/ # define kc_print_operator_statistics(kc_f) #endif /*KC_STATISTICS*/ typedef struct kc_tag_kc_hashtableentry_t { YYSTYPE *index; /* index[ibound] */ int ibound; /* nr of slots; index of first nonexist */ int nr; /* nr of occupied; index of first free */ } kc_hashtableentry_t; typedef enum { kc_ht_store_static = 0, kc_ht_store_dynamic KC_IS_HT_STORE_STATIC, kc_last_storage_mode } kc_hastable_storage_mode_t; typedef struct kc_tag_kc_hashtable_struct_t *kc_hashtable_t; typedef struct kc_tag_kc_private_malloc_t { kc_voidptr_t malloc_private_data; struct kc_tag_kc_private_malloc_t *next; struct kc_tag_kc_private_malloc_t *prev; } *kc_private_malloc_t; typedef struct kc_tag_kc_hashtable_struct_t { /* general stuff */ kc_hashtableentry_t (*hashtable)[kc_last_storage_mode]; /* hashtable[size][dynamic/static] */ int size; /* nr of buckets in the hashtable; index of first nonexist */ int kc_to_be_freed; /* should be True for dynamic, False for statically allocated structures */ kc_hashtable_t next; /* to build a linked list of all hashtables created, ever */ kc_hashtable_t prev; /* to build a linked list of all hashtables created, ever */ /* node allocation */ kc_voidptr_t (*malloc_initialise) KC__P(()); /* routine to initialise a new block(list/level), returns the malloc_private_data */ kc_voidptr_t (*malloc) KC__P((kc_size_t, kc_voidptr_t)); /* routine to be used to create elements in the hashtable */ void (*free_element) KC__P((kc_voidptr_t, kc_voidptr_t)); /* routine to be used to free one element allocated using malloc */ void (*free_all_elements) KC__P((kc_voidptr_t)); /* routine to be used to free elements in a block(list/level) */ boolean (*in_block) KC__P((kc_voidptr_t, kc_voidptr_t)); /* routine to test if an element is in a block */ kc_voidptr_t malloc_private_data; /* private data for the malloc routine, for current block */ kc_voidptr_t static_malloc_private_data; /* private data for the malloc routine */ kc_private_malloc_t dynamic_malloc_private_data; /* private data for the malloc routine */ kc_private_malloc_t dec_dynamic_malloc_private_data; /* dec-level-ed dynamic_malloc_private_data == dynamic_malloc_private_data->prev if defined */ kc_hastable_storage_mode_t mode; /* either dynamic or static */ void (*malloc_info) KC__P((FILE*, kc_voidptr_t)); /* routine to print info on malloc structure */ /* bucket allocation */ kc_voidptr_t (*bucket_alloc_initialise) KC__P(()); /* routine to initialise the bucket allocation stuff, returns the malloc_private_data */ kc_voidptr_t (*bucket_calloc) KC__P((kc_size_t, kc_size_t, kc_voidptr_t)); /* routine to be used to create buckets in the hashtable */ kc_voidptr_t (*bucket_realloc) KC__P((kc_voidptr_t, kc_size_t, kc_size_t, kc_voidptr_t)); /* routine to be used to realloc buckets in the hashtable */ kc_voidptr_t bucket_alloc_private_data; /* private data for the bucket alloc routines */ void (*free_bucket) KC__P((kc_voidptr_t, kc_size_t, kc_voidptr_t)); /* routine to be used to free one bucket */ void (*free_buckets) KC__P((kc_voidptr_t)); /* routine to be used to free all buckets */ int bucket_alloc_inc; /* size of increments in bucket alloced memory */ /* default: KC_BUCKET_INC */ void (*bucket_alloc_info) KC__P((FILE*, kc_voidptr_t)); /* routine to print info on bucket alloc structure */ } kc_hashtable_struct_t; void kc_print_hash_statistics KC__P((FILE*)); void kc_print_all_hashtable_statistics KC__P((FILE*)); void kc_print_hashtable_statistics KC__P(( FILE*, kc_hashtable_t)); void kc_ht_static KC__P((kc_storageclass_t)); void kc_ht_dynamic KC__P((kc_storageclass_t)); void kc_ht_inc_level KC__P((kc_storageclass_t)); void kc_ht_dec_level KC__P((kc_storageclass_t)); void kc_ht_free_level KC__P((kc_storageclass_t)); kc_hashtable_t kc_ht_create_bucketmanagement KC__P((int, kc_voidptr_t (*)(), kc_voidptr_t (*)(kc_size_t, kc_voidptr_t), void (*)(kc_voidptr_t, kc_voidptr_t), void (*)(kc_voidptr_t), boolean (*)(kc_voidptr_t, kc_voidptr_t), void (*)(FILE*, kc_voidptr_t), kc_voidptr_t (*)(), kc_voidptr_t (*)(kc_size_t, kc_size_t, kc_voidptr_t), kc_voidptr_t (*)( kc_voidptr_t, kc_size_t, kc_size_t, kc_voidptr_t), void (*)(kc_voidptr_t, kc_size_t, kc_voidptr_t), void (*)(kc_voidptr_t), int, void (*)(FILE*, kc_voidptr_t))); kc_hashtable_t kc_ht_create KC__P((int, kc_voidptr_t(*)(), kc_voidptr_t(*)(kc_size_t, kc_voidptr_t), void (*)(kc_voidptr_t, kc_voidptr_t), void (*)(kc_voidptr_t), boolean (*)(kc_voidptr_t, kc_voidptr_t))); kc_hashtable_t kc_ht_create_simple KC__P((int)); kc_hashtable_t kc_ht_assign KC__P((kc_hashtable_t, kc_storageclass_t)); kc_hashtable_t kc_ht_assigned KC__P((kc_storageclass_t)); void kc_ht_clear KC__P((kc_hashtable_t)); void kc_ht_reuse KC__P((kc_hashtable_t)); void kc_ht_delete KC__P((kc_hashtable_t)); int kc_ci_strcmp KC__P(( char *, char * )); /* Maybe should be static? */ casestring mkcasestring KC__P(( char * )); nocasestring mknocasestring KC__P(( char * )); kc_hashnode_t kc_mksharinghashnode KC__P(( YYSTYPE, kc_hashtable_t, kc_enum_phyla )); kc_hashnode_t kc_mknonsharinghashnode KC__P(( YYSTYPE, kc_hashtable_t, kc_enum_phyla )); kc_dotedgenode_t kc_mkdotedgenode KC__P(( kc_hashtable_t, YYSTYPE, kc_enum_phyla, YYSTYPE, kc_enum_phyla, int )); kc_voidptr_t kc_do_copy_phylum KC__P(( kc_voidptr_t, boolean, kc_enum_phyla )); /* NOT static because we use it in csgiok.c */ uniqID Str KC__P((casestring)); ID Id KC__P((uniqID)); INT Int KC__P((int)); STRING String KC__P((casestring)); phylumdeclarationsroot PhylumDeclarations KC__P((phylumdeclarations)); phylumdeclarations Nilphylumdeclarations KC__P(()), Consphylumdeclarations KC__P((phylumdeclaration, phylumdeclarations)); phylumnames Nilphylumnames KC__P(()), Consphylumnames KC__P((ID, phylumnames)); phylumdeclaration PhylumDeclaration KC__P((ID, storageoption, productionblock, Ccode_option)); storageoption NoStorageOption KC__P(()), NegativeStorageOption KC__P((ID)), PositiveStorageOption KC__P((ID)); storageclasses Nilstorageclasses KC__P(()), Consstorageclasses KC__P((ID, storageclasses)); productionblock Emptyproductionblock KC__P(()), ListAlternatives KC__P((alternatives, ID)), NonlistAlternatives KC__P((alternatives)), PredefinedAlternatives KC__P((alternatives)); alternatives Nilalternatives KC__P(()), Consalternatives KC__P((alternative, alternatives)); alternative Alternative KC__P((ID, arguments)); arguments Nilarguments KC__P(()), Consarguments KC__P((ID, arguments)); argument Argument KC__P((ID, int)); Ccode_option CcodeOption KC__P((attributes, Ctexts)); attributes Nilattributes KC__P(()), Consattributes KC__P((attribute, attributes)); attribute Attribute KC__P((ID, ID, attribute_initialisation_option)); attribute_initialisation_option Noattribute_initialisation KC__P(()), Yesattribute_initialisation KC__P((Cexpression)); Cexpression NilCexpression KC__P(()), ConsCexpression KC__P((Cexpression_elem, Cexpression)); Cexpression_elem CExpressionPart KC__P((casestring)), CExpressionDollarvar KC__P((INT)), CExpressionNl KC__P((int)), CExpressionDQ KC__P((CexpressionDQ)), CExpressionSQ KC__P((CexpressionSQ)), CExpressionPack KC__P((Cexpression)), CExpressionArray KC__P((Cexpression)); CexpressionDQ NilCexpressionDQ KC__P(()), ConsCexpressionDQ KC__P((CexpressionDQ_elem, CexpressionDQ)); CexpressionDQ_elem CExpressionDQPart KC__P((casestring)), CExpressionDQNl KC__P((int)); CexpressionSQ NilCexpressionSQ KC__P(()), ConsCexpressionSQ KC__P((CexpressionSQ_elem, CexpressionSQ)); CexpressionSQ_elem CExpressionSQPart KC__P((casestring)), CExpressionSQNl KC__P((int)); idCexpressions NilidCexpressions KC__P(()), ConsidCexpressions KC__P((idCexpression, idCexpressions)); idCexpression IdCexpression KC__P((ID, Cexpression)); Ctexts NilCtexts KC__P(()), ConsCtexts KC__P((Ctext, Ctexts)); includefiles Nilincludefiles KC__P(()), Consincludefiles KC__P((includefile, includefiles)); includefile IncludeFile KC__P((casestring)); includedeclarations Nilincludedeclarations KC__P(()), Consincludedeclarations KC__P((includedeclaration, includedeclarations)); includedeclaration IncludeDeclaration KC__P((includes)); includes Nilincludes KC__P(()), Consincludes KC__P((include, includes)); include Include KC__P((casestring)), IncludeNl KC__P((int)); rwdeclarations Nilrwdeclarations KC__P(()), Consrwdeclarations KC__P((rwdeclaration, rwdeclarations)); rwdeclaration RwDeclaration KC__P((outmostpatterns, rewriteclauses)); rewriteclauses Nilrewriteclauses KC__P(()), Consrewriteclauses KC__P((rewriteclause, rewriteclauses)); rewriteclause RewriteClause KC__P((viewnames, term)); patternchains Nilpatternchains KC__P(()), Conspatternchains KC__P((patternchain, patternchains)); patternchain Nilpatternchain KC__P(()), Conspatternchain KC__P((patternchainitem, patternchain)); outmostpatterns Niloutmostpatterns KC__P(()), Consoutmostpatterns KC__P((outmostpattern, outmostpatterns)); patternchainitem PatternchainitemOutmost KC__P((outmostpattern)), PatternchainitemGroup KC__P((patternchains)), PatternchainitemDollarid KC__P((ID)); outmostpattern OPOperatorWildcard KC__P((ID)), OPOperator KC__P((ID, patterns)), OPNonLeafVariable KC__P((ID, outmostpattern)), OPWildcard KC__P(()), OPDefault KC__P(()); pattern PVariable KC__P((ID)), POperator KC__P((ID, patterns)), PNonLeafVariable KC__P((ID, pattern)), PWildcard KC__P(()), PStringLiteral KC__P((CexpressionDQ)), PIntLiteral KC__P((INT)); patterns Nilpatterns KC__P(()), Conspatterns KC__P((pattern, patterns)); term TVariable KC__P((ID)), TOperator KC__P((ID, terms)), TStringLiteral KC__P((CexpressionDQ)), TIntLiteral KC__P((INT)); terms Nilterms KC__P(()), Consterms KC__P((term, terms)); fnfiles Nilfnfiles KC__P(()), Consfnfiles KC__P((fnfile, fnfiles)); fnfile FnFile KC__P((casestring)); fndeclarations Nilfndeclarations KC__P(()), Consfndeclarations KC__P((fndeclaration, fndeclarations)); fndeclaration FnDeclaration KC__P((ID, int, ID, fnarguments, Cvariabledeclarations, Ctext, fnclass)), FnAcDeclaration KC__P((ac_declaration_specifiers, ac_declarator, ac_declaration_list, Ctext, ID, fnclass)); fnclass GlobalFn KC__P(()), LocalFn KC__P((casestring)); fnarguments Nilfnarguments KC__P(()), Consfnarguments KC__P((ID, fnarguments)); Cvariabledeclarations NilCvariabledeclarations KC__P(()), ConsCvariabledeclarations KC__P((Cvariabledeclaration, Cvariabledeclarations)); Cvariabledeclaration CVariabledeclaration KC__P((ID, Cvariables)), Fnargfpdecl KC__P((ID, Cvariables)); Cvariables NilCvariables KC__P(()), ConsCvariables KC__P((Cvariable, Cvariables)); Cvariable CVPointer KC__P((int, ID)), CVFunction KC__P((int, int, ID)); Ctext NilCtext KC__P(()), ConsCtext KC__P((Ctext_elem, Ctext)); Ctext_elem CTextLine KC__P((casestring)), CTextDollarVar KC__P((INT)), CTextNl KC__P((int)), CTextCexpressionDQ KC__P((CexpressionDQ)), CTextCexpressionSQ KC__P((CexpressionSQ)), CTextCbody KC__P((Ctext)), CTextForeachexpression KC__P((patternchain, idCexpressions, withexpressions, Ctext, foreach_after)), CTextWithexpression KC__P((withexpressions, withcases, contextinfo)); foreach_after NoForeachAfter KC__P(()), ForeachAfter KC__P((patternchain, idCexpressions, withexpressions, Ctext)); contextinfo InForeachContext KC__P((patternchain)), NotInForeachContext KC__P(()); withexpressions Nilwithexpressions KC__P(()), Conswithexpressions KC__P((withexpression, withexpressions)); withexpression WEVariable KC__P((ID)), WECexpression KC__P((Cexpression)); withcases Nilwithcases KC__P(()), Conswithcases KC__P((withcase, withcases)); withcase Withcase KC__P((patternchains, Ctext)); unparsedeclarations Nilunparsedeclarations KC__P(()), Consunparsedeclarations KC__P((unparsedeclaration, unparsedeclarations)); unparsedeclaration UnparseDeclaration KC__P((outmostpatterns, unparseclauses)); unparseclauses Nilunparseclauses KC__P(()), Consunparseclauses KC__P((unparseclause, unparseclauses)); unparseclause UnparseClause KC__P((viewnames, unparseitems)); viewnames Nilviewnames KC__P(()), Consviewnames KC__P((ID, viewnames)); unparseitems Nilunparseitems KC__P(()), Consunparseitems KC__P((unparseitem, unparseitems)); unparseitem UnpStr KC__P((CexpressionDQ, viewnameoption)), UnpSubexpr KC__P((unpsubterm, viewnameoption)), UnpCtext KC__P((Ctext)), UnpBody KC__P((unparseitems)); unpsubterm UnpSubTerm KC__P((ID)), UnpDollarvarTerm KC__P((INT)), UnpSubAttr KC__P((ID, unpattributes)), UnpDollarvarAttr KC__P((INT, unpattributes)), UnpCastedVariable KC__P((ID, ID)); unpattributes Nilunpattributes KC__P(()), Consunpattributes KC__P((ID, unpattributes)); viewnameoption NoViewname KC__P(()), YesViewname KC__P((ID)); filelinestack Nilfilelinestack KC__P(()), Consfilelinestack KC__P((fileline, filelinestack)); fileline FileLine KC__P((casestring, int)), NoFileLine KC__P(()), PosNoFileLine KC__P(()); nooperatorsstack Nilnooperatorsstack KC__P(()), Consnooperatorsstack KC__P((int, nooperatorsstack)); scopetypefilelinestack Nilscopetypefilelinestack KC__P(()), Consscopetypefilelinestack KC__P((scopetypefileline, scopetypefilelinestack)); scopetypefileline ScopeTypeFileLine KC__P((int, IDtype, casestring, int)); IDtype ITUnknown KC__P(()), ITPredefinedPhylum KC__P((phylumdeclaration)), ITPredefinedBigatomPhylum KC__P((phylumdeclaration)), ITUserPhylum KC__P((phylumdeclaration)), ITPredefinedOperator KC__P((alternative, ID)), ITUserOperator KC__P((alternative, ID)), ITPredefinedStorageClass KC__P(()), ITStorageClass KC__P(()), ITPredefinedUView KC__P(()), ITUserUView KC__P(()), ITPredefinedRView KC__P(()), ITUserRView KC__P(()), ITUserFunction KC__P((fnclass)), ITPatternVariable KC__P((ID, int)); operatorsstack Niloperatorsstack KC__P(()), Consoperatorsstack KC__P((operators, operatorsstack)); operators Niloperators KC__P(()), Consoperators KC__P((ID, operators)); phyla Nilphyla KC__P(()), Consphyla KC__P((ID, phyla)); variables Nilvariables KC__P(()), Consvariables KC__P((ID, variables)); argumentsstack Nilargumentsstack KC__P(()), Consargumentsstack KC__P((arguments, argumentsstack)); phylumstack Nilphylumstack KC__P(()), Consphylumstack KC__P((ID, phylumstack)); phylumnamesstack Nilphylumnamesstack KC__P(()), Consphylumnamesstack KC__P((phylumnames, phylumnamesstack)); withexpressionsstack Nilwithexpressionsstack KC__P(()), Conswithexpressionsstack KC__P((withexpressions, withexpressionsstack)); operatorstack Niloperatorstack KC__P(()), Consoperatorstack KC__P((ID, operatorstack)); variablesstack Nilvariablesstack KC__P(()), Consvariablesstack KC__P((variables, variablesstack)); selvarstack Nilselvarstack KC__P(()), Consselvarstack KC__P((ID, selvarstack)); dollarvarstatus DVAllowed KC__P(()), DVDisallowed KC__P(()); dollarvarsallowedstack Nildollarvarsallowedstack KC__P(()), Consdollarvarsallowedstack KC__P((dollarvarstatus, dollarvarsallowedstack)); intstack Nilintstack KC__P(()), Consintstack KC__P((int, intstack)); idCexpressionsstack NilidCexpressionsstack KC__P(()), ConsidCexpressionsstack KC__P((idCexpressions, idCexpressionsstack)); two_phyla TwoStorageoption KC__P((storageoption, storageoption)), TwoProductionblock KC__P((productionblock, productionblock)), TwoCcode_option KC__P((Ccode_option, Ccode_option)), TwoRewriteruleinfo KC__P((rewriteruleinfo, rewriteruleinfo)), TwoWithcaseinfo KC__P((withcaseinfo, withcaseinfo)), TwoUnparsedeclinfo KC__P((unparsedeclinfo, unparsedeclinfo)), TwoPatternrepresentation KC__P((patternrepresentation, patternrepresentation)), TwoElem_patternrepresentation KC__P((elem_patternrepresentation, elem_patternrepresentation)), TwoPaths KC__P((paths, paths)), TwoPath KC__P((path, path)); tribool Equal KC__P(()), Smaller KC__P(()), Bigger KC__P(()); patternrepresentations Nilpatternrepresentations KC__P(()), Conspatternrepresentations KC__P((patternrepresentation, patternrepresentations)); patternrepresentation Nilpatternrepresentation KC__P(()), Conspatternrepresentation KC__P((elem_patternrepresentation, patternrepresentation)); elem_patternrepresentation PRBinding KC__P((path, ID)), PRVarPredicate KC__P((paths, ID, patternrepresentation)), PROperPredicate KC__P((path, ID)), PRNonLeafBinding KC__P((path, ID, patternrepresentation)), PRWildcard KC__P((path)), PRDefault KC__P(()), PRStringLiteral KC__P((path, CexpressionDQ)), PRIntLiteral KC__P((path, INT)); path Nilpath KC__P(()), Conspath KC__P((int, path)); paths Nilpaths KC__P(()), Conspaths KC__P((path, paths)); argsnumbers Nilargsnumbers KC__P(()), Consargsnumbers KC__P((int, argsnumbers)); rewriterulesinfo Nilrewriterulesinfo KC__P(()), Consrewriterulesinfo KC__P((rewriteruleinfo, rewriterulesinfo)); rewriteruleinfo Rewriteruleinfo KC__P((patternrepresentation, patternrepresentation, rewriteclause)); withcasesinfo Nilwithcasesinfo KC__P(()), Conswithcasesinfo KC__P((withcaseinfo, withcasesinfo)); withcaseinfo Withcaseinfo KC__P((patternrepresentation, patternrepresentation, Ctext)); rewriteviewsinfo Nilrewriteviewsinfo KC__P(()), Consrewriteviewsinfo KC__P((rewriteviewinfo, rewriteviewsinfo)); rewriteviewinfo Rewriteviewinfo KC__P((ID, rewriterulesinfo)); unparseviewsinfo Nilunparseviewsinfo KC__P(()), Consunparseviewsinfo KC__P((unparseviewinfo, unparseviewsinfo)); unparseviewinfo Unparseviewinfo KC__P((ID, unparsedeclsinfo)); unparsedeclsinfo Nilunparsedeclsinfo KC__P(()), Consunparsedeclsinfo KC__P((unparsedeclinfo, unparsedeclsinfo)); unparsedeclinfo Unparsedeclinfo KC__P((patternrepresentation, patternrepresentation, unparseclause)); ac_declaration AcDeclaration KC__P((ac_declaration_specifiers, ac_init_declarator_list)); ac_declaration_list Nilac_declaration_list KC__P(()), Consac_declaration_list KC__P((ac_declaration, ac_declaration_list)); ac_declaration_specifiers Nilac_declaration_specifiers KC__P(()), Consac_declaration_specifiers KC__P((ac_declaration_specifier, ac_declaration_specifiers)); ac_declaration_specifier AcDeclSpecStorageSpec KC__P((ac_storage_class_specifier)), AcDeclSpecTypeSpec KC__P((ac_type_specifier)), AcDeclSpecTypeQual KC__P((ac_type_qualifier)); ac_storage_class_specifier AcAuto KC__P(()), AcRegister KC__P(()), AcStatic KC__P(()), AcExtern KC__P(()), AcTypedef KC__P(()); ac_type_specifier AcTypeSpec KC__P((ID)); ac_type_qualifier AcConst KC__P(()), AcVolatile KC__P(()); ac_init_declarator_list Nilac_init_declarator_list KC__P(()), Consac_init_declarator_list KC__P((ac_init_declarator, ac_init_declarator_list)); ac_init_declarator AcInitDecl KC__P((ac_declarator)); ac_declarator AcDeclarator KC__P((ac_pointer_option, ac_direct_declarator)); ac_direct_declarator AcDirectDeclId KC__P((ID)), AcDirectDeclPack KC__P((ac_declarator)), AcDirectDeclArray KC__P((ac_direct_declarator, ac_constant_expression_option)), AcDirectDeclProto KC__P((ac_direct_declarator, ac_parameter_type_list)), AcDirectDeclKandR KC__P((ac_direct_declarator, ac_identifier_list)); ac_pointer_option Nopointer KC__P(()), Yespointer KC__P((ac_pointer)); ac_pointer AcPointerNil KC__P((ac_type_qualifier_list)), AcPointerCons KC__P((ac_type_qualifier_list, ac_pointer)); ac_type_qualifier_list Nilac_type_qualifier_list KC__P(()), Consac_type_qualifier_list KC__P((ac_type_qualifier, ac_type_qualifier_list)); ac_parameter_type_list AcParList KC__P((ac_parameter_list)), AcParList3Dot KC__P((ac_parameter_list)); ac_parameter_list Nilac_parameter_list KC__P(()), Consac_parameter_list KC__P((ac_parameter_declaration, ac_parameter_list)); ac_parameter_declaration AcParDeclDecl KC__P((ac_declaration_specifiers, ac_declarator)), AcParDeclAbsdecl KC__P((ac_declaration_specifiers, ac_abstract_declarator)); ac_identifier_list Nilac_identifier_list KC__P(()), Consac_identifier_list KC__P((ID, ac_identifier_list)); ac_abstract_declarator AcAbsdeclPointer KC__P((ac_pointer)), AcAbsdeclDirdecl KC__P((ac_pointer_option, ac_direct_abstract_declarator)); ac_direct_abstract_declarator_option Noac_direct_abstract_declarator KC__P(()), Yesac_direct_abstract_declarator KC__P((ac_direct_abstract_declarator)); ac_direct_abstract_declarator AcDirAbsdeclPack KC__P((ac_abstract_declarator)), AcDirAbsdeclArray KC__P((ac_direct_abstract_declarator_option, ac_constant_expression_option)), AcDirAbsdeclFn KC__P((ac_direct_abstract_declarator_option, ac_parameter_type_list)); ac_constant_expression_option Yesac_constant_expression KC__P((ac_constant_expression)); ac_constant_expression AcConstExpr KC__P((Cexpression)); error Fatal KC__P((fileline, problem)), NonFatal KC__P((fileline, problem)), Warning KC__P((fileline, problem)); problem Problem1 KC__P((casestring)), Problem1ID KC__P((casestring, ID)), Problem1tID KC__P((casestring, ID)), Problem1we KC__P((casestring, withexpression)), Problem1ID1ID KC__P((casestring, ID, casestring, ID)), Problem1t1ID KC__P((casestring, IDtype, casestring, ID)), Problem1INT KC__P((casestring, INT)), Problem1int1 KC__P((casestring, int, casestring)), Problem1INT1ID KC__P((casestring, INT, casestring, ID)), Problem1ID1ID1ID KC__P((casestring, ID, casestring, ID, casestring, ID)), Problem1INT1ID1ID KC__P((casestring, INT, casestring, ID, casestring, ID)), Problem1storageoption1ID KC__P((casestring, storageoption, casestring, ID)), Problem2 KC__P((casestring, casestring)), Problem3 KC__P((casestring, casestring, casestring)), Problem3int1 KC__P((casestring, casestring, casestring, int, casestring)), Problem4 KC__P((casestring, casestring, casestring, casestring)), Problem5 KC__P((casestring, casestring, casestring, casestring, casestring)), Problem6 KC__P((casestring, casestring, casestring, casestring, casestring, casestring)); addedphylumdeclarations Niladdedphylumdeclarations KC__P(()), Consaddedphylumdeclarations KC__P((addedphylumdeclaration, addedphylumdeclarations)); addedphylumdeclaration AddedPhylumdeclaration KC__P((uniqID)); countedphylumdeclarations Nilcountedphylumdeclarations KC__P(()), Conscountedphylumdeclarations KC__P((countedphylumdeclaration, countedphylumdeclarations)); countedphylumdeclaration CountedPhylumdeclaration KC__P((uniqID)); bindingidmarks Nilbindingidmarks KC__P(()), Consbindingidmarks KC__P((bindingidmark, bindingidmarks)); bindingidmark BindingIdMark KC__P((uniqID)); char *kc_phylumname_or_error KC__P(( int )); char *kc_operatorname_or_error KC__P(( int )); struct kc_tag_kc_hashnode_t { kc_enum_operators prod_sel; YYSTYPE ptr; int number; boolean created; }; struct kc_tag_kc_dotedgenode_t { kc_enum_operators prod_sel; kc_enum_phyla phy_from; YYSTYPE ptr_from; kc_enum_phyla phy_to; YYSTYPE ptr_to; int son_nr; char *label; int lsize; kc_dotedgenode_t next; }; struct kc_tag_nocasestring { kc_enum_operators prod_sel; char *name; }; struct kc_tag_casestring { kc_enum_operators prod_sel; char *name; }; struct kc_tag_uniqID { kc_enum_operators prod_sel; union { struct { casestring casestring_1; } Str; } u; IDtype type; int line; casestring file; scopetypefilelinestack scopeinfo; }; struct kc_tag_ID { kc_enum_operators prod_sel; union { struct { uniqID uniqID_1; } Id; } u; IDtype type; int line; casestring file; }; struct kc_tag_INT { kc_enum_operators prod_sel; union { struct { int int_1; } Int; } u; int line; casestring file; }; struct kc_tag_STRING { kc_enum_operators prod_sel; union { struct { casestring casestring_1; } String; } u; int line; casestring file; }; struct kc_tag_phylumdeclarationsroot { kc_enum_operators prod_sel; union { struct { phylumdeclarations phylumdeclarations_1; } PhylumDeclarations; } u; }; struct kc_tag_phylumdeclarations { kc_enum_operators prod_sel; union { struct { phylumdeclaration phylumdeclaration_1; phylumdeclarations phylumdeclarations_1; } Consphylumdeclarations; } u; }; struct kc_tag_phylumnames { kc_enum_operators prod_sel; union { struct { ID ID_1; phylumnames phylumnames_1; } Consphylumnames; } u; }; struct kc_tag_phylumdeclaration { kc_enum_operators prod_sel; union { struct { ID ID_1; storageoption storageoption_1; productionblock productionblock_1; Ccode_option Ccode_option_1; } PhylumDeclaration; } u; int marked; }; struct kc_tag_storageoption { kc_enum_operators prod_sel; union { struct { ID ID_1; } NegativeStorageOption; struct { ID ID_1; } PositiveStorageOption; } u; }; struct kc_tag_storageclasses { kc_enum_operators prod_sel; union { struct { ID ID_1; storageclasses storageclasses_1; } Consstorageclasses; } u; phylumnames phyla; }; struct kc_tag_productionblock { kc_enum_operators prod_sel; union { struct { alternatives alternatives_1; ID ID_1; } ListAlternatives; struct { alternatives alternatives_1; } NonlistAlternatives; struct { alternatives alternatives_1; } PredefinedAlternatives; } u; }; struct kc_tag_alternatives { kc_enum_operators prod_sel; union { struct { alternative alternative_1; alternatives alternatives_1; } Consalternatives; } u; }; struct kc_tag_alternative { kc_enum_operators prod_sel; union { struct { ID ID_1; arguments arguments_1; } Alternative; } u; rewriterulesinfo rewriteinfo; unparsedeclsinfo unparseinfo; boolean bigatoms; }; struct kc_tag_arguments { kc_enum_operators prod_sel; union { struct { ID ID_1; arguments arguments_1; } Consarguments; } u; int seqnr; }; struct kc_tag_argument { kc_enum_operators prod_sel; union { struct { ID ID_1; int int_1; } Argument; } u; }; struct kc_tag_Ccode_option { kc_enum_operators prod_sel; union { struct { attributes attributes_1; Ctexts Ctexts_1; } CcodeOption; } u; }; struct kc_tag_attributes { kc_enum_operators prod_sel; union { struct { attribute attribute_1; attributes attributes_1; } Consattributes; } u; }; struct kc_tag_attribute { kc_enum_operators prod_sel; union { struct { ID ID_1; ID ID_2; attribute_initialisation_option attribute_initialisation_option_1; } Attribute; } u; }; struct kc_tag_attribute_initialisation_option { kc_enum_operators prod_sel; union { struct { Cexpression Cexpression_1; } Yesattribute_initialisation; } u; }; struct kc_tag_Cexpression { kc_enum_operators prod_sel; union { struct { Cexpression_elem Cexpression_elem_1; Cexpression Cexpression_1; } ConsCexpression; } u; int line; casestring file; }; struct kc_tag_Cexpression_elem { kc_enum_operators prod_sel; union { struct { casestring casestring_1; } CExpressionPart; struct { INT INT_1; } CExpressionDollarvar; struct { int int_1; } CExpressionNl; struct { CexpressionDQ CexpressionDQ_1; } CExpressionDQ; struct { CexpressionSQ CexpressionSQ_1; } CExpressionSQ; struct { Cexpression Cexpression_1; } CExpressionPack; struct { Cexpression Cexpression_1; } CExpressionArray; } u; }; struct kc_tag_CexpressionDQ { kc_enum_operators prod_sel; union { struct { CexpressionDQ_elem CexpressionDQ_elem_1; CexpressionDQ CexpressionDQ_1; } ConsCexpressionDQ; } u; }; struct kc_tag_CexpressionDQ_elem { kc_enum_operators prod_sel; union { struct { casestring casestring_1; } CExpressionDQPart; struct { int int_1; } CExpressionDQNl; } u; }; struct kc_tag_CexpressionSQ { kc_enum_operators prod_sel; union { struct { CexpressionSQ_elem CexpressionSQ_elem_1; CexpressionSQ CexpressionSQ_1; } ConsCexpressionSQ; } u; }; struct kc_tag_CexpressionSQ_elem { kc_enum_operators prod_sel; union { struct { casestring casestring_1; } CExpressionSQPart; struct { int int_1; } CExpressionSQNl; } u; }; struct kc_tag_idCexpressions { kc_enum_operators prod_sel; union { struct { idCexpression idCexpression_1; idCexpressions idCexpressions_1; } ConsidCexpressions; } u; }; struct kc_tag_idCexpression { kc_enum_operators prod_sel; union { struct { ID ID_1; Cexpression Cexpression_1; } IdCexpression; } u; ID id; }; struct kc_tag_Ctexts { kc_enum_operators prod_sel; union { struct { Ctext Ctext_1; Ctexts Ctexts_1; } ConsCtexts; } u; }; struct kc_tag_includefiles { kc_enum_operators prod_sel; union { struct { includefile includefile_1; includefiles includefiles_1; } Consincludefiles; } u; }; struct kc_tag_includefile { kc_enum_operators prod_sel; union { struct { casestring casestring_1; } IncludeFile; } u; include_type inc_type; includedeclarations INC2; includefile newinclude; }; struct kc_tag_includedeclarations { kc_enum_operators prod_sel; union { struct { includedeclaration includedeclaration_1; includedeclarations includedeclarations_1; } Consincludedeclarations; } u; }; struct kc_tag_includedeclaration { kc_enum_operators prod_sel; union { struct { includes includes_1; } IncludeDeclaration; } u; int line; casestring file; }; struct kc_tag_includes { kc_enum_operators prod_sel; union { struct { include include_1; includes includes_1; } Consincludes; } u; }; struct kc_tag_include { kc_enum_operators prod_sel; union { struct { casestring casestring_1; } Include; struct { int int_1; } IncludeNl; } u; }; struct kc_tag_rwdeclarations { kc_enum_operators prod_sel; union { struct { rwdeclaration rwdeclaration_1; rwdeclarations rwdeclarations_1; } Consrwdeclarations; } u; }; struct kc_tag_rwdeclaration { kc_enum_operators prod_sel; union { struct { outmostpatterns outmostpatterns_1; rewriteclauses rewriteclauses_1; } RwDeclaration; } u; }; struct kc_tag_rewriteclauses { kc_enum_operators prod_sel; union { struct { rewriteclause rewriteclause_1; rewriteclauses rewriteclauses_1; } Consrewriteclauses; } u; }; struct kc_tag_rewriteclause { kc_enum_operators prod_sel; union { struct { viewnames viewnames_1; term term_1; } RewriteClause; } u; }; struct kc_tag_patternchains { kc_enum_operators prod_sel; union { struct { patternchain patternchain_1; patternchains patternchains_1; } Conspatternchains; } u; int line; casestring file; }; struct kc_tag_patternchain { kc_enum_operators prod_sel; union { struct { patternchainitem patternchainitem_1; patternchain patternchain_1; } Conspatternchain; } u; int line; casestring file; }; struct kc_tag_outmostpatterns { kc_enum_operators prod_sel; union { struct { outmostpattern outmostpattern_1; outmostpatterns outmostpatterns_1; } Consoutmostpatterns; } u; }; struct kc_tag_patternchainitem { kc_enum_operators prod_sel; union { struct { outmostpattern outmostpattern_1; } PatternchainitemOutmost; struct { patternchains patternchains_1; } PatternchainitemGroup; struct { ID ID_1; } PatternchainitemDollarid; } u; int line; casestring file; ID type; }; struct kc_tag_outmostpattern { kc_enum_operators prod_sel; union { struct { ID ID_1; } OPOperatorWildcard; struct { ID ID_1; patterns patterns_1; } OPOperator; struct { ID ID_1; outmostpattern outmostpattern_1; } OPNonLeafVariable; } u; ID type; }; struct kc_tag_pattern { kc_enum_operators prod_sel; union { struct { ID ID_1; } PVariable; struct { ID ID_1; patterns patterns_1; } POperator; struct { ID ID_1; pattern pattern_1; } PNonLeafVariable; struct { CexpressionDQ CexpressionDQ_1; } PStringLiteral; struct { INT INT_1; } PIntLiteral; } u; }; struct kc_tag_patterns { kc_enum_operators prod_sel; union { struct { pattern pattern_1; patterns patterns_1; } Conspatterns; } u; }; struct kc_tag_term { kc_enum_operators prod_sel; union { struct { ID ID_1; } TVariable; struct { ID ID_1; terms terms_1; } TOperator; struct { CexpressionDQ CexpressionDQ_1; } TStringLiteral; struct { INT INT_1; } TIntLiteral; } u; }; struct kc_tag_terms { kc_enum_operators prod_sel; union { struct { term term_1; terms terms_1; } Consterms; } u; }; struct kc_tag_fnfiles { kc_enum_operators prod_sel; union { struct { fnfile fnfile_1; fnfiles fnfiles_1; } Consfnfiles; } u; }; struct kc_tag_fnfile { kc_enum_operators prod_sel; union { struct { casestring casestring_1; } FnFile; } u; fndeclarations fns; }; struct kc_tag_fndeclarations { kc_enum_operators prod_sel; union { struct { fndeclaration fndeclaration_1; fndeclarations fndeclarations_1; } Consfndeclarations; } u; }; struct kc_tag_fndeclaration { kc_enum_operators prod_sel; union { struct { ID ID_1; int int_1; ID ID_2; fnarguments fnarguments_1; Cvariabledeclarations Cvariabledeclarations_1; Ctext Ctext_1; fnclass fnclass_1; } FnDeclaration; struct { ac_declaration_specifiers ac_declaration_specifiers_1; ac_declarator ac_declarator_1; ac_declaration_list ac_declaration_list_1; Ctext Ctext_1; ID ID_1; fnclass fnclass_1; } FnAcDeclaration; } u; Cvariabledeclarations sorted; ac_parameter_type_list newsorted; int last_line; casestring file; }; struct kc_tag_fnclass { kc_enum_operators prod_sel; union { struct { casestring casestring_1; } LocalFn; } u; }; struct kc_tag_fnarguments { kc_enum_operators prod_sel; union { struct { ID ID_1; fnarguments fnarguments_1; } Consfnarguments; } u; }; struct kc_tag_Cvariabledeclarations { kc_enum_operators prod_sel; union { struct { Cvariabledeclaration Cvariabledeclaration_1; Cvariabledeclarations Cvariabledeclarations_1; } ConsCvariabledeclarations; } u; }; struct kc_tag_Cvariabledeclaration { kc_enum_operators prod_sel; union { struct { ID ID_1; Cvariables Cvariables_1; } CVariabledeclaration; struct { ID ID_1; Cvariables Cvariables_1; } Fnargfpdecl; } u; }; struct kc_tag_Cvariables { kc_enum_operators prod_sel; union { struct { Cvariable Cvariable_1; Cvariables Cvariables_1; } ConsCvariables; } u; }; struct kc_tag_Cvariable { kc_enum_operators prod_sel; union { struct { int int_1; ID ID_1; } CVPointer; struct { int int_1; int int_2; ID ID_1; } CVFunction; } u; }; struct kc_tag_Ctext { kc_enum_operators prod_sel; union { struct { Ctext_elem Ctext_elem_1; Ctext Ctext_1; } ConsCtext; } u; int line; casestring file; }; struct kc_tag_Ctext_elem { kc_enum_operators prod_sel; union { struct { casestring casestring_1; } CTextLine; struct { INT INT_1; } CTextDollarVar; struct { int int_1; } CTextNl; struct { CexpressionDQ CexpressionDQ_1; } CTextCexpressionDQ; struct { CexpressionSQ CexpressionSQ_1; } CTextCexpressionSQ; struct { Ctext Ctext_1; } CTextCbody; struct { patternchain patternchain_1; idCexpressions idCexpressions_1; withexpressions withexpressions_1; Ctext Ctext_1; foreach_after foreach_after_1; } CTextForeachexpression; struct { withexpressions withexpressions_1; withcases withcases_1; contextinfo contextinfo_1; } CTextWithexpression; } u; int line; casestring file; }; struct kc_tag_foreach_after { kc_enum_operators prod_sel; union { struct { patternchain patternchain_1; idCexpressions idCexpressions_1; withexpressions withexpressions_1; Ctext Ctext_1; } ForeachAfter; } u; int line; casestring file; }; struct kc_tag_contextinfo { kc_enum_operators prod_sel; union { struct { patternchain patternchain_1; } InForeachContext; } u; }; struct kc_tag_withexpressions { kc_enum_operators prod_sel; union { struct { withexpression withexpression_1; withexpressions withexpressions_1; } Conswithexpressions; } u; phylumnames type; int line; casestring file; }; struct kc_tag_withexpression { kc_enum_operators prod_sel; union { struct { ID ID_1; } WEVariable; struct { Cexpression Cexpression_1; } WECexpression; } u; ID type; int line; casestring file; }; struct kc_tag_withcases { kc_enum_operators prod_sel; union { struct { withcase withcase_1; withcases withcases_1; } Conswithcases; } u; withcasesinfo wcinfo; }; struct kc_tag_withcase { kc_enum_operators prod_sel; union { struct { patternchains patternchains_1; Ctext Ctext_1; } Withcase; } u; withcasesinfo wcinfo; }; struct kc_tag_unparsedeclarations { kc_enum_operators prod_sel; union { struct { unparsedeclaration unparsedeclaration_1; unparsedeclarations unparsedeclarations_1; } Consunparsedeclarations; } u; }; struct kc_tag_unparsedeclaration { kc_enum_operators prod_sel; union { struct { outmostpatterns outmostpatterns_1; unparseclauses unparseclauses_1; } UnparseDeclaration; } u; patternrepresentations patternreps; }; struct kc_tag_unparseclauses { kc_enum_operators prod_sel; union { struct { unparseclause unparseclause_1; unparseclauses unparseclauses_1; } Consunparseclauses; } u; }; struct kc_tag_unparseclause { kc_enum_operators prod_sel; union { struct { viewnames viewnames_1; unparseitems unparseitems_1; } UnparseClause; } u; }; struct kc_tag_viewnames { kc_enum_operators prod_sel; union { struct { ID ID_1; viewnames viewnames_1; } Consviewnames; } u; }; struct kc_tag_unparseitems { kc_enum_operators prod_sel; union { struct { unparseitem unparseitem_1; unparseitems unparseitems_1; } Consunparseitems; } u; }; struct kc_tag_unparseitem { kc_enum_operators prod_sel; union { struct { CexpressionDQ CexpressionDQ_1; viewnameoption viewnameoption_1; } UnpStr; struct { unpsubterm unpsubterm_1; viewnameoption viewnameoption_1; } UnpSubexpr; struct { Ctext Ctext_1; } UnpCtext; struct { unparseitems unparseitems_1; } UnpBody; } u; }; struct kc_tag_unpsubterm { kc_enum_operators prod_sel; union { struct { ID ID_1; } UnpSubTerm; struct { INT INT_1; } UnpDollarvarTerm; struct { ID ID_1; unpattributes unpattributes_1; } UnpSubAttr; struct { INT INT_1; unpattributes unpattributes_1; } UnpDollarvarAttr; struct { ID ID_1; ID ID_2; } UnpCastedVariable; } u; }; struct kc_tag_unpattributes { kc_enum_operators prod_sel; union { struct { ID ID_1; unpattributes unpattributes_1; } Consunpattributes; } u; }; struct kc_tag_viewnameoption { kc_enum_operators prod_sel; union { struct { ID ID_1; } YesViewname; } u; }; struct kc_tag_filelinestack { kc_enum_operators prod_sel; union { struct { fileline fileline_1; filelinestack filelinestack_1; } Consfilelinestack; } u; }; struct kc_tag_fileline { kc_enum_operators prod_sel; union { struct { casestring casestring_1; int int_1; } FileLine; } u; }; struct kc_tag_nooperatorsstack { kc_enum_operators prod_sel; union { struct { int int_1; nooperatorsstack nooperatorsstack_1; } Consnooperatorsstack; } u; }; struct kc_tag_scopetypefilelinestack { kc_enum_operators prod_sel; union { struct { scopetypefileline scopetypefileline_1; scopetypefilelinestack scopetypefilelinestack_1; } Consscopetypefilelinestack; } u; }; struct kc_tag_scopetypefileline { kc_enum_operators prod_sel; union { struct { int int_1; IDtype IDtype_1; casestring casestring_1; int int_2; } ScopeTypeFileLine; } u; }; struct kc_tag_IDtype { kc_enum_operators prod_sel; union { struct { phylumdeclaration phylumdeclaration_1; } ITPredefinedPhylum; struct { phylumdeclaration phylumdeclaration_1; } ITPredefinedBigatomPhylum; struct { phylumdeclaration phylumdeclaration_1; } ITUserPhylum; struct { alternative alternative_1; ID ID_1; } ITPredefinedOperator; struct { alternative alternative_1; ID ID_1; } ITUserOperator; struct { fnclass fnclass_1; } ITUserFunction; struct { ID ID_1; int int_1; } ITPatternVariable; } u; }; struct kc_tag_operatorsstack { kc_enum_operators prod_sel; union { struct { operators operators_1; operatorsstack operatorsstack_1; } Consoperatorsstack; } u; }; struct kc_tag_operators { kc_enum_operators prod_sel; union { struct { ID ID_1; operators operators_1; } Consoperators; } u; }; struct kc_tag_phyla { kc_enum_operators prod_sel; union { struct { ID ID_1; phyla phyla_1; } Consphyla; } u; }; struct kc_tag_variables { kc_enum_operators prod_sel; union { struct { ID ID_1; variables variables_1; } Consvariables; } u; }; struct kc_tag_argumentsstack { kc_enum_operators prod_sel; union { struct { arguments arguments_1; argumentsstack argumentsstack_1; } Consargumentsstack; } u; }; struct kc_tag_phylumstack { kc_enum_operators prod_sel; union { struct { ID ID_1; phylumstack phylumstack_1; } Consphylumstack; } u; }; struct kc_tag_phylumnamesstack { kc_enum_operators prod_sel; union { struct { phylumnames phylumnames_1; phylumnamesstack phylumnamesstack_1; } Consphylumnamesstack; } u; }; struct kc_tag_withexpressionsstack { kc_enum_operators prod_sel; union { struct { withexpressions withexpressions_1; withexpressionsstack withexpressionsstack_1; } Conswithexpressionsstack; } u; }; struct kc_tag_operatorstack { kc_enum_operators prod_sel; union { struct { ID ID_1; operatorstack operatorstack_1; } Consoperatorstack; } u; }; struct kc_tag_variablesstack { kc_enum_operators prod_sel; union { struct { variables variables_1; variablesstack variablesstack_1; } Consvariablesstack; } u; }; struct kc_tag_selvarstack { kc_enum_operators prod_sel; union { struct { ID ID_1; selvarstack selvarstack_1; } Consselvarstack; } u; }; struct kc_tag_dollarvarstatus { kc_enum_operators prod_sel; }; struct kc_tag_dollarvarsallowedstack { kc_enum_operators prod_sel; union { struct { dollarvarstatus dollarvarstatus_1; dollarvarsallowedstack dollarvarsallowedstack_1; } Consdollarvarsallowedstack; } u; }; struct kc_tag_intstack { kc_enum_operators prod_sel; union { struct { int int_1; intstack intstack_1; } Consintstack; } u; }; struct kc_tag_idCexpressionsstack { kc_enum_operators prod_sel; union { struct { idCexpressions idCexpressions_1; idCexpressionsstack idCexpressionsstack_1; } ConsidCexpressionsstack; } u; }; struct kc_tag_two_phyla { kc_enum_operators prod_sel; union { struct { storageoption storageoption_1; storageoption storageoption_2; } TwoStorageoption; struct { productionblock productionblock_1; productionblock productionblock_2; } TwoProductionblock; struct { Ccode_option Ccode_option_1; Ccode_option Ccode_option_2; } TwoCcode_option; struct { rewriteruleinfo rewriteruleinfo_1; rewriteruleinfo rewriteruleinfo_2; } TwoRewriteruleinfo; struct { withcaseinfo withcaseinfo_1; withcaseinfo withcaseinfo_2; } TwoWithcaseinfo; struct { unparsedeclinfo unparsedeclinfo_1; unparsedeclinfo unparsedeclinfo_2; } TwoUnparsedeclinfo; struct { patternrepresentation patternrepresentation_1; patternrepresentation patternrepresentation_2; } TwoPatternrepresentation; struct { elem_patternrepresentation elem_patternrepresentation_1; elem_patternrepresentation elem_patternrepresentation_2; } TwoElem_patternrepresentation; struct { paths paths_1; paths paths_2; } TwoPaths; struct { path path_1; path path_2; } TwoPath; } u; }; struct kc_tag_tribool { kc_enum_operators prod_sel; }; struct kc_tag_patternrepresentations { kc_enum_operators prod_sel; union { struct { patternrepresentation patternrepresentation_1; patternrepresentations patternrepresentations_1; } Conspatternrepresentations; } u; }; struct kc_tag_patternrepresentation { kc_enum_operators prod_sel; union { struct { elem_patternrepresentation elem_patternrepresentation_1; patternrepresentation patternrepresentation_1; } Conspatternrepresentation; } u; }; struct kc_tag_elem_patternrepresentation { kc_enum_operators prod_sel; union { struct { path path_1; ID ID_1; } PRBinding; struct { paths paths_1; ID ID_1; patternrepresentation patternrepresentation_1; } PRVarPredicate; struct { path path_1; ID ID_1; } PROperPredicate; struct { path path_1; ID ID_1; patternrepresentation patternrepresentation_1; } PRNonLeafBinding; struct { path path_1; } PRWildcard; struct { path path_1; CexpressionDQ CexpressionDQ_1; } PRStringLiteral; struct { path path_1; INT INT_1; } PRIntLiteral; } u; ID type; }; struct kc_tag_path { kc_enum_operators prod_sel; union { struct { int int_1; path path_1; } Conspath; } u; ID op; ID id; }; struct kc_tag_paths { kc_enum_operators prod_sel; union { struct { path path_1; paths paths_1; } Conspaths; } u; }; struct kc_tag_argsnumbers { kc_enum_operators prod_sel; union { struct { int int_1; argsnumbers argsnumbers_1; } Consargsnumbers; } u; }; struct kc_tag_rewriterulesinfo { kc_enum_operators prod_sel; union { struct { rewriteruleinfo rewriteruleinfo_1; rewriterulesinfo rewriterulesinfo_1; } Consrewriterulesinfo; } u; }; struct kc_tag_rewriteruleinfo { kc_enum_operators prod_sel; union { struct { patternrepresentation patternrepresentation_1; patternrepresentation patternrepresentation_2; rewriteclause rewriteclause_1; } Rewriteruleinfo; } u; }; struct kc_tag_withcasesinfo { kc_enum_operators prod_sel; union { struct { withcaseinfo withcaseinfo_1; withcasesinfo withcasesinfo_1; } Conswithcasesinfo; } u; }; struct kc_tag_withcaseinfo { kc_enum_operators prod_sel; union { struct { patternrepresentation patternrepresentation_1; patternrepresentation patternrepresentation_2; Ctext Ctext_1; } Withcaseinfo; } u; }; struct kc_tag_rewriteviewsinfo { kc_enum_operators prod_sel; union { struct { rewriteviewinfo rewriteviewinfo_1; rewriteviewsinfo rewriteviewsinfo_1; } Consrewriteviewsinfo; } u; }; struct kc_tag_rewriteviewinfo { kc_enum_operators prod_sel; union { struct { ID ID_1; rewriterulesinfo rewriterulesinfo_1; } Rewriteviewinfo; } u; }; struct kc_tag_unparseviewsinfo { kc_enum_operators prod_sel; union { struct { unparseviewinfo unparseviewinfo_1; unparseviewsinfo unparseviewsinfo_1; } Consunparseviewsinfo; } u; }; struct kc_tag_unparseviewinfo { kc_enum_operators prod_sel; union { struct { ID ID_1; unparsedeclsinfo unparsedeclsinfo_1; } Unparseviewinfo; } u; }; struct kc_tag_unparsedeclsinfo { kc_enum_operators prod_sel; union { struct { unparsedeclinfo unparsedeclinfo_1; unparsedeclsinfo unparsedeclsinfo_1; } Consunparsedeclsinfo; } u; }; struct kc_tag_unparsedeclinfo { kc_enum_operators prod_sel; union { struct { patternrepresentation patternrepresentation_1; patternrepresentation patternrepresentation_2; unparseclause unparseclause_1; } Unparsedeclinfo; } u; }; struct kc_tag_ac_declaration { kc_enum_operators prod_sel; union { struct { ac_declaration_specifiers ac_declaration_specifiers_1; ac_init_declarator_list ac_init_declarator_list_1; } AcDeclaration; } u; }; struct kc_tag_ac_declaration_list { kc_enum_operators prod_sel; union { struct { ac_declaration ac_declaration_1; ac_declaration_list ac_declaration_list_1; } Consac_declaration_list; } u; }; struct kc_tag_ac_declaration_specifiers { kc_enum_operators prod_sel; union { struct { ac_declaration_specifier ac_declaration_specifier_1; ac_declaration_specifiers ac_declaration_specifiers_1; } Consac_declaration_specifiers; } u; }; struct kc_tag_ac_declaration_specifier { kc_enum_operators prod_sel; union { struct { ac_storage_class_specifier ac_storage_class_specifier_1; } AcDeclSpecStorageSpec; struct { ac_type_specifier ac_type_specifier_1; } AcDeclSpecTypeSpec; struct { ac_type_qualifier ac_type_qualifier_1; } AcDeclSpecTypeQual; } u; }; struct kc_tag_ac_storage_class_specifier { kc_enum_operators prod_sel; }; struct kc_tag_ac_type_specifier { kc_enum_operators prod_sel; union { struct { ID ID_1; } AcTypeSpec; } u; }; struct kc_tag_ac_type_qualifier { kc_enum_operators prod_sel; }; struct kc_tag_ac_init_declarator_list { kc_enum_operators prod_sel; union { struct { ac_init_declarator ac_init_declarator_1; ac_init_declarator_list ac_init_declarator_list_1; } Consac_init_declarator_list; } u; }; struct kc_tag_ac_init_declarator { kc_enum_operators prod_sel; union { struct { ac_declarator ac_declarator_1; } AcInitDecl; } u; }; struct kc_tag_ac_declarator { kc_enum_operators prod_sel; union { struct { ac_pointer_option ac_pointer_option_1; ac_direct_declarator ac_direct_declarator_1; } AcDeclarator; } u; }; struct kc_tag_ac_direct_declarator { kc_enum_operators prod_sel; union { struct { ID ID_1; } AcDirectDeclId; struct { ac_declarator ac_declarator_1; } AcDirectDeclPack; struct { ac_direct_declarator ac_direct_declarator_1; ac_constant_expression_option ac_constant_expression_option_1; } AcDirectDeclArray; struct { ac_direct_declarator ac_direct_declarator_1; ac_parameter_type_list ac_parameter_type_list_1; } AcDirectDeclProto; struct { ac_direct_declarator ac_direct_declarator_1; ac_identifier_list ac_identifier_list_1; } AcDirectDeclKandR; } u; }; struct kc_tag_ac_pointer_option { kc_enum_operators prod_sel; union { struct { ac_pointer ac_pointer_1; } Yespointer; } u; }; struct kc_tag_ac_pointer { kc_enum_operators prod_sel; union { struct { ac_type_qualifier_list ac_type_qualifier_list_1; } AcPointerNil; struct { ac_type_qualifier_list ac_type_qualifier_list_1; ac_pointer ac_pointer_1; } AcPointerCons; } u; }; struct kc_tag_ac_type_qualifier_list { kc_enum_operators prod_sel; union { struct { ac_type_qualifier ac_type_qualifier_1; ac_type_qualifier_list ac_type_qualifier_list_1; } Consac_type_qualifier_list; } u; }; struct kc_tag_ac_parameter_type_list { kc_enum_operators prod_sel; union { struct { ac_parameter_list ac_parameter_list_1; } AcParList; struct { ac_parameter_list ac_parameter_list_1; } AcParList3Dot; } u; }; struct kc_tag_ac_parameter_list { kc_enum_operators prod_sel; union { struct { ac_parameter_declaration ac_parameter_declaration_1; ac_parameter_list ac_parameter_list_1; } Consac_parameter_list; } u; }; struct kc_tag_ac_parameter_declaration { kc_enum_operators prod_sel; union { struct { ac_declaration_specifiers ac_declaration_specifiers_1; ac_declarator ac_declarator_1; } AcParDeclDecl; struct { ac_declaration_specifiers ac_declaration_specifiers_1; ac_abstract_declarator ac_abstract_declarator_1; } AcParDeclAbsdecl; } u; }; struct kc_tag_ac_identifier_list { kc_enum_operators prod_sel; union { struct { ID ID_1; ac_identifier_list ac_identifier_list_1; } Consac_identifier_list; } u; }; struct kc_tag_ac_abstract_declarator { kc_enum_operators prod_sel; union { struct { ac_pointer ac_pointer_1; } AcAbsdeclPointer; struct { ac_pointer_option ac_pointer_option_1; ac_direct_abstract_declarator ac_direct_abstract_declarator_1; } AcAbsdeclDirdecl; } u; }; struct kc_tag_ac_direct_abstract_declarator_option { kc_enum_operators prod_sel; union { struct { ac_direct_abstract_declarator ac_direct_abstract_declarator_1; } Yesac_direct_abstract_declarator; } u; }; struct kc_tag_ac_direct_abstract_declarator { kc_enum_operators prod_sel; union { struct { ac_abstract_declarator ac_abstract_declarator_1; } AcDirAbsdeclPack; struct { ac_direct_abstract_declarator_option ac_direct_abstract_declarator_option_1; ac_constant_expression_option ac_constant_expression_option_1; } AcDirAbsdeclArray; struct { ac_direct_abstract_declarator_option ac_direct_abstract_declarator_option_1; ac_parameter_type_list ac_parameter_type_list_1; } AcDirAbsdeclFn; } u; }; struct kc_tag_ac_constant_expression_option { kc_enum_operators prod_sel; union { struct { ac_constant_expression ac_constant_expression_1; } Yesac_constant_expression; } u; }; struct kc_tag_ac_constant_expression { kc_enum_operators prod_sel; union { struct { Cexpression Cexpression_1; } AcConstExpr; } u; }; struct kc_tag_error { kc_enum_operators prod_sel; union { struct { fileline fileline_1; problem problem_1; } Fatal; struct { fileline fileline_1; problem problem_1; } NonFatal; struct { fileline fileline_1; problem problem_1; } Warning; } u; }; struct kc_tag_problem { kc_enum_operators prod_sel; union { struct { casestring casestring_1; } Problem1; struct { casestring casestring_1; ID ID_1; } Problem1ID; struct { casestring casestring_1; ID ID_1; } Problem1tID; struct { casestring casestring_1; withexpression withexpression_1; } Problem1we; struct { casestring casestring_1; ID ID_1; casestring casestring_2; ID ID_2; } Problem1ID1ID; struct { casestring casestring_1; IDtype IDtype_1; casestring casestring_2; ID ID_1; } Problem1t1ID; struct { casestring casestring_1; INT INT_1; } Problem1INT; struct { casestring casestring_1; int int_1; casestring casestring_2; } Problem1int1; struct { casestring casestring_1; INT INT_1; casestring casestring_2; ID ID_1; } Problem1INT1ID; struct { casestring casestring_1; ID ID_1; casestring casestring_2; ID ID_2; casestring casestring_3; ID ID_3; } Problem1ID1ID1ID; struct { casestring casestring_1; INT INT_1; casestring casestring_2; ID ID_1; casestring casestring_3; ID ID_2; } Problem1INT1ID1ID; struct { casestring casestring_1; storageoption storageoption_1; casestring casestring_2; ID ID_1; } Problem1storageoption1ID; struct { casestring casestring_1; casestring casestring_2; } Problem2; struct { casestring casestring_1; casestring casestring_2; casestring casestring_3; } Problem3; struct { casestring casestring_1; casestring casestring_2; casestring casestring_3; int int_1; casestring casestring_4; } Problem3int1; struct { casestring casestring_1; casestring casestring_2; casestring casestring_3; casestring casestring_4; } Problem4; struct { casestring casestring_1; casestring casestring_2; casestring casestring_3; casestring casestring_4; casestring casestring_5; } Problem5; struct { casestring casestring_1; casestring casestring_2; casestring casestring_3; casestring casestring_4; casestring casestring_5; casestring casestring_6; } Problem6; } u; }; struct kc_tag_addedphylumdeclarations { kc_enum_operators prod_sel; union { struct { addedphylumdeclaration addedphylumdeclaration_1; addedphylumdeclarations addedphylumdeclarations_1; } Consaddedphylumdeclarations; } u; }; struct kc_tag_addedphylumdeclaration { kc_enum_operators prod_sel; union { struct { uniqID uniqID_1; } AddedPhylumdeclaration; } u; boolean added; }; struct kc_tag_countedphylumdeclarations { kc_enum_operators prod_sel; union { struct { countedphylumdeclaration countedphylumdeclaration_1; countedphylumdeclarations countedphylumdeclarations_1; } Conscountedphylumdeclarations; } u; }; struct kc_tag_countedphylumdeclaration { kc_enum_operators prod_sel; union { struct { uniqID uniqID_1; } CountedPhylumdeclaration; } u; int count; }; struct kc_tag_bindingidmarks { kc_enum_operators prod_sel; union { struct { bindingidmark bindingidmark_1; bindingidmarks bindingidmarks_1; } Consbindingidmarks; } u; }; struct kc_tag_bindingidmark { kc_enum_operators prod_sel; union { struct { uniqID uniqID_1; } BindingIdMark; } u; boolean marked; }; void free_nocasestring KC__P(( nocasestring, boolean )); void free_casestring KC__P(( casestring, boolean )); void free_float KC__P(( float, boolean )); void free_int KC__P(( int, boolean )); void free_voidptr KC__P(( voidptr, boolean )); void free_uniqID KC__P(( uniqID, boolean )); void free_ID KC__P(( ID, boolean )); void free_INT KC__P(( INT, boolean )); void free_STRING KC__P(( STRING, boolean )); void free_phylumdeclarationsroot KC__P(( phylumdeclarationsroot, boolean )); void free_phylumdeclarations KC__P(( phylumdeclarations, boolean )); void free_phylumnames KC__P(( phylumnames, boolean )); void free_phylumdeclaration KC__P(( phylumdeclaration, boolean )); void free_storageoption KC__P(( storageoption, boolean )); void free_storageclasses KC__P(( storageclasses, boolean )); void free_productionblock KC__P(( productionblock, boolean )); void free_alternatives KC__P(( alternatives, boolean )); void free_alternative KC__P(( alternative, boolean )); void free_arguments KC__P(( arguments, boolean )); void free_argument KC__P(( argument, boolean )); void free_Ccode_option KC__P(( Ccode_option, boolean )); void free_attributes KC__P(( attributes, boolean )); void free_attribute KC__P(( attribute, boolean )); void free_attribute_initialisation_option KC__P(( attribute_initialisation_option, boolean )); void free_Cexpression KC__P(( Cexpression, boolean )); void free_Cexpression_elem KC__P(( Cexpression_elem, boolean )); void free_CexpressionDQ KC__P(( CexpressionDQ, boolean )); void free_CexpressionDQ_elem KC__P(( CexpressionDQ_elem, boolean )); void free_CexpressionSQ KC__P(( CexpressionSQ, boolean )); void free_CexpressionSQ_elem KC__P(( CexpressionSQ_elem, boolean )); void free_idCexpressions KC__P(( idCexpressions, boolean )); void free_idCexpression KC__P(( idCexpression, boolean )); void free_Ctexts KC__P(( Ctexts, boolean )); void free_includefiles KC__P(( includefiles, boolean )); void free_includefile KC__P(( includefile, boolean )); void free_includedeclarations KC__P(( includedeclarations, boolean )); void free_includedeclaration KC__P(( includedeclaration, boolean )); void free_includes KC__P(( includes, boolean )); void free_include KC__P(( include, boolean )); void free_rwdeclarations KC__P(( rwdeclarations, boolean )); void free_rwdeclaration KC__P(( rwdeclaration, boolean )); void free_rewriteclauses KC__P(( rewriteclauses, boolean )); void free_rewriteclause KC__P(( rewriteclause, boolean )); void free_patternchains KC__P(( patternchains, boolean )); void free_patternchain KC__P(( patternchain, boolean )); void free_outmostpatterns KC__P(( outmostpatterns, boolean )); void free_patternchainitem KC__P(( patternchainitem, boolean )); void free_outmostpattern KC__P(( outmostpattern, boolean )); void free_pattern KC__P(( pattern, boolean )); void free_patterns KC__P(( patterns, boolean )); void free_term KC__P(( term, boolean )); void free_terms KC__P(( terms, boolean )); void free_fnfiles KC__P(( fnfiles, boolean )); void free_fnfile KC__P(( fnfile, boolean )); void free_fndeclarations KC__P(( fndeclarations, boolean )); void free_fndeclaration KC__P(( fndeclaration, boolean )); void free_fnclass KC__P(( fnclass, boolean )); void free_fnarguments KC__P(( fnarguments, boolean )); void free_Cvariabledeclarations KC__P(( Cvariabledeclarations, boolean )); void free_Cvariabledeclaration KC__P(( Cvariabledeclaration, boolean )); void free_Cvariables KC__P(( Cvariables, boolean )); void free_Cvariable KC__P(( Cvariable, boolean )); void free_Ctext KC__P(( Ctext, boolean )); void free_Ctext_elem KC__P(( Ctext_elem, boolean )); void free_foreach_after KC__P(( foreach_after, boolean )); void free_contextinfo KC__P(( contextinfo, boolean )); void free_withexpressions KC__P(( withexpressions, boolean )); void free_withexpression KC__P(( withexpression, boolean )); void free_withcases KC__P(( withcases, boolean )); void free_withcase KC__P(( withcase, boolean )); void free_unparsedeclarations KC__P(( unparsedeclarations, boolean )); void free_unparsedeclaration KC__P(( unparsedeclaration, boolean )); void free_unparseclauses KC__P(( unparseclauses, boolean )); void free_unparseclause KC__P(( unparseclause, boolean )); void free_viewnames KC__P(( viewnames, boolean )); void free_unparseitems KC__P(( unparseitems, boolean )); void free_unparseitem KC__P(( unparseitem, boolean )); void free_unpsubterm KC__P(( unpsubterm, boolean )); void free_unpattributes KC__P(( unpattributes, boolean )); void free_viewnameoption KC__P(( viewnameoption, boolean )); void free_filelinestack KC__P(( filelinestack, boolean )); void free_fileline KC__P(( fileline, boolean )); void free_nooperatorsstack KC__P(( nooperatorsstack, boolean )); void free_scopetypefilelinestack KC__P(( scopetypefilelinestack, boolean )); void free_scopetypefileline KC__P(( scopetypefileline, boolean )); void free_IDtype KC__P(( IDtype, boolean )); void free_operatorsstack KC__P(( operatorsstack, boolean )); void free_operators KC__P(( operators, boolean )); void free_phyla KC__P(( phyla, boolean )); void free_variables KC__P(( variables, boolean )); void free_argumentsstack KC__P(( argumentsstack, boolean )); void free_phylumstack KC__P(( phylumstack, boolean )); void free_phylumnamesstack KC__P(( phylumnamesstack, boolean )); void free_withexpressionsstack KC__P(( withexpressionsstack, boolean )); void free_operatorstack KC__P(( operatorstack, boolean )); void free_variablesstack KC__P(( variablesstack, boolean )); void free_selvarstack KC__P(( selvarstack, boolean )); void free_dollarvarstatus KC__P(( dollarvarstatus, boolean )); void free_dollarvarsallowedstack KC__P(( dollarvarsallowedstack, boolean )); void free_intstack KC__P(( intstack, boolean )); void free_idCexpressionsstack KC__P(( idCexpressionsstack, boolean )); void free_two_phyla KC__P(( two_phyla, boolean )); void free_tribool KC__P(( tribool, boolean )); void free_patternrepresentations KC__P(( patternrepresentations, boolean )); void free_patternrepresentation KC__P(( patternrepresentation, boolean )); void free_elem_patternrepresentation KC__P(( elem_patternrepresentation, boolean )); void free_path KC__P(( path, boolean )); void free_paths KC__P(( paths, boolean )); void free_argsnumbers KC__P(( argsnumbers, boolean )); void free_rewriterulesinfo KC__P(( rewriterulesinfo, boolean )); void free_rewriteruleinfo KC__P(( rewriteruleinfo, boolean )); void free_withcasesinfo KC__P(( withcasesinfo, boolean )); void free_withcaseinfo KC__P(( withcaseinfo, boolean )); void free_rewriteviewsinfo KC__P(( rewriteviewsinfo, boolean )); void free_rewriteviewinfo KC__P(( rewriteviewinfo, boolean )); void free_unparseviewsinfo KC__P(( unparseviewsinfo, boolean )); void free_unparseviewinfo KC__P(( unparseviewinfo, boolean )); void free_unparsedeclsinfo KC__P(( unparsedeclsinfo, boolean )); void free_unparsedeclinfo KC__P(( unparsedeclinfo, boolean )); void free_ac_declaration KC__P(( ac_declaration, boolean )); void free_ac_declaration_list KC__P(( ac_declaration_list, boolean )); void free_ac_declaration_specifiers KC__P(( ac_declaration_specifiers, boolean )); void free_ac_declaration_specifier KC__P(( ac_declaration_specifier, boolean )); void free_ac_storage_class_specifier KC__P(( ac_storage_class_specifier, boolean )); void free_ac_type_specifier KC__P(( ac_type_specifier, boolean )); void free_ac_type_qualifier KC__P(( ac_type_qualifier, boolean )); void free_ac_init_declarator_list KC__P(( ac_init_declarator_list, boolean )); void free_ac_init_declarator KC__P(( ac_init_declarator, boolean )); void free_ac_declarator KC__P(( ac_declarator, boolean )); void free_ac_direct_declarator KC__P(( ac_direct_declarator, boolean )); void free_ac_pointer_option KC__P(( ac_pointer_option, boolean )); void free_ac_pointer KC__P(( ac_pointer, boolean )); void free_ac_type_qualifier_list KC__P(( ac_type_qualifier_list, boolean )); void free_ac_parameter_type_list KC__P(( ac_parameter_type_list, boolean )); void free_ac_parameter_list KC__P(( ac_parameter_list, boolean )); void free_ac_parameter_declaration KC__P(( ac_parameter_declaration, boolean )); void free_ac_identifier_list KC__P(( ac_identifier_list, boolean )); void free_ac_abstract_declarator KC__P(( ac_abstract_declarator, boolean )); void free_ac_direct_abstract_declarator_option KC__P(( ac_direct_abstract_declarator_option, boolean )); void free_ac_direct_abstract_declarator KC__P(( ac_direct_abstract_declarator, boolean )); void free_ac_constant_expression_option KC__P(( ac_constant_expression_option, boolean )); void free_ac_constant_expression KC__P(( ac_constant_expression, boolean )); void free_error KC__P(( error, boolean )); void free_problem KC__P(( problem, boolean )); void free_addedphylumdeclarations KC__P(( addedphylumdeclarations, boolean )); void free_addedphylumdeclaration KC__P(( addedphylumdeclaration, boolean )); void free_countedphylumdeclarations KC__P(( countedphylumdeclarations, boolean )); void free_countedphylumdeclaration KC__P(( countedphylumdeclaration, boolean )); void free_bindingidmarks KC__P(( bindingidmarks, boolean )); void free_bindingidmark KC__P(( bindingidmark, boolean )); boolean eq_nocasestring KC__P(( nocasestring, nocasestring )); boolean eq_casestring KC__P(( casestring, casestring )); boolean eq_float KC__P(( float, float )); boolean eq_int KC__P(( int, int )); boolean eq_voidptr KC__P(( voidptr, voidptr )); boolean eq_uniqID KC__P(( uniqID, uniqID )); boolean eq_ID KC__P(( ID, ID )); boolean eq_INT KC__P(( INT, INT )); boolean eq_STRING KC__P(( STRING, STRING )); boolean eq_phylumdeclarationsroot KC__P(( phylumdeclarationsroot, phylumdeclarationsroot )); boolean eq_phylumdeclarations KC__P(( phylumdeclarations, phylumdeclarations )); boolean eq_phylumnames KC__P(( phylumnames, phylumnames )); boolean eq_phylumdeclaration KC__P(( phylumdeclaration, phylumdeclaration )); boolean eq_storageoption KC__P(( storageoption, storageoption )); boolean eq_storageclasses KC__P(( storageclasses, storageclasses )); boolean eq_productionblock KC__P(( productionblock, productionblock )); boolean eq_alternatives KC__P(( alternatives, alternatives )); boolean eq_alternative KC__P(( alternative, alternative )); boolean eq_arguments KC__P(( arguments, arguments )); boolean eq_argument KC__P(( argument, argument )); boolean eq_Ccode_option KC__P(( Ccode_option, Ccode_option )); boolean eq_attributes KC__P(( attributes, attributes )); boolean eq_attribute KC__P(( attribute, attribute )); boolean eq_attribute_initialisation_option KC__P(( attribute_initialisation_option, attribute_initialisation_option )); boolean eq_Cexpression KC__P(( Cexpression, Cexpression )); boolean eq_Cexpression_elem KC__P(( Cexpression_elem, Cexpression_elem )); boolean eq_CexpressionDQ KC__P(( CexpressionDQ, CexpressionDQ )); boolean eq_CexpressionDQ_elem KC__P(( CexpressionDQ_elem, CexpressionDQ_elem )); boolean eq_CexpressionSQ KC__P(( CexpressionSQ, CexpressionSQ )); boolean eq_CexpressionSQ_elem KC__P(( CexpressionSQ_elem, CexpressionSQ_elem )); boolean eq_idCexpressions KC__P(( idCexpressions, idCexpressions )); boolean eq_idCexpression KC__P(( idCexpression, idCexpression )); boolean eq_Ctexts KC__P(( Ctexts, Ctexts )); boolean eq_includefiles KC__P(( includefiles, includefiles )); boolean eq_includefile KC__P(( includefile, includefile )); boolean eq_includedeclarations KC__P(( includedeclarations, includedeclarations )); boolean eq_includedeclaration KC__P(( includedeclaration, includedeclaration )); boolean eq_includes KC__P(( includes, includes )); boolean eq_include KC__P(( include, include )); boolean eq_rwdeclarations KC__P(( rwdeclarations, rwdeclarations )); boolean eq_rwdeclaration KC__P(( rwdeclaration, rwdeclaration )); boolean eq_rewriteclauses KC__P(( rewriteclauses, rewriteclauses )); boolean eq_rewriteclause KC__P(( rewriteclause, rewriteclause )); boolean eq_patternchains KC__P(( patternchains, patternchains )); boolean eq_patternchain KC__P(( patternchain, patternchain )); boolean eq_outmostpatterns KC__P(( outmostpatterns, outmostpatterns )); boolean eq_patternchainitem KC__P(( patternchainitem, patternchainitem )); boolean eq_outmostpattern KC__P(( outmostpattern, outmostpattern )); boolean eq_pattern KC__P(( pattern, pattern )); boolean eq_patterns KC__P(( patterns, patterns )); boolean eq_term KC__P(( term, term )); boolean eq_terms KC__P(( terms, terms )); boolean eq_fnfiles KC__P(( fnfiles, fnfiles )); boolean eq_fnfile KC__P(( fnfile, fnfile )); boolean eq_fndeclarations KC__P(( fndeclarations, fndeclarations )); boolean eq_fndeclaration KC__P(( fndeclaration, fndeclaration )); boolean eq_fnclass KC__P(( fnclass, fnclass )); boolean eq_fnarguments KC__P(( fnarguments, fnarguments )); boolean eq_Cvariabledeclarations KC__P(( Cvariabledeclarations, Cvariabledeclarations )); boolean eq_Cvariabledeclaration KC__P(( Cvariabledeclaration, Cvariabledeclaration )); boolean eq_Cvariables KC__P(( Cvariables, Cvariables )); boolean eq_Cvariable KC__P(( Cvariable, Cvariable )); boolean eq_Ctext KC__P(( Ctext, Ctext )); boolean eq_Ctext_elem KC__P(( Ctext_elem, Ctext_elem )); boolean eq_foreach_after KC__P(( foreach_after, foreach_after )); boolean eq_contextinfo KC__P(( contextinfo, contextinfo )); boolean eq_withexpressions KC__P(( withexpressions, withexpressions )); boolean eq_withexpression KC__P(( withexpression, withexpression )); boolean eq_withcases KC__P(( withcases, withcases )); boolean eq_withcase KC__P(( withcase, withcase )); boolean eq_unparsedeclarations KC__P(( unparsedeclarations, unparsedeclarations )); boolean eq_unparsedeclaration KC__P(( unparsedeclaration, unparsedeclaration )); boolean eq_unparseclauses KC__P(( unparseclauses, unparseclauses )); boolean eq_unparseclause KC__P(( unparseclause, unparseclause )); boolean eq_viewnames KC__P(( viewnames, viewnames )); boolean eq_unparseitems KC__P(( unparseitems, unparseitems )); boolean eq_unparseitem KC__P(( unparseitem, unparseitem )); boolean eq_unpsubterm KC__P(( unpsubterm, unpsubterm )); boolean eq_unpattributes KC__P(( unpattributes, unpattributes )); boolean eq_viewnameoption KC__P(( viewnameoption, viewnameoption )); boolean eq_filelinestack KC__P(( filelinestack, filelinestack )); boolean eq_fileline KC__P(( fileline, fileline )); boolean eq_nooperatorsstack KC__P(( nooperatorsstack, nooperatorsstack )); boolean eq_scopetypefilelinestack KC__P(( scopetypefilelinestack, scopetypefilelinestack )); boolean eq_scopetypefileline KC__P(( scopetypefileline, scopetypefileline )); boolean eq_IDtype KC__P(( IDtype, IDtype )); boolean eq_operatorsstack KC__P(( operatorsstack, operatorsstack )); boolean eq_operators KC__P(( operators, operators )); boolean eq_phyla KC__P(( phyla, phyla )); boolean eq_variables KC__P(( variables, variables )); boolean eq_argumentsstack KC__P(( argumentsstack, argumentsstack )); boolean eq_phylumstack KC__P(( phylumstack, phylumstack )); boolean eq_phylumnamesstack KC__P(( phylumnamesstack, phylumnamesstack )); boolean eq_withexpressionsstack KC__P(( withexpressionsstack, withexpressionsstack )); boolean eq_operatorstack KC__P(( operatorstack, operatorstack )); boolean eq_variablesstack KC__P(( variablesstack, variablesstack )); boolean eq_selvarstack KC__P(( selvarstack, selvarstack )); boolean eq_dollarvarstatus KC__P(( dollarvarstatus, dollarvarstatus )); boolean eq_dollarvarsallowedstack KC__P(( dollarvarsallowedstack, dollarvarsallowedstack )); boolean eq_intstack KC__P(( intstack, intstack )); boolean eq_idCexpressionsstack KC__P(( idCexpressionsstack, idCexpressionsstack )); boolean eq_two_phyla KC__P(( two_phyla, two_phyla )); boolean eq_tribool KC__P(( tribool, tribool )); boolean eq_patternrepresentations KC__P(( patternrepresentations, patternrepresentations )); boolean eq_patternrepresentation KC__P(( patternrepresentation, patternrepresentation )); boolean eq_elem_patternrepresentation KC__P(( elem_patternrepresentation, elem_patternrepresentation )); boolean eq_path KC__P(( path, path )); boolean eq_paths KC__P(( paths, paths )); boolean eq_argsnumbers KC__P(( argsnumbers, argsnumbers )); boolean eq_rewriterulesinfo KC__P(( rewriterulesinfo, rewriterulesinfo )); boolean eq_rewriteruleinfo KC__P(( rewriteruleinfo, rewriteruleinfo )); boolean eq_withcasesinfo KC__P(( withcasesinfo, withcasesinfo )); boolean eq_withcaseinfo KC__P(( withcaseinfo, withcaseinfo )); boolean eq_rewriteviewsinfo KC__P(( rewriteviewsinfo, rewriteviewsinfo )); boolean eq_rewriteviewinfo KC__P(( rewriteviewinfo, rewriteviewinfo )); boolean eq_unparseviewsinfo KC__P(( unparseviewsinfo, unparseviewsinfo )); boolean eq_unparseviewinfo KC__P(( unparseviewinfo, unparseviewinfo )); boolean eq_unparsedeclsinfo KC__P(( unparsedeclsinfo, unparsedeclsinfo )); boolean eq_unparsedeclinfo KC__P(( unparsedeclinfo, unparsedeclinfo )); boolean eq_ac_declaration KC__P(( ac_declaration, ac_declaration )); boolean eq_ac_declaration_list KC__P(( ac_declaration_list, ac_declaration_list )); boolean eq_ac_declaration_specifiers KC__P(( ac_declaration_specifiers, ac_declaration_specifiers )); boolean eq_ac_declaration_specifier KC__P(( ac_declaration_specifier, ac_declaration_specifier )); boolean eq_ac_storage_class_specifier KC__P(( ac_storage_class_specifier, ac_storage_class_specifier )); boolean eq_ac_type_specifier KC__P(( ac_type_specifier, ac_type_specifier )); boolean eq_ac_type_qualifier KC__P(( ac_type_qualifier, ac_type_qualifier )); boolean eq_ac_init_declarator_list KC__P(( ac_init_declarator_list, ac_init_declarator_list )); boolean eq_ac_init_declarator KC__P(( ac_init_declarator, ac_init_declarator )); boolean eq_ac_declarator KC__P(( ac_declarator, ac_declarator )); boolean eq_ac_direct_declarator KC__P(( ac_direct_declarator, ac_direct_declarator )); boolean eq_ac_pointer_option KC__P(( ac_pointer_option, ac_pointer_option )); boolean eq_ac_pointer KC__P(( ac_pointer, ac_pointer )); boolean eq_ac_type_qualifier_list KC__P(( ac_type_qualifier_list, ac_type_qualifier_list )); boolean eq_ac_parameter_type_list KC__P(( ac_parameter_type_list, ac_parameter_type_list )); boolean eq_ac_parameter_list KC__P(( ac_parameter_list, ac_parameter_list )); boolean eq_ac_parameter_declaration KC__P(( ac_parameter_declaration, ac_parameter_declaration )); boolean eq_ac_identifier_list KC__P(( ac_identifier_list, ac_identifier_list )); boolean eq_ac_abstract_declarator KC__P(( ac_abstract_declarator, ac_abstract_declarator )); boolean eq_ac_direct_abstract_declarator_option KC__P(( ac_direct_abstract_declarator_option, ac_direct_abstract_declarator_option )); boolean eq_ac_direct_abstract_declarator KC__P(( ac_direct_abstract_declarator, ac_direct_abstract_declarator )); boolean eq_ac_constant_expression_option KC__P(( ac_constant_expression_option, ac_constant_expression_option )); boolean eq_ac_constant_expression KC__P(( ac_constant_expression, ac_constant_expression )); boolean eq_error KC__P(( error, error )); boolean eq_problem KC__P(( problem, problem )); boolean eq_addedphylumdeclarations KC__P(( addedphylumdeclarations, addedphylumdeclarations )); boolean eq_addedphylumdeclaration KC__P(( addedphylumdeclaration, addedphylumdeclaration )); boolean eq_countedphylumdeclarations KC__P(( countedphylumdeclarations, countedphylumdeclarations )); boolean eq_countedphylumdeclaration KC__P(( countedphylumdeclaration, countedphylumdeclaration )); boolean eq_bindingidmarks KC__P(( bindingidmarks, bindingidmarks )); boolean eq_bindingidmark KC__P(( bindingidmark, bindingidmark )); void print_nocasestring KC__P(( nocasestring )); void fprint_nocasestring KC__P(( FILE*, nocasestring )); void print_casestring KC__P(( casestring )); void fprint_casestring KC__P(( FILE*, casestring )); void print_float KC__P(( float )); void fprint_float KC__P(( FILE*, float )); void print_int KC__P(( int )); void fprint_int KC__P(( FILE*, int )); void print_voidptr KC__P(( voidptr )); void fprint_voidptr KC__P(( FILE*, voidptr )); void print_uniqID KC__P(( uniqID )); void fprint_uniqID KC__P(( FILE*, uniqID )); void print_ID KC__P(( ID )); void fprint_ID KC__P(( FILE*, ID )); void print_INT KC__P(( INT )); void fprint_INT KC__P(( FILE*, INT )); void print_STRING KC__P(( STRING )); void fprint_STRING KC__P(( FILE*, STRING )); void print_phylumdeclarationsroot KC__P(( phylumdeclarationsroot )); void fprint_phylumdeclarationsroot KC__P(( FILE*, phylumdeclarationsroot )); void print_phylumdeclarations KC__P(( phylumdeclarations )); void fprint_phylumdeclarations KC__P(( FILE*, phylumdeclarations )); void print_phylumnames KC__P(( phylumnames )); void fprint_phylumnames KC__P(( FILE*, phylumnames )); void print_phylumdeclaration KC__P(( phylumdeclaration )); void fprint_phylumdeclaration KC__P(( FILE*, phylumdeclaration )); void print_storageoption KC__P(( storageoption )); void fprint_storageoption KC__P(( FILE*, storageoption )); void print_storageclasses KC__P(( storageclasses )); void fprint_storageclasses KC__P(( FILE*, storageclasses )); void print_productionblock KC__P(( productionblock )); void fprint_productionblock KC__P(( FILE*, productionblock )); void print_alternatives KC__P(( alternatives )); void fprint_alternatives KC__P(( FILE*, alternatives )); void print_alternative KC__P(( alternative )); void fprint_alternative KC__P(( FILE*, alternative )); void print_arguments KC__P(( arguments )); void fprint_arguments KC__P(( FILE*, arguments )); void print_argument KC__P(( argument )); void fprint_argument KC__P(( FILE*, argument )); void print_Ccode_option KC__P(( Ccode_option )); void fprint_Ccode_option KC__P(( FILE*, Ccode_option )); void print_attributes KC__P(( attributes )); void fprint_attributes KC__P(( FILE*, attributes )); void print_attribute KC__P(( attribute )); void fprint_attribute KC__P(( FILE*, attribute )); void print_attribute_initialisation_option KC__P(( attribute_initialisation_option )); void fprint_attribute_initialisation_option KC__P(( FILE*, attribute_initialisation_option )); void print_Cexpression KC__P(( Cexpression )); void fprint_Cexpression KC__P(( FILE*, Cexpression )); void print_Cexpression_elem KC__P(( Cexpression_elem )); void fprint_Cexpression_elem KC__P(( FILE*, Cexpression_elem )); void print_CexpressionDQ KC__P(( CexpressionDQ )); void fprint_CexpressionDQ KC__P(( FILE*, CexpressionDQ )); void print_CexpressionDQ_elem KC__P(( CexpressionDQ_elem )); void fprint_CexpressionDQ_elem KC__P(( FILE*, CexpressionDQ_elem )); void print_CexpressionSQ KC__P(( CexpressionSQ )); void fprint_CexpressionSQ KC__P(( FILE*, CexpressionSQ )); void print_CexpressionSQ_elem KC__P(( CexpressionSQ_elem )); void fprint_CexpressionSQ_elem KC__P(( FILE*, CexpressionSQ_elem )); void print_idCexpressions KC__P(( idCexpressions )); void fprint_idCexpressions KC__P(( FILE*, idCexpressions )); void print_idCexpression KC__P(( idCexpression )); void fprint_idCexpression KC__P(( FILE*, idCexpression )); void print_Ctexts KC__P(( Ctexts )); void fprint_Ctexts KC__P(( FILE*, Ctexts )); void print_includefiles KC__P(( includefiles )); void fprint_includefiles KC__P(( FILE*, includefiles )); void print_includefile KC__P(( includefile )); void fprint_includefile KC__P(( FILE*, includefile )); void print_includedeclarations KC__P(( includedeclarations )); void fprint_includedeclarations KC__P(( FILE*, includedeclarations )); void print_includedeclaration KC__P(( includedeclaration )); void fprint_includedeclaration KC__P(( FILE*, includedeclaration )); void print_includes KC__P(( includes )); void fprint_includes KC__P(( FILE*, includes )); void print_include KC__P(( include )); void fprint_include KC__P(( FILE*, include )); void print_rwdeclarations KC__P(( rwdeclarations )); void fprint_rwdeclarations KC__P(( FILE*, rwdeclarations )); void print_rwdeclaration KC__P(( rwdeclaration )); void fprint_rwdeclaration KC__P(( FILE*, rwdeclaration )); void print_rewriteclauses KC__P(( rewriteclauses )); void fprint_rewriteclauses KC__P(( FILE*, rewriteclauses )); void print_rewriteclause KC__P(( rewriteclause )); void fprint_rewriteclause KC__P(( FILE*, rewriteclause )); void print_patternchains KC__P(( patternchains )); void fprint_patternchains KC__P(( FILE*, patternchains )); void print_patternchain KC__P(( patternchain )); void fprint_patternchain KC__P(( FILE*, patternchain )); void print_outmostpatterns KC__P(( outmostpatterns )); void fprint_outmostpatterns KC__P(( FILE*, outmostpatterns )); void print_patternchainitem KC__P(( patternchainitem )); void fprint_patternchainitem KC__P(( FILE*, patternchainitem )); void print_outmostpattern KC__P(( outmostpattern )); void fprint_outmostpattern KC__P(( FILE*, outmostpattern )); void print_pattern KC__P(( pattern )); void fprint_pattern KC__P(( FILE*, pattern )); void print_patterns KC__P(( patterns )); void fprint_patterns KC__P(( FILE*, patterns )); void print_term KC__P(( term )); void fprint_term KC__P(( FILE*, term )); void print_terms KC__P(( terms )); void fprint_terms KC__P(( FILE*, terms )); void print_fnfiles KC__P(( fnfiles )); void fprint_fnfiles KC__P(( FILE*, fnfiles )); void print_fnfile KC__P(( fnfile )); void fprint_fnfile KC__P(( FILE*, fnfile )); void print_fndeclarations KC__P(( fndeclarations )); void fprint_fndeclarations KC__P(( FILE*, fndeclarations )); void print_fndeclaration KC__P(( fndeclaration )); void fprint_fndeclaration KC__P(( FILE*, fndeclaration )); void print_fnclass KC__P(( fnclass )); void fprint_fnclass KC__P(( FILE*, fnclass )); void print_fnarguments KC__P(( fnarguments )); void fprint_fnarguments KC__P(( FILE*, fnarguments )); void print_Cvariabledeclarations KC__P(( Cvariabledeclarations )); void fprint_Cvariabledeclarations KC__P(( FILE*, Cvariabledeclarations )); void print_Cvariabledeclaration KC__P(( Cvariabledeclaration )); void fprint_Cvariabledeclaration KC__P(( FILE*, Cvariabledeclaration )); void print_Cvariables KC__P(( Cvariables )); void fprint_Cvariables KC__P(( FILE*, Cvariables )); void print_Cvariable KC__P(( Cvariable )); void fprint_Cvariable KC__P(( FILE*, Cvariable )); void print_Ctext KC__P(( Ctext )); void fprint_Ctext KC__P(( FILE*, Ctext )); void print_Ctext_elem KC__P(( Ctext_elem )); void fprint_Ctext_elem KC__P(( FILE*, Ctext_elem )); void print_foreach_after KC__P(( foreach_after )); void fprint_foreach_after KC__P(( FILE*, foreach_after )); void print_contextinfo KC__P(( contextinfo )); void fprint_contextinfo KC__P(( FILE*, contextinfo )); void print_withexpressions KC__P(( withexpressions )); void fprint_withexpressions KC__P(( FILE*, withexpressions )); void print_withexpression KC__P(( withexpression )); void fprint_withexpression KC__P(( FILE*, withexpression )); void print_withcases KC__P(( withcases )); void fprint_withcases KC__P(( FILE*, withcases )); void print_withcase KC__P(( withcase )); void fprint_withcase KC__P(( FILE*, withcase )); void print_unparsedeclarations KC__P(( unparsedeclarations )); void fprint_unparsedeclarations KC__P(( FILE*, unparsedeclarations )); void print_unparsedeclaration KC__P(( unparsedeclaration )); void fprint_unparsedeclaration KC__P(( FILE*, unparsedeclaration )); void print_unparseclauses KC__P(( unparseclauses )); void fprint_unparseclauses KC__P(( FILE*, unparseclauses )); void print_unparseclause KC__P(( unparseclause )); void fprint_unparseclause KC__P(( FILE*, unparseclause )); void print_viewnames KC__P(( viewnames )); void fprint_viewnames KC__P(( FILE*, viewnames )); void print_unparseitems KC__P(( unparseitems )); void fprint_unparseitems KC__P(( FILE*, unparseitems )); void print_unparseitem KC__P(( unparseitem )); void fprint_unparseitem KC__P(( FILE*, unparseitem )); void print_unpsubterm KC__P(( unpsubterm )); void fprint_unpsubterm KC__P(( FILE*, unpsubterm )); void print_unpattributes KC__P(( unpattributes )); void fprint_unpattributes KC__P(( FILE*, unpattributes )); void print_viewnameoption KC__P(( viewnameoption )); void fprint_viewnameoption KC__P(( FILE*, viewnameoption )); void print_filelinestack KC__P(( filelinestack )); void fprint_filelinestack KC__P(( FILE*, filelinestack )); void print_fileline KC__P(( fileline )); void fprint_fileline KC__P(( FILE*, fileline )); void print_nooperatorsstack KC__P(( nooperatorsstack )); void fprint_nooperatorsstack KC__P(( FILE*, nooperatorsstack )); void print_scopetypefilelinestack KC__P(( scopetypefilelinestack )); void fprint_scopetypefilelinestack KC__P(( FILE*, scopetypefilelinestack )); void print_scopetypefileline KC__P(( scopetypefileline )); void fprint_scopetypefileline KC__P(( FILE*, scopetypefileline )); void print_IDtype KC__P(( IDtype )); void fprint_IDtype KC__P(( FILE*, IDtype )); void print_operatorsstack KC__P(( operatorsstack )); void fprint_operatorsstack KC__P(( FILE*, operatorsstack )); void print_operators KC__P(( operators )); void fprint_operators KC__P(( FILE*, operators )); void print_phyla KC__P(( phyla )); void fprint_phyla KC__P(( FILE*, phyla )); void print_variables KC__P(( variables )); void fprint_variables KC__P(( FILE*, variables )); void print_argumentsstack KC__P(( argumentsstack )); void fprint_argumentsstack KC__P(( FILE*, argumentsstack )); void print_phylumstack KC__P(( phylumstack )); void fprint_phylumstack KC__P(( FILE*, phylumstack )); void print_phylumnamesstack KC__P(( phylumnamesstack )); void fprint_phylumnamesstack KC__P(( FILE*, phylumnamesstack )); void print_withexpressionsstack KC__P(( withexpressionsstack )); void fprint_withexpressionsstack KC__P(( FILE*, withexpressionsstack )); void print_operatorstack KC__P(( operatorstack )); void fprint_operatorstack KC__P(( FILE*, operatorstack )); void print_variablesstack KC__P(( variablesstack )); void fprint_variablesstack KC__P(( FILE*, variablesstack )); void print_selvarstack KC__P(( selvarstack )); void fprint_selvarstack KC__P(( FILE*, selvarstack )); void print_dollarvarstatus KC__P(( dollarvarstatus )); void fprint_dollarvarstatus KC__P(( FILE*, dollarvarstatus )); void print_dollarvarsallowedstack KC__P(( dollarvarsallowedstack )); void fprint_dollarvarsallowedstack KC__P(( FILE*, dollarvarsallowedstack )); void print_intstack KC__P(( intstack )); void fprint_intstack KC__P(( FILE*, intstack )); void print_idCexpressionsstack KC__P(( idCexpressionsstack )); void fprint_idCexpressionsstack KC__P(( FILE*, idCexpressionsstack )); void print_two_phyla KC__P(( two_phyla )); void fprint_two_phyla KC__P(( FILE*, two_phyla )); void print_tribool KC__P(( tribool )); void fprint_tribool KC__P(( FILE*, tribool )); void print_patternrepresentations KC__P(( patternrepresentations )); void fprint_patternrepresentations KC__P(( FILE*, patternrepresentations )); void print_patternrepresentation KC__P(( patternrepresentation )); void fprint_patternrepresentation KC__P(( FILE*, patternrepresentation )); void print_elem_patternrepresentation KC__P(( elem_patternrepresentation )); void fprint_elem_patternrepresentation KC__P(( FILE*, elem_patternrepresentation )); void print_path KC__P(( path )); void fprint_path KC__P(( FILE*, path )); void print_paths KC__P(( paths )); void fprint_paths KC__P(( FILE*, paths )); void print_argsnumbers KC__P(( argsnumbers )); void fprint_argsnumbers KC__P(( FILE*, argsnumbers )); void print_rewriterulesinfo KC__P(( rewriterulesinfo )); void fprint_rewriterulesinfo KC__P(( FILE*, rewriterulesinfo )); void print_rewriteruleinfo KC__P(( rewriteruleinfo )); void fprint_rewriteruleinfo KC__P(( FILE*, rewriteruleinfo )); void print_withcasesinfo KC__P(( withcasesinfo )); void fprint_withcasesinfo KC__P(( FILE*, withcasesinfo )); void print_withcaseinfo KC__P(( withcaseinfo )); void fprint_withcaseinfo KC__P(( FILE*, withcaseinfo )); void print_rewriteviewsinfo KC__P(( rewriteviewsinfo )); void fprint_rewriteviewsinfo KC__P(( FILE*, rewriteviewsinfo )); void print_rewriteviewinfo KC__P(( rewriteviewinfo )); void fprint_rewriteviewinfo KC__P(( FILE*, rewriteviewinfo )); void print_unparseviewsinfo KC__P(( unparseviewsinfo )); void fprint_unparseviewsinfo KC__P(( FILE*, unparseviewsinfo )); void print_unparseviewinfo KC__P(( unparseviewinfo )); void fprint_unparseviewinfo KC__P(( FILE*, unparseviewinfo )); void print_unparsedeclsinfo KC__P(( unparsedeclsinfo )); void fprint_unparsedeclsinfo KC__P(( FILE*, unparsedeclsinfo )); void print_unparsedeclinfo KC__P(( unparsedeclinfo )); void fprint_unparsedeclinfo KC__P(( FILE*, unparsedeclinfo )); void print_ac_declaration KC__P(( ac_declaration )); void fprint_ac_declaration KC__P(( FILE*, ac_declaration )); void print_ac_declaration_list KC__P(( ac_declaration_list )); void fprint_ac_declaration_list KC__P(( FILE*, ac_declaration_list )); void print_ac_declaration_specifiers KC__P(( ac_declaration_specifiers )); void fprint_ac_declaration_specifiers KC__P(( FILE*, ac_declaration_specifiers )); void print_ac_declaration_specifier KC__P(( ac_declaration_specifier )); void fprint_ac_declaration_specifier KC__P(( FILE*, ac_declaration_specifier )); void print_ac_storage_class_specifier KC__P(( ac_storage_class_specifier )); void fprint_ac_storage_class_specifier KC__P(( FILE*, ac_storage_class_specifier )); void print_ac_type_specifier KC__P(( ac_type_specifier )); void fprint_ac_type_specifier KC__P(( FILE*, ac_type_specifier )); void print_ac_type_qualifier KC__P(( ac_type_qualifier )); void fprint_ac_type_qualifier KC__P(( FILE*, ac_type_qualifier )); void print_ac_init_declarator_list KC__P(( ac_init_declarator_list )); void fprint_ac_init_declarator_list KC__P(( FILE*, ac_init_declarator_list )); void print_ac_init_declarator KC__P(( ac_init_declarator )); void fprint_ac_init_declarator KC__P(( FILE*, ac_init_declarator )); void print_ac_declarator KC__P(( ac_declarator )); void fprint_ac_declarator KC__P(( FILE*, ac_declarator )); void print_ac_direct_declarator KC__P(( ac_direct_declarator )); void fprint_ac_direct_declarator KC__P(( FILE*, ac_direct_declarator )); void print_ac_pointer_option KC__P(( ac_pointer_option )); void fprint_ac_pointer_option KC__P(( FILE*, ac_pointer_option )); void print_ac_pointer KC__P(( ac_pointer )); void fprint_ac_pointer KC__P(( FILE*, ac_pointer )); void print_ac_type_qualifier_list KC__P(( ac_type_qualifier_list )); void fprint_ac_type_qualifier_list KC__P(( FILE*, ac_type_qualifier_list )); void print_ac_parameter_type_list KC__P(( ac_parameter_type_list )); void fprint_ac_parameter_type_list KC__P(( FILE*, ac_parameter_type_list )); void print_ac_parameter_list KC__P(( ac_parameter_list )); void fprint_ac_parameter_list KC__P(( FILE*, ac_parameter_list )); void print_ac_parameter_declaration KC__P(( ac_parameter_declaration )); void fprint_ac_parameter_declaration KC__P(( FILE*, ac_parameter_declaration )); void print_ac_identifier_list KC__P(( ac_identifier_list )); void fprint_ac_identifier_list KC__P(( FILE*, ac_identifier_list )); void print_ac_abstract_declarator KC__P(( ac_abstract_declarator )); void fprint_ac_abstract_declarator KC__P(( FILE*, ac_abstract_declarator )); void print_ac_direct_abstract_declarator_option KC__P(( ac_direct_abstract_declarator_option )); void fprint_ac_direct_abstract_declarator_option KC__P(( FILE*, ac_direct_abstract_declarator_option )); void print_ac_direct_abstract_declarator KC__P(( ac_direct_abstract_declarator )); void fprint_ac_direct_abstract_declarator KC__P(( FILE*, ac_direct_abstract_declarator )); void print_ac_constant_expression_option KC__P(( ac_constant_expression_option )); void fprint_ac_constant_expression_option KC__P(( FILE*, ac_constant_expression_option )); void print_ac_constant_expression KC__P(( ac_constant_expression )); void fprint_ac_constant_expression KC__P(( FILE*, ac_constant_expression )); void print_error KC__P(( error )); void fprint_error KC__P(( FILE*, error )); void print_problem KC__P(( problem )); void fprint_problem KC__P(( FILE*, problem )); void print_addedphylumdeclarations KC__P(( addedphylumdeclarations )); void fprint_addedphylumdeclarations KC__P(( FILE*, addedphylumdeclarations )); void print_addedphylumdeclaration KC__P(( addedphylumdeclaration )); void fprint_addedphylumdeclaration KC__P(( FILE*, addedphylumdeclaration )); void print_countedphylumdeclarations KC__P(( countedphylumdeclarations )); void fprint_countedphylumdeclarations KC__P(( FILE*, countedphylumdeclarations )); void print_countedphylumdeclaration KC__P(( countedphylumdeclaration )); void fprint_countedphylumdeclaration KC__P(( FILE*, countedphylumdeclaration )); void print_bindingidmarks KC__P(( bindingidmarks )); void fprint_bindingidmarks KC__P(( FILE*, bindingidmarks )); void print_bindingidmark KC__P(( bindingidmark )); void fprint_bindingidmark KC__P(( FILE*, bindingidmark )); void fprintdotprologue KC__P(( FILE* )); void fprintdotepilogue KC__P(( FILE* )); int kc_set_fprintdot_hashtablesize KC__P(( int )); void fprintdot_nocasestring KC__P(( FILE*, nocasestring, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_casestring KC__P(( FILE*, casestring, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_float KC__P(( FILE*, float, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_int KC__P(( FILE*, int, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_voidptr KC__P(( FILE*, voidptr, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_uniqID KC__P(( FILE*, uniqID, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ID KC__P(( FILE*, ID, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_INT KC__P(( FILE*, INT, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_STRING KC__P(( FILE*, STRING, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_phylumdeclarationsroot KC__P(( FILE*, phylumdeclarationsroot, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_phylumdeclarations KC__P(( FILE*, phylumdeclarations, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_phylumnames KC__P(( FILE*, phylumnames, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_phylumdeclaration KC__P(( FILE*, phylumdeclaration, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_storageoption KC__P(( FILE*, storageoption, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_storageclasses KC__P(( FILE*, storageclasses, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_productionblock KC__P(( FILE*, productionblock, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_alternatives KC__P(( FILE*, alternatives, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_alternative KC__P(( FILE*, alternative, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_arguments KC__P(( FILE*, arguments, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_argument KC__P(( FILE*, argument, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_Ccode_option KC__P(( FILE*, Ccode_option, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_attributes KC__P(( FILE*, attributes, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_attribute KC__P(( FILE*, attribute, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_attribute_initialisation_option KC__P(( FILE*, attribute_initialisation_option, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_Cexpression KC__P(( FILE*, Cexpression, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_Cexpression_elem KC__P(( FILE*, Cexpression_elem, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_CexpressionDQ KC__P(( FILE*, CexpressionDQ, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_CexpressionDQ_elem KC__P(( FILE*, CexpressionDQ_elem, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_CexpressionSQ KC__P(( FILE*, CexpressionSQ, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_CexpressionSQ_elem KC__P(( FILE*, CexpressionSQ_elem, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_idCexpressions KC__P(( FILE*, idCexpressions, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_idCexpression KC__P(( FILE*, idCexpression, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_Ctexts KC__P(( FILE*, Ctexts, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_includefiles KC__P(( FILE*, includefiles, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_includefile KC__P(( FILE*, includefile, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_includedeclarations KC__P(( FILE*, includedeclarations, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_includedeclaration KC__P(( FILE*, includedeclaration, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_includes KC__P(( FILE*, includes, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_include KC__P(( FILE*, include, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_rwdeclarations KC__P(( FILE*, rwdeclarations, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_rwdeclaration KC__P(( FILE*, rwdeclaration, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_rewriteclauses KC__P(( FILE*, rewriteclauses, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_rewriteclause KC__P(( FILE*, rewriteclause, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_patternchains KC__P(( FILE*, patternchains, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_patternchain KC__P(( FILE*, patternchain, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_outmostpatterns KC__P(( FILE*, outmostpatterns, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_patternchainitem KC__P(( FILE*, patternchainitem, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_outmostpattern KC__P(( FILE*, outmostpattern, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_pattern KC__P(( FILE*, pattern, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_patterns KC__P(( FILE*, patterns, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_term KC__P(( FILE*, term, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_terms KC__P(( FILE*, terms, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_fnfiles KC__P(( FILE*, fnfiles, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_fnfile KC__P(( FILE*, fnfile, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_fndeclarations KC__P(( FILE*, fndeclarations, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_fndeclaration KC__P(( FILE*, fndeclaration, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_fnclass KC__P(( FILE*, fnclass, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_fnarguments KC__P(( FILE*, fnarguments, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_Cvariabledeclarations KC__P(( FILE*, Cvariabledeclarations, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_Cvariabledeclaration KC__P(( FILE*, Cvariabledeclaration, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_Cvariables KC__P(( FILE*, Cvariables, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_Cvariable KC__P(( FILE*, Cvariable, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_Ctext KC__P(( FILE*, Ctext, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_Ctext_elem KC__P(( FILE*, Ctext_elem, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_foreach_after KC__P(( FILE*, foreach_after, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_contextinfo KC__P(( FILE*, contextinfo, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_withexpressions KC__P(( FILE*, withexpressions, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_withexpression KC__P(( FILE*, withexpression, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_withcases KC__P(( FILE*, withcases, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_withcase KC__P(( FILE*, withcase, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_unparsedeclarations KC__P(( FILE*, unparsedeclarations, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_unparsedeclaration KC__P(( FILE*, unparsedeclaration, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_unparseclauses KC__P(( FILE*, unparseclauses, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_unparseclause KC__P(( FILE*, unparseclause, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_viewnames KC__P(( FILE*, viewnames, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_unparseitems KC__P(( FILE*, unparseitems, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_unparseitem KC__P(( FILE*, unparseitem, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_unpsubterm KC__P(( FILE*, unpsubterm, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_unpattributes KC__P(( FILE*, unpattributes, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_viewnameoption KC__P(( FILE*, viewnameoption, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_filelinestack KC__P(( FILE*, filelinestack, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_fileline KC__P(( FILE*, fileline, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_nooperatorsstack KC__P(( FILE*, nooperatorsstack, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_scopetypefilelinestack KC__P(( FILE*, scopetypefilelinestack, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_scopetypefileline KC__P(( FILE*, scopetypefileline, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_IDtype KC__P(( FILE*, IDtype, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_operatorsstack KC__P(( FILE*, operatorsstack, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_operators KC__P(( FILE*, operators, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_phyla KC__P(( FILE*, phyla, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_variables KC__P(( FILE*, variables, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_argumentsstack KC__P(( FILE*, argumentsstack, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_phylumstack KC__P(( FILE*, phylumstack, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_phylumnamesstack KC__P(( FILE*, phylumnamesstack, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_withexpressionsstack KC__P(( FILE*, withexpressionsstack, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_operatorstack KC__P(( FILE*, operatorstack, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_variablesstack KC__P(( FILE*, variablesstack, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_selvarstack KC__P(( FILE*, selvarstack, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_dollarvarstatus KC__P(( FILE*, dollarvarstatus, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_dollarvarsallowedstack KC__P(( FILE*, dollarvarsallowedstack, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_intstack KC__P(( FILE*, intstack, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_idCexpressionsstack KC__P(( FILE*, idCexpressionsstack, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_two_phyla KC__P(( FILE*, two_phyla, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_tribool KC__P(( FILE*, tribool, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_patternrepresentations KC__P(( FILE*, patternrepresentations, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_patternrepresentation KC__P(( FILE*, patternrepresentation, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_elem_patternrepresentation KC__P(( FILE*, elem_patternrepresentation, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_path KC__P(( FILE*, path, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_paths KC__P(( FILE*, paths, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_argsnumbers KC__P(( FILE*, argsnumbers, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_rewriterulesinfo KC__P(( FILE*, rewriterulesinfo, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_rewriteruleinfo KC__P(( FILE*, rewriteruleinfo, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_withcasesinfo KC__P(( FILE*, withcasesinfo, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_withcaseinfo KC__P(( FILE*, withcaseinfo, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_rewriteviewsinfo KC__P(( FILE*, rewriteviewsinfo, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_rewriteviewinfo KC__P(( FILE*, rewriteviewinfo, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_unparseviewsinfo KC__P(( FILE*, unparseviewsinfo, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_unparseviewinfo KC__P(( FILE*, unparseviewinfo, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_unparsedeclsinfo KC__P(( FILE*, unparsedeclsinfo, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_unparsedeclinfo KC__P(( FILE*, unparsedeclinfo, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_declaration KC__P(( FILE*, ac_declaration, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_declaration_list KC__P(( FILE*, ac_declaration_list, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_declaration_specifiers KC__P(( FILE*, ac_declaration_specifiers, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_declaration_specifier KC__P(( FILE*, ac_declaration_specifier, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_storage_class_specifier KC__P(( FILE*, ac_storage_class_specifier, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_type_specifier KC__P(( FILE*, ac_type_specifier, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_type_qualifier KC__P(( FILE*, ac_type_qualifier, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_init_declarator_list KC__P(( FILE*, ac_init_declarator_list, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_init_declarator KC__P(( FILE*, ac_init_declarator, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_declarator KC__P(( FILE*, ac_declarator, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_direct_declarator KC__P(( FILE*, ac_direct_declarator, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_pointer_option KC__P(( FILE*, ac_pointer_option, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_pointer KC__P(( FILE*, ac_pointer, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_type_qualifier_list KC__P(( FILE*, ac_type_qualifier_list, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_parameter_type_list KC__P(( FILE*, ac_parameter_type_list, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_parameter_list KC__P(( FILE*, ac_parameter_list, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_parameter_declaration KC__P(( FILE*, ac_parameter_declaration, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_identifier_list KC__P(( FILE*, ac_identifier_list, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_abstract_declarator KC__P(( FILE*, ac_abstract_declarator, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_direct_abstract_declarator_option KC__P(( FILE*, ac_direct_abstract_declarator_option, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_direct_abstract_declarator KC__P(( FILE*, ac_direct_abstract_declarator, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_constant_expression_option KC__P(( FILE*, ac_constant_expression_option, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_ac_constant_expression KC__P(( FILE*, ac_constant_expression, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_error KC__P(( FILE*, error, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_problem KC__P(( FILE*, problem, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_addedphylumdeclarations KC__P(( FILE*, addedphylumdeclarations, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_addedphylumdeclaration KC__P(( FILE*, addedphylumdeclaration, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_countedphylumdeclarations KC__P(( FILE*, countedphylumdeclarations, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_countedphylumdeclaration KC__P(( FILE*, countedphylumdeclaration, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_bindingidmarks KC__P(( FILE*, bindingidmarks, char*, char*, char*, boolean, boolean, boolean )); void fprintdot_bindingidmark KC__P(( FILE*, bindingidmark, char*, char*, char*, boolean, boolean, boolean )); phylumdeclarations concat_phylumdeclarations KC__P(( phylumdeclarations, phylumdeclarations )); phylumdeclarations reverse_phylumdeclarations KC__P(( phylumdeclarations )); int length_phylumdeclarations KC__P(( phylumdeclarations )); phylumdeclaration last_phylumdeclarations KC__P(( phylumdeclarations )); phylumdeclarations map_phylumdeclarations KC__P(( phylumdeclarations, phylumdeclaration (*)(phylumdeclaration))); phylumdeclarations filter_phylumdeclarations KC__P(( phylumdeclarations, boolean (*)(phylumdeclaration))); void freelist_phylumdeclarations KC__P(( phylumdeclarations )); phylumnames concat_phylumnames KC__P(( phylumnames, phylumnames )); phylumnames reverse_phylumnames KC__P(( phylumnames )); int length_phylumnames KC__P(( phylumnames )); ID last_phylumnames KC__P(( phylumnames )); phylumnames map_phylumnames KC__P(( phylumnames, ID (*)(ID))); phylumnames filter_phylumnames KC__P(( phylumnames, boolean (*)(ID))); void freelist_phylumnames KC__P(( phylumnames )); storageclasses concat_storageclasses KC__P(( storageclasses, storageclasses )); storageclasses reverse_storageclasses KC__P(( storageclasses )); int length_storageclasses KC__P(( storageclasses )); ID last_storageclasses KC__P(( storageclasses )); storageclasses map_storageclasses KC__P(( storageclasses, ID (*)(ID))); storageclasses filter_storageclasses KC__P(( storageclasses, boolean (*)(ID))); void freelist_storageclasses KC__P(( storageclasses )); alternatives concat_alternatives KC__P(( alternatives, alternatives )); alternatives reverse_alternatives KC__P(( alternatives )); int length_alternatives KC__P(( alternatives )); alternative last_alternatives KC__P(( alternatives )); alternatives map_alternatives KC__P(( alternatives, alternative (*)(alternative))); alternatives filter_alternatives KC__P(( alternatives, boolean (*)(alternative))); void freelist_alternatives KC__P(( alternatives )); arguments concat_arguments KC__P(( arguments, arguments )); arguments reverse_arguments KC__P(( arguments )); int length_arguments KC__P(( arguments )); ID last_arguments KC__P(( arguments )); arguments map_arguments KC__P(( arguments, ID (*)(ID))); arguments filter_arguments KC__P(( arguments, boolean (*)(ID))); void freelist_arguments KC__P(( arguments )); attributes concat_attributes KC__P(( attributes, attributes )); attributes reverse_attributes KC__P(( attributes )); int length_attributes KC__P(( attributes )); attribute last_attributes KC__P(( attributes )); attributes map_attributes KC__P(( attributes, attribute (*)(attribute))); attributes filter_attributes KC__P(( attributes, boolean (*)(attribute))); void freelist_attributes KC__P(( attributes )); Cexpression concat_Cexpression KC__P(( Cexpression, Cexpression )); Cexpression reverse_Cexpression KC__P(( Cexpression )); int length_Cexpression KC__P(( Cexpression )); Cexpression_elem last_Cexpression KC__P(( Cexpression )); Cexpression map_Cexpression KC__P(( Cexpression, Cexpression_elem (*)(Cexpression_elem))); Cexpression filter_Cexpression KC__P(( Cexpression, boolean (*)(Cexpression_elem))); void freelist_Cexpression KC__P(( Cexpression )); CexpressionDQ concat_CexpressionDQ KC__P(( CexpressionDQ, CexpressionDQ )); CexpressionDQ reverse_CexpressionDQ KC__P(( CexpressionDQ )); int length_CexpressionDQ KC__P(( CexpressionDQ )); CexpressionDQ_elem last_CexpressionDQ KC__P(( CexpressionDQ )); CexpressionDQ map_CexpressionDQ KC__P(( CexpressionDQ, CexpressionDQ_elem (*)(CexpressionDQ_elem))); CexpressionDQ filter_CexpressionDQ KC__P(( CexpressionDQ, boolean (*)(CexpressionDQ_elem))); void freelist_CexpressionDQ KC__P(( CexpressionDQ )); CexpressionSQ concat_CexpressionSQ KC__P(( CexpressionSQ, CexpressionSQ )); CexpressionSQ reverse_CexpressionSQ KC__P(( CexpressionSQ )); int length_CexpressionSQ KC__P(( CexpressionSQ )); CexpressionSQ_elem last_CexpressionSQ KC__P(( CexpressionSQ )); CexpressionSQ map_CexpressionSQ KC__P(( CexpressionSQ, CexpressionSQ_elem (*)(CexpressionSQ_elem))); CexpressionSQ filter_CexpressionSQ KC__P(( CexpressionSQ, boolean (*)(CexpressionSQ_elem))); void freelist_CexpressionSQ KC__P(( CexpressionSQ )); idCexpressions concat_idCexpressions KC__P(( idCexpressions, idCexpressions )); idCexpressions reverse_idCexpressions KC__P(( idCexpressions )); int length_idCexpressions KC__P(( idCexpressions )); idCexpression last_idCexpressions KC__P(( idCexpressions )); idCexpressions map_idCexpressions KC__P(( idCexpressions, idCexpression (*)(idCexpression))); idCexpressions filter_idCexpressions KC__P(( idCexpressions, boolean (*)(idCexpression))); void freelist_idCexpressions KC__P(( idCexpressions )); Ctexts concat_Ctexts KC__P(( Ctexts, Ctexts )); Ctexts reverse_Ctexts KC__P(( Ctexts )); int length_Ctexts KC__P(( Ctexts )); Ctext last_Ctexts KC__P(( Ctexts )); Ctexts map_Ctexts KC__P(( Ctexts, Ctext (*)(Ctext))); Ctexts filter_Ctexts KC__P(( Ctexts, boolean (*)(Ctext))); void freelist_Ctexts KC__P(( Ctexts )); includefiles concat_includefiles KC__P(( includefiles, includefiles )); includefiles reverse_includefiles KC__P(( includefiles )); int length_includefiles KC__P(( includefiles )); includefile last_includefiles KC__P(( includefiles )); includefiles map_includefiles KC__P(( includefiles, includefile (*)(includefile))); includefiles filter_includefiles KC__P(( includefiles, boolean (*)(includefile))); void freelist_includefiles KC__P(( includefiles )); includedeclarations concat_includedeclarations KC__P(( includedeclarations, includedeclarations )); includedeclarations reverse_includedeclarations KC__P(( includedeclarations )); int length_includedeclarations KC__P(( includedeclarations )); includedeclaration last_includedeclarations KC__P(( includedeclarations )); includedeclarations map_includedeclarations KC__P(( includedeclarations, includedeclaration (*)(includedeclaration))); includedeclarations filter_includedeclarations KC__P(( includedeclarations, boolean (*)(includedeclaration))); void freelist_includedeclarations KC__P(( includedeclarations )); includes concat_includes KC__P(( includes, includes )); includes reverse_includes KC__P(( includes )); int length_includes KC__P(( includes )); include last_includes KC__P(( includes )); includes map_includes KC__P(( includes, include (*)(include))); includes filter_includes KC__P(( includes, boolean (*)(include))); void freelist_includes KC__P(( includes )); rwdeclarations concat_rwdeclarations KC__P(( rwdeclarations, rwdeclarations )); rwdeclarations reverse_rwdeclarations KC__P(( rwdeclarations )); int length_rwdeclarations KC__P(( rwdeclarations )); rwdeclaration last_rwdeclarations KC__P(( rwdeclarations )); rwdeclarations map_rwdeclarations KC__P(( rwdeclarations, rwdeclaration (*)(rwdeclaration))); rwdeclarations filter_rwdeclarations KC__P(( rwdeclarations, boolean (*)(rwdeclaration))); void freelist_rwdeclarations KC__P(( rwdeclarations )); rewriteclauses concat_rewriteclauses KC__P(( rewriteclauses, rewriteclauses )); rewriteclauses reverse_rewriteclauses KC__P(( rewriteclauses )); int length_rewriteclauses KC__P(( rewriteclauses )); rewriteclause last_rewriteclauses KC__P(( rewriteclauses )); rewriteclauses map_rewriteclauses KC__P(( rewriteclauses, rewriteclause (*)(rewriteclause))); rewriteclauses filter_rewriteclauses KC__P(( rewriteclauses, boolean (*)(rewriteclause))); void freelist_rewriteclauses KC__P(( rewriteclauses )); patternchains concat_patternchains KC__P(( patternchains, patternchains )); patternchains reverse_patternchains KC__P(( patternchains )); int length_patternchains KC__P(( patternchains )); patternchain last_patternchains KC__P(( patternchains )); patternchains map_patternchains KC__P(( patternchains, patternchain (*)(patternchain))); patternchains filter_patternchains KC__P(( patternchains, boolean (*)(patternchain))); void freelist_patternchains KC__P(( patternchains )); patternchain concat_patternchain KC__P(( patternchain, patternchain )); patternchain reverse_patternchain KC__P(( patternchain )); int length_patternchain KC__P(( patternchain )); patternchainitem last_patternchain KC__P(( patternchain )); patternchain map_patternchain KC__P(( patternchain, patternchainitem (*)(patternchainitem))); patternchain filter_patternchain KC__P(( patternchain, boolean (*)(patternchainitem))); void freelist_patternchain KC__P(( patternchain )); outmostpatterns concat_outmostpatterns KC__P(( outmostpatterns, outmostpatterns )); outmostpatterns reverse_outmostpatterns KC__P(( outmostpatterns )); int length_outmostpatterns KC__P(( outmostpatterns )); outmostpattern last_outmostpatterns KC__P(( outmostpatterns )); outmostpatterns map_outmostpatterns KC__P(( outmostpatterns, outmostpattern (*)(outmostpattern))); outmostpatterns filter_outmostpatterns KC__P(( outmostpatterns, boolean (*)(outmostpattern))); void freelist_outmostpatterns KC__P(( outmostpatterns )); patterns concat_patterns KC__P(( patterns, patterns )); patterns reverse_patterns KC__P(( patterns )); int length_patterns KC__P(( patterns )); pattern last_patterns KC__P(( patterns )); patterns map_patterns KC__P(( patterns, pattern (*)(pattern))); patterns filter_patterns KC__P(( patterns, boolean (*)(pattern))); void freelist_patterns KC__P(( patterns )); terms concat_terms KC__P(( terms, terms )); terms reverse_terms KC__P(( terms )); int length_terms KC__P(( terms )); term last_terms KC__P(( terms )); terms map_terms KC__P(( terms, term (*)(term))); terms filter_terms KC__P(( terms, boolean (*)(term))); void freelist_terms KC__P(( terms )); fnfiles concat_fnfiles KC__P(( fnfiles, fnfiles )); fnfiles reverse_fnfiles KC__P(( fnfiles )); int length_fnfiles KC__P(( fnfiles )); fnfile last_fnfiles KC__P(( fnfiles )); fnfiles map_fnfiles KC__P(( fnfiles, fnfile (*)(fnfile))); fnfiles filter_fnfiles KC__P(( fnfiles, boolean (*)(fnfile))); void freelist_fnfiles KC__P(( fnfiles )); fndeclarations concat_fndeclarations KC__P(( fndeclarations, fndeclarations )); fndeclarations reverse_fndeclarations KC__P(( fndeclarations )); int length_fndeclarations KC__P(( fndeclarations )); fndeclaration last_fndeclarations KC__P(( fndeclarations )); fndeclarations map_fndeclarations KC__P(( fndeclarations, fndeclaration (*)(fndeclaration))); fndeclarations filter_fndeclarations KC__P(( fndeclarations, boolean (*)(fndeclaration))); void freelist_fndeclarations KC__P(( fndeclarations )); fnarguments concat_fnarguments KC__P(( fnarguments, fnarguments )); fnarguments reverse_fnarguments KC__P(( fnarguments )); int length_fnarguments KC__P(( fnarguments )); ID last_fnarguments KC__P(( fnarguments )); fnarguments map_fnarguments KC__P(( fnarguments, ID (*)(ID))); fnarguments filter_fnarguments KC__P(( fnarguments, boolean (*)(ID))); void freelist_fnarguments KC__P(( fnarguments )); Cvariabledeclarations concat_Cvariabledeclarations KC__P(( Cvariabledeclarations, Cvariabledeclarations )); Cvariabledeclarations reverse_Cvariabledeclarations KC__P(( Cvariabledeclarations )); int length_Cvariabledeclarations KC__P(( Cvariabledeclarations )); Cvariabledeclaration last_Cvariabledeclarations KC__P(( Cvariabledeclarations )); Cvariabledeclarations map_Cvariabledeclarations KC__P(( Cvariabledeclarations, Cvariabledeclaration (*)(Cvariabledeclaration))); Cvariabledeclarations filter_Cvariabledeclarations KC__P(( Cvariabledeclarations, boolean (*)(Cvariabledeclaration))); void freelist_Cvariabledeclarations KC__P(( Cvariabledeclarations )); Cvariables concat_Cvariables KC__P(( Cvariables, Cvariables )); Cvariables reverse_Cvariables KC__P(( Cvariables )); int length_Cvariables KC__P(( Cvariables )); Cvariable last_Cvariables KC__P(( Cvariables )); Cvariables map_Cvariables KC__P(( Cvariables, Cvariable (*)(Cvariable))); Cvariables filter_Cvariables KC__P(( Cvariables, boolean (*)(Cvariable))); void freelist_Cvariables KC__P(( Cvariables )); Ctext concat_Ctext KC__P(( Ctext, Ctext )); Ctext reverse_Ctext KC__P(( Ctext )); int length_Ctext KC__P(( Ctext )); Ctext_elem last_Ctext KC__P(( Ctext )); Ctext map_Ctext KC__P(( Ctext, Ctext_elem (*)(Ctext_elem))); Ctext filter_Ctext KC__P(( Ctext, boolean (*)(Ctext_elem))); void freelist_Ctext KC__P(( Ctext )); withexpressions concat_withexpressions KC__P(( withexpressions, withexpressions )); withexpressions reverse_withexpressions KC__P(( withexpressions )); int length_withexpressions KC__P(( withexpressions )); withexpression last_withexpressions KC__P(( withexpressions )); withexpressions map_withexpressions KC__P(( withexpressions, withexpression (*)(withexpression))); withexpressions filter_withexpressions KC__P(( withexpressions, boolean (*)(withexpression))); void freelist_withexpressions KC__P(( withexpressions )); withcases concat_withcases KC__P(( withcases, withcases )); withcases reverse_withcases KC__P(( withcases )); int length_withcases KC__P(( withcases )); withcase last_withcases KC__P(( withcases )); withcases map_withcases KC__P(( withcases, withcase (*)(withcase))); withcases filter_withcases KC__P(( withcases, boolean (*)(withcase))); void freelist_withcases KC__P(( withcases )); unparsedeclarations concat_unparsedeclarations KC__P(( unparsedeclarations, unparsedeclarations )); unparsedeclarations reverse_unparsedeclarations KC__P(( unparsedeclarations )); int length_unparsedeclarations KC__P(( unparsedeclarations )); unparsedeclaration last_unparsedeclarations KC__P(( unparsedeclarations )); unparsedeclarations map_unparsedeclarations KC__P(( unparsedeclarations, unparsedeclaration (*)(unparsedeclaration))); unparsedeclarations filter_unparsedeclarations KC__P(( unparsedeclarations, boolean (*)(unparsedeclaration))); void freelist_unparsedeclarations KC__P(( unparsedeclarations )); unparseclauses concat_unparseclauses KC__P(( unparseclauses, unparseclauses )); unparseclauses reverse_unparseclauses KC__P(( unparseclauses )); int length_unparseclauses KC__P(( unparseclauses )); unparseclause last_unparseclauses KC__P(( unparseclauses )); unparseclauses map_unparseclauses KC__P(( unparseclauses, unparseclause (*)(unparseclause))); unparseclauses filter_unparseclauses KC__P(( unparseclauses, boolean (*)(unparseclause))); void freelist_unparseclauses KC__P(( unparseclauses )); viewnames concat_viewnames KC__P(( viewnames, viewnames )); viewnames reverse_viewnames KC__P(( viewnames )); int length_viewnames KC__P(( viewnames )); ID last_viewnames KC__P(( viewnames )); viewnames map_viewnames KC__P(( viewnames, ID (*)(ID))); viewnames filter_viewnames KC__P(( viewnames, boolean (*)(ID))); void freelist_viewnames KC__P(( viewnames )); unparseitems concat_unparseitems KC__P(( unparseitems, unparseitems )); unparseitems reverse_unparseitems KC__P(( unparseitems )); int length_unparseitems KC__P(( unparseitems )); unparseitem last_unparseitems KC__P(( unparseitems )); unparseitems map_unparseitems KC__P(( unparseitems, unparseitem (*)(unparseitem))); unparseitems filter_unparseitems KC__P(( unparseitems, boolean (*)(unparseitem))); void freelist_unparseitems KC__P(( unparseitems )); unpattributes concat_unpattributes KC__P(( unpattributes, unpattributes )); unpattributes reverse_unpattributes KC__P(( unpattributes )); int length_unpattributes KC__P(( unpattributes )); ID last_unpattributes KC__P(( unpattributes )); unpattributes map_unpattributes KC__P(( unpattributes, ID (*)(ID))); unpattributes filter_unpattributes KC__P(( unpattributes, boolean (*)(ID))); void freelist_unpattributes KC__P(( unpattributes )); filelinestack concat_filelinestack KC__P(( filelinestack, filelinestack )); filelinestack reverse_filelinestack KC__P(( filelinestack )); int length_filelinestack KC__P(( filelinestack )); fileline last_filelinestack KC__P(( filelinestack )); filelinestack map_filelinestack KC__P(( filelinestack, fileline (*)(fileline))); filelinestack filter_filelinestack KC__P(( filelinestack, boolean (*)(fileline))); void freelist_filelinestack KC__P(( filelinestack )); nooperatorsstack concat_nooperatorsstack KC__P(( nooperatorsstack, nooperatorsstack )); nooperatorsstack reverse_nooperatorsstack KC__P(( nooperatorsstack )); int length_nooperatorsstack KC__P(( nooperatorsstack )); int last_nooperatorsstack KC__P(( nooperatorsstack )); nooperatorsstack map_nooperatorsstack KC__P(( nooperatorsstack, int (*)(int))); nooperatorsstack filter_nooperatorsstack KC__P(( nooperatorsstack, boolean (*)(int))); void freelist_nooperatorsstack KC__P(( nooperatorsstack )); scopetypefilelinestack concat_scopetypefilelinestack KC__P(( scopetypefilelinestack, scopetypefilelinestack )); scopetypefilelinestack reverse_scopetypefilelinestack KC__P(( scopetypefilelinestack )); int length_scopetypefilelinestack KC__P(( scopetypefilelinestack )); scopetypefileline last_scopetypefilelinestack KC__P(( scopetypefilelinestack )); scopetypefilelinestack map_scopetypefilelinestack KC__P(( scopetypefilelinestack, scopetypefileline (*)(scopetypefileline))); scopetypefilelinestack filter_scopetypefilelinestack KC__P(( scopetypefilelinestack, boolean (*)(scopetypefileline))); void freelist_scopetypefilelinestack KC__P(( scopetypefilelinestack )); operatorsstack concat_operatorsstack KC__P(( operatorsstack, operatorsstack )); operatorsstack reverse_operatorsstack KC__P(( operatorsstack )); int length_operatorsstack KC__P(( operatorsstack )); operators last_operatorsstack KC__P(( operatorsstack )); operatorsstack map_operatorsstack KC__P(( operatorsstack, operators (*)(operators))); operatorsstack filter_operatorsstack KC__P(( operatorsstack, boolean (*)(operators))); void freelist_operatorsstack KC__P(( operatorsstack )); operators concat_operators KC__P(( operators, operators )); operators reverse_operators KC__P(( operators )); int length_operators KC__P(( operators )); ID last_operators KC__P(( operators )); operators map_operators KC__P(( operators, ID (*)(ID))); operators filter_operators KC__P(( operators, boolean (*)(ID))); void freelist_operators KC__P(( operators )); phyla concat_phyla KC__P(( phyla, phyla )); phyla reverse_phyla KC__P(( phyla )); int length_phyla KC__P(( phyla )); ID last_phyla KC__P(( phyla )); phyla map_phyla KC__P(( phyla, ID (*)(ID))); phyla filter_phyla KC__P(( phyla, boolean (*)(ID))); void freelist_phyla KC__P(( phyla )); variables concat_variables KC__P(( variables, variables )); variables reverse_variables KC__P(( variables )); int length_variables KC__P(( variables )); ID last_variables KC__P(( variables )); variables map_variables KC__P(( variables, ID (*)(ID))); variables filter_variables KC__P(( variables, boolean (*)(ID))); void freelist_variables KC__P(( variables )); argumentsstack concat_argumentsstack KC__P(( argumentsstack, argumentsstack )); argumentsstack reverse_argumentsstack KC__P(( argumentsstack )); int length_argumentsstack KC__P(( argumentsstack )); arguments last_argumentsstack KC__P(( argumentsstack )); argumentsstack map_argumentsstack KC__P(( argumentsstack, arguments (*)(arguments))); argumentsstack filter_argumentsstack KC__P(( argumentsstack, boolean (*)(arguments))); void freelist_argumentsstack KC__P(( argumentsstack )); phylumstack concat_phylumstack KC__P(( phylumstack, phylumstack )); phylumstack reverse_phylumstack KC__P(( phylumstack )); int length_phylumstack KC__P(( phylumstack )); ID last_phylumstack KC__P(( phylumstack )); phylumstack map_phylumstack KC__P(( phylumstack, ID (*)(ID))); phylumstack filter_phylumstack KC__P(( phylumstack, boolean (*)(ID))); void freelist_phylumstack KC__P(( phylumstack )); phylumnamesstack concat_phylumnamesstack KC__P(( phylumnamesstack, phylumnamesstack )); phylumnamesstack reverse_phylumnamesstack KC__P(( phylumnamesstack )); int length_phylumnamesstack KC__P(( phylumnamesstack )); phylumnames last_phylumnamesstack KC__P(( phylumnamesstack )); phylumnamesstack map_phylumnamesstack KC__P(( phylumnamesstack, phylumnames (*)(phylumnames))); phylumnamesstack filter_phylumnamesstack KC__P(( phylumnamesstack, boolean (*)(phylumnames))); void freelist_phylumnamesstack KC__P(( phylumnamesstack )); withexpressionsstack concat_withexpressionsstack KC__P(( withexpressionsstack, withexpressionsstack )); withexpressionsstack reverse_withexpressionsstack KC__P(( withexpressionsstack )); int length_withexpressionsstack KC__P(( withexpressionsstack )); withexpressions last_withexpressionsstack KC__P(( withexpressionsstack )); withexpressionsstack map_withexpressionsstack KC__P(( withexpressionsstack, withexpressions (*)(withexpressions))); withexpressionsstack filter_withexpressionsstack KC__P(( withexpressionsstack, boolean (*)(withexpressions))); void freelist_withexpressionsstack KC__P(( withexpressionsstack )); operatorstack concat_operatorstack KC__P(( operatorstack, operatorstack )); operatorstack reverse_operatorstack KC__P(( operatorstack )); int length_operatorstack KC__P(( operatorstack )); ID last_operatorstack KC__P(( operatorstack )); operatorstack map_operatorstack KC__P(( operatorstack, ID (*)(ID))); operatorstack filter_operatorstack KC__P(( operatorstack, boolean (*)(ID))); void freelist_operatorstack KC__P(( operatorstack )); variablesstack concat_variablesstack KC__P(( variablesstack, variablesstack )); variablesstack reverse_variablesstack KC__P(( variablesstack )); int length_variablesstack KC__P(( variablesstack )); variables last_variablesstack KC__P(( variablesstack )); variablesstack map_variablesstack KC__P(( variablesstack, variables (*)(variables))); variablesstack filter_variablesstack KC__P(( variablesstack, boolean (*)(variables))); void freelist_variablesstack KC__P(( variablesstack )); selvarstack concat_selvarstack KC__P(( selvarstack, selvarstack )); selvarstack reverse_selvarstack KC__P(( selvarstack )); int length_selvarstack KC__P(( selvarstack )); ID last_selvarstack KC__P(( selvarstack )); selvarstack map_selvarstack KC__P(( selvarstack, ID (*)(ID))); selvarstack filter_selvarstack KC__P(( selvarstack, boolean (*)(ID))); void freelist_selvarstack KC__P(( selvarstack )); dollarvarsallowedstack concat_dollarvarsallowedstack KC__P(( dollarvarsallowedstack, dollarvarsallowedstack )); dollarvarsallowedstack reverse_dollarvarsallowedstack KC__P(( dollarvarsallowedstack )); int length_dollarvarsallowedstack KC__P(( dollarvarsallowedstack )); dollarvarstatus last_dollarvarsallowedstack KC__P(( dollarvarsallowedstack )); dollarvarsallowedstack map_dollarvarsallowedstack KC__P(( dollarvarsallowedstack, dollarvarstatus (*)(dollarvarstatus))); dollarvarsallowedstack filter_dollarvarsallowedstack KC__P(( dollarvarsallowedstack, boolean (*)(dollarvarstatus))); void freelist_dollarvarsallowedstack KC__P(( dollarvarsallowedstack )); intstack concat_intstack KC__P(( intstack, intstack )); intstack reverse_intstack KC__P(( intstack )); int length_intstack KC__P(( intstack )); int last_intstack KC__P(( intstack )); intstack map_intstack KC__P(( intstack, int (*)(int))); intstack filter_intstack KC__P(( intstack, boolean (*)(int))); void freelist_intstack KC__P(( intstack )); idCexpressionsstack concat_idCexpressionsstack KC__P(( idCexpressionsstack, idCexpressionsstack )); idCexpressionsstack reverse_idCexpressionsstack KC__P(( idCexpressionsstack )); int length_idCexpressionsstack KC__P(( idCexpressionsstack )); idCexpressions last_idCexpressionsstack KC__P(( idCexpressionsstack )); idCexpressionsstack map_idCexpressionsstack KC__P(( idCexpressionsstack, idCexpressions (*)(idCexpressions))); idCexpressionsstack filter_idCexpressionsstack KC__P(( idCexpressionsstack, boolean (*)(idCexpressions))); void freelist_idCexpressionsstack KC__P(( idCexpressionsstack )); patternrepresentations concat_patternrepresentations KC__P(( patternrepresentations, patternrepresentations )); patternrepresentations reverse_patternrepresentations KC__P(( patternrepresentations )); int length_patternrepresentations KC__P(( patternrepresentations )); patternrepresentation last_patternrepresentations KC__P(( patternrepresentations )); patternrepresentations map_patternrepresentations KC__P(( patternrepresentations, patternrepresentation (*)(patternrepresentation))); patternrepresentations filter_patternrepresentations KC__P(( patternrepresentations, boolean (*)(patternrepresentation))); void freelist_patternrepresentations KC__P(( patternrepresentations )); patternrepresentation concat_patternrepresentation KC__P(( patternrepresentation, patternrepresentation )); patternrepresentation reverse_patternrepresentation KC__P(( patternrepresentation )); int length_patternrepresentation KC__P(( patternrepresentation )); elem_patternrepresentation last_patternrepresentation KC__P(( patternrepresentation )); patternrepresentation map_patternrepresentation KC__P(( patternrepresentation, elem_patternrepresentation (*)(elem_patternrepresentation))); patternrepresentation filter_patternrepresentation KC__P(( patternrepresentation, boolean (*)(elem_patternrepresentation))); void freelist_patternrepresentation KC__P(( patternrepresentation )); path concat_path KC__P(( path, path )); path reverse_path KC__P(( path )); int length_path KC__P(( path )); int last_path KC__P(( path )); path map_path KC__P(( path, int (*)(int))); path filter_path KC__P(( path, boolean (*)(int))); void freelist_path KC__P(( path )); paths concat_paths KC__P(( paths, paths )); paths reverse_paths KC__P(( paths )); int length_paths KC__P(( paths )); path last_paths KC__P(( paths )); paths map_paths KC__P(( paths, path (*)(path))); paths filter_paths KC__P(( paths, boolean (*)(path))); void freelist_paths KC__P(( paths )); argsnumbers concat_argsnumbers KC__P(( argsnumbers, argsnumbers )); argsnumbers reverse_argsnumbers KC__P(( argsnumbers )); int length_argsnumbers KC__P(( argsnumbers )); int last_argsnumbers KC__P(( argsnumbers )); argsnumbers map_argsnumbers KC__P(( argsnumbers, int (*)(int))); argsnumbers filter_argsnumbers KC__P(( argsnumbers, boolean (*)(int))); void freelist_argsnumbers KC__P(( argsnumbers )); rewriterulesinfo concat_rewriterulesinfo KC__P(( rewriterulesinfo, rewriterulesinfo )); rewriterulesinfo reverse_rewriterulesinfo KC__P(( rewriterulesinfo )); int length_rewriterulesinfo KC__P(( rewriterulesinfo )); rewriteruleinfo last_rewriterulesinfo KC__P(( rewriterulesinfo )); rewriterulesinfo map_rewriterulesinfo KC__P(( rewriterulesinfo, rewriteruleinfo (*)(rewriteruleinfo))); rewriterulesinfo filter_rewriterulesinfo KC__P(( rewriterulesinfo, boolean (*)(rewriteruleinfo))); void freelist_rewriterulesinfo KC__P(( rewriterulesinfo )); withcasesinfo concat_withcasesinfo KC__P(( withcasesinfo, withcasesinfo )); withcasesinfo reverse_withcasesinfo KC__P(( withcasesinfo )); int length_withcasesinfo KC__P(( withcasesinfo )); withcaseinfo last_withcasesinfo KC__P(( withcasesinfo )); withcasesinfo map_withcasesinfo KC__P(( withcasesinfo, withcaseinfo (*)(withcaseinfo))); withcasesinfo filter_withcasesinfo KC__P(( withcasesinfo, boolean (*)(withcaseinfo))); void freelist_withcasesinfo KC__P(( withcasesinfo )); rewriteviewsinfo concat_rewriteviewsinfo KC__P(( rewriteviewsinfo, rewriteviewsinfo )); rewriteviewsinfo reverse_rewriteviewsinfo KC__P(( rewriteviewsinfo )); int length_rewriteviewsinfo KC__P(( rewriteviewsinfo )); rewriteviewinfo last_rewriteviewsinfo KC__P(( rewriteviewsinfo )); rewriteviewsinfo map_rewriteviewsinfo KC__P(( rewriteviewsinfo, rewriteviewinfo (*)(rewriteviewinfo))); rewriteviewsinfo filter_rewriteviewsinfo KC__P(( rewriteviewsinfo, boolean (*)(rewriteviewinfo))); void freelist_rewriteviewsinfo KC__P(( rewriteviewsinfo )); unparseviewsinfo concat_unparseviewsinfo KC__P(( unparseviewsinfo, unparseviewsinfo )); unparseviewsinfo reverse_unparseviewsinfo KC__P(( unparseviewsinfo )); int length_unparseviewsinfo KC__P(( unparseviewsinfo )); unparseviewinfo last_unparseviewsinfo KC__P(( unparseviewsinfo )); unparseviewsinfo map_unparseviewsinfo KC__P(( unparseviewsinfo, unparseviewinfo (*)(unparseviewinfo))); unparseviewsinfo filter_unparseviewsinfo KC__P(( unparseviewsinfo, boolean (*)(unparseviewinfo))); void freelist_unparseviewsinfo KC__P(( unparseviewsinfo )); unparsedeclsinfo concat_unparsedeclsinfo KC__P(( unparsedeclsinfo, unparsedeclsinfo )); unparsedeclsinfo reverse_unparsedeclsinfo KC__P(( unparsedeclsinfo )); int length_unparsedeclsinfo KC__P(( unparsedeclsinfo )); unparsedeclinfo last_unparsedeclsinfo KC__P(( unparsedeclsinfo )); unparsedeclsinfo map_unparsedeclsinfo KC__P(( unparsedeclsinfo, unparsedeclinfo (*)(unparsedeclinfo))); unparsedeclsinfo filter_unparsedeclsinfo KC__P(( unparsedeclsinfo, boolean (*)(unparsedeclinfo))); void freelist_unparsedeclsinfo KC__P(( unparsedeclsinfo )); ac_declaration_list concat_ac_declaration_list KC__P(( ac_declaration_list, ac_declaration_list )); ac_declaration_list reverse_ac_declaration_list KC__P(( ac_declaration_list )); int length_ac_declaration_list KC__P(( ac_declaration_list )); ac_declaration last_ac_declaration_list KC__P(( ac_declaration_list )); ac_declaration_list map_ac_declaration_list KC__P(( ac_declaration_list, ac_declaration (*)(ac_declaration))); ac_declaration_list filter_ac_declaration_list KC__P(( ac_declaration_list, boolean (*)(ac_declaration))); void freelist_ac_declaration_list KC__P(( ac_declaration_list )); ac_declaration_specifiers concat_ac_declaration_specifiers KC__P(( ac_declaration_specifiers, ac_declaration_specifiers )); ac_declaration_specifiers reverse_ac_declaration_specifiers KC__P(( ac_declaration_specifiers )); int length_ac_declaration_specifiers KC__P(( ac_declaration_specifiers )); ac_declaration_specifier last_ac_declaration_specifiers KC__P(( ac_declaration_specifiers )); ac_declaration_specifiers map_ac_declaration_specifiers KC__P(( ac_declaration_specifiers, ac_declaration_specifier (*)(ac_declaration_specifier))); ac_declaration_specifiers filter_ac_declaration_specifiers KC__P(( ac_declaration_specifiers, boolean (*)(ac_declaration_specifier))); void freelist_ac_declaration_specifiers KC__P(( ac_declaration_specifiers )); ac_init_declarator_list concat_ac_init_declarator_list KC__P(( ac_init_declarator_list, ac_init_declarator_list )); ac_init_declarator_list reverse_ac_init_declarator_list KC__P(( ac_init_declarator_list )); int length_ac_init_declarator_list KC__P(( ac_init_declarator_list )); ac_init_declarator last_ac_init_declarator_list KC__P(( ac_init_declarator_list )); ac_init_declarator_list map_ac_init_declarator_list KC__P(( ac_init_declarator_list, ac_init_declarator (*)(ac_init_declarator))); ac_init_declarator_list filter_ac_init_declarator_list KC__P(( ac_init_declarator_list, boolean (*)(ac_init_declarator))); void freelist_ac_init_declarator_list KC__P(( ac_init_declarator_list )); ac_type_qualifier_list concat_ac_type_qualifier_list KC__P(( ac_type_qualifier_list, ac_type_qualifier_list )); ac_type_qualifier_list reverse_ac_type_qualifier_list KC__P(( ac_type_qualifier_list )); int length_ac_type_qualifier_list KC__P(( ac_type_qualifier_list )); ac_type_qualifier last_ac_type_qualifier_list KC__P(( ac_type_qualifier_list )); ac_type_qualifier_list map_ac_type_qualifier_list KC__P(( ac_type_qualifier_list, ac_type_qualifier (*)(ac_type_qualifier))); ac_type_qualifier_list filter_ac_type_qualifier_list KC__P(( ac_type_qualifier_list, boolean (*)(ac_type_qualifier))); void freelist_ac_type_qualifier_list KC__P(( ac_type_qualifier_list )); ac_parameter_list concat_ac_parameter_list KC__P(( ac_parameter_list, ac_parameter_list )); ac_parameter_list reverse_ac_parameter_list KC__P(( ac_parameter_list )); int length_ac_parameter_list KC__P(( ac_parameter_list )); ac_parameter_declaration last_ac_parameter_list KC__P(( ac_parameter_list )); ac_parameter_list map_ac_parameter_list KC__P(( ac_parameter_list, ac_parameter_declaration (*)(ac_parameter_declaration))); ac_parameter_list filter_ac_parameter_list KC__P(( ac_parameter_list, boolean (*)(ac_parameter_declaration))); void freelist_ac_parameter_list KC__P(( ac_parameter_list )); ac_identifier_list concat_ac_identifier_list KC__P(( ac_identifier_list, ac_identifier_list )); ac_identifier_list reverse_ac_identifier_list KC__P(( ac_identifier_list )); int length_ac_identifier_list KC__P(( ac_identifier_list )); ID last_ac_identifier_list KC__P(( ac_identifier_list )); ac_identifier_list map_ac_identifier_list KC__P(( ac_identifier_list, ID (*)(ID))); ac_identifier_list filter_ac_identifier_list KC__P(( ac_identifier_list, boolean (*)(ID))); void freelist_ac_identifier_list KC__P(( ac_identifier_list )); addedphylumdeclarations concat_addedphylumdeclarations KC__P(( addedphylumdeclarations, addedphylumdeclarations )); addedphylumdeclarations reverse_addedphylumdeclarations KC__P(( addedphylumdeclarations )); int length_addedphylumdeclarations KC__P(( addedphylumdeclarations )); addedphylumdeclaration last_addedphylumdeclarations KC__P(( addedphylumdeclarations )); addedphylumdeclarations map_addedphylumdeclarations KC__P(( addedphylumdeclarations, addedphylumdeclaration (*)(addedphylumdeclaration))); addedphylumdeclarations filter_addedphylumdeclarations KC__P(( addedphylumdeclarations, boolean (*)(addedphylumdeclaration))); void freelist_addedphylumdeclarations KC__P(( addedphylumdeclarations )); countedphylumdeclarations concat_countedphylumdeclarations KC__P(( countedphylumdeclarations, countedphylumdeclarations )); countedphylumdeclarations reverse_countedphylumdeclarations KC__P(( countedphylumdeclarations )); int length_countedphylumdeclarations KC__P(( countedphylumdeclarations )); countedphylumdeclaration last_countedphylumdeclarations KC__P(( countedphylumdeclarations )); countedphylumdeclarations map_countedphylumdeclarations KC__P(( countedphylumdeclarations, countedphylumdeclaration (*)(countedphylumdeclaration))); countedphylumdeclarations filter_countedphylumdeclarations KC__P(( countedphylumdeclarations, boolean (*)(countedphylumdeclaration))); void freelist_countedphylumdeclarations KC__P(( countedphylumdeclarations )); bindingidmarks concat_bindingidmarks KC__P(( bindingidmarks, bindingidmarks )); bindingidmarks reverse_bindingidmarks KC__P(( bindingidmarks )); int length_bindingidmarks KC__P(( bindingidmarks )); bindingidmark last_bindingidmarks KC__P(( bindingidmarks )); bindingidmarks map_bindingidmarks KC__P(( bindingidmarks, bindingidmark (*)(bindingidmark))); bindingidmarks filter_bindingidmarks KC__P(( bindingidmarks, boolean (*)(bindingidmark))); void freelist_bindingidmarks KC__P(( bindingidmarks )); nocasestring copy_nocasestring KC__P(( nocasestring, boolean )); casestring copy_casestring KC__P(( casestring, boolean )); float copy_float KC__P(( float, boolean )); int copy_int KC__P(( int, boolean )); voidptr copy_voidptr KC__P(( voidptr, boolean )); uniqID copy_uniqID KC__P(( uniqID, boolean )); ID copy_ID KC__P(( ID, boolean )); INT copy_INT KC__P(( INT, boolean )); STRING copy_STRING KC__P(( STRING, boolean )); phylumdeclarationsroot copy_phylumdeclarationsroot KC__P(( phylumdeclarationsroot, boolean )); phylumdeclarations copy_phylumdeclarations KC__P(( phylumdeclarations, boolean )); phylumnames copy_phylumnames KC__P(( phylumnames, boolean )); phylumdeclaration copy_phylumdeclaration KC__P(( phylumdeclaration, boolean )); storageoption copy_storageoption KC__P(( storageoption, boolean )); storageclasses copy_storageclasses KC__P(( storageclasses, boolean )); productionblock copy_productionblock KC__P(( productionblock, boolean )); alternatives copy_alternatives KC__P(( alternatives, boolean )); alternative copy_alternative KC__P(( alternative, boolean )); arguments copy_arguments KC__P(( arguments, boolean )); argument copy_argument KC__P(( argument, boolean )); Ccode_option copy_Ccode_option KC__P(( Ccode_option, boolean )); attributes copy_attributes KC__P(( attributes, boolean )); attribute copy_attribute KC__P(( attribute, boolean )); attribute_initialisation_option copy_attribute_initialisation_option KC__P(( attribute_initialisation_option, boolean )); Cexpression copy_Cexpression KC__P(( Cexpression, boolean )); Cexpression_elem copy_Cexpression_elem KC__P(( Cexpression_elem, boolean )); CexpressionDQ copy_CexpressionDQ KC__P(( CexpressionDQ, boolean )); CexpressionDQ_elem copy_CexpressionDQ_elem KC__P(( CexpressionDQ_elem, boolean )); CexpressionSQ copy_CexpressionSQ KC__P(( CexpressionSQ, boolean )); CexpressionSQ_elem copy_CexpressionSQ_elem KC__P(( CexpressionSQ_elem, boolean )); idCexpressions copy_idCexpressions KC__P(( idCexpressions, boolean )); idCexpression copy_idCexpression KC__P(( idCexpression, boolean )); Ctexts copy_Ctexts KC__P(( Ctexts, boolean )); includefiles copy_includefiles KC__P(( includefiles, boolean )); includefile copy_includefile KC__P(( includefile, boolean )); includedeclarations copy_includedeclarations KC__P(( includedeclarations, boolean )); includedeclaration copy_includedeclaration KC__P(( includedeclaration, boolean )); includes copy_includes KC__P(( includes, boolean )); include copy_include KC__P(( include, boolean )); rwdeclarations copy_rwdeclarations KC__P(( rwdeclarations, boolean )); rwdeclaration copy_rwdeclaration KC__P(( rwdeclaration, boolean )); rewriteclauses copy_rewriteclauses KC__P(( rewriteclauses, boolean )); rewriteclause copy_rewriteclause KC__P(( rewriteclause, boolean )); patternchains copy_patternchains KC__P(( patternchains, boolean )); patternchain copy_patternchain KC__P(( patternchain, boolean )); outmostpatterns copy_outmostpatterns KC__P(( outmostpatterns, boolean )); patternchainitem copy_patternchainitem KC__P(( patternchainitem, boolean )); outmostpattern copy_outmostpattern KC__P(( outmostpattern, boolean )); pattern copy_pattern KC__P(( pattern, boolean )); patterns copy_patterns KC__P(( patterns, boolean )); term copy_term KC__P(( term, boolean )); terms copy_terms KC__P(( terms, boolean )); fnfiles copy_fnfiles KC__P(( fnfiles, boolean )); fnfile copy_fnfile KC__P(( fnfile, boolean )); fndeclarations copy_fndeclarations KC__P(( fndeclarations, boolean )); fndeclaration copy_fndeclaration KC__P(( fndeclaration, boolean )); fnclass copy_fnclass KC__P(( fnclass, boolean )); fnarguments copy_fnarguments KC__P(( fnarguments, boolean )); Cvariabledeclarations copy_Cvariabledeclarations KC__P(( Cvariabledeclarations, boolean )); Cvariabledeclaration copy_Cvariabledeclaration KC__P(( Cvariabledeclaration, boolean )); Cvariables copy_Cvariables KC__P(( Cvariables, boolean )); Cvariable copy_Cvariable KC__P(( Cvariable, boolean )); Ctext copy_Ctext KC__P(( Ctext, boolean )); Ctext_elem copy_Ctext_elem KC__P(( Ctext_elem, boolean )); foreach_after copy_foreach_after KC__P(( foreach_after, boolean )); contextinfo copy_contextinfo KC__P(( contextinfo, boolean )); withexpressions copy_withexpressions KC__P(( withexpressions, boolean )); withexpression copy_withexpression KC__P(( withexpression, boolean )); withcases copy_withcases KC__P(( withcases, boolean )); withcase copy_withcase KC__P(( withcase, boolean )); unparsedeclarations copy_unparsedeclarations KC__P(( unparsedeclarations, boolean )); unparsedeclaration copy_unparsedeclaration KC__P(( unparsedeclaration, boolean )); unparseclauses copy_unparseclauses KC__P(( unparseclauses, boolean )); unparseclause copy_unparseclause KC__P(( unparseclause, boolean )); viewnames copy_viewnames KC__P(( viewnames, boolean )); unparseitems copy_unparseitems KC__P(( unparseitems, boolean )); unparseitem copy_unparseitem KC__P(( unparseitem, boolean )); unpsubterm copy_unpsubterm KC__P(( unpsubterm, boolean )); unpattributes copy_unpattributes KC__P(( unpattributes, boolean )); viewnameoption copy_viewnameoption KC__P(( viewnameoption, boolean )); filelinestack copy_filelinestack KC__P(( filelinestack, boolean )); fileline copy_fileline KC__P(( fileline, boolean )); nooperatorsstack copy_nooperatorsstack KC__P(( nooperatorsstack, boolean )); scopetypefilelinestack copy_scopetypefilelinestack KC__P(( scopetypefilelinestack, boolean )); scopetypefileline copy_scopetypefileline KC__P(( scopetypefileline, boolean )); IDtype copy_IDtype KC__P(( IDtype, boolean )); operatorsstack copy_operatorsstack KC__P(( operatorsstack, boolean )); operators copy_operators KC__P(( operators, boolean )); phyla copy_phyla KC__P(( phyla, boolean )); variables copy_variables KC__P(( variables, boolean )); argumentsstack copy_argumentsstack KC__P(( argumentsstack, boolean )); phylumstack copy_phylumstack KC__P(( phylumstack, boolean )); phylumnamesstack copy_phylumnamesstack KC__P(( phylumnamesstack, boolean )); withexpressionsstack copy_withexpressionsstack KC__P(( withexpressionsstack, boolean )); operatorstack copy_operatorstack KC__P(( operatorstack, boolean )); variablesstack copy_variablesstack KC__P(( variablesstack, boolean )); selvarstack copy_selvarstack KC__P(( selvarstack, boolean )); dollarvarstatus copy_dollarvarstatus KC__P(( dollarvarstatus, boolean )); dollarvarsallowedstack copy_dollarvarsallowedstack KC__P(( dollarvarsallowedstack, boolean )); intstack copy_intstack KC__P(( intstack, boolean )); idCexpressionsstack copy_idCexpressionsstack KC__P(( idCexpressionsstack, boolean )); two_phyla copy_two_phyla KC__P(( two_phyla, boolean )); tribool copy_tribool KC__P(( tribool, boolean )); patternrepresentations copy_patternrepresentations KC__P(( patternrepresentations, boolean )); patternrepresentation copy_patternrepresentation KC__P(( patternrepresentation, boolean )); elem_patternrepresentation copy_elem_patternrepresentation KC__P(( elem_patternrepresentation, boolean )); path copy_path KC__P(( path, boolean )); paths copy_paths KC__P(( paths, boolean )); argsnumbers copy_argsnumbers KC__P(( argsnumbers, boolean )); rewriterulesinfo copy_rewriterulesinfo KC__P(( rewriterulesinfo, boolean )); rewriteruleinfo copy_rewriteruleinfo KC__P(( rewriteruleinfo, boolean )); withcasesinfo copy_withcasesinfo KC__P(( withcasesinfo, boolean )); withcaseinfo copy_withcaseinfo KC__P(( withcaseinfo, boolean )); rewriteviewsinfo copy_rewriteviewsinfo KC__P(( rewriteviewsinfo, boolean )); rewriteviewinfo copy_rewriteviewinfo KC__P(( rewriteviewinfo, boolean )); unparseviewsinfo copy_unparseviewsinfo KC__P(( unparseviewsinfo, boolean )); unparseviewinfo copy_unparseviewinfo KC__P(( unparseviewinfo, boolean )); unparsedeclsinfo copy_unparsedeclsinfo KC__P(( unparsedeclsinfo, boolean )); unparsedeclinfo copy_unparsedeclinfo KC__P(( unparsedeclinfo, boolean )); ac_declaration copy_ac_declaration KC__P(( ac_declaration, boolean )); ac_declaration_list copy_ac_declaration_list KC__P(( ac_declaration_list, boolean )); ac_declaration_specifiers copy_ac_declaration_specifiers KC__P(( ac_declaration_specifiers, boolean )); ac_declaration_specifier copy_ac_declaration_specifier KC__P(( ac_declaration_specifier, boolean )); ac_storage_class_specifier copy_ac_storage_class_specifier KC__P(( ac_storage_class_specifier, boolean )); ac_type_specifier copy_ac_type_specifier KC__P(( ac_type_specifier, boolean )); ac_type_qualifier copy_ac_type_qualifier KC__P(( ac_type_qualifier, boolean )); ac_init_declarator_list copy_ac_init_declarator_list KC__P(( ac_init_declarator_list, boolean )); ac_init_declarator copy_ac_init_declarator KC__P(( ac_init_declarator, boolean )); ac_declarator copy_ac_declarator KC__P(( ac_declarator, boolean )); ac_direct_declarator copy_ac_direct_declarator KC__P(( ac_direct_declarator, boolean )); ac_pointer_option copy_ac_pointer_option KC__P(( ac_pointer_option, boolean )); ac_pointer copy_ac_pointer KC__P(( ac_pointer, boolean )); ac_type_qualifier_list copy_ac_type_qualifier_list KC__P(( ac_type_qualifier_list, boolean )); ac_parameter_type_list copy_ac_parameter_type_list KC__P(( ac_parameter_type_list, boolean )); ac_parameter_list copy_ac_parameter_list KC__P(( ac_parameter_list, boolean )); ac_parameter_declaration copy_ac_parameter_declaration KC__P(( ac_parameter_declaration, boolean )); ac_identifier_list copy_ac_identifier_list KC__P(( ac_identifier_list, boolean )); ac_abstract_declarator copy_ac_abstract_declarator KC__P(( ac_abstract_declarator, boolean )); ac_direct_abstract_declarator_option copy_ac_direct_abstract_declarator_option KC__P(( ac_direct_abstract_declarator_option, boolean )); ac_direct_abstract_declarator copy_ac_direct_abstract_declarator KC__P(( ac_direct_abstract_declarator, boolean )); ac_constant_expression_option copy_ac_constant_expression_option KC__P(( ac_constant_expression_option, boolean )); ac_constant_expression copy_ac_constant_expression KC__P(( ac_constant_expression, boolean )); error copy_error KC__P(( error, boolean )); problem copy_problem KC__P(( problem, boolean )); addedphylumdeclarations copy_addedphylumdeclarations KC__P(( addedphylumdeclarations, boolean )); addedphylumdeclaration copy_addedphylumdeclaration KC__P(( addedphylumdeclaration, boolean )); countedphylumdeclarations copy_countedphylumdeclarations KC__P(( countedphylumdeclarations, boolean )); countedphylumdeclaration copy_countedphylumdeclaration KC__P(( countedphylumdeclaration, boolean )); bindingidmarks copy_bindingidmarks KC__P(( bindingidmarks, boolean )); bindingidmark copy_bindingidmark KC__P(( bindingidmark, boolean )); #endif /* KC_TYPES_HEADER */ kimwitu-4.6.1.orig/src/kimwl.c0100644000176100001440000017665007076113234015553 0ustar debacleusers/* A lexical scanner generated by flex */ /* Scanner skeleton version: * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.89 96/05/25 21:02:21 vern Exp $ */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #include /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ #ifdef c_plusplus #ifndef __cplusplus #define __cplusplus #endif #endif #ifdef __cplusplus #include #include /* Use prototypes in function declarations. */ #define YY_USE_PROTOS /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ #if __STDC__ #define YY_USE_PROTOS #define YY_USE_CONST #endif /* __STDC__ */ #endif /* ! __cplusplus */ #ifdef __TURBOC__ #pragma warn -rch #pragma warn -use #include #include #define YY_USE_CONST #define YY_USE_PROTOS #endif #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif #ifdef YY_USE_PROTOS #define YY_PROTO(proto) proto #else #define YY_PROTO(proto) () #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. */ #define YY_BUF_SIZE 16384 typedef struct yy_buffer_state *YY_BUFFER_STATE; 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 /* The funky do-while in the following #define is used to turn the definition * int a single C statement (which needs a semi-colon terminator). This * avoids problems with code like: * * if ( condition_holds ) * yyless( 5 ); * else * do_something_else(); * * Prior to using the do-while the compiler would get upset at the * "else" because it interpreted the "if" statement as being all * done when it reached the ';' after the yyless() call. */ /* Return all but the first 'n' matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ *yy_cp = yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ yy_c_buf_p = yy_cp = yy_bp + n - 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). */ typedef unsigned int yy_size_t; 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; /* 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 }; static YY_BUFFER_STATE yy_current_buffer = 0; /* 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". */ #define YY_CURRENT_BUFFER yy_current_buffer /* 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 YY_PROTO(( FILE *input_file )); void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer )); void yy_load_buffer_state YY_PROTO(( void )); YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size )); void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b )); void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file )); void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b )); #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer ) YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size )); YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *str )); YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len )); static void *yy_flex_alloc YY_PROTO(( yy_size_t )); static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )); static void yy_flex_free YY_PROTO(( void * )); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! yy_current_buffer ) \ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ yy_current_buffer->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! yy_current_buffer ) \ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ yy_current_buffer->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (yy_current_buffer->yy_at_bol) #define YY_USES_REJECT 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 YY_PROTO(( void )); static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state )); static int yy_get_next_buffer YY_PROTO(( void )); static void yy_fatal_error YY_PROTO(( 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 = (int) (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 65 #define YY_END_OF_BUFFER 66 static yyconst short int yy_acclist[262] = { 0, 66, 64, 65, 65, 1, 64, 65, 1, 65, 37, 64, 65, 64, 65, 38, 64, 65, 64, 65, 64, 65, 64, 65, 18, 64, 65, 28, 64, 65, 28, 64, 65, 28, 64, 65, 28, 64, 65, 28, 64, 65, 28, 64, 65, 28, 64, 65, 28, 64, 65, 28, 64, 65, 28, 64, 65, 64, 65, 10, 64, 65, 12, 65, 11, 64, 65, 10, 64, 65, 11, 64, 65, 8, 64, 65, 9, 65, 7, 64, 65, 29, 64, 65, 34, 65, 33, 64, 65, 41, 64, 65, 42, 64, 65, 40, 64, 65, 29, 64, 65, 39, 64, 65, 43, 64, 65, 35, 64, 65, 44, 64, 65, 45, 64, 65, 46, 64, 65, 35, 64, 65, 50, 64, 65, 48, 64, 65, 35, 64, 65, 59, 64, 65, 59, 64, 65, 34, 65, 56, 64, 65, 60, 64, 65, 58, 64, 65, 53, 64, 65, 58, 64, 65, 30, 31, 32, 18, 16, 15, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 6, 10, 10, 15, 7, 29, 14, 29, 36, 45, 47, 50, 49, 59, 59, 51, 56, 54, 55, 14, 58, 52, 58, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 6, 13, 58, 21, 28, 28, 28, 28, 19, 28, 28, 28, 28, 28, 58, 25, 28, 28, 28, 28, 28, 28, 28, 2, 58, 28, 23, 28, 28, 20, 28, 28, 28, 4, 3, 58, 17, 28, 28, 24, 28, 28, 58, 22, 28, 26, 28, 58, 61, 58, 58, 58, 58,16441, 5,16441, 63, 8249, 62 } ; static yyconst short int yy_accept[239] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 5, 8, 10, 13, 15, 18, 20, 22, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 59, 62, 64, 67, 70, 73, 76, 78, 81, 84, 86, 89, 92, 95, 98, 101, 104, 107, 110, 113, 116, 119, 122, 125, 128, 131, 134, 137, 139, 142, 145, 148, 151, 154, 155, 156, 157, 158, 159, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 170, 170, 170, 170, 171, 172, 174, 174, 175, 176, 178, 179, 180, 181, 182, 183, 184, 185, 185, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 203, 203, 203, 203, 204, 205, 205, 205, 205, 205, 205, 206, 208, 209, 210, 211, 213, 214, 215, 216, 217, 217, 217, 217, 217, 217, 217, 217, 217, 218, 220, 221, 222, 223, 224, 225, 226, 226, 226, 226, 227, 227, 227, 227, 227, 228, 229, 231, 232, 234, 235, 236, 237, 237, 238, 238, 238, 238, 238, 239, 241, 242, 244, 245, 245, 245, 245, 245, 245, 246, 248, 250, 250, 250, 250, 250, 250, 250, 251, 251, 251, 252, 252, 252, 253, 253, 253, 253, 253, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 257, 258, 259, 259, 259, 260, 261, 262, 262 } ; static yyconst int yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 5, 1, 6, 7, 1, 8, 9, 10, 11, 1, 12, 13, 14, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 1, 17, 1, 1, 18, 1, 1, 19, 20, 21, 22, 23, 20, 20, 24, 20, 20, 20, 20, 25, 26, 27, 28, 20, 29, 30, 31, 32, 20, 20, 20, 33, 20, 34, 35, 36, 1, 37, 1, 38, 20, 39, 40, 41, 42, 43, 44, 45, 20, 20, 46, 20, 47, 48, 49, 20, 50, 51, 52, 53, 54, 55, 56, 57, 20, 58, 1, 59, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static yyconst int yy_meta[60] = { 0, 1, 1, 2, 1, 3, 4, 5, 6, 7, 7, 1, 7, 1, 1, 8, 9, 7, 1, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 7, 11, 7, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 8, 8 } ; static yyconst short int yy_base[252] = { 0, 531, 530, 0, 525, 57, 58, 73, 0, 130, 164, 143, 147, 148, 150, 200, 0, 531, 535, 535, 535, 535, 535, 128, 535, 50, 516, 518, 512, 0, 474, 478, 484, 468, 478, 481, 469, 463, 471, 138, 0, 535, 535, 507, 458, 535, 535, 0, 0, 535, 500, 535, 535, 535, 504, 535, 535, 479, 535, 0, 535, 136, 0, 535, 126, 0, 258, 261, 260, 502, 0, 477, 469, 494, 535, 535, 493, 535, 494, 535, 0, 455, 459, 463, 452, 452, 459, 463, 450, 452, 432, 432, 428, 436, 478, 0, 0, 471, 0, 0, 0, 535, 0, 535, 0, 535, 0, 0, 265, 428, 535, 445, 535, 535, 268, 0, 535, 408, 535, 407, 403, 414, 410, 398, 395, 385, 335, 337, 329, 325, 327, 330, 368, 535, 317, 278, 343, 340, 334, 324, 0, 312, 310, 312, 0, 310, 315, 319, 306, 316, 306, 311, 296, 309, 321, 317, 319, 296, 0, 299, 297, 291, 303, 300, 295, 284, 300, 280, 535, 267, 285, 286, 286, 271, 260, 0, 270, 0, 268, 263, 535, 264, 535, 264, 272, 279, 271, 249, 0, 245, 0, 252, 251, 242, 60, 270, 265, 237, 0, 0, 246, 234, 152, 268, 258, 248, 236, 229, 233, 535, 247, 167, 157, 155, 152, 154, 141, 123, 109, 116, 127, 178, 270, 93, 19, 25, 157, 173, 52, 319, 535, 0, 271, 48, 535, 535, 535, 535, 378, 389, 400, 411, 422, 425, 435, 438, 448, 458, 468, 478, 479, 489 } ; static yyconst short int yy_def[252] = { 0, 238, 238, 237, 3, 239, 239, 237, 7, 240, 240, 241, 241, 242, 242, 237, 15, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 237, 244, 237, 237, 244, 237, 237, 237, 245, 246, 237, 237, 237, 237, 237, 246, 237, 237, 237, 237, 247, 237, 237, 248, 237, 237, 249, 249, 237, 237, 237, 250, 237, 250, 237, 237, 237, 237, 237, 237, 237, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 237, 237, 237, 237, 237, 244, 244, 237, 245, 246, 246, 237, 247, 237, 248, 237, 249, 66, 237, 237, 237, 237, 237, 237, 237, 250, 237, 250, 237, 243, 243, 243, 243, 243, 243, 243, 243, 243, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 250, 243, 243, 243, 243, 243, 243, 243, 243, 243, 237, 237, 237, 237, 237, 237, 237, 237, 250, 243, 243, 243, 243, 243, 243, 243, 237, 237, 237, 237, 237, 237, 237, 237, 250, 243, 243, 243, 243, 243, 243, 237, 237, 237, 237, 237, 237, 237, 250, 243, 243, 243, 243, 237, 237, 237, 237, 237, 250, 243, 243, 237, 237, 237, 237, 237, 237, 250, 237, 237, 237, 237, 237, 250, 237, 237, 237, 237, 250, 237, 237, 237, 237, 237, 250, 237, 237, 237, 237, 237, 250, 237, 251, 237, 237, 237, 237, 237, 0, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237 } ; static yyconst short int yy_nxt[595] = { 0, 18, 20, 21, 20, 22, 23, 18, 24, 18, 18, 18, 18, 25, 26, 27, 28, 18, 18, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 18, 18, 18, 29, 30, 31, 32, 33, 29, 29, 29, 29, 34, 29, 29, 29, 35, 36, 37, 29, 38, 29, 29, 29, 18, 18, 41, 41, 202, 236, 42, 44, 76, 234, 77, 231, 230, 203, 43, 43, 18, 45, 46, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 27, 18, 18, 18, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 18, 18, 18, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 18, 18, 49, 105, 22, 50, 229, 24, 51, 52, 103, 53, 221, 73, 54, 49, 55, 60, 226, 49, 49, 60, 49, 202, 225, 63, 222, 63, 232, 224, 101, 223, 203, 56, 57, 58, 49, 233, 22, 50, 101, 24, 51, 52, 227, 53, 220, 61, 54, 221, 55, 61, 64, 228, 64, 74, 75, 90, 91, 219, 92, 93, 218, 222, 217, 94, 216, 56, 57, 58, 65, 66, 67, 66, 22, 68, 65, 24, 65, 65, 65, 65, 65, 65, 69, 65, 65, 65, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 65, 71, 65, 70, 72, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 18, 18, 107, 108, 107, 108, 108, 108, 110, 108, 108, 108, 135, 215, 227, 232, 214, 213, 111, 212, 211, 210, 135, 228, 233, 209, 208, 207, 222, 206, 205, 204, 201, 136, 200, 199, 137, 198, 109, 197, 138, 109, 196, 136, 195, 109, 137, 194, 193, 192, 138, 191, 190, 189, 188, 187, 186, 185, 184, 183, 112, 113, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 182, 235, 235, 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 167, 235, 235, 235, 166, 165, 164, 163, 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, 132, 152, 151, 150, 149, 148, 147, 235, 235, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 80, 80, 95, 146, 95, 95, 145, 95, 95, 95, 95, 95, 95, 98, 98, 99, 144, 143, 142, 99, 141, 140, 99, 99, 99, 102, 139, 111, 102, 102, 102, 102, 102, 102, 102, 104, 134, 104, 104, 104, 133, 104, 104, 104, 104, 106, 132, 131, 130, 106, 129, 106, 128, 106, 115, 115, 235, 235, 235, 235, 235, 235, 235, 235, 127, 126, 235, 125, 124, 123, 122, 121, 120, 119, 118, 76, 73, 117, 116, 114, 101, 100, 73, 97, 96, 89, 88, 87, 86, 85, 84, 83, 82, 81, 76, 79, 78, 237, 39, 19, 19, 17, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237 } ; static yyconst short int yy_chk[595] = { 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 6, 194, 233, 5, 6, 25, 228, 25, 225, 224, 194, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 64, 9, 9, 223, 9, 9, 9, 61, 9, 216, 23, 9, 11, 9, 11, 220, 12, 13, 12, 14, 202, 219, 13, 216, 14, 226, 218, 64, 217, 202, 9, 9, 9, 10, 226, 10, 10, 61, 10, 10, 10, 227, 10, 215, 11, 10, 221, 10, 12, 13, 227, 14, 23, 23, 39, 39, 214, 39, 39, 213, 221, 212, 39, 211, 10, 10, 10, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 66, 66, 66, 67, 67, 67, 68, 108, 108, 108, 114, 210, 222, 232, 208, 207, 68, 206, 205, 204, 135, 222, 232, 203, 201, 200, 222, 197, 196, 195, 193, 114, 192, 191, 114, 189, 66, 187, 114, 67, 186, 135, 185, 108, 135, 184, 183, 181, 135, 179, 178, 176, 174, 173, 172, 171, 170, 169, 68, 68, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 167, 229, 229, 166, 165, 164, 163, 162, 161, 160, 159, 157, 156, 155, 154, 153, 152, 151, 229, 229, 229, 150, 149, 148, 147, 146, 145, 143, 142, 141, 139, 138, 137, 136, 134, 132, 131, 130, 129, 128, 127, 126, 229, 229, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 244, 125, 244, 244, 124, 244, 244, 244, 244, 244, 244, 245, 245, 246, 123, 122, 121, 246, 120, 119, 246, 246, 246, 247, 117, 111, 247, 247, 247, 247, 247, 247, 247, 248, 109, 248, 248, 248, 97, 248, 248, 248, 248, 249, 94, 93, 92, 249, 91, 249, 90, 249, 250, 250, 251, 251, 251, 251, 251, 251, 251, 251, 89, 88, 251, 87, 86, 85, 84, 83, 82, 81, 78, 76, 73, 72, 71, 69, 57, 54, 50, 44, 43, 38, 37, 36, 35, 34, 33, 32, 31, 30, 28, 27, 26, 17, 4, 2, 1, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237 } ; static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr; static char *yy_full_match; static int yy_lp; static int yy_looking_for_trail_begin = 0; static int yy_full_lp; static int *yy_full_state; #define YY_TRAILING_MASK 0x2000 #define YY_TRAILING_HEAD_MASK 0x4000 #define REJECT \ { \ *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \ yy_cp = yy_full_match; /* restore poss. backed-over text */ \ yy_lp = yy_full_lp; /* restore orig. accepting pos. */ \ yy_state_ptr = yy_full_state; /* restore orig. state */ \ yy_current_state = *yy_state_ptr; /* restore curr. state */ \ ++yy_lp; \ goto find_rule; \ } static int yy_more_offset = 0; static int yy_prev_more_offset = 0; #define yymore() (yy_more_offset = yy_flex_strlen( yytext )) #define YY_NEED_STRLEN #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET \ { \ yy_more_offset = yy_prev_more_offset; \ yyleng -= yy_more_offset; \ } #ifndef YYLMAX #define YYLMAX 8192 #endif char yytext[YYLMAX]; char *yytext_ptr; #line 1 "../kimwl.l" #define INITIAL 0 #line 2 "../kimwl.l" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 11 "../kimwl.l" /* * kimwl.l */ #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char kimwl_lAccesSid[] = "@(#)$Id: kimwl.l,v 2.36 1998/01/29 18:04:21 belinfan Rel $"; #endif #line 19 "../kimwl.l" /* comments to suppress known `errors' */ /*SUPPRESS 529*/ /* statement cannot be reached */ /*SUPPRESS 25*/ /* creating a bad pointer during initialization */ #if (defined(SABER) || defined(CODECENTER)) # define lint #endif #line 27 "../kimwl.l" /* WARNING: YYLMAX should be at least 500 * (because some people write real specs ...) * use the BUFSIZ that is defined in as #define BUFSIZ 1024 * this is a no-op on a sun: sun's lex already defines #define YYLMAX BUFSIZ * however, on a hp we get problems: YYLMAX is defined as #define YYLMAX 200 * first get rid of old value: #undef YYLMAX before #define YYLMAX 'our-value' */ #undef YYLMAX #define YYLMAX BUFSIZ /* WARNING: some lexers (like (some versions of?) flex) #define yywrap * which causes problems if we try to define a function for it. * So, we undef it if defined. */ #ifdef yywrap # undef yywrap #endif /* For windows (NT at least) we need to redifine fileno and isatty */ #if defined(_WIN32) && ! defined (__GNUC__) # define fileno _fileno # define isatty _isatty #endif #line 53 "../kimwl.l" #define count(x) counter(x) #line 57 "../kimwl.l" /***************************************************************************/ /* * Name conventions: tokens and states are in CAPITALS * operators are capitalized * */ #define NORMAL 1 #define INCL 2 #define INCLSTART 3 #define CEXPR 4 #define CEXPRDQ 5 #define CEXPRSQ 6 #define C 7 #line 67 "../kimwl.l" /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #ifdef KC_STDC # include #endif #include #include "k.h" #include "kimwy.h" static int cinit_paren_nesting =0; static int cinit_array_nesting =0; static void reset_nestcount KC__P(()); static int eat_comment KC__P(( casestring )); static void counter KC__P(( int )); #line 728 "lex.yy.c" /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap YY_PROTO(( void )); #else extern int yywrap YY_PROTO(( void )); #endif #endif #ifndef YY_NO_UNPUT static void yyunput YY_PROTO(( int c, char *buf_ptr )); #endif #ifndef yytext_ptr static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int )); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen YY_PROTO(( yyconst char * )); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput YY_PROTO(( void )); #else static int input YY_PROTO(( void )); #endif #endif #if YY_STACK_USED static int yy_start_stack_ptr = 0; static int yy_start_stack_depth = 0; static int *yy_start_stack = 0; #ifndef YY_NO_PUSH_STATE static void yy_push_state YY_PROTO(( int new_state )); #endif #ifndef YY_NO_POP_STATE static void yy_pop_state YY_PROTO(( void )); #endif #ifndef YY_NO_TOP_STATE static int yy_top_state YY_PROTO(( void )); #endif #else #define YY_NO_PUSH_STATE 1 #define YY_NO_POP_STATE 1 #define YY_NO_TOP_STATE 1 #endif #ifdef YY_MALLOC_DECL YY_MALLOC_DECL #else #if __STDC__ #ifndef __cplusplus #include #endif #else /* Just try to get by without declaring the routines. This will fail * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) * or sizeof(void*) != sizeof(int). */ #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 8192 #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( yy_current_buffer->yy_is_interactive ) \ { \ int c = '*', n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \ && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) #endif /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL int yylex YY_PROTO(( void )) #endif /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif #define YY_RULE_SETUP \ if ( yyleng > 0 ) \ yy_current_buffer->yy_at_bol = \ (yytext[yyleng - 1] == '\n'); \ YY_USER_ACTION YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; #line 99 "../kimwl.l" #line 884 "lex.yy.c" if ( yy_init ) { yy_init = 0; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! yy_start ) yy_start = 1; /* first start state */ if ( ! yyin ) yyin = stdin; if ( ! yyout ) yyout = stdout; if ( ! yy_current_buffer ) yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); yy_load_buffer_state(); } while ( 1 ) /* loops until end-of-file is reached */ { yy_cp = yy_c_buf_p; /* Support of yytext. */ *yy_cp = yy_hold_char; /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = yy_start; yy_current_state += YY_AT_BOL(); yy_state_ptr = yy_state_buf; *yy_state_ptr++ = yy_current_state; yy_match: do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 238 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; *yy_state_ptr++ = yy_current_state; ++yy_cp; } while ( yy_base[yy_current_state] != 535 ); yy_find_action: yy_current_state = *--yy_state_ptr; yy_lp = yy_accept[yy_current_state]; find_rule: /* we branch to this label when backing up */ for ( ; ; ) /* until we find what rule we matched */ { if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] ) { yy_act = yy_acclist[yy_lp]; if ( yy_act & YY_TRAILING_HEAD_MASK || yy_looking_for_trail_begin ) { if ( yy_act == yy_looking_for_trail_begin ) { yy_looking_for_trail_begin = 0; yy_act &= ~YY_TRAILING_HEAD_MASK; break; } } else if ( yy_act & YY_TRAILING_MASK ) { yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK; yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK; yy_full_match = yy_cp; yy_full_state = yy_state_ptr; yy_full_lp = yy_lp; } else { yy_full_match = yy_cp; yy_full_state = yy_state_ptr; yy_full_lp = yy_lp; break; } ++yy_lp; goto find_rule; } --yy_cp; yy_current_state = *--yy_state_ptr; yy_lp = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; if ( yy_act != YY_END_OF_BUFFER ) { int yyl; for ( yyl = 0; yyl < yyleng; ++yyl ) if ( yytext[yyl] == '\n' ) ++yylineno; } do_action: /* This label is used only to access EOF actions. */ switch ( yy_act ) { /* beginning of action switch */ case 1: YY_RULE_SETUP #line 100 "../kimwl.l" { count(0); } YY_BREAK case 2: YY_RULE_SETUP #line 101 "../kimwl.l" { count(1); return T_PERCENTUVIEW; } YY_BREAK case 3: YY_RULE_SETUP #line 102 "../kimwl.l" { count(1); return T_PERCENTUVIEW; } YY_BREAK case 4: YY_RULE_SETUP #line 103 "../kimwl.l" { count(1); return T_PERCENTRVIEW; } YY_BREAK case 5: YY_RULE_SETUP #line 104 "../kimwl.l" { count(1); return T_PERCENTSTORAGECLASS; } YY_BREAK case 6: YY_RULE_SETUP #line 105 "../kimwl.l" { count(1); BEGIN INCLSTART; return T_INCLUDESTART; } YY_BREAK case 7: YY_RULE_SETUP #line 106 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_ID;} YY_BREAK case 8: YY_RULE_SETUP #line 107 "../kimwl.l" { count(0); } YY_BREAK case 9: YY_RULE_SETUP #line 108 "../kimwl.l" { count(1); BEGIN INCL; } YY_BREAK case 10: YY_RULE_SETUP #line 109 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_INCLUDE; } YY_BREAK case 11: YY_RULE_SETUP #line 110 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_INCLUDE; } YY_BREAK case 12: YY_RULE_SETUP #line 111 "../kimwl.l" { count(1); return yytext[0]; } YY_BREAK case 13: YY_RULE_SETUP #line 112 "../kimwl.l" { count(1); BEGIN NORMAL; return T_INCLUDEEND; } YY_BREAK case 14: YY_RULE_SETUP #line 113 "../kimwl.l" { int no_of_newlines; count(1); no_of_newlines = eat_comment(pg_filename); yylval.yt_int = no_of_newlines; return T_CNEWLINES; } YY_BREAK case 15: YY_RULE_SETUP #line 116 "../kimwl.l" { count(1); eat_comment(pg_filename); } YY_BREAK case 16: YY_RULE_SETUP #line 117 "../kimwl.l" { count(1); return T_ARROW; } YY_BREAK case 17: YY_RULE_SETUP #line 118 "../kimwl.l" { count(1); return T_DEFAULT; } YY_BREAK case 18: YY_RULE_SETUP #line 119 "../kimwl.l" { count(1); yylval.yt_int = atoi(yytext); return T_INT; } YY_BREAK case 19: YY_RULE_SETUP #line 120 "../kimwl.l" { count(1); return T_LIST; } YY_BREAK case 20: YY_RULE_SETUP #line 121 "../kimwl.l" { count(1); return T_STATIC; } YY_BREAK case 21: YY_RULE_SETUP #line 122 "../kimwl.l" { count(1); return T_AUTO; } YY_BREAK case 22: YY_RULE_SETUP #line 123 "../kimwl.l" { count(1); return T_REGISTER; } YY_BREAK case 23: YY_RULE_SETUP #line 124 "../kimwl.l" { count(1); return T_EXTERN; } YY_BREAK case 24: YY_RULE_SETUP #line 125 "../kimwl.l" { count(1); return T_TYPEDEF; } YY_BREAK case 25: YY_RULE_SETUP #line 126 "../kimwl.l" { count(1); return T_CONST; } YY_BREAK case 26: YY_RULE_SETUP #line 127 "../kimwl.l" { count(1); return T_VOLATILE; } YY_BREAK case 27: YY_RULE_SETUP #line 128 "../kimwl.l" { count(1); return T_DOTDOTDOT; } YY_BREAK case 28: YY_RULE_SETUP #line 129 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_ID ; } YY_BREAK case 29: YY_RULE_SETUP #line 130 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_CEXPRESSION; } YY_BREAK case 30: YY_RULE_SETUP #line 131 "../kimwl.l" { count(1); yylval.yt_int = atoi(yytext+1); return T_DOLLARVAR; } YY_BREAK case 31: YY_RULE_SETUP #line 132 "../kimwl.l" { count(1); return T_UNPBLOCKSTART; } YY_BREAK case 32: YY_RULE_SETUP #line 133 "../kimwl.l" { count(1); return T_UNPBLOCKEND; } YY_BREAK case 33: YY_RULE_SETUP #line 134 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_CEXPRESSION; } YY_BREAK case 34: YY_RULE_SETUP #line 135 "../kimwl.l" { count(1); return yytext[0]; } YY_BREAK case 35: YY_RULE_SETUP #line 136 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring("\\"); return T_CEXPRESSION; } YY_BREAK case 36: YY_RULE_SETUP #line 137 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring("\\\\"); return T_CEXPRESSION; } YY_BREAK case 37: YY_RULE_SETUP #line 138 "../kimwl.l" { count(1); BEGIN CEXPRDQ; return yytext[0]; } YY_BREAK case 38: YY_RULE_SETUP #line 139 "../kimwl.l" { count(1); BEGIN CEXPRSQ; return yytext[0]; } YY_BREAK case 39: YY_RULE_SETUP #line 140 "../kimwl.l" { count(1); BEGIN NORMAL; reset_nestcount(); return yytext[0]; } YY_BREAK case 40: YY_RULE_SETUP #line 141 "../kimwl.l" { count(1); return yytext[0]; } YY_BREAK case 41: YY_RULE_SETUP #line 142 "../kimwl.l" { count(1); cinit_paren_nesting++; yylval.yt_casestring = mkcasestring("("); return yytext[0]; } YY_BREAK case 42: YY_RULE_SETUP #line 143 "../kimwl.l" { count(1); if (cinit_paren_nesting == 0) { BEGIN NORMAL; reset_nestcount(); return yytext[0]; } else { cinit_paren_nesting--; yylval.yt_casestring = mkcasestring(")"); return yytext[0]; } } YY_BREAK case 43: YY_RULE_SETUP #line 148 "../kimwl.l" { count(1); cinit_array_nesting++; yylval.yt_casestring = mkcasestring("["); return yytext[0]; } YY_BREAK case 44: YY_RULE_SETUP #line 149 "../kimwl.l" { count(1); if (cinit_array_nesting == 0) { BEGIN NORMAL; reset_nestcount(); return yytext[0]; } else { cinit_array_nesting--; yylval.yt_casestring = mkcasestring("]"); return yytext[0]; } } YY_BREAK case 45: YY_RULE_SETUP #line 154 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_CEXPRESSION; } YY_BREAK case 46: YY_RULE_SETUP #line 155 "../kimwl.l" { count(1); BEGIN CEXPR; return yytext[0]; } YY_BREAK case 47: YY_RULE_SETUP #line 156 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring("\\\""); return T_CEXPRESSION; } YY_BREAK case 48: YY_RULE_SETUP #line 157 "../kimwl.l" { count(1); BEGIN CEXPR; return yytext[0]; } YY_BREAK case 49: YY_RULE_SETUP #line 158 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring("\\'"); return T_CEXPRESSION; } YY_BREAK case 50: YY_RULE_SETUP #line 159 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_CEXPRESSION; } YY_BREAK case 51: YY_RULE_SETUP #line 160 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring("$"); return T_CLINE; } YY_BREAK case 52: YY_RULE_SETUP #line 161 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring("\\\\"); return T_CLINE; } YY_BREAK case 53: YY_RULE_SETUP #line 162 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring("\\"); return T_CLINE ; } YY_BREAK case 54: YY_RULE_SETUP #line 163 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring("{"); /*WARNING-NO LONGER SUPPORTED*/ return T_CLINE ; } YY_BREAK case 55: YY_RULE_SETUP #line 164 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring("}"); /*WARNING-NO LONGER SUPPORTED*/ return T_CLINE ; } YY_BREAK case 56: YY_RULE_SETUP #line 165 "../kimwl.l" { count(1); if (strcmp(yytext, "$") == 0) return yytext[0]; yylval.yt_int = atoi(yytext+1); return T_DOLLARVAR; } YY_BREAK case 57: YY_RULE_SETUP #line 170 "../kimwl.l" { count(1); return T_FOREACH_AFTER; } YY_BREAK case 58: YY_RULE_SETUP #line 174 "../kimwl.l" { count(1); if (strcmp(yytext, "foreach") ==0) { return T_FOREACH; } else if (strcmp(yytext, "afterforeach") ==0) { return T_FOREACH_AFTER; } else if (strcmp(yytext, "with") ==0) { return T_WITH; } else { yylval.yt_casestring = mkcasestring(yytext); return T_CLINE ; } } YY_BREAK case 59: YY_RULE_SETUP #line 185 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_CLINE; } YY_BREAK case 60: YY_RULE_SETUP #line 186 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_CLINE; } YY_BREAK case 61: YY_RULE_SETUP #line 187 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_CLINE; } YY_BREAK case 62: YY_RULE_SETUP #line 188 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_CLINE; } YY_BREAK case 63: YY_RULE_SETUP #line 189 "../kimwl.l" { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_CLINE; } YY_BREAK case 64: YY_RULE_SETUP #line 190 "../kimwl.l" { count(1); return yytext[0]; } YY_BREAK case 65: YY_RULE_SETUP #line 192 "../kimwl.l" ECHO; YY_BREAK #line 1351 "lex.yy.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(NORMAL): case YY_STATE_EOF(INCL): case YY_STATE_EOF(INCLSTART): case YY_STATE_EOF(CEXPR): case YY_STATE_EOF(CEXPRDQ): case YY_STATE_EOF(CEXPRSQ): case YY_STATE_EOF(C): yyterminate(); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yy_hold_char; YY_RESTORE_YY_MORE_OFFSET if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between yy_current_buffer and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ yy_n_chars = yy_current_buffer->yy_n_chars; yy_current_buffer->yy_input_file = yyin; yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) { /* This was really a NUL. */ yy_state_type yy_next_state; yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state(); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = yytext_ptr + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = yy_c_buf_p; goto yy_find_action; } } else switch ( yy_get_next_buffer() ) { case EOB_ACT_END_OF_FILE: { yy_did_buffer_switch_on_eof = 0; if ( yywrap() ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! yy_did_buffer_switch_on_eof ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state(); yy_cp = yy_c_buf_p; yy_bp = yytext_ptr + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: yy_c_buf_p = &yy_current_buffer->yy_ch_buf[yy_n_chars]; yy_current_state = yy_get_previous_state(); yy_cp = yy_c_buf_p; yy_bp = yytext_ptr + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer() { register char *dest = yy_current_buffer->yy_ch_buf; register char *source = yytext_ptr; register int number_to_move, i; int ret_val; if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( yy_current_buffer->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1; for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ yy_n_chars = 0; else { int num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ #ifdef YY_USES_REJECT YY_FATAL_ERROR( "input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); #else /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = yy_current_buffer; int yy_c_buf_p_offset = (int) (yy_c_buf_p - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ yy_flex_realloc( (void *) b->yy_ch_buf, b->yy_buf_size + 2 ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1; #endif } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), yy_n_chars, num_to_read ); } if ( yy_n_chars == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart( yyin ); } else { ret_val = EOB_ACT_LAST_MATCH; yy_current_buffer->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; yy_n_chars += number_to_move; yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state() { register yy_state_type yy_current_state; register char *yy_cp; yy_current_state = yy_start; yy_current_state += YY_AT_BOL(); yy_state_ptr = yy_state_buf; *yy_state_ptr++ = yy_current_state; for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 238 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; *yy_state_ptr++ = yy_current_state; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ #ifdef YY_USE_PROTOS static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state ) #else static yy_state_type yy_try_NUL_trans( yy_current_state ) yy_state_type yy_current_state; #endif { register int yy_is_jam; register YY_CHAR yy_c = 1; while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 238 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 237); if ( ! yy_is_jam ) *yy_state_ptr++ = yy_current_state; return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_UNPUT #ifdef YY_USE_PROTOS static void yyunput( int c, register char *yy_bp ) #else static void yyunput( c, yy_bp ) int c; register char *yy_bp; #endif { register char *yy_cp = yy_c_buf_p; /* undo effects of setting up yytext */ *yy_cp = yy_hold_char; if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ register int number_to_move = yy_n_chars + 2; register char *dest = &yy_current_buffer->yy_ch_buf[ yy_current_buffer->yy_buf_size + 2]; register char *source = &yy_current_buffer->yy_ch_buf[number_to_move]; while ( source > yy_current_buffer->yy_ch_buf ) *--dest = *--source; yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); yy_n_chars = yy_current_buffer->yy_buf_size; if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); } *--yy_cp = (char) c; if ( c == '\n' ) --yylineno; yytext_ptr = yy_bp; yy_hold_char = *yy_cp; yy_c_buf_p = yy_cp; } #endif /* ifndef YY_NO_UNPUT */ #ifdef __cplusplus static int yyinput() #else static int input() #endif { int c; *yy_c_buf_p = yy_hold_char; if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) /* This was really a NUL. */ *yy_c_buf_p = '\0'; else { /* need more input */ int offset = yy_c_buf_p - yytext_ptr; ++yy_c_buf_p; switch ( yy_get_next_buffer() ) { case EOB_ACT_END_OF_FILE: { if ( yywrap() ) { yy_c_buf_p = yytext_ptr + offset; return EOF; } if ( ! yy_did_buffer_switch_on_eof ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); #else return input(); #endif } case EOB_ACT_CONTINUE_SCAN: yy_c_buf_p = yytext_ptr + offset; break; case EOB_ACT_LAST_MATCH: #ifdef __cplusplus YY_FATAL_ERROR( "unexpected last match in yyinput()" ); #else YY_FATAL_ERROR( "unexpected last match in input()" ); #endif } } } c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */ *yy_c_buf_p = '\0'; /* preserve yytext */ yy_hold_char = *++yy_c_buf_p; yy_current_buffer->yy_at_bol = (c == '\n'); if ( yy_current_buffer->yy_at_bol ) ++yylineno; return c; } #ifdef YY_USE_PROTOS void yyrestart( FILE *input_file ) #else void yyrestart( input_file ) FILE *input_file; #endif { if ( ! yy_current_buffer ) yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); yy_init_buffer( yy_current_buffer, input_file ); yy_load_buffer_state(); } #ifdef YY_USE_PROTOS void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) #else void yy_switch_to_buffer( new_buffer ) YY_BUFFER_STATE new_buffer; #endif { if ( yy_current_buffer == new_buffer ) return; if ( yy_current_buffer ) { /* Flush out information for old buffer. */ *yy_c_buf_p = yy_hold_char; yy_current_buffer->yy_buf_pos = yy_c_buf_p; yy_current_buffer->yy_n_chars = yy_n_chars; } yy_current_buffer = new_buffer; yy_load_buffer_state(); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ yy_did_buffer_switch_on_eof = 1; } #ifdef YY_USE_PROTOS void yy_load_buffer_state( void ) #else void yy_load_buffer_state() #endif { yy_n_chars = yy_current_buffer->yy_n_chars; yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; yyin = yy_current_buffer->yy_input_file; yy_hold_char = *yy_c_buf_p; } #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_create_buffer( FILE *file, int size ) #else YY_BUFFER_STATE yy_create_buffer( file, size ) FILE *file; int size; #endif { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; yy_init_buffer( b, file ); return b; } #ifdef YY_USE_PROTOS void yy_delete_buffer( YY_BUFFER_STATE b ) #else void yy_delete_buffer( b ) YY_BUFFER_STATE b; #endif { if ( ! b ) return; if ( b == yy_current_buffer ) yy_current_buffer = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) yy_flex_free( (void *) b->yy_ch_buf ); yy_flex_free( (void *) b ); } #ifndef YY_ALWAYS_INTERACTIVE #ifndef YY_NEVER_INTERACTIVE extern int isatty YY_PROTO(( int )); #endif #endif #ifdef YY_USE_PROTOS void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) #else void yy_init_buffer( b, file ) YY_BUFFER_STATE b; FILE *file; #endif { yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; #if YY_ALWAYS_INTERACTIVE b->yy_is_interactive = 1; #else #if YY_NEVER_INTERACTIVE b->yy_is_interactive = 0; #else b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; #endif #endif } #ifdef YY_USE_PROTOS void yy_flush_buffer( YY_BUFFER_STATE b ) #else void yy_flush_buffer( b ) YY_BUFFER_STATE b; #endif { b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == yy_current_buffer ) yy_load_buffer_state(); } #ifndef YY_NO_SCAN_BUFFER #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size ) #else YY_BUFFER_STATE yy_scan_buffer( base, size ) char *base; yy_size_t size; #endif { YY_BUFFER_STATE b; if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return 0; b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = 0; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; yy_switch_to_buffer( b ); return b; } #endif #ifndef YY_NO_SCAN_STRING #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_scan_string( yyconst char *str ) #else YY_BUFFER_STATE yy_scan_string( str ) yyconst char *str; #endif { int len; for ( len = 0; str[len]; ++len ) ; return yy_scan_bytes( str, len ); } #endif #ifndef YY_NO_SCAN_BYTES #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len ) #else YY_BUFFER_STATE yy_scan_bytes( bytes, len ) yyconst char *bytes; int len; #endif { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = len + 2; buf = (char *) yy_flex_alloc( n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < len; ++i ) buf[i] = bytes[i]; buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; b = yy_scan_buffer( buf, n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #endif #ifndef YY_NO_PUSH_STATE #ifdef YY_USE_PROTOS static void yy_push_state( int new_state ) #else static void yy_push_state( new_state ) int new_state; #endif { if ( yy_start_stack_ptr >= yy_start_stack_depth ) { yy_size_t new_size; yy_start_stack_depth += YY_START_STACK_INCR; new_size = yy_start_stack_depth * sizeof( int ); if ( ! yy_start_stack ) yy_start_stack = (int *) yy_flex_alloc( new_size ); else yy_start_stack = (int *) yy_flex_realloc( (void *) yy_start_stack, new_size ); if ( ! yy_start_stack ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); } yy_start_stack[yy_start_stack_ptr++] = YY_START; BEGIN(new_state); } #endif #ifndef YY_NO_POP_STATE static void yy_pop_state() { if ( --yy_start_stack_ptr < 0 ) YY_FATAL_ERROR( "start-condition stack underflow" ); BEGIN(yy_start_stack[yy_start_stack_ptr]); } #endif #ifndef YY_NO_TOP_STATE static int yy_top_state() { return yy_start_stack[yy_start_stack_ptr - 1]; } #endif #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif #ifdef YY_USE_PROTOS static void yy_fatal_error( yyconst char msg[] ) #else static void yy_fatal_error( msg ) char msg[]; #endif { (void) fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ yytext[yyleng] = yy_hold_char; \ yy_c_buf_p = yytext + n; \ yy_hold_char = *yy_c_buf_p; \ *yy_c_buf_p = '\0'; \ yyleng = n; \ } \ while ( 0 ) /* Internal utility routines. */ #ifndef yytext_ptr #ifdef YY_USE_PROTOS static void yy_flex_strncpy( char *s1, yyconst char *s2, int n ) #else static void yy_flex_strncpy( s1, s2, n ) char *s1; yyconst char *s2; int n; #endif { register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN #ifdef YY_USE_PROTOS static int yy_flex_strlen( yyconst char *s ) #else static int yy_flex_strlen( s ) yyconst char *s; #endif { register int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif #ifdef YY_USE_PROTOS static void *yy_flex_alloc( yy_size_t size ) #else static void *yy_flex_alloc( size ) yy_size_t size; #endif { return (void *) malloc( size ); } #ifdef YY_USE_PROTOS static void *yy_flex_realloc( void *ptr, yy_size_t size ) #else static void *yy_flex_realloc( ptr, size ) void *ptr; yy_size_t size; #endif { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc( (char *) ptr, size ); } #ifdef YY_USE_PROTOS static void yy_flex_free( void *ptr ) #else static void yy_flex_free( ptr ) void *ptr; #endif { free( ptr ); } #if YY_MAIN int main() { yylex(); return 0; } #endif #line 192 "../kimwl.l" static void reset_nestcount() { /* WARNING if these are not == 0 */ if (cinit_paren_nesting != 0) { v_report( NonFatal( PosNoFileLine(), Problem1S( "opening parenthesis '(' was not closed" ))); } if (cinit_array_nesting != 0) { v_report( NonFatal( PosNoFileLine(), Problem1S( "opening bracket '[' was not closed" ))); } cinit_paren_nesting = 0; cinit_array_nesting = 0; } void do_NORMAL() { BEGIN NORMAL; reset_nestcount(); } void do_CEXPR() { BEGIN CEXPR; } void do_CEXPRDQ() { BEGIN CEXPRDQ; } void do_CEXPRSQ() { BEGIN CEXPRSQ; } void do_C() { BEGIN C; } int yywrap() { return 1; } #ifdef __cplusplus # define myinput yyinput #else # define myinput input #endif static int eat_comment #ifdef KC_USE_PROTOTYPES (casestring start_filename) #else (start_filename) casestring start_filename; #endif { char c1, c2; /* comment string */ int nest; int no_of_newlines = 0; int start_lineno = pg_lineno; for(nest=1, c2 = ' ';;){ c1 = c2; c2 = myinput(); if (c2 == '\n') { pg_lineno++; pg_column = 0; pg_charpos ++; } else if (c2 == '\t') { pg_column += 8 - (pg_column % 8); pg_charpos += 8 - (pg_charpos % 8); } else if (c2 == 0) { v_report( Fatal( FileLine( start_filename, start_lineno ), Problem1S( "start of comment containing unexpected eof" ))); } else { pg_column++; pg_charpos ++; } if (c1 == '/' && c2 == '*') nest++; else if (c1 == '*' && c2 == '/') nest--; if (nest <= 0) break; } no_of_newlines = pg_lineno - start_lineno; return no_of_newlines; } /*ARGSUSED*/ static void counter #ifdef KC_USE_PROTOTYPES (int notwhite) #else (notwhite) int notwhite; #endif { register char *s; #ifdef MYLEXDEBUG if (notwhite) printf ("symbol found: %s\n", yytext); #endif for (s = yytext; *s; s++) if (*s == '\n') { pg_column = 0; pg_lineno++; pg_charpos ++; } else if (*s == '\t') { pg_column += 8 - (pg_column % 8); pg_charpos += 8 - (pg_charpos % 8); } else { pg_column++; pg_charpos ++; } } /* ***************************** * Parse error (and recovery) ***************************** */ #include "error.h" extern int yychar; void yyerror #ifdef KC_USE_PROTOTYPES (char *s) #else (s) char *s; #endif { if (strlen(yytext) > 0) { v_report( NonFatal( PosNoFileLine(), Problem4S( s, "\n\ttoken last read was: `", yytext, "'"))); } else { v_report( NonFatal( PosNoFileLine(), Problem1S( s ))); } /* v_report( NonFatal( NoFileLine(), Problem3S1int1S( "yytext=`", yytext, "'; symbol was (", yychar, ")" ))); */ } void yyrecovermsg #ifdef KC_USE_PROTOTYPES (char *msg) #else (msg) char *msg; #endif { v_report( NonFatal( NoFileLine(), Problem2S( "Parsing Recovery:", msg ))); } #ifndef FLEX_SCANNER void yyrestart #ifdef KC_USE_PROTOTYPES (FILE *input_file) #else ( input_file ) FILE *input_file; #endif {} #endif kimwitu-4.6.1.orig/src/kimwl.l0100644000176100001440000002513607076113221015550 0ustar debacleusers%{ /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ %} %{ /* * kimwl.l */ #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char kimwl_lAccesSid[] = "@(#)$Id: kimwl.l,v 2.36 1998/01/29 18:04:21 belinfan Rel $"; #endif %} %{ /* comments to suppress known `errors' */ /*SUPPRESS 529*/ /* statement cannot be reached */ /*SUPPRESS 25*/ /* creating a bad pointer during initialization */ #if (defined(SABER) || defined(CODECENTER)) # define lint #endif %} %{ /* WARNING: YYLMAX should be at least 500 * (because some people write real specs ...) * use the BUFSIZ that is defined in as #define BUFSIZ 1024 * this is a no-op on a sun: sun's lex already defines #define YYLMAX BUFSIZ * however, on a hp we get problems: YYLMAX is defined as #define YYLMAX 200 * first get rid of old value: #undef YYLMAX before #define YYLMAX 'our-value' */ #undef YYLMAX #define YYLMAX BUFSIZ /* WARNING: some lexers (like (some versions of?) flex) #define yywrap * which causes problems if we try to define a function for it. * So, we undef it if defined. */ #ifdef yywrap # undef yywrap #endif /* For windows (NT at least) we need to redifine fileno and isatty */ #if defined(_WIN32) && ! defined (__GNUC__) # define fileno _fileno # define isatty _isatty #endif %} %{ #define count(x) counter(x) %} %{ /***************************************************************************/ /* * Name conventions: tokens and states are in CAPITALS * operators are capitalized * */ %} %start NORMAL INCL INCLSTART CEXPR CEXPRDQ CEXPRSQ C %{ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #ifdef KC_STDC # include #endif #include #include "k.h" #include "kimwy.h" static int cinit_paren_nesting =0; static int cinit_array_nesting =0; static void reset_nestcount KC__P(()); static int eat_comment KC__P(( casestring )); static void counter KC__P(( int )); %} alpha [a-zA-Z] digit [0-9] special [\_] ident (({alpha}|{special})({alpha}|{digit}|{special})*) nonident [^a-zA-Z0-9\_] int ({digit}+) exp ([Ee][-+]?{digit}+) float ([-+]?{digit}+\.?{digit}*) ws [\ \n\t\v\f] %% {ws} { count(0); } ^\%view { count(1); return T_PERCENTUVIEW; } ^\%uview { count(1); return T_PERCENTUVIEW; } ^\%rview { count(1); return T_PERCENTRVIEW; } ^\%storageclass { count(1); return T_PERCENTSTORAGECLASS; } ^\%\{[ \t]* { count(1); BEGIN INCLSTART; return T_INCLUDESTART; } {ident} { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_ID;} [ \t] { count(0); } \n { count(1); BEGIN INCL; } [^%\n]+ { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_INCLUDE; } \% { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_INCLUDE; } \n { count(1); return yytext[0]; } ^\%\}\n { count(1); BEGIN NORMAL; return T_INCLUDEEND; } \/\* { int no_of_newlines; count(1); no_of_newlines = eat_comment(pg_filename); yylval.yt_int = no_of_newlines; return T_CNEWLINES; } \/\* { count(1); eat_comment(pg_filename); } \-\> { count(1); return T_ARROW; } default { count(1); return T_DEFAULT; } \-?{int} { count(1); yylval.yt_int = atoi(yytext); return T_INT; } list { count(1); return T_LIST; } static { count(1); return T_STATIC; } auto { count(1); return T_AUTO; } register { count(1); return T_REGISTER; } extern { count(1); return T_EXTERN; } typedef { count(1); return T_TYPEDEF; } const { count(1); return T_CONST; } volatile { count(1); return T_VOLATILE; } \.\.\. { count(1); return T_DOTDOTDOT; } {ident} { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_ID ; } [^\n\\"';,\(\)\[\]$]+ { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_CEXPRESSION; } \${int} { count(1); yylval.yt_int = atoi(yytext+1); return T_DOLLARVAR; } \$\{ { count(1); return T_UNPBLOCKSTART; } \$\} { count(1); return T_UNPBLOCKEND; } \$ { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_CEXPRESSION; } \n { count(1); return yytext[0]; } \\ { count(1); yylval.yt_casestring = mkcasestring("\\"); return T_CEXPRESSION; } \\\\ { count(1); yylval.yt_casestring = mkcasestring("\\\\"); return T_CEXPRESSION; } \" { count(1); BEGIN CEXPRDQ; return yytext[0]; } ' { count(1); BEGIN CEXPRSQ; return yytext[0]; } ; { count(1); BEGIN NORMAL; reset_nestcount(); return yytext[0]; } \, { count(1); return yytext[0]; } \( { count(1); cinit_paren_nesting++; yylval.yt_casestring = mkcasestring("("); return yytext[0]; } \) { count(1); if (cinit_paren_nesting == 0) { BEGIN NORMAL; reset_nestcount(); return yytext[0]; } else { cinit_paren_nesting--; yylval.yt_casestring = mkcasestring(")"); return yytext[0]; } } \[ { count(1); cinit_array_nesting++; yylval.yt_casestring = mkcasestring("["); return yytext[0]; } \] { count(1); if (cinit_array_nesting == 0) { BEGIN NORMAL; reset_nestcount(); return yytext[0]; } else { cinit_array_nesting--; yylval.yt_casestring = mkcasestring("]"); return yytext[0]; } } [^\n\\"]+ { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_CEXPRESSION; } \" { count(1); BEGIN CEXPR; return yytext[0]; } \\\" { count(1); yylval.yt_casestring = mkcasestring("\\\""); return T_CEXPRESSION; } ' { count(1); BEGIN CEXPR; return yytext[0]; } \\' { count(1); yylval.yt_casestring = mkcasestring("\\'"); return T_CEXPRESSION; } [^\n\\']+ { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_CEXPRESSION; } \$\$ { count(1); yylval.yt_casestring = mkcasestring("$"); return T_CLINE; } \\\\ { count(1); yylval.yt_casestring = mkcasestring("\\\\"); return T_CLINE; } \\ { count(1); yylval.yt_casestring = mkcasestring("\\"); return T_CLINE ; } \$\{ { count(1); yylval.yt_casestring = mkcasestring("{"); /*WARNING-NO LONGER SUPPORTED*/ return T_CLINE ; } \$\} { count(1); yylval.yt_casestring = mkcasestring("}"); /*WARNING-NO LONGER SUPPORTED*/ return T_CLINE ; } \$[0-9]* { count(1); if (strcmp(yytext, "$") == 0) return yytext[0]; yylval.yt_int = atoi(yytext+1); return T_DOLLARVAR; } {ws}*afterforeach/{nonident} { count(1); return T_FOREACH_AFTER; } {ident} { count(1); if (strcmp(yytext, "foreach") ==0) { return T_FOREACH; } else if (strcmp(yytext, "afterforeach") ==0) { return T_FOREACH_AFTER; } else if (strcmp(yytext, "with") ==0) { return T_WITH; } else { yylval.yt_casestring = mkcasestring(yytext); return T_CLINE ; } } [^\n{}w/"'a-zA-Z_\$\\]+ { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_CLINE; } \/ { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_CLINE; } \/\*[ \t]*EMPTY[ \t]*\*\/ { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_CLINE; } \/\*[ \t]*NOTREACHED[ \t]*\*\/ { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_CLINE; } \/\*[ \t]*SUPPRESS[ \t]*[0-9]+[ \t]*\*\/ { count(1); yylval.yt_casestring = mkcasestring(yytext); return T_CLINE; } . { count(1); return yytext[0]; } %% static void reset_nestcount() { /* WARNING if these are not == 0 */ if (cinit_paren_nesting != 0) { v_report( NonFatal( PosNoFileLine(), Problem1S( "opening parenthesis '(' was not closed" ))); } if (cinit_array_nesting != 0) { v_report( NonFatal( PosNoFileLine(), Problem1S( "opening bracket '[' was not closed" ))); } cinit_paren_nesting = 0; cinit_array_nesting = 0; } void do_NORMAL() { BEGIN NORMAL; reset_nestcount(); } void do_CEXPR() { BEGIN CEXPR; } void do_CEXPRDQ() { BEGIN CEXPRDQ; } void do_CEXPRSQ() { BEGIN CEXPRSQ; } void do_C() { BEGIN C; } int yywrap() { return 1; } #ifdef __cplusplus # define myinput yyinput #else # define myinput input #endif static int eat_comment #ifdef KC_USE_PROTOTYPES (casestring start_filename) #else (start_filename) casestring start_filename; #endif { char c1, c2; /* comment string */ int nest; int no_of_newlines = 0; int start_lineno = pg_lineno; for(nest=1, c2 = ' ';;){ c1 = c2; c2 = myinput(); if (c2 == '\n') { pg_lineno++; pg_column = 0; pg_charpos ++; } else if (c2 == '\t') { pg_column += 8 - (pg_column % 8); pg_charpos += 8 - (pg_charpos % 8); } else if (c2 == 0) { v_report( Fatal( FileLine( start_filename, start_lineno ), Problem1S( "start of comment containing unexpected eof" ))); } else { pg_column++; pg_charpos ++; } if (c1 == '/' && c2 == '*') nest++; else if (c1 == '*' && c2 == '/') nest--; if (nest <= 0) break; } no_of_newlines = pg_lineno - start_lineno; return no_of_newlines; } /*ARGSUSED*/ static void counter #ifdef KC_USE_PROTOTYPES (int notwhite) #else (notwhite) int notwhite; #endif { register char *s; #ifdef MYLEXDEBUG if (notwhite) printf ("symbol found: %s\n", yytext); #endif for (s = yytext; *s; s++) if (*s == '\n') { pg_column = 0; pg_lineno++; pg_charpos ++; } else if (*s == '\t') { pg_column += 8 - (pg_column % 8); pg_charpos += 8 - (pg_charpos % 8); } else { pg_column++; pg_charpos ++; } } /* ***************************** * Parse error (and recovery) ***************************** */ #include "error.h" extern int yychar; void yyerror #ifdef KC_USE_PROTOTYPES (char *s) #else (s) char *s; #endif { if (strlen(yytext) > 0) { v_report( NonFatal( PosNoFileLine(), Problem4S( s, "\n\ttoken last read was: `", yytext, "'"))); } else { v_report( NonFatal( PosNoFileLine(), Problem1S( s ))); } /* v_report( NonFatal( NoFileLine(), Problem3S1int1S( "yytext=`", yytext, "'; symbol was (", yychar, ")" ))); */ } void yyrecovermsg #ifdef KC_USE_PROTOTYPES (char *msg) #else (msg) char *msg; #endif { v_report( NonFatal( NoFileLine(), Problem2S( "Parsing Recovery:", msg ))); } #ifndef FLEX_SCANNER void yyrestart #ifdef KC_USE_PROTOTYPES (FILE *input_file) #else ( input_file ) FILE *input_file; #endif {} #endif kimwitu-4.6.1.orig/src/kimwy.c0100644000176100001440000027551107076113234015564 0ustar debacleusers /* A Bison parser, made from ../kimwy.y by GNU Bison version 1.25 */ #define YYBISON 1 /* Identify Bison output. */ #define T_ID 258 #define T_INT 259 #define T_CNEWLINES 260 #define T_CLINE 261 #define T_CEXPRESSION 262 #define T_DOLLARVAR 263 #define T_INCLUDE 264 #define T_INCLUDESTART 265 #define T_INCLUDEEND 266 #define T_LIST 267 #define T_ARROW 268 #define T_STATIC 269 #define T_WITH 270 #define T_FOREACH 271 #define T_FOREACH_AFTER 272 #define T_DEFAULT 273 #define T_UNPBLOCKSTART 274 #define T_UNPBLOCKEND 275 #define T_PERCENTRVIEW 276 #define T_PERCENTUVIEW 277 #define T_PERCENTSTORAGECLASS 278 #define T_AUTO 279 #define T_REGISTER 280 #define T_EXTERN 281 #define T_TYPEDEF 282 #define T_CONST 283 #define T_VOLATILE 284 #define T_DOTDOTDOT 285 #line 1 "../kimwy.y" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 10 "../kimwy.y" /* * kimwy.y */ #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char kimwy_yAccesSid[] = "@(#)$Id: kimwy.y,v 2.41 1998/01/29 18:04:21 belinfan Rel $"; #endif #line 19 "../kimwy.y" #ifdef BISON_RECOVER /* Note that setting YYDEBUG is required even if you do not want to * set the yydebug variable because we use the symbol strings in * `yytname' for initialising costs and also for error messages. */ #define YYDEBUG 1 #define yyinsertcost(token) (token[0]=='\''?1:strlen(token)) #define yydeletecost(token) (token[0]=='\''?1:strlen(token)) #endif /* BISON_RECOVER */ #line 32 "../kimwy.y" /***************************************************************************/ /* * Name conventions: tokens are in CAPITALS * nonterminals are in lowercase * operators are capitalized * */ #line 41 "../kimwy.y" /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #ifdef KC_STDC # include /* for malloc and free */ #endif #include /* for strcat */ /* For windows (NT at least) we need to redifine alloca */ #if defined(_WIN32) && ! defined (__GNUC__) # define alloca _alloca # include #endif #include "k.h" #include "parse.h" #include "extocc.h" #include "defocc.h" #include "util.h" /* for the v_add_to routines */ #include "rk.h" /* for the rewrite_patternchains routine */ static ID pl_phylum; /* local kimwy.y var */ static withexpressions pl_withvariables; /* local kimwy.y var */ static withexpressionsstack pl_withvariablesstack; /* local kimwy.y var */ static idCexpressionsstack pl_idCexpressionsstack; /* local kimwy.y var */ static filelinestack pl_filelinestack; /* local kimwy.y var */ static nooperatorsstack pl_nooperatorsstack; /* local kimwy.y var */ static int non_default_outmostpattern = 0; /* local kimwy.y var */ #define dollar_mark_set() (!eq_withexpressions(pl_withvariables, Nilwithexpressions())) #define do_MainC() do { if ( dollar_mark_set() ) do_NORMAL(); else do_C(); } while(kc_zero_constant) extern void do_NORMAL(); extern void do_CEXPR(); extern void do_CEXPRDQ(); extern void do_CEXPRSQ(); extern void do_C(); extern void yyerror KC__P((char*)); extern int yylex(); #define pf_setfileline(x) do { (x)->file = pg_filename; \ (x)->line = pg_lineno; \ } while(kc_zero_constant) #define pf_pushfileline() pl_filelinestack = Consfilelinestack( FileLine( pg_filename, pg_lineno ), pl_filelinestack ) #define pf_setstacktopfileline(x) do { (x)->file = pl_filelinestack->u.Consfilelinestack.fileline_1->u.FileLine.casestring_1; \ (x)->line = pl_filelinestack->u.Consfilelinestack.fileline_1->u.FileLine.int_1; \ } while(kc_zero_constant) #define pf_topfileline() (pl_filelinestack->u.Consfilelinestack.fileline_1) #define pf_popfileline() do { filelinestack tmp_pl_filelinestack = pl_filelinestack; \ pl_filelinestack = pl_filelinestack->u.Consfilelinestack.filelinestack_1; \ free_fileline( tmp_pl_filelinestack->u.Consfilelinestack.fileline_1, True ); \ free_filelinestack( tmp_pl_filelinestack, False ); \ } while(kc_zero_constant) #define pf_setwithvariable(x) pl_withvariables = Conswithexpressions(WEVariable(x), pl_withvariables) #define pf_resetwithvariable() pl_withvariables = Nilwithexpressions() #define pf_push_no_operators() pl_nooperatorsstack = Consnooperatorsstack( non_default_outmostpattern, pl_nooperatorsstack ); #define pf_pop_no_operators() do { nooperatorsstack tmp_pl_nooperatorsstack = pl_nooperatorsstack; \ non_default_outmostpattern = pl_nooperatorsstack->u.Consnooperatorsstack.int_1; \ pl_nooperatorsstack = pl_nooperatorsstack->u.Consnooperatorsstack.nooperatorsstack_1; \ free_nooperatorsstack( tmp_pl_nooperatorsstack, False ); \ } while(kc_zero_constant) #define pf_pushwithvariable() pl_withvariablesstack = Conswithexpressionsstack( pl_withvariables, pl_withvariablesstack ) #define pf_topwithvariable() (pl_withvariablesstack->u.Conswithexpressionsstack.withexpressions_1) #define pf_popwithvariable() do { withexpressionsstack tmp_pl_withvariablesstack = pl_withvariablesstack; \ pl_withvariablesstack = pl_withvariablesstack->u.Conswithexpressionsstack.withexpressionsstack_1; \ free_withexpressionsstack( tmp_pl_withvariablesstack, False ); \ } while(kc_zero_constant) #define pf_pushidCexpressions(x) pl_idCexpressionsstack = ConsidCexpressionsstack( x, pl_idCexpressionsstack ) #define pf_topidCexpressions() (pl_idCexpressionsstack->u.ConsidCexpressionsstack.idCexpressions_1) #define pf_popidCexpressions() do { idCexpressionsstack tmp_pl_idCexpressionsstack = pl_idCexpressionsstack; \ pl_idCexpressionsstack = pl_idCexpressionsstack->u.ConsidCexpressionsstack.idCexpressionsstack_1; \ free_idCexpressionsstack( tmp_pl_idCexpressionsstack, False ); \ } while(kc_zero_constant) #include #ifndef __cplusplus #ifndef __STDC__ #define const #endif #endif #define YYFINAL 405 #define YYFLAG -32768 #define YYNTBASE 51 #define YYTRANSLATE(x) ((unsigned)(x) <= 285 ? yytranslate[x] : 189) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 40, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 35, 41, 2, 49, 2, 48, 42, 37, 38, 50, 2, 45, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 31, 32, 46, 39, 47, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 43, 2, 44, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 33, 36, 34, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }; #if YYDEBUG != 0 static const short yyprhs[] = { 0, 0, 2, 4, 6, 7, 10, 12, 15, 17, 19, 21, 23, 25, 27, 29, 31, 32, 40, 41, 45, 50, 51, 54, 56, 58, 62, 63, 64, 71, 72, 75, 76, 81, 82, 85, 90, 91, 92, 96, 97, 100, 102, 104, 106, 108, 112, 116, 120, 124, 125, 128, 130, 132, 133, 136, 138, 140, 141, 144, 146, 148, 150, 154, 155, 156, 161, 163, 165, 166, 171, 172, 173, 179, 180, 181, 187, 189, 191, 192, 193, 199, 200, 201, 205, 207, 209, 211, 213, 214, 219, 220, 225, 227, 228, 232, 233, 234, 235, 246, 247, 248, 258, 259, 260, 261, 269, 270, 272, 273, 279, 280, 282, 284, 287, 288, 291, 293, 295, 296, 302, 304, 306, 308, 311, 317, 319, 323, 325, 329, 330, 333, 335, 339, 342, 344, 348, 350, 355, 359, 361, 363, 365, 370, 372, 374, 378, 379, 384, 386, 387, 389, 391, 395, 397, 402, 403, 408, 410, 411, 413, 415, 419, 421, 424, 428, 429, 435, 437, 440, 446, 447, 450, 451, 454, 455, 456, 463, 466, 468, 472, 474, 476, 479, 482, 487, 489, 492, 495, 496, 499, 503, 505, 508, 512, 516, 518, 521, 525, 529, 531, 534, 538, 543, 547, 548, 550, 552, 555, 557, 560, 563, 567, 569, 571, 573, 575, 577, 579, 581, 583, 584, 586, 588, 592, 594, 596, 599, 601, 604, 607, 609, 613, 618, 623, 627, 632, 637, 641, 646, 648, 651, 654, 658, 660, 663, 665, 669, 671, 675, 678, 681, 683, 687, 689, 691, 694, 698, 703, 707, 711, 716, 719, 723, 725, 726, 729, 731, 734 }; static const short yyrhs[] = { 8, 0, 3, 0, 4, 0, 0, 55, 56, 0, 57, 0, 56, 57, 0, 58, 0, 119, 0, 160, 0, 113, 0, 141, 0, 154, 0, 156, 0, 158, 0, 0, 52, 60, 31, 59, 61, 67, 32, 0, 0, 33, 52, 34, 0, 33, 35, 52, 34, 0, 0, 12, 52, 0, 62, 0, 63, 0, 62, 36, 63, 0, 0, 0, 52, 37, 64, 66, 65, 38, 0, 0, 66, 52, 0, 0, 33, 68, 112, 34, 0, 0, 68, 69, 0, 52, 52, 70, 32, 0, 0, 0, 39, 71, 72, 0, 0, 72, 73, 0, 7, 0, 51, 0, 40, 0, 5, 0, 41, 76, 41, 0, 42, 78, 42, 0, 37, 74, 38, 0, 43, 74, 44, 0, 0, 74, 75, 0, 73, 0, 45, 0, 0, 76, 77, 0, 7, 0, 40, 0, 0, 78, 79, 0, 7, 0, 40, 0, 81, 0, 80, 45, 81, 0, 0, 0, 52, 82, 72, 83, 0, 72, 0, 84, 0, 0, 85, 45, 86, 84, 0, 0, 0, 33, 88, 93, 89, 34, 0, 0, 0, 33, 91, 93, 92, 34, 0, 97, 0, 139, 0, 0, 0, 33, 95, 97, 96, 34, 0, 0, 0, 97, 98, 99, 0, 6, 0, 51, 0, 40, 0, 5, 0, 0, 41, 100, 76, 41, 0, 0, 42, 101, 78, 42, 0, 94, 0, 0, 16, 102, 106, 0, 0, 0, 0, 15, 103, 37, 104, 85, 105, 38, 33, 139, 34, 0, 0, 0, 37, 125, 32, 107, 80, 38, 90, 108, 109, 0, 0, 0, 0, 17, 110, 37, 125, 111, 38, 90, 0, 0, 94, 0, 0, 10, 115, 114, 117, 11, 0, 0, 116, 0, 3, 0, 116, 3, 0, 0, 117, 118, 0, 9, 0, 40, 0, 0, 129, 13, 120, 121, 32, 0, 135, 0, 122, 0, 123, 0, 122, 123, 0, 46, 145, 31, 135, 47, 0, 125, 0, 124, 45, 125, 0, 126, 0, 125, 48, 126, 0, 0, 127, 128, 0, 130, 0, 37, 124, 38, 0, 49, 52, 0, 130, 0, 129, 45, 130, 0, 52, 0, 52, 37, 133, 38, 0, 52, 39, 130, 0, 50, 0, 18, 0, 52, 0, 52, 37, 133, 38, 0, 50, 0, 18, 0, 52, 39, 131, 0, 0, 41, 132, 76, 41, 0, 53, 0, 0, 134, 0, 131, 0, 134, 45, 131, 0, 52, 0, 52, 37, 137, 38, 0, 0, 41, 136, 76, 41, 0, 53, 0, 0, 138, 0, 135, 0, 138, 45, 135, 0, 140, 0, 139, 140, 0, 124, 31, 94, 0, 0, 129, 13, 142, 143, 32, 0, 144, 0, 143, 144, 0, 43, 145, 31, 146, 44, 0, 0, 145, 52, 0, 0, 146, 147, 0, 0, 0, 41, 148, 76, 41, 149, 153, 0, 150, 153, 0, 94, 0, 19, 146, 20, 0, 52, 0, 51, 0, 52, 151, 0, 51, 151, 0, 37, 52, 38, 52, 0, 152, 0, 151, 152, 0, 13, 52, 0, 0, 31, 52, 0, 22, 155, 32, 0, 52, 0, 155, 52, 0, 155, 45, 52, 0, 21, 157, 32, 0, 52, 0, 157, 52, 0, 157, 45, 52, 0, 23, 159, 32, 0, 52, 0, 159, 52, 0, 159, 45, 52, 0, 164, 171, 162, 188, 0, 164, 168, 32, 0, 0, 163, 0, 161, 0, 163, 161, 0, 166, 0, 165, 166, 0, 167, 166, 0, 165, 167, 166, 0, 24, 0, 25, 0, 14, 0, 26, 0, 27, 0, 52, 0, 28, 0, 29, 0, 0, 169, 0, 170, 0, 169, 45, 170, 0, 172, 0, 175, 0, 176, 175, 0, 174, 0, 176, 174, 0, 176, 174, 0, 187, 0, 37, 173, 38, 0, 174, 43, 184, 44, 0, 174, 37, 178, 38, 0, 174, 37, 38, 0, 174, 37, 181, 38, 0, 187, 37, 178, 38, 0, 187, 37, 38, 0, 187, 37, 181, 38, 0, 50, 0, 50, 177, 0, 50, 176, 0, 50, 177, 176, 0, 167, 0, 177, 167, 0, 179, 0, 179, 45, 30, 0, 180, 0, 179, 45, 180, 0, 164, 172, 0, 164, 182, 0, 187, 0, 181, 45, 187, 0, 176, 0, 183, 0, 176, 183, 0, 37, 182, 38, 0, 183, 43, 184, 44, 0, 43, 184, 44, 0, 183, 37, 38, 0, 183, 37, 178, 38, 0, 37, 38, 0, 37, 178, 38, 0, 185, 0, 0, 186, 72, 0, 52, 0, 49, 52, 0, 87, 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, 265, 270, 275, 287, 297, 300, 301, 305, 307, 313, 315, 317, 319, 321, 323, 328, 330, 335, 337, 339, 344, 346, 351, 356, 358, 363, 363, 364, 369, 371, 376, 378, 383, 385, 390, 395, 397, 400, 409, 411, 416, 418, 420, 422, 424, 426, 428, 430, 435, 437, 442, 444, 449, 451, 456, 458, 463, 465, 470, 472, 477, 479, 484, 487, 488, 492, 497, 499, 500, 510, 513, 515, 519, 522, 524, 528, 530, 540, 543, 545, 549, 551, 554, 558, 560, 562, 564, 566, 568, 571, 573, 577, 580, 583, 585, 588, 590, 591, 599, 600, 605, 632, 634, 636, 637, 666, 668, 673, 673, 682, 686, 691, 704, 720, 722, 727, 729, 734, 737, 742, 744, 749, 751, 756, 768, 770, 775, 777, 782, 784, 788, 790, 792, 797, 799, 804, 806, 808, 810, 812, 817, 819, 821, 823, 825, 827, 829, 832, 837, 839, 844, 846, 850, 852, 854, 856, 859, 864, 866, 871, 873, 878, 880, 885, 890, 893, 898, 900, 905, 917, 919, 923, 925, 930, 932, 935, 936, 938, 940, 945, 947, 949, 951, 953, 958, 960, 965, 970, 972, 977, 982, 986, 990, 997, 1002, 1006, 1010, 1017, 1022, 1026, 1030, 1037, 1051, 1056, 1058, 1062, 1064, 1073, 1077, 1083, 1089, 1100, 1102, 1104, 1106, 1108, 1113, 1118, 1120, 1125, 1127, 1131, 1133, 1138, 1146, 1148, 1153, 1155, 1160, 1165, 1167, 1169, 1171, 1173, 1175, 1180, 1182, 1184, 1189, 1191, 1193, 1195, 1200, 1202, 1207, 1209, 1214, 1216, 1221, 1223, 1228, 1230, 1235, 1237, 1239, 1244, 1246, 1248, 1250, 1253, 1256, 1259, 1268, 1272, 1274, 1279, 1281, 1286 }; #endif #if YYDEBUG != 0 || defined (YYERROR_VERBOSE) static const char * const yytname[] = { "$","error","$undefined.","T_ID","T_INT", "T_CNEWLINES","T_CLINE","T_CEXPRESSION","T_DOLLARVAR","T_INCLUDE","T_INCLUDESTART", "T_INCLUDEEND","T_LIST","T_ARROW","T_STATIC","T_WITH","T_FOREACH","T_FOREACH_AFTER", "T_DEFAULT","T_UNPBLOCKSTART","T_UNPBLOCKEND","T_PERCENTRVIEW","T_PERCENTUVIEW", "T_PERCENTSTORAGECLASS","T_AUTO","T_REGISTER","T_EXTERN","T_TYPEDEF","T_CONST", "T_VOLATILE","T_DOTDOTDOT","':'","';'","'{'","'}'","'!'","'|'","'('","')'","'='", "'\\n'","'\"'","'''","'['","']'","','","'<'","'>'","'&'","'$'","'*'","dollarvar", "id","int","specification","@1","declarations","declaration","phylumdeclaration", "@2","storageoption","productionblock","alternatives","alternative","@3","@4", "arguments","Ccode_option","attributes_option","attribute","attribute_init_option", "@5","Cexpression","Cexpression_elem","Cexpression_inner","Cexpression_elem_inner", "CexpressionDQ","CexpressionDQ_elem","CexpressionSQ","CexpressionSQ_elem","idCexpressions", "idCexpression","@6","@7","withCexpression","withCexpressions","@8","MainCbody", "@9","@10","MainCbodyinC","@11","@12","MainCBodycontinuation","Cbody","@13", "@14","Ctext","@15","Ctext_elem","@16","@17","@18","@19","@20","@21","foreach_continuation", "@22","@23","foreach_end_continuation","@24","@25","init_option","includedeclaration", "@26","includefiles_option","includefiles","includes","include","rwdeclaration", "@27","rwclauses_or_term","rwclauses","rwclause","patternchains","patternchain", "patternchainitem_lineinfo","@28","patternchainitem","outmostpatterns","outmostpattern", "pattern","@29","patternsoption","patterns","term","@30","termsoption","terms", "withcases","withcase","unparsedeclaration","@31","unparseclauses","unparseclause", "useviewnames","unparseitems","unparseitem","@32","@33","unpsubterm","unpattributes", "unpattribute","viewnameoption","uviewdeclaration","defuviewnames","rviewdeclaration", "defrviewnames","storageclassdeclaration","defstorageclasses","ac_function_definition", "ac_declaration","ac_declaration_list_option","ac_declaration_list","ac_declaration_specifiers", "ac_storage_class_specifier","ac_type_specifier","ac_type_qualifier","ac_init_declarator_list_option", "ac_init_declarator_list","ac_init_declarator","ac_fn_declarator","ac_declarator", "ac_pointer_declarator","ac_direct_declarator","ac_direct_fn_declarator","ac_pointer", "ac_type_qualifier_list","ac_parameter_type_list","ac_parameter_list","ac_parameter_declaration", "ac_identifier_list","ac_abstract_declarator","ac_direct_abstract_declarator", "ac_constant_expression_option","ac_constant_expression","@34","ac_identifier", "ac_compound_statement", NULL }; #endif static const short yyr1[] = { 0, 51, 52, 53, 55, 54, 56, 56, 57, 57, 57, 57, 57, 57, 57, 57, 59, 58, 60, 60, 60, 61, 61, 61, 62, 62, 64, 65, 63, 66, 66, 67, 67, 68, 68, 69, 70, 71, 70, 72, 72, 73, 73, 73, 73, 73, 73, 73, 73, 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 79, 79, 80, 80, 82, 83, 81, 84, 85, 86, 85, 88, 89, 87, 91, 92, 90, 93, 93, 95, 96, 94, 97, 98, 97, 99, 99, 99, 99, 100, 99, 101, 99, 99, 102, 99, 103, 104, 105, 99, 107, 108, 106, 109, 110, 111, 109, 112, 112, 114, 113, 115, 115, 116, 116, 117, 117, 118, 118, 120, 119, 121, 121, 122, 122, 123, 124, 124, 125, 125, 127, 126, 128, 128, 128, 129, 129, 130, 130, 130, 130, 130, 131, 131, 131, 131, 131, 132, 131, 131, 133, 133, 134, 134, 135, 135, 136, 135, 135, 137, 137, 138, 138, 139, 139, 140, 142, 141, 143, 143, 144, 145, 145, 146, 146, 148, 149, 147, 147, 147, 147, 150, 150, 150, 150, 150, 151, 151, 152, 153, 153, 154, 155, 155, 155, 156, 157, 157, 157, 158, 159, 159, 159, 160, 161, 162, 162, 163, 163, 164, 164, 164, 164, 165, 165, 165, 165, 165, 166, 167, 167, 168, 168, 169, 169, 170, 171, 171, 172, 172, 173, 174, 174, 174, 174, 174, 174, 175, 175, 175, 176, 176, 176, 176, 177, 177, 178, 178, 179, 179, 180, 180, 181, 181, 182, 182, 182, 183, 183, 183, 183, 183, 183, 183, 184, 186, 185, 187, 187, 188 }; static const short yyr2[] = { 0, 1, 1, 1, 0, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 7, 0, 3, 4, 0, 2, 1, 1, 3, 0, 0, 6, 0, 2, 0, 4, 0, 2, 4, 0, 0, 3, 0, 2, 1, 1, 1, 1, 3, 3, 3, 3, 0, 2, 1, 1, 0, 2, 1, 1, 0, 2, 1, 1, 1, 3, 0, 0, 4, 1, 1, 0, 4, 0, 0, 5, 0, 0, 5, 1, 1, 0, 0, 5, 0, 0, 3, 1, 1, 1, 1, 0, 4, 0, 4, 1, 0, 3, 0, 0, 0, 10, 0, 0, 9, 0, 0, 0, 7, 0, 1, 0, 5, 0, 1, 1, 2, 0, 2, 1, 1, 0, 5, 1, 1, 1, 2, 5, 1, 3, 1, 3, 0, 2, 1, 3, 2, 1, 3, 1, 4, 3, 1, 1, 1, 4, 1, 1, 3, 0, 4, 1, 0, 1, 1, 3, 1, 4, 0, 4, 1, 0, 1, 1, 3, 1, 2, 3, 0, 5, 1, 2, 5, 0, 2, 0, 2, 0, 0, 6, 2, 1, 3, 1, 1, 2, 2, 4, 1, 2, 2, 0, 2, 3, 1, 2, 3, 3, 1, 2, 3, 3, 1, 2, 3, 4, 3, 0, 1, 1, 2, 1, 2, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 3, 1, 1, 2, 1, 2, 2, 1, 3, 4, 4, 3, 4, 4, 3, 4, 1, 2, 2, 3, 1, 2, 1, 3, 1, 3, 2, 2, 1, 3, 1, 1, 2, 3, 4, 3, 3, 4, 2, 3, 1, 0, 2, 1, 2, 1 }; static const short yydefact[] = { 4, 0, 2, 110, 214, 140, 0, 0, 0, 212, 213, 215, 216, 218, 219, 139, 217, 5, 6, 8, 11, 9, 0, 134, 12, 13, 14, 15, 10, 0, 0, 208, 0, 112, 108, 111, 195, 0, 191, 0, 199, 0, 0, 149, 0, 0, 7, 118, 0, 0, 239, 266, 204, 225, 0, 0, 217, 209, 0, 210, 114, 113, 194, 0, 196, 190, 0, 192, 198, 0, 200, 0, 0, 3, 144, 146, 143, 141, 148, 151, 0, 150, 136, 138, 16, 0, 0, 135, 267, 243, 241, 240, 206, 0, 205, 220, 226, 0, 211, 0, 197, 193, 201, 0, 19, 53, 149, 0, 137, 0, 21, 155, 170, 153, 157, 0, 121, 122, 120, 170, 0, 167, 244, 242, 70, 268, 202, 207, 0, 0, 221, 222, 224, 227, 0, 230, 237, 217, 0, 0, 245, 247, 0, 251, 116, 109, 117, 115, 20, 0, 0, 145, 152, 0, 0, 31, 23, 24, 53, 0, 158, 119, 123, 0, 166, 168, 81, 0, 0, 203, 0, 0, 264, 228, 0, 264, 249, 253, 250, 254, 236, 0, 238, 0, 55, 56, 147, 54, 142, 22, 26, 33, 0, 0, 0, 0, 171, 160, 0, 159, 172, 71, 82, 0, 125, 127, 0, 129, 162, 231, 229, 223, 234, 0, 0, 0, 263, 39, 0, 261, 253, 0, 0, 0, 255, 0, 264, 246, 248, 252, 29, 106, 17, 25, 156, 0, 154, 0, 0, 0, 0, 0, 129, 129, 129, 0, 130, 131, 163, 233, 235, 232, 265, 253, 262, 256, 258, 259, 0, 0, 27, 78, 0, 34, 107, 0, 124, 161, 1, 172, 0, 174, 169, 181, 180, 178, 173, 188, 72, 87, 84, 95, 93, 86, 88, 90, 85, 92, 83, 164, 126, 128, 0, 133, 44, 41, 49, 43, 53, 57, 49, 42, 40, 260, 257, 30, 0, 81, 36, 32, 0, 0, 53, 0, 183, 185, 182, 0, 177, 0, 0, 53, 57, 132, 0, 0, 0, 0, 28, 82, 37, 0, 179, 0, 0, 187, 186, 189, 96, 129, 94, 0, 0, 47, 52, 51, 50, 45, 59, 60, 46, 58, 48, 0, 39, 35, 184, 175, 39, 0, 89, 91, 80, 38, 188, 66, 67, 97, 99, 176, 68, 0, 0, 39, 0, 63, 0, 61, 69, 129, 39, 0, 0, 129, 64, 73, 100, 62, 98, 65, 81, 102, 74, 103, 101, 0, 0, 75, 129, 104, 0, 0, 105, 0, 0, 0 }; static const short yydefgoto[] = { 301, 51, 78, 403, 1, 17, 18, 19, 110, 45, 155, 156, 157, 230, 306, 260, 192, 231, 263, 331, 354, 365, 302, 324, 346, 149, 187, 326, 351, 376, 377, 380, 389, 366, 367, 373, 125, 166, 239, 386, 390, 395, 201, 275, 307, 353, 202, 240, 288, 321, 322, 320, 319, 358, 371, 340, 372, 391, 394, 396, 400, 265, 20, 60, 34, 35, 99, 147, 21, 85, 115, 116, 117, 203, 204, 205, 206, 246, 22, 23, 79, 105, 80, 81, 118, 158, 198, 199, 207, 208, 24, 86, 120, 121, 159, 238, 276, 312, 364, 277, 314, 315, 318, 25, 39, 26, 37, 27, 41, 28, 92, 93, 94, 138, 30, 31, 32, 129, 130, 131, 52, 132, 167, 133, 53, 134, 91, 221, 140, 141, 142, 222, 179, 215, 216, 217, 135, 126 }; static const short yypact[] = {-32768, 185,-32768, 29,-32768,-32768, 72, 72, 72,-32768,-32768, -32768,-32768,-32768,-32768,-32768, 337, 185,-32768,-32768,-32768, -32768, 86,-32768,-32768,-32768,-32768,-32768,-32768, 27, 312, -32768, 72,-32768,-32768, 111,-32768, 24,-32768, 132,-32768, 137, 126, 31, 98, 124,-32768, 87, 98, 72, 299, -32768, 366,-32768, 30, 139,-32768,-32768, 72,-32768,-32768, -32768,-32768, 72,-32768,-32768, 72,-32768,-32768, 72,-32768, 72, 153,-32768,-32768,-32768,-32768, 244,-32768,-32768, 155, 156, 249,-32768,-32768, 150, 189,-32768,-32768,-32768,-32768, 299,-32768, 195, 366, 84,-32768, 224,-32768, 193,-32768, -32768,-32768, 264,-32768,-32768, 31, 31,-32768, 31, 68, -32768,-32768, 262,-32768, 274, 279,-32768,-32768,-32768, 79, -32768,-32768,-32768,-32768,-32768,-32768,-32768, 288, 281, 284, -32768,-32768, 229, 114,-32768,-32768, 134, 17, 310, 319, -32768, 184,-32768,-32768,-32768,-32768,-32768,-32768, 256, 334, -32768,-32768, 72, 341, 346, 360,-32768,-32768, 21, 91, -32768,-32768, 194,-32768,-32768, 41, 361, 114,-32768, 84, 251,-32768, 229, 99,-32768,-32768, 101,-32768, 293,-32768, 359,-32768, 30,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768, 365, 72, 261, 91,-32768,-32768, 362, 353,-32768, -32768, 367, 144, 354,-32768, 70, 369,-32768,-32768, 229, -32768,-32768, 368, 196, 363,-32768,-32768, 99,-32768, 101, 370, 371, 372, 293, 328,-32768,-32768,-32768,-32768,-32768, 25,-32768,-32768,-32768, 357,-32768, 91, 223, 376, 318, 378,-32768,-32768,-32768, 72,-32768,-32768,-32768,-32768,-32768, -32768, 277, 324,-32768,-32768,-32768,-32768, 374, 373, 72, -32768, 72,-32768,-32768, 379,-32768,-32768,-32768,-32768, 72, -32768,-32768, 392, 392,-32768,-32768, 383,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 354, -32768, 201,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768, 377,-32768, 380,-32768, 302, 382,-32768, 72, 392,-32768, 392, 72,-32768, 381, 384, -32768,-32768,-32768, 178, 263, 105, 250,-32768, 388,-32768, 391,-32768, 72, 267,-32768,-32768,-32768,-32768,-32768,-32768, 304, 158,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768, 390,-32768,-32768,-32768,-32768,-32768, 5,-32768, -32768,-32768, 277, 383, 277,-32768, 385,-32768,-32768,-32768, 387, 72,-32768, 393,-32768, 202,-32768,-32768,-32768,-32768, 394, 72, 395, 277,-32768,-32768,-32768,-32768,-32768, 41, 411,-32768,-32768,-32768, 397, 396,-32768,-32768, 354, 398, 394,-32768, 432, 434,-32768 }; static const short yypgoto[] = { -221, -1, -77,-32768,-32768,-32768, 418,-32768,-32768,-32768,-32768, -32768, 245,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -213, -143, 140,-32768, -155,-32768, 115,-32768,-32768, 57, -32768,-32768, 69,-32768,-32768,-32768,-32768,-32768, 40,-32768, -32768, 53, 106,-32768,-32768, 138,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768, 330, 200, -224, 204,-32768,-32768,-32768, -35, 268, -32768, 342,-32768, -145,-32768,-32768,-32768, 71, -205,-32768, -32768,-32768, 329, 332, 183,-32768,-32768,-32768,-32768, 179, 49, 90,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 364, -32768,-32768, 9,-32768, 213, -5,-32768,-32768, 285,-32768, 321,-32768, -122, 402, -28,-32768, -86,-32768, 276, 289, 323, -156, -152,-32768,-32768, -15,-32768 }; #define YYLAST 461 static const short yytable[] = { 16, 54, 248, 194, 252, 36, 38, 40, 114, 83, 29, 139, 173, 87, 55, 197, 16, 273, 290, 286, 2, 224, 90, 223, 2, 58, 29, 2, 2, 56, 2, 56, 33, 2, 2, 73, 64, 368, 67, 55, 70, 72, 77, 82, -129, 89, 210, 82, 88, 74, 235, 56, 195, 243, 174, 173, 62, 56, 261, -129, 175, 95, 100, 123, 224, 101, 49, 50, 102, 63, 103, 2, 75, 2, 259, 2, 49, 50, -129, 49, 153, 76, 143, 114, 113, 213, 122, 2, 5, 273, -129, -129, 267, 56, 2, 73, 137, 224, 210, 47, 168, 2, 2, 95, 2, 77, 77, 244, 77, 154, 177, 164, 348, 4, 61, 359, 5, 2, 114, 245, 15, 128, 119, 9, 10, 11, 12, 13, 14, 2, -165, 48, 111, 49, 50, 2, 218, 219, 174, 258, 2, 363, 175, 325, 175, 349, 220, 350, 15, 50, 49, 128, 189, 2, 73, 84, 143, 334, 196, 113, 114, 71, 196, 49, 65, 348, 341, 384, 229, 68, 137, 247, -266, 56, 399, 241, 97, 66, 248, -266, 56, 345, 69, 294, 345, 295, 268, 104, 2, 242, 253, 111, 154, 108, 113, 3, 112, 2, 349, 4, 361, 109, 144, 5, 145, 82, 6, 7, 8, 9, 10, 11, 12, 13, 14, 296, 343, 56, 297, 298, 299, 300, 182, 344, 56, 200, 2, 2, 124, 183, 262, 268, 119, 146, 250, 15, 113, 274, 4, 323, 381, 183, 269, 57, 293, 59, 242, 382, 9, 10, 11, 12, 13, 14, 2, 294, 261, 295, 268, 305, 270, 308, 136, 184, 271, 4, 171, 272, 184, 311, 184, 98, 172, 49, 184, 9, 10, 11, 12, 13, 14, 106, 294, 107, 295, 268, 43, 296, 44, 212, 297, 298, 299, 300, 352, 344, 185, 186, 148, 160, 49, 185, 234, 185, 347, 2, 161, 185, 357, 274, 268, 184, 335, 169, 296, 2, 337, 297, 298, 299, 300, 269, 332, 279, 280, 112, 268, 13, 14, 170, 225, 2, 356, 281, 282, 261, 226, 264, 50, 270, 13, 14, 4, 271, 185, 360, 287, 289, 180, 50, -136, 261, 9, 10, 11, 12, 13, 14, 283, 284, 285, 218, 2, 336, 181, 336, 257, 175, -18, 2, 42, 375, 188, 4, 43, 151, 44, 152, 190, 191, 4, 375, -136, 9, 10, 11, 12, 13, 14, 227, 9, 10, 11, 12, 13, 14, 193, 232, 237, 209, 236, -76, 243, -77, 266, 313, 249, 251, 254, 255, 278, 261, 303, 309, 317, 328, 256, 304, 338, 330, 333, 339, -79, 355, 362, 374, 379, 385, 393, 388, 370, 397, 404, 398, 405, 46, 401, 342, 233, 387, 327, 402, 378, 392, 292, 329, 162, 291, 150, 165, 383, 163, 310, 316, 369, 211, 96, 228, 127, 176, 214, 178 }; static const short yycheck[] = { 1, 29, 207, 158, 217, 6, 7, 8, 85, 44, 1, 97, 134, 48, 29, 160, 17, 238, 242, 240, 3, 177, 50, 175, 3, 30, 17, 3, 3, 30, 3, 32, 3, 3, 3, 4, 37, 32, 39, 54, 41, 42, 43, 44, 3, 50, 168, 48, 49, 18, 195, 52, 31, 48, 37, 177, 32, 58, 33, 18, 43, 52, 63, 91, 220, 66, 49, 50, 69, 45, 71, 3, 41, 3, 226, 3, 49, 50, 37, 49, 12, 50, 97, 160, 85, 171, 91, 3, 18, 310, 49, 50, 237, 94, 3, 4, 97, 253, 220, 13, 128, 3, 3, 94, 3, 106, 107, 37, 109, 110, 138, 32, 7, 14, 3, 339, 18, 3, 195, 49, 50, 37, 43, 24, 25, 26, 27, 28, 29, 3, 43, 45, 41, 49, 50, 3, 37, 38, 37, 225, 3, 354, 43, 298, 43, 40, 174, 42, 50, 50, 49, 37, 153, 3, 4, 31, 171, 312, 159, 160, 237, 35, 163, 49, 32, 7, 321, 380, 183, 32, 171, 206, 38, 174, 398, 31, 37, 45, 383, 45, 181, 324, 45, 5, 327, 7, 8, 34, 3, 45, 218, 41, 193, 38, 195, 10, 46, 3, 40, 14, 42, 45, 9, 18, 11, 206, 21, 22, 23, 24, 25, 26, 27, 28, 29, 37, 38, 218, 40, 41, 42, 43, 38, 45, 225, 31, 3, 3, 33, 45, 231, 8, 43, 40, 38, 50, 237, 238, 14, 38, 38, 45, 19, 30, 245, 32, 45, 45, 24, 25, 26, 27, 28, 29, 3, 5, 33, 7, 8, 260, 37, 262, 38, 7, 41, 14, 37, 44, 7, 270, 7, 58, 43, 49, 7, 24, 25, 26, 27, 28, 29, 37, 5, 39, 7, 8, 37, 37, 39, 38, 40, 41, 42, 43, 44, 45, 40, 41, 34, 37, 49, 40, 41, 40, 41, 3, 32, 40, 41, 310, 8, 7, 313, 32, 37, 3, 317, 40, 41, 42, 43, 19, 20, 5, 6, 46, 8, 28, 29, 45, 37, 3, 333, 15, 16, 33, 43, 231, 50, 37, 28, 29, 14, 41, 40, 41, 240, 241, 38, 50, 13, 33, 24, 25, 26, 27, 28, 29, 40, 41, 42, 37, 3, 314, 45, 316, 38, 43, 31, 3, 33, 372, 38, 14, 37, 107, 39, 109, 37, 33, 14, 382, 45, 24, 25, 26, 27, 28, 29, 30, 24, 25, 26, 27, 28, 29, 36, 32, 45, 38, 38, 34, 48, 34, 47, 13, 38, 44, 38, 38, 34, 33, 38, 34, 31, 38, 44, 44, 37, 39, 38, 37, 34, 32, 34, 38, 33, 33, 17, 34, 45, 34, 0, 37, 0, 17, 38, 322, 193, 382, 300, 401, 373, 390, 244, 307, 116, 243, 106, 120, 379, 119, 269, 274, 364, 170, 54, 181, 94, 138, 171, 138 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ /* modified by Ralf Schroeder at 13.05.94 */ /* included as part of the Termprocessor Kimwitu */ /* modified by Axel Belinfante at 09.12.1996 */ #ifdef YYERRMSG_VERBOSE #include "errmsg.h" int yyrecover = 0; /* non verbose error recovery */ #endif /* YYERRMSG_VERBOSE */ #line 3 "/usr/local/lib/bison.simple" /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef alloca #ifdef __GNUC__ #define alloca __builtin_alloca #else /* not GNU C. */ #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) #include #else /* not sparc */ #if defined (MSDOS) && !defined (__TURBOC__) #include #else /* not MSDOS, or __TURBOC__ */ #if defined(_AIX) #include #pragma alloca #else /* not MSDOS, __TURBOC__, or _AIX */ #ifdef __hpux #ifdef __cplusplus extern "C" { void *alloca (unsigned int); }; #else /* not __cplusplus */ void *alloca (); #endif /* not __cplusplus */ #endif /* __hpux */ #endif /* not _AIX */ #endif /* not MSDOS, or __TURBOC__ */ #endif /* not sparc. */ #endif /* not GNU C. */ #endif /* alloca not defined. */ /* This is the parser code that is written into each bison parser when the %semantic_parser declaration is not specified in the grammar. It was written by Richard Stallman by simplifying the hairy parser used when %semantic_parser is specified. */ /* Note: there must be only one dollar sign in this file. It is replaced by the list of actions, each action as one case of the switch. */ #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY -2 #define YYEOF 0 #define YYACCEPT return(0) #define YYABORT return(1) #define YYERROR goto yyerrlab1 /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(token, value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { yychar = (token), yylval = (value); \ yychar1 = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { yyerror ("syntax error: cannot back up"); YYERROR; } \ while (0) #define YYTERROR 1 #define YYERRCODE 256 #ifndef YYPURE #define YYLEX yylex() #endif #ifdef YYPURE #ifdef YYLSP_NEEDED #define YYLEX yylex(&yylval, &yylloc) #else #define YYLEX yylex(&yylval) #endif #endif /* If nonreentrant, generate the variables here */ #ifndef YYPURE int yychar; /* the lookahead symbol */ YYSTYPE yylval; /* the semantic value of the */ /* lookahead symbol */ #ifdef YYLSP_NEEDED YYLTYPE yylloc; /* location data for the lookahead */ /* symbol */ #endif int yynerrs; /* number of parse errors so far */ #endif /* not YYPURE */ #if YYDEBUG != 0 int yydebug; /* nonzero means print parse trace */ /* Since this is uninitialized, it does not stop multiple parsers from coexisting. */ #endif /* YYINITDEPTH indicates the initial size of the parser's stacks */ #ifndef YYINITDEPTH #define YYINITDEPTH 200 #endif /* YYMAXDEPTH is the maximum size the stacks can grow to (effective only if the built-in stack extension method is used). */ #if YYMAXDEPTH == 0 #undef YYMAXDEPTH #endif #ifndef YYMAXDEPTH #define YYMAXDEPTH 10000 #endif /* Prevent warning if -Wstrict-prototypes. */ #ifdef __GNUC__ int yyparse (void); #endif #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ #define __yy_bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT) #else /* not GNU C or C++ */ #ifndef __cplusplus /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_bcopy (from, to, count) char *from; char *to; int count; { register char *f = from; register char *t = to; register int i = count; while (i-- > 0) *t++ = *f++; } #else /* __cplusplus */ /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_bcopy (char *from, char *to, int count) { register char *f = from; register char *t = to; register int i = count; while (i-- > 0) *t++ = *f++; } #endif #endif #line 184 "/usr/local/lib/bison.simple" int yyparse() { register int yystate; register int yyn; register short *yyssp; register YYSTYPE *yyvsp; int yyerrstatus; /* number of tokens to shift before error messages enabled */ int yychar1 = 0; /* lookahead token as an internal (translated) token number */ short yyssa[YYINITDEPTH]; /* the state stack */ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ short *yyss = yyssa; /* refer to the stacks thru separate pointers */ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ #ifdef YYLSP_NEEDED YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ YYLTYPE *yyls = yylsa; YYLTYPE *yylsp; #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) #else #define YYPOPSTACK (yyvsp--, yyssp--) #endif int yystacksize = YYINITDEPTH; #ifdef YYPURE int yychar; YYSTYPE yylval; int yynerrs; #ifdef YYLSP_NEEDED YYLTYPE yylloc; #endif #endif YYSTYPE yyval; /* the variable used to return */ /* semantic values from the action */ /* routines */ int yylen; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Starting parse\n"); #endif yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ yyssp = yyss - 1; yyvsp = yyvs; #ifdef YYLSP_NEEDED yylsp = yyls; #endif /* Push a new state, which is found in yystate . */ /* In all cases, when you get here, the value and location stacks have just been pushed. so pushing a state here evens the stacks. */ yynewstate: *++yyssp = yystate; if (yyssp >= yyss + yystacksize - 1) { /* Give user a chance to reallocate the stack */ /* Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; short *yyss1 = yyss; #ifdef YYLSP_NEEDED YYLTYPE *yyls1 = yyls; #endif /* Get the current used size of the three stacks, in elements. */ int size = yyssp - yyss + 1; #ifdef yyoverflow /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. */ #ifdef YYLSP_NEEDED /* This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yyls1, size * sizeof (*yylsp), &yystacksize); #else yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yystacksize); #endif yyss = yyss1; yyvs = yyvs1; #ifdef YYLSP_NEEDED yyls = yyls1; #endif #else /* no yyoverflow */ /* Extend the stack our own way. */ if (yystacksize >= YYMAXDEPTH) { yyerror("parser stack overflow"); return 2; } yystacksize *= 2; if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp)); yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp)); #ifdef YYLSP_NEEDED yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp)); #endif #endif /* no yyoverflow */ yyssp = yyss + size - 1; yyvsp = yyvs + size - 1; #ifdef YYLSP_NEEDED yylsp = yyls + size - 1; #endif #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Stack size increased to %d\n", yystacksize); #endif if (yyssp >= yyss + yystacksize - 1) YYABORT; } #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Entering state %d\n", yystate); #endif goto yybackup; yybackup: /* Do appropriate processing given the current state. */ /* Read a lookahead token if we need one and don't already have one. */ /* yyresume: */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYFLAG) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* yychar is either YYEMPTY or YYEOF or a valid token in external form. */ if (yychar == YYEMPTY) { #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Reading a token: "); #endif yychar = YYLEX; } /* Convert token to internal form (in yychar1) for indexing tables with */ if (yychar <= 0) /* This means end of input. */ { yychar1 = 0; yychar = YYEOF; /* Don't call YYLEX any more */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Now at end of input.\n"); #endif } else { yychar1 = YYTRANSLATE(yychar); #if YYDEBUG != 0 if (yydebug) { fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); /* Give the individual parser a way to print the precise meaning of a token, for further debugging info. */ #ifdef YYPRINT YYPRINT (stderr, yychar, yylval); #endif fprintf (stderr, ")\n"); } #endif } yyn += yychar1; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) goto yydefault; yyn = yytable[yyn]; /* yyn is what to do for this token type in this state. Negative => reduce, -yyn is rule number. Positive => shift, yyn is new state. New state is final state => don't bother to shift, just return success. 0, or most negative number => error. */ if (yyn < 0) { if (yyn == YYFLAG) goto yyerrlab; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrlab; if (yyn == YYFINAL) YYACCEPT; /* Shift the lookahead token. */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); #endif /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif /* count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; yystate = yyn; goto yynewstate; /* Do the default action for the current state. */ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; /* Do a reduction. yyn is the number of a rule to reduce with. */ yyreduce: yylen = yyr2[yyn]; if (yylen > 0) yyval = yyvsp[1-yylen]; /* implement default value of the action */ #if YYDEBUG != 0 if (yydebug) { int i; fprintf (stderr, "Reducing via rule %d (line %d), ", yyn, yyrline[yyn]); /* Print the symbols being reduced, and their result. */ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) fprintf (stderr, "%s ", yytname[yyrhs[i]]); fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); } #endif switch (yyn) { case 1: #line 266 "../kimwy.y" { yyval.yt_INT = Int( yyvsp[0].yt_int ); pf_setfileline( yyval.yt_INT ); ; break;} case 2: #line 271 "../kimwy.y" { yyval.yt_ID = Id( Str( yyvsp[0].yt_casestring )); pf_setfileline( yyval.yt_ID ); ; break;} case 3: #line 276 "../kimwy.y" { yyval.yt_INT = Int( yyvsp[0].yt_int ); pf_setfileline( yyval.yt_INT ); ; break;} case 4: #line 287 "../kimwy.y" { /* initialize variables and scanner state */ pl_filelinestack = Nilfilelinestack(); pl_nooperatorsstack = Nilnooperatorsstack(); pl_phylum = 0; pl_withvariables = Nilwithexpressions(); pl_withvariablesstack = Nilwithexpressionsstack(); pl_idCexpressionsstack = NilidCexpressionsstack(); do_NORMAL(); ; break;} case 8: #line 306 "../kimwy.y" { Thephylumdeclarations = mergephylumdeclarations( yyvsp[0].yt_phylumdeclaration, Thephylumdeclarations ); ; break;} case 9: #line 308 "../kimwy.y" { Therwdeclarations = Consrwdeclarations( yyvsp[0].yt_rwdeclaration, Therwdeclarations ); ; break;} case 10: #line 314 "../kimwy.y" { Thefndeclarations = Consfndeclarations( yyvsp[0].yt_fndeclaration, Thefndeclarations ); ; break;} case 11: #line 316 "../kimwy.y" { ; break;} case 12: #line 318 "../kimwy.y" { Theunparsedeclarations = Consunparsedeclarations( yyvsp[0].yt_unparsedeclaration, Theunparsedeclarations ); ; break;} case 13: #line 320 "../kimwy.y" { ; break;} case 14: #line 322 "../kimwy.y" { ; break;} case 15: #line 324 "../kimwy.y" { ; break;} case 16: #line 329 "../kimwy.y" { pl_phylum = yyvsp[-2].yt_ID; ; break;} case 17: #line 331 "../kimwy.y" { yyval.yt_phylumdeclaration = PhylumDeclaration( yyvsp[-6].yt_ID, yyvsp[-5].yt_storageoption, yyvsp[-2].yt_productionblock, yyvsp[-1].yt_Ccode_option ); v_extendoccur( pl_phylum, ITUserPhylum( yyval.yt_phylumdeclaration ) ); ; break;} case 18: #line 336 "../kimwy.y" { yyval.yt_storageoption = NoStorageOption(); ; break;} case 19: #line 338 "../kimwy.y" { yyval.yt_storageoption = PositiveStorageOption( yyvsp[-1].yt_ID ); v_extendoccur( yyvsp[-1].yt_ID, ITStorageClass() ); ; break;} case 20: #line 340 "../kimwy.y" { yyval.yt_storageoption = NegativeStorageOption( yyvsp[-1].yt_ID ); v_extendoccur( yyvsp[-1].yt_ID, ITStorageClass() ); ; break;} case 21: #line 345 "../kimwy.y" { yyval.yt_productionblock = Emptyproductionblock(); ; break;} case 22: #line 347 "../kimwy.y" { yyval.yt_productionblock = ListAlternatives( makeListAlternatives( pl_phylum, yyvsp[0].yt_ID ), yyvsp[0].yt_ID ); Theargsnumbers = insert_in_argsnumbers(0, Theargsnumbers); Theargsnumbers = insert_in_argsnumbers(2, Theargsnumbers); ; break;} case 23: #line 352 "../kimwy.y" { yyval.yt_productionblock = NonlistAlternatives( yyvsp[0].yt_alternatives ); ; break;} case 24: #line 357 "../kimwy.y" { yyval.yt_alternatives = Consalternatives( yyvsp[0].yt_alternative, Nilalternatives() ); ; break;} case 25: #line 359 "../kimwy.y" { yyval.yt_alternatives = Consalternatives( yyvsp[0].yt_alternative, yyvsp[-2].yt_alternatives ); ; break;} case 26: #line 363 "../kimwy.y" { pg_no_of_arguments = 0; ; break;} case 27: #line 363 "../kimwy.y" { Theargsnumbers = insert_in_argsnumbers(pg_no_of_arguments, Theargsnumbers); ; break;} case 28: #line 364 "../kimwy.y" { yyval.yt_alternative = Alternative( yyvsp[-5].yt_ID, yyvsp[-2].yt_arguments ); v_extendoccur( yyvsp[-5].yt_ID, ITUserOperator( yyval.yt_alternative, pl_phylum ) ); ; break;} case 29: #line 370 "../kimwy.y" { yyval.yt_arguments = Nilarguments(); ; break;} case 30: #line 372 "../kimwy.y" { yyval.yt_arguments = Consarguments( yyvsp[0].yt_ID, yyvsp[-1].yt_arguments ); pg_no_of_arguments++; ; break;} case 31: #line 377 "../kimwy.y" { yyval.yt_Ccode_option = CcodeOption( Nilattributes(), NilCtexts() ); ; break;} case 32: #line 379 "../kimwy.y" { yyval.yt_Ccode_option = CcodeOption( yyvsp[-2].yt_attributes, yyvsp[-1].yt_Ctexts ); ; break;} case 33: #line 384 "../kimwy.y" { yyval.yt_attributes = Nilattributes(); ; break;} case 34: #line 386 "../kimwy.y" { yyval.yt_attributes = Consattributes( yyvsp[0].yt_attribute, yyvsp[-1].yt_attributes ); ; break;} case 35: #line 391 "../kimwy.y" { yyval.yt_attribute = Attribute( yyvsp[-3].yt_ID, yyvsp[-2].yt_ID, yyvsp[-1].yt_attribute_initialisation_option ); ; break;} case 36: #line 396 "../kimwy.y" { yyval.yt_attribute_initialisation_option = Noattribute_initialisation(); ; break;} case 37: #line 398 "../kimwy.y" { do_CEXPR(); ; break;} case 38: #line 400 "../kimwy.y" { do_NORMAL(); yyval.yt_attribute_initialisation_option = Yesattribute_initialisation( yyvsp[0].yt_Cexpression ); ; break;} case 39: #line 410 "../kimwy.y" { yyval.yt_Cexpression = NilCexpression(); pf_setfileline( yyval.yt_Cexpression ); ; break;} case 40: #line 412 "../kimwy.y" { yyval.yt_Cexpression = ConsCexpression( yyvsp[0].yt_Cexpression_elem, yyvsp[-1].yt_Cexpression ); yyval.yt_Cexpression->file = yyvsp[-1].yt_Cexpression->file; yyval.yt_Cexpression->line = yyvsp[-1].yt_Cexpression->line; ; break;} case 41: #line 417 "../kimwy.y" { yyval.yt_Cexpression_elem = CExpressionPart( yyvsp[0].yt_casestring ); ; break;} case 42: #line 419 "../kimwy.y" { yyval.yt_Cexpression_elem = CExpressionDollarvar( yyvsp[0].yt_INT ); ; break;} case 43: #line 421 "../kimwy.y" { yyval.yt_Cexpression_elem = CExpressionNl( 1 ); ; break;} case 44: #line 423 "../kimwy.y" { yyval.yt_Cexpression_elem = CExpressionNl( yyvsp[0].yt_int ); ; break;} case 45: #line 425 "../kimwy.y" { yyval.yt_Cexpression_elem = CExpressionDQ( yyvsp[-1].yt_CexpressionDQ ); ; break;} case 46: #line 427 "../kimwy.y" { yyval.yt_Cexpression_elem = CExpressionSQ( yyvsp[-1].yt_CexpressionSQ ); ; break;} case 47: #line 429 "../kimwy.y" { yyval.yt_Cexpression_elem = CExpressionPack( yyvsp[-1].yt_Cexpression ); ; break;} case 48: #line 431 "../kimwy.y" { yyval.yt_Cexpression_elem = CExpressionArray( yyvsp[-1].yt_Cexpression ); ; break;} case 49: #line 436 "../kimwy.y" { yyval.yt_Cexpression = NilCexpression(); pf_setfileline( yyval.yt_Cexpression ); ; break;} case 50: #line 438 "../kimwy.y" { yyval.yt_Cexpression = ConsCexpression( yyvsp[0].yt_Cexpression_elem, yyvsp[-1].yt_Cexpression ); yyval.yt_Cexpression->file = yyvsp[-1].yt_Cexpression->file; yyval.yt_Cexpression->line = yyvsp[-1].yt_Cexpression->line; ; break;} case 51: #line 443 "../kimwy.y" { yyval.yt_Cexpression_elem = yyvsp[0].yt_Cexpression_elem; ; break;} case 52: #line 445 "../kimwy.y" { yyval.yt_Cexpression_elem = CExpressionPart( mkcasestring(",") ); ; break;} case 53: #line 450 "../kimwy.y" { yyval.yt_CexpressionDQ = NilCexpressionDQ(); ; break;} case 54: #line 452 "../kimwy.y" { yyval.yt_CexpressionDQ = ConsCexpressionDQ( yyvsp[0].yt_CexpressionDQ_elem, yyvsp[-1].yt_CexpressionDQ ); ; break;} case 55: #line 457 "../kimwy.y" { yyval.yt_CexpressionDQ_elem = CExpressionDQPart( yyvsp[0].yt_casestring ); ; break;} case 56: #line 459 "../kimwy.y" { yyval.yt_CexpressionDQ_elem = CExpressionDQNl( 1 ); ; break;} case 57: #line 464 "../kimwy.y" { yyval.yt_CexpressionSQ = NilCexpressionSQ(); ; break;} case 58: #line 466 "../kimwy.y" { yyval.yt_CexpressionSQ = ConsCexpressionSQ( yyvsp[0].yt_CexpressionSQ_elem, yyvsp[-1].yt_CexpressionSQ ); ; break;} case 59: #line 471 "../kimwy.y" { yyval.yt_CexpressionSQ_elem = CExpressionSQPart( yyvsp[0].yt_casestring ); ; break;} case 60: #line 473 "../kimwy.y" { yyval.yt_CexpressionSQ_elem = CExpressionSQNl( 1 ); ; break;} case 61: #line 478 "../kimwy.y" { yyval.yt_idCexpressions = ConsidCexpressions( yyvsp[0].yt_idCexpression, NilidCexpressions() ); ; break;} case 62: #line 480 "../kimwy.y" { yyval.yt_idCexpressions = ConsidCexpressions( yyvsp[0].yt_idCexpression, yyvsp[-2].yt_idCexpressions ); ; break;} case 63: #line 485 "../kimwy.y" { do_CEXPR(); ; break;} case 64: #line 487 "../kimwy.y" { do_NORMAL(); ; break;} case 65: #line 488 "../kimwy.y" { yyval.yt_idCexpression = IdCexpression( yyvsp[-3].yt_ID, yyvsp[-1].yt_Cexpression ); ; break;} case 66: #line 493 "../kimwy.y" { yyval.yt_withexpression = WECexpression( yyvsp[0].yt_Cexpression ); pf_setstacktopfileline( yyval.yt_withexpression ); ; break;} case 67: #line 498 "../kimwy.y" { yyval.yt_withexpressions = Conswithexpressions( yyvsp[0].yt_withexpression, Nilwithexpressions() ); ; break;} case 68: #line 499 "../kimwy.y" { pf_pushfileline(); ; break;} case 69: #line 500 "../kimwy.y" { yyval.yt_withexpressions = Conswithexpressions( yyvsp[0].yt_withexpression, yyvsp[-3].yt_withexpressions ); pf_popfileline(); ; break;} case 70: #line 511 "../kimwy.y" { do_MainC(); pf_pushfileline(); pf_pushwithvariable(); pf_resetwithvariable(); ; break;} case 71: #line 513 "../kimwy.y" { do_NORMAL(); ; break;} case 72: #line 515 "../kimwy.y" { yyval.yt_Ctext = yyvsp[-2].yt_Ctext; pf_setstacktopfileline( yyval.yt_Ctext ); pf_popfileline(); pf_popwithvariable(); ; break;} case 73: #line 520 "../kimwy.y" { do_MainC(); pf_pushfileline(); pf_pushwithvariable(); pf_resetwithvariable(); ; break;} case 74: #line 522 "../kimwy.y" { do_C(); ; break;} case 75: #line 524 "../kimwy.y" { yyval.yt_Ctext = yyvsp[-2].yt_Ctext; pf_setstacktopfileline( yyval.yt_Ctext ); pf_popfileline(); pf_popwithvariable(); ; break;} case 76: #line 529 "../kimwy.y" { yyval.yt_Ctext = yyvsp[0].yt_Ctext; pf_setstacktopfileline( yyval.yt_Ctext ); ; break;} case 77: #line 531 "../kimwy.y" { Ctext_elem tmp = CTextWithexpression( pf_topwithvariable(), yyvsp[0].yt_withcases, NotInForeachContext() ); pf_setstacktopfileline( tmp ); yyval.yt_Ctext = ConsCtext( tmp, NilCtext() ); pf_setstacktopfileline( yyval.yt_Ctext ); if (! non_default_outmostpattern ) v_report(NonFatal( NoFileLine(), Problem1S( "can not infer type from `default' pattern(s)" ))); non_default_outmostpattern = 0; ; break;} case 78: #line 541 "../kimwy.y" { do_C(); pf_pushfileline(); pf_push_no_operators(); ; break;} case 79: #line 543 "../kimwy.y" { do_NORMAL(); ; break;} case 80: #line 545 "../kimwy.y" { yyval.yt_Ctext = yyvsp[-2].yt_Ctext; pf_setstacktopfileline( yyval.yt_Ctext ); pf_popfileline(); pf_pop_no_operators(); ; break;} case 81: #line 550 "../kimwy.y" { yyval.yt_Ctext = NilCtext(); pf_setfileline( yyval.yt_Ctext ); ; break;} case 82: #line 552 "../kimwy.y" { pf_pushfileline(); ; break;} case 83: #line 554 "../kimwy.y" { yyval.yt_Ctext = ConsCtext( yyvsp[0].yt_Ctext_elem, yyvsp[-2].yt_Ctext ); pf_setstacktopfileline( yyvsp[0].yt_Ctext_elem ); pf_popfileline(); yyval.yt_Ctext->file = yyvsp[-2].yt_Ctext->file; yyval.yt_Ctext->line = yyvsp[-2].yt_Ctext->line; ; break;} case 84: #line 559 "../kimwy.y" { yyval.yt_Ctext_elem = CTextLine( yyvsp[0].yt_casestring ); ; break;} case 85: #line 561 "../kimwy.y" { yyval.yt_Ctext_elem = CTextDollarVar( yyvsp[0].yt_INT ); ; break;} case 86: #line 563 "../kimwy.y" { yyval.yt_Ctext_elem = CTextNl( 1 ); ; break;} case 87: #line 565 "../kimwy.y" { yyval.yt_Ctext_elem = CTextNl( yyvsp[0].yt_int ); ; break;} case 88: #line 567 "../kimwy.y" { do_CEXPRDQ(); ; break;} case 89: #line 569 "../kimwy.y" { do_C(); yyval.yt_Ctext_elem = CTextCexpressionDQ( yyvsp[-1].yt_CexpressionDQ ); ; break;} case 90: #line 572 "../kimwy.y" { do_CEXPRSQ(); ; break;} case 91: #line 574 "../kimwy.y" { do_C(); yyval.yt_Ctext_elem = CTextCexpressionSQ( yyvsp[-1].yt_CexpressionSQ ); ; break;} case 92: #line 578 "../kimwy.y" { do_C(); yyval.yt_Ctext_elem = CTextCbody( yyvsp[0].yt_Ctext ); ; break;} case 93: #line 581 "../kimwy.y" { do_NORMAL(); ; break;} case 94: #line 583 "../kimwy.y" { do_C(); yyval.yt_Ctext_elem = yyvsp[0].yt_Ctext_elem; ; break;} case 95: #line 586 "../kimwy.y" { do_NORMAL(); ; break;} case 96: #line 588 "../kimwy.y" { do_CEXPR(); pf_pushfileline(); ; break;} case 97: #line 590 "../kimwy.y" { do_NORMAL(); pf_popfileline(); ; break;} case 98: #line 592 "../kimwy.y" { do_C(); yyval.yt_Ctext_elem = CTextWithexpression( yyvsp[-5].yt_withexpressions, yyvsp[-1].yt_withcases, NotInForeachContext() ); if (! non_default_outmostpattern ) v_report(NonFatal( NoFileLine(), Problem1S( "can not infer type from `default' pattern(s)" ))); non_default_outmostpattern = 0; ; break;} case 99: #line 599 "../kimwy.y" { non_default_outmostpattern = 0; ; break;} case 100: #line 601 "../kimwy.y" { pf_pushidCexpressions(yyvsp[-2].yt_idCexpressions); ; break;} case 101: #line 605 "../kimwy.y" { patternchains pc_list = Conspatternchains(yyvsp[-7].yt_patternchain, Nilpatternchains()); patternchains rewritten = rewrite_patternchains(pc_list, base_rview); withexpressions wexpr = pf_gen_foreachwith_vars( yyvsp[-4].yt_idCexpressions ); Ctext_elem ctwe = CTextWithexpression( wexpr, Conswithcases( Withcase( syn_patternchains_fileline( rewritten, pg_filename, pg_lineno ), yyvsp[-2].yt_Ctext ), Nilwithcases() ), InForeachContext(yyvsp[-7].yt_patternchain) ); Ctext ctxts0 = NilCtext(); Ctext ctxts1 = ConsCtext( ctwe, ctxts0 ); pf_setstacktopfileline( ctwe ); pf_setstacktopfileline( ctxts0 ); pf_setstacktopfileline( ctxts1 ); check_no_patternchaingroup_in_patternchain( yyvsp[-7].yt_patternchain->file, yyvsp[-7].yt_patternchain->line, yyvsp[-7].yt_patternchain, "'foreach variable/pattern'" ); yyval.yt_Ctext_elem = CTextForeachexpression( yyvsp[-7].yt_patternchain, yyvsp[-4].yt_idCexpressions, wexpr, ctxts1, yyvsp[0].yt_foreach_after); pf_popidCexpressions(); ; break;} case 102: #line 633 "../kimwy.y" { yyval.yt_foreach_after = NoForeachAfter(); ; break;} case 103: #line 635 "../kimwy.y" { do_NORMAL(); pf_pushfileline(); ; break;} case 104: #line 636 "../kimwy.y" { non_default_outmostpattern = 0; ; break;} case 105: #line 638 "../kimwy.y" { patternchains pc_list = Conspatternchains(yyvsp[-3].yt_patternchain, Nilpatternchains()); patternchains rewritten = rewrite_patternchains(pc_list, base_rview); withexpressions wexpr = pf_gen_foreachwith_listvars( pf_topidCexpressions() ); Ctext_elem ctwe = CTextWithexpression( wexpr, Conswithcases( Withcase( syn_patternchains_fileline( rewritten, pg_filename, pg_lineno ), yyvsp[0].yt_Ctext ), Nilwithcases() ), InForeachContext(yyvsp[-3].yt_patternchain) ); Ctext ctxts0 = NilCtext(); Ctext ctxts1 = ConsCtext( ctwe, ctxts0 ); pf_setstacktopfileline( ctwe ); pf_setstacktopfileline( ctxts0 ); pf_setstacktopfileline( ctxts1 ); check_no_patternchaingroup_or_pattern_in_patternchain( yyvsp[-3].yt_patternchain->file, yyvsp[-3].yt_patternchain->line, yyvsp[-3].yt_patternchain, "'foreach variable/pattern'" ); yyval.yt_foreach_after = ForeachAfter( yyvsp[-3].yt_patternchain, pf_topidCexpressions(), wexpr, ctxts1 ); pf_setstacktopfileline( yyval.yt_foreach_after ); pf_popfileline(); ; break;} case 106: #line 667 "../kimwy.y" { yyval.yt_Ctexts = NilCtexts(); ; break;} case 107: #line 669 "../kimwy.y" { yyval.yt_Ctexts = ConsCtexts( yyvsp[0].yt_Ctext, NilCtexts() ); ; break;} case 108: #line 673 "../kimwy.y" { pf_pushfileline(); ; break;} case 109: #line 674 "../kimwy.y" {{includedeclaration pl_includedeclaration = IncludeDeclaration( yyvsp[-1].yt_includes ); set_includefiles( yyvsp[-3].yt_includefiles, pl_includedeclaration ); pf_setstacktopfileline( pl_includedeclaration ); pf_popfileline(); }; break;} case 110: #line 683 "../kimwy.y" {{ includefile pl_includefile = IncludeFile( mkcasestring(INC_CODE) ); yyval.yt_includefiles = Consincludefiles( pl_includefile, Nilincludefiles() ); }; break;} case 111: #line 687 "../kimwy.y" { yyval.yt_includefiles = yyvsp[0].yt_includefiles; ; break;} case 112: #line 692 "../kimwy.y" {{ includefile pl_includefile = IncludeFile( yyvsp[0].yt_casestring ); if (pl_includefile->newinclude) { v_report(Warning( NoFileLine(), ProblemSC( "old include redirection keyword (please replace the `KIMW_' part by `KC_'):", yyvsp[0].yt_casestring ))); pl_includefile = pl_includefile->newinclude; } if ((pl_includefile->inc_type == include_file) || (pl_includefile->inc_type == include_header)) { yyval.yt_includefiles = Consincludefiles( pl_includefile, Nilincludefiles() ); } else { v_report(NonFatal( NoFileLine(), ProblemSC( "unknown include redirection keyword:", yyvsp[0].yt_casestring ))); yyval.yt_includefiles = Nilincludefiles(); } }; break;} case 113: #line 705 "../kimwy.y" {{ includefile pl_includefile = IncludeFile( yyvsp[0].yt_casestring ); if (pl_includefile->newinclude) { v_report(Warning( NoFileLine(), ProblemSC( "old include redirection keyword (please replace the `KIMW_' part by `KC_'):", yyvsp[0].yt_casestring ))); pl_includefile = pl_includefile->newinclude; } if ((pl_includefile->inc_type == include_file) || (pl_includefile->inc_type == include_header)) { yyval.yt_includefiles = Consincludefiles( pl_includefile, yyvsp[-1].yt_includefiles ); } else { v_report(NonFatal( NoFileLine(), ProblemSC( "unknown include redirection keyword:", yyvsp[0].yt_casestring ))); yyval.yt_includefiles = yyvsp[-1].yt_includefiles; } }; break;} case 114: #line 721 "../kimwy.y" { yyval.yt_includes = Nilincludes(); ; break;} case 115: #line 723 "../kimwy.y" { yyval.yt_includes = Consincludes( yyvsp[0].yt_include, yyvsp[-1].yt_includes ); ; break;} case 116: #line 728 "../kimwy.y" { yyval.yt_include = Include( yyvsp[0].yt_casestring ); ; break;} case 117: #line 730 "../kimwy.y" { yyval.yt_include = IncludeNl( 1 ); ; break;} case 118: #line 735 "../kimwy.y" { if (! non_default_outmostpattern ) v_report(NonFatal( NoFileLine(), Problem1S( "can not infer type from `default' pattern(s)" ))); non_default_outmostpattern = 0; ; break;} case 119: #line 738 "../kimwy.y" { yyval.yt_rwdeclaration = RwDeclaration( yyvsp[-4].yt_outmostpatterns, yyvsp[-1].yt_rewriteclauses ); ; break;} case 120: #line 743 "../kimwy.y" { yyval.yt_rewriteclauses = Consrewriteclauses( RewriteClause( Consviewnames( Id( Str( mkcasestring( "base_rview" ))), Nilviewnames() ), yyvsp[0].yt_term ), Nilrewriteclauses() ); ; break;} case 121: #line 745 "../kimwy.y" { yyval.yt_rewriteclauses = yyvsp[0].yt_rewriteclauses; ; break;} case 122: #line 750 "../kimwy.y" { yyval.yt_rewriteclauses = Consrewriteclauses( yyvsp[0].yt_rewriteclause, Nilrewriteclauses() ); ; break;} case 123: #line 752 "../kimwy.y" { yyval.yt_rewriteclauses = Consrewriteclauses( yyvsp[0].yt_rewriteclause, yyvsp[-1].yt_rewriteclauses ); ; break;} case 124: #line 760 "../kimwy.y" { if (eq_viewnames( yyvsp[-3].yt_viewnames, Nilviewnames())) { yyval.yt_rewriteclause = RewriteClause( Consviewnames( Id( Str( mkcasestring( "base_rview" ))), yyvsp[-3].yt_viewnames ), yyvsp[-1].yt_term ); } else { yyval.yt_rewriteclause = RewriteClause( yyvsp[-3].yt_viewnames, yyvsp[-1].yt_term ); } ; break;} case 125: #line 769 "../kimwy.y" { yyval.yt_patternchains = Conspatternchains( yyvsp[0].yt_patternchain, Nilpatternchains() ); ; break;} case 126: #line 771 "../kimwy.y" { yyval.yt_patternchains = Conspatternchains( yyvsp[0].yt_patternchain, yyvsp[-2].yt_patternchains ); ; break;} case 127: #line 776 "../kimwy.y" { yyval.yt_patternchain = Conspatternchain( yyvsp[0].yt_patternchainitem, Nilpatternchain() ); ; break;} case 128: #line 778 "../kimwy.y" { yyval.yt_patternchain = Conspatternchain( yyvsp[0].yt_patternchainitem, yyvsp[-2].yt_patternchain ); ; break;} case 129: #line 782 "../kimwy.y" { pf_pushfileline(); ; break;} case 130: #line 784 "../kimwy.y" { yyval.yt_patternchainitem = yyvsp[0].yt_patternchainitem; pf_setstacktopfileline(yyval.yt_patternchainitem); pf_popfileline(); ; break;} case 131: #line 789 "../kimwy.y" { yyval.yt_patternchainitem = PatternchainitemOutmost( yyvsp[0].yt_outmostpattern ); ; break;} case 132: #line 791 "../kimwy.y" { yyval.yt_patternchainitem = PatternchainitemGroup( yyvsp[-1].yt_patternchains ); ; break;} case 133: #line 793 "../kimwy.y" { yyval.yt_patternchainitem = PatternchainitemDollarid( yyvsp[0].yt_ID ); pf_setwithvariable( yyvsp[0].yt_ID ); ; break;} case 134: #line 798 "../kimwy.y" { yyval.yt_outmostpatterns = Consoutmostpatterns( yyvsp[0].yt_outmostpattern, Niloutmostpatterns() ); ; break;} case 135: #line 800 "../kimwy.y" { yyval.yt_outmostpatterns = Consoutmostpatterns( yyvsp[0].yt_outmostpattern, yyvsp[-2].yt_outmostpatterns ); ; break;} case 136: #line 805 "../kimwy.y" { yyval.yt_outmostpattern = OPOperatorWildcard( yyvsp[0].yt_ID ); non_default_outmostpattern = 1; ; break;} case 137: #line 807 "../kimwy.y" { yyval.yt_outmostpattern = OPOperator( yyvsp[-3].yt_ID, yyvsp[-1].yt_patterns ); non_default_outmostpattern = 1; ; break;} case 138: #line 809 "../kimwy.y" { yyval.yt_outmostpattern = OPNonLeafVariable( yyvsp[-2].yt_ID, yyvsp[0].yt_outmostpattern ); non_default_outmostpattern = 1; ; break;} case 139: #line 811 "../kimwy.y" { yyval.yt_outmostpattern = OPWildcard(); ; break;} case 140: #line 813 "../kimwy.y" { yyval.yt_outmostpattern = OPDefault(); ; break;} case 141: #line 818 "../kimwy.y" { yyval.yt_pattern = PVariable( yyvsp[0].yt_ID ); ; break;} case 142: #line 820 "../kimwy.y" { yyval.yt_pattern = POperator( yyvsp[-3].yt_ID, yyvsp[-1].yt_patterns ); ; break;} case 143: #line 822 "../kimwy.y" { yyval.yt_pattern = PWildcard(); ; break;} case 144: #line 824 "../kimwy.y" { yyval.yt_pattern = PWildcard(); ; break;} case 145: #line 826 "../kimwy.y" { yyval.yt_pattern = PNonLeafVariable( yyvsp[-2].yt_ID, yyvsp[0].yt_pattern ); ; break;} case 146: #line 828 "../kimwy.y" { do_CEXPRDQ(); ; break;} case 147: #line 830 "../kimwy.y" { do_NORMAL(); yyval.yt_pattern = PStringLiteral( yyvsp[-1].yt_CexpressionDQ ); ; break;} case 148: #line 833 "../kimwy.y" { yyval.yt_pattern = PIntLiteral( yyvsp[0].yt_INT ); ; break;} case 149: #line 838 "../kimwy.y" { yyval.yt_patterns = Nilpatterns(); ; break;} case 150: #line 840 "../kimwy.y" { yyval.yt_patterns = yyvsp[0].yt_patterns; ; break;} case 151: #line 845 "../kimwy.y" { yyval.yt_patterns = Conspatterns( yyvsp[0].yt_pattern, Nilpatterns() ); ; break;} case 152: #line 847 "../kimwy.y" { yyval.yt_patterns = Conspatterns( yyvsp[0].yt_pattern, yyvsp[-2].yt_patterns ); ; break;} case 153: #line 851 "../kimwy.y" { yyval.yt_term = TVariable( yyvsp[0].yt_ID ); ; break;} case 154: #line 853 "../kimwy.y" { yyval.yt_term = TOperator( yyvsp[-3].yt_ID, yyvsp[-1].yt_terms ); ; break;} case 155: #line 855 "../kimwy.y" { do_CEXPRDQ(); ; break;} case 156: #line 857 "../kimwy.y" { do_NORMAL(); yyval.yt_term = TStringLiteral( yyvsp[-1].yt_CexpressionDQ ); ; break;} case 157: #line 860 "../kimwy.y" { yyval.yt_term = TIntLiteral( yyvsp[0].yt_INT ); ; break;} case 158: #line 865 "../kimwy.y" { yyval.yt_terms = Nilterms(); ; break;} case 159: #line 867 "../kimwy.y" { yyval.yt_terms = yyvsp[0].yt_terms; ; break;} case 160: #line 872 "../kimwy.y" { yyval.yt_terms = Consterms( yyvsp[0].yt_term, Nilterms() ); ; break;} case 161: #line 874 "../kimwy.y" { yyval.yt_terms = Consterms( yyvsp[0].yt_term, yyvsp[-2].yt_terms ); ; break;} case 162: #line 879 "../kimwy.y" { yyval.yt_withcases = Conswithcases( yyvsp[0].yt_withcase, Nilwithcases() ); ; break;} case 163: #line 881 "../kimwy.y" { yyval.yt_withcases = Conswithcases( yyvsp[0].yt_withcase, yyvsp[-1].yt_withcases ); ; break;} case 164: #line 886 "../kimwy.y" { yyval.yt_withcase = Withcase( syn_patternchains_fileline(rewrite_patternchains(yyvsp[-2].yt_patternchains, base_rview), pg_filename, pg_lineno ), yyvsp[0].yt_Ctext ); ; break;} case 165: #line 891 "../kimwy.y" { if (! non_default_outmostpattern ) v_report(NonFatal( NoFileLine(), Problem1S( "can not infer type from `default' pattern(s)" ))); non_default_outmostpattern = 0; ; break;} case 166: #line 894 "../kimwy.y" { yyval.yt_unparsedeclaration = UnparseDeclaration( yyvsp[-4].yt_outmostpatterns, yyvsp[-1].yt_unparseclauses ); ; break;} case 167: #line 899 "../kimwy.y" { yyval.yt_unparseclauses = Consunparseclauses( yyvsp[0].yt_unparseclause, Nilunparseclauses() ); ; break;} case 168: #line 901 "../kimwy.y" { yyval.yt_unparseclauses = Consunparseclauses( yyvsp[0].yt_unparseclause, yyvsp[-1].yt_unparseclauses ); ; break;} case 169: #line 909 "../kimwy.y" { if (eq_viewnames( yyvsp[-3].yt_viewnames, Nilviewnames())) { yyval.yt_unparseclause = UnparseClause( Consviewnames( Id( Str( mkcasestring( "base_uview" ))), yyvsp[-3].yt_viewnames ), yyvsp[-1].yt_unparseitems ); } else { yyval.yt_unparseclause = UnparseClause( yyvsp[-3].yt_viewnames, yyvsp[-1].yt_unparseitems ); } ; break;} case 170: #line 918 "../kimwy.y" { yyval.yt_viewnames = Nilviewnames(); ; break;} case 171: #line 920 "../kimwy.y" { yyval.yt_viewnames = Consviewnames( subst_name( yyvsp[0].yt_ID, mkcasestring( "base_view" ), mkcasestring( "base_uview" )), yyvsp[-1].yt_viewnames ); ; break;} case 172: #line 924 "../kimwy.y" { yyval.yt_unparseitems = Nilunparseitems(); ; break;} case 173: #line 926 "../kimwy.y" { yyval.yt_unparseitems = Consunparseitems( yyvsp[0].yt_unparseitem, yyvsp[-1].yt_unparseitems ); ; break;} case 174: #line 931 "../kimwy.y" { do_CEXPRDQ(); ; break;} case 175: #line 933 "../kimwy.y" { do_NORMAL(); ; break;} case 176: #line 935 "../kimwy.y" { yyval.yt_unparseitem = UnpStr( yyvsp[-3].yt_CexpressionDQ, yyvsp[0].yt_viewnameoption ); ; break;} case 177: #line 937 "../kimwy.y" { yyval.yt_unparseitem = UnpSubexpr( yyvsp[-1].yt_unpsubterm, yyvsp[0].yt_viewnameoption ); ; break;} case 178: #line 939 "../kimwy.y" { yyval.yt_unparseitem = UnpCtext( yyvsp[0].yt_Ctext ); ; break;} case 179: #line 941 "../kimwy.y" { yyval.yt_unparseitem = UnpBody( yyvsp[-1].yt_unparseitems ); ; break;} case 180: #line 946 "../kimwy.y" { yyval.yt_unpsubterm = UnpSubTerm( yyvsp[0].yt_ID ); ; break;} case 181: #line 948 "../kimwy.y" { yyval.yt_unpsubterm = UnpDollarvarTerm( yyvsp[0].yt_INT ); ; break;} case 182: #line 950 "../kimwy.y" { yyval.yt_unpsubterm = UnpSubAttr( yyvsp[-1].yt_ID, yyvsp[0].yt_unpattributes ); ; break;} case 183: #line 952 "../kimwy.y" { yyval.yt_unpsubterm = UnpDollarvarAttr( yyvsp[-1].yt_INT, yyvsp[0].yt_unpattributes ); ; break;} case 184: #line 954 "../kimwy.y" { yyval.yt_unpsubterm = UnpCastedVariable( yyvsp[-2].yt_ID, yyvsp[0].yt_ID ); ; break;} case 185: #line 959 "../kimwy.y" { yyval.yt_unpattributes = Consunpattributes( yyvsp[0].yt_ID, Nilunpattributes() ); ; break;} case 186: #line 961 "../kimwy.y" { yyval.yt_unpattributes = Consunpattributes( yyvsp[0].yt_ID, yyvsp[-1].yt_unpattributes ); ; break;} case 187: #line 966 "../kimwy.y" { yyval.yt_ID = yyvsp[0].yt_ID; ; break;} case 188: #line 971 "../kimwy.y" { yyval.yt_viewnameoption = NoViewname(); ; break;} case 189: #line 973 "../kimwy.y" { yyval.yt_viewnameoption = YesViewname( yyvsp[0].yt_ID ); ; break;} case 190: #line 978 "../kimwy.y" { yyval.yt_viewnames = yyvsp[-1].yt_viewnames; pg_uviewshavebeendefined = True; ; break;} case 191: #line 983 "../kimwy.y" { yyval.yt_viewnames = Consviewnames( yyvsp[0].yt_ID, Nilviewnames()); v_add_to_uviewnames( yyvsp[0].yt_ID ); v_extendoccur( yyvsp[0].yt_ID, ITUserUView() ); ; break;} case 192: #line 987 "../kimwy.y" { yyval.yt_viewnames = Consviewnames( yyvsp[0].yt_ID, yyvsp[-1].yt_viewnames ); v_add_to_uviewnames( yyvsp[0].yt_ID ); v_extendoccur( yyvsp[0].yt_ID, ITUserUView() ); ; break;} case 193: #line 991 "../kimwy.y" { yyval.yt_viewnames = Consviewnames( yyvsp[0].yt_ID, yyvsp[-2].yt_viewnames ); v_add_to_uviewnames( yyvsp[0].yt_ID ); v_extendoccur( yyvsp[0].yt_ID, ITUserUView() ); ; break;} case 194: #line 998 "../kimwy.y" { yyval.yt_viewnames = yyvsp[-1].yt_viewnames; pg_rviewshavebeendefined = True; ; break;} case 195: #line 1003 "../kimwy.y" { yyval.yt_viewnames = Consviewnames( yyvsp[0].yt_ID, Nilviewnames()); v_add_to_rviewnames( yyvsp[0].yt_ID ); v_extendoccur( yyvsp[0].yt_ID, ITUserRView() ); ; break;} case 196: #line 1007 "../kimwy.y" { yyval.yt_viewnames = Consviewnames( yyvsp[0].yt_ID, yyvsp[-1].yt_viewnames ); v_add_to_rviewnames( yyvsp[0].yt_ID ); v_extendoccur( yyvsp[0].yt_ID, ITUserRView() ); ; break;} case 197: #line 1011 "../kimwy.y" { yyval.yt_viewnames = Consviewnames( yyvsp[0].yt_ID, yyvsp[-2].yt_viewnames ); v_add_to_rviewnames( yyvsp[0].yt_ID ); v_extendoccur( yyvsp[0].yt_ID, ITUserRView() ); ; break;} case 198: #line 1018 "../kimwy.y" { yyval.yt_storageclasses = yyvsp[-1].yt_storageclasses; pg_storageclasseshavebeendefined = True; ; break;} case 199: #line 1023 "../kimwy.y" { yyval.yt_storageclasses = Consstorageclasses( yyvsp[0].yt_ID, Nilstorageclasses()); v_add_to_storageclasses( yyvsp[0].yt_ID, f_emptyId() ); v_extendoccur( yyvsp[0].yt_ID, ITStorageClass() ); ; break;} case 200: #line 1027 "../kimwy.y" { yyval.yt_storageclasses = Consstorageclasses( yyvsp[0].yt_ID, yyvsp[-1].yt_storageclasses ); v_add_to_storageclasses( yyvsp[0].yt_ID, f_emptyId() ); v_extendoccur( yyvsp[0].yt_ID, ITStorageClass() ); ; break;} case 201: #line 1031 "../kimwy.y" { yyval.yt_storageclasses = Consstorageclasses( yyvsp[0].yt_ID, yyvsp[-2].yt_storageclasses ); v_add_to_storageclasses( yyvsp[0].yt_ID, f_emptyId() ); v_extendoccur( yyvsp[0].yt_ID, ITStorageClass() ); ; break;} case 202: #line 1038 "../kimwy.y" { ID tmp_id = f_ID_of_declarator(yyvsp[-2].yt_ac_declarator); fnclass tmp_type = f_fnclass_info(yyvsp[-3].yt_ac_declaration_specifiers, pg_filename); /* first check before making the FnAcDeclaration, to keep the * error message in a nice order */ check_proto_ac_parameter_declaration( tmp_id->file, tmp_id->line, yyvsp[-1].yt_ac_declaration_list, yyvsp[-2].yt_ac_declarator ); yyval.yt_fndeclaration = FnAcDeclaration( yyvsp[-3].yt_ac_declaration_specifiers, yyvsp[-2].yt_ac_declarator, yyvsp[-1].yt_ac_declaration_list, yyvsp[0].yt_Ctext, tmp_id, tmp_type ); pf_resetwithvariable(); v_defoccur( tmp_id, ITUserFunction( tmp_type ) ); yyval.yt_fndeclaration->file = pg_filename; yyval.yt_fndeclaration->last_line = pg_lineno; ; break;} case 203: #line 1052 "../kimwy.y" { yyval.yt_ac_declaration = AcDeclaration( yyvsp[-2].yt_ac_declaration_specifiers, yyvsp[-1].yt_ac_init_declarator_list ); ; break;} case 204: #line 1057 "../kimwy.y" { yyval.yt_ac_declaration_list = Nilac_declaration_list(); ; break;} case 205: #line 1059 "../kimwy.y" { yyval.yt_ac_declaration_list = yyvsp[0].yt_ac_declaration_list; ; break;} case 206: #line 1063 "../kimwy.y" { yyval.yt_ac_declaration_list = Consac_declaration_list( yyvsp[0].yt_ac_declaration, Nilac_declaration_list() ); ; break;} case 207: #line 1065 "../kimwy.y" { yyval.yt_ac_declaration_list = Consac_declaration_list( yyvsp[0].yt_ac_declaration, yyvsp[-1].yt_ac_declaration_list ); ; break;} case 208: #line 1074 "../kimwy.y" { yyval.yt_ac_declaration_specifiers = Consac_declaration_specifiers( AcDeclSpecTypeSpec( yyvsp[0].yt_ac_type_specifier ), Nilac_declaration_specifiers() ); ; break;} case 209: #line 1078 "../kimwy.y" { yyval.yt_ac_declaration_specifiers = Consac_declaration_specifiers( AcDeclSpecTypeSpec( yyvsp[0].yt_ac_type_specifier ), Consac_declaration_specifiers( AcDeclSpecStorageSpec( yyvsp[-1].yt_ac_storage_class_specifier ), Nilac_declaration_specifiers() )); ; break;} case 210: #line 1084 "../kimwy.y" { yyval.yt_ac_declaration_specifiers = Consac_declaration_specifiers( AcDeclSpecTypeSpec( yyvsp[0].yt_ac_type_specifier ), Consac_declaration_specifiers( AcDeclSpecTypeQual( yyvsp[-1].yt_ac_type_qualifier ), Nilac_declaration_specifiers() )); ; break;} case 211: #line 1090 "../kimwy.y" { yyval.yt_ac_declaration_specifiers = Consac_declaration_specifiers( AcDeclSpecTypeSpec( yyvsp[0].yt_ac_type_specifier ), Consac_declaration_specifiers( AcDeclSpecTypeQual( yyvsp[-1].yt_ac_type_qualifier ), Consac_declaration_specifiers( AcDeclSpecStorageSpec( yyvsp[-2].yt_ac_storage_class_specifier ), Nilac_declaration_specifiers() ))); ; break;} case 212: #line 1101 "../kimwy.y" { yyval.yt_ac_storage_class_specifier = AcAuto(); ; break;} case 213: #line 1103 "../kimwy.y" { yyval.yt_ac_storage_class_specifier = AcRegister(); ; break;} case 214: #line 1105 "../kimwy.y" { yyval.yt_ac_storage_class_specifier = AcStatic(); ; break;} case 215: #line 1107 "../kimwy.y" { yyval.yt_ac_storage_class_specifier = AcExtern(); ; break;} case 216: #line 1109 "../kimwy.y" { yyval.yt_ac_storage_class_specifier = AcTypedef(); ; break;} case 217: #line 1114 "../kimwy.y" { yyval.yt_ac_type_specifier = AcTypeSpec( yyvsp[0].yt_ID ); ; break;} case 218: #line 1119 "../kimwy.y" { yyval.yt_ac_type_qualifier = AcConst(); ; break;} case 219: #line 1121 "../kimwy.y" { yyval.yt_ac_type_qualifier = AcVolatile(); ; break;} case 220: #line 1126 "../kimwy.y" { yyval.yt_ac_init_declarator_list = Nilac_init_declarator_list(); ; break;} case 221: #line 1128 "../kimwy.y" { yyval.yt_ac_init_declarator_list = yyvsp[0].yt_ac_init_declarator_list; ; break;} case 222: #line 1132 "../kimwy.y" { yyval.yt_ac_init_declarator_list = Consac_init_declarator_list( yyvsp[0].yt_ac_init_declarator, Nilac_init_declarator_list() ); ; break;} case 223: #line 1134 "../kimwy.y" { yyval.yt_ac_init_declarator_list = Consac_init_declarator_list( yyvsp[0].yt_ac_init_declarator, yyvsp[-2].yt_ac_init_declarator_list ); ; break;} case 224: #line 1139 "../kimwy.y" { yyval.yt_ac_init_declarator = AcInitDecl( yyvsp[0].yt_ac_declarator ); ; break;} case 225: #line 1147 "../kimwy.y" { yyval.yt_ac_declarator = AcDeclarator( Nopointer(), yyvsp[0].yt_ac_direct_declarator ); ; break;} case 226: #line 1149 "../kimwy.y" { yyval.yt_ac_declarator = AcDeclarator( Yespointer( yyvsp[-1].yt_ac_pointer ), yyvsp[0].yt_ac_direct_declarator ); ; break;} case 227: #line 1154 "../kimwy.y" { yyval.yt_ac_declarator = AcDeclarator(Nopointer(), yyvsp[0].yt_ac_direct_declarator ); ; break;} case 228: #line 1156 "../kimwy.y" { yyval.yt_ac_declarator = AcDeclarator( Yespointer( yyvsp[-1].yt_ac_pointer ), yyvsp[0].yt_ac_direct_declarator ); ; break;} case 229: #line 1161 "../kimwy.y" { yyval.yt_ac_declarator = AcDeclarator( Yespointer( yyvsp[-1].yt_ac_pointer ), yyvsp[0].yt_ac_direct_declarator ); ; break;} case 230: #line 1166 "../kimwy.y" { yyval.yt_ac_direct_declarator = AcDirectDeclId( yyvsp[0].yt_ID ); ; break;} case 231: #line 1168 "../kimwy.y" { yyval.yt_ac_direct_declarator = AcDirectDeclPack( yyvsp[-1].yt_ac_declarator ); ; break;} case 232: #line 1170 "../kimwy.y" { yyval.yt_ac_direct_declarator = AcDirectDeclArray( yyvsp[-3].yt_ac_direct_declarator, yyvsp[-1].yt_ac_constant_expression_option ); ; break;} case 233: #line 1172 "../kimwy.y" { yyval.yt_ac_direct_declarator = AcDirectDeclProto( yyvsp[-3].yt_ac_direct_declarator, yyvsp[-1].yt_ac_parameter_type_list ); ; break;} case 234: #line 1174 "../kimwy.y" { yyval.yt_ac_direct_declarator = AcDirectDeclKandR( yyvsp[-2].yt_ac_direct_declarator, Nilac_identifier_list() ); ; break;} case 235: #line 1176 "../kimwy.y" { yyval.yt_ac_direct_declarator = AcDirectDeclKandR( yyvsp[-3].yt_ac_direct_declarator, yyvsp[-1].yt_ac_identifier_list ); ; break;} case 236: #line 1181 "../kimwy.y" { yyval.yt_ac_direct_declarator = AcDirectDeclProto( AcDirectDeclId( yyvsp[-3].yt_ID ), yyvsp[-1].yt_ac_parameter_type_list ); ; break;} case 237: #line 1183 "../kimwy.y" { yyval.yt_ac_direct_declarator = AcDirectDeclKandR( AcDirectDeclId( yyvsp[-2].yt_ID ), Nilac_identifier_list() ); ; break;} case 238: #line 1185 "../kimwy.y" { yyval.yt_ac_direct_declarator = AcDirectDeclKandR( AcDirectDeclId( yyvsp[-3].yt_ID ), yyvsp[-1].yt_ac_identifier_list ); ; break;} case 239: #line 1190 "../kimwy.y" { yyval.yt_ac_pointer = AcPointerNil( Nilac_type_qualifier_list() ); ; break;} case 240: #line 1192 "../kimwy.y" { yyval.yt_ac_pointer = AcPointerNil( yyvsp[0].yt_ac_type_qualifier_list ); ; break;} case 241: #line 1194 "../kimwy.y" { yyval.yt_ac_pointer = AcPointerCons( Nilac_type_qualifier_list(), yyvsp[0].yt_ac_pointer ); ; break;} case 242: #line 1196 "../kimwy.y" { yyval.yt_ac_pointer = AcPointerCons( yyvsp[-1].yt_ac_type_qualifier_list, yyvsp[0].yt_ac_pointer ); ; break;} case 243: #line 1201 "../kimwy.y" { yyval.yt_ac_type_qualifier_list = Consac_type_qualifier_list( yyvsp[0].yt_ac_type_qualifier, Nilac_type_qualifier_list() ); ; break;} case 244: #line 1203 "../kimwy.y" { yyval.yt_ac_type_qualifier_list = Consac_type_qualifier_list( yyvsp[0].yt_ac_type_qualifier, yyvsp[-1].yt_ac_type_qualifier_list ); ; break;} case 245: #line 1208 "../kimwy.y" { yyval.yt_ac_parameter_type_list = AcParList( yyvsp[0].yt_ac_parameter_list ); ; break;} case 246: #line 1210 "../kimwy.y" { yyval.yt_ac_parameter_type_list = AcParList3Dot( yyvsp[-2].yt_ac_parameter_list ); ; break;} case 247: #line 1215 "../kimwy.y" { yyval.yt_ac_parameter_list = Consac_parameter_list( yyvsp[0].yt_ac_parameter_declaration, Nilac_parameter_list() ); ; break;} case 248: #line 1217 "../kimwy.y" { yyval.yt_ac_parameter_list = Consac_parameter_list( yyvsp[0].yt_ac_parameter_declaration, yyvsp[-2].yt_ac_parameter_list ); ; break;} case 249: #line 1222 "../kimwy.y" { yyval.yt_ac_parameter_declaration = AcParDeclDecl( yyvsp[-1].yt_ac_declaration_specifiers, yyvsp[0].yt_ac_declarator ); ; break;} case 250: #line 1224 "../kimwy.y" { yyval.yt_ac_parameter_declaration = AcParDeclAbsdecl( yyvsp[-1].yt_ac_declaration_specifiers, yyvsp[0].yt_ac_abstract_declarator ); ; break;} case 251: #line 1229 "../kimwy.y" { yyval.yt_ac_identifier_list = Consac_identifier_list( yyvsp[0].yt_ID, Nilac_identifier_list() ); ; break;} case 252: #line 1231 "../kimwy.y" { yyval.yt_ac_identifier_list = Consac_identifier_list( yyvsp[0].yt_ID, yyvsp[-2].yt_ac_identifier_list ); ; break;} case 253: #line 1236 "../kimwy.y" { yyval.yt_ac_abstract_declarator = AcAbsdeclPointer( yyvsp[0].yt_ac_pointer ); ; break;} case 254: #line 1238 "../kimwy.y" { yyval.yt_ac_abstract_declarator = AcAbsdeclDirdecl( Nopointer(), yyvsp[0].yt_ac_direct_abstract_declarator ); ; break;} case 255: #line 1240 "../kimwy.y" { yyval.yt_ac_abstract_declarator = AcAbsdeclDirdecl( Yespointer( yyvsp[-1].yt_ac_pointer ), yyvsp[0].yt_ac_direct_abstract_declarator ); ; break;} case 256: #line 1245 "../kimwy.y" { yyval.yt_ac_direct_abstract_declarator = AcDirAbsdeclPack( yyvsp[-1].yt_ac_abstract_declarator ); ; break;} case 257: #line 1247 "../kimwy.y" { yyval.yt_ac_direct_abstract_declarator = AcDirAbsdeclArray( Yesac_direct_abstract_declarator( yyvsp[-3].yt_ac_direct_abstract_declarator ), yyvsp[-1].yt_ac_constant_expression_option ); ; break;} case 258: #line 1249 "../kimwy.y" { yyval.yt_ac_direct_abstract_declarator = AcDirAbsdeclArray( Noac_direct_abstract_declarator(), yyvsp[-1].yt_ac_constant_expression_option ); ; break;} case 259: #line 1251 "../kimwy.y" { yyval.yt_ac_direct_abstract_declarator = AcDirAbsdeclFn( Yesac_direct_abstract_declarator( yyvsp[-2].yt_ac_direct_abstract_declarator ), AcParList( Nilac_parameter_list() )); ; break;} case 260: #line 1254 "../kimwy.y" { yyval.yt_ac_direct_abstract_declarator = AcDirAbsdeclFn( Yesac_direct_abstract_declarator( yyvsp[-3].yt_ac_direct_abstract_declarator ), yyvsp[-1].yt_ac_parameter_type_list ); ; break;} case 261: #line 1257 "../kimwy.y" { yyval.yt_ac_direct_abstract_declarator = AcDirAbsdeclFn( Noac_direct_abstract_declarator(), AcParList( Nilac_parameter_list() )); ; break;} case 262: #line 1260 "../kimwy.y" { yyval.yt_ac_direct_abstract_declarator = AcDirAbsdeclFn( Noac_direct_abstract_declarator(), yyvsp[-1].yt_ac_parameter_type_list ); ; break;} case 263: #line 1269 "../kimwy.y" { yyval.yt_ac_constant_expression_option = Yesac_constant_expression( yyvsp[0].yt_ac_constant_expression ); ; break;} case 264: #line 1272 "../kimwy.y" { do_CEXPR(); ; break;} case 265: #line 1274 "../kimwy.y" { do_NORMAL(); yyval.yt_ac_constant_expression = AcConstExpr( yyvsp[0].yt_Cexpression ); ; break;} case 266: #line 1280 "../kimwy.y" { yyval.yt_ID = yyvsp[0].yt_ID; ; break;} case 267: #line 1282 "../kimwy.y" { yyval.yt_ID = yyvsp[0].yt_ID; pf_setwithvariable( yyvsp[0].yt_ID ); ; break;} case 268: #line 1287 "../kimwy.y" { yyval.yt_Ctext = yyvsp[0].yt_Ctext; ; break;} } /* the action file gets copied in in place of this dollarsign */ #line 457 "/usr/local/lib/bison.simple" yyvsp -= yylen; yyssp -= yylen; #ifdef YYLSP_NEEDED yylsp -= yylen; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif *++yyvsp = yyval; #ifdef YYLSP_NEEDED yylsp++; if (yylen == 0) { yylsp->first_line = yylloc.first_line; yylsp->first_column = yylloc.first_column; yylsp->last_line = (yylsp-1)->last_line; yylsp->last_column = (yylsp-1)->last_column; yylsp->text = 0; } else { yylsp->last_line = (yylsp+yylen-1)->last_line; yylsp->last_column = (yylsp+yylen-1)->last_column; } #endif /* Now "shift" the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTBASE] + *yyssp; if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTBASE]; goto yynewstate; yyerrlab: /* here on detecting error */ if (! yyerrstatus) /* If not already recovering from an error, report this error. */ { ++yynerrs; #ifdef YYERROR_VERBOSE yyn = yypact[yystate]; if (yyn > YYFLAG && yyn < YYLAST) { int size = 0; char *msg; int x, count; count = 0; /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) size += strlen(yytname[x]) + 15, count++; # ifdef YYERRMSG_VERBOSE size += strlen(error_message[yystate][2]) + 15; # endif /* YYERRMSG_VERBOSE */ msg = (char *) malloc(size + 15); if (msg != 0) { strcpy(msg, "parse error"); if (count < 5) { count = 0; for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) { strcat(msg, count == 0 ? ", expecting `" : " or `"); strcat(msg, yytname[x]); strcat(msg, "'"); count++; } } # ifdef YYERRMSG_VERBOSE strcat(msg, error_message[yystate][2]); # endif /* YYERRMSG_VERBOSE */ yyerror(msg); free(msg); } else yyerror ("parse error; also virtual memory exceeded"); } else #else # ifdef YYERRMSG_VERBOSE { int size = 0; char *msg; size += strlen(error_message[yystate][2]) + 15; msg = (char *) malloc(size + 15); if (msg != 0) { strcpy(msg, "parse error"); strcat(msg, error_message[yystate][2]); yyerror(msg); free(msg); } else yyerror ("parse error; also virtual memory exceeded"); } } else { if (yyrecover) yyerror("error recovery token ignored"); else # endif /* YYERRMSG_VERBOSE */ #endif /* YYERROR_VERBOSE */ yyerror("parse error"); } goto yyerrlab1; yyerrlab1: /* here on error raised explicitly by an action */ if (yyerrstatus == 3) { /* if just tried and failed to reuse lookahead token after an error, discard it. */ /* return failure if at end of input */ if (yychar == YYEOF) YYABORT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); #endif yychar = YYEMPTY; } /* Else will try to reuse lookahead token after shifting the error token. */ yyerrstatus = 3; /* Each real token shifted decrements this */ goto yyerrhandle; yyerrdefault: /* current state does not do anything special for the error token. */ #if 0 /* This is wrong; only states that explicitly want error tokens should shift them. */ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ if (yyn) goto yydefault; #endif yyerrpop: /* pop the current state because it cannot handle the error token */ if (yyssp == yyss) YYABORT; yyvsp--; yystate = *--yyssp; #ifdef YYLSP_NEEDED yylsp--; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "Error: state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif yyerrhandle: yyn = yypact[yystate]; if (yyn == YYFLAG) goto yyerrdefault; yyn += YYTERROR; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) goto yyerrdefault; yyn = yytable[yyn]; if (yyn < 0) { if (yyn == YYFLAG) goto yyerrpop; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrpop; if (yyn == YYFINAL) YYACCEPT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting error token, "); #endif *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif yystate = yyn; goto yynewstate; } #line 1290 "../kimwy.y" kimwitu-4.6.1.orig/src/kimwy.h0100644000176100001440000000124107076113234015554 0ustar debacleusers#define T_ID 258 #define T_INT 259 #define T_CNEWLINES 260 #define T_CLINE 261 #define T_CEXPRESSION 262 #define T_DOLLARVAR 263 #define T_INCLUDE 264 #define T_INCLUDESTART 265 #define T_INCLUDEEND 266 #define T_LIST 267 #define T_ARROW 268 #define T_STATIC 269 #define T_WITH 270 #define T_FOREACH 271 #define T_FOREACH_AFTER 272 #define T_DEFAULT 273 #define T_UNPBLOCKSTART 274 #define T_UNPBLOCKEND 275 #define T_PERCENTRVIEW 276 #define T_PERCENTUVIEW 277 #define T_PERCENTSTORAGECLASS 278 #define T_AUTO 279 #define T_REGISTER 280 #define T_EXTERN 281 #define T_TYPEDEF 282 #define T_CONST 283 #define T_VOLATILE 284 #define T_DOTDOTDOT 285 extern YYSTYPE yylval; kimwitu-4.6.1.orig/src/kimwy.hh0100644000176100001440000000124107076113234015724 0ustar debacleusers#define T_ID 258 #define T_INT 259 #define T_CNEWLINES 260 #define T_CLINE 261 #define T_CEXPRESSION 262 #define T_DOLLARVAR 263 #define T_INCLUDE 264 #define T_INCLUDESTART 265 #define T_INCLUDEEND 266 #define T_LIST 267 #define T_ARROW 268 #define T_STATIC 269 #define T_WITH 270 #define T_FOREACH 271 #define T_FOREACH_AFTER 272 #define T_DEFAULT 273 #define T_UNPBLOCKSTART 274 #define T_UNPBLOCKEND 275 #define T_PERCENTRVIEW 276 #define T_PERCENTUVIEW 277 #define T_PERCENTSTORAGECLASS 278 #define T_AUTO 279 #define T_REGISTER 280 #define T_EXTERN 281 #define T_TYPEDEF 282 #define T_CONST 283 #define T_VOLATILE 284 #define T_DOTDOTDOT 285 extern YYSTYPE yylval; kimwitu-4.6.1.orig/src/kimwy.y0100644000176100001440000011041707076113221015577 0ustar debacleusers%{ /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ %} %{ /* * kimwy.y */ #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char kimwy_yAccesSid[] = "@(#)$Id: kimwy.y,v 2.41 1998/01/29 18:04:21 belinfan Rel $"; #endif %} %{ #ifdef BISON_RECOVER /* Note that setting YYDEBUG is required even if you do not want to * set the yydebug variable because we use the symbol strings in * `yytname' for initialising costs and also for error messages. */ #define YYDEBUG 1 #define yyinsertcost(token) (token[0]=='\''?1:strlen(token)) #define yydeletecost(token) (token[0]=='\''?1:strlen(token)) #endif /* BISON_RECOVER */ %} %{ /***************************************************************************/ /* * Name conventions: tokens are in CAPITALS * nonterminals are in lowercase * operators are capitalized * */ %} %{ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #ifdef KC_STDC # include /* for malloc and free */ #endif #include /* for strcat */ /* For windows (NT at least) we need to redifine alloca */ #if defined(_WIN32) && ! defined (__GNUC__) # define alloca _alloca # include #endif #include "k.h" #include "parse.h" #include "extocc.h" #include "defocc.h" #include "util.h" /* for the v_add_to routines */ #include "rk.h" /* for the rewrite_patternchains routine */ static ID pl_phylum; /* local kimwy.y var */ static withexpressions pl_withvariables; /* local kimwy.y var */ static withexpressionsstack pl_withvariablesstack; /* local kimwy.y var */ static idCexpressionsstack pl_idCexpressionsstack; /* local kimwy.y var */ static filelinestack pl_filelinestack; /* local kimwy.y var */ static nooperatorsstack pl_nooperatorsstack; /* local kimwy.y var */ static int non_default_outmostpattern = 0; /* local kimwy.y var */ #define dollar_mark_set() (!eq_withexpressions(pl_withvariables, Nilwithexpressions())) #define do_MainC() do { if ( dollar_mark_set() ) do_NORMAL(); else do_C(); } while(kc_zero_constant) extern void do_NORMAL(); extern void do_CEXPR(); extern void do_CEXPRDQ(); extern void do_CEXPRSQ(); extern void do_C(); extern void yyerror KC__P((char*)); extern int yylex(); #define pf_setfileline(x) do { (x)->file = pg_filename; \ (x)->line = pg_lineno; \ } while(kc_zero_constant) #define pf_pushfileline() pl_filelinestack = Consfilelinestack( FileLine( pg_filename, pg_lineno ), pl_filelinestack ) #define pf_setstacktopfileline(x) do { (x)->file = pl_filelinestack->u.Consfilelinestack.fileline_1->u.FileLine.casestring_1; \ (x)->line = pl_filelinestack->u.Consfilelinestack.fileline_1->u.FileLine.int_1; \ } while(kc_zero_constant) #define pf_topfileline() (pl_filelinestack->u.Consfilelinestack.fileline_1) #define pf_popfileline() do { filelinestack tmp_pl_filelinestack = pl_filelinestack; \ pl_filelinestack = pl_filelinestack->u.Consfilelinestack.filelinestack_1; \ free_fileline( tmp_pl_filelinestack->u.Consfilelinestack.fileline_1, True ); \ free_filelinestack( tmp_pl_filelinestack, False ); \ } while(kc_zero_constant) #define pf_setwithvariable(x) pl_withvariables = Conswithexpressions(WEVariable(x), pl_withvariables) #define pf_resetwithvariable() pl_withvariables = Nilwithexpressions() #define pf_push_no_operators() pl_nooperatorsstack = Consnooperatorsstack( non_default_outmostpattern, pl_nooperatorsstack ); #define pf_pop_no_operators() do { nooperatorsstack tmp_pl_nooperatorsstack = pl_nooperatorsstack; \ non_default_outmostpattern = pl_nooperatorsstack->u.Consnooperatorsstack.int_1; \ pl_nooperatorsstack = pl_nooperatorsstack->u.Consnooperatorsstack.nooperatorsstack_1; \ free_nooperatorsstack( tmp_pl_nooperatorsstack, False ); \ } while(kc_zero_constant) #define pf_pushwithvariable() pl_withvariablesstack = Conswithexpressionsstack( pl_withvariables, pl_withvariablesstack ) #define pf_topwithvariable() (pl_withvariablesstack->u.Conswithexpressionsstack.withexpressions_1) #define pf_popwithvariable() do { withexpressionsstack tmp_pl_withvariablesstack = pl_withvariablesstack; \ pl_withvariablesstack = pl_withvariablesstack->u.Conswithexpressionsstack.withexpressionsstack_1; \ free_withexpressionsstack( tmp_pl_withvariablesstack, False ); \ } while(kc_zero_constant) #define pf_pushidCexpressions(x) pl_idCexpressionsstack = ConsidCexpressionsstack( x, pl_idCexpressionsstack ) #define pf_topidCexpressions() (pl_idCexpressionsstack->u.ConsidCexpressionsstack.idCexpressions_1) #define pf_popidCexpressions() do { idCexpressionsstack tmp_pl_idCexpressionsstack = pl_idCexpressionsstack; \ pl_idCexpressionsstack = pl_idCexpressionsstack->u.ConsidCexpressionsstack.idCexpressionsstack_1; \ free_idCexpressionsstack( tmp_pl_idCexpressionsstack, False ); \ } while(kc_zero_constant) %} %token T_ID %token T_INT %token T_CNEWLINES %token T_CLINE %token T_CEXPRESSION %token T_DOLLARVAR %token T_INCLUDE %token T_INCLUDESTART %token T_INCLUDEEND %token T_LIST %token T_ARROW %token T_STATIC %token T_WITH %token T_FOREACH %token T_FOREACH_AFTER %token T_DEFAULT %token T_UNPBLOCKSTART %token T_UNPBLOCKEND %token T_PERCENTRVIEW %token T_PERCENTUVIEW %token T_PERCENTSTORAGECLASS %token T_AUTO %token T_REGISTER %token T_EXTERN %token T_TYPEDEF %token T_CONST %token T_VOLATILE %token T_DOTDOTDOT %type dollarvar %type id %type int /* %type string */ /* no %type for specification */ /* no %type for declarations */ /* no %type for declaration */ %type phylumdeclaration %type storageoption %type productionblock %type alternatives %type alternative %type arguments %type Ccode_option %type attributes_option %type attribute %type attribute_init_option %type idCexpressions %type idCexpression %type withCexpressions %type withCexpression %type Cexpression %type Cexpression_inner %type Cexpression_elem %type Cexpression_elem_inner %type CexpressionDQ %type CexpressionDQ_elem %type CexpressionSQ %type CexpressionSQ_elem %type MainCbody %type MainCbodyinC %type MainCBodycontinuation %type Cbody %type Ctext %type Ctext_elem %type foreach_continuation %type init_option %type foreach_end_continuation %type includedeclaration %type includefiles_option %type includefiles %type includes %type include %type rwdeclaration %type rwclauses_or_term %type rwclauses %type rwclause %type patternchains %type patternchain %type patternchainitem %type patternchainitem_lineinfo %type outmostpatterns %type outmostpattern %type pattern %type patternsoption %type patterns %type term %type termsoption %type terms %type withcases %type withcase %type unparsedeclaration %type unparseclauses %type unparseclause %type defuviewnames %type defrviewnames %type useviewnames %type unparseitems %type unparseitem %type unpsubterm %type unpattributes %type unpattribute %type viewnameoption %type uviewdeclaration %type rviewdeclaration %type storageclassdeclaration %type defstorageclasses %type ac_function_definition %type ac_declaration %type ac_declaration_list_option %type ac_declaration_list %type ac_declaration_specifiers %type ac_storage_class_specifier %type ac_type_specifier %type ac_type_qualifier %type ac_init_declarator_list_option %type ac_init_declarator_list %type ac_init_declarator %type ac_declarator %type ac_pointer_declarator %type ac_direct_declarator %type ac_fn_declarator %type ac_direct_fn_declarator %type ac_pointer %type ac_type_qualifier_list %type ac_parameter_type_list %type ac_parameter_list %type ac_parameter_declaration %type ac_identifier_list %type ac_abstract_declarator %type ac_direct_abstract_declarator %type ac_constant_expression_option %type ac_constant_expression %type ac_identifier %type ac_compound_statement %start specification %% dollarvar : T_DOLLARVAR { $$ = Int( $1 ); pf_setfileline( $$ ); } ; id : T_ID { $$ = Id( Str( $1 )); pf_setfileline( $$ ); } ; int : T_INT { $$ = Int( $1 ); pf_setfileline( $$ ); } ; /* string : STRING { $$ = String( $1 ); pf_setfileline( $$ ); } ; */ specification : { /* initialize variables and scanner state */ pl_filelinestack = Nilfilelinestack(); pl_nooperatorsstack = Nilnooperatorsstack(); pl_phylum = 0; pl_withvariables = Nilwithexpressions(); pl_withvariablesstack = Nilwithexpressionsstack(); pl_idCexpressionsstack = NilidCexpressionsstack(); do_NORMAL(); } declarations ; declarations : declaration | declarations declaration ; declaration : phylumdeclaration { Thephylumdeclarations = mergephylumdeclarations( $1, Thephylumdeclarations ); } | rwdeclaration { Therwdeclarations = Consrwdeclarations( $1, Therwdeclarations ); } /* | functiondeclaration { Thefndeclarations = Consfndeclarations( $1, Thefndeclarations ); } */ | ac_function_definition { Thefndeclarations = Consfndeclarations( $1, Thefndeclarations ); } | includedeclaration { } | unparsedeclaration { Theunparsedeclarations = Consunparsedeclarations( $1, Theunparsedeclarations ); } | uviewdeclaration { } | rviewdeclaration { } | storageclassdeclaration { } ; phylumdeclaration : id storageoption ':' { pl_phylum = $1; } productionblock Ccode_option ';' { $$ = PhylumDeclaration( $1, $2, $5, $6 ); v_extendoccur( pl_phylum, ITUserPhylum( $$ ) ); } ; storageoption : /* empty */ { $$ = NoStorageOption(); } | '{' id '}' { $$ = PositiveStorageOption( $2 ); v_extendoccur( $2, ITStorageClass() ); } | '{' '!' id '}' { $$ = NegativeStorageOption( $3 ); v_extendoccur( $3, ITStorageClass() ); } ; productionblock : /* empty */ { $$ = Emptyproductionblock(); } | T_LIST id { $$ = ListAlternatives( makeListAlternatives( pl_phylum, $2 ), $2 ); Theargsnumbers = insert_in_argsnumbers(0, Theargsnumbers); Theargsnumbers = insert_in_argsnumbers(2, Theargsnumbers); } | alternatives { $$ = NonlistAlternatives( $1 ); } ; alternatives : alternative { $$ = Consalternatives( $1, Nilalternatives() ); } | alternatives '|' alternative { $$ = Consalternatives( $3, $1 ); } ; alternative : id '(' { pg_no_of_arguments = 0; } arguments { Theargsnumbers = insert_in_argsnumbers(pg_no_of_arguments, Theargsnumbers); } ')' { $$ = Alternative( $1, $4 ); v_extendoccur( $1, ITUserOperator( $$, pl_phylum ) ); } ; arguments : /* empty */ { $$ = Nilarguments(); } | arguments id { $$ = Consarguments( $2, $1 ); pg_no_of_arguments++; } ; Ccode_option : /* empty */ { $$ = CcodeOption( Nilattributes(), NilCtexts() ); } | '{' attributes_option init_option '}' { $$ = CcodeOption( $2, $3 ); } ; attributes_option : /* empty */ { $$ = Nilattributes(); } | attributes_option attribute { $$ = Consattributes( $2, $1 ); } ; attribute : id id attribute_init_option ';' { $$ = Attribute( $1, $2, $3 ); } ; attribute_init_option : /* empty */ { $$ = Noattribute_initialisation(); } | '=' { do_CEXPR(); } Cexpression { do_NORMAL(); $$ = Yesattribute_initialisation( $3 ); } ; /* * we use the fact that the empty list is the first 'element' that is * parsed into the list */ Cexpression : /* empty */ { $$ = NilCexpression(); pf_setfileline( $$ ); } | Cexpression Cexpression_elem { $$ = ConsCexpression( $2, $1 ); $$->file = $1->file; $$->line = $1->line; } ; Cexpression_elem : T_CEXPRESSION { $$ = CExpressionPart( $1 ); } | dollarvar { $$ = CExpressionDollarvar( $1 ); } | '\n' { $$ = CExpressionNl( 1 ); } | T_CNEWLINES { $$ = CExpressionNl( $1 ); } | '\"' CexpressionDQ '\"' { $$ = CExpressionDQ( $2 ); } | '\'' CexpressionSQ '\'' { $$ = CExpressionSQ( $2 ); } | '(' Cexpression_inner ')' { $$ = CExpressionPack( $2 ); } | '[' Cexpression_inner ']' { $$ = CExpressionArray( $2 ); } ; Cexpression_inner : /* empty */ { $$ = NilCexpression(); pf_setfileline( $$ ); } | Cexpression_inner Cexpression_elem_inner { $$ = ConsCexpression( $2, $1 ); $$->file = $1->file; $$->line = $1->line; } ; Cexpression_elem_inner : Cexpression_elem { $$ = $1; } | ',' { $$ = CExpressionPart( mkcasestring(",") ); } ; CexpressionDQ : /* empty */ { $$ = NilCexpressionDQ(); } | CexpressionDQ CexpressionDQ_elem { $$ = ConsCexpressionDQ( $2, $1 ); } ; CexpressionDQ_elem : T_CEXPRESSION { $$ = CExpressionDQPart( $1 ); } | '\n' { $$ = CExpressionDQNl( 1 ); } ; CexpressionSQ : /* empty */ { $$ = NilCexpressionSQ(); } | CexpressionSQ CexpressionSQ_elem { $$ = ConsCexpressionSQ( $2, $1 ); } ; CexpressionSQ_elem : T_CEXPRESSION { $$ = CExpressionSQPart( $1 ); } | '\n' { $$ = CExpressionSQNl( 1 ); } ; idCexpressions : idCexpression { $$ = ConsidCexpressions( $1, NilidCexpressions() ); } | idCexpressions ',' idCexpression { $$ = ConsidCexpressions( $3, $1 ); } ; idCexpression : id { do_CEXPR(); } Cexpression { do_NORMAL(); } { $$ = IdCexpression( $1, $3 ); } ; withCexpression : Cexpression { $$ = WECexpression( $1 ); pf_setstacktopfileline( $$ ); } ; withCexpressions : withCexpression { $$ = Conswithexpressions( $1, Nilwithexpressions() ); } | withCexpressions ',' { pf_pushfileline(); } withCexpression { $$ = Conswithexpressions( $4, $1 ); pf_popfileline(); } ; /* * use global variable to pass/save the $fnargument that can be picked up * and inserted in the withcases in the MainCbody continuation so that * it can return a complete CtextWithexpression */ MainCbody : '{' { do_MainC(); pf_pushfileline(); pf_pushwithvariable(); pf_resetwithvariable(); } MainCBodycontinuation { do_NORMAL(); } '}' { $$ = $3; pf_setstacktopfileline( $$ ); pf_popfileline(); pf_popwithvariable(); } ; MainCbodyinC : '{' { do_MainC(); pf_pushfileline(); pf_pushwithvariable(); pf_resetwithvariable(); } MainCBodycontinuation { do_C(); } '}' { $$ = $3; pf_setstacktopfileline( $$ ); pf_popfileline(); pf_popwithvariable(); } ; MainCBodycontinuation : Ctext { $$ = $1; pf_setstacktopfileline( $$ ); } | withcases { Ctext_elem tmp = CTextWithexpression( pf_topwithvariable(), $1, NotInForeachContext() ); pf_setstacktopfileline( tmp ); $$ = ConsCtext( tmp, NilCtext() ); pf_setstacktopfileline( $$ ); if (! non_default_outmostpattern ) v_report(NonFatal( NoFileLine(), Problem1S( "can not infer type from `default' pattern(s)" ))); non_default_outmostpattern = 0; } ; Cbody : '{' { do_C(); pf_pushfileline(); pf_push_no_operators(); } Ctext { do_NORMAL(); } '}' { $$ = $3; pf_setstacktopfileline( $$ ); pf_popfileline(); pf_pop_no_operators(); } ; Ctext : /* empty */ { $$ = NilCtext(); pf_setfileline( $$ ); } | Ctext { pf_pushfileline(); } Ctext_elem { $$ = ConsCtext( $3, $1 ); pf_setstacktopfileline( $3 ); pf_popfileline(); $$->file = $1->file; $$->line = $1->line; } ; Ctext_elem : T_CLINE { $$ = CTextLine( $1 ); } | dollarvar { $$ = CTextDollarVar( $1 ); } | '\n' { $$ = CTextNl( 1 ); } | T_CNEWLINES { $$ = CTextNl( $1 ); } | '\"' { do_CEXPRDQ(); } CexpressionDQ '\"' { do_C(); $$ = CTextCexpressionDQ( $3 ); } | '\'' { do_CEXPRSQ(); } CexpressionSQ '\'' { do_C(); $$ = CTextCexpressionSQ( $3 ); } /* | '(' Cexpression ')' */ | Cbody { do_C(); $$ = CTextCbody( $1 ); } | T_FOREACH { do_NORMAL(); } foreach_continuation { do_C(); $$ = $3; } | T_WITH { do_NORMAL(); } '(' { do_CEXPR(); pf_pushfileline(); } withCexpressions { do_NORMAL(); pf_popfileline(); } ')' '{' withcases '}' { do_C(); $$ = CTextWithexpression( $5, $9, NotInForeachContext() ); if (! non_default_outmostpattern ) v_report(NonFatal( NoFileLine(), Problem1S( "can not infer type from `default' pattern(s)" ))); non_default_outmostpattern = 0; } ; foreach_continuation : '(' patternchain ';' { non_default_outmostpattern = 0; } idCexpressions ')' MainCbodyinC /* or something similar */ { pf_pushidCexpressions($5); } foreach_end_continuation { patternchains pc_list = Conspatternchains($2, Nilpatternchains()); patternchains rewritten = rewrite_patternchains(pc_list, base_rview); withexpressions wexpr = pf_gen_foreachwith_vars( $5 ); Ctext_elem ctwe = CTextWithexpression( wexpr, Conswithcases( Withcase( syn_patternchains_fileline( rewritten, pg_filename, pg_lineno ), $7 ), Nilwithcases() ), InForeachContext($2) ); Ctext ctxts0 = NilCtext(); Ctext ctxts1 = ConsCtext( ctwe, ctxts0 ); pf_setstacktopfileline( ctwe ); pf_setstacktopfileline( ctxts0 ); pf_setstacktopfileline( ctxts1 ); check_no_patternchaingroup_in_patternchain( $2->file, $2->line, $2, "'foreach variable/pattern'" ); $$ = CTextForeachexpression( $2, $5, wexpr, ctxts1, $9); pf_popidCexpressions(); } ; foreach_end_continuation : /* empty */ { $$ = NoForeachAfter(); } | T_FOREACH_AFTER { do_NORMAL(); pf_pushfileline(); } '(' patternchain { non_default_outmostpattern = 0; } ')' MainCbodyinC { patternchains pc_list = Conspatternchains($4, Nilpatternchains()); patternchains rewritten = rewrite_patternchains(pc_list, base_rview); withexpressions wexpr = pf_gen_foreachwith_listvars( pf_topidCexpressions() ); Ctext_elem ctwe = CTextWithexpression( wexpr, Conswithcases( Withcase( syn_patternchains_fileline( rewritten, pg_filename, pg_lineno ), $7 ), Nilwithcases() ), InForeachContext($4) ); Ctext ctxts0 = NilCtext(); Ctext ctxts1 = ConsCtext( ctwe, ctxts0 ); pf_setstacktopfileline( ctwe ); pf_setstacktopfileline( ctxts0 ); pf_setstacktopfileline( ctxts1 ); check_no_patternchaingroup_or_pattern_in_patternchain( $4->file, $4->line, $4, "'foreach variable/pattern'" ); $$ = ForeachAfter( $4, pf_topidCexpressions(), wexpr, ctxts1 ); pf_setstacktopfileline( $$ ); pf_popfileline(); } ; init_option : /* empty */ { $$ = NilCtexts(); } | Cbody { $$ = ConsCtexts( $1, NilCtexts() ); } ; includedeclaration : T_INCLUDESTART includefiles_option { pf_pushfileline(); } includes T_INCLUDEEND {{includedeclaration pl_includedeclaration = IncludeDeclaration( $4 ); set_includefiles( $2, pl_includedeclaration ); pf_setstacktopfileline( pl_includedeclaration ); pf_popfileline(); }} ; includefiles_option : /* empty */ {{ includefile pl_includefile = IncludeFile( mkcasestring(INC_CODE) ); $$ = Consincludefiles( pl_includefile, Nilincludefiles() ); }} | includefiles { $$ = $1; } ; includefiles : T_ID {{ includefile pl_includefile = IncludeFile( $1 ); if (pl_includefile->newinclude) { v_report(Warning( NoFileLine(), ProblemSC( "old include redirection keyword (please replace the `KIMW_' part by `KC_'):", $1 ))); pl_includefile = pl_includefile->newinclude; } if ((pl_includefile->inc_type == include_file) || (pl_includefile->inc_type == include_header)) { $$ = Consincludefiles( pl_includefile, Nilincludefiles() ); } else { v_report(NonFatal( NoFileLine(), ProblemSC( "unknown include redirection keyword:", $1 ))); $$ = Nilincludefiles(); } }} | includefiles T_ID {{ includefile pl_includefile = IncludeFile( $2 ); if (pl_includefile->newinclude) { v_report(Warning( NoFileLine(), ProblemSC( "old include redirection keyword (please replace the `KIMW_' part by `KC_'):", $2 ))); pl_includefile = pl_includefile->newinclude; } if ((pl_includefile->inc_type == include_file) || (pl_includefile->inc_type == include_header)) { $$ = Consincludefiles( pl_includefile, $1 ); } else { v_report(NonFatal( NoFileLine(), ProblemSC( "unknown include redirection keyword:", $2 ))); $$ = $1; } }} ; includes : /* empty */ { $$ = Nilincludes(); } | includes include { $$ = Consincludes( $2, $1 ); } ; include : T_INCLUDE { $$ = Include( $1 ); } | '\n' { $$ = IncludeNl( 1 ); } ; rwdeclaration : outmostpatterns T_ARROW { if (! non_default_outmostpattern ) v_report(NonFatal( NoFileLine(), Problem1S( "can not infer type from `default' pattern(s)" ))); non_default_outmostpattern = 0; } rwclauses_or_term ';' { $$ = RwDeclaration( $1, $4 ); } ; rwclauses_or_term : term /* to be depricated */ { $$ = Consrewriteclauses( RewriteClause( Consviewnames( Id( Str( mkcasestring( "base_rview" ))), Nilviewnames() ), $1 ), Nilrewriteclauses() ); } | rwclauses { $$ = $1; } ; rwclauses : rwclause { $$ = Consrewriteclauses( $1, Nilrewriteclauses() ); } | rwclauses rwclause { $$ = Consrewriteclauses( $2, $1 ); } ; rwclause : '<' useviewnames ':' term '>' /* if no view was defined, we replace the implicit base_rview * (Nilviewnames) by an explicit one (ie. base_rview) */ { if (eq_viewnames( $2, Nilviewnames())) { $$ = RewriteClause( Consviewnames( Id( Str( mkcasestring( "base_rview" ))), $2 ), $4 ); } else { $$ = RewriteClause( $2, $4 ); } } ; patternchains : patternchain { $$ = Conspatternchains( $1, Nilpatternchains() ); } | patternchains ',' patternchain { $$ = Conspatternchains( $3, $1 ); } ; patternchain : patternchainitem_lineinfo { $$ = Conspatternchain( $1, Nilpatternchain() ); } | patternchain '&' patternchainitem_lineinfo { $$ = Conspatternchain( $3, $1 ); } ; patternchainitem_lineinfo : { pf_pushfileline(); } patternchainitem { $$ = $2; pf_setstacktopfileline($$); pf_popfileline(); } ; patternchainitem : outmostpattern { $$ = PatternchainitemOutmost( $1 ); } | '(' patternchains ')' { $$ = PatternchainitemGroup( $2 ); } | '$' id /* this rule is to be used only in foreach statements */ { $$ = PatternchainitemDollarid( $2 ); pf_setwithvariable( $2 ); } ; outmostpatterns : outmostpattern { $$ = Consoutmostpatterns( $1, Niloutmostpatterns() ); } | outmostpatterns ',' outmostpattern { $$ = Consoutmostpatterns( $3, $1 ); } ; outmostpattern : id /* operator (wildcard for subterms) */ { $$ = OPOperatorWildcard( $1 ); non_default_outmostpattern = 1; } | id '(' patternsoption ')' /* operator + subterms */ { $$ = OPOperator( $1, $3 ); non_default_outmostpattern = 1; } | id '=' outmostpattern /* non-leaf variable */ { $$ = OPNonLeafVariable( $1, $3 ); non_default_outmostpattern = 1; } | '*' /* wildcard */ { $$ = OPWildcard(); } | T_DEFAULT /* wildcard */ { $$ = OPDefault(); } ; pattern : id /* variable */ { $$ = PVariable( $1 ); } | id '(' patternsoption ')' /* operator + subterms */ { $$ = POperator( $1, $3 ); } | '*' /* wildcard */ { $$ = PWildcard(); } | T_DEFAULT /* wildcard */ { $$ = PWildcard(); } | id '=' pattern /* non-leaf variable */ { $$ = PNonLeafVariable( $1, $3 ); } | '\"' { do_CEXPRDQ(); } CexpressionDQ '\"' /* string literal */ { do_NORMAL(); $$ = PStringLiteral( $3 ); } | int /* int literal */ { $$ = PIntLiteral( $1 ); } ; patternsoption : /* empty */ { $$ = Nilpatterns(); } | patterns { $$ = $1; } ; patterns : pattern { $$ = Conspatterns( $1, Nilpatterns() ); } | patterns ',' pattern { $$ = Conspatterns( $3, $1 ); } ; term: id /* variable */ { $$ = TVariable( $1 ); } | id '(' termsoption ')' /* operator + subterms */ { $$ = TOperator( $1, $3 ); } | '\"' { do_CEXPRDQ(); } CexpressionDQ '\"' /* string literal */ { do_NORMAL(); $$ = TStringLiteral( $3 ); } | int /* int literal */ { $$ = TIntLiteral( $1 ); } ; termsoption : /* empty */ { $$ = Nilterms(); } | terms { $$ = $1; } ; terms : term { $$ = Consterms( $1, Nilterms() ); } | terms ',' term { $$ = Consterms( $3, $1 ); } ; withcases : withcase { $$ = Conswithcases( $1, Nilwithcases() ); } | withcases withcase { $$ = Conswithcases( $2, $1 ); } ; withcase : patternchains ':' Cbody { $$ = Withcase( syn_patternchains_fileline(rewrite_patternchains($1, base_rview), pg_filename, pg_lineno ), $3 ); } ; unparsedeclaration : outmostpatterns T_ARROW { if (! non_default_outmostpattern ) v_report(NonFatal( NoFileLine(), Problem1S( "can not infer type from `default' pattern(s)" ))); non_default_outmostpattern = 0; } unparseclauses ';' { $$ = UnparseDeclaration( $1, $4 ); } ; unparseclauses : unparseclause { $$ = Consunparseclauses( $1, Nilunparseclauses() ); } | unparseclauses unparseclause { $$ = Consunparseclauses( $2, $1 ); } ; unparseclause : '[' useviewnames ':' unparseitems ']' /* if no view was defined, we replace the implicit base_uview * (Nilviewnames) by an explicit one (ie. base_uview) */ { if (eq_viewnames( $2, Nilviewnames())) { $$ = UnparseClause( Consviewnames( Id( Str( mkcasestring( "base_uview" ))), $2 ), $4 ); } else { $$ = UnparseClause( $2, $4 ); } } ; useviewnames : /* empty */ { $$ = Nilviewnames(); } | useviewnames id { $$ = Consviewnames( subst_name( $2, mkcasestring( "base_view" ), mkcasestring( "base_uview" )), $1 ); } unparseitems : /*empty*/ { $$ = Nilunparseitems(); } | unparseitems unparseitem { $$ = Consunparseitems( $2, $1 ); } ; unparseitem : '\"' { do_CEXPRDQ(); } CexpressionDQ '\"' /* string literal */ { do_NORMAL(); } viewnameoption { $$ = UnpStr( $3, $6 ); } | unpsubterm viewnameoption { $$ = UnpSubexpr( $1, $2 ); } | Cbody { $$ = UnpCtext( $1 ); } | T_UNPBLOCKSTART unparseitems T_UNPBLOCKEND { $$ = UnpBody( $2 ); } ; unpsubterm : id { $$ = UnpSubTerm( $1 ); } | dollarvar { $$ = UnpDollarvarTerm( $1 ); } | id unpattributes { $$ = UnpSubAttr( $1, $2 ); } | dollarvar unpattributes { $$ = UnpDollarvarAttr( $1, $2 ); } | '(' id ')' id { $$ = UnpCastedVariable( $2, $4 ); } ; unpattributes : unpattribute { $$ = Consunpattributes( $1, Nilunpattributes() ); } | unpattributes unpattribute { $$ = Consunpattributes( $2, $1 ); } ; unpattribute : T_ARROW id { $$ = $2; } ; viewnameoption : /*empty*/ { $$ = NoViewname(); } | ':' id { $$ = YesViewname( $2 ); } ; uviewdeclaration : T_PERCENTUVIEW defuviewnames ';' { $$ = $2; pg_uviewshavebeendefined = True; } ; defuviewnames : id { $$ = Consviewnames( $1, Nilviewnames()); v_add_to_uviewnames( $1 ); v_extendoccur( $1, ITUserUView() ); } | defuviewnames id { $$ = Consviewnames( $2, $1 ); v_add_to_uviewnames( $2 ); v_extendoccur( $2, ITUserUView() ); } | defuviewnames ',' id { $$ = Consviewnames( $3, $1 ); v_add_to_uviewnames( $3 ); v_extendoccur( $3, ITUserUView() ); } ; rviewdeclaration : T_PERCENTRVIEW defrviewnames ';' { $$ = $2; pg_rviewshavebeendefined = True; } ; defrviewnames : id { $$ = Consviewnames( $1, Nilviewnames()); v_add_to_rviewnames( $1 ); v_extendoccur( $1, ITUserRView() ); } | defrviewnames id { $$ = Consviewnames( $2, $1 ); v_add_to_rviewnames( $2 ); v_extendoccur( $2, ITUserRView() ); } | defrviewnames ',' id { $$ = Consviewnames( $3, $1 ); v_add_to_rviewnames( $3 ); v_extendoccur( $3, ITUserRView() ); } ; storageclassdeclaration : T_PERCENTSTORAGECLASS defstorageclasses ';' { $$ = $2; pg_storageclasseshavebeendefined = True; } ; defstorageclasses : id { $$ = Consstorageclasses( $1, Nilstorageclasses()); v_add_to_storageclasses( $1, f_emptyId() ); v_extendoccur( $1, ITStorageClass() ); } | defstorageclasses id { $$ = Consstorageclasses( $2, $1 ); v_add_to_storageclasses( $2, f_emptyId() ); v_extendoccur( $2, ITStorageClass() ); } | defstorageclasses ',' id { $$ = Consstorageclasses( $3, $1 ); v_add_to_storageclasses( $3, f_emptyId() ); v_extendoccur( $3, ITStorageClass() ); } ; ac_function_definition : ac_declaration_specifiers ac_fn_declarator ac_declaration_list_option ac_compound_statement { ID tmp_id = f_ID_of_declarator($2); fnclass tmp_type = f_fnclass_info($1, pg_filename); /* first check before making the FnAcDeclaration, to keep the * error message in a nice order */ check_proto_ac_parameter_declaration( tmp_id->file, tmp_id->line, $3, $2 ); $$ = FnAcDeclaration( $1, $2, $3, $4, tmp_id, tmp_type ); pf_resetwithvariable(); v_defoccur( tmp_id, ITUserFunction( tmp_type ) ); $$->file = pg_filename; $$->last_line = pg_lineno; } ; ac_declaration : ac_declaration_specifiers ac_init_declarator_list_option ';' { $$ = AcDeclaration( $1, $2 ); } ; ac_declaration_list_option : /* empty */ { $$ = Nilac_declaration_list(); } | ac_declaration_list { $$ = $1; } ; ac_declaration_list : ac_declaration { $$ = Consac_declaration_list( $1, Nilac_declaration_list() ); } | ac_declaration_list ac_declaration { $$ = Consac_declaration_list( $2, $1 ); } ; /* simplified: we now _need_ exactely one type, * no more (eg. 'long long' not supported), * no less (implicit 'int' not supported) */ ac_declaration_specifiers : ac_type_specifier { $$ = Consac_declaration_specifiers( AcDeclSpecTypeSpec( $1 ), Nilac_declaration_specifiers() ); } | ac_storage_class_specifier ac_type_specifier { $$ = Consac_declaration_specifiers( AcDeclSpecTypeSpec( $2 ), Consac_declaration_specifiers( AcDeclSpecStorageSpec( $1 ), Nilac_declaration_specifiers() )); } | ac_type_qualifier ac_type_specifier { $$ = Consac_declaration_specifiers( AcDeclSpecTypeSpec( $2 ), Consac_declaration_specifiers( AcDeclSpecTypeQual( $1 ), Nilac_declaration_specifiers() )); } | ac_storage_class_specifier ac_type_qualifier ac_type_specifier { $$ = Consac_declaration_specifiers( AcDeclSpecTypeSpec( $3 ), Consac_declaration_specifiers( AcDeclSpecTypeQual( $2 ), Consac_declaration_specifiers( AcDeclSpecStorageSpec( $1 ), Nilac_declaration_specifiers() ))); } ; ac_storage_class_specifier : T_AUTO { $$ = AcAuto(); } | T_REGISTER { $$ = AcRegister(); } | T_STATIC { $$ = AcStatic(); } | T_EXTERN { $$ = AcExtern(); } | T_TYPEDEF { $$ = AcTypedef(); } ; ac_type_specifier : id /* to simplify */ { $$ = AcTypeSpec( $1 ); } ; ac_type_qualifier : T_CONST { $$ = AcConst(); } | T_VOLATILE { $$ = AcVolatile(); } ; ac_init_declarator_list_option : /* empty */ { $$ = Nilac_init_declarator_list(); } | ac_init_declarator_list { $$ = $1; } ; ac_init_declarator_list : ac_init_declarator { $$ = Consac_init_declarator_list( $1, Nilac_init_declarator_list() ); } | ac_init_declarator_list ',' ac_init_declarator { $$ = Consac_init_declarator_list( $3, $1 ); } ; ac_init_declarator : ac_declarator { $$ = AcInitDecl( $1 ); } /* this one commented out for simplification | ac_declarator '=' ac_initializer */ ; ac_fn_declarator : ac_direct_fn_declarator { $$ = AcDeclarator( Nopointer(), $1 ); } | ac_pointer ac_direct_fn_declarator { $$ = AcDeclarator( Yespointer( $1 ), $2 ); } ; ac_declarator : ac_direct_declarator { $$ = AcDeclarator(Nopointer(), $1 ); } | ac_pointer ac_direct_declarator { $$ = AcDeclarator( Yespointer( $1 ), $2 ); } ; ac_pointer_declarator : ac_pointer ac_direct_declarator { $$ = AcDeclarator( Yespointer( $1 ), $2 ); } ; ac_direct_declarator : ac_identifier { $$ = AcDirectDeclId( $1 ); } | '(' ac_pointer_declarator ')' { $$ = AcDirectDeclPack( $2 ); } | ac_direct_declarator '[' ac_constant_expression_option ']' { $$ = AcDirectDeclArray( $1, $3 ); } | ac_direct_declarator '(' ac_parameter_type_list ')' { $$ = AcDirectDeclProto( $1, $3 ); } | ac_direct_declarator '(' ')' { $$ = AcDirectDeclKandR( $1, Nilac_identifier_list() ); } | ac_direct_declarator '(' ac_identifier_list ')' { $$ = AcDirectDeclKandR( $1, $3 ); } ; ac_direct_fn_declarator : ac_identifier '(' ac_parameter_type_list ')' { $$ = AcDirectDeclProto( AcDirectDeclId( $1 ), $3 ); } | ac_identifier '(' ')' { $$ = AcDirectDeclKandR( AcDirectDeclId( $1 ), Nilac_identifier_list() ); } | ac_identifier '(' ac_identifier_list ')' { $$ = AcDirectDeclKandR( AcDirectDeclId( $1 ), $3 ); } ; ac_pointer : '*' { $$ = AcPointerNil( Nilac_type_qualifier_list() ); } | '*' ac_type_qualifier_list { $$ = AcPointerNil( $2 ); } | '*' ac_pointer { $$ = AcPointerCons( Nilac_type_qualifier_list(), $2 ); } | '*' ac_type_qualifier_list ac_pointer { $$ = AcPointerCons( $2, $3 ); } ; ac_type_qualifier_list : ac_type_qualifier { $$ = Consac_type_qualifier_list( $1, Nilac_type_qualifier_list() ); } | ac_type_qualifier_list ac_type_qualifier { $$ = Consac_type_qualifier_list( $2, $1 ); } ; ac_parameter_type_list : ac_parameter_list { $$ = AcParList( $1 ); } | ac_parameter_list ',' T_DOTDOTDOT { $$ = AcParList3Dot( $1 ); } ; ac_parameter_list : ac_parameter_declaration { $$ = Consac_parameter_list( $1, Nilac_parameter_list() ); } | ac_parameter_list ',' ac_parameter_declaration { $$ = Consac_parameter_list( $3, $1 ); } ; ac_parameter_declaration : ac_declaration_specifiers ac_declarator { $$ = AcParDeclDecl( $1, $2 ); } | ac_declaration_specifiers ac_abstract_declarator { $$ = AcParDeclAbsdecl( $1, $2 ); } ; ac_identifier_list : ac_identifier { $$ = Consac_identifier_list( $1, Nilac_identifier_list() ); } | ac_identifier_list ',' ac_identifier { $$ = Consac_identifier_list( $3, $1 ); } ; ac_abstract_declarator : ac_pointer { $$ = AcAbsdeclPointer( $1 ); } | ac_direct_abstract_declarator { $$ = AcAbsdeclDirdecl( Nopointer(), $1 ); } | ac_pointer ac_direct_abstract_declarator { $$ = AcAbsdeclDirdecl( Yespointer( $1 ), $2 ); } ; ac_direct_abstract_declarator : '(' ac_abstract_declarator ')' { $$ = AcDirAbsdeclPack( $2 ); } | ac_direct_abstract_declarator '[' ac_constant_expression_option ']' { $$ = AcDirAbsdeclArray( Yesac_direct_abstract_declarator( $1 ), $3 ); } | '[' ac_constant_expression_option ']' { $$ = AcDirAbsdeclArray( Noac_direct_abstract_declarator(), $2 ); } | ac_direct_abstract_declarator '(' ')' { $$ = AcDirAbsdeclFn( Yesac_direct_abstract_declarator( $1 ), AcParList( Nilac_parameter_list() )); } | ac_direct_abstract_declarator '(' ac_parameter_type_list ')' { $$ = AcDirAbsdeclFn( Yesac_direct_abstract_declarator( $1 ), $3 ); } | '(' ')' { $$ = AcDirAbsdeclFn( Noac_direct_abstract_declarator(), AcParList( Nilac_parameter_list() )); } | '(' ac_parameter_type_list ')' { $$ = AcDirAbsdeclFn( Noac_direct_abstract_declarator(), $2 ); } ; /* trivial rule, because a Cexpression can be empty, * so we don't need an 'empty' rule here */ ac_constant_expression_option : ac_constant_expression { $$ = Yesac_constant_expression( $1 ); } ; ac_constant_expression : { do_CEXPR(); } Cexpression { do_NORMAL(); $$ = AcConstExpr( $2 ); } ; ac_identifier : id { $$ = $1; } | '$' id /* added $ var */ { $$ = $2; pf_setwithvariable( $2 ); } ; ac_compound_statement : MainCbody { $$ = $1; } ; kimwitu-4.6.1.orig/src/main.c0100644000176100001440000012300107076113221015326 0ustar debacleusers/* translation of file "../main.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #define KC_FUNCTIONS_main #define KIMW_FUNCTIONS_main /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include #ifdef KC_STDC # include #endif #include "k.h" /* included stuff */ #line 2 "../main.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 29 "main.c" #line 14 "../main.k" #include "defs.h" #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) #ifndef KIMWITUCOPYRIGHT # define KIMWITUCOPYRIGHT "@(#) Kimwitu version: (unknown) (c) 1990 University of Twente"; #endif #ifndef RCSMAKEID # define RCSMAKEID "@(#) Makefile version unknown" #endif static char kimwc_cAccesSid[] = "@(#)$Id: main.k,v 1.40 1998/03/18 17:52:27 belinfan Rel $"; static char kimwitu_release[] = KIMWITURELEASE; /* defined in Makefile */ static char kimwitu_version[] = KIMWITUVERSIONSTRING; /* defined in Makefile */ static char Makefile_AccesSid[] = RCSMAKEID; /* defined in Makefile */ char kimwitu_copyright[] = KIMWITUCOPYRIGHT; /* defined in Makefile */ /* used in gen.k */ #else char kimwitu_copyright[] = "KIMWITUCOPYRIGHT"; /* defined in Makefile */ /* used in gen.k */ #endif #ifdef __cplusplus # define KC__CLINKAGE "C" #else # define KC__CLINKAGE #endif #if defined(_WIN32) && ! defined (__GNUC__) # include # define mktemp _mktemp # define open _open # define O_RDONLY _O_RDONLY # define read _read # define close _close #endif /* next include files needed for hpux open (says the man-page) */ /* next include files needed for fstat */ #if defined(hpux) || defined(KC_USE_STAT) # include # include # if defined(_WIN32) && ! defined (__GNUC__) # define fstat _fstat # define stat _stat # endif #endif #include /* for signal/sigvec */ #include #ifdef SIGHOLD /* must be SVR4 */ # define signal sigset /* use reliable signals on SVR4 */ #endif /* string(s) stuff */ #include #if ((! defined(KC_STDC) ) && defined(sun)) extern char *sprintf(); #endif extern int yyparse KC__P((void)); extern void yyrestart KC__P(( FILE* )); extern void do_NORMAL KC__P(( void )); #if ! (defined(_WIN32) && ! defined (__GNUC__)) extern KC__CLINKAGE int read KC__P(( int fildes, char *buf, unsigned int nbyte )); #endif extern KC__CLINKAGE int close KC__P(( int fildes )); #ifndef KC_STDC extern int link KC__P(( char *path1, char *path2 )); extern int unlink KC__P(( char *path )); extern int memcmp KC__P(( void*, void*, size_t )); extern void exit KC__P(( int )); #endif #include "unpk.h" #include "gutil.h" #define MALLOC emalloc #define FREE efree #ifndef efree # ifdef lint # define efree(kc_p) # else # define efree(kc_p) free((kc_malloc_t)(kc_p)) # endif #endif #define STDINPUTNAME "stdin" extern FILE *yyin; static char Thetempcfile[15]; static char Thetemphfile[15]; /* * the following (3) variables are used by processargs and prepare_for_next_file */ static char **inputfilenames = 0; static int no_inputfiles = 0; static int current_inputfile; static boolean g_overwriteAlways = False; #line 132 "main.c" #line 126 "../main.k" casestring g_progname; static char *progname_initvalue = "kc"; FILE *g_hfile, *g_cfile; char *g_hfilename; char *g_cfilename; static boolean verbose = False; #line 142 "main.c" #line 616 "../main.k" extern KC__CLINKAGE char *mktemp KC__P(( char* )); #line 146 "main.c" #line 647 "../main.k" # define MYBUFSIZ 8*BUFSIZ #line 150 "main.c" #line 700 "../main.k" #ifdef KC_STDC extern KC__CLINKAGE int rename KC__P((const char*, const char*)); #endif #line 156 "main.c" #line 724 "../main.k" #ifdef KC_STDC extern KC__CLINKAGE int remove KC__P((const char*)); #endif #line 162 "main.c" /* end included stuff */ #include "main.h" static char *get_basename KC__P((char *s)); static void processargs KC__P((int argc, char *argv[])); static int prepare_for_next_file KC__P((void)); static void do_parse KC__P((void)); static void make_tempfile_names KC__P((char *Thetempcfile, char *Thetemphfile, char **tmp_cfilename, char **tmp_hfilename)); static void reset_tempfiles KC__P((char *Thetempcfile, char *Thetemphfile)); static int different KC__P((int f1, int f2, char *fn1, char *fn2)); static void erename KC__P((char *oldfilename, char *newfilename)); static void eremove KC__P((char *filename)); static void compare_and_delete_or_move KC__P((char *tmp_filename, char *filename, boolean overwriteAlways)); static phylumdeclarations f_add_predefined_phyla KC__P((phylumdeclarations p)); static phylumdeclaration v_predefined_int KC__P((void)); static phylumdeclaration v_predefined_float KC__P((void)); static phylumdeclaration v_predefined_casestring KC__P((void)); static phylumdeclaration v_predefined_nocasestring KC__P((void)); static phylumdeclaration v_predefined_voidptr KC__P((void)); static casestring make_pg_filename KC__P((char *s)); static void set_signals KC__P((void)); static void reset_signals KC__P((void)); static void block_signals KC__P((void)); static void cleanup_and_die KC__P((int i)); static void cleanup_and_abort KC__P((int i)); static void cleanup KC__P((void)); static char *get_basename #ifdef KC_USE_PROTOTYPES (char *s) #else (s) char *s; #endif #line 137 "../main.k" { char *basename = strrchr( s, '/'); if (basename == NULL) { basename = s; } else { basename++; } return basename; #line 145 "../main.k" } #line 207 "main.c" static void processargs #ifdef KC_USE_PROTOTYPES (int argc, char *argv[]) #else (argc, argv) int argc; char *argv[]; #endif #line 150 "../main.k" { int i; int len; char *basename; g_progname = mkcasestring(get_basename(argv[0])); for( i=1; i < argc; i++ ) { if (strcmp(argv[i], "--version") == 0) { (void)fflush( stdout ); (void)fprintf( stderr, "%s: version %s\n", get_basename(argv[0]), kimwitu_version ); (void)fflush( stderr ); leave(0); } } inputfilenames = ecalloc(argc - 1, sizeof(char*)); no_inputfiles = 0; for( i=1; i < argc; i++ ) { if (strcmp(argv[i], "--overwrite") == 0) { g_overwriteAlways = True; } else { len = strlen(argv[i]); basename = get_basename( argv[i] ); if ( ! (argv[i][len-1] == 'k') && (argv[i][len-2] == '.') ) { v_report( NonFatal( NoFileLine(), Problem2S( "input file must have '.k' suffix:", argv[i] ))); } else if ( (strcmp(basename, "k.k") == 0) || (strcmp(basename, "rk.k") == 0) || (strcmp(basename, "csgiok.k") == 0) || (strcmp(basename, "stdin.k") == 0) ) { v_report( NonFatal( NoFileLine(), Problem2S( "reserved file basename 'k.k', 'rk.k', 'csgiok.k', 'stdin.k' not allowed:", argv[i] ))); } else if ((yyin = fopen(argv[i], "r"))== NULL){ v_report( NonFatal( NoFileLine(), Problem2S( "cannot open ", argv[i] ))); } else { (void)fclose(yyin); inputfilenames[no_inputfiles] = argv[i]; no_inputfiles++; } } } if ( gp_no_fatal_problems ) { if ( no_inputfiles > 0 ) { current_inputfile = 0; pg_filename = make_pg_filename( inputfilenames[current_inputfile] ); if ((yyin = fopen(inputfilenames[current_inputfile], "r"))== NULL){ v_report( Fatal( NoFileLine(), Problem2S( "cannot open ", inputfilenames[current_inputfile] ))); } pg_lineno = 1; pg_column = 0; pg_charpos = 0; } else if (argc == 1 ) { /*EMPTY*/ } } else { leave(1); } #line 209 "../main.k" } #line 279 "main.c" static int prepare_for_next_file #ifdef KC_USE_PROTOTYPES (void) #else () #endif #line 212 "../main.k" { if ( current_inputfile < no_inputfiles-1 ) { current_inputfile++; pg_filename = make_pg_filename( inputfilenames[current_inputfile] ); pg_lineno = 1; pg_column = 0; pg_charpos = 0; (void)fclose(yyin); if ((yyin = fopen(inputfilenames[current_inputfile], "r"))== NULL){ v_report( Fatal( NoFileLine(), Problem2S( "cannot open ", inputfilenames[current_inputfile] ))); } yyrestart(yyin); return 1; } do_NORMAL(); if ( no_inputfiles > 0 ) (void)fclose( yyin ); return 0; #line 230 "../main.k" } #line 309 "main.c" static void do_parse #ifdef KC_USE_PROTOTYPES (void) #else () #endif #line 256 "../main.k" { includefile Theincheader = IncludeFile( mkcasestring(INC_HEADER)); includefile Theincfile = IncludeFile( mkcasestring(INC_CODE)); ID Thebase_uview = Id( Str( mkcasestring( "base_uview" ))); ID Thebase_view = Id( Str( mkcasestring( "base_view" ))); ID Thebase_rview = Id( Str( mkcasestring( "base_rview" ))); ID Thekc_not_uniq = Id( Str( mkcasestring( "kc_not_uniq" ))); ID Thekc_uniq_nullary_operator = Id( Str( mkcasestring( "kc_uniq_nullary_operator" ))); ID Theuniq = Id( Str( mkcasestring( "uniq" ))); Thephylumdeclarations = f_add_predefined_phyla( Nilphylumdeclarations() ); Therwdeclarations = Nilrwdeclarations(); Theunparsedeclarations = Nilunparsedeclarations(); Theargsnumbers = Nilargsnumbers(); Thefndeclarations = Nilfndeclarations(); Theincheader->inc_type = include_header; Theincfile->inc_type = include_file; IncludeFile( mkcasestring(INC_KC_TYPES_HEADER))->inc_type = include_header; IncludeFile( mkcasestring(INC_KIMW_TYPES_HEADER))->newinclude = IncludeFile( mkcasestring(INC_KC_TYPES_HEADER)); IncludeFile( mkcasestring(INC_KC_TYPES))->inc_type = include_file; IncludeFile( mkcasestring(INC_KIMW_TYPES))->newinclude = IncludeFile( mkcasestring(INC_KC_TYPES)); IncludeFile( mkcasestring(INC_KC_REWRITE_HEADER))->inc_type = include_header; IncludeFile( mkcasestring(INC_KIMW_REWRITE_HEADER))->newinclude = IncludeFile( mkcasestring(INC_KC_REWRITE_HEADER)); IncludeFile( mkcasestring(INC_KC_REWRITE))->inc_type = include_file; IncludeFile( mkcasestring(INC_KIMW_REWRITE))->newinclude = IncludeFile( mkcasestring(INC_KC_REWRITE)); IncludeFile( mkcasestring(INC_KC_CSGIO_HEADER))->inc_type = include_header; IncludeFile( mkcasestring(INC_KIMW_CSGIO_HEADER))->newinclude = IncludeFile( mkcasestring(INC_KC_CSGIO_HEADER)); IncludeFile( mkcasestring(INC_KC_CSGIO))->inc_type = include_file; IncludeFile( mkcasestring(INC_KIMW_CSGIO))->newinclude = IncludeFile( mkcasestring(INC_KC_CSGIO)); IncludeFile( mkcasestring(INC_KC_UNPARSE_HEADER))->inc_type = include_header; IncludeFile( mkcasestring(INC_KIMW_UNPARSE_HEADER))->newinclude = IncludeFile( mkcasestring(INC_KC_UNPARSE_HEADER)); IncludeFile( mkcasestring(INC_KC_UNPARSE))->inc_type = include_file; IncludeFile( mkcasestring(INC_KIMW_UNPARSE))->newinclude = IncludeFile( mkcasestring(INC_KC_UNPARSE)); v_defoccur( Thebase_uview, ITPredefinedUView() ); v_defoccur( Thebase_view, ITPredefinedUView() ); v_defoccur( Thebase_rview, ITPredefinedRView() ); v_defoccur( Theuniq, ITPredefinedStorageClass() ); Theuviewnames = Consviewnames( Thebase_uview, Nilviewnames() ); Theuviewnames = Consviewnames( Thebase_view, Theuviewnames ); Therviewnames = Consviewnames( Thebase_rview, Nilviewnames() ); Thestorageclasses = Consstorageclasses( Theuniq, Consstorageclasses( Thekc_uniq_nullary_operator, Consstorageclasses( Thekc_not_uniq, Nilstorageclasses() ))); do { (void)yyparse(); FnFile( pg_filename )->fns = Thefndeclarations; Thefndeclarations = Nilfndeclarations(); IncludeFile( pg_filename )->inc[(int)include_header] = Theincheader->inc[(int)Theincheader->inc_type]; IncludeFile( pg_filename )->inc[(int)include_file] = Theincfile->inc[(int)Theincfile->inc_type]; IncludeFile( pg_filename )->inc_type = include_both; Theincheader->inc[(int)Theincheader->inc_type] = Nilincludedeclarations(); Theincfile->inc[(int)Theincfile->inc_type] = Nilincludedeclarations(); } while( prepare_for_next_file() ); if (! gp_no_fatal_problems) { leave(1); } #line 313 "../main.k" } #line 378 "main.c" int main #ifdef KC_USE_PROTOTYPES (int argc, char *argv[]) #else (argc, argv) int argc; char *argv[]; #endif #line 318 "../main.k" { phylumdeclarationsroot proot; char *tmp_cfilename, *tmp_hfilename; #ifdef YYDEBUG extern int yydebug; yydebug = 1; #endif g_hfile = 0; g_cfile = 0; g_progname = mkcasestring( progname_initvalue ); reset_tempfiles(Thetempcfile, Thetemphfile); pg_filename = make_pg_filename( STDINPUTNAME ); gp_no_fatal_problems = True; pg_uviewshavebeendefined = False; pg_rviewshavebeendefined = False; pg_storageclasseshavebeendefined = False; pg_lineno = 0; pg_column = 0; pg_charpos = 0; processargs(argc, argv); set_signals(); pg_lineno = 1; pg_column = 0; pg_charpos = 0; do_parse(); pg_lineno = 0; pg_column = 0; pg_charpos = 0; Thebindingidmarks = 0; unparse_phylumdeclarations( Thephylumdeclarations, v_null_printer, view_init_stacks ); unparse_phylumdeclarations( Thephylumdeclarations, v_null_printer, view_check_count ); unparse_phylumdeclarations( Thephylumdeclarations, v_null_printer, view_check ); unparse_rwdeclarations( Therwdeclarations, v_null_printer, view_check ); { #line 378 "../main.k" fnfiles kc_fe_selvar_1 = Thefnfiles ; #line 378 "../main.k" /*SUPPRESS 622*/ assert_fnfiles(kc_fe_selvar_1, "foreach_list_expression"); #line 455 "main.c" while( kc_fe_selvar_1->prod_sel == sel_Consfnfiles ) { fnfile kc_selvar_0_1 = kc_fe_selvar_1->u.Consfnfiles.fnfile_1; { #line 378 "../main.k" { #line 378 "../main.k" /*SUPPRESS 622*/ assert_fnfile(kc_selvar_0_1, "with_expression (1)"); #line 467 "main.c" { #line 378 "../main.k" fnfile a_fnfile = kc_selvar_0_1; #line 378 "../main.k" unparse_fndeclarations( a_fnfile->fns, v_null_printer, view_check ); #line 475 "main.c" } } #line 479 "main.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consfnfiles.fnfiles_1; #line 378 "../main.k" /*SUPPRESS 622*/ assert_fnfiles(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 486 "main.c" } } #line 381 "../main.k" unparse_unparsedeclarations( Theunparsedeclarations, v_null_printer, view_check ); unparse_unparsedeclarations( Theunparsedeclarations, v_null_printer, view_check_viewnames ); unparse_phylumdeclarations( Thephylumdeclarations, v_null_printer, view_check_uniq ); unparse_phylumdeclarations( Thephylumdeclarations, v_null_printer, view_make_patternreps ); unparse_rwdeclarations( Therwdeclarations, v_null_printer, view_make_patternreps ); { #line 390 "../main.k" fnfiles kc_fe_selvar_1 = Thefnfiles ; #line 390 "../main.k" /*SUPPRESS 622*/ assert_fnfiles(kc_fe_selvar_1, "foreach_list_expression"); #line 506 "main.c" while( kc_fe_selvar_1->prod_sel == sel_Consfnfiles ) { fnfile kc_selvar_0_1 = kc_fe_selvar_1->u.Consfnfiles.fnfile_1; { #line 390 "../main.k" { #line 390 "../main.k" /*SUPPRESS 622*/ assert_fnfile(kc_selvar_0_1, "with_expression (1)"); #line 518 "main.c" { #line 390 "../main.k" fnfile a_fnfile = kc_selvar_0_1; #line 390 "../main.k" unparse_fndeclarations( a_fnfile->fns, v_null_printer, view_make_patternreps ); #line 526 "main.c" } } #line 530 "main.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consfnfiles.fnfiles_1; #line 390 "../main.k" /*SUPPRESS 622*/ assert_fnfiles(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 537 "main.c" } } #line 393 "../main.k" unparse_unparsedeclarations( Theunparsedeclarations, v_null_printer, view_make_patternreps ); if ( ! gp_no_fatal_problems ) { leave( 1 ); } proot = PhylumDeclarations( Thephylumdeclarations ); if (length_argsnumbers(Theargsnumbers) == 0) { Theargsnumbers = Consargsnumbers( 0, Theargsnumbers ); } make_tempfile_names(Thetempcfile, Thetemphfile, &tmp_cfilename, &tmp_hfilename); if ((g_hfile = fopen(tmp_hfilename, "w")) == NULL) v_report( Fatal( NoFileLine(), Problem2S( "cannot create temporary k.h file:", tmp_hfilename ))); if ((g_cfile = fopen(tmp_cfilename, "w")) == NULL) v_report( Fatal( NoFileLine(), Problem2S( "cannot create temporary k.c file:", tmp_cfilename ))); v_hfile_printer( "k.h", view_printer_reset ); v_cfile_printer( "k.c", view_printer_reset ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_k_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_k_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_alloc_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_alloc_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_enumphyla_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_enumoperators_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_nodetypedefs_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_operatormap_type_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_copy_attributes_c ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_phylummap_c ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_operatormap_c ); unparse_storageclasses( Thestorageclasses, v_cfile_printer, view_gen_uniqmap_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_yaccstacktype_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_noofoperators_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_booleans_h ); unparse_includedeclarations( IncludeFile(mkcasestring(INC_KC_TYPES_HEADER))->inc[(int)IncludeFile(mkcasestring(INC_KC_TYPES_HEADER))->inc_type], v_hfile_printer, view_gen_includes ); unparse_includedeclarations( IncludeFile(mkcasestring(INC_KC_TYPES))->inc[(int)IncludeFile(mkcasestring(INC_KC_TYPES))->inc_type], v_cfile_printer, view_gen_includes ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_initialization_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_initialization_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_assertmacros_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_operatordecls_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_operatordefs_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_error_decls_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_error_defs_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_nodetypes_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_freedecls_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_freedefs_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_eqdecls_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_eqdefs_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_printdecls_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_printdefs_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_printdotdecls_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_printdotdefs_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_listdecls_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_listdefs_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_copydecls_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_copydefs_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_end_k_h ); if (fclose( g_cfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem2S( "writing temporary k.c file failed:", tmp_cfilename ))); } g_cfile = 0; if (fclose( g_hfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem2S( "writing temporary k.h file failed:", tmp_hfilename ))); } g_hfile = 0; compare_and_delete_or_move(tmp_cfilename, "k.c", g_overwriteAlways); compare_and_delete_or_move(tmp_hfilename, "k.h", g_overwriteAlways); reset_tempfiles(Thetempcfile, Thetemphfile); make_tempfile_names(Thetempcfile, Thetemphfile, &tmp_cfilename, &tmp_hfilename); if ((g_hfile = fopen(tmp_hfilename, "w")) == NULL) v_report( Fatal( NoFileLine(), Problem2S( "cannot create temporary csgiok.h file:", tmp_hfilename ))); if ((g_cfile = fopen(tmp_cfilename, "w")) == NULL) v_report( Fatal( NoFileLine(), Problem2S( "cannot create temporary csgiok.c file:", tmp_cfilename ))); v_hfile_printer( "csgiok.h", view_printer_reset ); v_cfile_printer( "csgiok.c", view_printer_reset ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_csgio_start_h ); unparse_includedeclarations( IncludeFile(mkcasestring(INC_KC_CSGIO_HEADER))->inc[(int)IncludeFile(mkcasestring(INC_KC_CSGIO_HEADER))->inc_type], v_hfile_printer, view_gen_includes ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_csgio_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_csgio_end_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_csgio_start_c ); unparse_includedeclarations( IncludeFile(mkcasestring(INC_KC_CSGIO))->inc[(int)IncludeFile(mkcasestring(INC_KC_CSGIO))->inc_type], v_cfile_printer, view_gen_includes ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_csgio_c ); if (fclose( g_cfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem2S( "writing temporary csgiok.c file failed:", tmp_cfilename ))); } g_cfile = 0; if (fclose( g_hfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem2S( "writing temporary csgiok.h file failed:", tmp_hfilename ))); } g_hfile = 0; compare_and_delete_or_move(tmp_cfilename, "csgiok.c", g_overwriteAlways); compare_and_delete_or_move(tmp_hfilename, "csgiok.h", g_overwriteAlways); reset_tempfiles(Thetempcfile, Thetemphfile); make_tempfile_names(Thetempcfile, Thetemphfile, &tmp_cfilename, &tmp_hfilename); if ((g_hfile = fopen(tmp_hfilename, "w")) == NULL) v_report( Fatal( NoFileLine(), Problem2S( "cannot create temporary unpk.h file:", tmp_hfilename ))); if ((g_cfile = fopen(tmp_cfilename, "w")) == NULL) v_report( Fatal( NoFileLine(), Problem2S( "cannot create temporary unpk.c file:", tmp_cfilename ))); v_hfile_printer( "unpk.h", view_printer_reset ); v_cfile_printer( "unpk.c", view_printer_reset ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_unpk_h ); unparse_includedeclarations( IncludeFile(mkcasestring(INC_KC_UNPARSE_HEADER))->inc[(int)IncludeFile(mkcasestring(INC_KC_UNPARSE_HEADER))->inc_type], v_hfile_printer, view_gen_includes ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_unparsedecls_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_end_unpk_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_unpk_c ); unparse_includedeclarations( IncludeFile(mkcasestring(INC_KC_UNPARSE))->inc[(int)IncludeFile(mkcasestring(INC_KC_UNPARSE))->inc_type], v_cfile_printer, view_gen_includes ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_default_types_unpk_c ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_unparsedefs_c ); if (fclose( g_cfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem2S( "writing temporary unpk.c file failed:", tmp_cfilename ))); } g_cfile = 0; if (fclose( g_hfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem2S( "writing temporary unpk.h file failed:", tmp_hfilename ))); } g_hfile = 0; compare_and_delete_or_move(tmp_cfilename, "unpk.c", g_overwriteAlways); compare_and_delete_or_move(tmp_hfilename, "unpk.h", g_overwriteAlways); reset_tempfiles(Thetempcfile, Thetemphfile); make_tempfile_names(Thetempcfile, Thetemphfile, &tmp_cfilename, &tmp_hfilename); if ((g_hfile = fopen(tmp_hfilename, "w")) == NULL) v_report( Fatal( NoFileLine(), Problem2S( "cannot create temporary rk.h file:", tmp_hfilename ))); if ((g_cfile = fopen(tmp_cfilename, "w")) == NULL) v_report( Fatal( NoFileLine(), Problem2S( "cannot create temporary rk.c file:", tmp_cfilename ))); v_hfile_printer( "rk.h", view_printer_reset ); v_cfile_printer( "rk.c", view_printer_reset ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_rewritek_h ); unparse_includedeclarations( IncludeFile(mkcasestring(INC_KC_REWRITE_HEADER))->inc[(int)IncludeFile(mkcasestring(INC_KC_REWRITE_HEADER))->inc_type], v_hfile_printer, view_gen_includes ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_rewritedecls_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_end_rewritek_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_rewritek_c ); unparse_includedeclarations( IncludeFile(mkcasestring(INC_KC_REWRITE))->inc[(int)IncludeFile(mkcasestring(INC_KC_REWRITE))->inc_type], v_cfile_printer, view_gen_includes ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_rewritedefs_c ); if (fclose( g_cfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem2S( "writing temporary rk.c file failed:", tmp_cfilename ))); } g_cfile = 0; if (fclose( g_hfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem2S( "writing temporary rk.h file failed:", tmp_hfilename ))); } g_hfile = 0; compare_and_delete_or_move(tmp_cfilename, "rk.c", g_overwriteAlways); compare_and_delete_or_move(tmp_hfilename, "rk.h", g_overwriteAlways); reset_tempfiles(Thetempcfile, Thetemphfile); { #line 569 "../main.k" fnfiles kc_fe_selvar_1 = Thefnfiles ; #line 569 "../main.k" /*SUPPRESS 622*/ assert_fnfiles(kc_fe_selvar_1, "foreach_list_expression"); #line 724 "main.c" while( kc_fe_selvar_1->prod_sel == sel_Consfnfiles ) { fnfile kc_selvar_0_1 = kc_fe_selvar_1->u.Consfnfiles.fnfile_1; { #line 569 "../main.k" { #line 569 "../main.k" /*SUPPRESS 622*/ assert_fnfile(kc_selvar_0_1, "with_expression (1)"); #line 736 "main.c" { #line 569 "../main.k" fnfile a_fnfile = kc_selvar_0_1; #line 569 "../main.k" { #line 570 "../main.k" fnfile kc_selvar_1_1 = a_fnfile ; #line 570 "../main.k" /*SUPPRESS 622*/ assert_fnfile(kc_selvar_1_1, "with_expression (1)"); #line 751 "main.c" if (( kc_selvar_1_1->prod_sel == sel_FnFile)) { #line 571 "../main.k" casestring a_filename = kc_selvar_1_1->u.FnFile.casestring_1; #line 571 "../main.k" g_hfilename = f_mk_filename( a_filename, 'h' ); g_cfilename = f_mk_filename( a_filename, 'c' ); pg_filename = a_filename; make_tempfile_names(Thetempcfile, Thetemphfile, &tmp_cfilename, &tmp_hfilename); if ((g_hfile = fopen(tmp_hfilename, "w")) == NULL) v_report( Fatal( NoFileLine(), Problem4S( "cannot create temporary ", g_hfilename," file:", tmp_hfilename ))); if ((g_cfile = fopen(tmp_cfilename, "w")) == NULL) v_report( Fatal( NoFileLine(), Problem4S( "cannot create temporary ", g_cfilename," file:", tmp_cfilename ))); v_hfile_printer( g_hfilename, view_printer_reset ); v_cfile_printer( g_cfilename, view_printer_reset ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_fns_start_h ); unparse_includedeclarations( IncludeFile( a_filename )->inc[(int)include_header], v_hfile_printer, view_gen_includes ); unparse_fndeclarations( a_fnfile->fns, v_hfile_printer, view_gen_fnk_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_fns_end_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_fns_start_c ); unparse_includedeclarations( IncludeFile( a_filename )->inc[(int)include_file], v_cfile_printer, view_gen_includes ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_fns_owninclude_c ); unparse_fndeclarations( a_fnfile->fns, v_cfile_printer, view_gen_fnkdecls_c ); unparse_fndeclarations( a_fnfile->fns, v_cfile_printer, view_gen_fnk_c ); if (fclose( g_cfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem4S( "writing temporary ", g_cfilename, " file failed:", tmp_cfilename ))); } g_cfile = 0; if (fclose( g_hfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem4S( "writing temporary ", g_hfilename, " file failed:", tmp_hfilename ))); } g_hfile = 0; compare_and_delete_or_move(tmp_cfilename, g_cfilename, g_overwriteAlways); compare_and_delete_or_move(tmp_hfilename, g_hfilename, g_overwriteAlways); reset_tempfiles(Thetempcfile, Thetemphfile); FREE((kc_voidptr_t) g_hfilename ); FREE((kc_voidptr_t) g_cfilename ); #line 793 "main.c" } else { kc_no_default_in_with( "main", __LINE__, __FILE__ ); return (int)0; } } #line 608 "../main.k" #line 800 "main.c" } } #line 804 "main.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consfnfiles.fnfiles_1; #line 569 "../main.k" /*SUPPRESS 622*/ assert_fnfiles(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 811 "main.c" } } #line 609 "../main.k" leave( 0 ); exit( 0 ); return( 0 ); #line 613 "../main.k" } #line 822 "main.c" static void make_tempfile_names #ifdef KC_USE_PROTOTYPES (char *Thetempcfile, char *Thetemphfile, char **tmp_cfilename, char **tmp_hfilename) #else (Thetempcfile, Thetemphfile, tmp_cfilename, tmp_hfilename) char *Thetempcfile; char *Thetemphfile; char **tmp_cfilename; char **tmp_hfilename; #endif #line 619 "../main.k" { (void) strcpy(Thetempcfile, ".kc.c.XXXXXX"); (void) strcpy(Thetemphfile, ".kc.h.XXXXXX"); (void) mktemp(Thetempcfile); (void) mktemp(Thetemphfile); *tmp_cfilename = Thetempcfile; *tmp_hfilename = Thetemphfile; #line 626 "../main.k" } #line 844 "main.c" static void reset_tempfiles #ifdef KC_USE_PROTOTYPES (char *Thetempcfile, char *Thetemphfile) #else (Thetempcfile, Thetemphfile) char *Thetempcfile; char *Thetemphfile; #endif #line 629 "../main.k" { (void) strcpy(Thetempcfile, ""); (void) strcpy(Thetemphfile, ""); #line 632 "../main.k" } #line 860 "main.c" static int different #ifdef KC_USE_PROTOTYPES (int f1, int f2, char *fn1, char *fn2) #else (f1, f2, fn1, fn2) int f1; int f2; char *fn1; char *fn2; #endif #line 650 "../main.k" { char buf1[MYBUFSIZ], buf2[MYBUFSIZ]; int characters_read1, characters_read2; #ifdef KC_USE_STAT struct stat stbuf1, stbuf2; if (fstat(f1, &stbuf1) != 0) { perror("kc: error"); v_report( NonFatal( NoFileLine(), Problem2S( "error stat'ing", fn1 ))); } if (fstat(f2, &stbuf2) != 0) { perror("kc: error"); v_report( NonFatal( NoFileLine(), Problem2S( "error stat'ing", fn2 ))); } if (stbuf1.st_size != stbuf2.st_size) { return 1; } #endif while( ! kc_zero_constant ) { if ((characters_read1 = read(f1, buf1, MYBUFSIZ)) == -1) { perror("kc: error"); v_report( Fatal( NoFileLine(), Problem2S( "error while reading from", fn1 ))); } if ((characters_read2 = read(f2, buf2, MYBUFSIZ)) == -1) { perror("kc: error"); v_report( Fatal( NoFileLine(), Problem2S( "error while reading from", fn2 ))); } if (characters_read1 == 0) { if (characters_read2 == 0) return 0; else return 1; } else { if (characters_read2 == 0) return 1; else if ( (characters_read1 != characters_read2) || (memcmp(buf1, buf2, characters_read1) != 0) ) return 1; } } /*NOTREACHED*/ # undef MYBUFSIZ #line 692 "../main.k" } #line 917 "main.c" static void erename #ifdef KC_USE_PROTOTYPES (char *oldfilename, char *newfilename) #else (oldfilename, newfilename) char *oldfilename; char *newfilename; #endif #line 705 "../main.k" { #ifndef KC_STDC if (link(oldfilename, newfilename) != 0) { perror("kc: error"); v_report( NonFatal( NoFileLine(), Problem4S( "could not create", newfilename, "by linking", oldfilename ))); } if (unlink(oldfilename) != 0) { perror("kc: error"); v_report( NonFatal( NoFileLine(), Problem2S( "error while unlinking", oldfilename ))); } #else if (rename(oldfilename, newfilename) != 0) { perror("kc: error"); v_report( NonFatal( NoFileLine(), Problem4S( "error while renaming", oldfilename, "to", newfilename ))); } #endif #line 721 "../main.k" } #line 946 "main.c" static void eremove #ifdef KC_USE_PROTOTYPES (char *filename) #else (filename) char *filename; #endif #line 729 "../main.k" { #ifndef KC_STDC if (unlink(filename) != 0) { perror("kc: error"); v_report( NonFatal( NoFileLine(), Problem2S( "error while unlinking", filename ))); } #else if (remove(filename) != 0) { perror("kc: error"); v_report( NonFatal( NoFileLine(), Problem2S( "error while removing", filename ))); } #endif #line 741 "../main.k" } #line 970 "main.c" static void compare_and_delete_or_move #ifdef KC_USE_PROTOTYPES (char *tmp_filename, char *filename, boolean overwriteAlways) #else (tmp_filename, filename, overwriteAlways) char *tmp_filename; char *filename; boolean overwriteAlways; #endif #line 744 "../main.k" { int tmp_file, file; int they_are_different; if ((file = open(filename, O_RDONLY)) == -1) { erename(tmp_filename, filename); } else if ((tmp_file = open(tmp_filename, O_RDONLY)) == -1) { perror("kc: error"); v_report( Fatal( NoFileLine(), Problem2S( "could not open temporary file", tmp_filename ))); } else { they_are_different = overwriteAlways || different(tmp_file, file, tmp_filename, filename); if (close(tmp_file) == -1) { perror("kc: error"); v_report( NonFatal( NoFileLine(), Problem2S( "error while closing", tmp_filename ))); } if (close(file) == -1) { perror("kc: error"); v_report( NonFatal( NoFileLine(), Problem2S( "error while closing", filename ))); } if (they_are_different) { eremove(filename); erename(tmp_filename, filename); } else { eremove(tmp_filename); } } #line 768 "../main.k" } #line 1008 "main.c" static phylumdeclarations f_add_predefined_phyla #ifdef KC_USE_PROTOTYPES (phylumdeclarations p) #else (p) phylumdeclarations p; #endif #line 771 "../main.k" { return Consphylumdeclarations( v_predefined_voidptr(), Consphylumdeclarations( v_predefined_int(), Consphylumdeclarations( v_predefined_float(), Consphylumdeclarations( v_predefined_casestring(), Consphylumdeclarations( v_predefined_nocasestring(), p ) ) ) ) ); #line 784 "../main.k" } #line 1033 "main.c" static phylumdeclaration v_predefined_int #ifdef KC_USE_PROTOTYPES (void) #else () #endif #line 787 "../main.k" { ID int_pid, int_oid, int_sto; alternative int_alternative; phylumdeclaration int_phylumdeclaration; int_pid = Id( Str( mkcasestring( "int" ) )); int_sto = Id( Str( mkcasestring( "uniq" ) )); int_oid = Id( Str( mkcasestring( "_Int" ) )); int_alternative = Alternative( int_oid, Nilarguments() ); int_phylumdeclaration = PhylumDeclaration( int_pid, PositiveStorageOption( int_sto ), PredefinedAlternatives( Consalternatives( int_alternative, Nilalternatives() )), CcodeOption( Nilattributes(), NilCtexts() ) ); v_defoccur( int_oid, ITPredefinedOperator( int_alternative, int_pid ) ); v_defoccur( int_pid, ITPredefinedBigatomPhylum( int_phylumdeclaration ) ); return int_phylumdeclaration; #line 804 "../main.k" } #line 1062 "main.c" static phylumdeclaration v_predefined_float #ifdef KC_USE_PROTOTYPES (void) #else () #endif #line 807 "../main.k" { ID float_pid, float_oid, float_sto; alternative float_alternative; phylumdeclaration float_phylumdeclaration; float_pid = Id( Str( mkcasestring( "float" ) )); float_sto = Id( Str( mkcasestring( "uniq" ) )); float_oid = Id( Str( mkcasestring( "_Real" ) )); float_alternative = Alternative( float_oid, Nilarguments() ); float_phylumdeclaration = PhylumDeclaration( float_pid, PositiveStorageOption( float_sto ), PredefinedAlternatives( Consalternatives( float_alternative, Nilalternatives() )), CcodeOption( Nilattributes(), NilCtexts() ) ); v_defoccur( float_oid, ITPredefinedOperator( float_alternative, float_pid ) ); v_defoccur( float_pid, ITPredefinedBigatomPhylum( float_phylumdeclaration ) ); return float_phylumdeclaration; #line 824 "../main.k" } #line 1091 "main.c" static phylumdeclaration v_predefined_casestring #ifdef KC_USE_PROTOTYPES (void) #else () #endif #line 827 "../main.k" { ID casestring_pid, casestring_oid, casestring_sto; alternative casestring_alternative; phylumdeclaration casestring_phylumdeclaration; casestring_pid = Id( Str( mkcasestring( "casestring" ) )); casestring_sto = Id( Str( mkcasestring( "uniq" ) )); casestring_oid = Id( Str( mkcasestring( "_Str" ) )); casestring_alternative = Alternative( casestring_oid, Nilarguments() ); casestring_phylumdeclaration = PhylumDeclaration( casestring_pid, PositiveStorageOption( casestring_sto ), PredefinedAlternatives( Consalternatives( casestring_alternative, Nilalternatives() )), CcodeOption( Nilattributes(), NilCtexts() ) ); v_defoccur( casestring_oid, ITPredefinedOperator( casestring_alternative, casestring_pid ) ); v_defoccur( casestring_pid, ITPredefinedPhylum( casestring_phylumdeclaration ) ); return casestring_phylumdeclaration; #line 844 "../main.k" } #line 1120 "main.c" static phylumdeclaration v_predefined_nocasestring #ifdef KC_USE_PROTOTYPES (void) #else () #endif #line 847 "../main.k" { ID nocasestring_pid, nocasestring_oid, nocasestring_sto; alternative nocasestring_alternative; phylumdeclaration nocasestring_phylumdeclaration; nocasestring_pid = Id( Str( mkcasestring( "nocasestring" ) )); nocasestring_sto = Id( Str( mkcasestring( "uniq" ) )); nocasestring_oid = Id( Str( mkcasestring( "NoCaseStr" ) )); nocasestring_alternative = Alternative( nocasestring_oid, Nilarguments() ); nocasestring_phylumdeclaration = PhylumDeclaration( nocasestring_pid, PositiveStorageOption( nocasestring_sto ), PredefinedAlternatives( Consalternatives( nocasestring_alternative, Nilalternatives() )), CcodeOption( Nilattributes(), NilCtexts() ) ); v_defoccur( nocasestring_oid, ITPredefinedOperator( nocasestring_alternative, nocasestring_pid ) ); v_defoccur( nocasestring_pid, ITPredefinedPhylum( nocasestring_phylumdeclaration ) ); return nocasestring_phylumdeclaration; #line 864 "../main.k" } #line 1149 "main.c" static phylumdeclaration v_predefined_voidptr #ifdef KC_USE_PROTOTYPES (void) #else () #endif #line 867 "../main.k" { ID voidptr_pid, voidptr_oid, voidptr_sto; alternative voidptr_alternative; phylumdeclaration voidptr_phylumdeclaration; voidptr_pid = Id( Str( mkcasestring( "voidptr" ) )); voidptr_sto = Id( Str( mkcasestring( "uniq" ) )); voidptr_oid = Id( Str( mkcasestring( "_VoidPtr" ) )); voidptr_alternative = Alternative( voidptr_oid, Nilarguments() ); voidptr_phylumdeclaration = PhylumDeclaration( voidptr_pid, PositiveStorageOption( voidptr_sto ), PredefinedAlternatives( Consalternatives( voidptr_alternative, Nilalternatives() )), CcodeOption( Nilattributes(), NilCtexts() ) ); v_defoccur( voidptr_oid, ITPredefinedOperator( voidptr_alternative, voidptr_pid ) ); v_defoccur( voidptr_pid, ITPredefinedPhylum( voidptr_phylumdeclaration ) ); return voidptr_phylumdeclaration; #line 884 "../main.k" } #line 1178 "main.c" static casestring make_pg_filename #ifdef KC_USE_PROTOTYPES (char *s) #else (s) char *s; #endif #line 888 "../main.k" { return mkcasestring(s); #line 900 "../main.k" } #line 1202 "main.c" static void set_signals #ifdef KC_USE_PROTOTYPES (void) #else () #endif #line 905 "../main.k" { #ifdef SIGHUP signal(SIGHUP, cleanup_and_die); #endif #ifdef SIGINT signal(SIGINT, cleanup_and_die); #endif #ifdef SIGTERM signal(SIGTERM, cleanup_and_die); #endif #ifdef SIGQUIT signal(SIGQUIT, cleanup_and_die); #endif #ifdef SIGBUS signal(SIGBUS, cleanup_and_abort); #endif #ifdef SIGSEGV signal(SIGSEGV, cleanup_and_abort); #endif #ifdef SIGILL signal(SIGILL, cleanup_and_abort); #endif #ifdef SIGIOT signal(SIGIOT, cleanup_and_abort); #endif #ifdef SIGABRT signal(SIGABRT, cleanup_and_abort); #endif #line 935 "../main.k" } #line 1244 "main.c" static void reset_signals #ifdef KC_USE_PROTOTYPES (void) #else () #endif #line 941 "../main.k" { #ifdef SIGHUP signal(SIGHUP, SIG_DFL); #endif #ifdef SIGINT signal(SIGINT, SIG_DFL); #endif #ifdef SIGTERM signal(SIGTERM, SIG_DFL); #endif #ifdef SIGQUIT signal(SIGQUIT, SIG_DFL); #endif #ifdef SIGBUS signal(SIGBUS, SIG_DFL); #endif #ifdef SIGSEGV signal(SIGSEGV, SIG_DFL); #endif #ifdef SIGILL signal(SIGILL, SIG_DFL); #endif #ifdef SIGIOT signal(SIGIOT, SIG_DFL); #endif #ifdef SIGABRT signal(SIGABRT, SIG_DFL); #endif #line 971 "../main.k" } #line 1286 "main.c" static void block_signals #ifdef KC_USE_PROTOTYPES (void) #else () #endif #line 975 "../main.k" { #line 976 "../main.k" } #line 1299 "main.c" static void cleanup_and_die #ifdef KC_USE_PROTOTYPES (int i) #else (i) int i; #endif #line 980 "../main.k" { fprintf(stderr, "%s: received signal, cleaning up\n", g_progname->name); leave(1); #line 987 "../main.k" } #line 1318 "main.c" static void cleanup_and_abort #ifdef KC_USE_PROTOTYPES (int i) #else (i) int i; #endif #line 990 "../main.k" { perror("kc: something horrible happened:"); fprintf(stderr, "%s: received signal, cleaning up\n", g_progname->name); leave(1); #line 994 "../main.k" } #line 1334 "main.c" static void cleanup #ifdef KC_USE_PROTOTYPES (void) #else () #endif #line 998 "../main.k" { block_signals(); if (g_cfile) { if (fclose( g_cfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem2S( "writing temporary file failed:", Thetempcfile ))); } g_cfile = 0; } if (g_hfile) { if (fclose( g_hfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem2S( "writing temporary file failed:", Thetemphfile ))); } g_hfile = 0; } if (Thetempcfile && (strcmp(Thetempcfile, "") != 0) && ((g_cfile = fopen(Thetempcfile, "r")) != NULL)) { (void)fclose( g_cfile ); if (verbose) printf("removing %s\n", Thetempcfile); eremove(Thetempcfile); } if (Thetemphfile && (strcmp(Thetemphfile, "") != 0) && ((g_hfile = fopen(Thetemphfile, "r")) != NULL)) { (void)fclose( g_hfile ); if (verbose) printf("removing %s\n", Thetemphfile); eremove(Thetemphfile); } #line 1029 "../main.k" } #line 1377 "main.c" void leave #ifdef KC_USE_PROTOTYPES (int status) #else (status) int status; #endif #line 1033 "../main.k" { cleanup(); if (gp_no_fatal_problems) { exit( (status==0) ? 0 : status ); } else { exit( (status==0) ? 1 : status ); } #line 1041 "../main.k" } #line 1397 "main.c" kimwitu-4.6.1.orig/src/main.h0100644000176100001440000000147607076113232015350 0ustar debacleusers/* translation of file "../main.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #ifndef KC_FUNCTIONS_main_HEADER #define KC_FUNCTIONS_main_HEADER #define KIMW_FUNCTIONS_main_HEADER /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include "k.h" /* in case a user forgets */ /* included stuff */ #line 2 "../main.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 27 "main.h" /* end included stuff */ int main KC__P((int argc, char *argv[])); void leave KC__P((int status)); #endif /* ! KC_FUNCTIONS_main_HEADER */ kimwitu-4.6.1.orig/src/main.k0100644000176100001440000011652007076113217015353 0ustar debacleusers%{ CODE HEADER KC_TYPES KC_TYPES_HEADER KC_REWRITE KC_REWRITE_HEADER KC_UNPARSE KC_UNPARSE_HEADER KC_CSGIO KC_CSGIO_HEADER /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ %} /* * main.c */ %{ #include "defs.h" #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) #ifndef KIMWITUCOPYRIGHT # define KIMWITUCOPYRIGHT "@(#) Kimwitu version: (unknown) (c) 1990 University of Twente"; #endif #ifndef RCSMAKEID # define RCSMAKEID "@(#) Makefile version unknown" #endif static char kimwc_cAccesSid[] = "@(#)$Id: main.k,v 1.40 1998/03/18 17:52:27 belinfan Rel $"; static char kimwitu_release[] = KIMWITURELEASE; /* defined in Makefile */ static char kimwitu_version[] = KIMWITUVERSIONSTRING; /* defined in Makefile */ static char Makefile_AccesSid[] = RCSMAKEID; /* defined in Makefile */ char kimwitu_copyright[] = KIMWITUCOPYRIGHT; /* defined in Makefile */ /* used in gen.k */ #else char kimwitu_copyright[] = "KIMWITUCOPYRIGHT"; /* defined in Makefile */ /* used in gen.k */ #endif #ifdef __cplusplus # define KC__CLINKAGE "C" #else # define KC__CLINKAGE #endif #if defined(_WIN32) && ! defined (__GNUC__) # include # define mktemp _mktemp # define open _open # define O_RDONLY _O_RDONLY # define read _read # define close _close #endif /* next include files needed for hpux open (says the man-page) */ /* next include files needed for fstat */ #if defined(hpux) || defined(KC_USE_STAT) # include # include # if defined(_WIN32) && ! defined (__GNUC__) # define fstat _fstat # define stat _stat # endif #endif #include /* for signal/sigvec */ #include #ifdef SIGHOLD /* must be SVR4 */ # define signal sigset /* use reliable signals on SVR4 */ #endif /* string(s) stuff */ #include #if ((! defined(KC_STDC) ) && defined(sun)) extern char *sprintf(); #endif extern int yyparse KC__P((void)); extern void yyrestart KC__P(( FILE* )); extern void do_NORMAL KC__P(( void )); #if ! (defined(_WIN32) && ! defined (__GNUC__)) extern KC__CLINKAGE int read KC__P(( int fildes, char *buf, unsigned int nbyte )); #endif extern KC__CLINKAGE int close KC__P(( int fildes )); #ifndef KC_STDC extern int link KC__P(( char *path1, char *path2 )); extern int unlink KC__P(( char *path )); extern int memcmp KC__P(( void*, void*, size_t )); extern void exit KC__P(( int )); #endif #include "unpk.h" #include "gutil.h" #define MALLOC emalloc #define FREE efree #ifndef efree # ifdef lint # define efree(kc_p) # else # define efree(kc_p) free((kc_malloc_t)(kc_p)) # endif #endif #define STDINPUTNAME "stdin" extern FILE *yyin; static char Thetempcfile[15]; static char Thetemphfile[15]; /* * the following (3) variables are used by processargs and prepare_for_next_file */ static char **inputfilenames = 0; static int no_inputfiles = 0; static int current_inputfile; static boolean g_overwriteAlways = False; %} %{ KC_TYPES_HEADER extern char kimwitu_copyright[]; /* defined above */ extern casestring g_progname; #include extern FILE *g_hfile; extern FILE *g_cfile; extern char *g_hfilename; extern char *g_cfilename; %} %{ casestring g_progname; static char *progname_initvalue = "kc"; FILE *g_hfile, *g_cfile; char *g_hfilename; char *g_cfilename; static boolean verbose = False; %} static char *get_basename(s) char *s; { char *basename = strrchr( s, '/'); if (basename == NULL) { basename = s; } else { basename++; } return basename; } static void processargs(argc, argv) int argc; char* argv[]; { int i; int len; char *basename; g_progname = mkcasestring(get_basename(argv[0])); for( i=1; i < argc; i++ ) { if (strcmp(argv[i], "--version") == 0) { (void)fflush( stdout ); (void)fprintf( stderr, "%s: version %s\n", get_basename(argv[0]), kimwitu_version ); (void)fflush( stderr ); leave(0); } } inputfilenames = ecalloc(argc - 1, sizeof(char*)); no_inputfiles = 0; for( i=1; i < argc; i++ ) { if (strcmp(argv[i], "--overwrite") == 0) { g_overwriteAlways = True; } else { len = strlen(argv[i]); basename = get_basename( argv[i] ); if ( ! (argv[i][len-1] == 'k') && (argv[i][len-2] == '.') ) { v_report( NonFatal( NoFileLine(), Problem2S( "input file must have '.k' suffix:", argv[i] ))); } else if ( (strcmp(basename, "k.k") == 0) || (strcmp(basename, "rk.k") == 0) || (strcmp(basename, "csgiok.k") == 0) || (strcmp(basename, "stdin.k") == 0) ) { v_report( NonFatal( NoFileLine(), Problem2S( "reserved file basename 'k.k', 'rk.k', 'csgiok.k', 'stdin.k' not allowed:", argv[i] ))); } else if ((yyin = fopen(argv[i], "r"))== NULL){ v_report( NonFatal( NoFileLine(), Problem2S( "cannot open ", argv[i] ))); } else { (void)fclose(yyin); /* add the filename to a list of filenames */ inputfilenames[no_inputfiles] = argv[i]; no_inputfiles++; } } } if ( gp_no_fatal_problems ) { if ( no_inputfiles > 0 ) { current_inputfile = 0; pg_filename = make_pg_filename( inputfilenames[current_inputfile] ); if ((yyin = fopen(inputfilenames[current_inputfile], "r"))== NULL){ v_report( Fatal( NoFileLine(), Problem2S( "cannot open ", inputfilenames[current_inputfile] ))); } pg_lineno = 1; /* not sure if this is really necessary */ pg_column = 0; /* not sure if this is really necessary */ pg_charpos = 0; /* not sure if this is really necessary */ } else if (argc == 1 ) { /* read from stdin */ /*EMPTY*/ } } else { leave(1); } } static int prepare_for_next_file() { if ( current_inputfile < no_inputfiles-1 ) { current_inputfile++; pg_filename = make_pg_filename( inputfilenames[current_inputfile] ); pg_lineno = 1; /* really necessary */ pg_column = 0; /* really necessary */ pg_charpos = 0; /* really necessary */ (void)fclose(yyin); if ((yyin = fopen(inputfilenames[current_inputfile], "r"))== NULL){ v_report( Fatal( NoFileLine(), Problem2S( "cannot open ", inputfilenames[current_inputfile] ))); } yyrestart(yyin); /* needed for flex */ return 1; } do_NORMAL(); /* reset scannner if error occurred */ if ( no_inputfiles > 0 ) /* test that we don't close the stdin */ (void)fclose( yyin ); return 0; } %{ KC_TYPES_HEADER #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" /* old keyword for baclwords compatibility */ #define INC_KIMW_TYPES_HEADER "KIMW_TYPES_HEADER" #define INC_KIMW_TYPES "KIMW_TYPES" #define INC_KIMW_REWRITE_HEADER "KIMW_REWRITE_HEADER" #define INC_KIMW_REWRITE "KIMW_REWRITE" #define INC_KIMW_CSGIO_HEADER "KIMW_CSGIO_HEADER" #define INC_KIMW_CSGIO "KIMW_CSGIO" #define INC_KIMW_UNPARSE_HEADER "KIMW_UNPARSE_HEADER" #define INC_KIMW_UNPARSE "KIMW_UNPARSE" %} static void do_parse() { /* initialize the variables that hold the declarations */ includefile Theincheader = IncludeFile( mkcasestring(INC_HEADER)); includefile Theincfile = IncludeFile( mkcasestring(INC_CODE)); ID Thebase_uview = Id( Str( mkcasestring( "base_uview" ))); ID Thebase_view = Id( Str( mkcasestring( "base_view" ))); /* backward compatibility */ ID Thebase_rview = Id( Str( mkcasestring( "base_rview" ))); ID Thekc_not_uniq = Id( Str( mkcasestring( "kc_not_uniq" ))); ID Thekc_uniq_nullary_operator = Id( Str( mkcasestring( "kc_uniq_nullary_operator" ))); ID Theuniq = Id( Str( mkcasestring( "uniq" ))); Thephylumdeclarations = f_add_predefined_phyla( Nilphylumdeclarations() ); Therwdeclarations = Nilrwdeclarations(); Theunparsedeclarations = Nilunparsedeclarations(); Theargsnumbers = Nilargsnumbers(); Thefndeclarations = Nilfndeclarations(); Theincheader->inc_type = include_header; Theincfile->inc_type = include_file; IncludeFile( mkcasestring(INC_KC_TYPES_HEADER))->inc_type = include_header; IncludeFile( mkcasestring(INC_KIMW_TYPES_HEADER))->newinclude = IncludeFile( mkcasestring(INC_KC_TYPES_HEADER)); IncludeFile( mkcasestring(INC_KC_TYPES))->inc_type = include_file; IncludeFile( mkcasestring(INC_KIMW_TYPES))->newinclude = IncludeFile( mkcasestring(INC_KC_TYPES)); IncludeFile( mkcasestring(INC_KC_REWRITE_HEADER))->inc_type = include_header; IncludeFile( mkcasestring(INC_KIMW_REWRITE_HEADER))->newinclude = IncludeFile( mkcasestring(INC_KC_REWRITE_HEADER)); IncludeFile( mkcasestring(INC_KC_REWRITE))->inc_type = include_file; IncludeFile( mkcasestring(INC_KIMW_REWRITE))->newinclude = IncludeFile( mkcasestring(INC_KC_REWRITE)); IncludeFile( mkcasestring(INC_KC_CSGIO_HEADER))->inc_type = include_header; IncludeFile( mkcasestring(INC_KIMW_CSGIO_HEADER))->newinclude = IncludeFile( mkcasestring(INC_KC_CSGIO_HEADER)); IncludeFile( mkcasestring(INC_KC_CSGIO))->inc_type = include_file; IncludeFile( mkcasestring(INC_KIMW_CSGIO))->newinclude = IncludeFile( mkcasestring(INC_KC_CSGIO)); IncludeFile( mkcasestring(INC_KC_UNPARSE_HEADER))->inc_type = include_header; IncludeFile( mkcasestring(INC_KIMW_UNPARSE_HEADER))->newinclude = IncludeFile( mkcasestring(INC_KC_UNPARSE_HEADER)); IncludeFile( mkcasestring(INC_KC_UNPARSE))->inc_type = include_file; IncludeFile( mkcasestring(INC_KIMW_UNPARSE))->newinclude = IncludeFile( mkcasestring(INC_KC_UNPARSE)); v_defoccur( Thebase_uview, ITPredefinedUView() ); v_defoccur( Thebase_view, ITPredefinedUView() ); v_defoccur( Thebase_rview, ITPredefinedRView() ); v_defoccur( Theuniq, ITPredefinedStorageClass() ); Theuviewnames = Consviewnames( Thebase_uview, Nilviewnames() ); Theuviewnames = Consviewnames( Thebase_view, Theuviewnames ); Therviewnames = Consviewnames( Thebase_rview, Nilviewnames() ); Thestorageclasses = Consstorageclasses( Theuniq, Consstorageclasses( Thekc_uniq_nullary_operator, Consstorageclasses( Thekc_not_uniq, Nilstorageclasses() ))); do { (void)yyparse(); /* exits if error */ FnFile( pg_filename )->fns = Thefndeclarations; Thefndeclarations = Nilfndeclarations(); IncludeFile( pg_filename )->inc[(int)include_header] = Theincheader->inc[(int)Theincheader->inc_type]; IncludeFile( pg_filename )->inc[(int)include_file] = Theincfile->inc[(int)Theincfile->inc_type]; IncludeFile( pg_filename )->inc_type = include_both; Theincheader->inc[(int)Theincheader->inc_type] = Nilincludedeclarations(); Theincfile->inc[(int)Theincfile->inc_type] = Nilincludedeclarations(); } while( prepare_for_next_file() ); if (! gp_no_fatal_problems) { leave(1); } } int main (argc, argv) int argc; char* argv[]; { phylumdeclarationsroot proot; char *tmp_cfilename, *tmp_hfilename; #ifdef YYDEBUG extern int yydebug; yydebug = 1; #endif g_hfile = 0; g_cfile = 0; g_progname = mkcasestring( progname_initvalue ); reset_tempfiles(Thetempcfile, Thetemphfile); pg_filename = make_pg_filename( STDINPUTNAME ); gp_no_fatal_problems = True; pg_uviewshavebeendefined = False; pg_rviewshavebeendefined = False; pg_storageclasseshavebeendefined = False; pg_lineno = 0; /* to show that we are not parsing */ pg_column = 0; /* not really necessary */ pg_charpos = 0; /* not really necessary */ processargs(argc, argv); set_signals(); /* don't do this _before_ processargs, because we depend on initialized g_progname */ pg_lineno = 1; /* we start parsing */ pg_column = 0; /* really necessary */ pg_charpos = 0; /* really necessary */ do_parse(); /* calls yyparse on each input file; if wrong exit */ pg_lineno = 0; /* to show that we are no longer parsing */ pg_column = 0; /* not really necessary */ pg_charpos = 0; /* not really necessary */ Thebindingidmarks = 0; /* one of the things to initialize unparsing stuff */ /* * debugging output */ /* print_phylumdeclarations( Thephylumdeclarations ); print_rwdeclarations( Therwdeclarations ); foreach ( a_fnfile; fnfiles Thefnfiles ) { print_fndeclarations( a_fnfile->fns ); } print_unparsedeclarations( Theunparsedeclarations ); */ /* * begin the real work */ /* * start real work by checking the input */ /* * IMPORTANT: view_init_stacks should be 'unparsed' for phylumdeclarations * before any checking can may place, because it initializes some (static) variables */ unparse_phylumdeclarations( Thephylumdeclarations, v_null_printer, view_init_stacks ); unparse_phylumdeclarations( Thephylumdeclarations, v_null_printer, view_check_count ); unparse_phylumdeclarations( Thephylumdeclarations, v_null_printer, view_check ); unparse_rwdeclarations( Therwdeclarations, v_null_printer, view_check ); foreach ( a_fnfile; fnfiles Thefnfiles ) { unparse_fndeclarations( a_fnfile->fns, v_null_printer, view_check ); } unparse_unparsedeclarations( Theunparsedeclarations, v_null_printer, view_check ); unparse_unparsedeclarations( Theunparsedeclarations, v_null_printer, view_check_viewnames ); /* ADD a list of views that should be defined if no views are defined */ unparse_phylumdeclarations( Thephylumdeclarations, v_null_printer, view_check_uniq ); /* * compute the attributes that we need for pattern match code */ unparse_phylumdeclarations( Thephylumdeclarations, v_null_printer, view_make_patternreps ); unparse_rwdeclarations( Therwdeclarations, v_null_printer, view_make_patternreps ); foreach ( a_fnfile; fnfiles Thefnfiles ) { unparse_fndeclarations( a_fnfile->fns, v_null_printer, view_make_patternreps ); } unparse_unparsedeclarations( Theunparsedeclarations, v_null_printer, view_make_patternreps ); /* * TO DO: * add tabbing etc to the printer function * check viewnames and build a list of them */ /* * test if anything fatal happened */ if ( ! gp_no_fatal_problems ) { leave( 1 ); } /* else go on */ proot = PhylumDeclarations( Thephylumdeclarations ); /* to avoid problems in rare situations (eg. if no phyla defined at all */ if (length_argsnumbers(Theargsnumbers) == 0) { Theargsnumbers = Consargsnumbers( 0, Theargsnumbers ); } /* create temporary file names, and open these files and reset the printer functions */ make_tempfile_names(Thetempcfile, Thetemphfile, &tmp_cfilename, &tmp_hfilename); if ((g_hfile = fopen(tmp_hfilename, "w")) == NULL) v_report( Fatal( NoFileLine(), Problem2S( "cannot create temporary k.h file:", tmp_hfilename ))); if ((g_cfile = fopen(tmp_cfilename, "w")) == NULL) v_report( Fatal( NoFileLine(), Problem2S( "cannot create temporary k.c file:", tmp_cfilename ))); v_hfile_printer( "k.h", view_printer_reset ); v_cfile_printer( "k.c", view_printer_reset ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_k_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_k_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_alloc_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_alloc_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_enumphyla_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_enumoperators_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_nodetypedefs_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_operatormap_type_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_copy_attributes_c ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_phylummap_c ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_operatormap_c ); unparse_storageclasses( Thestorageclasses, v_cfile_printer, view_gen_uniqmap_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_yaccstacktype_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_noofoperators_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_booleans_h ); unparse_includedeclarations( IncludeFile(mkcasestring(INC_KC_TYPES_HEADER))->inc[(int)IncludeFile(mkcasestring(INC_KC_TYPES_HEADER))->inc_type], v_hfile_printer, view_gen_includes ); unparse_includedeclarations( IncludeFile(mkcasestring(INC_KC_TYPES))->inc[(int)IncludeFile(mkcasestring(INC_KC_TYPES))->inc_type], v_cfile_printer, view_gen_includes ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_initialization_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_initialization_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_assertmacros_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_operatordecls_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_operatordefs_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_error_decls_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_error_defs_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_nodetypes_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_freedecls_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_freedefs_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_eqdecls_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_eqdefs_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_printdecls_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_printdefs_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_printdotdecls_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_printdotdefs_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_listdecls_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_listdefs_c ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_copydecls_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_copydefs_c ); /* next line should be last for k.h unparsing */ unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_end_k_h ); /* try to find out if anything went wrong while writing the files */ if (fclose( g_cfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem2S( "writing temporary k.c file failed:", tmp_cfilename ))); } g_cfile = 0; if (fclose( g_hfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem2S( "writing temporary k.h file failed:", tmp_hfilename ))); } g_hfile = 0; compare_and_delete_or_move(tmp_cfilename, "k.c", g_overwriteAlways); compare_and_delete_or_move(tmp_hfilename, "k.h", g_overwriteAlways); reset_tempfiles(Thetempcfile, Thetemphfile); /* create temporary file names, and open these files and reset the printer functions */ make_tempfile_names(Thetempcfile, Thetemphfile, &tmp_cfilename, &tmp_hfilename); if ((g_hfile = fopen(tmp_hfilename, "w")) == NULL) v_report( Fatal( NoFileLine(), Problem2S( "cannot create temporary csgiok.h file:", tmp_hfilename ))); if ((g_cfile = fopen(tmp_cfilename, "w")) == NULL) v_report( Fatal( NoFileLine(), Problem2S( "cannot create temporary csgiok.c file:", tmp_cfilename ))); v_hfile_printer( "csgiok.h", view_printer_reset ); v_cfile_printer( "csgiok.c", view_printer_reset ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_csgio_start_h ); unparse_includedeclarations( IncludeFile(mkcasestring(INC_KC_CSGIO_HEADER))->inc[(int)IncludeFile(mkcasestring(INC_KC_CSGIO_HEADER))->inc_type], v_hfile_printer, view_gen_includes ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_csgio_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_csgio_end_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_csgio_start_c ); unparse_includedeclarations( IncludeFile(mkcasestring(INC_KC_CSGIO))->inc[(int)IncludeFile(mkcasestring(INC_KC_CSGIO))->inc_type], v_cfile_printer, view_gen_includes ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_csgio_c ); /* try to find out if anything went wrong while writing the files */ if (fclose( g_cfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem2S( "writing temporary csgiok.c file failed:", tmp_cfilename ))); } g_cfile = 0; if (fclose( g_hfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem2S( "writing temporary csgiok.h file failed:", tmp_hfilename ))); } g_hfile = 0; compare_and_delete_or_move(tmp_cfilename, "csgiok.c", g_overwriteAlways); compare_and_delete_or_move(tmp_hfilename, "csgiok.h", g_overwriteAlways); reset_tempfiles(Thetempcfile, Thetemphfile); /* create temporary file names, and open these files and reset the printer functions */ make_tempfile_names(Thetempcfile, Thetemphfile, &tmp_cfilename, &tmp_hfilename); if ((g_hfile = fopen(tmp_hfilename, "w")) == NULL) v_report( Fatal( NoFileLine(), Problem2S( "cannot create temporary unpk.h file:", tmp_hfilename ))); if ((g_cfile = fopen(tmp_cfilename, "w")) == NULL) v_report( Fatal( NoFileLine(), Problem2S( "cannot create temporary unpk.c file:", tmp_cfilename ))); v_hfile_printer( "unpk.h", view_printer_reset ); v_cfile_printer( "unpk.c", view_printer_reset ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_unpk_h ); unparse_includedeclarations( IncludeFile(mkcasestring(INC_KC_UNPARSE_HEADER))->inc[(int)IncludeFile(mkcasestring(INC_KC_UNPARSE_HEADER))->inc_type], v_hfile_printer, view_gen_includes ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_unparsedecls_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_end_unpk_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_unpk_c ); unparse_includedeclarations( IncludeFile(mkcasestring(INC_KC_UNPARSE))->inc[(int)IncludeFile(mkcasestring(INC_KC_UNPARSE))->inc_type], v_cfile_printer, view_gen_includes ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_default_types_unpk_c ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_unparsedefs_c ); /* try to find out if anything went wrong while writing the files */ if (fclose( g_cfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem2S( "writing temporary unpk.c file failed:", tmp_cfilename ))); } g_cfile = 0; if (fclose( g_hfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem2S( "writing temporary unpk.h file failed:", tmp_hfilename ))); } g_hfile = 0; compare_and_delete_or_move(tmp_cfilename, "unpk.c", g_overwriteAlways); compare_and_delete_or_move(tmp_hfilename, "unpk.h", g_overwriteAlways); reset_tempfiles(Thetempcfile, Thetemphfile); /* create temporary file names, and open these files and reset the printer functions */ make_tempfile_names(Thetempcfile, Thetemphfile, &tmp_cfilename, &tmp_hfilename); if ((g_hfile = fopen(tmp_hfilename, "w")) == NULL) v_report( Fatal( NoFileLine(), Problem2S( "cannot create temporary rk.h file:", tmp_hfilename ))); if ((g_cfile = fopen(tmp_cfilename, "w")) == NULL) v_report( Fatal( NoFileLine(), Problem2S( "cannot create temporary rk.c file:", tmp_cfilename ))); v_hfile_printer( "rk.h", view_printer_reset ); v_cfile_printer( "rk.c", view_printer_reset ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_rewritek_h ); unparse_includedeclarations( IncludeFile(mkcasestring(INC_KC_REWRITE_HEADER))->inc[(int)IncludeFile(mkcasestring(INC_KC_REWRITE_HEADER))->inc_type], v_hfile_printer, view_gen_includes ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_rewritedecls_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_end_rewritek_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_rewritek_c ); unparse_includedeclarations( IncludeFile(mkcasestring(INC_KC_REWRITE))->inc[(int)IncludeFile(mkcasestring(INC_KC_REWRITE))->inc_type], v_cfile_printer, view_gen_includes ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_rewritedefs_c ); /* try to find out if anything went wrong while writing the files */ if (fclose( g_cfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem2S( "writing temporary rk.c file failed:", tmp_cfilename ))); } g_cfile = 0; if (fclose( g_hfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem2S( "writing temporary rk.h file failed:", tmp_hfilename ))); } g_hfile = 0; compare_and_delete_or_move(tmp_cfilename, "rk.c", g_overwriteAlways); compare_and_delete_or_move(tmp_hfilename, "rk.h", g_overwriteAlways); reset_tempfiles(Thetempcfile, Thetemphfile); foreach ( a_fnfile; fnfiles Thefnfiles ) { /* this should be a foreach file; and a FnFile() in the unparse_fndeclarations calls */ with( a_fnfile ) { FnFile( a_filename ): { g_hfilename = f_mk_filename( a_filename, 'h' ); g_cfilename = f_mk_filename( a_filename, 'c' ); pg_filename = a_filename; /* create temporary file names, and open these files and reset the printer functions */ make_tempfile_names(Thetempcfile, Thetemphfile, &tmp_cfilename, &tmp_hfilename); if ((g_hfile = fopen(tmp_hfilename, "w")) == NULL) v_report( Fatal( NoFileLine(), Problem4S( "cannot create temporary ", g_hfilename," file:", tmp_hfilename ))); if ((g_cfile = fopen(tmp_cfilename, "w")) == NULL) v_report( Fatal( NoFileLine(), Problem4S( "cannot create temporary ", g_cfilename," file:", tmp_cfilename ))); v_hfile_printer( g_hfilename, view_printer_reset ); v_cfile_printer( g_cfilename, view_printer_reset ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_fns_start_h ); unparse_includedeclarations( IncludeFile( a_filename )->inc[(int)include_header], v_hfile_printer, view_gen_includes ); unparse_fndeclarations( a_fnfile->fns, v_hfile_printer, view_gen_fnk_h ); unparse_phylumdeclarationsroot( proot, v_hfile_printer, view_gen_fns_end_h ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_fns_start_c ); unparse_includedeclarations( IncludeFile( a_filename )->inc[(int)include_file], v_cfile_printer, view_gen_includes ); unparse_phylumdeclarationsroot( proot, v_cfile_printer, view_gen_fns_owninclude_c ); unparse_fndeclarations( a_fnfile->fns, v_cfile_printer, view_gen_fnkdecls_c ); unparse_fndeclarations( a_fnfile->fns, v_cfile_printer, view_gen_fnk_c ); /* close .c and .h file based on a_filename */ /* try to find out if anything went wrong while writing the files */ if (fclose( g_cfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem4S( "writing temporary ", g_cfilename, " file failed:", tmp_cfilename ))); } g_cfile = 0; if (fclose( g_hfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem4S( "writing temporary ", g_hfilename, " file failed:", tmp_hfilename ))); } g_hfile = 0; compare_and_delete_or_move(tmp_cfilename, g_cfilename, g_overwriteAlways); compare_and_delete_or_move(tmp_hfilename, g_hfilename, g_overwriteAlways); reset_tempfiles(Thetempcfile, Thetemphfile); FREE((kc_voidptr_t) g_hfilename ); FREE((kc_voidptr_t) g_cfilename ); } } } leave( 0 ); exit( 0 ); return( 0 ); } %{ extern KC__CLINKAGE char *mktemp KC__P(( char* )); %} static void make_tempfile_names(Thetempcfile, Thetemphfile, tmp_cfilename, tmp_hfilename) char *Thetempcfile; char *Thetemphfile; char **tmp_cfilename; char **tmp_hfilename; { (void) strcpy(Thetempcfile, ".kc.c.XXXXXX"); (void) strcpy(Thetemphfile, ".kc.h.XXXXXX"); (void) mktemp(Thetempcfile); (void) mktemp(Thetemphfile); *tmp_cfilename = Thetempcfile; *tmp_hfilename = Thetemphfile; } static void reset_tempfiles(Thetempcfile, Thetemphfile) char *Thetempcfile; char *Thetemphfile; { (void) strcpy(Thetempcfile, ""); (void) strcpy(Thetemphfile, ""); } /* * f1 = file descriptor of first file * f2 = file descriptor of second file * these files should be opened at start of file: read starts at first byte in file * fn1 = name of first file * fn2 = name of second file * these file names are used in error messages */ /* * we could extend this by first comparing the file sizes * if we have a portable way of doing that */ %{ # define MYBUFSIZ 8*BUFSIZ %} static int different(f1, f2, fn1, fn2) int f1; int f2; char *fn1; char *fn2; { char buf1[MYBUFSIZ], buf2[MYBUFSIZ]; int characters_read1, characters_read2; #ifdef KC_USE_STAT struct stat stbuf1, stbuf2; if (fstat(f1, &stbuf1) != 0) { perror("kc: error"); v_report( NonFatal( NoFileLine(), Problem2S( "error stat'ing", fn1 ))); } if (fstat(f2, &stbuf2) != 0) { perror("kc: error"); v_report( NonFatal( NoFileLine(), Problem2S( "error stat'ing", fn2 ))); } if (stbuf1.st_size != stbuf2.st_size) { return 1; } #endif /* KC_USE_STAT */ while( ! kc_zero_constant ) { if ((characters_read1 = read(f1, buf1, MYBUFSIZ)) == -1) { perror("kc: error"); v_report( Fatal( NoFileLine(), Problem2S( "error while reading from", fn1 ))); } if ((characters_read2 = read(f2, buf2, MYBUFSIZ)) == -1) { perror("kc: error"); v_report( Fatal( NoFileLine(), Problem2S( "error while reading from", fn2 ))); } if (characters_read1 == 0) { if (characters_read2 == 0) return 0; else return 1; } else { if (characters_read2 == 0) return 1; else if ( (characters_read1 != characters_read2) || (memcmp(buf1, buf2, characters_read1) != 0) ) return 1; } } /*NOTREACHED*/ # undef MYBUFSIZ } /* * WARNING: the erename routine does _not_ check whether `newfilename' * already exists. * the _caller_ should make sure of this */ %{ #ifdef KC_STDC extern KC__CLINKAGE int rename KC__P((const char*, const char*)); #endif %} static void erename(oldfilename, newfilename) char *oldfilename; char *newfilename; { #ifndef KC_STDC if (link(oldfilename, newfilename) != 0) { perror("kc: error"); v_report( NonFatal( NoFileLine(), Problem4S( "could not create", newfilename, "by linking", oldfilename ))); } if (unlink(oldfilename) != 0) { perror("kc: error"); v_report( NonFatal( NoFileLine(), Problem2S( "error while unlinking", oldfilename ))); } #else if (rename(oldfilename, newfilename) != 0) { perror("kc: error"); v_report( NonFatal( NoFileLine(), Problem4S( "error while renaming", oldfilename, "to", newfilename ))); } #endif } %{ #ifdef KC_STDC extern KC__CLINKAGE int remove KC__P((const char*)); #endif %} static void eremove(filename) char *filename; { #ifndef KC_STDC if (unlink(filename) != 0) { perror("kc: error"); v_report( NonFatal( NoFileLine(), Problem2S( "error while unlinking", filename ))); } #else if (remove(filename) != 0) { perror("kc: error"); v_report( NonFatal( NoFileLine(), Problem2S( "error while removing", filename ))); } #endif } static void compare_and_delete_or_move(tmp_filename, filename, overwriteAlways) char *tmp_filename; char *filename; boolean overwriteAlways; { int tmp_file, file; int they_are_different; if ((file = open(filename, O_RDONLY)) == -1) { erename(tmp_filename, filename); } else if ((tmp_file = open(tmp_filename, O_RDONLY)) == -1) { perror("kc: error"); v_report( Fatal( NoFileLine(), Problem2S( "could not open temporary file", tmp_filename ))); } else { they_are_different = overwriteAlways || different(tmp_file, file, tmp_filename, filename); if (close(tmp_file) == -1) { perror("kc: error"); v_report( NonFatal( NoFileLine(), Problem2S( "error while closing", tmp_filename ))); } if (close(file) == -1) { perror("kc: error"); v_report( NonFatal( NoFileLine(), Problem2S( "error while closing", filename ))); } if (they_are_different) { eremove(filename); erename(tmp_filename, filename); } else { eremove(tmp_filename); } } } static phylumdeclarations f_add_predefined_phyla( p ) phylumdeclarations p; { return Consphylumdeclarations( v_predefined_voidptr(), Consphylumdeclarations( v_predefined_int(), Consphylumdeclarations( v_predefined_float(), Consphylumdeclarations( v_predefined_casestring(), Consphylumdeclarations( v_predefined_nocasestring(), p ) ) ) ) ); } static phylumdeclaration v_predefined_int() { ID int_pid, int_oid, int_sto; alternative int_alternative; phylumdeclaration int_phylumdeclaration; int_pid = Id( Str( mkcasestring( "int" ) )); int_sto = Id( Str( mkcasestring( "uniq" ) )); int_oid = Id( Str( mkcasestring( "_Int" ) )); int_alternative = Alternative( int_oid, Nilarguments() ); int_phylumdeclaration = PhylumDeclaration( int_pid, PositiveStorageOption( /*f_emptyId()*/ int_sto ), PredefinedAlternatives( Consalternatives( int_alternative, Nilalternatives() )), CcodeOption( Nilattributes(), NilCtexts() ) ); v_defoccur( int_oid, ITPredefinedOperator( int_alternative, int_pid ) ); v_defoccur( int_pid, ITPredefinedBigatomPhylum( int_phylumdeclaration ) ); return int_phylumdeclaration; } static phylumdeclaration v_predefined_float() { ID float_pid, float_oid, float_sto; alternative float_alternative; phylumdeclaration float_phylumdeclaration; float_pid = Id( Str( mkcasestring( "float" ) )); float_sto = Id( Str( mkcasestring( "uniq" ) )); float_oid = Id( Str( mkcasestring( "_Real" ) )); float_alternative = Alternative( float_oid, Nilarguments() ); float_phylumdeclaration = PhylumDeclaration( float_pid, PositiveStorageOption( /*f_emptyId()*/ float_sto ), PredefinedAlternatives( Consalternatives( float_alternative, Nilalternatives() )), CcodeOption( Nilattributes(), NilCtexts() ) ); v_defoccur( float_oid, ITPredefinedOperator( float_alternative, float_pid ) ); v_defoccur( float_pid, ITPredefinedBigatomPhylum( float_phylumdeclaration ) ); return float_phylumdeclaration; } static phylumdeclaration v_predefined_casestring() { ID casestring_pid, casestring_oid, casestring_sto; alternative casestring_alternative; phylumdeclaration casestring_phylumdeclaration; casestring_pid = Id( Str( mkcasestring( "casestring" ) )); casestring_sto = Id( Str( mkcasestring( "uniq" ) )); casestring_oid = Id( Str( mkcasestring( "_Str" ) )); casestring_alternative = Alternative( casestring_oid, Nilarguments() ); casestring_phylumdeclaration = PhylumDeclaration( casestring_pid, PositiveStorageOption( /*f_emptyId()*/ casestring_sto ), PredefinedAlternatives( Consalternatives( casestring_alternative, Nilalternatives() )), CcodeOption( Nilattributes(), NilCtexts() ) ); v_defoccur( casestring_oid, ITPredefinedOperator( casestring_alternative, casestring_pid ) ); v_defoccur( casestring_pid, ITPredefinedPhylum( casestring_phylumdeclaration ) ); return casestring_phylumdeclaration; } static phylumdeclaration v_predefined_nocasestring() { ID nocasestring_pid, nocasestring_oid, nocasestring_sto; alternative nocasestring_alternative; phylumdeclaration nocasestring_phylumdeclaration; nocasestring_pid = Id( Str( mkcasestring( "nocasestring" ) )); nocasestring_sto = Id( Str( mkcasestring( "uniq" ) )); nocasestring_oid = Id( Str( mkcasestring( "NoCaseStr" ) )); nocasestring_alternative = Alternative( nocasestring_oid, Nilarguments() ); nocasestring_phylumdeclaration = PhylumDeclaration( nocasestring_pid, PositiveStorageOption( /*f_emptyId()*/ nocasestring_sto ), PredefinedAlternatives( Consalternatives( nocasestring_alternative, Nilalternatives() )), CcodeOption( Nilattributes(), NilCtexts() ) ); v_defoccur( nocasestring_oid, ITPredefinedOperator( nocasestring_alternative, nocasestring_pid ) ); v_defoccur( nocasestring_pid, ITPredefinedPhylum( nocasestring_phylumdeclaration ) ); return nocasestring_phylumdeclaration; } static phylumdeclaration v_predefined_voidptr() { ID voidptr_pid, voidptr_oid, voidptr_sto; alternative voidptr_alternative; phylumdeclaration voidptr_phylumdeclaration; voidptr_pid = Id( Str( mkcasestring( "voidptr" ) )); voidptr_sto = Id( Str( mkcasestring( "uniq" ) )); voidptr_oid = Id( Str( mkcasestring( "_VoidPtr" ) )); voidptr_alternative = Alternative( voidptr_oid, Nilarguments() ); voidptr_phylumdeclaration = PhylumDeclaration( voidptr_pid, PositiveStorageOption( /*f_emptyId()*/ voidptr_sto ), PredefinedAlternatives( Consalternatives( voidptr_alternative, Nilalternatives() )), CcodeOption( Nilattributes(), NilCtexts() ) ); v_defoccur( voidptr_oid, ITPredefinedOperator( voidptr_alternative, voidptr_pid ) ); v_defoccur( voidptr_pid, ITPredefinedPhylum( voidptr_phylumdeclaration ) ); return voidptr_phylumdeclaration; } static casestring make_pg_filename( s ) char *s; { /*********** char *tmpinpfilename; casestring tmp; tmpinpfilename=(char *)MALLOC((kc_size_t)(strlen(s)+3)); (void)sprintf(tmpinpfilename, "\"%s\"", s); tmp = mkcasestring( tmpinpfilename ); FREE((kc_voidptr_t) tmpinpfilename ); return tmp; ***********/ return mkcasestring(s); } /* signal handling, to be able to clean up if we are interupted */ static void set_signals() { #ifdef SIGHUP signal(SIGHUP, cleanup_and_die); #endif #ifdef SIGINT signal(SIGINT, cleanup_and_die); #endif #ifdef SIGTERM signal(SIGTERM, cleanup_and_die); #endif #ifdef SIGQUIT signal(SIGQUIT, cleanup_and_die); #endif #ifdef SIGBUS signal(SIGBUS, cleanup_and_abort); #endif #ifdef SIGSEGV signal(SIGSEGV, cleanup_and_abort); #endif /* signal(SIGSYS, cleanup_and_abort); */ #ifdef SIGILL signal(SIGILL, cleanup_and_abort); #endif #ifdef SIGIOT signal(SIGIOT, cleanup_and_abort); #endif #ifdef SIGABRT signal(SIGABRT, cleanup_and_abort); #endif } /* unused, because we now set a signal handler only once when we start, * instead of just before opening an output file */ static void reset_signals() { #ifdef SIGHUP signal(SIGHUP, SIG_DFL); #endif #ifdef SIGINT signal(SIGINT, SIG_DFL); #endif #ifdef SIGTERM signal(SIGTERM, SIG_DFL); #endif #ifdef SIGQUIT signal(SIGQUIT, SIG_DFL); #endif #ifdef SIGBUS signal(SIGBUS, SIG_DFL); #endif #ifdef SIGSEGV signal(SIGSEGV, SIG_DFL); #endif /* signal(SIGSYS, SIG_DFL); */ #ifdef SIGILL signal(SIGILL, SIG_DFL); #endif #ifdef SIGIOT signal(SIGIOT, SIG_DFL); #endif #ifdef SIGABRT signal(SIGABRT, SIG_DFL); #endif } /* empty. Should we do here somthing to make sure we don't get interupted? */ static void block_signals() { } /* cleanup the generated intermediate files if we are interupted */ static void cleanup_and_die( i ) int i; { fprintf(stderr, "%s: received signal, cleaning up\n", g_progname->name); /* even though we don't die a violent death, we still do inform * our envrionrment that we didn't finish as planned, by exiting * with non-zero exit status */ leave(1); } /* cleanup the generated intermediate files if we are interupted */ static void cleanup_and_abort( i ) int i; { perror("kc: something horrible happened:"); fprintf(stderr, "%s: received signal, cleaning up\n", g_progname->name); leave(1); } /* cleanup the generated intermediate files if we are interupted */ static void cleanup() { /* first, we try to make sure that we will not be interupted */ block_signals(); /* then, we close the open files */ if (g_cfile) { if (fclose( g_cfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem2S( "writing temporary file failed:", Thetempcfile ))); } g_cfile = 0; } if (g_hfile) { if (fclose( g_hfile ) == EOF) { v_report( Fatal( NoFileLine(), Problem2S( "writing temporary file failed:", Thetemphfile ))); } g_hfile = 0; } /* next, we unlink the tempfiles, if they exist */ if (Thetempcfile && (strcmp(Thetempcfile, "") != 0) && ((g_cfile = fopen(Thetempcfile, "r")) != NULL)) { (void)fclose( g_cfile ); if (verbose) printf("removing %s\n", Thetempcfile); eremove(Thetempcfile); } if (Thetemphfile && (strcmp(Thetemphfile, "") != 0) && ((g_hfile = fopen(Thetemphfile, "r")) != NULL)) { (void)fclose( g_hfile ); if (verbose) printf("removing %s\n", Thetemphfile); eremove(Thetemphfile); } } void leave(status) int status; { cleanup(); if (gp_no_fatal_problems) { exit( (status==0) ? 0 : status ); } else { exit( (status==0) ? 1 : status ); } } kimwitu-4.6.1.orig/src/parse.c0100644000176100001440000015304207076113221015524 0ustar debacleusers/* translation of file "../parse.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #define KC_FUNCTIONS_parse #define KIMW_FUNCTIONS_parse /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include #ifdef KC_STDC # include #endif #include "k.h" /* included stuff */ #line 2 "../parse.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 29 "parse.c" #line 14 "../parse.k" #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char parse_kAccesSid[] = "@(#)$Id: parse.k,v 1.18 1998/01/27 16:57:25 belinfan Rel $"; #endif #line 35 "parse.c" #line 43 "../parse.k" int pg_lineno = 1; /* global line # */ int pg_column = 0; /* global column # */ int pg_charpos = 0; /* global charpos # */ casestring pg_filename; /* global file name */ int pg_no_of_arguments; /* no_of_arguments */ phylumdeclarations Thephylumdeclarations; /* global phylumdecls */ rwdeclarations Therwdeclarations; /* global rw-decls */ fndeclarations Thefndeclarations; /* fn-decls for the file being parsed */ fnfiles Thefnfiles; /* global fn-decls */ includefiles Theincludefiles; /* global incl-decls */ unparsedeclarations Theunparsedeclarations; /* global unp-decls */ argsnumbers Theargsnumbers; /* global list of argsnumbers */ viewnames Theuviewnames; /* global list of u-viewnames */ viewnames Therviewnames; /* global list of r-viewnames */ storageclasses Thestorageclasses; /* global list of storageclasses */ boolean pg_uviewshavebeendefined; /* global indication */ boolean pg_rviewshavebeendefined; /* global indication */ boolean pg_storageclasseshavebeendefined; /* global indication */ #line 56 "parse.c" #line 66 "../parse.k" #include "util.h" #line 60 "parse.c" #line 146 "../parse.k" #include "extocc.h" #line 64 "parse.c" #line 151 "../parse.k" #ifndef MALLOC # define MALLOC emalloc #endif #ifndef kc_str_conc2 # include # define kc_str_conc2(a,b) (char*)strcat(strcpy((char *) MALLOC((kc_size_t)(strlen(a) + strlen(b) +1)), a), b) #endif #line 74 "parse.c" /* end included stuff */ #include "parse.h" static ID f_ID_of_direct_decl KC__P((ac_direct_declarator d)); static int f_stars_of_ac_pointer_option KC__P((ac_pointer_option d)); static int f_stars_of_ac_pointer KC__P((ac_pointer d)); static boolean f_static_in_ac_decl_spec KC__P((ac_declaration_specifier ds)); static boolean f_static_in_ac_stor_class KC__P((ac_storage_class_specifier sc)); static ID f_ID_of_ac_declaration_specifier KC__P((ac_declaration_specifier d)); static ID f_ID_of_ac_type_specifier KC__P((ac_type_specifier d)); phylumdeclarations mergephylumdeclarations #ifdef KC_USE_PROTOTYPES (phylumdeclaration pd, phylumdeclarations pds) #else (pd, pds) phylumdeclaration pd; phylumdeclarations pds; #endif #line 71 "../parse.k" { two_phyla tp; { #line 73 "../parse.k" phylumdeclaration kc_selvar_0_1 = pd ; #line 73 "../parse.k" /*SUPPRESS 622*/ assert_phylumdeclaration(kc_selvar_0_1, "with_expression (1)"); #line 104 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_PhylumDeclaration)) { #line 74 "../parse.k" ID pd_id = kc_selvar_0_1->u.PhylumDeclaration.ID_1; #line 74 "../parse.k" storageoption pd_stopt = kc_selvar_0_1->u.PhylumDeclaration.storageoption_1; #line 74 "../parse.k" productionblock pd_pb = kc_selvar_0_1->u.PhylumDeclaration.productionblock_1; #line 74 "../parse.k" Ccode_option pd_ccopt = kc_selvar_0_1->u.PhylumDeclaration.Ccode_option_1; #line 74 "../parse.k" phylumdeclaration fpd = f_lookupuserdecl( pd_id ); if (!fpd) { v_add( pd_id ); return Consphylumdeclarations( pd, pds ); } else if ( pd == fpd ) { if ( f_added( pd_id ) ) { return pds; } else { v_add( pd_id ); return Consphylumdeclarations( pd, pds ); } } else { { #line 87 "../parse.k" phylumdeclaration kc_selvar_1_1 = fpd ; #line 87 "../parse.k" /*SUPPRESS 622*/ assert_phylumdeclaration(kc_selvar_1_1, "with_expression (1)"); #line 137 "parse.c" if (( kc_selvar_1_1->prod_sel == sel_PhylumDeclaration)) { #line 88 "../parse.k" ID fpd_id = kc_selvar_1_1->u.PhylumDeclaration.ID_1; #line 88 "../parse.k" storageoption fpd_stopt = kc_selvar_1_1->u.PhylumDeclaration.storageoption_1; #line 88 "../parse.k" productionblock fpd_pb = kc_selvar_1_1->u.PhylumDeclaration.productionblock_1; #line 88 "../parse.k" Ccode_option fpd_ccopt = kc_selvar_1_1->u.PhylumDeclaration.Ccode_option_1; #line 88 "../parse.k" { #line 89 "../parse.k" two_phyla kc_selvar_2_1 = tp = TwoStorageoption( pd_stopt, fpd_stopt ) ; #line 89 "../parse.k" /*SUPPRESS 622*/ assert_two_phyla(kc_selvar_2_1, "with_expression (1)"); #line 158 "parse.c" if (( kc_selvar_2_1->prod_sel == sel_TwoStorageoption) && ( kc_selvar_2_1->u.TwoStorageoption.storageoption_1->prod_sel == sel_PositiveStorageOption) && ( kc_selvar_2_1->u.TwoStorageoption.storageoption_2->prod_sel == sel_NegativeStorageOption) && (eq_ID( kc_selvar_2_1->u.TwoStorageoption.storageoption_2->u.NegativeStorageOption.ID_1, kc_selvar_2_1->u.TwoStorageoption.storageoption_1->u.PositiveStorageOption.ID_1))) { #line 97 "../parse.k" ID id = kc_selvar_2_1->u.TwoStorageoption.storageoption_1->u.PositiveStorageOption.ID_1; #line 97 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1storageoption1S1ID( "storage option mismatch ( declared as ", fpd_stopt, ") for phylum", fpd_id ))); #line 166 "parse.c" } else if (( kc_selvar_2_1->prod_sel == sel_TwoStorageoption) && ( kc_selvar_2_1->u.TwoStorageoption.storageoption_1->prod_sel == sel_NegativeStorageOption) && ( kc_selvar_2_1->u.TwoStorageoption.storageoption_2->prod_sel == sel_PositiveStorageOption) && (eq_ID( kc_selvar_2_1->u.TwoStorageoption.storageoption_2->u.PositiveStorageOption.ID_1, kc_selvar_2_1->u.TwoStorageoption.storageoption_1->u.NegativeStorageOption.ID_1))) { #line 94 "../parse.k" ID id = kc_selvar_2_1->u.TwoStorageoption.storageoption_1->u.NegativeStorageOption.ID_1; #line 94 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1storageoption1S1ID( "storage option mismatch ( declared as ", fpd_stopt, ") for phylum", fpd_id ))); #line 175 "parse.c" } else if (( kc_selvar_2_1->prod_sel == sel_TwoStorageoption) && ( kc_selvar_2_1->u.TwoStorageoption.storageoption_1->prod_sel == sel_PositiveStorageOption) && ( kc_selvar_2_1->u.TwoStorageoption.storageoption_2->prod_sel == sel_PositiveStorageOption) && (eq_ID( kc_selvar_2_1->u.TwoStorageoption.storageoption_2->u.PositiveStorageOption.ID_1, kc_selvar_2_1->u.TwoStorageoption.storageoption_1->u.PositiveStorageOption.ID_1))) { #line 93 "../parse.k" ID id = kc_selvar_2_1->u.TwoStorageoption.storageoption_1->u.PositiveStorageOption.ID_1; #line 93 "../parse.k" KC_LINTUSE(id); #line 182 "parse.c" } else if (( kc_selvar_2_1->prod_sel == sel_TwoStorageoption) && ( kc_selvar_2_1->u.TwoStorageoption.storageoption_1->prod_sel == sel_NegativeStorageOption) && ( kc_selvar_2_1->u.TwoStorageoption.storageoption_2->prod_sel == sel_NegativeStorageOption) && (eq_ID( kc_selvar_2_1->u.TwoStorageoption.storageoption_2->u.NegativeStorageOption.ID_1, kc_selvar_2_1->u.TwoStorageoption.storageoption_1->u.NegativeStorageOption.ID_1))) { #line 92 "../parse.k" ID id = kc_selvar_2_1->u.TwoStorageoption.storageoption_1->u.NegativeStorageOption.ID_1; #line 92 "../parse.k" KC_LINTUSE(id); #line 189 "parse.c" } else if (( kc_selvar_2_1->prod_sel == sel_TwoStorageoption) && ( kc_selvar_2_1->u.TwoStorageoption.storageoption_1->prod_sel == sel_NoStorageOption)) { #line 91 "../parse.k" /*EMPTY*/ #line 194 "parse.c" } else if (( kc_selvar_2_1->prod_sel == sel_TwoStorageoption) && ( kc_selvar_2_1->u.TwoStorageoption.storageoption_2->prod_sel == sel_NoStorageOption)) { #line 90 "../parse.k" fpd->u.PhylumDeclaration.storageoption_1 = pd_stopt; #line 199 "parse.c" } else if (( kc_selvar_2_1->prod_sel == sel_TwoStorageoption)) { #line 100 "../parse.k" v_report(NonFatal( FileLine( pd_id->file, pd_id->line ), Problem1S1storageoption1S1ID( "storage option mismatch ( declared as ", fpd_stopt, ") for phylum", fpd_id ))); #line 209 "parse.c" } else { kc_no_default_in_with( "mergephylumdeclarations", __LINE__, __FILE__ ); return (phylumdeclarations)0; } } #line 107 "../parse.k" free_two_phyla( tp, False ); { #line 108 "../parse.k" two_phyla kc_selvar_2_1 = tp = TwoProductionblock( pd_pb, fpd_pb ) ; #line 108 "../parse.k" /*SUPPRESS 622*/ assert_two_phyla(kc_selvar_2_1, "with_expression (1)"); #line 225 "parse.c" if (( kc_selvar_2_1->prod_sel == sel_TwoProductionblock) && ( kc_selvar_2_1->u.TwoProductionblock.productionblock_1->prod_sel == sel_NonlistAlternatives) && ( kc_selvar_2_1->u.TwoProductionblock.productionblock_2->prod_sel == sel_NonlistAlternatives)) { #line 120 "../parse.k" alternatives pd_pb_a = kc_selvar_2_1->u.TwoProductionblock.productionblock_1->u.NonlistAlternatives.alternatives_1; #line 120 "../parse.k" alternatives fpd_pb_a = kc_selvar_2_1->u.TwoProductionblock.productionblock_2->u.NonlistAlternatives.alternatives_1; #line 120 "../parse.k" fpd_pb->u.NonlistAlternatives.alternatives_1 = concat_alternatives( pd_pb_a, fpd_pb_a ); #line 235 "parse.c" } else if (( kc_selvar_2_1->prod_sel == sel_TwoProductionblock) && ( kc_selvar_2_1->u.TwoProductionblock.productionblock_1->prod_sel == sel_NonlistAlternatives) && ( kc_selvar_2_1->u.TwoProductionblock.productionblock_2->prod_sel == sel_Emptyproductionblock)) { #line 119 "../parse.k" fpd->u.PhylumDeclaration.productionblock_1 = pd_pb; #line 240 "parse.c" } else if (( kc_selvar_2_1->prod_sel == sel_TwoProductionblock) && ( kc_selvar_2_1->u.TwoProductionblock.productionblock_1->prod_sel == sel_PredefinedAlternatives) && ( kc_selvar_2_1->u.TwoProductionblock.productionblock_2->prod_sel == sel_Emptyproductionblock)) { #line 115 "../parse.k" fpd->u.PhylumDeclaration.productionblock_1 = pd_pb; #line 245 "parse.c" } else if (( kc_selvar_2_1->prod_sel == sel_TwoProductionblock) && ( kc_selvar_2_1->u.TwoProductionblock.productionblock_1->prod_sel == sel_ListAlternatives) && ( kc_selvar_2_1->u.TwoProductionblock.productionblock_2->prod_sel == sel_Emptyproductionblock)) { #line 111 "../parse.k" fpd->u.PhylumDeclaration.productionblock_1 = pd_pb; #line 250 "parse.c" } else if (( kc_selvar_2_1->prod_sel == sel_TwoProductionblock) && ( kc_selvar_2_1->u.TwoProductionblock.productionblock_1->prod_sel == sel_Emptyproductionblock) && ( kc_selvar_2_1->u.TwoProductionblock.productionblock_2->prod_sel == sel_Emptyproductionblock)) { #line 109 "../parse.k" /*EMPTY*/ #line 255 "parse.c" } else if (( kc_selvar_2_1->prod_sel == sel_TwoProductionblock) && ( kc_selvar_2_1->u.TwoProductionblock.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 123 "../parse.k" v_report(NonFatal( FileLine( pd_id->file, pd_id->line ), Problem1S1ID( "production block mismatch: trying to extend phylum", pd_id ))); #line 262 "parse.c" } else if (( kc_selvar_2_1->prod_sel == sel_TwoProductionblock) && ( kc_selvar_2_1->u.TwoProductionblock.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 116 "../parse.k" v_report(NonFatal( FileLine( pd_id->file, pd_id->line ), Problem1S1ID( "production block mismatch: trying to predefine phylum", pd_id ))); #line 269 "parse.c" } else if (( kc_selvar_2_1->prod_sel == sel_TwoProductionblock) && ( kc_selvar_2_1->u.TwoProductionblock.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 112 "../parse.k" v_report(NonFatal( FileLine( pd_id->file, pd_id->line ), Problem1S1ID( "production block mismatch: trying to redefine list phylum", pd_id ))); #line 276 "parse.c" } else if (( kc_selvar_2_1->prod_sel == sel_TwoProductionblock) && ( kc_selvar_2_1->u.TwoProductionblock.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 110 "../parse.k" /*EMPTY*/ #line 281 "parse.c" } else { kc_no_default_in_with( "mergephylumdeclarations", __LINE__, __FILE__ ); return (phylumdeclarations)0; } } #line 127 "../parse.k" free_two_phyla( tp, False ); { #line 128 "../parse.k" two_phyla kc_selvar_2_1 = tp = TwoCcode_option( pd_ccopt, fpd_ccopt ) ; #line 128 "../parse.k" /*SUPPRESS 622*/ assert_two_phyla(kc_selvar_2_1, "with_expression (1)"); #line 297 "parse.c" if (( kc_selvar_2_1->prod_sel == sel_TwoCcode_option) && ( kc_selvar_2_1->u.TwoCcode_option.Ccode_option_1->prod_sel == sel_CcodeOption) && ( kc_selvar_2_1->u.TwoCcode_option.Ccode_option_2->prod_sel == sel_CcodeOption)) { #line 129 "../parse.k" attributes pd_ccopt_attr = kc_selvar_2_1->u.TwoCcode_option.Ccode_option_1->u.CcodeOption.attributes_1; #line 129 "../parse.k" Ctexts pd_ccopt_ct = kc_selvar_2_1->u.TwoCcode_option.Ccode_option_1->u.CcodeOption.Ctexts_1; #line 129 "../parse.k" attributes fpd_ccopt_attr = kc_selvar_2_1->u.TwoCcode_option.Ccode_option_2->u.CcodeOption.attributes_1; #line 129 "../parse.k" Ctexts fpd_ccopt_ct = kc_selvar_2_1->u.TwoCcode_option.Ccode_option_2->u.CcodeOption.Ctexts_1; #line 129 "../parse.k" fpd->u.PhylumDeclaration.Ccode_option_1 = CcodeOption( concat_attributes( pd_ccopt_attr, fpd_ccopt_attr), concat_Ctexts( pd_ccopt_ct, fpd_ccopt_ct )); #line 311 "parse.c" } else { kc_no_default_in_with( "mergephylumdeclarations", __LINE__, __FILE__ ); return (phylumdeclarations)0; } } #line 133 "../parse.k" free_two_phyla( tp, False ); #line 319 "parse.c" } else { kc_no_default_in_with( "mergephylumdeclarations", __LINE__, __FILE__ ); return (phylumdeclarations)0; } } #line 136 "../parse.k" return pds; } #line 327 "parse.c" } else { kc_no_default_in_with( "mergephylumdeclarations", __LINE__, __FILE__ ); return (phylumdeclarations)0; } } #line 137 "../parse.k" #line 137 "../parse.k" } #line 336 "parse.c" alternatives makeListAlternatives #ifdef KC_USE_PROTOTYPES (ID listphylum, ID elementphylum) #else (listphylum, elementphylum) ID listphylum; ID elementphylum; #endif #line 166 "../parse.k" { ID Nil_id, Cons_id; alternative Nil_alternative, Cons_alternative; Nil_id = Id( Str( mkcasestring( kc_str_conc2("Nil",f_strofID(listphylum))))); Cons_id = Id( Str( mkcasestring( kc_str_conc2("Cons",f_strofID(listphylum))))); Nil_id->line = elementphylum->line; Nil_id->file = elementphylum->file; Cons_id->line = elementphylum->line; Cons_id->file = elementphylum->file; Nil_alternative = Alternative( Nil_id, Nilarguments() ); Cons_alternative = Alternative( Cons_id, Consarguments( listphylum, Consarguments( elementphylum, Nilarguments() ) ) ); v_extendoccur( Nil_id, ITUserOperator( Nil_alternative, listphylum ) ); v_extendoccur( Cons_id, ITUserOperator( Cons_alternative, listphylum ) ); return Consalternatives( Cons_alternative, Consalternatives( Nil_alternative, Nilalternatives() ) ); #line 180 "../parse.k" } #line 363 "parse.c" char *f_strofID #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 185 "../parse.k" { { #line 186 "../parse.k" ID kc_selvar_0_1 = id ; #line 186 "../parse.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 382 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_Id) && ( kc_selvar_0_1->u.Id.uniqID_1->prod_sel == sel_Str)) { #line 187 "../parse.k" casestring cs = kc_selvar_0_1->u.Id.uniqID_1->u.Str.casestring_1; #line 187 "../parse.k" return cs->name; #line 388 "parse.c" } else { kc_no_default_in_with( "f_strofID", __LINE__, __FILE__ ); return (char*)0; } } #line 189 "../parse.k" #line 189 "../parse.k" } #line 397 "parse.c" phylumdeclaration f_lookupuserdecl #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 194 "../parse.k" { { #line 195 "../parse.k" ID kc_selvar_0_1 = id ; #line 195 "../parse.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 416 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 196 "../parse.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 196 "../parse.k" { #line 197 "../parse.k" IDtype kc_selvar_1_1 = uid->type ; #line 197 "../parse.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_1_1, "with_expression (1)"); #line 431 "parse.c" if (( kc_selvar_1_1->prod_sel == sel_ITUserFunction)) { #line 240 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of user-defined function:", id ))); return 0; #line 438 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserRView)) { #line 236 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of user-defined rewrite view:", id ))); return 0; #line 446 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedRView)) { #line 232 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of predefined rewrite view:", id ))); return 0; #line 454 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserUView)) { #line 228 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of user-defined unparse view:", id ))); return 0; #line 462 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedUView)) { #line 224 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of predefined unparse view:", id ))); return 0; #line 470 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITStorageClass)) { #line 220 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of user-defined storage class:", id ))); return 0; #line 478 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedStorageClass)) { #line 216 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of predefined storage class:", id ))); return 0; #line 486 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserOperator)) { #line 212 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of user-defined operator:", id ))); return 0; #line 494 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedOperator)) { #line 208 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of predefined operator:", id ))); return 0; #line 502 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserPhylum)) { #line 207 "../parse.k" phylumdeclaration pd = kc_selvar_1_1->u.ITUserPhylum.phylumdeclaration_1; #line 207 "../parse.k" return pd; #line 509 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedPhylum)) { #line 203 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of predefined phylum:", id ))); return 0; #line 517 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 203 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of predefined phylum:", id ))); return 0; #line 525 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUnknown)) { #line 198 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "undefined phylum:", id ))); return 0; #line 533 "parse.c" } else { kc_no_default_in_with( "f_lookupuserdecl", __LINE__, __FILE__ ); return (phylumdeclaration)0; } } #line 244 "../parse.k" #line 540 "parse.c" } else { kc_no_default_in_with( "f_lookupuserdecl", __LINE__, __FILE__ ); return (phylumdeclaration)0; } } #line 244 "../parse.k" #line 244 "../parse.k" } #line 549 "parse.c" phylumdeclaration f_lookupdecl #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 247 "../parse.k" { { #line 248 "../parse.k" ID kc_selvar_0_1 = id ; #line 248 "../parse.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 568 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 249 "../parse.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 249 "../parse.k" { #line 250 "../parse.k" IDtype kc_selvar_1_1 = uid->type ; #line 250 "../parse.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_1_1, "with_expression (1)"); #line 583 "parse.c" if (( kc_selvar_1_1->prod_sel == sel_ITUserFunction)) { #line 290 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of user-defined function:", id ))); return 0; #line 590 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserRView)) { #line 286 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of user-defined rewrite view:", id ))); return 0; #line 598 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedRView)) { #line 282 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of predefined rewrite view:", id ))); return 0; #line 606 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserUView)) { #line 278 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of user-defined unparse view:", id ))); return 0; #line 614 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedUView)) { #line 274 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of predefined unparse view:", id ))); return 0; #line 622 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITStorageClass)) { #line 270 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of user-defined storage class:", id ))); return 0; #line 630 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedStorageClass)) { #line 266 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of predefined storage class:", id ))); return 0; #line 638 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserOperator)) { #line 262 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of user-defined operator:", id ))); return 0; #line 646 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedOperator)) { #line 258 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of predefined operator:", id ))); return 0; #line 654 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserPhylum)) { #line 257 "../parse.k" phylumdeclaration pd = kc_selvar_1_1->u.ITUserPhylum.phylumdeclaration_1; #line 257 "../parse.k" return pd; #line 661 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedPhylum)) { #line 256 "../parse.k" phylumdeclaration pd = kc_selvar_1_1->u.ITPredefinedPhylum.phylumdeclaration_1; #line 256 "../parse.k" return pd; #line 668 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 255 "../parse.k" phylumdeclaration pd = kc_selvar_1_1->u.ITPredefinedBigatomPhylum.phylumdeclaration_1; #line 256 "../parse.k" return pd; #line 675 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUnknown)) { #line 251 "../parse.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "undefined phylum:", id ))); return 0; #line 683 "parse.c" } else { kc_no_default_in_with( "f_lookupdecl", __LINE__, __FILE__ ); return (phylumdeclaration)0; } } #line 294 "../parse.k" #line 690 "parse.c" } else { kc_no_default_in_with( "f_lookupdecl", __LINE__, __FILE__ ); return (phylumdeclaration)0; } } #line 294 "../parse.k" #line 294 "../parse.k" } #line 699 "parse.c" argsnumbers insert_in_argsnumbers #ifdef KC_USE_PROTOTYPES (int i, argsnumbers a) #else (i, a) int i; argsnumbers a; #endif #line 298 "../parse.k" { { #line 299 "../parse.k" argsnumbers kc_selvar_0_1 = a ; #line 299 "../parse.k" /*SUPPRESS 622*/ assert_argsnumbers(kc_selvar_0_1, "with_expression (1)"); #line 719 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_Consargsnumbers)) { #line 301 "../parse.k" int j = kc_selvar_0_1->u.Consargsnumbers.int_1; #line 301 "../parse.k" argsnumbers ra = kc_selvar_0_1->u.Consargsnumbers.argsnumbers_1; #line 301 "../parse.k" if ( i < j ) { return Consargsnumbers( i, a ); } else if ( i == j ) { return a; } else { return Consargsnumbers( j, insert_in_argsnumbers( i, ra )); } #line 734 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilargsnumbers)) { #line 300 "../parse.k" return Consargsnumbers( i, a ); #line 739 "parse.c" } else { kc_no_default_in_with( "insert_in_argsnumbers", __LINE__, __FILE__ ); return (argsnumbers)0; } } #line 308 "../parse.k" #line 308 "../parse.k" } #line 748 "parse.c" void set_includefiles #ifdef KC_USE_PROTOTYPES (includefiles ifs, includedeclaration i) #else (ifs, i) includefiles ifs; includedeclaration i; #endif #line 311 "../parse.k" { { #line 312 "../parse.k" includefiles kc_fe_selvar_1 = ifs ; #line 312 "../parse.k" /*SUPPRESS 622*/ assert_includefiles(kc_fe_selvar_1, "foreach_list_expression"); #line 766 "parse.c" while( kc_fe_selvar_1->prod_sel == sel_Consincludefiles ) { includefile kc_selvar_0_1 = kc_fe_selvar_1->u.Consincludefiles.includefile_1; { #line 312 "../parse.k" { #line 312 "../parse.k" /*SUPPRESS 622*/ assert_includefile(kc_selvar_0_1, "with_expression (1)"); #line 778 "parse.c" { #line 312 "../parse.k" includefile pl_includefile = kc_selvar_0_1; #line 312 "../parse.k" /* SUPPRESS 622 */ assert((pl_includefile->inc_type == include_file) || (pl_includefile->inc_type == include_header)); pl_includefile->inc[(int)pl_includefile->inc_type] = Consincludedeclarations( i, pl_includefile->inc[(int)pl_includefile->inc_type] ); #line 789 "parse.c" } } #line 793 "parse.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consincludefiles.includefiles_1; #line 312 "../parse.k" /*SUPPRESS 622*/ assert_includefiles(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 800 "parse.c" } } #line 317 "../parse.k" #line 317 "../parse.k" } #line 807 "parse.c" ID f_ID_of_declarator #ifdef KC_USE_PROTOTYPES (ac_declarator d) #else (d) ac_declarator d; #endif #line 324 "../parse.k" {{ #line 323 "../parse.k" ac_declarator kc_selvar_0_1 = d; #line 323 "../parse.k" /*SUPPRESS 622*/ assert_ac_declarator(kc_selvar_0_1, "with_expression (1)"); #line 823 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_AcDeclarator)) { #line 325 "../parse.k" ac_direct_declarator dd = kc_selvar_0_1->u.AcDeclarator.ac_direct_declarator_1; #line 325 "../parse.k" return f_ID_of_direct_decl( dd ); #line 829 "parse.c" } else { kc_no_default_in_with( "f_ID_of_declarator", __LINE__, __FILE__ ); return (ID)0; } } #line 326 "../parse.k" } #line 837 "parse.c" static ID f_ID_of_direct_decl #ifdef KC_USE_PROTOTYPES (ac_direct_declarator d) #else (d) ac_direct_declarator d; #endif #line 329 "../parse.k" {{ #line 328 "../parse.k" ac_direct_declarator kc_selvar_0_1 = d; #line 328 "../parse.k" /*SUPPRESS 622*/ assert_ac_direct_declarator(kc_selvar_0_1, "with_expression (1)"); #line 853 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_AcDirectDeclKandR)) { #line 334 "../parse.k" ac_direct_declarator a_d = kc_selvar_0_1->u.AcDirectDeclKandR.ac_direct_declarator_1; #line 334 "../parse.k" return f_ID_of_direct_decl( a_d ); #line 859 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_AcDirectDeclProto)) { #line 333 "../parse.k" ac_direct_declarator a_d = kc_selvar_0_1->u.AcDirectDeclProto.ac_direct_declarator_1; #line 333 "../parse.k" return f_ID_of_direct_decl( a_d ); #line 866 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_AcDirectDeclArray)) { #line 332 "../parse.k" ac_direct_declarator a_d = kc_selvar_0_1->u.AcDirectDeclArray.ac_direct_declarator_1; #line 332 "../parse.k" return f_ID_of_direct_decl( a_d ); #line 873 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_AcDirectDeclPack)) { #line 331 "../parse.k" ac_declarator a_d = kc_selvar_0_1->u.AcDirectDeclPack.ac_declarator_1; #line 331 "../parse.k" return f_ID_of_declarator( a_d ); #line 880 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_AcDirectDeclId)) { #line 330 "../parse.k" ID i = kc_selvar_0_1->u.AcDirectDeclId.ID_1; #line 330 "../parse.k" return i; #line 887 "parse.c" } else { kc_no_default_in_with( "f_ID_of_direct_decl", __LINE__, __FILE__ ); return (ID)0; } } #line 335 "../parse.k" } #line 895 "parse.c" int f_stars_of_declarator #ifdef KC_USE_PROTOTYPES (ac_declarator d) #else (d) ac_declarator d; #endif #line 340 "../parse.k" {{ #line 339 "../parse.k" ac_declarator kc_selvar_0_1 = d; #line 339 "../parse.k" /*SUPPRESS 622*/ assert_ac_declarator(kc_selvar_0_1, "with_expression (1)"); #line 911 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_AcDeclarator)) { #line 341 "../parse.k" ac_pointer_option po = kc_selvar_0_1->u.AcDeclarator.ac_pointer_option_1; #line 341 "../parse.k" return f_stars_of_ac_pointer_option( po ); #line 917 "parse.c" } else { kc_no_default_in_with( "f_stars_of_declarator", __LINE__, __FILE__ ); return (int)0; } } #line 342 "../parse.k" } #line 925 "parse.c" static int f_stars_of_ac_pointer_option #ifdef KC_USE_PROTOTYPES (ac_pointer_option d) #else (d) ac_pointer_option d; #endif #line 345 "../parse.k" {{ #line 344 "../parse.k" ac_pointer_option kc_selvar_0_1 = d; #line 344 "../parse.k" /*SUPPRESS 622*/ assert_ac_pointer_option(kc_selvar_0_1, "with_expression (1)"); #line 941 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_Yespointer)) { #line 347 "../parse.k" ac_pointer p = kc_selvar_0_1->u.Yespointer.ac_pointer_1; #line 347 "../parse.k" return f_stars_of_ac_pointer( p ); #line 947 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nopointer)) { #line 346 "../parse.k" return 0; #line 952 "parse.c" } else { kc_no_default_in_with( "f_stars_of_ac_pointer_option", __LINE__, __FILE__ ); return (int)0; } } #line 348 "../parse.k" } #line 960 "parse.c" static int f_stars_of_ac_pointer #ifdef KC_USE_PROTOTYPES (ac_pointer d) #else (d) ac_pointer d; #endif #line 351 "../parse.k" {{ #line 350 "../parse.k" ac_pointer kc_selvar_0_1 = d; #line 350 "../parse.k" /*SUPPRESS 622*/ assert_ac_pointer(kc_selvar_0_1, "with_expression (1)"); #line 976 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_AcPointerCons)) { #line 353 "../parse.k" ac_pointer p = kc_selvar_0_1->u.AcPointerCons.ac_pointer_1; #line 353 "../parse.k" return 1 + f_stars_of_ac_pointer( p ); #line 982 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_AcPointerNil)) { #line 352 "../parse.k" return 1; #line 987 "parse.c" } else { kc_no_default_in_with( "f_stars_of_ac_pointer", __LINE__, __FILE__ ); return (int)0; } } #line 354 "../parse.k" } #line 995 "parse.c" fnclass f_fnclass_info #ifdef KC_USE_PROTOTYPES (ac_declaration_specifiers ds, casestring fn) #else (ds, fn) ac_declaration_specifiers ds; casestring fn; #endif #line 359 "../parse.k" {{ #line 358 "../parse.k" ac_declaration_specifiers kc_selvar_0_1 = ds; #line 358 "../parse.k" /*SUPPRESS 622*/ assert_ac_declaration_specifiers(kc_selvar_0_1, "with_expression (1)"); #line 1012 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_Consac_declaration_specifiers)) { #line 361 "../parse.k" ac_declaration_specifier h = kc_selvar_0_1->u.Consac_declaration_specifiers.ac_declaration_specifier_1; #line 361 "../parse.k" ac_declaration_specifiers t = kc_selvar_0_1->u.Consac_declaration_specifiers.ac_declaration_specifiers_1; #line 361 "../parse.k" if (f_static_in_ac_decl_spec( h )) { return LocalFn( fn ); } else { return f_fnclass_info( t, fn ); } #line 1026 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilac_declaration_specifiers)) { #line 360 "../parse.k" return GlobalFn(); #line 1031 "parse.c" } else { kc_no_default_in_with( "f_fnclass_info", __LINE__, __FILE__ ); return (fnclass)0; } } #line 368 "../parse.k" } #line 1039 "parse.c" static boolean f_static_in_ac_decl_spec #ifdef KC_USE_PROTOTYPES (ac_declaration_specifier ds) #else (ds) ac_declaration_specifier ds; #endif #line 371 "../parse.k" {{ #line 370 "../parse.k" ac_declaration_specifier kc_selvar_0_1 = ds; #line 370 "../parse.k" /*SUPPRESS 622*/ assert_ac_declaration_specifier(kc_selvar_0_1, "with_expression (1)"); #line 1055 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_AcDeclSpecTypeQual)) { #line 374 "../parse.k" return False; #line 1059 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_AcDeclSpecTypeSpec)) { #line 373 "../parse.k" return False; #line 1064 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_AcDeclSpecStorageSpec)) { #line 372 "../parse.k" ac_storage_class_specifier a_sc = kc_selvar_0_1->u.AcDeclSpecStorageSpec.ac_storage_class_specifier_1; #line 372 "../parse.k" return f_static_in_ac_stor_class( a_sc ); #line 1071 "parse.c" } else { kc_no_default_in_with( "f_static_in_ac_decl_spec", __LINE__, __FILE__ ); return (boolean)0; } } #line 375 "../parse.k" } #line 1079 "parse.c" static boolean f_static_in_ac_stor_class #ifdef KC_USE_PROTOTYPES (ac_storage_class_specifier sc) #else (sc) ac_storage_class_specifier sc; #endif #line 378 "../parse.k" {{ #line 377 "../parse.k" ac_storage_class_specifier kc_selvar_0_1 = sc; #line 377 "../parse.k" /*SUPPRESS 622*/ assert_ac_storage_class_specifier(kc_selvar_0_1, "with_expression (1)"); #line 1095 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_AcTypedef)) { #line 383 "../parse.k" return False; #line 1099 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_AcExtern)) { #line 382 "../parse.k" return False; #line 1104 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_AcStatic)) { #line 381 "../parse.k" return True; #line 1109 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_AcRegister)) { #line 380 "../parse.k" return False; #line 1114 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_AcAuto)) { #line 379 "../parse.k" return False; #line 1119 "parse.c" } else { kc_no_default_in_with( "f_static_in_ac_stor_class", __LINE__, __FILE__ ); return (boolean)0; } } #line 384 "../parse.k" } #line 1127 "parse.c" ID f_ID_of_ac_declaration_specifiers #ifdef KC_USE_PROTOTYPES (ac_declaration_specifiers d) #else (d) ac_declaration_specifiers d; #endif #line 389 "../parse.k" {{ #line 388 "../parse.k" ac_declaration_specifiers kc_selvar_0_1 = d; #line 388 "../parse.k" /*SUPPRESS 622*/ assert_ac_declaration_specifiers(kc_selvar_0_1, "with_expression (1)"); #line 1143 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_Consac_declaration_specifiers)) { #line 391 "../parse.k" ac_declaration_specifier h = kc_selvar_0_1->u.Consac_declaration_specifiers.ac_declaration_specifier_1; #line 391 "../parse.k" ac_declaration_specifiers t = kc_selvar_0_1->u.Consac_declaration_specifiers.ac_declaration_specifiers_1; #line 391 "../parse.k" ID tmp = f_ID_of_ac_declaration_specifier( h ); if (tmp) { return tmp; } else { return f_ID_of_ac_declaration_specifiers( t ); } #line 1158 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilac_declaration_specifiers)) { #line 390 "../parse.k" return 0; #line 1163 "parse.c" } else { kc_no_default_in_with( "f_ID_of_ac_declaration_specifiers", __LINE__, __FILE__ ); return (ID)0; } } #line 399 "../parse.k" } #line 1171 "parse.c" static ID f_ID_of_ac_declaration_specifier #ifdef KC_USE_PROTOTYPES (ac_declaration_specifier d) #else (d) ac_declaration_specifier d; #endif #line 402 "../parse.k" {{ #line 401 "../parse.k" ac_declaration_specifier kc_selvar_0_1 = d; #line 401 "../parse.k" /*SUPPRESS 622*/ assert_ac_declaration_specifier(kc_selvar_0_1, "with_expression (1)"); #line 1187 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_AcDeclSpecTypeSpec)) { #line 405 "../parse.k" ac_type_specifier t = kc_selvar_0_1->u.AcDeclSpecTypeSpec.ac_type_specifier_1; #line 405 "../parse.k" return f_ID_of_ac_type_specifier( t ); #line 1195 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_AcDeclSpecTypeQual)) { #line 404 "../parse.k" return 0; #line 1200 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_AcDeclSpecStorageSpec)) { #line 404 "../parse.k" return 0; #line 1205 "parse.c" } else { kc_no_default_in_with( "f_ID_of_ac_declaration_specifier", __LINE__, __FILE__ ); return (ID)0; } } #line 408 "../parse.k" } #line 1213 "parse.c" static ID f_ID_of_ac_type_specifier #ifdef KC_USE_PROTOTYPES (ac_type_specifier d) #else (d) ac_type_specifier d; #endif #line 411 "../parse.k" {{ #line 410 "../parse.k" ac_type_specifier kc_selvar_0_1 = d; #line 410 "../parse.k" /*SUPPRESS 622*/ assert_ac_type_specifier(kc_selvar_0_1, "with_expression (1)"); #line 1229 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_AcTypeSpec)) { #line 412 "../parse.k" ID i = kc_selvar_0_1->u.AcTypeSpec.ID_1; #line 412 "../parse.k" return i; #line 1235 "parse.c" } else { kc_no_default_in_with( "f_ID_of_ac_type_specifier", __LINE__, __FILE__ ); return (ID)0; } } #line 413 "../parse.k" } #line 1243 "parse.c" void check_proto_ac_parameter_declaration #ifdef KC_USE_PROTOTYPES (casestring f, int l, ac_declaration_list C_vardecls, ac_declarator decl) #else (f, l, C_vardecls, decl) casestring f; int l; ac_declaration_list C_vardecls; ac_declarator decl; #endif #line 418 "../parse.k" {{ #line 417 "../parse.k" ac_declarator kc_selvar_0_1 = decl; #line 417 "../parse.k" /*SUPPRESS 622*/ assert_ac_declarator(kc_selvar_0_1, "with_expression (1)"); #line 1262 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_AcDeclarator)) { #line 419 "../parse.k" ac_direct_declarator add = kc_selvar_0_1->u.AcDeclarator.ac_direct_declarator_1; #line 419 "../parse.k" { #line 420 "../parse.k" ac_direct_declarator kc_selvar_1_1 = add ; #line 420 "../parse.k" /*SUPPRESS 622*/ assert_ac_direct_declarator(kc_selvar_1_1, "with_expression (1)"); #line 1277 "parse.c" if (( kc_selvar_1_1->prod_sel == sel_AcDirectDeclKandR) && ( kc_selvar_1_1->u.AcDirectDeclKandR.ac_identifier_list_1->prod_sel == sel_Consac_identifier_list) && ( kc_selvar_1_1->u.AcDirectDeclKandR.ac_identifier_list_1->u.Consac_identifier_list.ID_1->prod_sel == sel_Id) && ( kc_selvar_1_1->u.AcDirectDeclKandR.ac_identifier_list_1->u.Consac_identifier_list.ID_1->u.Id.uniqID_1->prod_sel == sel_Str) && (strcmp( kc_selvar_1_1->u.AcDirectDeclKandR.ac_identifier_list_1->u.Consac_identifier_list.ID_1->u.Id.uniqID_1->u.Str.casestring_1->name, "void")==0) && ( kc_selvar_1_1->u.AcDirectDeclKandR.ac_identifier_list_1->u.Consac_identifier_list.ac_identifier_list_1->prod_sel == sel_Nilac_identifier_list)) { #line 426 "../parse.k" { #line 427 "../parse.k" ac_declaration_list kc_selvar_2_1 = C_vardecls ; #line 427 "../parse.k" /*SUPPRESS 622*/ assert_ac_declaration_list(kc_selvar_2_1, "with_expression (1)"); #line 1290 "parse.c" if (( kc_selvar_2_1->prod_sel == sel_Consac_declaration_list)) { #line 429 "../parse.k" v_report(Warning( FileLine( f, l ), Problem1S( "unexpected mix of non-ansi (old style) and ansi (prototype) function argument declaration" ))); #line 1296 "parse.c" } else if (( kc_selvar_2_1->prod_sel == sel_Nilac_declaration_list)) { #line 428 "../parse.k" /*EMPTY*/ #line 1301 "parse.c" } else kc_no_default_in_with( "check_proto_ac_parameter_declaration", __LINE__, __FILE__ ); } #line 433 "../parse.k" #line 1307 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_AcDirectDeclProto)) { #line 426 "../parse.k" { #line 427 "../parse.k" ac_declaration_list kc_selvar_2_1 = C_vardecls ; #line 427 "../parse.k" /*SUPPRESS 622*/ assert_ac_declaration_list(kc_selvar_2_1, "with_expression (1)"); #line 1321 "parse.c" if (( kc_selvar_2_1->prod_sel == sel_Consac_declaration_list)) { #line 429 "../parse.k" v_report(Warning( FileLine( f, l ), Problem1S( "unexpected mix of non-ansi (old style) and ansi (prototype) function argument declaration" ))); #line 1327 "parse.c" } else if (( kc_selvar_2_1->prod_sel == sel_Nilac_declaration_list)) { #line 428 "../parse.k" /*EMPTY*/ #line 1332 "parse.c" } else kc_no_default_in_with( "check_proto_ac_parameter_declaration", __LINE__, __FILE__ ); } #line 433 "../parse.k" #line 1338 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_AcDirectDeclKandR)) { #line 424 "../parse.k" /*EMPTY*/ #line 1343 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_AcDirectDeclArray)) { #line 424 "../parse.k" /*EMPTY*/ #line 1348 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_AcDirectDeclPack)) { #line 424 "../parse.k" /*EMPTY*/ #line 1353 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_AcDirectDeclId)) { #line 424 "../parse.k" /*EMPTY*/ #line 1358 "parse.c" } else kc_no_default_in_with( "check_proto_ac_parameter_declaration", __LINE__, __FILE__ ); } #line 435 "../parse.k" #line 1364 "parse.c" } else kc_no_default_in_with( "check_proto_ac_parameter_declaration", __LINE__, __FILE__ ); } #line 436 "../parse.k" } #line 1371 "parse.c" void check_no_patternchaingroup_in_patternchain #ifdef KC_USE_PROTOTYPES (casestring f, int l, patternchain a_patternchain, char *ctxt) #else (f, l, a_patternchain, ctxt) casestring f; int l; patternchain a_patternchain; char *ctxt; #endif #line 441 "../parse.k" {{ #line 440 "../parse.k" patternchain kc_selvar_0_1 = a_patternchain; #line 440 "../parse.k" /*SUPPRESS 622*/ assert_patternchain(kc_selvar_0_1, "with_expression (1)"); #line 1390 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_Nilpatternchain)) { #line 452 "../parse.k" /*EMPTY*/ #line 1394 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_Conspatternchain)) { #line 442 "../parse.k" patternchainitem h = kc_selvar_0_1->u.Conspatternchain.patternchainitem_1; #line 442 "../parse.k" patternchain t = kc_selvar_0_1->u.Conspatternchain.patternchain_1; #line 442 "../parse.k" check_no_patternchaingroup_in_patternchain( f, l, t, ctxt ); { #line 444 "../parse.k" patternchainitem kc_selvar_1_1 = h ; #line 444 "../parse.k" /*SUPPRESS 622*/ assert_patternchainitem(kc_selvar_1_1, "with_expression (1)"); #line 1413 "parse.c" if (( kc_selvar_1_1->prod_sel == sel_PatternchainitemGroup)) { #line 447 "../parse.k" v_report(NonFatal( FileLine( f, l ), Problem3S( "no pattern grouping () allowed in", ctxt, "context." ))); #line 1419 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_PatternchainitemDollarid)) { #line 446 "../parse.k" /*EMPTY*/ #line 1424 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_PatternchainitemOutmost)) { #line 446 "../parse.k" /*EMPTY*/ #line 1429 "parse.c" } else kc_no_default_in_with( "check_no_patternchaingroup_in_patternchain", __LINE__, __FILE__ ); } #line 451 "../parse.k" #line 1435 "parse.c" } else kc_no_default_in_with( "check_no_patternchaingroup_in_patternchain", __LINE__, __FILE__ ); } #line 453 "../parse.k" } #line 1442 "parse.c" void check_no_patternchaingroup_in_patternchains #ifdef KC_USE_PROTOTYPES (casestring f, int l, patternchains a_patternchains, char *ctxt) #else (f, l, a_patternchains, ctxt) casestring f; int l; patternchains a_patternchains; char *ctxt; #endif #line 456 "../parse.k" {{ #line 455 "../parse.k" patternchains kc_selvar_0_1 = a_patternchains; #line 455 "../parse.k" /*SUPPRESS 622*/ assert_patternchains(kc_selvar_0_1, "with_expression (1)"); #line 1461 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_Nilpatternchains)) { #line 461 "../parse.k" /*EMPTY*/ #line 1465 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_Conspatternchains)) { #line 457 "../parse.k" patternchain h = kc_selvar_0_1->u.Conspatternchains.patternchain_1; #line 457 "../parse.k" patternchains t = kc_selvar_0_1->u.Conspatternchains.patternchains_1; #line 457 "../parse.k" check_no_patternchaingroup_in_patternchains( f, l, t, ctxt ); check_no_patternchaingroup_in_patternchain( f, l, h, ctxt ); #line 1477 "parse.c" } else kc_no_default_in_with( "check_no_patternchaingroup_in_patternchains", __LINE__, __FILE__ ); } #line 462 "../parse.k" } #line 1484 "parse.c" void check_no_patternchaingroup_or_pattern_in_patternchain #ifdef KC_USE_PROTOTYPES (casestring f, int l, patternchain a_patternchain, char *ctxt) #else (f, l, a_patternchain, ctxt) casestring f; int l; patternchain a_patternchain; char *ctxt; #endif #line 467 "../parse.k" {{ #line 466 "../parse.k" patternchain kc_selvar_0_1 = a_patternchain; #line 466 "../parse.k" /*SUPPRESS 622*/ assert_patternchain(kc_selvar_0_1, "with_expression (1)"); #line 1503 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_Nilpatternchain)) { #line 480 "../parse.k" /*EMPTY*/ #line 1507 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_Conspatternchain)) { #line 468 "../parse.k" patternchainitem h = kc_selvar_0_1->u.Conspatternchain.patternchainitem_1; #line 468 "../parse.k" patternchain t = kc_selvar_0_1->u.Conspatternchain.patternchain_1; #line 468 "../parse.k" check_no_patternchaingroup_or_pattern_in_patternchain( f, l, t, ctxt ); { #line 470 "../parse.k" patternchainitem kc_selvar_1_1 = h ; #line 470 "../parse.k" /*SUPPRESS 622*/ assert_patternchainitem(kc_selvar_1_1, "with_expression (1)"); #line 1526 "parse.c" if (( kc_selvar_1_1->prod_sel == sel_PatternchainitemGroup)) { #line 475 "../parse.k" v_report(NonFatal( FileLine( f, l ), Problem3S( "no pattern grouping () allowed in", ctxt, "context." ))); #line 1532 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_PatternchainitemDollarid)) { #line 474 "../parse.k" /*EMPTY*/ #line 1537 "parse.c" } else if (( kc_selvar_1_1->prod_sel == sel_PatternchainitemOutmost)) { #line 471 "../parse.k" outmostpattern op = kc_selvar_1_1->u.PatternchainitemOutmost.outmostpattern_1; #line 471 "../parse.k" #line 1546 "parse.c" } else kc_no_default_in_with( "check_no_patternchaingroup_or_pattern_in_patternchain", __LINE__, __FILE__ ); } #line 479 "../parse.k" #line 1552 "parse.c" } else kc_no_default_in_with( "check_no_patternchaingroup_or_pattern_in_patternchain", __LINE__, __FILE__ ); } #line 481 "../parse.k" } #line 1559 "parse.c" void check_no_patternchaingroup_or_pattern_in_patternchains #ifdef KC_USE_PROTOTYPES (casestring f, int l, patternchains a_patternchains, char *ctxt) #else (f, l, a_patternchains, ctxt) casestring f; int l; patternchains a_patternchains; char *ctxt; #endif #line 484 "../parse.k" {{ #line 483 "../parse.k" patternchains kc_selvar_0_1 = a_patternchains; #line 483 "../parse.k" /*SUPPRESS 622*/ assert_patternchains(kc_selvar_0_1, "with_expression (1)"); #line 1578 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_Nilpatternchains)) { #line 489 "../parse.k" /*EMPTY*/ #line 1582 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_Conspatternchains)) { #line 485 "../parse.k" patternchain h = kc_selvar_0_1->u.Conspatternchains.patternchain_1; #line 485 "../parse.k" patternchains t = kc_selvar_0_1->u.Conspatternchains.patternchains_1; #line 485 "../parse.k" check_no_patternchaingroup_or_pattern_in_patternchains( f, l, t, ctxt ); check_no_patternchaingroup_or_pattern_in_patternchain( f, l, h, ctxt ); #line 1594 "parse.c" } else kc_no_default_in_with( "check_no_patternchaingroup_or_pattern_in_patternchains", __LINE__, __FILE__ ); } #line 490 "../parse.k" } #line 1601 "parse.c" patternchains syn_patternchains_fileline #ifdef KC_USE_PROTOTYPES (patternchains a_patternchains, casestring a_file, int a_line) #else (a_patternchains, a_file, a_line) patternchains a_patternchains; casestring a_file; int a_line; #endif #line 495 "../parse.k" {{ #line 494 "../parse.k" patternchains kc_selvar_0_1 = a_patternchains; #line 494 "../parse.k" /*SUPPRESS 622*/ assert_patternchains(kc_selvar_0_1, "with_expression (1)"); #line 1619 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_Nilpatternchains)) { #line 503 "../parse.k" kc_selvar_0_1->file = a_file; kc_selvar_0_1->line = a_line; return a_patternchains; #line 1627 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_Conspatternchains)) { #line 496 "../parse.k" patternchain h = kc_selvar_0_1->u.Conspatternchains.patternchain_1; #line 496 "../parse.k" patternchains t = kc_selvar_0_1->u.Conspatternchains.patternchains_1; #line 496 "../parse.k" (void)syn_patternchains_fileline( t, a_file, a_line ); (void)syn_patternchain_fileline( h, t->file, t->line ); kc_selvar_0_1->file = h->file; kc_selvar_0_1->line = h->line; return a_patternchains; #line 1642 "parse.c" } else { kc_no_default_in_with( "syn_patternchains_fileline", __LINE__, __FILE__ ); return (patternchains)0; } } #line 508 "../parse.k" } #line 1650 "parse.c" patternchain syn_patternchain_fileline #ifdef KC_USE_PROTOTYPES (patternchain a_patternchain, casestring a_file, int a_line) #else (a_patternchain, a_file, a_line) patternchain a_patternchain; casestring a_file; int a_line; #endif #line 510 "../parse.k" {{ #line 509 "../parse.k" patternchain kc_selvar_0_1 = a_patternchain; #line 509 "../parse.k" /*SUPPRESS 622*/ assert_patternchain(kc_selvar_0_1, "with_expression (1)"); #line 1668 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_Nilpatternchain)) { #line 517 "../parse.k" kc_selvar_0_1->file = a_file; kc_selvar_0_1->line = a_line; return a_patternchain; #line 1676 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_Conspatternchain)) { #line 511 "../parse.k" patternchainitem h = kc_selvar_0_1->u.Conspatternchain.patternchainitem_1; #line 511 "../parse.k" patternchain t = kc_selvar_0_1->u.Conspatternchain.patternchain_1; #line 511 "../parse.k" (void)syn_patternchain_fileline( t, a_file, a_line ); kc_selvar_0_1->file = h->file; kc_selvar_0_1->line = h->line; return a_patternchain; #line 1690 "parse.c" } else { kc_no_default_in_with( "syn_patternchain_fileline", __LINE__, __FILE__ ); return (patternchain)0; } } #line 522 "../parse.k" } #line 1698 "parse.c" withexpressions pf_gen_foreachwith_vars #ifdef KC_USE_PROTOTYPES (idCexpressions a_idCexpressions) #else (a_idCexpressions) idCexpressions a_idCexpressions; #endif #line 530 "../parse.k" { static int nrof_foreach_occ = 0; nrof_foreach_occ++; return t_pf_gen_foreachwith_vars(a_idCexpressions, nrof_foreach_occ, length_idCexpressions(a_idCexpressions), False); #line 534 "../parse.k" } #line 1714 "parse.c" withexpressions pf_gen_foreachwith_listvars #ifdef KC_USE_PROTOTYPES (idCexpressions a_idCexpressions) #else (a_idCexpressions) idCexpressions a_idCexpressions; #endif #line 537 "../parse.k" { static int nrof_foreach_occ = 0; nrof_foreach_occ++; return t_pf_gen_foreachwith_vars(a_idCexpressions, nrof_foreach_occ, length_idCexpressions(a_idCexpressions), True); #line 541 "../parse.k" } #line 1730 "parse.c" withexpressions t_pf_gen_foreachwith_vars #ifdef KC_USE_PROTOTYPES (idCexpressions a_idCexpressions, int occ, int nr, boolean listvars) #else (a_idCexpressions, occ, nr, listvars) idCexpressions a_idCexpressions; int occ; int nr; boolean listvars; #endif #line 544 "../parse.k" {{ #line 543 "../parse.k" idCexpressions kc_selvar_0_1 = a_idCexpressions; #line 543 "../parse.k" /*SUPPRESS 622*/ assert_idCexpressions(kc_selvar_0_1, "with_expression (1)"); #line 1749 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_ConsidCexpressions) && ( kc_selvar_0_1->u.ConsidCexpressions.idCexpression_1->prod_sel == sel_IdCexpression)) { #line 545 "../parse.k" idCexpression ice = kc_selvar_0_1->u.ConsidCexpressions.idCexpression_1; #line 545 "../parse.k" ID id = kc_selvar_0_1->u.ConsidCexpressions.idCexpression_1->u.IdCexpression.ID_1; #line 545 "../parse.k" Cexpression ce = kc_selvar_0_1->u.ConsidCexpressions.idCexpression_1->u.IdCexpression.Cexpression_1; #line 545 "../parse.k" idCexpressions t = kc_selvar_0_1->u.ConsidCexpressions.idCexpressions_1; #line 545 "../parse.k" char tmp[BUFSIZ]; withexpression w; withexpressions ws; ID w_id; if (listvars) { sprintf(tmp, "kc_fe_withlistvar_%d_%d", occ, nr); } else { sprintf(tmp, "kc_fe_withvar_%d_%d", occ, nr); } w_id = Id(Str(mkcasestring(tmp))); w = WEVariable(w_id); w->type = (listvars ? id : f_listelementphylum(id)); w->file = ce->file; w->line = ce->line; ice->id = w_id; ws = Conswithexpressions( w, t_pf_gen_foreachwith_vars( t, occ, nr-1, listvars)); ws->file = w->file; ws->line = w->line; return ws; #line 1783 "parse.c" } else if (( kc_selvar_0_1->prod_sel == sel_NilidCexpressions)) { #line 568 "../parse.k" return Nilwithexpressions(); #line 1788 "parse.c" } else { kc_no_default_in_with( "t_pf_gen_foreachwith_vars", __LINE__, __FILE__ ); return (withexpressions)0; } } #line 569 "../parse.k" } #line 1796 "parse.c" ID subst_name #ifdef KC_USE_PROTOTYPES (ID n, casestring oldname, casestring newname) #else (n, oldname, newname) ID n; casestring oldname; casestring newname; #endif #line 575 "../parse.k" {{ #line 574 "../parse.k" ID kc_selvar_0_1 = n; #line 574 "../parse.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 1814 "parse.c" if (( kc_selvar_0_1->prod_sel == sel_Id) && ( kc_selvar_0_1->u.Id.uniqID_1->prod_sel == sel_Str)) { #line 576 "../parse.k" casestring s = kc_selvar_0_1->u.Id.uniqID_1->u.Str.casestring_1; #line 576 "../parse.k" if (eq_casestring( s, oldname)) { ID tmp = Id(Str(newname)); tmp->file = n->file; tmp->line = n->line; return tmp; } else { return n; } #line 1829 "parse.c" } else { kc_no_default_in_with( "subst_name", __LINE__, __FILE__ ); return (ID)0; } } #line 586 "../parse.k" } #line 1837 "parse.c" kimwitu-4.6.1.orig/src/parse.h0100644000176100001440000000516707076113232015537 0ustar debacleusers/* translation of file "../parse.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #ifndef KC_FUNCTIONS_parse_HEADER #define KC_FUNCTIONS_parse_HEADER #define KIMW_FUNCTIONS_parse_HEADER /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include "k.h" /* in case a user forgets */ /* included stuff */ #line 2 "../parse.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 27 "parse.h" /* end included stuff */ phylumdeclarations mergephylumdeclarations KC__P((phylumdeclaration pd, phylumdeclarations pds)); alternatives makeListAlternatives KC__P((ID listphylum, ID elementphylum)); char *f_strofID KC__P((ID id)); phylumdeclaration f_lookupuserdecl KC__P((ID id)); phylumdeclaration f_lookupdecl KC__P((ID id)); argsnumbers insert_in_argsnumbers KC__P((int i, argsnumbers a)); void set_includefiles KC__P((includefiles ifs, includedeclaration i)); ID f_ID_of_declarator KC__P((ac_declarator d)); int f_stars_of_declarator KC__P((ac_declarator d)); fnclass f_fnclass_info KC__P((ac_declaration_specifiers ds, casestring fn)); ID f_ID_of_ac_declaration_specifiers KC__P((ac_declaration_specifiers d)); void check_proto_ac_parameter_declaration KC__P((casestring f, int l, ac_declaration_list C_vardecls, ac_declarator decl)); void check_no_patternchaingroup_in_patternchain KC__P((casestring f, int l, patternchain a_patternchain, char *ctxt)); void check_no_patternchaingroup_in_patternchains KC__P((casestring f, int l, patternchains a_patternchains, char *ctxt)); void check_no_patternchaingroup_or_pattern_in_patternchain KC__P((casestring f, int l, patternchain a_patternchain, char *ctxt)); void check_no_patternchaingroup_or_pattern_in_patternchains KC__P((casestring f, int l, patternchains a_patternchains, char *ctxt)); patternchains syn_patternchains_fileline KC__P((patternchains a_patternchains, casestring a_file, int a_line)); patternchain syn_patternchain_fileline KC__P((patternchain a_patternchain, casestring a_file, int a_line)); withexpressions pf_gen_foreachwith_vars KC__P((idCexpressions a_idCexpressions)); withexpressions pf_gen_foreachwith_listvars KC__P((idCexpressions a_idCexpressions)); withexpressions t_pf_gen_foreachwith_vars KC__P((idCexpressions a_idCexpressions, int occ, int nr, boolean listvars)); ID subst_name KC__P((ID n, casestring oldname, casestring newname)); #endif /* ! KC_FUNCTIONS_parse_HEADER */ kimwitu-4.6.1.orig/src/parse.k0100644000176100001440000005252707076113220015541 0ustar debacleusers%{ CODE HEADER /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ %} /* * parse.k */ %{ #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char parse_kAccesSid[] = "@(#)$Id: parse.k,v 1.18 1998/01/27 16:57:25 belinfan Rel $"; #endif %} /***************************************************************************/ %{ KC_TYPES_HEADER 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 boolean pg_uviewshavebeendefined; /* global indication */ extern boolean pg_rviewshavebeendefined; /* global indication */ extern boolean pg_storageclasseshavebeendefined; /* global indication */ %} %{ int pg_lineno = 1; /* global line # */ int pg_column = 0; /* global column # */ int pg_charpos = 0; /* global charpos # */ casestring pg_filename; /* global file name */ int pg_no_of_arguments; /* no_of_arguments */ phylumdeclarations Thephylumdeclarations; /* global phylumdecls */ rwdeclarations Therwdeclarations; /* global rw-decls */ fndeclarations Thefndeclarations; /* fn-decls for the file being parsed */ fnfiles Thefnfiles; /* global fn-decls */ includefiles Theincludefiles; /* global incl-decls */ unparsedeclarations Theunparsedeclarations; /* global unp-decls */ argsnumbers Theargsnumbers; /* global list of argsnumbers */ viewnames Theuviewnames; /* global list of u-viewnames */ viewnames Therviewnames; /* global list of r-viewnames */ storageclasses Thestorageclasses; /* global list of storageclasses */ boolean pg_uviewshavebeendefined; /* global indication */ boolean pg_rviewshavebeendefined; /* global indication */ boolean pg_storageclasseshavebeendefined; /* global indication */ %} /***************************************************************************/ %{ #include "util.h" %} phylumdeclarations mergephylumdeclarations( pd, pds ) phylumdeclaration pd; phylumdeclarations pds; { two_phyla tp; with( pd ) { PhylumDeclaration( pd_id, pd_stopt, pd_pb, pd_ccopt ): { phylumdeclaration fpd = f_lookupuserdecl( pd_id ); if (!fpd) { v_add( pd_id ); return Consphylumdeclarations( pd, pds ); } else if ( pd == fpd ) { if ( f_added( pd_id ) ) { return pds; } else { v_add( pd_id ); return Consphylumdeclarations( pd, pds ); } } else { with( fpd ) { PhylumDeclaration( fpd_id, fpd_stopt, fpd_pb, fpd_ccopt ): { with( tp = TwoStorageoption( pd_stopt, fpd_stopt ) ) { TwoStorageoption( *, NoStorageOption() ): { fpd->u.PhylumDeclaration.storageoption_1 = pd_stopt; } TwoStorageoption( NoStorageOption(), * ): { /*EMPTY*/ /* nothing to do... keep the old storageoption */ } TwoStorageoption( NegativeStorageOption( id ), NegativeStorageOption( id ) ): { /***EMPTY***/ KC_LINTUSE(id); /* nothing to do */ } TwoStorageoption( PositiveStorageOption( id ), PositiveStorageOption( id ) ): { /***EMPTY***/ KC_LINTUSE(id); /* nothing to do */ } TwoStorageoption( NegativeStorageOption( id ), PositiveStorageOption( id ) ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1storageoption1S1ID( "storage option mismatch ( declared as ", fpd_stopt, ") for phylum", fpd_id ))); } TwoStorageoption( PositiveStorageOption( id ), NegativeStorageOption( id ) ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1storageoption1S1ID( "storage option mismatch ( declared as ", fpd_stopt, ") for phylum", fpd_id ))); } TwoStorageoption( *, * ): { /* nothing to do, as long as we only have _one_ storage ID * as soon as we get more different storage ID's we need to keep a list of them. */ v_report(NonFatal( FileLine( pd_id->file, pd_id->line ), Problem1S1storageoption1S1ID( "storage option mismatch ( declared as ", fpd_stopt, ") for phylum", fpd_id ))); } } free_two_phyla( tp, False ); with( tp = TwoProductionblock( pd_pb, fpd_pb ) ) { TwoProductionblock( Emptyproductionblock(), Emptyproductionblock() ): { /*EMPTY*/ /* nothing to do... keep the old productionblock */ } TwoProductionblock( Emptyproductionblock(), * ): { /*EMPTY*/ /* nothing to do... keep the old productionblock */ } TwoProductionblock( ListAlternatives( *, * ), Emptyproductionblock() ): { fpd->u.PhylumDeclaration.productionblock_1 = pd_pb; } TwoProductionblock( ListAlternatives( *, * ), * ): { v_report(NonFatal( FileLine( pd_id->file, pd_id->line ), Problem1S1ID( "production block mismatch: trying to redefine list phylum", pd_id ))); } TwoProductionblock( PredefinedAlternatives( * ), Emptyproductionblock() ): { fpd->u.PhylumDeclaration.productionblock_1 = pd_pb; } TwoProductionblock( PredefinedAlternatives( * ), * ): { v_report(NonFatal( FileLine( pd_id->file, pd_id->line ), Problem1S1ID( "production block mismatch: trying to predefine phylum", pd_id ))); } TwoProductionblock( NonlistAlternatives( * ), Emptyproductionblock() ): { fpd->u.PhylumDeclaration.productionblock_1 = pd_pb; } TwoProductionblock( NonlistAlternatives( pd_pb_a ), NonlistAlternatives( fpd_pb_a ) ): { fpd_pb->u.NonlistAlternatives.alternatives_1 = concat_alternatives( pd_pb_a, fpd_pb_a ); } TwoProductionblock( NonlistAlternatives( * ), * ): { v_report(NonFatal( FileLine( pd_id->file, pd_id->line ), Problem1S1ID( "production block mismatch: trying to extend phylum", pd_id ))); } } free_two_phyla( tp, False ); with( tp = TwoCcode_option( pd_ccopt, fpd_ccopt ) ) { TwoCcode_option( CcodeOption( pd_ccopt_attr, pd_ccopt_ct ), CcodeOption( fpd_ccopt_attr, fpd_ccopt_ct )): { fpd->u.PhylumDeclaration.Ccode_option_1 = CcodeOption( concat_attributes( pd_ccopt_attr, fpd_ccopt_attr), concat_Ctexts( pd_ccopt_ct, fpd_ccopt_ct )); } } free_two_phyla( tp, False ); } } return pds; } } } } /***************************************************************************/ /* * build the correct list declarations from the list and the element phylum */ %{ #include "extocc.h" %} /* create kc_str_conc2, and MALLOC macros, if they don't already exist */ %{ #ifndef MALLOC # define MALLOC emalloc #endif #ifndef kc_str_conc2 # include # define kc_str_conc2(a,b) (char*)strcat(strcpy((char *) MALLOC((kc_size_t)(strlen(a) + strlen(b) +1)), a), b) #endif %} /* * build the correct list declarations from the list and the element phylum */ alternatives makeListAlternatives( listphylum, elementphylum ) ID listphylum; ID elementphylum; { ID Nil_id, Cons_id; alternative Nil_alternative, Cons_alternative; Nil_id = Id( Str( mkcasestring( kc_str_conc2("Nil",f_strofID(listphylum))))); Cons_id = Id( Str( mkcasestring( kc_str_conc2("Cons",f_strofID(listphylum))))); Nil_id->line = elementphylum->line; Nil_id->file = elementphylum->file; Cons_id->line = elementphylum->line; Cons_id->file = elementphylum->file; Nil_alternative = Alternative( Nil_id, Nilarguments() ); Cons_alternative = Alternative( Cons_id, Consarguments( listphylum, Consarguments( elementphylum, Nilarguments() ) ) ); v_extendoccur( Nil_id, ITUserOperator( Nil_alternative, listphylum ) ); v_extendoccur( Cons_id, ITUserOperator( Cons_alternative, listphylum ) ); return Consalternatives( Cons_alternative, Consalternatives( Nil_alternative, Nilalternatives() ) ); } /***************************************************************************/ char *f_strofID( id ) ID id; { with( id ) { Id( Str( cs ) ): { return cs->name; } } } /***************************************************************************/ phylumdeclaration f_lookupuserdecl( id ) ID id; { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "undefined phylum:", id ))); return 0; } ITPredefinedBigatomPhylum( * ), ITPredefinedPhylum( * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of predefined phylum:", id ))); return 0; } ITUserPhylum( pd ): { return pd; } ITPredefinedOperator( *, * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of predefined operator:", id ))); return 0; } ITUserOperator( *, * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of user-defined operator:", id ))); return 0; } ITPredefinedStorageClass(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of predefined storage class:", id ))); return 0; } ITStorageClass(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of user-defined storage class:", id ))); return 0; } ITPredefinedUView(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of predefined unparse view:", id ))); return 0; } ITUserUView(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of user-defined unparse view:", id ))); return 0; } ITPredefinedRView(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of predefined rewrite view:", id ))); return 0; } ITUserRView(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of user-defined rewrite view:", id ))); return 0; } ITUserFunction( * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of user-defined function:", id ))); return 0; } } } } } phylumdeclaration f_lookupdecl( id ) ID id; { with( id ) { Id( uid ): { with( uid->type ) { ITUnknown(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "undefined phylum:", id ))); return 0; } ITPredefinedBigatomPhylum( pd ), ITPredefinedPhylum( pd ): { return pd; } ITUserPhylum( pd ): { return pd; } ITPredefinedOperator( *, * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of predefined operator:", id ))); return 0; } ITUserOperator( *, * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of user-defined operator:", id ))); return 0; } ITPredefinedStorageClass(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of predefined storage class:", id ))); return 0; } ITStorageClass(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of user-defined storage class:", id ))); return 0; } ITPredefinedUView(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of predefined unparse view:", id ))); return 0; } ITUserUView(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of user-defined unparse view:", id ))); return 0; } ITPredefinedRView(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of predefined rewrite view:", id ))); return 0; } ITUserRView(): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of user-defined rewrite view:", id ))); return 0; } ITUserFunction( * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "expected user-defined phylum instead of user-defined function:", id ))); return 0; } } } } } argsnumbers insert_in_argsnumbers( i, a ) int i; argsnumbers a; { with( a ) { Nilargsnumbers(): { return Consargsnumbers( i, a ); } Consargsnumbers( j, ra ): { if ( i < j ) { return Consargsnumbers( i, a ); } else if ( i == j ) { return a; } else { return Consargsnumbers( j, insert_in_argsnumbers( i, ra )); } } } } void set_includefiles( ifs, i ) includefiles ifs; includedeclaration i; { foreach( pl_includefile; includefiles ifs ) { /* SUPPRESS 622 */ assert((pl_includefile->inc_type == include_file) || (pl_includefile->inc_type == include_header)); pl_includefile->inc[(int)pl_includefile->inc_type] = Consincludedeclarations( i, pl_includefile->inc[(int)pl_includefile->inc_type] ); } } /***************************************************************************/ /* routines to help parsing of Ansi-C style function defs */ ID f_ID_of_declarator( $d ) ac_declarator d; { AcDeclarator( *, dd ): { return f_ID_of_direct_decl( dd ); } } static ID f_ID_of_direct_decl( $d ) ac_direct_declarator d; { AcDirectDeclId( i ): { return i; } AcDirectDeclPack( a_d ): { return f_ID_of_declarator( a_d ); } AcDirectDeclArray( a_d, * ): { return f_ID_of_direct_decl( a_d ); } AcDirectDeclProto( a_d, * ): { return f_ID_of_direct_decl( a_d ); } AcDirectDeclKandR( a_d, * ): { return f_ID_of_direct_decl( a_d ); } } /*********/ int f_stars_of_declarator( $d ) ac_declarator d; { AcDeclarator( po, * ): { return f_stars_of_ac_pointer_option( po ); } } static int f_stars_of_ac_pointer_option( $d ) ac_pointer_option d; { Nopointer(): { return 0; } Yespointer( p ): { return f_stars_of_ac_pointer( p ); } } static int f_stars_of_ac_pointer( $d ) ac_pointer d; { AcPointerNil( * ): { return 1; } AcPointerCons( *, p ): { return 1 + f_stars_of_ac_pointer( p ); } } /*********/ fnclass f_fnclass_info( $ds, fn ) ac_declaration_specifiers ds; casestring fn; { Nilac_declaration_specifiers(): { return GlobalFn(); } Consac_declaration_specifiers( h, t ): { if (f_static_in_ac_decl_spec( h )) { return LocalFn( fn ); } else { return f_fnclass_info( t, fn ); } } } static boolean f_static_in_ac_decl_spec( $ds ) ac_declaration_specifier ds; { AcDeclSpecStorageSpec( a_sc ): { return f_static_in_ac_stor_class( a_sc ); } AcDeclSpecTypeSpec( * ): { return False; } AcDeclSpecTypeQual( * ): { return False; } } static boolean f_static_in_ac_stor_class( $sc ) ac_storage_class_specifier sc; { AcAuto(): { return False; } AcRegister(): { return False; } AcStatic(): { return True; } AcExtern(): { return False; } AcTypedef(): { return False; } } /*********/ ID f_ID_of_ac_declaration_specifiers( $d ) ac_declaration_specifiers d; { Nilac_declaration_specifiers(): { return 0; } Consac_declaration_specifiers( h, t ): { ID tmp = f_ID_of_ac_declaration_specifier( h ); if (tmp) { return tmp; } else { return f_ID_of_ac_declaration_specifiers( t ); } } } static ID f_ID_of_ac_declaration_specifier( $d ) ac_declaration_specifier d; { AcDeclSpecStorageSpec( * ), AcDeclSpecTypeQual( * ): { return 0; } AcDeclSpecTypeSpec( t ): { return f_ID_of_ac_type_specifier( t ); } } static ID f_ID_of_ac_type_specifier( $d ) ac_type_specifier d; { AcTypeSpec( i ): { return i; } } /***************************************************************************/ void check_proto_ac_parameter_declaration( f, l, C_vardecls, $decl ) casestring f; int l; ac_declaration_list C_vardecls; ac_declarator decl; { AcDeclarator( *, add ): { with( add ) { AcDirectDeclId( * ), AcDirectDeclPack( * ), AcDirectDeclArray( *, * ), AcDirectDeclKandR( *, * ): {/*EMPTY*/} AcDirectDeclKandR( *, Consac_identifier_list( Id( Str( "void" )), Nilac_identifier_list() ) ), AcDirectDeclProto( *, * ): { with( C_vardecls ) { Nilac_declaration_list(): {/*EMPTY*/} Consac_declaration_list( *, * ): { v_report(Warning( FileLine( f, l ), Problem1S( "unexpected mix of non-ansi (old style) and ansi (prototype) function argument declaration" ))); } } } } } } /***************************************************************************/ void check_no_patternchaingroup_in_patternchain( f, l, $a_patternchain, ctxt ) casestring f; int l; patternchain a_patternchain; char *ctxt; { Conspatternchain( h, t ): { check_no_patternchaingroup_in_patternchain( f, l, t, ctxt ); with( h ) { PatternchainitemOutmost( * ), PatternchainitemDollarid( * ): {/*EMPTY*/} PatternchainitemGroup( * ): { v_report(NonFatal( FileLine( f, l ), Problem3S( "no pattern grouping () allowed in", ctxt, "context." ))); } } } Nilpatternchain(): {/*EMPTY*/} } void check_no_patternchaingroup_in_patternchains( f, l, $a_patternchains, ctxt ) casestring f; int l; patternchains a_patternchains; char *ctxt; { Conspatternchains( h, t ): { check_no_patternchaingroup_in_patternchains( f, l, t, ctxt ); check_no_patternchaingroup_in_patternchain( f, l, h, ctxt ); } Nilpatternchains(): {/*EMPTY*/} } /***************************************************************************/ void check_no_patternchaingroup_or_pattern_in_patternchain( f, l, $a_patternchain, ctxt ) casestring f; int l; patternchain a_patternchain; char *ctxt; { Conspatternchain( h, t ): { check_no_patternchaingroup_or_pattern_in_patternchain( f, l, t, ctxt ); with( h ) { PatternchainitemOutmost( op ): { /* check_no_pattern_in_outmostpattern( op ); */ } PatternchainitemDollarid( * ): {/*EMPTY*/} PatternchainitemGroup( * ): { v_report(NonFatal( FileLine( f, l ), Problem3S( "no pattern grouping () allowed in", ctxt, "context." ))); } } } Nilpatternchain(): {/*EMPTY*/} } void check_no_patternchaingroup_or_pattern_in_patternchains( f, l, $a_patternchains, ctxt ) casestring f; int l; patternchains a_patternchains; char *ctxt; { Conspatternchains( h, t ): { check_no_patternchaingroup_or_pattern_in_patternchains( f, l, t, ctxt ); check_no_patternchaingroup_or_pattern_in_patternchain( f, l, h, ctxt ); } Nilpatternchains(): {/*EMPTY*/} } /***************************************************************************/ patternchains syn_patternchains_fileline( patternchains $a_patternchains, casestring a_file, int a_line ) { Conspatternchains( h, t ): { (void)syn_patternchains_fileline( t, a_file, a_line ); (void)syn_patternchain_fileline( h, t->file, t->line ); $0->file = h->file; $0->line = h->line; return a_patternchains; } Nilpatternchains(): { $0->file = a_file; $0->line = a_line; return a_patternchains; } } patternchain syn_patternchain_fileline( patternchain $a_patternchain, casestring a_file, int a_line ) { Conspatternchain( h, t ): { (void)syn_patternchain_fileline( t, a_file, a_line ); $0->file = h->file; $0->line = h->line; return a_patternchain; } Nilpatternchain(): { $0->file = a_file; $0->line = a_line; return a_patternchain; } } /***************************************************************************/ /* generate unique variable names for the foreach variables generated for * the with-expression in a foreach or foreach-after context. */ withexpressions pf_gen_foreachwith_vars( idCexpressions a_idCexpressions ) { static int nrof_foreach_occ = 0; nrof_foreach_occ++; return t_pf_gen_foreachwith_vars(a_idCexpressions, nrof_foreach_occ, length_idCexpressions(a_idCexpressions), False); } withexpressions pf_gen_foreachwith_listvars( idCexpressions a_idCexpressions ) { static int nrof_foreach_occ = 0; nrof_foreach_occ++; return t_pf_gen_foreachwith_vars(a_idCexpressions, nrof_foreach_occ, length_idCexpressions(a_idCexpressions), True); } withexpressions t_pf_gen_foreachwith_vars( idCexpressions $a_idCexpressions, int occ, int nr, boolean listvars ) { ConsidCexpressions( ice = IdCexpression( id, ce ), t ): { char tmp[BUFSIZ]; withexpression w; withexpressions ws; ID w_id; if (listvars) { sprintf(tmp, "kc_fe_withlistvar_%d_%d", occ, nr); } else { sprintf(tmp, "kc_fe_withvar_%d_%d", occ, nr); } w_id = Id(Str(mkcasestring(tmp))); w = WEVariable(w_id); w->type = (listvars ? id : f_listelementphylum(id)); w->file = ce->file; w->line = ce->line; ice->id = w_id; ws = Conswithexpressions( w, t_pf_gen_foreachwith_vars( t, occ, nr-1, listvars)); ws->file = w->file; ws->line = w->line; return ws; } NilidCexpressions(): { return Nilwithexpressions(); } } /***************************************************************************/ ID subst_name( ID $n, casestring oldname, casestring newname ) { Id( Str( s )): { if (eq_casestring( s, oldname)) { ID tmp = Id(Str(newname)); tmp->file = n->file; tmp->line = n->line; return tmp; } else { return n; } } } kimwitu-4.6.1.orig/src/pat.c0100644000176100001440000025206307076113222015202 0ustar debacleusers/* translation of file "../pat.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #define KC_FUNCTIONS_pat #define KIMW_FUNCTIONS_pat /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include #ifdef KC_STDC # include #endif #include "k.h" /* included stuff */ #line 2 "../pat.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 29 "pat.c" #line 14 "../pat.k" #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char pat_kAccesSid[] = "@(#)$Id: pat.k,v 1.18 1998/03/18 16:53:16 belinfan Rel $"; #endif #line 35 "pat.c" #line 26 "../pat.k" #include "util.h" #include "gutil.h" /* for f_operatorofpatternrepresentation() */ #line 40 "pat.c" #line 314 "../pat.k" bindingidmarks Thebindingidmarks = 0; #line 44 "pat.c" /* end included stuff */ #include "pat.h" static patternrepresentation t_syn_patternchain KC__P((patternchain a_patternchain, path a_path, int branch)); static patternrepresentation syn_outmostpattern KC__P((outmostpattern a_outmostpattern, path a_path)); static patternrepresentation syn_pattern KC__P((pattern a_pattern, path a_path)); static patternrepresentation syn_patterns KC__P((patterns a_patterns, path a_path)); static patternrepresentation t_syn_patterns KC__P((patterns a_patterns, path a_path, int branch)); static patternrepresentation add_predicates KC__P((patternrepresentation a_patternrep)); static patternrepresentation add_predicate KC__P((elem_patternrepresentation a_patternrep_elem, patternrepresentation a_patternrep)); static patternrepresentation t_make_predicates KC__P((ID a_id, paths a_paths, patternrepresentation a_subpattern, patternrepresentation a_patternrep, boolean left_linear)); static patternrepresentation make_predicates KC__P((elem_patternrepresentation a_patternrep_elem, patternrepresentation a_patternrep)); static boolean test_matching_subpatterns KC__P((patternrepresentation newpatrep, patternrepresentation oldpatrep)); static patternrepresentation build_predicates KC__P((patternrepresentation a_patternrep)); static patternrepresentation combine_paths_subpatterns KC__P((ID a_id, paths a_paths, patternrepresentation a_subpattern)); static patternrepresentation combine_path_subpatterns KC__P((ID a_id, path a_path, patternrepresentation a_subpattern)); static patternrepresentation f_get_predicates KC__P((patternrepresentation a_patternrep)); static patternrepresentation f_get_bindings KC__P((patternrepresentation a_patternrep)); static patternrepresentation f_do_get_bindings KC__P((patternrepresentation a_patternrep)); static rewriterulesinfo insertin_rewriterulesinfo KC__P((rewriteruleinfo a_rwruleinfo, rewriterulesinfo a_rwrulesinfo)); static boolean lt_rewriteruleinfo KC__P((rewriteruleinfo a_rwruleinfo1, rewriteruleinfo a_rwruleinfo2)); static unparsedeclsinfo insertin_unparsedeclsinfo KC__P((unparsedeclinfo a_unparsedeclinfo, unparsedeclsinfo a_unparsedeclsinfo)); static boolean lt_unparsedeclinfo KC__P((unparsedeclinfo a_unparsedeclinfo1, unparsedeclinfo a_unparsedeclinfo2)); static boolean lt_patternrepresentation KC__P((patternrepresentation a_patternrep1, patternrepresentation a_patternrep2)); static tribool equal_elem_patternrepresentation KC__P((elem_patternrepresentation a_patternrep_elem1, elem_patternrepresentation a_patternrep_elem2)); static tribool equal_path KC__P((path a_path1, path a_path2)); static tribool do_equal_path KC__P((path a_path1, path a_path2)); static tribool equal_paths KC__P((paths a_paths1, paths a_paths2)); patternrepresentations syn_patternchains #ifdef KC_USE_PROTOTYPES (patternchains a_patternchains) #else (a_patternchains) patternchains a_patternchains; #endif #line 64 "../pat.k" { { #line 65 "../pat.k" patternchains kc_selvar_0_1 = a_patternchains ; #line 65 "../pat.k" /*SUPPRESS 622*/ assert_patternchains(kc_selvar_0_1, "with_expression (1)"); #line 90 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_Conspatternchains)) { #line 69 "../pat.k" patternchain a_patternchain = kc_selvar_0_1->u.Conspatternchains.patternchain_1; #line 69 "../pat.k" patternchains r_patternchains = kc_selvar_0_1->u.Conspatternchains.patternchains_1; #line 69 "../pat.k" return Conspatternrepresentations( syn_patternchain( a_patternchain, Nilpath() ), syn_patternchains( r_patternchains ) ); #line 103 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilpatternchains)) { #line 66 "../pat.k" return Nilpatternrepresentations(); #line 110 "pat.c" } else { kc_no_default_in_with( "syn_patternchains", __LINE__, __FILE__ ); return (patternrepresentations)0; } } #line 75 "../pat.k" #line 75 "../pat.k" } #line 119 "pat.c" patternrepresentation syn_patternchain #ifdef KC_USE_PROTOTYPES (patternchain a_patternchain, path a_path) #else (a_patternchain, a_path) patternchain a_patternchain; path a_path; #endif #line 77 "../pat.k" { { #line 78 "../pat.k" patternchain kc_selvar_0_1 = a_patternchain ; #line 78 "../pat.k" /*SUPPRESS 622*/ assert_patternchain(kc_selvar_0_1, "with_expression (1)"); #line 139 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_Conspatternchain)) { #line 82 "../pat.k" return t_syn_patternchain( a_patternchain, a_path, length_patternchain( a_patternchain )); #line 145 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilpatternchain)) { #line 79 "../pat.k" return Nilpatternrepresentation(); #line 152 "pat.c" } else { kc_no_default_in_with( "syn_patternchain", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 85 "../pat.k" #line 85 "../pat.k" } #line 161 "pat.c" static patternrepresentation t_syn_patternchain #ifdef KC_USE_PROTOTYPES (patternchain a_patternchain, path a_path, int branch) #else (a_patternchain, a_path, branch) patternchain a_patternchain; path a_path; int branch; #endif #line 87 "../pat.k" { { #line 88 "../pat.k" patternchain kc_selvar_0_1 = a_patternchain ; #line 88 "../pat.k" /*SUPPRESS 622*/ assert_patternchain(kc_selvar_0_1, "with_expression (1)"); #line 182 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_Conspatternchain)) { #line 92 "../pat.k" patternchainitem a_patternchainitem = kc_selvar_0_1->u.Conspatternchain.patternchainitem_1; #line 92 "../pat.k" patternchain r_patternchain = kc_selvar_0_1->u.Conspatternchain.patternchain_1; #line 92 "../pat.k" return concat_patternrepresentation( t_syn_patternchain( r_patternchain, a_path , branch-1 ), syn_patternchainitem( a_patternchainitem, Conspath( branch, a_path ) ) ); #line 192 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilpatternchain)) { #line 89 "../pat.k" return Nilpatternrepresentation(); #line 199 "pat.c" } else { kc_no_default_in_with( "t_syn_patternchain", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 95 "../pat.k" #line 95 "../pat.k" } #line 208 "pat.c" patternrepresentation syn_patternchainitem #ifdef KC_USE_PROTOTYPES (patternchainitem a_patternchainitem, path a_path) #else (a_patternchainitem, a_path) patternchainitem a_patternchainitem; path a_path; #endif #line 99 "../pat.k" { { #line 100 "../pat.k" patternchainitem kc_selvar_0_1 = a_patternchainitem ; #line 100 "../pat.k" /*SUPPRESS 622*/ assert_patternchainitem(kc_selvar_0_1, "with_expression (1)"); #line 228 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_PatternchainitemDollarid)) { #line 109 "../pat.k" ID id = kc_selvar_0_1->u.PatternchainitemDollarid.ID_1; #line 109 "../pat.k" elem_patternrepresentation tmp = PRBinding( a_path, id ); tmp->type = a_patternchainitem->type; return Conspatternrepresentation( tmp, Nilpatternrepresentation() ); #line 241 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_PatternchainitemGroup)) { #line 104 "../pat.k" patternchains mp = kc_selvar_0_1->u.PatternchainitemGroup.patternchains_1; #line 104 "../pat.k" v_report( NonFatal( FileLine( a_patternchainitem->file, a_patternchainitem->line ), Problem1S( "Internal Error: PatternchainitemGroup was not handled correctly" ))); return Nilpatternrepresentation(); #line 252 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_PatternchainitemOutmost)) { #line 101 "../pat.k" outmostpattern a_outmostpattern = kc_selvar_0_1->u.PatternchainitemOutmost.outmostpattern_1; #line 101 "../pat.k" return syn_outmostpattern( a_outmostpattern, a_path ); #line 261 "pat.c" } else { kc_no_default_in_with( "syn_patternchainitem", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 117 "../pat.k" #line 117 "../pat.k" } #line 270 "pat.c" patternrepresentations syn_outmostpatterns #ifdef KC_USE_PROTOTYPES (outmostpatterns a_outmostpatterns) #else (a_outmostpatterns) outmostpatterns a_outmostpatterns; #endif #line 125 "../pat.k" { { #line 126 "../pat.k" outmostpatterns kc_selvar_0_1 = a_outmostpatterns ; #line 126 "../pat.k" /*SUPPRESS 622*/ assert_outmostpatterns(kc_selvar_0_1, "with_expression (1)"); #line 289 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_Consoutmostpatterns)) { #line 130 "../pat.k" outmostpattern a_outmostpattern = kc_selvar_0_1->u.Consoutmostpatterns.outmostpattern_1; #line 130 "../pat.k" outmostpatterns r_outmostpatterns = kc_selvar_0_1->u.Consoutmostpatterns.outmostpatterns_1; #line 130 "../pat.k" return Conspatternrepresentations( syn_outmostpattern( a_outmostpattern, Nilpath() ), syn_outmostpatterns( r_outmostpatterns ) ); #line 302 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_Niloutmostpatterns)) { #line 127 "../pat.k" return Nilpatternrepresentations(); #line 309 "pat.c" } else { kc_no_default_in_with( "syn_outmostpatterns", __LINE__, __FILE__ ); return (patternrepresentations)0; } } #line 136 "../pat.k" #line 136 "../pat.k" } #line 318 "pat.c" static patternrepresentation syn_outmostpattern #ifdef KC_USE_PROTOTYPES (outmostpattern a_outmostpattern, path a_path) #else (a_outmostpattern, a_path) outmostpattern a_outmostpattern; path a_path; #endif #line 139 "../pat.k" { { #line 140 "../pat.k" outmostpattern kc_selvar_0_1 = a_outmostpattern ; #line 140 "../pat.k" /*SUPPRESS 622*/ assert_outmostpattern(kc_selvar_0_1, "with_expression (1)"); #line 338 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_OPWildcard)) { #line 199 "../pat.k" elem_patternrepresentation tmp1 = PRWildcard( a_path ); tmp1->type = a_outmostpattern->type; return Conspatternrepresentation( tmp1, Nilpatternrepresentation() ); #line 349 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_OPDefault)) { #line 191 "../pat.k" elem_patternrepresentation tmp1 = PRDefault(); tmp1->type = a_outmostpattern->type; return Conspatternrepresentation( tmp1, Nilpatternrepresentation() ); #line 361 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_OPNonLeafVariable)) { #line 180 "../pat.k" ID id = kc_selvar_0_1->u.OPNonLeafVariable.ID_1; #line 180 "../pat.k" outmostpattern r_pattern = kc_selvar_0_1->u.OPNonLeafVariable.outmostpattern_1; #line 180 "../pat.k" elem_patternrepresentation tmp1 = PRNonLeafBinding( a_path, id, syn_outmostpattern( r_pattern, Nilpath()) ); a_path->id = f_phylumofpatternID(id); tmp1->type = a_outmostpattern->type; return Conspatternrepresentation( tmp1, syn_outmostpattern( r_pattern, a_path ) ); #line 380 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_OPOperator)) { #line 171 "../pat.k" ID id = kc_selvar_0_1->u.OPOperator.ID_1; #line 171 "../pat.k" patterns r_patterns = kc_selvar_0_1->u.OPOperator.patterns_1; #line 171 "../pat.k" elem_patternrepresentation tmp1 = PROperPredicate( Conspath( 0, a_path ), id ); tmp1->type = a_outmostpattern->type; a_path->op = id; return Conspatternrepresentation( tmp1, syn_patterns( r_patterns, a_path ) ); #line 397 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_OPOperatorWildcard)) { #line 141 "../pat.k" ID id = kc_selvar_0_1->u.OPOperatorWildcard.ID_1; #line 141 "../pat.k" { #line 143 "../pat.k" ID kc_selvar_1_1 = id ; #line 143 "../pat.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 414 "pat.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 144 "../pat.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 144 "../pat.k" { #line 145 "../pat.k" IDtype kc_selvar_2_1 = uid->type ; #line 145 "../pat.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 429 "pat.c" if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 147 "../pat.k" elem_patternrepresentation tmp1 = PRBinding( a_path, id ); tmp1->type = a_outmostpattern->type; return Conspatternrepresentation( tmp1, Nilpatternrepresentation() ); #line 446 "pat.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPatternVariable)) { #line 147 "../pat.k" elem_patternrepresentation tmp1 = PRBinding( a_path, id ); tmp1->type = a_outmostpattern->type; return Conspatternrepresentation( tmp1, Nilpatternrepresentation() ); #line 464 "pat.c" } else { #line 161 "../pat.k" elem_patternrepresentation tmp1 = PROperPredicate( Conspath( 0, a_path ), id ); tmp1->type = a_outmostpattern->type; a_path->op = id; return Conspatternrepresentation( tmp1, Nilpatternrepresentation() ); #line 477 "pat.c" } } #line 170 "../pat.k" #line 482 "pat.c" } else { kc_no_default_in_with( "syn_outmostpattern", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 170 "../pat.k" #line 489 "pat.c" } else { kc_no_default_in_with( "syn_outmostpattern", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 207 "../pat.k" #line 207 "../pat.k" } #line 498 "pat.c" static patternrepresentation syn_pattern #ifdef KC_USE_PROTOTYPES (pattern a_pattern, path a_path) #else (a_pattern, a_path) pattern a_pattern; path a_path; #endif #line 210 "../pat.k" { { #line 211 "../pat.k" pattern kc_selvar_0_1 = a_pattern ; #line 211 "../pat.k" /*SUPPRESS 622*/ assert_pattern(kc_selvar_0_1, "with_expression (1)"); #line 518 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_PIntLiteral)) { #line 242 "../pat.k" INT i = kc_selvar_0_1->u.PIntLiteral.INT_1; #line 242 "../pat.k" return Conspatternrepresentation( PRIntLiteral( a_path, i ), Nilpatternrepresentation() ); #line 529 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_PStringLiteral)) { #line 236 "../pat.k" CexpressionDQ cexprdq = kc_selvar_0_1->u.PStringLiteral.CexpressionDQ_1; #line 236 "../pat.k" return Conspatternrepresentation( PRStringLiteral( a_path, cexprdq ), Nilpatternrepresentation() ); #line 541 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_PWildcard)) { #line 231 "../pat.k" return Nilpatternrepresentation(); #line 550 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_PNonLeafVariable)) { #line 225 "../pat.k" ID id = kc_selvar_0_1->u.PNonLeafVariable.ID_1; #line 225 "../pat.k" pattern r_pattern = kc_selvar_0_1->u.PNonLeafVariable.pattern_1; #line 225 "../pat.k" return Conspatternrepresentation( PRNonLeafBinding( a_path, id, syn_pattern( r_pattern, Nilpath()) ), syn_pattern( r_pattern, a_path ) ); #line 564 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_POperator)) { #line 218 "../pat.k" ID id = kc_selvar_0_1->u.POperator.ID_1; #line 218 "../pat.k" patterns r_patterns = kc_selvar_0_1->u.POperator.patterns_1; #line 218 "../pat.k" a_path->op = id; return Conspatternrepresentation( PROperPredicate( Conspath( 0, a_path ), id ), syn_patterns( r_patterns, a_path ) ); #line 579 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_PVariable)) { #line 212 "../pat.k" ID id = kc_selvar_0_1->u.PVariable.ID_1; #line 212 "../pat.k" return Conspatternrepresentation( PRBinding( a_path, id ), Nilpatternrepresentation() ); #line 591 "pat.c" } else { kc_no_default_in_with( "syn_pattern", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 248 "../pat.k" #line 248 "../pat.k" } #line 600 "pat.c" static patternrepresentation syn_patterns #ifdef KC_USE_PROTOTYPES (patterns a_patterns, path a_path) #else (a_patterns, a_path) patterns a_patterns; path a_path; #endif #line 251 "../pat.k" { { #line 252 "../pat.k" patterns kc_selvar_0_1 = a_patterns ; #line 252 "../pat.k" /*SUPPRESS 622*/ assert_patterns(kc_selvar_0_1, "with_expression (1)"); #line 620 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_Conspatterns)) { #line 256 "../pat.k" return t_syn_patterns( a_patterns, a_path , length_patterns( a_patterns ) ); #line 626 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilpatterns)) { #line 253 "../pat.k" return Nilpatternrepresentation(); #line 633 "pat.c" } else { kc_no_default_in_with( "syn_patterns", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 259 "../pat.k" #line 259 "../pat.k" } #line 642 "pat.c" static patternrepresentation t_syn_patterns #ifdef KC_USE_PROTOTYPES (patterns a_patterns, path a_path, int branch) #else (a_patterns, a_path, branch) patterns a_patterns; path a_path; int branch; #endif #line 262 "../pat.k" { { #line 263 "../pat.k" patterns kc_selvar_0_1 = a_patterns ; #line 263 "../pat.k" /*SUPPRESS 622*/ assert_patterns(kc_selvar_0_1, "with_expression (1)"); #line 663 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_Conspatterns)) { #line 267 "../pat.k" pattern a_pattern = kc_selvar_0_1->u.Conspatterns.pattern_1; #line 267 "../pat.k" patterns r_patterns = kc_selvar_0_1->u.Conspatterns.patterns_1; #line 267 "../pat.k" return concat_patternrepresentation( t_syn_patterns( r_patterns, a_path , branch-1 ), syn_pattern( a_pattern, Conspath( branch, a_path ) ) ); #line 673 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilpatterns)) { #line 264 "../pat.k" return Nilpatternrepresentation(); #line 680 "pat.c" } else { kc_no_default_in_with( "t_syn_patterns", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 270 "../pat.k" #line 270 "../pat.k" } #line 689 "pat.c" boolean f_bindingidmarked #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 337 "../pat.k" { { #line 338 "../pat.k" ID kc_selvar_0_1 = id ; #line 338 "../pat.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 708 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 339 "../pat.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 339 "../pat.k" return BindingIdMark( uid )->marked; #line 716 "pat.c" } else { kc_no_default_in_with( "f_bindingidmarked", __LINE__, __FILE__ ); return (boolean)0; } } #line 341 "../pat.k" #line 341 "../pat.k" } #line 725 "pat.c" void v_markbindingid #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 344 "../pat.k" { { #line 345 "../pat.k" ID kc_selvar_0_1 = id ; #line 345 "../pat.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 744 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 346 "../pat.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 346 "../pat.k" BindingIdMark( uid )->marked = True; #line 752 "pat.c" } else kc_no_default_in_with( "v_markbindingid", __LINE__, __FILE__ ); } #line 348 "../pat.k" #line 348 "../pat.k" } #line 760 "pat.c" void v_resetbindingidmarks #ifdef KC_USE_PROTOTYPES (void) #else () #endif #line 353 "../pat.k" { if (Thebindingidmarks) { { #line 355 "../pat.k" bindingidmarks kc_fe_selvar_1 = Thebindingidmarks ; #line 355 "../pat.k" /*SUPPRESS 622*/ assert_bindingidmarks(kc_fe_selvar_1, "foreach_list_expression"); #line 778 "pat.c" while( kc_fe_selvar_1->prod_sel == sel_Consbindingidmarks ) { bindingidmark kc_selvar_0_1 = kc_fe_selvar_1->u.Consbindingidmarks.bindingidmark_1; { #line 355 "../pat.k" { #line 355 "../pat.k" /*SUPPRESS 622*/ assert_bindingidmark(kc_selvar_0_1, "with_expression (1)"); #line 790 "pat.c" { #line 355 "../pat.k" bindingidmark m = kc_selvar_0_1; #line 355 "../pat.k" m->marked = False; #line 798 "pat.c" } } #line 802 "pat.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consbindingidmarks.bindingidmarks_1; #line 355 "../pat.k" /*SUPPRESS 622*/ assert_bindingidmarks(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 809 "pat.c" } } #line 357 "../pat.k" } #line 358 "../pat.k" } #line 817 "pat.c" patternrepresentations add_predicates_to_patternrepresentations #ifdef KC_USE_PROTOTYPES (patternrepresentations a_patternreps) #else (a_patternreps) patternrepresentations a_patternreps; #endif #line 372 "../pat.k" { { #line 373 "../pat.k" patternrepresentations kc_selvar_0_1 = a_patternreps ; #line 373 "../pat.k" /*SUPPRESS 622*/ assert_patternrepresentations(kc_selvar_0_1, "with_expression (1)"); #line 836 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_Conspatternrepresentations)) { #line 377 "../pat.k" patternrepresentation a_patternrep = kc_selvar_0_1->u.Conspatternrepresentations.patternrepresentation_1; #line 377 "../pat.k" patternrepresentations r_patternreps = kc_selvar_0_1->u.Conspatternrepresentations.patternrepresentations_1; #line 377 "../pat.k" patternrepresentation tmp; v_resetbindingidmarks(); tmp = add_predicates( a_patternrep ); return Conspatternrepresentations( concat_patternrepresentation( a_patternrep, tmp ), add_predicates_to_patternrepresentations( r_patternreps ) ); #line 852 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilpatternrepresentations)) { #line 374 "../pat.k" return Nilpatternrepresentations(); #line 859 "pat.c" } else { kc_no_default_in_with( "add_predicates_to_patternrepresentations", __LINE__, __FILE__ ); return (patternrepresentations)0; } } #line 386 "../pat.k" #line 386 "../pat.k" } #line 868 "pat.c" static patternrepresentation add_predicates #ifdef KC_USE_PROTOTYPES (patternrepresentation a_patternrep) #else (a_patternrep) patternrepresentation a_patternrep; #endif #line 389 "../pat.k" { { #line 390 "../pat.k" patternrepresentation kc_selvar_0_1 = a_patternrep ; #line 390 "../pat.k" /*SUPPRESS 622*/ assert_patternrepresentation(kc_selvar_0_1, "with_expression (1)"); #line 887 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_Conspatternrepresentation)) { #line 394 "../pat.k" elem_patternrepresentation a_pattern_rep_elem = kc_selvar_0_1->u.Conspatternrepresentation.elem_patternrepresentation_1; #line 394 "../pat.k" patternrepresentation r_patternrep = kc_selvar_0_1->u.Conspatternrepresentation.patternrepresentation_1; #line 394 "../pat.k" patternrepresentation tmp_for_elem, tmp_for_rest; tmp_for_elem = add_predicate( a_pattern_rep_elem, r_patternrep ); tmp_for_rest = add_predicates( r_patternrep ); return concat_patternrepresentation( tmp_for_elem, tmp_for_rest ); #line 908 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilpatternrepresentation)) { #line 391 "../pat.k" return Nilpatternrepresentation(); #line 915 "pat.c" } else { kc_no_default_in_with( "add_predicates", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 408 "../pat.k" #line 408 "../pat.k" } #line 924 "pat.c" static patternrepresentation add_predicate #ifdef KC_USE_PROTOTYPES (elem_patternrepresentation a_patternrep_elem, patternrepresentation a_patternrep) #else (a_patternrep_elem, a_patternrep) elem_patternrepresentation a_patternrep_elem; patternrepresentation a_patternrep; #endif #line 411 "../pat.k" { { #line 412 "../pat.k" elem_patternrepresentation kc_selvar_0_1 = a_patternrep_elem ; #line 412 "../pat.k" /*SUPPRESS 622*/ assert_elem_patternrepresentation(kc_selvar_0_1, "with_expression (1)"); #line 944 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_PRIntLiteral)) { #line 439 "../pat.k" return Nilpatternrepresentation(); #line 950 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_PRStringLiteral)) { #line 436 "../pat.k" return Nilpatternrepresentation(); #line 957 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_PRWildcard)) { #line 433 "../pat.k" return Nilpatternrepresentation(); #line 964 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_PRDefault)) { #line 430 "../pat.k" return Nilpatternrepresentation(); #line 971 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_PRNonLeafBinding)) { #line 423 "../pat.k" ID id = kc_selvar_0_1->u.PRNonLeafBinding.ID_1; #line 423 "../pat.k" if (! f_bindingidmarked( id )) { v_markbindingid( id ); return make_predicates( a_patternrep_elem, a_patternrep ); } else { return Nilpatternrepresentation(); } #line 984 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_PROperPredicate)) { #line 420 "../pat.k" return Nilpatternrepresentation(); #line 991 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_PRBinding)) { #line 413 "../pat.k" ID id = kc_selvar_0_1->u.PRBinding.ID_1; #line 413 "../pat.k" if (! f_bindingidmarked( id )) { v_markbindingid( id ); return make_predicates( a_patternrep_elem, a_patternrep ); } else { return Nilpatternrepresentation(); } #line 1004 "pat.c" } else { kc_no_default_in_with( "add_predicate", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 442 "../pat.k" #line 442 "../pat.k" } #line 1013 "pat.c" static patternrepresentation t_make_predicates #ifdef KC_USE_PROTOTYPES (ID a_id, paths a_paths, patternrepresentation a_subpattern, patternrepresentation a_patternrep, boolean left_linear) #else (a_id, a_paths, a_subpattern, a_patternrep, left_linear) ID a_id; paths a_paths; patternrepresentation a_subpattern; patternrepresentation a_patternrep; boolean left_linear; #endif #line 451 "../pat.k" { { #line 452 "../pat.k" patternrepresentation kc_selvar_0_1 = a_patternrep ; #line 452 "../pat.k" /*SUPPRESS 622*/ assert_patternrepresentation(kc_selvar_0_1, "with_expression (1)"); #line 1036 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_Conspatternrepresentation)) { #line 460 "../pat.k" elem_patternrepresentation aps_patternrep_elem = kc_selvar_0_1->u.Conspatternrepresentation.elem_patternrepresentation_1; #line 460 "../pat.k" patternrepresentation r_apatternrep = kc_selvar_0_1->u.Conspatternrepresentation.patternrepresentation_1; #line 460 "../pat.k" { #line 461 "../pat.k" elem_patternrepresentation kc_selvar_1_1 = aps_patternrep_elem ; #line 461 "../pat.k" /*SUPPRESS 622*/ assert_elem_patternrepresentation(kc_selvar_1_1, "with_expression (1)"); #line 1053 "pat.c" if (( kc_selvar_1_1->prod_sel == sel_PRIntLiteral)) { #line 496 "../pat.k" return t_make_predicates( a_id, a_paths, a_subpattern, r_apatternrep, left_linear ); #line 1059 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRStringLiteral)) { #line 493 "../pat.k" return t_make_predicates( a_id, a_paths, a_subpattern, r_apatternrep, left_linear ); #line 1066 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRWildcard)) { #line 490 "../pat.k" return t_make_predicates( a_id, a_paths, a_subpattern, r_apatternrep, left_linear ); #line 1073 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRDefault)) { #line 487 "../pat.k" return t_make_predicates( a_id, a_paths, a_subpattern, r_apatternrep, left_linear ); #line 1080 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PROperPredicate)) { #line 484 "../pat.k" return t_make_predicates( a_id, a_paths, a_subpattern, r_apatternrep, left_linear ); #line 1087 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRVarPredicate)) { #line 481 "../pat.k" return t_make_predicates( a_id, a_paths, a_subpattern, r_apatternrep, left_linear ); #line 1094 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRNonLeafBinding)) { #line 469 "../pat.k" path aps_path = kc_selvar_1_1->u.PRNonLeafBinding.path_1; #line 469 "../pat.k" ID aps_id = kc_selvar_1_1->u.PRNonLeafBinding.ID_1; #line 469 "../pat.k" patternrepresentation aps_subpattern = kc_selvar_1_1->u.PRNonLeafBinding.patternrepresentation_1; #line 469 "../pat.k" if ( eq_ID( a_id, aps_id )) { if ( test_matching_subpatterns( aps_subpattern, a_subpattern ) ) { return t_make_predicates( a_id, Conspaths( aps_path, a_paths ), concat_patternrepresentation( aps_subpattern, a_subpattern ), r_apatternrep, False ); } else { return t_make_predicates( a_id, a_paths, a_subpattern, r_apatternrep, False ); } } else { return t_make_predicates( a_id, a_paths, a_subpattern, r_apatternrep, left_linear ); } #line 1115 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRBinding)) { #line 462 "../pat.k" path aps_path = kc_selvar_1_1->u.PRBinding.path_1; #line 462 "../pat.k" ID aps_id = kc_selvar_1_1->u.PRBinding.ID_1; #line 462 "../pat.k" if ( eq_ID( a_id, aps_id )) { return t_make_predicates( a_id, Conspaths( aps_path, a_paths ), a_subpattern, r_apatternrep, False ); } else { return t_make_predicates( a_id, a_paths, a_subpattern, r_apatternrep, left_linear ); } #line 1130 "pat.c" } else { kc_no_default_in_with( "t_make_predicates", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 500 "../pat.k" #line 1137 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilpatternrepresentation)) { #line 453 "../pat.k" if (left_linear) { return Nilpatternrepresentation(); } else { return Conspatternrepresentation( PRVarPredicate( a_paths, a_id, a_subpattern ), Nilpatternrepresentation() ); } #line 1148 "pat.c" } else { kc_no_default_in_with( "t_make_predicates", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 501 "../pat.k" #line 501 "../pat.k" } #line 1157 "pat.c" static patternrepresentation make_predicates #ifdef KC_USE_PROTOTYPES (elem_patternrepresentation a_patternrep_elem, patternrepresentation a_patternrep) #else (a_patternrep_elem, a_patternrep) elem_patternrepresentation a_patternrep_elem; patternrepresentation a_patternrep; #endif #line 504 "../pat.k" { { #line 505 "../pat.k" elem_patternrepresentation kc_selvar_0_1 = a_patternrep_elem ; #line 505 "../pat.k" /*SUPPRESS 622*/ assert_elem_patternrepresentation(kc_selvar_0_1, "with_expression (1)"); #line 1177 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_PRNonLeafBinding)) { #line 509 "../pat.k" path a_path = kc_selvar_0_1->u.PRNonLeafBinding.path_1; #line 509 "../pat.k" ID a_id = kc_selvar_0_1->u.PRNonLeafBinding.ID_1; #line 509 "../pat.k" patternrepresentation a_subpattern = kc_selvar_0_1->u.PRNonLeafBinding.patternrepresentation_1; #line 509 "../pat.k" return t_make_predicates( a_id, Conspaths( a_path, Nilpaths()), a_subpattern, a_patternrep, True ); #line 1189 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_PRBinding)) { #line 506 "../pat.k" path a_path = kc_selvar_0_1->u.PRBinding.path_1; #line 506 "../pat.k" ID a_id = kc_selvar_0_1->u.PRBinding.ID_1; #line 506 "../pat.k" return t_make_predicates( a_id, Conspaths( a_path, Nilpaths()), Nilpatternrepresentation(), a_patternrep, True ); #line 1200 "pat.c" } else { kc_no_default_in_with( "make_predicates", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 513 "../pat.k" #line 513 "../pat.k" } #line 1209 "pat.c" static boolean test_matching_subpatterns #ifdef KC_USE_PROTOTYPES (patternrepresentation newpatrep, patternrepresentation oldpatrep) #else (newpatrep, oldpatrep) patternrepresentation newpatrep; patternrepresentation oldpatrep; #endif #line 523 "../pat.k" { KC_LINTUSE(newpatrep); KC_LINTUSE(oldpatrep); return True; #line 525 "../pat.k" } #line 1224 "pat.c" static patternrepresentation build_predicates #ifdef KC_USE_PROTOTYPES (patternrepresentation a_patternrep) #else (a_patternrep) patternrepresentation a_patternrep; #endif #line 536 "../pat.k" { { #line 537 "../pat.k" patternrepresentation kc_selvar_0_1 = a_patternrep ; #line 537 "../pat.k" /*SUPPRESS 622*/ assert_patternrepresentation(kc_selvar_0_1, "with_expression (1)"); #line 1243 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_Conspatternrepresentation)) { #line 541 "../pat.k" elem_patternrepresentation aps_patternrep_elem = kc_selvar_0_1->u.Conspatternrepresentation.elem_patternrepresentation_1; #line 541 "../pat.k" patternrepresentation r_apatternrep = kc_selvar_0_1->u.Conspatternrepresentation.patternrepresentation_1; #line 541 "../pat.k" { #line 542 "../pat.k" elem_patternrepresentation kc_selvar_1_1 = aps_patternrep_elem ; #line 542 "../pat.k" /*SUPPRESS 622*/ assert_elem_patternrepresentation(kc_selvar_1_1, "with_expression (1)"); #line 1260 "pat.c" if (( kc_selvar_1_1->prod_sel == sel_PRIntLiteral)) { #line 570 "../pat.k" return build_predicates( r_apatternrep ); #line 1266 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRStringLiteral)) { #line 567 "../pat.k" return build_predicates( r_apatternrep ); #line 1273 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRWildcard)) { #line 564 "../pat.k" return build_predicates( r_apatternrep ); #line 1280 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRDefault)) { #line 561 "../pat.k" return build_predicates( r_apatternrep ); #line 1287 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PROperPredicate)) { #line 558 "../pat.k" return build_predicates( r_apatternrep ); #line 1294 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRVarPredicate)) { #line 549 "../pat.k" paths a_paths = kc_selvar_1_1->u.PRVarPredicate.paths_1; #line 549 "../pat.k" ID a_id = kc_selvar_1_1->u.PRVarPredicate.ID_1; #line 549 "../pat.k" patternrepresentation a_subpattern = kc_selvar_1_1->u.PRVarPredicate.patternrepresentation_1; #line 549 "../pat.k" patternrepresentation tmp_for_elem, tmp_for_rest; tmp_for_elem = combine_paths_subpatterns(a_id, a_paths, a_subpattern); tmp_for_rest = build_predicates( r_apatternrep ); return concat_patternrepresentation( tmp_for_elem, tmp_for_rest ); #line 1313 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRNonLeafBinding)) { #line 546 "../pat.k" return build_predicates( r_apatternrep ); #line 1320 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRBinding)) { #line 543 "../pat.k" return build_predicates( r_apatternrep ); #line 1327 "pat.c" } else { kc_no_default_in_with( "build_predicates", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 574 "../pat.k" #line 1334 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilpatternrepresentation)) { #line 538 "../pat.k" return Nilpatternrepresentation(); #line 1341 "pat.c" } else { kc_no_default_in_with( "build_predicates", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 575 "../pat.k" #line 575 "../pat.k" } #line 1350 "pat.c" static patternrepresentation combine_paths_subpatterns #ifdef KC_USE_PROTOTYPES (ID a_id, paths a_paths, patternrepresentation a_subpattern) #else (a_id, a_paths, a_subpattern) ID a_id; paths a_paths; patternrepresentation a_subpattern; #endif #line 578 "../pat.k" { { #line 579 "../pat.k" paths kc_selvar_0_1 = a_paths ; #line 579 "../pat.k" /*SUPPRESS 622*/ assert_paths(kc_selvar_0_1, "with_expression (1)"); #line 1371 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_Conspaths)) { #line 583 "../pat.k" path a_path = kc_selvar_0_1->u.Conspaths.path_1; #line 583 "../pat.k" paths r_paths = kc_selvar_0_1->u.Conspaths.paths_1; #line 583 "../pat.k" return concat_patternrepresentation( combine_path_subpatterns( a_id, a_path, a_subpattern ), combine_paths_subpatterns( a_id, r_paths, a_subpattern ) ); #line 1384 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilpaths)) { #line 580 "../pat.k" return Nilpatternrepresentation(); #line 1391 "pat.c" } else { kc_no_default_in_with( "combine_paths_subpatterns", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 589 "../pat.k" #line 589 "../pat.k" } #line 1400 "pat.c" static patternrepresentation combine_path_subpatterns #ifdef KC_USE_PROTOTYPES (ID a_id, path a_path, patternrepresentation a_subpattern) #else (a_id, a_path, a_subpattern) ID a_id; path a_path; patternrepresentation a_subpattern; #endif #line 592 "../pat.k" { { #line 593 "../pat.k" patternrepresentation kc_selvar_0_1 = a_subpattern ; #line 593 "../pat.k" /*SUPPRESS 622*/ assert_patternrepresentation(kc_selvar_0_1, "with_expression (1)"); #line 1421 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_Conspatternrepresentation)) { #line 597 "../pat.k" elem_patternrepresentation a_subpattern_elem = kc_selvar_0_1->u.Conspatternrepresentation.elem_patternrepresentation_1; #line 597 "../pat.k" patternrepresentation r_subpattern = kc_selvar_0_1->u.Conspatternrepresentation.patternrepresentation_1; #line 597 "../pat.k" { #line 598 "../pat.k" elem_patternrepresentation kc_selvar_1_1 = a_subpattern_elem ; #line 598 "../pat.k" /*SUPPRESS 622*/ assert_elem_patternrepresentation(kc_selvar_1_1, "with_expression (1)"); #line 1438 "pat.c" if (( kc_selvar_1_1->prod_sel == sel_PRIntLiteral)) { #line 650 "../pat.k" path aps_path = kc_selvar_1_1->u.PRIntLiteral.path_1; #line 650 "../pat.k" INT i = kc_selvar_1_1->u.PRIntLiteral.INT_1; #line 650 "../pat.k" elem_patternrepresentation tmp = PRIntLiteral( concat_path( aps_path, a_path ), i ); tmp->type = a_subpattern_elem->type; return Conspatternrepresentation( tmp, combine_path_subpatterns( a_id, a_path, r_subpattern ) ); #line 1453 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRStringLiteral)) { #line 642 "../pat.k" path aps_path = kc_selvar_1_1->u.PRStringLiteral.path_1; #line 642 "../pat.k" CexpressionDQ cexpr = kc_selvar_1_1->u.PRStringLiteral.CexpressionDQ_1; #line 642 "../pat.k" elem_patternrepresentation tmp = PRStringLiteral( concat_path( aps_path, a_path ), cexpr ); tmp->type = a_subpattern_elem->type; return Conspatternrepresentation( tmp, combine_path_subpatterns( a_id, a_path, r_subpattern ) ); #line 1469 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRWildcard)) { #line 634 "../pat.k" path aps_path = kc_selvar_1_1->u.PRWildcard.path_1; #line 634 "../pat.k" elem_patternrepresentation tmp = PRWildcard( concat_path( aps_path, a_path ) ); tmp->type = a_subpattern_elem->type; return Conspatternrepresentation( tmp, combine_path_subpatterns( a_id, a_path, r_subpattern ) ); #line 1483 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRDefault)) { #line 626 "../pat.k" elem_patternrepresentation tmp = PRDefault(); tmp->type = a_subpattern_elem->type; return Conspatternrepresentation( tmp, combine_path_subpatterns( a_id, a_path, r_subpattern ) ); #line 1495 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PROperPredicate)) { #line 618 "../pat.k" path aps_path = kc_selvar_1_1->u.PROperPredicate.path_1; #line 618 "../pat.k" ID aps_id = kc_selvar_1_1->u.PROperPredicate.ID_1; #line 618 "../pat.k" elem_patternrepresentation tmp = PROperPredicate( concat_path( aps_path, a_path ), aps_id ); tmp->type = a_subpattern_elem->type; return Conspatternrepresentation( tmp, combine_path_subpatterns( a_id, a_path, r_subpattern ) ); #line 1511 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRVarPredicate)) { #line 615 "../pat.k" return combine_path_subpatterns( a_id, a_path, r_subpattern ); #line 1518 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRNonLeafBinding)) { #line 607 "../pat.k" path aps_path = kc_selvar_1_1->u.PRNonLeafBinding.path_1; #line 607 "../pat.k" ID aps_id = kc_selvar_1_1->u.PRNonLeafBinding.ID_1; #line 607 "../pat.k" patternrepresentation aps_subpattern = kc_selvar_1_1->u.PRNonLeafBinding.patternrepresentation_1; #line 607 "../pat.k" elem_patternrepresentation tmp = PRNonLeafBinding( concat_path( aps_path, a_path ), aps_id, aps_subpattern ); tmp->type = a_subpattern_elem->type; return Conspatternrepresentation( tmp, combine_path_subpatterns( a_id, a_path, r_subpattern ) ); #line 1536 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRBinding)) { #line 599 "../pat.k" path aps_path = kc_selvar_1_1->u.PRBinding.path_1; #line 599 "../pat.k" ID aps_id = kc_selvar_1_1->u.PRBinding.ID_1; #line 599 "../pat.k" elem_patternrepresentation tmp = PRBinding( concat_path( aps_path, a_path ), aps_id ); tmp->type = a_subpattern_elem->type; return Conspatternrepresentation( tmp, combine_path_subpatterns( a_id, a_path, r_subpattern ) ); #line 1552 "pat.c" } else { kc_no_default_in_with( "combine_path_subpatterns", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 658 "../pat.k" #line 1559 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilpatternrepresentation)) { #line 594 "../pat.k" return Nilpatternrepresentation(); #line 1566 "pat.c" } else { kc_no_default_in_with( "combine_path_subpatterns", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 659 "../pat.k" #line 659 "../pat.k" } #line 1575 "pat.c" void v_add_rewriterulesinfo_to_operator #ifdef KC_USE_PROTOTYPES (patternrepresentations a_patternreps, rewriteclauses rc) #else (a_patternreps, rc) patternrepresentations a_patternreps; rewriteclauses rc; #endif #line 662 "../pat.k" { { #line 663 "../pat.k" patternrepresentations kc_fe_selvar_1 = a_patternreps ; #line 663 "../pat.k" /*SUPPRESS 622*/ assert_patternrepresentations(kc_fe_selvar_1, "foreach_list_expression"); #line 1593 "pat.c" while( kc_fe_selvar_1->prod_sel == sel_Conspatternrepresentations ) { patternrepresentation kc_selvar_0_1 = kc_fe_selvar_1->u.Conspatternrepresentations.patternrepresentation_1; { #line 663 "../pat.k" { #line 663 "../pat.k" /*SUPPRESS 622*/ assert_patternrepresentation(kc_selvar_0_1, "with_expression (1)"); #line 1605 "pat.c" { #line 663 "../pat.k" patternrepresentation a_patternrep = kc_selvar_0_1; #line 663 "../pat.k" ID op = f_operatorofpatternrepresentation( a_patternrep ); if (! eq_ID( op, f_emptyId() )) { alternative a = f_alternativeofoperator(op); if (a) { { #line 668 "../pat.k" rewriteclauses kc_fe_selvar_1 = rc ; #line 668 "../pat.k" /*SUPPRESS 622*/ assert_rewriteclauses(kc_fe_selvar_1, "foreach_list_expression"); #line 1622 "pat.c" while( kc_fe_selvar_1->prod_sel == sel_Consrewriteclauses ) { rewriteclause kc_selvar_1_1 = kc_fe_selvar_1->u.Consrewriteclauses.rewriteclause_1; { #line 668 "../pat.k" { #line 668 "../pat.k" /*SUPPRESS 622*/ assert_rewriteclause(kc_selvar_1_1, "with_expression (1)"); #line 1634 "pat.c" { #line 668 "../pat.k" rewriteclause r = kc_selvar_1_1; #line 668 "../pat.k" a->rewriteinfo = insertin_rewriterulesinfo( Rewriteruleinfo( f_get_predicates( a_patternrep ), f_get_bindings( a_patternrep ), r ), a->rewriteinfo ); #line 1643 "pat.c" } } #line 1647 "pat.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consrewriteclauses.rewriteclauses_1; #line 668 "../pat.k" /*SUPPRESS 622*/ assert_rewriteclauses(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 1654 "pat.c" } } #line 671 "../pat.k" } } #line 1659 "pat.c" } } #line 1663 "pat.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Conspatternrepresentations.patternrepresentations_1; #line 663 "../pat.k" /*SUPPRESS 622*/ assert_patternrepresentations(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 1670 "pat.c" } } #line 671 "../pat.k" #line 671 "../pat.k" } #line 1677 "pat.c" withcasesinfo f_withcasesinfo #ifdef KC_USE_PROTOTYPES (patternrepresentations a_patternreps, Ctext ct) #else (a_patternreps, ct) patternrepresentations a_patternreps; Ctext ct; #endif #line 675 "../pat.k" { withcasesinfo tmp = Nilwithcasesinfo(); { #line 677 "../pat.k" patternrepresentations kc_fe_selvar_1 = a_patternreps ; #line 677 "../pat.k" /*SUPPRESS 622*/ assert_patternrepresentations(kc_fe_selvar_1, "foreach_list_expression"); #line 1696 "pat.c" while( kc_fe_selvar_1->prod_sel == sel_Conspatternrepresentations ) { patternrepresentation kc_selvar_0_1 = kc_fe_selvar_1->u.Conspatternrepresentations.patternrepresentation_1; { #line 677 "../pat.k" { #line 677 "../pat.k" /*SUPPRESS 622*/ assert_patternrepresentation(kc_selvar_0_1, "with_expression (1)"); #line 1708 "pat.c" { #line 677 "../pat.k" patternrepresentation a_patternrep = kc_selvar_0_1; #line 677 "../pat.k" { #line 678 "../pat.k" patternrepresentation kc_selvar_1_1 = a_patternrep ; #line 678 "../pat.k" /*SUPPRESS 622*/ assert_patternrepresentation(kc_selvar_1_1, "with_expression (1)"); #line 1723 "pat.c" if (( kc_selvar_1_1->prod_sel == sel_Conspatternrepresentation)) { #line 680 "../pat.k" tmp = insertin_withcasesinfo( Withcaseinfo( f_get_predicates( a_patternrep ), f_get_bindings( a_patternrep ), ct ), tmp ); #line 1729 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_Nilpatternrepresentation)) { #line 679 "../pat.k" /*EMPTY*/ #line 1734 "pat.c" } else { kc_no_default_in_with( "f_withcasesinfo", __LINE__, __FILE__ ); return (withcasesinfo)0; } } #line 682 "../pat.k" #line 1741 "pat.c" } } #line 1745 "pat.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Conspatternrepresentations.patternrepresentations_1; #line 677 "../pat.k" /*SUPPRESS 622*/ assert_patternrepresentations(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 1752 "pat.c" } } #line 683 "../pat.k" return tmp; #line 684 "../pat.k" } #line 1760 "pat.c" void v_add_unparsedeclsinfo_to_operator #ifdef KC_USE_PROTOTYPES (patternrepresentations a_patternreps, unparseclauses uc) #else (a_patternreps, uc) patternrepresentations a_patternreps; unparseclauses uc; #endif #line 687 "../pat.k" { { #line 688 "../pat.k" patternrepresentations kc_fe_selvar_1 = a_patternreps ; #line 688 "../pat.k" /*SUPPRESS 622*/ assert_patternrepresentations(kc_fe_selvar_1, "foreach_list_expression"); #line 1778 "pat.c" while( kc_fe_selvar_1->prod_sel == sel_Conspatternrepresentations ) { patternrepresentation kc_selvar_0_1 = kc_fe_selvar_1->u.Conspatternrepresentations.patternrepresentation_1; { #line 688 "../pat.k" { #line 688 "../pat.k" /*SUPPRESS 622*/ assert_patternrepresentation(kc_selvar_0_1, "with_expression (1)"); #line 1790 "pat.c" { #line 688 "../pat.k" patternrepresentation a_patternrep = kc_selvar_0_1; #line 688 "../pat.k" ID op = f_operatorofpatternrepresentation( a_patternrep ); if (! eq_ID( op, f_emptyId() )) { alternative a = f_alternativeofoperator(op); if (a) { { #line 693 "../pat.k" unparseclauses kc_fe_selvar_1 = uc ; #line 693 "../pat.k" /*SUPPRESS 622*/ assert_unparseclauses(kc_fe_selvar_1, "foreach_list_expression"); #line 1807 "pat.c" while( kc_fe_selvar_1->prod_sel == sel_Consunparseclauses ) { unparseclause kc_selvar_1_1 = kc_fe_selvar_1->u.Consunparseclauses.unparseclause_1; { #line 693 "../pat.k" { #line 693 "../pat.k" /*SUPPRESS 622*/ assert_unparseclause(kc_selvar_1_1, "with_expression (1)"); #line 1819 "pat.c" { #line 693 "../pat.k" unparseclause u = kc_selvar_1_1; #line 693 "../pat.k" a->unparseinfo = insertin_unparsedeclsinfo( Unparsedeclinfo( f_get_predicates( a_patternrep ), f_get_bindings( a_patternrep ), u ), a->unparseinfo ); #line 1828 "pat.c" } } #line 1832 "pat.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consunparseclauses.unparseclauses_1; #line 693 "../pat.k" /*SUPPRESS 622*/ assert_unparseclauses(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 1839 "pat.c" } } #line 696 "../pat.k" } } #line 1844 "pat.c" } } #line 1848 "pat.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Conspatternrepresentations.patternrepresentations_1; #line 688 "../pat.k" /*SUPPRESS 622*/ assert_patternrepresentations(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 1855 "pat.c" } } #line 696 "../pat.k" #line 696 "../pat.k" } #line 1862 "pat.c" static patternrepresentation f_get_predicates #ifdef KC_USE_PROTOTYPES (patternrepresentation a_patternrep) #else (a_patternrep) patternrepresentation a_patternrep; #endif #line 703 "../pat.k" { { #line 704 "../pat.k" patternrepresentation kc_selvar_0_1 = a_patternrep ; #line 704 "../pat.k" /*SUPPRESS 622*/ assert_patternrepresentation(kc_selvar_0_1, "with_expression (1)"); #line 1881 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_Conspatternrepresentation)) { #line 708 "../pat.k" elem_patternrepresentation a_patternrep_elem = kc_selvar_0_1->u.Conspatternrepresentation.elem_patternrepresentation_1; #line 708 "../pat.k" patternrepresentation r_patternrep = kc_selvar_0_1->u.Conspatternrepresentation.patternrepresentation_1; #line 708 "../pat.k" { #line 709 "../pat.k" elem_patternrepresentation kc_selvar_1_1 = a_patternrep_elem ; #line 709 "../pat.k" /*SUPPRESS 622*/ assert_elem_patternrepresentation(kc_selvar_1_1, "with_expression (1)"); #line 1898 "pat.c" if (( kc_selvar_1_1->prod_sel == sel_PRIntLiteral)) { #line 731 "../pat.k" return Conspatternrepresentation( a_patternrep_elem, f_get_predicates( r_patternrep ) ); #line 1904 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRStringLiteral)) { #line 728 "../pat.k" return Conspatternrepresentation( a_patternrep_elem, f_get_predicates( r_patternrep ) ); #line 1911 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRWildcard)) { #line 725 "../pat.k" return Conspatternrepresentation( a_patternrep_elem, f_get_predicates( r_patternrep ) ); #line 1918 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRDefault)) { #line 722 "../pat.k" return Conspatternrepresentation( a_patternrep_elem, f_get_predicates( r_patternrep ) ); #line 1925 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PROperPredicate)) { #line 719 "../pat.k" return Conspatternrepresentation( a_patternrep_elem, f_get_predicates( r_patternrep ) ); #line 1932 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRVarPredicate)) { #line 716 "../pat.k" return Conspatternrepresentation( a_patternrep_elem, f_get_predicates( r_patternrep ) ); #line 1939 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRNonLeafBinding)) { #line 713 "../pat.k" return f_get_predicates( r_patternrep ); #line 1946 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRBinding)) { #line 710 "../pat.k" return f_get_predicates( r_patternrep ); #line 1953 "pat.c" } else { kc_no_default_in_with( "f_get_predicates", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 733 "../pat.k" #line 1960 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilpatternrepresentation)) { #line 705 "../pat.k" return Nilpatternrepresentation(); #line 1967 "pat.c" } else { kc_no_default_in_with( "f_get_predicates", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 733 "../pat.k" #line 733 "../pat.k" } #line 1976 "pat.c" static patternrepresentation f_get_bindings #ifdef KC_USE_PROTOTYPES (patternrepresentation a_patternrep) #else (a_patternrep) patternrepresentation a_patternrep; #endif #line 736 "../pat.k" { patternrepresentation p; v_resetbindingidmarks(); p = f_do_get_bindings( a_patternrep ); v_resetbindingidmarks(); return p; #line 742 "../pat.k" } #line 1994 "pat.c" static patternrepresentation f_do_get_bindings #ifdef KC_USE_PROTOTYPES (patternrepresentation a_patternrep) #else (a_patternrep) patternrepresentation a_patternrep; #endif #line 745 "../pat.k" { { #line 746 "../pat.k" patternrepresentation kc_selvar_0_1 = a_patternrep ; #line 746 "../pat.k" /*SUPPRESS 622*/ assert_patternrepresentation(kc_selvar_0_1, "with_expression (1)"); #line 2013 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_Conspatternrepresentation)) { #line 750 "../pat.k" elem_patternrepresentation a_patternrep_elem = kc_selvar_0_1->u.Conspatternrepresentation.elem_patternrepresentation_1; #line 750 "../pat.k" patternrepresentation r_patternrep = kc_selvar_0_1->u.Conspatternrepresentation.patternrepresentation_1; #line 750 "../pat.k" { #line 751 "../pat.k" elem_patternrepresentation kc_selvar_1_1 = a_patternrep_elem ; #line 751 "../pat.k" /*SUPPRESS 622*/ assert_elem_patternrepresentation(kc_selvar_1_1, "with_expression (1)"); #line 2030 "pat.c" if (( kc_selvar_1_1->prod_sel == sel_PRIntLiteral)) { #line 781 "../pat.k" return f_do_get_bindings( r_patternrep ); #line 2036 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRStringLiteral)) { #line 778 "../pat.k" return f_do_get_bindings( r_patternrep ); #line 2043 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRWildcard)) { #line 775 "../pat.k" return f_do_get_bindings( r_patternrep ); #line 2050 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRDefault)) { #line 772 "../pat.k" return f_do_get_bindings( r_patternrep ); #line 2057 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PROperPredicate)) { #line 769 "../pat.k" return f_do_get_bindings( r_patternrep ); #line 2064 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRVarPredicate)) { #line 766 "../pat.k" return f_do_get_bindings( r_patternrep ); #line 2071 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRNonLeafBinding)) { #line 759 "../pat.k" ID id = kc_selvar_1_1->u.PRNonLeafBinding.ID_1; #line 759 "../pat.k" if (! f_bindingidmarked( id )) { v_markbindingid( id ); return Conspatternrepresentation( a_patternrep_elem, f_do_get_bindings( r_patternrep ) ); } else { return f_do_get_bindings( r_patternrep ); } #line 2084 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_PRBinding)) { #line 752 "../pat.k" ID id = kc_selvar_1_1->u.PRBinding.ID_1; #line 752 "../pat.k" if (! f_bindingidmarked( id )) { v_markbindingid( id ); return Conspatternrepresentation( a_patternrep_elem, f_do_get_bindings( r_patternrep ) ); } else { return f_do_get_bindings( r_patternrep ); } #line 2097 "pat.c" } else { kc_no_default_in_with( "f_do_get_bindings", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 783 "../pat.k" #line 2104 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilpatternrepresentation)) { #line 747 "../pat.k" return Nilpatternrepresentation(); #line 2111 "pat.c" } else { kc_no_default_in_with( "f_do_get_bindings", __LINE__, __FILE__ ); return (patternrepresentation)0; } } #line 783 "../pat.k" #line 783 "../pat.k" } #line 2120 "pat.c" static rewriterulesinfo insertin_rewriterulesinfo #ifdef KC_USE_PROTOTYPES (rewriteruleinfo a_rwruleinfo, rewriterulesinfo a_rwrulesinfo) #else (a_rwruleinfo, a_rwrulesinfo) rewriteruleinfo a_rwruleinfo; rewriterulesinfo a_rwrulesinfo; #endif #line 788 "../pat.k" { { #line 789 "../pat.k" rewriterulesinfo kc_selvar_0_1 = a_rwrulesinfo ; #line 789 "../pat.k" /*SUPPRESS 622*/ assert_rewriterulesinfo(kc_selvar_0_1, "with_expression (1)"); #line 2140 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_Consrewriterulesinfo)) { #line 793 "../pat.k" rewriteruleinfo aa_rwruleinfo = kc_selvar_0_1->u.Consrewriterulesinfo.rewriteruleinfo_1; #line 793 "../pat.k" rewriterulesinfo r_rwrulesinfo = kc_selvar_0_1->u.Consrewriterulesinfo.rewriterulesinfo_1; #line 793 "../pat.k" if (lt_rewriteruleinfo( aa_rwruleinfo, a_rwruleinfo )) { return Consrewriterulesinfo( aa_rwruleinfo, insertin_rewriterulesinfo( a_rwruleinfo, r_rwrulesinfo )); } else { return Consrewriterulesinfo( a_rwruleinfo, a_rwrulesinfo ); } #line 2153 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilrewriterulesinfo)) { #line 790 "../pat.k" return Consrewriterulesinfo( a_rwruleinfo, a_rwrulesinfo ); #line 2160 "pat.c" } else { kc_no_default_in_with( "insertin_rewriterulesinfo", __LINE__, __FILE__ ); return (rewriterulesinfo)0; } } #line 798 "../pat.k" #line 798 "../pat.k" } #line 2169 "pat.c" static boolean lt_rewriteruleinfo #ifdef KC_USE_PROTOTYPES (rewriteruleinfo a_rwruleinfo1, rewriteruleinfo a_rwruleinfo2) #else (a_rwruleinfo1, a_rwruleinfo2) rewriteruleinfo a_rwruleinfo1; rewriteruleinfo a_rwruleinfo2; #endif #line 801 "../pat.k" { { #line 802 "../pat.k" two_phyla kc_selvar_0_1 = TwoRewriteruleinfo( a_rwruleinfo1, a_rwruleinfo2 ) ; #line 802 "../pat.k" /*SUPPRESS 622*/ assert_two_phyla(kc_selvar_0_1, "with_expression (1)"); #line 2189 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_TwoRewriteruleinfo) && ( kc_selvar_0_1->u.TwoRewriteruleinfo.rewriteruleinfo_1->prod_sel == sel_Rewriteruleinfo) && ( kc_selvar_0_1->u.TwoRewriteruleinfo.rewriteruleinfo_2->prod_sel == sel_Rewriteruleinfo)) { #line 803 "../pat.k" patternrepresentation a_patternrep1 = kc_selvar_0_1->u.TwoRewriteruleinfo.rewriteruleinfo_1->u.Rewriteruleinfo.patternrepresentation_1; #line 803 "../pat.k" patternrepresentation a_patternrep2 = kc_selvar_0_1->u.TwoRewriteruleinfo.rewriteruleinfo_2->u.Rewriteruleinfo.patternrepresentation_1; #line 803 "../pat.k" return lt_patternrepresentation( a_patternrep1, a_patternrep2 ); #line 2199 "pat.c" } else { kc_no_default_in_with( "lt_rewriteruleinfo", __LINE__, __FILE__ ); return (boolean)0; } } #line 805 "../pat.k" #line 805 "../pat.k" } #line 2208 "pat.c" withcasesinfo insertin_withcasesinfo #ifdef KC_USE_PROTOTYPES (withcaseinfo a_withcaseinfo, withcasesinfo a_withcasesinfo) #else (a_withcaseinfo, a_withcasesinfo) withcaseinfo a_withcaseinfo; withcasesinfo a_withcasesinfo; #endif #line 808 "../pat.k" { { #line 809 "../pat.k" withcasesinfo kc_selvar_0_1 = a_withcasesinfo ; #line 809 "../pat.k" /*SUPPRESS 622*/ assert_withcasesinfo(kc_selvar_0_1, "with_expression (1)"); #line 2228 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_Conswithcasesinfo)) { #line 813 "../pat.k" withcaseinfo aa_withcaseinfo = kc_selvar_0_1->u.Conswithcasesinfo.withcaseinfo_1; #line 813 "../pat.k" withcasesinfo r_withcasesinfo = kc_selvar_0_1->u.Conswithcasesinfo.withcasesinfo_1; #line 813 "../pat.k" if (lt_withcaseinfo( aa_withcaseinfo, a_withcaseinfo )) { return Conswithcasesinfo( aa_withcaseinfo, insertin_withcasesinfo( a_withcaseinfo, r_withcasesinfo )); } else { return Conswithcasesinfo( a_withcaseinfo, a_withcasesinfo ); } #line 2241 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilwithcasesinfo)) { #line 810 "../pat.k" return Conswithcasesinfo( a_withcaseinfo, a_withcasesinfo ); #line 2248 "pat.c" } else { kc_no_default_in_with( "insertin_withcasesinfo", __LINE__, __FILE__ ); return (withcasesinfo)0; } } #line 818 "../pat.k" #line 818 "../pat.k" } #line 2257 "pat.c" boolean lt_withcaseinfo #ifdef KC_USE_PROTOTYPES (withcaseinfo a_withcaseinfo1, withcaseinfo a_withcaseinfo2) #else (a_withcaseinfo1, a_withcaseinfo2) withcaseinfo a_withcaseinfo1; withcaseinfo a_withcaseinfo2; #endif #line 821 "../pat.k" { { #line 822 "../pat.k" two_phyla kc_selvar_0_1 = TwoWithcaseinfo( a_withcaseinfo1, a_withcaseinfo2 ) ; #line 822 "../pat.k" /*SUPPRESS 622*/ assert_two_phyla(kc_selvar_0_1, "with_expression (1)"); #line 2277 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_TwoWithcaseinfo) && ( kc_selvar_0_1->u.TwoWithcaseinfo.withcaseinfo_1->prod_sel == sel_Withcaseinfo) && ( kc_selvar_0_1->u.TwoWithcaseinfo.withcaseinfo_2->prod_sel == sel_Withcaseinfo)) { #line 823 "../pat.k" patternrepresentation a_patternrep1 = kc_selvar_0_1->u.TwoWithcaseinfo.withcaseinfo_1->u.Withcaseinfo.patternrepresentation_1; #line 823 "../pat.k" patternrepresentation a_patternrep2 = kc_selvar_0_1->u.TwoWithcaseinfo.withcaseinfo_2->u.Withcaseinfo.patternrepresentation_1; #line 823 "../pat.k" return lt_patternrepresentation( a_patternrep1, a_patternrep2 ); #line 2287 "pat.c" } else { kc_no_default_in_with( "lt_withcaseinfo", __LINE__, __FILE__ ); return (boolean)0; } } #line 825 "../pat.k" #line 825 "../pat.k" } #line 2296 "pat.c" static unparsedeclsinfo insertin_unparsedeclsinfo #ifdef KC_USE_PROTOTYPES (unparsedeclinfo a_unparsedeclinfo, unparsedeclsinfo a_unparsedeclsinfo) #else (a_unparsedeclinfo, a_unparsedeclsinfo) unparsedeclinfo a_unparsedeclinfo; unparsedeclsinfo a_unparsedeclsinfo; #endif #line 828 "../pat.k" { { #line 829 "../pat.k" unparsedeclsinfo kc_selvar_0_1 = a_unparsedeclsinfo ; #line 829 "../pat.k" /*SUPPRESS 622*/ assert_unparsedeclsinfo(kc_selvar_0_1, "with_expression (1)"); #line 2316 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_Consunparsedeclsinfo)) { #line 833 "../pat.k" unparsedeclinfo aa_unparsedeclinfo = kc_selvar_0_1->u.Consunparsedeclsinfo.unparsedeclinfo_1; #line 833 "../pat.k" unparsedeclsinfo r_unparsedeclsinfo = kc_selvar_0_1->u.Consunparsedeclsinfo.unparsedeclsinfo_1; #line 833 "../pat.k" if (lt_unparsedeclinfo( aa_unparsedeclinfo, a_unparsedeclinfo )) { return Consunparsedeclsinfo( aa_unparsedeclinfo, insertin_unparsedeclsinfo( a_unparsedeclinfo, r_unparsedeclsinfo )); } else { return Consunparsedeclsinfo( a_unparsedeclinfo, a_unparsedeclsinfo ); } #line 2329 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilunparsedeclsinfo)) { #line 830 "../pat.k" return Consunparsedeclsinfo( a_unparsedeclinfo, a_unparsedeclsinfo ); #line 2336 "pat.c" } else { kc_no_default_in_with( "insertin_unparsedeclsinfo", __LINE__, __FILE__ ); return (unparsedeclsinfo)0; } } #line 838 "../pat.k" #line 838 "../pat.k" } #line 2345 "pat.c" static boolean lt_unparsedeclinfo #ifdef KC_USE_PROTOTYPES (unparsedeclinfo a_unparsedeclinfo1, unparsedeclinfo a_unparsedeclinfo2) #else (a_unparsedeclinfo1, a_unparsedeclinfo2) unparsedeclinfo a_unparsedeclinfo1; unparsedeclinfo a_unparsedeclinfo2; #endif #line 841 "../pat.k" { { #line 842 "../pat.k" two_phyla kc_selvar_0_1 = TwoUnparsedeclinfo( a_unparsedeclinfo1, a_unparsedeclinfo2 ) ; #line 842 "../pat.k" /*SUPPRESS 622*/ assert_two_phyla(kc_selvar_0_1, "with_expression (1)"); #line 2365 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_TwoUnparsedeclinfo) && ( kc_selvar_0_1->u.TwoUnparsedeclinfo.unparsedeclinfo_1->prod_sel == sel_Unparsedeclinfo) && ( kc_selvar_0_1->u.TwoUnparsedeclinfo.unparsedeclinfo_2->prod_sel == sel_Unparsedeclinfo)) { #line 843 "../pat.k" patternrepresentation a_patternrep1 = kc_selvar_0_1->u.TwoUnparsedeclinfo.unparsedeclinfo_1->u.Unparsedeclinfo.patternrepresentation_1; #line 843 "../pat.k" patternrepresentation a_patternrep2 = kc_selvar_0_1->u.TwoUnparsedeclinfo.unparsedeclinfo_2->u.Unparsedeclinfo.patternrepresentation_1; #line 843 "../pat.k" return lt_patternrepresentation( a_patternrep1, a_patternrep2 ); #line 2375 "pat.c" } else { kc_no_default_in_with( "lt_unparsedeclinfo", __LINE__, __FILE__ ); return (boolean)0; } } #line 845 "../pat.k" #line 845 "../pat.k" } #line 2384 "pat.c" static boolean lt_patternrepresentation #ifdef KC_USE_PROTOTYPES (patternrepresentation a_patternrep1, patternrepresentation a_patternrep2) #else (a_patternrep1, a_patternrep2) patternrepresentation a_patternrep1; patternrepresentation a_patternrep2; #endif #line 848 "../pat.k" { { #line 849 "../pat.k" two_phyla kc_selvar_0_1 = TwoPatternrepresentation( a_patternrep1, a_patternrep2 ) ; #line 849 "../pat.k" /*SUPPRESS 622*/ assert_two_phyla(kc_selvar_0_1, "with_expression (1)"); #line 2404 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_TwoPatternrepresentation) && ( kc_selvar_0_1->u.TwoPatternrepresentation.patternrepresentation_1->prod_sel == sel_Conspatternrepresentation) && ( kc_selvar_0_1->u.TwoPatternrepresentation.patternrepresentation_2->prod_sel == sel_Conspatternrepresentation)) { #line 859 "../pat.k" elem_patternrepresentation a_patternrep_elem1 = kc_selvar_0_1->u.TwoPatternrepresentation.patternrepresentation_1->u.Conspatternrepresentation.elem_patternrepresentation_1; #line 859 "../pat.k" patternrepresentation r_patternrep1 = kc_selvar_0_1->u.TwoPatternrepresentation.patternrepresentation_1->u.Conspatternrepresentation.patternrepresentation_1; #line 859 "../pat.k" elem_patternrepresentation a_patternrep_elem2 = kc_selvar_0_1->u.TwoPatternrepresentation.patternrepresentation_2->u.Conspatternrepresentation.elem_patternrepresentation_1; #line 859 "../pat.k" patternrepresentation r_patternrep2 = kc_selvar_0_1->u.TwoPatternrepresentation.patternrepresentation_2->u.Conspatternrepresentation.patternrepresentation_1; #line 859 "../pat.k" { #line 860 "../pat.k" tribool kc_selvar_1_1 = equal_elem_patternrepresentation( a_patternrep_elem1, a_patternrep_elem2 ) ; #line 860 "../pat.k" /*SUPPRESS 622*/ assert_tribool(kc_selvar_1_1, "with_expression (1)"); #line 2425 "pat.c" if (( kc_selvar_1_1->prod_sel == sel_Bigger)) { #line 867 "../pat.k" return False; #line 2431 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_Smaller)) { #line 864 "../pat.k" return True; #line 2438 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_Equal)) { #line 861 "../pat.k" return lt_patternrepresentation( r_patternrep1, r_patternrep2 ); #line 2445 "pat.c" } else { kc_no_default_in_with( "lt_patternrepresentation", __LINE__, __FILE__ ); return (boolean)0; } } #line 869 "../pat.k" #line 2452 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoPatternrepresentation) && ( kc_selvar_0_1->u.TwoPatternrepresentation.patternrepresentation_1->prod_sel == sel_Nilpatternrepresentation) && ( kc_selvar_0_1->u.TwoPatternrepresentation.patternrepresentation_2->prod_sel == sel_Nilpatternrepresentation)) { #line 850 "../pat.k" return False; #line 2459 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoPatternrepresentation) && ( kc_selvar_0_1->u.TwoPatternrepresentation.patternrepresentation_1->prod_sel == sel_Nilpatternrepresentation)) { #line 853 "../pat.k" return False; #line 2466 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoPatternrepresentation) && ( kc_selvar_0_1->u.TwoPatternrepresentation.patternrepresentation_2->prod_sel == sel_Nilpatternrepresentation)) { #line 856 "../pat.k" return True; #line 2473 "pat.c" } else { kc_no_default_in_with( "lt_patternrepresentation", __LINE__, __FILE__ ); return (boolean)0; } } #line 869 "../pat.k" #line 869 "../pat.k" } #line 2482 "pat.c" static tribool equal_elem_patternrepresentation #ifdef KC_USE_PROTOTYPES (elem_patternrepresentation a_patternrep_elem1, elem_patternrepresentation a_patternrep_elem2) #else (a_patternrep_elem1, a_patternrep_elem2) elem_patternrepresentation a_patternrep_elem1; elem_patternrepresentation a_patternrep_elem2; #endif #line 872 "../pat.k" { { #line 873 "../pat.k" two_phyla kc_selvar_0_1 = TwoElem_patternrepresentation( a_patternrep_elem1, a_patternrep_elem2 ) ; #line 873 "../pat.k" /*SUPPRESS 622*/ assert_two_phyla(kc_selvar_0_1, "with_expression (1)"); #line 2502 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRNonLeafBinding) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRNonLeafBinding)) { #line 989 "../pat.k" path a_path1 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->u.PRNonLeafBinding.path_1; #line 989 "../pat.k" path a_path2 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->u.PRNonLeafBinding.path_1; #line 989 "../pat.k" return equal_path( a_path1, a_path2 ); #line 2512 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRBinding) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRBinding)) { #line 979 "../pat.k" path a_path1 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->u.PRBinding.path_1; #line 979 "../pat.k" path a_path2 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->u.PRBinding.path_1; #line 979 "../pat.k" return equal_path( a_path1, a_path2 ); #line 2523 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRWildcard) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRWildcard)) { #line 969 "../pat.k" path a_path1 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->u.PRWildcard.path_1; #line 969 "../pat.k" path a_path2 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->u.PRWildcard.path_1; #line 969 "../pat.k" return equal_path( a_path1, a_path2 ); #line 2534 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRWildcard) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRDefault)) { #line 965 "../pat.k" return Smaller(); #line 2541 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRDefault) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRWildcard)) { #line 962 "../pat.k" return Bigger(); #line 2548 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRDefault) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRDefault)) { #line 953 "../pat.k" return Equal(); #line 2555 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRIntLiteral) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRIntLiteral)) { #line 923 "../pat.k" path a_path1 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->u.PRIntLiteral.path_1; #line 923 "../pat.k" path a_path2 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->u.PRIntLiteral.path_1; #line 923 "../pat.k" return equal_path( a_path1, a_path2 ); #line 2566 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRStringLiteral) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRIntLiteral)) { #line 920 "../pat.k" path a_path1 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->u.PRStringLiteral.path_1; #line 920 "../pat.k" path a_path2 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->u.PRIntLiteral.path_1; #line 920 "../pat.k" return equal_path( a_path1, a_path2 ); #line 2577 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRVarPredicate) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRIntLiteral)) { #line 917 "../pat.k" return Bigger(); #line 2584 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PROperPredicate) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRIntLiteral)) { #line 914 "../pat.k" path a_path1 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->u.PROperPredicate.path_1; #line 914 "../pat.k" path a_path2 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->u.PRIntLiteral.path_1; #line 914 "../pat.k" return equal_path( a_path1, a_path2 ); #line 2595 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRIntLiteral) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRStringLiteral)) { #line 909 "../pat.k" path a_path1 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->u.PRIntLiteral.path_1; #line 909 "../pat.k" path a_path2 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->u.PRStringLiteral.path_1; #line 909 "../pat.k" return equal_path( a_path1, a_path2 ); #line 2606 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRStringLiteral) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRStringLiteral)) { #line 906 "../pat.k" path a_path1 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->u.PRStringLiteral.path_1; #line 906 "../pat.k" path a_path2 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->u.PRStringLiteral.path_1; #line 906 "../pat.k" return equal_path( a_path1, a_path2 ); #line 2617 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRVarPredicate) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRStringLiteral)) { #line 903 "../pat.k" return Bigger(); #line 2624 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PROperPredicate) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRStringLiteral)) { #line 900 "../pat.k" path a_path1 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->u.PROperPredicate.path_1; #line 900 "../pat.k" path a_path2 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->u.PRStringLiteral.path_1; #line 900 "../pat.k" return equal_path( a_path1, a_path2 ); #line 2635 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRIntLiteral) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRVarPredicate)) { #line 896 "../pat.k" return Smaller(); #line 2642 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRStringLiteral) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRVarPredicate)) { #line 893 "../pat.k" return Smaller(); #line 2649 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRVarPredicate) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRVarPredicate)) { #line 890 "../pat.k" paths a_paths1 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->u.PRVarPredicate.paths_1; #line 890 "../pat.k" paths a_paths2 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->u.PRVarPredicate.paths_1; #line 890 "../pat.k" return equal_paths( a_paths1, a_paths2 ); #line 2660 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PROperPredicate) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRVarPredicate)) { #line 887 "../pat.k" return Smaller(); #line 2667 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRIntLiteral) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PROperPredicate)) { #line 883 "../pat.k" path a_path1 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->u.PRIntLiteral.path_1; #line 883 "../pat.k" path a_path2 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->u.PROperPredicate.path_1; #line 883 "../pat.k" return equal_path( a_path1, a_path2 ); #line 2678 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRStringLiteral) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PROperPredicate)) { #line 880 "../pat.k" path a_path1 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->u.PRStringLiteral.path_1; #line 880 "../pat.k" path a_path2 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->u.PROperPredicate.path_1; #line 880 "../pat.k" return equal_path( a_path1, a_path2 ); #line 2689 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRVarPredicate) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PROperPredicate)) { #line 877 "../pat.k" return Bigger(); #line 2696 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PROperPredicate) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PROperPredicate)) { #line 874 "../pat.k" path a_path1 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->u.PROperPredicate.path_1; #line 874 "../pat.k" path a_path2 = kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->u.PROperPredicate.path_1; #line 874 "../pat.k" return equal_path( a_path1, a_path2 ); #line 2707 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRNonLeafBinding)) { #line 995 "../pat.k" return Bigger(); #line 2714 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRBinding)) { #line 985 "../pat.k" return Bigger(); #line 2721 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRWildcard)) { #line 975 "../pat.k" return Bigger(); #line 2728 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRDefault)) { #line 959 "../pat.k" return Bigger(); #line 2735 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRNonLeafBinding)) { #line 992 "../pat.k" return Smaller(); #line 2742 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRBinding)) { #line 982 "../pat.k" return Smaller(); #line 2749 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRWildcard)) { #line 972 "../pat.k" return Smaller(); #line 2756 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoElem_patternrepresentation) && ( kc_selvar_0_1->u.TwoElem_patternrepresentation.elem_patternrepresentation_2->prod_sel == sel_PRDefault)) { #line 956 "../pat.k" return Smaller(); #line 2763 "pat.c" } else { kc_no_default_in_with( "equal_elem_patternrepresentation", __LINE__, __FILE__ ); return (tribool)0; } } #line 999 "../pat.k" #line 999 "../pat.k" } #line 2772 "pat.c" static tribool equal_path #ifdef KC_USE_PROTOTYPES (path a_path1, path a_path2) #else (a_path1, a_path2) path a_path1; path a_path2; #endif #line 1002 "../pat.k" { return do_equal_path( reverse_path( a_path1 ), reverse_path( a_path2 ) ); #line 1004 "../pat.k" } #line 2787 "pat.c" static tribool do_equal_path #ifdef KC_USE_PROTOTYPES (path a_path1, path a_path2) #else (a_path1, a_path2) path a_path1; path a_path2; #endif #line 1007 "../pat.k" { { #line 1008 "../pat.k" two_phyla kc_selvar_0_1 = TwoPath( a_path1, a_path2 ) ; #line 1008 "../pat.k" /*SUPPRESS 622*/ assert_two_phyla(kc_selvar_0_1, "with_expression (1)"); #line 2807 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_TwoPath) && ( kc_selvar_0_1->u.TwoPath.path_1->prod_sel == sel_Conspath) && ( kc_selvar_0_1->u.TwoPath.path_2->prod_sel == sel_Conspath)) { #line 1018 "../pat.k" int i1 = kc_selvar_0_1->u.TwoPath.path_1->u.Conspath.int_1; #line 1018 "../pat.k" path r_path1 = kc_selvar_0_1->u.TwoPath.path_1->u.Conspath.path_1; #line 1018 "../pat.k" int i2 = kc_selvar_0_1->u.TwoPath.path_2->u.Conspath.int_1; #line 1018 "../pat.k" path r_path2 = kc_selvar_0_1->u.TwoPath.path_2->u.Conspath.path_1; #line 1018 "../pat.k" if ( i1 < i2 ) { return Smaller(); } else if (i1 > i2 ) { return Bigger(); } else { return do_equal_path( r_path1, r_path2 ); } #line 2826 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoPath) && ( kc_selvar_0_1->u.TwoPath.path_1->prod_sel == sel_Nilpath) && ( kc_selvar_0_1->u.TwoPath.path_2->prod_sel == sel_Conspath)) { #line 1015 "../pat.k" return Bigger(); #line 2833 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoPath) && ( kc_selvar_0_1->u.TwoPath.path_1->prod_sel == sel_Conspath) && ( kc_selvar_0_1->u.TwoPath.path_2->prod_sel == sel_Nilpath)) { #line 1012 "../pat.k" return Smaller(); #line 2840 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoPath) && ( kc_selvar_0_1->u.TwoPath.path_1->prod_sel == sel_Nilpath) && ( kc_selvar_0_1->u.TwoPath.path_2->prod_sel == sel_Nilpath)) { #line 1009 "../pat.k" return Equal(); #line 2847 "pat.c" } else { kc_no_default_in_with( "do_equal_path", __LINE__, __FILE__ ); return (tribool)0; } } #line 1025 "../pat.k" #line 1025 "../pat.k" } #line 2856 "pat.c" static tribool equal_paths #ifdef KC_USE_PROTOTYPES (paths a_paths1, paths a_paths2) #else (a_paths1, a_paths2) paths a_paths1; paths a_paths2; #endif #line 1028 "../pat.k" { { #line 1029 "../pat.k" two_phyla kc_selvar_0_1 = TwoPaths( a_paths1, a_paths2 ) ; #line 1029 "../pat.k" /*SUPPRESS 622*/ assert_two_phyla(kc_selvar_0_1, "with_expression (1)"); #line 2876 "pat.c" if (( kc_selvar_0_1->prod_sel == sel_TwoPaths) && ( kc_selvar_0_1->u.TwoPaths.paths_1->prod_sel == sel_Conspaths) && ( kc_selvar_0_1->u.TwoPaths.paths_2->prod_sel == sel_Conspaths)) { #line 1039 "../pat.k" path a_path1 = kc_selvar_0_1->u.TwoPaths.paths_1->u.Conspaths.path_1; #line 1039 "../pat.k" paths r_paths1 = kc_selvar_0_1->u.TwoPaths.paths_1->u.Conspaths.paths_1; #line 1039 "../pat.k" path a_path2 = kc_selvar_0_1->u.TwoPaths.paths_2->u.Conspaths.path_1; #line 1039 "../pat.k" paths r_paths2 = kc_selvar_0_1->u.TwoPaths.paths_2->u.Conspaths.paths_1; #line 1039 "../pat.k" { #line 1040 "../pat.k" tribool kc_selvar_1_1 = equal_path( a_path1, a_path2 ) ; #line 1040 "../pat.k" /*SUPPRESS 622*/ assert_tribool(kc_selvar_1_1, "with_expression (1)"); #line 2897 "pat.c" if (( kc_selvar_1_1->prod_sel == sel_Equal)) { #line 1047 "../pat.k" return equal_paths( r_paths1, r_paths2 ); #line 2903 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_Bigger)) { #line 1044 "../pat.k" return Bigger(); #line 2910 "pat.c" } else if (( kc_selvar_1_1->prod_sel == sel_Smaller)) { #line 1041 "../pat.k" return Smaller(); #line 2917 "pat.c" } else { kc_no_default_in_with( "equal_paths", __LINE__, __FILE__ ); return (tribool)0; } } #line 1049 "../pat.k" #line 2924 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoPaths) && ( kc_selvar_0_1->u.TwoPaths.paths_1->prod_sel == sel_Nilpaths) && ( kc_selvar_0_1->u.TwoPaths.paths_2->prod_sel == sel_Conspaths)) { #line 1036 "../pat.k" return Bigger(); #line 2931 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoPaths) && ( kc_selvar_0_1->u.TwoPaths.paths_1->prod_sel == sel_Conspaths) && ( kc_selvar_0_1->u.TwoPaths.paths_2->prod_sel == sel_Nilpaths)) { #line 1033 "../pat.k" return Smaller(); #line 2938 "pat.c" } else if (( kc_selvar_0_1->prod_sel == sel_TwoPaths) && ( kc_selvar_0_1->u.TwoPaths.paths_1->prod_sel == sel_Nilpaths) && ( kc_selvar_0_1->u.TwoPaths.paths_2->prod_sel == sel_Nilpaths)) { #line 1030 "../pat.k" return Equal(); #line 2945 "pat.c" } else { kc_no_default_in_with( "equal_paths", __LINE__, __FILE__ ); return (tribool)0; } } #line 1049 "../pat.k" #line 1049 "../pat.k" } #line 2954 "pat.c" kimwitu-4.6.1.orig/src/pat.h0100644000176100001440000000347207076113233015207 0ustar debacleusers/* translation of file "../pat.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #ifndef KC_FUNCTIONS_pat_HEADER #define KC_FUNCTIONS_pat_HEADER #define KIMW_FUNCTIONS_pat_HEADER /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include "k.h" /* in case a user forgets */ /* included stuff */ #line 2 "../pat.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 27 "pat.h" /* end included stuff */ patternrepresentations syn_patternchains KC__P((patternchains a_patternchains)); patternrepresentation syn_patternchain KC__P((patternchain a_patternchain, path a_path)); patternrepresentation syn_patternchainitem KC__P((patternchainitem a_patternchainitem, path a_path)); patternrepresentations syn_outmostpatterns KC__P((outmostpatterns a_outmostpatterns)); boolean f_bindingidmarked KC__P((ID id)); void v_markbindingid KC__P((ID id)); void v_resetbindingidmarks KC__P((void)); patternrepresentations add_predicates_to_patternrepresentations KC__P((patternrepresentations a_patternreps)); void v_add_rewriterulesinfo_to_operator KC__P((patternrepresentations a_patternreps, rewriteclauses rc)); withcasesinfo f_withcasesinfo KC__P((patternrepresentations a_patternreps, Ctext ct)); void v_add_unparsedeclsinfo_to_operator KC__P((patternrepresentations a_patternreps, unparseclauses uc)); withcasesinfo insertin_withcasesinfo KC__P((withcaseinfo a_withcaseinfo, withcasesinfo a_withcasesinfo)); boolean lt_withcaseinfo KC__P((withcaseinfo a_withcaseinfo1, withcaseinfo a_withcaseinfo2)); #endif /* ! KC_FUNCTIONS_pat_HEADER */ kimwitu-4.6.1.orig/src/pat.k0100644000176100001440000010644707076113221015215 0ustar debacleusers%{ CODE HEADER /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ %} /* * pat.k */ %{ #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char pat_kAccesSid[] = "@(#)$Id: pat.k,v 1.18 1998/03/18 16:53:16 belinfan Rel $"; #endif %} /***************************************************************************/ /* * This file contains the code to build the pattern match structures * and generate the appropriate C code from the patterns */ %{ #include "util.h" #include "gutil.h" /* for f_operatorofpatternrepresentation() */ %} /* * NOTE: currently we use functions to consctruct the pattern internal * structure. We don't use attributes because we only once need to * compute this info (as a synthesized attribute of the outmostpattern) * In the future we may want to use an extended form of unparse rules * (that can handle synthesized attributes, maybe in a yacc-like syntax) * to implement this piece of code. */ /* * we collect two sorts of things: * - bindings of variables to positions in the pattern, * - predicates that tell the structure of the pattern, for matching. */ /* * representation of the patterns: * we represent each branch in the pattern with a list of numbers, * the numbers of the subtrees: 1 = first subtree, 2 = second subtree etc. * 0 = the node itself, used when the node must have a certain operator. * this list is build in reverse order, because it's easier to append in that * way. * attached to these numbers are the operator ID's (in attributes), for unparsing purposes. * In Path(i, rest) is i the i-th argument of rest->op. * We must make sure not to destroy this information (accidently) during copying * of paths (reverse_path most surely destroys this info, because the attributes * are not copied!) */ patternrepresentations syn_patternchains( a_patternchains ) patternchains a_patternchains; { with( a_patternchains ) { Nilpatternchains(): { return Nilpatternrepresentations(); } Conspatternchains( a_patternchain, r_patternchains ): { return Conspatternrepresentations( syn_patternchain( a_patternchain, Nilpath() ), syn_patternchains( r_patternchains ) ); } } } patternrepresentation syn_patternchain( a_patternchain, a_path ) patternchain a_patternchain; path a_path; { with( a_patternchain ) { Nilpatternchain(): { return Nilpatternrepresentation(); } Conspatternchain( *, * ): { return t_syn_patternchain( a_patternchain, a_path, length_patternchain( a_patternchain )); } } } static patternrepresentation t_syn_patternchain( a_patternchain, a_path, branch ) patternchain a_patternchain; path a_path; int branch; { with( a_patternchain ) { Nilpatternchain(): { return Nilpatternrepresentation(); } Conspatternchain( a_patternchainitem, r_patternchain ): { return concat_patternrepresentation( t_syn_patternchain( r_patternchain, a_path , branch-1 ), syn_patternchainitem( a_patternchainitem, Conspath( branch, a_path ) ) ); } } } patternrepresentation syn_patternchainitem( a_patternchainitem, a_path ) patternchainitem a_patternchainitem; path a_path; { with( a_patternchainitem ) { PatternchainitemOutmost( a_outmostpattern ): { return syn_outmostpattern( a_outmostpattern, a_path ); } PatternchainitemGroup( mp ): { v_report( NonFatal( FileLine( a_patternchainitem->file, a_patternchainitem->line ), Problem1S( "Internal Error: PatternchainitemGroup was not handled correctly" ))); return Nilpatternrepresentation(); } PatternchainitemDollarid( id ): { elem_patternrepresentation tmp = PRBinding( a_path, id ); tmp->type = a_patternchainitem->type; return Conspatternrepresentation( tmp, Nilpatternrepresentation() ); } } } /* * build list of patternrepresentations in reverse order to get the references in the * same order as the subterms (with 0 for the operator, 1 for first subterm, 2 for second etc) * note that the path is in reverse order. */ patternrepresentations syn_outmostpatterns( a_outmostpatterns ) outmostpatterns a_outmostpatterns; { with( a_outmostpatterns ) { Niloutmostpatterns(): { return Nilpatternrepresentations(); } Consoutmostpatterns( a_outmostpattern, r_outmostpatterns ): { return Conspatternrepresentations( syn_outmostpattern( a_outmostpattern, Nilpath() ), syn_outmostpatterns( r_outmostpatterns ) ); } } } static patternrepresentation syn_outmostpattern( a_outmostpattern, a_path ) outmostpattern a_outmostpattern; path a_path; { with( a_outmostpattern ) { OPOperatorWildcard( id ): { /* added this case to be able to handle variables in foreach statements */ with( id ) { Id( uid ): { with( uid->type ) { ITPatternVariable( *, * ), ITUnknown(): { /* generate a binding and a wildcard */ /* this is probably wrong: a binding should be sufficient. We only need the wildcard to distinguish it from the default case that we add in the foreach statement (when we build two withcases: one for the pattern in the foreach, and on default empty one, to do nothing if the foreach pattern fails)... this should be handled in a better way! */ elem_patternrepresentation tmp1 = PRBinding( a_path, id ); /*elem_patternrepresentation tmp2 = PRWildcard( a_path );*/ tmp1->type = a_outmostpattern->type; /*tmp2->type = a_outmostpattern->type;*/ return Conspatternrepresentation( tmp1, /* Conspatternrepresentation( tmp2, */ Nilpatternrepresentation() /* ) */ ); } default: { /* generate a matching */ elem_patternrepresentation tmp1 = PROperPredicate( Conspath( 0, a_path ), id ); tmp1->type = a_outmostpattern->type; a_path->op = id; return Conspatternrepresentation( tmp1, Nilpatternrepresentation() ); } } } } } OPOperator( id, r_patterns ): { elem_patternrepresentation tmp1 = PROperPredicate( Conspath( 0, a_path ), id ); tmp1->type = a_outmostpattern->type; a_path->op = id; return Conspatternrepresentation( tmp1, syn_patterns( r_patterns, a_path ) ); } OPNonLeafVariable( id, r_pattern ): { /* NEED to set a_path-> op to something useful */ /* or, better alternative, `patch' it later when we have done all? */ elem_patternrepresentation tmp1 = PRNonLeafBinding( a_path, id, syn_outmostpattern( r_pattern, Nilpath()) ); a_path->id = f_phylumofpatternID(id); tmp1->type = a_outmostpattern->type; return Conspatternrepresentation( tmp1, syn_outmostpattern( r_pattern, a_path ) ); } OPDefault(): { elem_patternrepresentation tmp1 = PRDefault(); tmp1->type = a_outmostpattern->type; return Conspatternrepresentation( tmp1, Nilpatternrepresentation() ); } OPWildcard(): { elem_patternrepresentation tmp1 = PRWildcard( a_path ); tmp1->type = a_outmostpattern->type; return Conspatternrepresentation( tmp1, Nilpatternrepresentation() ); } } } static patternrepresentation syn_pattern( a_pattern, a_path ) pattern a_pattern; path a_path; { with( a_pattern ) { PVariable( id ): { return Conspatternrepresentation( PRBinding( a_path, id ), Nilpatternrepresentation() ); } POperator( id, r_patterns ): { a_path->op = id; return Conspatternrepresentation( PROperPredicate( Conspath( 0, a_path ), id ), syn_patterns( r_patterns, a_path ) ); } PNonLeafVariable( id, r_pattern ): { return Conspatternrepresentation( PRNonLeafBinding( a_path, id, syn_pattern( r_pattern, Nilpath()) ), syn_pattern( r_pattern, a_path ) ); } PWildcard(): { /* we don't add this to the patternreps; as a result, every * PRWildcard comes from an outermost default */ return Nilpatternrepresentation(); } PStringLiteral( cexprdq ): { return Conspatternrepresentation( PRStringLiteral( a_path, cexprdq ), Nilpatternrepresentation() ); } PIntLiteral( i ): { return Conspatternrepresentation( PRIntLiteral( a_path, i ), Nilpatternrepresentation() ); } } } static patternrepresentation syn_patterns( a_patterns, a_path ) patterns a_patterns; path a_path; { with( a_patterns ) { Nilpatterns(): { return Nilpatternrepresentation(); } Conspatterns( *, * ): { return t_syn_patterns( a_patterns, a_path , length_patterns( a_patterns ) ); } } } static patternrepresentation t_syn_patterns( a_patterns, a_path, branch ) patterns a_patterns; path a_path; int branch; { with( a_patterns ) { Nilpatterns(): { return Nilpatternrepresentation(); } Conspatterns( a_pattern, r_patterns ): { return concat_patternrepresentation( t_syn_patterns( r_patterns, a_path , branch-1 ), syn_pattern( a_pattern, Conspath( branch, a_path ) ) ); } } } /* * the above code should build the list of bindings and predicates... * To this list additional predicates should be added for the * variables that occur in it more than once. * Then the list should be ordered, taking care of expanding thingsd like * * a * / \ * b O1 * | * O2 * | * b=O3 * | * c * * * This should be changed into * * a * / \ * O3=b O1 * | | * c O2 * | * b=O3 * | * c * * to be sure that we get the right order of matching... */ /* HOWEVER, WE DO NOT YET BOTHER ABOUT THIS PROBLEM RIGHT Now we only collect/create the binding_predicates for multiple occurrences of the same idenfier in a pattern */ /* * administration of binding marks */ %{ bindingidmarks Thebindingidmarks = 0; %} %{ KC_TYPES_HEADER extern bindingidmarks Thebindingidmarks; %} bindingidmarks {uniq} : list bindingidmark ; bindingidmark {uniq} : BindingIdMark( uniqID ) { boolean marked = False; { if (! Thebindingidmarks) Thebindingidmarks = Consbindingidmarks( $0, Nilbindingidmarks() ); else Thebindingidmarks = Consbindingidmarks( $0, Thebindingidmarks ); } } ; boolean f_bindingidmarked( id ) ID id; { with( id ) { Id( uid ): { return BindingIdMark( uid )->marked; } } } void v_markbindingid( id ) ID id; { with( id ) { Id( uid ): { BindingIdMark( uid )->marked = True; } } } void v_resetbindingidmarks() { if (Thebindingidmarks) { foreach( m; bindingidmarks Thebindingidmarks ) { m->marked = False; } } } /* code to create the predicates for multiple bindings of the same identifier */ /* * add_predicates and add_predicate * walks through the list of pattern_representations. * for each pattern represenation: * if it is a Binding (leaf or non-leaf): * - if it is marked, * - if it isn't marked, mark it, start make_predicates for this variable and the rest of the list * go to next pattern_representation in the list */ patternrepresentations add_predicates_to_patternrepresentations( a_patternreps ) patternrepresentations a_patternreps; { with( a_patternreps ) { Nilpatternrepresentations(): { return Nilpatternrepresentations(); } Conspatternrepresentations( a_patternrep, r_patternreps ): { patternrepresentation tmp; v_resetbindingidmarks(); /* necessary! - or we generate wrong code */ tmp = add_predicates( a_patternrep ); return Conspatternrepresentations( concat_patternrepresentation( a_patternrep, tmp ), add_predicates_to_patternrepresentations( r_patternreps ) ); } } } static patternrepresentation add_predicates( a_patternrep ) patternrepresentation a_patternrep; { with( a_patternrep ) { Nilpatternrepresentation(): { return Nilpatternrepresentation(); } Conspatternrepresentation( a_pattern_rep_elem, r_patternrep ): { patternrepresentation tmp_for_elem, tmp_for_rest; /* WARNING: the order of the next two statements is _very_ important! * (because of the side-effect: marking of identifiers. * If they are reversed, * the identifiers would get marked 'from the end of the list', * (i.e. in add_predicates) and then the add_predicate call * would not generate any predicate... * ) */ tmp_for_elem = add_predicate( a_pattern_rep_elem, r_patternrep ); tmp_for_rest = add_predicates( r_patternrep ); return concat_patternrepresentation( tmp_for_elem, tmp_for_rest ); } } } static patternrepresentation add_predicate( a_patternrep_elem, a_patternrep ) elem_patternrepresentation a_patternrep_elem; patternrepresentation a_patternrep; { with( a_patternrep_elem ) { PRBinding( *, id ): { if (! f_bindingidmarked( id )) { v_markbindingid( id ); return make_predicates( a_patternrep_elem, a_patternrep ); } else { return Nilpatternrepresentation(); } } PROperPredicate( *, * ): { return Nilpatternrepresentation(); } PRNonLeafBinding( *, id, * ): { if (! f_bindingidmarked( id )) { v_markbindingid( id ); return make_predicates( a_patternrep_elem, a_patternrep ); } else { return Nilpatternrepresentation(); } } PRDefault(): { return Nilpatternrepresentation(); } PRWildcard( * ): { return Nilpatternrepresentation(); } PRStringLiteral( *, * ): { return Nilpatternrepresentation(); } PRIntLiteral( *, * ): { return Nilpatternrepresentation(); } } } /* * t_make_predicates and make_predicates * create a PRVarPredicate for the variable (identifier) and the list of pattern_representations, * but only if the variable occurs more than once (ie. the pattern is not left_linear) * the left_linear parameter in t_make_predicates keeps track of this */ static patternrepresentation t_make_predicates( a_id, a_paths, a_subpattern, a_patternrep, left_linear ) ID a_id; paths a_paths; patternrepresentation a_subpattern; patternrepresentation a_patternrep; boolean left_linear; { with( a_patternrep ) { Nilpatternrepresentation(): { if (left_linear) { return Nilpatternrepresentation(); } else { return Conspatternrepresentation( PRVarPredicate( a_paths, a_id, a_subpattern ), Nilpatternrepresentation() ); } } Conspatternrepresentation( aps_patternrep_elem, r_apatternrep ): { with( aps_patternrep_elem ) { PRBinding( aps_path, aps_id ): { if ( eq_ID( a_id, aps_id )) { return t_make_predicates( a_id, Conspaths( aps_path, a_paths ), a_subpattern, r_apatternrep, False ); } else { return t_make_predicates( a_id, a_paths, a_subpattern, r_apatternrep, left_linear ); } } PRNonLeafBinding( aps_path, aps_id, aps_subpattern ): { if ( eq_ID( a_id, aps_id )) { if ( test_matching_subpatterns( aps_subpattern, a_subpattern ) ) { return t_make_predicates( a_id, Conspaths( aps_path, a_paths ), concat_patternrepresentation( aps_subpattern, a_subpattern ), r_apatternrep, False ); } else { return t_make_predicates( a_id, a_paths, a_subpattern, r_apatternrep, False ); } } else { return t_make_predicates( a_id, a_paths, a_subpattern, r_apatternrep, left_linear ); } } /* other cases shouldn't happen */ PRVarPredicate( *, *, * ): { return t_make_predicates( a_id, a_paths, a_subpattern, r_apatternrep, left_linear ); } PROperPredicate( *, * ): { return t_make_predicates( a_id, a_paths, a_subpattern, r_apatternrep, left_linear ); } PRDefault(): { return t_make_predicates( a_id, a_paths, a_subpattern, r_apatternrep, left_linear ); } PRWildcard( * ): { return t_make_predicates( a_id, a_paths, a_subpattern, r_apatternrep, left_linear ); } PRStringLiteral( *, * ): { return t_make_predicates( a_id, a_paths, a_subpattern, r_apatternrep, left_linear ); } PRIntLiteral( *, * ): { return t_make_predicates( a_id, a_paths, a_subpattern, r_apatternrep, left_linear ); } } } } } static patternrepresentation make_predicates( a_patternrep_elem, a_patternrep ) elem_patternrepresentation a_patternrep_elem; patternrepresentation a_patternrep; { with( a_patternrep_elem ) { PRBinding( a_path, a_id ): { return t_make_predicates( a_id, Conspaths( a_path, Nilpaths()), Nilpatternrepresentation(), a_patternrep, True ); } PRNonLeafBinding( a_path, a_id, a_subpattern ): { return t_make_predicates( a_id, Conspaths( a_path, Nilpaths()), a_subpattern, a_patternrep, True ); } /* other cases shouldn't happen */ } } /* * routine that can be used to test for vertain properties, eg. to * test if patterns that follow (are below) non-leaf variables are * `identical' * We can use this lateer on. For now we don't use it... always return True */ /*ARGSUSED*/ static boolean test_matching_subpatterns( newpatrep, oldpatrep ) patternrepresentation newpatrep; patternrepresentation oldpatrep; { KC_LINTUSE(newpatrep); KC_LINTUSE(oldpatrep); return True; } /* * experimental code to combine patterns, ie to expand leaf-variables with the pattern * `below' non-leaf variables * Idea is that for each PRVarPredicate we combine/expand the subpatterns in it * with the paths to the variables * we do not (yet?) want to do this. */ static patternrepresentation build_predicates(a_patternrep ) patternrepresentation a_patternrep; { with( a_patternrep ) { Nilpatternrepresentation(): { return Nilpatternrepresentation(); } Conspatternrepresentation( aps_patternrep_elem, r_apatternrep ): { with( aps_patternrep_elem ) { PRBinding( *, * ): { return build_predicates( r_apatternrep ); } PRNonLeafBinding( *, *, * ): { return build_predicates( r_apatternrep ); } PRVarPredicate( a_paths, a_id, a_subpattern ): { patternrepresentation tmp_for_elem, tmp_for_rest; /* not sure whether the order of next two statements is * important. be on the safe side.... */ tmp_for_elem = combine_paths_subpatterns(a_id, a_paths, a_subpattern); tmp_for_rest = build_predicates( r_apatternrep ); return concat_patternrepresentation( tmp_for_elem, tmp_for_rest ); } PROperPredicate( *, * ): { return build_predicates( r_apatternrep ); } PRDefault(): { return build_predicates( r_apatternrep ); } PRWildcard( * ): { return build_predicates( r_apatternrep ); } PRStringLiteral( *, * ): { return build_predicates( r_apatternrep ); } PRIntLiteral( *, * ): { return build_predicates( r_apatternrep ); } } } } } static patternrepresentation combine_paths_subpatterns( a_id, a_paths, a_subpattern ) ID a_id; paths a_paths; patternrepresentation a_subpattern; { with( a_paths ) { Nilpaths(): { return Nilpatternrepresentation(); } Conspaths( a_path, r_paths ): { return concat_patternrepresentation( combine_path_subpatterns( a_id, a_path, a_subpattern ), combine_paths_subpatterns( a_id, r_paths, a_subpattern ) ); } } } static patternrepresentation combine_path_subpatterns( a_id, a_path, a_subpattern ) ID a_id; path a_path; patternrepresentation a_subpattern; { with( a_subpattern ) { Nilpatternrepresentation(): { return Nilpatternrepresentation(); } Conspatternrepresentation( a_subpattern_elem, r_subpattern ): { with( a_subpattern_elem ) { PRBinding( aps_path, aps_id ): { elem_patternrepresentation tmp = PRBinding( concat_path( aps_path, a_path ), aps_id ); tmp->type = a_subpattern_elem->type; return Conspatternrepresentation( tmp, combine_path_subpatterns( a_id, a_path, r_subpattern ) ); } PRNonLeafBinding( aps_path, aps_id, aps_subpattern ): { elem_patternrepresentation tmp = PRNonLeafBinding( concat_path( aps_path, a_path ), aps_id, aps_subpattern ); tmp->type = a_subpattern_elem->type; return Conspatternrepresentation( tmp, combine_path_subpatterns( a_id, a_path, r_subpattern ) ); } PRVarPredicate( /*aps_paths*/ *, /*aps_id*/ *, /*aps_subpattern*/ * ): { return combine_path_subpatterns( a_id, a_path, r_subpattern ); } PROperPredicate( aps_path, aps_id ): { elem_patternrepresentation tmp = PROperPredicate( concat_path( aps_path, a_path ), aps_id ); tmp->type = a_subpattern_elem->type; return Conspatternrepresentation( tmp, combine_path_subpatterns( a_id, a_path, r_subpattern ) ); } PRDefault(): { elem_patternrepresentation tmp = PRDefault(); tmp->type = a_subpattern_elem->type; return Conspatternrepresentation( tmp, combine_path_subpatterns( a_id, a_path, r_subpattern ) ); } PRWildcard( aps_path ): { elem_patternrepresentation tmp = PRWildcard( concat_path( aps_path, a_path ) ); tmp->type = a_subpattern_elem->type; return Conspatternrepresentation( tmp, combine_path_subpatterns( a_id, a_path, r_subpattern ) ); } PRStringLiteral( aps_path, cexpr ): { elem_patternrepresentation tmp = PRStringLiteral( concat_path( aps_path, a_path ), cexpr ); tmp->type = a_subpattern_elem->type; return Conspatternrepresentation( tmp, combine_path_subpatterns( a_id, a_path, r_subpattern ) ); } PRIntLiteral( aps_path, i ): { elem_patternrepresentation tmp = PRIntLiteral( concat_path( aps_path, a_path ), i ); tmp->type = a_subpattern_elem->type; return Conspatternrepresentation( tmp, combine_path_subpatterns( a_id, a_path, r_subpattern ) ); } } } } } void v_add_rewriterulesinfo_to_operator( a_patternreps, rc ) patternrepresentations a_patternreps; rewriteclauses rc; { foreach( a_patternrep; patternrepresentations a_patternreps ) { ID op = f_operatorofpatternrepresentation( a_patternrep ); if (! eq_ID( op, f_emptyId() )) { alternative a = f_alternativeofoperator(op); if (a) { foreach( r; rewriteclauses rc ) { /* maybe we want to use an insert function to keep the rewriterulesinfo sorted */ a->rewriteinfo = insertin_rewriterulesinfo( Rewriteruleinfo( f_get_predicates( a_patternrep ), f_get_bindings( a_patternrep ), r ), a->rewriteinfo ); } } } } } withcasesinfo f_withcasesinfo( a_patternreps, ct ) patternrepresentations a_patternreps; Ctext ct; { withcasesinfo tmp = Nilwithcasesinfo(); foreach( a_patternrep; patternrepresentations a_patternreps ) { with( a_patternrep ) { Nilpatternrepresentation(): {/*EMPTY*/} Conspatternrepresentation( /*a_patternrep_elem*/ *, /*r_patternrep*/ * ): { tmp = insertin_withcasesinfo( Withcaseinfo( f_get_predicates( a_patternrep ), f_get_bindings( a_patternrep ), ct ), tmp ); } } } return tmp; } void v_add_unparsedeclsinfo_to_operator( a_patternreps, uc ) patternrepresentations a_patternreps; unparseclauses uc; { foreach( a_patternrep; patternrepresentations a_patternreps ) { ID op = f_operatorofpatternrepresentation( a_patternrep ); if (! eq_ID( op, f_emptyId() )) { alternative a = f_alternativeofoperator(op); if (a) { foreach( u; unparseclauses uc ) { /* maybe we want to use an insert function to keep the rewriterulesinfo sorted */ a->unparseinfo = insertin_unparsedeclsinfo( Unparsedeclinfo( f_get_predicates( a_patternrep ), f_get_bindings( a_patternrep ), u ), a->unparseinfo ); } } } } } /* * these functions can be rewritten in a split_function that returns a tuple of predicates and bindings * so that we only once walk though the list */ static patternrepresentation f_get_predicates( a_patternrep ) patternrepresentation a_patternrep; { with( a_patternrep ) { Nilpatternrepresentation(): { return Nilpatternrepresentation(); } Conspatternrepresentation( a_patternrep_elem, r_patternrep ): { with( a_patternrep_elem ) { PRBinding( *, * ): { return f_get_predicates( r_patternrep ); } PRNonLeafBinding( *, *, * ): { return f_get_predicates( r_patternrep ); } PRVarPredicate( *, *, * ): { return Conspatternrepresentation( a_patternrep_elem, f_get_predicates( r_patternrep ) ); } PROperPredicate( *, * ): { return Conspatternrepresentation( a_patternrep_elem, f_get_predicates( r_patternrep ) ); } PRDefault(): { return Conspatternrepresentation( a_patternrep_elem, f_get_predicates( r_patternrep ) ); } PRWildcard( * ): { return Conspatternrepresentation( a_patternrep_elem, f_get_predicates( r_patternrep ) ); } PRStringLiteral( *, * ): { return Conspatternrepresentation( a_patternrep_elem, f_get_predicates( r_patternrep ) ); } PRIntLiteral( *, * ): { return Conspatternrepresentation( a_patternrep_elem, f_get_predicates( r_patternrep ) ); } } } } } static patternrepresentation f_get_bindings( a_patternrep ) patternrepresentation a_patternrep; { patternrepresentation p; v_resetbindingidmarks(); p = f_do_get_bindings( a_patternrep ); v_resetbindingidmarks(); return p; } static patternrepresentation f_do_get_bindings( a_patternrep ) patternrepresentation a_patternrep; { with( a_patternrep ) { Nilpatternrepresentation(): { return Nilpatternrepresentation(); } Conspatternrepresentation( a_patternrep_elem, r_patternrep ): { with( a_patternrep_elem ) { PRBinding( *, id ): { if (! f_bindingidmarked( id )) { v_markbindingid( id ); return Conspatternrepresentation( a_patternrep_elem, f_do_get_bindings( r_patternrep ) ); } else { return f_do_get_bindings( r_patternrep ); } } PRNonLeafBinding( *, id, * ): { if (! f_bindingidmarked( id )) { v_markbindingid( id ); return Conspatternrepresentation( a_patternrep_elem, f_do_get_bindings( r_patternrep ) ); } else { return f_do_get_bindings( r_patternrep ); } } PRVarPredicate( *, *, * ): { return f_do_get_bindings( r_patternrep ); } PROperPredicate( *, * ): { return f_do_get_bindings( r_patternrep ); } PRDefault(): { return f_do_get_bindings( r_patternrep ); } PRWildcard( * ): { return f_do_get_bindings( r_patternrep ); } PRStringLiteral( *, * ): { return f_do_get_bindings( r_patternrep ); } PRIntLiteral( *, * ): { return f_do_get_bindings( r_patternrep ); } } } } } static rewriterulesinfo insertin_rewriterulesinfo( a_rwruleinfo, a_rwrulesinfo ) rewriteruleinfo a_rwruleinfo; rewriterulesinfo a_rwrulesinfo; { with( a_rwrulesinfo ) { Nilrewriterulesinfo(): { return Consrewriterulesinfo( a_rwruleinfo, a_rwrulesinfo ); } Consrewriterulesinfo( aa_rwruleinfo, r_rwrulesinfo ): { if (lt_rewriteruleinfo( aa_rwruleinfo, a_rwruleinfo )) { return Consrewriterulesinfo( aa_rwruleinfo, insertin_rewriterulesinfo( a_rwruleinfo, r_rwrulesinfo )); } else { return Consrewriterulesinfo( a_rwruleinfo, a_rwrulesinfo ); } } } } static boolean lt_rewriteruleinfo( a_rwruleinfo1, a_rwruleinfo2 ) rewriteruleinfo a_rwruleinfo1; rewriteruleinfo a_rwruleinfo2; { with( TwoRewriteruleinfo( a_rwruleinfo1, a_rwruleinfo2 ) ) { TwoRewriteruleinfo( Rewriteruleinfo( a_patternrep1, *, * ), Rewriteruleinfo( a_patternrep2, *, * )): { return lt_patternrepresentation( a_patternrep1, a_patternrep2 ); } } } withcasesinfo insertin_withcasesinfo( a_withcaseinfo, a_withcasesinfo )withcaseinfo a_withcaseinfo; withcasesinfo a_withcasesinfo; { with( a_withcasesinfo ) { Nilwithcasesinfo(): { return Conswithcasesinfo( a_withcaseinfo, a_withcasesinfo ); } Conswithcasesinfo( aa_withcaseinfo, r_withcasesinfo ): { if (lt_withcaseinfo( aa_withcaseinfo, a_withcaseinfo )) { return Conswithcasesinfo( aa_withcaseinfo, insertin_withcasesinfo( a_withcaseinfo, r_withcasesinfo )); } else { return Conswithcasesinfo( a_withcaseinfo, a_withcasesinfo ); } } } } boolean lt_withcaseinfo( a_withcaseinfo1, a_withcaseinfo2 ) withcaseinfo a_withcaseinfo1; withcaseinfo a_withcaseinfo2; { with( TwoWithcaseinfo( a_withcaseinfo1, a_withcaseinfo2 ) ) { TwoWithcaseinfo( Withcaseinfo( a_patternrep1, *, * ), Withcaseinfo( a_patternrep2, *, * )): { return lt_patternrepresentation( a_patternrep1, a_patternrep2 ); } } } static unparsedeclsinfo insertin_unparsedeclsinfo( a_unparsedeclinfo, a_unparsedeclsinfo ) unparsedeclinfo a_unparsedeclinfo; unparsedeclsinfo a_unparsedeclsinfo; { with( a_unparsedeclsinfo ) { Nilunparsedeclsinfo(): { return Consunparsedeclsinfo( a_unparsedeclinfo, a_unparsedeclsinfo ); } Consunparsedeclsinfo( aa_unparsedeclinfo, r_unparsedeclsinfo ): { if (lt_unparsedeclinfo( aa_unparsedeclinfo, a_unparsedeclinfo )) { return Consunparsedeclsinfo( aa_unparsedeclinfo, insertin_unparsedeclsinfo( a_unparsedeclinfo, r_unparsedeclsinfo )); } else { return Consunparsedeclsinfo( a_unparsedeclinfo, a_unparsedeclsinfo ); } } } } static boolean lt_unparsedeclinfo( a_unparsedeclinfo1, a_unparsedeclinfo2 ) unparsedeclinfo a_unparsedeclinfo1; unparsedeclinfo a_unparsedeclinfo2; { with( TwoUnparsedeclinfo( a_unparsedeclinfo1, a_unparsedeclinfo2 ) ) { TwoUnparsedeclinfo( Unparsedeclinfo( a_patternrep1, *, * ), Unparsedeclinfo( a_patternrep2, *, * )): { return lt_patternrepresentation( a_patternrep1, a_patternrep2 ); } } } static boolean lt_patternrepresentation( a_patternrep1, a_patternrep2 ) patternrepresentation a_patternrep1; patternrepresentation a_patternrep2; { with( TwoPatternrepresentation( a_patternrep1, a_patternrep2 ) ) { TwoPatternrepresentation( Nilpatternrepresentation(), Nilpatternrepresentation() ): { return False; } TwoPatternrepresentation( Nilpatternrepresentation(), * ): { return False; } TwoPatternrepresentation( *, Nilpatternrepresentation() ): { return True; } TwoPatternrepresentation( Conspatternrepresentation( a_patternrep_elem1, r_patternrep1 ), Conspatternrepresentation( a_patternrep_elem2, r_patternrep2 ) ): { with( equal_elem_patternrepresentation( a_patternrep_elem1, a_patternrep_elem2 ) ) { Equal(): { return lt_patternrepresentation( r_patternrep1, r_patternrep2 ); } Smaller(): { return True; } Bigger(): { return False; } } } } } static tribool equal_elem_patternrepresentation( a_patternrep_elem1, a_patternrep_elem2 ) elem_patternrepresentation a_patternrep_elem1; elem_patternrepresentation a_patternrep_elem2; { with( TwoElem_patternrepresentation( a_patternrep_elem1, a_patternrep_elem2 ) ) { TwoElem_patternrepresentation( PROperPredicate( a_path1, * ), PROperPredicate( a_path2, * ) ): { return equal_path( a_path1, a_path2 ); } TwoElem_patternrepresentation( PRVarPredicate( *, *, * ), PROperPredicate( *, * ) ): { return Bigger(); } TwoElem_patternrepresentation( PRStringLiteral( a_path1, * ), PROperPredicate( a_path2, * ) ): { return equal_path( a_path1, a_path2 ); } TwoElem_patternrepresentation( PRIntLiteral( a_path1, * ), PROperPredicate( a_path2, * ) ): { return equal_path( a_path1, a_path2 ); } TwoElem_patternrepresentation( PROperPredicate( *, * ), PRVarPredicate( *, *, * ) ): { return Smaller(); } TwoElem_patternrepresentation( PRVarPredicate( a_paths1, *, * ), PRVarPredicate( a_paths2, *, * ) ): { return equal_paths( a_paths1, a_paths2 ); } TwoElem_patternrepresentation( PRStringLiteral( *, * ), PRVarPredicate( *, *, * ) ): { return Smaller(); } TwoElem_patternrepresentation( PRIntLiteral( *, * ), PRVarPredicate( *, *, * ) ): { return Smaller(); } TwoElem_patternrepresentation( PROperPredicate( a_path1, * ), PRStringLiteral( a_path2, * ) ): { return equal_path( a_path1, a_path2 ); } TwoElem_patternrepresentation( PRVarPredicate( *, *, * ), PRStringLiteral( *, * ) ): { return Bigger(); } TwoElem_patternrepresentation( PRStringLiteral( a_path1, * ), PRStringLiteral( a_path2, * ) ): { return equal_path( a_path1, a_path2 ); } TwoElem_patternrepresentation( PRIntLiteral( a_path1, * ), PRStringLiteral( a_path2, * ) ): { return equal_path( a_path1, a_path2 ); } TwoElem_patternrepresentation( PROperPredicate( a_path1, * ), PRIntLiteral( a_path2, * ) ): { return equal_path( a_path1, a_path2 ); } TwoElem_patternrepresentation( PRVarPredicate( *, *, * ), PRIntLiteral( *, * ) ): { return Bigger(); } TwoElem_patternrepresentation( PRStringLiteral( a_path1, * ), PRIntLiteral( a_path2, * ) ): { return equal_path( a_path1, a_path2 ); } TwoElem_patternrepresentation( PRIntLiteral( a_path1, * ), PRIntLiteral( a_path2, * ) ): { return equal_path( a_path1, a_path2 ); } /* when comparing bindings and wildcards, we prefer bindings */ /************** no useful TwoElem_patternrepresentation( PRBinding( a_path1, * ), PRWildcard( a_path2 ) ): { tribool t = equal_path( a_path1, a_path2 ); with( t ) { Equal(): { return Smaller(); } default: { return t; } } } TwoElem_patternrepresentation( PRWildcard( a_path1 ), PRBinding( a_path2, * ) ): { tribool t = equal_path( a_path1, a_path2 ); with( t ) { Equal(): { return Bigger(); } default: { return t; } } } **************/ TwoElem_patternrepresentation( PRDefault(), PRDefault() ): { return Equal(); } TwoElem_patternrepresentation( *, PRDefault() ): { return Smaller(); } TwoElem_patternrepresentation( PRDefault(), * ): { return Bigger(); } TwoElem_patternrepresentation( PRDefault(), PRWildcard( * ) ): { return Bigger(); } TwoElem_patternrepresentation( PRWildcard( * ), PRDefault() ): { return Smaller(); } TwoElem_patternrepresentation( PRWildcard( a_path1 ), PRWildcard( a_path2 ) ): { return equal_path( a_path1, a_path2 ); } TwoElem_patternrepresentation( *, PRWildcard( * ) ): { return Smaller(); } TwoElem_patternrepresentation( PRWildcard( * ), * ): { return Bigger(); } TwoElem_patternrepresentation( PRBinding( a_path1, * ), PRBinding( a_path2, * ) ): { return equal_path( a_path1, a_path2 ); } TwoElem_patternrepresentation( *, PRBinding( *, * ) ): { return Smaller(); } TwoElem_patternrepresentation( PRBinding( *, * ), * ): { return Bigger(); } TwoElem_patternrepresentation( PRNonLeafBinding( a_path1, *, * ), PRNonLeafBinding( a_path2, *, * ) ): { return equal_path( a_path1, a_path2 ); } TwoElem_patternrepresentation( *, PRNonLeafBinding( *, *, * ) ): { return Smaller(); } TwoElem_patternrepresentation( PRNonLeafBinding( *, *, * ), * ): { return Bigger(); } } } static tribool equal_path( a_path1, a_path2 ) path a_path1; path a_path2; { return do_equal_path( reverse_path( a_path1 ), reverse_path( a_path2 ) ); } static tribool do_equal_path( a_path1, a_path2 ) path a_path1; path a_path2; { with( TwoPath( a_path1, a_path2 ) ) { TwoPath( Nilpath(), Nilpath() ): { return Equal(); } TwoPath( Conspath( *, * ), Nilpath() ): { return Smaller(); } TwoPath( Nilpath(), Conspath( *, * ) ): { return Bigger(); } TwoPath( Conspath( i1, r_path1 ), Conspath( i2, r_path2 ) ): { if ( i1 < i2 ) { return Smaller(); } else if (i1 > i2 ) { return Bigger(); } else { return do_equal_path( r_path1, r_path2 ); } } } } static tribool equal_paths( a_paths1, a_paths2 ) paths a_paths1; paths a_paths2; { with( TwoPaths( a_paths1, a_paths2 ) ) { TwoPaths( Nilpaths(), Nilpaths() ): { return Equal(); } TwoPaths( Conspaths( *, * ), Nilpaths() ): { return Smaller(); } TwoPaths( Nilpaths(), Conspaths( *, * ) ): { return Bigger(); } TwoPaths( Conspaths( a_path1, r_paths1 ), Conspaths( a_path2, r_paths2 ) ): { with( equal_path( a_path1, a_path2 ) ) { Smaller(): { return Smaller(); } Bigger(): { return Bigger(); } Equal(): { return equal_paths( r_paths1, r_paths2 ); } } } } } kimwitu-4.6.1.orig/src/patchlvl.h0100644000176100001440000000126307076113221016231 0ustar debacleusers%{ CODE HEADER /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ %} /* This file contains the patchlevel. * $Id: patchlvl.h,v 1.62 1998/03/18 16:56:27 belinfan Rel $ * Because we use KIMWITUVERSION as symbolic RCS name, * KIMWITUVERSION is *not* allowed to contain dots: we use _ instead * very important: the version number should be the third word * on the #define line (because the makefile depends on it). * The #define KIMWITUVERSION line should be the last line that contains * the word KIMWITUVERSION in this file (because the makefile depends on it). */ %{ KC_TYPES_HEADER #define KIMWITUVERSION V4_6 %} kimwitu-4.6.1.orig/src/rk.c0100644000176100001440000052464107076113231015036 0ustar debacleusers/*LINTLIBRARY*/ /* translation of file(s) "../abs.k" "../main.k" "../parse.k" "../error.k" "../defocc.k" "../extocc.k" "../useocc.k" "../util.k" "../gen.k" "../gutil.k" "../pat.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #define KC_REWRITE #define KIMW_REWRITE /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include #include #ifdef KC_STDC # include #endif #include "k.h" #include "rk.h" char *kc_rview_names[] = { "base_rview" }; /* included stuff */ #line 2 "../main.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 49 "rk.c" /* end included stuff */ /*ARGSUSED*/ nocasestring rewrite_nocasestring #ifdef KC_USE_PROTOTYPES (nocasestring kc_p, rview kc_current_view) #else (kc_p, kc_current_view) nocasestring kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_nocasestring( kc_p, "kc_p" ); return kc_p; } /*ARGSUSED*/ casestring rewrite_casestring #ifdef KC_USE_PROTOTYPES (casestring kc_p, rview kc_current_view) #else (kc_p, kc_current_view) casestring kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_casestring( kc_p, "kc_p" ); return kc_p; } /*ARGSUSED*/ float rewrite_float #ifdef KC_USE_PROTOTYPES (float kc_p, rview kc_current_view) #else (kc_p, kc_current_view) float kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_float( kc_p, "kc_p" ); return kc_p; } /*ARGSUSED*/ int rewrite_int #ifdef KC_USE_PROTOTYPES (int kc_p, rview kc_current_view) #else (kc_p, kc_current_view) int kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_int( kc_p, "kc_p" ); return kc_p; } /*ARGSUSED*/ voidptr rewrite_voidptr #ifdef KC_USE_PROTOTYPES (voidptr kc_p, rview kc_current_view) #else (kc_p, kc_current_view) voidptr kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_voidptr( kc_p, "kc_p" ); return kc_p; } /*ARGSUSED*/ uniqID rewrite_uniqID #ifdef KC_USE_PROTOTYPES (uniqID kc_p, rview kc_current_view) #else (kc_p, kc_current_view) uniqID kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_uniqID( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Str: { casestring casestring_1 = rewrite_casestring(kc_p->u.Str.casestring_1, kc_current_view); if ((casestring_1 == kc_p->u.Str.casestring_1)) return kc_p; else return Str(casestring_1); } default: return kc_p;} } } } /*ARGSUSED*/ ID rewrite_ID #ifdef KC_USE_PROTOTYPES (ID kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ID kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ID( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Id: { uniqID uniqID_1 = rewrite_uniqID(kc_p->u.Id.uniqID_1, kc_current_view); if ((uniqID_1 == kc_p->u.Id.uniqID_1)) return kc_p; else return Id(uniqID_1); } default: return kc_p;} } } } /*ARGSUSED*/ INT rewrite_INT #ifdef KC_USE_PROTOTYPES (INT kc_p, rview kc_current_view) #else (kc_p, kc_current_view) INT kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_INT( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Int: { int int_1 = rewrite_int(kc_p->u.Int.int_1, kc_current_view); if ((int_1 == kc_p->u.Int.int_1)) return kc_p; else return Int(int_1); } default: return kc_p;} } } } /*ARGSUSED*/ STRING rewrite_STRING #ifdef KC_USE_PROTOTYPES (STRING kc_p, rview kc_current_view) #else (kc_p, kc_current_view) STRING kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_STRING( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_String: { casestring casestring_1 = rewrite_casestring(kc_p->u.String.casestring_1, kc_current_view); if ((casestring_1 == kc_p->u.String.casestring_1)) return kc_p; else return String(casestring_1); } default: return kc_p;} } } } /*ARGSUSED*/ phylumdeclarationsroot rewrite_phylumdeclarationsroot #ifdef KC_USE_PROTOTYPES (phylumdeclarationsroot kc_p, rview kc_current_view) #else (kc_p, kc_current_view) phylumdeclarationsroot kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_phylumdeclarationsroot( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_PhylumDeclarations: { phylumdeclarations phylumdeclarations_1 = rewrite_phylumdeclarations(kc_p->u.PhylumDeclarations.phylumdeclarations_1, kc_current_view); if ((phylumdeclarations_1 == kc_p->u.PhylumDeclarations.phylumdeclarations_1)) return kc_p; else return PhylumDeclarations(phylumdeclarations_1); } default: return kc_p;} } } } /*ARGSUSED*/ phylumdeclarations rewrite_phylumdeclarations #ifdef KC_USE_PROTOTYPES (phylumdeclarations kc_p, rview kc_current_view) #else (kc_p, kc_current_view) phylumdeclarations kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_phylumdeclarations( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilphylumdeclarations: { return kc_p; } case (int)sel_Consphylumdeclarations: { phylumdeclaration phylumdeclaration_1 = rewrite_phylumdeclaration(kc_p->u.Consphylumdeclarations.phylumdeclaration_1, kc_current_view); phylumdeclarations phylumdeclarations_1 = rewrite_phylumdeclarations(kc_p->u.Consphylumdeclarations.phylumdeclarations_1, kc_current_view); if ((phylumdeclaration_1 == kc_p->u.Consphylumdeclarations.phylumdeclaration_1) && (phylumdeclarations_1 == kc_p->u.Consphylumdeclarations.phylumdeclarations_1)) return kc_p; else return Consphylumdeclarations(phylumdeclaration_1, phylumdeclarations_1); } default: return kc_p;} } } } /*ARGSUSED*/ phylumnames rewrite_phylumnames #ifdef KC_USE_PROTOTYPES (phylumnames kc_p, rview kc_current_view) #else (kc_p, kc_current_view) phylumnames kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_phylumnames( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilphylumnames: { return kc_p; } case (int)sel_Consphylumnames: { ID ID_1 = rewrite_ID(kc_p->u.Consphylumnames.ID_1, kc_current_view); phylumnames phylumnames_1 = rewrite_phylumnames(kc_p->u.Consphylumnames.phylumnames_1, kc_current_view); if ((ID_1 == kc_p->u.Consphylumnames.ID_1) && (phylumnames_1 == kc_p->u.Consphylumnames.phylumnames_1)) return kc_p; else return Consphylumnames(ID_1, phylumnames_1); } default: return kc_p;} } } } /*ARGSUSED*/ phylumdeclaration rewrite_phylumdeclaration #ifdef KC_USE_PROTOTYPES (phylumdeclaration kc_p, rview kc_current_view) #else (kc_p, kc_current_view) phylumdeclaration kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_phylumdeclaration( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_PhylumDeclaration: { ID ID_1 = rewrite_ID(kc_p->u.PhylumDeclaration.ID_1, kc_current_view); storageoption storageoption_1 = rewrite_storageoption(kc_p->u.PhylumDeclaration.storageoption_1, kc_current_view); productionblock productionblock_1 = rewrite_productionblock(kc_p->u.PhylumDeclaration.productionblock_1, kc_current_view); Ccode_option Ccode_option_1 = rewrite_Ccode_option(kc_p->u.PhylumDeclaration.Ccode_option_1, kc_current_view); if ((ID_1 == kc_p->u.PhylumDeclaration.ID_1) && (storageoption_1 == kc_p->u.PhylumDeclaration.storageoption_1) && (productionblock_1 == kc_p->u.PhylumDeclaration.productionblock_1) && (Ccode_option_1 == kc_p->u.PhylumDeclaration.Ccode_option_1)) return kc_p; else return PhylumDeclaration(ID_1, storageoption_1, productionblock_1, Ccode_option_1); } default: return kc_p;} } } } /*ARGSUSED*/ storageoption rewrite_storageoption #ifdef KC_USE_PROTOTYPES (storageoption kc_p, rview kc_current_view) #else (kc_p, kc_current_view) storageoption kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_storageoption( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_NoStorageOption: { return kc_p; } case (int)sel_NegativeStorageOption: { ID ID_1 = rewrite_ID(kc_p->u.NegativeStorageOption.ID_1, kc_current_view); if ((ID_1 == kc_p->u.NegativeStorageOption.ID_1)) return kc_p; else return NegativeStorageOption(ID_1); } case (int)sel_PositiveStorageOption: { ID ID_1 = rewrite_ID(kc_p->u.PositiveStorageOption.ID_1, kc_current_view); if ((ID_1 == kc_p->u.PositiveStorageOption.ID_1)) return kc_p; else return PositiveStorageOption(ID_1); } default: return kc_p;} } } } /*ARGSUSED*/ storageclasses rewrite_storageclasses #ifdef KC_USE_PROTOTYPES (storageclasses kc_p, rview kc_current_view) #else (kc_p, kc_current_view) storageclasses kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_storageclasses( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilstorageclasses: { return kc_p; } case (int)sel_Consstorageclasses: { ID ID_1 = rewrite_ID(kc_p->u.Consstorageclasses.ID_1, kc_current_view); storageclasses storageclasses_1 = rewrite_storageclasses(kc_p->u.Consstorageclasses.storageclasses_1, kc_current_view); if ((ID_1 == kc_p->u.Consstorageclasses.ID_1) && (storageclasses_1 == kc_p->u.Consstorageclasses.storageclasses_1)) return kc_p; else return Consstorageclasses(ID_1, storageclasses_1); } default: return kc_p;} } } } /*ARGSUSED*/ productionblock rewrite_productionblock #ifdef KC_USE_PROTOTYPES (productionblock kc_p, rview kc_current_view) #else (kc_p, kc_current_view) productionblock kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_productionblock( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Emptyproductionblock: { return kc_p; } case (int)sel_ListAlternatives: { alternatives alternatives_1 = rewrite_alternatives(kc_p->u.ListAlternatives.alternatives_1, kc_current_view); ID ID_1 = rewrite_ID(kc_p->u.ListAlternatives.ID_1, kc_current_view); if ((alternatives_1 == kc_p->u.ListAlternatives.alternatives_1) && (ID_1 == kc_p->u.ListAlternatives.ID_1)) return kc_p; else return ListAlternatives(alternatives_1, ID_1); } case (int)sel_NonlistAlternatives: { alternatives alternatives_1 = rewrite_alternatives(kc_p->u.NonlistAlternatives.alternatives_1, kc_current_view); if ((alternatives_1 == kc_p->u.NonlistAlternatives.alternatives_1)) return kc_p; else return NonlistAlternatives(alternatives_1); } case (int)sel_PredefinedAlternatives: { alternatives alternatives_1 = rewrite_alternatives(kc_p->u.PredefinedAlternatives.alternatives_1, kc_current_view); if ((alternatives_1 == kc_p->u.PredefinedAlternatives.alternatives_1)) return kc_p; else return PredefinedAlternatives(alternatives_1); } default: return kc_p;} } } } /*ARGSUSED*/ alternatives rewrite_alternatives #ifdef KC_USE_PROTOTYPES (alternatives kc_p, rview kc_current_view) #else (kc_p, kc_current_view) alternatives kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_alternatives( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilalternatives: { return kc_p; } case (int)sel_Consalternatives: { alternative alternative_1 = rewrite_alternative(kc_p->u.Consalternatives.alternative_1, kc_current_view); alternatives alternatives_1 = rewrite_alternatives(kc_p->u.Consalternatives.alternatives_1, kc_current_view); if ((alternative_1 == kc_p->u.Consalternatives.alternative_1) && (alternatives_1 == kc_p->u.Consalternatives.alternatives_1)) return kc_p; else return Consalternatives(alternative_1, alternatives_1); } default: return kc_p;} } } } /*ARGSUSED*/ alternative rewrite_alternative #ifdef KC_USE_PROTOTYPES (alternative kc_p, rview kc_current_view) #else (kc_p, kc_current_view) alternative kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_alternative( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Alternative: { ID ID_1 = rewrite_ID(kc_p->u.Alternative.ID_1, kc_current_view); arguments arguments_1 = rewrite_arguments(kc_p->u.Alternative.arguments_1, kc_current_view); if ((ID_1 == kc_p->u.Alternative.ID_1) && (arguments_1 == kc_p->u.Alternative.arguments_1)) return kc_p; else return Alternative(ID_1, arguments_1); } default: return kc_p;} } } } /*ARGSUSED*/ arguments rewrite_arguments #ifdef KC_USE_PROTOTYPES (arguments kc_p, rview kc_current_view) #else (kc_p, kc_current_view) arguments kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_arguments( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilarguments: { return kc_p; } case (int)sel_Consarguments: { ID ID_1 = rewrite_ID(kc_p->u.Consarguments.ID_1, kc_current_view); arguments arguments_1 = rewrite_arguments(kc_p->u.Consarguments.arguments_1, kc_current_view); if ((ID_1 == kc_p->u.Consarguments.ID_1) && (arguments_1 == kc_p->u.Consarguments.arguments_1)) return kc_p; else return Consarguments(ID_1, arguments_1); } default: return kc_p;} } } } /*ARGSUSED*/ argument rewrite_argument #ifdef KC_USE_PROTOTYPES (argument kc_p, rview kc_current_view) #else (kc_p, kc_current_view) argument kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_argument( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Argument: { ID ID_1 = rewrite_ID(kc_p->u.Argument.ID_1, kc_current_view); int int_1 = rewrite_int(kc_p->u.Argument.int_1, kc_current_view); if ((ID_1 == kc_p->u.Argument.ID_1) && (int_1 == kc_p->u.Argument.int_1)) return kc_p; else return Argument(ID_1, int_1); } default: return kc_p;} } } } /*ARGSUSED*/ Ccode_option rewrite_Ccode_option #ifdef KC_USE_PROTOTYPES (Ccode_option kc_p, rview kc_current_view) #else (kc_p, kc_current_view) Ccode_option kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_Ccode_option( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_CcodeOption: { attributes attributes_1 = rewrite_attributes(kc_p->u.CcodeOption.attributes_1, kc_current_view); Ctexts Ctexts_1 = rewrite_Ctexts(kc_p->u.CcodeOption.Ctexts_1, kc_current_view); if ((attributes_1 == kc_p->u.CcodeOption.attributes_1) && (Ctexts_1 == kc_p->u.CcodeOption.Ctexts_1)) return kc_p; else return CcodeOption(attributes_1, Ctexts_1); } default: return kc_p;} } } } /*ARGSUSED*/ attributes rewrite_attributes #ifdef KC_USE_PROTOTYPES (attributes kc_p, rview kc_current_view) #else (kc_p, kc_current_view) attributes kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_attributes( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilattributes: { return kc_p; } case (int)sel_Consattributes: { attribute attribute_1 = rewrite_attribute(kc_p->u.Consattributes.attribute_1, kc_current_view); attributes attributes_1 = rewrite_attributes(kc_p->u.Consattributes.attributes_1, kc_current_view); if ((attribute_1 == kc_p->u.Consattributes.attribute_1) && (attributes_1 == kc_p->u.Consattributes.attributes_1)) return kc_p; else return Consattributes(attribute_1, attributes_1); } default: return kc_p;} } } } /*ARGSUSED*/ attribute rewrite_attribute #ifdef KC_USE_PROTOTYPES (attribute kc_p, rview kc_current_view) #else (kc_p, kc_current_view) attribute kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_attribute( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Attribute: { ID ID_1 = rewrite_ID(kc_p->u.Attribute.ID_1, kc_current_view); ID ID_2 = rewrite_ID(kc_p->u.Attribute.ID_2, kc_current_view); attribute_initialisation_option attribute_initialisation_option_1 = rewrite_attribute_initialisation_option(kc_p->u.Attribute.attribute_initialisation_option_1, kc_current_view); if ((ID_1 == kc_p->u.Attribute.ID_1) && (ID_2 == kc_p->u.Attribute.ID_2) && (attribute_initialisation_option_1 == kc_p->u.Attribute.attribute_initialisation_option_1)) return kc_p; else return Attribute(ID_1, ID_2, attribute_initialisation_option_1); } default: return kc_p;} } } } /*ARGSUSED*/ attribute_initialisation_option rewrite_attribute_initialisation_option #ifdef KC_USE_PROTOTYPES (attribute_initialisation_option kc_p, rview kc_current_view) #else (kc_p, kc_current_view) attribute_initialisation_option kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_attribute_initialisation_option( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Noattribute_initialisation: { return kc_p; } case (int)sel_Yesattribute_initialisation: { Cexpression Cexpression_1 = rewrite_Cexpression(kc_p->u.Yesattribute_initialisation.Cexpression_1, kc_current_view); if ((Cexpression_1 == kc_p->u.Yesattribute_initialisation.Cexpression_1)) return kc_p; else return Yesattribute_initialisation(Cexpression_1); } default: return kc_p;} } } } /*ARGSUSED*/ Cexpression rewrite_Cexpression #ifdef KC_USE_PROTOTYPES (Cexpression kc_p, rview kc_current_view) #else (kc_p, kc_current_view) Cexpression kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_Cexpression( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_NilCexpression: { return kc_p; } case (int)sel_ConsCexpression: { Cexpression_elem Cexpression_elem_1 = rewrite_Cexpression_elem(kc_p->u.ConsCexpression.Cexpression_elem_1, kc_current_view); Cexpression Cexpression_1 = rewrite_Cexpression(kc_p->u.ConsCexpression.Cexpression_1, kc_current_view); if ((Cexpression_elem_1 == kc_p->u.ConsCexpression.Cexpression_elem_1) && (Cexpression_1 == kc_p->u.ConsCexpression.Cexpression_1)) return kc_p; else return ConsCexpression(Cexpression_elem_1, Cexpression_1); } default: return kc_p;} } } } /*ARGSUSED*/ Cexpression_elem rewrite_Cexpression_elem #ifdef KC_USE_PROTOTYPES (Cexpression_elem kc_p, rview kc_current_view) #else (kc_p, kc_current_view) Cexpression_elem kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_Cexpression_elem( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_CExpressionPart: { casestring casestring_1 = rewrite_casestring(kc_p->u.CExpressionPart.casestring_1, kc_current_view); if ((casestring_1 == kc_p->u.CExpressionPart.casestring_1)) return kc_p; else return CExpressionPart(casestring_1); } case (int)sel_CExpressionDollarvar: { INT INT_1 = rewrite_INT(kc_p->u.CExpressionDollarvar.INT_1, kc_current_view); if ((INT_1 == kc_p->u.CExpressionDollarvar.INT_1)) return kc_p; else return CExpressionDollarvar(INT_1); } case (int)sel_CExpressionNl: { int int_1 = rewrite_int(kc_p->u.CExpressionNl.int_1, kc_current_view); if ((int_1 == kc_p->u.CExpressionNl.int_1)) return kc_p; else return CExpressionNl(int_1); } case (int)sel_CExpressionDQ: { CexpressionDQ CexpressionDQ_1 = rewrite_CexpressionDQ(kc_p->u.CExpressionDQ.CexpressionDQ_1, kc_current_view); if ((CexpressionDQ_1 == kc_p->u.CExpressionDQ.CexpressionDQ_1)) return kc_p; else return CExpressionDQ(CexpressionDQ_1); } case (int)sel_CExpressionSQ: { CexpressionSQ CexpressionSQ_1 = rewrite_CexpressionSQ(kc_p->u.CExpressionSQ.CexpressionSQ_1, kc_current_view); if ((CexpressionSQ_1 == kc_p->u.CExpressionSQ.CexpressionSQ_1)) return kc_p; else return CExpressionSQ(CexpressionSQ_1); } case (int)sel_CExpressionPack: { Cexpression Cexpression_1 = rewrite_Cexpression(kc_p->u.CExpressionPack.Cexpression_1, kc_current_view); if ((Cexpression_1 == kc_p->u.CExpressionPack.Cexpression_1)) return kc_p; else return CExpressionPack(Cexpression_1); } case (int)sel_CExpressionArray: { Cexpression Cexpression_1 = rewrite_Cexpression(kc_p->u.CExpressionArray.Cexpression_1, kc_current_view); if ((Cexpression_1 == kc_p->u.CExpressionArray.Cexpression_1)) return kc_p; else return CExpressionArray(Cexpression_1); } default: return kc_p;} } } } /*ARGSUSED*/ CexpressionDQ rewrite_CexpressionDQ #ifdef KC_USE_PROTOTYPES (CexpressionDQ kc_p, rview kc_current_view) #else (kc_p, kc_current_view) CexpressionDQ kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_CexpressionDQ( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_NilCexpressionDQ: { return kc_p; } case (int)sel_ConsCexpressionDQ: { CexpressionDQ_elem CexpressionDQ_elem_1 = rewrite_CexpressionDQ_elem(kc_p->u.ConsCexpressionDQ.CexpressionDQ_elem_1, kc_current_view); CexpressionDQ CexpressionDQ_1 = rewrite_CexpressionDQ(kc_p->u.ConsCexpressionDQ.CexpressionDQ_1, kc_current_view); if ((CexpressionDQ_elem_1 == kc_p->u.ConsCexpressionDQ.CexpressionDQ_elem_1) && (CexpressionDQ_1 == kc_p->u.ConsCexpressionDQ.CexpressionDQ_1)) return kc_p; else return ConsCexpressionDQ(CexpressionDQ_elem_1, CexpressionDQ_1); } default: return kc_p;} } } } /*ARGSUSED*/ CexpressionDQ_elem rewrite_CexpressionDQ_elem #ifdef KC_USE_PROTOTYPES (CexpressionDQ_elem kc_p, rview kc_current_view) #else (kc_p, kc_current_view) CexpressionDQ_elem kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_CexpressionDQ_elem( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_CExpressionDQPart: { casestring casestring_1 = rewrite_casestring(kc_p->u.CExpressionDQPart.casestring_1, kc_current_view); if ((casestring_1 == kc_p->u.CExpressionDQPart.casestring_1)) return kc_p; else return CExpressionDQPart(casestring_1); } case (int)sel_CExpressionDQNl: { int int_1 = rewrite_int(kc_p->u.CExpressionDQNl.int_1, kc_current_view); if ((int_1 == kc_p->u.CExpressionDQNl.int_1)) return kc_p; else return CExpressionDQNl(int_1); } default: return kc_p;} } } } /*ARGSUSED*/ CexpressionSQ rewrite_CexpressionSQ #ifdef KC_USE_PROTOTYPES (CexpressionSQ kc_p, rview kc_current_view) #else (kc_p, kc_current_view) CexpressionSQ kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_CexpressionSQ( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_NilCexpressionSQ: { return kc_p; } case (int)sel_ConsCexpressionSQ: { CexpressionSQ_elem CexpressionSQ_elem_1 = rewrite_CexpressionSQ_elem(kc_p->u.ConsCexpressionSQ.CexpressionSQ_elem_1, kc_current_view); CexpressionSQ CexpressionSQ_1 = rewrite_CexpressionSQ(kc_p->u.ConsCexpressionSQ.CexpressionSQ_1, kc_current_view); if ((CexpressionSQ_elem_1 == kc_p->u.ConsCexpressionSQ.CexpressionSQ_elem_1) && (CexpressionSQ_1 == kc_p->u.ConsCexpressionSQ.CexpressionSQ_1)) return kc_p; else return ConsCexpressionSQ(CexpressionSQ_elem_1, CexpressionSQ_1); } default: return kc_p;} } } } /*ARGSUSED*/ CexpressionSQ_elem rewrite_CexpressionSQ_elem #ifdef KC_USE_PROTOTYPES (CexpressionSQ_elem kc_p, rview kc_current_view) #else (kc_p, kc_current_view) CexpressionSQ_elem kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_CexpressionSQ_elem( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_CExpressionSQPart: { casestring casestring_1 = rewrite_casestring(kc_p->u.CExpressionSQPart.casestring_1, kc_current_view); if ((casestring_1 == kc_p->u.CExpressionSQPart.casestring_1)) return kc_p; else return CExpressionSQPart(casestring_1); } case (int)sel_CExpressionSQNl: { int int_1 = rewrite_int(kc_p->u.CExpressionSQNl.int_1, kc_current_view); if ((int_1 == kc_p->u.CExpressionSQNl.int_1)) return kc_p; else return CExpressionSQNl(int_1); } default: return kc_p;} } } } /*ARGSUSED*/ idCexpressions rewrite_idCexpressions #ifdef KC_USE_PROTOTYPES (idCexpressions kc_p, rview kc_current_view) #else (kc_p, kc_current_view) idCexpressions kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_idCexpressions( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_NilidCexpressions: { return kc_p; } case (int)sel_ConsidCexpressions: { idCexpression idCexpression_1 = rewrite_idCexpression(kc_p->u.ConsidCexpressions.idCexpression_1, kc_current_view); idCexpressions idCexpressions_1 = rewrite_idCexpressions(kc_p->u.ConsidCexpressions.idCexpressions_1, kc_current_view); if ((idCexpression_1 == kc_p->u.ConsidCexpressions.idCexpression_1) && (idCexpressions_1 == kc_p->u.ConsidCexpressions.idCexpressions_1)) return kc_p; else return ConsidCexpressions(idCexpression_1, idCexpressions_1); } default: return kc_p;} } } } /*ARGSUSED*/ idCexpression rewrite_idCexpression #ifdef KC_USE_PROTOTYPES (idCexpression kc_p, rview kc_current_view) #else (kc_p, kc_current_view) idCexpression kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_idCexpression( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_IdCexpression: { ID ID_1 = rewrite_ID(kc_p->u.IdCexpression.ID_1, kc_current_view); Cexpression Cexpression_1 = rewrite_Cexpression(kc_p->u.IdCexpression.Cexpression_1, kc_current_view); if ((ID_1 == kc_p->u.IdCexpression.ID_1) && (Cexpression_1 == kc_p->u.IdCexpression.Cexpression_1)) return kc_p; else return IdCexpression(ID_1, Cexpression_1); } default: return kc_p;} } } } /*ARGSUSED*/ Ctexts rewrite_Ctexts #ifdef KC_USE_PROTOTYPES (Ctexts kc_p, rview kc_current_view) #else (kc_p, kc_current_view) Ctexts kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_Ctexts( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_NilCtexts: { return kc_p; } case (int)sel_ConsCtexts: { Ctext Ctext_1 = rewrite_Ctext(kc_p->u.ConsCtexts.Ctext_1, kc_current_view); Ctexts Ctexts_1 = rewrite_Ctexts(kc_p->u.ConsCtexts.Ctexts_1, kc_current_view); if ((Ctext_1 == kc_p->u.ConsCtexts.Ctext_1) && (Ctexts_1 == kc_p->u.ConsCtexts.Ctexts_1)) return kc_p; else return ConsCtexts(Ctext_1, Ctexts_1); } default: return kc_p;} } } } /*ARGSUSED*/ includefiles rewrite_includefiles #ifdef KC_USE_PROTOTYPES (includefiles kc_p, rview kc_current_view) #else (kc_p, kc_current_view) includefiles kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_includefiles( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilincludefiles: { return kc_p; } case (int)sel_Consincludefiles: { includefile includefile_1 = rewrite_includefile(kc_p->u.Consincludefiles.includefile_1, kc_current_view); includefiles includefiles_1 = rewrite_includefiles(kc_p->u.Consincludefiles.includefiles_1, kc_current_view); if ((includefile_1 == kc_p->u.Consincludefiles.includefile_1) && (includefiles_1 == kc_p->u.Consincludefiles.includefiles_1)) return kc_p; else return Consincludefiles(includefile_1, includefiles_1); } default: return kc_p;} } } } /*ARGSUSED*/ includefile rewrite_includefile #ifdef KC_USE_PROTOTYPES (includefile kc_p, rview kc_current_view) #else (kc_p, kc_current_view) includefile kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_includefile( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_IncludeFile: { casestring casestring_1 = rewrite_casestring(kc_p->u.IncludeFile.casestring_1, kc_current_view); if ((casestring_1 == kc_p->u.IncludeFile.casestring_1)) return kc_p; else return IncludeFile(casestring_1); } default: return kc_p;} } } } /*ARGSUSED*/ includedeclarations rewrite_includedeclarations #ifdef KC_USE_PROTOTYPES (includedeclarations kc_p, rview kc_current_view) #else (kc_p, kc_current_view) includedeclarations kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_includedeclarations( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilincludedeclarations: { return kc_p; } case (int)sel_Consincludedeclarations: { includedeclaration includedeclaration_1 = rewrite_includedeclaration(kc_p->u.Consincludedeclarations.includedeclaration_1, kc_current_view); includedeclarations includedeclarations_1 = rewrite_includedeclarations(kc_p->u.Consincludedeclarations.includedeclarations_1, kc_current_view); if ((includedeclaration_1 == kc_p->u.Consincludedeclarations.includedeclaration_1) && (includedeclarations_1 == kc_p->u.Consincludedeclarations.includedeclarations_1)) return kc_p; else return Consincludedeclarations(includedeclaration_1, includedeclarations_1); } default: return kc_p;} } } } /*ARGSUSED*/ includedeclaration rewrite_includedeclaration #ifdef KC_USE_PROTOTYPES (includedeclaration kc_p, rview kc_current_view) #else (kc_p, kc_current_view) includedeclaration kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_includedeclaration( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_IncludeDeclaration: { includes includes_1 = rewrite_includes(kc_p->u.IncludeDeclaration.includes_1, kc_current_view); if ((includes_1 == kc_p->u.IncludeDeclaration.includes_1)) return kc_p; else return IncludeDeclaration(includes_1); } default: return kc_p;} } } } /*ARGSUSED*/ includes rewrite_includes #ifdef KC_USE_PROTOTYPES (includes kc_p, rview kc_current_view) #else (kc_p, kc_current_view) includes kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_includes( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilincludes: { return kc_p; } case (int)sel_Consincludes: { include include_1 = rewrite_include(kc_p->u.Consincludes.include_1, kc_current_view); includes includes_1 = rewrite_includes(kc_p->u.Consincludes.includes_1, kc_current_view); if ((include_1 == kc_p->u.Consincludes.include_1) && (includes_1 == kc_p->u.Consincludes.includes_1)) return kc_p; else return Consincludes(include_1, includes_1); } default: return kc_p;} } } } /*ARGSUSED*/ include rewrite_include #ifdef KC_USE_PROTOTYPES (include kc_p, rview kc_current_view) #else (kc_p, kc_current_view) include kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_include( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Include: { casestring casestring_1 = rewrite_casestring(kc_p->u.Include.casestring_1, kc_current_view); if ((casestring_1 == kc_p->u.Include.casestring_1)) return kc_p; else return Include(casestring_1); } case (int)sel_IncludeNl: { int int_1 = rewrite_int(kc_p->u.IncludeNl.int_1, kc_current_view); if ((int_1 == kc_p->u.IncludeNl.int_1)) return kc_p; else return IncludeNl(int_1); } default: return kc_p;} } } } /*ARGSUSED*/ rwdeclarations rewrite_rwdeclarations #ifdef KC_USE_PROTOTYPES (rwdeclarations kc_p, rview kc_current_view) #else (kc_p, kc_current_view) rwdeclarations kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_rwdeclarations( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilrwdeclarations: { return kc_p; } case (int)sel_Consrwdeclarations: { rwdeclaration rwdeclaration_1 = rewrite_rwdeclaration(kc_p->u.Consrwdeclarations.rwdeclaration_1, kc_current_view); rwdeclarations rwdeclarations_1 = rewrite_rwdeclarations(kc_p->u.Consrwdeclarations.rwdeclarations_1, kc_current_view); if ((rwdeclaration_1 == kc_p->u.Consrwdeclarations.rwdeclaration_1) && (rwdeclarations_1 == kc_p->u.Consrwdeclarations.rwdeclarations_1)) return kc_p; else return Consrwdeclarations(rwdeclaration_1, rwdeclarations_1); } default: return kc_p;} } } } /*ARGSUSED*/ rwdeclaration rewrite_rwdeclaration #ifdef KC_USE_PROTOTYPES (rwdeclaration kc_p, rview kc_current_view) #else (kc_p, kc_current_view) rwdeclaration kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_rwdeclaration( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_RwDeclaration: { outmostpatterns outmostpatterns_1 = rewrite_outmostpatterns(kc_p->u.RwDeclaration.outmostpatterns_1, kc_current_view); rewriteclauses rewriteclauses_1 = rewrite_rewriteclauses(kc_p->u.RwDeclaration.rewriteclauses_1, kc_current_view); if ((outmostpatterns_1 == kc_p->u.RwDeclaration.outmostpatterns_1) && (rewriteclauses_1 == kc_p->u.RwDeclaration.rewriteclauses_1)) return kc_p; else return RwDeclaration(outmostpatterns_1, rewriteclauses_1); } default: return kc_p;} } } } /*ARGSUSED*/ rewriteclauses rewrite_rewriteclauses #ifdef KC_USE_PROTOTYPES (rewriteclauses kc_p, rview kc_current_view) #else (kc_p, kc_current_view) rewriteclauses kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_rewriteclauses( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilrewriteclauses: { return kc_p; } case (int)sel_Consrewriteclauses: { rewriteclause rewriteclause_1 = rewrite_rewriteclause(kc_p->u.Consrewriteclauses.rewriteclause_1, kc_current_view); rewriteclauses rewriteclauses_1 = rewrite_rewriteclauses(kc_p->u.Consrewriteclauses.rewriteclauses_1, kc_current_view); if ((rewriteclause_1 == kc_p->u.Consrewriteclauses.rewriteclause_1) && (rewriteclauses_1 == kc_p->u.Consrewriteclauses.rewriteclauses_1)) return kc_p; else return Consrewriteclauses(rewriteclause_1, rewriteclauses_1); } default: return kc_p;} } } } /*ARGSUSED*/ rewriteclause rewrite_rewriteclause #ifdef KC_USE_PROTOTYPES (rewriteclause kc_p, rview kc_current_view) #else (kc_p, kc_current_view) rewriteclause kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_rewriteclause( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_RewriteClause: { viewnames viewnames_1 = rewrite_viewnames(kc_p->u.RewriteClause.viewnames_1, kc_current_view); term term_1 = rewrite_term(kc_p->u.RewriteClause.term_1, kc_current_view); if ((viewnames_1 == kc_p->u.RewriteClause.viewnames_1) && (term_1 == kc_p->u.RewriteClause.term_1)) return kc_p; else return RewriteClause(viewnames_1, term_1); } default: return kc_p;} } } } /*ARGSUSED*/ patternchains rewrite_patternchains #ifdef KC_USE_PROTOTYPES (patternchains kc_p, rview kc_current_view) #else (kc_p, kc_current_view) patternchains kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_patternchains( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilpatternchains: { return kc_p; } case (int)sel_Conspatternchains: { patternchain patternchain_1 = rewrite_patternchain(kc_p->u.Conspatternchains.patternchain_1, kc_current_view); patternchains patternchains_1 = rewrite_patternchains(kc_p->u.Conspatternchains.patternchains_1, kc_current_view); if ((patternchain_1->prod_sel == sel_Conspatternchain) && (patternchain_1->u.Conspatternchain.patternchainitem_1->prod_sel == sel_PatternchainitemGroup) && (patternchain_1->u.Conspatternchain.patternchain_1->prod_sel == sel_Nilpatternchain) && (patternchains_1->prod_sel == sel_Nilpatternchains)) { #line 342 "../util.k" patternchains P_pcs = patternchain_1->u.Conspatternchain.patternchainitem_1->u.PatternchainitemGroup.patternchains_1; #line 1255 "rk.c" patternchains kc_result = P_pcs; return (kc_result == kc_p) ? kc_p : rewrite_patternchains( kc_result, kc_current_view ); } else if ((patternchain_1->prod_sel == sel_Conspatternchain) && (patternchain_1->u.Conspatternchain.patternchainitem_1->prod_sel == sel_PatternchainitemGroup) && (patternchain_1->u.Conspatternchain.patternchain_1->prod_sel == sel_Nilpatternchain) && (patternchains_1->prod_sel == sel_Conspatternchains)) { #line 353 "../util.k" patternchains P_pcs = patternchain_1->u.Conspatternchain.patternchainitem_1->u.PatternchainitemGroup.patternchains_1; #line 356 "../util.k" patternchains Q_pcs = patternchains_1; #line 1265 "rk.c" patternchains kc_result = concat_patternchains(P_pcs, Q_pcs); return (kc_result == kc_p) ? kc_p : rewrite_patternchains( kc_result, kc_current_view ); } else if ((patternchain_1 == kc_p->u.Conspatternchains.patternchain_1) && (patternchains_1 == kc_p->u.Conspatternchains.patternchains_1)) return kc_p; else return Conspatternchains(patternchain_1, patternchains_1); } default: return kc_p;} } } } /*ARGSUSED*/ patternchain rewrite_patternchain #ifdef KC_USE_PROTOTYPES (patternchain kc_p, rview kc_current_view) #else (kc_p, kc_current_view) patternchain kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_patternchain( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilpatternchain: { return kc_p; } case (int)sel_Conspatternchain: { patternchainitem patternchainitem_1 = rewrite_patternchainitem(kc_p->u.Conspatternchain.patternchainitem_1, kc_current_view); patternchain patternchain_1 = rewrite_patternchain(kc_p->u.Conspatternchain.patternchain_1, kc_current_view); if ((patternchainitem_1->prod_sel == sel_PatternchainitemGroup) && (patternchainitem_1->u.PatternchainitemGroup.patternchains_1->prod_sel == sel_Conspatternchains) && (patternchainitem_1->u.PatternchainitemGroup.patternchains_1->u.Conspatternchains.patternchains_1->prod_sel == sel_Conspatternchains) && (patternchain_1->prod_sel == sel_Conspatternchain)) { #line 289 "../util.k" patternchain h_pc = patternchainitem_1->u.PatternchainitemGroup.patternchains_1->u.Conspatternchains.patternchain_1; #line 289 "../util.k" patternchains T_pcs = patternchainitem_1->u.PatternchainitemGroup.patternchains_1->u.Conspatternchains.patternchains_1; #line 291 "../util.k" patternchain Y_pc = patternchain_1; #line 1306 "rk.c" patternchain kc_result = Conspatternchain(PatternchainitemGroup(Conspatternchains(concat_patternchain(h_pc, Y_pc), Conspatternchains(Conspatternchain(PatternchainitemGroup(T_pcs), Y_pc), Nilpatternchains()))), Nilpatternchain()); return (kc_result == kc_p) ? kc_p : rewrite_patternchain( kc_result, kc_current_view ); } else if ((patternchainitem_1->prod_sel == sel_PatternchainitemGroup) && (patternchainitem_1->u.PatternchainitemGroup.patternchains_1->prod_sel == sel_Conspatternchains) && (patternchainitem_1->u.PatternchainitemGroup.patternchains_1->u.Conspatternchains.patternchains_1->prod_sel == sel_Nilpatternchains) && (patternchain_1->prod_sel == sel_Conspatternchain)) { #line 379 "../util.k" patternchain P_pc = patternchainitem_1->u.PatternchainitemGroup.patternchains_1->u.Conspatternchains.patternchain_1; #line 382 "../util.k" patternchain Q_pc = patternchain_1; #line 1316 "rk.c" patternchain kc_result = concat_patternchain(P_pc, Q_pc); return (kc_result == kc_p) ? kc_p : rewrite_patternchain( kc_result, kc_current_view ); } else if ((patternchain_1->prod_sel == sel_Conspatternchain) && (patternchain_1->u.Conspatternchain.patternchainitem_1->prod_sel == sel_PatternchainitemGroup) && (patternchain_1->u.Conspatternchain.patternchainitem_1->u.PatternchainitemGroup.patternchains_1->prod_sel == sel_Conspatternchains) && (patternchain_1->u.Conspatternchain.patternchainitem_1->u.PatternchainitemGroup.patternchains_1->u.Conspatternchains.patternchains_1->prod_sel == sel_Conspatternchains) && (patternchain_1->u.Conspatternchain.patternchain_1->prod_sel == sel_Nilpatternchain)) { #line 307 "../util.k" patternchainitem p = patternchainitem_1; #line 310 "../util.k" patternchain h_pc = patternchain_1->u.Conspatternchain.patternchainitem_1->u.PatternchainitemGroup.patternchains_1->u.Conspatternchains.patternchain_1; #line 310 "../util.k" patternchains T_pcs = patternchain_1->u.Conspatternchain.patternchainitem_1->u.PatternchainitemGroup.patternchains_1->u.Conspatternchains.patternchains_1; #line 1328 "rk.c" patternchain kc_result = Conspatternchain(PatternchainitemGroup(Conspatternchains(Conspatternchain(p, h_pc), Conspatternchains(Conspatternchain(p, Conspatternchain(PatternchainitemGroup(T_pcs), Nilpatternchain())), Nilpatternchains()))), Nilpatternchain()); return (kc_result == kc_p) ? kc_p : rewrite_patternchain( kc_result, kc_current_view ); } else if ((patternchain_1->prod_sel == sel_Conspatternchain) && (patternchain_1->u.Conspatternchain.patternchainitem_1->prod_sel == sel_PatternchainitemGroup) && (patternchain_1->u.Conspatternchain.patternchainitem_1->u.PatternchainitemGroup.patternchains_1->prod_sel == sel_Conspatternchains) && (patternchain_1->u.Conspatternchain.patternchainitem_1->u.PatternchainitemGroup.patternchains_1->u.Conspatternchains.patternchains_1->prod_sel == sel_Nilpatternchains) && (patternchain_1->u.Conspatternchain.patternchain_1->prod_sel == sel_Nilpatternchain)) { #line 363 "../util.k" patternchainitem p = patternchainitem_1; #line 367 "../util.k" patternchain P_pc = patternchain_1->u.Conspatternchain.patternchainitem_1->u.PatternchainitemGroup.patternchains_1->u.Conspatternchains.patternchain_1; #line 1338 "rk.c" patternchain kc_result = Conspatternchain(p, P_pc); return (kc_result == kc_p) ? kc_p : rewrite_patternchain( kc_result, kc_current_view ); } else if ((patternchainitem_1 == kc_p->u.Conspatternchain.patternchainitem_1) && (patternchain_1 == kc_p->u.Conspatternchain.patternchain_1)) return kc_p; else return Conspatternchain(patternchainitem_1, patternchain_1); } default: return kc_p;} } } } /*ARGSUSED*/ outmostpatterns rewrite_outmostpatterns #ifdef KC_USE_PROTOTYPES (outmostpatterns kc_p, rview kc_current_view) #else (kc_p, kc_current_view) outmostpatterns kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_outmostpatterns( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Niloutmostpatterns: { return kc_p; } case (int)sel_Consoutmostpatterns: { outmostpattern outmostpattern_1 = rewrite_outmostpattern(kc_p->u.Consoutmostpatterns.outmostpattern_1, kc_current_view); outmostpatterns outmostpatterns_1 = rewrite_outmostpatterns(kc_p->u.Consoutmostpatterns.outmostpatterns_1, kc_current_view); if ((outmostpattern_1 == kc_p->u.Consoutmostpatterns.outmostpattern_1) && (outmostpatterns_1 == kc_p->u.Consoutmostpatterns.outmostpatterns_1)) return kc_p; else return Consoutmostpatterns(outmostpattern_1, outmostpatterns_1); } default: return kc_p;} } } } /*ARGSUSED*/ patternchainitem rewrite_patternchainitem #ifdef KC_USE_PROTOTYPES (patternchainitem kc_p, rview kc_current_view) #else (kc_p, kc_current_view) patternchainitem kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_patternchainitem( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_PatternchainitemOutmost: { outmostpattern outmostpattern_1 = rewrite_outmostpattern(kc_p->u.PatternchainitemOutmost.outmostpattern_1, kc_current_view); if ((outmostpattern_1 == kc_p->u.PatternchainitemOutmost.outmostpattern_1)) return kc_p; else return PatternchainitemOutmost(outmostpattern_1); } case (int)sel_PatternchainitemGroup: { patternchains patternchains_1 = rewrite_patternchains(kc_p->u.PatternchainitemGroup.patternchains_1, kc_current_view); if ((patternchains_1->prod_sel == sel_Conspatternchains) && (patternchains_1->u.Conspatternchains.patternchain_1->prod_sel == sel_Conspatternchain) && (patternchains_1->u.Conspatternchains.patternchain_1->u.Conspatternchain.patternchain_1->prod_sel == sel_Nilpatternchain) && (patternchains_1->u.Conspatternchains.patternchains_1->prod_sel == sel_Nilpatternchains)) { #line 333 "../util.k" patternchainitem h_p = patternchains_1->u.Conspatternchains.patternchain_1->u.Conspatternchain.patternchainitem_1; #line 1407 "rk.c" patternchainitem kc_result = h_p; return (kc_result == kc_p) ? kc_p : rewrite_patternchainitem( kc_result, kc_current_view ); } else if ((patternchains_1 == kc_p->u.PatternchainitemGroup.patternchains_1)) return kc_p; else return PatternchainitemGroup(patternchains_1); } case (int)sel_PatternchainitemDollarid: { ID ID_1 = rewrite_ID(kc_p->u.PatternchainitemDollarid.ID_1, kc_current_view); if ((ID_1 == kc_p->u.PatternchainitemDollarid.ID_1)) return kc_p; else return PatternchainitemDollarid(ID_1); } default: return kc_p;} } } } /*ARGSUSED*/ outmostpattern rewrite_outmostpattern #ifdef KC_USE_PROTOTYPES (outmostpattern kc_p, rview kc_current_view) #else (kc_p, kc_current_view) outmostpattern kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_outmostpattern( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_OPOperatorWildcard: { ID ID_1 = rewrite_ID(kc_p->u.OPOperatorWildcard.ID_1, kc_current_view); if ((ID_1 == kc_p->u.OPOperatorWildcard.ID_1)) return kc_p; else return OPOperatorWildcard(ID_1); } case (int)sel_OPOperator: { ID ID_1 = rewrite_ID(kc_p->u.OPOperator.ID_1, kc_current_view); patterns patterns_1 = rewrite_patterns(kc_p->u.OPOperator.patterns_1, kc_current_view); if ((ID_1 == kc_p->u.OPOperator.ID_1) && (patterns_1 == kc_p->u.OPOperator.patterns_1)) return kc_p; else return OPOperator(ID_1, patterns_1); } case (int)sel_OPNonLeafVariable: { ID ID_1 = rewrite_ID(kc_p->u.OPNonLeafVariable.ID_1, kc_current_view); outmostpattern outmostpattern_1 = rewrite_outmostpattern(kc_p->u.OPNonLeafVariable.outmostpattern_1, kc_current_view); if ((ID_1 == kc_p->u.OPNonLeafVariable.ID_1) && (outmostpattern_1 == kc_p->u.OPNonLeafVariable.outmostpattern_1)) return kc_p; else return OPNonLeafVariable(ID_1, outmostpattern_1); } case (int)sel_OPWildcard: { return kc_p; } case (int)sel_OPDefault: { return kc_p; } default: return kc_p;} } } } /*ARGSUSED*/ pattern rewrite_pattern #ifdef KC_USE_PROTOTYPES (pattern kc_p, rview kc_current_view) #else (kc_p, kc_current_view) pattern kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_pattern( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_PVariable: { ID ID_1 = rewrite_ID(kc_p->u.PVariable.ID_1, kc_current_view); if ((ID_1 == kc_p->u.PVariable.ID_1)) return kc_p; else return PVariable(ID_1); } case (int)sel_POperator: { ID ID_1 = rewrite_ID(kc_p->u.POperator.ID_1, kc_current_view); patterns patterns_1 = rewrite_patterns(kc_p->u.POperator.patterns_1, kc_current_view); if ((ID_1 == kc_p->u.POperator.ID_1) && (patterns_1 == kc_p->u.POperator.patterns_1)) return kc_p; else return POperator(ID_1, patterns_1); } case (int)sel_PNonLeafVariable: { ID ID_1 = rewrite_ID(kc_p->u.PNonLeafVariable.ID_1, kc_current_view); pattern pattern_1 = rewrite_pattern(kc_p->u.PNonLeafVariable.pattern_1, kc_current_view); if ((ID_1 == kc_p->u.PNonLeafVariable.ID_1) && (pattern_1 == kc_p->u.PNonLeafVariable.pattern_1)) return kc_p; else return PNonLeafVariable(ID_1, pattern_1); } case (int)sel_PWildcard: { return kc_p; } case (int)sel_PStringLiteral: { CexpressionDQ CexpressionDQ_1 = rewrite_CexpressionDQ(kc_p->u.PStringLiteral.CexpressionDQ_1, kc_current_view); if ((CexpressionDQ_1 == kc_p->u.PStringLiteral.CexpressionDQ_1)) return kc_p; else return PStringLiteral(CexpressionDQ_1); } case (int)sel_PIntLiteral: { INT INT_1 = rewrite_INT(kc_p->u.PIntLiteral.INT_1, kc_current_view); if ((INT_1 == kc_p->u.PIntLiteral.INT_1)) return kc_p; else return PIntLiteral(INT_1); } default: return kc_p;} } } } /*ARGSUSED*/ patterns rewrite_patterns #ifdef KC_USE_PROTOTYPES (patterns kc_p, rview kc_current_view) #else (kc_p, kc_current_view) patterns kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_patterns( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilpatterns: { return kc_p; } case (int)sel_Conspatterns: { pattern pattern_1 = rewrite_pattern(kc_p->u.Conspatterns.pattern_1, kc_current_view); patterns patterns_1 = rewrite_patterns(kc_p->u.Conspatterns.patterns_1, kc_current_view); if ((pattern_1 == kc_p->u.Conspatterns.pattern_1) && (patterns_1 == kc_p->u.Conspatterns.patterns_1)) return kc_p; else return Conspatterns(pattern_1, patterns_1); } default: return kc_p;} } } } /*ARGSUSED*/ term rewrite_term #ifdef KC_USE_PROTOTYPES (term kc_p, rview kc_current_view) #else (kc_p, kc_current_view) term kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_term( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_TVariable: { ID ID_1 = rewrite_ID(kc_p->u.TVariable.ID_1, kc_current_view); if ((ID_1 == kc_p->u.TVariable.ID_1)) return kc_p; else return TVariable(ID_1); } case (int)sel_TOperator: { ID ID_1 = rewrite_ID(kc_p->u.TOperator.ID_1, kc_current_view); terms terms_1 = rewrite_terms(kc_p->u.TOperator.terms_1, kc_current_view); if ((ID_1 == kc_p->u.TOperator.ID_1) && (terms_1 == kc_p->u.TOperator.terms_1)) return kc_p; else return TOperator(ID_1, terms_1); } case (int)sel_TStringLiteral: { CexpressionDQ CexpressionDQ_1 = rewrite_CexpressionDQ(kc_p->u.TStringLiteral.CexpressionDQ_1, kc_current_view); if ((CexpressionDQ_1 == kc_p->u.TStringLiteral.CexpressionDQ_1)) return kc_p; else return TStringLiteral(CexpressionDQ_1); } case (int)sel_TIntLiteral: { INT INT_1 = rewrite_INT(kc_p->u.TIntLiteral.INT_1, kc_current_view); if ((INT_1 == kc_p->u.TIntLiteral.INT_1)) return kc_p; else return TIntLiteral(INT_1); } default: return kc_p;} } } } /*ARGSUSED*/ terms rewrite_terms #ifdef KC_USE_PROTOTYPES (terms kc_p, rview kc_current_view) #else (kc_p, kc_current_view) terms kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_terms( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilterms: { return kc_p; } case (int)sel_Consterms: { term term_1 = rewrite_term(kc_p->u.Consterms.term_1, kc_current_view); terms terms_1 = rewrite_terms(kc_p->u.Consterms.terms_1, kc_current_view); if ((term_1 == kc_p->u.Consterms.term_1) && (terms_1 == kc_p->u.Consterms.terms_1)) return kc_p; else return Consterms(term_1, terms_1); } default: return kc_p;} } } } /*ARGSUSED*/ fnfiles rewrite_fnfiles #ifdef KC_USE_PROTOTYPES (fnfiles kc_p, rview kc_current_view) #else (kc_p, kc_current_view) fnfiles kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_fnfiles( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilfnfiles: { return kc_p; } case (int)sel_Consfnfiles: { fnfile fnfile_1 = rewrite_fnfile(kc_p->u.Consfnfiles.fnfile_1, kc_current_view); fnfiles fnfiles_1 = rewrite_fnfiles(kc_p->u.Consfnfiles.fnfiles_1, kc_current_view); if ((fnfile_1 == kc_p->u.Consfnfiles.fnfile_1) && (fnfiles_1 == kc_p->u.Consfnfiles.fnfiles_1)) return kc_p; else return Consfnfiles(fnfile_1, fnfiles_1); } default: return kc_p;} } } } /*ARGSUSED*/ fnfile rewrite_fnfile #ifdef KC_USE_PROTOTYPES (fnfile kc_p, rview kc_current_view) #else (kc_p, kc_current_view) fnfile kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_fnfile( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_FnFile: { casestring casestring_1 = rewrite_casestring(kc_p->u.FnFile.casestring_1, kc_current_view); if ((casestring_1 == kc_p->u.FnFile.casestring_1)) return kc_p; else return FnFile(casestring_1); } default: return kc_p;} } } } /*ARGSUSED*/ fndeclarations rewrite_fndeclarations #ifdef KC_USE_PROTOTYPES (fndeclarations kc_p, rview kc_current_view) #else (kc_p, kc_current_view) fndeclarations kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_fndeclarations( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilfndeclarations: { return kc_p; } case (int)sel_Consfndeclarations: { fndeclaration fndeclaration_1 = rewrite_fndeclaration(kc_p->u.Consfndeclarations.fndeclaration_1, kc_current_view); fndeclarations fndeclarations_1 = rewrite_fndeclarations(kc_p->u.Consfndeclarations.fndeclarations_1, kc_current_view); if ((fndeclaration_1 == kc_p->u.Consfndeclarations.fndeclaration_1) && (fndeclarations_1 == kc_p->u.Consfndeclarations.fndeclarations_1)) return kc_p; else return Consfndeclarations(fndeclaration_1, fndeclarations_1); } default: return kc_p;} } } } /*ARGSUSED*/ fndeclaration rewrite_fndeclaration #ifdef KC_USE_PROTOTYPES (fndeclaration kc_p, rview kc_current_view) #else (kc_p, kc_current_view) fndeclaration kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_fndeclaration( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_FnDeclaration: { ID ID_1 = rewrite_ID(kc_p->u.FnDeclaration.ID_1, kc_current_view); int int_1 = rewrite_int(kc_p->u.FnDeclaration.int_1, kc_current_view); ID ID_2 = rewrite_ID(kc_p->u.FnDeclaration.ID_2, kc_current_view); fnarguments fnarguments_1 = rewrite_fnarguments(kc_p->u.FnDeclaration.fnarguments_1, kc_current_view); Cvariabledeclarations Cvariabledeclarations_1 = rewrite_Cvariabledeclarations(kc_p->u.FnDeclaration.Cvariabledeclarations_1, kc_current_view); Ctext Ctext_1 = rewrite_Ctext(kc_p->u.FnDeclaration.Ctext_1, kc_current_view); fnclass fnclass_1 = rewrite_fnclass(kc_p->u.FnDeclaration.fnclass_1, kc_current_view); if ((ID_1 == kc_p->u.FnDeclaration.ID_1) && (int_1 == kc_p->u.FnDeclaration.int_1) && (ID_2 == kc_p->u.FnDeclaration.ID_2) && (fnarguments_1 == kc_p->u.FnDeclaration.fnarguments_1) && (Cvariabledeclarations_1 == kc_p->u.FnDeclaration.Cvariabledeclarations_1) && (Ctext_1 == kc_p->u.FnDeclaration.Ctext_1) && (fnclass_1 == kc_p->u.FnDeclaration.fnclass_1)) return kc_p; else return FnDeclaration(ID_1, int_1, ID_2, fnarguments_1, Cvariabledeclarations_1, Ctext_1, fnclass_1); } case (int)sel_FnAcDeclaration: { ac_declaration_specifiers ac_declaration_specifiers_1 = rewrite_ac_declaration_specifiers(kc_p->u.FnAcDeclaration.ac_declaration_specifiers_1, kc_current_view); ac_declarator ac_declarator_1 = rewrite_ac_declarator(kc_p->u.FnAcDeclaration.ac_declarator_1, kc_current_view); ac_declaration_list ac_declaration_list_1 = rewrite_ac_declaration_list(kc_p->u.FnAcDeclaration.ac_declaration_list_1, kc_current_view); Ctext Ctext_1 = rewrite_Ctext(kc_p->u.FnAcDeclaration.Ctext_1, kc_current_view); ID ID_1 = rewrite_ID(kc_p->u.FnAcDeclaration.ID_1, kc_current_view); fnclass fnclass_1 = rewrite_fnclass(kc_p->u.FnAcDeclaration.fnclass_1, kc_current_view); if ((ac_declaration_specifiers_1 == kc_p->u.FnAcDeclaration.ac_declaration_specifiers_1) && (ac_declarator_1 == kc_p->u.FnAcDeclaration.ac_declarator_1) && (ac_declaration_list_1 == kc_p->u.FnAcDeclaration.ac_declaration_list_1) && (Ctext_1 == kc_p->u.FnAcDeclaration.Ctext_1) && (ID_1 == kc_p->u.FnAcDeclaration.ID_1) && (fnclass_1 == kc_p->u.FnAcDeclaration.fnclass_1)) return kc_p; else return FnAcDeclaration(ac_declaration_specifiers_1, ac_declarator_1, ac_declaration_list_1, Ctext_1, ID_1, fnclass_1); } default: return kc_p;} } } } /*ARGSUSED*/ fnclass rewrite_fnclass #ifdef KC_USE_PROTOTYPES (fnclass kc_p, rview kc_current_view) #else (kc_p, kc_current_view) fnclass kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_fnclass( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_GlobalFn: { return kc_p; } case (int)sel_LocalFn: { casestring casestring_1 = rewrite_casestring(kc_p->u.LocalFn.casestring_1, kc_current_view); if ((casestring_1 == kc_p->u.LocalFn.casestring_1)) return kc_p; else return LocalFn(casestring_1); } default: return kc_p;} } } } /*ARGSUSED*/ fnarguments rewrite_fnarguments #ifdef KC_USE_PROTOTYPES (fnarguments kc_p, rview kc_current_view) #else (kc_p, kc_current_view) fnarguments kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_fnarguments( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilfnarguments: { return kc_p; } case (int)sel_Consfnarguments: { ID ID_1 = rewrite_ID(kc_p->u.Consfnarguments.ID_1, kc_current_view); fnarguments fnarguments_1 = rewrite_fnarguments(kc_p->u.Consfnarguments.fnarguments_1, kc_current_view); if ((ID_1 == kc_p->u.Consfnarguments.ID_1) && (fnarguments_1 == kc_p->u.Consfnarguments.fnarguments_1)) return kc_p; else return Consfnarguments(ID_1, fnarguments_1); } default: return kc_p;} } } } /*ARGSUSED*/ Cvariabledeclarations rewrite_Cvariabledeclarations #ifdef KC_USE_PROTOTYPES (Cvariabledeclarations kc_p, rview kc_current_view) #else (kc_p, kc_current_view) Cvariabledeclarations kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_Cvariabledeclarations( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_NilCvariabledeclarations: { return kc_p; } case (int)sel_ConsCvariabledeclarations: { Cvariabledeclaration Cvariabledeclaration_1 = rewrite_Cvariabledeclaration(kc_p->u.ConsCvariabledeclarations.Cvariabledeclaration_1, kc_current_view); Cvariabledeclarations Cvariabledeclarations_1 = rewrite_Cvariabledeclarations(kc_p->u.ConsCvariabledeclarations.Cvariabledeclarations_1, kc_current_view); if ((Cvariabledeclaration_1 == kc_p->u.ConsCvariabledeclarations.Cvariabledeclaration_1) && (Cvariabledeclarations_1 == kc_p->u.ConsCvariabledeclarations.Cvariabledeclarations_1)) return kc_p; else return ConsCvariabledeclarations(Cvariabledeclaration_1, Cvariabledeclarations_1); } default: return kc_p;} } } } /*ARGSUSED*/ Cvariabledeclaration rewrite_Cvariabledeclaration #ifdef KC_USE_PROTOTYPES (Cvariabledeclaration kc_p, rview kc_current_view) #else (kc_p, kc_current_view) Cvariabledeclaration kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_Cvariabledeclaration( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_CVariabledeclaration: { ID ID_1 = rewrite_ID(kc_p->u.CVariabledeclaration.ID_1, kc_current_view); Cvariables Cvariables_1 = rewrite_Cvariables(kc_p->u.CVariabledeclaration.Cvariables_1, kc_current_view); if ((ID_1 == kc_p->u.CVariabledeclaration.ID_1) && (Cvariables_1 == kc_p->u.CVariabledeclaration.Cvariables_1)) return kc_p; else return CVariabledeclaration(ID_1, Cvariables_1); } case (int)sel_Fnargfpdecl: { ID ID_1 = rewrite_ID(kc_p->u.Fnargfpdecl.ID_1, kc_current_view); Cvariables Cvariables_1 = rewrite_Cvariables(kc_p->u.Fnargfpdecl.Cvariables_1, kc_current_view); if ((ID_1 == kc_p->u.Fnargfpdecl.ID_1) && (Cvariables_1 == kc_p->u.Fnargfpdecl.Cvariables_1)) return kc_p; else return Fnargfpdecl(ID_1, Cvariables_1); } default: return kc_p;} } } } /*ARGSUSED*/ Cvariables rewrite_Cvariables #ifdef KC_USE_PROTOTYPES (Cvariables kc_p, rview kc_current_view) #else (kc_p, kc_current_view) Cvariables kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_Cvariables( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_NilCvariables: { return kc_p; } case (int)sel_ConsCvariables: { Cvariable Cvariable_1 = rewrite_Cvariable(kc_p->u.ConsCvariables.Cvariable_1, kc_current_view); Cvariables Cvariables_1 = rewrite_Cvariables(kc_p->u.ConsCvariables.Cvariables_1, kc_current_view); if ((Cvariable_1 == kc_p->u.ConsCvariables.Cvariable_1) && (Cvariables_1 == kc_p->u.ConsCvariables.Cvariables_1)) return kc_p; else return ConsCvariables(Cvariable_1, Cvariables_1); } default: return kc_p;} } } } /*ARGSUSED*/ Cvariable rewrite_Cvariable #ifdef KC_USE_PROTOTYPES (Cvariable kc_p, rview kc_current_view) #else (kc_p, kc_current_view) Cvariable kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_Cvariable( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_CVPointer: { int int_1 = rewrite_int(kc_p->u.CVPointer.int_1, kc_current_view); ID ID_1 = rewrite_ID(kc_p->u.CVPointer.ID_1, kc_current_view); if ((int_1 == kc_p->u.CVPointer.int_1) && (ID_1 == kc_p->u.CVPointer.ID_1)) return kc_p; else return CVPointer(int_1, ID_1); } case (int)sel_CVFunction: { int int_1 = rewrite_int(kc_p->u.CVFunction.int_1, kc_current_view); int int_2 = rewrite_int(kc_p->u.CVFunction.int_2, kc_current_view); ID ID_1 = rewrite_ID(kc_p->u.CVFunction.ID_1, kc_current_view); if ((int_1 == kc_p->u.CVFunction.int_1) && (int_2 == kc_p->u.CVFunction.int_2) && (ID_1 == kc_p->u.CVFunction.ID_1)) return kc_p; else return CVFunction(int_1, int_2, ID_1); } default: return kc_p;} } } } /*ARGSUSED*/ Ctext rewrite_Ctext #ifdef KC_USE_PROTOTYPES (Ctext kc_p, rview kc_current_view) #else (kc_p, kc_current_view) Ctext kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_Ctext( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_NilCtext: { return kc_p; } case (int)sel_ConsCtext: { Ctext_elem Ctext_elem_1 = rewrite_Ctext_elem(kc_p->u.ConsCtext.Ctext_elem_1, kc_current_view); Ctext Ctext_1 = rewrite_Ctext(kc_p->u.ConsCtext.Ctext_1, kc_current_view); if ((Ctext_elem_1 == kc_p->u.ConsCtext.Ctext_elem_1) && (Ctext_1 == kc_p->u.ConsCtext.Ctext_1)) return kc_p; else return ConsCtext(Ctext_elem_1, Ctext_1); } default: return kc_p;} } } } /*ARGSUSED*/ Ctext_elem rewrite_Ctext_elem #ifdef KC_USE_PROTOTYPES (Ctext_elem kc_p, rview kc_current_view) #else (kc_p, kc_current_view) Ctext_elem kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_Ctext_elem( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_CTextLine: { casestring casestring_1 = rewrite_casestring(kc_p->u.CTextLine.casestring_1, kc_current_view); if ((casestring_1 == kc_p->u.CTextLine.casestring_1)) return kc_p; else return CTextLine(casestring_1); } case (int)sel_CTextDollarVar: { INT INT_1 = rewrite_INT(kc_p->u.CTextDollarVar.INT_1, kc_current_view); if ((INT_1 == kc_p->u.CTextDollarVar.INT_1)) return kc_p; else return CTextDollarVar(INT_1); } case (int)sel_CTextNl: { int int_1 = rewrite_int(kc_p->u.CTextNl.int_1, kc_current_view); if ((int_1 == kc_p->u.CTextNl.int_1)) return kc_p; else return CTextNl(int_1); } case (int)sel_CTextCexpressionDQ: { CexpressionDQ CexpressionDQ_1 = rewrite_CexpressionDQ(kc_p->u.CTextCexpressionDQ.CexpressionDQ_1, kc_current_view); if ((CexpressionDQ_1 == kc_p->u.CTextCexpressionDQ.CexpressionDQ_1)) return kc_p; else return CTextCexpressionDQ(CexpressionDQ_1); } case (int)sel_CTextCexpressionSQ: { CexpressionSQ CexpressionSQ_1 = rewrite_CexpressionSQ(kc_p->u.CTextCexpressionSQ.CexpressionSQ_1, kc_current_view); if ((CexpressionSQ_1 == kc_p->u.CTextCexpressionSQ.CexpressionSQ_1)) return kc_p; else return CTextCexpressionSQ(CexpressionSQ_1); } case (int)sel_CTextCbody: { Ctext Ctext_1 = rewrite_Ctext(kc_p->u.CTextCbody.Ctext_1, kc_current_view); if ((Ctext_1 == kc_p->u.CTextCbody.Ctext_1)) return kc_p; else return CTextCbody(Ctext_1); } case (int)sel_CTextForeachexpression: { patternchain patternchain_1 = rewrite_patternchain(kc_p->u.CTextForeachexpression.patternchain_1, kc_current_view); idCexpressions idCexpressions_1 = rewrite_idCexpressions(kc_p->u.CTextForeachexpression.idCexpressions_1, kc_current_view); withexpressions withexpressions_1 = rewrite_withexpressions(kc_p->u.CTextForeachexpression.withexpressions_1, kc_current_view); Ctext Ctext_1 = rewrite_Ctext(kc_p->u.CTextForeachexpression.Ctext_1, kc_current_view); foreach_after foreach_after_1 = rewrite_foreach_after(kc_p->u.CTextForeachexpression.foreach_after_1, kc_current_view); if ((patternchain_1 == kc_p->u.CTextForeachexpression.patternchain_1) && (idCexpressions_1 == kc_p->u.CTextForeachexpression.idCexpressions_1) && (withexpressions_1 == kc_p->u.CTextForeachexpression.withexpressions_1) && (Ctext_1 == kc_p->u.CTextForeachexpression.Ctext_1) && (foreach_after_1 == kc_p->u.CTextForeachexpression.foreach_after_1)) return kc_p; else return CTextForeachexpression(patternchain_1, idCexpressions_1, withexpressions_1, Ctext_1, foreach_after_1); } case (int)sel_CTextWithexpression: { withexpressions withexpressions_1 = rewrite_withexpressions(kc_p->u.CTextWithexpression.withexpressions_1, kc_current_view); withcases withcases_1 = rewrite_withcases(kc_p->u.CTextWithexpression.withcases_1, kc_current_view); contextinfo contextinfo_1 = rewrite_contextinfo(kc_p->u.CTextWithexpression.contextinfo_1, kc_current_view); if ((withexpressions_1 == kc_p->u.CTextWithexpression.withexpressions_1) && (withcases_1 == kc_p->u.CTextWithexpression.withcases_1) && (contextinfo_1 == kc_p->u.CTextWithexpression.contextinfo_1)) return kc_p; else return CTextWithexpression(withexpressions_1, withcases_1, contextinfo_1); } default: return kc_p;} } } } /*ARGSUSED*/ foreach_after rewrite_foreach_after #ifdef KC_USE_PROTOTYPES (foreach_after kc_p, rview kc_current_view) #else (kc_p, kc_current_view) foreach_after kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_foreach_after( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_NoForeachAfter: { return kc_p; } case (int)sel_ForeachAfter: { patternchain patternchain_1 = rewrite_patternchain(kc_p->u.ForeachAfter.patternchain_1, kc_current_view); idCexpressions idCexpressions_1 = rewrite_idCexpressions(kc_p->u.ForeachAfter.idCexpressions_1, kc_current_view); withexpressions withexpressions_1 = rewrite_withexpressions(kc_p->u.ForeachAfter.withexpressions_1, kc_current_view); Ctext Ctext_1 = rewrite_Ctext(kc_p->u.ForeachAfter.Ctext_1, kc_current_view); if ((patternchain_1 == kc_p->u.ForeachAfter.patternchain_1) && (idCexpressions_1 == kc_p->u.ForeachAfter.idCexpressions_1) && (withexpressions_1 == kc_p->u.ForeachAfter.withexpressions_1) && (Ctext_1 == kc_p->u.ForeachAfter.Ctext_1)) return kc_p; else return ForeachAfter(patternchain_1, idCexpressions_1, withexpressions_1, Ctext_1); } default: return kc_p;} } } } /*ARGSUSED*/ contextinfo rewrite_contextinfo #ifdef KC_USE_PROTOTYPES (contextinfo kc_p, rview kc_current_view) #else (kc_p, kc_current_view) contextinfo kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_contextinfo( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_InForeachContext: { patternchain patternchain_1 = rewrite_patternchain(kc_p->u.InForeachContext.patternchain_1, kc_current_view); if ((patternchain_1 == kc_p->u.InForeachContext.patternchain_1)) return kc_p; else return InForeachContext(patternchain_1); } case (int)sel_NotInForeachContext: { return kc_p; } default: return kc_p;} } } } /*ARGSUSED*/ withexpressions rewrite_withexpressions #ifdef KC_USE_PROTOTYPES (withexpressions kc_p, rview kc_current_view) #else (kc_p, kc_current_view) withexpressions kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_withexpressions( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilwithexpressions: { return kc_p; } case (int)sel_Conswithexpressions: { withexpression withexpression_1 = rewrite_withexpression(kc_p->u.Conswithexpressions.withexpression_1, kc_current_view); withexpressions withexpressions_1 = rewrite_withexpressions(kc_p->u.Conswithexpressions.withexpressions_1, kc_current_view); if ((withexpression_1 == kc_p->u.Conswithexpressions.withexpression_1) && (withexpressions_1 == kc_p->u.Conswithexpressions.withexpressions_1)) return kc_p; else return Conswithexpressions(withexpression_1, withexpressions_1); } default: return kc_p;} } } } /*ARGSUSED*/ withexpression rewrite_withexpression #ifdef KC_USE_PROTOTYPES (withexpression kc_p, rview kc_current_view) #else (kc_p, kc_current_view) withexpression kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_withexpression( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_WEVariable: { ID ID_1 = rewrite_ID(kc_p->u.WEVariable.ID_1, kc_current_view); if ((ID_1 == kc_p->u.WEVariable.ID_1)) return kc_p; else return WEVariable(ID_1); } case (int)sel_WECexpression: { Cexpression Cexpression_1 = rewrite_Cexpression(kc_p->u.WECexpression.Cexpression_1, kc_current_view); if ((Cexpression_1 == kc_p->u.WECexpression.Cexpression_1)) return kc_p; else return WECexpression(Cexpression_1); } default: return kc_p;} } } } /*ARGSUSED*/ withcases rewrite_withcases #ifdef KC_USE_PROTOTYPES (withcases kc_p, rview kc_current_view) #else (kc_p, kc_current_view) withcases kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_withcases( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilwithcases: { return kc_p; } case (int)sel_Conswithcases: { withcase withcase_1 = rewrite_withcase(kc_p->u.Conswithcases.withcase_1, kc_current_view); withcases withcases_1 = rewrite_withcases(kc_p->u.Conswithcases.withcases_1, kc_current_view); if ((withcase_1 == kc_p->u.Conswithcases.withcase_1) && (withcases_1 == kc_p->u.Conswithcases.withcases_1)) return kc_p; else return Conswithcases(withcase_1, withcases_1); } default: return kc_p;} } } } /*ARGSUSED*/ withcase rewrite_withcase #ifdef KC_USE_PROTOTYPES (withcase kc_p, rview kc_current_view) #else (kc_p, kc_current_view) withcase kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_withcase( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Withcase: { patternchains patternchains_1 = rewrite_patternchains(kc_p->u.Withcase.patternchains_1, kc_current_view); Ctext Ctext_1 = rewrite_Ctext(kc_p->u.Withcase.Ctext_1, kc_current_view); if ((patternchains_1 == kc_p->u.Withcase.patternchains_1) && (Ctext_1 == kc_p->u.Withcase.Ctext_1)) return kc_p; else return Withcase(patternchains_1, Ctext_1); } default: return kc_p;} } } } /*ARGSUSED*/ unparsedeclarations rewrite_unparsedeclarations #ifdef KC_USE_PROTOTYPES (unparsedeclarations kc_p, rview kc_current_view) #else (kc_p, kc_current_view) unparsedeclarations kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unparsedeclarations( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilunparsedeclarations: { return kc_p; } case (int)sel_Consunparsedeclarations: { unparsedeclaration unparsedeclaration_1 = rewrite_unparsedeclaration(kc_p->u.Consunparsedeclarations.unparsedeclaration_1, kc_current_view); unparsedeclarations unparsedeclarations_1 = rewrite_unparsedeclarations(kc_p->u.Consunparsedeclarations.unparsedeclarations_1, kc_current_view); if ((unparsedeclaration_1 == kc_p->u.Consunparsedeclarations.unparsedeclaration_1) && (unparsedeclarations_1 == kc_p->u.Consunparsedeclarations.unparsedeclarations_1)) return kc_p; else return Consunparsedeclarations(unparsedeclaration_1, unparsedeclarations_1); } default: return kc_p;} } } } /*ARGSUSED*/ unparsedeclaration rewrite_unparsedeclaration #ifdef KC_USE_PROTOTYPES (unparsedeclaration kc_p, rview kc_current_view) #else (kc_p, kc_current_view) unparsedeclaration kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unparsedeclaration( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_UnparseDeclaration: { outmostpatterns outmostpatterns_1 = rewrite_outmostpatterns(kc_p->u.UnparseDeclaration.outmostpatterns_1, kc_current_view); unparseclauses unparseclauses_1 = rewrite_unparseclauses(kc_p->u.UnparseDeclaration.unparseclauses_1, kc_current_view); if ((outmostpatterns_1 == kc_p->u.UnparseDeclaration.outmostpatterns_1) && (unparseclauses_1 == kc_p->u.UnparseDeclaration.unparseclauses_1)) return kc_p; else return UnparseDeclaration(outmostpatterns_1, unparseclauses_1); } default: return kc_p;} } } } /*ARGSUSED*/ unparseclauses rewrite_unparseclauses #ifdef KC_USE_PROTOTYPES (unparseclauses kc_p, rview kc_current_view) #else (kc_p, kc_current_view) unparseclauses kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unparseclauses( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilunparseclauses: { return kc_p; } case (int)sel_Consunparseclauses: { unparseclause unparseclause_1 = rewrite_unparseclause(kc_p->u.Consunparseclauses.unparseclause_1, kc_current_view); unparseclauses unparseclauses_1 = rewrite_unparseclauses(kc_p->u.Consunparseclauses.unparseclauses_1, kc_current_view); if ((unparseclause_1 == kc_p->u.Consunparseclauses.unparseclause_1) && (unparseclauses_1 == kc_p->u.Consunparseclauses.unparseclauses_1)) return kc_p; else return Consunparseclauses(unparseclause_1, unparseclauses_1); } default: return kc_p;} } } } /*ARGSUSED*/ unparseclause rewrite_unparseclause #ifdef KC_USE_PROTOTYPES (unparseclause kc_p, rview kc_current_view) #else (kc_p, kc_current_view) unparseclause kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unparseclause( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_UnparseClause: { viewnames viewnames_1 = rewrite_viewnames(kc_p->u.UnparseClause.viewnames_1, kc_current_view); unparseitems unparseitems_1 = rewrite_unparseitems(kc_p->u.UnparseClause.unparseitems_1, kc_current_view); if ((viewnames_1 == kc_p->u.UnparseClause.viewnames_1) && (unparseitems_1 == kc_p->u.UnparseClause.unparseitems_1)) return kc_p; else return UnparseClause(viewnames_1, unparseitems_1); } default: return kc_p;} } } } /*ARGSUSED*/ viewnames rewrite_viewnames #ifdef KC_USE_PROTOTYPES (viewnames kc_p, rview kc_current_view) #else (kc_p, kc_current_view) viewnames kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_viewnames( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilviewnames: { return kc_p; } case (int)sel_Consviewnames: { ID ID_1 = rewrite_ID(kc_p->u.Consviewnames.ID_1, kc_current_view); viewnames viewnames_1 = rewrite_viewnames(kc_p->u.Consviewnames.viewnames_1, kc_current_view); if ((ID_1 == kc_p->u.Consviewnames.ID_1) && (viewnames_1 == kc_p->u.Consviewnames.viewnames_1)) return kc_p; else return Consviewnames(ID_1, viewnames_1); } default: return kc_p;} } } } /*ARGSUSED*/ unparseitems rewrite_unparseitems #ifdef KC_USE_PROTOTYPES (unparseitems kc_p, rview kc_current_view) #else (kc_p, kc_current_view) unparseitems kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unparseitems( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilunparseitems: { return kc_p; } case (int)sel_Consunparseitems: { unparseitem unparseitem_1 = rewrite_unparseitem(kc_p->u.Consunparseitems.unparseitem_1, kc_current_view); unparseitems unparseitems_1 = rewrite_unparseitems(kc_p->u.Consunparseitems.unparseitems_1, kc_current_view); if ((unparseitem_1 == kc_p->u.Consunparseitems.unparseitem_1) && (unparseitems_1 == kc_p->u.Consunparseitems.unparseitems_1)) return kc_p; else return Consunparseitems(unparseitem_1, unparseitems_1); } default: return kc_p;} } } } /*ARGSUSED*/ unparseitem rewrite_unparseitem #ifdef KC_USE_PROTOTYPES (unparseitem kc_p, rview kc_current_view) #else (kc_p, kc_current_view) unparseitem kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unparseitem( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_UnpStr: { CexpressionDQ CexpressionDQ_1 = rewrite_CexpressionDQ(kc_p->u.UnpStr.CexpressionDQ_1, kc_current_view); viewnameoption viewnameoption_1 = rewrite_viewnameoption(kc_p->u.UnpStr.viewnameoption_1, kc_current_view); if ((CexpressionDQ_1 == kc_p->u.UnpStr.CexpressionDQ_1) && (viewnameoption_1 == kc_p->u.UnpStr.viewnameoption_1)) return kc_p; else return UnpStr(CexpressionDQ_1, viewnameoption_1); } case (int)sel_UnpSubexpr: { unpsubterm unpsubterm_1 = rewrite_unpsubterm(kc_p->u.UnpSubexpr.unpsubterm_1, kc_current_view); viewnameoption viewnameoption_1 = rewrite_viewnameoption(kc_p->u.UnpSubexpr.viewnameoption_1, kc_current_view); if ((unpsubterm_1 == kc_p->u.UnpSubexpr.unpsubterm_1) && (viewnameoption_1 == kc_p->u.UnpSubexpr.viewnameoption_1)) return kc_p; else return UnpSubexpr(unpsubterm_1, viewnameoption_1); } case (int)sel_UnpCtext: { Ctext Ctext_1 = rewrite_Ctext(kc_p->u.UnpCtext.Ctext_1, kc_current_view); if ((Ctext_1 == kc_p->u.UnpCtext.Ctext_1)) return kc_p; else return UnpCtext(Ctext_1); } case (int)sel_UnpBody: { unparseitems unparseitems_1 = rewrite_unparseitems(kc_p->u.UnpBody.unparseitems_1, kc_current_view); if ((unparseitems_1 == kc_p->u.UnpBody.unparseitems_1)) return kc_p; else return UnpBody(unparseitems_1); } default: return kc_p;} } } } /*ARGSUSED*/ unpsubterm rewrite_unpsubterm #ifdef KC_USE_PROTOTYPES (unpsubterm kc_p, rview kc_current_view) #else (kc_p, kc_current_view) unpsubterm kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unpsubterm( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_UnpSubTerm: { ID ID_1 = rewrite_ID(kc_p->u.UnpSubTerm.ID_1, kc_current_view); if ((ID_1 == kc_p->u.UnpSubTerm.ID_1)) return kc_p; else return UnpSubTerm(ID_1); } case (int)sel_UnpDollarvarTerm: { INT INT_1 = rewrite_INT(kc_p->u.UnpDollarvarTerm.INT_1, kc_current_view); if ((INT_1 == kc_p->u.UnpDollarvarTerm.INT_1)) return kc_p; else return UnpDollarvarTerm(INT_1); } case (int)sel_UnpSubAttr: { ID ID_1 = rewrite_ID(kc_p->u.UnpSubAttr.ID_1, kc_current_view); unpattributes unpattributes_1 = rewrite_unpattributes(kc_p->u.UnpSubAttr.unpattributes_1, kc_current_view); if ((ID_1 == kc_p->u.UnpSubAttr.ID_1) && (unpattributes_1 == kc_p->u.UnpSubAttr.unpattributes_1)) return kc_p; else return UnpSubAttr(ID_1, unpattributes_1); } case (int)sel_UnpDollarvarAttr: { INT INT_1 = rewrite_INT(kc_p->u.UnpDollarvarAttr.INT_1, kc_current_view); unpattributes unpattributes_1 = rewrite_unpattributes(kc_p->u.UnpDollarvarAttr.unpattributes_1, kc_current_view); if ((INT_1 == kc_p->u.UnpDollarvarAttr.INT_1) && (unpattributes_1 == kc_p->u.UnpDollarvarAttr.unpattributes_1)) return kc_p; else return UnpDollarvarAttr(INT_1, unpattributes_1); } case (int)sel_UnpCastedVariable: { ID ID_1 = rewrite_ID(kc_p->u.UnpCastedVariable.ID_1, kc_current_view); ID ID_2 = rewrite_ID(kc_p->u.UnpCastedVariable.ID_2, kc_current_view); if ((ID_1 == kc_p->u.UnpCastedVariable.ID_1) && (ID_2 == kc_p->u.UnpCastedVariable.ID_2)) return kc_p; else return UnpCastedVariable(ID_1, ID_2); } default: return kc_p;} } } } /*ARGSUSED*/ unpattributes rewrite_unpattributes #ifdef KC_USE_PROTOTYPES (unpattributes kc_p, rview kc_current_view) #else (kc_p, kc_current_view) unpattributes kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unpattributes( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilunpattributes: { return kc_p; } case (int)sel_Consunpattributes: { ID ID_1 = rewrite_ID(kc_p->u.Consunpattributes.ID_1, kc_current_view); unpattributes unpattributes_1 = rewrite_unpattributes(kc_p->u.Consunpattributes.unpattributes_1, kc_current_view); if ((ID_1 == kc_p->u.Consunpattributes.ID_1) && (unpattributes_1 == kc_p->u.Consunpattributes.unpattributes_1)) return kc_p; else return Consunpattributes(ID_1, unpattributes_1); } default: return kc_p;} } } } /*ARGSUSED*/ viewnameoption rewrite_viewnameoption #ifdef KC_USE_PROTOTYPES (viewnameoption kc_p, rview kc_current_view) #else (kc_p, kc_current_view) viewnameoption kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_viewnameoption( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_NoViewname: { return kc_p; } case (int)sel_YesViewname: { ID ID_1 = rewrite_ID(kc_p->u.YesViewname.ID_1, kc_current_view); if ((ID_1 == kc_p->u.YesViewname.ID_1)) return kc_p; else return YesViewname(ID_1); } default: return kc_p;} } } } /*ARGSUSED*/ filelinestack rewrite_filelinestack #ifdef KC_USE_PROTOTYPES (filelinestack kc_p, rview kc_current_view) #else (kc_p, kc_current_view) filelinestack kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_filelinestack( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilfilelinestack: { return kc_p; } case (int)sel_Consfilelinestack: { fileline fileline_1 = rewrite_fileline(kc_p->u.Consfilelinestack.fileline_1, kc_current_view); filelinestack filelinestack_1 = rewrite_filelinestack(kc_p->u.Consfilelinestack.filelinestack_1, kc_current_view); if ((fileline_1 == kc_p->u.Consfilelinestack.fileline_1) && (filelinestack_1 == kc_p->u.Consfilelinestack.filelinestack_1)) return kc_p; else return Consfilelinestack(fileline_1, filelinestack_1); } default: return kc_p;} } } } /*ARGSUSED*/ fileline rewrite_fileline #ifdef KC_USE_PROTOTYPES (fileline kc_p, rview kc_current_view) #else (kc_p, kc_current_view) fileline kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_fileline( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_FileLine: { casestring casestring_1 = rewrite_casestring(kc_p->u.FileLine.casestring_1, kc_current_view); int int_1 = rewrite_int(kc_p->u.FileLine.int_1, kc_current_view); if ((casestring_1 == kc_p->u.FileLine.casestring_1) && (int_1 == kc_p->u.FileLine.int_1)) return kc_p; else return FileLine(casestring_1, int_1); } case (int)sel_NoFileLine: { return kc_p; } case (int)sel_PosNoFileLine: { return kc_p; } default: return kc_p;} } } } /*ARGSUSED*/ nooperatorsstack rewrite_nooperatorsstack #ifdef KC_USE_PROTOTYPES (nooperatorsstack kc_p, rview kc_current_view) #else (kc_p, kc_current_view) nooperatorsstack kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_nooperatorsstack( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilnooperatorsstack: { return kc_p; } case (int)sel_Consnooperatorsstack: { int int_1 = rewrite_int(kc_p->u.Consnooperatorsstack.int_1, kc_current_view); nooperatorsstack nooperatorsstack_1 = rewrite_nooperatorsstack(kc_p->u.Consnooperatorsstack.nooperatorsstack_1, kc_current_view); if ((int_1 == kc_p->u.Consnooperatorsstack.int_1) && (nooperatorsstack_1 == kc_p->u.Consnooperatorsstack.nooperatorsstack_1)) return kc_p; else return Consnooperatorsstack(int_1, nooperatorsstack_1); } default: return kc_p;} } } } /*ARGSUSED*/ scopetypefilelinestack rewrite_scopetypefilelinestack #ifdef KC_USE_PROTOTYPES (scopetypefilelinestack kc_p, rview kc_current_view) #else (kc_p, kc_current_view) scopetypefilelinestack kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_scopetypefilelinestack( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilscopetypefilelinestack: { return kc_p; } case (int)sel_Consscopetypefilelinestack: { scopetypefileline scopetypefileline_1 = rewrite_scopetypefileline(kc_p->u.Consscopetypefilelinestack.scopetypefileline_1, kc_current_view); scopetypefilelinestack scopetypefilelinestack_1 = rewrite_scopetypefilelinestack(kc_p->u.Consscopetypefilelinestack.scopetypefilelinestack_1, kc_current_view); if ((scopetypefileline_1 == kc_p->u.Consscopetypefilelinestack.scopetypefileline_1) && (scopetypefilelinestack_1 == kc_p->u.Consscopetypefilelinestack.scopetypefilelinestack_1)) return kc_p; else return Consscopetypefilelinestack(scopetypefileline_1, scopetypefilelinestack_1); } default: return kc_p;} } } } /*ARGSUSED*/ scopetypefileline rewrite_scopetypefileline #ifdef KC_USE_PROTOTYPES (scopetypefileline kc_p, rview kc_current_view) #else (kc_p, kc_current_view) scopetypefileline kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_scopetypefileline( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_ScopeTypeFileLine: { int int_1 = rewrite_int(kc_p->u.ScopeTypeFileLine.int_1, kc_current_view); IDtype IDtype_1 = rewrite_IDtype(kc_p->u.ScopeTypeFileLine.IDtype_1, kc_current_view); casestring casestring_1 = rewrite_casestring(kc_p->u.ScopeTypeFileLine.casestring_1, kc_current_view); int int_2 = rewrite_int(kc_p->u.ScopeTypeFileLine.int_2, kc_current_view); if ((int_1 == kc_p->u.ScopeTypeFileLine.int_1) && (IDtype_1 == kc_p->u.ScopeTypeFileLine.IDtype_1) && (casestring_1 == kc_p->u.ScopeTypeFileLine.casestring_1) && (int_2 == kc_p->u.ScopeTypeFileLine.int_2)) return kc_p; else return ScopeTypeFileLine(int_1, IDtype_1, casestring_1, int_2); } default: return kc_p;} } } } /*ARGSUSED*/ IDtype rewrite_IDtype #ifdef KC_USE_PROTOTYPES (IDtype kc_p, rview kc_current_view) #else (kc_p, kc_current_view) IDtype kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_IDtype( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_ITUnknown: { return kc_p; } case (int)sel_ITPredefinedPhylum: { phylumdeclaration phylumdeclaration_1 = rewrite_phylumdeclaration(kc_p->u.ITPredefinedPhylum.phylumdeclaration_1, kc_current_view); if ((phylumdeclaration_1 == kc_p->u.ITPredefinedPhylum.phylumdeclaration_1)) return kc_p; else return ITPredefinedPhylum(phylumdeclaration_1); } case (int)sel_ITPredefinedBigatomPhylum: { phylumdeclaration phylumdeclaration_1 = rewrite_phylumdeclaration(kc_p->u.ITPredefinedBigatomPhylum.phylumdeclaration_1, kc_current_view); if ((phylumdeclaration_1 == kc_p->u.ITPredefinedBigatomPhylum.phylumdeclaration_1)) return kc_p; else return ITPredefinedBigatomPhylum(phylumdeclaration_1); } case (int)sel_ITUserPhylum: { phylumdeclaration phylumdeclaration_1 = rewrite_phylumdeclaration(kc_p->u.ITUserPhylum.phylumdeclaration_1, kc_current_view); if ((phylumdeclaration_1 == kc_p->u.ITUserPhylum.phylumdeclaration_1)) return kc_p; else return ITUserPhylum(phylumdeclaration_1); } case (int)sel_ITPredefinedOperator: { alternative alternative_1 = rewrite_alternative(kc_p->u.ITPredefinedOperator.alternative_1, kc_current_view); ID ID_1 = rewrite_ID(kc_p->u.ITPredefinedOperator.ID_1, kc_current_view); if ((alternative_1 == kc_p->u.ITPredefinedOperator.alternative_1) && (ID_1 == kc_p->u.ITPredefinedOperator.ID_1)) return kc_p; else return ITPredefinedOperator(alternative_1, ID_1); } case (int)sel_ITUserOperator: { alternative alternative_1 = rewrite_alternative(kc_p->u.ITUserOperator.alternative_1, kc_current_view); ID ID_1 = rewrite_ID(kc_p->u.ITUserOperator.ID_1, kc_current_view); if ((alternative_1 == kc_p->u.ITUserOperator.alternative_1) && (ID_1 == kc_p->u.ITUserOperator.ID_1)) return kc_p; else return ITUserOperator(alternative_1, ID_1); } case (int)sel_ITPredefinedStorageClass: { return kc_p; } case (int)sel_ITStorageClass: { return kc_p; } case (int)sel_ITPredefinedUView: { return kc_p; } case (int)sel_ITUserUView: { return kc_p; } case (int)sel_ITPredefinedRView: { return kc_p; } case (int)sel_ITUserRView: { return kc_p; } case (int)sel_ITUserFunction: { fnclass fnclass_1 = rewrite_fnclass(kc_p->u.ITUserFunction.fnclass_1, kc_current_view); if ((fnclass_1 == kc_p->u.ITUserFunction.fnclass_1)) return kc_p; else return ITUserFunction(fnclass_1); } case (int)sel_ITPatternVariable: { ID ID_1 = rewrite_ID(kc_p->u.ITPatternVariable.ID_1, kc_current_view); int int_1 = rewrite_int(kc_p->u.ITPatternVariable.int_1, kc_current_view); if ((ID_1 == kc_p->u.ITPatternVariable.ID_1) && (int_1 == kc_p->u.ITPatternVariable.int_1)) return kc_p; else return ITPatternVariable(ID_1, int_1); } default: return kc_p;} } } } /*ARGSUSED*/ operatorsstack rewrite_operatorsstack #ifdef KC_USE_PROTOTYPES (operatorsstack kc_p, rview kc_current_view) #else (kc_p, kc_current_view) operatorsstack kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_operatorsstack( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Niloperatorsstack: { return kc_p; } case (int)sel_Consoperatorsstack: { operators operators_1 = rewrite_operators(kc_p->u.Consoperatorsstack.operators_1, kc_current_view); operatorsstack operatorsstack_1 = rewrite_operatorsstack(kc_p->u.Consoperatorsstack.operatorsstack_1, kc_current_view); if ((operators_1 == kc_p->u.Consoperatorsstack.operators_1) && (operatorsstack_1 == kc_p->u.Consoperatorsstack.operatorsstack_1)) return kc_p; else return Consoperatorsstack(operators_1, operatorsstack_1); } default: return kc_p;} } } } /*ARGSUSED*/ operators rewrite_operators #ifdef KC_USE_PROTOTYPES (operators kc_p, rview kc_current_view) #else (kc_p, kc_current_view) operators kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_operators( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Niloperators: { return kc_p; } case (int)sel_Consoperators: { ID ID_1 = rewrite_ID(kc_p->u.Consoperators.ID_1, kc_current_view); operators operators_1 = rewrite_operators(kc_p->u.Consoperators.operators_1, kc_current_view); if ((ID_1 == kc_p->u.Consoperators.ID_1) && (operators_1 == kc_p->u.Consoperators.operators_1)) return kc_p; else return Consoperators(ID_1, operators_1); } default: return kc_p;} } } } /*ARGSUSED*/ phyla rewrite_phyla #ifdef KC_USE_PROTOTYPES (phyla kc_p, rview kc_current_view) #else (kc_p, kc_current_view) phyla kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_phyla( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilphyla: { return kc_p; } case (int)sel_Consphyla: { ID ID_1 = rewrite_ID(kc_p->u.Consphyla.ID_1, kc_current_view); phyla phyla_1 = rewrite_phyla(kc_p->u.Consphyla.phyla_1, kc_current_view); if ((ID_1 == kc_p->u.Consphyla.ID_1) && (phyla_1 == kc_p->u.Consphyla.phyla_1)) return kc_p; else return Consphyla(ID_1, phyla_1); } default: return kc_p;} } } } /*ARGSUSED*/ variables rewrite_variables #ifdef KC_USE_PROTOTYPES (variables kc_p, rview kc_current_view) #else (kc_p, kc_current_view) variables kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_variables( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilvariables: { return kc_p; } case (int)sel_Consvariables: { ID ID_1 = rewrite_ID(kc_p->u.Consvariables.ID_1, kc_current_view); variables variables_1 = rewrite_variables(kc_p->u.Consvariables.variables_1, kc_current_view); if ((ID_1 == kc_p->u.Consvariables.ID_1) && (variables_1 == kc_p->u.Consvariables.variables_1)) return kc_p; else return Consvariables(ID_1, variables_1); } default: return kc_p;} } } } /*ARGSUSED*/ argumentsstack rewrite_argumentsstack #ifdef KC_USE_PROTOTYPES (argumentsstack kc_p, rview kc_current_view) #else (kc_p, kc_current_view) argumentsstack kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_argumentsstack( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilargumentsstack: { return kc_p; } case (int)sel_Consargumentsstack: { arguments arguments_1 = rewrite_arguments(kc_p->u.Consargumentsstack.arguments_1, kc_current_view); argumentsstack argumentsstack_1 = rewrite_argumentsstack(kc_p->u.Consargumentsstack.argumentsstack_1, kc_current_view); if ((arguments_1 == kc_p->u.Consargumentsstack.arguments_1) && (argumentsstack_1 == kc_p->u.Consargumentsstack.argumentsstack_1)) return kc_p; else return Consargumentsstack(arguments_1, argumentsstack_1); } default: return kc_p;} } } } /*ARGSUSED*/ phylumstack rewrite_phylumstack #ifdef KC_USE_PROTOTYPES (phylumstack kc_p, rview kc_current_view) #else (kc_p, kc_current_view) phylumstack kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_phylumstack( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilphylumstack: { return kc_p; } case (int)sel_Consphylumstack: { ID ID_1 = rewrite_ID(kc_p->u.Consphylumstack.ID_1, kc_current_view); phylumstack phylumstack_1 = rewrite_phylumstack(kc_p->u.Consphylumstack.phylumstack_1, kc_current_view); if ((ID_1 == kc_p->u.Consphylumstack.ID_1) && (phylumstack_1 == kc_p->u.Consphylumstack.phylumstack_1)) return kc_p; else return Consphylumstack(ID_1, phylumstack_1); } default: return kc_p;} } } } /*ARGSUSED*/ phylumnamesstack rewrite_phylumnamesstack #ifdef KC_USE_PROTOTYPES (phylumnamesstack kc_p, rview kc_current_view) #else (kc_p, kc_current_view) phylumnamesstack kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_phylumnamesstack( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilphylumnamesstack: { return kc_p; } case (int)sel_Consphylumnamesstack: { phylumnames phylumnames_1 = rewrite_phylumnames(kc_p->u.Consphylumnamesstack.phylumnames_1, kc_current_view); phylumnamesstack phylumnamesstack_1 = rewrite_phylumnamesstack(kc_p->u.Consphylumnamesstack.phylumnamesstack_1, kc_current_view); if ((phylumnames_1 == kc_p->u.Consphylumnamesstack.phylumnames_1) && (phylumnamesstack_1 == kc_p->u.Consphylumnamesstack.phylumnamesstack_1)) return kc_p; else return Consphylumnamesstack(phylumnames_1, phylumnamesstack_1); } default: return kc_p;} } } } /*ARGSUSED*/ withexpressionsstack rewrite_withexpressionsstack #ifdef KC_USE_PROTOTYPES (withexpressionsstack kc_p, rview kc_current_view) #else (kc_p, kc_current_view) withexpressionsstack kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_withexpressionsstack( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilwithexpressionsstack: { return kc_p; } case (int)sel_Conswithexpressionsstack: { withexpressions withexpressions_1 = rewrite_withexpressions(kc_p->u.Conswithexpressionsstack.withexpressions_1, kc_current_view); withexpressionsstack withexpressionsstack_1 = rewrite_withexpressionsstack(kc_p->u.Conswithexpressionsstack.withexpressionsstack_1, kc_current_view); if ((withexpressions_1 == kc_p->u.Conswithexpressionsstack.withexpressions_1) && (withexpressionsstack_1 == kc_p->u.Conswithexpressionsstack.withexpressionsstack_1)) return kc_p; else return Conswithexpressionsstack(withexpressions_1, withexpressionsstack_1); } default: return kc_p;} } } } /*ARGSUSED*/ operatorstack rewrite_operatorstack #ifdef KC_USE_PROTOTYPES (operatorstack kc_p, rview kc_current_view) #else (kc_p, kc_current_view) operatorstack kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_operatorstack( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Niloperatorstack: { return kc_p; } case (int)sel_Consoperatorstack: { ID ID_1 = rewrite_ID(kc_p->u.Consoperatorstack.ID_1, kc_current_view); operatorstack operatorstack_1 = rewrite_operatorstack(kc_p->u.Consoperatorstack.operatorstack_1, kc_current_view); if ((ID_1 == kc_p->u.Consoperatorstack.ID_1) && (operatorstack_1 == kc_p->u.Consoperatorstack.operatorstack_1)) return kc_p; else return Consoperatorstack(ID_1, operatorstack_1); } default: return kc_p;} } } } /*ARGSUSED*/ variablesstack rewrite_variablesstack #ifdef KC_USE_PROTOTYPES (variablesstack kc_p, rview kc_current_view) #else (kc_p, kc_current_view) variablesstack kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_variablesstack( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilvariablesstack: { return kc_p; } case (int)sel_Consvariablesstack: { variables variables_1 = rewrite_variables(kc_p->u.Consvariablesstack.variables_1, kc_current_view); variablesstack variablesstack_1 = rewrite_variablesstack(kc_p->u.Consvariablesstack.variablesstack_1, kc_current_view); if ((variables_1 == kc_p->u.Consvariablesstack.variables_1) && (variablesstack_1 == kc_p->u.Consvariablesstack.variablesstack_1)) return kc_p; else return Consvariablesstack(variables_1, variablesstack_1); } default: return kc_p;} } } } /*ARGSUSED*/ selvarstack rewrite_selvarstack #ifdef KC_USE_PROTOTYPES (selvarstack kc_p, rview kc_current_view) #else (kc_p, kc_current_view) selvarstack kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_selvarstack( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilselvarstack: { return kc_p; } case (int)sel_Consselvarstack: { ID ID_1 = rewrite_ID(kc_p->u.Consselvarstack.ID_1, kc_current_view); selvarstack selvarstack_1 = rewrite_selvarstack(kc_p->u.Consselvarstack.selvarstack_1, kc_current_view); if ((ID_1 == kc_p->u.Consselvarstack.ID_1) && (selvarstack_1 == kc_p->u.Consselvarstack.selvarstack_1)) return kc_p; else return Consselvarstack(ID_1, selvarstack_1); } default: return kc_p;} } } } /*ARGSUSED*/ dollarvarstatus rewrite_dollarvarstatus #ifdef KC_USE_PROTOTYPES (dollarvarstatus kc_p, rview kc_current_view) #else (kc_p, kc_current_view) dollarvarstatus kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_dollarvarstatus( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_DVAllowed: { return kc_p; } case (int)sel_DVDisallowed: { return kc_p; } default: return kc_p;} } } } /*ARGSUSED*/ dollarvarsallowedstack rewrite_dollarvarsallowedstack #ifdef KC_USE_PROTOTYPES (dollarvarsallowedstack kc_p, rview kc_current_view) #else (kc_p, kc_current_view) dollarvarsallowedstack kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_dollarvarsallowedstack( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nildollarvarsallowedstack: { return kc_p; } case (int)sel_Consdollarvarsallowedstack: { dollarvarstatus dollarvarstatus_1 = rewrite_dollarvarstatus(kc_p->u.Consdollarvarsallowedstack.dollarvarstatus_1, kc_current_view); dollarvarsallowedstack dollarvarsallowedstack_1 = rewrite_dollarvarsallowedstack(kc_p->u.Consdollarvarsallowedstack.dollarvarsallowedstack_1, kc_current_view); if ((dollarvarstatus_1 == kc_p->u.Consdollarvarsallowedstack.dollarvarstatus_1) && (dollarvarsallowedstack_1 == kc_p->u.Consdollarvarsallowedstack.dollarvarsallowedstack_1)) return kc_p; else return Consdollarvarsallowedstack(dollarvarstatus_1, dollarvarsallowedstack_1); } default: return kc_p;} } } } /*ARGSUSED*/ intstack rewrite_intstack #ifdef KC_USE_PROTOTYPES (intstack kc_p, rview kc_current_view) #else (kc_p, kc_current_view) intstack kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_intstack( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilintstack: { return kc_p; } case (int)sel_Consintstack: { int int_1 = rewrite_int(kc_p->u.Consintstack.int_1, kc_current_view); intstack intstack_1 = rewrite_intstack(kc_p->u.Consintstack.intstack_1, kc_current_view); if ((int_1 == kc_p->u.Consintstack.int_1) && (intstack_1 == kc_p->u.Consintstack.intstack_1)) return kc_p; else return Consintstack(int_1, intstack_1); } default: return kc_p;} } } } /*ARGSUSED*/ idCexpressionsstack rewrite_idCexpressionsstack #ifdef KC_USE_PROTOTYPES (idCexpressionsstack kc_p, rview kc_current_view) #else (kc_p, kc_current_view) idCexpressionsstack kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_idCexpressionsstack( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_NilidCexpressionsstack: { return kc_p; } case (int)sel_ConsidCexpressionsstack: { idCexpressions idCexpressions_1 = rewrite_idCexpressions(kc_p->u.ConsidCexpressionsstack.idCexpressions_1, kc_current_view); idCexpressionsstack idCexpressionsstack_1 = rewrite_idCexpressionsstack(kc_p->u.ConsidCexpressionsstack.idCexpressionsstack_1, kc_current_view); if ((idCexpressions_1 == kc_p->u.ConsidCexpressionsstack.idCexpressions_1) && (idCexpressionsstack_1 == kc_p->u.ConsidCexpressionsstack.idCexpressionsstack_1)) return kc_p; else return ConsidCexpressionsstack(idCexpressions_1, idCexpressionsstack_1); } default: return kc_p;} } } } /*ARGSUSED*/ two_phyla rewrite_two_phyla #ifdef KC_USE_PROTOTYPES (two_phyla kc_p, rview kc_current_view) #else (kc_p, kc_current_view) two_phyla kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_two_phyla( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_TwoStorageoption: { storageoption storageoption_1 = rewrite_storageoption(kc_p->u.TwoStorageoption.storageoption_1, kc_current_view); storageoption storageoption_2 = rewrite_storageoption(kc_p->u.TwoStorageoption.storageoption_2, kc_current_view); if ((storageoption_1 == kc_p->u.TwoStorageoption.storageoption_1) && (storageoption_2 == kc_p->u.TwoStorageoption.storageoption_2)) return kc_p; else return TwoStorageoption(storageoption_1, storageoption_2); } case (int)sel_TwoProductionblock: { productionblock productionblock_1 = rewrite_productionblock(kc_p->u.TwoProductionblock.productionblock_1, kc_current_view); productionblock productionblock_2 = rewrite_productionblock(kc_p->u.TwoProductionblock.productionblock_2, kc_current_view); if ((productionblock_1 == kc_p->u.TwoProductionblock.productionblock_1) && (productionblock_2 == kc_p->u.TwoProductionblock.productionblock_2)) return kc_p; else return TwoProductionblock(productionblock_1, productionblock_2); } case (int)sel_TwoCcode_option: { Ccode_option Ccode_option_1 = rewrite_Ccode_option(kc_p->u.TwoCcode_option.Ccode_option_1, kc_current_view); Ccode_option Ccode_option_2 = rewrite_Ccode_option(kc_p->u.TwoCcode_option.Ccode_option_2, kc_current_view); if ((Ccode_option_1 == kc_p->u.TwoCcode_option.Ccode_option_1) && (Ccode_option_2 == kc_p->u.TwoCcode_option.Ccode_option_2)) return kc_p; else return TwoCcode_option(Ccode_option_1, Ccode_option_2); } case (int)sel_TwoRewriteruleinfo: { rewriteruleinfo rewriteruleinfo_1 = rewrite_rewriteruleinfo(kc_p->u.TwoRewriteruleinfo.rewriteruleinfo_1, kc_current_view); rewriteruleinfo rewriteruleinfo_2 = rewrite_rewriteruleinfo(kc_p->u.TwoRewriteruleinfo.rewriteruleinfo_2, kc_current_view); if ((rewriteruleinfo_1 == kc_p->u.TwoRewriteruleinfo.rewriteruleinfo_1) && (rewriteruleinfo_2 == kc_p->u.TwoRewriteruleinfo.rewriteruleinfo_2)) return kc_p; else return TwoRewriteruleinfo(rewriteruleinfo_1, rewriteruleinfo_2); } case (int)sel_TwoWithcaseinfo: { withcaseinfo withcaseinfo_1 = rewrite_withcaseinfo(kc_p->u.TwoWithcaseinfo.withcaseinfo_1, kc_current_view); withcaseinfo withcaseinfo_2 = rewrite_withcaseinfo(kc_p->u.TwoWithcaseinfo.withcaseinfo_2, kc_current_view); if ((withcaseinfo_1 == kc_p->u.TwoWithcaseinfo.withcaseinfo_1) && (withcaseinfo_2 == kc_p->u.TwoWithcaseinfo.withcaseinfo_2)) return kc_p; else return TwoWithcaseinfo(withcaseinfo_1, withcaseinfo_2); } case (int)sel_TwoUnparsedeclinfo: { unparsedeclinfo unparsedeclinfo_1 = rewrite_unparsedeclinfo(kc_p->u.TwoUnparsedeclinfo.unparsedeclinfo_1, kc_current_view); unparsedeclinfo unparsedeclinfo_2 = rewrite_unparsedeclinfo(kc_p->u.TwoUnparsedeclinfo.unparsedeclinfo_2, kc_current_view); if ((unparsedeclinfo_1 == kc_p->u.TwoUnparsedeclinfo.unparsedeclinfo_1) && (unparsedeclinfo_2 == kc_p->u.TwoUnparsedeclinfo.unparsedeclinfo_2)) return kc_p; else return TwoUnparsedeclinfo(unparsedeclinfo_1, unparsedeclinfo_2); } case (int)sel_TwoPatternrepresentation: { patternrepresentation patternrepresentation_1 = rewrite_patternrepresentation(kc_p->u.TwoPatternrepresentation.patternrepresentation_1, kc_current_view); patternrepresentation patternrepresentation_2 = rewrite_patternrepresentation(kc_p->u.TwoPatternrepresentation.patternrepresentation_2, kc_current_view); if ((patternrepresentation_1 == kc_p->u.TwoPatternrepresentation.patternrepresentation_1) && (patternrepresentation_2 == kc_p->u.TwoPatternrepresentation.patternrepresentation_2)) return kc_p; else return TwoPatternrepresentation(patternrepresentation_1, patternrepresentation_2); } case (int)sel_TwoElem_patternrepresentation: { elem_patternrepresentation elem_patternrepresentation_1 = rewrite_elem_patternrepresentation(kc_p->u.TwoElem_patternrepresentation.elem_patternrepresentation_1, kc_current_view); elem_patternrepresentation elem_patternrepresentation_2 = rewrite_elem_patternrepresentation(kc_p->u.TwoElem_patternrepresentation.elem_patternrepresentation_2, kc_current_view); if ((elem_patternrepresentation_1 == kc_p->u.TwoElem_patternrepresentation.elem_patternrepresentation_1) && (elem_patternrepresentation_2 == kc_p->u.TwoElem_patternrepresentation.elem_patternrepresentation_2)) return kc_p; else return TwoElem_patternrepresentation(elem_patternrepresentation_1, elem_patternrepresentation_2); } case (int)sel_TwoPaths: { paths paths_1 = rewrite_paths(kc_p->u.TwoPaths.paths_1, kc_current_view); paths paths_2 = rewrite_paths(kc_p->u.TwoPaths.paths_2, kc_current_view); if ((paths_1 == kc_p->u.TwoPaths.paths_1) && (paths_2 == kc_p->u.TwoPaths.paths_2)) return kc_p; else return TwoPaths(paths_1, paths_2); } case (int)sel_TwoPath: { path path_1 = rewrite_path(kc_p->u.TwoPath.path_1, kc_current_view); path path_2 = rewrite_path(kc_p->u.TwoPath.path_2, kc_current_view); if ((path_1 == kc_p->u.TwoPath.path_1) && (path_2 == kc_p->u.TwoPath.path_2)) return kc_p; else return TwoPath(path_1, path_2); } default: return kc_p;} } } } /*ARGSUSED*/ tribool rewrite_tribool #ifdef KC_USE_PROTOTYPES (tribool kc_p, rview kc_current_view) #else (kc_p, kc_current_view) tribool kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_tribool( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Equal: { return kc_p; } case (int)sel_Smaller: { return kc_p; } case (int)sel_Bigger: { return kc_p; } default: return kc_p;} } } } /*ARGSUSED*/ patternrepresentations rewrite_patternrepresentations #ifdef KC_USE_PROTOTYPES (patternrepresentations kc_p, rview kc_current_view) #else (kc_p, kc_current_view) patternrepresentations kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_patternrepresentations( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilpatternrepresentations: { return kc_p; } case (int)sel_Conspatternrepresentations: { patternrepresentation patternrepresentation_1 = rewrite_patternrepresentation(kc_p->u.Conspatternrepresentations.patternrepresentation_1, kc_current_view); patternrepresentations patternrepresentations_1 = rewrite_patternrepresentations(kc_p->u.Conspatternrepresentations.patternrepresentations_1, kc_current_view); if ((patternrepresentation_1 == kc_p->u.Conspatternrepresentations.patternrepresentation_1) && (patternrepresentations_1 == kc_p->u.Conspatternrepresentations.patternrepresentations_1)) return kc_p; else return Conspatternrepresentations(patternrepresentation_1, patternrepresentations_1); } default: return kc_p;} } } } /*ARGSUSED*/ patternrepresentation rewrite_patternrepresentation #ifdef KC_USE_PROTOTYPES (patternrepresentation kc_p, rview kc_current_view) #else (kc_p, kc_current_view) patternrepresentation kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_patternrepresentation( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilpatternrepresentation: { return kc_p; } case (int)sel_Conspatternrepresentation: { elem_patternrepresentation elem_patternrepresentation_1 = rewrite_elem_patternrepresentation(kc_p->u.Conspatternrepresentation.elem_patternrepresentation_1, kc_current_view); patternrepresentation patternrepresentation_1 = rewrite_patternrepresentation(kc_p->u.Conspatternrepresentation.patternrepresentation_1, kc_current_view); if ((elem_patternrepresentation_1->prod_sel == sel_PRWildcard)) { #line 898 "../gutil.k" patternrepresentation r = patternrepresentation_1; #line 3406 "rk.c" patternrepresentation kc_result = r; return (kc_result == kc_p) ? kc_p : rewrite_patternrepresentation( kc_result, kc_current_view ); } else if ((elem_patternrepresentation_1->prod_sel == sel_PRDefault)) { #line 899 "../gutil.k" patternrepresentation r = patternrepresentation_1; #line 3414 "rk.c" patternrepresentation kc_result = r; return (kc_result == kc_p) ? kc_p : rewrite_patternrepresentation( kc_result, kc_current_view ); } else if ((elem_patternrepresentation_1 == kc_p->u.Conspatternrepresentation.elem_patternrepresentation_1) && (patternrepresentation_1 == kc_p->u.Conspatternrepresentation.patternrepresentation_1)) return kc_p; else return Conspatternrepresentation(elem_patternrepresentation_1, patternrepresentation_1); } default: return kc_p;} } } } /*ARGSUSED*/ elem_patternrepresentation rewrite_elem_patternrepresentation #ifdef KC_USE_PROTOTYPES (elem_patternrepresentation kc_p, rview kc_current_view) #else (kc_p, kc_current_view) elem_patternrepresentation kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_elem_patternrepresentation( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_PRBinding: { path path_1 = rewrite_path(kc_p->u.PRBinding.path_1, kc_current_view); ID ID_1 = rewrite_ID(kc_p->u.PRBinding.ID_1, kc_current_view); if ((path_1 == kc_p->u.PRBinding.path_1) && (ID_1 == kc_p->u.PRBinding.ID_1)) return kc_p; else return PRBinding(path_1, ID_1); } case (int)sel_PRVarPredicate: { paths paths_1 = rewrite_paths(kc_p->u.PRVarPredicate.paths_1, kc_current_view); ID ID_1 = rewrite_ID(kc_p->u.PRVarPredicate.ID_1, kc_current_view); patternrepresentation patternrepresentation_1 = rewrite_patternrepresentation(kc_p->u.PRVarPredicate.patternrepresentation_1, kc_current_view); if ((paths_1 == kc_p->u.PRVarPredicate.paths_1) && (ID_1 == kc_p->u.PRVarPredicate.ID_1) && (patternrepresentation_1 == kc_p->u.PRVarPredicate.patternrepresentation_1)) return kc_p; else return PRVarPredicate(paths_1, ID_1, patternrepresentation_1); } case (int)sel_PROperPredicate: { path path_1 = rewrite_path(kc_p->u.PROperPredicate.path_1, kc_current_view); ID ID_1 = rewrite_ID(kc_p->u.PROperPredicate.ID_1, kc_current_view); if ((path_1 == kc_p->u.PROperPredicate.path_1) && (ID_1 == kc_p->u.PROperPredicate.ID_1)) return kc_p; else return PROperPredicate(path_1, ID_1); } case (int)sel_PRNonLeafBinding: { path path_1 = rewrite_path(kc_p->u.PRNonLeafBinding.path_1, kc_current_view); ID ID_1 = rewrite_ID(kc_p->u.PRNonLeafBinding.ID_1, kc_current_view); patternrepresentation patternrepresentation_1 = rewrite_patternrepresentation(kc_p->u.PRNonLeafBinding.patternrepresentation_1, kc_current_view); if ((path_1 == kc_p->u.PRNonLeafBinding.path_1) && (ID_1 == kc_p->u.PRNonLeafBinding.ID_1) && (patternrepresentation_1 == kc_p->u.PRNonLeafBinding.patternrepresentation_1)) return kc_p; else return PRNonLeafBinding(path_1, ID_1, patternrepresentation_1); } case (int)sel_PRWildcard: { path path_1 = rewrite_path(kc_p->u.PRWildcard.path_1, kc_current_view); if ((path_1 == kc_p->u.PRWildcard.path_1)) return kc_p; else return PRWildcard(path_1); } case (int)sel_PRDefault: { return kc_p; } case (int)sel_PRStringLiteral: { path path_1 = rewrite_path(kc_p->u.PRStringLiteral.path_1, kc_current_view); CexpressionDQ CexpressionDQ_1 = rewrite_CexpressionDQ(kc_p->u.PRStringLiteral.CexpressionDQ_1, kc_current_view); if ((path_1 == kc_p->u.PRStringLiteral.path_1) && (CexpressionDQ_1 == kc_p->u.PRStringLiteral.CexpressionDQ_1)) return kc_p; else return PRStringLiteral(path_1, CexpressionDQ_1); } case (int)sel_PRIntLiteral: { path path_1 = rewrite_path(kc_p->u.PRIntLiteral.path_1, kc_current_view); INT INT_1 = rewrite_INT(kc_p->u.PRIntLiteral.INT_1, kc_current_view); if ((path_1 == kc_p->u.PRIntLiteral.path_1) && (INT_1 == kc_p->u.PRIntLiteral.INT_1)) return kc_p; else return PRIntLiteral(path_1, INT_1); } default: return kc_p;} } } } /*ARGSUSED*/ path rewrite_path #ifdef KC_USE_PROTOTYPES (path kc_p, rview kc_current_view) #else (kc_p, kc_current_view) path kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_path( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilpath: { return kc_p; } case (int)sel_Conspath: { int int_1 = rewrite_int(kc_p->u.Conspath.int_1, kc_current_view); path path_1 = rewrite_path(kc_p->u.Conspath.path_1, kc_current_view); if ((int_1 == kc_p->u.Conspath.int_1) && (path_1 == kc_p->u.Conspath.path_1)) return kc_p; else return Conspath(int_1, path_1); } default: return kc_p;} } } } /*ARGSUSED*/ paths rewrite_paths #ifdef KC_USE_PROTOTYPES (paths kc_p, rview kc_current_view) #else (kc_p, kc_current_view) paths kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_paths( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilpaths: { return kc_p; } case (int)sel_Conspaths: { path path_1 = rewrite_path(kc_p->u.Conspaths.path_1, kc_current_view); paths paths_1 = rewrite_paths(kc_p->u.Conspaths.paths_1, kc_current_view); if ((path_1 == kc_p->u.Conspaths.path_1) && (paths_1 == kc_p->u.Conspaths.paths_1)) return kc_p; else return Conspaths(path_1, paths_1); } default: return kc_p;} } } } /*ARGSUSED*/ argsnumbers rewrite_argsnumbers #ifdef KC_USE_PROTOTYPES (argsnumbers kc_p, rview kc_current_view) #else (kc_p, kc_current_view) argsnumbers kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_argsnumbers( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilargsnumbers: { return kc_p; } case (int)sel_Consargsnumbers: { int int_1 = rewrite_int(kc_p->u.Consargsnumbers.int_1, kc_current_view); argsnumbers argsnumbers_1 = rewrite_argsnumbers(kc_p->u.Consargsnumbers.argsnumbers_1, kc_current_view); if ((int_1 == kc_p->u.Consargsnumbers.int_1) && (argsnumbers_1 == kc_p->u.Consargsnumbers.argsnumbers_1)) return kc_p; else return Consargsnumbers(int_1, argsnumbers_1); } default: return kc_p;} } } } /*ARGSUSED*/ rewriterulesinfo rewrite_rewriterulesinfo #ifdef KC_USE_PROTOTYPES (rewriterulesinfo kc_p, rview kc_current_view) #else (kc_p, kc_current_view) rewriterulesinfo kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_rewriterulesinfo( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilrewriterulesinfo: { return kc_p; } case (int)sel_Consrewriterulesinfo: { rewriteruleinfo rewriteruleinfo_1 = rewrite_rewriteruleinfo(kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1, kc_current_view); rewriterulesinfo rewriterulesinfo_1 = rewrite_rewriterulesinfo(kc_p->u.Consrewriterulesinfo.rewriterulesinfo_1, kc_current_view); if ((rewriteruleinfo_1 == kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1) && (rewriterulesinfo_1 == kc_p->u.Consrewriterulesinfo.rewriterulesinfo_1)) return kc_p; else return Consrewriterulesinfo(rewriteruleinfo_1, rewriterulesinfo_1); } default: return kc_p;} } } } /*ARGSUSED*/ rewriteruleinfo rewrite_rewriteruleinfo #ifdef KC_USE_PROTOTYPES (rewriteruleinfo kc_p, rview kc_current_view) #else (kc_p, kc_current_view) rewriteruleinfo kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_rewriteruleinfo( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Rewriteruleinfo: { patternrepresentation patternrepresentation_1 = rewrite_patternrepresentation(kc_p->u.Rewriteruleinfo.patternrepresentation_1, kc_current_view); patternrepresentation patternrepresentation_2 = rewrite_patternrepresentation(kc_p->u.Rewriteruleinfo.patternrepresentation_2, kc_current_view); rewriteclause rewriteclause_1 = rewrite_rewriteclause(kc_p->u.Rewriteruleinfo.rewriteclause_1, kc_current_view); if ((patternrepresentation_1 == kc_p->u.Rewriteruleinfo.patternrepresentation_1) && (patternrepresentation_2 == kc_p->u.Rewriteruleinfo.patternrepresentation_2) && (rewriteclause_1 == kc_p->u.Rewriteruleinfo.rewriteclause_1)) return kc_p; else return Rewriteruleinfo(patternrepresentation_1, patternrepresentation_2, rewriteclause_1); } default: return kc_p;} } } } /*ARGSUSED*/ withcasesinfo rewrite_withcasesinfo #ifdef KC_USE_PROTOTYPES (withcasesinfo kc_p, rview kc_current_view) #else (kc_p, kc_current_view) withcasesinfo kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_withcasesinfo( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilwithcasesinfo: { return kc_p; } case (int)sel_Conswithcasesinfo: { withcaseinfo withcaseinfo_1 = rewrite_withcaseinfo(kc_p->u.Conswithcasesinfo.withcaseinfo_1, kc_current_view); withcasesinfo withcasesinfo_1 = rewrite_withcasesinfo(kc_p->u.Conswithcasesinfo.withcasesinfo_1, kc_current_view); if ((withcaseinfo_1 == kc_p->u.Conswithcasesinfo.withcaseinfo_1) && (withcasesinfo_1 == kc_p->u.Conswithcasesinfo.withcasesinfo_1)) return kc_p; else return Conswithcasesinfo(withcaseinfo_1, withcasesinfo_1); } default: return kc_p;} } } } /*ARGSUSED*/ withcaseinfo rewrite_withcaseinfo #ifdef KC_USE_PROTOTYPES (withcaseinfo kc_p, rview kc_current_view) #else (kc_p, kc_current_view) withcaseinfo kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_withcaseinfo( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Withcaseinfo: { patternrepresentation patternrepresentation_1 = rewrite_patternrepresentation(kc_p->u.Withcaseinfo.patternrepresentation_1, kc_current_view); patternrepresentation patternrepresentation_2 = rewrite_patternrepresentation(kc_p->u.Withcaseinfo.patternrepresentation_2, kc_current_view); Ctext Ctext_1 = rewrite_Ctext(kc_p->u.Withcaseinfo.Ctext_1, kc_current_view); if ((patternrepresentation_1 == kc_p->u.Withcaseinfo.patternrepresentation_1) && (patternrepresentation_2 == kc_p->u.Withcaseinfo.patternrepresentation_2) && (Ctext_1 == kc_p->u.Withcaseinfo.Ctext_1)) return kc_p; else return Withcaseinfo(patternrepresentation_1, patternrepresentation_2, Ctext_1); } default: return kc_p;} } } } /*ARGSUSED*/ rewriteviewsinfo rewrite_rewriteviewsinfo #ifdef KC_USE_PROTOTYPES (rewriteviewsinfo kc_p, rview kc_current_view) #else (kc_p, kc_current_view) rewriteviewsinfo kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_rewriteviewsinfo( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilrewriteviewsinfo: { return kc_p; } case (int)sel_Consrewriteviewsinfo: { rewriteviewinfo rewriteviewinfo_1 = rewrite_rewriteviewinfo(kc_p->u.Consrewriteviewsinfo.rewriteviewinfo_1, kc_current_view); rewriteviewsinfo rewriteviewsinfo_1 = rewrite_rewriteviewsinfo(kc_p->u.Consrewriteviewsinfo.rewriteviewsinfo_1, kc_current_view); if ((rewriteviewinfo_1 == kc_p->u.Consrewriteviewsinfo.rewriteviewinfo_1) && (rewriteviewsinfo_1 == kc_p->u.Consrewriteviewsinfo.rewriteviewsinfo_1)) return kc_p; else return Consrewriteviewsinfo(rewriteviewinfo_1, rewriteviewsinfo_1); } default: return kc_p;} } } } /*ARGSUSED*/ rewriteviewinfo rewrite_rewriteviewinfo #ifdef KC_USE_PROTOTYPES (rewriteviewinfo kc_p, rview kc_current_view) #else (kc_p, kc_current_view) rewriteviewinfo kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_rewriteviewinfo( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Rewriteviewinfo: { ID ID_1 = rewrite_ID(kc_p->u.Rewriteviewinfo.ID_1, kc_current_view); rewriterulesinfo rewriterulesinfo_1 = rewrite_rewriterulesinfo(kc_p->u.Rewriteviewinfo.rewriterulesinfo_1, kc_current_view); if ((ID_1 == kc_p->u.Rewriteviewinfo.ID_1) && (rewriterulesinfo_1 == kc_p->u.Rewriteviewinfo.rewriterulesinfo_1)) return kc_p; else return Rewriteviewinfo(ID_1, rewriterulesinfo_1); } default: return kc_p;} } } } /*ARGSUSED*/ unparseviewsinfo rewrite_unparseviewsinfo #ifdef KC_USE_PROTOTYPES (unparseviewsinfo kc_p, rview kc_current_view) #else (kc_p, kc_current_view) unparseviewsinfo kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unparseviewsinfo( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilunparseviewsinfo: { return kc_p; } case (int)sel_Consunparseviewsinfo: { unparseviewinfo unparseviewinfo_1 = rewrite_unparseviewinfo(kc_p->u.Consunparseviewsinfo.unparseviewinfo_1, kc_current_view); unparseviewsinfo unparseviewsinfo_1 = rewrite_unparseviewsinfo(kc_p->u.Consunparseviewsinfo.unparseviewsinfo_1, kc_current_view); if ((unparseviewinfo_1 == kc_p->u.Consunparseviewsinfo.unparseviewinfo_1) && (unparseviewsinfo_1 == kc_p->u.Consunparseviewsinfo.unparseviewsinfo_1)) return kc_p; else return Consunparseviewsinfo(unparseviewinfo_1, unparseviewsinfo_1); } default: return kc_p;} } } } /*ARGSUSED*/ unparseviewinfo rewrite_unparseviewinfo #ifdef KC_USE_PROTOTYPES (unparseviewinfo kc_p, rview kc_current_view) #else (kc_p, kc_current_view) unparseviewinfo kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unparseviewinfo( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Unparseviewinfo: { ID ID_1 = rewrite_ID(kc_p->u.Unparseviewinfo.ID_1, kc_current_view); unparsedeclsinfo unparsedeclsinfo_1 = rewrite_unparsedeclsinfo(kc_p->u.Unparseviewinfo.unparsedeclsinfo_1, kc_current_view); if ((ID_1 == kc_p->u.Unparseviewinfo.ID_1) && (unparsedeclsinfo_1 == kc_p->u.Unparseviewinfo.unparsedeclsinfo_1)) return kc_p; else return Unparseviewinfo(ID_1, unparsedeclsinfo_1); } default: return kc_p;} } } } /*ARGSUSED*/ unparsedeclsinfo rewrite_unparsedeclsinfo #ifdef KC_USE_PROTOTYPES (unparsedeclsinfo kc_p, rview kc_current_view) #else (kc_p, kc_current_view) unparsedeclsinfo kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unparsedeclsinfo( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilunparsedeclsinfo: { return kc_p; } case (int)sel_Consunparsedeclsinfo: { unparsedeclinfo unparsedeclinfo_1 = rewrite_unparsedeclinfo(kc_p->u.Consunparsedeclsinfo.unparsedeclinfo_1, kc_current_view); unparsedeclsinfo unparsedeclsinfo_1 = rewrite_unparsedeclsinfo(kc_p->u.Consunparsedeclsinfo.unparsedeclsinfo_1, kc_current_view); if ((unparsedeclinfo_1 == kc_p->u.Consunparsedeclsinfo.unparsedeclinfo_1) && (unparsedeclsinfo_1 == kc_p->u.Consunparsedeclsinfo.unparsedeclsinfo_1)) return kc_p; else return Consunparsedeclsinfo(unparsedeclinfo_1, unparsedeclsinfo_1); } default: return kc_p;} } } } /*ARGSUSED*/ unparsedeclinfo rewrite_unparsedeclinfo #ifdef KC_USE_PROTOTYPES (unparsedeclinfo kc_p, rview kc_current_view) #else (kc_p, kc_current_view) unparsedeclinfo kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unparsedeclinfo( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Unparsedeclinfo: { patternrepresentation patternrepresentation_1 = rewrite_patternrepresentation(kc_p->u.Unparsedeclinfo.patternrepresentation_1, kc_current_view); patternrepresentation patternrepresentation_2 = rewrite_patternrepresentation(kc_p->u.Unparsedeclinfo.patternrepresentation_2, kc_current_view); unparseclause unparseclause_1 = rewrite_unparseclause(kc_p->u.Unparsedeclinfo.unparseclause_1, kc_current_view); if ((patternrepresentation_1 == kc_p->u.Unparsedeclinfo.patternrepresentation_1) && (patternrepresentation_2 == kc_p->u.Unparsedeclinfo.patternrepresentation_2) && (unparseclause_1 == kc_p->u.Unparsedeclinfo.unparseclause_1)) return kc_p; else return Unparsedeclinfo(patternrepresentation_1, patternrepresentation_2, unparseclause_1); } default: return kc_p;} } } } /*ARGSUSED*/ ac_declaration rewrite_ac_declaration #ifdef KC_USE_PROTOTYPES (ac_declaration kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_declaration kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_declaration( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_AcDeclaration: { ac_declaration_specifiers ac_declaration_specifiers_1 = rewrite_ac_declaration_specifiers(kc_p->u.AcDeclaration.ac_declaration_specifiers_1, kc_current_view); ac_init_declarator_list ac_init_declarator_list_1 = rewrite_ac_init_declarator_list(kc_p->u.AcDeclaration.ac_init_declarator_list_1, kc_current_view); if ((ac_declaration_specifiers_1 == kc_p->u.AcDeclaration.ac_declaration_specifiers_1) && (ac_init_declarator_list_1 == kc_p->u.AcDeclaration.ac_init_declarator_list_1)) return kc_p; else return AcDeclaration(ac_declaration_specifiers_1, ac_init_declarator_list_1); } default: return kc_p;} } } } /*ARGSUSED*/ ac_declaration_list rewrite_ac_declaration_list #ifdef KC_USE_PROTOTYPES (ac_declaration_list kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_declaration_list kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_declaration_list( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilac_declaration_list: { return kc_p; } case (int)sel_Consac_declaration_list: { ac_declaration ac_declaration_1 = rewrite_ac_declaration(kc_p->u.Consac_declaration_list.ac_declaration_1, kc_current_view); ac_declaration_list ac_declaration_list_1 = rewrite_ac_declaration_list(kc_p->u.Consac_declaration_list.ac_declaration_list_1, kc_current_view); if ((ac_declaration_1 == kc_p->u.Consac_declaration_list.ac_declaration_1) && (ac_declaration_list_1 == kc_p->u.Consac_declaration_list.ac_declaration_list_1)) return kc_p; else return Consac_declaration_list(ac_declaration_1, ac_declaration_list_1); } default: return kc_p;} } } } /*ARGSUSED*/ ac_declaration_specifiers rewrite_ac_declaration_specifiers #ifdef KC_USE_PROTOTYPES (ac_declaration_specifiers kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_declaration_specifiers kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_declaration_specifiers( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilac_declaration_specifiers: { return kc_p; } case (int)sel_Consac_declaration_specifiers: { ac_declaration_specifier ac_declaration_specifier_1 = rewrite_ac_declaration_specifier(kc_p->u.Consac_declaration_specifiers.ac_declaration_specifier_1, kc_current_view); ac_declaration_specifiers ac_declaration_specifiers_1 = rewrite_ac_declaration_specifiers(kc_p->u.Consac_declaration_specifiers.ac_declaration_specifiers_1, kc_current_view); if ((ac_declaration_specifier_1 == kc_p->u.Consac_declaration_specifiers.ac_declaration_specifier_1) && (ac_declaration_specifiers_1 == kc_p->u.Consac_declaration_specifiers.ac_declaration_specifiers_1)) return kc_p; else return Consac_declaration_specifiers(ac_declaration_specifier_1, ac_declaration_specifiers_1); } default: return kc_p;} } } } /*ARGSUSED*/ ac_declaration_specifier rewrite_ac_declaration_specifier #ifdef KC_USE_PROTOTYPES (ac_declaration_specifier kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_declaration_specifier kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_declaration_specifier( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_AcDeclSpecStorageSpec: { ac_storage_class_specifier ac_storage_class_specifier_1 = rewrite_ac_storage_class_specifier(kc_p->u.AcDeclSpecStorageSpec.ac_storage_class_specifier_1, kc_current_view); if ((ac_storage_class_specifier_1 == kc_p->u.AcDeclSpecStorageSpec.ac_storage_class_specifier_1)) return kc_p; else return AcDeclSpecStorageSpec(ac_storage_class_specifier_1); } case (int)sel_AcDeclSpecTypeSpec: { ac_type_specifier ac_type_specifier_1 = rewrite_ac_type_specifier(kc_p->u.AcDeclSpecTypeSpec.ac_type_specifier_1, kc_current_view); if ((ac_type_specifier_1 == kc_p->u.AcDeclSpecTypeSpec.ac_type_specifier_1)) return kc_p; else return AcDeclSpecTypeSpec(ac_type_specifier_1); } case (int)sel_AcDeclSpecTypeQual: { ac_type_qualifier ac_type_qualifier_1 = rewrite_ac_type_qualifier(kc_p->u.AcDeclSpecTypeQual.ac_type_qualifier_1, kc_current_view); if ((ac_type_qualifier_1 == kc_p->u.AcDeclSpecTypeQual.ac_type_qualifier_1)) return kc_p; else return AcDeclSpecTypeQual(ac_type_qualifier_1); } default: return kc_p;} } } } /*ARGSUSED*/ ac_storage_class_specifier rewrite_ac_storage_class_specifier #ifdef KC_USE_PROTOTYPES (ac_storage_class_specifier kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_storage_class_specifier kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_storage_class_specifier( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_AcAuto: { return kc_p; } case (int)sel_AcRegister: { return kc_p; } case (int)sel_AcStatic: { return kc_p; } case (int)sel_AcExtern: { return kc_p; } case (int)sel_AcTypedef: { return kc_p; } default: return kc_p;} } } } /*ARGSUSED*/ ac_type_specifier rewrite_ac_type_specifier #ifdef KC_USE_PROTOTYPES (ac_type_specifier kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_type_specifier kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_type_specifier( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_AcTypeSpec: { ID ID_1 = rewrite_ID(kc_p->u.AcTypeSpec.ID_1, kc_current_view); if ((ID_1 == kc_p->u.AcTypeSpec.ID_1)) return kc_p; else return AcTypeSpec(ID_1); } default: return kc_p;} } } } /*ARGSUSED*/ ac_type_qualifier rewrite_ac_type_qualifier #ifdef KC_USE_PROTOTYPES (ac_type_qualifier kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_type_qualifier kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_type_qualifier( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_AcConst: { return kc_p; } case (int)sel_AcVolatile: { return kc_p; } default: return kc_p;} } } } /*ARGSUSED*/ ac_init_declarator_list rewrite_ac_init_declarator_list #ifdef KC_USE_PROTOTYPES (ac_init_declarator_list kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_init_declarator_list kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_init_declarator_list( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilac_init_declarator_list: { return kc_p; } case (int)sel_Consac_init_declarator_list: { ac_init_declarator ac_init_declarator_1 = rewrite_ac_init_declarator(kc_p->u.Consac_init_declarator_list.ac_init_declarator_1, kc_current_view); ac_init_declarator_list ac_init_declarator_list_1 = rewrite_ac_init_declarator_list(kc_p->u.Consac_init_declarator_list.ac_init_declarator_list_1, kc_current_view); if ((ac_init_declarator_1 == kc_p->u.Consac_init_declarator_list.ac_init_declarator_1) && (ac_init_declarator_list_1 == kc_p->u.Consac_init_declarator_list.ac_init_declarator_list_1)) return kc_p; else return Consac_init_declarator_list(ac_init_declarator_1, ac_init_declarator_list_1); } default: return kc_p;} } } } /*ARGSUSED*/ ac_init_declarator rewrite_ac_init_declarator #ifdef KC_USE_PROTOTYPES (ac_init_declarator kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_init_declarator kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_init_declarator( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_AcInitDecl: { ac_declarator ac_declarator_1 = rewrite_ac_declarator(kc_p->u.AcInitDecl.ac_declarator_1, kc_current_view); if ((ac_declarator_1 == kc_p->u.AcInitDecl.ac_declarator_1)) return kc_p; else return AcInitDecl(ac_declarator_1); } default: return kc_p;} } } } /*ARGSUSED*/ ac_declarator rewrite_ac_declarator #ifdef KC_USE_PROTOTYPES (ac_declarator kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_declarator kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_declarator( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_AcDeclarator: { ac_pointer_option ac_pointer_option_1 = rewrite_ac_pointer_option(kc_p->u.AcDeclarator.ac_pointer_option_1, kc_current_view); ac_direct_declarator ac_direct_declarator_1 = rewrite_ac_direct_declarator(kc_p->u.AcDeclarator.ac_direct_declarator_1, kc_current_view); if ((ac_pointer_option_1 == kc_p->u.AcDeclarator.ac_pointer_option_1) && (ac_direct_declarator_1 == kc_p->u.AcDeclarator.ac_direct_declarator_1)) return kc_p; else return AcDeclarator(ac_pointer_option_1, ac_direct_declarator_1); } default: return kc_p;} } } } /*ARGSUSED*/ ac_direct_declarator rewrite_ac_direct_declarator #ifdef KC_USE_PROTOTYPES (ac_direct_declarator kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_direct_declarator kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_direct_declarator( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_AcDirectDeclId: { ID ID_1 = rewrite_ID(kc_p->u.AcDirectDeclId.ID_1, kc_current_view); if ((ID_1 == kc_p->u.AcDirectDeclId.ID_1)) return kc_p; else return AcDirectDeclId(ID_1); } case (int)sel_AcDirectDeclPack: { ac_declarator ac_declarator_1 = rewrite_ac_declarator(kc_p->u.AcDirectDeclPack.ac_declarator_1, kc_current_view); if ((ac_declarator_1 == kc_p->u.AcDirectDeclPack.ac_declarator_1)) return kc_p; else return AcDirectDeclPack(ac_declarator_1); } case (int)sel_AcDirectDeclArray: { ac_direct_declarator ac_direct_declarator_1 = rewrite_ac_direct_declarator(kc_p->u.AcDirectDeclArray.ac_direct_declarator_1, kc_current_view); ac_constant_expression_option ac_constant_expression_option_1 = rewrite_ac_constant_expression_option(kc_p->u.AcDirectDeclArray.ac_constant_expression_option_1, kc_current_view); if ((ac_direct_declarator_1 == kc_p->u.AcDirectDeclArray.ac_direct_declarator_1) && (ac_constant_expression_option_1 == kc_p->u.AcDirectDeclArray.ac_constant_expression_option_1)) return kc_p; else return AcDirectDeclArray(ac_direct_declarator_1, ac_constant_expression_option_1); } case (int)sel_AcDirectDeclProto: { ac_direct_declarator ac_direct_declarator_1 = rewrite_ac_direct_declarator(kc_p->u.AcDirectDeclProto.ac_direct_declarator_1, kc_current_view); ac_parameter_type_list ac_parameter_type_list_1 = rewrite_ac_parameter_type_list(kc_p->u.AcDirectDeclProto.ac_parameter_type_list_1, kc_current_view); if ((ac_direct_declarator_1 == kc_p->u.AcDirectDeclProto.ac_direct_declarator_1) && (ac_parameter_type_list_1 == kc_p->u.AcDirectDeclProto.ac_parameter_type_list_1)) return kc_p; else return AcDirectDeclProto(ac_direct_declarator_1, ac_parameter_type_list_1); } case (int)sel_AcDirectDeclKandR: { ac_direct_declarator ac_direct_declarator_1 = rewrite_ac_direct_declarator(kc_p->u.AcDirectDeclKandR.ac_direct_declarator_1, kc_current_view); ac_identifier_list ac_identifier_list_1 = rewrite_ac_identifier_list(kc_p->u.AcDirectDeclKandR.ac_identifier_list_1, kc_current_view); if ((ac_direct_declarator_1 == kc_p->u.AcDirectDeclKandR.ac_direct_declarator_1) && (ac_identifier_list_1 == kc_p->u.AcDirectDeclKandR.ac_identifier_list_1)) return kc_p; else return AcDirectDeclKandR(ac_direct_declarator_1, ac_identifier_list_1); } default: return kc_p;} } } } /*ARGSUSED*/ ac_pointer_option rewrite_ac_pointer_option #ifdef KC_USE_PROTOTYPES (ac_pointer_option kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_pointer_option kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_pointer_option( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nopointer: { return kc_p; } case (int)sel_Yespointer: { ac_pointer ac_pointer_1 = rewrite_ac_pointer(kc_p->u.Yespointer.ac_pointer_1, kc_current_view); if ((ac_pointer_1 == kc_p->u.Yespointer.ac_pointer_1)) return kc_p; else return Yespointer(ac_pointer_1); } default: return kc_p;} } } } /*ARGSUSED*/ ac_pointer rewrite_ac_pointer #ifdef KC_USE_PROTOTYPES (ac_pointer kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_pointer kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_pointer( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_AcPointerNil: { ac_type_qualifier_list ac_type_qualifier_list_1 = rewrite_ac_type_qualifier_list(kc_p->u.AcPointerNil.ac_type_qualifier_list_1, kc_current_view); if ((ac_type_qualifier_list_1 == kc_p->u.AcPointerNil.ac_type_qualifier_list_1)) return kc_p; else return AcPointerNil(ac_type_qualifier_list_1); } case (int)sel_AcPointerCons: { ac_type_qualifier_list ac_type_qualifier_list_1 = rewrite_ac_type_qualifier_list(kc_p->u.AcPointerCons.ac_type_qualifier_list_1, kc_current_view); ac_pointer ac_pointer_1 = rewrite_ac_pointer(kc_p->u.AcPointerCons.ac_pointer_1, kc_current_view); if ((ac_type_qualifier_list_1 == kc_p->u.AcPointerCons.ac_type_qualifier_list_1) && (ac_pointer_1 == kc_p->u.AcPointerCons.ac_pointer_1)) return kc_p; else return AcPointerCons(ac_type_qualifier_list_1, ac_pointer_1); } default: return kc_p;} } } } /*ARGSUSED*/ ac_type_qualifier_list rewrite_ac_type_qualifier_list #ifdef KC_USE_PROTOTYPES (ac_type_qualifier_list kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_type_qualifier_list kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_type_qualifier_list( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilac_type_qualifier_list: { return kc_p; } case (int)sel_Consac_type_qualifier_list: { ac_type_qualifier ac_type_qualifier_1 = rewrite_ac_type_qualifier(kc_p->u.Consac_type_qualifier_list.ac_type_qualifier_1, kc_current_view); ac_type_qualifier_list ac_type_qualifier_list_1 = rewrite_ac_type_qualifier_list(kc_p->u.Consac_type_qualifier_list.ac_type_qualifier_list_1, kc_current_view); if ((ac_type_qualifier_1 == kc_p->u.Consac_type_qualifier_list.ac_type_qualifier_1) && (ac_type_qualifier_list_1 == kc_p->u.Consac_type_qualifier_list.ac_type_qualifier_list_1)) return kc_p; else return Consac_type_qualifier_list(ac_type_qualifier_1, ac_type_qualifier_list_1); } default: return kc_p;} } } } /*ARGSUSED*/ ac_parameter_type_list rewrite_ac_parameter_type_list #ifdef KC_USE_PROTOTYPES (ac_parameter_type_list kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_parameter_type_list kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_parameter_type_list( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_AcParList: { ac_parameter_list ac_parameter_list_1 = rewrite_ac_parameter_list(kc_p->u.AcParList.ac_parameter_list_1, kc_current_view); if ((ac_parameter_list_1 == kc_p->u.AcParList.ac_parameter_list_1)) return kc_p; else return AcParList(ac_parameter_list_1); } case (int)sel_AcParList3Dot: { ac_parameter_list ac_parameter_list_1 = rewrite_ac_parameter_list(kc_p->u.AcParList3Dot.ac_parameter_list_1, kc_current_view); if ((ac_parameter_list_1 == kc_p->u.AcParList3Dot.ac_parameter_list_1)) return kc_p; else return AcParList3Dot(ac_parameter_list_1); } default: return kc_p;} } } } /*ARGSUSED*/ ac_parameter_list rewrite_ac_parameter_list #ifdef KC_USE_PROTOTYPES (ac_parameter_list kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_parameter_list kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_parameter_list( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilac_parameter_list: { return kc_p; } case (int)sel_Consac_parameter_list: { ac_parameter_declaration ac_parameter_declaration_1 = rewrite_ac_parameter_declaration(kc_p->u.Consac_parameter_list.ac_parameter_declaration_1, kc_current_view); ac_parameter_list ac_parameter_list_1 = rewrite_ac_parameter_list(kc_p->u.Consac_parameter_list.ac_parameter_list_1, kc_current_view); if ((ac_parameter_declaration_1 == kc_p->u.Consac_parameter_list.ac_parameter_declaration_1) && (ac_parameter_list_1 == kc_p->u.Consac_parameter_list.ac_parameter_list_1)) return kc_p; else return Consac_parameter_list(ac_parameter_declaration_1, ac_parameter_list_1); } default: return kc_p;} } } } /*ARGSUSED*/ ac_parameter_declaration rewrite_ac_parameter_declaration #ifdef KC_USE_PROTOTYPES (ac_parameter_declaration kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_parameter_declaration kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_parameter_declaration( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_AcParDeclDecl: { ac_declaration_specifiers ac_declaration_specifiers_1 = rewrite_ac_declaration_specifiers(kc_p->u.AcParDeclDecl.ac_declaration_specifiers_1, kc_current_view); ac_declarator ac_declarator_1 = rewrite_ac_declarator(kc_p->u.AcParDeclDecl.ac_declarator_1, kc_current_view); if ((ac_declaration_specifiers_1 == kc_p->u.AcParDeclDecl.ac_declaration_specifiers_1) && (ac_declarator_1 == kc_p->u.AcParDeclDecl.ac_declarator_1)) return kc_p; else return AcParDeclDecl(ac_declaration_specifiers_1, ac_declarator_1); } case (int)sel_AcParDeclAbsdecl: { ac_declaration_specifiers ac_declaration_specifiers_1 = rewrite_ac_declaration_specifiers(kc_p->u.AcParDeclAbsdecl.ac_declaration_specifiers_1, kc_current_view); ac_abstract_declarator ac_abstract_declarator_1 = rewrite_ac_abstract_declarator(kc_p->u.AcParDeclAbsdecl.ac_abstract_declarator_1, kc_current_view); if ((ac_declaration_specifiers_1 == kc_p->u.AcParDeclAbsdecl.ac_declaration_specifiers_1) && (ac_abstract_declarator_1 == kc_p->u.AcParDeclAbsdecl.ac_abstract_declarator_1)) return kc_p; else return AcParDeclAbsdecl(ac_declaration_specifiers_1, ac_abstract_declarator_1); } default: return kc_p;} } } } /*ARGSUSED*/ ac_identifier_list rewrite_ac_identifier_list #ifdef KC_USE_PROTOTYPES (ac_identifier_list kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_identifier_list kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_identifier_list( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilac_identifier_list: { return kc_p; } case (int)sel_Consac_identifier_list: { ID ID_1 = rewrite_ID(kc_p->u.Consac_identifier_list.ID_1, kc_current_view); ac_identifier_list ac_identifier_list_1 = rewrite_ac_identifier_list(kc_p->u.Consac_identifier_list.ac_identifier_list_1, kc_current_view); if ((ID_1 == kc_p->u.Consac_identifier_list.ID_1) && (ac_identifier_list_1 == kc_p->u.Consac_identifier_list.ac_identifier_list_1)) return kc_p; else return Consac_identifier_list(ID_1, ac_identifier_list_1); } default: return kc_p;} } } } /*ARGSUSED*/ ac_abstract_declarator rewrite_ac_abstract_declarator #ifdef KC_USE_PROTOTYPES (ac_abstract_declarator kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_abstract_declarator kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_abstract_declarator( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_AcAbsdeclPointer: { ac_pointer ac_pointer_1 = rewrite_ac_pointer(kc_p->u.AcAbsdeclPointer.ac_pointer_1, kc_current_view); if ((ac_pointer_1 == kc_p->u.AcAbsdeclPointer.ac_pointer_1)) return kc_p; else return AcAbsdeclPointer(ac_pointer_1); } case (int)sel_AcAbsdeclDirdecl: { ac_pointer_option ac_pointer_option_1 = rewrite_ac_pointer_option(kc_p->u.AcAbsdeclDirdecl.ac_pointer_option_1, kc_current_view); ac_direct_abstract_declarator ac_direct_abstract_declarator_1 = rewrite_ac_direct_abstract_declarator(kc_p->u.AcAbsdeclDirdecl.ac_direct_abstract_declarator_1, kc_current_view); if ((ac_pointer_option_1 == kc_p->u.AcAbsdeclDirdecl.ac_pointer_option_1) && (ac_direct_abstract_declarator_1 == kc_p->u.AcAbsdeclDirdecl.ac_direct_abstract_declarator_1)) return kc_p; else return AcAbsdeclDirdecl(ac_pointer_option_1, ac_direct_abstract_declarator_1); } default: return kc_p;} } } } /*ARGSUSED*/ ac_direct_abstract_declarator_option rewrite_ac_direct_abstract_declarator_option #ifdef KC_USE_PROTOTYPES (ac_direct_abstract_declarator_option kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_direct_abstract_declarator_option kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_direct_abstract_declarator_option( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Noac_direct_abstract_declarator: { return kc_p; } case (int)sel_Yesac_direct_abstract_declarator: { ac_direct_abstract_declarator ac_direct_abstract_declarator_1 = rewrite_ac_direct_abstract_declarator(kc_p->u.Yesac_direct_abstract_declarator.ac_direct_abstract_declarator_1, kc_current_view); if ((ac_direct_abstract_declarator_1 == kc_p->u.Yesac_direct_abstract_declarator.ac_direct_abstract_declarator_1)) return kc_p; else return Yesac_direct_abstract_declarator(ac_direct_abstract_declarator_1); } default: return kc_p;} } } } /*ARGSUSED*/ ac_direct_abstract_declarator rewrite_ac_direct_abstract_declarator #ifdef KC_USE_PROTOTYPES (ac_direct_abstract_declarator kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_direct_abstract_declarator kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_direct_abstract_declarator( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_AcDirAbsdeclPack: { ac_abstract_declarator ac_abstract_declarator_1 = rewrite_ac_abstract_declarator(kc_p->u.AcDirAbsdeclPack.ac_abstract_declarator_1, kc_current_view); if ((ac_abstract_declarator_1 == kc_p->u.AcDirAbsdeclPack.ac_abstract_declarator_1)) return kc_p; else return AcDirAbsdeclPack(ac_abstract_declarator_1); } case (int)sel_AcDirAbsdeclArray: { ac_direct_abstract_declarator_option ac_direct_abstract_declarator_option_1 = rewrite_ac_direct_abstract_declarator_option(kc_p->u.AcDirAbsdeclArray.ac_direct_abstract_declarator_option_1, kc_current_view); ac_constant_expression_option ac_constant_expression_option_1 = rewrite_ac_constant_expression_option(kc_p->u.AcDirAbsdeclArray.ac_constant_expression_option_1, kc_current_view); if ((ac_direct_abstract_declarator_option_1 == kc_p->u.AcDirAbsdeclArray.ac_direct_abstract_declarator_option_1) && (ac_constant_expression_option_1 == kc_p->u.AcDirAbsdeclArray.ac_constant_expression_option_1)) return kc_p; else return AcDirAbsdeclArray(ac_direct_abstract_declarator_option_1, ac_constant_expression_option_1); } case (int)sel_AcDirAbsdeclFn: { ac_direct_abstract_declarator_option ac_direct_abstract_declarator_option_1 = rewrite_ac_direct_abstract_declarator_option(kc_p->u.AcDirAbsdeclFn.ac_direct_abstract_declarator_option_1, kc_current_view); ac_parameter_type_list ac_parameter_type_list_1 = rewrite_ac_parameter_type_list(kc_p->u.AcDirAbsdeclFn.ac_parameter_type_list_1, kc_current_view); if ((ac_direct_abstract_declarator_option_1 == kc_p->u.AcDirAbsdeclFn.ac_direct_abstract_declarator_option_1) && (ac_parameter_type_list_1 == kc_p->u.AcDirAbsdeclFn.ac_parameter_type_list_1)) return kc_p; else return AcDirAbsdeclFn(ac_direct_abstract_declarator_option_1, ac_parameter_type_list_1); } default: return kc_p;} } } } /*ARGSUSED*/ ac_constant_expression_option rewrite_ac_constant_expression_option #ifdef KC_USE_PROTOTYPES (ac_constant_expression_option kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_constant_expression_option kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_constant_expression_option( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Yesac_constant_expression: { ac_constant_expression ac_constant_expression_1 = rewrite_ac_constant_expression(kc_p->u.Yesac_constant_expression.ac_constant_expression_1, kc_current_view); if ((ac_constant_expression_1 == kc_p->u.Yesac_constant_expression.ac_constant_expression_1)) return kc_p; else return Yesac_constant_expression(ac_constant_expression_1); } default: return kc_p;} } } } /*ARGSUSED*/ ac_constant_expression rewrite_ac_constant_expression #ifdef KC_USE_PROTOTYPES (ac_constant_expression kc_p, rview kc_current_view) #else (kc_p, kc_current_view) ac_constant_expression kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_constant_expression( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_AcConstExpr: { Cexpression Cexpression_1 = rewrite_Cexpression(kc_p->u.AcConstExpr.Cexpression_1, kc_current_view); if ((Cexpression_1 == kc_p->u.AcConstExpr.Cexpression_1)) return kc_p; else return AcConstExpr(Cexpression_1); } default: return kc_p;} } } } /*ARGSUSED*/ error rewrite_error #ifdef KC_USE_PROTOTYPES (error kc_p, rview kc_current_view) #else (kc_p, kc_current_view) error kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_error( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Fatal: { fileline fileline_1 = rewrite_fileline(kc_p->u.Fatal.fileline_1, kc_current_view); problem problem_1 = rewrite_problem(kc_p->u.Fatal.problem_1, kc_current_view); if ((fileline_1 == kc_p->u.Fatal.fileline_1) && (problem_1 == kc_p->u.Fatal.problem_1)) return kc_p; else return Fatal(fileline_1, problem_1); } case (int)sel_NonFatal: { fileline fileline_1 = rewrite_fileline(kc_p->u.NonFatal.fileline_1, kc_current_view); problem problem_1 = rewrite_problem(kc_p->u.NonFatal.problem_1, kc_current_view); if ((fileline_1 == kc_p->u.NonFatal.fileline_1) && (problem_1 == kc_p->u.NonFatal.problem_1)) return kc_p; else return NonFatal(fileline_1, problem_1); } case (int)sel_Warning: { fileline fileline_1 = rewrite_fileline(kc_p->u.Warning.fileline_1, kc_current_view); problem problem_1 = rewrite_problem(kc_p->u.Warning.problem_1, kc_current_view); if ((fileline_1 == kc_p->u.Warning.fileline_1) && (problem_1 == kc_p->u.Warning.problem_1)) return kc_p; else return Warning(fileline_1, problem_1); } default: return kc_p;} } } } /*ARGSUSED*/ problem rewrite_problem #ifdef KC_USE_PROTOTYPES (problem kc_p, rview kc_current_view) #else (kc_p, kc_current_view) problem kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_problem( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Problem1: { casestring casestring_1 = rewrite_casestring(kc_p->u.Problem1.casestring_1, kc_current_view); if ((casestring_1 == kc_p->u.Problem1.casestring_1)) return kc_p; else return Problem1(casestring_1); } case (int)sel_Problem1ID: { casestring casestring_1 = rewrite_casestring(kc_p->u.Problem1ID.casestring_1, kc_current_view); ID ID_1 = rewrite_ID(kc_p->u.Problem1ID.ID_1, kc_current_view); if ((casestring_1 == kc_p->u.Problem1ID.casestring_1) && (ID_1 == kc_p->u.Problem1ID.ID_1)) return kc_p; else return Problem1ID(casestring_1, ID_1); } case (int)sel_Problem1tID: { casestring casestring_1 = rewrite_casestring(kc_p->u.Problem1tID.casestring_1, kc_current_view); ID ID_1 = rewrite_ID(kc_p->u.Problem1tID.ID_1, kc_current_view); if ((casestring_1 == kc_p->u.Problem1tID.casestring_1) && (ID_1 == kc_p->u.Problem1tID.ID_1)) return kc_p; else return Problem1tID(casestring_1, ID_1); } case (int)sel_Problem1we: { casestring casestring_1 = rewrite_casestring(kc_p->u.Problem1we.casestring_1, kc_current_view); withexpression withexpression_1 = rewrite_withexpression(kc_p->u.Problem1we.withexpression_1, kc_current_view); if ((casestring_1 == kc_p->u.Problem1we.casestring_1) && (withexpression_1 == kc_p->u.Problem1we.withexpression_1)) return kc_p; else return Problem1we(casestring_1, withexpression_1); } case (int)sel_Problem1ID1ID: { casestring casestring_1 = rewrite_casestring(kc_p->u.Problem1ID1ID.casestring_1, kc_current_view); ID ID_1 = rewrite_ID(kc_p->u.Problem1ID1ID.ID_1, kc_current_view); casestring casestring_2 = rewrite_casestring(kc_p->u.Problem1ID1ID.casestring_2, kc_current_view); ID ID_2 = rewrite_ID(kc_p->u.Problem1ID1ID.ID_2, kc_current_view); if ((casestring_1 == kc_p->u.Problem1ID1ID.casestring_1) && (ID_1 == kc_p->u.Problem1ID1ID.ID_1) && (casestring_2 == kc_p->u.Problem1ID1ID.casestring_2) && (ID_2 == kc_p->u.Problem1ID1ID.ID_2)) return kc_p; else return Problem1ID1ID(casestring_1, ID_1, casestring_2, ID_2); } case (int)sel_Problem1t1ID: { casestring casestring_1 = rewrite_casestring(kc_p->u.Problem1t1ID.casestring_1, kc_current_view); IDtype IDtype_1 = rewrite_IDtype(kc_p->u.Problem1t1ID.IDtype_1, kc_current_view); casestring casestring_2 = rewrite_casestring(kc_p->u.Problem1t1ID.casestring_2, kc_current_view); ID ID_1 = rewrite_ID(kc_p->u.Problem1t1ID.ID_1, kc_current_view); if ((casestring_1 == kc_p->u.Problem1t1ID.casestring_1) && (IDtype_1 == kc_p->u.Problem1t1ID.IDtype_1) && (casestring_2 == kc_p->u.Problem1t1ID.casestring_2) && (ID_1 == kc_p->u.Problem1t1ID.ID_1)) return kc_p; else return Problem1t1ID(casestring_1, IDtype_1, casestring_2, ID_1); } case (int)sel_Problem1INT: { casestring casestring_1 = rewrite_casestring(kc_p->u.Problem1INT.casestring_1, kc_current_view); INT INT_1 = rewrite_INT(kc_p->u.Problem1INT.INT_1, kc_current_view); if ((casestring_1 == kc_p->u.Problem1INT.casestring_1) && (INT_1 == kc_p->u.Problem1INT.INT_1)) return kc_p; else return Problem1INT(casestring_1, INT_1); } case (int)sel_Problem1int1: { casestring casestring_1 = rewrite_casestring(kc_p->u.Problem1int1.casestring_1, kc_current_view); int int_1 = rewrite_int(kc_p->u.Problem1int1.int_1, kc_current_view); casestring casestring_2 = rewrite_casestring(kc_p->u.Problem1int1.casestring_2, kc_current_view); if ((casestring_1 == kc_p->u.Problem1int1.casestring_1) && (int_1 == kc_p->u.Problem1int1.int_1) && (casestring_2 == kc_p->u.Problem1int1.casestring_2)) return kc_p; else return Problem1int1(casestring_1, int_1, casestring_2); } case (int)sel_Problem1INT1ID: { casestring casestring_1 = rewrite_casestring(kc_p->u.Problem1INT1ID.casestring_1, kc_current_view); INT INT_1 = rewrite_INT(kc_p->u.Problem1INT1ID.INT_1, kc_current_view); casestring casestring_2 = rewrite_casestring(kc_p->u.Problem1INT1ID.casestring_2, kc_current_view); ID ID_1 = rewrite_ID(kc_p->u.Problem1INT1ID.ID_1, kc_current_view); if ((casestring_1 == kc_p->u.Problem1INT1ID.casestring_1) && (INT_1 == kc_p->u.Problem1INT1ID.INT_1) && (casestring_2 == kc_p->u.Problem1INT1ID.casestring_2) && (ID_1 == kc_p->u.Problem1INT1ID.ID_1)) return kc_p; else return Problem1INT1ID(casestring_1, INT_1, casestring_2, ID_1); } case (int)sel_Problem1ID1ID1ID: { casestring casestring_1 = rewrite_casestring(kc_p->u.Problem1ID1ID1ID.casestring_1, kc_current_view); ID ID_1 = rewrite_ID(kc_p->u.Problem1ID1ID1ID.ID_1, kc_current_view); casestring casestring_2 = rewrite_casestring(kc_p->u.Problem1ID1ID1ID.casestring_2, kc_current_view); ID ID_2 = rewrite_ID(kc_p->u.Problem1ID1ID1ID.ID_2, kc_current_view); casestring casestring_3 = rewrite_casestring(kc_p->u.Problem1ID1ID1ID.casestring_3, kc_current_view); ID ID_3 = rewrite_ID(kc_p->u.Problem1ID1ID1ID.ID_3, kc_current_view); if ((casestring_1 == kc_p->u.Problem1ID1ID1ID.casestring_1) && (ID_1 == kc_p->u.Problem1ID1ID1ID.ID_1) && (casestring_2 == kc_p->u.Problem1ID1ID1ID.casestring_2) && (ID_2 == kc_p->u.Problem1ID1ID1ID.ID_2) && (casestring_3 == kc_p->u.Problem1ID1ID1ID.casestring_3) && (ID_3 == kc_p->u.Problem1ID1ID1ID.ID_3)) return kc_p; else return Problem1ID1ID1ID(casestring_1, ID_1, casestring_2, ID_2, casestring_3, ID_3); } case (int)sel_Problem1INT1ID1ID: { casestring casestring_1 = rewrite_casestring(kc_p->u.Problem1INT1ID1ID.casestring_1, kc_current_view); INT INT_1 = rewrite_INT(kc_p->u.Problem1INT1ID1ID.INT_1, kc_current_view); casestring casestring_2 = rewrite_casestring(kc_p->u.Problem1INT1ID1ID.casestring_2, kc_current_view); ID ID_1 = rewrite_ID(kc_p->u.Problem1INT1ID1ID.ID_1, kc_current_view); casestring casestring_3 = rewrite_casestring(kc_p->u.Problem1INT1ID1ID.casestring_3, kc_current_view); ID ID_2 = rewrite_ID(kc_p->u.Problem1INT1ID1ID.ID_2, kc_current_view); if ((casestring_1 == kc_p->u.Problem1INT1ID1ID.casestring_1) && (INT_1 == kc_p->u.Problem1INT1ID1ID.INT_1) && (casestring_2 == kc_p->u.Problem1INT1ID1ID.casestring_2) && (ID_1 == kc_p->u.Problem1INT1ID1ID.ID_1) && (casestring_3 == kc_p->u.Problem1INT1ID1ID.casestring_3) && (ID_2 == kc_p->u.Problem1INT1ID1ID.ID_2)) return kc_p; else return Problem1INT1ID1ID(casestring_1, INT_1, casestring_2, ID_1, casestring_3, ID_2); } case (int)sel_Problem1storageoption1ID: { casestring casestring_1 = rewrite_casestring(kc_p->u.Problem1storageoption1ID.casestring_1, kc_current_view); storageoption storageoption_1 = rewrite_storageoption(kc_p->u.Problem1storageoption1ID.storageoption_1, kc_current_view); casestring casestring_2 = rewrite_casestring(kc_p->u.Problem1storageoption1ID.casestring_2, kc_current_view); ID ID_1 = rewrite_ID(kc_p->u.Problem1storageoption1ID.ID_1, kc_current_view); if ((casestring_1 == kc_p->u.Problem1storageoption1ID.casestring_1) && (storageoption_1 == kc_p->u.Problem1storageoption1ID.storageoption_1) && (casestring_2 == kc_p->u.Problem1storageoption1ID.casestring_2) && (ID_1 == kc_p->u.Problem1storageoption1ID.ID_1)) return kc_p; else return Problem1storageoption1ID(casestring_1, storageoption_1, casestring_2, ID_1); } case (int)sel_Problem2: { casestring casestring_1 = rewrite_casestring(kc_p->u.Problem2.casestring_1, kc_current_view); casestring casestring_2 = rewrite_casestring(kc_p->u.Problem2.casestring_2, kc_current_view); if ((casestring_1 == kc_p->u.Problem2.casestring_1) && (casestring_2 == kc_p->u.Problem2.casestring_2)) return kc_p; else return Problem2(casestring_1, casestring_2); } case (int)sel_Problem3: { casestring casestring_1 = rewrite_casestring(kc_p->u.Problem3.casestring_1, kc_current_view); casestring casestring_2 = rewrite_casestring(kc_p->u.Problem3.casestring_2, kc_current_view); casestring casestring_3 = rewrite_casestring(kc_p->u.Problem3.casestring_3, kc_current_view); if ((casestring_1 == kc_p->u.Problem3.casestring_1) && (casestring_2 == kc_p->u.Problem3.casestring_2) && (casestring_3 == kc_p->u.Problem3.casestring_3)) return kc_p; else return Problem3(casestring_1, casestring_2, casestring_3); } case (int)sel_Problem3int1: { casestring casestring_1 = rewrite_casestring(kc_p->u.Problem3int1.casestring_1, kc_current_view); casestring casestring_2 = rewrite_casestring(kc_p->u.Problem3int1.casestring_2, kc_current_view); casestring casestring_3 = rewrite_casestring(kc_p->u.Problem3int1.casestring_3, kc_current_view); int int_1 = rewrite_int(kc_p->u.Problem3int1.int_1, kc_current_view); casestring casestring_4 = rewrite_casestring(kc_p->u.Problem3int1.casestring_4, kc_current_view); if ((casestring_1 == kc_p->u.Problem3int1.casestring_1) && (casestring_2 == kc_p->u.Problem3int1.casestring_2) && (casestring_3 == kc_p->u.Problem3int1.casestring_3) && (int_1 == kc_p->u.Problem3int1.int_1) && (casestring_4 == kc_p->u.Problem3int1.casestring_4)) return kc_p; else return Problem3int1(casestring_1, casestring_2, casestring_3, int_1, casestring_4); } case (int)sel_Problem4: { casestring casestring_1 = rewrite_casestring(kc_p->u.Problem4.casestring_1, kc_current_view); casestring casestring_2 = rewrite_casestring(kc_p->u.Problem4.casestring_2, kc_current_view); casestring casestring_3 = rewrite_casestring(kc_p->u.Problem4.casestring_3, kc_current_view); casestring casestring_4 = rewrite_casestring(kc_p->u.Problem4.casestring_4, kc_current_view); if ((casestring_1 == kc_p->u.Problem4.casestring_1) && (casestring_2 == kc_p->u.Problem4.casestring_2) && (casestring_3 == kc_p->u.Problem4.casestring_3) && (casestring_4 == kc_p->u.Problem4.casestring_4)) return kc_p; else return Problem4(casestring_1, casestring_2, casestring_3, casestring_4); } case (int)sel_Problem5: { casestring casestring_1 = rewrite_casestring(kc_p->u.Problem5.casestring_1, kc_current_view); casestring casestring_2 = rewrite_casestring(kc_p->u.Problem5.casestring_2, kc_current_view); casestring casestring_3 = rewrite_casestring(kc_p->u.Problem5.casestring_3, kc_current_view); casestring casestring_4 = rewrite_casestring(kc_p->u.Problem5.casestring_4, kc_current_view); casestring casestring_5 = rewrite_casestring(kc_p->u.Problem5.casestring_5, kc_current_view); if ((casestring_1 == kc_p->u.Problem5.casestring_1) && (casestring_2 == kc_p->u.Problem5.casestring_2) && (casestring_3 == kc_p->u.Problem5.casestring_3) && (casestring_4 == kc_p->u.Problem5.casestring_4) && (casestring_5 == kc_p->u.Problem5.casestring_5)) return kc_p; else return Problem5(casestring_1, casestring_2, casestring_3, casestring_4, casestring_5); } case (int)sel_Problem6: { casestring casestring_1 = rewrite_casestring(kc_p->u.Problem6.casestring_1, kc_current_view); casestring casestring_2 = rewrite_casestring(kc_p->u.Problem6.casestring_2, kc_current_view); casestring casestring_3 = rewrite_casestring(kc_p->u.Problem6.casestring_3, kc_current_view); casestring casestring_4 = rewrite_casestring(kc_p->u.Problem6.casestring_4, kc_current_view); casestring casestring_5 = rewrite_casestring(kc_p->u.Problem6.casestring_5, kc_current_view); casestring casestring_6 = rewrite_casestring(kc_p->u.Problem6.casestring_6, kc_current_view); if ((casestring_1 == kc_p->u.Problem6.casestring_1) && (casestring_2 == kc_p->u.Problem6.casestring_2) && (casestring_3 == kc_p->u.Problem6.casestring_3) && (casestring_4 == kc_p->u.Problem6.casestring_4) && (casestring_5 == kc_p->u.Problem6.casestring_5) && (casestring_6 == kc_p->u.Problem6.casestring_6)) return kc_p; else return Problem6(casestring_1, casestring_2, casestring_3, casestring_4, casestring_5, casestring_6); } default: return kc_p;} } } } /*ARGSUSED*/ addedphylumdeclarations rewrite_addedphylumdeclarations #ifdef KC_USE_PROTOTYPES (addedphylumdeclarations kc_p, rview kc_current_view) #else (kc_p, kc_current_view) addedphylumdeclarations kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_addedphylumdeclarations( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Niladdedphylumdeclarations: { return kc_p; } case (int)sel_Consaddedphylumdeclarations: { addedphylumdeclaration addedphylumdeclaration_1 = rewrite_addedphylumdeclaration(kc_p->u.Consaddedphylumdeclarations.addedphylumdeclaration_1, kc_current_view); addedphylumdeclarations addedphylumdeclarations_1 = rewrite_addedphylumdeclarations(kc_p->u.Consaddedphylumdeclarations.addedphylumdeclarations_1, kc_current_view); if ((addedphylumdeclaration_1 == kc_p->u.Consaddedphylumdeclarations.addedphylumdeclaration_1) && (addedphylumdeclarations_1 == kc_p->u.Consaddedphylumdeclarations.addedphylumdeclarations_1)) return kc_p; else return Consaddedphylumdeclarations(addedphylumdeclaration_1, addedphylumdeclarations_1); } default: return kc_p;} } } } /*ARGSUSED*/ addedphylumdeclaration rewrite_addedphylumdeclaration #ifdef KC_USE_PROTOTYPES (addedphylumdeclaration kc_p, rview kc_current_view) #else (kc_p, kc_current_view) addedphylumdeclaration kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_addedphylumdeclaration( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_AddedPhylumdeclaration: { uniqID uniqID_1 = rewrite_uniqID(kc_p->u.AddedPhylumdeclaration.uniqID_1, kc_current_view); if ((uniqID_1 == kc_p->u.AddedPhylumdeclaration.uniqID_1)) return kc_p; else return AddedPhylumdeclaration(uniqID_1); } default: return kc_p;} } } } /*ARGSUSED*/ countedphylumdeclarations rewrite_countedphylumdeclarations #ifdef KC_USE_PROTOTYPES (countedphylumdeclarations kc_p, rview kc_current_view) #else (kc_p, kc_current_view) countedphylumdeclarations kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_countedphylumdeclarations( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilcountedphylumdeclarations: { return kc_p; } case (int)sel_Conscountedphylumdeclarations: { countedphylumdeclaration countedphylumdeclaration_1 = rewrite_countedphylumdeclaration(kc_p->u.Conscountedphylumdeclarations.countedphylumdeclaration_1, kc_current_view); countedphylumdeclarations countedphylumdeclarations_1 = rewrite_countedphylumdeclarations(kc_p->u.Conscountedphylumdeclarations.countedphylumdeclarations_1, kc_current_view); if ((countedphylumdeclaration_1 == kc_p->u.Conscountedphylumdeclarations.countedphylumdeclaration_1) && (countedphylumdeclarations_1 == kc_p->u.Conscountedphylumdeclarations.countedphylumdeclarations_1)) return kc_p; else return Conscountedphylumdeclarations(countedphylumdeclaration_1, countedphylumdeclarations_1); } default: return kc_p;} } } } /*ARGSUSED*/ countedphylumdeclaration rewrite_countedphylumdeclaration #ifdef KC_USE_PROTOTYPES (countedphylumdeclaration kc_p, rview kc_current_view) #else (kc_p, kc_current_view) countedphylumdeclaration kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_countedphylumdeclaration( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_CountedPhylumdeclaration: { uniqID uniqID_1 = rewrite_uniqID(kc_p->u.CountedPhylumdeclaration.uniqID_1, kc_current_view); if ((uniqID_1 == kc_p->u.CountedPhylumdeclaration.uniqID_1)) return kc_p; else return CountedPhylumdeclaration(uniqID_1); } default: return kc_p;} } } } /*ARGSUSED*/ bindingidmarks rewrite_bindingidmarks #ifdef KC_USE_PROTOTYPES (bindingidmarks kc_p, rview kc_current_view) #else (kc_p, kc_current_view) bindingidmarks kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_bindingidmarks( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_Nilbindingidmarks: { return kc_p; } case (int)sel_Consbindingidmarks: { bindingidmark bindingidmark_1 = rewrite_bindingidmark(kc_p->u.Consbindingidmarks.bindingidmark_1, kc_current_view); bindingidmarks bindingidmarks_1 = rewrite_bindingidmarks(kc_p->u.Consbindingidmarks.bindingidmarks_1, kc_current_view); if ((bindingidmark_1 == kc_p->u.Consbindingidmarks.bindingidmark_1) && (bindingidmarks_1 == kc_p->u.Consbindingidmarks.bindingidmarks_1)) return kc_p; else return Consbindingidmarks(bindingidmark_1, bindingidmarks_1); } default: return kc_p;} } } } /*ARGSUSED*/ bindingidmark rewrite_bindingidmark #ifdef KC_USE_PROTOTYPES (bindingidmark kc_p, rview kc_current_view) #else (kc_p, kc_current_view) bindingidmark kc_p; rview kc_current_view; #endif { /*SUPPRESS 622*/ assert_bindingidmark( kc_p, "kc_p" ); switch((int)kc_current_view) { default: case (int)base_rview: { switch((int)kc_p->prod_sel) { case (int)sel_BindingIdMark: { uniqID uniqID_1 = rewrite_uniqID(kc_p->u.BindingIdMark.uniqID_1, kc_current_view); if ((uniqID_1 == kc_p->u.BindingIdMark.uniqID_1)) return kc_p; else return BindingIdMark(uniqID_1); } default: return kc_p;} } } } kimwitu-4.6.1.orig/src/rk.h0100644000176100001440000002672107076113233015041 0ustar debacleusers/* translation of file(s) "../abs.k" "../main.k" "../parse.k" "../error.k" "../defocc.k" "../extocc.k" "../useocc.k" "../util.k" "../gen.k" "../gutil.k" "../pat.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #ifndef KC_REWRITE_HEADER #define KC_REWRITE_HEADER #define KIMW_REWRITE_HEADER /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include "k.h" /* in case a user forgets */ typedef enum { base_rview } rview; extern char *kc_rview_names[]; /* included stuff */ #line 2 "../main.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 45 "rk.h" /* end included stuff */ nocasestring rewrite_nocasestring KC__P(( nocasestring, rview )); casestring rewrite_casestring KC__P(( casestring, rview )); float rewrite_float KC__P(( float, rview )); int rewrite_int KC__P(( int, rview )); voidptr rewrite_voidptr KC__P(( voidptr, rview )); uniqID rewrite_uniqID KC__P(( uniqID, rview )); ID rewrite_ID KC__P(( ID, rview )); INT rewrite_INT KC__P(( INT, rview )); STRING rewrite_STRING KC__P(( STRING, rview )); phylumdeclarationsroot rewrite_phylumdeclarationsroot KC__P(( phylumdeclarationsroot, rview )); phylumdeclarations rewrite_phylumdeclarations KC__P(( phylumdeclarations, rview )); phylumnames rewrite_phylumnames KC__P(( phylumnames, rview )); phylumdeclaration rewrite_phylumdeclaration KC__P(( phylumdeclaration, rview )); storageoption rewrite_storageoption KC__P(( storageoption, rview )); storageclasses rewrite_storageclasses KC__P(( storageclasses, rview )); productionblock rewrite_productionblock KC__P(( productionblock, rview )); alternatives rewrite_alternatives KC__P(( alternatives, rview )); alternative rewrite_alternative KC__P(( alternative, rview )); arguments rewrite_arguments KC__P(( arguments, rview )); argument rewrite_argument KC__P(( argument, rview )); Ccode_option rewrite_Ccode_option KC__P(( Ccode_option, rview )); attributes rewrite_attributes KC__P(( attributes, rview )); attribute rewrite_attribute KC__P(( attribute, rview )); attribute_initialisation_option rewrite_attribute_initialisation_option KC__P(( attribute_initialisation_option, rview )); Cexpression rewrite_Cexpression KC__P(( Cexpression, rview )); Cexpression_elem rewrite_Cexpression_elem KC__P(( Cexpression_elem, rview )); CexpressionDQ rewrite_CexpressionDQ KC__P(( CexpressionDQ, rview )); CexpressionDQ_elem rewrite_CexpressionDQ_elem KC__P(( CexpressionDQ_elem, rview )); CexpressionSQ rewrite_CexpressionSQ KC__P(( CexpressionSQ, rview )); CexpressionSQ_elem rewrite_CexpressionSQ_elem KC__P(( CexpressionSQ_elem, rview )); idCexpressions rewrite_idCexpressions KC__P(( idCexpressions, rview )); idCexpression rewrite_idCexpression KC__P(( idCexpression, rview )); Ctexts rewrite_Ctexts KC__P(( Ctexts, rview )); includefiles rewrite_includefiles KC__P(( includefiles, rview )); includefile rewrite_includefile KC__P(( includefile, rview )); includedeclarations rewrite_includedeclarations KC__P(( includedeclarations, rview )); includedeclaration rewrite_includedeclaration KC__P(( includedeclaration, rview )); includes rewrite_includes KC__P(( includes, rview )); include rewrite_include KC__P(( include, rview )); rwdeclarations rewrite_rwdeclarations KC__P(( rwdeclarations, rview )); rwdeclaration rewrite_rwdeclaration KC__P(( rwdeclaration, rview )); rewriteclauses rewrite_rewriteclauses KC__P(( rewriteclauses, rview )); rewriteclause rewrite_rewriteclause KC__P(( rewriteclause, rview )); patternchains rewrite_patternchains KC__P(( patternchains, rview )); patternchain rewrite_patternchain KC__P(( patternchain, rview )); outmostpatterns rewrite_outmostpatterns KC__P(( outmostpatterns, rview )); patternchainitem rewrite_patternchainitem KC__P(( patternchainitem, rview )); outmostpattern rewrite_outmostpattern KC__P(( outmostpattern, rview )); pattern rewrite_pattern KC__P(( pattern, rview )); patterns rewrite_patterns KC__P(( patterns, rview )); term rewrite_term KC__P(( term, rview )); terms rewrite_terms KC__P(( terms, rview )); fnfiles rewrite_fnfiles KC__P(( fnfiles, rview )); fnfile rewrite_fnfile KC__P(( fnfile, rview )); fndeclarations rewrite_fndeclarations KC__P(( fndeclarations, rview )); fndeclaration rewrite_fndeclaration KC__P(( fndeclaration, rview )); fnclass rewrite_fnclass KC__P(( fnclass, rview )); fnarguments rewrite_fnarguments KC__P(( fnarguments, rview )); Cvariabledeclarations rewrite_Cvariabledeclarations KC__P(( Cvariabledeclarations, rview )); Cvariabledeclaration rewrite_Cvariabledeclaration KC__P(( Cvariabledeclaration, rview )); Cvariables rewrite_Cvariables KC__P(( Cvariables, rview )); Cvariable rewrite_Cvariable KC__P(( Cvariable, rview )); Ctext rewrite_Ctext KC__P(( Ctext, rview )); Ctext_elem rewrite_Ctext_elem KC__P(( Ctext_elem, rview )); foreach_after rewrite_foreach_after KC__P(( foreach_after, rview )); contextinfo rewrite_contextinfo KC__P(( contextinfo, rview )); withexpressions rewrite_withexpressions KC__P(( withexpressions, rview )); withexpression rewrite_withexpression KC__P(( withexpression, rview )); withcases rewrite_withcases KC__P(( withcases, rview )); withcase rewrite_withcase KC__P(( withcase, rview )); unparsedeclarations rewrite_unparsedeclarations KC__P(( unparsedeclarations, rview )); unparsedeclaration rewrite_unparsedeclaration KC__P(( unparsedeclaration, rview )); unparseclauses rewrite_unparseclauses KC__P(( unparseclauses, rview )); unparseclause rewrite_unparseclause KC__P(( unparseclause, rview )); viewnames rewrite_viewnames KC__P(( viewnames, rview )); unparseitems rewrite_unparseitems KC__P(( unparseitems, rview )); unparseitem rewrite_unparseitem KC__P(( unparseitem, rview )); unpsubterm rewrite_unpsubterm KC__P(( unpsubterm, rview )); unpattributes rewrite_unpattributes KC__P(( unpattributes, rview )); viewnameoption rewrite_viewnameoption KC__P(( viewnameoption, rview )); filelinestack rewrite_filelinestack KC__P(( filelinestack, rview )); fileline rewrite_fileline KC__P(( fileline, rview )); nooperatorsstack rewrite_nooperatorsstack KC__P(( nooperatorsstack, rview )); scopetypefilelinestack rewrite_scopetypefilelinestack KC__P(( scopetypefilelinestack, rview )); scopetypefileline rewrite_scopetypefileline KC__P(( scopetypefileline, rview )); IDtype rewrite_IDtype KC__P(( IDtype, rview )); operatorsstack rewrite_operatorsstack KC__P(( operatorsstack, rview )); operators rewrite_operators KC__P(( operators, rview )); phyla rewrite_phyla KC__P(( phyla, rview )); variables rewrite_variables KC__P(( variables, rview )); argumentsstack rewrite_argumentsstack KC__P(( argumentsstack, rview )); phylumstack rewrite_phylumstack KC__P(( phylumstack, rview )); phylumnamesstack rewrite_phylumnamesstack KC__P(( phylumnamesstack, rview )); withexpressionsstack rewrite_withexpressionsstack KC__P(( withexpressionsstack, rview )); operatorstack rewrite_operatorstack KC__P(( operatorstack, rview )); variablesstack rewrite_variablesstack KC__P(( variablesstack, rview )); selvarstack rewrite_selvarstack KC__P(( selvarstack, rview )); dollarvarstatus rewrite_dollarvarstatus KC__P(( dollarvarstatus, rview )); dollarvarsallowedstack rewrite_dollarvarsallowedstack KC__P(( dollarvarsallowedstack, rview )); intstack rewrite_intstack KC__P(( intstack, rview )); idCexpressionsstack rewrite_idCexpressionsstack KC__P(( idCexpressionsstack, rview )); two_phyla rewrite_two_phyla KC__P(( two_phyla, rview )); tribool rewrite_tribool KC__P(( tribool, rview )); patternrepresentations rewrite_patternrepresentations KC__P(( patternrepresentations, rview )); patternrepresentation rewrite_patternrepresentation KC__P(( patternrepresentation, rview )); elem_patternrepresentation rewrite_elem_patternrepresentation KC__P(( elem_patternrepresentation, rview )); path rewrite_path KC__P(( path, rview )); paths rewrite_paths KC__P(( paths, rview )); argsnumbers rewrite_argsnumbers KC__P(( argsnumbers, rview )); rewriterulesinfo rewrite_rewriterulesinfo KC__P(( rewriterulesinfo, rview )); rewriteruleinfo rewrite_rewriteruleinfo KC__P(( rewriteruleinfo, rview )); withcasesinfo rewrite_withcasesinfo KC__P(( withcasesinfo, rview )); withcaseinfo rewrite_withcaseinfo KC__P(( withcaseinfo, rview )); rewriteviewsinfo rewrite_rewriteviewsinfo KC__P(( rewriteviewsinfo, rview )); rewriteviewinfo rewrite_rewriteviewinfo KC__P(( rewriteviewinfo, rview )); unparseviewsinfo rewrite_unparseviewsinfo KC__P(( unparseviewsinfo, rview )); unparseviewinfo rewrite_unparseviewinfo KC__P(( unparseviewinfo, rview )); unparsedeclsinfo rewrite_unparsedeclsinfo KC__P(( unparsedeclsinfo, rview )); unparsedeclinfo rewrite_unparsedeclinfo KC__P(( unparsedeclinfo, rview )); ac_declaration rewrite_ac_declaration KC__P(( ac_declaration, rview )); ac_declaration_list rewrite_ac_declaration_list KC__P(( ac_declaration_list, rview )); ac_declaration_specifiers rewrite_ac_declaration_specifiers KC__P(( ac_declaration_specifiers, rview )); ac_declaration_specifier rewrite_ac_declaration_specifier KC__P(( ac_declaration_specifier, rview )); ac_storage_class_specifier rewrite_ac_storage_class_specifier KC__P(( ac_storage_class_specifier, rview )); ac_type_specifier rewrite_ac_type_specifier KC__P(( ac_type_specifier, rview )); ac_type_qualifier rewrite_ac_type_qualifier KC__P(( ac_type_qualifier, rview )); ac_init_declarator_list rewrite_ac_init_declarator_list KC__P(( ac_init_declarator_list, rview )); ac_init_declarator rewrite_ac_init_declarator KC__P(( ac_init_declarator, rview )); ac_declarator rewrite_ac_declarator KC__P(( ac_declarator, rview )); ac_direct_declarator rewrite_ac_direct_declarator KC__P(( ac_direct_declarator, rview )); ac_pointer_option rewrite_ac_pointer_option KC__P(( ac_pointer_option, rview )); ac_pointer rewrite_ac_pointer KC__P(( ac_pointer, rview )); ac_type_qualifier_list rewrite_ac_type_qualifier_list KC__P(( ac_type_qualifier_list, rview )); ac_parameter_type_list rewrite_ac_parameter_type_list KC__P(( ac_parameter_type_list, rview )); ac_parameter_list rewrite_ac_parameter_list KC__P(( ac_parameter_list, rview )); ac_parameter_declaration rewrite_ac_parameter_declaration KC__P(( ac_parameter_declaration, rview )); ac_identifier_list rewrite_ac_identifier_list KC__P(( ac_identifier_list, rview )); ac_abstract_declarator rewrite_ac_abstract_declarator KC__P(( ac_abstract_declarator, rview )); ac_direct_abstract_declarator_option rewrite_ac_direct_abstract_declarator_option KC__P(( ac_direct_abstract_declarator_option, rview )); ac_direct_abstract_declarator rewrite_ac_direct_abstract_declarator KC__P(( ac_direct_abstract_declarator, rview )); ac_constant_expression_option rewrite_ac_constant_expression_option KC__P(( ac_constant_expression_option, rview )); ac_constant_expression rewrite_ac_constant_expression KC__P(( ac_constant_expression, rview )); error rewrite_error KC__P(( error, rview )); problem rewrite_problem KC__P(( problem, rview )); addedphylumdeclarations rewrite_addedphylumdeclarations KC__P(( addedphylumdeclarations, rview )); addedphylumdeclaration rewrite_addedphylumdeclaration KC__P(( addedphylumdeclaration, rview )); countedphylumdeclarations rewrite_countedphylumdeclarations KC__P(( countedphylumdeclarations, rview )); countedphylumdeclaration rewrite_countedphylumdeclaration KC__P(( countedphylumdeclaration, rview )); bindingidmarks rewrite_bindingidmarks KC__P(( bindingidmarks, rview )); bindingidmark rewrite_bindingidmark KC__P(( bindingidmark, rview )); #endif /* KC_TYPES_HEADER */ kimwitu-4.6.1.orig/src/tstamp.kc0100644000176100001440000000000007076113233016061 0ustar debacleuserskimwitu-4.6.1.orig/src/unpk.c0100644000176100001440000307616207076113223015403 0ustar debacleusers/*LINTLIBRARY*/ /* translation of file(s) "../abs.k" "../main.k" "../parse.k" "../error.k" "../defocc.k" "../extocc.k" "../useocc.k" "../util.k" "../gen.k" "../gutil.k" "../pat.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #define KC_UNPARSE #define KIMW_UNPARSE /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include #include #if ((! defined(KC_STDC) ) && defined(sun)) extern char *sprintf(); #endif #ifdef KC_STDC # include #endif #include "k.h" #include "unpk.h" char *kc_view_names[] = { "base_uview", "base_view", "view_filename", "view_error", "view_error_tID", "view_check", "view_check_count", "view_check_count1", "view_check_outmostopers_in_phylum", "view_set_type", "view_check_is_var", "view_gen_initializephyla_c", "view_check_u", "view_check_r", "view_check_viewnames", "view_init_stacks", "view_check_uniq", "view_check_uniq1", "view_check_uniq2", "view_make_patternreps", "view_printer_outputfileline", "view_printer_reset", "view_no_of_printed_string_chars_reset", "view_gen_k_h", "view_gen_end_k_h", "view_gen_k_c", "view_gen_alloc_h", "view_gen_alloc_c", "view_gen_enumphyla_h", "view_gen_enumoperators_h", "view_gen_operatormap_type_h", "view_gen_phylummap_c", "view_gen_operatormap_c", "view_count_args", "view_gen_operatormap_operator_fn", "view_gen_prodsel_fnarg_and_decls", "view_gen_prodsel_fnargs", "view_gen_prodsel_fnargdecls", "view_gen_operatormap_subphyla", "view_gen_operatormap_suboffsets", "view_gen_uniqmap_c", "view_gen_uniqmap_c_1", "view_gen_uniqmap_c_2", "view_gen_nodetypedefs_h", "view_gen_nodetypes_h", "view_gen_yaccstacktype_h", "view_gen_noofoperators_h", "view_gen_booleans_h", "view_gen_initialization_h", "view_gen_initialization_c", "view_gen_assertmacros_h", "view_gen_operatordecls_h", "view_gen_operatordefs_c", "view_gen_operatordefs_c_0", "view_gen_operatordefs_c_1", "view_gen_operatordefs_c_2", "view_gen_operatordefs_c_2a", "view_gen_operatordefs_c_3", "view_gen_operatordefs_c_3a", "view_gen_operatordefs_c_4", "view_gen_operatordefs_c_4z", "view_gen_operatordefs_c_4a", "view_gen_initializephyla_assert_c", "view_gen_initializephyla_whiletest_c", "view_gen_initializephyla_init_el_c", "view_gen_initializephyla_update_loop_c", "view_gen_operatordefs_nonhash_c", "view_gen_operatordefs_hash_c", "view_gen_argseqnr", "view_gen_fnargs", "view_gen_fnargdecls", "view_gen_fnarg_and_decls", "view_gen_asserts", "view_gen_assignments", "view_gen_hash", "view_gen_test", "view_gen_error_decls_h", "view_gen_error_defs_c", "view_gen_freedecls_h", "view_gen_freedefs_c", "view_gen_eqdecls_h", "view_gen_eqdefs_c", "view_gen_eqdefs_bigatom_c", "view_gen_eqdefs_bigatom_do_c", "view_gen_printdecls_h", "view_gen_printdefs_c", "view_gen_printdefs_bigatom_c", "view_gen_printdefs_bigatom_do_c", "view_gen_printdotdecls_h", "view_gen_printdotdefs_c", "view_gen_printdotdecls_c", "view_gen_printdotdefs_bigatom_c", "view_gen_printdotdefs_bigatom_do_c", "view_gen_printdotedges_c", "view_gen_listdecls_h", "view_gen_listdefs_c", "view_gen_includes", "view_do_gen_includes", "view_gen_csgio_start_h", "view_gen_csgio_end_h", "view_gen_csgio_h", "view_gen_csgio_start_c", "view_gen_csgio_c", "view_gen_csgio_c_read", "view_gen_csgio_c_write", "view_gen_csgio_bigatom_arguse_c", "view_gen_csgio_bigatom_do_arguse_c", "view_gen_csgio_scandef_c", "view_gen_csgio_scandefs_c", "view_gen_csgio_scandef_bigatom_c", "view_gen_csgio_scandef_bigatom_do_c", "view_gen_csgio_write2structuredefs_c", "view_gen_csgio_write2structuredef_c", "view_gen_csgio_write2structuredef_bigatom_c", "view_gen_csgio_write2structuredef_bigatom_do_c", "view_gen_csgio_writephylumdef_scan_c", "view_gen_csgio_writephylumdef_write_c", "view_gen_copy_attributes_c", "view_gen_copy_attributes_c_doit", "view_gen_copydecls_h", "view_gen_copydefs_c", "view_gen_copydefs_bigatom_argdefs_c", "view_gen_copydefs_bigatom_argset_c", "view_gen_copydefs_bigatom_arguse_c", "view_gen_copydefs_bigatom_do_arguse_c", "view_gen_rewritek_h", "view_gen_end_rewritek_h", "view_gen_rewritek_c", "view_gen_rewritedecls_h", "view_gen_rewritedefs_c", "view_gen_rewritedefs_default_c", "view_gen_rewritedefs_other_c", "view_gen_rewritedefs_rewritearg_c", "view_gen_rewritedefs_nl_arg_c", "view_gen_rewritedefs_testarg_c", "view_gen_rewritedefs_dotestarg_c", "view_gen_rewritedefs_args_c", "view_gen_withcases_and_default", "view_rw_predicates", "view_wc_predicates", "view_unp_predicates", "view_wc_bindings", "view_unp_bindings", "view_rw_bindings", "view_gen_fnk_h", "view_gen_fnkdecls_c", "view_gen_fnk_c", "view_gen_fnkarg_and_decls", "view_gen_fn_pointer_name", "view_gen_fnkargs", "view_gen_fnkdecls", "view_gen_fns_start_h", "view_gen_fns_end_h", "view_gen_fns_start_c", "view_gen_fns_owninclude_c", "view_gen_unpk_h", "view_gen_unparsedecls_h", "view_uview_def", "view_gen_end_unpk_h", "view_gen_unpk_c", "view_gen_default_types_unpk_c", "view_gen_unparsedefs_c", "view_gen_unparsedefs_default_c", "view_gen_unparsedefs_other_c", "view_gen_unpstr_c", "base_view" }; /* included stuff */ #line 2 "../main.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 217 "unpk.c" #line 277 "../error.k" #include "main.h" /* for the definition of leave */ #line 221 "unpk.c" #line 135 "../util.k" #include "util.h" #include "extocc.h" static int cl_scope = 0; static boolean cl_bigatoms = False; #line 229 "unpk.c" #line 1062 "../util.k" static operatorsstack cl_operatorsstack = 0; #define cf_pushoutmostoperators(o) \ cl_operatorsstack = Consoperatorsstack( o, cl_operatorsstack ) #define cf_notemptyoutmostoperators() \ (cl_operatorsstack->prod_sel == sel_Consoperatorsstack) #define cf_topoutmostoperators() \ ((cl_operatorsstack->prod_sel == sel_Consoperatorsstack) \ ? cl_operatorsstack->u.Consoperatorsstack.operators_1 \ : Niloperators()) #define cf_popoutmostoperators() \ do { \ if (cl_operatorsstack->prod_sel == sel_Consoperatorsstack) { \ operatorsstack tmp_cl_operatorsstack = cl_operatorsstack; \ cl_operatorsstack = \ cl_operatorsstack->u.Consoperatorsstack.operatorsstack_1; \ free_operatorsstack( tmp_cl_operatorsstack, False ); \ } \ } while(kc_zero_constant) static dollarvarsallowedstack cl_dollarvarsallowedstack = 0; #define cf_pushdollarvarsallowed(o) \ cl_dollarvarsallowedstack = Consdollarvarsallowedstack( o, cl_dollarvarsallowedstack ) #define cf_topdollarvarsallowed() \ ((cl_dollarvarsallowedstack->prod_sel == sel_Consdollarvarsallowedstack) \ ? cl_dollarvarsallowedstack->u.Consdollarvarsallowedstack.dollarvarstatus_1 \ : DVDisallowed()) #define cf_popdollarvarsallowed() \ do { \ if (cl_dollarvarsallowedstack->prod_sel == sel_Consdollarvarsallowedstack) { \ dollarvarsallowedstack tmp_cl_dollarvarsallowedstack = cl_dollarvarsallowedstack; \ cl_dollarvarsallowedstack = \ cl_dollarvarsallowedstack->u.Consdollarvarsallowedstack.dollarvarsallowedstack_1; \ free_dollarvarsallowedstack( tmp_cl_dollarvarsallowedstack, False ); \ } \ } while(kc_zero_constant) static intstack cl_inforeachcontextstack = 0; #define cf_pushinforeachcontext(o) \ cl_inforeachcontextstack = Consintstack( o, cl_inforeachcontextstack ) #define cf_topinforeachcontext() \ ((cl_inforeachcontextstack->prod_sel == sel_Consintstack) \ ? cl_inforeachcontextstack->u.Consintstack.int_1 \ : 0) #define cf_popinforeachcontext() \ do { \ if (cl_inforeachcontextstack->prod_sel == sel_Consintstack) { \ intstack tmp_cl_inforeachcontextstack = cl_inforeachcontextstack; \ cl_inforeachcontextstack = \ cl_inforeachcontextstack->u.Consintstack.intstack_1; \ free_intstack( tmp_cl_inforeachcontextstack, False ); \ } \ } while(kc_zero_constant) static argumentsstack cl_argumentsstack = 0; #define cf_pusharguments(a) \ cl_argumentsstack = Consargumentsstack( a, cl_argumentsstack ) #define cf_toparguments() \ ((cl_argumentsstack->prod_sel == sel_Consargumentsstack) \ ? cl_argumentsstack->u.Consargumentsstack.arguments_1 \ : Nilarguments()) #define cf_poparguments() \ do { \ if (cl_argumentsstack->prod_sel == sel_Consargumentsstack) { \ argumentsstack tmp_cl_argumentsstack = cl_argumentsstack; \ cl_argumentsstack = \ cl_argumentsstack->u.Consargumentsstack.argumentsstack_1; \ free_argumentsstack( tmp_cl_argumentsstack, False ); \ } \ } while(kc_zero_constant) static phylumstack cl_phylumstack = 0; #define cf_pushphylum(a) cl_phylumstack = Consphylumstack( a, cl_phylumstack ) #define cf_topphylum() \ ((cl_phylumstack->prod_sel == sel_Consphylumstack) \ ? cl_phylumstack->u.Consphylumstack.ID_1 \ : f_emptyId()) #define cf_popphylum() \ do { \ if (cl_phylumstack->prod_sel == sel_Consphylumstack) { \ phylumstack tmp_cl_phylumstack = cl_phylumstack; \ cl_phylumstack = cl_phylumstack->u.Consphylumstack.phylumstack_1; \ free_phylumstack( tmp_cl_phylumstack, False ); \ } \ } while(kc_zero_constant) static phylumnamesstack cl_phylumnamesstack = 0; #define cf_pushphylumnames(a) cl_phylumnamesstack = Consphylumnamesstack( a, cl_phylumnamesstack ) #define cf_topphylumnames() \ ((cl_phylumnamesstack->prod_sel == sel_Consphylumnamesstack) \ ? cl_phylumnamesstack->u.Consphylumnamesstack.phylumnames_1 \ : Nilphylumnames()) #define cf_popphylumnames() \ do { \ if (cl_phylumnamesstack->prod_sel == sel_Consphylumnamesstack) { \ phylumnamesstack tmp_cl_phylumnamesstack = cl_phylumnamesstack; \ cl_phylumnamesstack = cl_phylumnamesstack->u.Consphylumnamesstack.phylumnamesstack_1; \ free_phylumnamesstack( tmp_cl_phylumnamesstack, False ); \ } \ } while(kc_zero_constant) static withexpressionsstack cl_withexpressionsstack = 0; #define cf_pushwithexpressions(a) \ cl_withexpressionsstack = \ Conswithexpressionsstack( a, cl_withexpressionsstack ) #define cf_topwithexpressions() \ ((cl_withexpressionsstack->prod_sel == sel_Conswithexpressionsstack) \ ? cl_withexpressionsstack->u.Conswithexpressionsstack.withexpressions_1 \ : (withexpressions)0) #define cf_popwithexpressions() \ do { \ if (cl_withexpressionsstack->prod_sel == sel_Conswithexpressionsstack) { \ withexpressionsstack tmp_cl_withexpressionsstack = \ cl_withexpressionsstack; \ cl_withexpressionsstack = \ cl_withexpressionsstack->u.Conswithexpressionsstack.withexpressionsstack_1; \ free_withexpressionsstack( tmp_cl_withexpressionsstack, False ); \ } \ } while(kc_zero_constant) static operatorstack cl_operatorstack = 0; #define cf_pushoperator(o) cl_operatorstack = Consoperatorstack( o, cl_operatorstack ) #define cf_topoperator() \ ((cl_operatorstack->prod_sel == sel_Consoperatorstack) \ ? cl_operatorstack->u.Consoperatorstack.ID_1 \ : f_emptyId()) #define cf_popoperator() \ do { \ if (cl_operatorstack->prod_sel == sel_Consoperatorstack) { \ operatorstack tmp_cl_operatorstack = cl_operatorstack; \ cl_operatorstack = cl_operatorstack->u.Consoperatorstack.operatorstack_1; \ free_operatorstack( tmp_cl_operatorstack, False ); \ } \ } while(kc_zero_constant) static variablesstack cl_variablesstack = 0; #define cf_pushvariables(o) \ cl_variablesstack = Consvariablesstack( o, cl_variablesstack ) #define cf_topvariables() \ ((cl_variablesstack->prod_sel == sel_Consvariablesstack) \ ? cl_variablesstack->u.Consvariablesstack.variables_1 \ : Nilvariables()) #define cf_popvariables() \ do { \ if (cl_variablesstack->prod_sel == sel_Consvariablesstack) { \ variablesstack tmp_cl_variablesstack = cl_variablesstack; \ cl_variablesstack = \ cl_variablesstack->u.Consvariablesstack.variablesstack_1; \ free_variablesstack( tmp_cl_variablesstack, False ); \ } \ } while(kc_zero_constant) #line 382 "unpk.c" #line 1701 "../util.k" #include "parse.h" static ID cl_uniqueID = 0; static ID cl_storageID = 0; #line 388 "unpk.c" #line 1808 "../util.k" #include "pat.h" /* for syn_outmostpatterns and v_resetbindingidmarks */ #line 392 "unpk.c" #line 1402 "../gen.k" #define FMOP 38 #define FMSZ 3 #define FMNCR 8 #define FMNCRD 8 #define FMEXIST 8 #define FMFRNC 8 #define FMFRRC 8 #define FMFREED 8 #define FMREM 8 #define FMTOT 9 #line 405 "unpk.c" #line 7635 "../gen.k" #ifndef FREE # define FREE efree #endif #ifndef efree /* * # ifdef lint * # define efree(kc_p) * # else */ # define efree(kc_p) free((kc_malloc_t)(kc_p)) /* * # endif */ #endif #line 422 "unpk.c" #line 21 "../gutil.k" #include "gutil.h" #line 426 "unpk.c" #line 24 "../gutil.k" static int g_no_of_phyla; static int g_no_of_operators; static int gl_no_of_args; #define PHYLUMNUMBEROFFSET 0 /* should be >= 0; == the index of the last dummy element */ #define OPERATORNUMBEROFFSET 0 /* should be >= 0; == the index of the last dummy element */ #line 434 "unpk.c" #line 31 "../gutil.k" static selvarstack cl_selvarstack = 0; /* initialised by the view_init_stacks view in util.k */ #define cf_pushselvar(o) do { cl_selvarstack = Consselvarstack( o, cl_selvarstack ); \ g_ctext_level++; \ } while(kc_zero_constant) #define cf_topselvar() (cl_selvarstack->u.Consselvarstack.ID_1) #define cf_popselvar() do { selvarstack tmp_cl_selvarstack = cl_selvarstack; \ cl_selvarstack = cl_selvarstack->u.Consselvarstack.selvarstack_1; \ free_selvarstack( tmp_cl_selvarstack, False ); \ g_ctext_level--; \ } while(kc_zero_constant) static selvarstack cl_dollarvarstack = 0; /* initialised by the view_init_stacks view in util.k */ #define cf_pushdollarvar(o) do { cl_dollarvarstack = Consselvarstack( o, cl_dollarvarstack ); \ } while(kc_zero_constant) #define cf_topdollarvar() (cl_dollarvarstack->u.Consselvarstack.ID_1) #define cf_popdollarvar() do { selvarstack tmp_cl_dollarvarstack = cl_dollarvarstack; \ cl_dollarvarstack = cl_dollarvarstack->u.Consselvarstack.selvarstack_1; \ free_selvarstack( tmp_cl_dollarvarstack, False ); \ } while(kc_zero_constant) static selvarstack cl_dollarvarextstack = 0; /* initialised by the view_init_stacks view in util.k */ #define cf_pushdollarvarext(o) do { cl_dollarvarextstack = Consselvarstack( o, cl_dollarvarextstack ); \ } while(kc_zero_constant) #define cf_topdollarvarext() (cl_dollarvarextstack->u.Consselvarstack.ID_1) #define cf_popdollarvarext() do { selvarstack tmp_cl_dollarvarextstack = cl_dollarvarextstack; \ cl_dollarvarextstack = cl_dollarvarextstack->u.Consselvarstack.selvarstack_1; \ free_selvarstack( tmp_cl_dollarvarextstack, False ); \ } while(kc_zero_constant) static ID gl_phylum = 0; static phylumdeclaration gl_phydecl = 0; static ID gl_view = 0; static ID gl_operator = 0; static Ccode_option gl_cco = 0; static storageoption gl_storageoption = 0; static int gl_atomicity; /*used as boolean*/ static boolean gl_no_attributes; static arguments gl_args = 0; static rewriterulesinfo gl_rewrite_rewriteinfo = 0; static char *g_emptystring = ""; static int g_ctext_level = 0; static int g_withexpr_nr = 0; static int g_fe_selvar_nr = 0; static char *gl_return_type = ""; static ID gl_return_ID = 0; static char *gl_star_string = ""; static char *gl_function = ""; static ID gl_sto = 0; static int gl_hashtablenr_next = 0; static int gl_hashtablenr_prev = 0; static int gl_nr_of_hashtables = 0; static boolean gl_rewrite_goto_used = False; static boolean gl_unparse_goto_used = False; static boolean gl_outmost_nonleaf_predicates = False; static ID gl_type = 0; static int gl_j = 0; static boolean gl_print_line_directive = False; #line 494 "unpk.c" /* end included stuff */ void unparse_casestring #ifdef KC_USE_PROTOTYPES (casestring kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) casestring kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_casestring(kc_p, "kc_p"); (*kc_printer)(kc_p->name, kc_current_view); } void unparse_nocasestring #ifdef KC_USE_PROTOTYPES (nocasestring kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) nocasestring kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_nocasestring(kc_p, "kc_p"); (*kc_printer)(kc_p->name, kc_current_view); } void unparse_int #ifdef KC_USE_PROTOTYPES (int kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) int kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { char kc_string[KC_MAXINTSTRING]; /* ADD: test if kc_p will fit in the allocated buffer */ (void)sprintf(kc_string, "%d", kc_p); (*kc_printer)(kc_string, kc_current_view); } void unparse_float #ifdef KC_USE_PROTOTYPES (float kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) float kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { char kc_string[KC_MAXINTSTRING]; /* ADD: test if kc_p will fit in the allocated buffer */ (void)sprintf(kc_string, "%f", kc_p); (*kc_printer)(kc_string, kc_current_view); } void unparse_voidptr #ifdef KC_USE_PROTOTYPES (voidptr kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) voidptr kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { char kc_string[KC_MAXINTSTRING]; /* ADD: test if kc_p will fit in the allocated buffer */ (void)sprintf(kc_string, "%p", kc_p); (*kc_printer)(kc_string, kc_current_view); } /*ARGSUSED*/ void unparse_uniqID #ifdef KC_USE_PROTOTYPES (uniqID kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) uniqID kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_uniqID(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_error: { if (( kc_p->prod_sel == sel_Str)) { #line 226 "../error.k" casestring cs = kc_p->u.Str.casestring_1; unparse_casestring(cs, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Str: unparse_casestring( kc_p->u.Str.casestring_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ID #ifdef KC_USE_PROTOTYPES (ID kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ID kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ID(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_error_tID: { if (( kc_p->prod_sel == sel_Id)) { #line 174 "../error.k" uniqID uid = kc_p->u.Id.uniqID_1; unparse_IDtype(uid->type, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_uniqID(uid, kc_printer, kc_current_view); #line 174 "../error.k" if (uid->line != 0) #line 612 "unpk.c" { { (*kc_printer)(" (introduced at ", kc_current_view); } unparse_casestring(uid->file, kc_printer, kc_current_view); { (*kc_printer)(":", kc_current_view); } unparse_int(uid->line, kc_printer, kc_current_view); { (*kc_printer)(")", kc_current_view); } } } else goto kc_unparsing_default; break; } case (int)view_error: { if (( kc_p->prod_sel == sel_Id)) { #line 173 "../error.k" uniqID uid = kc_p->u.Id.uniqID_1; unparse_uniqID(uid, kc_printer, kc_current_view); #line 173 "../error.k" if (uid->line != 0) #line 631 "unpk.c" { { (*kc_printer)(" (introduced at ", kc_current_view); } unparse_casestring(uid->file, kc_printer, kc_current_view); { (*kc_printer)(":", kc_current_view); } unparse_int(uid->line, kc_printer, kc_current_view); { (*kc_printer)(")", kc_current_view); } } } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Id: unparse_uniqID( kc_p->u.Id.uniqID_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_INT #ifdef KC_USE_PROTOTYPES (INT kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) INT kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_INT(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_error: { if (( kc_p->prod_sel == sel_Int)) { #line 227 "../error.k" int i = kc_p->u.Int.int_1; unparse_int(i, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Int: unparse_int( kc_p->u.Int.int_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_STRING #ifdef KC_USE_PROTOTYPES (STRING kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) STRING kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_STRING(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_String: unparse_casestring( kc_p->u.String.casestring_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_phylumdeclarationsroot #ifdef KC_USE_PROTOTYPES (phylumdeclarationsroot kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) phylumdeclarationsroot kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_phylumdeclarationsroot(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_unparsedefs_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 7898 "../gen.k" phylumdeclarations pds = kc_p->u.PhylumDeclarations.phylumdeclarations_1; unparse_phylumdeclarations(pds, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_default_types_unpk_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("void unparse_casestring\ \n#ifdef KC_USE_PROTOTYPES\ \n(casestring kc_p, void (*kc_printer)(char*, uview), uview kc_current_view)\ \n#else\ \n(kc_p, kc_printer, kc_current_view) casestring kc_p; void (", kc_current_view ); (*kc_printer)("*kc_printer)KC__P((char*, uview)); uview kc_current_view;\ \n#endif\ \n{\ \n /*SUPPRESS 622*/\ \n assert_casestring(kc_p, \"kc_p\");\ \n (*kc_printer)(kc_p->name, kc_current_view);\ \n}\ \n", kc_current_view ); (*kc_printer)("\ \nvoid unparse_nocasestring\ \n#ifdef KC_USE_PROTOTYPES\ \n(nocasestring kc_p, void (*kc_printer)(char*, uview), uview kc_current_view)\ \n#else\ \n(kc_p, kc_printer, kc_current_view) nocasestring kc", kc_current_view ); (*kc_printer)("_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view;\ \n#endif\ \n{\ \n /*SUPPRESS 622*/\ \n assert_nocasestring(kc_p, \"kc_p\");\ \n (*kc_printer)(kc_p->name, kc_current_view);\ \n}\ \n", kc_current_view ); (*kc_printer)("\ \nvoid unparse_int\ \n#ifdef KC_USE_PROTOTYPES\ \n(int kc_p, void (*kc_printer)(char*, uview), uview kc_current_view)\ \n#else\ \n(kc_p, kc_printer, kc_current_view) int kc_p; void (*kc_printer)KC__P", kc_current_view ); (*kc_printer)("((char*, uview)); uview kc_current_view;\ \n#endif\ \n{\ \n char kc_string[KC_MAXINTSTRING];\ \n /* ADD: test if kc_p will fit in the allocated buffer */\ \n (void)sprintf(kc_string, \"%d", kc_current_view ); (*kc_printer)("\", kc_p);\ \n (*kc_printer)(kc_string, kc_current_view);\ \n}\ \n\ \nvoid unparse_float\ \n#ifdef KC_USE_PROTOTYPES\ \n(float kc_p, void (*kc_printer)(char*, uview), uview kc_current_view)\ \n#", kc_current_view ); (*kc_printer)("else\ \n(kc_p, kc_printer, kc_current_view) float kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view;\ \n#endif\ \n{\ \n char kc_string[KC_MAXINTSTRING];\ \n /* ADD: test if kc", kc_current_view ); (*kc_printer)("_p will fit in the allocated buffer */\ \n (void)sprintf(kc_string, \"%f\", kc_p);\ \n (*kc_printer)(kc_string, kc_current_view);\ \n}\ \n\ \nvoid unparse_voidptr\ \n#ifdef KC_USE_PROTOTY", kc_current_view ); (*kc_printer)("PES\ \n(voidptr kc_p, void (*kc_printer)(char*, uview), uview kc_current_view)\ \n#else\ \n(kc_p, kc_printer, kc_current_view) voidptr kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_vi", kc_current_view ); (*kc_printer)("ew;\ \n#endif\ \n{\ \n char kc_string[KC_MAXINTSTRING];\ \n /* ADD: test if kc_p will fit in the allocated buffer */\ \n (void)sprintf(kc_string, \"%p\", kc_p);\ \n (*kc_printer)(k", kc_current_view ); (*kc_printer)("c_string, kc_current_view);\ \n}\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_unpk_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("/*LINTLIBRARY*/\ \n/* translation of file(s)\ \n", kc_current_view); } unparse_fnfiles(Thefnfiles, kc_printer, kc_current_view); { (*kc_printer)(" */\ \n/* generated by:\ \n * ", kc_current_view); } unparse_charptr(kimwitu_copyright, kc_printer, kc_current_view); { (*kc_printer)("\ \n */\ \n#define KC_UNPARSE\ \n#define KIMW_UNPARSE /* for backwards compatibility */\ \n/* define our own macro if we have a 'standard' (ansi) C(++) compiler */\ \n#ifndef KC_NO_STDC\ \n# if defined", kc_current_view ); (*kc_printer)("(__STDC__) || defined(__cplusplus) || defined(_WIN32)\ \n# define KC_STDC\ \n# endif\ \n#endif\ \n#include \ \n#include \ \n#if ((! defined(KC_STDC) ) && defined(sun))\ \n extern ", kc_current_view ); (*kc_printer)("char *sprintf();\ \n#endif\ \n#ifdef KC_STDC\ \n# include \ \n#endif\ \n#include \"k.h\"\ \n#include \"unpk.h\"\ \n\ \nchar *kc_view_names[] = {\ \n", kc_current_view); } unparse_viewnames(Theuviewnames, kc_printer, kc_current_view); { (*kc_printer)(",\ \n \"base_view\"\ \n};\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_end_unpk_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("\ \n#endif /* KC_UNPARSE_HEADER */\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_unparsedecls_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 7737 "../gen.k" phylumdeclarations pds = kc_p->u.PhylumDeclarations.phylumdeclarations_1; { (*kc_printer)("#ifndef KC_MAXINTSTRING\ \n# define KC_MAXINTSTRING 30\ \n#endif /* !KC_MAXINTSTRING */\ \n\ \ntypedef enum {\ \n", kc_current_view); } unparse_viewnames(Theuviewnames, kc_printer, view_uview_def); { (*kc_printer)("\ \n} uview;\ \ntypedef uview view; /* for backwards compatibility */\ \n\ \nextern char *kc_view_names[];\ \n\ \n", kc_current_view); } unparse_phylumdeclarations(pds, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_unpk_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("/* translation of file(s)\ \n", kc_current_view); } unparse_fnfiles(Thefnfiles, kc_printer, kc_current_view); { (*kc_printer)(" */\ \n/* generated by:\ \n * ", kc_current_view); } unparse_charptr(kimwitu_copyright, kc_printer, kc_current_view); { (*kc_printer)("\ \n */\ \n#ifndef KC_UNPARSE_HEADER\ \n#define KC_UNPARSE_HEADER\ \n#define KIMW_UNPARSE_HEADER /* for backwards compatibility */\ \n/* define our own macro if we have a 'standard' (ansi) C(++) compil", kc_current_view ); (*kc_printer)("er */\ \n#ifndef KC_NO_STDC\ \n# if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32)\ \n# define KC_STDC\ \n# endif\ \n#endif\ \n#include \"k.h\" /* in case a user forgets */\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_fns_owninclude_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("#include \"", kc_current_view); } unparse_charptr(g_hfilename, kc_printer, kc_current_view); { (*kc_printer)("\"\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_fns_start_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 7682 "../gen.k" char *printablefilename = f_make_identifier_basename( g_cfilename ); #line 928 "unpk.c" { (*kc_printer)("/* translation of file \"", kc_current_view); } unparse_casestring(pg_filename, kc_printer, kc_current_view); { (*kc_printer)("\" */\ \n/* generated by:\ \n * ", kc_current_view); } unparse_charptr(kimwitu_copyright, kc_printer, kc_current_view); { (*kc_printer)("\ \n */\ \n#define KC_FUNCTIONS_", kc_current_view); } unparse_charptr(printablefilename, kc_printer, kc_current_view); { (*kc_printer)("\ \n#define KIMW_FUNCTIONS_", kc_current_view); } unparse_charptr(printablefilename, kc_printer, kc_current_view); { (*kc_printer)(" /* for backwards compatibility */\ \n/* define our own macro if we have a 'standard' (ansi) C(++) compiler */\ \n#ifndef KC_NO_STDC\ \n# if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32)", kc_current_view ); (*kc_printer)("\ \n# define KC_STDC\ \n# endif\ \n#endif\ \n#include \ \n#ifdef KC_STDC\ \n# include \ \n#endif\ \n#include \"k.h\"\ \n", kc_current_view); } #line 7701 "../gen.k" FREE((kc_voidptr_t) printablefilename ); #line 958 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_fns_end_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 7672 "../gen.k" char *printablefilename = f_make_identifier_basename( g_hfilename ); #line 967 "unpk.c" { (*kc_printer)("#endif /* ! KC_FUNCTIONS_", kc_current_view); } unparse_charptr(printablefilename, kc_printer, kc_current_view); { (*kc_printer)("_HEADER */\ \n\ \n", kc_current_view); } #line 7676 "../gen.k" FREE((kc_voidptr_t) printablefilename ); #line 975 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_fns_start_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 7652 "../gen.k" char *printablefilename = f_make_identifier_basename( g_hfilename ); #line 984 "unpk.c" { (*kc_printer)("/* translation of file \"", kc_current_view); } unparse_casestring(pg_filename, kc_printer, kc_current_view); { (*kc_printer)("\" */\ \n/* generated by:\ \n * ", kc_current_view); } unparse_charptr(kimwitu_copyright, kc_printer, kc_current_view); { (*kc_printer)("\ \n */\ \n#ifndef KC_FUNCTIONS_", kc_current_view); } unparse_charptr(printablefilename, kc_printer, kc_current_view); { (*kc_printer)("_HEADER\ \n#define KC_FUNCTIONS_", kc_current_view); } unparse_charptr(printablefilename, kc_printer, kc_current_view); { (*kc_printer)("_HEADER\ \n#define KIMW_FUNCTIONS_", kc_current_view); } unparse_charptr(printablefilename, kc_printer, kc_current_view); { (*kc_printer)("_HEADER /* for backwards compatibility */\ \n/* define our own macro if we have a 'standard' (ansi) C(++) compiler */\ \n#ifndef KC_NO_STDC\ \n# if defined(__STDC__) || defined(__cplusplus) || defined(", kc_current_view ); (*kc_printer)("_WIN32)\ \n# define KC_STDC\ \n# endif\ \n#endif\ \n#include \"k.h\" /* in case a user forgets */\ \n\ \n", kc_current_view); } #line 7669 "../gen.k" FREE((kc_voidptr_t) printablefilename ); #line 1014 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_rewritedefs_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 6893 "../gen.k" phylumdeclarations pds = kc_p->u.PhylumDeclarations.phylumdeclarations_1; unparse_phylumdeclarations(pds, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_rewritedecls_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 6879 "../gen.k" phylumdeclarations pds = kc_p->u.PhylumDeclarations.phylumdeclarations_1; unparse_phylumdeclarations(pds, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_rewritek_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("/*LINTLIBRARY*/\ \n/* translation of file(s)\ \n", kc_current_view); } unparse_fnfiles(Thefnfiles, kc_printer, kc_current_view); { (*kc_printer)(" */\ \n/* generated by:\ \n * ", kc_current_view); } unparse_charptr(kimwitu_copyright, kc_printer, kc_current_view); { (*kc_printer)("\ \n */\ \n#define KC_REWRITE\ \n#define KIMW_REWRITE /* for backwards compatibility */\ \n/* define our own macro if we have a 'standard' (ansi) C(++) compiler */\ \n#ifndef KC_NO_STDC\ \n# if defined", kc_current_view ); (*kc_printer)("(__STDC__) || defined(__cplusplus) || defined(_WIN32)\ \n# define KC_STDC\ \n# endif\ \n#endif\ \n#include \ \n#include \ \n#ifdef KC_STDC\ \n# include \ \n#endif\ \n#i", kc_current_view ); (*kc_printer)("nclude \"k.h\"\ \n#include \"rk.h\"\ \n\ \nchar *kc_rview_names[] = {\ \n", kc_current_view); } unparse_viewnames(Therviewnames, kc_printer, kc_current_view); { (*kc_printer)("\ \n};\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_end_rewritek_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("\ \n#endif /* KC_TYPES_HEADER */\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_rewritek_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("/* translation of file(s)\ \n", kc_current_view); } unparse_fnfiles(Thefnfiles, kc_printer, kc_current_view); { (*kc_printer)(" */\ \n/* generated by:\ \n * ", kc_current_view); } unparse_charptr(kimwitu_copyright, kc_printer, kc_current_view); { (*kc_printer)("\ \n */\ \n#ifndef KC_REWRITE_HEADER\ \n#define KC_REWRITE_HEADER\ \n#define KIMW_REWRITE_HEADER /* for backwards compatibility */\ \n/* define our own macro if we have a 'standard' (ansi) C(++) compil", kc_current_view ); (*kc_printer)("er */\ \n#ifndef KC_NO_STDC\ \n# if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32)\ \n# define KC_STDC\ \n# endif\ \n#endif\ \n#include \"k.h\" /* in case a user forgets */\ \n\ \ntypede", kc_current_view ); (*kc_printer)("f enum {\ \n", kc_current_view); } unparse_viewnames(Therviewnames, kc_printer, kc_current_view); { (*kc_printer)("\ \n} rview;\ \n\ \nextern char *kc_rview_names[];\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_copydefs_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 6610 "../gen.k" phylumdeclarations pds = kc_p->u.PhylumDeclarations.phylumdeclarations_1; { (*kc_printer)("/*ARGSUSED*/ kc_voidptr_t kc_do_copy_phylum\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_voidptr_t kc_p, boolean kc_copy_attributes, kc_enum_phyla kc_phylum)\ \n#else\ \n(kc_p, kc_copy_attributes, kc_phylum) kc_", kc_current_view ); (*kc_printer)("voidptr_t kc_p; boolean kc_copy_attributes; kc_enum_phyla kc_phylum;\ \n#endif\ \n{ kc_voidptr_t kc_subtmp[", kc_current_view); } { #line 6618 "../gen.k" int i = last_argsnumbers( Theargsnumbers ); if (i<=0) i = 1; #line 1139 "unpk.c" unparse_int(i, kc_printer, kc_current_view); } { (*kc_printer)("];\ \n kc_voidptr_t kc_answer = 0;\ \n int kc_i;\ \n kc_enum_operators kc_prodsel;\ \n KC_OPERATOR_INFO *kc_op_info;\ \n int kc_st;\ \n kc_hashtable_t kc_a_ht;\ \n /* SHOULD be done using bigatoms? */\ \n", kc_current_view); } unparse_phyla(cg_bigatomphyla, kc_printer, kc_current_view); { (*kc_printer)(" /*SUPPRESS 622*/\ \n assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum);\ \n if ((kc_phylum == kc_phylum_voidptr)) {\ \n return kc_p;\ \n }\ \n kc_prodsel = ((casestring)kc_p)->prod_sel;\ \n kc_op_", kc_current_view ); (*kc_printer)("info = &kc_OperatorInfo[(int)kc_prodsel];\ \n kc_st = (int)kc_op_info->uniq_stored;\ \n kc_a_ht = kc_hashtables[kc_st];\ \n if (kc_st\ \n && (/* kc_storageclass_still_uniq[kc_st]\ \n || */ ((", kc_current_view ); (*kc_printer)("kc_a_ht->in_block != 0)\ \n && (*kc_a_ht->in_block)((kc_voidptr_t)kc_p, kc_a_ht->malloc_private_data)))) {\ \n return kc_p;\ \n } else if (kc_phylum == kc_phylum_casestring) {\ \n return (kc_voidp", kc_current_view ); (*kc_printer)("tr_t)mkcasestring(((casestring)kc_p)->name);\ \n } else if (kc_phylum == kc_phylum_nocasestring) {\ \n return (kc_voidptr_t)mknocasestring(((nocasestring)kc_p)->name);\ \n }\ \n", kc_current_view); } #line 6649 "../gen.k" if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) #line 1177 "unpk.c" { { (*kc_printer)(" switch(kc_prodsel) {\ \n", kc_current_view); } unparse_operators(cg_bigatomoperators, kc_printer, kc_current_view); { (*kc_printer)(" default:\ \n", kc_current_view); } } { (*kc_printer)(" for (kc_i = 0; kc_i < kc_op_info->no_sons; kc_i++) {\ \n kc_subtmp[kc_i] = kc_do_copy_phylum((kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_op_info->suboffset[kc_i]), kc_copy_attributes, kc_op_info->subphylum[k", kc_current_view ); (*kc_printer)("c_i] );\ \n }\ \n switch(kc_op_info->no_sons) {\ \n", kc_current_view); } unparse_argsnumbers(Theargsnumbers, kc_printer, kc_current_view); { (*kc_printer)(" default:\ \n /*SUPPRESS 622*/\ \n assertReason(kc_zero_constant, \"unexpected number of sub-phyla\");/*NOTREACHED*/\ \n }\ \n", kc_current_view); } #line 6667 "../gen.k" if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) #line 1199 "unpk.c" { { (*kc_printer)(" break;\ \n }\ \n", kc_current_view); } } { (*kc_printer)(" if (kc_copy_attributes && (kc_PhylumInfo[(int)kc_phylum].copy_attributes != 0)) {\ \n (*kc_PhylumInfo[(int)kc_phylum].copy_attributes)(kc_p, kc_answer);\ \n }\ \n return kc_answer;\ \n}\ \n\ \n", kc_current_view); } unparse_phylumdeclarations(pds, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_copydecls_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 6591 "../gen.k" phylumdeclarations pds = kc_p->u.PhylumDeclarations.phylumdeclarations_1; unparse_phylumdeclarations(pds, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_copy_attributes_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 6550 "../gen.k" phylumdeclarations pds = kc_p->u.PhylumDeclarations.phylumdeclarations_1; unparse_phylumdeclarations(pds, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 5288 "../gen.k" phylumdeclarations pds = kc_p->u.PhylumDeclarations.phylumdeclarations_1; { (*kc_printer)("/* macro's that do the string concatenation */\ \n#define KC_MIdStr(s) s\ \n#ifdef KC_STDC\ \n# define KC_MStrConc(s1,s2) s1 ## s2\ \n# define KC_MStrConc3(s1,s2,s3) s1 ## s2 ## s3\ \n#else\ \n# define", kc_current_view ); (*kc_printer)(" KC_MStrConc(s1,s2) KC_MIdStr(s1)s2\ \n# define KC_MStrConc3(s1,s2,s3) KC_MIdStr(KC_MIdStr(s1)s2)s3\ \n#endif\ \n\ \n#ifndef MALLOC\ \n# define MALLOC emalloc\ \n#endif\ \n#ifndef REALLOC\ \n/*\ \n * ", kc_current_view ); (*kc_printer)("# ifdef lint\ \n * # define REALLOC(kc_p,kc_s) (kc_p,kc_s,0)\ \n * # else\ \n */\ \n# define REALLOC erealloc\ \n/*\ \n * # endif\ \n */\ \n#endif\ \n#ifndef CALLOC\ \n# define CALLOC ecalloc\ \n#en", kc_current_view ); (*kc_printer)("dif\ \n#ifndef FREE\ \n# define FREE efree\ \n#endif\ \n#ifndef efree\ \n/*\ \n * # ifdef lint\ \n * # define efree(kc_p) \ \n * # else\ \n */\ \n# define efree(kc_p) free((kc_malloc_t)(kc_p))\ \n/*", kc_current_view ); (*kc_printer)("\ \n * # endif\ \n */\ \n#endif\ \n\ \n/* kc_qsort_firstarg_t should be void* kc_voidptr_t, but sun's include files are dumb */\ \n#ifndef KC_QSORT_FIRSTARG_T\ \ntypedef char *kc_qsort_firstarg_t;\ \n#", kc_current_view ); (*kc_printer)("else\ \ntypedef KC_QSORT_FIRSTARG_T kc_qsort_firstarg_t;\ \n#endif\ \n\ \n/* macro that does the string concatenation */\ \n#define kc_str_conc2(a,b) (char*)strcat(strcpy((char *) MALLOC((kc_size_t)(st", kc_current_view ); (*kc_printer)("rlen(a) + strlen(b) +1)), a), b)\ \n\ \n/* macro that does the field/son selection */\ \n#ifndef KC_FIELD\ \n# define KC_FIELD(var,oper,subphy,subphynr,sonnr) (var->u.oper.KC_MStrConc3(subphy,_,subphy", kc_current_view ); (*kc_printer)("nr))\ \n#endif\ \n\ \n/* macro that reads the integers */\ \n#define kc_do_get_int(c,c_init,i,f)\\\ \n c = c_init;\\\ \n i = 0;\\\ \n while (isdigit(c)){\\\ \n i = (i*10) + (c-'0');\\\ \n c = ", kc_current_view ); (*kc_printer)("getc(f);\\\ \n }\ \n\ \nstatic char *kc_malloc_area = (char*)0;\ \nstatic kc_size_t kc_sizeof_malloc_area = 0;\ \n#define KC_GETMALLOCAREA(kc_s) (((kc_s) > kc_sizeof_malloc_area) ? kc_grow_malloc_area", kc_current_view ); (*kc_printer)("(kc_s) : kc_malloc_area)\ \nstatic char *kc_grow_malloc_area\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_size_t kc_s)\ \n#else\ \n(kc_s) kc_size_t kc_s;\ \n#endif\ \n{\ \n if (kc_malloc_area != (char*)0) FREE((", kc_current_view ); (*kc_printer)("kc_voidptr_t)kc_malloc_area);\ \n kc_malloc_area = (char*)MALLOC(kc_s);\ \n kc_sizeof_malloc_area = kc_s;\ \n return kc_malloc_area;\ \n}\ \n\ \ntypedef enum {\ \n KC_CSGIOSTATUS_NO_ERR = 0,\ \n KC_CSG", kc_current_view ); (*kc_printer)("IOSTATUS_SCAN_ERR_1, KC_CSGIOSTATUS_SCAN_ERR_2, KC_CSGIOSTATUS_SCAN_ERR_3, KC_CSGIOSTATUS_SCAN_ERR_4, KC_CSGIOSTATUS_SCAN_ERR_5,\ \n KC_CSGIOSTATUS_GRAM_INCONSISTENT, KC_CSGIOSTATUS_ROK, KC_CSGIOSTATUS", kc_current_view ); (*kc_printer)("_ILLEGAL_OPTION, KC_CSGIOSTATUS_TOO_MANY_OPERATORS,\ \n KC_CSGIOSTATUS_WOK, KC_CSGIOSTATUS_TXT_FILE_INPUT, KC_CSGIOSTATUS_SYNTAX_ERROR, KC_CSGIOSTATUS_ILLEGAL_CONTEXT, KC_CSGIOSTATUS_PREMATURE_EOF,\ \n", kc_current_view ); (*kc_printer)(" KC_CSGIOSTATUS_UNEXP_FATHER_MARK\ \n} KC_IO_STATUS;\ \n\ \ntypedef struct {\ \n KC_IO_STATUS io_status;\ \n char *err_reason;\ \n int line;\ \n} KC_IO_RETURN;\ \n\ \n/* global variables */\ \nstatic j", kc_current_view ); (*kc_printer)("mp_buf kc_priv_env;\ \nstatic char *kc_csgio_err_reason = \"\";\ \nstatic int kc_no_external_ops;\ \n#define KC_NOT_FOUND_OPERATOR -1\ \nstatic int kc_file_offset_base;\ \nstatic int kc_file_offset;\ \n", kc_current_view ); (*kc_printer)("\ \nstatic boolean kc_CSGIOsharing =\ \n#ifndef KC_CSGIO_NO_SHARING\ \n True\ \n#else /* KC_CSGIO_NO_SHARING */\ \n False\ \n#endif /* !KC_CSGIO_NO_SHARING */\ \n ;\ \nstatic kc_hashnode_t (*kc_mkhashn", kc_current_view ); (*kc_printer)("ode)KC__P((YYSTYPE, kc_hashtable_t, kc_enum_phyla)) = \ \n#ifndef KC_CSGIO_NO_SHARING\ \n kc_mksharinghashnode\ \n#else /* KC_CSGIO_NO_SHARING */\ \n kc_mknonsharinghashnode\ \n#endif /* !KC_CSGIO_NO_S", kc_current_view ); (*kc_printer)("HARING */\ \n ;\ \nboolean kc_set_csgio_sharing\ \n#ifdef KC_USE_PROTOTYPES\ \n(boolean kc_i)\ \n#else\ \n(kc_i) boolean kc_i;\ \n#endif\ \n{ boolean kc_tmp = kc_CSGIOsharing;\ \n kc_CSGIOsharing = kc", kc_current_view ); (*kc_printer)("_i;\ \n return kc_tmp;\ \n}\ \n\ \n/* Magic File descriptor(s) */\ \n/* Magic descriptors of length up to KC_MAGIC_LENGTH-1 are supported. */\ \n/* When changing KC_MAGIC_LENGTH. change constant in MAG", kc_current_view ); (*kc_printer)("IC_READ_FORMAT to be one less than KC_MAGIC_LENGTH. */\ \n/* Every file is assumed to start with the magic file descriptor for asc_csg_v3 */\ \n\ \nstatic char kc_ascii_prefix_magic_v3[] = \"A#S#C#S#S#", kc_current_view ); (*kc_printer)("L#V#3\";\ \n#define KC_MAGIC_LENGTH 25\ \n#define KC_MAGIC_READ_FORMAT \"%24s\\n\" \ \n\ \n/* Operators with names of length upto OP_LENGTH-1 are supported. */\ \n/* When changing OP_LENGHTH, change co", kc_current_view ); (*kc_printer)("nstant in OP_READ_FOMAT to be one less */\ \n#define KC_OP_LENGTH 256\ \n#define KC_OP_READ_FORMAT \"%255s\\n\" \ \n\ \n/************************/\ \n/* Error-string Routine */\ \n/********************", kc_current_view ); (*kc_printer)("****/\ \n\ \nstatic char *kc_CSGIOerrorstring\ \n#ifdef KC_USE_PROTOTYPES\ \n(KC_IO_STATUS kc_io_status)\ \n#else\ \n(kc_io_status) KC_IO_STATUS kc_io_status;\ \n#endif\ \n{\ \n switch( (int)kc_io_stat", kc_current_view ); (*kc_printer)("us ) {\ \n case (int)KC_CSGIOSTATUS_NO_ERR: return( \"No errors\" );\ \n case (int)KC_CSGIOSTATUS_SCAN_ERR_1: return( \"Scan error(1)\" );\ \n case (int)KC_CSGIOSTATUS_SCAN_ERR_2: return( \"Scan error(", kc_current_view ); (*kc_printer)("2)\" );\ \n case (int)KC_CSGIOSTATUS_SCAN_ERR_3: return( \"Scan error(3)\" );\ \n case (int)KC_CSGIOSTATUS_SCAN_ERR_4: return( \"Scan error(4)\" );\ \n case (int)KC_CSGIOSTATUS_SCAN_ERR_5: return( \"Sc", kc_current_view ); (*kc_printer)("an error(5)\" );\ \n case (int)KC_CSGIOSTATUS_GRAM_INCONSISTENT: return( \"Grammar is inconsistent\" );\ \n case (int)KC_CSGIOSTATUS_ROK: return( \"Read OK structure file\" );\ \n case (int)KC_CSGIOSTA", kc_current_view ); (*kc_printer)("TUS_ILLEGAL_OPTION: return( \"Illegal option in write command\" );\ \n case (int)KC_CSGIOSTATUS_TOO_MANY_OPERATORS: return( \"Too many operators for binary format\" );\ \n case (int)KC_CSGIOSTATUS_WOK:", kc_current_view ); (*kc_printer)(" return( \"Written OK\" );\ \n case (int)KC_CSGIOSTATUS_TXT_FILE_INPUT: return( \"Read OK Text-file\" );\ \n case (int)KC_CSGIOSTATUS_SYNTAX_ERROR: return( \"Syntax error\" );\ \n case (int)KC_CSGIOSTA", kc_current_view ); (*kc_printer)("TUS_ILLEGAL_CONTEXT: return( \"Illegal context for operator\" );\ \n case (int)KC_CSGIOSTATUS_PREMATURE_EOF: return( \"Premature eof in file\" );\ \n case (int)KC_CSGIOSTATUS_UNEXP_FATHER_MARK: return(", kc_current_view ); (*kc_printer)(" \"Unexpected FATHER MARKER\" );\ \n default: return( \"Unknown error code\" );\ \n }\ \n}\ \n\ \nstatic kc_hashtable_t kc_CSGIOhashtable;\ \n\ \n/* Maps */\ \ntypedef struct {\ \n int left;\ \n int ri", kc_current_view ); (*kc_printer)("ght;\ \n} kc_OpToOpMap_tuple_t;\ \n\ \nstatic kc_OpToOpMap_tuple_t kc_OpToOpMap[ KC_NO_OF_OPERATORS ];\ \n#define KC_NOT_USED -1\ \n\ \nstatic int kc_op_search\ \n#ifdef KC_USE_PROTOTYPES\ \n(char *kc_", kc_current_view ); (*kc_printer)("s)\ \n#else\ \n(kc_s) char *kc_s;\ \n#endif\ \n{\ \n int kc_i;\ \n for ( kc_i=0; kc_i < KC_NO_OF_OPERATORS; kc_i++ ) {\ \n if ( strcmp( kc_s, kc_OperatorInfo[kc_i].name ) == 0 ) return( kc_i );\ \n }\ \n", kc_current_view ); (*kc_printer)(" return( KC_NOT_FOUND_OPERATOR );\ \n}\ \n\ \nstatic void kc_initializeOpToOpMap\ \n#ifdef KC_USE_PROTOTYPES\ \n(int kc_v)\ \n#else\ \n(kc_v) int kc_v;\ \n#endif\ \n{\ \n int kc_i;\ \n for ( kc_i=0; kc", kc_current_view ); (*kc_printer)("_i < KC_NO_OF_OPERATORS; kc_i++ ) {\ \n kc_OpToOpMap[kc_i].left = kc_i;\ \n kc_OpToOpMap[kc_i].right = kc_v;\ \n} }\ \n\ \nstatic int kc_OpToOpMap_tuple_t_compare_right\ \n#ifdef KC_USE_PROTOTYPES\ \n", kc_current_view ); (*kc_printer)("(kc_constvoidptr_t kc_el1, kc_constvoidptr_t kc_el2)\ \n#else\ \n(kc_el1, kc_el2) kc_constvoidptr_t kc_el1, kc_el2;\ \n#endif\ \n{\ \n kc_OpToOpMap_tuple_t *kc_elt1 = (kc_OpToOpMap_tuple_t *)kc_el1;\ \n", kc_current_view ); (*kc_printer)(" kc_OpToOpMap_tuple_t *kc_elt2 = (kc_OpToOpMap_tuple_t *)kc_el2;\ \n /* sort in DECREASING order */\ \n return (kc_elt2->right - kc_elt1->right);\ \n}\ \n\ \nstatic int kc_OpToOpMap_tuple_t_compare_lef", kc_current_view ); (*kc_printer)("t\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_constvoidptr_t kc_el1, kc_constvoidptr_t kc_el2)\ \n#else\ \n(kc_el1, kc_el2) kc_constvoidptr_t kc_el1, kc_el2;\ \n#endif\ \n{\ \n kc_OpToOpMap_tuple_t *kc_elt1 = (", kc_current_view ); (*kc_printer)("kc_OpToOpMap_tuple_t *)kc_el1;\ \n kc_OpToOpMap_tuple_t *kc_elt2 = (kc_OpToOpMap_tuple_t *)kc_el2;\ \n /* sort in INCREASING order */\ \n return (kc_elt1->left - kc_elt2->left);\ \n}\ \n\ \nstatic void", kc_current_view ); (*kc_printer)(" kc_sort_rightOpToOpMap()\ \n{\ \n qsort((kc_qsort_firstarg_t)kc_OpToOpMap, KC_NO_OF_OPERATORS, sizeof(kc_OpToOpMap_tuple_t), kc_OpToOpMap_tuple_t_compare_right);\ \n}\ \n\ \nstatic void kc_sort_leftOp", kc_current_view ); (*kc_printer)("ToOpMap()\ \n{\ \n qsort((kc_qsort_firstarg_t)kc_OpToOpMap, KC_NO_OF_OPERATORS, sizeof(kc_OpToOpMap_tuple_t), kc_OpToOpMap_tuple_t_compare_left);\ \n}\ \n\ \nstatic void kc_renumberOpToOpMap()\ \n{\ \n", kc_current_view ); (*kc_printer)(" int kc_i, kc_j = 0;\ \n for ( kc_i=0; kc_i < KC_NO_OF_OPERATORS; kc_i++ ) {\ \n if (kc_OpToOpMap[kc_i].right > 0) {\ \n kc_OpToOpMap[kc_i].right = kc_j++;\ \n } else {\ \n kc_OpToOpMap[kc_i].rig", kc_current_view ); (*kc_printer)("ht = KC_NOT_USED;\ \n} } }\ \n\ \n\ \n\ \n#define KC_MAKE_NEW_MAPPING(ext_op,int_op) kc_OpToOpMap[ext_op].right = int_op;\ \n#define KC_MAKE_NEW_SCAN_MAPPING(ext_op) kc_OpToOpMap[ext_op].right++;\ \n#d", kc_current_view ); (*kc_printer)("efine KC_MAP(op) (kc_OpToOpMap[op].right)\ \n#define KC_IS_MAPPED(op) (kc_OpToOpMap[op].right != KC_NOT_USED)\ \n#define KC_OP_NAME(op) (kc_OperatorInfo[op].name)\ \n#define KC_NO_SONS(prod) (kc_Operat", kc_current_view ); (*kc_printer)("orInfo[prod].no_sons)\ \n#define KC_ATOMICITY(prod) (kc_OperatorInfo[prod].atomicity)\ \n\ \n/*ARGSUSED*/\ \nstatic void kc_error_operator_not_in_phylum\ \n#ifdef KC_USE_PROTOTYPES\ \n(int kc_op, char ", kc_current_view ); (*kc_printer)("*kc_str1, char *kc_str2, int kc_phy, char *kc_fn, int kc_l)\ \n#else\ \n(kc_op, kc_str1, kc_str2, kc_phy, kc_fn, kc_l) int kc_op; char *kc_str1; char *kc_str2; int kc_phy; char *kc_fn; int kc_l;\ \n#en", kc_current_view ); (*kc_printer)("dif\ \n{\ \n char *kc_error_message1 = \"operator not defined in phylum \";\ \n char *kc_error_message2 = \": \";\ \n if ((kc_op <= (int)kc_one_before_first_operator) || (kc_op >= (int)kc_last_operator", kc_current_view ); (*kc_printer)(")) {\ \n char kc_value[30];\ \n (void)sprintf(kc_value, \"%d\",kc_op);\ \n kc_csgio_err_reason = kc_str_conc2(\"unknown operator number: \",kc_value);\ \n } else {\ \n kc_csgio_err_reason = (char*)", kc_current_view ); (*kc_printer)("strcat(strcat(strcat(strcpy((char*)MALLOC((kc_size_t)(strlen(kc_error_message1)+strlen(kc_PhylumInfo[kc_phy].name)+strlen(kc_error_message2)+strlen(kc_OperatorInfo[kc_op].name)+1)), kc_error_message1),", kc_current_view ); (*kc_printer)(" kc_PhylumInfo[kc_phy].name), kc_error_message2), kc_OperatorInfo[kc_op].name);\ \n }\ \n longjmp( kc_priv_env, (int)KC_CSGIOSTATUS_ILLEGAL_CONTEXT ); /*NOTREACHED*/\ \n}\ \n\ \n/* NEED to be extended ", kc_current_view ); (*kc_printer)("*/\ \nstatic KC_IO_RETURN kc_io_return\ \n#ifdef KC_USE_PROTOTYPES\ \n(KC_IO_STATUS kc_status, char *kc_err_reason /*, int kc_line*/)\ \n#else\ \n(kc_status, kc_err_reason /*, kc_line*/ ) KC_IO_STATUS ", kc_current_view ); (*kc_printer)("kc_status; char *kc_err_reason; /*int kc_line;*/\ \n#endif\ \n{\ \n KC_IO_RETURN kc_r;\ \n kc_r.io_status = kc_status;\ \n kc_r.err_reason = kc_err_reason;\ \n /*kc_r.line = kc_line;*/\ \n return(kc_r)", kc_current_view ); (*kc_printer)(";\ \n}\ \n\ \nstatic char *kc_readKC_IO_RETURN2char\ \n#ifdef KC_USE_PROTOTYPES\ \n(KC_IO_RETURN kc_p)\ \n#else\ \n(kc_p) KC_IO_RETURN kc_p;\ \n#endif\ \n{\ \n char *kc_err_ret = (char *)0;\ \n char *k", kc_current_view ); (*kc_printer)("c_err_sep = \": \";\ \n if (kc_p.io_status != KC_CSGIOSTATUS_ROK) {\ \n char *kc_io_err = kc_CSGIOerrorstring(kc_p.io_status);\ \n kc_err_ret = (char *)MALLOC((kc_size_t)strlen(kc_io_err)+strlen(kc_e", kc_current_view ); (*kc_printer)("rr_sep)+strlen(kc_p.err_reason)+1);\ \n (void)strcpy(kc_err_ret, kc_io_err);\ \n (void)strcat(kc_err_ret, kc_err_sep);\ \n (void)strcat(kc_err_ret, kc_p.err_reason);\ \n }\ \n return kc_err_ret;\ \n", kc_current_view ); (*kc_printer)("}\ \n\ \nstatic char *kc_writeKC_IO_RETURN2char\ \n#ifdef KC_USE_PROTOTYPES\ \n(KC_IO_RETURN kc_p)\ \n#else\ \n(kc_p) KC_IO_RETURN kc_p;\ \n#endif\ \n{\ \n char *kc_err_ret = (char *)0;\ \n char *kc_er", kc_current_view ); (*kc_printer)("r_sep = \": \";\ \n if (kc_p.io_status != KC_CSGIOSTATUS_WOK) {\ \n char *kc_io_err = kc_CSGIOerrorstring(kc_p.io_status);\ \n kc_err_ret = (char *)MALLOC((kc_size_t)strlen(kc_io_err)+strlen(kc_err_s", kc_current_view ); (*kc_printer)("ep)+strlen(kc_p.err_reason)+1);\ \n (void)strcpy(kc_err_ret, kc_io_err);\ \n (void)strcat(kc_err_ret, kc_err_sep);\ \n (void)strcat(kc_err_ret, kc_p.err_reason);\ \n }\ \n return kc_err_ret;\ \n}\ \n", kc_current_view ); (*kc_printer)("\ \n/* Base 64 numbers are written with the digits:\ \n : ; < = > ? @ A-Z [ \\ ] ^ _ ` a-y\ \n Base 10 numbers are written with the ordinary digits 0-9.\ \n Other characters are used in special c", kc_current_view ); (*kc_printer)("ircumstances:\ \n ! Indicates switch between reading attribute and unattributed nodes.\ \n # Indicates that the father is the next PROD_INSTANCE in the file.\ \n + Indicates that the following bytes ar", kc_current_view ); (*kc_printer)("e not a base 64 number\ \n * Indicates a line containing a (decimal) count of attributes.\ \n*/\ \n#define KC_B64_ZERO_CHAR ':'\ \n#define KC_IS_B64(c) ((unsigned)((c)-KC_B64_ZERO_CHAR)<64)\ \n#define ", kc_current_view ); (*kc_printer)("KC_ASCII_ZERO '0'\ \n#define KC_NON_B64_CHAR '+'\ \n#define KC_FATHER_MARKER '#'\ \n#define KC_SIX_BIT_MASK 0x3f\ \n\ \n#ifndef KC_NO_CSGIO_READ\ \n\ \n/* read and compute the base 64 integer in strea", kc_current_view ); (*kc_printer)("m */\ \nstatic unsigned get_rest_of_b64\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_stream, register int kc_read_char, char kc_trailing_char)\ \n#else\ \n(kc_stream, kc_read_char, kc_trailing_char) FILE *", kc_current_view ); (*kc_printer)("kc_stream; register int kc_read_char; char kc_trailing_char;\ \n#endif\ \n{\ \n unsigned kc_next_char;\ \n register int kc_offset;\ \n register int kc_i = 0;\ \n\ \n if (!KC_IS_B64(kc_read_char))\ \n ", kc_current_view ); (*kc_printer)("longjmp(kc_priv_env, (int)KC_CSGIOSTATUS_SCAN_ERR_1);\ \n kc_offset = (int) kc_read_char - KC_B64_ZERO_CHAR;\ \n\ \n kc_next_char = (unsigned) getc(kc_stream);\ \n while(KC_IS_B64(kc_next_char)) {\ \n ", kc_current_view ); (*kc_printer)(" kc_offset += (int) ((kc_next_char - KC_B64_ZERO_CHAR) << (6 * (++kc_i)));\ \n kc_next_char = (unsigned) getc(kc_stream);\ \n }\ \n\ \n if (kc_next_char == '-') {\ \n kc_offset *= -1;\ \n kc_next_c", kc_current_view ); (*kc_printer)("har = (unsigned) getc(kc_stream);\ \n }\ \n\ \n if (kc_next_char != (unsigned)kc_trailing_char)\ \n longjmp(kc_priv_env, (int)KC_CSGIOSTATUS_SCAN_ERR_1);\ \n return((unsigned) kc_offset);\ \n}\ \n\ \n", kc_current_view ); (*kc_printer)("/* read shared functions */\ \ntypedef enum { KC_NOT_READ_YET, KC_READ_EARLIER } KC_READ_STATUS;\ \n/* variable used by the sharing routines during a read */\ \n/* stores pointers to value_ptr fields *", kc_current_view ); (*kc_printer)("/\ \nstatic YYSTYPE *kc_offset_to_address_map;\ \nstatic char* *kc_offset_to_address_map_base;\ \n\ \nstatic void kc_init_read_sharing\ \n#ifdef KC_USE_PROTOTYPES\ \n(int kc_node_count, int kc_node_cou", kc_current_view ); (*kc_printer)("nt_base)\ \n#else\ \n(kc_node_count, kc_node_count_base) int kc_node_count; int kc_node_count_base;\ \n#endif\ \n{\ \n kc_offset_to_address_map = (YYSTYPE *)CALLOC((kc_size_t)kc_node_count, (kc_size_t)", kc_current_view ); (*kc_printer)("sizeof(YYSTYPE));\ \n kc_file_offset = 0;\ \n kc_offset_to_address_map_base = (char* *)CALLOC((kc_size_t)kc_node_count_base, (kc_size_t)sizeof(char*));\ \n kc_file_offset_base = 0;\ \n}\ \n\ \nstatic K", kc_current_view ); (*kc_printer)("C_READ_STATUS kc_read_sharing_find\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_stream, YYSTYPE *kc_valptr)\ \n#else\ \n(kc_stream, kc_valptr) FILE *kc_stream; YYSTYPE *kc_valptr;\ \n#endif\ \n{ char kc_fi", kc_current_view ); (*kc_printer)("rst_char;\ \n unsigned kc_offset;\ \n\ \n kc_first_char = getc(kc_stream);\ \n if (KC_IS_B64(kc_first_char)) {\ \n kc_offset = get_rest_of_b64(kc_stream, kc_first_char, '\\n');\ \n *kc_valptr = kc_of", kc_current_view ); (*kc_printer)("fset_to_address_map[kc_file_offset - (int) kc_offset];\ \n return(KC_READ_EARLIER);\ \n } else {\ \n (void)ungetc(kc_first_char, kc_stream);\ \n return(KC_NOT_READ_YET);\ \n} }\ \n\ \nstatic KC_READ", kc_current_view ); (*kc_printer)("_STATUS kc_read_sharing_find_base\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_stream, char **kc_valptr)\ \n#else\ \n(kc_stream, kc_valptr) FILE *kc_stream; char **kc_valptr;\ \n#endif\ \n{ char kc_first_c", kc_current_view ); (*kc_printer)("har;\ \n unsigned kc_offset;\ \n\ \n kc_first_char = getc(kc_stream);\ \n if (KC_IS_B64(kc_first_char)) {\ \n kc_offset = get_rest_of_b64(kc_stream, kc_first_char, '\\n');\ \n *kc_valptr = kc_offset_", kc_current_view ); (*kc_printer)("to_address_map_base[kc_file_offset_base - (int) kc_offset];\ \n return(KC_READ_EARLIER);\ \n } else {\ \n return(KC_NOT_READ_YET);\ \n} }\ \n\ \n#define kc_read_sharing_store(kc_ptr, kc_loc) \\\ \n k", kc_current_view ); (*kc_printer)("c_offset_to_address_map[kc_loc] = kc_ptr\ \n#define kc_read_sharing_store_base(kc_ptr) \\\ \n kc_offset_to_address_map_base[kc_file_offset_base++] = kc_ptr\ \n\ \n\ \nstatic void kc_end_read_sharing()\ \n", kc_current_view ); (*kc_printer)("{\ \n FREE((kc_voidptr_t)kc_offset_to_address_map);\ \n FREE((kc_voidptr_t)kc_offset_to_address_map_base);\ \n}\ \n\ \nstatic void kc_CSGIOdo_read_atom_denotation\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *", kc_current_view ); (*kc_printer)("kc_stream, char *kc_sbase, int kc_len)\ \n#else\ \n(kc_stream, kc_sbase, kc_len) FILE *kc_stream; char *kc_sbase; int kc_len;\ \n#endif\ \n{\ \n char * kc_sptr = kc_sbase;\ \n register int kc_ch, kc_ch", kc_current_view ); (*kc_printer)("1;\ \n register char kc_test;\ \n register int kc_i;\ \n\ \n for (kc_i=0; kc_iname );\ \n }\ \n break;\ \n case (int)sel_NoCaseStr:\ \n if (kc_read_sharing_find_base( kc_stream, &kc_sbase ) ==", kc_current_view ); (*kc_printer)(" KC_NOT_READ_YET) {\ \n kc_not_read_yet = True;\ \n kc_do_get_int(kc_delim,getc(kc_stream),kc_len,kc_stream);\ \n if ( kc_delim == EOF )\ \n longjmp(kc_priv_env, (int)KC_CSGIOSTATUS_SCAN_ERR_1", kc_current_view ); (*kc_printer)(");\ \n kc_sbase = (char *) KC_GETMALLOCAREA((kc_size_t)(kc_len + 1)); /* +1 for '\\0' */\ \n kc_CSGIOdo_read_atom_denotation(kc_stream, kc_sbase, kc_len);\ \n }\ \n kc_answer.yt_nocasestring = mk", kc_current_view ); (*kc_printer)("nocasestring( kc_sbase );\ \n if (kc_not_read_yet) {\ \n kc_read_sharing_store_base( kc_answer.yt_nocasestring->name );\ \n }\ \n break;\ \n default: {\ \n YYSTYPE kc_subtmp[", kc_current_view); } { #line 5911 "../gen.k" int i = last_argsnumbers( Theargsnumbers ); if (i<=0) i = 1; #line 1970 "unpk.c" unparse_int(i, kc_printer, kc_current_view); } { (*kc_printer)("];\ \n int kc_i;\ \n for (kc_i = 0; kc_i < kc_OperatorInfo[kc_op].no_sons; kc_i++) {\ \n kc_subtmp[kc_i] = kc_CSGIOread2dft(kc_stream, kc_OperatorInfo[kc_op].subphylum[kc_i] );\ \n }\ \n", kc_current_view); } #line 5918 "../gen.k" if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) #line 1981 "unpk.c" { { (*kc_printer)(" switch(kc_op) {\ \n", kc_current_view); } unparse_operators(cg_bigatomoperators, kc_printer, kc_current_view); { (*kc_printer)(" default:\ \n", kc_current_view); } } { (*kc_printer)(" switch(kc_OperatorInfo[kc_op].no_sons) {\ \n", kc_current_view); } unparse_argsnumbers(Theargsnumbers, kc_printer, kc_current_view); { (*kc_printer)(" default:\ \n /*SUPPRESS 622*/\ \n assertReason(kc_zero_constant, \"unexpected number of sub-phyla\"); break;\ \n }\ \n", kc_current_view); } #line 5933 "../gen.k" if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) #line 1999 "unpk.c" { { (*kc_printer)(" break;\ \n }\ \n", kc_current_view); } } { (*kc_printer)(" }}\ \n kc_read_sharing_store( kc_answer, kc_location );\ \n return kc_answer;\ \n}\ \n\ \nstatic KC_IO_RETURN kc_CSGIOreadphylum\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_stream, YYSTYPE *kc_ptr, kc_en", kc_current_view ); (*kc_printer)("um_phyla kc_phylum)\ \n#else\ \n(kc_stream, kc_ptr, kc_phylum) FILE *kc_stream; YYSTYPE *kc_ptr; kc_enum_phyla kc_phylum;\ \n#endif\ \n{ KC_IO_STATUS kc_answer;\ \n int kc_scan_return_code;\ \n char kc", kc_current_view ); (*kc_printer)("_magic_no[KC_MAGIC_LENGTH];\ \n char kc_dollarcode[KC_OP_LENGTH];\ \n char kc_ext_name[KC_OP_LENGTH];\ \n int kc_operator, kc_node_count, kc_node_count_base;\ \n\ \n kc_csgio_err_reason = \"\";\ \n kc_", kc_current_view ); (*kc_printer)("scan_return_code = fscanf( kc_stream, KC_MAGIC_READ_FORMAT, kc_magic_no );\ \n if ( kc_scan_return_code != 1 )\ \n return( kc_io_return(KC_CSGIOSTATUS_GRAM_INCONSISTENT, \"magic string not scanned\") ", kc_current_view ); (*kc_printer)(");\ \n if ( strcmp( kc_magic_no, kc_ascii_prefix_magic_v3 ) != 0 )\ \n return( kc_io_return(KC_CSGIOSTATUS_GRAM_INCONSISTENT,\"scanned magic string is not asc_ssl_v3 magic string\") );\ \n if ( fscanf", kc_current_view ); (*kc_printer)("( kc_stream, \"$%[^ ] \\n\", kc_dollarcode ) != 1 )\ \n return( kc_io_return(KC_CSGIOSTATUS_GRAM_INCONSISTENT,\"problems finding $ before operators\") );\ \n while ( strcmp( kc_dollarcode, \"operators", kc_current_view ); (*kc_printer)("\" ) != 0 ) {\ \n if ( fscanf( kc_stream, \"%*[^$]$%[^ ] \\n\", kc_dollarcode) != 1 )\ \n return( kc_io_return(KC_CSGIOSTATUS_GRAM_INCONSISTENT,\"problems finding operators keyword\") );\ \n }\ \n /", kc_current_view ); (*kc_printer)("* read all external operator definitions and initialize map */\ \n kc_no_external_ops = 0;\ \n kc_initializeOpToOpMap(KC_NOT_FOUND_OPERATOR);\ \n while ( ! kc_zero_constant ) {\ \n int kc_ext_arity, k", kc_current_view ); (*kc_printer)("c_ext_attr_arity, kc_ext_atomicity;\ \n\ \n if ( fscanf( kc_stream, \"%[^ ] \", kc_ext_name ) != 1 )\ \n return( kc_io_return(KC_CSGIOSTATUS_SCAN_ERR_3, \"no operator name at start of line\") );\ \n", kc_current_view ); (*kc_printer)(" else if ( kc_ext_name[0] == '$' )\ \n break;\ \n else if ( fscanf( kc_stream, \"%d %d %d\\n\", &kc_ext_arity, &kc_ext_attr_arity, &kc_ext_atomicity ) != 3 )\ \n return( kc_io_return(KC_CSGIOSTAT", kc_current_view ); (*kc_printer)("US_SCAN_ERR_4, \"no arity, attr_arity or atomicity\") );\ \n else {\ \n kc_operator = kc_op_search( kc_ext_name );\ \n if ( ( kc_operator == KC_NOT_FOUND_OPERATOR ) ||\ \n ( KC_NO_SONS( kc_ope", kc_current_view ); (*kc_printer)("rator ) != kc_ext_arity ) ||\ \n ( KC_ATOMICITY( kc_operator) != kc_ext_atomicity )\ \n )\ \n return( kc_io_return(KC_CSGIOSTATUS_GRAM_INCONSISTENT, kc_str_conc2(\"problems with operator: \"", kc_current_view ); (*kc_printer)(",kc_ext_name)) );\ \n else {\ \n KC_MAKE_NEW_MAPPING( kc_no_external_ops, kc_operator );\ \n kc_no_external_ops++;\ \n } } }\ \n kc_answer = (KC_IO_STATUS) setjmp( kc_priv_env );\ \n if ( kc_an", kc_current_view ); (*kc_printer)("swer != KC_CSGIOSTATUS_NO_ERR )\ \n /* longjmp was called if we get here */\ \n return( kc_io_return(kc_answer, kc_csgio_err_reason));\ \n else {\ \n /* ascertain that we are at the $object section,", kc_current_view ); (*kc_printer)(" or get to that point */\ \n if ( strcmp( kc_ext_name, \"$object\" ) != 0 ) /* if not at $object */\ \n while ( strcmp( kc_ext_name, \"object\" ) != 0 ) {\ \n if ( fscanf( kc_stream, \"%*[^$]$%[^", kc_current_view ); (*kc_printer)(" ]\", kc_ext_name ) != 1 )\ \n return( kc_io_return(KC_CSGIOSTATUS_GRAM_INCONSISTENT, kc_str_conc2(\"problems finding start of object section\",\"\")) );\ \n }\ \n\ \n /* read node_count; set up", kc_current_view ); (*kc_printer)(" address map */\ \n if (fscanf(kc_stream, \"%d %d\\n\", &kc_node_count, &kc_node_count_base) != 2)\ \n longjmp(kc_priv_env, (int)KC_CSGIOSTATUS_SCAN_ERR_1);\ \n kc_init_read_sharing(kc_node_count, ", kc_current_view ); (*kc_printer)("kc_node_count_base); /* for shared values */\ \n\ \n /* read the tree (actually a graph) */\ \n *kc_ptr = kc_CSGIOread2dft( kc_stream, kc_phylum );\ \n kc_end_read_sharing(); /* for atomic values */", kc_current_view ); (*kc_printer)("\ \n\ \n kc_answer = KC_CSGIOSTATUS_ROK;\ \n }\ \n return( kc_io_return(kc_answer, \"\") );\ \n}\ \n\ \n", kc_current_view); } unparse_phylumdeclarations(pds, kc_printer, view_gen_csgio_c_read); { (*kc_printer)("#endif /* ! KC_NO_CSGIO_READ */\ \n\ \n#ifndef KC_NO_CSGIO_WRITE\ \nstatic int kc_node_count;\ \nstatic int kc_node_count_base;\ \n\ \nstatic void kc_print_to_file\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE ", kc_current_view ); (*kc_printer)("*kc_f, char *kc_value)\ \n#else\ \n(kc_f, kc_value) FILE *kc_f; char *kc_value;\ \n#endif\ \n{ register unsigned char *kc_vptr = (unsigned char*)kc_value;\ \n register int kc_len = strlen(kc_value);\ \n", kc_current_view ); (*kc_printer)(" register int kc_i;\ \n static char kc_hex_digit[] = \"0123456789abcdef\";\ \n\ \n (void)fprintf(kc_f, \"%d \", kc_len);\ \n for (kc_i=0; kc_i_ptr)--;\ \n kc_f->_cnt++;\ \n *************", kc_current_view ); (*kc_printer)("****************/\ \n}\ \n\ \nstatic void kc_print_b64_to_file\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f, int kc_value)\ \n#else\ \n(kc_f, kc_value) FILE *kc_f; int kc_value;\ \n#endif\ \n{ unsigned i", kc_current_view ); (*kc_printer)("nt kc_pos_value; \ \n\ \n if (kc_value == 0) {\ \n (void)putc(KC_B64_ZERO_CHAR, kc_f);\ \n } else {\ \n kc_pos_value = abs(kc_value);\ \n while (kc_pos_value != 0) {\ \n (void)putc((int)((k", kc_current_view ); (*kc_printer)("c_pos_value & KC_SIX_BIT_MASK) + KC_B64_ZERO_CHAR), kc_f);\ \n kc_pos_value >>= 6;\ \n }\ \n if (kc_value < 0) {\ \n (void)putc('-', kc_f);\ \n }\ \n }\ \n (void)putc('\\n', kc_f);\ \n}\ \n\ \n", kc_current_view); } unparse_phyla(cg_bigatomphyla, kc_printer, view_gen_csgio_scandefs_c); { (*kc_printer)("static void kc_CSGIOscan\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_stream, kc_voidptr_t kc_p, kc_enum_phyla kc_phylum)\ \n#else\ \n(kc_stream, kc_p, kc_phylum) FILE *kc_stream; kc_voidptr_t kc_p; kc_enu", kc_current_view ); (*kc_printer)("m_phyla kc_phylum;\ \n#endif\ \n{ int kc_i;\ \n kc_enum_operators kc_prodsel;\ \n kc_hashnode_t kc_hn;\ \n YYSTYPE kc_yt;\ \n", kc_current_view); } unparse_phyla(cg_bigatomphyla, kc_printer, view_gen_csgio_scandef_c); { (*kc_printer)(" /*SUPPRESS 622*/\ \n assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum);\ \n kc_prodsel = (kc_phylum == kc_phylum_voidptr ? sel__VoidPtr :\ \n ((casestring)kc_p)->prod_sel);\ \n k", kc_current_view ); (*kc_printer)("c_yt.yt_voidptr = kc_p;\ \n kc_hn = (*kc_mkhashnode)(kc_yt, kc_CSGIOhashtable, kc_phylum);\ \n if (kc_hn->number == -1) {\ \n kc_hn->number = kc_node_count++;\ \n KC_MAKE_NEW_SCAN_MAPPING( (int)kc_pr", kc_current_view ); (*kc_printer)("odsel );\ \n switch((int)kc_prodsel) {\ \n case (int)sel__VoidPtr:\ \n break;\ \n case (int)sel__Str:\ \n case (int)sel_NoCaseStr:\ \n kc_yt.yt_voidptr = (kc_voidptr_t)((casestring)kc_p)->name;", kc_current_view ); (*kc_printer)("\ \n kc_hn = (*kc_mkhashnode)( kc_yt, kc_CSGIOhashtable, kc_phylum_voidptr);\ \n if (kc_hn->number == -1) {\ \n kc_hn->number = kc_node_count_base++;\ \n }\ \n break;\ \n", kc_current_view); } #line 6112 "../gen.k" if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) #line 2210 "unpk.c" { unparse_operators(cg_bigatomoperators, kc_printer, view_gen_csgio_scandef_c); } { (*kc_printer)(" default:\ \n for (kc_i=0; kc_i < kc_OperatorInfo[(int)kc_prodsel].no_sons; kc_i++) {\ \n kc_CSGIOscan( kc_stream, (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[kc_i", kc_current_view ); (*kc_printer)("]), kc_OperatorInfo[(int)kc_prodsel].subphylum[kc_i] );\ \n} } } }\ \n\ \n", kc_current_view); } unparse_phyla(cg_bigatomphyla, kc_printer, view_gen_csgio_write2structuredefs_c); { (*kc_printer)("static void kc_CSGIOwrite2structure\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_stream, kc_voidptr_t kc_p, kc_enum_phyla kc_phylum)\ \n#else\ \n(kc_stream, kc_p, kc_phylum) FILE *kc_stream; kc_voidptr_t k", kc_current_view ); (*kc_printer)("c_p; kc_enum_phyla kc_phylum;\ \n#endif\ \n{ int kc_i;\ \n kc_enum_operators kc_prodsel;\ \n kc_hashnode_t kc_hn;\ \n YYSTYPE kc_yt;\ \n", kc_current_view); } unparse_phyla(cg_bigatomphyla, kc_printer, view_gen_csgio_write2structuredef_c); { (*kc_printer)(" /*SUPPRESS 622*/\ \n assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum);\ \n kc_prodsel = (kc_phylum == kc_phylum_voidptr ? sel__VoidPtr :\ \n ((casestring)kc_p)->prod_sel);\ \n k", kc_current_view ); (*kc_printer)("c_yt.yt_voidptr = kc_p;\ \n kc_hn = (*kc_mkhashnode)(kc_yt, kc_CSGIOhashtable, kc_phylum);\ \n if (kc_hn->created) {\ \n kc_print_b64_to_file( kc_stream, kc_file_offset - kc_hn->number );\ \n } else {", kc_current_view ); (*kc_printer)("\ \n kc_hn->created = True;\ \n (void)fprintf( kc_stream, \"%d\\n\", KC_MAP( (int)kc_prodsel ) );\ \n kc_file_offset++;\ \n switch((int)kc_prodsel) {\ \n case (int)sel__VoidPtr: {\ \n /* FATAL E", kc_current_view ); (*kc_printer)("RROR */\ \n char kc_value[30];\ \n (void)sprintf( kc_value, \"%p\", kc_p);\ \n kc_print_to_file( kc_stream, kc_value );\ \n break; }\ \n case (int)sel__Str:\ \n case (int)sel_NoCaseStr:\ \n ", kc_current_view ); (*kc_printer)(" kc_yt.yt_voidptr = (kc_voidptr_t) ((casestring)kc_p)->name;\ \n kc_hn = (*kc_mkhashnode)(kc_yt, kc_CSGIOhashtable, kc_phylum_voidptr);\ \n if (kc_hn->created) {\ \n kc_print_b64_to_file( kc_str", kc_current_view ); (*kc_printer)("eam, kc_file_offset_base - kc_hn->number );\ \n } else {\ \n kc_hn->created = True;\ \n (void)fprintf( kc_stream, \"%c\", KC_NON_B64_CHAR );\ \n kc_print_to_file( kc_stream, ((casestring)kc_", kc_current_view ); (*kc_printer)("p)->name );\ \n kc_file_offset_base++;\ \n }\ \n break;\ \n", kc_current_view); } #line 6167 "../gen.k" if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) #line 2276 "unpk.c" { unparse_operators(cg_bigatomoperators, kc_printer, view_gen_csgio_write2structuredef_c); } { (*kc_printer)(" default:\ \n for (kc_i=0; kc_i < kc_OperatorInfo[(int)kc_prodsel].no_sons; kc_i++) {\ \n kc_CSGIOwrite2structure( kc_stream, (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].sub", kc_current_view ); (*kc_printer)("offset[kc_i]), kc_OperatorInfo[(int)kc_prodsel].subphylum[kc_i] );\ \n} } } }\ \n\ \nstatic int kc_CSGIO_hashtablesize = 5000;\ \nint kc_set_csgio_hashtablesize\ \n#ifdef KC_USE_PROTOTYPES\ \n(int kc_i", kc_current_view ); (*kc_printer)(")\ \n#else\ \n(kc_i) int kc_i;\ \n#endif\ \n{ int kc_tmp = kc_CSGIO_hashtablesize;\ \n kc_CSGIO_hashtablesize = kc_i;\ \n return kc_tmp;\ \n}\ \n\ \nstatic KC_IO_RETURN kc_CSGIOwritephylum\ \n#ifdef K", kc_current_view ); (*kc_printer)("C_USE_PROTOTYPES\ \n(FILE *kc_stream, YYSTYPE kc_p, kc_enum_phyla kc_phylum)\ \n#else\ \n(kc_stream, kc_p, kc_phylum) FILE *kc_stream; YYSTYPE kc_p; kc_enum_phyla kc_phylum;\ \n#endif\ \n{ int kc_i;\ \n", kc_current_view ); (*kc_printer)(" kc_hashnode_t (*kc_old_mkhashnode)KC__P((YYSTYPE, kc_hashtable_t, kc_enum_phyla)) = kc_mkhashnode;\ \n\ \n kc_csgio_err_reason = \"\";\ \n\ \n if (kc_CSGIOsharing) {\ \n kc_CSGIOhashtable = kc_ht_cre", kc_current_view ); (*kc_printer)("ate_simple(kc_CSGIO_hashtablesize);\ \n kc_mkhashnode = kc_mksharinghashnode;\ \n } else {\ \n kc_mkhashnode = kc_mknonsharinghashnode;\ \n }\ \n\ \n /* write out the magic string and $operators stri", kc_current_view ); (*kc_printer)("ng */\ \n (void)fprintf( kc_stream, \"%s\\n$operators \\n\", kc_ascii_prefix_magic_v3 );\ \n\ \n /* Initialize map from internal operators to external operators, */\ \n /* initially empty */\ \n kc_no_", kc_current_view ); (*kc_printer)("external_ops = 0;\ \n kc_node_count = 0;\ \n kc_node_count_base = 0;\ \n kc_initializeOpToOpMap(0); /* initialize to 0, not an other value */\ \n\ \n /* write out grammar and compute OpToOpMap[] */\ \n", kc_current_view); } #line 6217 "../gen.k" if (cg_bigatomphyla && length_phyla(cg_bigatomphyla) > 0) #line 2336 "unpk.c" { { (*kc_printer)(" switch(kc_phylum) {\ \n", kc_current_view); } unparse_phyla(cg_bigatomphyla, kc_printer, view_gen_csgio_writephylumdef_scan_c); { (*kc_printer)(" default:\ \n", kc_current_view); } } { (*kc_printer)(" kc_CSGIOscan( kc_stream, kc_p.yt_voidptr, kc_phylum );\ \n", kc_current_view); } #line 6226 "../gen.k" if (cg_bigatomphyla && length_phyla(cg_bigatomphyla) > 0) #line 2348 "unpk.c" { { (*kc_printer)(" }\ \n", kc_current_view); } } { (*kc_printer)(" /* sort the optoopmap on decreasing operator usage */\ \n kc_sort_rightOpToOpMap();\ \n kc_renumberOpToOpMap();\ \n \ \n /* write out the _sorted_ operator table */\ \n for(kc_i = 0; kc_i < KC_NO_OF_", kc_current_view ); (*kc_printer)("OPERATORS; kc_i++) {\ \n if (kc_OpToOpMap[kc_i].right != KC_NOT_USED) {\ \n (void)fprintf( kc_stream, \"%s %d %d %d\\n\", KC_OP_NAME( kc_OpToOpMap[kc_i].left), KC_NO_SONS( kc_OpToOpMap[kc_i].left ),", kc_current_view ); (*kc_printer)(" 0, KC_ATOMICITY( kc_OpToOpMap[kc_i].left ) );\ \n } }\ \n\ \n /* sort the optoopmap increasing on the operator number */\ \n kc_sort_leftOpToOpMap();\ \n\ \n /* write out the grammar terminator string", kc_current_view ); (*kc_printer)(" and the number of nodes */\ \n (void)fprintf( kc_stream, \"$object \\n%d %d\\n\", kc_node_count, kc_node_count_base );\ \n\ \n /* write out the tree */\ \n kc_file_offset = 0;\ \n kc_file_offset_base ", kc_current_view ); (*kc_printer)("= 0;\ \n", kc_current_view); } #line 6250 "../gen.k" if (cg_bigatomphyla && length_phyla(cg_bigatomphyla) > 0) #line 2379 "unpk.c" { { (*kc_printer)(" switch(kc_phylum) {\ \n", kc_current_view); } unparse_phyla(cg_bigatomphyla, kc_printer, view_gen_csgio_writephylumdef_write_c); { (*kc_printer)(" default:\ \n", kc_current_view); } } { (*kc_printer)(" kc_CSGIOwrite2structure( kc_stream, kc_p.yt_voidptr, kc_phylum );\ \n", kc_current_view); } #line 6259 "../gen.k" if (cg_bigatomphyla && length_phyla(cg_bigatomphyla) > 0) #line 2391 "unpk.c" { { (*kc_printer)(" }\ \n", kc_current_view); } } { (*kc_printer)("\ \n if (kc_CSGIOsharing) {\ \n kc_ht_delete(kc_CSGIOhashtable);\ \n }\ \n kc_mkhashnode = kc_old_mkhashnode;\ \n\ \n return( kc_io_return(KC_CSGIOSTATUS_WOK, kc_csgio_err_reason) );\ \n}\ \n\ \n", kc_current_view); } unparse_phylumdeclarations(pds, kc_printer, view_gen_csgio_c_write); { (*kc_printer)("#endif /* ! KC_NO_CSGIO_WRITE */\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_start_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("/*LINTLIBRARY*/\ \n/* translation of file(s)\ \n", kc_current_view); } unparse_fnfiles(Thefnfiles, kc_printer, kc_current_view); { (*kc_printer)(" */\ \n/* generated by:\ \n * ", kc_current_view); } unparse_charptr(kimwitu_copyright, kc_printer, kc_current_view); { (*kc_printer)("\ \n */\ \n#define KC_CSGIO\ \n#define KIMW_CSGIO /* for backwards compatibility */\ \n/* define our own macro if we have a 'standard' (ansi) C(++) compiler */\ \n#ifndef KC_NO_STDC\ \n# if defined(__S", kc_current_view ); (*kc_printer)("TDC__) || defined(__cplusplus) || defined(_WIN32)\ \n# define KC_STDC\ \n# endif\ \n#endif\ \n#include \ \n#include \ \n#include \ \n#include \ \n#if ((! defined(", kc_current_view ); (*kc_printer)("KC_STDC) ) && defined(sun))\ \n extern char *sprintf();\ \n#endif\ \n#ifdef KC_STDC\ \n# include \ \n#else\ \n extern double atof (/* char* */);\ \n#endif\ \n#include \"k.h\"\ \n#include \"", kc_current_view ); (*kc_printer)("csgiok.h\"\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 5233 "../gen.k" phylumdeclarations pds = kc_p->u.PhylumDeclarations.phylumdeclarations_1; unparse_phylumdeclarations(pds, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_end_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("#endif /* ! KC_CSGIO_HEADER */\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_start_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("/* translation of file(s)\ \n", kc_current_view); } unparse_fnfiles(Thefnfiles, kc_printer, kc_current_view); { (*kc_printer)(" */\ \n/* generated by:\ \n * ", kc_current_view); } unparse_charptr(kimwitu_copyright, kc_printer, kc_current_view); { (*kc_printer)("\ \n */\ \n#ifndef KC_CSGIO_HEADER\ \n#define KC_CSGIO_HEADER\ \n#define KIMW_CSGIO_HEADER /* for backwards compatibility */\ \n/* define our own macro if we have a 'standard' (ansi) C(++) compiler */\ \n", kc_current_view ); (*kc_printer)("#ifndef KC_NO_STDC\ \n# if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32)\ \n# define KC_STDC\ \n# endif\ \n#endif\ \n#include \"k.h\" /* in case a user forgets */\ \n\ \nint kc_set_csgi", kc_current_view ); (*kc_printer)("o_hashtablesize KC__P((int kc_i));\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_listdefs_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 4821 "../gen.k" phylumdeclarations pds = kc_p->u.PhylumDeclarations.phylumdeclarations_1; { (*kc_printer)("static char *kc_error_concat = \"concat_\";\ \nstatic char *kc_error_reverse = \"reverse_\";\ \nstatic char *kc_error_length = \"length_\";\ \nstatic char *kc_error_last = \"last_\";\ \nstatic char *kc", kc_current_view ); (*kc_printer)("_error_last_with_nil_argument = \"Internal Error: last_%s was called with argument Nil%s\\n\";\ \nstatic char *kc_error_map = \"map_\";\ \nstatic char *kc_error_filter = \"filter_\";\ \nstatic char *kc", kc_current_view ); (*kc_printer)("_error_freelist = \"freelist_\";\ \n\ \nstatic int kc_do_length_phylum\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_voidptr_t kc_p, kc_enum_phyla kc_phylum )\ \n#else\ \n(kc_p, kc_phylum) kc_voidptr_t kc_p; kc_e", kc_current_view ); (*kc_printer)("num_phyla kc_phylum;\ \n#endif\ \n{ boolean kc_not_ready = True;\ \n int kc_length = 0;\ \n kc_enum_operators kc_prodsel;\ \n while(kc_not_ready) {\ \n /*SUPPRESS 622*/\ \n assertPhylum(((casestring)", kc_current_view ); (*kc_printer)("kc_p),\"kc_p\",kc_phylum);\ \n kc_prodsel = ((casestring)kc_p)->prod_sel;\ \n if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].first_operator) {\ \n kc_not_ready=False;\ \n } else if (kc_prodsel ==", kc_current_view ); (*kc_printer)(" kc_PhylumInfo[(int)kc_phylum].last_operator) {\ \n kc_length++;\ \n kc_p = (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[1]);\ \n } else {\ \n kc_invalid_operator(", kc_current_view ); (*kc_printer)("kc_error_length, kc_phylum, __LINE__, __FILE__, (int)kc_prodsel);/*NOTREACHED*/\ \n } }\ \n return kc_length;\ \n}\ \n\ \nstatic void kc_do_freelist_phylum\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_voidptr_t ", kc_current_view ); (*kc_printer)("kc_p, kc_enum_phyla kc_phylum )\ \n#else\ \n(kc_p, kc_phylum) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum;\ \n#endif\ \n{ boolean kc_not_ready = True;\ \n kc_enum_operators kc_prodsel;\ \n kc_voidptr_t ", kc_current_view ); (*kc_printer)("kc_tmp_p;\ \n while(kc_not_ready) {\ \n /*SUPPRESS 622*/\ \n assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum);\ \n kc_prodsel = ((casestring)kc_p)->prod_sel;\ \n if (kc_prodsel == kc_PhylumInfo[", kc_current_view ); (*kc_printer)("(int)kc_phylum].first_operator) {\ \n kc_do_free_phylum(kc_p, False, kc_phylum);\ \n kc_not_ready=False;\ \n } else if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].last_operator) {\ \n kc_tmp_p ", kc_current_view ); (*kc_printer)("= kc_p;\ \n kc_p = (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[1]);\ \n kc_do_free_phylum(kc_tmp_p, False, kc_phylum);\ \n } else {\ \n kc_invalid_operator(kc_err", kc_current_view ); (*kc_printer)("or_freelist, kc_phylum, __LINE__, __FILE__, (int)kc_prodsel);/*NOTREACHED*/\ \n} } }\ \n\ \nstatic kc_voidptr_t kc_do_concat_phylum\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_voidptr_t kc_p1, kc_voidptr_t kc_p", kc_current_view ); (*kc_printer)("2, kc_enum_phyla kc_phylum)\ \n#else\ \n(kc_p1, kc_p2, kc_phylum) kc_voidptr_t kc_p1, kc_p2; kc_enum_phyla kc_phylum;\ \n#endif\ \n{ kc_enum_operators kc_prodsel;\ \n /*SUPPRESS 622*/\ \n assertPhylum(", kc_current_view ); (*kc_printer)("((casestring)kc_p1),\"kc_p1\",kc_phylum);\ \n kc_prodsel = ((casestring)kc_p1)->prod_sel;\ \n if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].first_operator) {\ \n return kc_p2;\ \n } else if (kc_prod", kc_current_view ); (*kc_printer)("sel == kc_PhylumInfo[(int)kc_phylum].last_operator) {\ \n return (kc_voidptr_t)(*kc_OperatorInfo[(int)kc_prodsel].create_routine)(\ \n kc_prodsel,\ \n (kc_voidptr_t)KC_SUBPHYLUM(kc_p1, kc_Operator", kc_current_view ); (*kc_printer)("Info[(int)kc_prodsel].suboffset[0]),\ \n kc_do_concat_phylum( (kc_voidptr_t)KC_SUBPHYLUM(kc_p1, kc_OperatorInfo[(int)kc_prodsel].suboffset[1]), kc_p2, kc_phylum ) );\ \n } else {\ \n kc_invalid_ope", kc_current_view ); (*kc_printer)("rator(kc_error_concat, kc_phylum, __LINE__, __FILE__, (int)kc_prodsel);/*NOTREACHED*/return (kc_voidptr_t)0;\ \n} }\ \n\ \nstatic kc_voidptr_t kc_do_reverse_phylum\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_vo", kc_current_view ); (*kc_printer)("idptr_t kc_p, kc_enum_phyla kc_phylum)\ \n#else\ \n(kc_p, kc_phylum) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum;\ \n#endif\ \n{ boolean kc_not_ready = True;\ \n kc_enum_operators kc_prodsel;\ \n KC_PHY", kc_current_view ); (*kc_printer)("LUM_INFO *kc_phy_info = &kc_PhylumInfo[(int)kc_phylum];\ \n KC_OPERATOR_INFO *kc_firstop_info = &kc_OperatorInfo[(int)kc_phy_info->first_operator];\ \n KC_OPERATOR_INFO *kc_lastop_info = &kc_OperatorIn", kc_current_view ); (*kc_printer)("fo[(int)kc_phy_info->last_operator];\ \n kc_voidptr_t kc_tmp = (*kc_firstop_info->create_routine)(kc_phy_info->first_operator);\ \n while(kc_not_ready) {\ \n /*SUPPRESS 622*/\ \n assertPhylum(((cases", kc_current_view ); (*kc_printer)("tring)kc_p),\"kc_p\",kc_phylum);\ \n kc_prodsel = ((casestring)kc_p)->prod_sel;\ \n if (kc_prodsel == kc_phy_info->first_operator) {\ \n kc_not_ready=False;\ \n } else if (kc_prodsel == kc_phy_inf", kc_current_view ); (*kc_printer)("o->last_operator) {\ \n kc_tmp = (kc_voidptr_t)(*kc_lastop_info->create_routine)(kc_prodsel, (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_lastop_info->suboffset[0]), kc_tmp);\ \n kc_p = (kc_voidptr_t)KC_SUB", kc_current_view ); (*kc_printer)("PHYLUM(kc_p, kc_lastop_info->suboffset[1]);\ \n } else {\ \n kc_invalid_operator(kc_error_reverse, kc_phylum, __LINE__, __FILE__, (int)kc_prodsel);/*NOTREACHED*/\ \n } }\ \n return kc_tmp;\ \n}\ \n\ \n", kc_current_view ); (*kc_printer)("static kc_voidptr_t kc_do_last_phylum\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_voidptr_t kc_p, kc_enum_phyla kc_phylum)\ \n#else\ \n(kc_p, kc_phylum) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum;\ \n#endif\ \n", kc_current_view ); (*kc_printer)("{ boolean kc_not_ready = True;\ \n kc_voidptr_t kc_tmp = (kc_voidptr_t)0;\ \n kc_enum_operators kc_prodsel;\ \n KC_PHYLUM_INFO *kc_phy_info = &kc_PhylumInfo[(int)kc_phylum];\ \n KC_OPERATOR_INFO *kc_la", kc_current_view ); (*kc_printer)("stop_info = &kc_OperatorInfo[(int)kc_phy_info->last_operator];\ \n /*SUPPRESS 622*/\ \n assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum);\ \n if (((casestring)kc_p)->prod_sel == kc_phy_info->first_o", kc_current_view ); (*kc_printer)("perator) {\ \n (void)fflush(stdout); (void)fprintf(stderr, kc_error_last_with_nil_argument, kc_phy_info->name, kc_phy_info->name); exit( 1 ); /*NOTREACHED*/\ \n }\ \n while(kc_not_ready) {\ \n /*SUP", kc_current_view ); (*kc_printer)("PRESS 622*/\ \n assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum);\ \n kc_prodsel = ((casestring)kc_p)->prod_sel;\ \n if (kc_prodsel == kc_phy_info->first_operator) {\ \n kc_not_ready=False;\ \n", kc_current_view ); (*kc_printer)(" } else if (kc_prodsel == kc_phy_info->last_operator) {\ \n kc_tmp = (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_lastop_info->suboffset[0]);\ \n kc_p = (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_lastop_info->sub", kc_current_view ); (*kc_printer)("offset[1]);\ \n } else {\ \n kc_invalid_operator(kc_error_last, kc_phylum, __LINE__, __FILE__, (int)kc_prodsel);/*NOTREACHED*/\ \n } }\ \n return kc_tmp;\ \n}\ \n\ \nstatic kc_voidptr_t kc_do_map_ph", kc_current_view ); (*kc_printer)("ylum\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_voidptr_t kc_p, kc_voidptr_t (*kc_fp)(kc_voidptr_t), kc_enum_phyla kc_phylum)\ \n#else\ \n(kc_p, kc_fp, kc_phylum) kc_voidptr_t kc_p; kc_voidptr_t (*kc_fp)KC__P(", kc_current_view ); (*kc_printer)("(kc_voidptr_t)); kc_enum_phyla kc_phylum;\ \n#endif\ \n{ kc_enum_operators kc_prodsel;\ \n /*SUPPRESS 622*/\ \n assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum);\ \n kc_prodsel = ((casestring)kc_p)-", kc_current_view ); (*kc_printer)(">prod_sel;\ \n if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].first_operator) {\ \n return kc_p;\ \n } else if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].last_operator) {\ \n return (kc_voidptr_t)", kc_current_view ); (*kc_printer)("(*kc_OperatorInfo[(int)kc_prodsel].create_routine)(\ \n kc_prodsel,\ \n (*kc_fp)((kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[0])),\ \n kc_do_map_phylum((kc_voidptr", kc_current_view ); (*kc_printer)("_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[1]), kc_fp, kc_phylum));\ \n } else {\ \n kc_invalid_operator(kc_error_map, kc_phylum, __LINE__, __FILE__, (int)kc_prodsel);/*NOTREACHE", kc_current_view ); (*kc_printer)("D*/return (kc_voidptr_t)0;\ \n} }\ \n\ \nstatic kc_voidptr_t kc_do_filter_phylum\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_voidptr_t kc_p, boolean (*kc_fp)(kc_voidptr_t), kc_enum_phyla kc_phylum)\ \n#else\ \n", kc_current_view ); (*kc_printer)("(kc_p, kc_fp, kc_phylum) kc_voidptr_t kc_p; boolean (*kc_fp)KC__P((kc_voidptr_t)); kc_enum_phyla kc_phylum;\ \n#endif\ \n{ kc_enum_operators kc_prodsel;\ \n /*SUPPRESS 622*/\ \n assertPhylum(((casestri", kc_current_view ); (*kc_printer)("ng)kc_p),\"kc_p\",kc_phylum);\ \n kc_prodsel = ((casestring)kc_p)->prod_sel;\ \n if (kc_prodsel == kc_PhylumInfo[(int)kc_phylum].first_operator) {\ \n return kc_p;\ \n } else if (kc_prodsel == kc_Phyl", kc_current_view ); (*kc_printer)("umInfo[(int)kc_phylum].last_operator) {\ \n if ((*kc_fp)((kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[0]))) {\ \n return (kc_voidptr_t)(*kc_OperatorInfo[(int)kc_prodse", kc_current_view ); (*kc_printer)("l].create_routine)(\ \n kc_prodsel,\ \n (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[0]),\ \n kc_do_filter_phylum((kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInf", kc_current_view ); (*kc_printer)("o[(int)kc_prodsel].suboffset[1]), kc_fp, kc_phylum));\ \n } else {\ \n return kc_do_filter_phylum((kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_OperatorInfo[(int)kc_prodsel].suboffset[1]), kc_fp, kc_phylum);\ \n", kc_current_view ); (*kc_printer)(" }\ \n } else {\ \n kc_invalid_operator(kc_error_filter, kc_phylum, __LINE__, __FILE__, (int)kc_prodsel);/*NOTREACHED*/return (kc_voidptr_t)0;\ \n} }\ \n\ \n", kc_current_view); } unparse_phylumdeclarations(pds, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_listdecls_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 4802 "../gen.k" phylumdeclarations pds = kc_p->u.PhylumDeclarations.phylumdeclarations_1; unparse_phylumdeclarations(pds, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_printdotdefs_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 4308 "../gen.k" phylumdeclarations pds = kc_p->u.PhylumDeclarations.phylumdeclarations_1; unparse_phylumdeclarations(pds, kc_printer, view_gen_printdotdecls_c); { (*kc_printer)("\ \nstatic void kc_do_printdot_subgraph_prologue KC__P((FILE*, kc_voidptr_t, kc_enum_phyla, char*, char*, boolean, boolean));\ \nstatic void kc_do_printdot_subgraph_epilogue KC__P((FILE*));\ \nstatic v", kc_current_view ); (*kc_printer)("oid kc_do_printdot_genfields KC__P((FILE*, int, kc_enum_phyla, boolean));\ \nstatic void kc_do_printdot_id_of_phylum KC__P((FILE*, kc_voidptr_t, kc_enum_phyla, boolean, kc_voidptr_t, int));\ \nstatic v", kc_current_view ); (*kc_printer)("oid kc_do_printdot_do_add_edge KC__P((YYSTYPE, kc_enum_phyla, YYSTYPE, kc_enum_phyla, int, int*, kc_dotedgenode_t*, char*));\ \nstatic void kc_do_printdot_add_edge KC__P((kc_voidptr_t, kc_enum_phyla, k", kc_current_view ); (*kc_printer)("c_voidptr_t, kc_enum_phyla, int, int*, kc_dotedgenode_t*, char*));\ \nstatic void kc_do_printdot_edges KC__P((FILE*, kc_dotedgenode_t, char*, boolean));\ \nstatic void kc_do_printdot_phylum KC__P((FILE", kc_current_view ); (*kc_printer)("*, kc_voidptr_t, kc_enum_phyla, boolean, int*, kc_dotedgenode_t*, char*, boolean, boolean, kc_voidptr_t, int));\ \n\ \nstatic kc_hashtable_t kc_fprintdot_hashtable;\ \nstatic int kc_fprintdot_hashtable", kc_current_view ); (*kc_printer)("size = 5000;\ \nint kc_set_fprintdot_hashtablesize\ \n#ifdef KC_USE_PROTOTYPES\ \n(int kc_i)\ \n#else\ \n(kc_i) int kc_i;\ \n#endif\ \n{ int kc_tmp = kc_fprintdot_hashtablesize;\ \n kc_fprintdot_hashta", kc_current_view ); (*kc_printer)("blesize = kc_i;\ \n return kc_tmp;\ \n}\ \n\ \nstatic void kc_do_printdot_subgraph_prologue\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f, kc_voidptr_t kc_p, kc_enum_phyla kc_phylum, char *kc_root, char ", kc_current_view ); (*kc_printer)("*kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt)\ \n#else\ \n(kc_f, kc_p, kc_phylum, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt) FILE *kc_f; kc_voidptr_t kc_p; kc_enum_phyl", kc_current_view ); (*kc_printer)("a kc_phylum; char *kc_root; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;\ \n#endif\ \n{ if (!kc_f) kc_f = stdout;\ \n (void)fprintf(kc_f, \"/*subgraph*/ {\\n\");\ \n if (kc_roo", kc_current_view ); (*kc_printer)("t) {\ \n (void)fprintf(kc_f, \"\\\"%s\\\" [shape=ellipse\", kc_root);\ \n if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) {\ \n (void)fprintf(kc_f, \", %s\", kc_edge_attributes);\ \n }", kc_current_view ); (*kc_printer)("\ \n if (kc_phy_labels) {\ \n (void)fprintf(kc_f, \", label=\\\"%s\\\\n%s\\\"\", kc_root, kc_PhylumInfo[kc_phylum].name);\ \n }\ \n (void)fprintf(kc_f, \"];\\n\");\ \n (void)fprintf(kc_f, \"\\\"%", kc_current_view ); (*kc_printer)("s\\\" ->\", kc_root);\ \n kc_do_printdot_id_of_phylum(kc_f, kc_p, kc_phylum, kc_use_ctxt, 0, 0);\ \n if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) {\ \n (void)fprintf(kc_f, \"[%s]\", ", kc_current_view ); (*kc_printer)("kc_edge_attributes);\ \n }\ \n (void)fprintf(kc_f, \";\\n\");\ \n }\ \n} \ \n\ \nstatic void kc_do_printdot_subgraph_epilogue\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f)\ \n#else\ \n(kc_f) FILE *kc_f", kc_current_view ); (*kc_printer)(";\ \n#endif\ \n{ if (!kc_f) kc_f = stdout;\ \n (void)fprintf(kc_f, \"}\\n\");\ \n}\ \n \ \nvoid fprintdotprologue\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f)\ \n#else\ \n(kc_f) FILE *kc_f;\ \n#endif\ \n", kc_current_view ); (*kc_printer)("{ if (!kc_f) kc_f = stdout;\ \n (void)fprintf(kc_f, \"digraph kc_output{\\n\");\ \n (void)fprintf(kc_f, \"node [shape=record, height=.1, fontname=Helvetica];\\n\");\ \n} \ \n\ \nvoid fprintdotepilogue\ \n", kc_current_view ); (*kc_printer)("#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f)\ \n#else\ \n(kc_f) FILE *kc_f;\ \n#endif\ \n{ if (!kc_f) kc_f = stdout;\ \n (void)fprintf(kc_f, \"}\\n\");\ \n}\ \n \ \nstatic void kc_do_printdot_genfields\ \n", kc_current_view ); (*kc_printer)("#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f, int kc_prodsel, kc_enum_phyla kc_phylum, boolean kc_phy_labels)\ \n#else\ \n(kc_f, kc_prodsel, kc_phylum, kc_phy_labels) FILE *kc_f; int kc_prodsel; kc_enum_phy", kc_current_view ); (*kc_printer)("la kc_phylum; boolean kc_phy_labels;\ \n#endif\ \n{ int kc_i = 1;\ \n KC_OPERATOR_INFO *kc_op_info = &kc_OperatorInfo[(int)kc_prodsel];\ \n if (kc_op_info->no_sons <= 0) return;\ \n if (!kc_f) kc_f = s", kc_current_view ); (*kc_printer)("tdout;\ \n while(kc_i < kc_op_info->no_sons) {\ \n (void)fprintf(kc_f, \"\", kc_i);\ \n if (kc_phy_labels) {\ \n (void)fprintf(kc_f, \"%s\", kc_PhylumInfo[(int)kc_op_info->subphylum[kc_i-1]].n", kc_current_view ); (*kc_printer)("ame);\ \n\ \n }\ \n (void)fprintf(kc_f, \"|\");\ \n kc_i++;\ \n }\ \n (void)fprintf(kc_f, \"\", kc_i);\ \n if (kc_phy_labels) {\ \n (void)fprintf(kc_f, \"%s\", kc_PhylumInfo[(int)kc_op_info->s", kc_current_view ); (*kc_printer)("ubphylum[kc_i-1]].name);\ \n }\ \n} \ \n\ \nstatic void kc_do_printdot_id_of_phylum\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f, kc_voidptr_t kc_p, kc_enum_phyla kc_phylum, boolean kc_use_ctxt, kc_voidp", kc_current_view ); (*kc_printer)("tr_t kc_ctxt, int kc_son_nr)\ \n#else\ \n(kc_f, kc_p, kc_phylum, kc_use_ctxt, kc_ctxt, kc_son_nr) FILE *kc_f; kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; boolean kc_use_ctxt; kc_voidptr_t kc_ctxt; int ", kc_current_view ); (*kc_printer)("kc_son_nr;\ \n#endif\ \n{\ \n", kc_current_view); } unparse_phyla(cg_bigatomphyla, kc_printer, kc_current_view); { (*kc_printer)(" /*SUPPRESS 622*/\ \n assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum);\ \n if (!kc_f) kc_f = stdout;\ \n if (kc_phylum == kc_phylum_voidptr) {\ \n (void)fprintf(kc_f, \"kcidp%p\", kc_p);\ \n if (", kc_current_view ); (*kc_printer)("kc_use_ctxt) {\ \n (void)fprintf(kc_f, \"_%p_%d\", kc_ctxt, kc_son_nr);\ \n }\ \n } else if ((kc_phylum == kc_phylum_casestring) || (kc_phylum == kc_phylum_nocasestring)) {\ \n (void)fprintf(kc_f, ", kc_current_view ); (*kc_printer)("\"kcids%p\", ((casestring)kc_p));\ \n if (kc_use_ctxt) {\ \n (void)fprintf(kc_f, \"_%p_%d\", kc_ctxt, kc_son_nr);\ \n }\ \n } else {\ \n (void)fprintf(kc_f, \"kcidx%p\", kc_p);\ \n} } \ \n\ \nstat", kc_current_view ); (*kc_printer)("ic void kc_do_printdot_do_add_edge\ \n#ifdef KC_USE_PROTOTYPES\ \n(YYSTYPE kc_p, kc_enum_phyla kc_phylum, YYSTYPE kc_sub_p, kc_enum_phyla kc_sub_phylum, int kc_son_nr, int *kc_edge_nr, kc_dotedgenode_t", kc_current_view ); (*kc_printer)(" *kc_edges, char *kc_edge_prefix)\ \n#else\ \n(kc_p, kc_phylum, kc_sub_p, kc_sub_phylum, kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix) kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; kc_voidptr_t kc_sub", kc_current_view ); (*kc_printer)("_p; kc_enum_phyla kc_sub_phylum; int kc_son_nr; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix;\ \n#endif\ \n{ kc_dotedgenode_t kc_hn;\ \n char kc_buf[30];\ \n kc_hn = kc_mkdotedgeno", kc_current_view ); (*kc_printer)("de(kc_fprintdot_hashtable, kc_p, kc_phylum, kc_sub_p, kc_sub_phylum, kc_son_nr);\ \n if (! kc_hn->label) {\ \n kc_hn->label = (char*)(*kc_fprintdot_hashtable->malloc)((kc_size_t)(KC_PRINTDOT_LABELSIZE", kc_current_view ); (*kc_printer)("+1)*sizeof(char), kc_fprintdot_hashtable->malloc_private_data);\ \n kc_hn->lsize = KC_PRINTDOT_LABELSIZE;\ \n (void)strcpy(kc_hn->label, \"\");\ \n kc_hn->next = *kc_edges;\ \n *kc_edges = kc_hn;\ \n", kc_current_view ); (*kc_printer)(" } else {\ \n char kc_buf2[30];\ \n (void)sprintf(kc_buf2, \", \");\ \n (void)strncat(kc_hn->label, kc_buf2, kc_hn->lsize - strlen(kc_hn->label));\ \n }\ \n if (kc_edge_prefix) {\ \n (void)strncat(", kc_current_view ); (*kc_printer)("kc_hn->label, kc_edge_prefix, kc_hn->lsize - strlen(kc_hn->label));\ \n }\ \n (void)sprintf(kc_buf, \"%d\", *kc_edge_nr);\ \n (void)strncat(kc_hn->label, kc_buf, kc_hn->lsize - strlen(kc_hn->label));\ \n", kc_current_view ); (*kc_printer)(" (*kc_edge_nr)++;\ \n}\ \n\ \nstatic void kc_do_printdot_add_edge\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_voidptr_t kc_p, kc_enum_phyla kc_phylum, kc_voidptr_t kc_sub_p, kc_enum_phyla kc_sub_phylum, int kc_", kc_current_view ); (*kc_printer)("son_nr, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix)\ \n#else\ \n(kc_p, kc_phylum, kc_sub_p, kc_sub_phylum, kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix) kc_voidptr_t kc_p; kc_", kc_current_view ); (*kc_printer)("enum_phyla kc_phylum; kc_voidptr_t kc_sub_p; kc_enum_phyla kc_sub_phylum; int kc_son_nr; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix;\ \n#endif\ \n{ YYSTYPE kc_n, kc_sub_n;\ \n", kc_current_view); } unparse_phyla(cg_bigatomphyla, kc_printer, kc_current_view); { (*kc_printer)(" /*SUPPRESS 622*/\ \n assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum);\ \n kc_n.yt_voidptr = kc_p;\ \n kc_sub_n.yt_voidptr = kc_sub_p;\ \n kc_do_printdot_do_add_edge(kc_n, kc_phylum, kc_sub_n, kc_s", kc_current_view ); (*kc_printer)("ub_phylum, kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix);\ \n}\ \n\ \nstatic void kc_do_printdot_edges\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f, kc_dotedgenode_t kc_edges, char *kc_edge_attributes", kc_current_view ); (*kc_printer)(", boolean kc_use_ctxt)\ \n#else\ \n(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt) FILE *kc_f; kc_dotedgenode_t kc_edges; char *kc_edge_attributes; boolean kc_use_ctxt;\ \n#endif\ \n{ kc_dotedgenode_", kc_current_view ); (*kc_printer)("t kc_p = kc_edges;\ \n if (!kc_f) kc_f = stdout;\ \n while(kc_p) {\ \n kc_do_printdot_id_of_phylum(kc_f, kc_p->ptr_from.yt_voidptr, kc_p->phy_from, kc_use_ctxt, 0, 0);\ \n (void)fprintf(kc_f, \":f%d ", kc_current_view ); (*kc_printer)("-> \", kc_p->son_nr);\ \n", kc_current_view); } #line 4498 "../gen.k" if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) #line 2979 "unpk.c" { { (*kc_printer)(" switch(kc_p->phy_to) {\ \n", kc_current_view); } unparse_phyla(cg_bigatomphyla, kc_printer, view_gen_printdotedges_c); { (*kc_printer)(" default:\ \n", kc_current_view); } } { (*kc_printer)(" kc_do_printdot_id_of_phylum(kc_f, kc_p->ptr_to.yt_voidptr, kc_p->phy_to, kc_use_ctxt, kc_p->ptr_from.yt_voidptr, kc_p->son_nr);\ \n", kc_current_view); } #line 4507 "../gen.k" if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) #line 2991 "unpk.c" { { (*kc_printer)(" }\ \n", kc_current_view); } } { (*kc_printer)(" (void)fprintf(kc_f, \" [label=\\\"%s\\\"\", kc_p->label);\ \n if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) {\ \n (void)fprintf(kc_f, \", %s\", kc_edge_attributes);\ \n }\ \n (void", kc_current_view ); (*kc_printer)(")fprintf(kc_f, \"];\\n\");\ \n kc_p = kc_p->next;\ \n} } \ \n\ \nstatic void kc_do_printdot_phylum\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f, kc_voidptr_t kc_p, kc_enum_phyla kc_phylum, boolean kc_ou", kc_current_view ); (*kc_printer)("tmost, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix, boolean kc_phy_labels, boolean kc_use_ctxt, kc_voidptr_t kc_ctxt, int kc_son_nr)\ \n#else\ \n(kc_f, kc_p, kc_phylum, kc_outmost", kc_current_view ); (*kc_printer)(", kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_ctxt, kc_son_nr) FILE *kc_f; kc_voidptr_t kc_p; kc_enum_phyla kc_phylum; boolean kc_outmost; int *kc_edge_nr; kc_dotedgenode_t *kc", kc_current_view ); (*kc_printer)("_edges; char *kc_edge_prefix; boolean kc_phy_labels; boolean kc_use_ctxt; kc_voidptr_t kc_ctxt; int kc_son_nr;\ \n#endif\ \n{ int kc_i;\ \n\ \n", kc_current_view); } unparse_phyla(cg_bigatomphyla, kc_printer, kc_current_view); { (*kc_printer)(" /*SUPPRESS 622*/\ \n assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum);\ \n if (!kc_f) kc_f = stdout;\ \n if (kc_phylum == kc_phylum_voidptr) {\ \n kc_do_printdot_id_of_phylum(kc_f, kc_p, kc_phylum", kc_current_view ); (*kc_printer)(", kc_use_ctxt, kc_ctxt, kc_son_nr);\ \n (void)fprintf(kc_f, \" [label=\\\"%p\\\", shape=ellipse];\\n\", kc_p);\ \n } else if ((kc_phylum == kc_phylum_casestring) || (kc_phylum == kc_phylum_nocasestrin", kc_current_view ); (*kc_printer)("g)) {\ \n kc_do_printdot_id_of_phylum(kc_f, kc_p, kc_phylum, kc_use_ctxt, kc_ctxt, kc_son_nr);\ \n (void)fprintf(kc_f, \" [label=\\\"%s\\\", shape=ellipse];\\n\", ((casestring)kc_p)->name);\ \n } els", kc_current_view ); (*kc_printer)("e {\ \n kc_enum_operators kc_prodsel = ((casestring)kc_p)->prod_sel;\ \n KC_OPERATOR_INFO *kc_op_info = &kc_OperatorInfo[(int)kc_prodsel];\ \n if (! kc_op_info->no_sons) {\ \n kc_do_printdot_id_of", kc_current_view ); (*kc_printer)("_phylum(kc_f, kc_p, kc_phylum, kc_use_ctxt, kc_ctxt, kc_son_nr);\ \n (void)fprintf(kc_f, \" [label=\\\"%s\\\"];\\n\", kc_op_info->name);\ \n } else {\ \n kc_do_printdot_id_of_phylum(kc_f, kc_p", kc_current_view ); (*kc_printer)(", kc_phylum, kc_use_ctxt, kc_ctxt, kc_son_nr);\ \n (void)fprintf(kc_f, \" [label=\\\"{%s|{\", kc_op_info->name);\ \n kc_do_printdot_genfields(kc_f, kc_prodsel, kc_phylum, kc_phy_labels);\ \n ", kc_current_view ); (*kc_printer)("(void)fprintf(kc_f, \"}}\\\"];\\n\");\ \n", kc_current_view); } #line 4550 "../gen.k" if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) #line 3047 "unpk.c" { { (*kc_printer)(" switch(kc_prodsel) {\ \n", kc_current_view); } unparse_operators(cg_bigatomoperators, kc_printer, kc_current_view); { (*kc_printer)(" default:\ \n", kc_current_view); } } { (*kc_printer)(" for (kc_i=0; kc_i < kc_op_info->no_sons; kc_i++) {\ \n kc_do_printdot_add_edge( kc_p, kc_phylum, (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_op_info->suboffset[kc_i]), kc_op_info->subphylum[kc_i], kc_i+1", kc_current_view ); (*kc_printer)(", kc_edge_nr, kc_edges, kc_edge_prefix );\ \n kc_do_printdot_phylum( kc_f, (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_op_info->suboffset[kc_i]), kc_op_info->subphylum[kc_i], False, kc_edge_nr, kc_edges, kc", kc_current_view ); (*kc_printer)("_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1 );\ \n }\ \n", kc_current_view); } #line 4562 "../gen.k" if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) #line 3064 "unpk.c" { { (*kc_printer)(" }\ \n", kc_current_view); } } { (*kc_printer)(" } } \ \n}\ \n", kc_current_view); } unparse_phylumdeclarations(pds, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_printdotdecls_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 4290 "../gen.k" phylumdeclarations pds = kc_p->u.PhylumDeclarations.phylumdeclarations_1; { (*kc_printer)("void fprintdotprologue KC__P(( FILE* ));\ \nvoid fprintdotepilogue KC__P(( FILE* ));\ \nint kc_set_fprintdot_hashtablesize KC__P(( int ));\ \n", kc_current_view); } unparse_phylumdeclarations(pds, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_printdefs_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 4125 "../gen.k" phylumdeclarations pds = kc_p->u.PhylumDeclarations.phylumdeclarations_1; { (*kc_printer)("static int kc_indentation = 0;\ \nstatic char *kc_printformat_not_nullair_open = \"%*s%s(\\n\";\ \nstatic char *kc_printformat_not_nullair_close = \"%*s)\\n\";\ \nstatic char *kc_printformat_nullair = ", kc_current_view ); (*kc_printer)("\"%*s%s()\\n\";\ \n\ \nstatic void kc_do_print_phylum\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f, kc_voidptr_t kc_p, kc_enum_phyla kc_phylum)\ \n#else\ \n(kc_f, kc_p, kc_phylum) FILE *kc_f; kc_voidptr_", kc_current_view ); (*kc_printer)("t kc_p; kc_enum_phyla kc_phylum;\ \n#endif\ \n{ int kc_i;\ \n\ \n", kc_current_view); } unparse_phyla(cg_bigatomphyla, kc_printer, kc_current_view); { (*kc_printer)(" /*SUPPRESS 622*/\ \n assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum);\ \n if (!kc_f) kc_f = stdout;\ \n if (kc_phylum == kc_phylum_voidptr) {\ \n (void)fprintf(kc_f, \"%*s%p\\n\", kc_indentation,", kc_current_view ); (*kc_printer)(" \"\", kc_p);\ \n } else if ((kc_phylum == kc_phylum_casestring) || (kc_phylum == kc_phylum_nocasestring)) {\ \n (void)fprintf(kc_f, \"%*s%s\\n\", kc_indentation, \"\", ((casestring)kc_p)->name);\ \n ", kc_current_view ); (*kc_printer)("} else {\ \n kc_enum_operators kc_prodsel = ((casestring)kc_p)->prod_sel;\ \n KC_OPERATOR_INFO *kc_op_info = &kc_OperatorInfo[(int)kc_prodsel];\ \n if (! kc_op_info->no_sons) {\ \n (void)fprintf(k", kc_current_view ); (*kc_printer)("c_f, kc_printformat_nullair, kc_indentation, \"\", kc_op_info->name);\ \n } else {\ \n (void)fprintf(kc_f, kc_printformat_not_nullair_open, kc_indentation, \"\", kc_op_info->name);\ \n kc_indentat", kc_current_view ); (*kc_printer)("ion++;\ \n", kc_current_view); } #line 4157 "../gen.k" if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) #line 3133 "unpk.c" { { (*kc_printer)(" switch(kc_prodsel) {\ \n", kc_current_view); } unparse_operators(cg_bigatomoperators, kc_printer, kc_current_view); { (*kc_printer)(" default:\ \n", kc_current_view); } } { (*kc_printer)(" for (kc_i=0; kc_i < kc_op_info->no_sons; kc_i++) {\ \n kc_do_print_phylum(kc_f, (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_op_info->suboffset[kc_i]), kc_op_info->subphylum[kc_i] );\ \n }\ \n", kc_current_view); } #line 4168 "../gen.k" if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) #line 3147 "unpk.c" { { (*kc_printer)(" }\ \n", kc_current_view); } } { (*kc_printer)(" kc_indentation--;\ \n (void)fprintf(kc_f, kc_printformat_not_nullair_close, kc_indentation, \"\");\ \n} } } \ \n", kc_current_view); } unparse_phylumdeclarations(pds, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_printdecls_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 4110 "../gen.k" phylumdeclarations pds = kc_p->u.PhylumDeclarations.phylumdeclarations_1; unparse_phylumdeclarations(pds, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_eqdefs_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 3984 "../gen.k" phylumdeclarations pds = kc_p->u.PhylumDeclarations.phylumdeclarations_1; { (*kc_printer)("/*ARGSUSED*/ static boolean kc_do_eq_phylum\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_voidptr_t kc_p1, kc_voidptr_t kc_p2, kc_enum_phyla kc_phylum)\ \n#else\ \n(kc_p1, kc_p2, kc_phylum) kc_voidptr_t kc_p1, kc", kc_current_view ); (*kc_printer)("_p2; kc_enum_phyla kc_phylum;\ \n#endif\ \n{ int kc_i;\ \n kc_enum_operators kc_prodsel;\ \n int kc_st;\ \n KC_OPERATOR_INFO *kc_op_info;\ \n kc_hashtable_t kc_a_ht;\ \n", kc_current_view); } unparse_phyla(cg_bigatomphyla, kc_printer, kc_current_view); { (*kc_printer)(" if (kc_p1 == kc_p2) return True;\ \n if (kc_phylum == kc_phylum_voidptr) return False;\ \n /*SUPPRESS 622*/\ \n assertPhylum(((casestring)kc_p1),\"kc_p1\",kc_phylum);\ \n /*SUPPRESS 622*/\ \n assertPh", kc_current_view ); (*kc_printer)("ylum(((casestring)kc_p2),\"kc_p2\",kc_phylum);\ \n if ((kc_prodsel = ((casestring)kc_p1)->prod_sel) != ((casestring)kc_p2)->prod_sel) return False;\ \n kc_op_info = &kc_OperatorInfo[(int)kc_prodsel];\ \n", kc_current_view ); (*kc_printer)(" kc_st = (int)kc_op_info->uniq_stored;\ \n kc_a_ht = kc_hashtables[kc_st];\ \n if (kc_st\ \n && (kc_storageclass_still_uniq[kc_st]\ \n || ((kc_a_ht->in_block != 0)\ \n && (*kc_a_ht->in_blo", kc_current_view ); (*kc_printer)("ck)((kc_voidptr_t)kc_p1, kc_a_ht->malloc_private_data)\ \n && (*kc_a_ht->in_block)((kc_voidptr_t)kc_p2, kc_a_ht->malloc_private_data)))) return False;\ \n", kc_current_view); } #line 4014 "../gen.k" if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) #line 3209 "unpk.c" { { (*kc_printer)(" switch(kc_prodsel) {\ \n", kc_current_view); } unparse_operators(cg_bigatomoperators, kc_printer, kc_current_view); { (*kc_printer)(" default:\ \n", kc_current_view); } } { (*kc_printer)(" for (kc_i=0; kc_i < kc_op_info->no_sons; kc_i++) {\ \n if (! kc_do_eq_phylum( (kc_voidptr_t)KC_SUBPHYLUM(kc_p1, kc_op_info->suboffset[kc_i]), (kc_voidptr_t)KC_SUBPHYLUM(kc_p2, kc_op_info->suboffset[k", kc_current_view ); (*kc_printer)("c_i]), kc_op_info->subphylum[kc_i] )) {\ \n return False;\ \n } }\ \n return True;\ \n", kc_current_view); } #line 4027 "../gen.k" if (cg_bigatomoperators && length_operators(cg_bigatomoperators) > 0) #line 3226 "unpk.c" { { (*kc_printer)(" }\ \n", kc_current_view); } } { (*kc_printer)("}\ \n", kc_current_view); } unparse_phylumdeclarations(pds, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_eqdecls_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 3970 "../gen.k" phylumdeclarations pds = kc_p->u.PhylumDeclarations.phylumdeclarations_1; unparse_phylumdeclarations(pds, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_freedefs_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 3907 "../gen.k" phylumdeclarations pds = kc_p->u.PhylumDeclarations.phylumdeclarations_1; { (*kc_printer)("/*ARGSUSED*/ static void kc_do_free_phylum\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_voidptr_t kc_p, boolean kc_rec, kc_enum_phyla kc_phylum)\ \n#else\ \n(kc_p, kc_rec, kc_phylum) kc_voidptr_t kc_p; boolean k", kc_current_view ); (*kc_printer)("c_rec; kc_enum_phyla kc_phylum;\ \n#endif\ \n{ kc_enum_operators kc_prodsel;\ \n KC_OPERATOR_INFO *kc_op_info;\ \n /*SUPPRESS 622*/\ \n assertPhylum(((casestring)kc_p),\"kc_p\",kc_phylum);\ \n kc_prods", kc_current_view ); (*kc_printer)("el = (kc_phylum == kc_phylum_int ? sel__Int :\ \n (kc_phylum == kc_phylum_float ? sel__Real :\ \n (kc_phylum == kc_phylum_voidptr ? sel__VoidPtr :\ \n ", kc_current_view ); (*kc_printer)(" ((casestring)kc_p)->prod_sel)));\ \n kc_op_info = &kc_OperatorInfo[(int)kc_prodsel];\ \n KC_COLLECT_STATS0(KC_FREE_CALLED_STATS((int)kc_prodsel, kc_rec));\ \n if (! kc_op_info->uniq_stored) {", kc_current_view ); (*kc_printer)("\ \n if (kc_rec) {\ \n int kc_i;\ \n for (kc_i=0; kc_i < kc_op_info->no_sons; kc_i++) {\ \n kc_do_free_phylum( (kc_voidptr_t)KC_SUBPHYLUM(kc_p, kc_op_info->suboffset[kc_i]), kc_rec, kc_op_info-", kc_current_view ); (*kc_printer)(">subphylum[kc_i] );\ \n } }\ \n KC_COLLECT_STATS0(KC_FREED_STATS((int)kc_prodsel, kc_rec));\ \n KC_BZERO((kc_voidptr_t)kc_p, kc_PhylumInfo[(int)kc_phylum].size);\ \n NONUNIQFREE((kc_voidptr_t)kc_p)", kc_current_view ); (*kc_printer)(";\ \n} } \ \n", kc_current_view); } unparse_phylumdeclarations(pds, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_freedecls_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 3893 "../gen.k" phylumdeclarations pds = kc_p->u.PhylumDeclarations.phylumdeclarations_1; unparse_phylumdeclarations(pds, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_error_defs_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 3852 "../gen.k" char *strof_phylum_error="Internal Error: unknown phylum number: "; int strlen_strof_phylum_error = strlen(strof_phylum_error)+30; casestring cstrof_phylum_error = mkcasestring(strof_phylum_error); char *strof_operator_error="Internal Error: unknown operator number: "; int strlen_strof_operator_error = strlen(strof_operator_error)+30; casestring cstrof_operator_error = mkcasestring(strof_operator_error); #line 3308 "unpk.c" { (*kc_printer)("char *kc_phylumname_or_error\ \n#ifdef KC_USE_PROTOTYPES\ \n(int kc_phylum)\ \n#else\ \n(kc_phylum) int kc_phylum;\ \n#endif\ \n{ if ((kc_phylum <= (int)kc_one_before_first_phylum) || (kc_phylum >= (in", kc_current_view ); (*kc_printer)("t)kc_last_phylum)) {\ \n char *kc_strof_error;\ \n (void)sprintf((kc_strof_error=(char*)MALLOC(", kc_current_view); } unparse_int(strlen_strof_phylum_error, kc_printer, kc_current_view); { (*kc_printer)(")), \"", kc_current_view); } unparse_casestring(cstrof_phylum_error, kc_printer, kc_current_view); { (*kc_printer)("%d\", kc_phylum);\ \n return kc_strof_error;\ \n } else {\ \n return kc_PhylumInfo[kc_phylum].name;\ \n} }\ \n\ \n\ \nchar *kc_operatorname_or_error\ \n#ifdef KC_USE_PROTOTYPES\ \n(int kc_operator)\ \n", kc_current_view ); (*kc_printer)("#else\ \n(kc_operator) int kc_operator;\ \n#endif\ \n{ if ((kc_operator <= (int)kc_one_before_first_operator) || (kc_operator >= (int)kc_last_operator)) {\ \n char *kc_strof_error;\ \n (void)sprintf(", kc_current_view ); (*kc_printer)("(kc_strof_error=(char*)MALLOC(", kc_current_view); } unparse_int(strlen_strof_operator_error, kc_printer, kc_current_view); { (*kc_printer)(")), \"", kc_current_view); } unparse_casestring(cstrof_operator_error, kc_printer, kc_current_view); { (*kc_printer)("%d\", kc_operator);\ \n return kc_strof_error;\ \n } else {\ \n return kc_OperatorInfo[kc_operator].name;\ \n} }\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_error_decls_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("char *kc_phylumname_or_error KC__P(( int ));\ \nchar *kc_operatorname_or_error KC__P(( int ));\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_operatordefs_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 1414 "../gen.k" phylumdeclarations d = kc_p->u.PhylumDeclarations.phylumdeclarations_1; { (*kc_printer)("/* macro's that do the string concatenation */\ \n#define KC_MIdStr(s) s\ \n#ifdef KC_STDC\ \n# define KC_MStrConc(s1,s2) s1 ## s2\ \n#else\ \n# define KC_MStrConc(s1,s2) KC_MIdStr(s1)s2\ \n#endif\ \n", kc_current_view ); (*kc_printer)("\ \n#ifndef KC_MEMORY_BLOCKSIZE\ \n# define KC_MEMORY_BLOCKSIZE 20000\ \n#endif\ \n#ifndef LARGEPRIME\ \n# define LARGEPRIME 80021\ \n#endif\ \n#if LARGEPRIME < 0\ \n# define LARGEPRIME 0\ \n#endif\ \n", kc_current_view ); (*kc_printer)("#ifndef KC_BUCKET_INC\ \n# define KC_BUCKET_INC 8\ \n#endif\ \n#ifndef HASH\ \n# define HASH(x) kc_hashval = ((kc_hashval<<3) + (((unsigned)x)>>2))\ \n#endif\ \n#ifndef INTHASH\ \n# define INTHASH(x", kc_current_view ); (*kc_printer)(") kc_hashval = ((kc_hashval<<10) + (unsigned)x)\ \n#endif\ \n#ifndef FLOATHASH\ \n# define FLOATHASH(x) kc_hashval = ((kc_hashval<<10) + (unsigned)x)\ \n#endif\ \n#ifndef VOIDPTRHASH\ \n# define VOID", kc_current_view ); (*kc_printer)("PTRHASH(x) HASH(x)\ \n#endif\ \n#ifndef OPERATORHASH\ \n# define OPERATORHASH(x) kc_hashval = (kc_hashval + (unsigned)x * 73)\ \n#endif\ \n#ifndef CASESTRHASH\ \n# define CASESTRHASH(x) kc_hashval = ", kc_current_view ); (*kc_printer)("((kc_hashval<<3) + (unsigned)kc_casestrhash(x))\ \n#endif\ \n#ifndef NOCASESTRHASH\ \n# define NOCASESTRHASH(x) kc_hashval = ((kc_hashval<<3) + (unsigned)kc_nocasestrhash(x))\ \n#endif\ \n#ifndef MALL", kc_current_view ); (*kc_printer)("OC\ \n# define MALLOC emalloc\ \n#endif\ \n#ifndef CALLOC\ \n# define CALLOC ecalloc\ \n#endif\ \n#ifndef REALLOC\ \n/*\ \n * # ifdef lint\ \n * # define REALLOC(kc_p,kc_s) (kc_p,kc_s,0)\ \n * # els", kc_current_view ); (*kc_printer)("e\ \n */\ \n# define REALLOC erealloc\ \n/*\ \n * # endif\ \n */\ \n#endif\ \n#ifndef FREE\ \n# define FREE efree\ \n#endif\ \n#ifndef efree\ \n/*\ \n * # ifdef lint\ \n * # define efree(kc_p) \ \n ", kc_current_view ); (*kc_printer)("* # else\ \n */\ \n# define efree(kc_p) free((kc_malloc_t)(kc_p))\ \n/*\ \n * # endif\ \n */\ \n#endif\ \n#ifndef KC_ALIGN\ \ntypedef union kc_Align_tag { long l; int i; } kc_Align;\ \n#else\ \ntypede", kc_current_view ); (*kc_printer)("f KC_ALIGN kc_Align;\ \n#endif\ \n#ifndef UNIQMALLOCINIT\ \n# define UNIQMALLOCINIT uniqmallocinit\ \n# ifndef UNIQMALLOC2\ \n# define UNIQMALLOC2 uniqmalloc\ \n# endif\ \n# ifndef UNIQFREEELEME", kc_current_view ); (*kc_printer)("NT\ \n# define UNIQFREEELEMENT uniqfreeelement\ \n# endif\ \n# ifndef UNIQFREEALL\ \n# define UNIQFREEALL uniqfreeall\ \n# endif\ \n# ifndef INUNIQBLOCK\ \n# define INUNIQBLOCK isinuniqmal", kc_current_view ); (*kc_printer)("loccedblock\ \n# endif\ \n# ifndef UNIQMEMORYINFO\ \n# define UNIQMEMORYINFO kc_print_memory_info_statistics\ \n# endif\ \n#else\ \n# ifndef UNIQFREEELEMENT\ \n# define UNIQFREEELEMENT 0\ \n#", kc_current_view ); (*kc_printer)(" endif\ \n# ifndef UNIQFREEALL\ \n# define UNIQFREEALL 0\ \n# endif\ \n# ifndef INUNIQBLOCK\ \n# define INUNIQBLOCK 0\ \n# endif\ \n# ifndef UNIQMEMORYINFO\ \n# define UNIQMEMORYINFO 0\ \n", kc_current_view ); (*kc_printer)("# endif\ \n#endif\ \n#ifndef BUCKETALLOCINIT\ \n# define BUCKETALLOCINIT 0\ \n# ifndef BUCKETCALLOC\ \n# define BUCKETCALLOC kc_wrap_bucket_malloc\ \n# endif\ \n# ifndef BUCKETREALLOC\ \n# d", kc_current_view ); (*kc_printer)("efine BUCKETREALLOC kc_wrap_bucket_realloc\ \n# endif\ \n# ifndef BUCKETFREE\ \n# define BUCKETFREE kc_wrap_bucket_free\ \n# endif\ \n# ifndef BUCKETSFREE\ \n# define BUCKETSFREE 0\ \n# endi", kc_current_view ); (*kc_printer)("f\ \n# ifndef BUCKETMEMORYINFO\ \n# define BUCKETMEMORYINFO 0\ \n# endif\ \n#else\ \n# ifndef BUCKETFREE\ \n# define BUCKETFREE 0\ \n# endif\ \n# ifndef BUCKETSFREE\ \n# define BUCKETSFRE", kc_current_view ); (*kc_printer)("E 0\ \n# endif\ \n# ifndef BUCKETMEMORYINFO\ \n# define BUCKETMEMORYINFO 0\ \n# endif\ \n#endif\ \n#ifndef BUCKETINC\ \n# define BUCKETINC KC_BUCKET_INC\ \n#endif\ \n#ifndef NONUNIQMALLOC\ \n# ", kc_current_view ); (*kc_printer)("define NONUNIQMALLOC emalloc\ \n#endif\ \n#ifndef NONUNIQFREE\ \n# define NONUNIQFREE efree\ \n#endif\ \n#ifndef KC_BZERO\ \n# define KC_BZERO(kc_p, kc_s) (void)memset((kc_memset_firstarg_t)kc_p, 0, ", kc_current_view ); (*kc_printer)("(kc_memset_size_t)kc_s)\ \n#endif\ \n\ \ntypedef struct kc_tag_kc_memory_blockinfo_t *kc_memory_blocksinfo_t;\ \ntypedef struct kc_tag_kc_memory_blockinfo_t kc_memory_blockinfo_t;\ \ntypedef struct kc_", kc_current_view ); (*kc_printer)("tag_kc_memory_info_t kc_memory_info_t;\ \n\ \nstatic kc_memory_blocksinfo_t kc_mainmemory_freelist = 0;\ \n\ \nstruct kc_tag_kc_memory_blockinfo_t {\ \n kc_voidptr_t block; /* pointer to the allocated ", kc_current_view ); (*kc_printer)("structure */\ \n kc_size_t size; /* size of allocated structure */\ \n kc_memory_blocksinfo_t next; /* next block in list */\ \n kc_memory_blocksinfo_t prev; /* prev block in list */\ \n};\ \n\ \nstruc", kc_current_view ); (*kc_printer)("t kc_tag_kc_memory_info_t {\ \n kc_memory_blocksinfo_t kc_memory_blocklist; /* points to block currently in use */\ \n int kc_memory_left; /* remaining bytes in current block */\ \n kc_voidptr_t kc_mem", kc_current_view ); (*kc_printer)("ory_ptr; /* address of first free byte in current block */\ \n kc_memory_blocksinfo_t *kc_memory_freelist; /* pointer to variable that holds freelist */\ \n int kc_to_be_freed; /* should be 0 for stati", kc_current_view ); (*kc_printer)("cally created nodes, and 1 for dynamically created ones */\ \n kc_size_t kc_wanted_blocksize; /* prefered size of chunks */\ \n};\ \n\ \nstatic kc_memory_blocksinfo_t kc_memory_createblock\ \n#ifdef KC", kc_current_view ); (*kc_printer)("_USE_PROTOTYPES\ \n(kc_size_t kc_n, kc_memory_info_t *kc_malloc_private_info)\ \n#else\ \n(kc_n, kc_malloc_private_info) kc_size_t kc_n; kc_memory_info_t *kc_malloc_private_info;\ \n#endif\ \n{ kc_void", kc_current_view ); (*kc_printer)("ptr_t kc_p;\ \n kc_memory_blocksinfo_t kc_l;\ \n kc_size_t kc_size;\ \n\ \n /* we use plain malloc for adminstrative things, and test for the return status */\ \n kc_l = (kc_memory_blocksinfo_t)MALLOC(", kc_current_view ); (*kc_printer)("(kc_size_t)sizeof(kc_memory_blockinfo_t));\ \n kc_size = (kc_malloc_private_info->kc_wanted_blocksize > kc_n) ? kc_malloc_private_info->kc_wanted_blocksize : kc_n;\ \n kc_p = (kc_voidptr_t)MALLOC((kc_", kc_current_view ); (*kc_printer)("size_t)kc_size);\ \n kc_l->block = kc_p;\ \n kc_l->size = kc_size;\ \n return kc_l;\ \n}\ \n\ \n/*\ \n * we use first fit when reusing a block\ \n */\ \nstatic kc_memory_blocksinfo_t kc_memory_reuseblo", kc_current_view ); (*kc_printer)("ck\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_size_t kc_n, kc_memory_info_t *kc_malloc_private_info)\ \n#else\ \n(kc_n, kc_malloc_private_info) kc_size_t kc_n; kc_memory_info_t *kc_malloc_private_info;\ \n#end", kc_current_view ); (*kc_printer)("if\ \n{ kc_memory_blocksinfo_t kc_l;\ \n if (*kc_malloc_private_info->kc_memory_freelist == 0) { /* no elements in freelist */\ \n return (kc_memory_blocksinfo_t)0;\ \n }\ \n kc_l = *kc_malloc_private", kc_current_view ); (*kc_printer)("_info->kc_memory_freelist;\ \n do { /* at least one time, because we have at least one element */\ \n if (kc_l->size >= kc_n) {\ \n if (kc_l->next != kc_l) { /* the list contains > 1 elements */\ \n", kc_current_view ); (*kc_printer)(" kc_l->prev->next = kc_l->next;\ \n kc_l->next->prev = kc_l->prev;\ \n /* make sure that we don't loose the handle to the list */\ \n if (kc_l == *kc_malloc_private_info->kc_memory_freelis", kc_current_view ); (*kc_printer)("t) {\ \n *kc_malloc_private_info->kc_memory_freelist = kc_l->next;\ \n }\ \n } else { /* we release the last free element */\ \n *kc_malloc_private_info->kc_memory_freelist = 0;\ \n }\ \n", kc_current_view ); (*kc_printer)(" return kc_l;\ \n }\ \n kc_l = kc_l->next;\ \n } while(kc_l != *kc_malloc_private_info->kc_memory_freelist);\ \n return (kc_memory_blocksinfo_t)0;\ \n}\ \n\ \nstatic void kc_memory_newblock\ \n#ifd", kc_current_view ); (*kc_printer)("ef KC_USE_PROTOTYPES\ \n(kc_size_t kc_n, kc_memory_info_t *kc_malloc_private_info)\ \n#else\ \n(kc_n, kc_malloc_private_info) kc_size_t kc_n; kc_memory_info_t *kc_malloc_private_info;\ \n#endif\ \n{ kc", kc_current_view ); (*kc_printer)("_memory_blocksinfo_t kc_l;\ \n if ((kc_l = kc_memory_reuseblock(kc_n, kc_malloc_private_info)) == 0) {\ \n kc_l = kc_memory_createblock(kc_n, kc_malloc_private_info);\ \n }\ \n if (kc_malloc_private_i", kc_current_view ); (*kc_printer)("nfo->kc_memory_blocklist != 0) {\ \n kc_l->next = kc_malloc_private_info->kc_memory_blocklist;\ \n kc_malloc_private_info->kc_memory_blocklist->prev->next = kc_l;\ \n kc_l->prev = kc_malloc_private_", kc_current_view ); (*kc_printer)("info->kc_memory_blocklist->prev;\ \n kc_malloc_private_info->kc_memory_blocklist->prev = kc_l;\ \n } else {\ \n kc_l->next = kc_l;\ \n kc_l->prev = kc_l;\ \n }\ \n kc_malloc_private_info->kc_memory_", kc_current_view ); (*kc_printer)("blocklist = kc_l;\ \n kc_malloc_private_info->kc_memory_left = kc_l->size;\ \n kc_malloc_private_info->kc_memory_ptr = kc_l->block;\ \n}\ \n\ \nstatic void kc_print_memory_blocks_info_statistics\ \n#if", kc_current_view ); (*kc_printer)("def KC_USE_PROTOTYPES\ \n(FILE *kc_f, kc_memory_blocksinfo_t kc_a_memory_blocksinfo_t)\ \n#else\ \n(kc_f, kc_a_memory_blocksinfo_t) FILE *kc_f; kc_memory_blocksinfo_t kc_a_memory_blocksinfo_t;\ \n#endi", kc_current_view ); (*kc_printer)("f\ \n{ kc_memory_blocksinfo_t kc_tmp = kc_a_memory_blocksinfo_t;\ \n if (kc_tmp) {\ \n /* at least one block? */\ \n do {\ \n fprintf(kc_f, \" block-size (at %p): %d\\n\", kc_tmp->block, kc_tmp->s", kc_current_view ); (*kc_printer)("ize);\ \n kc_tmp = kc_tmp->next;\ \n } while(kc_tmp && (kc_tmp != kc_a_memory_blocksinfo_t));\ \n } else {\ \n fprintf(kc_f, \" no blocks allocated\\n\");\ \n }\ \n}\ \n\ \nvoid kc_print_memory_in", kc_current_view ); (*kc_printer)("fo_statistics\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f, kc_voidptr_t kc_malloc_private_info)\ \n#else\ \n(kc_f, kc_malloc_private_info) FILE *kc_f; kc_voidptr_t kc_malloc_private_info;\ \n#endif\ \n{", kc_current_view ); (*kc_printer)("\ \n kc_memory_info_t *kc_a_memory_info_t = (kc_memory_info_t *)kc_malloc_private_info;\ \n fprintf(kc_f, \" to-be-freed: %s\\n\", (kc_a_memory_info_t->kc_to_be_freed ? \"yes\" : \"no\"));\ \n fprintf(", kc_current_view ); (*kc_printer)("kc_f, \" wanted block-size: %d\\n\", kc_a_memory_info_t->kc_wanted_blocksize);\ \n fprintf(kc_f, \" remaining in current block: %d\\n\", kc_a_memory_info_t->kc_memory_left);\ \n fprintf(kc_f, \" blocks", kc_current_view ); (*kc_printer)("-info (at %p):\\n\", kc_a_memory_info_t->kc_memory_blocklist);\ \n kc_print_memory_blocks_info_statistics(kc_f, kc_a_memory_info_t->kc_memory_blocklist);\ \n fprintf(kc_f, \" freelist-info (at %p):\\n\"", kc_current_view ); (*kc_printer)(", *kc_a_memory_info_t->kc_memory_freelist);\ \n kc_print_memory_blocks_info_statistics(kc_f, *kc_a_memory_info_t->kc_memory_freelist);\ \n} \ \n\ \n/*\ \n * the %p in the routine below is ANSI-C standa", kc_current_view ); (*kc_printer)("rd (but implementation dependent)\ \n * for void*; instead we could use %p\ \n */\ \nvoid kc_print_hashtable_memory_statistics\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f, kc_hashtable_t kc_a_hashtable_", kc_current_view ); (*kc_printer)("t)\ \n#else\ \n(kc_f, kc_a_hashtable_t) FILE *kc_f; kc_hashtable_t kc_a_hashtable_t;\ \n#endif\ \n{ kc_private_malloc_t kc_tmp;\ \n int kc_i;\ \n fprintf(kc_f, \"current allocation scheme: %s\\n\",\ \n", kc_current_view ); (*kc_printer)(" ((kc_a_hashtable_t->mode == kc_ht_store_static) ? \"static\" : \"dynamic\"));\ \n if (kc_a_hashtable_t->malloc_info) {\ \n fprintf(kc_f, \"static allocation info (info ptr: %p):\\n\", kc_a_hashtable", kc_current_view ); (*kc_printer)("_t->static_malloc_private_data);\ \n (*kc_a_hashtable_t->malloc_info)(kc_f, kc_a_hashtable_t->static_malloc_private_data);\ \n kc_tmp = kc_a_hashtable_t->dynamic_malloc_private_data;\ \n kc_i = 0;\ \n", kc_current_view ); (*kc_printer)(" fprintf(kc_f, \"dynamic allocation info: counting from top (level 0) of level stack\\n\");\ \n while(kc_tmp) {\ \n fprintf(kc_f, \"dynamic allocation info for level %d,(info ptr: %p):\\n\", kc_i, ", kc_current_view ); (*kc_printer)("kc_tmp->malloc_private_data);\ \n (*kc_a_hashtable_t->malloc_info)(kc_f, kc_tmp->malloc_private_data);\ \n kc_i++;\ \n kc_tmp = kc_tmp->next;\ \n }\ \n kc_tmp = kc_a_hashtable_t->dec_dynamic_ma", kc_current_view ); (*kc_printer)("lloc_private_data;\ \n kc_i = 0;\ \n fprintf(kc_f, \"dynamic allocation info: levels to be freed, counting from bottom\\n\");\ \n while(kc_tmp) {\ \n fprintf(kc_f, \"dynamic allocation info for le", kc_current_view ); (*kc_printer)("vel %d,(info ptr: %p):\\n\", kc_i, kc_tmp->malloc_private_data);\ \n (*kc_a_hashtable_t->malloc_info)(kc_f, kc_tmp->malloc_private_data);\ \n kc_i++;\ \n kc_tmp = kc_tmp->prev;\ \n }\ \n }\ \n}\ \n", kc_current_view ); (*kc_printer)("\ \n\ \nkc_voidptr_t uniqmalloc /* check return from malloc */\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_size_t kc_n, kc_voidptr_t kc_malloc_private_info)\ \n#else\ \n(kc_n, kc_malloc_private_info) kc_size_t ", kc_current_view ); (*kc_printer)("kc_n; kc_voidptr_t kc_malloc_private_info;\ \n#endif\ \n{ kc_voidptr_t kc_p;\ \n kc_memory_info_t *kc_a_memory_info_t = (kc_memory_info_t *)kc_malloc_private_info; \ \n /* all blocks should be a multip", kc_current_view ); (*kc_printer)("le of the alignment requirement */\ \n kc_n += sizeof(kc_Align) - 1 - ((kc_n - 1) % sizeof(kc_Align));\ \n if ( kc_a_memory_info_t->kc_memory_left < (int)kc_n ) kc_memory_newblock(kc_n, kc_a_memory_inf", kc_current_view ); (*kc_printer)("o_t);\ \n kc_a_memory_info_t->kc_memory_left -= kc_n;\ \n kc_p = kc_a_memory_info_t->kc_memory_ptr;\ \n kc_a_memory_info_t->kc_memory_ptr = (kc_voidptr_t)((char*)(kc_a_memory_info_t->kc_memory_ptr) + k", kc_current_view ); (*kc_printer)("c_n);\ \n return kc_p;\ \n}\ \n\ \nkc_memory_info_t *uniqmallocinit\ \n#ifdef KC_USE_PROTOTYPES\ \n( /*kc_size_t kc_n*/ )\ \n#else\ \n( /*kc_n*/ ) /*kc_size_t kc_n;*/\ \n#endif\ \n{ kc_memory_info_t *k", kc_current_view ); (*kc_printer)("c_p;\ \n kc_p = (kc_memory_info_t*)MALLOC((kc_size_t)sizeof(kc_memory_info_t));\ \n kc_p->kc_memory_blocklist = 0;\ \n kc_p->kc_memory_left = 0;\ \n kc_p->kc_memory_ptr = 0;\ \n kc_p->kc_memory_freelis", kc_current_view ); (*kc_printer)("t = &kc_mainmemory_freelist;\ \n kc_p->kc_to_be_freed = 1;\ \n kc_p->kc_wanted_blocksize = /*(kc_n <= 0) ?*/ KC_MEMORY_BLOCKSIZE /*: kc_n*/;\ \n return kc_p;\ \n}\ \n\ \nboolean isinuniqmalloccedblock\ \n", kc_current_view ); (*kc_printer)("#ifdef KC_USE_PROTOTYPES\ \n(kc_voidptr_t kc_p, kc_voidptr_t kc_malloc_private_info)\ \n#else\ \n(kc_p, kc_malloc_private_info) kc_voidptr_t kc_p; kc_voidptr_t kc_malloc_private_info;\ \n#endif\ \n{ kc", kc_current_view ); (*kc_printer)("_memory_blocksinfo_t kc_l;\ \n kc_memory_info_t *kc_a_memory_info_t = (kc_memory_info_t *)kc_malloc_private_info;\ \n if (kc_a_memory_info_t->kc_memory_blocklist == 0) {\ \n return False;\ \n }\ \n kc", kc_current_view ); (*kc_printer)("_l = kc_a_memory_info_t->kc_memory_blocklist;\ \n do {\ \n if (((char*)kc_p >= (char*)kc_l->block) && ((char*)kc_p < (char*)((char*)kc_l->block + kc_l->size))) {\ \n return True;\ \n }\ \n kc_l = ", kc_current_view ); (*kc_printer)("kc_l->next;\ \n } while(kc_l != kc_a_memory_info_t->kc_memory_blocklist);\ \n return False;\ \n}\ \n\ \n/*ARGSUSED*/\ \nvoid uniqfreeelement /* free (prepare for reuse of) one element in private info *", kc_current_view ); (*kc_printer)("/\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_voidptr_t kc_ptr, kc_voidptr_t kc_malloc_private_info)\ \n#else\ \n(kc_ptr, kc_malloc_private_info) kc_voidptr_t kc_ptr; kc_voidptr_t kc_malloc_private_info;\ \n#en", kc_current_view ); (*kc_printer)("dif\ \n{\ \n}\ \n\ \nvoid uniqfreeall /* free (prepare for reuse of) everything in private info */\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_voidptr_t kc_malloc_private_info)\ \n#else\ \n(kc_malloc_private_in", kc_current_view ); (*kc_printer)("fo) kc_voidptr_t kc_malloc_private_info;\ \n#endif\ \n{\ \n kc_memory_info_t *kc_a_memory_info_t = (kc_memory_info_t *)kc_malloc_private_info;\ \n if (kc_a_memory_info_t->kc_memory_blocklist != 0) {\ \n", kc_current_view ); (*kc_printer)(" kc_memory_blocksinfo_t kc_a_memory_blocklist = kc_a_memory_info_t->kc_memory_blocklist;\ \n kc_memory_blocksinfo_t kc_blockptr = kc_a_memory_blocklist;\ \n do {\ \n KC_BZERO(kc_blockptr->block, k", kc_current_view ); (*kc_printer)("c_blockptr->size);\ \n kc_blockptr = kc_blockptr->next;\ \n } while (kc_blockptr != kc_a_memory_blocklist);\ \n if (*kc_a_memory_info_t->kc_memory_freelist == 0) {\ \n *kc_a_memory_info_t->kc_mem", kc_current_view ); (*kc_printer)("ory_freelist = kc_a_memory_info_t->kc_memory_blocklist;\ \n } else {\ \n kc_a_memory_info_t->kc_memory_blocklist->prev->next = (*kc_a_memory_info_t->kc_memory_freelist);\ \n (*kc_a_memory_info_t->", kc_current_view ); (*kc_printer)("kc_memory_freelist)->prev->next = kc_a_memory_info_t->kc_memory_blocklist;\ \n kc_blockptr = kc_a_memory_info_t->kc_memory_blocklist->prev;\ \n kc_a_memory_info_t->kc_memory_blocklist->prev = (*kc_", kc_current_view ); (*kc_printer)("a_memory_info_t->kc_memory_freelist)->prev;\ \n (*kc_a_memory_info_t->kc_memory_freelist)->prev = kc_blockptr;;\ \n } }\ \n /* just to be sure, this is NECESSARY in case kc_a_memory_info_t->kc_to_be_", kc_current_view ); (*kc_printer)("freed holds */\ \n kc_a_memory_info_t->kc_memory_blocklist = 0;\ \n kc_a_memory_info_t->kc_memory_left = 0;\ \n kc_a_memory_info_t->kc_memory_ptr = 0;\ \n kc_a_memory_info_t->kc_memory_left = 0;\ \n if", kc_current_view ); (*kc_printer)(" (kc_a_memory_info_t->kc_to_be_freed) { /* we must be sure that it wasn't dynamically allocated */\ \n KC_BZERO(kc_a_memory_info_t, sizeof(kc_memory_info_t));\ \n FREE((kc_voidptr_t)kc_a_memory_info_", kc_current_view ); (*kc_printer)("t);\ \n} }\ \n\ \n/*ARGSUSED*/\ \nkc_voidptr_t kc_wrap_bucket_malloc\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_size_t kc_a_size, kc_size_t kc_a_number, kc_voidptr_t kc_a_private_malloc_info)\ \n#else\ \n(kc_a", kc_current_view ); (*kc_printer)("_size, kc_a_number, kc_a_private_malloc_info)\ \nkc_size_t kc_a_size; kc_size_t kc_a_number; kc_voidptr_t kc_a_private_malloc_info;\ \n#endif\ \n{ return MALLOC((kc_size_t)kc_a_size*kc_a_number);\ \n}\ \n", kc_current_view ); (*kc_printer)("\ \n/*ARGSUSED*/\ \nkc_voidptr_t kc_wrap_bucket_realloc\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_voidptr_t kc_ptr, kc_size_t kc_a_oldsize, kc_size_t kc_a_newsize, kc_voidptr_t kc_a_private_malloc_info)\ \n#e", kc_current_view ); (*kc_printer)("lse\ \n(kc_ptr, kc_a_oldsize, kc_a_newsize, kc_a_private_malloc_info)\ \nkc_voidptr_t kc_ptr; kc_size_t kc_a_oldsize; kc_size_t kc_a_newsize; kc_voidptr_t kc_a_private_malloc_info;\ \n#endif\ \n{ retur", kc_current_view ); (*kc_printer)("n REALLOC(kc_ptr, kc_a_newsize);\ \n}\ \n\ \n/*ARGSUSED*/\ \nvoid kc_wrap_bucket_free\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_voidptr_t kc_ptr, kc_size_t kc_a_size, kc_voidptr_t kc_a_private_malloc_info)\ \n", kc_current_view ); (*kc_printer)("#else\ \n(kc_ptr, kc_a_size, kc_a_private_malloc_info)\ \nkc_voidptr_t kc_ptr; kc_size_t kc_a_size; kc_voidptr_t kc_a_private_malloc_info;\ \n#endif\ \n{ (void)FREE(kc_ptr);\ \n}\ \n\ \n#ifdef KC_STATI", kc_current_view ); (*kc_printer)("STICS\ \n KC_OPERATOR_STATISTICS kc_OperatorStatistics[KC_NO_OF_OPERATORS];\ \n# define KC_COLLECT_STATS0(v) v\ \n#else\ \n# define KC_COLLECT_STATS0(v) \ \n#endif\ \n\ \n#ifndef KC_CREATE_STATS\ \n", kc_current_view ); (*kc_printer)("# define KC_CREATE_STATS(oper) kc_OperatorStatistics[(int)oper].create++;\ \n#endif\ \n#ifndef KC_EXISTINGNOTFOUND_STATS\ \n# define KC_EXISTINGNOTFOUND_STATS(oper) kc_OperatorStatistics[(int)oper].e", kc_current_view ); (*kc_printer)("xisting_not_found++;\ \n#endif\ \n\ \n#ifndef KC_FREE_CALLED_STATS\ \n# define KC_FREE_CALLED_STATS(oper,rec) kc_OperatorStatistics[(int)oper].free_called[(int)(rec?True:False)]++;\ \n#endif\ \n\ \n#i", kc_current_view ); (*kc_printer)("fndef KC_FREED_STATS\ \n# define KC_FREED_STATS(oper,rec) kc_OperatorStatistics[(int)oper].freed[(int)(rec?True:False)]++;\ \n#endif\ \n\ \n\ \n", kc_current_view); } unparse_storageclasses(Thestorageclasses, kc_printer, view_gen_operatordefs_c_0); { (*kc_printer)("\ \n\ \nstatic boolean kc_storageclass_still_uniq[] = {\ \n", kc_current_view); } unparse_storageclasses(Thestorageclasses, kc_printer, view_gen_operatordefs_c_1); { (*kc_printer)(" };\ \n\ \n", kc_current_view); } unparse_storageclasses(Thestorageclasses, kc_printer, view_gen_operatordefs_c_2); { (*kc_printer)("\ \n\ \n#if 0 /* ! (defined(lint) || defined(SABER) || defined(CODECENTER)) */ /* currently not used */\ \nstatic kc_memory_info_t *kc_memory_info[] = { ", kc_current_view); } unparse_storageclasses(Thestorageclasses, kc_printer, view_gen_operatordefs_c_2a); { (*kc_printer)(" };\ \n#endif\ \n\ \nstatic kc_hashtable_struct_t kc_static_hashtables[] = {\ \n", kc_current_view); } unparse_storageclasses(Thestorageclasses, kc_printer, view_gen_operatordefs_c_4); { (*kc_printer)("};\ \n\ \nstatic kc_hashtable_t kc_hashtables[] = {\ \n", kc_current_view); } unparse_storageclasses(Thestorageclasses, kc_printer, view_gen_operatordefs_c_3); { (*kc_printer)("};\ \n\ \nstatic char* kc_storageclassnames[] = { ", kc_current_view); } unparse_storageclasses(Thestorageclasses, kc_printer, kc_current_view); { (*kc_printer)(" };\ \n\ \nstatic kc_hashtable_t kc_all_hashtables = &kc_static_hashtables[0];\ \n\ \nstatic int kc_primes[] = {\ \n 1009,\ \n 1091,\ \n 1193,\ \n 1297,\ \n 1423,\ \n 1543,\ \n 1693,\ \n 1847,\ \n 2003", kc_current_view ); (*kc_printer)(",\ \n 2203,\ \n 2381,\ \n 2609,\ \n 2833,\ \n 3089,\ \n 3371,\ \n 3673,\ \n 4007,\ \n 4373,\ \n 4783,\ \n 5209,\ \n 5683,\ \n 6197,\ \n 6761,\ \n 7369,\ \n 8039,\ \n 8761,\ \n 9587,\ \n 10427,\ \n 1138", kc_current_view ); (*kc_printer)("3,\ \n 12409,\ \n 13537,\ \n 14767,\ \n 16111,\ \n 17569,\ \n 19181,\ \n 20921,\ \n 22807,\ \n 24889,\ \n 27143,\ \n 29611,\ \n 32299,\ \n 35251,\ \n 38447,\ \n 41941,\ \n 45751,\ \n 49919,\ \n 54443,\ \n", kc_current_view ); (*kc_printer)(" 59387,\ \n 64793,\ \n 70687,\ \n 77101,\ \n 80021,\ \n 84121,\ \n 91753,\ \n 100103,\ \n 109199,\ \n 119129,\ \n 129953,\ \n 141761,\ \n 154643,\ \n 168713,\ \n 184039,\ \n 200771,\ \n 219017,\ \n 238", kc_current_view ); (*kc_printer)("939,\ \n 260647,\ \n 284357,\ \n 310223,\ \n 338407,\ \n 369169,\ \n 402739,\ \n 439339,\ \n 479263,\ \n 522829,\ \n 570359,\ \n 622241,\ \n 678773,\ \n 740477,\ \n 807797,\ \n 881233,\ \n 961339,\ \n ", kc_current_view ); (*kc_printer)("1048759,\ \n 1144081,\ \n 1248083,\ \n 1361573,\ \n 1485347,\ \n 1620347,\ \n 1767679,\ \n 1928351,\ \n 2103653,\ \n 2294891,\ \n 2503511,\ \n 2731103,\ \n 2979391,\ \n 3250243,\ \n 3545719,\ \n 386805", kc_current_view ); (*kc_printer)("7,\ \n 4219687,\ \n 4603297,\ \n 5021773,\ \n 5478299,\ \n 5976329,\ \n 6519647,\ \n 7112351,\ \n 7758899,\ \n 8464273,\ \n 9233729,\ \n 10073153,\ \n 10988893,\ \n 11987891,\ \n 13077707,\ \n 14266573", kc_current_view ); (*kc_printer)(",\ \n 15563531,\ \n 16978399,\ \n 18521897,\ \n 20205697,\ \n 22042607,\ \n 24046487,\ \n 26232491,\ \n 28617269,\ \n 31218823,\ \n 34056907,\ \n 37152979,\ \n 40530541,\ \n 44215117,\ \n 48234733,\ \n", kc_current_view ); (*kc_printer)(" 52619639,\ \n 57403277,\ \n 62621729,\ \n 68314613,\ \n 74525021,\ \n 81300017,\ \n 88690949,\ \n 96753739,\ \n 105549557,\ \n 115144957,\ \n 125612671,\ \n 137032001,\ \n 149489477,\ \n 163079431,\ \n", kc_current_view ); (*kc_printer)(" 177904801,\ \n 194077981,\ \n 211721429,\ \n 230968853,\ \n 251966009,\ \n 274871969,\ \n 299860369,\ \n 327120389,\ \n 356858597,\ \n 389300293,\ \n 424691207,\ \n 463299493,\ \n 505417691,\ \n 55136", kc_current_view ); (*kc_printer)("4677,\ \n 601488779,\ \n 656169539,\ \n 715821317,\ \n 780896041,\ \n 851886569,\ \n 929330767,\ \n 1013815373,\ \n 1105980433,\ \n 1206524183,\ \n 1316208139,\ \n 1435863449,\ \n 1566396463,\ \n 17087", kc_current_view ); (*kc_printer)("96171,\ \n 1864141193,\ \n 2033608601,\ \n0, 0 /* last two elements should ALWAYS be 0 */ };\ \n\ \n#ifdef KC_STATISTICS\ \nstatic int kc_casestring_strlen =0;\ \nstatic int kc_nocasestring_strlen =0;\ \n", kc_current_view ); (*kc_printer)("\ \nvoid kc_do_print_operator_statistics\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE * kc_f)\ \n#else\ \n(kc_f) FILE *kc_f;\ \n#endif\ \n{ unsigned int kc_i;\ \n /*SUPPRESS 622*/\ \n assertNonNull( kc_f,\"kc_", kc_current_view ); (*kc_printer)("f\" );\ \n (void)fprintf(kc_f, \"%-*s| %-*s| %-*s| %-*s| %-*s| %-*s| %-*s| %-*s| %-*s| %-*s\\n\", ", kc_current_view); } unparse_int(FMOP, kc_printer, kc_current_view); { (*kc_printer)(" , \"Operator\", ", kc_current_view); } unparse_int(FMSZ, kc_printer, kc_current_view); { (*kc_printer)(", \"Sz\", ", kc_current_view); } unparse_int(FMNCR, kc_printer, kc_current_view); { (*kc_printer)(", \"#oper\", ", kc_current_view); } unparse_int(FMNCRD, kc_printer, kc_current_view); { (*kc_printer)(", \"#new\", ", kc_current_view); } unparse_int(FMEXIST, kc_printer, kc_current_view); { (*kc_printer)(", \"#exist\", ", kc_current_view); } unparse_int(FMFRNC, kc_printer, kc_current_view); { (*kc_printer)(", \"#frnrec\", ", kc_current_view); } unparse_int(FMFRRC, kc_printer, kc_current_view); { (*kc_printer)(", \"#frrec\", ", kc_current_view); } unparse_int(FMFREED, kc_printer, kc_current_view); { (*kc_printer)(", \"#freed\", ", kc_current_view); } unparse_int(FMREM, kc_printer, kc_current_view); { (*kc_printer)(", \"#rem\", ", kc_current_view); } unparse_int(FMTOT, kc_printer, kc_current_view); { (*kc_printer)(", \"total (bytes)\");\ \n (void)fprintf(kc_f, \"%-*s|%*s |%*d |%*d |%*d |%*d |%*d |%*d |%*d |%*d\\n\", ", kc_current_view); } unparse_int(FMOP, kc_printer, kc_current_view); { (*kc_printer)(", \"case sensitive strings\", ", kc_current_view); } unparse_int(FMSZ, kc_printer, kc_current_view); { (*kc_printer)(", \"-\", ", kc_current_view); } unparse_int(FMNCR, kc_printer, kc_current_view); { (*kc_printer)(", kc_OperatorStatistics[(int)sel__Str].create, ", kc_current_view); } unparse_int(FMNCRD, kc_printer, kc_current_view); { (*kc_printer)(", kc_OperatorStatistics[(int)sel__Str].existing_not_found, ", kc_current_view); } unparse_int(FMEXIST, kc_printer, kc_current_view); { (*kc_printer)(", kc_OperatorStatistics[(int)sel__Str].create-kc_OperatorStatistics[(int)sel__Str].existing_not_found, ", kc_current_view); } unparse_int(FMFRNC, kc_printer, kc_current_view); { (*kc_printer)(", 0, ", kc_current_view); } unparse_int(FMFRRC, kc_printer, kc_current_view); { (*kc_printer)(", 0, ", kc_current_view); } unparse_int(FMFREED, kc_printer, kc_current_view); { (*kc_printer)(", 0, ", kc_current_view); } unparse_int(FMREM, kc_printer, kc_current_view); { (*kc_printer)(", 0, ", kc_current_view); } unparse_int(FMTOT, kc_printer, kc_current_view); { (*kc_printer)(", kc_casestring_strlen);\ \n (void)fprintf(kc_f, \"%-*s|%*s |%*d |%*d |%*d |%*d |%*d |%*d |%*d |%*d\\n\", ", kc_current_view); } unparse_int(FMOP, kc_printer, kc_current_view); { (*kc_printer)(", \"case insensitive strings\", ", kc_current_view); } unparse_int(FMSZ, kc_printer, kc_current_view); { (*kc_printer)(", \"-\", ", kc_current_view); } unparse_int(FMNCR, kc_printer, kc_current_view); { (*kc_printer)(", kc_OperatorStatistics[(int)sel_NoCaseStr].create, ", kc_current_view); } unparse_int(FMNCRD, kc_printer, kc_current_view); { (*kc_printer)(", kc_OperatorStatistics[(int)sel_NoCaseStr].existing_not_found, ", kc_current_view); } unparse_int(FMEXIST, kc_printer, kc_current_view); { (*kc_printer)(", kc_OperatorStatistics[(int)sel_NoCaseStr].create-kc_OperatorStatistics[(int)sel_NoCaseStr].existing_not_found, ", kc_current_view); } unparse_int(FMFRNC, kc_printer, kc_current_view); { (*kc_printer)(", 0, ", kc_current_view); } unparse_int(FMFRRC, kc_printer, kc_current_view); { (*kc_printer)(", 0, ", kc_current_view); } unparse_int(FMFREED, kc_printer, kc_current_view); { (*kc_printer)(", 0, ", kc_current_view); } unparse_int(FMREM, kc_printer, kc_current_view); { (*kc_printer)(", 0, ", kc_current_view); } unparse_int(FMTOT, kc_printer, kc_current_view); { (*kc_printer)(", kc_nocasestring_strlen);\ \n for (kc_i = (int)kc_one_before_first_operator+1; kc_i < (int)kc_last_operator; kc_i++) {\ \n (void)fprintf(kc_f, \"%-*s|%*d |%*d |%*d |%*d |%*d |%*d |%*d |%*d |%*d\\n\",", kc_current_view ); (*kc_printer)(" ", kc_current_view); } unparse_int(FMOP, kc_printer, kc_current_view); { (*kc_printer)(", kc_OperatorInfo[kc_i].name, ", kc_current_view); } unparse_int(FMSZ, kc_printer, kc_current_view); { (*kc_printer)(", kc_PhylumInfo[(int)kc_OperatorInfo[kc_i].phylum].size, ", kc_current_view); } unparse_int(FMNCR, kc_printer, kc_current_view); { (*kc_printer)(", kc_OperatorStatistics[kc_i].create, ", kc_current_view); } unparse_int(FMNCRD, kc_printer, kc_current_view); { (*kc_printer)(", kc_OperatorStatistics[kc_i].existing_not_found, ", kc_current_view); } unparse_int(FMEXIST, kc_printer, kc_current_view); { (*kc_printer)(", kc_OperatorStatistics[kc_i].create-kc_OperatorStatistics[kc_i].existing_not_found, ", kc_current_view); } unparse_int(FMFRNC, kc_printer, kc_current_view); { (*kc_printer)(", kc_OperatorStatistics[kc_i].free_called[(int)False], ", kc_current_view); } unparse_int(FMFRRC, kc_printer, kc_current_view); { (*kc_printer)(", kc_OperatorStatistics[kc_i].free_called[(int)True], ", kc_current_view); } unparse_int(FMFREED, kc_printer, kc_current_view); { (*kc_printer)(", kc_OperatorStatistics[kc_i].freed[(int)False]+kc_OperatorStatistics[kc_i].freed[(int)True], ", kc_current_view); } unparse_int(FMREM, kc_printer, kc_current_view); { (*kc_printer)(", kc_OperatorStatistics[kc_i].existing_not_found-(kc_OperatorStatistics[kc_i].freed[(int)False]+kc_OperatorStatistics[kc_i].freed[(int)True]), ", kc_current_view); } unparse_int(FMTOT, kc_printer, kc_current_view); { (*kc_printer)(", (kc_PhylumInfo[(int)kc_OperatorInfo[(int)kc_i].phylum].size)*(kc_OperatorStatistics[kc_i].existing_not_found-(kc_OperatorStatistics[kc_i].freed[(int)False]+kc_OperatorStatistics[kc_i].freed[(int)True", kc_current_view ); (*kc_printer)("])));\ \n }\ \n}\ \n#endif /* KC_STATISTICS */\ \n\ \nvoid kc_print_hash_statistics\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f)\ \n#else\ \n(kc_f) FILE *kc_f;\ \n#endif\ \n{ unsigned int kc_k;\ \n /*SU", kc_current_view ); (*kc_printer)("PPRESS 622*/\ \n /*assertNonNull(kc_f,\"kc_f\");*/ if (kc_f == NULL) kc_f = stdout;\ \n for (kc_k=0; kc_k < (int)kc_last_storageclass; kc_k++) {\ \n (void)fprintf(kc_f, \"Information for storage class", kc_current_view ); (*kc_printer)(" %s: \\n\", kc_storageclassnames[kc_k]);\ \n kc_print_hashtable_statistics(kc_f, kc_hashtables[kc_k]);\ \n} }\ \n\ \nvoid kc_print_all_hashtable_statistics\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f)\ \n", kc_current_view ); (*kc_printer)("#else\ \n(kc_f) FILE *kc_f;\ \n#endif\ \n{ kc_hashtable_t kc_a_hashtable_t = kc_all_hashtables;\ \n unsigned int kc_k;\ \n boolean kc_st_found;\ \n /*SUPPRESS 622*/\ \n /*assertNonNull(kc_f,\"kc_f\");*", kc_current_view ); (*kc_printer)("/ if (kc_f == NULL) kc_f = stdout;\ \n do { /* at least one time, because we have at least one element */\ \n kc_st_found = False;\ \n for (kc_k=0; kc_k < (int)kc_last_storageclass; kc_k++) {\ \n i", kc_current_view ); (*kc_printer)("f (kc_hashtables[kc_k] == kc_a_hashtable_t) {\ \n kc_st_found = True;\ \n (void)fprintf(kc_f, \"Information for storage class %s: \\n\", kc_storageclassnames[kc_k]);\ \n } }\ \n if (! kc_st_fou", kc_current_view ); (*kc_printer)("nd) {\ \n (void)fprintf(kc_f, \"Information for unknown storage class: \\n\");\ \n }\ \n kc_print_hashtable_statistics(kc_f, kc_a_hashtable_t);\ \n kc_print_hashtable_memory_statistics(kc_f, kc_a_", kc_current_view ); (*kc_printer)("hashtable_t);\ \n kc_a_hashtable_t = kc_a_hashtable_t->next;\ \n } while(kc_a_hashtable_t != kc_all_hashtables);\ \n}\ \n\ \nvoid kc_print_hashtable_statistics\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc", kc_current_view ); (*kc_printer)("_f, kc_hashtable_t kc_a_hashtable_t)\ \n#else\ \n(kc_f, kc_a_hashtable_t) FILE *kc_f; kc_hashtable_t kc_a_hashtable_t;\ \n#endif\ \n{\ \n boolean kc_goon;\ \n int kc_entries[9];\ \n int kc_o_8 = 0;\ \n", kc_current_view ); (*kc_printer)(" int kc_o_20 = 0;\ \n int kc_o_100 = 0;\ \n int kc_total = 0;\ \n int kc_i, kc_j;\ \n\ \n /*SUPPRESS 622*/\ \n /*(kc_f,\"kc_f\");*/ if (kc_f == NULL) kc_f = stdout;\ \n (void)fprintf(kc_f, \"\\tsize:\\t", kc_current_view ); (*kc_printer)("%d\\n\",kc_a_hashtable_t->size);\ \n for (kc_i=0; kc_i < 9; kc_i++) kc_entries[kc_i]=0;\ \n for (kc_i=0;kc_isize;kc_i++) {\ \n int kc_m=0, kc_n;\ \n for (kc_n=0;kc_n<(int)kc_last_s", kc_current_view ); (*kc_printer)("torage_mode;kc_n++) {\ \n kc_m += kc_a_hashtable_t->hashtable[kc_i][kc_n].nr;\ \n }\ \n kc_total += kc_m;\ \n if (kc_m >100) {kc_o_100 ++; (void)fprintf(kc_f, \">100: key %d (%d elts)\\n\",kc_i,kc", kc_current_view ); (*kc_printer)("_m); }\ \n else if (kc_m >20) {kc_o_20 ++; (void)fprintf(kc_f, \">20: key %d (%d elts)\\n\",kc_i,kc_m); }\ \n else if (kc_m > 8) kc_o_8 ++;\ \n else {\ \n kc_j =0; kc_goon = True;\ \n while ( kc", kc_current_view ); (*kc_printer)("_goon && (kc_j < 9)) {\ \n if (kc_m == kc_j) { kc_entries[kc_j]++; kc_goon = False; }\ \n else kc_j++;\ \n } } }\ \n (void)fprintf(kc_f, \"The spreading is: \\n\");\ \n for (kc_j=0; kc_j < 9; kc_", kc_current_view ); (*kc_printer)("j++) {\ \n (void)fprintf(kc_f, \"\\t%d elts:\\t%d\\n\",kc_j, kc_entries[kc_j]);\ \n }\ \n (void)fprintf(kc_f, \"\\tOver 8 elts:\\t%d\\n\",kc_o_8);\ \n (void)fprintf(kc_f, \"\\tOver 20 elts:\\t%d\\n\",", kc_current_view ); (*kc_printer)("kc_o_20);\ \n (void)fprintf(kc_f, \"\\tOver 100 elts:\\t%d\\n\",kc_o_100);\ \n (void)fprintf(kc_f, \" Total number of cells: %d\\n\",kc_total);\ \n (void)fprintf(kc_f, \" Number of buckets: %d\\n\",kc_", kc_current_view ); (*kc_printer)("a_hashtable_t->size);\ \n}\ \n\ \nstatic void kc_growindex\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_hashtableentry_t *kc_hte, kc_hashtable_t kc_a_ht)\ \n#else\ \n(kc_hte, kc_a_ht) kc_hashtableentry_t *kc_hte", kc_current_view ); (*kc_printer)("; kc_hashtable_t kc_a_ht;\ \n#endif\ \n{ int kc_newsize = kc_hte->ibound + kc_a_ht->bucket_alloc_inc;\ \n if (kc_newsize == kc_a_ht->bucket_alloc_inc)\ \n kc_hte->index = (YYSTYPE *) (*kc_a_ht->bucket", kc_current_view ); (*kc_printer)("_calloc)((kc_size_t)kc_newsize, (kc_size_t)sizeof(YYSTYPE), kc_a_ht->bucket_alloc_private_data);\ \n else\ \n kc_hte->index = (YYSTYPE *) (*kc_a_ht->bucket_realloc)((kc_voidptr_t)kc_hte->index, (kc_si", kc_current_view ); (*kc_printer)("ze_t)kc_hte->ibound * sizeof(YYSTYPE), (kc_size_t)kc_newsize * sizeof(YYSTYPE), kc_a_ht->bucket_alloc_private_data);\ \n kc_hte->ibound = kc_newsize;\ \n}\ \n\ \nvoid kc_ht_static\ \n#ifdef KC_USE_PROT", kc_current_view ); (*kc_printer)("OTYPES\ \n(kc_storageclass_t kc_a_storageclass_t)\ \n#else\ \n(kc_a_storageclass_t) kc_storageclass_t kc_a_storageclass_t;\ \n#endif\ \n{\ \n kc_hashtables[(int)kc_a_storageclass_t]->mode = kc_ht_store", kc_current_view ); (*kc_printer)("_static;\ \n kc_hashtables[(int)kc_a_storageclass_t]->malloc_private_data = kc_hashtables[(int)kc_a_storageclass_t]->static_malloc_private_data;\ \n}\ \n\ \nvoid kc_ht_dynamic\ \n#ifdef KC_USE_PROTOTYP", kc_current_view ); (*kc_printer)("ES\ \n(kc_storageclass_t kc_a_storageclass_t)\ \n#else\ \n(kc_a_storageclass_t) kc_storageclass_t kc_a_storageclass_t;\ \n#endif\ \n{\ \n kc_hashtables[(int)kc_a_storageclass_t]->mode = kc_ht_store_dyn", kc_current_view ); (*kc_printer)("amic;\ \n if (kc_hashtables[(int)kc_a_storageclass_t]->dynamic_malloc_private_data != 0) {\ \n kc_ht_inc_level(kc_a_storageclass_t);\ \n }\ \n kc_hashtables[(int)kc_a_storageclass_t]->malloc_private_d", kc_current_view ); (*kc_printer)("ata = kc_hashtables[(int)kc_a_storageclass_t]->dynamic_malloc_private_data->malloc_private_data;\ \n}\ \n\ \nvoid kc_ht_inc_level\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_storageclass_t kc_a_storageclass_t)\ \n", kc_current_view ); (*kc_printer)("#else\ \n(kc_a_storageclass_t) kc_storageclass_t kc_a_storageclass_t;\ \n#endif\ \n{\ \n kc_private_malloc_t kc_a_private_malloc_t = (kc_private_malloc_t)MALLOC(sizeof(struct kc_tag_kc_private_malloc_t", kc_current_view ); (*kc_printer)("));\ \n kc_a_private_malloc_t->next = kc_hashtables[(int)kc_a_storageclass_t]->dynamic_malloc_private_data;\ \n if (kc_hashtables[(int)kc_a_storageclass_t]->dynamic_malloc_private_data != 0 ) {\ \n kc", kc_current_view ); (*kc_printer)("_hashtables[(int)kc_a_storageclass_t]->dynamic_malloc_private_data->prev = kc_a_private_malloc_t;\ \n }\ \n kc_a_private_malloc_t->prev = kc_hashtables[(int)kc_a_storageclass_t]->dec_dynamic_malloc_pri", kc_current_view ); (*kc_printer)("vate_data;\ \n kc_a_private_malloc_t->malloc_private_data = (*kc_hashtables[(int)kc_a_storageclass_t]->malloc_initialise)();\ \n kc_hashtables[(int)kc_a_storageclass_t]->dynamic_malloc_private_data = k", kc_current_view ); (*kc_printer)("c_a_private_malloc_t;\ \n}\ \n\ \nvoid kc_ht_dec_level\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_storageclass_t kc_a_storageclass_t)\ \n#else\ \n(kc_a_storageclass_t) kc_storageclass_t kc_a_storageclass_t;\ \n", kc_current_view ); (*kc_printer)("#endif\ \n{\ \n int kc_i, kc_j, kc_m;\ \n kc_hashtableentry_t* kc_hte;\ \n\ \n kc_hashtable_t kc_a_hashtable_t = kc_hashtables[(int)kc_a_storageclass_t];\ \n if (kc_a_hashtable_t->dynamic_malloc_privat", kc_current_view ); (*kc_printer)("e_data != 0) {\ \n kc_a_hashtable_t->dec_dynamic_malloc_private_data = kc_a_hashtable_t->dynamic_malloc_private_data;\ \n kc_a_hashtable_t->dynamic_malloc_private_data = kc_a_hashtable_t->dynamic_mal", kc_current_view ); (*kc_printer)("loc_private_data->next;\ \n for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) {\ \n kc_m = (int)kc_ht_store_dynamic;\ \n kc_hte = &kc_a_hashtable_t->hashtable[kc_i][kc_m];\ \n for (kc_j=kc_hte", kc_current_view ); (*kc_printer)("->nr -1; kc_j >= 0; kc_j--) {\ \n kc_private_malloc_t kc_a_private_malloc_t = kc_a_hashtable_t->dec_dynamic_malloc_private_data;\ \n boolean kc_is_in_block = (*kc_a_hashtable_t->in_block)((kc_voi", kc_current_view ); (*kc_printer)("dptr_t)kc_hte->index[kc_j].yt_casestring, kc_a_private_malloc_t->malloc_private_data);\ \n#if 0 /* not necessary, because every kc_ht_dec_level call takes care of its own level */\ \n while ((!kc_is", kc_current_view ); (*kc_printer)("_in_block) && kc_a_private_malloc_t->prev) {\ \n kc_a_private_malloc_t = kc_a_private_malloc_t->prev;\ \n kc_is_in_block = (*kc_a_hashtable_t->in_block)((kc_voidptr_t)kc_hte->index[kc_j].yt_cas", kc_current_view ); (*kc_printer)("estring, kc_a_private_malloc_t->malloc_private_data);\ \n }\ \n#endif\ \n if (kc_is_in_block) {\ \n kc_hte->nr--;\ \n kc_hte->index[kc_j] = kc_hte->index[kc_hte->nr];\ \n kc_hte->inde", kc_current_view ); (*kc_printer)("x[kc_hte->nr].yt_casestring = 0;\ \n }\ \n#ifdef KC_SEPARATE_HASH_LEVELS\ \n else {\ \n break;\ \n }\ \n#endif\ \n } }\ \n } else {\ \n /* should be a better error message */\ \n /*SU", kc_current_view ); (*kc_printer)("PPRESS 622*/\ \n assert(kc_zero_constant); \ \n} }\ \n\ \n/* free the previous level(s) in the level-list, ie\ \n * the sublist that is reachable via dec_dynamic_malloc_private_data,\ \n * and via the", kc_current_view ); (*kc_printer)(" prev field of the current dynamic node, if defined\ \n * follow prev's to the left start, freeing the blocks while moving\ \n * and freeing the administration nodes themselves\ \n */\ \nstatic void kc", kc_current_view ); (*kc_printer)("_ht_do_free_level\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_hashtable_t kc_a_hashtable_t)\ \n#else\ \n(kc_a_hashtable_t) kc_hashtable_t kc_a_hashtable_t;\ \n#endif\ \n{ kc_private_malloc_t kc_a_private_malloc", kc_current_view ); (*kc_printer)("_t, kc_b_private_malloc_t;\ \n if (kc_a_hashtable_t->dec_dynamic_malloc_private_data != 0) {\ \n kc_a_private_malloc_t = kc_a_hashtable_t->dec_dynamic_malloc_private_data;\ \n while (kc_a_private_mal", kc_current_view ); (*kc_printer)("loc_t != 0) {\ \n if (kc_a_hashtable_t->free_all_elements != 0) {\ \n (*kc_a_hashtable_t->free_all_elements)(kc_a_private_malloc_t->malloc_private_data);\ \n }\ \n kc_b_private_malloc_t = kc_a", kc_current_view ); (*kc_printer)("_private_malloc_t;\ \n kc_a_private_malloc_t = kc_a_private_malloc_t->prev;\ \n KC_BZERO(kc_b_private_malloc_t, sizeof(struct kc_tag_kc_private_malloc_t));\ \n FREE((kc_voidptr_t)kc_b_private_mal", kc_current_view ); (*kc_printer)("loc_t);\ \n }\ \n kc_a_hashtable_t->dec_dynamic_malloc_private_data = 0;\ \n if (kc_a_hashtable_t->dynamic_malloc_private_data != 0) {\ \n kc_a_hashtable_t->dynamic_malloc_private_data->prev = 0;\ \n", kc_current_view ); (*kc_printer)("} } }\ \n\ \nvoid kc_ht_free_level\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_storageclass_t kc_a_storageclass_t)\ \n#else\ \n(kc_a_storageclass_t) kc_storageclass_t kc_a_storageclass_t;\ \n#endif\ \n{\ \n kc_", kc_current_view ); (*kc_printer)("ht_do_free_level(kc_hashtables[(int)kc_a_storageclass_t]);\ \n}\ \n\ \nstatic int kc_choose_prime\ \n#ifdef KC_USE_PROTOTYPES\ \n(int kc_a_size)\ \n#else\ \n(kc_a_size) int kc_a_size;\ \n#endif\ \n{ in", kc_current_view ); (*kc_printer)("t kc_i =0;\ \n while((kc_primes[kc_i] < kc_a_size) && (kc_primes[kc_i+1] > 0)) {\ \n kc_i++;\ \n }\ \n return kc_primes[kc_i];\ \n}\ \n\ \nkc_hashtable_t kc_ht_create_bucketmanagement\ \n#ifdef KC_USE", kc_current_view ); (*kc_printer)("_PROTOTYPES\ \n(int kc_a_size,\ \n kc_voidptr_t (*kc_a_malloc_initialise)(),\ \n kc_voidptr_t (*kc_a_malloc)(kc_size_t, kc_voidptr_t),\ \n void (*kc_a_free_element)(kc_voidptr_t, kc_voidptr_t),\ \n voi", kc_current_view ); (*kc_printer)("d (*kc_a_free_all_elements)(kc_voidptr_t),\ \n boolean (*kc_a_in_block)(kc_voidptr_t, kc_voidptr_t),\ \n void (*kc_a_malloc_info)(FILE*, kc_voidptr_t),\ \n kc_voidptr_t (*kc_a_bucket_alloc_initialise)(", kc_current_view ); (*kc_printer)("),\ \n kc_voidptr_t (*kc_a_bucket_calloc)(kc_size_t, kc_size_t, kc_voidptr_t),\ \n kc_voidptr_t (*kc_a_bucket_realloc)( kc_voidptr_t, kc_size_t, kc_size_t, kc_voidptr_t),\ \n void (*kc_a_free_bucket)(k", kc_current_view ); (*kc_printer)("c_voidptr_t, kc_size_t, kc_voidptr_t),\ \n void (*kc_a_free_buckets)(kc_voidptr_t),\ \n int kc_a_bucket_alloc_inc,\ \n void (*kc_a_bucket_alloc_info)(FILE*, kc_voidptr_t)\ \n)\ \n#else\ \n(kc_a_size,\ \n", kc_current_view ); (*kc_printer)(" kc_a_malloc_initialise,\ \n kc_a_malloc,\ \n kc_a_free_element,\ \n kc_a_free_all_elements,\ \n kc_a_in_block,\ \n kc_a_malloc_info,\ \n kc_a_bucket_alloc_initialise,\ \n kc_a_bucket_calloc,\ \n kc_a_", kc_current_view ); (*kc_printer)("bucket_realloc,\ \n kc_a_free_bucket,\ \n kc_a_free_buckets,\ \n kc_a_bucket_alloc_inc,\ \n kc_a_bucket_alloc_info\ \n)\ \n int kc_a_size;\ \n kc_voidptr_t (*kc_a_malloc_initialise)KC__P(());\ \n kc_vo", kc_current_view ); (*kc_printer)("idptr_t (*kc_a_malloc)KC__P((kc_size_t, kc_voidptr_t));\ \n void (*kc_a_free_element)KC__P((kc_voidptr_t, kc_voidptr_t));\ \n void (*kc_a_free_all_elements)KC__P((kc_voidptr_t));\ \n boolean (*kc_a_in_", kc_current_view ); (*kc_printer)("block)KC__P((kc_voidptr_t, kc_voidptr_t));\ \n void (*kc_a_malloc_info)KC__P((FILE*, kc_voidptr_t));\ \n kc_voidptr_t (*kc_a_bucket_alloc_initialise)KC__P(());\ \n kc_voidptr_t (*kc_a_bucket_calloc)KC_", kc_current_view ); (*kc_printer)("_P((kc_size_t, size_t, kc_voidptr_t));\ \n kc_voidptr_t (*kc_a_bucket_realloc)KC__P(( kc_voidptr_t, kc_size_t, kc_size_t, kc_voidptr_t));\ \n void (*kc_a_free_bucket)KC__P((kc_voidptr_t, kc_size_t, kc_", kc_current_view ); (*kc_printer)("voidptr_t));\ \n void (*kc_a_free_buckets)KC__P((kc_voidptr_t));\ \n int kc_a_bucket_alloc_inc;\ \n void (*kc_a_bucket_alloc_info)KC__P((FILE*, kc_voidptr_t));\ \n#endif\ \n{ kc_hashtable_t kc_a_hashta", kc_current_view ); (*kc_printer)("ble_t = (kc_hashtable_t)MALLOC(sizeof(kc_hashtable_struct_t));\ \n kc_a_hashtable_t->size = kc_choose_prime(kc_a_size);\ \n kc_a_hashtable_t->hashtable = (kc_hashtableentry_t(*)[(int)kc_last_storage_mo", kc_current_view ); (*kc_printer)("de])CALLOC((kc_size_t)kc_a_hashtable_t->size*((int)kc_last_storage_mode), (kc_size_t)sizeof(kc_hashtableentry_t));\ \n\ \n kc_a_hashtable_t->malloc_initialise = kc_a_malloc_initialise;\ \n kc_a_hashtab", kc_current_view ); (*kc_printer)("le_t->malloc = kc_a_malloc;\ \n kc_a_hashtable_t->free_element = kc_a_free_element;\ \n kc_a_hashtable_t->free_all_elements = kc_a_free_all_elements;\ \n kc_a_hashtable_t->in_block = kc_a_in_block;\ \n", kc_current_view ); (*kc_printer)(" kc_a_hashtable_t->static_malloc_private_data = (kc_voidptr_t)(*kc_a_hashtable_t->malloc_initialise)();\ \n kc_a_hashtable_t->malloc_private_data = kc_a_hashtable_t->static_malloc_private_data;\ \n kc_", kc_current_view ); (*kc_printer)("a_hashtable_t->dynamic_malloc_private_data = 0;\ \n kc_a_hashtable_t->dec_dynamic_malloc_private_data = 0;\ \n kc_a_hashtable_t->mode = kc_ht_store_static;\ \n kc_a_hashtable_t->malloc_info = kc_a_mall", kc_current_view ); (*kc_printer)("oc_info;\ \n\ \n kc_a_hashtable_t->bucket_alloc_initialise = kc_a_bucket_alloc_initialise;\ \n kc_a_hashtable_t->bucket_calloc = kc_a_bucket_calloc;\ \n kc_a_hashtable_t->bucket_realloc = kc_a_bucket_r", kc_current_view ); (*kc_printer)("ealloc;\ \n kc_a_hashtable_t->free_bucket = kc_a_free_bucket;\ \n kc_a_hashtable_t->free_buckets = kc_a_free_buckets;\ \n kc_a_hashtable_t->bucket_alloc_info = kc_a_bucket_alloc_info;\ \n kc_a_hashtabl", kc_current_view ); (*kc_printer)("e_t->bucket_alloc_inc = (kc_a_bucket_alloc_inc ? kc_a_bucket_alloc_inc : KC_BUCKET_INC);\ \n kc_a_hashtable_t->bucket_alloc_private_data = (kc_a_hashtable_t->bucket_alloc_initialise)\ \n ? (", kc_current_view ); (*kc_printer)("kc_voidptr_t)(*kc_a_hashtable_t->bucket_alloc_initialise)()\ \n : 0;\ \n\ \n kc_a_hashtable_t->kc_to_be_freed = 1;\ \n kc_a_hashtable_t->next = kc_all_hashtables;\ \n kc_a_hashtable_t->prev ", kc_current_view ); (*kc_printer)("= kc_all_hashtables->prev;\ \n kc_all_hashtables->prev->next = kc_a_hashtable_t;\ \n kc_all_hashtables->prev = kc_a_hashtable_t;\ \n kc_all_hashtables = kc_a_hashtable_t;\ \n return kc_a_hashtable_t;\ \n", kc_current_view ); (*kc_printer)("}\ \n\ \nkc_hashtable_t kc_ht_create\ \n#ifdef KC_USE_PROTOTYPES\ \n(int kc_a_size, kc_voidptr_t (*kc_a_malloc_initialise)(), kc_voidptr_t (*kc_a_malloc)(kc_size_t, kc_voidptr_t),\ \n void (*kc_a_free_", kc_current_view ); (*kc_printer)("element)(kc_voidptr_t, kc_voidptr_t), void (*kc_a_free_all_elements)(kc_voidptr_t),\ \n boolean (*kc_a_in_block)(kc_voidptr_t, kc_voidptr_t))\ \n#else\ \n(kc_a_size, kc_a_malloc_initialise, kc_a_malloc", kc_current_view ); (*kc_printer)(", kc_a_free_element, kc_a_free_all_elements, kc_a_in_block)\ \n int kc_a_size; kc_voidptr_t (*kc_a_malloc_initialise)KC__P(()); kc_voidptr_t (*kc_a_malloc)KC__P((kc_size_t, kc_voidptr_t));\ \n void (*k", kc_current_view ); (*kc_printer)("c_a_free_element)KC__P((kc_voidptr_t, kc_voidptr_t)); void (*kc_a_free_all_elements)KC__P((kc_voidptr_t));\ \n boolean (*kc_a_in_block)KC__P((kc_voidptr_t, kc_voidptr_t));\ \n#endif\ \n{\ \n kc_voidptr", kc_current_view ); (*kc_printer)("_t (*kc_tmp_malloc_initialise)KC__P(()) = (kc_voidptr_t(*)())UNIQMALLOCINIT;\ \n void (*kc_tmp_malloc_info)KC__P((FILE*, kc_voidptr_t)) = (kc_tmp_malloc_initialise == kc_a_malloc_initialise)\ \n ", kc_current_view ); (*kc_printer)(" ? (void(*)KC__P((FILE*, kc_voidptr_t)))UNIQMEMORYINFO\ \n : (void(*)KC__P((FILE*, kc_voidptr_t)))0\ \n ;\ \n /* do something special (wrt mallocinfo?) if we know that our malloc is being", kc_current_view ); (*kc_printer)(" used */\ \n return kc_ht_create_bucketmanagement(kc_a_size, kc_a_malloc_initialise, kc_a_malloc, kc_a_free_element, kc_a_free_all_elements, kc_a_in_block, kc_tmp_malloc_info,\ \n (kc_voidptr_t", kc_current_view ); (*kc_printer)("(*)())BUCKETALLOCINIT, BUCKETCALLOC, BUCKETREALLOC, BUCKETFREE, (void(*)KC__P((kc_voidptr_t)))BUCKETSFREE,\ \n BUCKETINC, (void(*)KC__P((FILE*, kc_voidptr_t)))BUCKETMEMORYINFO);\ \n}\ \n\ \nkc", kc_current_view ); (*kc_printer)("_hashtable_t kc_ht_create_simple\ \n#ifdef KC_USE_PROTOTYPES\ \n(int kc_a_size)\ \n#else\ \n(kc_a_size) int kc_a_size;\ \n#endif\ \n{\ \n return kc_ht_create_bucketmanagement(kc_a_size, (kc_voidptr_t(*", kc_current_view ); (*kc_printer)(")())UNIQMALLOCINIT, UNIQMALLOC2, (void (*)KC__P((kc_voidptr_t, kc_voidptr_t)))0/*UNIQFREEELEMENT*/, UNIQFREEALL, INUNIQBLOCK,\ \n UNIQMEMORYINFO, (kc_voidptr_t(*)())BUCKETALLOCINIT, BUCKETCALLOC,", kc_current_view ); (*kc_printer)(" BUCKETREALLOC, BUCKETFREE, (void(*)KC__P((kc_voidptr_t)))BUCKETSFREE, BUCKETINC, (void(*)KC__P((FILE*, kc_voidptr_t)))BUCKETMEMORYINFO);\ \n}\ \n\ \nkc_hashtable_t kc_ht_assign\ \n#ifdef KC_USE_PROTOT", kc_current_view ); (*kc_printer)("YPES\ \n(kc_hashtable_t kc_a_hashtable_t, kc_storageclass_t kc_a_storageclass_t)\ \n#else\ \n(kc_a_hashtable_t, kc_a_storageclass_t) kc_hashtable_t kc_a_hashtable_t; kc_storageclass_t kc_a_storageclass", kc_current_view ); (*kc_printer)("_t;\ \n#endif\ \n{ kc_hashtable_t kc_tmp = kc_hashtables[(int)kc_a_storageclass_t];\ \n kc_hashtables[(int)kc_a_storageclass_t] = kc_a_hashtable_t;\ \n kc_storageclass_still_uniq[(int)kc_a_storageclass", kc_current_view ); (*kc_printer)("_t] = False;\ \n return kc_tmp;\ \n}\ \n\ \nkc_hashtable_t kc_ht_assigned\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_storageclass_t kc_a_storageclass_t)\ \n#else\ \n(kc_a_storageclass_t) kc_storageclass_t kc_a", kc_current_view ); (*kc_printer)("_storageclass_t;\ \n#endif\ \n{ return kc_hashtables[(int)kc_a_storageclass_t];\ \n}\ \n\ \nstatic void kc_ht_free_single_elements\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_hashtable_t kc_a_hashtable_t, int k", kc_current_view ); (*kc_printer)("c_i, int kc_m)\ \n#else\ \n(kc_a_hashtable_t, kc_i, kc_m) kc_hashtable_t kc_a_hashtable_t; int kc_i; int kc_m;\ \n#endif\ \n{ int kc_j;\ \n if ((int)kc_m == (int)kc_ht_store_static) {\ \n for (kc_j=0;", kc_current_view ); (*kc_printer)(" kc_j < kc_a_hashtable_t->hashtable[kc_i][kc_m].nr; kc_j++) {\ \n (*kc_a_hashtable_t->free_element)((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index[kc_j].yt_casestring, kc_a_hashtable_t->", kc_current_view ); (*kc_printer)("static_malloc_private_data);\ \n }\ \n } else {\ \n kc_voidptr_t kc_a_private_data = 0;\ \n if ((kc_a_hashtable_t->dynamic_malloc_private_data == 0) || (kc_a_hashtable_t->dynamic_malloc_private_data", kc_current_view ); (*kc_printer)("->malloc_private_data == 0)) {\ \n kc_a_private_data = 0;\ \n } else if (kc_a_hashtable_t->dynamic_malloc_private_data->next == 0) {\ \n kc_a_private_data = kc_a_hashtable_t->dynamic_malloc_privat", kc_current_view ); (*kc_printer)("e_data->malloc_private_data;\ \n }\ \n for (kc_j=0; kc_j < kc_a_hashtable_t->hashtable[kc_i][kc_m].nr; kc_j++) {\ \n (*kc_a_hashtable_t->free_element)((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i", kc_current_view ); (*kc_printer)("][kc_m].index[kc_j].yt_casestring, kc_a_private_data);\ \n }\ \n }\ \n}\ \n\ \nstatic void kc_ht_do_clear_all_elements\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_hashtable_t kc_a_hashtable_t, boolean kc_reuse", kc_current_view ); (*kc_printer)(", boolean kc_reinit)\ \n#else\ \n(kc_a_hashtable_t, kc_reuse, kc_reinit) kc_hashtable_t kc_a_hashtable_t; boolean kc_reuse; boolean kc_reinit;\ \n#endif\ \n{ int kc_i, kc_m;\ \n kc_private_malloc_t kc_", kc_current_view ); (*kc_printer)("a_private_malloc_t;\ \n/* free all static stuff */\ \n (*kc_a_hashtable_t->free_all_elements)(kc_a_hashtable_t->static_malloc_private_data);\ \n/* free all dynamic stuff */\ \n /* walk to end of list o", kc_current_view ); (*kc_printer)("f levels, kc_ht_do_free_level will free last and all\ \n * previous levels in the list\ \n */\ \n if (kc_a_hashtable_t->dynamic_malloc_private_data != 0) {\ \n kc_a_private_malloc_t = kc_a_hashtable", kc_current_view ); (*kc_printer)("_t->dynamic_malloc_private_data;\ \n while(kc_a_private_malloc_t->next != 0) {\ \n kc_a_private_malloc_t = kc_a_private_malloc_t->next;\ \n }\ \n kc_a_hashtable_t->dec_dynamic_malloc_private_data ", kc_current_view ); (*kc_printer)("= kc_a_private_malloc_t;\ \n kc_a_hashtable_t->dynamic_malloc_private_data = 0;\ \n kc_ht_do_free_level(kc_a_hashtable_t);\ \n }\ \n/* free/reuse the buckets, and re-initialize the hashtable-entries ", kc_current_view ); (*kc_printer)("*/\ \n if (kc_reuse) { /* zero the buckets; reset nr field */\ \n for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) {\ \n for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) {\ \n /* we only", kc_current_view ); (*kc_printer)(" do something if nr !=0, else there is nothing to do\ \n * because of our 'invariant'\ \n */\ \n if (kc_a_hashtable_t->hashtable[kc_i][kc_m].nr) {\ \n KC_BZERO((kc_voidptr_t)kc_a_hashtab", kc_current_view ); (*kc_printer)("le_t->hashtable[kc_i][kc_m].index,\ \n (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE));\ \n kc_a_hashtable_t->hashtable[kc_i][kc_m].nr = 0;\ \n } } }\ \n } else", kc_current_view ); (*kc_printer)(" if (kc_reinit) { /* zero & free the buckets; reset nr, index, ibound fields */\ \n if (kc_a_hashtable_t->free_buckets) {\ \n (*kc_a_hashtable_t->free_buckets)(kc_a_hashtable_t->bucket_alloc_private", kc_current_view ); (*kc_printer)("_data);\ \n KC_BZERO(kc_a_hashtable_t->hashtable, (kc_size_t)kc_a_hashtable_t->size*((int)kc_last_storage_mode)*sizeof(kc_hashtableentry_t));\ \n#if 0\ \n for (kc_i=0; kc_i < kc_a_hashtable_t->size", kc_current_view ); (*kc_printer)("; kc_i++) {\ \n for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) {\ \n /* we do something if ibound !=0, it is not suficient to\ \n * look only at the nr field, because the nr field m", kc_current_view ); (*kc_printer)("ight be\ \n * reset in a previous reuse operation.\ \n * we could as well look for an non-null index field.\ \n */\ \n if (kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound) {\ \n ", kc_current_view ); (*kc_printer)("kc_a_hashtable_t->hashtable[kc_i][kc_m].index = 0;\ \n kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound = 0;\ \n kc_a_hashtable_t->hashtable[kc_i][kc_m].nr = 0;\ \n } } }\ \n#endif\ \n } els", kc_current_view ); (*kc_printer)("e if (kc_a_hashtable_t->free_bucket) {\ \n for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) {\ \n for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) {\ \n /* we do something if ibound !", kc_current_view ); (*kc_printer)("=0, it is not suficient to\ \n * look only at the nr field, because the nr field might be\ \n * reset in a previous reuse operation.\ \n * we could as well look for an non-null index fie", kc_current_view ); (*kc_printer)("ld.\ \n */\ \n if (kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound) {\ \n KC_BZERO((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index,\ \n (kc_size_t)kc_a_hashtable_t->has", kc_current_view ); (*kc_printer)("htable[kc_i][kc_m].ibound * sizeof(YYSTYPE));\ \n (*kc_a_hashtable_t->free_bucket)((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index,\ \n (kc_size_t)kc_a_hashtable_t->hashtable", kc_current_view ); (*kc_printer)("[kc_i][kc_m].ibound * sizeof(YYSTYPE),\ \n kc_a_hashtable_t->bucket_alloc_private_data);\ \n kc_a_hashtable_t->hashtable[kc_i][kc_m].index = 0;\ \n kc_a_hashtable_t->hashtable[kc_i]", kc_current_view ); (*kc_printer)("[kc_m].ibound = 0;\ \n kc_a_hashtable_t->hashtable[kc_i][kc_m].nr = 0;\ \n } } }\ \n } else {\ \n /* should be a better error message */\ \n /*SUPPRESS 622*/\ \n assert(kc_zero_constant);", kc_current_view ); (*kc_printer)(" \ \n }\ \n } else { /* zero & free the buckets */\ \n if (kc_a_hashtable_t->free_buckets) {\ \n (*kc_a_hashtable_t->free_buckets)(kc_a_hashtable_t->bucket_alloc_private_data);\ \n } else if (kc_a", kc_current_view ); (*kc_printer)("_hashtable_t->free_bucket) {\ \n for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) {\ \n for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) {\ \n /* we do something if index !=0, it is n", kc_current_view ); (*kc_printer)("ot suficient to\ \n * look only at the nr field, because the nr field might be\ \n * reset in a previous reuse operation.\ \n * we could as well look for an non-null ibound field.\ \n ", kc_current_view ); (*kc_printer)(" */\ \n if (kc_a_hashtable_t->hashtable[kc_i][kc_m].index) {\ \n KC_BZERO((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index,\ \n (kc_size_t)kc_a_hashtable_t->hashtable[kc_i", kc_current_view ); (*kc_printer)("][kc_m].ibound * sizeof(YYSTYPE));\ \n (*kc_a_hashtable_t->free_bucket)((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index,\ \n (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m", kc_current_view ); (*kc_printer)("].ibound * sizeof(YYSTYPE),\ \n kc_a_hashtable_t->bucket_alloc_private_data);\ \n } } }\ \n } else {\ \n /* should be a better error message */\ \n /*SUPPRESS 622*/\ \n assert(kc_zer", kc_current_view ); (*kc_printer)("o_constant); \ \n }\ \n }\ \n}\ \n\ \nstatic void kc_ht_do_clear_no_all_elements\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_hashtable_t kc_a_hashtable_t, boolean kc_reuse, boolean kc_reinit)\ \n#else\ \n(kc_a", kc_current_view ); (*kc_printer)("_hashtable_t, kc_reuse, kc_reinit) kc_hashtable_t kc_a_hashtable_t; boolean kc_reuse; boolean kc_reinit;\ \n#endif\ \n{ int kc_i, kc_m;\ \n/* free all static stuff */\ \n /* done on the fly, below */\ \n", kc_current_view ); (*kc_printer)("/* free all dynamic stuff */\ \n /* done on the fly, below */\ \n/* free/reuse the buckets, and re-initialize the hashtable-entries */\ \n if (kc_reuse) { /* zero the buckets; reset nr field */\ \n fo", kc_current_view ); (*kc_printer)("r (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) {\ \n for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) {\ \n /* we only do something if nr !=0, else there is nothing to do\ \n * becaus", kc_current_view ); (*kc_printer)("e of our 'invariant'\ \n */\ \n if (kc_a_hashtable_t->hashtable[kc_i][kc_m].nr) {\ \n kc_ht_free_single_elements(kc_a_hashtable_t, kc_i, kc_m);\ \n KC_BZERO((kc_voidptr_t)kc_a_hashtable_", kc_current_view ); (*kc_printer)("t->hashtable[kc_i][kc_m].index,\ \n (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE));\ \n kc_a_hashtable_t->hashtable[kc_i][kc_m].nr = 0;\ \n } } }\ \n } else if", kc_current_view ); (*kc_printer)(" (kc_reinit) { /* zero & free the buckets; reset nr, index, ibound fields */\ \n if (kc_a_hashtable_t->free_buckets) {\ \n (*kc_a_hashtable_t->free_buckets)(kc_a_hashtable_t->bucket_alloc_private_da", kc_current_view ); (*kc_printer)("ta);\ \n KC_BZERO(kc_a_hashtable_t->hashtable, (kc_size_t)kc_a_hashtable_t->size*((int)kc_last_storage_mode)*sizeof(kc_hashtableentry_t));\ \n#if 0\ \n for (kc_i=0; kc_i < kc_a_hashtable_t->size; k", kc_current_view ); (*kc_printer)("c_i++) {\ \n for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) {\ \n /* we do something if ibound !=0, it is not suficient to\ \n * look only at the nr field, because the nr field migh", kc_current_view ); (*kc_printer)("t be\ \n * reset in a previous reuse operation.\ \n * we could as well look for an non-null index field.\ \n */\ \n if (kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound) {\ \n kc_", kc_current_view ); (*kc_printer)("ht_free_single_elements(kc_a_hashtable_t, kc_i, kc_m);\ \n kc_a_hashtable_t->hashtable[kc_i][kc_m].index = 0;\ \n kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound = 0;\ \n kc_a_hashtable_t", kc_current_view ); (*kc_printer)("->hashtable[kc_i][kc_m].nr = 0;\ \n } } }\ \n#endif\ \n } else if (kc_a_hashtable_t->free_bucket) {\ \n for (kc_i=0; kc_i < kc_a_hashtable_t->size; kc_i++) {\ \n for (kc_m=0; kc_m < (int)kc_las", kc_current_view ); (*kc_printer)("t_storage_mode; kc_m++) {\ \n /* we do something if ibound !=0, it is not suficient to\ \n * look only at the nr field, because the nr field might be\ \n * reset in a previous reuse opera", kc_current_view ); (*kc_printer)("tion.\ \n * we could as well look for an non-null index field.\ \n */\ \n if (kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound) {\ \n kc_ht_free_single_elements(kc_a_hashtable_t, kc_i,", kc_current_view ); (*kc_printer)(" kc_m);\ \n KC_BZERO((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index,\ \n (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE));\ \n (*kc_a_hashtabl", kc_current_view ); (*kc_printer)("e_t->free_bucket)((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index,\ \n (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound * sizeof(YYSTYPE),\ \n kc_a_hashtable_t-", kc_current_view ); (*kc_printer)(">bucket_alloc_private_data);\ \n kc_a_hashtable_t->hashtable[kc_i][kc_m].index = 0;\ \n kc_a_hashtable_t->hashtable[kc_i][kc_m].ibound = 0;\ \n kc_a_hashtable_t->hashtable[kc_i][kc_m].nr", kc_current_view ); (*kc_printer)(" = 0;\ \n } } }\ \n } else {\ \n /* should be a better error message */\ \n /*SUPPRESS 622*/\ \n assert(kc_zero_constant); \ \n }\ \n } else { /* zero & free the buckets */\ \n if (kc_a_hash", kc_current_view ); (*kc_printer)("table_t->free_buckets) {\ \n (*kc_a_hashtable_t->free_buckets)(kc_a_hashtable_t->bucket_alloc_private_data);\ \n } else if (kc_a_hashtable_t->free_bucket) {\ \n for (kc_i=0; kc_i < kc_a_hashtable_", kc_current_view ); (*kc_printer)("t->size; kc_i++) {\ \n for (kc_m=0; kc_m < (int)kc_last_storage_mode; kc_m++) {\ \n /* we do something if index !=0, it is not suficient to\ \n * look only at the nr field, because the nr f", kc_current_view ); (*kc_printer)("ield might be\ \n * reset in a previous reuse operation.\ \n * we could as well look for an non-null ibound field.\ \n */\ \n if (kc_a_hashtable_t->hashtable[kc_i][kc_m].index) {\ \n", kc_current_view ); (*kc_printer)(" kc_ht_free_single_elements(kc_a_hashtable_t, kc_i, kc_m);\ \n KC_BZERO((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index,\ \n (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][k", kc_current_view ); (*kc_printer)("c_m].ibound * sizeof(YYSTYPE));\ \n (*kc_a_hashtable_t->free_bucket)((kc_voidptr_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].index,\ \n (kc_size_t)kc_a_hashtable_t->hashtable[kc_i][kc_m].i", kc_current_view ); (*kc_printer)("bound * sizeof(YYSTYPE),\ \n kc_a_hashtable_t->bucket_alloc_private_data);\ \n } } }\ \n } else {\ \n /* should be a better error message */\ \n /*SUPPRESS 622*/\ \n assert(kc_zero_c", kc_current_view ); (*kc_printer)("onstant); \ \n }\ \n }\ \n}\ \n\ \nstatic void kc_ht_do_clear\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_hashtable_t kc_a_hashtable_t, boolean kc_reuse, boolean kc_reinit)\ \n#else\ \n(kc_a_hashtable_t, kc_re", kc_current_view ); (*kc_printer)("use, kc_reinit) kc_hashtable_t kc_a_hashtable_t; boolean kc_reuse; boolean kc_reinit;\ \n#endif\ \n{\ \n if (kc_a_hashtable_t->free_all_elements) {\ \n kc_ht_do_clear_all_elements(kc_a_hashtable_t, kc", kc_current_view ); (*kc_printer)("_reuse, kc_reinit);\ \n } else {\ \n kc_ht_do_clear_no_all_elements(kc_a_hashtable_t, kc_reuse, kc_reinit);\ \n }\ \n}\ \n\ \nvoid kc_ht_clear\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_hashtable_t kc_a_hasht", kc_current_view ); (*kc_printer)("able_t)\ \n#else\ \n(kc_a_hashtable_t) kc_hashtable_t kc_a_hashtable_t;\ \n#endif\ \n{\ \n kc_ht_do_clear(kc_a_hashtable_t, False, True );\ \n if (kc_a_hashtable_t->kc_to_be_freed) {\ \n kc_a_hashtabl", kc_current_view ); (*kc_printer)("e_t->static_malloc_private_data = (kc_voidptr_t)(*kc_a_hashtable_t->malloc_initialise)();\ \n } /* else: it is a statically allocated hashtable with a statically allocated\ \n * static_malloc_privat", kc_current_view ); (*kc_printer)("e_data that will not be freed either... we have to\ \n * trust that our free_all_elements routine (called via kc_ht_do_clear)\ \n * prepares the static_malloc_private_data for reuse\ \n */\ \n", kc_current_view ); (*kc_printer)(" kc_a_hashtable_t->malloc_private_data = kc_a_hashtable_t->static_malloc_private_data;\ \n kc_a_hashtable_t->dynamic_malloc_private_data = 0;\ \n kc_a_hashtable_t->dec_dynamic_malloc_private_data = 0;\ \n", kc_current_view ); (*kc_printer)(" kc_a_hashtable_t->mode = kc_ht_store_static;\ \n kc_a_hashtable_t->bucket_alloc_private_data = (kc_a_hashtable_t->bucket_alloc_initialise)\ \n ? (kc_voidptr_t)(*kc_a_hashtable_t->bucket_all", kc_current_view ); (*kc_printer)("oc_initialise)()\ \n : 0;\ \n}\ \n\ \nvoid kc_ht_reuse\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_hashtable_t kc_a_hashtable_t)\ \n#else\ \n(kc_a_hashtable_t) kc_hashtable_t kc_a_hashtable_t;\ \n#en", kc_current_view ); (*kc_printer)("dif\ \n{\ \n kc_ht_do_clear(kc_a_hashtable_t, True, True );\ \n if (kc_a_hashtable_t->kc_to_be_freed) {\ \n kc_a_hashtable_t->static_malloc_private_data = (kc_voidptr_t)(*kc_a_hashtable_t->malloc_init", kc_current_view ); (*kc_printer)("ialise)();\ \n } /* else: it is a statically allocated hashtable with a statically allocated\ \n * static_malloc_private_data that will not be freed either... we have to\ \n * trust that our free", kc_current_view ); (*kc_printer)("_all_elements routine (called via kc_ht_do_clear)\ \n * prepares the static_malloc_private_data for reuse\ \n */\ \n kc_a_hashtable_t->malloc_private_data = kc_a_hashtable_t->static_malloc_privat", kc_current_view ); (*kc_printer)("e_data;\ \n kc_a_hashtable_t->dynamic_malloc_private_data = 0;\ \n kc_a_hashtable_t->dec_dynamic_malloc_private_data = 0;\ \n kc_a_hashtable_t->mode = kc_ht_store_static;\ \n kc_a_hashtable_t->bucket_a", kc_current_view ); (*kc_printer)("lloc_private_data = (kc_a_hashtable_t->bucket_alloc_initialise)\ \n ? (kc_voidptr_t)(*kc_a_hashtable_t->bucket_alloc_initialise)()\ \n : 0;\ \n}\ \n\ \nvoid kc_ht_delete\ \n#ifdef", kc_current_view ); (*kc_printer)(" KC_USE_PROTOTYPES\ \n(kc_hashtable_t kc_a_hashtable_t)\ \n#else\ \n(kc_a_hashtable_t) kc_hashtable_t kc_a_hashtable_t;\ \n#endif\ \n{\ \n kc_ht_do_clear(kc_a_hashtable_t, False, False);\ \n if (kc_a_h", kc_current_view ); (*kc_printer)("ashtable_t->kc_to_be_freed) {\ \n kc_a_hashtable_t->next->prev = kc_a_hashtable_t->prev;\ \n kc_a_hashtable_t->prev->next = kc_a_hashtable_t->next;\ \n if (kc_all_hashtables == kc_a_hashtable_t) {\ \n", kc_current_view ); (*kc_printer)(" kc_all_hashtables = kc_a_hashtable_t->next;\ \n }\ \n KC_BZERO((kc_voidptr_t)kc_a_hashtable_t->hashtable,\ \n (kc_size_t)sizeof(struct kc_tag_kc_hashtableentry_t) * kc_a_hashtable_t->size);\ \n", kc_current_view ); (*kc_printer)(" FREE((kc_voidptr_t)kc_a_hashtable_t->hashtable);\ \n KC_BZERO((kc_voidptr_t)kc_a_hashtable_t, sizeof(struct kc_tag_kc_hashtable_struct_t));\ \n FREE((kc_voidptr_t)kc_a_hashtable_t);\ \n} }\ \n\ \n\ \n", kc_current_view ); (*kc_printer)("/* atoms creation */\ \n#ifdef KC_STDC\ \n# define kc_mylower(c) (isupper(c) ? tolower(c) : c)\ \n#else\ \n# define kc_mylower(c) ((isascii(c) && isupper(c)) ? tolower(c) : c)\ \n#endif\ \n/* should ", kc_current_view ); (*kc_printer)("be static, maybe? */\ \nint kc_ci_strcmp\ \n#ifdef KC_USE_PROTOTYPES\ \n(char *kc_s1, char *kc_s2)\ \n#else\ \n(kc_s1, kc_s2) char *kc_s1, *kc_s2;\ \n#endif\ \n{ int tmp;\ \n while ((*kc_s1 != '\\0') &", kc_current_view ); (*kc_printer)("& (*kc_s2 != '\\0')) {\ \n if ( (tmp = kc_mylower(*kc_s1) - kc_mylower(*kc_s2)) != 0 ) return tmp;\ \n kc_s1++;\ \n kc_s2++;\ \n }\ \n return( (*kc_s1 != '\\0') - (*kc_s2 != '\\0') );\ \n}\ \n\ \nst", kc_current_view ); (*kc_printer)("atic unsigned kc_casestrhash\ \n#ifdef KC_USE_PROTOTYPES\ \n(char *kc_s)\ \n#else\ \n(kc_s) char *kc_s;\ \n#endif\ \n{ register unsigned kc_i = 0;\ \n register char *kc_sp;\ \n\ \n for (kc_sp = kc_s; *", kc_current_view ); (*kc_printer)("kc_sp != '\\0'; kc_sp++)\ \n kc_i = (unsigned)((kc_i * 75) + *kc_sp);\ \n return kc_i;\ \n}\ \n\ \nstatic unsigned kc_nocasestrhash\ \n#ifdef KC_USE_PROTOTYPES\ \n(char *kc_s)\ \n#else\ \n(kc_s) char ", kc_current_view ); (*kc_printer)("*kc_s;\ \n#endif\ \n{ register unsigned kc_i = 0;\ \n register char *kc_sp;\ \n\ \n for (kc_sp = kc_s; *kc_sp != '\\0'; kc_sp++)\ \n kc_i = (unsigned)((kc_i * 75) + kc_mylower(*kc_sp));\ \n return kc_", kc_current_view ); (*kc_printer)("i;\ \n}\ \n\ \n#undef kc_mylower\ \n\ \n", kc_current_view); } unparse_phylumdeclarations(d, kc_printer, view_gen_initializephyla_c); { (*kc_printer)("casestring mkcasestring\ \n#ifdef KC_USE_PROTOTYPES\ \n(char *kc_s)\ \n#else\ \n(kc_s) char *kc_s;\ \n#endif\ \n{ register casestring kc_x;\ \n int kc_i;\ \n register kc_hashtableentry_t* kc_hte;\ \n u", kc_current_view ); (*kc_printer)("nsigned kc_hashval = (unsigned)0;\ \n YYSTYPE *kc_ptr, *kc_beyond;\ \n kc_hashtable_t kc_a_ht = kc_hashtables[(int)uniq];\ \n\ \n KC_COLLECT_STATS0(KC_CREATE_STATS(sel__Str));\ \n OPERATORHASH((unsigne", kc_current_view ); (*kc_printer)("d) sel__Str);\ \n CASESTRHASH(kc_s);\ \n kc_hashval = kc_hashval%kc_a_ht->size;\ \n for (kc_i=0; kc_i < (int)kc_last_storage_mode; kc_i++) {\ \n kc_hte = &(kc_a_ht->hashtable[kc_hashval][kc_i]);\ \n ", kc_current_view ); (*kc_printer)("if (kc_hte->nr != 0) {\ \n kc_beyond = &kc_hte->index[kc_hte->nr];\ \n for (kc_ptr = &kc_hte->index[0]; kc_ptr < kc_beyond; kc_ptr++){\ \n kc_x= kc_ptr->yt_casestring;\ \n if ((kc_x->prod_sel", kc_current_view ); (*kc_printer)(" == sel__Str) && (strcmp(kc_x->name, kc_s) == 0))\ \n return(kc_x);\ \n } } }\ \n KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel__Str));\ \n kc_hte = &(kc_a_ht->hashtable[kc_hashval][(int)kc_a_ht-", kc_current_view ); (*kc_printer)(">mode]);\ \n if (kc_hte->nr >= kc_hte->ibound) kc_growindex(kc_hte, kc_a_ht);\ \n kc_x = (casestring)(*kc_a_ht->malloc)((kc_size_t)sizeof(struct kc_tag_casestring), kc_a_ht->malloc_private_data);\ \n k", kc_current_view ); (*kc_printer)("c_x->name = (char*)(*kc_a_ht->malloc)((kc_size_t)(strlen(kc_s))+1, kc_a_ht->malloc_private_data);\ \n kc_x->prod_sel = sel__Str;\ \n (void)strcpy(kc_x->name, kc_s);\ \n kc_hte->index[kc_hte->nr++].yt_c", kc_current_view ); (*kc_printer)("asestring = kc_x;\ \n KC_COLLECT_STATS0(kc_casestring_strlen += strlen(kc_s)+1;);\ \n return kc_x;\ \n}\ \n\ \nnocasestring mknocasestring\ \n#ifdef KC_USE_PROTOTYPES\ \n(char *kc_s)\ \n#else\ \n(kc_s)", kc_current_view ); (*kc_printer)(" char *kc_s;\ \n#endif\ \n{ register nocasestring kc_x;\ \n int kc_i;\ \n register kc_hashtableentry_t* kc_hte;\ \n unsigned kc_hashval = (unsigned)0;\ \n YYSTYPE *kc_ptr, *kc_beyond;\ \n kc_hashtable_", kc_current_view ); (*kc_printer)("t kc_a_ht = kc_hashtables[(int)uniq];\ \n\ \n KC_COLLECT_STATS0(KC_CREATE_STATS(sel_NoCaseStr));\ \n OPERATORHASH((unsigned) sel_NoCaseStr);\ \n NOCASESTRHASH(kc_s);\ \n kc_hashval = kc_hashval%kc_a_ht", kc_current_view ); (*kc_printer)("->size;\ \n for (kc_i=0; kc_i < (int)kc_last_storage_mode; kc_i++) {\ \n kc_hte = &(kc_a_ht->hashtable[kc_hashval][kc_i]);\ \n if (kc_hte->nr != 0) {\ \n kc_beyond = &kc_hte->index[kc_hte->nr];\ \n", kc_current_view ); (*kc_printer)(" for (kc_ptr = &kc_hte->index[0]; kc_ptr < kc_beyond; kc_ptr++){\ \n kc_x= kc_ptr->yt_nocasestring;\ \n if ((kc_x->prod_sel == sel_NoCaseStr) && (kc_ci_strcmp(kc_x->name, kc_s) == 0))\ \n r", kc_current_view ); (*kc_printer)("eturn(kc_x);\ \n } } }\ \n KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_NoCaseStr));\ \n kc_hte = &(kc_a_ht->hashtable[kc_hashval][(int)kc_a_ht->mode]);\ \n if (kc_hte->nr >= kc_hte->ibound) kc_grow", kc_current_view ); (*kc_printer)("index(kc_hte, kc_a_ht);\ \n kc_x = (nocasestring)(*kc_a_ht->malloc)((kc_size_t)sizeof(struct kc_tag_nocasestring), kc_a_ht->malloc_private_data);\ \n kc_x->name = (char*)(*kc_a_ht->malloc)((kc_size_t)(", kc_current_view ); (*kc_printer)("strlen(kc_s))+1, kc_a_ht->malloc_private_data);\ \n kc_x->prod_sel = sel_NoCaseStr;\ \n (void)strcpy(kc_x->name, kc_s);\ \n kc_hte->index[kc_hte->nr++].yt_nocasestring = kc_x;\ \n KC_COLLECT_STATS0(kc_", kc_current_view ); (*kc_printer)("nocasestring_strlen += strlen(kc_s)+1;);\ \n return kc_x;\ \n}\ \n\ \nkc_hashnode_t kc_mksharinghashnode\ \n#ifdef KC_USE_PROTOTYPES\ \n(YYSTYPE kc_s, kc_hashtable_t kc_a_ht, kc_enum_phyla kc_phylum)\ \n", kc_current_view ); (*kc_printer)("#else\ \n(kc_s, kc_a_ht, kc_phylum) YYSTYPE kc_s; kc_hashtable_t kc_a_ht; kc_enum_phyla kc_phylum;\ \n#endif\ \n{\ \n register kc_hashnode_t kc_x;\ \n int kc_i;\ \n register kc_hashtableentry_t* kc_hte", kc_current_view ); (*kc_printer)(";\ \n unsigned kc_hashval = (unsigned)0;\ \n YYSTYPE *kc_ptr, *kc_beyond;\ \n\ \n switch(kc_phylum) {\ \n case (int)kc_phylum_int: INTHASH(kc_s.yt_int); break;\ \n case (int)kc_phylum_float: FLOATHASH(", kc_current_view ); (*kc_printer)("kc_s.yt_float); break;\ \n default: HASH(kc_s.yt_voidptr); break;\ \n }\ \n kc_hashval = kc_hashval%kc_a_ht->size;\ \n for (kc_i=0; kc_i < (int)kc_last_storage_mode; kc_i++) {\ \n kc_hte = &(kc_a_ht->", kc_current_view ); (*kc_printer)("hashtable[kc_hashval][kc_i]);\ \n if (kc_hte->nr != 0) {\ \n kc_beyond = &kc_hte->index[kc_hte->nr];\ \n for (kc_ptr = &kc_hte->index[0]; kc_ptr < kc_beyond; kc_ptr++){\ \n kc_x= kc_ptr->yt_kc_", kc_current_view ); (*kc_printer)("hashnode_t;\ \n if ((kc_x->prod_sel == (kc_enum_operators)0) &&\ \n (((kc_phylum == kc_phylum_int) &&\ \n (kc_x->ptr.yt_int == kc_s.yt_int)) ||\ \n ((kc_phylum == kc_phylum_f", kc_current_view ); (*kc_printer)("loat) &&\ \n (kc_x->ptr.yt_float == kc_s.yt_float)) ||\ \n (kc_x->ptr.yt_voidptr == kc_s.yt_voidptr)))\ \n return(kc_x);\ \n } } }\ \n kc_hte = &(kc_a_ht->hashtable[kc_hashval][(in", kc_current_view ); (*kc_printer)("t)kc_a_ht->mode]);\ \n if (kc_hte->nr >= kc_hte->ibound) kc_growindex(kc_hte, kc_a_ht);\ \n kc_x = (kc_hashnode_t)(*kc_a_ht->malloc)((kc_size_t)sizeof(struct kc_tag_kc_hashnode_t), kc_a_ht->malloc_priv", kc_current_view ); (*kc_printer)("ate_data);\ \n kc_x->ptr = kc_s;\ \n kc_x->number = -1; /* IMPORTANT: some code depends on this -1 */\ \n kc_x->created = False;\ \n kc_x->prod_sel = (kc_enum_operators)0;\ \n kc_hte->index[kc_hte->nr+", kc_current_view ); (*kc_printer)("+].yt_kc_hashnode_t = kc_x;\ \n return kc_x;\ \n}\ \n/*ARGSUSED*/\ \nkc_hashnode_t kc_mknonsharinghashnode\ \n#ifdef KC_USE_PROTOTYPES\ \n(YYSTYPE kc_s, kc_hashtable_t kc_a_ht, kc_enum_phyla kc_phylum)", kc_current_view ); (*kc_printer)("\ \n#else\ \n(kc_s, kc_a_ht, kc_phylum) YYSTYPE kc_s; kc_hashtable_t kc_a_ht; kc_enum_phyla kc_phylum;\ \n#endif\ \n{ static struct kc_tag_kc_hashnode_t kc_x_struct;\ \n kc_x_struct.number = -1; /* IMP", kc_current_view ); (*kc_printer)("ORTANT: some code depends on this -1 */\ \n kc_x_struct.created = False;\ \n return &kc_x_struct;\ \n}\ \n\ \nkc_dotedgenode_t kc_mkdotedgenode\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_hashtable_t kc_a_ht, Y", kc_current_view ); (*kc_printer)("YSTYPE kc_s_from, kc_enum_phyla kc_phy_from, YYSTYPE kc_s_to, kc_enum_phyla kc_phy_to, int kc_son_nr)\ \n#else\ \n(kc_a_ht, kc_s_from, kc_phy_from, kc_s_to, kc_phy_to, kc_son_nr) kc_hashtable_t kc_a_ht", kc_current_view ); (*kc_printer)("; YYSTYPE kc_s_from; kc_enum_phyla kc_phy_from; YYSTYPE kc_s_to; kc_enum_phyla kc_phy_to; int kc_son_nr;\ \n#endif\ \n{\ \n register kc_dotedgenode_t kc_x;\ \n int kc_i;\ \n register kc_hashtableentry_", kc_current_view ); (*kc_printer)("t* kc_hte;\ \n unsigned kc_hashval = (unsigned)0;\ \n YYSTYPE *kc_ptr, *kc_beyond;\ \n\ \n OPERATORHASH((unsigned) kc_phy_from);\ \n switch(kc_phy_from) {\ \n case (int)kc_phylum_int: INTHASH(kc_s_from", kc_current_view ); (*kc_printer)(".yt_int); break;\ \n case (int)kc_phylum_float: FLOATHASH(kc_s_from.yt_float); break;\ \n default: HASH(kc_s_from.yt_voidptr); break;\ \n }\ \n OPERATORHASH((unsigned) kc_phy_to);\ \n switch(kc_phy_to)", kc_current_view ); (*kc_printer)(" {\ \n case (int)kc_phylum_int: INTHASH(kc_s_to.yt_int); break;\ \n case (int)kc_phylum_float: FLOATHASH(kc_s_to.yt_float); break;\ \n default: HASH(kc_s_to.yt_voidptr); break;\ \n }\ \n INTHASH(kc_son", kc_current_view ); (*kc_printer)("_nr);\ \n kc_hashval = kc_hashval%kc_a_ht->size;\ \n for (kc_i=0; kc_i < (int)kc_last_storage_mode; kc_i++) {\ \n kc_hte = &(kc_a_ht->hashtable[kc_hashval][kc_i]);\ \n if (kc_hte->nr != 0) {\ \n kc", kc_current_view ); (*kc_printer)("_beyond = &kc_hte->index[kc_hte->nr];\ \n for (kc_ptr = &kc_hte->index[0]; kc_ptr < kc_beyond; kc_ptr++){\ \n kc_x= kc_ptr->yt_kc_dotedgenode_t;\ \n if ((kc_x->prod_sel == (kc_enum_operators)0)", kc_current_view ); (*kc_printer)(" &&\ \n (kc_x->phy_from == kc_phy_from) &&\ \n (kc_x->phy_to == kc_phy_to) &&\ \n (kc_x->son_nr == kc_son_nr) &&\ \n (((kc_phy_from == kc_phylum_int) &&\ \n (kc_x->", kc_current_view ); (*kc_printer)("ptr_from.yt_int == kc_s_from.yt_int)) ||\ \n ((kc_phy_from == kc_phylum_float) &&\ \n (kc_x->ptr_from.yt_float == kc_s_from.yt_float)) ||\ \n (kc_x->ptr_from.yt_voidptr == kc_s", kc_current_view ); (*kc_printer)("_from.yt_voidptr)) &&\ \n (((kc_phy_to == kc_phylum_int) &&\ \n (kc_x->ptr_to.yt_int == kc_s_to.yt_int)) ||\ \n ((kc_phy_to == kc_phylum_float) &&\ \n (kc_x->ptr_to.yt_", kc_current_view ); (*kc_printer)("float == kc_s_to.yt_float)) ||\ \n (kc_x->ptr_to.yt_voidptr == kc_s_to.yt_voidptr)) )\ \n return(kc_x);\ \n } } }\ \n kc_hte = &(kc_a_ht->hashtable[kc_hashval][(int)kc_a_ht->mode]);\ \n if ", kc_current_view ); (*kc_printer)("(kc_hte->nr >= kc_hte->ibound) kc_growindex(kc_hte, kc_a_ht);\ \n kc_x = (kc_dotedgenode_t)(*kc_a_ht->malloc)((kc_size_t)sizeof(struct kc_tag_kc_dotedgenode_t), kc_a_ht->malloc_private_data);\ \n kc_x-", kc_current_view ); (*kc_printer)(">ptr_to = kc_s_to;\ \n kc_x->ptr_from = kc_s_from;\ \n kc_x->phy_from = kc_phy_from;\ \n kc_x->phy_to = kc_phy_to;\ \n kc_x->son_nr = kc_son_nr;\ \n kc_x->label = 0;\ \n kc_x->lsize = 0;\ \n kc_x->next", kc_current_view ); (*kc_printer)(" = 0;\ \n kc_x->prod_sel = (kc_enum_operators)0;\ \n kc_hte->index[kc_hte->nr++].yt_kc_dotedgenode_t = kc_x;\ \n return kc_x;\ \n}\ \n\ \n", kc_current_view); } unparse_phylumdeclarations(d, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_operatordecls_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 1270 "../gen.k" phylumdeclarations d = kc_p->u.PhylumDeclarations.phylumdeclarations_1; { (*kc_printer)("typedef struct {\ \n int create;\ \n int existing_not_found;\ \n int free_called[2];\ \n int freed[2];\ \n} KC_OPERATOR_STATISTICS;\ \n\ \n#ifdef KC_STATISTICS\ \n# define kc_print_operator_statistics(", kc_current_view ); (*kc_printer)("kc_f) kc_do_print_operator_statistics(kc_f)\ \n void kc_do_print_operator_statistics KC__P(( FILE* ));\ \n#else /*KC_STATISTICS*/\ \n# define kc_print_operator_statistics(kc_f) \ \n#endif /*KC_STATIST", kc_current_view ); (*kc_printer)("ICS*/\ \n\ \ntypedef struct kc_tag_kc_hashtableentry_t {\ \n YYSTYPE *index; /* index[ibound] */\ \n int ibound; /* nr of slots; index of first nonexist */\ \n int nr; /* nr of occupied; index of first", kc_current_view ); (*kc_printer)(" free */\ \n} kc_hashtableentry_t;\ \n\ \ntypedef enum { kc_ht_store_static = 0, kc_ht_store_dynamic KC_IS_HT_STORE_STATIC, kc_last_storage_mode } kc_hastable_storage_mode_t;\ \n\ \ntypedef struct kc_t", kc_current_view ); (*kc_printer)("ag_kc_hashtable_struct_t *kc_hashtable_t;\ \ntypedef struct kc_tag_kc_private_malloc_t {\ \n kc_voidptr_t malloc_private_data;\ \n struct kc_tag_kc_private_malloc_t *next;\ \n struct kc_tag_kc_private_", kc_current_view ); (*kc_printer)("malloc_t *prev;\ \n} *kc_private_malloc_t;\ \n\ \ntypedef struct kc_tag_kc_hashtable_struct_t {\ \n /* general stuff */\ \n kc_hashtableentry_t (*hashtable)[kc_last_storage_mode]; /* hashtable[size][dy", kc_current_view ); (*kc_printer)("namic/static] */\ \n int size; /* nr of buckets in the hashtable; index of first nonexist */\ \n int kc_to_be_freed; /* should be True for dynamic, False for statically allocated structures */\ \n kc_h", kc_current_view ); (*kc_printer)("ashtable_t next; /* to build a linked list of all hashtables created, ever */\ \n kc_hashtable_t prev; /* to build a linked list of all hashtables created, ever */\ \n /* node allocation */\ \n kc_void", kc_current_view ); (*kc_printer)("ptr_t (*malloc_initialise) KC__P(()); /* routine to initialise a new block(list/level), returns the malloc_private_data */\ \n kc_voidptr_t (*malloc) KC__P((kc_size_t, kc_voidptr_t)); /* routine to be ", kc_current_view ); (*kc_printer)("used to create elements in the hashtable */\ \n void (*free_element) KC__P((kc_voidptr_t, kc_voidptr_t)); /* routine to be used to free one element allocated using malloc */\ \n void (*free_all_element", kc_current_view ); (*kc_printer)("s) KC__P((kc_voidptr_t)); /* routine to be used to free elements in a block(list/level) */\ \n boolean (*in_block) KC__P((kc_voidptr_t, kc_voidptr_t)); /* routine to test if an element is in a block */", kc_current_view ); (*kc_printer)("\ \n kc_voidptr_t malloc_private_data; /* private data for the malloc routine, for current block */\ \n kc_voidptr_t static_malloc_private_data; /* private data for the malloc routine */\ \n kc_private", kc_current_view ); (*kc_printer)("_malloc_t dynamic_malloc_private_data; /* private data for the malloc routine */\ \n kc_private_malloc_t dec_dynamic_malloc_private_data; /* dec-level-ed dynamic_malloc_private_data == dynamic_malloc_p", kc_current_view ); (*kc_printer)("rivate_data->prev if defined */\ \n kc_hastable_storage_mode_t mode; /* either dynamic or static */\ \n void (*malloc_info) KC__P((FILE*, kc_voidptr_t)); /* routine to print info on malloc structure */", kc_current_view ); (*kc_printer)("\ \n /* bucket allocation */\ \n kc_voidptr_t (*bucket_alloc_initialise) KC__P(()); /* routine to initialise the bucket allocation stuff, returns the malloc_private_data */\ \n kc_voidptr_t (*bucket_ca", kc_current_view ); (*kc_printer)("lloc) KC__P((kc_size_t, kc_size_t, kc_voidptr_t)); /* routine to be used to create buckets in the hashtable */\ \n kc_voidptr_t (*bucket_realloc) KC__P((kc_voidptr_t, kc_size_t, kc_size_t, kc_voidptr_t", kc_current_view ); (*kc_printer)(")); /* routine to be used to realloc buckets in the hashtable */\ \n kc_voidptr_t bucket_alloc_private_data; /* private data for the bucket alloc routines */\ \n void (*free_bucket) KC__P((kc_voidptr_t", kc_current_view ); (*kc_printer)(", kc_size_t, kc_voidptr_t)); /* routine to be used to free one bucket */\ \n void (*free_buckets) KC__P((kc_voidptr_t)); /* routine to be used to free all buckets */\ \n int bucket_alloc_inc; /* size o", kc_current_view ); (*kc_printer)("f increments in bucket alloced memory */ /* default: KC_BUCKET_INC */\ \n void (*bucket_alloc_info) KC__P((FILE*, kc_voidptr_t)); /* routine to print info on bucket alloc structure */\ \n} kc_hashtable", kc_current_view ); (*kc_printer)("_struct_t;\ \n\ \nvoid kc_print_hash_statistics KC__P((FILE*));\ \nvoid kc_print_all_hashtable_statistics KC__P((FILE*));\ \nvoid kc_print_hashtable_statistics KC__P(( FILE*, kc_hashtable_t));\ \nvoid ", kc_current_view ); (*kc_printer)("kc_ht_static KC__P((kc_storageclass_t));\ \nvoid kc_ht_dynamic KC__P((kc_storageclass_t));\ \nvoid kc_ht_inc_level KC__P((kc_storageclass_t));\ \nvoid kc_ht_dec_level KC__P((kc_storageclass_t));\ \nvoi", kc_current_view ); (*kc_printer)("d kc_ht_free_level KC__P((kc_storageclass_t));\ \nkc_hashtable_t kc_ht_create_bucketmanagement KC__P((int,\ \n kc_voidptr_t (*)(),\ \n kc_voidptr_t (*)(kc_size_t, kc_voidptr_t),\ \n void (*)(kc_voidptr", kc_current_view ); (*kc_printer)("_t, kc_voidptr_t),\ \n void (*)(kc_voidptr_t),\ \n boolean (*)(kc_voidptr_t, kc_voidptr_t),\ \n void (*)(FILE*, kc_voidptr_t),\ \n kc_voidptr_t (*)(),\ \n kc_voidptr_t (*)(kc_size_t, kc_size_t, kc_void", kc_current_view ); (*kc_printer)("ptr_t),\ \n kc_voidptr_t (*)( kc_voidptr_t, kc_size_t, kc_size_t, kc_voidptr_t),\ \n void (*)(kc_voidptr_t, kc_size_t, kc_voidptr_t),\ \n void (*)(kc_voidptr_t),\ \n int,\ \n void (*)(FILE*, kc_voidptr", kc_current_view ); (*kc_printer)("_t)));\ \nkc_hashtable_t kc_ht_create KC__P((int, kc_voidptr_t(*)(), kc_voidptr_t(*)(kc_size_t, kc_voidptr_t), void (*)(kc_voidptr_t, kc_voidptr_t), void (*)(kc_voidptr_t), boolean (*)(kc_voidptr_t, kc", kc_current_view ); (*kc_printer)("_voidptr_t)));\ \nkc_hashtable_t kc_ht_create_simple KC__P((int));\ \nkc_hashtable_t kc_ht_assign KC__P((kc_hashtable_t, kc_storageclass_t));\ \nkc_hashtable_t kc_ht_assigned KC__P((kc_storageclass_t))", kc_current_view ); (*kc_printer)(";\ \nvoid kc_ht_clear KC__P((kc_hashtable_t));\ \nvoid kc_ht_reuse KC__P((kc_hashtable_t));\ \nvoid kc_ht_delete KC__P((kc_hashtable_t));\ \nint kc_ci_strcmp KC__P(( char *, char * )); /* Maybe should ", kc_current_view ); (*kc_printer)("be static? */\ \ncasestring mkcasestring KC__P(( char * ));\ \nnocasestring mknocasestring KC__P(( char * ));\ \nkc_hashnode_t kc_mksharinghashnode KC__P(( YYSTYPE, kc_hashtable_t, kc_enum_phyla ));\ \n", kc_current_view ); (*kc_printer)("kc_hashnode_t kc_mknonsharinghashnode KC__P(( YYSTYPE, kc_hashtable_t, kc_enum_phyla ));\ \nkc_dotedgenode_t kc_mkdotedgenode KC__P(( kc_hashtable_t, YYSTYPE, kc_enum_phyla, YYSTYPE, kc_enum_phyla, int", kc_current_view ); (*kc_printer)(" ));\ \nkc_voidptr_t kc_do_copy_phylum KC__P(( kc_voidptr_t, boolean, kc_enum_phyla )); /* NOT static because we use it in csgiok.c */\ \n", kc_current_view); } unparse_phylumdeclarations(d, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_assertmacros_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 1241 "../gen.k" phylumdeclarations d = kc_p->u.PhylumDeclarations.phylumdeclarations_1; unparse_phylumdeclarations(d, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_initialization_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("#if defined(lint)\ \n int kc_zero_constant = 0;\ \n#endif\ \n\ \nvoid kc_no_default_in_with\ \n#ifdef KC_USE_PROTOTYPES\ \n( char *kc_func, int kc_line, char *kc_file )\ \n#else\ \n( kc_func, kc_line", kc_current_view ); (*kc_printer)(", kc_file ) char *kc_func; int kc_line; char *kc_file;\ \n#endif\ \n{ (void)fflush(stdout);\ \n (void)fprintf( stderr, KC_NO_DEFAULT_IN_WITH, kc_func, kc_file, kc_line );\ \n#ifndef KC_NODEFAULT_NO_ABO", kc_current_view ); (*kc_printer)("RT\ \n abort();\ \n#else\ \n exit( 1 );\ \n#endif\ \n}\ \n\ \nvoid kc_returnless_function\ \n#ifdef KC_USE_PROTOTYPES\ \n( char *kc_func, int kc_line, char *kc_file )\ \n#else\ \n( kc_func, kc_line, kc", kc_current_view ); (*kc_printer)("_file ) char *kc_func; int kc_line; char *kc_file;\ \n#endif\ \n{ (void)fflush(stdout);\ \n (void)fprintf( stderr, \"Internal Error: function %s does not return a value, at %s:%d\", kc_func, kc_file, k", kc_current_view ); (*kc_printer)("c_line );\ \n#ifndef KC_NODEFAULT_NO_ABORT\ \n abort();\ \n#else\ \n exit( 1 );\ \n#endif\ \n}\ \n\ \nvoid kc_assertionFailed\ \n#ifdef KC_USE_PROTOTYPES\ \n(char *kc_fn, int kc_l)\ \n#else\ \n(kc_fn, ", kc_current_view ); (*kc_printer)("kc_l) char *kc_fn; int kc_l;\ \n#endif\ \n{ (void)fflush(stdout);\ \n (void)fprintf( stderr, \"Internal Error: Assertion failed at %s:%d\\n\", kc_fn, kc_l );\ \n#ifndef KC_ASSERT_NO_ABORT\ \n abort();\ \n", kc_current_view ); (*kc_printer)("#else\ \n exit( 1 );\ \n#endif\ \n}\ \n\ \nvoid kc_assertionReasonFailed\ \n#ifdef KC_USE_PROTOTYPES\ \n(char *kc_fn, int kc_l, char *kc_s)\ \n#else\ \n(kc_fn, kc_l, kc_s) char *kc_fn; int kc_l; char *", kc_current_view ); (*kc_printer)("kc_s;\ \n#endif\ \n{ (void)fflush(stdout);\ \n (void)fprintf( stderr, \"Internal Error: Assertion failed at file %s:%d: %s\\n\", kc_fn, kc_l, kc_s );\ \n#ifndef KC_ASSERT_NO_ABORT\ \n abort();\ \n#else", kc_current_view ); (*kc_printer)("\ \n exit( 1 );\ \n#endif\ \n}\ \n\ \nvoid kc_assertionNonNullFailed\ \n#ifdef KC_USE_PROTOTYPES\ \n(char *kc_str, char *kc_fn, int kc_l)\ \n#else\ \n(kc_str, kc_fn, kc_l) char *kc_str; char *kc_fn; in", kc_current_view ); (*kc_printer)("t kc_l;\ \n#endif\ \n{ (void)fflush(stdout);\ \n (void)fprintf( stderr, \"Internal Error: Assertion failed at %s:%d: pointer %s is NULL\\n\", kc_fn, kc_l, kc_str );\ \n#ifndef KC_ASSERT_NO_ABORT\ \n ab", kc_current_view ); (*kc_printer)("ort();\ \n#else\ \n exit( 1 );\ \n#endif\ \n}\ \n\ \nvoid kc_assertionOperatorInPhylumFailed\ \n#ifdef KC_USE_PROTOTYPES\ \n(int kc_op, char *kc_str1, char *kc_str2, int kc_phy, char *kc_fn, int kc_l)\ \n", kc_current_view ); (*kc_printer)("#else\ \n(kc_op, kc_str1, kc_str2, kc_phy, kc_fn, kc_l) int kc_op; char *kc_str1; char *kc_str2; int kc_phy; char *kc_fn; int kc_l;\ \n#endif\ \n{ (void)fflush(stdout);\ \n if ((kc_op <= (int)kc_one_be", kc_current_view ); (*kc_printer)("fore_first_operator) || (kc_op >= (int)kc_last_operator)) {\ \n (void)fprintf( stderr, \"Internal Error: Assertion failed at %s:%d: illegal value for (%s) %s%s: %d not a valid operator\\n\", kc_fn, kc", kc_current_view ); (*kc_printer)("_l, kc_PhylumInfo[(int)kc_phy].name, kc_str1, kc_str2, kc_op );\ \n } else {\ \n (void)fprintf( stderr, \"Internal Error: Assertion failed at %s:%d: illegal value for (%s) %s%s: %s (%d) is a value of ", kc_current_view ); (*kc_printer)("%s\\n\", kc_fn, kc_l, kc_PhylumInfo[(int)kc_phy].name, kc_str1, kc_str2, kc_OperatorInfo[kc_op].name, kc_op, kc_PhylumInfo[(int)kc_OperatorInfo[kc_op].phylum].name );\ \n }\ \n#ifndef KC_ASSERT_NO_ABOR", kc_current_view ); (*kc_printer)("T\ \n abort();\ \n#else\ \n exit( 1 );\ \n#endif\ \n}\ \n\ \nstatic void kc_invalid_operator\ \n#ifdef KC_USE_PROTOTYPES\ \n( char *kc_func_prefix, kc_enum_phyla kc_phy, int kc_line, char *kc_file, int", kc_current_view ); (*kc_printer)(" kc_oper )\ \n#else\ \n( kc_func_prefix, kc_phy, kc_line, kc_file, kc_oper ) char *kc_func_prefix; kc_enum_phyla kc_phy; int kc_line; char *kc_file; int kc_oper;\ \n#endif\ \n{ (void)fflush(stdout);\ \n", kc_current_view ); (*kc_printer)(" (void)fprintf( stderr, \"Internal Error: invalid operator code in %s%s at %s:%d: %s\\n\", kc_func_prefix, kc_phylumname_or_error( (int)kc_phy ), kc_file, kc_line, kc_operatorname_or_error( kc_oper ));", kc_current_view ); (*kc_printer)("\ \n#ifndef KC_INVALID_OPERATOR_NO_ABORT\ \n abort();\ \n#else\ \n exit( 1 );\ \n#endif\ \n}\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_initialization_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("#ifndef KC_NO_DEFAULT_IN_WITH\ \n# define KC_NO_DEFAULT_IN_WITH \"Internal Error: no default action defined in function %s at %s:%d\\n\"\ \n#endif\ \nvoid kc_no_default_in_with KC__P((char*, int, char*", kc_current_view ); (*kc_printer)("));\ \nvoid kc_returnless_function KC__P((char *, int, char*));\ \n\ \n#ifndef KC_SEPARATE_HASH_LEVELS\ \n# define KC_IS_HT_STORE_STATIC =kc_ht_store_static\ \n#else\ \n# define KC_IS_HT_STORE_STATIC", kc_current_view ); (*kc_printer)("\ \n#endif\ \n\ \n/*\ \n * small tricks to shut up lint\ \n */\ \n#if (defined(lint) || defined(SABER) || defined(CODECENTER))\ \n# define KC_LINTUSE(x) if(x)x=x\ \n#else\ \n# define KC_LINTUSE(x) \ \n", kc_current_view ); (*kc_printer)("#endif\ \n\ \n/*\ \n * the following trick is because for Saber (CenterLine) we have\ \n * the possibillity to load a file either as .c or as .o,\ \n * so we can not have a maybe nonexisting variable a", kc_current_view ); (*kc_printer)("s in the\ \n * lint variant.\ \n * we may want to SUPPRESS a Saber warning about unused variable.\ \n */\ \n#if defined(lint)\ \n extern int kc_zero_constant;\ \n#else\ \n# if (defined(SABER) || defi", kc_current_view ); (*kc_printer)("ned(CODECENTER))\ \n static int kc_zero_constant = 0;\ \n# else\ \n# define kc_zero_constant 0\ \n# endif\ \n#endif\ \n\ \n#ifndef NDEBUG\ \n# define assert(t) do {if (!(t)) kc_assertionFailed(__FIL", kc_current_view ); (*kc_printer)("E__,__LINE__);}while(kc_zero_constant)\ \n# define _assert(t) do {if (!(t)) kc_assertionFailed(__FILE__,__LINE__);}while(kc_zero_constant)\ \n# define assertReason(t,s) do {if (!(t)) kc_assertionReason", kc_current_view ); (*kc_printer)("Failed(__FILE__,__LINE__,s);}while(kc_zero_constant)\ \n# define assertNonNull(ptr,str) do {if (ptr == NULL) kc_assertionNonNullFailed(str,__FILE__,__LINE__);}while(kc_zero_constant)\ \n# define assert", kc_current_view ); (*kc_printer)("OperatorInPhylumFn(op,str1,str2,phy,fn) do {if ((op<(int)kc_PhylumInfo[(int)phy].first_operator)||(op>(int)kc_PhylumInfo[(int)phy].last_operator)) fn(op,str1,str2,(int)phy,__FILE__,__LINE__);}while(kc_", kc_current_view ); (*kc_printer)("zero_constant)\ \n# define assertOperatorInPhylum(op,str1,str2,phy) assertOperatorInPhylumFn(op,str1,str2,phy,kc_assertionOperatorInPhylumFailed)\ \n# define assertPhylum(ptr,ptrstr,phy) do{if((phy!=kc", kc_current_view ); (*kc_printer)("_phylum_int)&&(phy!=kc_phylum_float)&&(phy!=kc_phylum_voidptr)){assertNonNull(ptr,ptrstr);assertOperatorInPhylum((int)(ptr->prod_sel),ptrstr,\"->prod_sel\",phy);}}while(kc_zero_constant)\ \n# define as", kc_current_view ); (*kc_printer)("sertNonIntPhylum(ptr,ptrstr,phy) do{assertNonNull(ptr,ptrstr);assertOperatorInPhylum((int)(ptr->prod_sel),ptrstr,\"->prod_sel\",phy);}while(kc_zero_constant)\ \n#else\ \n# define assert(t)\ \n# define ", kc_current_view ); (*kc_printer)("_assert(t)\ \n# define assertReason(t,s)\ \n# define assertNonNull(ptr,str)\ \n# define assertOperatorInPhylumFn(op,str1,str2,phy,fn)\ \n# define assertOperatorInPhylum(op,str1,str2,phy)\ \n# define as", kc_current_view ); (*kc_printer)("sertPhylum(ptr,ptrstr,phy)\ \n# define assertNonIntPhylum(ptr,ptrstr,phy)\ \n#endif\ \nvoid kc_assertionFailed KC__P((char*, int));\ \nvoid kc_assertionReasonFailed KC__P((char*, int, char*));\ \nvoid ", kc_current_view ); (*kc_printer)("kc_assertionNonNullFailed KC__P((char*, char*, int));\ \nvoid kc_assertionOperatorInPhylumFailed KC__P((int, char*, char*, int, char*, int));\ \n/* void kc_invalid_operator KC__P((char*, kc_enum_phyla,", kc_current_view ); (*kc_printer)(" int, char*, int)); */\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_booleans_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("typedef enum { KC_False=0, KC_True=1 } kc_tp_boolean;\ \n#if ! (defined(True) || defined(False))\ \n# define True KC_True\ \n# define False KC_False\ \n# define boolean kc_tp_boolean\ \n#else\ \n# if !", kc_current_view ); (*kc_printer)(" defined(boolean)\ \n# define boolean int\ \n# endif\ \n#endif\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_noofoperators_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("#define KC_NO_OF_OPERATORS ", kc_current_view); } unparse_int(g_no_of_operators, kc_printer, kc_current_view); { (*kc_printer)("\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_yaccstacktype_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 1008 "../gen.k" phylumdeclarations d = kc_p->u.PhylumDeclarations.phylumdeclarations_1; { (*kc_printer)("union kc_tag_YYSTYPE {\ \n kc_hashnode_t yt_kc_hashnode_t;\ \n kc_dotedgenode_t yt_kc_dotedgenode_t;\ \n", kc_current_view); } unparse_phylumdeclarations(d, kc_printer, kc_current_view); { (*kc_printer)("};\ \nextern YYSTYPE yylval;\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_nodetypes_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 916 "../gen.k" phylumdeclarations d = kc_p->u.PhylumDeclarations.phylumdeclarations_1; { (*kc_printer)("struct kc_tag_kc_hashnode_t {\ \n kc_enum_operators prod_sel;\ \n YYSTYPE ptr;\ \n int number;\ \n boolean created;\ \n};\ \n\ \nstruct kc_tag_kc_dotedgenode_t {\ \n kc_enum_operators prod_sel;\ \n kc_", kc_current_view ); (*kc_printer)("enum_phyla phy_from;\ \n YYSTYPE ptr_from;\ \n kc_enum_phyla phy_to;\ \n YYSTYPE ptr_to;\ \n int son_nr;\ \n char *label;\ \n int lsize;\ \n kc_dotedgenode_t next;\ \n};\ \n\ \n", kc_current_view); } unparse_phylumdeclarations(d, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_nodetypedefs_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 880 "../gen.k" phylumdeclarations d = kc_p->u.PhylumDeclarations.phylumdeclarations_1; { (*kc_printer)("typedef union kc_tag_YYSTYPE YYSTYPE;\ \ntypedef struct kc_tag_kc_hashnode_t *kc_hashnode_t;\ \ntypedef struct kc_tag_kc_dotedgenode_t *kc_dotedgenode_t;\ \n\ \n", kc_current_view); } unparse_phylumdeclarations(d, kc_printer, kc_current_view); { (*kc_printer)("\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_operatormap_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 638 "../gen.k" phylumdeclarations d = kc_p->u.PhylumDeclarations.phylumdeclarations_1; unparse_phylumdeclarations(d, kc_printer, view_gen_operatormap_operator_fn); { (*kc_printer)("\ \n", kc_current_view); } unparse_phylumdeclarations(d, kc_printer, view_gen_operatormap_subphyla); { (*kc_printer)("\ \n\ \n#ifndef KC_OFFSETOF\ \n# define KC_OFFSETOF(kc_record, kc_operator, kc_subphylum) ((kc_size_t) \\\ \n ((char*)(&((kc_record *)0)->u.kc_operator.kc_subphylum) - (char*)((kc_record *)0)))\ \n#", kc_current_view ); (*kc_printer)("endif\ \n", kc_current_view); } unparse_phylumdeclarations(d, kc_printer, view_gen_operatormap_suboffsets); { (*kc_printer)("\ \n\ \nKC_OPERATOR_INFO kc_OperatorInfo[] = {\ \n", kc_current_view); } { #line 655 "../gen.k" int i = OPERATORNUMBEROFFSET; do #line 5875 "unpk.c" { #line 655 "../gen.k" #line 5879 "unpk.c" { (*kc_printer)(" { \"\", 0, 0, kc_one_before_first_phylum, (kc_enum_phyla_list)0, (kc_size_t_list)0, (kc_storageclass_t)0, 0 }, /* dummy element */\ \n", kc_current_view); } #line 658 "../gen.k" i--; #line 5884 "unpk.c" } #line 658 "../gen.k" while (i >= 0); #line 5888 "unpk.c" } unparse_phylumdeclarations(d, kc_printer, kc_current_view); { (*kc_printer)(" { (char*)0, 0, 0, kc_one_before_first_phylum, (kc_enum_phyla_list)0, (kc_size_t_list)0, (kc_storageclass_t)0, 0 } /* last element */\ \n};\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_phylummap_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 569 "../gen.k" phylumdeclarations d = kc_p->u.PhylumDeclarations.phylumdeclarations_1; { (*kc_printer)("KC_PHYLUM_INFO kc_PhylumInfo[] = {\ \n", kc_current_view); } { #line 572 "../gen.k" int i = PHYLUMNUMBEROFFSET; do #line 5908 "unpk.c" { #line 572 "../gen.k" #line 5912 "unpk.c" { (*kc_printer)(" { \"\", 0, kc_one_before_first_operator, kc_one_before_first_operator, (kc_storageclass_t)0, 0 }, /* dummy element */\ \n", kc_current_view); } #line 575 "../gen.k" i--; #line 5917 "unpk.c" } #line 575 "../gen.k" while (i >= 0); #line 5921 "unpk.c" } unparse_phylumdeclarations(d, kc_printer, kc_current_view); { (*kc_printer)(" { \"\", 0, kc_one_before_first_operator, kc_one_before_first_operator, (kc_storageclass_t)0, 0 } /* last element */\ \n};\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_operatormap_type_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("typedef kc_enum_phyla *kc_enum_phyla_list;\ \ntypedef kc_size_t *kc_size_t_list; /* size_t is defined in ANSI C */\ \n\ \n/*\ \n * make sure that the first `real' storage class _always_ gets", kc_current_view ); (*kc_printer)(" a value > 0\ \n * and kc_not_uniq gets a value == 0\ \n * (because then we can use it as a C boolean)\ \n */\ \ntypedef enum { /*kc_not_uniq = 0, kc_uniq_nullary_operator,*/ ", kc_current_view); } unparse_storageclasses(Thestorageclasses, kc_printer, kc_current_view); { (*kc_printer)(", kc_last_storageclass } kc_storageclass_t;\ \n\ \n\ \n\ \ntypedef struct {\ \n char *name; /* name of the phylum */\ \n kc_size_t size; /* size of the struct phylum record */\ \n kc_enum_operators", kc_current_view ); (*kc_printer)(" first_operator; /* index in kc_OperatorInfo[] */\ \n kc_enum_operators last_operator; /* index in kc_OperatorInfo[] */\ \n kc_storageclass_t uniq_stored; /* storage class */\ \n void (*copy_attributes", kc_current_view ); (*kc_printer)(") KC__P((kc_voidptr_t, kc_voidptr_t)); /* routine that copies attributes */\ \n} KC_PHYLUM_INFO;\ \n\ \ntypedef struct {\ \n char *name; /* name of the operator */\ \n int no_sons; /* number of son", kc_current_view ); (*kc_printer)("s */\ \n int atomicity; /* atomic type or not (used as a boolean) */\ \n kc_enum_phyla phylum; /* index in kc_PhylumInfo[] */\ \n kc_enum_phyla_list subphylum; /* indexes in kc_PhylumInfo[] */\ \n k", kc_current_view ); (*kc_printer)("c_size_t_list suboffset; /* offsets of sub-phyla (pointers) in the phylum record */\ \n kc_storageclass_t uniq_stored; /* storage class */\ \n kc_voidptr_t (*create_routine) KC__P((KC_DOTDOTDOT)); /* c", kc_current_view ); (*kc_printer)("reate routine */\ \n} KC_OPERATOR_INFO;\ \n\ \ntypedef kc_enum_phyla_list KC_UNIQ_INFO;\ \n\ \nextern KC_OPERATOR_INFO kc_OperatorInfo[];\ \nextern KC_PHYLUM_INFO kc_PhylumInfo[];\ \nextern KC_UNIQ_INF", kc_current_view ); (*kc_printer)("O kc_UniqInfo[];\ \n\ \n#ifndef KC_SUBPHYLUM\ \n# ifdef lint\ \n# define KC_SUBPHYLUM(kc_phylum, kc_offset) (kc_phylum,kc_offset,0)\ \n# else\ \n# define KC_SUBPHYLUM(kc_phylum, kc_offset) (*((char**", kc_current_view ); (*kc_printer)(")(((char*)kc_phylum)+(kc_offset))))\ \n# endif\ \n#endif\ \n\ \n\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_enumoperators_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 478 "../gen.k" phylumdeclarations pds = kc_p->u.PhylumDeclarations.phylumdeclarations_1; #line 479 "../gen.k" g_no_of_operators = OPERATORNUMBEROFFSET; #line 6003 "unpk.c" { (*kc_printer)("typedef enum { kc_one_before_first_operator = ", kc_current_view); } unparse_int(g_no_of_operators, kc_printer, kc_current_view); { (*kc_printer)(" , \ \n", kc_current_view); } #line 482 "../gen.k" g_no_of_operators++; #line 6010 "unpk.c" unparse_phylumdeclarations(pds, kc_printer, kc_current_view); { (*kc_printer)(" kc_last_operator = ", kc_current_view); } unparse_int(g_no_of_operators, kc_printer, kc_current_view); { (*kc_printer)("\ \n} kc_enum_operators;\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_enumphyla_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 457 "../gen.k" phylumdeclarations pds = kc_p->u.PhylumDeclarations.phylumdeclarations_1; #line 458 "../gen.k" g_no_of_phyla = PHYLUMNUMBEROFFSET; #line 6028 "unpk.c" { (*kc_printer)("typedef enum { kc_one_before_first_phylum = ", kc_current_view); } unparse_int(g_no_of_phyla, kc_printer, kc_current_view); { (*kc_printer)(" , \ \n", kc_current_view); } #line 461 "../gen.k" g_no_of_phyla++; #line 6035 "unpk.c" unparse_phylumdeclarations(pds, kc_printer, kc_current_view); { (*kc_printer)(" kc_last_phylum = ", kc_current_view); } unparse_int(g_no_of_phyla, kc_printer, kc_current_view); { (*kc_printer)("\ \n} kc_enum_phyla;\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_alloc_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("static kc_voidfnptr_t kc_out_of_storage_handler = 0;\ \nkc_voidfnptr_t kc_set_out_of_storage_handler\ \n#ifdef KC_USE_PROTOTYPES\ \n( kc_voidfnptr_t kc_handler )\ \n#else\ \n(kc_handler) kc_voidfnptr_t", kc_current_view ); (*kc_printer)(" kc_handler;\ \n#endif\ \n{ kc_voidfnptr_t kc_tmp_handler = kc_out_of_storage_handler;\ \n kc_out_of_storage_handler = kc_handler;\ \n return kc_tmp_handler;\ \n}\ \n\ \nkc_voidptr_t emalloc /* check r", kc_current_view ); (*kc_printer)("eturn from malloc */\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_size_t kc_n)\ \n#else\ \n(kc_n) kc_size_t kc_n;\ \n#endif\ \n{ kc_voidptr_t kc_p;\ \n while ((kc_p = (kc_voidptr_t)malloc((kc_size_t)kc_n)) == 0)", kc_current_view ); (*kc_printer)(" {\ \n if (kc_out_of_storage_handler) {\ \n (*kc_out_of_storage_handler)();\ \n } else {\ \n (void)fflush(stdout);\ \n (void)fprintf(stderr,\"out of memory in emalloc\\n\");\ \n exit( 1 ); /*", kc_current_view ); (*kc_printer)("NOTREACHED*/\ \n } }\ \n return kc_p;\ \n}\ \n\ \nkc_voidptr_t ecalloc /* check return from calloc */\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_size_t kc_n, kc_size_t kc_s)\ \n#else\ \n(kc_n,kc_s) kc_size_t k", kc_current_view ); (*kc_printer)("c_n, kc_s;\ \n#endif\ \n{ kc_voidptr_t kc_p;\ \n while ((kc_p = (kc_voidptr_t)calloc((kc_size_t)kc_n,(kc_size_t)kc_s)) == 0) {\ \n if (kc_out_of_storage_handler) {\ \n (*kc_out_of_storage_handler)()", kc_current_view ); (*kc_printer)(";\ \n } else {\ \n (void)fflush(stdout);\ \n (void)fprintf(stderr,\"out of memory in ecalloc\\n\");\ \n exit( 1 ); /*NOTREACHED*/\ \n } }\ \n return kc_p;\ \n}\ \n\ \nkc_voidptr_t erealloc /* ch", kc_current_view ); (*kc_printer)("eck return from realloc */\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_voidptr_t kc_r, kc_size_t kc_s)\ \n#else\ \n(kc_r,kc_s) kc_voidptr_t kc_r; kc_size_t kc_s;\ \n#endif\ \n{ kc_voidptr_t kc_p;\ \n while ((kc", kc_current_view ); (*kc_printer)("_p = (kc_voidptr_t)realloc((kc_realloc_arg_t)kc_r,(kc_size_t)kc_s)) == 0) {\ \n if (kc_out_of_storage_handler) {\ \n (*kc_out_of_storage_handler)();\ \n } else {\ \n (void)fflush(stdout);\ \n (", kc_current_view ); (*kc_printer)("void)fprintf(stderr,\"out of memory in erealloc\\n\");\ \n exit( 1 ); /*NOTREACHED*/\ \n } }\ \n return kc_p;\ \n}\ \n\ \nvoid kc_bzero\ \n#ifdef KC_USE_PROTOTYPES\ \n(register char *kc_p, register i", kc_current_view ); (*kc_printer)("nt kc_s)\ \n#else\ \n(kc_p,kc_s) register char *kc_p; register int kc_s;\ \n#endif\ \n{ while (kc_s--) {\ \n *kc_p++ = '\\0';\ \n }\ \n}\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_alloc_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("kc_voidfnptr_t kc_set_out_of_storage_handler KC__P(( kc_voidfnptr_t ));\ \nkc_voidptr_t emalloc KC__P(( kc_size_t )), ecalloc KC__P(( kc_size_t, kc_size_t )), erealloc KC__P(( kc_voidptr_t, kc_size_t )", kc_current_view ); (*kc_printer)(");\ \nkc_voidptr_t uniqmalloc KC__P(( kc_size_t, kc_voidptr_t ));\ \nvoid uniqfreeelement KC__P(( kc_voidptr_t, kc_voidptr_t ));\ \nvoid uniqfreeall KC__P(( kc_voidptr_t ));\ \nvoid kc_print_memory_inf", kc_current_view ); (*kc_printer)("o_statistics KC__P(( FILE*, kc_voidptr_t ));\ \n#ifndef KC_STDC\ \n kc_malloc_t malloc KC__P(( kc_size_t )), calloc KC__P(( kc_size_t, kc_size_t )), realloc KC__P(( kc_realloc_arg_t, kc_size_t ));\ \n", kc_current_view ); (*kc_printer)("#endif\ \nvoid kc_bzero KC__P(( char*, int ));\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_k_c: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("/*LINTLIBRARY*/\ \n/* translation of file(s)\ \n", kc_current_view); } unparse_fnfiles(Thefnfiles, kc_printer, kc_current_view); { (*kc_printer)(" */\ \n/* generated by:\ \n * ", kc_current_view); } unparse_charptr(kimwitu_copyright, kc_printer, kc_current_view); { (*kc_printer)("\ \n */\ \n#define KC_TYPES\ \n#define KIMW_TYPES /* for backwards compatibility */\ \n/* define our own macro if we have a 'standard' (ansi) C(++) compiler */\ \n#ifndef KC_NO_STDC\ \n# if defined(__S", kc_current_view ); (*kc_printer)("TDC__) || defined(__cplusplus) || defined(_WIN32)\ \n# define KC_STDC\ \n# endif\ \n#endif\ \n#include \ \n#include \ \n#include \ \n#if ((! defined(KC_STDC) ) && defined(s", kc_current_view ); (*kc_printer)("un))\ \n extern char *sprintf();\ \n#endif\ \n#include \ \n#ifdef KC_STDC\ \n# include \ \n#else\ \n# include /*for memset*/\ \n#endif\ \ntypedef size_t kc_memset_s", kc_current_view ); (*kc_printer)("ize_t; /* needed for sun */\ \n\ \n#include \"k.h\"\ \n#ifndef KC_STDC\ \n extern void exit KC__P((int));\ \n#endif\ \n\ \n#if ((! defined(KC_STDC) ) && defined(sun))\ \n /* kc_memset_firstarg_t shou", kc_current_view ); (*kc_printer)("ld be void* kc_voidptr_t, but sun's include files are dumb */\ \n# ifndef KC_MEMSET_FIRSTARG_T\ \n typedef char *kc_memset_firstarg_t;\ \n# else\ \n typedef KC_MEMSET_FIRSTARG_T kc_memset_firstarg_t;", kc_current_view ); (*kc_printer)("\ \n# endif\ \n#else\ \n typedef kc_voidptr_t kc_memset_firstarg_t;\ \n#endif\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_end_k_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("\ \n#endif /* KC_TYPES_HEADER */\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_k_h: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { { (*kc_printer)("/* translation of file(s)\ \n", kc_current_view); } unparse_fnfiles(Thefnfiles, kc_printer, kc_current_view); { (*kc_printer)(" */\ \n/* generated by:\ \n * ", kc_current_view); } unparse_charptr(kimwitu_copyright, kc_printer, kc_current_view); { (*kc_printer)("\ \n */\ \n#ifndef KC_TYPES_HEADER\ \n#define KC_TYPES_HEADER\ \n#define KIMW_TYPES_HEADER /* backwards compatibility */\ \n/* define our own macro if we have a 'standard' (ansi) C(++) compiler */\ \n#", kc_current_view ); (*kc_printer)("ifndef KC_NO_STDC\ \n# if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32)\ \n# define KC_STDC\ \n# endif\ \n#endif\ \n#include /* eg. for FILE* */\ \n#include /* e", kc_current_view ); (*kc_printer)("g. for size_t */\ \ntypedef void *kc_voidptr_t;\ \ntypedef void (*kc_voidfnptr_t)();\ \n#ifdef KC_STDC\ \n typedef const void* kc_constvoidptr_t;\ \n#else\ \n typedef kc_voidptr_t kc_constvoidptr_t;\ \n", kc_current_view ); (*kc_printer)("#endif\ \n#ifndef KC_MALLOC_T\ \n# if defined(KC_STDC) && (!defined(sun) || defined(lint))\ \n typedef kc_voidptr_t kc_malloc_t;\ \n# else\ \n typedef char *kc_malloc_t;\ \n# endif\ \n#else\ \n t", kc_current_view ); (*kc_printer)("ypedef KC_MALLOC_T kc_malloc_t;\ \n#endif\ \n#ifndef KC_REALLOC_ARG_T\ \n# if defined(sun) && defined(KC_STDC)\ \n typedef kc_voidptr_t kc_realloc_arg_t;\ \n# else\ \n typedef kc_malloc_t kc_reallo", kc_current_view ); (*kc_printer)("c_arg_t;\ \n# endif\ \n#else\ \n typedef KC_REALLOC_ARG_T kc_realloc_arg_t;\ \n#endif\ \n#ifndef KC_SIZE_T\ \n# ifdef KC_STDC\ \n typedef size_t kc_size_t;\ \n# else\ \n typedef unsigned kc_size_t", kc_current_view ); (*kc_printer)(";\ \n# endif\ \n#else\ \n typedef KC_SIZE_T kc_size_t;\ \n#endif\ \n#ifndef KC__P\ \n# ifdef KC_STDC\ \n# define KC__P(kc_p) kc_p\ \n# ifndef KC__C\ \n# define KC__C(kc_c) kc_c\ \n# endif\ \n# el", kc_current_view ); (*kc_printer)("se\ \n# define KC__P(kc_p) ()\ \n# endif\ \n#endif\ \n#ifndef KC__C\ \n# define KC__C(kc_c)\ \n#endif\ \n#ifdef KC_STDC\ \n# ifndef KC_USE_PROTOTYPES\ \n# define KC_USE_PROTOTYPES\ \n# endif\ \n#else", kc_current_view ); (*kc_printer)("\ \n# undef KC_USE_PROTOTYPES\ \n# ifndef KC_KEEP_TYPE_QUALIFIERS\ \n# define const\ \n# define volatile\ \n# endif\ \n#endif\ \n#ifndef KC_DOTDOTDOT\ \n# ifdef KC_OLD_DOTDOTDOT\ \n# define KC_DOTDO", kc_current_view ); (*kc_printer)("TDOT ...\ \n# else\ \n# define KC_DOTDOTDOT kc_enum_operators,...\ \n# endif\ \n#endif\ \n#ifndef KC_PRINTDOT_LABELSIZE\ \n# define KC_PRINTDOT_LABELSIZE 1023\ \n#endif\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_no_of_printed_string_chars_reset: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 197 "../gen.k" /*EMPTY*/ #line 6339 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_printer_reset: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 196 "../gen.k" /*EMPTY*/ #line 6348 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_printer_outputfileline: { if (( kc_p->prod_sel == sel_PhylumDeclarations)) { #line 195 "../gen.k" /*EMPTY*/ #line 6357 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_PhylumDeclarations: unparse_phylumdeclarations( kc_p->u.PhylumDeclarations.phylumdeclarations_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_phylumdeclarations #ifdef KC_USE_PROTOTYPES (phylumdeclarations kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) phylumdeclarations kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_phylumdeclarations(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_unparsedefs_c: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 7905 "../gen.k" /*EMPTY*/ #line 6389 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 7901 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 7901 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_unparsedecls_h: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 7772 "../gen.k" /*EMPTY*/ #line 6406 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 7771 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 7771 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_rewritedefs_c: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 6900 "../gen.k" /*EMPTY*/ #line 6423 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 6896 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 6896 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_rewritedecls_h: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 6883 "../gen.k" /*EMPTY*/ #line 6440 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 6882 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 6882 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_copydefs_c: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 6682 "../gen.k" /*EMPTY*/ #line 6457 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 6681 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 6681 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_copydecls_h: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 6595 "../gen.k" /*EMPTY*/ #line 6474 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 6594 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 6594 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_copy_attributes_c: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 6554 "../gen.k" /*EMPTY*/ #line 6491 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 6553 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 6553 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_c_write: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 6282 "../gen.k" /*EMPTY*/ #line 6508 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 6278 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 6278 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_c_read: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 6282 "../gen.k" /*EMPTY*/ #line 6525 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 6278 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 6278 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_h: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 5240 "../gen.k" /*EMPTY*/ #line 6542 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 5236 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 5236 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_listdefs_c: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 5011 "../gen.k" /*EMPTY*/ #line 6559 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 5007 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 5007 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_listdecls_h: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 4806 "../gen.k" /*EMPTY*/ #line 6576 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 4805 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 4805 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_printdotdecls_c: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 4575 "../gen.k" /*EMPTY*/ #line 6593 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 4571 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 4571 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_printdotdefs_c: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 4575 "../gen.k" /*EMPTY*/ #line 6610 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 4571 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 4571 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_printdotdecls_h: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 4298 "../gen.k" /*EMPTY*/ #line 6627 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 4297 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 4297 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_printdefs_c: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 4182 "../gen.k" /*EMPTY*/ #line 6644 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 4178 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 4178 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_printdecls_h: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 4114 "../gen.k" /*EMPTY*/ #line 6661 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 4113 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 4113 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_eqdefs_c: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 4039 "../gen.k" /*EMPTY*/ #line 6678 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 4035 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 4035 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_eqdecls_h: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 3974 "../gen.k" /*EMPTY*/ #line 6695 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 3973 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 3973 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_freedefs_c: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 3941 "../gen.k" /*EMPTY*/ #line 6712 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 3937 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 3937 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_freedecls_h: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 3897 "../gen.k" /*EMPTY*/ #line 6729 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 3896 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 3896 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_operatordefs_c: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 3644 "../gen.k" /*EMPTY*/ #line 6746 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 3643 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 3643 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_operatordecls_h: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 1371 "../gen.k" /*EMPTY*/ #line 6763 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 1370 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 1370 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_assertmacros_h: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 1245 "../gen.k" /*EMPTY*/ #line 6780 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 1244 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 1244 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_yaccstacktype_h: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 1020 "../gen.k" /*EMPTY*/ #line 6797 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 1019 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 1019 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_nodetypes_h: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 940 "../gen.k" /*EMPTY*/ #line 6814 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 939 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 939 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_nodetypedefs_h: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 891 "../gen.k" /*EMPTY*/ #line 6831 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 890 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 890 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_operatormap_suboffsets: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 797 "../gen.k" /*EMPTY*/ #line 6848 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 796 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 796 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_operatormap_subphyla: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 766 "../gen.k" /*EMPTY*/ #line 6865 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 765 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 765 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_operatormap_operator_fn: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 717 "../gen.k" /*EMPTY*/ #line 6882 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 716 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 716 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_operatormap_c: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 666 "../gen.k" /*EMPTY*/ #line 6899 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 665 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 665 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_phylummap_c: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 583 "../gen.k" /*EMPTY*/ #line 6916 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 582 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 582 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_enumoperators_h: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 490 "../gen.k" /*EMPTY*/ #line 6933 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 489 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 489 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_enumphyla_h: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 469 "../gen.k" /*EMPTY*/ #line 6950 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 468 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 468 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check_uniq: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 1707 "../util.k" /*EMPTY*/ #line 6967 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 1705 "../util.k" phylumdeclaration d = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 1705 "../util.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(d, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_init_stacks: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 1033 "../util.k" if (!cl_operatorsstack) cl_operatorsstack = Niloperatorsstack(); if (!cl_dollarvarsallowedstack) cl_dollarvarsallowedstack = Nildollarvarsallowedstack(); if (!cl_inforeachcontextstack) cl_inforeachcontextstack = Nilintstack(); if (!cl_argumentsstack) cl_argumentsstack = Nilargumentsstack(); if (!cl_phylumstack) cl_phylumstack = Nilphylumstack(); if (!cl_phylumnamesstack) cl_phylumnamesstack = Nilphylumnamesstack(); if (!cl_withexpressionsstack) cl_withexpressionsstack = Nilwithexpressionsstack(); if (!cl_operatorstack) cl_operatorstack = Niloperatorstack(); if (!cl_variablesstack) cl_variablesstack = Nilvariablesstack(); if (!cl_selvarstack) cl_selvarstack = Nilselvarstack(); if (!cl_dollarvarstack) cl_dollarvarstack = Nilselvarstack(); if (!cl_dollarvarextstack) cl_dollarvarextstack = Nilselvarstack(); #line 7009 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 1033 "../util.k" if (!cl_operatorsstack) cl_operatorsstack = Niloperatorsstack(); if (!cl_dollarvarsallowedstack) cl_dollarvarsallowedstack = Nildollarvarsallowedstack(); if (!cl_inforeachcontextstack) cl_inforeachcontextstack = Nilintstack(); if (!cl_argumentsstack) cl_argumentsstack = Nilargumentsstack(); if (!cl_phylumstack) cl_phylumstack = Nilphylumstack(); if (!cl_phylumnamesstack) cl_phylumnamesstack = Nilphylumnamesstack(); if (!cl_withexpressionsstack) cl_withexpressionsstack = Nilwithexpressionsstack(); if (!cl_operatorstack) cl_operatorstack = Niloperatorstack(); if (!cl_variablesstack) cl_variablesstack = Nilvariablesstack(); if (!cl_selvarstack) cl_selvarstack = Nilselvarstack(); if (!cl_dollarvarstack) cl_dollarvarstack = Nilselvarstack(); if (!cl_dollarvarextstack) cl_dollarvarextstack = Nilselvarstack(); #line 7039 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_initializephyla_c: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 3225 "../gen.k" /*EMPTY*/ #line 7048 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 3224 "../gen.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 3224 "../gen.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check_count1: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 189 "../util.k" /*EMPTY*/ #line 7065 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 187 "../util.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 187 "../util.k" phylumdeclarations rpds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(rpds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check_count: { if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { unparse_phylumdeclarations(kc_p, kc_printer, view_check_count1); #line 185 "../util.k" v_freecount(); #line 7083 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_Nilphylumdeclarations)) { #line 164 "../util.k" /*EMPTY*/ #line 7092 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumdeclarations)) { #line 159 "../util.k" phylumdeclaration pd = kc_p->u.Consphylumdeclarations.phylumdeclaration_1; #line 159 "../util.k" phylumdeclarations pds = kc_p->u.Consphylumdeclarations.phylumdeclarations_1; unparse_phylumdeclarations(pds, kc_printer, kc_current_view); unparse_phylumdeclaration(pd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consphylumdeclarations: unparse_phylumdeclaration( kc_p->u.Consphylumdeclarations.phylumdeclaration_1, kc_printer, kc_current_view ); unparse_phylumdeclarations( kc_p->u.Consphylumdeclarations.phylumdeclarations_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_phylumnames #ifdef KC_USE_PROTOTYPES (phylumnames kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) phylumnames kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_phylumnames(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_uniqmap_c_1: { if (( kc_p->prod_sel == sel_Nilphylumnames)) { #line 857 "../gen.k" /*EMPTY*/ #line 7133 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphylumnames)) { #line 858 "../gen.k" ID pn = kc_p->u.Consphylumnames.ID_1; #line 858 "../gen.k" phylumnames r_pn = kc_p->u.Consphylumnames.phylumnames_1; unparse_phylumnames(r_pn, kc_printer, kc_current_view); { (*kc_printer)("kc_phylum_", kc_current_view); } unparse_ID(pn, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consphylumnames: unparse_ID( kc_p->u.Consphylumnames.ID_1, kc_printer, kc_current_view ); unparse_phylumnames( kc_p->u.Consphylumnames.phylumnames_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_phylumdeclaration #ifdef KC_USE_PROTOTYPES (phylumdeclaration kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) phylumdeclaration kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_phylumdeclaration(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_unparsedefs_default_c: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 8005 "../gen.k" /*EMPTY*/ #line 7176 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 8005 "../gen.k" /*EMPTY*/ #line 7181 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 8006 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.ListAlternatives.alternatives_1; #line 8015 "../gen.k" if (! f_all_alternatives_nullary( a )) #line 7188 "unpk.c" { { (*kc_printer)(" switch((int)kc_p->prod_sel) {\ \n", kc_current_view); } unparse_alternatives(a, kc_printer, kc_current_view); { (*kc_printer)(" default:;}\ \n", kc_current_view); } } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 8007 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.NonlistAlternatives.alternatives_1; #line 8015 "../gen.k" if (! f_all_alternatives_nullary( a )) #line 7202 "unpk.c" { { (*kc_printer)(" switch((int)kc_p->prod_sel) {\ \n", kc_current_view); } unparse_alternatives(a, kc_printer, kc_current_view); { (*kc_printer)(" default:;}\ \n", kc_current_view); } } } else goto kc_unparsing_default; break; } case (int)view_gen_unparsedefs_c: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 7908 "../gen.k" /*EMPTY*/ #line 7218 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 7908 "../gen.k" /*EMPTY*/ #line 7223 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration)) { #line 7909 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 7909 "../gen.k" productionblock pb = kc_p->u.PhylumDeclaration.productionblock_1; #line 7910 "../gen.k" ID selvar = Id(Str(mkcasestring("kc_p"))); cf_pushdollarvar( selvar ); cf_pushdollarvarext( f_emptyId() ); gl_phylum = id; #line 7236 "unpk.c" { (*kc_printer)("/*ARGSUSED*/\ \nvoid unparse_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p, void (*kc_printer)(char*, uview), uview kc_current_view)\ \n#else\ \n(kc_p, kc_printer, kc_current_view) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view;\ \n#endif\ \n{\ \n /*SUPPRESS 622*/\ \n assert_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(kc_p, \"kc_p\");\ \n switch((int)kc_current_view) {\ \n", kc_current_view); } unparse_productionblock(pb, kc_printer, kc_current_view); { (*kc_printer)(" }\ \n}\ \n", kc_current_view); } #line 7931 "../gen.k" gl_phylum = 0; cf_popdollarvar(); cf_popdollarvarext(); #line 7267 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_unparsedecls_h: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 7774 "../gen.k" /*EMPTY*/ #line 7276 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration)) { #line 7775 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("void unparse_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P(( ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", void(*)(char*, uview), uview )); \ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_rewritedefs_other_c: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 7003 "../gen.k" /*EMPTY*/ #line 7295 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 7003 "../gen.k" /*EMPTY*/ #line 7300 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 7013 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.ListAlternatives.alternatives_1; { (*kc_printer)(" switch((int)kc_p->prod_sel) {\ \n", kc_current_view); } unparse_alternatives(a, kc_printer, kc_current_view); { (*kc_printer)(" default: goto kc_rewrite_default;}\ \n", kc_current_view); } #line 7021 "../gen.k" gl_rewrite_goto_used = True; #line 7312 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 7014 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.NonlistAlternatives.alternatives_1; { (*kc_printer)(" switch((int)kc_p->prod_sel) {\ \n", kc_current_view); } unparse_alternatives(a, kc_printer, kc_current_view); { (*kc_printer)(" default: goto kc_rewrite_default;}\ \n", kc_current_view); } #line 7021 "../gen.k" gl_rewrite_goto_used = True; #line 7324 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_rewritedefs_default_c: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 7003 "../gen.k" /*EMPTY*/ #line 7333 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 7003 "../gen.k" /*EMPTY*/ #line 7338 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 7004 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.ListAlternatives.alternatives_1; { (*kc_printer)(" switch((int)kc_p->prod_sel) {\ \n", kc_current_view); } unparse_alternatives(a, kc_printer, kc_current_view); { (*kc_printer)(" default: return kc_p;}\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 7005 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.NonlistAlternatives.alternatives_1; { (*kc_printer)(" switch((int)kc_p->prod_sel) {\ \n", kc_current_view); } unparse_alternatives(a, kc_printer, kc_current_view); { (*kc_printer)(" default: return kc_p;}\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_rewritedefs_c: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 6902 "../gen.k" /*EMPTY*/ #line 7365 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 6903 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 6904 "../gen.k" gl_phylum = id; #line 7372 "unpk.c" { (*kc_printer)("/*ARGSUSED*/\ \n", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" rewrite_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p, rview kc_current_view)\ \n#else\ \n(kc_p, kc_current_view) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p; rview kc_current_view;\ \n#endif\ \n{\ \n /*SUPPRESS 622*/\ \n assert_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("( kc_p, \"kc_p\" );\ \n return kc_p;\ \n}\ \n", kc_current_view); } #line 6918 "../gen.k" gl_phylum = 0; #line 7398 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration)) { #line 6920 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 6920 "../gen.k" productionblock pb = kc_p->u.PhylumDeclaration.productionblock_1; #line 6921 "../gen.k" gl_phylum = id; #line 7407 "unpk.c" #line 6922 "../gen.k" gl_phydecl = f_lookupdecl( gl_phylum ); if ( gl_phydecl == 0 ) { v_report(NonFatal( FileLine( gl_phylum->file, gl_phylum->line ), Problem1S1ID( "internal error: could not find declaration of phylum:", gl_phylum ))); } #line 7414 "unpk.c" { (*kc_printer)("/*ARGSUSED*/\ \n", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" rewrite_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p, rview kc_current_view)\ \n#else\ \n(kc_p, kc_current_view) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p; rview kc_current_view;\ \n#endif\ \n{\ \n /*SUPPRESS 622*/\ \n assert_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("( kc_p, \"kc_p\" );\ \n switch((int)kc_current_view) {\ \n", kc_current_view); } unparse_productionblock(pb, kc_printer, kc_current_view); { (*kc_printer)(" }\ \n}\ \n", kc_current_view); } #line 6943 "../gen.k" gl_phylum = 0; gl_phydecl = 0; #line 7443 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_rewritedecls_h: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 6885 "../gen.k" /*EMPTY*/ #line 7452 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration)) { #line 6886 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" rewrite_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P(( ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", rview ));\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_copydefs_c: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 6684 "../gen.k" /*EMPTY*/ #line 7472 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 6685 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("/*ARGSUSED*/\ \n", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" copy_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p, boolean kc_copy_attributes)\ \n#else\ \n(kc_p, kc_copy_attributes) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p; boolean kc_copy_attributes;\ \n#endif\ \n", kc_current_view); } #line 6695 "../gen.k" if ( (strcmp( f_strofID( id ), "int" ) == 0) || (strcmp( f_strofID( id ), "float" ) == 0) ) #line 7496 "unpk.c" { { (*kc_printer)("{ return kc_p; }\ \n", kc_current_view); } } #line 6699 "../gen.k" else #line 7503 "unpk.c" { { (*kc_printer)("{ return (", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(")kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("); }\ \n", kc_current_view); } } } else if (( kc_p->prod_sel == sel_PhylumDeclaration)) { #line 6704 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" copy_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p, boolean kc_copy_attributes)\ \n#else\ \n(kc_p, kc_copy_attributes) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p; boolean kc_copy_attributes;\ \n#endif\ \n{ return (", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(")kc_do_copy_phylum( (kc_voidptr_t)kc_p, kc_copy_attributes, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("); }\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_copydecls_h: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 6597 "../gen.k" /*EMPTY*/ #line 7543 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration)) { #line 6598 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" copy_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P(( ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", boolean ));\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_copy_attributes_c: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 6556 "../gen.k" /*EMPTY*/ #line 7563 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.Ccode_option_1->prod_sel == sel_CcodeOption)) { #line 6557 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 6557 "../gen.k" attributes a = kc_p->u.PhylumDeclaration.Ccode_option_1->u.CcodeOption.attributes_1; #line 6559 "../gen.k" gl_phylum = id; #line 7572 "unpk.c" unparse_attributes(a, kc_printer, kc_current_view); #line 6561 "../gen.k" gl_phylum = 0; #line 7576 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_c_write: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 6284 "../gen.k" /*EMPTY*/ #line 7585 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 6316 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("char *CSGIOwrite_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_stream, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p )\ \n#else\ \n(kc_stream, kc_p) FILE *kc_stream; ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p;\ \n#endif\ \n{ YYSTYPE kc_y; kc_y.yt_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" = kc_p;\ \n return kc_writeKC_IO_RETURN2char( kc_CSGIOwritephylum( kc_stream, kc_y, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ));\ \n}\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 6317 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("char *CSGIOwrite_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_stream, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p )\ \n#else\ \n(kc_stream, kc_p) FILE *kc_stream; ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p;\ \n#endif\ \n{ YYSTYPE kc_y; kc_y.yt_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" = kc_p;\ \n return kc_writeKC_IO_RETURN2char( kc_CSGIOwritephylum( kc_stream, kc_y, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ));\ \n}\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 6318 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("char *CSGIOwrite_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_stream, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p )\ \n#else\ \n(kc_stream, kc_p) FILE *kc_stream; ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p;\ \n#endif\ \n{ YYSTYPE kc_y; kc_y.yt_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" = kc_p;\ \n return kc_writeKC_IO_RETURN2char( kc_CSGIOwritephylum( kc_stream, kc_y, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ));\ \n}\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_c_read: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 6284 "../gen.k" /*EMPTY*/ #line 7666 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 6285 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("char *CSGIOread_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_stream, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" *kc_p )\ \n#else\ \n(kc_stream, kc_p) FILE *kc_stream; ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" *kc_p;\ \n#endif\ \n{ YYSTYPE kc_value;\ \n char *kc_answer = kc_readKC_IO_RETURN2char( kc_CSGIOreadphylum( kc_stream, &kc_value, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ));\ \n *kc_p = kc_value.yt_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(";\ \n return kc_answer;\ \n}\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 6300 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("char *CSGIOread_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_stream, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" *kc_p )\ \n#else\ \n(kc_stream, kc_p) FILE *kc_stream; ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" *kc_p;\ \n#endif\ \n{ YYSTYPE kc_value;\ \n char *kc_answer = kc_readKC_IO_RETURN2char( kc_CSGIOreadphylum( kc_stream, &kc_value, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ));\ \n *kc_p = kc_value.yt_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(";\ \n return kc_answer;\ \n}\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 6301 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("char *CSGIOread_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_stream, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" *kc_p )\ \n#else\ \n(kc_stream, kc_p) FILE *kc_stream; ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" *kc_p;\ \n#endif\ \n{ YYSTYPE kc_value;\ \n char *kc_answer = kc_readKC_IO_RETURN2char( kc_CSGIOreadphylum( kc_stream, &kc_value, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ));\ \n *kc_p = kc_value.yt_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(";\ \n return kc_answer;\ \n}\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_h: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 5242 "../gen.k" /*EMPTY*/ #line 7753 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 5243 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("char *CSGIOread_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P(( FILE *, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("* ));\ \nchar *CSGIOwrite_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P(( FILE *, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ));\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 5244 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("char *CSGIOread_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P(( FILE *, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("* ));\ \nchar *CSGIOwrite_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P(( FILE *, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ));\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 5245 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("char *CSGIOread_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P(( FILE *, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("* ));\ \nchar *CSGIOwrite_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P(( FILE *, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ));\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_listdefs_c: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 5013 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 5013 "../gen.k" ID el = kc_p->u.PhylumDeclaration.productionblock_1->u.ListAlternatives.ID_1; unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" concat_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p1, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p2)\ \n#else\ \n(kc_p1, kc_p2) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p1, kc_p2;\ \n#endif\ \n", kc_current_view); } #line 5022 "../gen.k" if (f_isbigatom(el)) #line 7827 "unpk.c" { { (*kc_printer)("{ /*SUPPRESS 622*/\ \n assert_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(kc_p1,\"kc_p1\");\ \n if (kc_p1->prod_sel == sel_Nil", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(") {\ \n return kc_p2;\ \n } else if (kc_p1->prod_sel == sel_Cons", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(") {\ \n return Cons", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(\ \n kc_p1->u.Cons", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(el, kc_printer, kc_current_view); { (*kc_printer)("_1,\ \n concat_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(kc_p1->u.Cons", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("_1, kc_p2) );\ \n } else {\ \n kc_invalid_operator(kc_error_concat, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", __LINE__, __FILE__, (int)kc_p1->prod_sel);/*NOTREACHED*/return (", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(")0;\ \n} }\ \n", kc_current_view); } } #line 5035 "../gen.k" else #line 7866 "unpk.c" { { (*kc_printer)("{ return (", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(")kc_do_concat_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ); }\ \n", kc_current_view); } } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" reverse_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p)\ \n#else\ \n(kc_p) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p;\ \n#endif\ \n", kc_current_view); } #line 5046 "../gen.k" if (f_isbigatom(el)) #line 7891 "unpk.c" { { (*kc_printer)("{ boolean kc_not_ready = True;\ \n ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_tmp = Nil", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("();\ \n while(kc_not_ready) {\ \n /*SUPPRESS 622*/\ \n assert_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(((casestring)kc_p),\"kc_p\");\ \n if (kc_p->prod_sel == sel_Nil", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(") {\ \n kc_not_ready=False;\ \n } else if (kc_p->prod_sel == sel_Cons", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(") {\ \n kc_tmp = Cons", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(kc_p->u.Cons", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(el, kc_printer, kc_current_view); { (*kc_printer)("_1, kc_tmp);\ \n kc_p = kc_p->u.Cons", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("_1;\ \n } else {\ \n kc_invalid_operator(kc_error_reverse, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/\ \n } }\ \n return kc_tmp;\ \n}\ \n", kc_current_view); } } #line 5063 "../gen.k" else #line 7934 "unpk.c" { { (*kc_printer)("{ return (", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(")kc_do_reverse_phylum( (kc_voidptr_t)kc_p, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ); }\ \n", kc_current_view); } } { (*kc_printer)("int length_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p)\ \n#else\ \n(kc_p) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p;\ \n#endif\ \n{ return kc_do_length_phylum( (kc_voidptr_t)kc_p, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ); }\ \n", kc_current_view); } unparse_ID(el, kc_printer, kc_current_view); { (*kc_printer)(" last_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p)\ \n#else\ \n(kc_p) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p;\ \n#endif\ \n", kc_current_view); } #line 5081 "../gen.k" if (f_isbigatom(el)) #line 7975 "unpk.c" { { (*kc_printer)("{ boolean kc_not_ready = True;\ \n ", kc_current_view); } unparse_ID(el, kc_printer, kc_current_view); { (*kc_printer)(" kc_tmp = (", kc_current_view); } unparse_ID(el, kc_printer, kc_current_view); { (*kc_printer)(")0;\ \n /*SUPPRESS 622*/\ \n assert_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(kc_p,\"kc_p\");\ \n if (kc_p->prod_sel == sel_Nil", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(") {\ \n (void)fflush(stdout); (void)fprintf(stderr, kc_error_last_with_nil_argument, \"", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\", \"", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\"); exit( 1 ); /*NOTREACHED*/\ \n }\ \n while(kc_not_ready) {\ \n /*SUPPRESS 622*/\ \n assert_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(kc_p,\"kc_p\");\ \n if (kc_p->prod_sel == sel_Nil", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(") {\ \n kc_not_ready=False;\ \n } else if (kc_p->prod_sel == sel_Cons", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(") {\ \n kc_tmp = kc_p->u.Cons", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(el, kc_printer, kc_current_view); { (*kc_printer)("_1;\ \n kc_p = kc_p->u.Cons", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("_1;\ \n } else {\ \n kc_invalid_operator(kc_error_last, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/\ \n } }\ \n return kc_tmp;\ \n}\ \n", kc_current_view); } } #line 5103 "../gen.k" else #line 8029 "unpk.c" { { (*kc_printer)("{ return (", kc_current_view); } unparse_ID(el, kc_printer, kc_current_view); { (*kc_printer)(")kc_do_last_phylum( (kc_voidptr_t)kc_p, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ); }\ \n", kc_current_view); } } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" map_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p, ", kc_current_view); } unparse_ID(el, kc_printer, kc_current_view); { (*kc_printer)(" (*kc_fp)(", kc_current_view); } unparse_ID(el, kc_printer, kc_current_view); { (*kc_printer)("))\ \n#else\ \n(kc_p, kc_fp) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p; ", kc_current_view); } unparse_ID(el, kc_printer, kc_current_view); { (*kc_printer)(" (*kc_fp)KC__P((", kc_current_view); } unparse_ID(el, kc_printer, kc_current_view); { (*kc_printer)("));\ \n#endif\ \n", kc_current_view); } #line 5114 "../gen.k" if (f_isbigatom(el)) #line 8062 "unpk.c" { { (*kc_printer)("{ /*SUPPRESS 622*/\ \n assert_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(kc_p,\"kc_p\");\ \n if (kc_p->prod_sel == sel_Nil", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(") {\ \n return kc_p;\ \n } else if (kc_p->prod_sel == sel_Cons", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(") {\ \n return Cons", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(\ \n (*kc_fp)(kc_p->u.Cons", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(el, kc_printer, kc_current_view); { (*kc_printer)("_1),\ \n map_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(kc_p->u.Cons", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("_1, kc_fp));\ \n } else {\ \n kc_invalid_operator(kc_error_map, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/return (", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(")0;\ \n} }\ \n", kc_current_view); } } #line 5127 "../gen.k" else #line 8101 "unpk.c" { { (*kc_printer)("{ return (", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(")kc_do_map_phylum( (kc_voidptr_t)kc_p, (kc_voidptr_t (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ); }\ \n", kc_current_view); } } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" filter_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p, boolean (*kc_fp)(", kc_current_view); } unparse_ID(el, kc_printer, kc_current_view); { (*kc_printer)("))\ \n#else\ \n(kc_p, kc_fp) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p; boolean (*kc_fp)KC__P((", kc_current_view); } unparse_ID(el, kc_printer, kc_current_view); { (*kc_printer)("));\ \n#endif\ \n", kc_current_view); } #line 5138 "../gen.k" if (f_isbigatom(el)) #line 8130 "unpk.c" { { (*kc_printer)("{ /*SUPPRESS 622*/\ \n assert_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(kc_p,\"kc_p\");\ \n if (kc_p->prod_sel == sel_Nil", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(") {\ \n return kc_p;\ \n } else if (kc_p->prod_sel == sel_Cons", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(") {\ \n if ((*kc_fp)(kc_p->u.Cons", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(el, kc_printer, kc_current_view); { (*kc_printer)("_1)) {\ \n return Cons", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(\ \n kc_p->u.Cons", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(el, kc_printer, kc_current_view); { (*kc_printer)("_1,\ \n filter_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(kc_p->u.Cons", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("_1, kc_fp));\ \n } else {\ \n return filter_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(kc_p->u.Cons", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("_1, kc_fp);\ \n }\ \n } else {\ \n kc_invalid_operator(kc_error_filter, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", __LINE__, __FILE__, (int)kc_p->prod_sel);/*NOTREACHED*/return (", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(")0;\ \n} }\ \n", kc_current_view); } } #line 5155 "../gen.k" else #line 8183 "unpk.c" { { (*kc_printer)("{ return (", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(")kc_do_filter_phylum( (kc_voidptr_t)kc_p, (boolean (*)KC__P((kc_voidptr_t)))kc_fp, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ); }\ \n", kc_current_view); } } { (*kc_printer)("void freelist_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p)\ \n#else\ \n(kc_p) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p;\ \n#endif\ \n{ kc_do_freelist_phylum( (kc_voidptr_t)kc_p, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ); }\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration)) { #line 5012 "../gen.k" /*EMPTY*/ #line 8212 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_listdecls_h: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 4808 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 4808 "../gen.k" ID el = kc_p->u.PhylumDeclaration.productionblock_1->u.ListAlternatives.ID_1; unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" concat_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P(( ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ));\ \n", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" reverse_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P(( ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ));\ \nint length_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P(( ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ));\ \n", kc_current_view); } unparse_ID(el, kc_printer, kc_current_view); { (*kc_printer)(" last_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P(( ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ));\ \n", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" map_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P(( ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_ID(el, kc_printer, kc_current_view); { (*kc_printer)(" (*)(", kc_current_view); } unparse_ID(el, kc_printer, kc_current_view); { (*kc_printer)(")));\ \n", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" filter_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P(( ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", boolean (*)(", kc_current_view); } unparse_ID(el, kc_printer, kc_current_view); { (*kc_printer)(")));\ \nvoid freelist_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P(( ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ));\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration)) { #line 4807 "../gen.k" /*EMPTY*/ #line 8280 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_printdotdecls_c: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 4580 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("static void kc_do_printdot_subgraph_prologue__", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P((FILE*, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", char*, char*, boolean, boolean));\ \nstatic void kc_do_printdot_id_of__", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P((FILE*, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", boolean, kc_voidptr_t, int));\ \nstatic void kc_do_printdot__", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P((FILE*, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", boolean, int*, kc_dotedgenode_t*, char*, boolean, boolean, kc_voidptr_t, int));\ \n/* TERRIBLE HACK: declare non-static, to shut up gcc -Wall ... */\ \n/*static*/ void kc_do_printdot_add_edge_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P((kc_voidptr_t, kc_enum_phyla, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", int, int*, kc_dotedgenode_t*, char*));\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration)) { #line 4579 "../gen.k" /*EMPTY*/ #line 8315 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_printdotdefs_c: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 4591 "../gen.k" /*EMPTY*/ #line 8324 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 4592 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("static void kc_do_printdot_subgraph_prologue__", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p, char *kc_root, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt)\ \n#else\ \n(kc_f, kc_p, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt) FILE *kc_f; ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p; char *kc_root; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;\ \n#endif\ \n{ if (!kc_f) kc_f = stdout;\ \n (void)fprintf(kc_f, \"/*subgraph*/ {\\n\");\ \n if (kc_root) {\ \n", kc_current_view ); (*kc_printer)(" (void)fprintf(kc_f, \"\\\"%s\\\" [shape=ellipse\", kc_root);\ \n if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) {\ \n (void)fprintf(kc_f, \", %s\", kc_edge_attributes);\ \n }\ \n if", kc_current_view ); (*kc_printer)(" (kc_phy_labels) {\ \n (void)fprintf(kc_f, \", label=\\\"%s\\\\n%s\\\"\", kc_root, kc_PhylumInfo[kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("].name);\ \n }\ \n (void)fprintf(kc_f, \"];\\n\");\ \n (void)fprintf(kc_f, \"\\\"%s\\\" ->\", kc_root);\ \n kc_do_printdot_id_of__", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(kc_f, kc_p, kc_use_ctxt, 0, 0);\ \n if (kc_edge_attributes && (strlen(kc_edge_attributes) > 0)) {\ \n (void)fprintf(kc_f, \"[%s]\", kc_edge_attributes);\ \n }\ \n (void)fprintf(kc_f, \";\\n\");\ \n", kc_current_view ); (*kc_printer)(" }\ \n}\ \nstatic void kc_do_printdot_id_of__", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p, boolean kc_use_ctxt, kc_voidptr_t kc_ctxt, int kc_son_nr)\ \n#else\ \n(kc_f, kc_p, kc_use_ctxt, kc_ctxt, kc_son_nr) FILE *kc_f; ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p; boolean kc_use_ctxt; kc_voidptr_t kc_ctxt; int kc_son_nr;\ \n#endif\ \n", kc_current_view); } #line 4626 "../gen.k" if (strcmp( f_strofID( id ), "float" ) == 0) #line 8382 "unpk.c" { { (*kc_printer)("{ if (kc_use_ctxt) {\ \n (void)fprintf(kc_f, \"\\\"kcidf%f_%p_%d\\\"\", kc_p, kc_ctxt, kc_son_nr);\ \n } else {\ \n (void)fprintf(kc_f, \"\\\"kcidf%f\\\"\", kc_p);\ \n} }\ \n", kc_current_view); } } #line 4633 "../gen.k" else if (strcmp( f_strofID( id ), "int" ) == 0) #line 8393 "unpk.c" { { (*kc_printer)("{ if (kc_use_ctxt) {\ \n (void)fprintf(kc_f, \"\\\"kcidi%d_%p_%d\\\"\", kc_p, kc_ctxt, kc_son_nr);\ \n } else {\ \n (void)fprintf(kc_f, \"\\\"kcidi%d\\\"\", kc_p);\ \n} }\ \n", kc_current_view); } } #line 4640 "../gen.k" else #line 8404 "unpk.c" { { (*kc_printer)("{ kc_do_printdot_id_of_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", kc_use_ctxt, kc_ctxt, kc_son_nr); }\ \n", kc_current_view); } } { (*kc_printer)("static void kc_do_printdot__", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p, boolean kc_outmost, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix, boolean kc_phy_labels, boolean kc_use_ctxt, kc_voidptr_t kc_ctxt, int kc_son_nr)\ \n#else\ \n(kc_f, kc_p, k", kc_current_view ); (*kc_printer)("c_outmost, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_ctxt, kc_son_nr) FILE *kc_f; ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p; boolean kc_outmost; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix; boolean kc_phy_labels; boolean kc_use_ctxt; kc_voidptr_t kc_ctxt; int kc_son_nr;\ \n#endif\ \n", kc_current_view); } #line 4651 "../gen.k" if (strcmp( f_strofID( id ), "float" ) == 0) #line 8427 "unpk.c" { { (*kc_printer)("{ if (!kc_f) kc_f = stdout;\ \n kc_do_printdot_id_of__", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(kc_f, kc_p, kc_use_ctxt, kc_ctxt, kc_son_nr);\ \n (void)fprintf(kc_f, \" [label=\\\"%f\\\", shape=ellipse];\\n\", kc_p);\ \n}\ \n", kc_current_view); } } #line 4657 "../gen.k" else if (strcmp( f_strofID( id ), "int" ) == 0) #line 8439 "unpk.c" { { (*kc_printer)("{ if (!kc_f) kc_f = stdout;\ \n kc_do_printdot_id_of__", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(kc_f, kc_p, kc_use_ctxt, kc_ctxt, kc_son_nr);\ \n (void)fprintf(kc_f, \" [label=\\\"%d\\\", shape=ellipse];\\n\", kc_p);\ \n}\ \n", kc_current_view); } } #line 4663 "../gen.k" else #line 8451 "unpk.c" { { (*kc_printer)("{ kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", kc_outmost, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_ctxt, kc_son_nr); }\ \n", kc_current_view); } } { (*kc_printer)("/* TERRIBLE HACK: declare non-static, to shut up gcc -Wall ... */\ \n/*static*/ void kc_do_printdot_add_edge_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(kc_voidptr_t kc_p, kc_enum_phyla kc_phylum, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_sub_p, int kc_son_nr, int *kc_edge_nr, kc_dotedgenode_t *kc_edges, char *kc_edge_prefix)\ \n#else\ \n(kc_p, kc_phylum, kc_sub_p, kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix) kc_voidptr_t kc_p; ", kc_current_view ); (*kc_printer)("kc_enum_phyla kc_phylum; ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_sub_p; int kc_son_nr; int *kc_edge_nr; kc_dotedgenode_t *kc_edges; char *kc_edge_prefix;\ \n#endif\ \n", kc_current_view); } #line 4675 "../gen.k" if (strcmp( f_strofID( id ), "float" ) == 0) #line 8475 "unpk.c" { { (*kc_printer)("{ YYSTYPE kc_n, kc_sub_n;\ \n kc_n.yt_voidptr = kc_p;\ \n kc_sub_n.yt_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" = kc_sub_p;\ \n kc_do_printdot_do_add_edge(kc_n, kc_phylum, kc_sub_n, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix);\ \n}\ \n", kc_current_view); } } #line 4682 "../gen.k" else if (strcmp( f_strofID( id ), "int" ) == 0) #line 8490 "unpk.c" { { (*kc_printer)("{ YYSTYPE kc_n, kc_sub_n;\ \n kc_n.yt_voidptr = kc_p;\ \n kc_sub_n.yt_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" = kc_sub_p;\ \n kc_do_printdot_do_add_edge(kc_n, kc_phylum, kc_sub_n, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix);\ \n}\ \n", kc_current_view); } } #line 4689 "../gen.k" else #line 8505 "unpk.c" { { (*kc_printer)("{ kc_do_printdot_add_edge(kc_p, kc_phylum, kc_sub_p, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", kc_son_nr, kc_edge_nr, kc_edges, kc_edge_prefix); }\ \n", kc_current_view); } } { (*kc_printer)("void fprintdot_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot)\ \n#else\ \n(kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_att", kc_current_view ); (*kc_printer)("ributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt; boolean kc_prt_head_foot;\ \n#endif\ \n{ int kc_edge_nr = 1;\ \n kc_dotedgenode_t kc_ed", kc_current_view ); (*kc_printer)("ges = 0;\ \n if (kc_prt_head_foot) fprintdotprologue(kc_f);\ \n /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue__", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(kc_f, kc_p, kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt);\ \n kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize);\ \n kc_do_printdot__", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(kc_f, kc_p, True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0);\ \n kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt);\ \n kc_ht_delete(kc_fprintdot_ha", kc_current_view ); (*kc_printer)("shtable);\ \n /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f);\ \n if (kc_prt_head_foot) fprintdotepilogue(kc_f);\ \n}\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 4712 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("void fprintdot_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot)\ \n#else\ \n(kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_att", kc_current_view ); (*kc_printer)("ributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot;\ \n#endif\ \n{ int kc_edge_nr = 1;\ \n kc_dotedgenode_t kc_e", kc_current_view ); (*kc_printer)("dges = 0;\ \n if (kc_prt_head_foot) fprintdotprologue(kc_f);\ \n /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt);\ \n kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize);\ \n kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0);\ \n kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt);\ \n kc_ht_delete(kc_fprintdot_hashtable);\ \n", kc_current_view ); (*kc_printer)(" /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f);\ \n if (kc_prt_head_foot) fprintdotepilogue(kc_f);\ \n}\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 4713 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("void fprintdot_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p, char *kc_root, char *kc_edge_prefix, char *kc_edge_attributes, boolean kc_phy_labels, boolean kc_use_ctxt, boolean kc_prt_head_foot)\ \n#else\ \n(kc_f, kc_p, kc_root, kc_edge_prefix, kc_edge_att", kc_current_view ); (*kc_printer)("ributes, kc_phy_labels, kc_use_ctxt, kc_prt_head_foot) FILE *kc_f; ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p; char *kc_root; char *kc_edge_prefix; char *kc_edge_attributes; boolean kc_phy_labels; boolean kc_use_ctxt;; boolean kc_prt_head_foot;\ \n#endif\ \n{ int kc_edge_nr = 1;\ \n kc_dotedgenode_t kc_e", kc_current_view ); (*kc_printer)("dges = 0;\ \n if (kc_prt_head_foot) fprintdotprologue(kc_f);\ \n /*if (kc_outmost)*/ kc_do_printdot_subgraph_prologue(kc_f, kc_p, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", kc_root, kc_edge_attributes, kc_phy_labels, kc_use_ctxt);\ \n kc_fprintdot_hashtable = kc_ht_create_simple(kc_fprintdot_hashtablesize);\ \n kc_do_printdot_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", True, &kc_edge_nr, &kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, 0, 0);\ \n kc_do_printdot_edges(kc_f, kc_edges, kc_edge_attributes, kc_use_ctxt);\ \n kc_ht_delete(kc_fprintdot_hashtable);\ \n", kc_current_view ); (*kc_printer)(" /*if (kc_outmost)*/ kc_do_printdot_subgraph_epilogue(kc_f);\ \n if (kc_prt_head_foot) fprintdotepilogue(kc_f);\ \n}\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_printdotdecls_h: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 4300 "../gen.k" /*EMPTY*/ #line 8621 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration)) { #line 4301 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("void fprintdot_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P(( FILE*, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", char*, char*, char*, boolean, boolean, boolean ));\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_printdefs_c: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 4184 "../gen.k" /*EMPTY*/ #line 8640 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 4185 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("void print_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p)\ \n#else\ \n(kc_p) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p;\ \n#endif\ \n", kc_current_view); } #line 4194 "../gen.k" if (strcmp( f_strofID( id ), "float" ) == 0) #line 8660 "unpk.c" { { (*kc_printer)("{ (void)fprintf(stdout, \"%*s%f\\n\", kc_indentation, \"\", kc_p); }\ \n", kc_current_view); } } #line 4197 "../gen.k" else if (strcmp( f_strofID( id ), "int" ) == 0) #line 8667 "unpk.c" { { (*kc_printer)("{ (void)fprintf(stdout, \"%*s%d\\n\", kc_indentation, \"\", kc_p); }\ \n", kc_current_view); } } #line 4200 "../gen.k" else #line 8674 "unpk.c" { { (*kc_printer)("{ kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("); }\ \n", kc_current_view); } } { (*kc_printer)("void fprint_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p)\ \n#else\ \n(kc_f, kc_p) FILE *kc_f; ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p;\ \n#endif\ \n", kc_current_view); } #line 4211 "../gen.k" if (strcmp( f_strofID( id ), "float" ) == 0) #line 8696 "unpk.c" { { (*kc_printer)("{ if (!kc_f) kc_f = stdout;\ \n (void)fprintf(kc_f, \"%*s%f\\n\", kc_indentation, \"\", kc_p);\ \n}\ \n", kc_current_view); } } #line 4216 "../gen.k" else if (strcmp( f_strofID( id ), "int" ) == 0) #line 8705 "unpk.c" { { (*kc_printer)("{ if (!kc_f) kc_f = stdout;\ \n (void)fprintf(kc_f, \"%*s%d\\n\", kc_indentation, \"\", kc_p);\ \n}\ \n", kc_current_view); } } #line 4221 "../gen.k" else #line 8714 "unpk.c" { { (*kc_printer)("{ kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("); }\ \n", kc_current_view); } } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 4226 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("void print_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p)\ \n#else\ \n(kc_p) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p;\ \n#endif\ \n{ kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("); }\ \nvoid fprint_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p)\ \n#else\ \n(kc_f, kc_p) FILE *kc_f; ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p;\ \n#endif\ \n{ kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("); }\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 4227 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("void print_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p)\ \n#else\ \n(kc_p) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p;\ \n#endif\ \n{ kc_do_print_phylum(stdout, (kc_voidptr_t)kc_p, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("); }\ \nvoid fprint_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_f, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p)\ \n#else\ \n(kc_f, kc_p) FILE *kc_f; ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p;\ \n#endif\ \n{ kc_do_print_phylum(kc_f, (kc_voidptr_t)kc_p, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("); }\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_printdecls_h: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 4116 "../gen.k" /*EMPTY*/ #line 8799 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration)) { #line 4117 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("void print_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P(( ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ));\ \nvoid fprint_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P(( FILE*, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ));\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_eqdefs_c: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 4041 "../gen.k" /*EMPTY*/ #line 8823 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 4042 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("/*ARGSUSED*/ boolean eq_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p1, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p2)\ \n#else\ \n(kc_p1, kc_p2) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p1, kc_p2;\ \n#endif\ \n{ return (boolean)(kc_p1 == kc_p2); }\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 4053 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("/*ARGSUSED*/ boolean eq_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p1, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p2)\ \n#else\ \n(kc_p1, kc_p2) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p1, kc_p2;\ \n#endif\ \n{ return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("); }\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 4054 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("/*ARGSUSED*/ boolean eq_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p1, ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p2)\ \n#else\ \n(kc_p1, kc_p2) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p1, kc_p2;\ \n#endif\ \n{ return kc_do_eq_phylum( (kc_voidptr_t)kc_p1, (kc_voidptr_t)kc_p2, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("); }\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_eqdecls_h: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 3976 "../gen.k" /*EMPTY*/ #line 8896 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration)) { #line 3977 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("boolean eq_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P(( ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ));\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_freedefs_c: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives) && ( kc_p->u.PhylumDeclaration.productionblock_1->u.PredefinedAlternatives.alternatives_1->prod_sel == sel_Consalternatives) && ( kc_p->u.PhylumDeclaration.productionblock_1->u.PredefinedAlternatives.alternatives_1->u.Consalternatives.alternative_1->prod_sel == sel_Alternative) && ( kc_p->u.PhylumDeclaration.productionblock_1->u.PredefinedAlternatives.alternatives_1->u.Consalternatives.alternatives_1->prod_sel == sel_Nilalternatives)) { #line 3944 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 3944 "../gen.k" ID oid = kc_p->u.PhylumDeclaration.productionblock_1->u.PredefinedAlternatives.alternatives_1->u.Consalternatives.alternative_1->u.Alternative.ID_1; { (*kc_printer)("/*ARGSUSED*/ void free_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p, boolean kc_rec)\ \n#else\ \n(kc_p, kc_rec) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p; boolean kc_rec;\ \n#endif\ \n{ KC_COLLECT_STATS0(KC_FREE_CALLED_STATS((int)sel_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)(", kc_rec)); }\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 3943 "../gen.k" /*EMPTY*/ #line 8939 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 3955 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("/*ARGSUSED*/ void free_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p, boolean kc_rec)\ \n#else\ \n(kc_p, kc_rec) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p; boolean kc_rec;\ \n#endif\ \n{ kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("); }\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 3956 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("/*ARGSUSED*/ void free_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p, boolean kc_rec)\ \n#else\ \n(kc_p, kc_rec) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_p; boolean kc_rec;\ \n#endif\ \n{ kc_do_free_phylum( (kc_voidptr_t)kc_p, kc_rec, kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("); }\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_freedecls_h: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 3899 "../gen.k" /*EMPTY*/ #line 8988 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration)) { #line 3900 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("void free_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" KC__P(( ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(", boolean ));\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_operatordefs_c: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.storageoption_1->prod_sel == sel_NoStorageOption) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 3647 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 3647 "../gen.k" alternatives alt = kc_p->u.PhylumDeclaration.productionblock_1->u.ListAlternatives.alternatives_1; #line 3647 "../gen.k" Ccode_option cco = kc_p->u.PhylumDeclaration.Ccode_option_1; #line 3652 "../gen.k" gl_phylum = id; gl_cco = cco; #line 9013 "unpk.c" unparse_alternatives(alt, kc_printer, view_gen_operatordefs_nonhash_c); #line 3654 "../gen.k" gl_phylum = (ID) 0; gl_cco = (Ccode_option)0; #line 9017 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.storageoption_1->prod_sel == sel_NegativeStorageOption) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 3648 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 3648 "../gen.k" alternatives alt = kc_p->u.PhylumDeclaration.productionblock_1->u.ListAlternatives.alternatives_1; #line 3648 "../gen.k" Ccode_option cco = kc_p->u.PhylumDeclaration.Ccode_option_1; #line 3652 "../gen.k" gl_phylum = id; gl_cco = cco; #line 9028 "unpk.c" unparse_alternatives(alt, kc_printer, view_gen_operatordefs_nonhash_c); #line 3654 "../gen.k" gl_phylum = (ID) 0; gl_cco = (Ccode_option)0; #line 9032 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.storageoption_1->prod_sel == sel_NoStorageOption) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 3649 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 3649 "../gen.k" alternatives alt = kc_p->u.PhylumDeclaration.productionblock_1->u.NonlistAlternatives.alternatives_1; #line 3649 "../gen.k" Ccode_option cco = kc_p->u.PhylumDeclaration.Ccode_option_1; #line 3652 "../gen.k" gl_phylum = id; gl_cco = cco; #line 9043 "unpk.c" unparse_alternatives(alt, kc_printer, view_gen_operatordefs_nonhash_c); #line 3654 "../gen.k" gl_phylum = (ID) 0; gl_cco = (Ccode_option)0; #line 9047 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.storageoption_1->prod_sel == sel_NegativeStorageOption) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 3650 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 3650 "../gen.k" alternatives alt = kc_p->u.PhylumDeclaration.productionblock_1->u.NonlistAlternatives.alternatives_1; #line 3650 "../gen.k" Ccode_option cco = kc_p->u.PhylumDeclaration.Ccode_option_1; #line 3652 "../gen.k" gl_phylum = id; gl_cco = cco; #line 9058 "unpk.c" unparse_alternatives(alt, kc_printer, view_gen_operatordefs_nonhash_c); #line 3654 "../gen.k" gl_phylum = (ID) 0; gl_cco = (Ccode_option)0; #line 9062 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.storageoption_1->prod_sel == sel_PositiveStorageOption) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 3656 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 3656 "../gen.k" ID sto = kc_p->u.PhylumDeclaration.storageoption_1->u.PositiveStorageOption.ID_1; #line 3656 "../gen.k" alternatives alt = kc_p->u.PhylumDeclaration.productionblock_1->u.ListAlternatives.alternatives_1; #line 3656 "../gen.k" Ccode_option cco = kc_p->u.PhylumDeclaration.Ccode_option_1; #line 3659 "../gen.k" gl_phylum = id; gl_cco = cco; gl_sto = sto; #line 9075 "unpk.c" unparse_alternatives(alt, kc_printer, view_gen_operatordefs_hash_c); #line 3661 "../gen.k" gl_phylum = (ID) 0; gl_cco = (Ccode_option)0; gl_sto = (ID)0; #line 9079 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.storageoption_1->prod_sel == sel_PositiveStorageOption) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 3657 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 3657 "../gen.k" ID sto = kc_p->u.PhylumDeclaration.storageoption_1->u.PositiveStorageOption.ID_1; #line 3657 "../gen.k" alternatives alt = kc_p->u.PhylumDeclaration.productionblock_1->u.NonlistAlternatives.alternatives_1; #line 3657 "../gen.k" Ccode_option cco = kc_p->u.PhylumDeclaration.Ccode_option_1; #line 3659 "../gen.k" gl_phylum = id; gl_cco = cco; gl_sto = sto; #line 9092 "unpk.c" unparse_alternatives(alt, kc_printer, view_gen_operatordefs_hash_c); #line 3661 "../gen.k" gl_phylum = (ID) 0; gl_cco = (Ccode_option)0; gl_sto = (ID)0; #line 9096 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 3646 "../gen.k" /*EMPTY*/ #line 9101 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 3664 "../gen.k" /*EMPTY*/ #line 9106 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_operatordecls_h: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 1373 "../gen.k" /*EMPTY*/ #line 9115 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 1374 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 1374 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.ListAlternatives.alternatives_1; unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_alternatives(a, kc_printer, kc_current_view); { (*kc_printer)(";\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 1375 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 1375 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.NonlistAlternatives.alternatives_1; unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_alternatives(a, kc_printer, kc_current_view); { (*kc_printer)(";\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 1381 "../gen.k" /*EMPTY*/ #line 9142 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_assertmacros_h: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 1247 "../gen.k" /*EMPTY*/ #line 9151 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 1248 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("#define assert_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(")\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 1249 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("#define assert_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(p,pstr) assertNonIntPhylum(p,pstr,(int)kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(")\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 1254 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 1256 "../gen.k" if ((strcmp( f_strofID( id ), "int" ) == 0) || (strcmp( f_strofID( id ), "float" ) == 0) || (strcmp( f_strofID( id ), "voidptr" ) == 0)) #line 9180 "unpk.c" { { (*kc_printer)("#define assert_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(p,pstr)\ \n", kc_current_view); } } #line 1261 "../gen.k" else #line 9189 "unpk.c" { { (*kc_printer)("#define assert_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(c, cstr) assertNonIntPhylum(c,cstr,(int)kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(")\ \n", kc_current_view); } } } else goto kc_unparsing_default; break; } case (int)view_gen_yaccstacktype_h: { if (( kc_p->prod_sel == sel_PhylumDeclaration)) { #line 1021 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)(" ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" yt_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(";\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_nodetypes_h: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 942 "../gen.k" /*EMPTY*/ #line 9220 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 943 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 943 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.ListAlternatives.alternatives_1; #line 943 "../gen.k" Ccode_option cco = kc_p->u.PhylumDeclaration.Ccode_option_1; { (*kc_printer)("struct kc_tag_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" {\ \n kc_enum_operators prod_sel;\ \n", kc_current_view); } #line 949 "../gen.k" if (! f_all_alternatives_nullary( a )) #line 9236 "unpk.c" { { (*kc_printer)(" union {\ \n", kc_current_view); } unparse_alternatives(a, kc_printer, kc_current_view); { (*kc_printer)(" } u;\ \n", kc_current_view); } } unparse_Ccode_option(cco, kc_printer, kc_current_view); { (*kc_printer)("};\ \n\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 944 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 944 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.NonlistAlternatives.alternatives_1; #line 944 "../gen.k" Ccode_option cco = kc_p->u.PhylumDeclaration.Ccode_option_1; { (*kc_printer)("struct kc_tag_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" {\ \n kc_enum_operators prod_sel;\ \n", kc_current_view); } #line 949 "../gen.k" if (! f_all_alternatives_nullary( a )) #line 9263 "unpk.c" { { (*kc_printer)(" union {\ \n", kc_current_view); } unparse_alternatives(a, kc_printer, kc_current_view); { (*kc_printer)(" } u;\ \n", kc_current_view); } } unparse_Ccode_option(cco, kc_printer, kc_current_view); { (*kc_printer)("};\ \n\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 961 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 963 "../gen.k" if ((strcmp( f_strofID( id ), "int" ) == 0) || (strcmp( f_strofID( id ), "float" ) == 0) || (strcmp( f_strofID( id ), "voidptr" ) == 0)) #line 9283 "unpk.c" { #line 966 "../gen.k" /*EMPTY*/ #line 9287 "unpk.c" } #line 967 "../gen.k" else #line 9291 "unpk.c" { { (*kc_printer)("struct kc_tag_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" {\ \n kc_enum_operators prod_sel;\ \n char *name;\ \n};\ \n\ \n", kc_current_view); } } } else goto kc_unparsing_default; break; } case (int)view_gen_nodetypedefs_h: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 893 "../gen.k" /*EMPTY*/ #line 9310 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 894 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("typedef struct kc_tag_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" *", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(";\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 895 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)("typedef struct kc_tag_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" *", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(";\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 900 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 902 "../gen.k" if ((strcmp( f_strofID( id ), "int" ) == 0) || (strcmp( f_strofID( id ), "float" ) == 0)) #line 9338 "unpk.c" { #line 904 "../gen.k" /*EMPTY*/ #line 9342 "unpk.c" } #line 905 "../gen.k" else if (strcmp( f_strofID( id ), "voidptr" ) == 0) #line 9346 "unpk.c" { { (*kc_printer)("typedef kc_voidptr_t ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(";\ \n", kc_current_view); } } #line 908 "../gen.k" else #line 9355 "unpk.c" { { (*kc_printer)("typedef struct kc_tag_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" *", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(";\ \n", kc_current_view); } } } else goto kc_unparsing_default; break; } case (int)view_gen_operatormap_suboffsets: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 799 "../gen.k" /*EMPTY*/ #line 9372 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 800 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 800 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.ListAlternatives.alternatives_1; #line 804 "../gen.k" gl_phylum = id; #line 9381 "unpk.c" unparse_alternatives(a, kc_printer, kc_current_view); #line 806 "../gen.k" gl_phylum = 0; #line 9385 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 801 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 801 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.NonlistAlternatives.alternatives_1; #line 804 "../gen.k" gl_phylum = id; #line 9394 "unpk.c" unparse_alternatives(a, kc_printer, kc_current_view); #line 806 "../gen.k" gl_phylum = 0; #line 9398 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 802 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 802 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.PredefinedAlternatives.alternatives_1; #line 804 "../gen.k" gl_phylum = id; #line 9407 "unpk.c" unparse_alternatives(a, kc_printer, kc_current_view); #line 806 "../gen.k" gl_phylum = 0; #line 9411 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_operatormap_subphyla: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 768 "../gen.k" /*EMPTY*/ #line 9420 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 769 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.ListAlternatives.alternatives_1; unparse_alternatives(a, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 770 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.NonlistAlternatives.alternatives_1; unparse_alternatives(a, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 771 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.PredefinedAlternatives.alternatives_1; unparse_alternatives(a, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_operatormap_operator_fn: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 719 "../gen.k" /*EMPTY*/ #line 9444 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 721 "../gen.k" /*EMPTY*/ #line 9449 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 722 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 722 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.ListAlternatives.alternatives_1; #line 725 "../gen.k" gl_phylum = id; #line 9458 "unpk.c" unparse_alternatives(a, kc_printer, kc_current_view); #line 727 "../gen.k" gl_phylum = (ID) 0; #line 9462 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 723 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 723 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.NonlistAlternatives.alternatives_1; #line 725 "../gen.k" gl_phylum = id; #line 9471 "unpk.c" unparse_alternatives(a, kc_printer, kc_current_view); #line 727 "../gen.k" gl_phylum = (ID) 0; #line 9475 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_operatormap_c: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 668 "../gen.k" /*EMPTY*/ #line 9484 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 669 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 669 "../gen.k" storageoption st_opt = kc_p->u.PhylumDeclaration.storageoption_1; #line 669 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.ListAlternatives.alternatives_1; #line 669 "../gen.k" Ccode_option cco = kc_p->u.PhylumDeclaration.Ccode_option_1; #line 672 "../gen.k" gl_phylum = id; gl_storageoption = st_opt; gl_atomicity = 0; gl_no_attributes = f_no_attrs_in_Ccode_option( cco ); #line 9497 "unpk.c" unparse_alternatives(a, kc_printer, kc_current_view); #line 674 "../gen.k" gl_phylum = 0; gl_storageoption = 0; gl_no_attributes = False; #line 9501 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 670 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 670 "../gen.k" storageoption st_opt = kc_p->u.PhylumDeclaration.storageoption_1; #line 670 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.NonlistAlternatives.alternatives_1; #line 670 "../gen.k" Ccode_option cco = kc_p->u.PhylumDeclaration.Ccode_option_1; #line 672 "../gen.k" gl_phylum = id; gl_storageoption = st_opt; gl_atomicity = 0; gl_no_attributes = f_no_attrs_in_Ccode_option( cco ); #line 9514 "unpk.c" unparse_alternatives(a, kc_printer, kc_current_view); #line 674 "../gen.k" gl_phylum = 0; gl_storageoption = 0; gl_no_attributes = False; #line 9518 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 676 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 676 "../gen.k" storageoption st_opt = kc_p->u.PhylumDeclaration.storageoption_1; #line 676 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.PredefinedAlternatives.alternatives_1; #line 676 "../gen.k" Ccode_option cco = kc_p->u.PhylumDeclaration.Ccode_option_1; #line 678 "../gen.k" gl_phylum = id; gl_storageoption = st_opt; gl_atomicity = 1; gl_no_attributes = f_no_attrs_in_Ccode_option( cco ); #line 9531 "unpk.c" unparse_alternatives(a, kc_printer, kc_current_view); #line 680 "../gen.k" gl_phylum = 0; gl_storageoption = 0; gl_no_attributes = False; #line 9535 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_phylummap_c: { if (( kc_p->prod_sel == sel_PhylumDeclaration)) { #line 584 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 584 "../gen.k" storageoption st_opt = kc_p->u.PhylumDeclaration.storageoption_1; #line 584 "../gen.k" productionblock pb = kc_p->u.PhylumDeclaration.productionblock_1; #line 584 "../gen.k" Ccode_option cco = kc_p->u.PhylumDeclaration.Ccode_option_1; #line 586 "../gen.k" gl_phylum = id; #line 9552 "unpk.c" #line 588 "../gen.k" if ((strcmp( f_strofID( id ), "int" ) == 0) || (strcmp( f_strofID( id ), "float" ) == 0) || (strcmp( f_strofID( id ), "voidptr" ) == 0)) #line 9557 "unpk.c" { { (*kc_printer)(" { \"", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\", sizeof(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("), ", kc_current_view); } unparse_productionblock(pb, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_storageoption(st_opt, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_Ccode_option(cco, kc_printer, kc_current_view); { (*kc_printer)(" },\ \n", kc_current_view); } } #line 593 "../gen.k" else #line 9574 "unpk.c" { { (*kc_printer)(" { \"", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\", sizeof(struct kc_tag_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("), ", kc_current_view); } unparse_productionblock(pb, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_storageoption(st_opt, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_Ccode_option(cco, kc_printer, kc_current_view); { (*kc_printer)(" },\ \n", kc_current_view); } } #line 597 "../gen.k" gl_phylum = 0; #line 9591 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_enumoperators_h: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 492 "../gen.k" /*EMPTY*/ #line 9600 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 493 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.ListAlternatives.alternatives_1; unparse_alternatives(a, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 494 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.NonlistAlternatives.alternatives_1; unparse_alternatives(a, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 495 "../gen.k" alternatives a = kc_p->u.PhylumDeclaration.productionblock_1->u.PredefinedAlternatives.alternatives_1; unparse_alternatives(a, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_enumphyla_h: { if (( kc_p->prod_sel == sel_PhylumDeclaration)) { #line 470 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; { (*kc_printer)(" kc_phylum_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" = ", kc_current_view); } unparse_int(g_no_of_phyla, kc_printer, kc_current_view); { (*kc_printer)(",\ \n", kc_current_view); } #line 473 "../gen.k" g_no_of_phyla++; #line 9632 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_check_uniq2: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.storageoption_1->prod_sel == sel_PositiveStorageOption)) { #line 1745 "../util.k" /*EMPTY*/ #line 9641 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 1745 "../util.k" /*EMPTY*/ #line 9646 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 1746 "../util.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 1749 "../util.k" if (! kc_p->marked) #line 9653 "unpk.c" { #line 1750 "../util.k" v_report(NonFatal( FileLine( cl_storageID->file, cl_storageID->line ), Problem1S1ID1S1ID( "'uniq' declared phylum:", cl_uniqueID, "has non 'uniq' (transitive) subterm:", id) )); kc_p->marked = 1; #line 9661 "unpk.c" unparse_phylumdeclaration(kc_p, kc_printer, view_check_uniq1); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 1747 "../util.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 1749 "../util.k" if (! kc_p->marked) #line 9670 "unpk.c" { #line 1750 "../util.k" v_report(NonFatal( FileLine( cl_storageID->file, cl_storageID->line ), Problem1S1ID1S1ID( "'uniq' declared phylum:", cl_uniqueID, "has non 'uniq' (transitive) subterm:", id) )); kc_p->marked = 1; #line 9678 "unpk.c" unparse_phylumdeclaration(kc_p, kc_printer, view_check_uniq1); } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 1759 "../util.k" /*EMPTY*/ #line 9685 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_check_uniq1: { if (( kc_p->prod_sel == sel_PhylumDeclaration)) { #line 1724 "../util.k" productionblock pb = kc_p->u.PhylumDeclaration.productionblock_1; unparse_productionblock(pb, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check_uniq: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.storageoption_1->prod_sel == sel_NoStorageOption)) { #line 1708 "../util.k" productionblock pb = kc_p->u.PhylumDeclaration.productionblock_1; unparse_productionblock(pb, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.storageoption_1->prod_sel == sel_NegativeStorageOption)) { #line 1711 "../util.k" /*EMPTY*/ #line 9708 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.storageoption_1->prod_sel == sel_PositiveStorageOption)) { #line 1712 "../util.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 1712 "../util.k" ID s_id = kc_p->u.PhylumDeclaration.storageoption_1->u.PositiveStorageOption.ID_1; #line 1712 "../util.k" productionblock pb = kc_p->u.PhylumDeclaration.productionblock_1; #line 1714 "../util.k" kc_p->marked = 1; cl_uniqueID = id; cl_storageID = s_id; #line 9722 "unpk.c" unparse_productionblock(pb, kc_printer, view_check_uniq1); #line 1719 "../util.k" v_reset_phylumdeclaration_marks(); cl_uniqueID = (ID)0; cl_storageID = (ID)0; #line 9729 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_initializephyla_c: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 3227 "../gen.k" /*EMPTY*/ #line 9738 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 3228 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 3228 "../gen.k" Ccode_option cco = kc_p->u.PhylumDeclaration.Ccode_option_1; #line 3231 "../gen.k" if (f_something_to_initialize( cco )) #line 9747 "unpk.c" { { (*kc_printer)("static ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_initialize_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_x)\ \n#else\ \n(kc_x) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_x;\ \n#endif\ \n{\ \n", kc_current_view); } unparse_Ccode_option(cco, kc_printer, kc_current_view); unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); { (*kc_printer)(" return kc_x;\ \n}\ \n\ \n", kc_current_view); } } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 3229 "../gen.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 3229 "../gen.k" Ccode_option cco = kc_p->u.PhylumDeclaration.Ccode_option_1; #line 3231 "../gen.k" if (f_something_to_initialize( cco )) #line 9780 "unpk.c" { { (*kc_printer)("static ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_initialize_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_x)\ \n#else\ \n(kc_x) ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" kc_x;\ \n#endif\ \n{\ \n", kc_current_view); } unparse_Ccode_option(cco, kc_printer, kc_current_view); unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); { (*kc_printer)(" return kc_x;\ \n}\ \n\ \n", kc_current_view); } } } else if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 3249 "../gen.k" /*EMPTY*/ #line 9809 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_check_count1: { if (( kc_p->prod_sel == sel_PhylumDeclaration) && ( kc_p->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 197 "../util.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 197 "../util.k" storageoption stopt = kc_p->u.PhylumDeclaration.storageoption_1; #line 199 "../util.k" gl_phylum = id; #line 9822 "unpk.c" unparse_storageoption(stopt, kc_printer, kc_current_view); #line 201 "../util.k" gl_phylum = 0; #line 9826 "unpk.c" #line 202 "../util.k" v_report(NonFatal( NoFileLine(), Problem1S1ID( "no operators defined for phylum", id ))); #line 9830 "unpk.c" } else if (( kc_p->prod_sel == sel_PhylumDeclaration)) { #line 190 "../util.k" ID id = kc_p->u.PhylumDeclaration.ID_1; #line 190 "../util.k" storageoption stopt = kc_p->u.PhylumDeclaration.storageoption_1; #line 190 "../util.k" productionblock pb = kc_p->u.PhylumDeclaration.productionblock_1; #line 192 "../util.k" gl_phylum = id; #line 9841 "unpk.c" unparse_storageoption(stopt, kc_printer, kc_current_view); #line 194 "../util.k" gl_phylum = 0; #line 9845 "unpk.c" unparse_productionblock(pb, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_PhylumDeclaration)) { #line 165 "../util.k" ID i = kc_p->u.PhylumDeclaration.ID_1; #line 165 "../util.k" Ccode_option cco = kc_p->u.PhylumDeclaration.Ccode_option_1; #line 167 "../util.k" cf_pushoutmostoperators( Niloperators() ); cf_pushdollarvarsallowed( DVAllowed() ); cf_pushphylum( i ); #line 9862 "unpk.c" unparse_Ccode_option(cco, kc_printer, kc_current_view); #line 172 "../util.k" freelist_operators( cf_topoutmostoperators() ); cf_popoutmostoperators(); cf_popdollarvarsallowed(); cf_popphylum(); #line 9870 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_PhylumDeclaration: unparse_ID( kc_p->u.PhylumDeclaration.ID_1, kc_printer, kc_current_view ); unparse_storageoption( kc_p->u.PhylumDeclaration.storageoption_1, kc_printer, kc_current_view ); unparse_productionblock( kc_p->u.PhylumDeclaration.productionblock_1, kc_printer, kc_current_view ); unparse_Ccode_option( kc_p->u.PhylumDeclaration.Ccode_option_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_storageoption #ifdef KC_USE_PROTOTYPES (storageoption kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) storageoption kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_storageoption(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_operatormap_c: { if (( kc_p->prod_sel == sel_NoStorageOption)) { { (*kc_printer)("kc_not_uniq", kc_current_view); } } else if (( kc_p->prod_sel == sel_NegativeStorageOption)) { { (*kc_printer)("kc_not_uniq", kc_current_view); } } else if (( kc_p->prod_sel == sel_PositiveStorageOption)) { { (*kc_printer)("kc_uniq_nullary_operator", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_phylummap_c: { if (( kc_p->prod_sel == sel_NoStorageOption)) { { (*kc_printer)("kc_not_uniq", kc_current_view); } } else if (( kc_p->prod_sel == sel_NegativeStorageOption)) { { (*kc_printer)("kc_not_uniq", kc_current_view); } } else if (( kc_p->prod_sel == sel_PositiveStorageOption)) { #line 601 "../gen.k" ID sc = kc_p->u.PositiveStorageOption.ID_1; unparse_ID(sc, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check_count1: { if (( kc_p->prod_sel == sel_NoStorageOption)) { #line 205 "../util.k" /*EMPTY*/ #line 9933 "unpk.c" } else if (( kc_p->prod_sel == sel_NegativeStorageOption)) { #line 206 "../util.k" ID sc = kc_p->u.NegativeStorageOption.ID_1; #line 209 "../util.k" if (pg_storageclasseshavebeendefined) v_useoccurstorageclass( sc ); else v_extendoccur( sc, ITStorageClass() ); v_add_to_storageclasses( sc, gl_phylum ); #line 9944 "unpk.c" } else if (( kc_p->prod_sel == sel_PositiveStorageOption)) { #line 207 "../util.k" ID sc = kc_p->u.PositiveStorageOption.ID_1; #line 209 "../util.k" if (pg_storageclasseshavebeendefined) v_useoccurstorageclass( sc ); else v_extendoccur( sc, ITStorageClass() ); v_add_to_storageclasses( sc, gl_phylum ); #line 9955 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_error: { if (( kc_p->prod_sel == sel_NoStorageOption)) { #line 228 "../error.k" /*EMPTY*/ #line 9964 "unpk.c" } else if (( kc_p->prod_sel == sel_NegativeStorageOption)) { #line 229 "../error.k" ID id = kc_p->u.NegativeStorageOption.ID_1; { (*kc_printer)("{! ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" } at ", kc_current_view); } unparse_casestring(id->file, kc_printer, kc_current_view); { (*kc_printer)(":", kc_current_view); } unparse_int(id->line, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_PositiveStorageOption)) { #line 230 "../error.k" ID id = kc_p->u.PositiveStorageOption.ID_1; { (*kc_printer)("{ ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" } at ", kc_current_view); } unparse_casestring(id->file, kc_printer, kc_current_view); { (*kc_printer)(":", kc_current_view); } unparse_int(id->line, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_NegativeStorageOption: unparse_ID( kc_p->u.NegativeStorageOption.ID_1, kc_printer, kc_current_view ); break; case (int)sel_PositiveStorageOption: unparse_ID( kc_p->u.PositiveStorageOption.ID_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_storageclasses #ifdef KC_USE_PROTOTYPES (storageclasses kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) storageclasses kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_storageclasses(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_operatordefs_c_4a: { if (( kc_p->prod_sel == sel_Consstorageclasses) && ( kc_p->u.Consstorageclasses.ID_1->prod_sel == sel_Id) && ( kc_p->u.Consstorageclasses.ID_1->u.Id.uniqID_1->prod_sel == sel_Str) && (strcmp( kc_p->u.Consstorageclasses.ID_1->u.Id.uniqID_1->u.Str.casestring_1->name, "kc_not_uniq")==0)) { #line 3160 "../gen.k" ID sc = kc_p->u.Consstorageclasses.ID_1; { (*kc_printer)("{ kc_mainhasharray_", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); { (*kc_printer)(",\ \n 0 /*size*/,\ \n 0 /*kc_to_be_freed*/,\ \n &kc_static_hashtables[", kc_current_view); } unparse_int(gl_hashtablenr_next, kc_printer, kc_current_view); { (*kc_printer)("],\ \n &kc_static_hashtables[", kc_current_view); } unparse_int(gl_hashtablenr_prev, kc_printer, kc_current_view); { (*kc_printer)("],\ \n /* node allocation*/\ \n (kc_voidptr_t(*)())UNIQMALLOCINIT,\ \n UNIQMALLOC2,\ \n 0 /*UNIQFREEELEMENT*/,\ \n UNIQFREEALL,\ \n INUNIQBLOCK,\ \n (kc_voidptr_t)&kc_memory_info_", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); { (*kc_printer)(" /*malloc_private_data*/,\ \n (kc_voidptr_t)&kc_memory_info_", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); { (*kc_printer)(" /*static_malloc_private_data*/,\ \n 0 /*dynamic_malloc_private_data*/,\ \n 0 /*dec_dynamic_malloc_private_data*/,\ \n kc_ht_store_static,\ \n UNIQMEMORYINFO,\ \n /* bucket allocation */\ \n BUCKETALLO", kc_current_view ); (*kc_printer)("CINIT,\ \n BUCKETCALLOC,\ \n BUCKETREALLOC,\ \n 0 /*bucket_alloc_private_data*/,\ \n BUCKETFREE,\ \n BUCKETSFREE,\ \n BUCKETINC,\ \n BUCKETMEMORYINFO\ \n }", kc_current_view); } #line 3190 "../gen.k" gl_hashtablenr_next = (gl_hashtablenr_next + 1) % gl_nr_of_hashtables; gl_hashtablenr_prev = (gl_hashtablenr_prev + 1) % gl_nr_of_hashtables; #line 10060 "unpk.c" } else if (( kc_p->prod_sel == sel_Consstorageclasses) && ( kc_p->u.Consstorageclasses.ID_1->prod_sel == sel_Id) && ( kc_p->u.Consstorageclasses.ID_1->u.Id.uniqID_1->prod_sel == sel_Str) && (strcmp( kc_p->u.Consstorageclasses.ID_1->u.Id.uniqID_1->u.Str.casestring_1->name, "kc_uniq_nullary_operator")==0)) { #line 3161 "../gen.k" ID sc = kc_p->u.Consstorageclasses.ID_1; { (*kc_printer)("{ kc_mainhasharray_", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); { (*kc_printer)(",\ \n 0 /*size*/,\ \n 0 /*kc_to_be_freed*/,\ \n &kc_static_hashtables[", kc_current_view); } unparse_int(gl_hashtablenr_next, kc_printer, kc_current_view); { (*kc_printer)("],\ \n &kc_static_hashtables[", kc_current_view); } unparse_int(gl_hashtablenr_prev, kc_printer, kc_current_view); { (*kc_printer)("],\ \n /* node allocation*/\ \n (kc_voidptr_t(*)())UNIQMALLOCINIT,\ \n UNIQMALLOC2,\ \n 0 /*UNIQFREEELEMENT*/,\ \n UNIQFREEALL,\ \n INUNIQBLOCK,\ \n (kc_voidptr_t)&kc_memory_info_", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); { (*kc_printer)(" /*malloc_private_data*/,\ \n (kc_voidptr_t)&kc_memory_info_", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); { (*kc_printer)(" /*static_malloc_private_data*/,\ \n 0 /*dynamic_malloc_private_data*/,\ \n 0 /*dec_dynamic_malloc_private_data*/,\ \n kc_ht_store_static,\ \n UNIQMEMORYINFO,\ \n /* bucket allocation */\ \n BUCKETALLO", kc_current_view ); (*kc_printer)("CINIT,\ \n BUCKETCALLOC,\ \n BUCKETREALLOC,\ \n 0 /*bucket_alloc_private_data*/,\ \n BUCKETFREE,\ \n BUCKETSFREE,\ \n BUCKETINC,\ \n BUCKETMEMORYINFO\ \n }", kc_current_view); } #line 3190 "../gen.k" gl_hashtablenr_next = (gl_hashtablenr_next + 1) % gl_nr_of_hashtables; gl_hashtablenr_prev = (gl_hashtablenr_prev + 1) % gl_nr_of_hashtables; #line 10106 "unpk.c" } else if (( kc_p->prod_sel == sel_Consstorageclasses)) { #line 3193 "../gen.k" ID sc = kc_p->u.Consstorageclasses.ID_1; { (*kc_printer)("{ kc_mainhasharray_", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); { (*kc_printer)(",\ \n LARGEPRIME /*size*/,\ \n 0 /*kc_to_be_freed*/,\ \n &kc_static_hashtables[", kc_current_view); } unparse_int(gl_hashtablenr_next, kc_printer, kc_current_view); { (*kc_printer)("],\ \n &kc_static_hashtables[", kc_current_view); } unparse_int(gl_hashtablenr_prev, kc_printer, kc_current_view); { (*kc_printer)("],\ \n /* node allocation*/\ \n (kc_voidptr_t(*)())UNIQMALLOCINIT,\ \n UNIQMALLOC2,\ \n 0 /*UNIQFREEELEMENT*/,\ \n UNIQFREEALL,\ \n INUNIQBLOCK,\ \n (kc_voidptr_t)&kc_memory_info_", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); { (*kc_printer)(",\ \n (kc_voidptr_t)&kc_memory_info_", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); { (*kc_printer)(",\ \n 0 /*dynamic_malloc_private_data*/,\ \n 0 /*dec_dynamic_malloc_private_data*/,\ \n kc_ht_store_static,\ \n UNIQMEMORYINFO,\ \n /* bucket allocation */\ \n BUCKETALLOCINIT,\ \n BUCKETCALLOC,\ \n BU", kc_current_view ); (*kc_printer)("CKETREALLOC,\ \n 0 /*bucket_alloc_private_data*/,\ \n BUCKETFREE,\ \n BUCKETSFREE,\ \n BUCKETINC,\ \n BUCKETMEMORYINFO\ \n }", kc_current_view); } #line 3221 "../gen.k" gl_hashtablenr_next = (gl_hashtablenr_next + 1) % gl_nr_of_hashtables; gl_hashtablenr_prev = (gl_hashtablenr_prev + 1) % gl_nr_of_hashtables; #line 10152 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_operatordefs_c_4z: { if (( kc_p->prod_sel == sel_Nilstorageclasses)) { #line 3151 "../gen.k" /*EMPTY*/ #line 10161 "unpk.c" } else if (( kc_p->prod_sel == sel_Consstorageclasses) && ( kc_p->u.Consstorageclasses.storageclasses_1->prod_sel == sel_Nilstorageclasses)) { unparse_storageclasses(kc_p, kc_printer, view_gen_operatordefs_c_4a); } else if (( kc_p->prod_sel == sel_Consstorageclasses)) { #line 3155 "../gen.k" storageclasses r_sc = kc_p->u.Consstorageclasses.storageclasses_1; unparse_storageclasses(r_sc, kc_printer, kc_current_view); { (*kc_printer)(",\ \n", kc_current_view); } unparse_storageclasses(kc_p, kc_printer, view_gen_operatordefs_c_4a); } else goto kc_unparsing_default; break; } case (int)view_gen_operatordefs_c_4: { if (( kc_p->prod_sel == sel_Nilstorageclasses)) { #line 3145 "../gen.k" /*EMPTY*/ #line 10181 "unpk.c" } else if (( kc_p->prod_sel == sel_Consstorageclasses)) { #line 3147 "../gen.k" gl_nr_of_hashtables = length_storageclasses( Thestorageclasses ); gl_hashtablenr_next = 1; gl_hashtablenr_prev = gl_nr_of_hashtables - 1; #line 10187 "unpk.c" unparse_storageclasses(kc_p, kc_printer, view_gen_operatordefs_c_4z); } else goto kc_unparsing_default; break; } case (int)view_gen_operatordefs_c_3a: { if (( kc_p->prod_sel == sel_Consstorageclasses)) { #line 3142 "../gen.k" ID sc = kc_p->u.Consstorageclasses.ID_1; { (*kc_printer)("&kc_static_hashtables[(int)", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); { (*kc_printer)("]", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_operatordefs_c_3: { if (( kc_p->prod_sel == sel_Nilstorageclasses)) { #line 3134 "../gen.k" /*EMPTY*/ #line 10208 "unpk.c" } else if (( kc_p->prod_sel == sel_Consstorageclasses) && ( kc_p->u.Consstorageclasses.storageclasses_1->prod_sel == sel_Nilstorageclasses)) { unparse_storageclasses(kc_p, kc_printer, view_gen_operatordefs_c_3a); } else if (( kc_p->prod_sel == sel_Consstorageclasses)) { #line 3138 "../gen.k" storageclasses r_sc = kc_p->u.Consstorageclasses.storageclasses_1; unparse_storageclasses(r_sc, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_storageclasses(kc_p, kc_printer, view_gen_operatordefs_c_3a); } else goto kc_unparsing_default; break; } case (int)view_gen_operatordefs_c_2a: { if (( kc_p->prod_sel == sel_Nilstorageclasses)) { #line 3126 "../gen.k" /*EMPTY*/ #line 10227 "unpk.c" } else if (( kc_p->prod_sel == sel_Consstorageclasses) && ( kc_p->u.Consstorageclasses.storageclasses_1->prod_sel == sel_Nilstorageclasses)) { #line 3127 "../gen.k" ID sc = kc_p->u.Consstorageclasses.ID_1; { (*kc_printer)("&kc_memory_info_", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Consstorageclasses)) { #line 3130 "../gen.k" ID sc = kc_p->u.Consstorageclasses.ID_1; #line 3130 "../gen.k" storageclasses r_sc = kc_p->u.Consstorageclasses.storageclasses_1; unparse_storageclasses(r_sc, kc_printer, kc_current_view); { (*kc_printer)(", &kc_memory_info_", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_operatordefs_c_2: { if (( kc_p->prod_sel == sel_Nilstorageclasses)) { #line 3120 "../gen.k" /*EMPTY*/ #line 10251 "unpk.c" } else if (( kc_p->prod_sel == sel_Consstorageclasses)) { #line 3121 "../gen.k" ID sc = kc_p->u.Consstorageclasses.ID_1; #line 3121 "../gen.k" storageclasses r_sc = kc_p->u.Consstorageclasses.storageclasses_1; unparse_storageclasses(r_sc, kc_printer, kc_current_view); { (*kc_printer)("static kc_memory_info_t kc_memory_info_", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); { (*kc_printer)(" = { 0, 0, 0, &kc_mainmemory_freelist, 0, KC_MEMORY_BLOCKSIZE };\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_operatordefs_c_1: { if (( kc_p->prod_sel == sel_Nilstorageclasses)) { #line 3112 "../gen.k" /*EMPTY*/ #line 10271 "unpk.c" } else if (( kc_p->prod_sel == sel_Consstorageclasses) && ( kc_p->u.Consstorageclasses.storageclasses_1->prod_sel == sel_Nilstorageclasses)) { { (*kc_printer)("True", kc_current_view); } } else if (( kc_p->prod_sel == sel_Consstorageclasses)) { #line 3116 "../gen.k" storageclasses r_sc = kc_p->u.Consstorageclasses.storageclasses_1; unparse_storageclasses(r_sc, kc_printer, kc_current_view); { (*kc_printer)(", True", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_operatordefs_c_0: { if (( kc_p->prod_sel == sel_Nilstorageclasses)) { #line 3099 "../gen.k" /*EMPTY*/ #line 10289 "unpk.c" } else if (( kc_p->prod_sel == sel_Consstorageclasses) && ( kc_p->u.Consstorageclasses.ID_1->prod_sel == sel_Id) && ( kc_p->u.Consstorageclasses.ID_1->u.Id.uniqID_1->prod_sel == sel_Str) && (strcmp( kc_p->u.Consstorageclasses.ID_1->u.Id.uniqID_1->u.Str.casestring_1->name, "kc_not_uniq")==0)) { #line 3105 "../gen.k" ID sc = kc_p->u.Consstorageclasses.ID_1; #line 3105 "../gen.k" storageclasses r_sc = kc_p->u.Consstorageclasses.storageclasses_1; unparse_storageclasses(r_sc, kc_printer, kc_current_view); { (*kc_printer)("static kc_hashtableentry_t kc_mainhasharray_", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); { (*kc_printer)("[1][(int)kc_last_storage_mode];\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_Consstorageclasses) && ( kc_p->u.Consstorageclasses.ID_1->prod_sel == sel_Id) && ( kc_p->u.Consstorageclasses.ID_1->u.Id.uniqID_1->prod_sel == sel_Str) && (strcmp( kc_p->u.Consstorageclasses.ID_1->u.Id.uniqID_1->u.Str.casestring_1->name, "kc_uniq_nullary_operator")==0)) { #line 3106 "../gen.k" ID sc = kc_p->u.Consstorageclasses.ID_1; #line 3106 "../gen.k" storageclasses r_sc = kc_p->u.Consstorageclasses.storageclasses_1; unparse_storageclasses(r_sc, kc_printer, kc_current_view); { (*kc_printer)("static kc_hashtableentry_t kc_mainhasharray_", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); { (*kc_printer)("[1][(int)kc_last_storage_mode];\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_Consstorageclasses)) { #line 3100 "../gen.k" ID sc = kc_p->u.Consstorageclasses.ID_1; #line 3100 "../gen.k" storageclasses r_sc = kc_p->u.Consstorageclasses.storageclasses_1; unparse_storageclasses(r_sc, kc_printer, kc_current_view); { (*kc_printer)("static kc_hashtableentry_t kc_mainhasharray_", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); { (*kc_printer)("[LARGEPRIME+1][(int)kc_last_storage_mode]; /* +1 because LARGEPRIME can be 0 */\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_operatordefs_c: { if (( kc_p->prod_sel == sel_Nilstorageclasses)) { #line 3094 "../gen.k" /*EMPTY*/ #line 10331 "unpk.c" } else if (( kc_p->prod_sel == sel_Consstorageclasses) && ( kc_p->u.Consstorageclasses.storageclasses_1->prod_sel == sel_Nilstorageclasses)) { #line 3095 "../gen.k" ID sc = kc_p->u.Consstorageclasses.ID_1; { (*kc_printer)("\"", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); { (*kc_printer)("\"", kc_current_view); } } else if (( kc_p->prod_sel == sel_Consstorageclasses)) { #line 3096 "../gen.k" ID sc = kc_p->u.Consstorageclasses.ID_1; #line 3096 "../gen.k" storageclasses r_sc = kc_p->u.Consstorageclasses.storageclasses_1; unparse_storageclasses(r_sc, kc_printer, kc_current_view); { (*kc_printer)(", \"", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); { (*kc_printer)("\"", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_uniqmap_c_2: { if (( kc_p->prod_sel == sel_Nilstorageclasses)) { #line 859 "../gen.k" /*EMPTY*/ #line 10357 "unpk.c" } else if (( kc_p->prod_sel == sel_Consstorageclasses) && ( kc_p->u.Consstorageclasses.storageclasses_1->prod_sel == sel_Nilstorageclasses)) { #line 860 "../gen.k" ID sc = kc_p->u.Consstorageclasses.ID_1; #line 861 "../gen.k" if (length_phylumnames(kc_p->phyla) > 0) #line 10364 "unpk.c" { { (*kc_printer)(" kc_phylumstorageclass_", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); } #line 863 "../gen.k" else #line 10371 "unpk.c" { { (*kc_printer)(" (KC_UNIQ_INFO)0", kc_current_view); } } } else if (( kc_p->prod_sel == sel_Consstorageclasses)) { #line 867 "../gen.k" ID sc = kc_p->u.Consstorageclasses.ID_1; #line 867 "../gen.k" storageclasses r_sc = kc_p->u.Consstorageclasses.storageclasses_1; unparse_storageclasses(r_sc, kc_printer, kc_current_view); #line 869 "../gen.k" if (length_phylumnames(kc_p->phyla) > 0) #line 10384 "unpk.c" { { (*kc_printer)(",\ \n kc_phylumstorageclass_", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); } #line 872 "../gen.k" else #line 10392 "unpk.c" { { (*kc_printer)(",\ \n (KC_UNIQ_INFO)0", kc_current_view); } } } else goto kc_unparsing_default; break; } case (int)view_gen_uniqmap_c_1: { if (( kc_p->prod_sel == sel_Nilstorageclasses)) { #line 847 "../gen.k" /*EMPTY*/ #line 10405 "unpk.c" } else if (( kc_p->prod_sel == sel_Consstorageclasses)) { #line 848 "../gen.k" ID sc = kc_p->u.Consstorageclasses.ID_1; #line 848 "../gen.k" storageclasses r_sc = kc_p->u.Consstorageclasses.storageclasses_1; unparse_storageclasses(r_sc, kc_printer, kc_current_view); #line 850 "../gen.k" if (length_phylumnames(kc_p->phyla) > 0) #line 10415 "unpk.c" { { (*kc_printer)("static kc_enum_phyla kc_phylumstorageclass_", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); { (*kc_printer)("[] = { kc_one_before_first_phylum, ", kc_current_view); } unparse_phylumnames(kc_p->phyla, kc_printer, kc_current_view); { (*kc_printer)("kc_last_phylum };\ \n", kc_current_view); } } } else goto kc_unparsing_default; break; } case (int)view_gen_uniqmap_c: { if (( kc_p->prod_sel == sel_Nilstorageclasses)) { #line 835 "../gen.k" /*EMPTY*/ #line 10432 "unpk.c" } else if (( kc_p->prod_sel == sel_Consstorageclasses)) { unparse_storageclasses(kc_p, kc_printer, view_gen_uniqmap_c_1); { (*kc_printer)("\ \nKC_UNIQ_INFO kc_UniqInfo[] = {\ \n", kc_current_view); } unparse_storageclasses(kc_p, kc_printer, view_gen_uniqmap_c_2); { (*kc_printer)("\ \n};\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_operatormap_type_h: { if (( kc_p->prod_sel == sel_Nilstorageclasses)) { #line 560 "../gen.k" /*EMPTY*/ #line 10451 "unpk.c" } else if (( kc_p->prod_sel == sel_Consstorageclasses) && ( kc_p->u.Consstorageclasses.storageclasses_1->prod_sel == sel_Nilstorageclasses)) { #line 561 "../gen.k" ID sc = kc_p->u.Consstorageclasses.ID_1; unparse_ID(sc, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Consstorageclasses)) { #line 562 "../gen.k" ID sc = kc_p->u.Consstorageclasses.ID_1; #line 562 "../gen.k" storageclasses r_sc = kc_p->u.Consstorageclasses.storageclasses_1; unparse_storageclasses(r_sc, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_ID(sc, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consstorageclasses: unparse_ID( kc_p->u.Consstorageclasses.ID_1, kc_printer, kc_current_view ); unparse_storageclasses( kc_p->u.Consstorageclasses.storageclasses_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_productionblock #ifdef KC_USE_PROTOTYPES (productionblock kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) productionblock kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_productionblock(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_unparsedefs_c: { if (( kc_p->prod_sel == sel_ListAlternatives)) { #line 7940 "../gen.k" alternatives a = kc_p->u.ListAlternatives.alternatives_1; #line 7942 "../gen.k" unparseviewsinfo a_unparseviewsinfo = f_unparseviewsinfoofalternatives( a, Theuviewnames ); #line 10500 "unpk.c" #line 7943 "../gen.k" gl_unparse_goto_used = False; #line 10503 "unpk.c" unparse_unparseviewsinfo(a_unparseviewsinfo, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_NonlistAlternatives)) { #line 7941 "../gen.k" alternatives a = kc_p->u.NonlistAlternatives.alternatives_1; #line 7942 "../gen.k" unparseviewsinfo a_unparseviewsinfo = f_unparseviewsinfoofalternatives( a, Theuviewnames ); #line 10511 "unpk.c" #line 7943 "../gen.k" gl_unparse_goto_used = False; #line 10514 "unpk.c" unparse_unparseviewsinfo(a_unparseviewsinfo, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_PredefinedAlternatives)) { #line 7939 "../gen.k" /*EMPTY*/ #line 10520 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_rewritedefs_c: { if (( kc_p->prod_sel == sel_ListAlternatives)) { #line 6946 "../gen.k" alternatives a = kc_p->u.ListAlternatives.alternatives_1; #line 6948 "../gen.k" rewriteviewsinfo a_rewriteviewsinfo = f_rewriteviewsinfoofalternatives( a, Therviewnames ); #line 10531 "unpk.c" #line 6949 "../gen.k" gl_rewrite_goto_used = False; #line 10534 "unpk.c" unparse_rewriteviewsinfo(a_rewriteviewsinfo, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_NonlistAlternatives)) { #line 6947 "../gen.k" alternatives a = kc_p->u.NonlistAlternatives.alternatives_1; #line 6948 "../gen.k" rewriteviewsinfo a_rewriteviewsinfo = f_rewriteviewsinfoofalternatives( a, Therviewnames ); #line 10542 "unpk.c" #line 6949 "../gen.k" gl_rewrite_goto_used = False; #line 10545 "unpk.c" unparse_rewriteviewsinfo(a_rewriteviewsinfo, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_phylummap_c: { if (( kc_p->prod_sel == sel_Emptyproductionblock)) { #line 603 "../gen.k" /*EMPTY*/ #line 10555 "unpk.c" } else if (( kc_p->prod_sel == sel_ListAlternatives) && ( kc_p->u.ListAlternatives.alternatives_1->prod_sel == sel_Consalternatives) && ( kc_p->u.ListAlternatives.alternatives_1->u.Consalternatives.alternative_1->prod_sel == sel_Alternative) && ( kc_p->u.ListAlternatives.alternatives_1->u.Consalternatives.alternatives_1->prod_sel == sel_Nilalternatives)) { #line 604 "../gen.k" ID oid = kc_p->u.ListAlternatives.alternatives_1->u.Consalternatives.alternative_1->u.Alternative.ID_1; { (*kc_printer)("sel_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)(", sel_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_ListAlternatives) && ( kc_p->u.ListAlternatives.alternatives_1->prod_sel == sel_Consalternatives) && ( kc_p->u.ListAlternatives.alternatives_1->u.Consalternatives.alternative_1->prod_sel == sel_Alternative)) { #line 611 "../gen.k" ID oid = kc_p->u.ListAlternatives.alternatives_1->u.Consalternatives.alternative_1->u.Alternative.ID_1; #line 611 "../gen.k" alternatives ra = kc_p->u.ListAlternatives.alternatives_1->u.Consalternatives.alternatives_1; { (*kc_printer)("sel_", kc_current_view); } unparse_alternatives(ra, kc_printer, kc_current_view); { (*kc_printer)(", sel_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_NonlistAlternatives) && ( kc_p->u.NonlistAlternatives.alternatives_1->prod_sel == sel_Consalternatives) && ( kc_p->u.NonlistAlternatives.alternatives_1->u.Consalternatives.alternative_1->prod_sel == sel_Alternative) && ( kc_p->u.NonlistAlternatives.alternatives_1->u.Consalternatives.alternatives_1->prod_sel == sel_Nilalternatives)) { #line 605 "../gen.k" ID oid = kc_p->u.NonlistAlternatives.alternatives_1->u.Consalternatives.alternative_1->u.Alternative.ID_1; { (*kc_printer)("sel_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)(", sel_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_NonlistAlternatives) && ( kc_p->u.NonlistAlternatives.alternatives_1->prod_sel == sel_Consalternatives) && ( kc_p->u.NonlistAlternatives.alternatives_1->u.Consalternatives.alternative_1->prod_sel == sel_Alternative)) { #line 612 "../gen.k" ID oid = kc_p->u.NonlistAlternatives.alternatives_1->u.Consalternatives.alternative_1->u.Alternative.ID_1; #line 612 "../gen.k" alternatives ra = kc_p->u.NonlistAlternatives.alternatives_1->u.Consalternatives.alternatives_1; { (*kc_printer)("sel_", kc_current_view); } unparse_alternatives(ra, kc_printer, kc_current_view); { (*kc_printer)(", sel_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_PredefinedAlternatives) && ( kc_p->u.PredefinedAlternatives.alternatives_1->prod_sel == sel_Consalternatives) && ( kc_p->u.PredefinedAlternatives.alternatives_1->u.Consalternatives.alternative_1->prod_sel == sel_Alternative) && ( kc_p->u.PredefinedAlternatives.alternatives_1->u.Consalternatives.alternatives_1->prod_sel == sel_Nilalternatives)) { #line 606 "../gen.k" ID oid = kc_p->u.PredefinedAlternatives.alternatives_1->u.Consalternatives.alternative_1->u.Alternative.ID_1; { (*kc_printer)("sel_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)(", sel_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_PredefinedAlternatives) && ( kc_p->u.PredefinedAlternatives.alternatives_1->prod_sel == sel_Consalternatives) && ( kc_p->u.PredefinedAlternatives.alternatives_1->u.Consalternatives.alternative_1->prod_sel == sel_Alternative)) { #line 613 "../gen.k" ID oid = kc_p->u.PredefinedAlternatives.alternatives_1->u.Consalternatives.alternative_1->u.Alternative.ID_1; #line 613 "../gen.k" alternatives ra = kc_p->u.PredefinedAlternatives.alternatives_1->u.Consalternatives.alternatives_1; { (*kc_printer)("sel_", kc_current_view); } unparse_alternatives(ra, kc_printer, kc_current_view); { (*kc_printer)(", sel_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check_uniq1: { if (( kc_p->prod_sel == sel_Emptyproductionblock)) { #line 1726 "../util.k" /*EMPTY*/ #line 10618 "unpk.c" } else if (( kc_p->prod_sel == sel_ListAlternatives)) { #line 1727 "../util.k" alternatives alt = kc_p->u.ListAlternatives.alternatives_1; unparse_alternatives(alt, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_NonlistAlternatives)) { #line 1728 "../util.k" alternatives alt = kc_p->u.NonlistAlternatives.alternatives_1; unparse_alternatives(alt, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_PredefinedAlternatives)) { #line 1729 "../util.k" alternatives alt = kc_p->u.PredefinedAlternatives.alternatives_1; unparse_alternatives(alt, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check_count1: { if (( kc_p->prod_sel == sel_ListAlternatives)) { #line 216 "../util.k" alternatives alt = kc_p->u.ListAlternatives.alternatives_1; unparse_alternatives(alt, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_NonlistAlternatives)) { #line 217 "../util.k" alternatives alt = kc_p->u.NonlistAlternatives.alternatives_1; unparse_alternatives(alt, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_PredefinedAlternatives)) { #line 220 "../util.k" /*EMPTY*/ #line 10652 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_ListAlternatives: unparse_alternatives( kc_p->u.ListAlternatives.alternatives_1, kc_printer, kc_current_view ); unparse_ID( kc_p->u.ListAlternatives.ID_1, kc_printer, kc_current_view ); break; case (int)sel_NonlistAlternatives: unparse_alternatives( kc_p->u.NonlistAlternatives.alternatives_1, kc_printer, kc_current_view ); break; case (int)sel_PredefinedAlternatives: unparse_alternatives( kc_p->u.PredefinedAlternatives.alternatives_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_alternatives #ifdef KC_USE_PROTOTYPES (alternatives kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) alternatives kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_alternatives(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_unparsedefs_default_c: { if (( kc_p->prod_sel == sel_Nilalternatives)) { #line 8023 "../gen.k" /*EMPTY*/ #line 10691 "unpk.c" } else if (( kc_p->prod_sel == sel_Consalternatives) && ( kc_p->u.Consalternatives.alternative_1->prod_sel == sel_Alternative) && ( kc_p->u.Consalternatives.alternative_1->u.Alternative.arguments_1->prod_sel == sel_Nilarguments)) { #line 8024 "../gen.k" alternatives ra = kc_p->u.Consalternatives.alternatives_1; unparse_alternatives(ra, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Consalternatives) && ( kc_p->u.Consalternatives.alternative_1->prod_sel == sel_Alternative)) { #line 8028 "../gen.k" ID oid = kc_p->u.Consalternatives.alternative_1->u.Alternative.ID_1; #line 8028 "../gen.k" arguments args = kc_p->u.Consalternatives.alternative_1->u.Alternative.arguments_1; #line 8028 "../gen.k" alternatives ra = kc_p->u.Consalternatives.alternatives_1; unparse_alternatives(ra, kc_printer, kc_current_view); #line 8031 "../gen.k" gl_operator = oid; #line 10708 "unpk.c" { (*kc_printer)(" case (int)sel_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)(":\ \n", kc_current_view); } unparse_arguments(args, kc_printer, kc_current_view); { (*kc_printer)(" break;\ \n", kc_current_view); } #line 8037 "../gen.k" gl_operator = 0; #line 10718 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_rewritedefs_other_c: { if (( kc_p->prod_sel == sel_Nilalternatives)) { #line 7026 "../gen.k" /*EMPTY*/ #line 10727 "unpk.c" } else if (( kc_p->prod_sel == sel_Consalternatives)) { #line 7027 "../gen.k" alternative a = kc_p->u.Consalternatives.alternative_1; #line 7027 "../gen.k" alternatives r_a = kc_p->u.Consalternatives.alternatives_1; unparse_alternatives(r_a, kc_printer, kc_current_view); unparse_alternative(a, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_rewritedefs_default_c: { if (( kc_p->prod_sel == sel_Nilalternatives)) { #line 7026 "../gen.k" /*EMPTY*/ #line 10744 "unpk.c" } else if (( kc_p->prod_sel == sel_Consalternatives)) { #line 7027 "../gen.k" alternative a = kc_p->u.Consalternatives.alternative_1; #line 7027 "../gen.k" alternatives r_a = kc_p->u.Consalternatives.alternatives_1; unparse_alternatives(r_a, kc_printer, kc_current_view); unparse_alternative(a, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_operatordefs_hash_c: { if (( kc_p->prod_sel == sel_Consalternatives) && ( kc_p->u.Consalternatives.alternative_1->prod_sel == sel_Alternative)) { #line 3706 "../gen.k" ID oid = kc_p->u.Consalternatives.alternative_1->u.Alternative.ID_1; #line 3706 "../gen.k" arguments args = kc_p->u.Consalternatives.alternative_1->u.Alternative.arguments_1; #line 3706 "../gen.k" alternatives ra = kc_p->u.Consalternatives.alternatives_1; unparse_alternatives(ra, kc_printer, kc_current_view); #line 3709 "../gen.k" gl_operator = oid; #line 10768 "unpk.c" #line 3710 "../gen.k" if (f_Nilarguments( args )) #line 10771 "unpk.c" { unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_fnarg_and_decls); { (*kc_printer)(")\ \n#else\ \n(", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_fnargs); { (*kc_printer)(")", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_fnargdecls); { (*kc_printer)("\ \n#endif\ \n{", kc_current_view); } { (*kc_printer)(" static ", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(" kc_x = (", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")0;\ \n KC_COLLECT_STATS0(KC_CREATE_STATS(sel_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)("));\ \n if (kc_x == (", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")0) {\ \n KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)(" ));\ \n kc_x = (", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)("), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data);\ \n kc_x->prod_sel = sel_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)(";\ \n", kc_current_view); } #line 3725 "../gen.k" if (f_something_to_initialize( gl_cco )) #line 10814 "unpk.c" { { (*kc_printer)(" kc_x = kc_initialize_", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)("(kc_x);\ \n", kc_current_view); } } { (*kc_printer)(" }\ \n return kc_x;\ \n}\ \n\ \n", kc_current_view); } } #line 3735 "../gen.k" else #line 10829 "unpk.c" { unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_fnarg_and_decls); { (*kc_printer)(")\ \n#else\ \n(", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_fnargs); { (*kc_printer)(")", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_fnargdecls); { (*kc_printer)("\ \n#endif\ \n{ register ", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(" kc_x;\ \n int kc_i;\ \n register kc_hashtableentry_t* kc_hte;\ \n unsigned kc_hashval = (unsigned)0;\ \n YYSTYPE *kc_ptr, *kc_beyond;\ \n kc_hashtable_t kc_a_ht = kc_hashtables[(int)", kc_current_view); } unparse_ID(gl_sto, kc_printer, kc_current_view); { (*kc_printer)("];\ \n\ \n", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_asserts); { (*kc_printer)(" KC_COLLECT_STATS0(KC_CREATE_STATS(sel_", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)("));\ \n OPERATORHASH((unsigned) sel_", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(");\ \n", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_hash); { (*kc_printer)(" kc_hashval = kc_hashval%kc_a_ht->size;\ \n for (kc_i=0; kc_i < (int)kc_last_storage_mode; kc_i++) {\ \n kc_hte = &(kc_a_ht->hashtable[kc_hashval][kc_i]);\ \n if (kc_hte->nr != 0) {\ \n kc_beyond =", kc_current_view ); (*kc_printer)(" &kc_hte->index[kc_hte->nr];\ \n for (kc_ptr = &kc_hte->index[0]; kc_ptr < kc_beyond; kc_ptr++){\ \n kc_x= kc_ptr->yt_", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(";\ \n if ((kc_x->prod_sel == sel_", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(") ", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_test); { (*kc_printer)(" )\ \n return(kc_x);\ \n } } }\ \n KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)("));\ \n kc_hte = &(kc_a_ht->hashtable[kc_hashval][(int)kc_a_ht->mode]);\ \n if (kc_hte->nr >= kc_hte->ibound) kc_growindex(kc_hte, kc_a_ht);\ \n kc_x = (", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")(*kc_a_ht->malloc)((kc_size_t)sizeof(struct kc_tag_", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)("), kc_a_ht->malloc_private_data);\ \n kc_x->prod_sel = sel_", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(";\ \n", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_assignments); { (*kc_printer)(" kc_hte->index[kc_hte->nr++].yt_", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(" = kc_x;\ \n", kc_current_view); } #line 3774 "../gen.k" if (f_something_to_initialize( gl_cco )) #line 10905 "unpk.c" { { (*kc_printer)(" kc_x = kc_initialize_", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)("(kc_x);\ \n", kc_current_view); } } { (*kc_printer)(" return kc_x;\ \n}\ \n\ \n", kc_current_view); } } #line 3783 "../gen.k" gl_operator = (ID)0; #line 10919 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_operatordefs_nonhash_c: { if (( kc_p->prod_sel == sel_Consalternatives) && ( kc_p->u.Consalternatives.alternative_1->prod_sel == sel_Alternative)) { #line 3665 "../gen.k" ID oid = kc_p->u.Consalternatives.alternative_1->u.Alternative.ID_1; #line 3665 "../gen.k" arguments args = kc_p->u.Consalternatives.alternative_1->u.Alternative.arguments_1; #line 3665 "../gen.k" alternatives ra = kc_p->u.Consalternatives.alternatives_1; unparse_alternatives(ra, kc_printer, kc_current_view); #line 3668 "../gen.k" gl_operator = oid; #line 10935 "unpk.c" unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_fnarg_and_decls); { (*kc_printer)(")\ \n#else\ \n(", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_fnargs); { (*kc_printer)(")", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_fnargdecls); { (*kc_printer)("\ \n#endif\ \n{", kc_current_view); } #line 3676 "../gen.k" if (f_Nilarguments( args ) && f_no_attrs_in_Ccode_option( gl_cco )) #line 10954 "unpk.c" { { (*kc_printer)(" static ", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(" kc_x = (", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")0;\ \n KC_COLLECT_STATS0(KC_CREATE_STATS(sel_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)("));\ \n if (kc_x == (", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")0) {\ \n KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)(" ));\ \n kc_x = (", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")(*kc_hashtables[(int)kc_uniq_nullary_operator]->malloc)((kc_size_t)sizeof(struct kc_tag_", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)("), kc_hashtables[(int)kc_uniq_nullary_operator]->malloc_private_data);\ \n kc_x->prod_sel = sel_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)(";\ \n }\ \n", kc_current_view); } } #line 3685 "../gen.k" else #line 10983 "unpk.c" { { (*kc_printer)(" register ", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(" kc_x = (", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(") NONUNIQMALLOC((kc_size_t)sizeof(struct kc_tag_", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)("));\ \n KC_COLLECT_STATS0(KC_CREATE_STATS(sel_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)("));\ \n KC_COLLECT_STATS0(KC_EXISTINGNOTFOUND_STATS(sel_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)("));\ \n", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_asserts); { (*kc_printer)(" kc_x->prod_sel = sel_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)(";\ \n", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_assignments); } #line 3695 "../gen.k" if (f_something_to_initialize( gl_cco )) #line 11008 "unpk.c" { { (*kc_printer)(" kc_x = kc_initialize_", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)("(kc_x);\ \n", kc_current_view); } } { (*kc_printer)(" return kc_x;\ \n", kc_current_view); } { (*kc_printer)("}\ \n\ \n", kc_current_view); } #line 3704 "../gen.k" gl_operator = (ID)0; #line 11022 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_operatordecls_h: { if (( kc_p->prod_sel == sel_Nilalternatives)) { #line 1382 "../gen.k" /*EMPTY*/ #line 11031 "unpk.c" } else if (( kc_p->prod_sel == sel_Consalternatives) && ( kc_p->u.Consalternatives.alternative_1->prod_sel == sel_Alternative) && ( kc_p->u.Consalternatives.alternatives_1->prod_sel == sel_Nilalternatives)) { #line 1388 "../gen.k" ID oid = kc_p->u.Consalternatives.alternative_1->u.Alternative.ID_1; #line 1388 "../gen.k" arguments args = kc_p->u.Consalternatives.alternative_1->u.Alternative.arguments_1; unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)(" KC__P((", kc_current_view); } unparse_arguments(args, kc_printer, kc_current_view); { (*kc_printer)("))", kc_current_view); } } else if (( kc_p->prod_sel == sel_Consalternatives) && ( kc_p->u.Consalternatives.alternative_1->prod_sel == sel_Alternative)) { #line 1383 "../gen.k" ID oid = kc_p->u.Consalternatives.alternative_1->u.Alternative.ID_1; #line 1383 "../gen.k" arguments args = kc_p->u.Consalternatives.alternative_1->u.Alternative.arguments_1; #line 1383 "../gen.k" alternatives ra = kc_p->u.Consalternatives.alternatives_1; unparse_alternatives(ra, kc_printer, kc_current_view); { (*kc_printer)(",\ \n", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)(" KC__P((", kc_current_view); } unparse_arguments(args, kc_printer, kc_current_view); { (*kc_printer)("))", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_nodetypes_h: { if (( kc_p->prod_sel == sel_Nilalternatives)) { #line 976 "../gen.k" /*EMPTY*/ #line 11065 "unpk.c" } else if (( kc_p->prod_sel == sel_Consalternatives) && ( kc_p->u.Consalternatives.alternative_1->prod_sel == sel_Alternative) && ( kc_p->u.Consalternatives.alternative_1->u.Alternative.arguments_1->prod_sel == sel_Nilarguments)) { #line 977 "../gen.k" alternatives ra = kc_p->u.Consalternatives.alternatives_1; unparse_alternatives(ra, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Consalternatives) && ( kc_p->u.Consalternatives.alternative_1->prod_sel == sel_Alternative)) { #line 981 "../gen.k" ID oid = kc_p->u.Consalternatives.alternative_1->u.Alternative.ID_1; #line 981 "../gen.k" arguments args = kc_p->u.Consalternatives.alternative_1->u.Alternative.arguments_1; #line 981 "../gen.k" alternatives ra = kc_p->u.Consalternatives.alternatives_1; unparse_alternatives(ra, kc_printer, kc_current_view); { (*kc_printer)(" struct {\ \n", kc_current_view); } unparse_arguments(args, kc_printer, kc_current_view); { (*kc_printer)(" } ", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)(";\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_operatormap_suboffsets: { if (( kc_p->prod_sel == sel_Nilalternatives)) { #line 808 "../gen.k" /*EMPTY*/ #line 11095 "unpk.c" } else if (( kc_p->prod_sel == sel_Consalternatives) && ( kc_p->u.Consalternatives.alternative_1->prod_sel == sel_Alternative)) { #line 809 "../gen.k" ID oid = kc_p->u.Consalternatives.alternative_1->u.Alternative.ID_1; #line 809 "../gen.k" arguments args = kc_p->u.Consalternatives.alternative_1->u.Alternative.arguments_1; #line 809 "../gen.k" alternatives ra = kc_p->u.Consalternatives.alternatives_1; unparse_alternatives(ra, kc_printer, kc_current_view); #line 812 "../gen.k" gl_operator = oid; #line 11107 "unpk.c" unparse_arguments(args, kc_printer, view_count_args); #line 814 "../gen.k" if (gl_no_of_args) #line 11111 "unpk.c" { { (*kc_printer)("static kc_size_t kc_suboffsets_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)("[] = { ", kc_current_view); } unparse_arguments(args, kc_printer, kc_current_view); { (*kc_printer)(" };\ \n", kc_current_view); } } #line 820 "../gen.k" gl_operator = 0; #line 11122 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_operatormap_subphyla: { if (( kc_p->prod_sel == sel_Nilalternatives)) { #line 773 "../gen.k" /*EMPTY*/ #line 11131 "unpk.c" } else if (( kc_p->prod_sel == sel_Consalternatives) && ( kc_p->u.Consalternatives.alternative_1->prod_sel == sel_Alternative)) { #line 774 "../gen.k" ID oid = kc_p->u.Consalternatives.alternative_1->u.Alternative.ID_1; #line 774 "../gen.k" arguments args = kc_p->u.Consalternatives.alternative_1->u.Alternative.arguments_1; #line 774 "../gen.k" alternatives ra = kc_p->u.Consalternatives.alternatives_1; unparse_alternatives(ra, kc_printer, kc_current_view); unparse_arguments(args, kc_printer, view_count_args); #line 778 "../gen.k" if (gl_no_of_args) #line 11144 "unpk.c" { { (*kc_printer)("static kc_enum_phyla kc_subphyla_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)("[] = { ", kc_current_view); } unparse_arguments(args, kc_printer, kc_current_view); { (*kc_printer)(" };\ \n", kc_current_view); } } } else goto kc_unparsing_default; break; } case (int)view_gen_operatormap_operator_fn: { if (( kc_p->prod_sel == sel_Nilalternatives)) { #line 729 "../gen.k" /*EMPTY*/ #line 11161 "unpk.c" } else if (( kc_p->prod_sel == sel_Consalternatives) && ( kc_p->u.Consalternatives.alternative_1->prod_sel == sel_Alternative)) { #line 730 "../gen.k" ID oid = kc_p->u.Consalternatives.alternative_1->u.Alternative.ID_1; #line 730 "../gen.k" arguments args = kc_p->u.Consalternatives.alternative_1->u.Alternative.arguments_1; #line 730 "../gen.k" alternatives ra = kc_p->u.Consalternatives.alternatives_1; unparse_alternatives(ra, kc_printer, kc_current_view); { (*kc_printer)("static ", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(" kc_opfn_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_prodsel_fnarg_and_decls); { (*kc_printer)(")\ \n#else\ \n(", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_prodsel_fnargs); { (*kc_printer)(")", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_prodsel_fnargdecls); { (*kc_printer)("\ \n#endif\ \n{ return ", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)("(", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_fnargs); { (*kc_printer)("); }\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_operatormap_c: { if (( kc_p->prod_sel == sel_Nilalternatives)) { #line 682 "../gen.k" /*EMPTY*/ #line 11201 "unpk.c" } else if (( kc_p->prod_sel == sel_Consalternatives) && ( kc_p->u.Consalternatives.alternative_1->prod_sel == sel_Alternative)) { #line 683 "../gen.k" ID oid = kc_p->u.Consalternatives.alternative_1->u.Alternative.ID_1; #line 683 "../gen.k" arguments args = kc_p->u.Consalternatives.alternative_1->u.Alternative.arguments_1; #line 683 "../gen.k" alternatives ra = kc_p->u.Consalternatives.alternatives_1; unparse_alternatives(ra, kc_printer, kc_current_view); unparse_arguments(args, kc_printer, view_count_args); { (*kc_printer)(" { \"", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)("\", ", kc_current_view); } unparse_int(gl_no_of_args, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_int(gl_atomicity, kc_printer, kc_current_view); { (*kc_printer)(", kc_phylum_", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } #line 688 "../gen.k" if (gl_no_of_args) #line 11223 "unpk.c" { { (*kc_printer)("kc_subphyla_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)(", kc_suboffsets_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_storageoption(gl_storageoption, kc_printer, view_gen_phylummap_c); } #line 691 "../gen.k" else #line 11234 "unpk.c" { { (*kc_printer)("(kc_enum_phyla_list)0, (kc_size_t_list)0, ", kc_current_view); } #line 693 "../gen.k" if ((int) gl_no_attributes) #line 11239 "unpk.c" { { (*kc_printer)("kc_uniq_nullary_operator", kc_current_view); } } #line 693 "../gen.k" else #line 11245 "unpk.c" { unparse_storageoption(gl_storageoption, kc_printer, kc_current_view); } } { (*kc_printer)(", ", kc_current_view); } #line 696 "../gen.k" if (gl_atomicity) #line 11253 "unpk.c" { { (*kc_printer)("0", kc_current_view); } } #line 696 "../gen.k" else #line 11259 "unpk.c" { { (*kc_printer)("(kc_voidptr_t(*) KC__P((KC_DOTDOTDOT)))kc_opfn_", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); } { (*kc_printer)(" },\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_phylummap_c: { if (( kc_p->prod_sel == sel_Nilalternatives)) { #line 617 "../gen.k" /*EMPTY*/ #line 11274 "unpk.c" } else if (( kc_p->prod_sel == sel_Consalternatives) && ( kc_p->u.Consalternatives.alternative_1->prod_sel == sel_Alternative) && ( kc_p->u.Consalternatives.alternatives_1->prod_sel == sel_Nilalternatives)) { #line 618 "../gen.k" ID oid = kc_p->u.Consalternatives.alternative_1->u.Alternative.ID_1; unparse_ID(oid, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Consalternatives)) { #line 622 "../gen.k" alternatives ra = kc_p->u.Consalternatives.alternatives_1; unparse_alternatives(ra, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_enumoperators_h: { if (( kc_p->prod_sel == sel_Consalternatives) && ( kc_p->u.Consalternatives.alternatives_1->prod_sel == sel_Nilalternatives)) { #line 500 "../gen.k" alternative a = kc_p->u.Consalternatives.alternative_1; unparse_alternative(a, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Consalternatives)) { #line 499 "../gen.k" alternative a = kc_p->u.Consalternatives.alternative_1; #line 499 "../gen.k" alternatives as = kc_p->u.Consalternatives.alternatives_1; unparse_alternatives(as, kc_printer, kc_current_view); unparse_alternative(a, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check_uniq1: { if (( kc_p->prod_sel == sel_Nilalternatives)) { #line 1733 "../util.k" /*EMPTY*/ #line 11310 "unpk.c" } else if (( kc_p->prod_sel == sel_Consalternatives)) { #line 1731 "../util.k" alternative a = kc_p->u.Consalternatives.alternative_1; #line 1731 "../util.k" alternatives ralts = kc_p->u.Consalternatives.alternatives_1; unparse_alternatives(ralts, kc_printer, kc_current_view); unparse_alternative(a, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check_count1: { if (( kc_p->prod_sel == sel_Nilalternatives)) { #line 235 "../util.k" /*EMPTY*/ #line 11327 "unpk.c" } else if (( kc_p->prod_sel == sel_Consalternatives) && ( kc_p->u.Consalternatives.alternative_1->prod_sel == sel_Alternative)) { #line 221 "../util.k" alternative alt = kc_p->u.Consalternatives.alternative_1; #line 221 "../util.k" ID id = kc_p->u.Consalternatives.alternative_1->u.Alternative.ID_1; #line 221 "../util.k" arguments args = kc_p->u.Consalternatives.alternative_1->u.Alternative.arguments_1; #line 221 "../util.k" alternatives ralts = kc_p->u.Consalternatives.alternatives_1; unparse_alternatives(ralts, kc_printer, kc_current_view); unparse_arguments(args, kc_printer, kc_current_view); #line 224 "../util.k" v_resetcount(); alt->bigatoms = cl_bigatoms; if (cl_bigatoms) { if (cg_bigatomoperators) { cg_bigatomoperators = Consoperators( id, cg_bigatomoperators ); } else { cg_bigatomoperators = Consoperators( id, Niloperators() ); } } cl_bigatoms = False; #line 11351 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consalternatives: unparse_alternative( kc_p->u.Consalternatives.alternative_1, kc_printer, kc_current_view ); unparse_alternatives( kc_p->u.Consalternatives.alternatives_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_alternative #ifdef KC_USE_PROTOTYPES (alternative kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) alternative kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_alternative(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_rewritedefs_other_c: { if (( kc_p->prod_sel == sel_Alternative)) { #line 7047 "../gen.k" ID id = kc_p->u.Alternative.ID_1; #line 7047 "../gen.k" arguments args = kc_p->u.Alternative.arguments_1; #line 7049 "../gen.k" gl_operator = id; gl_args = args; gl_rewrite_rewriteinfo = f_rewriterulesinfoofalternativeinview(kc_p, gl_view); gl_outmost_nonleaf_predicates = f_outmost_nl_preds_in_rewriterulesinfo(gl_rewrite_rewriteinfo); #line 11390 "unpk.c" #line 7052 "../gen.k" if (! eq_rewriterulesinfo( gl_rewrite_rewriteinfo, Nilrewriterulesinfo())) #line 11393 "unpk.c" { { (*kc_printer)(" case (int)sel_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(": {\ \n", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_rewritedefs_rewritearg_c); #line 7056 "../gen.k" if (gl_outmost_nonleaf_predicates) #line 11402 "unpk.c" { unparse_arguments(args, kc_printer, view_gen_rewritedefs_nl_arg_c); } unparse_rewriterulesinfo(gl_rewrite_rewriteinfo, kc_printer, kc_current_view); { (*kc_printer)(" }\ \n", kc_current_view); } } #line 7063 "../gen.k" gl_operator = 0; gl_args = 0; gl_rewrite_rewriteinfo = 0; gl_outmost_nonleaf_predicates = False; #line 11412 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_rewritedefs_default_c: { if (( kc_p->prod_sel == sel_Alternative)) { #line 7031 "../gen.k" ID id = kc_p->u.Alternative.ID_1; #line 7031 "../gen.k" arguments args = kc_p->u.Alternative.arguments_1; #line 7033 "../gen.k" gl_operator = id; gl_args = args; gl_rewrite_rewriteinfo = f_rewriterulesinfoofalternativeinview(kc_p, gl_view); gl_outmost_nonleaf_predicates = f_outmost_nl_preds_in_rewriterulesinfo(gl_rewrite_rewriteinfo); #line 11427 "unpk.c" { (*kc_printer)(" case (int)sel_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(": {\ \n", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_rewritedefs_rewritearg_c); #line 7039 "../gen.k" if (gl_outmost_nonleaf_predicates) #line 11435 "unpk.c" { unparse_arguments(args, kc_printer, view_gen_rewritedefs_nl_arg_c); } unparse_rewriterulesinfo(gl_rewrite_rewriteinfo, kc_printer, kc_current_view); { (*kc_printer)(" }\ \n", kc_current_view); } #line 7045 "../gen.k" gl_operator = 0; gl_args = 0; gl_rewrite_rewriteinfo = 0; gl_outmost_nonleaf_predicates = False; #line 11444 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_enumoperators_h: { if (( kc_p->prod_sel == sel_Alternative)) { #line 501 "../gen.k" ID id = kc_p->u.Alternative.ID_1; { (*kc_printer)(" sel_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" = ", kc_current_view); } unparse_int(g_no_of_operators, kc_printer, kc_current_view); { (*kc_printer)(",\ \n", kc_current_view); } #line 504 "../gen.k" g_no_of_operators++; #line 11461 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_check_uniq1: { if (( kc_p->prod_sel == sel_Alternative)) { #line 1734 "../util.k" arguments args = kc_p->u.Alternative.arguments_1; unparse_arguments(args, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Alternative: unparse_ID( kc_p->u.Alternative.ID_1, kc_printer, kc_current_view ); unparse_arguments( kc_p->u.Alternative.arguments_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_arguments #ifdef KC_USE_PROTOTYPES (arguments kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) arguments kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_arguments(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_unparsedefs_default_c: { if (( kc_p->prod_sel == sel_Consarguments)) { #line 8039 "../gen.k" ID a = kc_p->u.Consarguments.ID_1; #line 8039 "../gen.k" arguments rargs = kc_p->u.Consarguments.arguments_1; unparse_arguments(rargs, kc_printer, kc_current_view); { (*kc_printer)(" unparse_", kc_current_view); } unparse_ID(a, kc_printer, kc_current_view); { (*kc_printer)("( kc_p->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(a, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(", kc_printer, kc_current_view );\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_rewritedefs_args_c: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 7106 "../gen.k" /*EMPTY*/ #line 11524 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments) && ( kc_p->u.Consarguments.arguments_1->prod_sel == sel_Nilarguments)) { #line 7107 "../gen.k" ID a_arg = kc_p->u.Consarguments.ID_1; unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 7110 "../gen.k" ID a_arg = kc_p->u.Consarguments.ID_1; #line 7110 "../gen.k" arguments r_args = kc_p->u.Consarguments.arguments_1; unparse_arguments(r_args, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_rewritedefs_dotestarg_c: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 7098 "../gen.k" /*EMPTY*/ #line 11551 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments) && ( kc_p->u.Consarguments.arguments_1->prod_sel == sel_Nilarguments)) { #line 7099 "../gen.k" ID a_arg = kc_p->u.Consarguments.ID_1; unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(" == kc_p->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 7102 "../gen.k" ID a_arg = kc_p->u.Consarguments.ID_1; #line 7102 "../gen.k" arguments r_args = kc_p->u.Consarguments.arguments_1; unparse_arguments(r_args, kc_printer, kc_current_view); { (*kc_printer)(") && (", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(" == kc_p->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_rewritedefs_testarg_c: { if (( kc_p->prod_sel == sel_Nilarguments)) { { (*kc_printer)(" return kc_p;\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 7087 "../gen.k" if (gl_outmost_nonleaf_predicates) #line 11594 "unpk.c" { { (*kc_printer)(" return kc_rp;\ \n", kc_current_view); } } #line 7090 "../gen.k" else #line 11601 "unpk.c" { { (*kc_printer)(" if ((", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_rewritedefs_dotestarg_c); { (*kc_printer)("))\ \n return kc_p;\ \n else\ \n return ", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)("(", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_rewritedefs_args_c); { (*kc_printer)(");\ \n", kc_current_view); } } } else goto kc_unparsing_default; break; } case (int)view_gen_rewritedefs_nl_arg_c: { if (( kc_p->prod_sel == sel_Nilarguments)) { { (*kc_printer)(" ", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(" kc_rp = kc_p;\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_Consarguments)) { { (*kc_printer)(" ", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(" kc_rp = ((", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_rewritedefs_dotestarg_c); { (*kc_printer)("))\ \n ? kc_p\ \n : ", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)("(", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_rewritedefs_args_c); { (*kc_printer)(");\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_rewritedefs_rewritearg_c: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 7066 "../gen.k" /*EMPTY*/ #line 11647 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 7067 "../gen.k" ID a_arg = kc_p->u.Consarguments.ID_1; #line 7067 "../gen.k" arguments r_args = kc_p->u.Consarguments.arguments_1; unparse_arguments(r_args, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(" = rewrite_", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("(kc_p->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(", kc_current_view);\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_copydefs_bigatom_do_arguse_c: { if (( kc_p->prod_sel == sel_Consarguments)) { #line 6777 "../gen.k" ID a_arg = kc_p->u.Consarguments.ID_1; #line 6778 "../gen.k" if (f_isbigatom( a_arg )) #line 11681 "unpk.c" { { (*kc_printer)(" kc_sub_", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); } #line 6780 "../gen.k" else #line 11690 "unpk.c" { { (*kc_printer)(" (", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)(")kc_subtmp[", kc_current_view); } unparse_int(gl_j, kc_printer, kc_current_view); { (*kc_printer)("]", kc_current_view); } } #line 6783 "../gen.k" gl_j++; #line 11700 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_copydefs_bigatom_arguse_c: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 6767 "../gen.k" gl_j = 0; #line 11709 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments) && ( kc_p->u.Consarguments.arguments_1->prod_sel == sel_Nilarguments)) { #line 6774 "../gen.k" gl_j = 0; #line 11714 "unpk.c" unparse_arguments(kc_p, kc_printer, view_gen_copydefs_bigatom_do_arguse_c); } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 6768 "../gen.k" arguments r_args = kc_p->u.Consarguments.arguments_1; unparse_arguments(r_args, kc_printer, kc_current_view); { (*kc_printer)(",", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_copydefs_bigatom_do_arguse_c); } else goto kc_unparsing_default; break; } case (int)view_gen_copydefs_bigatom_argset_c: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 6755 "../gen.k" gl_j = 0; #line 11731 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 6756 "../gen.k" ID a_arg = kc_p->u.Consarguments.ID_1; #line 6756 "../gen.k" arguments r_args = kc_p->u.Consarguments.arguments_1; unparse_arguments(r_args, kc_printer, kc_current_view); #line 6758 "../gen.k" if (f_isbigatom( a_arg )) #line 11741 "unpk.c" { { (*kc_printer)(" kc_sub_", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(" = copy_", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("(((", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")kc_p)->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(", kc_copy_attributes);\ \n", kc_current_view); } } #line 6761 "../gen.k" else #line 11762 "unpk.c" { { (*kc_printer)(" kc_subtmp[", kc_current_view); } unparse_int(gl_j, kc_printer, kc_current_view); { (*kc_printer)("] = kc_do_copy_phylum((kc_voidptr_t)((", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")kc_p)->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(", kc_copy_attributes, kc_phylum_", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)(");\ \n", kc_current_view); } } #line 6765 "../gen.k" gl_j++; #line 11781 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_copydefs_bigatom_argdefs_c: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 6747 "../gen.k" /*EMPTY*/ #line 11790 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 6748 "../gen.k" ID a_arg = kc_p->u.Consarguments.ID_1; #line 6748 "../gen.k" arguments r_args = kc_p->u.Consarguments.arguments_1; unparse_arguments(r_args, kc_printer, kc_current_view); #line 6750 "../gen.k" if (f_isbigatom( a_arg )) #line 11800 "unpk.c" { { (*kc_printer)(" ", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)(" kc_sub_", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(";\ \n", kc_current_view); } } } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_write2structuredef_bigatom_do_c: { if (( kc_p->prod_sel == sel_Consarguments)) { #line 6519 "../gen.k" ID a_arg = kc_p->u.Consarguments.ID_1; #line 6520 "../gen.k" if (f_isbigatom( a_arg )) #line 11821 "unpk.c" { { (*kc_printer)(" kc_CSGIOwrite2structure_", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("( kc_stream, ((", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")kc_p)->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(");\ \n", kc_current_view); } } #line 6523 "../gen.k" else #line 11838 "unpk.c" { { (*kc_printer)(" kc_CSGIOwrite2structure(kc_stream, (kc_voidptr_t)((", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")kc_p)->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(", kc_phylum_", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)(" );\ \n", kc_current_view); } } } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_write2structuredef_bigatom_c: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 6511 "../gen.k" /*EMPTY*/ #line 11861 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments) && ( kc_p->u.Consarguments.arguments_1->prod_sel == sel_Nilarguments)) { unparse_arguments(kc_p, kc_printer, view_gen_csgio_write2structuredef_bigatom_do_c); } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 6512 "../gen.k" arguments r_args = kc_p->u.Consarguments.arguments_1; unparse_arguments(r_args, kc_printer, kc_current_view); unparse_arguments(kc_p, kc_printer, view_gen_csgio_write2structuredef_bigatom_do_c); } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_scandef_bigatom_do_c: { if (( kc_p->prod_sel == sel_Consarguments)) { #line 6438 "../gen.k" ID a_arg = kc_p->u.Consarguments.ID_1; #line 6439 "../gen.k" if (f_isbigatom( a_arg )) #line 11881 "unpk.c" { { (*kc_printer)(" kc_CSGIOscan_", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("( kc_stream, ((", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")kc_p)->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(");\ \n", kc_current_view); } } #line 6442 "../gen.k" else #line 11898 "unpk.c" { { (*kc_printer)(" kc_CSGIOscan(kc_stream, (kc_voidptr_t)((", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")kc_p)->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(", kc_phylum_", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)(" );\ \n", kc_current_view); } } } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_scandef_bigatom_c: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 6430 "../gen.k" /*EMPTY*/ #line 11921 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments) && ( kc_p->u.Consarguments.arguments_1->prod_sel == sel_Nilarguments)) { unparse_arguments(kc_p, kc_printer, view_gen_csgio_scandef_bigatom_do_c); } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 6431 "../gen.k" arguments r_args = kc_p->u.Consarguments.arguments_1; unparse_arguments(r_args, kc_printer, kc_current_view); unparse_arguments(kc_p, kc_printer, view_gen_csgio_scandef_bigatom_do_c); } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_bigatom_do_arguse_c: { if (( kc_p->prod_sel == sel_Consarguments)) { #line 6377 "../gen.k" ID a_arg = kc_p->u.Consarguments.ID_1; { (*kc_printer)(" kc_subtmp[", kc_current_view); } unparse_int(gl_j, kc_printer, kc_current_view); { (*kc_printer)("].yt_", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); #line 6379 "../gen.k" gl_j++; #line 11945 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_bigatom_arguse_c: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 6367 "../gen.k" gl_j = 0; #line 11954 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments) && ( kc_p->u.Consarguments.arguments_1->prod_sel == sel_Nilarguments)) { #line 6374 "../gen.k" gl_j = 0; #line 11959 "unpk.c" unparse_arguments(kc_p, kc_printer, view_gen_csgio_bigatom_do_arguse_c); } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 6368 "../gen.k" arguments r_args = kc_p->u.Consarguments.arguments_1; unparse_arguments(r_args, kc_printer, kc_current_view); { (*kc_printer)(",", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_csgio_bigatom_do_arguse_c); } else goto kc_unparsing_default; break; } case (int)view_gen_printdotdefs_bigatom_do_c: { if (( kc_p->prod_sel == sel_Consarguments)) { #line 4774 "../gen.k" ID a_arg = kc_p->u.Consarguments.ID_1; #line 4775 "../gen.k" if (f_isbigatom( a_arg )) #line 11978 "unpk.c" { { (*kc_printer)(" kc_do_printdot_add_edge_", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("(kc_p, kc_phylum, ((", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")kc_p)->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(", kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix);\ \n kc_do_printdot__", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("(kc_f, ((", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")kc_p)->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(", False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1);\ \n", kc_current_view); } } #line 4779 "../gen.k" else #line 12006 "unpk.c" { { (*kc_printer)(" kc_do_printdot_add_edge(kc_f, kc_phylum, (kc_voidptr_t)((", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")kc_p)->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(", kc_phylum_", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)(", kc_i+1, kc_edge_nr, kc_edges, kc_edge_prefix);\ \n kc_do_printdot_phylum(kc_f, (kc_voidptr_t)((", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")kc_p)->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(", kc_phylum_", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)(", False, kc_edge_nr, kc_edges, kc_edge_prefix, kc_phy_labels, kc_use_ctxt, kc_p, kc_i+1);\ \n", kc_current_view); } } { (*kc_printer)(" kc_i++;\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_printdotdefs_bigatom_c: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 4766 "../gen.k" /*EMPTY*/ #line 12042 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments) && ( kc_p->u.Consarguments.arguments_1->prod_sel == sel_Nilarguments)) { unparse_arguments(kc_p, kc_printer, view_gen_printdotdefs_bigatom_do_c); } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 4767 "../gen.k" arguments r_args = kc_p->u.Consarguments.arguments_1; unparse_arguments(r_args, kc_printer, kc_current_view); unparse_arguments(kc_p, kc_printer, view_gen_printdotdefs_bigatom_do_c); } else goto kc_unparsing_default; break; } case (int)view_gen_printdefs_bigatom_do_c: { if (( kc_p->prod_sel == sel_Consarguments)) { #line 4278 "../gen.k" ID a_arg = kc_p->u.Consarguments.ID_1; #line 4279 "../gen.k" if (f_isbigatom( a_arg )) #line 12062 "unpk.c" { { (*kc_printer)(" fprint_", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("(kc_f, ((", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")kc_p)->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(");\ \n", kc_current_view); } } #line 4282 "../gen.k" else #line 12079 "unpk.c" { { (*kc_printer)(" kc_do_print_phylum(kc_f, (kc_voidptr_t)((", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")kc_p)->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(", kc_phylum_", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)(" );\ \n", kc_current_view); } } } else goto kc_unparsing_default; break; } case (int)view_gen_printdefs_bigatom_c: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 4270 "../gen.k" /*EMPTY*/ #line 12102 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments) && ( kc_p->u.Consarguments.arguments_1->prod_sel == sel_Nilarguments)) { unparse_arguments(kc_p, kc_printer, view_gen_printdefs_bigatom_do_c); } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 4271 "../gen.k" arguments r_args = kc_p->u.Consarguments.arguments_1; unparse_arguments(r_args, kc_printer, kc_current_view); unparse_arguments(kc_p, kc_printer, view_gen_printdefs_bigatom_do_c); } else goto kc_unparsing_default; break; } case (int)view_gen_eqdefs_bigatom_do_c: { if (( kc_p->prod_sel == sel_Consarguments)) { #line 4100 "../gen.k" ID a_arg = kc_p->u.Consarguments.ID_1; #line 4101 "../gen.k" if (f_isbigatom( a_arg )) #line 12122 "unpk.c" { { (*kc_printer)("eq_", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("(((", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")kc_p1)->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(", ((", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")kc_p2)->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(")", kc_current_view); } } #line 4103 "../gen.k" else #line 12146 "unpk.c" { { (*kc_printer)("kc_do_eq_phylum((kc_voidptr_t)((", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")kc_p1)->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(", (kc_voidptr_t)((", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(")kc_p2)->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(", kc_phylum_", kc_current_view); } unparse_ID(a_arg, kc_printer, kc_current_view); { (*kc_printer)(")", kc_current_view); } } } else goto kc_unparsing_default; break; } case (int)view_gen_eqdefs_bigatom_c: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 4090 "../gen.k" /*EMPTY*/ #line 12176 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments) && ( kc_p->u.Consarguments.arguments_1->prod_sel == sel_Nilarguments)) { unparse_arguments(kc_p, kc_printer, view_gen_eqdefs_bigatom_do_c); } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 4091 "../gen.k" arguments r_args = kc_p->u.Consarguments.arguments_1; unparse_arguments(r_args, kc_printer, kc_current_view); { (*kc_printer)(" &&\ \n ", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_eqdefs_bigatom_do_c); } else goto kc_unparsing_default; break; } case (int)view_gen_test: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 3838 "../gen.k" /*EMPTY*/ #line 12196 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 3839 "../gen.k" arguments rargs = kc_p->u.Consarguments.arguments_1; unparse_arguments(rargs, kc_printer, kc_current_view); { (*kc_printer)(" && (kc_x->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_argseqnr); { (*kc_printer)(" == ", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_argseqnr); { (*kc_printer)(")", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_hash: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 3821 "../gen.k" /*EMPTY*/ #line 12217 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 3822 "../gen.k" ID a = kc_p->u.Consarguments.ID_1; #line 3822 "../gen.k" arguments rargs = kc_p->u.Consarguments.arguments_1; unparse_arguments(rargs, kc_printer, kc_current_view); #line 3824 "../gen.k" if (eq_ID( Id(Str(mkcasestring("int"))), a )) #line 12227 "unpk.c" { { (*kc_printer)(" INTHASH(", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_argseqnr); { (*kc_printer)(");\ \n", kc_current_view); } } #line 3827 "../gen.k" else if (eq_ID( Id(Str(mkcasestring("float"))), a )) #line 12236 "unpk.c" { { (*kc_printer)(" FLOATHASH(", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_argseqnr); { (*kc_printer)(");\ \n", kc_current_view); } } #line 3830 "../gen.k" else if (eq_ID( Id(Str(mkcasestring("voidptr"))), a )) #line 12245 "unpk.c" { { (*kc_printer)(" VOIDPTRHASH(", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_argseqnr); { (*kc_printer)(");\ \n", kc_current_view); } } #line 3833 "../gen.k" else #line 12254 "unpk.c" { { (*kc_printer)(" HASH(", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_argseqnr); { (*kc_printer)(");\ \n", kc_current_view); } } } else goto kc_unparsing_default; break; } case (int)view_gen_assignments: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 3815 "../gen.k" /*EMPTY*/ #line 12269 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 3816 "../gen.k" arguments rargs = kc_p->u.Consarguments.arguments_1; unparse_arguments(rargs, kc_printer, kc_current_view); { (*kc_printer)(" kc_x->u.", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_argseqnr); { (*kc_printer)(" = ", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_argseqnr); { (*kc_printer)(";\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_asserts: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 3808 "../gen.k" /*EMPTY*/ #line 12291 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 3809 "../gen.k" ID a = kc_p->u.Consarguments.ID_1; #line 3809 "../gen.k" arguments rargs = kc_p->u.Consarguments.arguments_1; unparse_arguments(rargs, kc_printer, kc_current_view); { (*kc_printer)(" /*SUPPRESS 622*/\ \n assert_", kc_current_view); } unparse_ID(a, kc_printer, kc_current_view); { (*kc_printer)("( ", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_argseqnr); { (*kc_printer)(", \"", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_argseqnr); { (*kc_printer)("\" );\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_fnarg_and_decls: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 3800 "../gen.k" /*EMPTY*/ #line 12316 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments) && ( kc_p->u.Consarguments.arguments_1->prod_sel == sel_Nilarguments)) { #line 3801 "../gen.k" ID a = kc_p->u.Consarguments.ID_1; unparse_ID(a, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_argseqnr); } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 3804 "../gen.k" ID a = kc_p->u.Consarguments.ID_1; #line 3804 "../gen.k" arguments rargs = kc_p->u.Consarguments.arguments_1; unparse_arguments(rargs, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_ID(a, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_argseqnr); } else goto kc_unparsing_default; break; } case (int)view_gen_fnargdecls: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 3796 "../gen.k" /*EMPTY*/ #line 12343 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 3797 "../gen.k" ID a = kc_p->u.Consarguments.ID_1; #line 3797 "../gen.k" arguments rargs = kc_p->u.Consarguments.arguments_1; unparse_arguments(rargs, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(a, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_argseqnr); { (*kc_printer)("; ", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_fnargs: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 3789 "../gen.k" /*EMPTY*/ #line 12364 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments) && ( kc_p->u.Consarguments.arguments_1->prod_sel == sel_Nilarguments)) { unparse_arguments(kc_p, kc_printer, view_gen_argseqnr); } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 3793 "../gen.k" arguments rargs = kc_p->u.Consarguments.arguments_1; unparse_arguments(rargs, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_argseqnr); } else goto kc_unparsing_default; break; } case (int)view_gen_argseqnr: { if (( kc_p->prod_sel == sel_Consarguments)) { #line 3785 "../gen.k" ID a = kc_p->u.Consarguments.ID_1; unparse_ID(a, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_operatordecls_h: { if (( kc_p->prod_sel == sel_Consarguments) && ( kc_p->u.Consarguments.arguments_1->prod_sel == sel_Nilarguments)) { #line 1392 "../gen.k" ID a = kc_p->u.Consarguments.ID_1; unparse_ID(a, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 1395 "../gen.k" ID a = kc_p->u.Consarguments.ID_1; #line 1395 "../gen.k" arguments rargs = kc_p->u.Consarguments.arguments_1; unparse_arguments(rargs, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_ID(a, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_nodetypes_h: { if (( kc_p->prod_sel == sel_Consarguments)) { #line 990 "../gen.k" ID a = kc_p->u.Consarguments.ID_1; #line 990 "../gen.k" arguments rargs = kc_p->u.Consarguments.arguments_1; unparse_arguments(rargs, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(a, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(a, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(kc_p->seqnr, kc_printer, kc_current_view); { (*kc_printer)(";\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_operatormap_suboffsets: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 822 "../gen.k" /*EMPTY*/ #line 12431 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments) && ( kc_p->u.Consarguments.arguments_1->prod_sel == sel_Nilarguments)) { { (*kc_printer)("KC_OFFSETOF( struct kc_tag_", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_argseqnr); { (*kc_printer)(" )", kc_current_view); } } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 823 "../gen.k" arguments ra = kc_p->u.Consarguments.arguments_1; unparse_arguments(ra, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } { (*kc_printer)("KC_OFFSETOF( struct kc_tag_", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_argseqnr); { (*kc_printer)(" )", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_operatormap_subphyla: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 785 "../gen.k" /*EMPTY*/ #line 12462 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments) && ( kc_p->u.Consarguments.arguments_1->prod_sel == sel_Nilarguments)) { #line 791 "../gen.k" ID a = kc_p->u.Consarguments.ID_1; { (*kc_printer)("kc_phylum_", kc_current_view); } unparse_ID(a, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 786 "../gen.k" ID a = kc_p->u.Consarguments.ID_1; #line 786 "../gen.k" arguments ra = kc_p->u.Consarguments.arguments_1; unparse_arguments(ra, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } { (*kc_printer)("kc_phylum_", kc_current_view); } unparse_ID(a, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_prodsel_fnargdecls: { if (( kc_p->prod_sel == sel_Nilarguments)) { { (*kc_printer)("kc_enum_operators kc_prod_sel;", kc_current_view); } } else if (( kc_p->prod_sel == sel_Consarguments)) { { (*kc_printer)("kc_enum_operators kc_prod_sel; ", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_fnargdecls); } else goto kc_unparsing_default; break; } case (int)view_gen_prodsel_fnargs: { if (( kc_p->prod_sel == sel_Nilarguments)) { { (*kc_printer)("kc_prod_sel", kc_current_view); } } else if (( kc_p->prod_sel == sel_Consarguments)) { { (*kc_printer)("kc_prod_sel, ", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_fnargs); } else goto kc_unparsing_default; break; } case (int)view_gen_prodsel_fnarg_and_decls: { if (( kc_p->prod_sel == sel_Nilarguments)) { { (*kc_printer)("kc_enum_operators kc_prod_sel", kc_current_view); } } else if (( kc_p->prod_sel == sel_Consarguments)) { { (*kc_printer)("kc_enum_operators kc_prod_sel, ", kc_current_view); } unparse_arguments(kc_p, kc_printer, view_gen_fnarg_and_decls); } else goto kc_unparsing_default; break; } case (int)view_count_args: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 708 "../gen.k" gl_no_of_args = 0; #line 12520 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 710 "../gen.k" arguments ra = kc_p->u.Consarguments.arguments_1; unparse_arguments(ra, kc_printer, kc_current_view); #line 712 "../gen.k" gl_no_of_args++; #line 12528 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_check_uniq1: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 1761 "../util.k" /*EMPTY*/ #line 12537 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 1735 "../util.k" ID id = kc_p->u.Consarguments.ID_1; #line 1735 "../util.k" arguments rargs = kc_p->u.Consarguments.arguments_1; #line 1737 "../util.k" phylumdeclaration tmp = f_lookupdecl( id ); #line 12546 "unpk.c" unparse_arguments(rargs, kc_printer, kc_current_view); #line 1739 "../util.k" if (tmp) #line 12550 "unpk.c" { unparse_phylumdeclaration(tmp, kc_printer, view_check_uniq2); } } else goto kc_unparsing_default; break; } case (int)view_check_count1: { if (( kc_p->prod_sel == sel_Nilarguments)) { #line 244 "../util.k" /*EMPTY*/ #line 12562 "unpk.c" } else if (( kc_p->prod_sel == sel_Consarguments)) { #line 236 "../util.k" ID id = kc_p->u.Consarguments.ID_1; #line 236 "../util.k" arguments rargs = kc_p->u.Consarguments.arguments_1; unparse_arguments(rargs, kc_printer, kc_current_view); #line 239 "../util.k" v_useoccurphylum( id ); kc_p->seqnr = f_getcount( id ); cl_bigatoms = (boolean) (cl_bigatoms || f_isbigatom( id )); #line 12575 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consarguments: unparse_ID( kc_p->u.Consarguments.ID_1, kc_printer, kc_current_view ); unparse_arguments( kc_p->u.Consarguments.arguments_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_argument #ifdef KC_USE_PROTOTYPES (argument kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) argument kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_argument(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { if (( kc_p->prod_sel == sel_Argument)) { #line 3328 "../gen.k" ID id = kc_p->u.Argument.ID_1; #line 3328 "../gen.k" int i = kc_p->u.Argument.int_1; unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(i, kc_printer, kc_current_view); } else switch((int)kc_p->prod_sel) { case (int)sel_Argument: unparse_ID( kc_p->u.Argument.ID_1, kc_printer, kc_current_view ); unparse_int( kc_p->u.Argument.int_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_Ccode_option #ifdef KC_USE_PROTOTYPES (Ccode_option kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) Ccode_option kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_Ccode_option(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_nodetypes_h: { if (( kc_p->prod_sel == sel_CcodeOption)) { #line 995 "../gen.k" attributes a = kc_p->u.CcodeOption.attributes_1; unparse_attributes(a, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_phylummap_c: { if (( kc_p->prod_sel == sel_CcodeOption)) { #line 625 "../gen.k" attributes a = kc_p->u.CcodeOption.attributes_1; unparse_attributes(a, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_initializephyla_c: { if (( kc_p->prod_sel == sel_CcodeOption)) { #line 3250 "../gen.k" attributes attr = kc_p->u.CcodeOption.attributes_1; #line 3250 "../gen.k" Ctexts init = kc_p->u.CcodeOption.Ctexts_1; unparse_attributes(attr, kc_printer, kc_current_view); unparse_Ctexts(init, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_CcodeOption)) { #line 178 "../util.k" Ctexts ct = kc_p->u.CcodeOption.Ctexts_1; unparse_Ctexts(ct, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_CcodeOption: unparse_attributes( kc_p->u.CcodeOption.attributes_1, kc_printer, kc_current_view ); unparse_Ctexts( kc_p->u.CcodeOption.Ctexts_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_attributes #ifdef KC_USE_PROTOTYPES (attributes kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) attributes kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_attributes(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_copy_attributes_c_doit: { if (( kc_p->prod_sel == sel_Nilattributes)) { #line 6577 "../gen.k" /*EMPTY*/ #line 12703 "unpk.c" } else if (( kc_p->prod_sel == sel_Consattributes) && ( kc_p->u.Consattributes.attribute_1->prod_sel == sel_Attribute)) { #line 6578 "../gen.k" ID id = kc_p->u.Consattributes.attribute_1->u.Attribute.ID_2; #line 6578 "../gen.k" attributes ra = kc_p->u.Consattributes.attributes_1; unparse_attributes(ra, kc_printer, kc_current_view); { (*kc_printer)(" kc_p2->", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" = kc_p1->", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(";\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_copy_attributes_c: { if (( kc_p->prod_sel == sel_Nilattributes)) { #line 6563 "../gen.k" /*EMPTY*/ #line 12725 "unpk.c" } else if (( kc_p->prod_sel == sel_Consattributes)) { { (*kc_printer)("static void kc_copy_attributes_", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(" kc_p1, ", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(" kc_p2)\ \n#else\ \n(kc_p1, kc_p2) ", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(" kc_p1, kc_p2;\ \n#endif\ \n{\ \n", kc_current_view); } unparse_attributes(kc_p, kc_printer, view_gen_copy_attributes_c_doit); { (*kc_printer)("}\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_nodetypes_h: { if (( kc_p->prod_sel == sel_Nilattributes)) { #line 998 "../gen.k" /*EMPTY*/ #line 12755 "unpk.c" } else if (( kc_p->prod_sel == sel_Consattributes) && ( kc_p->u.Consattributes.attribute_1->prod_sel == sel_Attribute)) { #line 999 "../gen.k" ID t = kc_p->u.Consattributes.attribute_1->u.Attribute.ID_1; #line 999 "../gen.k" ID id = kc_p->u.Consattributes.attribute_1->u.Attribute.ID_2; #line 999 "../gen.k" attributes ra = kc_p->u.Consattributes.attributes_1; unparse_attributes(ra, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(t, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(";\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_phylummap_c: { if (( kc_p->prod_sel == sel_Nilattributes)) { { (*kc_printer)("0", kc_current_view); } } else if (( kc_p->prod_sel == sel_Consattributes)) { { (*kc_printer)("KC__C((void(*)(kc_voidptr_t, kc_voidptr_t)))kc_copy_attributes_", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_initializephyla_c: { if (( kc_p->prod_sel == sel_Nilattributes)) { #line 3277 "../gen.k" /*EMPTY*/ #line 12790 "unpk.c" } else if (( kc_p->prod_sel == sel_Consattributes) && ( kc_p->u.Consattributes.attribute_1->prod_sel == sel_Attribute) && ( kc_p->u.Consattributes.attribute_1->u.Attribute.attribute_initialisation_option_1->prod_sel == sel_Yesattribute_initialisation)) { #line 3254 "../gen.k" ID aid = kc_p->u.Consattributes.attribute_1->u.Attribute.ID_2; #line 3254 "../gen.k" Cexpression cexpr = kc_p->u.Consattributes.attribute_1->u.Attribute.attribute_initialisation_option_1->u.Yesattribute_initialisation.Cexpression_1; #line 3254 "../gen.k" attributes ra = kc_p->u.Consattributes.attributes_1; #line 3256 "../gen.k" ID selvar; #line 12801 "unpk.c" unparse_attributes(ra, kc_printer, kc_current_view); #line 3258 "../gen.k" selvar = Id(Str(mkcasestring("kc_x"))); selvar->line = aid->line; selvar->file = aid->file; cf_pushdollarvar( selvar ); cf_pushdollarvarext( f_emptyId() ); cf_pushoperator( f_emptyId() ); #line 12812 "unpk.c" { (*kc_printer)("#line ", kc_current_view); } unparse_int(aid->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(aid->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n kc_x->", kc_current_view); } unparse_ID(aid, kc_printer, kc_current_view); { (*kc_printer)(" = ", kc_current_view); } unparse_Cexpression(cexpr, kc_printer, kc_current_view); { (*kc_printer)(";\ \n", kc_current_view); } #line 3269 "../gen.k" cf_popdollarvar(); cf_popdollarvarext(); cf_popoperator(); #line 12830 "unpk.c" } else if (( kc_p->prod_sel == sel_Consattributes) && ( kc_p->u.Consattributes.attribute_1->prod_sel == sel_Attribute) && ( kc_p->u.Consattributes.attribute_1->u.Attribute.attribute_initialisation_option_1->prod_sel == sel_Noattribute_initialisation)) { #line 3275 "../gen.k" attributes ra = kc_p->u.Consattributes.attributes_1; unparse_attributes(ra, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consattributes: unparse_attribute( kc_p->u.Consattributes.attribute_1, kc_printer, kc_current_view ); unparse_attributes( kc_p->u.Consattributes.attributes_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_attribute #ifdef KC_USE_PROTOTYPES (attribute kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) attribute kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_attribute(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Attribute: unparse_ID( kc_p->u.Attribute.ID_1, kc_printer, kc_current_view ); unparse_ID( kc_p->u.Attribute.ID_2, kc_printer, kc_current_view ); unparse_attribute_initialisation_option( kc_p->u.Attribute.attribute_initialisation_option_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_attribute_initialisation_option #ifdef KC_USE_PROTOTYPES (attribute_initialisation_option kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) attribute_initialisation_option kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_attribute_initialisation_option(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Yesattribute_initialisation: unparse_Cexpression( kc_p->u.Yesattribute_initialisation.Cexpression_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_Cexpression #ifdef KC_USE_PROTOTYPES (Cexpression kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) Cexpression kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_Cexpression(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_initializephyla_c: { if (( kc_p->prod_sel == sel_NilCexpression)) { #line 3301 "../gen.k" /*EMPTY*/ #line 12914 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsCexpression)) { #line 3300 "../gen.k" Cexpression_elem ce = kc_p->u.ConsCexpression.Cexpression_elem_1; #line 3300 "../gen.k" Cexpression ces = kc_p->u.ConsCexpression.Cexpression_1; unparse_Cexpression(ces, kc_printer, kc_current_view); unparse_Cexpression_elem(ce, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_error: { if (( kc_p->prod_sel == sel_NilCexpression)) { #line 209 "../error.k" /*EMPTY*/ #line 12931 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsCexpression)) { #line 208 "../error.k" Cexpression_elem h = kc_p->u.ConsCexpression.Cexpression_elem_1; #line 208 "../error.k" Cexpression t = kc_p->u.ConsCexpression.Cexpression_1; unparse_Cexpression(t, kc_printer, kc_current_view); unparse_Cexpression_elem(h, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_ConsCexpression: unparse_Cexpression_elem( kc_p->u.ConsCexpression.Cexpression_elem_1, kc_printer, kc_current_view ); unparse_Cexpression( kc_p->u.ConsCexpression.Cexpression_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_Cexpression_elem #ifdef KC_USE_PROTOTYPES (Cexpression_elem kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) Cexpression_elem kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_Cexpression_elem(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_initializephyla_c: { if (( kc_p->prod_sel == sel_CExpressionPart)) { #line 3302 "../gen.k" casestring cs = kc_p->u.CExpressionPart.casestring_1; unparse_casestring(cs, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_CExpressionDollarvar)) { #line 3306 "../gen.k" INT i = kc_p->u.CExpressionDollarvar.INT_1; #line 3307 "../gen.k" ID oid = f_emptyId(), dollarvar = cf_topdollarvar(), dollarvarext = cf_topdollarvarext(); argument arg; boolean nulvar = True; { #line 3310 "../gen.k" INT kc_selvar_0_1 = i ; #line 3310 "../gen.k" /*SUPPRESS 622*/ assert_INT(kc_selvar_0_1, "with_expression (1)"); #line 12990 "unpk.c" if (( kc_selvar_0_1->prod_sel == sel_Int)) { #line 3311 "../gen.k" int ii = kc_selvar_0_1->u.Int.int_1; #line 3311 "../gen.k" if (ii != 0) { nulvar = False; oid = cf_topoperator(); arg = f_argumentofoperator( oid, i ); } #line 13001 "unpk.c" } else kc_no_default_in_with( "", __LINE__, __FILE__ ); } #line 3316 "../gen.k" #line 13007 "unpk.c" #line 3321 "../gen.k" if (nulvar) #line 13010 "unpk.c" { unparse_ID(dollarvar, kc_printer, kc_current_view); unparse_ID(dollarvarext, kc_printer, kc_current_view); } #line 3323 "../gen.k" else #line 13017 "unpk.c" { unparse_ID(dollarvar, kc_printer, kc_current_view); unparse_ID(dollarvarext, kc_printer, kc_current_view); { (*kc_printer)("->u.", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_argument(arg, kc_printer, kc_current_view); #line 3325 "../gen.k" free_argument( arg, False ); #line 13027 "unpk.c" } } else if (( kc_p->prod_sel == sel_CExpressionNl)) { #line 3331 "../gen.k" int i = kc_p->u.CExpressionNl.int_1; #line 3332 "../gen.k" char *nl_string = f_mknls( i ); #line 13035 "unpk.c" unparse_charptr(nl_string, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_CExpressionDQ)) { #line 3335 "../gen.k" CexpressionDQ cedq = kc_p->u.CExpressionDQ.CexpressionDQ_1; { (*kc_printer)("\"", kc_current_view); } unparse_CexpressionDQ(cedq, kc_printer, kc_current_view); { (*kc_printer)("\"", kc_current_view); } } else if (( kc_p->prod_sel == sel_CExpressionSQ)) { #line 3338 "../gen.k" CexpressionSQ cesq = kc_p->u.CExpressionSQ.CexpressionSQ_1; { (*kc_printer)("'", kc_current_view); } unparse_CexpressionSQ(cesq, kc_printer, kc_current_view); { (*kc_printer)("'", kc_current_view); } } else if (( kc_p->prod_sel == sel_CExpressionPack)) { #line 3341 "../gen.k" Cexpression cexpr = kc_p->u.CExpressionPack.Cexpression_1; { (*kc_printer)("(", kc_current_view); } unparse_Cexpression(cexpr, kc_printer, kc_current_view); { (*kc_printer)(")", kc_current_view); } } else if (( kc_p->prod_sel == sel_CExpressionArray)) { #line 3344 "../gen.k" Cexpression cexpr = kc_p->u.CExpressionArray.Cexpression_1; { (*kc_printer)("[", kc_current_view); } unparse_Cexpression(cexpr, kc_printer, kc_current_view); { (*kc_printer)("]", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_error: { if (( kc_p->prod_sel == sel_CExpressionPart)) { #line 210 "../error.k" casestring s = kc_p->u.CExpressionPart.casestring_1; unparse_casestring(s, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_CExpressionDollarvar)) { #line 211 "../error.k" INT i = kc_p->u.CExpressionDollarvar.INT_1; { (*kc_printer)("$", kc_current_view); } unparse_INT(i, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_CExpressionNl)) { { (*kc_printer)(" ", kc_current_view); } } else if (( kc_p->prod_sel == sel_CExpressionDQ)) { #line 213 "../error.k" CexpressionDQ cedq = kc_p->u.CExpressionDQ.CexpressionDQ_1; { (*kc_printer)("\"", kc_current_view); } unparse_CexpressionDQ(cedq, kc_printer, kc_current_view); { (*kc_printer)("\"", kc_current_view); } } else if (( kc_p->prod_sel == sel_CExpressionSQ)) { #line 214 "../error.k" CexpressionSQ cesq = kc_p->u.CExpressionSQ.CexpressionSQ_1; { (*kc_printer)("'", kc_current_view); } unparse_CexpressionSQ(cesq, kc_printer, kc_current_view); { (*kc_printer)("'", kc_current_view); } } else if (( kc_p->prod_sel == sel_CExpressionPack)) { #line 215 "../error.k" Cexpression ce = kc_p->u.CExpressionPack.Cexpression_1; { (*kc_printer)("(", kc_current_view); } unparse_Cexpression(ce, kc_printer, kc_current_view); { (*kc_printer)(")", kc_current_view); } } else if (( kc_p->prod_sel == sel_CExpressionArray)) { #line 216 "../error.k" Cexpression ce = kc_p->u.CExpressionArray.Cexpression_1; { (*kc_printer)("[", kc_current_view); } unparse_Cexpression(ce, kc_printer, kc_current_view); { (*kc_printer)("]", kc_current_view); } } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_CExpressionPart: unparse_casestring( kc_p->u.CExpressionPart.casestring_1, kc_printer, kc_current_view ); break; case (int)sel_CExpressionDollarvar: unparse_INT( kc_p->u.CExpressionDollarvar.INT_1, kc_printer, kc_current_view ); break; case (int)sel_CExpressionNl: unparse_int( kc_p->u.CExpressionNl.int_1, kc_printer, kc_current_view ); break; case (int)sel_CExpressionDQ: unparse_CexpressionDQ( kc_p->u.CExpressionDQ.CexpressionDQ_1, kc_printer, kc_current_view ); break; case (int)sel_CExpressionSQ: unparse_CexpressionSQ( kc_p->u.CExpressionSQ.CexpressionSQ_1, kc_printer, kc_current_view ); break; case (int)sel_CExpressionPack: unparse_Cexpression( kc_p->u.CExpressionPack.Cexpression_1, kc_printer, kc_current_view ); break; case (int)sel_CExpressionArray: unparse_Cexpression( kc_p->u.CExpressionArray.Cexpression_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_CexpressionDQ #ifdef KC_USE_PROTOTYPES (CexpressionDQ kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) CexpressionDQ kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_CexpressionDQ(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_unpstr_c: { if (( kc_p->prod_sel == sel_NilCexpressionDQ)) { #line 8084 "../gen.k" /*EMPTY*/ #line 13160 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsCexpressionDQ)) { #line 8083 "../gen.k" CexpressionDQ_elem cedqe = kc_p->u.ConsCexpressionDQ.CexpressionDQ_elem_1; #line 8083 "../gen.k" CexpressionDQ cedq = kc_p->u.ConsCexpressionDQ.CexpressionDQ_1; unparse_CexpressionDQ(cedq, kc_printer, kc_current_view); unparse_CexpressionDQ_elem(cedqe, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_initializephyla_c: { if (( kc_p->prod_sel == sel_NilCexpressionDQ)) { #line 3629 "../gen.k" /*EMPTY*/ #line 13177 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsCexpressionDQ)) { #line 3628 "../gen.k" CexpressionDQ_elem cedqe = kc_p->u.ConsCexpressionDQ.CexpressionDQ_elem_1; #line 3628 "../gen.k" CexpressionDQ cedq = kc_p->u.ConsCexpressionDQ.CexpressionDQ_1; unparse_CexpressionDQ(cedq, kc_printer, kc_current_view); unparse_CexpressionDQ_elem(cedqe, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_error: { if (( kc_p->prod_sel == sel_NilCexpressionDQ)) { #line 218 "../error.k" /*EMPTY*/ #line 13194 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsCexpressionDQ)) { #line 217 "../error.k" CexpressionDQ_elem h = kc_p->u.ConsCexpressionDQ.CexpressionDQ_elem_1; #line 217 "../error.k" CexpressionDQ t = kc_p->u.ConsCexpressionDQ.CexpressionDQ_1; unparse_CexpressionDQ(t, kc_printer, kc_current_view); unparse_CexpressionDQ_elem(h, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_ConsCexpressionDQ: unparse_CexpressionDQ_elem( kc_p->u.ConsCexpressionDQ.CexpressionDQ_elem_1, kc_printer, kc_current_view ); unparse_CexpressionDQ( kc_p->u.ConsCexpressionDQ.CexpressionDQ_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_CexpressionDQ_elem #ifdef KC_USE_PROTOTYPES (CexpressionDQ_elem kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) CexpressionDQ_elem kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_CexpressionDQ_elem(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_unpstr_c: { if (( kc_p->prod_sel == sel_CExpressionDQPart)) { #line 8085 "../gen.k" casestring cs = kc_p->u.CExpressionDQPart.casestring_1; unparse_casestring(cs, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_CExpressionDQNl)) { #line 8086 "../gen.k" int i = kc_p->u.CExpressionDQNl.int_1; #line 8087 "../gen.k" char *nl_string = f_mkquotednls( i ); #line 13242 "unpk.c" unparse_charptr(nl_string, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_initializephyla_c: { if (( kc_p->prod_sel == sel_CExpressionDQPart)) { #line 3630 "../gen.k" casestring cs = kc_p->u.CExpressionDQPart.casestring_1; unparse_casestring(cs, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_CExpressionDQNl)) { #line 3631 "../gen.k" int i = kc_p->u.CExpressionDQNl.int_1; #line 3632 "../gen.k" char *nl_string = f_mknls( i ); #line 13259 "unpk.c" unparse_charptr(nl_string, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_error: { if (( kc_p->prod_sel == sel_CExpressionDQPart)) { #line 219 "../error.k" casestring s = kc_p->u.CExpressionDQPart.casestring_1; unparse_casestring(s, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_CExpressionDQNl)) { { (*kc_printer)(" ", kc_current_view); } } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_CExpressionDQPart: unparse_casestring( kc_p->u.CExpressionDQPart.casestring_1, kc_printer, kc_current_view ); break; case (int)sel_CExpressionDQNl: unparse_int( kc_p->u.CExpressionDQNl.int_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_CexpressionSQ #ifdef KC_USE_PROTOTYPES (CexpressionSQ kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) CexpressionSQ kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_CexpressionSQ(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_initializephyla_c: { if (( kc_p->prod_sel == sel_NilCexpressionSQ)) { #line 3636 "../gen.k" /*EMPTY*/ #line 13307 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsCexpressionSQ)) { #line 3635 "../gen.k" CexpressionSQ_elem cesqe = kc_p->u.ConsCexpressionSQ.CexpressionSQ_elem_1; #line 3635 "../gen.k" CexpressionSQ cesq = kc_p->u.ConsCexpressionSQ.CexpressionSQ_1; unparse_CexpressionSQ(cesq, kc_printer, kc_current_view); unparse_CexpressionSQ_elem(cesqe, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_error: { if (( kc_p->prod_sel == sel_NilCexpressionSQ)) { #line 222 "../error.k" /*EMPTY*/ #line 13324 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsCexpressionSQ)) { #line 221 "../error.k" CexpressionSQ_elem h = kc_p->u.ConsCexpressionSQ.CexpressionSQ_elem_1; #line 221 "../error.k" CexpressionSQ t = kc_p->u.ConsCexpressionSQ.CexpressionSQ_1; unparse_CexpressionSQ(t, kc_printer, kc_current_view); unparse_CexpressionSQ_elem(h, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_ConsCexpressionSQ: unparse_CexpressionSQ_elem( kc_p->u.ConsCexpressionSQ.CexpressionSQ_elem_1, kc_printer, kc_current_view ); unparse_CexpressionSQ( kc_p->u.ConsCexpressionSQ.CexpressionSQ_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_CexpressionSQ_elem #ifdef KC_USE_PROTOTYPES (CexpressionSQ_elem kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) CexpressionSQ_elem kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_CexpressionSQ_elem(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_initializephyla_c: { if (( kc_p->prod_sel == sel_CExpressionSQPart)) { #line 3637 "../gen.k" casestring cs = kc_p->u.CExpressionSQPart.casestring_1; unparse_casestring(cs, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_CExpressionSQNl)) { #line 3638 "../gen.k" int i = kc_p->u.CExpressionSQNl.int_1; #line 3639 "../gen.k" char *nl_string = f_mknls( i ); #line 13372 "unpk.c" unparse_charptr(nl_string, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_error: { if (( kc_p->prod_sel == sel_CExpressionSQPart)) { #line 223 "../error.k" casestring s = kc_p->u.CExpressionSQPart.casestring_1; unparse_casestring(s, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_CExpressionSQNl)) { { (*kc_printer)(" ", kc_current_view); } } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_CExpressionSQPart: unparse_casestring( kc_p->u.CExpressionSQPart.casestring_1, kc_printer, kc_current_view ); break; case (int)sel_CExpressionSQNl: unparse_int( kc_p->u.CExpressionSQNl.int_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_idCexpressions #ifdef KC_USE_PROTOTYPES (idCexpressions kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) idCexpressions kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_idCexpressions(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_initializephyla_update_loop_c: { if (( kc_p->prod_sel == sel_NilidCexpressions)) { #line 3468 "../gen.k" g_fe_selvar_nr = 0; #line 13420 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsidCexpressions) && ( kc_p->u.ConsidCexpressions.idCexpression_1->prod_sel == sel_IdCexpression)) { #line 3519 "../gen.k" ID tid = kc_p->u.ConsidCexpressions.idCexpression_1->u.IdCexpression.ID_1; #line 3519 "../gen.k" Cexpression cexpr = kc_p->u.ConsidCexpressions.idCexpression_1->u.IdCexpression.Cexpression_1; #line 3519 "../gen.k" idCexpressions t = kc_p->u.ConsidCexpressions.idCexpressions_1; unparse_idCexpressions(t, kc_printer, kc_current_view); #line 3522 "../gen.k" g_fe_selvar_nr++; #line 13432 "unpk.c" { (*kc_printer)("kc_fe_selvar_", kc_current_view); } unparse_int(g_fe_selvar_nr, kc_printer, kc_current_view); { (*kc_printer)(" = kc_fe_selvar_", kc_current_view); } unparse_int(g_fe_selvar_nr, kc_printer, kc_current_view); { (*kc_printer)("->u.Cons", kc_current_view); } unparse_ID(tid, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(tid, kc_printer, kc_current_view); { (*kc_printer)("_1;\ \n#line ", kc_current_view); } unparse_int(cexpr->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(cexpr->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n/*SUPPRESS 622*/\ \nassert_", kc_current_view); } unparse_ID(tid, kc_printer, kc_current_view); { (*kc_printer)("(kc_fe_selvar_", kc_current_view); } unparse_int(g_fe_selvar_nr, kc_printer, kc_current_view); { (*kc_printer)(", \"sublist_of_foreach_list_expression\");\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_initializephyla_init_el_c: { if (( kc_p->prod_sel == sel_NilidCexpressions)) { #line 3468 "../gen.k" g_fe_selvar_nr = 0; #line 13462 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsidCexpressions) && ( kc_p->u.ConsidCexpressions.idCexpression_1->prod_sel == sel_IdCexpression)) { #line 3509 "../gen.k" idCexpression ice = kc_p->u.ConsidCexpressions.idCexpression_1; #line 3509 "../gen.k" ID tid = kc_p->u.ConsidCexpressions.idCexpression_1->u.IdCexpression.ID_1; #line 3509 "../gen.k" Cexpression cexpr = kc_p->u.ConsidCexpressions.idCexpression_1->u.IdCexpression.Cexpression_1; #line 3509 "../gen.k" idCexpressions t = kc_p->u.ConsidCexpressions.idCexpressions_1; #line 3511 "../gen.k" ID element_type = f_listelementphylum( tid ); ID selvar = cf_topselvar(); #line 13477 "unpk.c" unparse_idCexpressions(t, kc_printer, kc_current_view); #line 3515 "../gen.k" g_fe_selvar_nr++; #line 13481 "unpk.c" unparse_ID(element_type, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(selvar, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(g_fe_selvar_nr, kc_printer, kc_current_view); { (*kc_printer)(" = kc_fe_selvar_", kc_current_view); } unparse_int(g_fe_selvar_nr, kc_printer, kc_current_view); { (*kc_printer)("->u.Cons", kc_current_view); } unparse_ID(tid, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_ID(element_type, kc_printer, kc_current_view); { (*kc_printer)("_1;\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_initializephyla_whiletest_c: { if (( kc_p->prod_sel == sel_NilidCexpressions)) { #line 3468 "../gen.k" g_fe_selvar_nr = 0; #line 13503 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsidCexpressions) && ( kc_p->u.ConsidCexpressions.idCexpression_1->prod_sel == sel_IdCexpression) && ( kc_p->u.ConsidCexpressions.idCexpressions_1->prod_sel == sel_NilidCexpressions)) { #line 3502 "../gen.k" ID tid = kc_p->u.ConsidCexpressions.idCexpression_1->u.IdCexpression.ID_1; #line 3502 "../gen.k" Cexpression cexpr = kc_p->u.ConsidCexpressions.idCexpression_1->u.IdCexpression.Cexpression_1; #line 3502 "../gen.k" idCexpressions t = kc_p->u.ConsidCexpressions.idCexpressions_1; unparse_idCexpressions(t, kc_printer, kc_current_view); #line 3505 "../gen.k" g_fe_selvar_nr++; #line 13515 "unpk.c" { (*kc_printer)(" kc_fe_selvar_", kc_current_view); } unparse_int(g_fe_selvar_nr, kc_printer, kc_current_view); { (*kc_printer)("->prod_sel == sel_Cons", kc_current_view); } unparse_ID(tid, kc_printer, kc_current_view); { (*kc_printer)("\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_ConsidCexpressions) && ( kc_p->u.ConsidCexpressions.idCexpression_1->prod_sel == sel_IdCexpression)) { #line 3494 "../gen.k" ID tid = kc_p->u.ConsidCexpressions.idCexpression_1->u.IdCexpression.ID_1; #line 3494 "../gen.k" Cexpression cexpr = kc_p->u.ConsidCexpressions.idCexpression_1->u.IdCexpression.Cexpression_1; #line 3494 "../gen.k" idCexpressions t = kc_p->u.ConsidCexpressions.idCexpressions_1; unparse_idCexpressions(t, kc_printer, kc_current_view); #line 3497 "../gen.k" g_fe_selvar_nr++; #line 13533 "unpk.c" { (*kc_printer)(" && kc_fe_selvar_", kc_current_view); } unparse_int(g_fe_selvar_nr, kc_printer, kc_current_view); { (*kc_printer)("->prod_sel == sel_Cons", kc_current_view); } unparse_ID(tid, kc_printer, kc_current_view); { (*kc_printer)("\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_initializephyla_assert_c: { if (( kc_p->prod_sel == sel_NilidCexpressions)) { #line 3468 "../gen.k" g_fe_selvar_nr = 0; #line 13548 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsidCexpressions) && ( kc_p->u.ConsidCexpressions.idCexpression_1->prod_sel == sel_IdCexpression)) { #line 3482 "../gen.k" ID tid = kc_p->u.ConsidCexpressions.idCexpression_1->u.IdCexpression.ID_1; #line 3482 "../gen.k" Cexpression cexpr = kc_p->u.ConsidCexpressions.idCexpression_1->u.IdCexpression.Cexpression_1; #line 3482 "../gen.k" idCexpressions t = kc_p->u.ConsidCexpressions.idCexpressions_1; unparse_idCexpressions(t, kc_printer, kc_current_view); #line 3485 "../gen.k" g_fe_selvar_nr++; #line 13560 "unpk.c" #line 3486 "../gen.k" if (cexpr->line) #line 13563 "unpk.c" { { (*kc_printer)("#line ", kc_current_view); } unparse_int(cexpr->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(cexpr->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n", kc_current_view); } } { (*kc_printer)("/*SUPPRESS 622*/\ \nassert_", kc_current_view); } unparse_ID(tid, kc_printer, kc_current_view); { (*kc_printer)("(kc_fe_selvar_", kc_current_view); } unparse_int(g_fe_selvar_nr, kc_printer, kc_current_view); { (*kc_printer)(", \"foreach_list_expression\");\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_initializephyla_c: { if (( kc_p->prod_sel == sel_NilidCexpressions)) { #line 3468 "../gen.k" g_fe_selvar_nr = 0; #line 13587 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsidCexpressions) && ( kc_p->u.ConsidCexpressions.idCexpression_1->prod_sel == sel_IdCexpression)) { #line 3470 "../gen.k" ID tid = kc_p->u.ConsidCexpressions.idCexpression_1->u.IdCexpression.ID_1; #line 3470 "../gen.k" Cexpression cexpr = kc_p->u.ConsidCexpressions.idCexpression_1->u.IdCexpression.Cexpression_1; #line 3470 "../gen.k" idCexpressions t = kc_p->u.ConsidCexpressions.idCexpressions_1; unparse_idCexpressions(t, kc_printer, kc_current_view); #line 3473 "../gen.k" g_fe_selvar_nr++; #line 13599 "unpk.c" #line 3474 "../gen.k" if (cexpr->line) #line 13602 "unpk.c" { { (*kc_printer)("#line ", kc_current_view); } unparse_int(cexpr->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(cexpr->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n", kc_current_view); } } unparse_ID(tid, kc_printer, kc_current_view); { (*kc_printer)(" kc_fe_selvar_", kc_current_view); } unparse_int(g_fe_selvar_nr, kc_printer, kc_current_view); { (*kc_printer)(" = ", kc_current_view); } unparse_Cexpression(cexpr, kc_printer, kc_current_view); { (*kc_printer)(";\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_ConsidCexpressions)) { #line 803 "../util.k" idCexpression h = kc_p->u.ConsidCexpressions.idCexpression_1; #line 803 "../util.k" idCexpressions t = kc_p->u.ConsidCexpressions.idCexpressions_1; unparse_idCexpressions(t, kc_printer, kc_current_view); unparse_idCexpression(h, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_ConsidCexpressions: unparse_idCexpression( kc_p->u.ConsidCexpressions.idCexpression_1, kc_printer, kc_current_view ); unparse_idCexpressions( kc_p->u.ConsidCexpressions.idCexpressions_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_idCexpression #ifdef KC_USE_PROTOTYPES (idCexpression kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) idCexpression kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_idCexpression(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_check: { if (( kc_p->prod_sel == sel_IdCexpression)) { #line 805 "../util.k" ID t = kc_p->u.IdCexpression.ID_1; #line 805 "../util.k" v_useoccurlistphylum( t ); #line 13664 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_IdCexpression: unparse_ID( kc_p->u.IdCexpression.ID_1, kc_printer, kc_current_view ); unparse_Cexpression( kc_p->u.IdCexpression.Cexpression_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_Ctexts #ifdef KC_USE_PROTOTYPES (Ctexts kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) Ctexts kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_Ctexts(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_initializephyla_c: { if (( kc_p->prod_sel == sel_NilCtexts)) { #line 3348 "../gen.k" /*EMPTY*/ #line 13697 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsCtexts)) { #line 3279 "../gen.k" Ctext ct = kc_p->u.ConsCtexts.Ctext_1; #line 3279 "../gen.k" Ctexts cts = kc_p->u.ConsCtexts.Ctexts_1; #line 3280 "../gen.k" ID selvar; #line 13706 "unpk.c" unparse_Ctexts(cts, kc_printer, kc_current_view); #line 3282 "../gen.k" selvar = Id(Str(mkcasestring("kc_x"))); selvar->line = ct->line; selvar->file = ct->file; cf_pushdollarvar( selvar ); cf_pushdollarvarext( f_emptyId() ); cf_pushoperator( f_emptyId() ); #line 13717 "unpk.c" { (*kc_printer)("#line ", kc_current_view); } unparse_int(ct->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(ct->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n", kc_current_view); } unparse_Ctext(ct, kc_printer, kc_current_view); unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); #line 3294 "../gen.k" cf_popdollarvar(); cf_popdollarvarext(); cf_popoperator(); #line 13732 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_ConsCtexts: unparse_Ctext( kc_p->u.ConsCtexts.Ctext_1, kc_printer, kc_current_view ); unparse_Ctexts( kc_p->u.ConsCtexts.Ctexts_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_includefiles #ifdef KC_USE_PROTOTYPES (includefiles kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) includefiles kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_includefiles(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consincludefiles: unparse_includefile( kc_p->u.Consincludefiles.includefile_1, kc_printer, kc_current_view ); unparse_includefiles( kc_p->u.Consincludefiles.includefiles_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_includefile #ifdef KC_USE_PROTOTYPES (includefile kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) includefile kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_includefile(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_IncludeFile: unparse_casestring( kc_p->u.IncludeFile.casestring_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_includedeclarations #ifdef KC_USE_PROTOTYPES (includedeclarations kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) includedeclarations kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_includedeclarations(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_do_gen_includes: { if (( kc_p->prod_sel == sel_Nilincludedeclarations)) { #line 5183 "../gen.k" /*EMPTY*/ #line 13810 "unpk.c" } else if (( kc_p->prod_sel == sel_Consincludedeclarations)) { #line 5184 "../gen.k" includedeclaration e = kc_p->u.Consincludedeclarations.includedeclaration_1; #line 5184 "../gen.k" includedeclarations l = kc_p->u.Consincludedeclarations.includedeclarations_1; unparse_includedeclarations(l, kc_printer, kc_current_view); unparse_includedeclaration(e, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_includes: { if (( kc_p->prod_sel == sel_Nilincludedeclarations)) { #line 5174 "../gen.k" /*EMPTY*/ #line 13827 "unpk.c" } else if (( kc_p->prod_sel == sel_Consincludedeclarations)) { { (*kc_printer)("/* included stuff */\ \n", kc_current_view); } unparse_includedeclarations(kc_p, kc_printer, view_do_gen_includes); { (*kc_printer)("/* end included stuff */\ \n\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consincludedeclarations: unparse_includedeclaration( kc_p->u.Consincludedeclarations.includedeclaration_1, kc_printer, kc_current_view ); unparse_includedeclarations( kc_p->u.Consincludedeclarations.includedeclarations_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_includedeclaration #ifdef KC_USE_PROTOTYPES (includedeclaration kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) includedeclaration kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_includedeclaration(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_do_gen_includes: { if (( kc_p->prod_sel == sel_IncludeDeclaration)) { #line 5185 "../gen.k" includes i = kc_p->u.IncludeDeclaration.includes_1; { (*kc_printer)("#line ", kc_current_view); } unparse_int(kc_p->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(kc_p->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n", kc_current_view); } unparse_includes(i, kc_printer, kc_current_view); unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_IncludeDeclaration: unparse_includes( kc_p->u.IncludeDeclaration.includes_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_includes #ifdef KC_USE_PROTOTYPES (includes kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) includes kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_includes(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_do_gen_includes: { if (( kc_p->prod_sel == sel_Nilincludes)) { #line 5191 "../gen.k" /*EMPTY*/ #line 13907 "unpk.c" } else if (( kc_p->prod_sel == sel_Consincludes)) { #line 5192 "../gen.k" include e = kc_p->u.Consincludes.include_1; #line 5192 "../gen.k" includes l = kc_p->u.Consincludes.includes_1; unparse_includes(l, kc_printer, kc_current_view); unparse_include(e, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consincludes: unparse_include( kc_p->u.Consincludes.include_1, kc_printer, kc_current_view ); unparse_includes( kc_p->u.Consincludes.includes_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_include #ifdef KC_USE_PROTOTYPES (include kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) include kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_include(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_do_gen_includes: { if (( kc_p->prod_sel == sel_Include)) { #line 5193 "../gen.k" casestring c = kc_p->u.Include.casestring_1; unparse_casestring(c, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_IncludeNl)) { #line 5194 "../gen.k" int i = kc_p->u.IncludeNl.int_1; #line 5195 "../gen.k" char *nl_string = f_mknls( i ); #line 13955 "unpk.c" unparse_charptr(nl_string, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Include: unparse_casestring( kc_p->u.Include.casestring_1, kc_printer, kc_current_view ); break; case (int)sel_IncludeNl: unparse_int( kc_p->u.IncludeNl.int_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_rwdeclarations #ifdef KC_USE_PROTOTYPES (rwdeclarations kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) rwdeclarations kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_rwdeclarations(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_check: { if (( kc_p->prod_sel == sel_Nilrwdeclarations)) { #line 612 "../util.k" /*EMPTY*/ #line 13991 "unpk.c" } else if (( kc_p->prod_sel == sel_Consrwdeclarations)) { #line 610 "../util.k" rwdeclaration rwd = kc_p->u.Consrwdeclarations.rwdeclaration_1; #line 610 "../util.k" rwdeclarations rrwd = kc_p->u.Consrwdeclarations.rwdeclarations_1; unparse_rwdeclarations(rrwd, kc_printer, kc_current_view); unparse_rwdeclaration(rwd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consrwdeclarations: unparse_rwdeclaration( kc_p->u.Consrwdeclarations.rwdeclaration_1, kc_printer, kc_current_view ); unparse_rwdeclarations( kc_p->u.Consrwdeclarations.rwdeclarations_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_rwdeclaration #ifdef KC_USE_PROTOTYPES (rwdeclaration kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) rwdeclaration kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_rwdeclaration(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_make_patternreps: { if (( kc_p->prod_sel == sel_RwDeclaration)) { #line 1811 "../util.k" outmostpatterns op = kc_p->u.RwDeclaration.outmostpatterns_1; #line 1811 "../util.k" rewriteclauses rc = kc_p->u.RwDeclaration.rewriteclauses_1; #line 1812 "../util.k" v_resetbindingidmarks(); v_add_rewriterulesinfo_to_operator( add_predicates_to_patternrepresentations( syn_outmostpatterns( op ) ), rc ); #line 14039 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_RwDeclaration)) { #line 613 "../util.k" outmostpatterns op = kc_p->u.RwDeclaration.outmostpatterns_1; #line 613 "../util.k" rewriteclauses rc = kc_p->u.RwDeclaration.rewriteclauses_1; #line 614 "../util.k" cf_pushoutmostoperators( Niloperators() ); cf_pushdollarvarsallowed( DVAllowed() ); cf_pushphylum( f_emptyId() ); cf_pushvariables( Nilvariables()); cl_scope++; #line 14057 "unpk.c" unparse_outmostpatterns(op, kc_printer, kc_current_view); unparse_rewriteclauses(rc, kc_printer, kc_current_view); #line 622 "../util.k" freelist_operators( cf_topoutmostoperators() ); cf_popoutmostoperators(); cf_popphylum(); cf_popdollarvarsallowed(); v_reset_variables_type( cf_topvariables() ); cl_scope--; freelist_variables( cf_topvariables() ); cf_popvariables(); #line 14069 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_RwDeclaration: unparse_outmostpatterns( kc_p->u.RwDeclaration.outmostpatterns_1, kc_printer, kc_current_view ); unparse_rewriteclauses( kc_p->u.RwDeclaration.rewriteclauses_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_rewriteclauses #ifdef KC_USE_PROTOTYPES (rewriteclauses kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) rewriteclauses kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_rewriteclauses(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_check: { if (( kc_p->prod_sel == sel_Nilrewriteclauses)) { #line 633 "../util.k" /*EMPTY*/ #line 14102 "unpk.c" } else if (( kc_p->prod_sel == sel_Consrewriteclauses)) { #line 631 "../util.k" rewriteclause rc = kc_p->u.Consrewriteclauses.rewriteclause_1; #line 631 "../util.k" rewriteclauses rcs = kc_p->u.Consrewriteclauses.rewriteclauses_1; unparse_rewriteclauses(rcs, kc_printer, kc_current_view); unparse_rewriteclause(rc, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consrewriteclauses: unparse_rewriteclause( kc_p->u.Consrewriteclauses.rewriteclause_1, kc_printer, kc_current_view ); unparse_rewriteclauses( kc_p->u.Consrewriteclauses.rewriteclauses_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_rewriteclause #ifdef KC_USE_PROTOTYPES (rewriteclause kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) rewriteclause kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_rewriteclause(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_check: { if (( kc_p->prod_sel == sel_RewriteClause)) { #line 634 "../util.k" viewnames vn = kc_p->u.RewriteClause.viewnames_1; unparse_viewnames(vn, kc_printer, view_check_r); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_RewriteClause: unparse_viewnames( kc_p->u.RewriteClause.viewnames_1, kc_printer, kc_current_view ); unparse_term( kc_p->u.RewriteClause.term_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_patternchains #ifdef KC_USE_PROTOTYPES (patternchains kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) patternchains kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_patternchains(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_set_type: { if (( kc_p->prod_sel == sel_Nilpatternchains)) { #line 684 "../util.k" /*EMPTY*/ #line 14176 "unpk.c" } else if (( kc_p->prod_sel == sel_Conspatternchains)) { #line 685 "../util.k" patternchain h = kc_p->u.Conspatternchains.patternchain_1; #line 685 "../util.k" patternchains t = kc_p->u.Conspatternchains.patternchains_1; unparse_patternchains(t, kc_printer, kc_current_view); unparse_patternchain(h, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_Nilpatternchains)) { #line 684 "../util.k" /*EMPTY*/ #line 14193 "unpk.c" } else if (( kc_p->prod_sel == sel_Conspatternchains)) { #line 685 "../util.k" patternchain h = kc_p->u.Conspatternchains.patternchain_1; #line 685 "../util.k" patternchains t = kc_p->u.Conspatternchains.patternchains_1; unparse_patternchains(t, kc_printer, kc_current_view); unparse_patternchain(h, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Conspatternchains: unparse_patternchain( kc_p->u.Conspatternchains.patternchain_1, kc_printer, kc_current_view ); unparse_patternchains( kc_p->u.Conspatternchains.patternchains_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_patternchain #ifdef KC_USE_PROTOTYPES (patternchain kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) patternchain kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_patternchain(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_set_type: { if (( kc_p->prod_sel == sel_Nilpatternchain)) { #line 753 "../util.k" /*EMPTY*/ #line 14234 "unpk.c" } else if (( kc_p->prod_sel == sel_Conspatternchain)) { #line 754 "../util.k" patternchainitem h = kc_p->u.Conspatternchain.patternchainitem_1; #line 754 "../util.k" patternchain t = kc_p->u.Conspatternchain.patternchain_1; #line 756 "../util.k" ID tmp_type = 0; phylumnames tmp_types = 0; { #line 758 "../util.k" phylumnames kc_selvar_0_1 = cf_topphylumnames() ; #line 758 "../util.k" /*SUPPRESS 622*/ assert_phylumnames(kc_selvar_0_1, "with_expression (1)"); #line 14253 "unpk.c" if (( kc_selvar_0_1->prod_sel == sel_Nilphylumnames)) { #line 763 "../util.k" tmp_type = f_emptyId(); tmp_types = Nilphylumnames(); #line 14260 "unpk.c" } else if (( kc_selvar_0_1->prod_sel == sel_Consphylumnames)) { #line 759 "../util.k" ID p_h = kc_selvar_0_1->u.Consphylumnames.ID_1; #line 759 "../util.k" phylumnames p_t = kc_selvar_0_1->u.Consphylumnames.phylumnames_1; #line 759 "../util.k" tmp_type = p_h; tmp_types = p_t; #line 14272 "unpk.c" } else kc_no_default_in_with( "", __LINE__, __FILE__ ); } #line 768 "../util.k" cf_popphylumnames(); cf_pushphylumnames( tmp_types ); #line 14280 "unpk.c" unparse_patternchain(t, kc_printer, kc_current_view); #line 772 "../util.k" tmp_types = cf_topphylumnames(); cf_popphylumnames(); cf_pushphylum( tmp_type ); if (! eq_ID( cf_topphylum(), f_emptyId() )) { h->type = cf_topphylum(); } #line 14291 "unpk.c" unparse_patternchainitem(h, kc_printer, kc_current_view); #line 781 "../util.k" tmp_type = cf_topphylum(); cf_popphylum(); cf_pushphylumnames( Consphylumnames( tmp_type, tmp_types ) ); #line 14298 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_Nilpatternchain)) { #line 690 "../util.k" patternchain p = kc_p; #line 691 "../util.k" { #line 691 "../util.k" phylumnames kc_selvar_0_1 = cf_topphylumnames() ; #line 691 "../util.k" /*SUPPRESS 622*/ assert_phylumnames(kc_selvar_0_1, "with_expression (1)"); #line 14317 "unpk.c" if (( kc_selvar_0_1->prod_sel == sel_Nilphylumnames)) { #line 696 "../util.k" /*EMPTY*/ #line 14321 "unpk.c" } else if (( kc_selvar_0_1->prod_sel == sel_Consphylumnames)) { #line 692 "../util.k" ID p_h = kc_selvar_0_1->u.Consphylumnames.ID_1; #line 692 "../util.k" phylumnames p_t = kc_selvar_0_1->u.Consphylumnames.phylumnames_1; #line 692 "../util.k" v_report(NonFatal( FileLine( p->file, p->line ), Problem1S( "less &-ed patterns than expressions"))); #line 14333 "unpk.c" } else kc_no_default_in_with( "", __LINE__, __FILE__ ); } #line 698 "../util.k" #line 14339 "unpk.c" } else if (( kc_p->prod_sel == sel_Conspatternchain) && ( kc_p->u.Conspatternchain.patternchainitem_1->prod_sel == sel_PatternchainitemOutmost) && ( kc_p->u.Conspatternchain.patternchainitem_1->u.PatternchainitemOutmost.outmostpattern_1->prod_sel == sel_OPDefault) && ( kc_p->u.Conspatternchain.patternchain_1->prod_sel == sel_Nilpatternchain)) { #line 730 "../util.k" /*EMPTY*/ #line 14344 "unpk.c" } else if (( kc_p->prod_sel == sel_Conspatternchain) && ( kc_p->u.Conspatternchain.patternchainitem_1->prod_sel == sel_PatternchainitemOutmost) && ( kc_p->u.Conspatternchain.patternchainitem_1->u.PatternchainitemOutmost.outmostpattern_1->prod_sel == sel_OPDefault) && ( kc_p->u.Conspatternchain.patternchain_1->prod_sel == sel_Conspatternchain)) { #line 733 "../util.k" patternchainitem p = kc_p->u.Conspatternchain.patternchainitem_1; #line 735 "../util.k" v_report(NonFatal( FileLine( p->file, p->line ), Problem1S( "'default' can not be &-ed with (other) patterns"))); #line 14353 "unpk.c" } else if (( kc_p->prod_sel == sel_Conspatternchain) && ( kc_p->u.Conspatternchain.patternchain_1->prod_sel == sel_Conspatternchain) && ( kc_p->u.Conspatternchain.patternchain_1->u.Conspatternchain.patternchainitem_1->prod_sel == sel_PatternchainitemOutmost) && ( kc_p->u.Conspatternchain.patternchain_1->u.Conspatternchain.patternchainitem_1->u.PatternchainitemOutmost.outmostpattern_1->prod_sel == sel_OPDefault)) { #line 732 "../util.k" patternchainitem p = kc_p->u.Conspatternchain.patternchain_1->u.Conspatternchain.patternchainitem_1; #line 735 "../util.k" v_report(NonFatal( FileLine( p->file, p->line ), Problem1S( "'default' can not be &-ed with (other) patterns"))); #line 14362 "unpk.c" } else if (( kc_p->prod_sel == sel_Conspatternchain)) { #line 700 "../util.k" patternchain p = kc_p; #line 700 "../util.k" patternchainitem h = kc_p->u.Conspatternchain.patternchainitem_1; #line 700 "../util.k" patternchain t = kc_p->u.Conspatternchain.patternchain_1; #line 702 "../util.k" ID tmp_type = 0; phylumnames tmp_types = 0; { #line 704 "../util.k" phylumnames kc_selvar_0_1 = cf_topphylumnames() ; #line 704 "../util.k" /*SUPPRESS 622*/ assert_phylumnames(kc_selvar_0_1, "with_expression (1)"); #line 14383 "unpk.c" if (( kc_selvar_0_1->prod_sel == sel_Nilphylumnames)) { #line 709 "../util.k" tmp_type = f_emptyId(); tmp_types = Nilphylumnames(); v_report(NonFatal( FileLine( p->file, p->line ), Problem1S( "more &-ed patterns than expressions"))); #line 14392 "unpk.c" } else if (( kc_selvar_0_1->prod_sel == sel_Consphylumnames)) { #line 705 "../util.k" ID p_h = kc_selvar_0_1->u.Consphylumnames.ID_1; #line 705 "../util.k" phylumnames p_t = kc_selvar_0_1->u.Consphylumnames.phylumnames_1; #line 705 "../util.k" tmp_type = p_h; tmp_types = p_t; #line 14404 "unpk.c" } else kc_no_default_in_with( "", __LINE__, __FILE__ ); } #line 716 "../util.k" cf_popphylumnames(); cf_pushphylumnames( tmp_types ); #line 14412 "unpk.c" unparse_patternchain(t, kc_printer, kc_current_view); #line 720 "../util.k" tmp_types = cf_topphylumnames(); cf_popphylumnames(); cf_pushphylum( tmp_type ); #line 14418 "unpk.c" unparse_patternchainitem(h, kc_printer, kc_current_view); #line 724 "../util.k" tmp_type = cf_topphylum(); cf_popphylum(); cf_pushphylumnames( Consphylumnames( tmp_type, tmp_types ) ); #line 14425 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Conspatternchain: unparse_patternchainitem( kc_p->u.Conspatternchain.patternchainitem_1, kc_printer, kc_current_view ); unparse_patternchain( kc_p->u.Conspatternchain.patternchain_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_outmostpatterns #ifdef KC_USE_PROTOTYPES (outmostpatterns kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) outmostpatterns kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_outmostpatterns(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_check: { if (( kc_p->prod_sel == sel_Niloutmostpatterns)) { #line 402 "../util.k" /*EMPTY*/ #line 14458 "unpk.c" } else if (( kc_p->prod_sel == sel_Consoutmostpatterns)) { #line 400 "../util.k" outmostpattern p = kc_p->u.Consoutmostpatterns.outmostpattern_1; #line 400 "../util.k" outmostpatterns rp = kc_p->u.Consoutmostpatterns.outmostpatterns_1; unparse_outmostpatterns(rp, kc_printer, kc_current_view); unparse_outmostpattern(p, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consoutmostpatterns: unparse_outmostpattern( kc_p->u.Consoutmostpatterns.outmostpattern_1, kc_printer, kc_current_view ); unparse_outmostpatterns( kc_p->u.Consoutmostpatterns.outmostpatterns_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_patternchainitem #ifdef KC_USE_PROTOTYPES (patternchainitem kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) patternchainitem kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_patternchainitem(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_set_type: { if (( kc_p->prod_sel == sel_PatternchainitemOutmost)) { #line 787 "../util.k" outmostpattern p = kc_p->u.PatternchainitemOutmost.outmostpattern_1; #line 789 "../util.k" if (! eq_ID( cf_topphylum(), f_emptyId() )) #line 14501 "unpk.c" { #line 790 "../util.k" p->type = cf_topphylum(); #line 14506 "unpk.c" } } else if (( kc_p->prod_sel == sel_PatternchainitemGroup)) { #line 786 "../util.k" patternchains mp = kc_p->u.PatternchainitemGroup.patternchains_1; #line 786 "../util.k" /*EMPTY*/ #line 14514 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_PatternchainitemOutmost)) { #line 744 "../util.k" outmostpattern p = kc_p->u.PatternchainitemOutmost.outmostpattern_1; #line 746 "../util.k" if (cf_topinforeachcontext()) #line 14525 "unpk.c" { unparse_outmostpattern(p, kc_printer, view_check_is_var); } #line 748 "../util.k" else #line 14531 "unpk.c" { unparse_outmostpattern(p, kc_printer, view_check_outmostopers_in_phylum); } } else if (( kc_p->prod_sel == sel_PatternchainitemGroup)) { #line 739 "../util.k" patternchainitem mpg = kc_p; #line 739 "../util.k" patternchains mp = kc_p->u.PatternchainitemGroup.patternchains_1; #line 740 "../util.k" v_report( NonFatal( FileLine( mpg->file, mpg->line ), Problem1S( "Internal Error: PatternchainitemGroup was not handled correctly" ))); #line 14545 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_PatternchainitemOutmost: unparse_outmostpattern( kc_p->u.PatternchainitemOutmost.outmostpattern_1, kc_printer, kc_current_view ); break; case (int)sel_PatternchainitemGroup: unparse_patternchains( kc_p->u.PatternchainitemGroup.patternchains_1, kc_printer, kc_current_view ); break; case (int)sel_PatternchainitemDollarid: unparse_ID( kc_p->u.PatternchainitemDollarid.ID_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_outmostpattern #ifdef KC_USE_PROTOTYPES (outmostpattern kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) outmostpattern kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_outmostpattern(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_check_is_var: { if (( kc_p->prod_sel == sel_OPOperatorWildcard)) { #line 795 "../util.k" ID i = kc_p->u.OPOperatorWildcard.ID_1; #line 796 "../util.k" v_warnifnotvariable( i ); #line 14585 "unpk.c" } else if (( kc_p->prod_sel == sel_OPOperator)) { #line 798 "../util.k" /*EMPTY*/ #line 14590 "unpk.c" } else if (( kc_p->prod_sel == sel_OPNonLeafVariable)) { #line 800 "../util.k" /*EMPTY*/ #line 14595 "unpk.c" } else if (( kc_p->prod_sel == sel_OPWildcard)) { #line 802 "../util.k" /*EMPTY*/ #line 14600 "unpk.c" } else if (( kc_p->prod_sel == sel_OPDefault)) { #line 802 "../util.k" /*EMPTY*/ #line 14605 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_check_outmostopers_in_phylum: { if (( kc_p->prod_sel == sel_OPOperatorWildcard)) { #line 404 "../util.k" ID o = kc_p->u.OPOperatorWildcard.ID_1; #line 405 "../util.k" if ( f_useoccuroperator( o )) { if ( eq_ID( cf_topphylum(), f_emptyId() )) { cf_popphylum(); cf_pushphylum( f_phylumofoperator( o ) ); } if (! f_operatorinphylum( o, cf_topphylum())) { v_report(NonFatal( FileLine( o->file, o->line ), Problem1S1ID1S1ID( "outermost operator", o, "not in expected phylum", cf_topphylum() ))); } else { operators tmp = Consoperators( o, cf_topoutmostoperators() ); cf_popoutmostoperators(); cf_pushoutmostoperators( tmp ); } } #line 14632 "unpk.c" } else if (( kc_p->prod_sel == sel_OPOperator)) { #line 436 "../util.k" ID o = kc_p->u.OPOperator.ID_1; #line 436 "../util.k" patterns p = kc_p->u.OPOperator.patterns_1; #line 437 "../util.k" if( f_useoccuroperator( o )) #line 14641 "unpk.c" { #line 438 "../util.k" if ( eq_ID( cf_topphylum(), f_emptyId() )) { cf_popphylum(); cf_pushphylum( f_phylumofoperator( o ) ); } #line 14648 "unpk.c" #line 442 "../util.k" if (f_operatorinphylum( o, cf_topphylum())) #line 14651 "unpk.c" { #line 443 "../util.k" operators tmp = Consoperators( o, cf_topoutmostoperators() ); cf_popoutmostoperators(); cf_pushoutmostoperators( tmp ); cf_pusharguments( reverse_arguments( f_argumentsofoperator( o ))); cf_pushoperator( o ); #line 14660 "unpk.c" unparse_patterns(p, kc_printer, view_check); #line 450 "../util.k" if (! f_Nilarguments( cf_toparguments() )) { v_report(NonFatal( FileLine( o->file, o->line ), Problem1S1ID( "too few subpatterns for operator", o ))); } cf_poparguments(); cf_popoperator(); #line 14670 "unpk.c" } #line 458 "../util.k" else { v_report(NonFatal( FileLine( o->file, o->line ), Problem1S1ID1S1ID( "outermost operator", o, "not in expected phylum", cf_topphylum() ))); } #line 14678 "unpk.c" } } else if (( kc_p->prod_sel == sel_OPNonLeafVariable)) { #line 497 "../util.k" ID v = kc_p->u.OPNonLeafVariable.ID_1; #line 497 "../util.k" outmostpattern p = kc_p->u.OPNonLeafVariable.outmostpattern_1; #line 499 "../util.k" variables tmp = Consvariables( v, cf_topvariables() ); ID tmp_pid = f_phylumofoutmostpattern( p ); ID tmp_vid = f_phylumofpatternvariable( v ); ID tmp_resid = eq_ID( tmp_pid, f_emptyId() ) ? tmp_vid : tmp_pid; if ( eq_ID( cf_topphylum(), f_emptyId() )) { cf_popphylum(); cf_pushphylum( tmp_resid ); } cf_popvariables(); cf_pushvariables( tmp ); v_extendoccur( v, ITPatternVariable( tmp_resid, cl_scope)); #line 14698 "unpk.c" unparse_outmostpattern(p, kc_printer, view_check); } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_OPOperatorWildcard)) { #line 423 "../util.k" ID o = kc_p->u.OPOperatorWildcard.ID_1; #line 424 "../util.k" if( f_useoccuroperator( o )) { if ( eq_ID( cf_topphylum(), f_emptyId() )) { cf_popphylum(); cf_pushphylum( f_phylumofoperator( o ) ); } { operators tmp = Consoperators( o, cf_topoutmostoperators() ); cf_popoutmostoperators(); cf_pushoutmostoperators( tmp ); } } #line 14720 "unpk.c" } else if (( kc_p->prod_sel == sel_OPOperator)) { #line 465 "../util.k" ID o = kc_p->u.OPOperator.ID_1; #line 465 "../util.k" patterns p = kc_p->u.OPOperator.patterns_1; #line 466 "../util.k" if( f_useoccuroperator( o )) #line 14729 "unpk.c" { #line 467 "../util.k" if ( eq_ID( cf_topphylum(), f_emptyId() )) { cf_popphylum(); cf_pushphylum( f_phylumofoperator( o ) ); } #line 14736 "unpk.c" { #line 472 "../util.k" operators tmp = Consoperators( o, cf_topoutmostoperators() ); cf_popoutmostoperators(); cf_pushoutmostoperators( tmp ); cf_pusharguments( reverse_arguments( f_argumentsofoperator( o ))); cf_pushoperator( o ); #line 14745 "unpk.c" unparse_patterns(p, kc_printer, kc_current_view); #line 479 "../util.k" if (! f_Nilarguments( cf_toparguments() )) { v_report(NonFatal( FileLine( o->file, o->line ), Problem1S1ID( "too few subpatterns for operator", o ))); } cf_poparguments(); cf_popoperator(); #line 14755 "unpk.c" } } } else if (( kc_p->prod_sel == sel_OPNonLeafVariable)) { #line 488 "../util.k" ID v = kc_p->u.OPNonLeafVariable.ID_1; #line 488 "../util.k" outmostpattern p = kc_p->u.OPNonLeafVariable.outmostpattern_1; #line 490 "../util.k" variables tmp = Consvariables( v, cf_topvariables() ); cf_popvariables(); cf_pushvariables( tmp ); v_extendoccur( v, ITPatternVariable( f_phylumofoutmostpattern( p ), cl_scope)); #line 14770 "unpk.c" unparse_outmostpattern(p, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_OPWildcard)) { #line 513 "../util.k" /*EMPTY*/ #line 14776 "unpk.c" } else if (( kc_p->prod_sel == sel_OPDefault)) { #line 513 "../util.k" /*EMPTY*/ #line 14781 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_OPOperatorWildcard: unparse_ID( kc_p->u.OPOperatorWildcard.ID_1, kc_printer, kc_current_view ); break; case (int)sel_OPOperator: unparse_ID( kc_p->u.OPOperator.ID_1, kc_printer, kc_current_view ); unparse_patterns( kc_p->u.OPOperator.patterns_1, kc_printer, kc_current_view ); break; case (int)sel_OPNonLeafVariable: unparse_ID( kc_p->u.OPNonLeafVariable.ID_1, kc_printer, kc_current_view ); unparse_outmostpattern( kc_p->u.OPNonLeafVariable.outmostpattern_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_pattern #ifdef KC_USE_PROTOTYPES (pattern kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) pattern kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_pattern(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_check: { if (( kc_p->prod_sel == sel_PVariable)) { #line 535 "../util.k" ID v = kc_p->u.PVariable.ID_1; #line 536 "../util.k" variables tmp = Consvariables( v, cf_topvariables() ); cf_popvariables(); cf_pushvariables( tmp ); v_extendoccur( v, ITPatternVariable( f_hd_arguments( cf_toparguments() ), cl_scope )); #line 14828 "unpk.c" } else if (( kc_p->prod_sel == sel_POperator)) { #line 543 "../util.k" ID o = kc_p->u.POperator.ID_1; #line 543 "../util.k" patterns p = kc_p->u.POperator.patterns_1; #line 544 "../util.k" if( f_useoccuroperator( o )) #line 14837 "unpk.c" { #line 545 "../util.k" if (f_Nilarguments( cf_toparguments() )) { ID o = cf_topoperator(); v_report(NonFatal( FileLine( o->file, o->line ), Problem1S1ID( "too many subpatterns for operator", o ))); } else if (f_operatorinphylum( o, f_hd_arguments( cf_toparguments() ))) #line 14845 "unpk.c" { #line 550 "../util.k" cf_pusharguments( reverse_arguments( f_argumentsofoperator( o ))); cf_pushoperator( o ); #line 14851 "unpk.c" unparse_patterns(p, kc_printer, kc_current_view); #line 554 "../util.k" if (! f_Nilarguments( cf_toparguments() )) { v_report(NonFatal( FileLine( o->file, o->line ), Problem1S1ID( "too few subpatterns for operator", o ))); } cf_poparguments(); cf_popoperator(); #line 14861 "unpk.c" } #line 561 "../util.k" else #line 14865 "unpk.c" { #line 562 "../util.k" v_report(NonFatal( FileLine( o->file, o->line ), Problem1S1ID1S1ID( "operator", o, "not in phylum", f_hd_arguments( cf_toparguments() ) ))); #line 14872 "unpk.c" } } } else if (( kc_p->prod_sel == sel_PNonLeafVariable)) { #line 568 "../util.k" ID v = kc_p->u.PNonLeafVariable.ID_1; #line 568 "../util.k" pattern p = kc_p->u.PNonLeafVariable.pattern_1; #line 570 "../util.k" variables tmp = Consvariables( v, cf_topvariables() ); cf_popvariables(); cf_pushvariables( tmp ); v_extendoccur( v, ITPatternVariable( f_hd_arguments( cf_toparguments() ), cl_scope )); #line 14888 "unpk.c" unparse_pattern(p, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_PWildcard)) { #line 578 "../util.k" /*EMPTY*/ #line 14894 "unpk.c" } else if (( kc_p->prod_sel == sel_PStringLiteral)) { #line 580 "../util.k" if ( (! eq_ID( f_hd_arguments( cf_toparguments() ), Id( Str( mkcasestring( "casestring" ))))) && (! eq_ID( f_hd_arguments( cf_toparguments() ), Id( Str( mkcasestring( "nocasestring" ))))) ) { v_report(NonFatal( FileLine( cf_topoperator()->file, cf_topoperator()->line ), Problem1S( "unexpected string subterm" ))); } #line 14906 "unpk.c" } else if (( kc_p->prod_sel == sel_PIntLiteral)) { #line 589 "../util.k" INT i = kc_p->u.PIntLiteral.INT_1; #line 590 "../util.k" if ((! eq_ID( f_hd_arguments( cf_toparguments() ), Id( Str( mkcasestring( "int" ))))) && (! eq_ID( f_hd_arguments( cf_toparguments() ), Id( Str( mkcasestring( "float" ))))) ) { v_report(NonFatal( FileLine( i->file, i->line ), Problem1S( "unexpected int subterm" ))); } #line 14920 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_PVariable: unparse_ID( kc_p->u.PVariable.ID_1, kc_printer, kc_current_view ); break; case (int)sel_POperator: unparse_ID( kc_p->u.POperator.ID_1, kc_printer, kc_current_view ); unparse_patterns( kc_p->u.POperator.patterns_1, kc_printer, kc_current_view ); break; case (int)sel_PNonLeafVariable: unparse_ID( kc_p->u.PNonLeafVariable.ID_1, kc_printer, kc_current_view ); unparse_pattern( kc_p->u.PNonLeafVariable.pattern_1, kc_printer, kc_current_view ); break; case (int)sel_PStringLiteral: unparse_CexpressionDQ( kc_p->u.PStringLiteral.CexpressionDQ_1, kc_printer, kc_current_view ); break; case (int)sel_PIntLiteral: unparse_INT( kc_p->u.PIntLiteral.INT_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_patterns #ifdef KC_USE_PROTOTYPES (patterns kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) patterns kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_patterns(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_check: { if (( kc_p->prod_sel == sel_Nilpatterns)) { #line 531 "../util.k" /*EMPTY*/ #line 14966 "unpk.c" } else if (( kc_p->prod_sel == sel_Conspatterns)) { #line 515 "../util.k" pattern p = kc_p->u.Conspatterns.pattern_1; #line 515 "../util.k" patterns rp = kc_p->u.Conspatterns.patterns_1; unparse_patterns(rp, kc_printer, kc_current_view); #line 517 "../util.k" if (f_Nilarguments( cf_toparguments() )) { ID o = cf_topoperator(); v_report(NonFatal( FileLine( o->file, o->line ), Problem1S1ID( "too many subpatterns for operator", o ))); } else #line 14980 "unpk.c" { #line 522 "../util.k" arguments tmp; #line 14985 "unpk.c" unparse_pattern(p, kc_printer, kc_current_view); #line 525 "../util.k" tmp = cf_toparguments(); cf_poparguments(); cf_pusharguments( f_tl_arguments( tmp )); #line 14992 "unpk.c" } } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Conspatterns: unparse_pattern( kc_p->u.Conspatterns.pattern_1, kc_printer, kc_current_view ); unparse_patterns( kc_p->u.Conspatterns.patterns_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_term #ifdef KC_USE_PROTOTYPES (term kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) term kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_term(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { if (( kc_p->prod_sel == sel_TVariable)) { #line 7311 "../gen.k" ID id = kc_p->u.TVariable.ID_1; unparse_ID(id, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_TOperator)) { #line 7312 "../gen.k" ID id = kc_p->u.TOperator.ID_1; #line 7312 "../gen.k" terms t = kc_p->u.TOperator.terms_1; unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)("(", kc_current_view); } unparse_terms(t, kc_printer, kc_current_view); { (*kc_printer)(")", kc_current_view); } } else if (( kc_p->prod_sel == sel_TStringLiteral)) { #line 7313 "../gen.k" CexpressionDQ Cexpr = kc_p->u.TStringLiteral.CexpressionDQ_1; unparse_CexpressionDQ(Cexpr, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_TIntLiteral)) { #line 7314 "../gen.k" INT i = kc_p->u.TIntLiteral.INT_1; unparse_INT(i, kc_printer, kc_current_view); } else switch((int)kc_p->prod_sel) { case (int)sel_TVariable: unparse_ID( kc_p->u.TVariable.ID_1, kc_printer, kc_current_view ); break; case (int)sel_TOperator: unparse_ID( kc_p->u.TOperator.ID_1, kc_printer, kc_current_view ); unparse_terms( kc_p->u.TOperator.terms_1, kc_printer, kc_current_view ); break; case (int)sel_TStringLiteral: unparse_CexpressionDQ( kc_p->u.TStringLiteral.CexpressionDQ_1, kc_printer, kc_current_view ); break; case (int)sel_TIntLiteral: unparse_INT( kc_p->u.TIntLiteral.INT_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_terms #ifdef KC_USE_PROTOTYPES (terms kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) terms kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_terms(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { if (( kc_p->prod_sel == sel_Nilterms)) { #line 7315 "../gen.k" /*EMPTY*/ #line 15084 "unpk.c" } else if (( kc_p->prod_sel == sel_Consterms) && ( kc_p->u.Consterms.terms_1->prod_sel == sel_Nilterms)) { #line 7316 "../gen.k" term t = kc_p->u.Consterms.term_1; unparse_term(t, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Consterms)) { #line 7317 "../gen.k" term t = kc_p->u.Consterms.term_1; #line 7317 "../gen.k" terms r_t = kc_p->u.Consterms.terms_1; unparse_terms(r_t, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_term(t, kc_printer, kc_current_view); } else switch((int)kc_p->prod_sel) { case (int)sel_Consterms: unparse_term( kc_p->u.Consterms.term_1, kc_printer, kc_current_view ); unparse_terms( kc_p->u.Consterms.terms_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_fnfiles #ifdef KC_USE_PROTOTYPES (fnfiles kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) fnfiles kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_fnfiles(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { if (( kc_p->prod_sel == sel_Nilfnfiles)) { #line 199 "../gen.k" /*EMPTY*/ #line 15126 "unpk.c" } else if (( kc_p->prod_sel == sel_Consfnfiles)) { #line 200 "../gen.k" fnfile f = kc_p->u.Consfnfiles.fnfile_1; #line 200 "../gen.k" fnfiles r_f = kc_p->u.Consfnfiles.fnfiles_1; unparse_fnfiles(r_f, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_fnfile(f, kc_printer, kc_current_view); { (*kc_printer)("\"\ \n", kc_current_view); } } else switch((int)kc_p->prod_sel) { case (int)sel_Consfnfiles: unparse_fnfile( kc_p->u.Consfnfiles.fnfile_1, kc_printer, kc_current_view ); unparse_fnfiles( kc_p->u.Consfnfiles.fnfiles_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_fnfile #ifdef KC_USE_PROTOTYPES (fnfile kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) fnfile kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_fnfile(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_FnFile: unparse_casestring( kc_p->u.FnFile.casestring_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_fndeclarations #ifdef KC_USE_PROTOTYPES (fndeclarations kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) fndeclarations kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_fndeclarations(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_fnk_c: { if (( kc_p->prod_sel == sel_Nilfndeclarations)) { #line 7403 "../gen.k" /*EMPTY*/ #line 15186 "unpk.c" } else if (( kc_p->prod_sel == sel_Consfndeclarations)) { #line 7404 "../gen.k" fndeclaration fnd = kc_p->u.Consfndeclarations.fndeclaration_1; #line 7404 "../gen.k" fndeclarations r_fnds = kc_p->u.Consfndeclarations.fndeclarations_1; unparse_fndeclarations(r_fnds, kc_printer, kc_current_view); unparse_fndeclaration(fnd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_fnkdecls_c: { if (( kc_p->prod_sel == sel_Nilfndeclarations)) { #line 7380 "../gen.k" /*EMPTY*/ #line 15203 "unpk.c" } else if (( kc_p->prod_sel == sel_Consfndeclarations)) { #line 7381 "../gen.k" fndeclaration fnd = kc_p->u.Consfndeclarations.fndeclaration_1; #line 7381 "../gen.k" fndeclarations r_fnds = kc_p->u.Consfndeclarations.fndeclarations_1; unparse_fndeclarations(r_fnds, kc_printer, kc_current_view); unparse_fndeclaration(fnd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_fnk_h: { if (( kc_p->prod_sel == sel_Nilfndeclarations)) { #line 7321 "../gen.k" /*EMPTY*/ #line 15220 "unpk.c" } else if (( kc_p->prod_sel == sel_Consfndeclarations)) { #line 7322 "../gen.k" fndeclaration fnd = kc_p->u.Consfndeclarations.fndeclaration_1; #line 7322 "../gen.k" fndeclarations r_fnds = kc_p->u.Consfndeclarations.fndeclarations_1; unparse_fndeclarations(r_fnds, kc_printer, kc_current_view); unparse_fndeclaration(fnd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_make_patternreps: { if (( kc_p->prod_sel == sel_Nilfndeclarations)) { #line 1817 "../util.k" /*EMPTY*/ #line 15237 "unpk.c" } else if (( kc_p->prod_sel == sel_Consfndeclarations)) { #line 1818 "../util.k" fndeclaration a_fnd = kc_p->u.Consfndeclarations.fndeclaration_1; #line 1818 "../util.k" fndeclarations r_fnd = kc_p->u.Consfndeclarations.fndeclarations_1; unparse_fndeclarations(r_fnd, kc_printer, kc_current_view); unparse_fndeclaration(a_fnd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_Nilfndeclarations)) { #line 637 "../util.k" /*EMPTY*/ #line 15254 "unpk.c" } else if (( kc_p->prod_sel == sel_Consfndeclarations)) { #line 635 "../util.k" fndeclaration fnd = kc_p->u.Consfndeclarations.fndeclaration_1; #line 635 "../util.k" fndeclarations fnds = kc_p->u.Consfndeclarations.fndeclarations_1; unparse_fndeclarations(fnds, kc_printer, kc_current_view); unparse_fndeclaration(fnd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consfndeclarations: unparse_fndeclaration( kc_p->u.Consfndeclarations.fndeclaration_1, kc_printer, kc_current_view ); unparse_fndeclarations( kc_p->u.Consfndeclarations.fndeclarations_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_fndeclaration #ifdef KC_USE_PROTOTYPES (fndeclaration kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) fndeclaration kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_fndeclaration(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_fnk_c: { if (( kc_p->prod_sel == sel_FnDeclaration)) { #line 7408 "../gen.k" ID fn_t = kc_p->u.FnDeclaration.ID_1; #line 7408 "../gen.k" int fn_p = kc_p->u.FnDeclaration.int_1; #line 7408 "../gen.k" ID fn_name = kc_p->u.FnDeclaration.ID_2; #line 7408 "../gen.k" fnarguments fn_args = kc_p->u.FnDeclaration.fnarguments_1; #line 7408 "../gen.k" Ctext ct = kc_p->u.FnDeclaration.Ctext_1; #line 7408 "../gen.k" fnclass fn_c = kc_p->u.FnDeclaration.fnclass_1; #line 7409 "../gen.k" char *star_string = f_mkstars( fn_p ); gl_return_type = f_strofID( fn_t ); gl_return_ID = fn_t; gl_star_string = star_string; gl_function = f_strofID( fn_name ); #line 15312 "unpk.c" unparse_fnclass(fn_c, kc_printer, kc_current_view); unparse_ID(fn_t, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_charptr(star_string, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(fn_name, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_Cvariabledeclarations(kc_p->sorted, kc_printer, view_gen_fnkarg_and_decls); { (*kc_printer)(")\ \n#else\ \n(", kc_current_view); } unparse_fnarguments(fn_args, kc_printer, kc_current_view); { (*kc_printer)(") ", kc_current_view); } unparse_Cvariabledeclarations(kc_p->sorted, kc_printer, kc_current_view); { (*kc_printer)("\ \n#endif\ \n#line ", kc_current_view); } unparse_int(ct->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(ct->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n{", kc_current_view); } unparse_Ctext(ct, kc_printer, view_gen_initializephyla_c); { (*kc_printer)("\ \n#line ", kc_current_view); } unparse_int(kc_p->last_line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(kc_p->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n}", kc_current_view); } unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); { (*kc_printer)("\ \n", kc_current_view); } #line 7430 "../gen.k" gl_return_type = ""; gl_return_ID = 0; gl_star_string = ""; gl_function = ""; #line 15354 "unpk.c" } else if (( kc_p->prod_sel == sel_FnAcDeclaration)) { #line 7500 "../gen.k" ac_declaration_specifiers fn_ds = kc_p->u.FnAcDeclaration.ac_declaration_specifiers_1; #line 7500 "../gen.k" ac_declarator fn_d = kc_p->u.FnAcDeclaration.ac_declarator_1; #line 7500 "../gen.k" Ctext ct = kc_p->u.FnAcDeclaration.Ctext_1; #line 7500 "../gen.k" ID fn_name = kc_p->u.FnAcDeclaration.ID_1; #line 7501 "../gen.k" char *star_string = f_mkstars( f_stars_of_declarator( fn_d ) ); gl_return_ID = f_ID_of_ac_declaration_specifiers( fn_ds ); gl_return_type = f_strofID( gl_return_ID ); gl_star_string = star_string; gl_function = f_strofID( fn_name ); #line 15372 "unpk.c" unparse_ac_declaration_specifiers(fn_ds, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ac_declarator(fn_d, kc_printer, view_gen_fn_pointer_name); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(", kc_current_view); } unparse_ac_parameter_type_list(kc_p->newsorted, kc_printer, kc_current_view); { (*kc_printer)(")\ \n#else\ \n(", kc_current_view); } unparse_ac_parameter_type_list(kc_p->newsorted, kc_printer, view_gen_fnkargs); { (*kc_printer)(") ", kc_current_view); } unparse_ac_parameter_type_list(kc_p->newsorted, kc_printer, view_gen_fnkdecls); { (*kc_printer)("\ \n#endif\ \n#line ", kc_current_view); } unparse_int(ct->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(ct->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n{", kc_current_view); } unparse_Ctext(ct, kc_printer, view_gen_initializephyla_c); { (*kc_printer)("\ \n#line ", kc_current_view); } unparse_int(kc_p->last_line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(kc_p->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n}", kc_current_view); } unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); { (*kc_printer)("\ \n", kc_current_view); } #line 7522 "../gen.k" gl_return_type = ""; gl_return_ID = 0; gl_star_string = ""; gl_function = ""; #line 15411 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_fnkdecls_c: { if (( kc_p->prod_sel == sel_FnDeclaration) && ( kc_p->u.FnDeclaration.fnclass_1->prod_sel == sel_GlobalFn)) { #line 7386 "../gen.k" /*EMPTY*/ #line 15420 "unpk.c" } else if (( kc_p->prod_sel == sel_FnDeclaration) && ( kc_p->u.FnDeclaration.fnclass_1->prod_sel == sel_LocalFn)) { #line 7387 "../gen.k" ID fn_t = kc_p->u.FnDeclaration.ID_1; #line 7387 "../gen.k" int fn_p = kc_p->u.FnDeclaration.int_1; #line 7387 "../gen.k" ID fn_name = kc_p->u.FnDeclaration.ID_2; #line 7389 "../gen.k" char *star_string = f_mkstars( fn_p ); #line 15432 "unpk.c" { (*kc_printer)("static ", kc_current_view); } unparse_ID(fn_t, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_charptr(star_string, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(fn_name, kc_printer, kc_current_view); { (*kc_printer)(" KC__P((", kc_current_view); } unparse_Cvariabledeclarations(kc_p->sorted, kc_printer, view_gen_fnk_h); { (*kc_printer)(")); \ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_FnAcDeclaration) && ( kc_p->u.FnAcDeclaration.fnclass_1->prod_sel == sel_GlobalFn)) { #line 7396 "../gen.k" /*EMPTY*/ #line 15447 "unpk.c" } else if (( kc_p->prod_sel == sel_FnAcDeclaration) && ( kc_p->u.FnAcDeclaration.fnclass_1->prod_sel == sel_LocalFn)) { #line 7397 "../gen.k" ac_declaration_specifiers fn_ds = kc_p->u.FnAcDeclaration.ac_declaration_specifiers_1; #line 7397 "../gen.k" ac_declarator fn_d = kc_p->u.FnAcDeclaration.ac_declarator_1; unparse_ac_declaration_specifiers(fn_ds, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ac_declarator(fn_d, kc_printer, view_gen_fn_pointer_name); { (*kc_printer)(" KC__P((", kc_current_view); } unparse_ac_parameter_type_list(kc_p->newsorted, kc_printer, kc_current_view); { (*kc_printer)(")); \ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_fnk_h: { if (( kc_p->prod_sel == sel_FnDeclaration) && ( kc_p->u.FnDeclaration.fnclass_1->prod_sel == sel_GlobalFn)) { #line 7326 "../gen.k" ID fn_t = kc_p->u.FnDeclaration.ID_1; #line 7326 "../gen.k" int fn_p = kc_p->u.FnDeclaration.int_1; #line 7326 "../gen.k" ID fn_name = kc_p->u.FnDeclaration.ID_2; #line 7328 "../gen.k" char *star_string = f_mkstars( fn_p ); #line 15476 "unpk.c" unparse_ID(fn_t, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_charptr(star_string, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(fn_name, kc_printer, kc_current_view); { (*kc_printer)(" KC__P((", kc_current_view); } unparse_Cvariabledeclarations(kc_p->sorted, kc_printer, kc_current_view); { (*kc_printer)(")); \ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_FnDeclaration) && ( kc_p->u.FnDeclaration.fnclass_1->prod_sel == sel_LocalFn)) { #line 7334 "../gen.k" /*EMPTY*/ #line 15490 "unpk.c" } else if (( kc_p->prod_sel == sel_FnAcDeclaration) && ( kc_p->u.FnAcDeclaration.fnclass_1->prod_sel == sel_GlobalFn)) { #line 7340 "../gen.k" ac_declaration_specifiers fn_ds = kc_p->u.FnAcDeclaration.ac_declaration_specifiers_1; #line 7340 "../gen.k" ac_declarator fn_d = kc_p->u.FnAcDeclaration.ac_declarator_1; unparse_ac_declaration_specifiers(fn_ds, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ac_declarator(fn_d, kc_printer, view_gen_fn_pointer_name); { (*kc_printer)(" KC__P((", kc_current_view); } unparse_ac_parameter_type_list(kc_p->newsorted, kc_printer, kc_current_view); { (*kc_printer)(")); \ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_FnAcDeclaration) && ( kc_p->u.FnAcDeclaration.fnclass_1->prod_sel == sel_LocalFn)) { #line 7346 "../gen.k" /*EMPTY*/ #line 15508 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_make_patternreps: { if (( kc_p->prod_sel == sel_FnDeclaration)) { #line 1823 "../util.k" Ctext ct = kc_p->u.FnDeclaration.Ctext_1; unparse_Ctext(ct, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_FnAcDeclaration)) { #line 1822 "../util.k" Ctext ct = kc_p->u.FnAcDeclaration.Ctext_1; unparse_Ctext(ct, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_FnDeclaration)) { #line 639 "../util.k" Ctext ct = kc_p->u.FnDeclaration.Ctext_1; unparse_Ctext(ct, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_FnAcDeclaration)) { #line 638 "../util.k" Ctext ct = kc_p->u.FnAcDeclaration.Ctext_1; unparse_Ctext(ct, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_FnDeclaration: unparse_ID( kc_p->u.FnDeclaration.ID_1, kc_printer, kc_current_view ); unparse_int( kc_p->u.FnDeclaration.int_1, kc_printer, kc_current_view ); unparse_ID( kc_p->u.FnDeclaration.ID_2, kc_printer, kc_current_view ); unparse_fnarguments( kc_p->u.FnDeclaration.fnarguments_1, kc_printer, kc_current_view ); unparse_Cvariabledeclarations( kc_p->u.FnDeclaration.Cvariabledeclarations_1, kc_printer, kc_current_view ); unparse_Ctext( kc_p->u.FnDeclaration.Ctext_1, kc_printer, kc_current_view ); unparse_fnclass( kc_p->u.FnDeclaration.fnclass_1, kc_printer, kc_current_view ); break; case (int)sel_FnAcDeclaration: unparse_ac_declaration_specifiers( kc_p->u.FnAcDeclaration.ac_declaration_specifiers_1, kc_printer, kc_current_view ); unparse_ac_declarator( kc_p->u.FnAcDeclaration.ac_declarator_1, kc_printer, kc_current_view ); unparse_ac_declaration_list( kc_p->u.FnAcDeclaration.ac_declaration_list_1, kc_printer, kc_current_view ); unparse_Ctext( kc_p->u.FnAcDeclaration.Ctext_1, kc_printer, kc_current_view ); unparse_ID( kc_p->u.FnAcDeclaration.ID_1, kc_printer, kc_current_view ); unparse_fnclass( kc_p->u.FnAcDeclaration.fnclass_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_fnclass #ifdef KC_USE_PROTOTYPES (fnclass kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) fnclass kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_fnclass(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_fnk_c: { if (( kc_p->prod_sel == sel_GlobalFn)) { #line 7436 "../gen.k" /*EMPTY*/ #line 15582 "unpk.c" } else if (( kc_p->prod_sel == sel_LocalFn)) { { (*kc_printer)("static ", kc_current_view); } } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_LocalFn: unparse_casestring( kc_p->u.LocalFn.casestring_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_fnarguments #ifdef KC_USE_PROTOTYPES (fnarguments kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) fnarguments kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_fnarguments(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_fnk_c: { if (( kc_p->prod_sel == sel_Nilfnarguments)) { #line 7440 "../gen.k" /*EMPTY*/ #line 15617 "unpk.c" } else if (( kc_p->prod_sel == sel_Consfnarguments) && ( kc_p->u.Consfnarguments.fnarguments_1->prod_sel == sel_Nilfnarguments)) { #line 7441 "../gen.k" ID a_fnarg = kc_p->u.Consfnarguments.ID_1; unparse_ID(a_fnarg, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Consfnarguments)) { #line 7444 "../gen.k" ID a_fnarg = kc_p->u.Consfnarguments.ID_1; #line 7444 "../gen.k" fnarguments r_fnargs = kc_p->u.Consfnarguments.fnarguments_1; unparse_fnarguments(r_fnargs, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_ID(a_fnarg, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consfnarguments: unparse_ID( kc_p->u.Consfnarguments.ID_1, kc_printer, kc_current_view ); unparse_fnarguments( kc_p->u.Consfnarguments.fnarguments_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_Cvariabledeclarations #ifdef KC_USE_PROTOTYPES (Cvariabledeclarations kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) Cvariabledeclarations kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_Cvariabledeclarations(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_fnkarg_and_decls: { if (( kc_p->prod_sel == sel_NilCvariabledeclarations)) { #line 7479 "../gen.k" /*EMPTY*/ #line 15664 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsCvariabledeclarations) && ( kc_p->u.ConsCvariabledeclarations.Cvariabledeclarations_1->prod_sel == sel_NilCvariabledeclarations)) { #line 7480 "../gen.k" Cvariabledeclaration Cvard = kc_p->u.ConsCvariabledeclarations.Cvariabledeclaration_1; unparse_Cvariabledeclaration(Cvard, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_ConsCvariabledeclarations)) { #line 7483 "../gen.k" Cvariabledeclaration Cvard = kc_p->u.ConsCvariabledeclarations.Cvariabledeclaration_1; #line 7483 "../gen.k" Cvariabledeclarations r_Cvards = kc_p->u.ConsCvariabledeclarations.Cvariabledeclarations_1; unparse_Cvariabledeclarations(r_Cvards, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_Cvariabledeclaration(Cvard, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_fnk_c: { if (( kc_p->prod_sel == sel_NilCvariabledeclarations)) { #line 7448 "../gen.k" /*EMPTY*/ #line 15687 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsCvariabledeclarations) && ( kc_p->u.ConsCvariabledeclarations.Cvariabledeclarations_1->prod_sel == sel_NilCvariabledeclarations)) { #line 7449 "../gen.k" Cvariabledeclaration Cvard = kc_p->u.ConsCvariabledeclarations.Cvariabledeclaration_1; unparse_Cvariabledeclaration(Cvard, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_ConsCvariabledeclarations)) { #line 7452 "../gen.k" Cvariabledeclaration Cvard = kc_p->u.ConsCvariabledeclarations.Cvariabledeclaration_1; #line 7452 "../gen.k" Cvariabledeclarations r_Cvards = kc_p->u.ConsCvariabledeclarations.Cvariabledeclarations_1; unparse_Cvariabledeclarations(r_Cvards, kc_printer, kc_current_view); { (*kc_printer)("\ \n", kc_current_view); } unparse_Cvariabledeclaration(Cvard, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_fnk_h: { if (( kc_p->prod_sel == sel_NilCvariabledeclarations)) { #line 7335 "../gen.k" /*EMPTY*/ #line 15711 "unpk.c" } else if (( kc_p->prod_sel == sel_NilCvariabledeclarations)) { #line 7348 "../gen.k" /*EMPTY*/ #line 15716 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsCvariabledeclarations) && ( kc_p->u.ConsCvariabledeclarations.Cvariabledeclarations_1->prod_sel == sel_NilCvariabledeclarations)) { #line 7336 "../gen.k" Cvariabledeclaration Cvard = kc_p->u.ConsCvariabledeclarations.Cvariabledeclaration_1; unparse_Cvariabledeclaration(Cvard, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_ConsCvariabledeclarations) && ( kc_p->u.ConsCvariabledeclarations.Cvariabledeclarations_1->prod_sel == sel_NilCvariabledeclarations)) { #line 7349 "../gen.k" Cvariabledeclaration Cvard = kc_p->u.ConsCvariabledeclarations.Cvariabledeclaration_1; unparse_Cvariabledeclaration(Cvard, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_ConsCvariabledeclarations)) { #line 7352 "../gen.k" Cvariabledeclaration Cvard = kc_p->u.ConsCvariabledeclarations.Cvariabledeclaration_1; #line 7352 "../gen.k" Cvariabledeclarations r_Cvards = kc_p->u.ConsCvariabledeclarations.Cvariabledeclarations_1; unparse_Cvariabledeclarations(r_Cvards, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_Cvariabledeclaration(Cvard, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_ConsCvariabledeclarations: unparse_Cvariabledeclaration( kc_p->u.ConsCvariabledeclarations.Cvariabledeclaration_1, kc_printer, kc_current_view ); unparse_Cvariabledeclarations( kc_p->u.ConsCvariabledeclarations.Cvariabledeclarations_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_Cvariabledeclaration #ifdef KC_USE_PROTOTYPES (Cvariabledeclaration kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) Cvariabledeclaration kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_Cvariabledeclaration(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_fnkarg_and_decls: { if (( kc_p->prod_sel == sel_CVariabledeclaration)) { #line 7486 "../gen.k" ID type = kc_p->u.CVariabledeclaration.ID_1; #line 7486 "../gen.k" Cvariables a_Cvars = kc_p->u.CVariabledeclaration.Cvariables_1; #line 7487 "../gen.k" gl_type = type; #line 15772 "unpk.c" unparse_Cvariables(a_Cvars, kc_printer, kc_current_view); #line 7489 "../gen.k" gl_type = 0; #line 15776 "unpk.c" } else if (( kc_p->prod_sel == sel_Fnargfpdecl)) { #line 7491 "../gen.k" /*EMPTY*/ #line 15781 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_fnk_c: { if (( kc_p->prod_sel == sel_CVariabledeclaration)) { #line 7456 "../gen.k" ID type = kc_p->u.CVariabledeclaration.ID_1; #line 7456 "../gen.k" Cvariables a_Cvars = kc_p->u.CVariabledeclaration.Cvariables_1; unparse_ID(type, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_Cvariables(a_Cvars, kc_printer, kc_current_view); { (*kc_printer)(";", kc_current_view); } } else if (( kc_p->prod_sel == sel_Fnargfpdecl)) { #line 7459 "../gen.k" /*EMPTY*/ #line 15800 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_fnk_h: { if (( kc_p->prod_sel == sel_CVariabledeclaration)) { #line 7355 "../gen.k" ID type = kc_p->u.CVariabledeclaration.ID_1; #line 7355 "../gen.k" Cvariables a_Cvars = kc_p->u.CVariabledeclaration.Cvariables_1; unparse_ID(type, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_Cvariables(a_Cvars, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Fnargfpdecl)) { #line 7358 "../gen.k" /*EMPTY*/ #line 15818 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_CVariabledeclaration: unparse_ID( kc_p->u.CVariabledeclaration.ID_1, kc_printer, kc_current_view ); unparse_Cvariables( kc_p->u.CVariabledeclaration.Cvariables_1, kc_printer, kc_current_view ); break; case (int)sel_Fnargfpdecl: unparse_ID( kc_p->u.Fnargfpdecl.ID_1, kc_printer, kc_current_view ); unparse_Cvariables( kc_p->u.Fnargfpdecl.Cvariables_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_Cvariables #ifdef KC_USE_PROTOTYPES (Cvariables kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) Cvariables kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_Cvariables(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_fnkarg_and_decls: { if (( kc_p->prod_sel == sel_NilCvariables)) { #line 7492 "../gen.k" /*EMPTY*/ #line 15855 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsCvariables) && ( kc_p->u.ConsCvariables.Cvariables_1->prod_sel == sel_NilCvariables)) { #line 7493 "../gen.k" Cvariable a_Cvar = kc_p->u.ConsCvariables.Cvariable_1; unparse_ID(gl_type, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_Cvariable(a_Cvar, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_ConsCvariables)) { #line 7496 "../gen.k" Cvariable a_Cvar = kc_p->u.ConsCvariables.Cvariable_1; #line 7496 "../gen.k" Cvariables r_Cvars = kc_p->u.ConsCvariables.Cvariables_1; unparse_Cvariables(r_Cvars, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_ID(gl_type, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_Cvariable(a_Cvar, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_fnk_c: { if (( kc_p->prod_sel == sel_NilCvariables)) { #line 7460 "../gen.k" /*EMPTY*/ #line 15882 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsCvariables) && ( kc_p->u.ConsCvariables.Cvariables_1->prod_sel == sel_NilCvariables)) { #line 7461 "../gen.k" Cvariable a_Cvar = kc_p->u.ConsCvariables.Cvariable_1; unparse_Cvariable(a_Cvar, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_ConsCvariables)) { #line 7464 "../gen.k" Cvariable a_Cvar = kc_p->u.ConsCvariables.Cvariable_1; #line 7464 "../gen.k" Cvariables r_Cvars = kc_p->u.ConsCvariables.Cvariables_1; unparse_Cvariables(r_Cvars, kc_printer, kc_current_view); { (*kc_printer)(",", kc_current_view); } unparse_Cvariable(a_Cvar, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_fnk_h: { if (( kc_p->prod_sel == sel_NilCvariables)) { #line 7359 "../gen.k" /*EMPTY*/ #line 15905 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsCvariables) && ( kc_p->u.ConsCvariables.Cvariables_1->prod_sel == sel_NilCvariables)) { #line 7360 "../gen.k" Cvariable a_Cvar = kc_p->u.ConsCvariables.Cvariable_1; unparse_Cvariable(a_Cvar, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_ConsCvariables)) { #line 7363 "../gen.k" Cvariable a_Cvar = kc_p->u.ConsCvariables.Cvariable_1; #line 7363 "../gen.k" Cvariables r_Cvars = kc_p->u.ConsCvariables.Cvariables_1; unparse_Cvariables(r_Cvars, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_Cvariable(a_Cvar, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_ConsCvariables: unparse_Cvariable( kc_p->u.ConsCvariables.Cvariable_1, kc_printer, kc_current_view ); unparse_Cvariables( kc_p->u.ConsCvariables.Cvariables_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_Cvariable #ifdef KC_USE_PROTOTYPES (Cvariable kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) Cvariable kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_Cvariable(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_fnkarg_and_decls: { if (( kc_p->prod_sel == sel_CVPointer)) { #line 7467 "../gen.k" int pointer = kc_p->u.CVPointer.int_1; #line 7467 "../gen.k" ID name = kc_p->u.CVPointer.ID_1; #line 7468 "../gen.k" char *star_string = f_mkstars( pointer ); #line 15957 "unpk.c" unparse_charptr(star_string, kc_printer, kc_current_view); unparse_ID(name, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_CVFunction)) { #line 7472 "../gen.k" int pointer1 = kc_p->u.CVFunction.int_1; #line 7472 "../gen.k" int pointer2 = kc_p->u.CVFunction.int_2; #line 7472 "../gen.k" ID name = kc_p->u.CVFunction.ID_1; #line 7473 "../gen.k" char *star_string1 = f_mkstars( pointer1 ); char *star_string2 = f_mkstars( pointer2 ); #line 15972 "unpk.c" unparse_charptr(star_string1, kc_printer, kc_current_view); { (*kc_printer)("(", kc_current_view); } unparse_charptr(star_string2, kc_printer, kc_current_view); unparse_ID(name, kc_printer, kc_current_view); { (*kc_printer)(")()", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_fnk_c: { if (( kc_p->prod_sel == sel_CVPointer)) { #line 7467 "../gen.k" int pointer = kc_p->u.CVPointer.int_1; #line 7467 "../gen.k" ID name = kc_p->u.CVPointer.ID_1; #line 7468 "../gen.k" char *star_string = f_mkstars( pointer ); #line 15991 "unpk.c" unparse_charptr(star_string, kc_printer, kc_current_view); unparse_ID(name, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_CVFunction)) { #line 7472 "../gen.k" int pointer1 = kc_p->u.CVFunction.int_1; #line 7472 "../gen.k" int pointer2 = kc_p->u.CVFunction.int_2; #line 7472 "../gen.k" ID name = kc_p->u.CVFunction.ID_1; #line 7473 "../gen.k" char *star_string1 = f_mkstars( pointer1 ); char *star_string2 = f_mkstars( pointer2 ); #line 16006 "unpk.c" unparse_charptr(star_string1, kc_printer, kc_current_view); { (*kc_printer)("(", kc_current_view); } unparse_charptr(star_string2, kc_printer, kc_current_view); unparse_ID(name, kc_printer, kc_current_view); { (*kc_printer)(")()", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_fnk_h: { if (( kc_p->prod_sel == sel_CVPointer)) { #line 7366 "../gen.k" int pointer = kc_p->u.CVPointer.int_1; #line 7367 "../gen.k" char *star_string = f_mkstars( pointer ); #line 16023 "unpk.c" unparse_charptr(star_string, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_CVFunction)) { #line 7371 "../gen.k" int pointer1 = kc_p->u.CVFunction.int_1; #line 7371 "../gen.k" int pointer2 = kc_p->u.CVFunction.int_2; #line 7372 "../gen.k" char *star_string1 = f_mkstars( pointer1 ); char *star_string2 = f_mkstars( pointer2 ); #line 16035 "unpk.c" unparse_charptr(star_string1, kc_printer, kc_current_view); { (*kc_printer)("(", kc_current_view); } unparse_charptr(star_string2, kc_printer, kc_current_view); { (*kc_printer)(")()", kc_current_view); } } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_CVPointer: unparse_int( kc_p->u.CVPointer.int_1, kc_printer, kc_current_view ); unparse_ID( kc_p->u.CVPointer.ID_1, kc_printer, kc_current_view ); break; case (int)sel_CVFunction: unparse_int( kc_p->u.CVFunction.int_1, kc_printer, kc_current_view ); unparse_int( kc_p->u.CVFunction.int_2, kc_printer, kc_current_view ); unparse_ID( kc_p->u.CVFunction.ID_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_Ctext #ifdef KC_USE_PROTOTYPES (Ctext kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) Ctext kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_Ctext(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_make_patternreps: { if (( kc_p->prod_sel == sel_NilCtext)) { #line 1827 "../util.k" /*EMPTY*/ #line 16077 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsCtext)) { #line 1828 "../util.k" Ctext_elem ct_elem = kc_p->u.ConsCtext.Ctext_elem_1; #line 1828 "../util.k" Ctext r_ct = kc_p->u.ConsCtext.Ctext_1; unparse_Ctext(r_ct, kc_printer, kc_current_view); unparse_Ctext_elem(ct_elem, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_initializephyla_c: { if (( kc_p->prod_sel == sel_NilCtext)) { #line 3353 "../gen.k" /*EMPTY*/ #line 16094 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsCtext)) { #line 3349 "../gen.k" Ctext_elem cte = kc_p->u.ConsCtext.Ctext_elem_1; #line 3349 "../gen.k" Ctext ct = kc_p->u.ConsCtext.Ctext_1; #line 3350 "../gen.k" gl_print_line_directive = False; #line 16103 "unpk.c" unparse_Ctext(ct, kc_printer, kc_current_view); unparse_Ctext_elem(cte, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_NilCtext)) { #line 642 "../util.k" /*EMPTY*/ #line 16114 "unpk.c" } else if (( kc_p->prod_sel == sel_ConsCtext)) { #line 641 "../util.k" Ctext_elem cte = kc_p->u.ConsCtext.Ctext_elem_1; #line 641 "../util.k" Ctext ctes = kc_p->u.ConsCtext.Ctext_1; unparse_Ctext(ctes, kc_printer, kc_current_view); unparse_Ctext_elem(cte, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_ConsCtext: unparse_Ctext_elem( kc_p->u.ConsCtext.Ctext_elem_1, kc_printer, kc_current_view ); unparse_Ctext( kc_p->u.ConsCtext.Ctext_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_Ctext_elem #ifdef KC_USE_PROTOTYPES (Ctext_elem kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) Ctext_elem kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_Ctext_elem(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_make_patternreps: { if (( kc_p->prod_sel == sel_CTextCbody)) { #line 1832 "../util.k" Ctext ct = kc_p->u.CTextCbody.Ctext_1; unparse_Ctext(ct, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_CTextForeachexpression)) { #line 1835 "../util.k" Ctext ct = kc_p->u.CTextForeachexpression.Ctext_1; #line 1835 "../util.k" foreach_after fa = kc_p->u.CTextForeachexpression.foreach_after_1; unparse_Ctext(ct, kc_printer, kc_current_view); unparse_foreach_after(fa, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_CTextWithexpression)) { #line 1845 "../util.k" withcases wc = kc_p->u.CTextWithexpression.withcases_1; unparse_withcases(wc, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_initializephyla_c: { if (( kc_p->prod_sel == sel_CTextLine)) { #line 3354 "../gen.k" casestring cs = kc_p->u.CTextLine.casestring_1; #line 3355 "../gen.k" if (gl_print_line_directive) #line 16179 "unpk.c" { { (*kc_printer)("#line ", kc_current_view); } unparse_int(kc_p->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(kc_p->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n", kc_current_view); } #line 3358 "../gen.k" gl_print_line_directive = False; #line 16189 "unpk.c" } unparse_casestring(cs, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_CTextDollarVar)) { #line 3305 "../gen.k" INT i = kc_p->u.CTextDollarVar.INT_1; #line 3307 "../gen.k" ID oid = f_emptyId(), dollarvar = cf_topdollarvar(), dollarvarext = cf_topdollarvarext(); argument arg; boolean nulvar = True; { #line 3310 "../gen.k" INT kc_selvar_0_1 = i ; #line 3310 "../gen.k" /*SUPPRESS 622*/ assert_INT(kc_selvar_0_1, "with_expression (1)"); #line 16209 "unpk.c" if (( kc_selvar_0_1->prod_sel == sel_Int)) { #line 3311 "../gen.k" int ii = kc_selvar_0_1->u.Int.int_1; #line 3311 "../gen.k" if (ii != 0) { nulvar = False; oid = cf_topoperator(); arg = f_argumentofoperator( oid, i ); } #line 16220 "unpk.c" } else kc_no_default_in_with( "", __LINE__, __FILE__ ); } #line 3316 "../gen.k" #line 16226 "unpk.c" #line 3321 "../gen.k" if (nulvar) #line 16229 "unpk.c" { unparse_ID(dollarvar, kc_printer, kc_current_view); unparse_ID(dollarvarext, kc_printer, kc_current_view); } #line 3323 "../gen.k" else #line 16236 "unpk.c" { unparse_ID(dollarvar, kc_printer, kc_current_view); unparse_ID(dollarvarext, kc_printer, kc_current_view); { (*kc_printer)("->u.", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_argument(arg, kc_printer, kc_current_view); #line 3325 "../gen.k" free_argument( arg, False ); #line 16246 "unpk.c" } } else if (( kc_p->prod_sel == sel_CTextNl)) { #line 3362 "../gen.k" int i = kc_p->u.CTextNl.int_1; #line 3363 "../gen.k" char *nl_string; #line 16254 "unpk.c" #line 3364 "../gen.k" if (gl_print_line_directive) #line 16257 "unpk.c" { { (*kc_printer)("#line ", kc_current_view); } unparse_int(kc_p->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(kc_p->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n", kc_current_view); } #line 3367 "../gen.k" gl_print_line_directive = False; #line 16267 "unpk.c" #line 3368 "../gen.k" nl_string = f_mknls( i - 1 ); #line 16270 "unpk.c" } #line 3369 "../gen.k" else #line 16274 "unpk.c" { #line 3370 "../gen.k" nl_string = f_mknls( i ); #line 16278 "unpk.c" } unparse_charptr(nl_string, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_CTextCexpressionDQ)) { #line 3374 "../gen.k" CexpressionDQ cedq = kc_p->u.CTextCexpressionDQ.CexpressionDQ_1; #line 3375 "../gen.k" if (gl_print_line_directive) #line 16287 "unpk.c" { { (*kc_printer)("#line ", kc_current_view); } unparse_int(kc_p->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(kc_p->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n", kc_current_view); } #line 3378 "../gen.k" gl_print_line_directive = False; #line 16297 "unpk.c" } { (*kc_printer)("\"", kc_current_view); } unparse_CexpressionDQ(cedq, kc_printer, kc_current_view); { (*kc_printer)("\"", kc_current_view); } } else if (( kc_p->prod_sel == sel_CTextCexpressionSQ)) { #line 3382 "../gen.k" CexpressionSQ cesq = kc_p->u.CTextCexpressionSQ.CexpressionSQ_1; #line 3383 "../gen.k" if (gl_print_line_directive) #line 16308 "unpk.c" { { (*kc_printer)("#line ", kc_current_view); } unparse_int(kc_p->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(kc_p->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n", kc_current_view); } #line 3386 "../gen.k" gl_print_line_directive = False; #line 16318 "unpk.c" } { (*kc_printer)("'", kc_current_view); } unparse_CexpressionSQ(cesq, kc_printer, kc_current_view); { (*kc_printer)("'", kc_current_view); } } else if (( kc_p->prod_sel == sel_CTextCbody)) { #line 3390 "../gen.k" Ctext ct = kc_p->u.CTextCbody.Ctext_1; #line 3391 "../gen.k" if (gl_print_line_directive) #line 16329 "unpk.c" { { (*kc_printer)("#line ", kc_current_view); } unparse_int(kc_p->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(kc_p->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n", kc_current_view); } #line 3394 "../gen.k" gl_print_line_directive = False; #line 16339 "unpk.c" } { (*kc_printer)("{", kc_current_view); } unparse_Ctext(ct, kc_printer, kc_current_view); { (*kc_printer)("}", kc_current_view); } #line 3399 "../gen.k" if (gl_print_line_directive) #line 16346 "unpk.c" { { (*kc_printer)("\ \n", kc_current_view); } } } else if (( kc_p->prod_sel == sel_CTextForeachexpression)) { #line 3405 "../gen.k" idCexpressions idcexpr = kc_p->u.CTextForeachexpression.idCexpressions_1; #line 3405 "../gen.k" Ctext ct = kc_p->u.CTextForeachexpression.Ctext_1; #line 3405 "../gen.k" foreach_after fa = kc_p->u.CTextForeachexpression.foreach_after_1; #line 3407 "../gen.k" ID selvar = f_mkselvar("kc_selvar_", g_ctext_level); selvar->line = kc_p->line; selvar->file = kc_p->file; cf_pushselvar( selvar ); #line 16366 "unpk.c" { (*kc_printer)("{\ \n", kc_current_view); } unparse_idCexpressions(idcexpr, kc_printer, kc_current_view); unparse_idCexpressions(idcexpr, kc_printer, view_gen_initializephyla_assert_c); unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); { (*kc_printer)("while(\ \n", kc_current_view); } unparse_idCexpressions(idcexpr, kc_printer, view_gen_initializephyla_whiletest_c); { (*kc_printer)(" ) {\ \n", kc_current_view); } unparse_idCexpressions(idcexpr, kc_printer, view_gen_initializephyla_init_el_c); { (*kc_printer)("{\ \n#line ", kc_current_view); } unparse_int(ct->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(ct->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n", kc_current_view); } unparse_Ctext(ct, kc_printer, kc_current_view); unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); { (*kc_printer)("}\ \n", kc_current_view); } unparse_idCexpressions(idcexpr, kc_printer, view_gen_initializephyla_update_loop_c); unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); { (*kc_printer)("}\ \n", kc_current_view); } #line 3435 "../gen.k" cf_popselvar(); selvar = Id(Str(mkcasestring("kc_fe_selvar"))); selvar->line = fa->line; selvar->file = fa->file; cf_pushselvar( selvar ); #line 16400 "unpk.c" unparse_foreach_after(fa, kc_printer, kc_current_view); { (*kc_printer)("}\ \n", kc_current_view); } #line 3444 "../gen.k" cf_popselvar(); gl_print_line_directive = True; #line 16408 "unpk.c" } else if (( kc_p->prod_sel == sel_CTextWithexpression)) { #line 3530 "../gen.k" Ctext_elem ctw = kc_p; #line 3530 "../gen.k" withexpressions wexpr = kc_p->u.CTextWithexpression.withexpressions_1; #line 3530 "../gen.k" withcases wcs = kc_p->u.CTextWithexpression.withcases_1; #line 3530 "../gen.k" contextinfo in_foreach_context = kc_p->u.CTextWithexpression.contextinfo_1; #line 3532 "../gen.k" if (wcs->wcinfo) #line 16421 "unpk.c" { #line 3533 "../gen.k" ID selvar; int p; patternchain fe_pc = 0; withcasesinfo rewr_wcinfo = my_rewrite_withcasesinfo(wcs->wcinfo); { #line 3538 "../gen.k" contextinfo kc_selvar_0_1 = in_foreach_context ; #line 3538 "../gen.k" /*SUPPRESS 622*/ assert_contextinfo(kc_selvar_0_1, "with_expression (1)"); #line 16438 "unpk.c" if (( kc_selvar_0_1->prod_sel == sel_NotInForeachContext)) { #line 3544 "../gen.k" selvar = f_mkselvar("kc_selvar_", g_ctext_level); selvar->line = ctw->line; selvar->file = ctw->file; cf_pushselvar( selvar ); cf_pushinforeachcontext(0); #line 16448 "unpk.c" } else if (( kc_selvar_0_1->prod_sel == sel_InForeachContext)) { #line 3539 "../gen.k" patternchain mp = kc_selvar_0_1->u.InForeachContext.patternchain_1; #line 3539 "../gen.k" selvar = cf_topselvar(); cf_pushinforeachcontext(1); fe_pc = mp; #line 16459 "unpk.c" } else kc_no_default_in_with( "", __LINE__, __FILE__ ); } #line 3552 "../gen.k" #line 16465 "unpk.c" { (*kc_printer)("{\ \n", kc_current_view); } #line 3559 "../gen.k" if (! cf_topinforeachcontext()) #line 16470 "unpk.c" { unparse_withexpressions(wexpr, kc_printer, kc_current_view); } unparse_withexpressions(wexpr, kc_printer, view_gen_initializephyla_assert_c); unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); #line 3564 "../gen.k" if (! cf_topinforeachcontext()) { cf_pushdollarvar( selvar ); cf_pushdollarvarext( Id(Str(mkcasestring("_1"))) ); } else if ((p = pos_of_sole_dollar_or_pattern_in_patternchain(fe_pc)) >= 0) { cf_pushdollarvar( selvar ); cf_pushdollarvarext( f_mkselvar("_", p) ); } #line 16485 "unpk.c" unparse_withcasesinfo(rewr_wcinfo, kc_printer, view_gen_withcases_and_default); #line 3573 "../gen.k" if (! cf_topinforeachcontext()) { cf_popselvar(); cf_popdollarvar(); cf_popdollarvarext(); } else if (p >= 0) { cf_popdollarvar(); cf_popdollarvarext(); } cf_popinforeachcontext(); #line 16498 "unpk.c" { (*kc_printer)("}\ \n", kc_current_view); } #line 3585 "../gen.k" gl_print_line_directive = True; #line 16503 "unpk.c" } #line 3586 "../gen.k" else { v_report(NonFatal( FileLine( kc_p->file, kc_p->line ), Problem1S( "internal error: no info for withcases of CTextWithexpression" ))); } #line 16508 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_CTextLine)) { #line 644 "../util.k" /*EMPTY*/ #line 16517 "unpk.c" } else if (( kc_p->prod_sel == sel_CTextDollarVar) && ( kc_p->u.CTextDollarVar.INT_1->prod_sel == sel_Int)) { #line 645 "../util.k" INT i = kc_p->u.CTextDollarVar.INT_1; #line 645 "../util.k" int iv = kc_p->u.CTextDollarVar.INT_1->u.Int.int_1; #line 647 "../util.k" if ( f_DvIsDisallowed( cf_topdollarvarsallowed() )) { v_report(NonFatal( FileLine( i->file, i->line ), Problem1S1INT( "illegal dollar variable (not allowed in &-ed pattern context)", i ))); } else if (cf_notemptyoutmostoperators()) { v_check_dollarvar_attribute_in_operators( i, Nilunpattributes(), cf_topoutmostoperators() ); } else if (iv != 0) { v_report(NonFatal( FileLine( i->file, i->line ), Problem1S1INT( "illegal dollar variable", i ))); } #line 16537 "unpk.c" } else if (( kc_p->prod_sel == sel_CTextNl)) { #line 660 "../util.k" /*EMPTY*/ #line 16542 "unpk.c" } else if (( kc_p->prod_sel == sel_CTextCexpressionDQ)) { #line 661 "../util.k" /*EMPTY*/ #line 16547 "unpk.c" } else if (( kc_p->prod_sel == sel_CTextCexpressionSQ)) { #line 662 "../util.k" /*EMPTY*/ #line 16552 "unpk.c" } else if (( kc_p->prod_sel == sel_CTextCbody)) { #line 663 "../util.k" Ctext ct = kc_p->u.CTextCbody.Ctext_1; unparse_Ctext(ct, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_CTextForeachexpression)) { #line 807 "../util.k" idCexpressions ide = kc_p->u.CTextForeachexpression.idCexpressions_1; #line 807 "../util.k" Ctext ct = kc_p->u.CTextForeachexpression.Ctext_1; #line 807 "../util.k" foreach_after fa = kc_p->u.CTextForeachexpression.foreach_after_1; #line 809 "../util.k" phylumnames tmp = f_phylumnames_foreachwith_vars( ide ); cf_pushphylumnames( tmp ); #line 16570 "unpk.c" unparse_idCexpressions(ide, kc_printer, kc_current_view); unparse_Ctext(ct, kc_printer, kc_current_view); #line 814 "../util.k" cf_popphylumnames(); #line 16577 "unpk.c" unparse_foreach_after(fa, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_CTextWithexpression)) { #line 832 "../util.k" withexpressions we = kc_p->u.CTextWithexpression.withexpressions_1; #line 832 "../util.k" withcases wc = kc_p->u.CTextWithexpression.withcases_1; #line 832 "../util.k" contextinfo in_foreach_context = kc_p->u.CTextWithexpression.contextinfo_1; #line 834 "../util.k" cf_pushwithexpressions( we ); { #line 836 "../util.k" contextinfo kc_selvar_0_1 = in_foreach_context ; #line 836 "../util.k" /*SUPPRESS 622*/ assert_contextinfo(kc_selvar_0_1, "with_expression (1)"); #line 16599 "unpk.c" if (( kc_selvar_0_1->prod_sel == sel_NotInForeachContext)) { #line 840 "../util.k" cf_pushinforeachcontext(0); cf_pushphylumnames( we->type ); #line 16606 "unpk.c" } else if (( kc_selvar_0_1->prod_sel == sel_InForeachContext)) { #line 837 "../util.k" cf_pushinforeachcontext(1); #line 16613 "unpk.c" } else kc_no_default_in_with( "", __LINE__, __FILE__ ); } #line 845 "../util.k" if (length_withexpressions( we ) == 1) { cf_pushdollarvarsallowed( DVAllowed() ); } else { cf_pushdollarvarsallowed( DVDisallowed() ); } #line 16624 "unpk.c" unparse_withcases(wc, kc_printer, kc_current_view); unparse_withcases(wc, kc_printer, view_set_type); #line 853 "../util.k" we->type = cf_topphylumnames(); cf_popwithexpressions(); cf_popdollarvarsallowed(); #line 16632 "unpk.c" unparse_withexpressions(we, kc_printer, kc_current_view); #line 858 "../util.k" if (! cf_topinforeachcontext() ) { cf_popphylumnames(); } cf_popinforeachcontext(); #line 16640 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_CTextLine: unparse_casestring( kc_p->u.CTextLine.casestring_1, kc_printer, kc_current_view ); break; case (int)sel_CTextDollarVar: unparse_INT( kc_p->u.CTextDollarVar.INT_1, kc_printer, kc_current_view ); break; case (int)sel_CTextNl: unparse_int( kc_p->u.CTextNl.int_1, kc_printer, kc_current_view ); break; case (int)sel_CTextCexpressionDQ: unparse_CexpressionDQ( kc_p->u.CTextCexpressionDQ.CexpressionDQ_1, kc_printer, kc_current_view ); break; case (int)sel_CTextCexpressionSQ: unparse_CexpressionSQ( kc_p->u.CTextCexpressionSQ.CexpressionSQ_1, kc_printer, kc_current_view ); break; case (int)sel_CTextCbody: unparse_Ctext( kc_p->u.CTextCbody.Ctext_1, kc_printer, kc_current_view ); break; case (int)sel_CTextForeachexpression: unparse_patternchain( kc_p->u.CTextForeachexpression.patternchain_1, kc_printer, kc_current_view ); unparse_idCexpressions( kc_p->u.CTextForeachexpression.idCexpressions_1, kc_printer, kc_current_view ); unparse_withexpressions( kc_p->u.CTextForeachexpression.withexpressions_1, kc_printer, kc_current_view ); unparse_Ctext( kc_p->u.CTextForeachexpression.Ctext_1, kc_printer, kc_current_view ); unparse_foreach_after( kc_p->u.CTextForeachexpression.foreach_after_1, kc_printer, kc_current_view ); break; case (int)sel_CTextWithexpression: unparse_withexpressions( kc_p->u.CTextWithexpression.withexpressions_1, kc_printer, kc_current_view ); unparse_withcases( kc_p->u.CTextWithexpression.withcases_1, kc_printer, kc_current_view ); unparse_contextinfo( kc_p->u.CTextWithexpression.contextinfo_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_foreach_after #ifdef KC_USE_PROTOTYPES (foreach_after kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) foreach_after kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_foreach_after(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_make_patternreps: { if (( kc_p->prod_sel == sel_NoForeachAfter)) { #line 1840 "../util.k" #line 16699 "unpk.c" } else if (( kc_p->prod_sel == sel_ForeachAfter)) { #line 1841 "../util.k" Ctext ct = kc_p->u.ForeachAfter.Ctext_1; unparse_Ctext(ct, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_initializephyla_c: { if (( kc_p->prod_sel == sel_NoForeachAfter)) { #line 3449 "../gen.k" /*EMPTY*/ #line 16713 "unpk.c" } else if (( kc_p->prod_sel == sel_ForeachAfter)) { #line 3450 "../gen.k" Ctext ct = kc_p->u.ForeachAfter.Ctext_1; { (*kc_printer)("{\ \n#line ", kc_current_view); } unparse_int(ct->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(ct->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n", kc_current_view); } unparse_Ctext(ct, kc_printer, kc_current_view); unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); { (*kc_printer)("}\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_NoForeachAfter)) { #line 820 "../util.k" #line 16737 "unpk.c" } else if (( kc_p->prod_sel == sel_ForeachAfter)) { #line 821 "../util.k" patternchain mp = kc_p->u.ForeachAfter.patternchain_1; #line 821 "../util.k" idCexpressions ide = kc_p->u.ForeachAfter.idCexpressions_1; #line 821 "../util.k" Ctext ct = kc_p->u.ForeachAfter.Ctext_1; #line 823 "../util.k" phylumnames tmp = f_phylumnames_foreachwith_listvars( ide ); cf_pushphylumnames( tmp ); #line 16750 "unpk.c" unparse_Ctext(ct, kc_printer, kc_current_view); #line 827 "../util.k" cf_popphylumnames(); #line 16756 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_ForeachAfter: unparse_patternchain( kc_p->u.ForeachAfter.patternchain_1, kc_printer, kc_current_view ); unparse_idCexpressions( kc_p->u.ForeachAfter.idCexpressions_1, kc_printer, kc_current_view ); unparse_withexpressions( kc_p->u.ForeachAfter.withexpressions_1, kc_printer, kc_current_view ); unparse_Ctext( kc_p->u.ForeachAfter.Ctext_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_contextinfo #ifdef KC_USE_PROTOTYPES (contextinfo kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) contextinfo kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_contextinfo(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_InForeachContext: unparse_patternchain( kc_p->u.InForeachContext.patternchain_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_withexpressions #ifdef KC_USE_PROTOTYPES (withexpressions kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) withexpressions kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_withexpressions(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_initializephyla_assert_c: { if (( kc_p->prod_sel == sel_Nilwithexpressions)) { #line 3591 "../gen.k" g_withexpr_nr = 0; #line 16813 "unpk.c" } else if (( kc_p->prod_sel == sel_Conswithexpressions)) { #line 3606 "../gen.k" withexpression h = kc_p->u.Conswithexpressions.withexpression_1; #line 3606 "../gen.k" withexpressions t = kc_p->u.Conswithexpressions.withexpressions_1; #line 3607 "../gen.k" ID selvar = cf_topselvar(); #line 16822 "unpk.c" unparse_withexpressions(t, kc_printer, kc_current_view); #line 3609 "../gen.k" g_withexpr_nr++; #line 16827 "unpk.c" #line 3611 "../gen.k" if (kc_p->line) #line 16830 "unpk.c" { { (*kc_printer)("#line ", kc_current_view); } unparse_int(kc_p->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(kc_p->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n", kc_current_view); } } #line 3615 "../gen.k" assert( ! (eq_ID(h->type, f_emptyId())) ); #line 16841 "unpk.c" { (*kc_printer)("/*SUPPRESS 622*/\ \nassert_", kc_current_view); } unparse_ID(h->type, kc_printer, kc_current_view); { (*kc_printer)("(", kc_current_view); } unparse_ID(selvar, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(g_withexpr_nr, kc_printer, kc_current_view); { (*kc_printer)(", \"with_expression (", kc_current_view); } unparse_int(g_withexpr_nr, kc_printer, kc_current_view); { (*kc_printer)(")\");\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_initializephyla_c: { if (( kc_p->prod_sel == sel_Nilwithexpressions)) { #line 3591 "../gen.k" g_withexpr_nr = 0; #line 16861 "unpk.c" } else if (( kc_p->prod_sel == sel_Conswithexpressions)) { #line 3593 "../gen.k" withexpression h = kc_p->u.Conswithexpressions.withexpression_1; #line 3593 "../gen.k" withexpressions t = kc_p->u.Conswithexpressions.withexpressions_1; #line 3594 "../gen.k" ID selvar = cf_topselvar(); #line 16870 "unpk.c" unparse_withexpressions(t, kc_printer, kc_current_view); #line 3596 "../gen.k" g_withexpr_nr++; #line 16875 "unpk.c" #line 3598 "../gen.k" if (h->line) #line 16878 "unpk.c" { { (*kc_printer)("#line ", kc_current_view); } unparse_int(h->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(h->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n", kc_current_view); } } #line 3602 "../gen.k" assert( ! (eq_ID(h->type, f_emptyId())) ); #line 16889 "unpk.c" unparse_ID(h->type, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(selvar, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(g_withexpr_nr, kc_printer, kc_current_view); { (*kc_printer)(" = ", kc_current_view); } unparse_withexpression(h, kc_printer, kc_current_view); { (*kc_printer)(";\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_Nilwithexpressions)) { #line 864 "../util.k" #line 16907 "unpk.c" } else if (( kc_p->prod_sel == sel_Conswithexpressions)) { #line 865 "../util.k" withexpression h = kc_p->u.Conswithexpressions.withexpression_1; #line 865 "../util.k" withexpressions t = kc_p->u.Conswithexpressions.withexpressions_1; #line 867 "../util.k" ID tmp_type = 0; phylumnames tmp_types = 0; t->type = cf_topphylumnames(); { #line 870 "../util.k" phylumnames kc_selvar_0_1 = t->type ; #line 870 "../util.k" /*SUPPRESS 622*/ assert_phylumnames(kc_selvar_0_1, "with_expression (1)"); #line 16927 "unpk.c" if (( kc_selvar_0_1->prod_sel == sel_Nilphylumnames)) { #line 875 "../util.k" tmp_type = f_emptyId(); tmp_types = Nilphylumnames(); #line 16934 "unpk.c" } else if (( kc_selvar_0_1->prod_sel == sel_Consphylumnames)) { #line 871 "../util.k" ID p_h = kc_selvar_0_1->u.Consphylumnames.ID_1; #line 871 "../util.k" phylumnames p_t = kc_selvar_0_1->u.Consphylumnames.phylumnames_1; #line 871 "../util.k" tmp_type = p_h; tmp_types = p_t; #line 16946 "unpk.c" } else kc_no_default_in_with( "", __LINE__, __FILE__ ); } #line 880 "../util.k" cf_popphylumnames(); cf_pushphylumnames( tmp_types ); #line 16954 "unpk.c" unparse_withexpressions(t, kc_printer, kc_current_view); #line 884 "../util.k" h->type = tmp_type; if (eq_ID(tmp_type, f_emptyId())) { v_report(NonFatal( FileLine( h->file, h->line ), Problem1S1we( "could not infer type of with-expression argument:", h ))); } #line 16963 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Conswithexpressions: unparse_withexpression( kc_p->u.Conswithexpressions.withexpression_1, kc_printer, kc_current_view ); unparse_withexpressions( kc_p->u.Conswithexpressions.withexpressions_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_withexpression #ifdef KC_USE_PROTOTYPES (withexpression kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) withexpression kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_withexpression(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_initializephyla_c: { if (( kc_p->prod_sel == sel_WEVariable)) { #line 891 "../util.k" ID id = kc_p->u.WEVariable.ID_1; unparse_ID(id, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_WEVariable)) { #line 3620 "../gen.k" ID id = kc_p->u.WEVariable.ID_1; unparse_ID(id, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_WECexpression)) { #line 892 "../util.k" Cexpression cexpr = kc_p->u.WECexpression.Cexpression_1; { (*kc_printer)("\ \n", kc_current_view); } unparse_Cexpression(cexpr, kc_printer, kc_current_view); { (*kc_printer)("\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_WECexpression)) { #line 3621 "../gen.k" Cexpression cexpr = kc_p->u.WECexpression.Cexpression_1; { (*kc_printer)("\ \n", kc_current_view); } unparse_Cexpression(cexpr, kc_printer, kc_current_view); { (*kc_printer)("\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_error: { if (( kc_p->prod_sel == sel_WEVariable)) { #line 206 "../error.k" ID i = kc_p->u.WEVariable.ID_1; unparse_ID(i, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_WECexpression)) { #line 207 "../error.k" Cexpression ce = kc_p->u.WECexpression.Cexpression_1; unparse_Cexpression(ce, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_WEVariable: unparse_ID( kc_p->u.WEVariable.ID_1, kc_printer, kc_current_view ); break; case (int)sel_WECexpression: unparse_Cexpression( kc_p->u.WECexpression.Cexpression_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_withcases #ifdef KC_USE_PROTOTYPES (withcases kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) withcases kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_withcases(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_make_patternreps: { if (( kc_p->prod_sel == sel_Nilwithcases)) { #line 1850 "../util.k" kc_p->wcinfo = Nilwithcasesinfo(); #line 17068 "unpk.c" } else if (( kc_p->prod_sel == sel_Conswithcases)) { #line 1852 "../util.k" withcase wc = kc_p->u.Conswithcases.withcase_1; #line 1852 "../util.k" withcases r_wcs = kc_p->u.Conswithcases.withcases_1; unparse_withcase(wc, kc_printer, kc_current_view); unparse_withcases(r_wcs, kc_printer, kc_current_view); #line 1859 "../util.k" kc_p->wcinfo = r_wcs->wcinfo; { #line 1860 "../util.k" withcasesinfo kc_fe_selvar_1 = wc->wcinfo ; #line 1860 "../util.k" /*SUPPRESS 622*/ assert_withcasesinfo(kc_fe_selvar_1, "foreach_list_expression"); #line 17086 "unpk.c" while( kc_fe_selvar_1->prod_sel == sel_Conswithcasesinfo ) { withcaseinfo kc_selvar_0_1 = kc_fe_selvar_1->u.Conswithcasesinfo.withcaseinfo_1; { #line 1860 "../util.k" { #line 1860 "../util.k" /*SUPPRESS 622*/ assert_withcaseinfo(kc_selvar_0_1, "with_expression (1)"); #line 17098 "unpk.c" { #line 1860 "../util.k" withcaseinfo wci = kc_selvar_0_1; #line 1860 "../util.k" kc_p->wcinfo = insertin_withcasesinfo( wci, kc_p->wcinfo ); #line 17106 "unpk.c" } } #line 17110 "unpk.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Conswithcasesinfo.withcasesinfo_1; #line 1860 "../util.k" /*SUPPRESS 622*/ assert_withcasesinfo(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 17117 "unpk.c" } } #line 1863 "../util.k" #line 17122 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_set_type: { if (( kc_p->prod_sel == sel_Nilwithcases)) { #line 920 "../util.k" /*EMPTY*/ #line 17131 "unpk.c" } else if (( kc_p->prod_sel == sel_Conswithcases)) { #line 918 "../util.k" withcase wc = kc_p->u.Conswithcases.withcase_1; #line 918 "../util.k" withcases wcs = kc_p->u.Conswithcases.withcases_1; unparse_withcases(wcs, kc_printer, kc_current_view); unparse_withcase(wc, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_Nilwithcases)) { #line 900 "../util.k" /*EMPTY*/ #line 17148 "unpk.c" } else if (( kc_p->prod_sel == sel_Conswithcases)) { #line 898 "../util.k" withcase wc = kc_p->u.Conswithcases.withcase_1; #line 898 "../util.k" withcases wcs = kc_p->u.Conswithcases.withcases_1; unparse_withcases(wcs, kc_printer, kc_current_view); unparse_withcase(wc, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Conswithcases: unparse_withcase( kc_p->u.Conswithcases.withcase_1, kc_printer, kc_current_view ); unparse_withcases( kc_p->u.Conswithcases.withcases_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_withcase #ifdef KC_USE_PROTOTYPES (withcase kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) withcase kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_withcase(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_make_patternreps: { if (( kc_p->prod_sel == sel_Withcase)) { #line 1865 "../util.k" patternchains mp = kc_p->u.Withcase.patternchains_1; #line 1865 "../util.k" Ctext ct = kc_p->u.Withcase.Ctext_1; unparse_Ctext(ct, kc_printer, kc_current_view); #line 1867 "../util.k" v_resetbindingidmarks(); kc_p->wcinfo = f_withcasesinfo( add_predicates_to_patternrepresentations( syn_patternchains( mp ) ), ct ); #line 17197 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_set_type: { if (( kc_p->prod_sel == sel_Withcase)) { #line 921 "../util.k" patternchains mp = kc_p->u.Withcase.patternchains_1; unparse_patternchains(mp, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_Withcase)) { #line 901 "../util.k" patternchains mp = kc_p->u.Withcase.patternchains_1; #line 901 "../util.k" Ctext ct = kc_p->u.Withcase.Ctext_1; #line 902 "../util.k" cf_pushoutmostoperators( Niloperators() ); cf_pushvariables( Nilvariables()); cl_scope++; #line 17222 "unpk.c" unparse_patternchains(mp, kc_printer, kc_current_view); unparse_Ctext(ct, kc_printer, kc_current_view); #line 910 "../util.k" freelist_operators( cf_topoutmostoperators() ); cf_popoutmostoperators(); v_reset_variables_type( cf_topvariables() ); cl_scope--; freelist_variables( cf_topvariables() ); cf_popvariables(); #line 17233 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Withcase: unparse_patternchains( kc_p->u.Withcase.patternchains_1, kc_printer, kc_current_view ); unparse_Ctext( kc_p->u.Withcase.Ctext_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_unparsedeclarations #ifdef KC_USE_PROTOTYPES (unparsedeclarations kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) unparsedeclarations kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unparsedeclarations(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_check_viewnames: { if (( kc_p->prod_sel == sel_Nilunparsedeclarations)) { #line 1010 "../util.k" /*EMPTY*/ #line 17266 "unpk.c" } else if (( kc_p->prod_sel == sel_Consunparsedeclarations)) { #line 1007 "../util.k" unparsedeclaration ud = kc_p->u.Consunparsedeclarations.unparsedeclaration_1; #line 1007 "../util.k" unparsedeclarations uds = kc_p->u.Consunparsedeclarations.unparsedeclarations_1; unparse_unparsedeclarations(uds, kc_printer, kc_current_view); unparse_unparsedeclaration(ud, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_Nilunparsedeclarations)) { #line 928 "../util.k" /*EMPTY*/ #line 17283 "unpk.c" } else if (( kc_p->prod_sel == sel_Consunparsedeclarations)) { #line 925 "../util.k" unparsedeclaration ud = kc_p->u.Consunparsedeclarations.unparsedeclaration_1; #line 925 "../util.k" unparsedeclarations uds = kc_p->u.Consunparsedeclarations.unparsedeclarations_1; unparse_unparsedeclarations(uds, kc_printer, kc_current_view); unparse_unparsedeclaration(ud, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consunparsedeclarations: unparse_unparsedeclaration( kc_p->u.Consunparsedeclarations.unparsedeclaration_1, kc_printer, kc_current_view ); unparse_unparsedeclarations( kc_p->u.Consunparsedeclarations.unparsedeclarations_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_unparsedeclaration #ifdef KC_USE_PROTOTYPES (unparsedeclaration kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) unparsedeclaration kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unparsedeclaration(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_make_patternreps: { if (( kc_p->prod_sel == sel_UnparseDeclaration)) { #line 1872 "../util.k" outmostpatterns op = kc_p->u.UnparseDeclaration.outmostpatterns_1; #line 1872 "../util.k" unparseclauses uc = kc_p->u.UnparseDeclaration.unparseclauses_1; unparse_unparseclauses(uc, kc_printer, kc_current_view); #line 1875 "../util.k" v_resetbindingidmarks(); kc_p->patternreps = syn_outmostpatterns( op ); kc_p->patternreps = add_predicates_to_patternrepresentations(kc_p->patternreps); v_add_unparsedeclsinfo_to_operator( kc_p->patternreps, uc ); #line 17337 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_check_viewnames: { if (( kc_p->prod_sel == sel_UnparseDeclaration)) { #line 1011 "../util.k" unparseclauses uc = kc_p->u.UnparseDeclaration.unparseclauses_1; unparse_unparseclauses(uc, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_UnparseDeclaration)) { #line 929 "../util.k" outmostpatterns op = kc_p->u.UnparseDeclaration.outmostpatterns_1; #line 929 "../util.k" unparseclauses uc = kc_p->u.UnparseDeclaration.unparseclauses_1; #line 931 "../util.k" cf_pushoutmostoperators( Niloperators() ); cf_pushdollarvarsallowed( DVAllowed() ); cf_pushphylum( f_emptyId() ); cf_pushvariables( Nilvariables()); cl_scope++; #line 17364 "unpk.c" unparse_outmostpatterns(op, kc_printer, kc_current_view); unparse_unparseclauses(uc, kc_printer, kc_current_view); #line 939 "../util.k" freelist_operators( cf_topoutmostoperators() ); cf_popoutmostoperators(); cf_popdollarvarsallowed(); cf_popphylum(); v_reset_variables_type( cf_topvariables() ); cl_scope--; freelist_variables( cf_topvariables() ); cf_popvariables(); #line 17377 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_UnparseDeclaration: unparse_outmostpatterns( kc_p->u.UnparseDeclaration.outmostpatterns_1, kc_printer, kc_current_view ); unparse_unparseclauses( kc_p->u.UnparseDeclaration.unparseclauses_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_unparseclauses #ifdef KC_USE_PROTOTYPES (unparseclauses kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) unparseclauses kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unparseclauses(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_make_patternreps: { if (( kc_p->prod_sel == sel_Nilunparseclauses)) { #line 1885 "../util.k" /*EMPTY*/ #line 17410 "unpk.c" } else if (( kc_p->prod_sel == sel_Consunparseclauses)) { #line 1886 "../util.k" unparseclause a_uc = kc_p->u.Consunparseclauses.unparseclause_1; #line 1886 "../util.k" unparseclauses r_uc = kc_p->u.Consunparseclauses.unparseclauses_1; unparse_unparseclauses(r_uc, kc_printer, kc_current_view); unparse_unparseclause(a_uc, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check_viewnames: { if (( kc_p->prod_sel == sel_Nilunparseclauses)) { #line 1015 "../util.k" /*EMPTY*/ #line 17427 "unpk.c" } else if (( kc_p->prod_sel == sel_Consunparseclauses)) { #line 1013 "../util.k" unparseclause uc = kc_p->u.Consunparseclauses.unparseclause_1; #line 1013 "../util.k" unparseclauses ucs = kc_p->u.Consunparseclauses.unparseclauses_1; unparse_unparseclauses(ucs, kc_printer, kc_current_view); unparse_unparseclause(uc, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_Nilunparseclauses)) { #line 951 "../util.k" /*EMPTY*/ #line 17444 "unpk.c" } else if (( kc_p->prod_sel == sel_Consunparseclauses)) { #line 949 "../util.k" unparseclause uc = kc_p->u.Consunparseclauses.unparseclause_1; #line 949 "../util.k" unparseclauses ucs = kc_p->u.Consunparseclauses.unparseclauses_1; unparse_unparseclauses(ucs, kc_printer, kc_current_view); unparse_unparseclause(uc, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consunparseclauses: unparse_unparseclause( kc_p->u.Consunparseclauses.unparseclause_1, kc_printer, kc_current_view ); unparse_unparseclauses( kc_p->u.Consunparseclauses.unparseclauses_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_unparseclause #ifdef KC_USE_PROTOTYPES (unparseclause kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) unparseclause kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unparseclause(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_unparsedefs_other_c: { if (( kc_p->prod_sel == sel_UnparseClause)) { #line 8062 "../gen.k" unparseitems ui = kc_p->u.UnparseClause.unparseitems_1; unparse_unparseitems(ui, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_unparsedefs_default_c: { if (( kc_p->prod_sel == sel_UnparseClause)) { #line 8062 "../gen.k" unparseitems ui = kc_p->u.UnparseClause.unparseitems_1; unparse_unparseitems(ui, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_make_patternreps: { if (( kc_p->prod_sel == sel_UnparseClause)) { #line 1890 "../util.k" unparseitems u_i = kc_p->u.UnparseClause.unparseitems_1; unparse_unparseitems(u_i, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check_viewnames: { if (( kc_p->prod_sel == sel_UnparseClause)) { #line 1016 "../util.k" unparseitems ui = kc_p->u.UnparseClause.unparseitems_1; unparse_unparseitems(ui, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_UnparseClause)) { #line 952 "../util.k" viewnames vn = kc_p->u.UnparseClause.viewnames_1; #line 952 "../util.k" unparseitems ui = kc_p->u.UnparseClause.unparseitems_1; unparse_viewnames(vn, kc_printer, view_check_u); unparse_unparseitems(ui, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_UnparseClause: unparse_viewnames( kc_p->u.UnparseClause.viewnames_1, kc_printer, kc_current_view ); unparse_unparseitems( kc_p->u.UnparseClause.unparseitems_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_viewnames #ifdef KC_USE_PROTOTYPES (viewnames kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) viewnames kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_viewnames(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_unpk_c: { if (( kc_p->prod_sel == sel_Nilviewnames)) { #line 7823 "../gen.k" /*EMPTY*/ #line 17557 "unpk.c" } else if (( kc_p->prod_sel == sel_Consviewnames) && ( kc_p->u.Consviewnames.viewnames_1->prod_sel == sel_Nilviewnames)) { #line 7824 "../gen.k" ID vn = kc_p->u.Consviewnames.ID_1; { (*kc_printer)("\t\"", kc_current_view); } unparse_ID(vn, kc_printer, kc_current_view); { (*kc_printer)("\"", kc_current_view); } } else if (( kc_p->prod_sel == sel_Consviewnames)) { #line 7825 "../gen.k" ID vn = kc_p->u.Consviewnames.ID_1; #line 7825 "../gen.k" viewnames r_vn = kc_p->u.Consviewnames.viewnames_1; unparse_viewnames(r_vn, kc_printer, kc_current_view); { (*kc_printer)(",\n\t\"", kc_current_view); } unparse_ID(vn, kc_printer, kc_current_view); { (*kc_printer)("\"", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_uview_def: { if (( kc_p->prod_sel == sel_Nilviewnames)) { #line 7752 "../gen.k" /*EMPTY*/ #line 17583 "unpk.c" } else if (( kc_p->prod_sel == sel_Consviewnames) && ( kc_p->u.Consviewnames.viewnames_1->prod_sel == sel_Nilviewnames)) { #line 7758 "../gen.k" ID vn = kc_p->u.Consviewnames.ID_1; { (*kc_printer)("\t", kc_current_view); } unparse_ID(vn, kc_printer, kc_current_view); #line 7760 "../gen.k" if (eq_ID( vn, Id( Str( mkcasestring( "base_view" ))))) #line 17592 "unpk.c" { { (*kc_printer)(" = base_uview", kc_current_view); } } } else if (( kc_p->prod_sel == sel_Consviewnames)) { #line 7764 "../gen.k" ID vn = kc_p->u.Consviewnames.ID_1; #line 7764 "../gen.k" viewnames r_vn = kc_p->u.Consviewnames.viewnames_1; unparse_viewnames(r_vn, kc_printer, kc_current_view); { (*kc_printer)(",\n\t", kc_current_view); } unparse_ID(vn, kc_printer, kc_current_view); #line 7766 "../gen.k" if (eq_ID( vn, Id( Str( mkcasestring( "base_view" ))))) #line 17607 "unpk.c" { { (*kc_printer)(" = base_uview", kc_current_view); } } } else goto kc_unparsing_default; break; } case (int)view_gen_unparsedecls_h: { if (( kc_p->prod_sel == sel_Nilviewnames)) { #line 7752 "../gen.k" /*EMPTY*/ #line 17619 "unpk.c" } else if (( kc_p->prod_sel == sel_Consviewnames) && ( kc_p->u.Consviewnames.viewnames_1->prod_sel == sel_Nilviewnames)) { #line 7753 "../gen.k" ID vn = kc_p->u.Consviewnames.ID_1; { (*kc_printer)("\t", kc_current_view); } unparse_ID(vn, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Consviewnames)) { #line 7754 "../gen.k" ID vn = kc_p->u.Consviewnames.ID_1; #line 7754 "../gen.k" viewnames r_vn = kc_p->u.Consviewnames.viewnames_1; unparse_viewnames(r_vn, kc_printer, kc_current_view); { (*kc_printer)(",\n\t", kc_current_view); } unparse_ID(vn, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_rewritek_c: { if (( kc_p->prod_sel == sel_Nilviewnames)) { #line 7823 "../gen.k" /*EMPTY*/ #line 17643 "unpk.c" } else if (( kc_p->prod_sel == sel_Consviewnames) && ( kc_p->u.Consviewnames.viewnames_1->prod_sel == sel_Nilviewnames)) { #line 7824 "../gen.k" ID vn = kc_p->u.Consviewnames.ID_1; { (*kc_printer)("\t\"", kc_current_view); } unparse_ID(vn, kc_printer, kc_current_view); { (*kc_printer)("\"", kc_current_view); } } else if (( kc_p->prod_sel == sel_Consviewnames)) { #line 7825 "../gen.k" ID vn = kc_p->u.Consviewnames.ID_1; #line 7825 "../gen.k" viewnames r_vn = kc_p->u.Consviewnames.viewnames_1; unparse_viewnames(r_vn, kc_printer, kc_current_view); { (*kc_printer)(",\n\t\"", kc_current_view); } unparse_ID(vn, kc_printer, kc_current_view); { (*kc_printer)("\"", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_rewritek_h: { if (( kc_p->prod_sel == sel_Nilviewnames)) { #line 7752 "../gen.k" /*EMPTY*/ #line 17669 "unpk.c" } else if (( kc_p->prod_sel == sel_Consviewnames) && ( kc_p->u.Consviewnames.viewnames_1->prod_sel == sel_Nilviewnames)) { #line 7753 "../gen.k" ID vn = kc_p->u.Consviewnames.ID_1; { (*kc_printer)("\t", kc_current_view); } unparse_ID(vn, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Consviewnames)) { #line 7754 "../gen.k" ID vn = kc_p->u.Consviewnames.ID_1; #line 7754 "../gen.k" viewnames r_vn = kc_p->u.Consviewnames.viewnames_1; unparse_viewnames(r_vn, kc_printer, kc_current_view); { (*kc_printer)(",\n\t", kc_current_view); } unparse_ID(vn, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check_r: { if (( kc_p->prod_sel == sel_Nilviewnames)) { #line 974 "../util.k" /*EMPTY*/ #line 17693 "unpk.c" } else if (( kc_p->prod_sel == sel_Consviewnames)) { #line 964 "../util.k" ID vn = kc_p->u.Consviewnames.ID_1; #line 964 "../util.k" viewnames vns = kc_p->u.Consviewnames.viewnames_1; unparse_viewnames(vns, kc_printer, kc_current_view); #line 967 "../util.k" if (pg_rviewshavebeendefined) v_useoccurrviewname( vn ); else v_extendoccur_nowarning( vn, ITUserRView() ); v_add_to_rviewnames( vn ); #line 17708 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_check_u: { if (( kc_p->prod_sel == sel_Nilviewnames)) { #line 963 "../util.k" /*EMPTY*/ #line 17717 "unpk.c" } else if (( kc_p->prod_sel == sel_Consviewnames)) { #line 953 "../util.k" ID vn = kc_p->u.Consviewnames.ID_1; #line 953 "../util.k" viewnames vns = kc_p->u.Consviewnames.viewnames_1; unparse_viewnames(vns, kc_printer, kc_current_view); #line 956 "../util.k" if (pg_uviewshavebeendefined) v_useoccuruviewname( vn ); else v_extendoccur_nowarning( vn, ITUserUView() ); v_add_to_uviewnames( vn ); #line 17732 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consviewnames: unparse_ID( kc_p->u.Consviewnames.ID_1, kc_printer, kc_current_view ); unparse_viewnames( kc_p->u.Consviewnames.viewnames_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_unparseitems #ifdef KC_USE_PROTOTYPES (unparseitems kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) unparseitems kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unparseitems(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_unparsedefs_other_c: { if (( kc_p->prod_sel == sel_Nilunparseitems)) { #line 8065 "../gen.k" /*EMPTY*/ #line 17765 "unpk.c" } else if (( kc_p->prod_sel == sel_Consunparseitems)) { #line 8066 "../gen.k" unparseitem a_ui = kc_p->u.Consunparseitems.unparseitem_1; #line 8066 "../gen.k" unparseitems r_ui = kc_p->u.Consunparseitems.unparseitems_1; unparse_unparseitems(r_ui, kc_printer, kc_current_view); unparse_unparseitem(a_ui, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_unparsedefs_default_c: { if (( kc_p->prod_sel == sel_Nilunparseitems)) { #line 8065 "../gen.k" /*EMPTY*/ #line 17782 "unpk.c" } else if (( kc_p->prod_sel == sel_Consunparseitems)) { #line 8066 "../gen.k" unparseitem a_ui = kc_p->u.Consunparseitems.unparseitem_1; #line 8066 "../gen.k" unparseitems r_ui = kc_p->u.Consunparseitems.unparseitems_1; unparse_unparseitems(r_ui, kc_printer, kc_current_view); unparse_unparseitem(a_ui, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_make_patternreps: { if (( kc_p->prod_sel == sel_Nilunparseitems)) { #line 1893 "../util.k" /*EMPTY*/ #line 17799 "unpk.c" } else if (( kc_p->prod_sel == sel_Consunparseitems)) { #line 1894 "../util.k" unparseitem a_ui = kc_p->u.Consunparseitems.unparseitem_1; #line 1894 "../util.k" unparseitems r_ui = kc_p->u.Consunparseitems.unparseitems_1; unparse_unparseitems(r_ui, kc_printer, kc_current_view); unparse_unparseitem(a_ui, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check_viewnames: { if (( kc_p->prod_sel == sel_Nilunparseitems)) { #line 1019 "../util.k" /*EMPTY*/ #line 17816 "unpk.c" } else if (( kc_p->prod_sel == sel_Consunparseitems)) { #line 1017 "../util.k" unparseitem ui = kc_p->u.Consunparseitems.unparseitem_1; #line 1017 "../util.k" unparseitems uis = kc_p->u.Consunparseitems.unparseitems_1; unparse_unparseitems(uis, kc_printer, kc_current_view); unparse_unparseitem(ui, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_Nilunparseitems)) { #line 977 "../util.k" /*EMPTY*/ #line 17833 "unpk.c" } else if (( kc_p->prod_sel == sel_Consunparseitems)) { #line 975 "../util.k" unparseitem ui = kc_p->u.Consunparseitems.unparseitem_1; #line 975 "../util.k" unparseitems uis = kc_p->u.Consunparseitems.unparseitems_1; unparse_unparseitems(uis, kc_printer, kc_current_view); unparse_unparseitem(ui, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consunparseitems: unparse_unparseitem( kc_p->u.Consunparseitems.unparseitem_1, kc_printer, kc_current_view ); unparse_unparseitems( kc_p->u.Consunparseitems.unparseitems_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_unparseitem #ifdef KC_USE_PROTOTYPES (unparseitem kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) unparseitem kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unparseitem(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_unparsedefs_other_c: { if (( kc_p->prod_sel == sel_UnpStr)) { #line 8076 "../gen.k" CexpressionDQ a_CexpressionDQ = kc_p->u.UnpStr.CexpressionDQ_1; #line 8076 "../gen.k" viewnameoption a_vnameopt = kc_p->u.UnpStr.viewnameoption_1; #line 8077 "../gen.k" ug_viewnameopt = a_vnameopt; #line 17878 "unpk.c" #line 8078 "../gen.k" (*kc_printer)( "", view_no_of_printed_string_chars_reset ); #line 17881 "unpk.c" { (*kc_printer)(" { (*kc_printer)(\"", kc_current_view); } unparse_CexpressionDQ(a_CexpressionDQ, kc_printer, view_gen_unpstr_c); { (*kc_printer)("\", ", kc_current_view); } unparse_viewnameoption(a_vnameopt, kc_printer, kc_current_view); { (*kc_printer)("); }\ \n", kc_current_view); } #line 8081 "../gen.k" ug_viewnameopt = 0; #line 17890 "unpk.c" } else if (( kc_p->prod_sel == sel_UnpSubexpr)) { #line 8091 "../gen.k" unpsubterm sub = kc_p->u.UnpSubexpr.unpsubterm_1; #line 8091 "../gen.k" viewnameoption a_vnameopt = kc_p->u.UnpSubexpr.viewnameoption_1; #line 8092 "../gen.k" ID phy = f_typeofunpsubterm( sub, cf_topoperator() ); #line 17899 "unpk.c" { (*kc_printer)(" unparse_", kc_current_view); } unparse_ID(phy, kc_printer, kc_current_view); { (*kc_printer)("(", kc_current_view); } unparse_unpsubterm(sub, kc_printer, kc_current_view); { (*kc_printer)(", kc_printer, ", kc_current_view); } unparse_viewnameoption(a_vnameopt, kc_printer, kc_current_view); { (*kc_printer)(");\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_UnpCtext)) { #line 8111 "../gen.k" Ctext ct = kc_p->u.UnpCtext.Ctext_1; { (*kc_printer)("#line ", kc_current_view); } unparse_int(ct->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(ct->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n", kc_current_view); } unparse_Ctext(ct, kc_printer, view_gen_initializephyla_c); unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); } else if (( kc_p->prod_sel == sel_UnpBody)) { #line 8117 "../gen.k" unparseitems a_unparseitems = kc_p->u.UnpBody.unparseitems_1; { (*kc_printer)("{\ \n", kc_current_view); } unparse_unparseitems(a_unparseitems, kc_printer, kc_current_view); { (*kc_printer)(" }\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_unparsedefs_default_c: { if (( kc_p->prod_sel == sel_UnpStr)) { #line 8076 "../gen.k" CexpressionDQ a_CexpressionDQ = kc_p->u.UnpStr.CexpressionDQ_1; #line 8076 "../gen.k" viewnameoption a_vnameopt = kc_p->u.UnpStr.viewnameoption_1; #line 8077 "../gen.k" ug_viewnameopt = a_vnameopt; #line 17941 "unpk.c" #line 8078 "../gen.k" (*kc_printer)( "", view_no_of_printed_string_chars_reset ); #line 17944 "unpk.c" { (*kc_printer)(" { (*kc_printer)(\"", kc_current_view); } unparse_CexpressionDQ(a_CexpressionDQ, kc_printer, view_gen_unpstr_c); { (*kc_printer)("\", ", kc_current_view); } unparse_viewnameoption(a_vnameopt, kc_printer, kc_current_view); { (*kc_printer)("); }\ \n", kc_current_view); } #line 8081 "../gen.k" ug_viewnameopt = 0; #line 17953 "unpk.c" } else if (( kc_p->prod_sel == sel_UnpSubexpr)) { #line 8091 "../gen.k" unpsubterm sub = kc_p->u.UnpSubexpr.unpsubterm_1; #line 8091 "../gen.k" viewnameoption a_vnameopt = kc_p->u.UnpSubexpr.viewnameoption_1; #line 8092 "../gen.k" ID phy = f_typeofunpsubterm( sub, cf_topoperator() ); #line 17962 "unpk.c" { (*kc_printer)(" unparse_", kc_current_view); } unparse_ID(phy, kc_printer, kc_current_view); { (*kc_printer)("(", kc_current_view); } unparse_unpsubterm(sub, kc_printer, kc_current_view); { (*kc_printer)(", kc_printer, ", kc_current_view); } unparse_viewnameoption(a_vnameopt, kc_printer, kc_current_view); { (*kc_printer)(");\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_UnpCtext)) { #line 8111 "../gen.k" Ctext ct = kc_p->u.UnpCtext.Ctext_1; { (*kc_printer)("#line ", kc_current_view); } unparse_int(ct->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(ct->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n", kc_current_view); } unparse_Ctext(ct, kc_printer, view_gen_initializephyla_c); unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); } else if (( kc_p->prod_sel == sel_UnpBody)) { #line 8117 "../gen.k" unparseitems a_unparseitems = kc_p->u.UnpBody.unparseitems_1; { (*kc_printer)("{\ \n", kc_current_view); } unparse_unparseitems(a_unparseitems, kc_printer, kc_current_view); { (*kc_printer)(" }\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_make_patternreps: { if (( kc_p->prod_sel == sel_UnpCtext)) { #line 1898 "../util.k" Ctext ct = kc_p->u.UnpCtext.Ctext_1; unparse_Ctext(ct, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_UnpBody)) { #line 1901 "../util.k" unparseitems ui = kc_p->u.UnpBody.unparseitems_1; unparse_unparseitems(ui, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check_viewnames: { if (( kc_p->prod_sel == sel_UnpStr)) { #line 1020 "../util.k" viewnameoption vno = kc_p->u.UnpStr.viewnameoption_1; unparse_viewnameoption(vno, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_UnpSubexpr)) { #line 1021 "../util.k" viewnameoption vno = kc_p->u.UnpSubexpr.viewnameoption_1; unparse_viewnameoption(vno, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_UnpStr)) { #line 978 "../util.k" /*EMPTY*/ #line 18028 "unpk.c" } else if (( kc_p->prod_sel == sel_UnpSubexpr)) { #line 979 "../util.k" unpsubterm us = kc_p->u.UnpSubexpr.unpsubterm_1; unparse_unpsubterm(us, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_UnpCtext)) { #line 980 "../util.k" Ctext ct = kc_p->u.UnpCtext.Ctext_1; unparse_Ctext(ct, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_UnpBody)) { #line 981 "../util.k" unparseitems ui = kc_p->u.UnpBody.unparseitems_1; unparse_unparseitems(ui, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_UnpStr: unparse_CexpressionDQ( kc_p->u.UnpStr.CexpressionDQ_1, kc_printer, kc_current_view ); unparse_viewnameoption( kc_p->u.UnpStr.viewnameoption_1, kc_printer, kc_current_view ); break; case (int)sel_UnpSubexpr: unparse_unpsubterm( kc_p->u.UnpSubexpr.unpsubterm_1, kc_printer, kc_current_view ); unparse_viewnameoption( kc_p->u.UnpSubexpr.viewnameoption_1, kc_printer, kc_current_view ); break; case (int)sel_UnpCtext: unparse_Ctext( kc_p->u.UnpCtext.Ctext_1, kc_printer, kc_current_view ); break; case (int)sel_UnpBody: unparse_unparseitems( kc_p->u.UnpBody.unparseitems_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_unpsubterm #ifdef KC_USE_PROTOTYPES (unpsubterm kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) unpsubterm kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unpsubterm(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_unparsedefs_other_c: { if (( kc_p->prod_sel == sel_UnpSubTerm)) { #line 8096 "../gen.k" ID st = kc_p->u.UnpSubTerm.ID_1; unparse_ID(st, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_UnpDollarvarTerm)) { unparse_unpsubterm(kc_p, kc_printer, view_gen_initializephyla_c); } else if (( kc_p->prod_sel == sel_UnpSubAttr)) { #line 8102 "../gen.k" ID st = kc_p->u.UnpSubAttr.ID_1; #line 8102 "../gen.k" unpattributes a_unpattributes = kc_p->u.UnpSubAttr.unpattributes_1; unparse_ID(st, kc_printer, kc_current_view); unparse_unpattributes(a_unpattributes, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_UnpDollarvarAttr)) { #line 8105 "../gen.k" unpattributes a_unpattributes = kc_p->u.UnpDollarvarAttr.unpattributes_1; unparse_unpsubterm(kc_p, kc_printer, view_gen_initializephyla_c); unparse_unpattributes(a_unpattributes, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_UnpCastedVariable)) { #line 8108 "../gen.k" ID a_id = kc_p->u.UnpCastedVariable.ID_2; unparse_ID(a_id, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_unparsedefs_default_c: { if (( kc_p->prod_sel == sel_UnpSubTerm)) { #line 8096 "../gen.k" ID st = kc_p->u.UnpSubTerm.ID_1; unparse_ID(st, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_UnpDollarvarTerm)) { unparse_unpsubterm(kc_p, kc_printer, view_gen_initializephyla_c); } else if (( kc_p->prod_sel == sel_UnpSubAttr)) { #line 8102 "../gen.k" ID st = kc_p->u.UnpSubAttr.ID_1; #line 8102 "../gen.k" unpattributes a_unpattributes = kc_p->u.UnpSubAttr.unpattributes_1; unparse_ID(st, kc_printer, kc_current_view); unparse_unpattributes(a_unpattributes, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_UnpDollarvarAttr)) { #line 8105 "../gen.k" unpattributes a_unpattributes = kc_p->u.UnpDollarvarAttr.unpattributes_1; unparse_unpsubterm(kc_p, kc_printer, view_gen_initializephyla_c); unparse_unpattributes(a_unpattributes, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_UnpCastedVariable)) { #line 8108 "../gen.k" ID a_id = kc_p->u.UnpCastedVariable.ID_2; unparse_ID(a_id, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_initializephyla_c: { if (( kc_p->prod_sel == sel_UnpDollarvarTerm)) { #line 3303 "../gen.k" INT i = kc_p->u.UnpDollarvarTerm.INT_1; #line 3307 "../gen.k" ID oid = f_emptyId(), dollarvar = cf_topdollarvar(), dollarvarext = cf_topdollarvarext(); argument arg; boolean nulvar = True; { #line 3310 "../gen.k" INT kc_selvar_0_1 = i ; #line 3310 "../gen.k" /*SUPPRESS 622*/ assert_INT(kc_selvar_0_1, "with_expression (1)"); #line 18161 "unpk.c" if (( kc_selvar_0_1->prod_sel == sel_Int)) { #line 3311 "../gen.k" int ii = kc_selvar_0_1->u.Int.int_1; #line 3311 "../gen.k" if (ii != 0) { nulvar = False; oid = cf_topoperator(); arg = f_argumentofoperator( oid, i ); } #line 18172 "unpk.c" } else kc_no_default_in_with( "", __LINE__, __FILE__ ); } #line 3316 "../gen.k" #line 18178 "unpk.c" #line 3321 "../gen.k" if (nulvar) #line 18181 "unpk.c" { unparse_ID(dollarvar, kc_printer, kc_current_view); unparse_ID(dollarvarext, kc_printer, kc_current_view); } #line 3323 "../gen.k" else #line 18188 "unpk.c" { unparse_ID(dollarvar, kc_printer, kc_current_view); unparse_ID(dollarvarext, kc_printer, kc_current_view); { (*kc_printer)("->u.", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_argument(arg, kc_printer, kc_current_view); #line 3325 "../gen.k" free_argument( arg, False ); #line 18198 "unpk.c" } } else if (( kc_p->prod_sel == sel_UnpDollarvarAttr)) { #line 3304 "../gen.k" INT i = kc_p->u.UnpDollarvarAttr.INT_1; #line 3307 "../gen.k" ID oid = f_emptyId(), dollarvar = cf_topdollarvar(), dollarvarext = cf_topdollarvarext(); argument arg; boolean nulvar = True; { #line 3310 "../gen.k" INT kc_selvar_0_1 = i ; #line 3310 "../gen.k" /*SUPPRESS 622*/ assert_INT(kc_selvar_0_1, "with_expression (1)"); #line 18217 "unpk.c" if (( kc_selvar_0_1->prod_sel == sel_Int)) { #line 3311 "../gen.k" int ii = kc_selvar_0_1->u.Int.int_1; #line 3311 "../gen.k" if (ii != 0) { nulvar = False; oid = cf_topoperator(); arg = f_argumentofoperator( oid, i ); } #line 18228 "unpk.c" } else kc_no_default_in_with( "", __LINE__, __FILE__ ); } #line 3316 "../gen.k" #line 18234 "unpk.c" #line 3321 "../gen.k" if (nulvar) #line 18237 "unpk.c" { unparse_ID(dollarvar, kc_printer, kc_current_view); unparse_ID(dollarvarext, kc_printer, kc_current_view); } #line 3323 "../gen.k" else #line 18244 "unpk.c" { unparse_ID(dollarvar, kc_printer, kc_current_view); unparse_ID(dollarvarext, kc_printer, kc_current_view); { (*kc_printer)("->u.", kc_current_view); } unparse_ID(oid, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } unparse_argument(arg, kc_printer, kc_current_view); #line 3325 "../gen.k" free_argument( arg, False ); #line 18254 "unpk.c" } } else goto kc_unparsing_default; break; } case (int)view_check: { if (( kc_p->prod_sel == sel_UnpSubTerm)) { #line 982 "../util.k" ID id = kc_p->u.UnpSubTerm.ID_1; #line 983 "../util.k" v_useoccurpatternvariable( id ); v_syn_type_attribute_ID( id ); #line 18268 "unpk.c" } else if (( kc_p->prod_sel == sel_UnpDollarvarTerm)) { #line 987 "../util.k" INT i = kc_p->u.UnpDollarvarTerm.INT_1; #line 988 "../util.k" v_check_dollarvar_attribute_in_operators( i, Nilunpattributes(), cf_topoutmostoperators() ); #line 18277 "unpk.c" } else if (( kc_p->prod_sel == sel_UnpSubAttr)) { #line 992 "../util.k" ID v_id = kc_p->u.UnpSubAttr.ID_1; #line 992 "../util.k" unpattributes unp_a = kc_p->u.UnpSubAttr.unpattributes_1; #line 994 "../util.k" ID p_id; if (f_useoccurpatternvariable( v_id ) && (p_id = f_phylumofpatternvariable( v_id))) (void)f_check_unpattributes_in_phylum( unp_a, p_id ); v_syn_type_attribute_ID( v_id ); #line 18289 "unpk.c" } else if (( kc_p->prod_sel == sel_UnpDollarvarAttr)) { #line 999 "../util.k" INT i = kc_p->u.UnpDollarvarAttr.INT_1; #line 999 "../util.k" unpattributes unp_a = kc_p->u.UnpDollarvarAttr.unpattributes_1; #line 1001 "../util.k" v_check_dollarvar_attribute_in_operators( i, unp_a, cf_topoutmostoperators() ); #line 18299 "unpk.c" } else if (( kc_p->prod_sel == sel_UnpCastedVariable)) { #line 1005 "../util.k" /*EMPTY*/ #line 18304 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_UnpSubTerm: unparse_ID( kc_p->u.UnpSubTerm.ID_1, kc_printer, kc_current_view ); break; case (int)sel_UnpDollarvarTerm: unparse_INT( kc_p->u.UnpDollarvarTerm.INT_1, kc_printer, kc_current_view ); break; case (int)sel_UnpSubAttr: unparse_ID( kc_p->u.UnpSubAttr.ID_1, kc_printer, kc_current_view ); unparse_unpattributes( kc_p->u.UnpSubAttr.unpattributes_1, kc_printer, kc_current_view ); break; case (int)sel_UnpDollarvarAttr: unparse_INT( kc_p->u.UnpDollarvarAttr.INT_1, kc_printer, kc_current_view ); unparse_unpattributes( kc_p->u.UnpDollarvarAttr.unpattributes_1, kc_printer, kc_current_view ); break; case (int)sel_UnpCastedVariable: unparse_ID( kc_p->u.UnpCastedVariable.ID_1, kc_printer, kc_current_view ); unparse_ID( kc_p->u.UnpCastedVariable.ID_2, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_unpattributes #ifdef KC_USE_PROTOTYPES (unpattributes kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) unpattributes kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unpattributes(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_unparsedefs_other_c: { if (( kc_p->prod_sel == sel_Nilunpattributes)) { #line 8124 "../gen.k" /*EMPTY*/ #line 18351 "unpk.c" } else if (( kc_p->prod_sel == sel_Consunpattributes)) { #line 8125 "../gen.k" ID a_attr = kc_p->u.Consunpattributes.ID_1; #line 8125 "../gen.k" unpattributes r_attr = kc_p->u.Consunpattributes.unpattributes_1; unparse_unpattributes(r_attr, kc_printer, kc_current_view); { (*kc_printer)("->", kc_current_view); } unparse_ID(a_attr, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_unparsedefs_default_c: { if (( kc_p->prod_sel == sel_Nilunpattributes)) { #line 8124 "../gen.k" /*EMPTY*/ #line 18369 "unpk.c" } else if (( kc_p->prod_sel == sel_Consunpattributes)) { #line 8125 "../gen.k" ID a_attr = kc_p->u.Consunpattributes.ID_1; #line 8125 "../gen.k" unpattributes r_attr = kc_p->u.Consunpattributes.unpattributes_1; unparse_unpattributes(r_attr, kc_printer, kc_current_view); { (*kc_printer)("->", kc_current_view); } unparse_ID(a_attr, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consunpattributes: unparse_ID( kc_p->u.Consunpattributes.ID_1, kc_printer, kc_current_view ); unparse_unpattributes( kc_p->u.Consunpattributes.unpattributes_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_viewnameoption #ifdef KC_USE_PROTOTYPES (viewnameoption kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) viewnameoption kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_viewnameoption(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_unparsedefs_other_c: { if (( kc_p->prod_sel == sel_NoViewname)) { { (*kc_printer)("kc_current_view", kc_current_view); } } else if (( kc_p->prod_sel == sel_YesViewname)) { #line 8073 "../gen.k" ID v = kc_p->u.YesViewname.ID_1; unparse_ID(v, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_unparsedefs_default_c: { if (( kc_p->prod_sel == sel_NoViewname)) { { (*kc_printer)("kc_current_view", kc_current_view); } } else if (( kc_p->prod_sel == sel_YesViewname)) { #line 8073 "../gen.k" ID v = kc_p->u.YesViewname.ID_1; unparse_ID(v, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_check_viewnames: { if (( kc_p->prod_sel == sel_NoViewname)) { #line 1022 "../util.k" /*EMPTY*/ #line 18435 "unpk.c" } else if (( kc_p->prod_sel == sel_YesViewname)) { #line 1023 "../util.k" ID vn = kc_p->u.YesViewname.ID_1; #line 1023 "../util.k" v_useoccuruviewname( vn ); #line 18442 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_YesViewname: unparse_ID( kc_p->u.YesViewname.ID_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_filelinestack #ifdef KC_USE_PROTOTYPES (filelinestack kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) filelinestack kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_filelinestack(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consfilelinestack: unparse_fileline( kc_p->u.Consfilelinestack.fileline_1, kc_printer, kc_current_view ); unparse_filelinestack( kc_p->u.Consfilelinestack.filelinestack_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_fileline #ifdef KC_USE_PROTOTYPES (fileline kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) fileline kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_fileline(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_error: { if (( kc_p->prod_sel == sel_FileLine)) { #line 236 "../error.k" casestring f = kc_p->u.FileLine.casestring_1; #line 236 "../error.k" int l = kc_p->u.FileLine.int_1; #line 237 "../error.k" if (l != 0) #line 18501 "unpk.c" { { (*kc_printer)(" at ", kc_current_view); } #line 239 "../error.k" if (strcmp(f->name, "") != 0) #line 18506 "unpk.c" { unparse_casestring(f, kc_printer, kc_current_view); } { (*kc_printer)(":", kc_current_view); } unparse_int(l, kc_printer, kc_current_view); } #line 243 "../error.k" else if (pg_lineno != 0) #line 18515 "unpk.c" { { (*kc_printer)(" at ", kc_current_view); } #line 245 "../error.k" if (strcmp(pg_filename->name, "") != 0) #line 18520 "unpk.c" { unparse_casestring(pg_filename, kc_printer, kc_current_view); } { (*kc_printer)(":", kc_current_view); } unparse_int(pg_lineno, kc_printer, kc_current_view); } } else if (( kc_p->prod_sel == sel_NoFileLine)) { #line 254 "../error.k" if (pg_lineno != 0) #line 18531 "unpk.c" { { (*kc_printer)(" at ", kc_current_view); } #line 256 "../error.k" if (strcmp(pg_filename->name, "") != 0) #line 18536 "unpk.c" { unparse_casestring(pg_filename, kc_printer, kc_current_view); } { (*kc_printer)(":", kc_current_view); } unparse_int(pg_lineno, kc_printer, kc_current_view); } } else if (( kc_p->prod_sel == sel_PosNoFileLine)) { #line 265 "../error.k" if (pg_lineno != 0) #line 18547 "unpk.c" { { (*kc_printer)(" at ", kc_current_view); } #line 267 "../error.k" if (strcmp(pg_filename->name, "") != 0) #line 18552 "unpk.c" { unparse_casestring(pg_filename, kc_printer, kc_current_view); } { (*kc_printer)(":", kc_current_view); } unparse_int(pg_lineno, kc_printer, kc_current_view); { (*kc_printer)(" col:", kc_current_view); } unparse_int(pg_column, kc_printer, kc_current_view); } } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_FileLine: unparse_casestring( kc_p->u.FileLine.casestring_1, kc_printer, kc_current_view ); unparse_int( kc_p->u.FileLine.int_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_nooperatorsstack #ifdef KC_USE_PROTOTYPES (nooperatorsstack kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) nooperatorsstack kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_nooperatorsstack(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consnooperatorsstack: unparse_int( kc_p->u.Consnooperatorsstack.int_1, kc_printer, kc_current_view ); unparse_nooperatorsstack( kc_p->u.Consnooperatorsstack.nooperatorsstack_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_scopetypefilelinestack #ifdef KC_USE_PROTOTYPES (scopetypefilelinestack kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) scopetypefilelinestack kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_scopetypefilelinestack(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consscopetypefilelinestack: unparse_scopetypefileline( kc_p->u.Consscopetypefilelinestack.scopetypefileline_1, kc_printer, kc_current_view ); unparse_scopetypefilelinestack( kc_p->u.Consscopetypefilelinestack.scopetypefilelinestack_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_scopetypefileline #ifdef KC_USE_PROTOTYPES (scopetypefileline kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) scopetypefileline kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_scopetypefileline(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_ScopeTypeFileLine: unparse_int( kc_p->u.ScopeTypeFileLine.int_1, kc_printer, kc_current_view ); unparse_IDtype( kc_p->u.ScopeTypeFileLine.IDtype_1, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.ScopeTypeFileLine.casestring_1, kc_printer, kc_current_view ); unparse_int( kc_p->u.ScopeTypeFileLine.int_2, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_IDtype #ifdef KC_USE_PROTOTYPES (IDtype kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) IDtype kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_IDtype(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_error_tID: { if (( kc_p->prod_sel == sel_ITUnknown)) { #line 175 "../error.k" /*EMPTY*/ #line 18664 "unpk.c" } else if (( kc_p->prod_sel == sel_ITPredefinedPhylum)) { { (*kc_printer)("(it's a ", kc_current_view); } unparse_IDtype(kc_p, kc_printer, view_error); { (*kc_printer)(")", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITPredefinedBigatomPhylum)) { { (*kc_printer)("(it's a ", kc_current_view); } unparse_IDtype(kc_p, kc_printer, view_error); { (*kc_printer)(")", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITUserPhylum)) { { (*kc_printer)("(it's a ", kc_current_view); } unparse_IDtype(kc_p, kc_printer, view_error); { (*kc_printer)(")", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITPredefinedOperator)) { { (*kc_printer)("(it's a ", kc_current_view); } unparse_IDtype(kc_p, kc_printer, view_error); { (*kc_printer)(")", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITUserOperator)) { { (*kc_printer)("(it's an ", kc_current_view); } unparse_IDtype(kc_p, kc_printer, view_error); { (*kc_printer)(")", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITPredefinedStorageClass)) { { (*kc_printer)("(it's a ", kc_current_view); } unparse_IDtype(kc_p, kc_printer, view_error); { (*kc_printer)(")", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITStorageClass)) { { (*kc_printer)("(it's a ", kc_current_view); } unparse_IDtype(kc_p, kc_printer, view_error); { (*kc_printer)(")", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITPredefinedUView)) { { (*kc_printer)("(it's a ", kc_current_view); } unparse_IDtype(kc_p, kc_printer, view_error); { (*kc_printer)(")", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITUserUView)) { { (*kc_printer)("(it's a ", kc_current_view); } unparse_IDtype(kc_p, kc_printer, view_error); { (*kc_printer)(")", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITPredefinedRView)) { { (*kc_printer)("(it's a ", kc_current_view); } unparse_IDtype(kc_p, kc_printer, view_error); { (*kc_printer)(")", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITUserRView)) { { (*kc_printer)("(it's a ", kc_current_view); } unparse_IDtype(kc_p, kc_printer, view_error); { (*kc_printer)(")", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITUserFunction)) { { (*kc_printer)("(it's a ", kc_current_view); } unparse_IDtype(kc_p, kc_printer, view_error); { (*kc_printer)(")", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITPatternVariable)) { { (*kc_printer)("(it's a ", kc_current_view); } unparse_IDtype(kc_p, kc_printer, view_error); { (*kc_printer)(")", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_error: { if (( kc_p->prod_sel == sel_ITUnknown)) { #line 175 "../error.k" /*EMPTY*/ #line 18738 "unpk.c" } else if (( kc_p->prod_sel == sel_ITPredefinedPhylum)) { { (*kc_printer)("predefined phylum", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITPredefinedBigatomPhylum)) { { (*kc_printer)("predefined phylum", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITUserPhylum)) { { (*kc_printer)("phylum", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITPredefinedOperator)) { { (*kc_printer)("predefined operator", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITUserOperator)) { { (*kc_printer)("operator", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITPredefinedStorageClass)) { { (*kc_printer)("predefined storageclass", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITStorageClass)) { { (*kc_printer)("storageclass", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITPredefinedUView)) { { (*kc_printer)("predefined unparse view", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITUserUView)) { { (*kc_printer)("unparse view", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITPredefinedRView)) { { (*kc_printer)("predefined rewrite view", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITUserRView)) { { (*kc_printer)("rewrite view", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITUserFunction)) { { (*kc_printer)("function", kc_current_view); } } else if (( kc_p->prod_sel == sel_ITPatternVariable)) { { (*kc_printer)("pattern variable", kc_current_view); } } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_ITPredefinedPhylum: unparse_phylumdeclaration( kc_p->u.ITPredefinedPhylum.phylumdeclaration_1, kc_printer, kc_current_view ); break; case (int)sel_ITPredefinedBigatomPhylum: unparse_phylumdeclaration( kc_p->u.ITPredefinedBigatomPhylum.phylumdeclaration_1, kc_printer, kc_current_view ); break; case (int)sel_ITUserPhylum: unparse_phylumdeclaration( kc_p->u.ITUserPhylum.phylumdeclaration_1, kc_printer, kc_current_view ); break; case (int)sel_ITPredefinedOperator: unparse_alternative( kc_p->u.ITPredefinedOperator.alternative_1, kc_printer, kc_current_view ); unparse_ID( kc_p->u.ITPredefinedOperator.ID_1, kc_printer, kc_current_view ); break; case (int)sel_ITUserOperator: unparse_alternative( kc_p->u.ITUserOperator.alternative_1, kc_printer, kc_current_view ); unparse_ID( kc_p->u.ITUserOperator.ID_1, kc_printer, kc_current_view ); break; case (int)sel_ITUserFunction: unparse_fnclass( kc_p->u.ITUserFunction.fnclass_1, kc_printer, kc_current_view ); break; case (int)sel_ITPatternVariable: unparse_ID( kc_p->u.ITPatternVariable.ID_1, kc_printer, kc_current_view ); unparse_int( kc_p->u.ITPatternVariable.int_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_operatorsstack #ifdef KC_USE_PROTOTYPES (operatorsstack kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) operatorsstack kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_operatorsstack(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consoperatorsstack: unparse_operators( kc_p->u.Consoperatorsstack.operators_1, kc_printer, kc_current_view ); unparse_operatorsstack( kc_p->u.Consoperatorsstack.operatorsstack_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_operators #ifdef KC_USE_PROTOTYPES (operators kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) operators kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_operators(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_copydefs_c: { if (( kc_p->prod_sel == sel_Niloperators)) { #line 6723 "../gen.k" /*EMPTY*/ #line 18853 "unpk.c" } else if (( kc_p->prod_sel == sel_Consoperators)) { #line 6724 "../gen.k" ID a_op = kc_p->u.Consoperators.ID_1; #line 6724 "../gen.k" operators r_op = kc_p->u.Consoperators.operators_1; #line 6725 "../gen.k" arguments args; #line 18862 "unpk.c" unparse_operators(r_op, kc_printer, kc_current_view); #line 6727 "../gen.k" args = f_argumentsofoperator( a_op ); gl_operator = a_op; gl_phylum = f_phylumofoperator( a_op ); if (length_arguments(args) > 0) #line 18869 "unpk.c" { { (*kc_printer)(" case (int)sel_", kc_current_view); } unparse_ID(a_op, kc_printer, kc_current_view); { (*kc_printer)(": {\ \n", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_copydefs_bigatom_argdefs_c); unparse_arguments(args, kc_printer, view_gen_copydefs_bigatom_argset_c); { (*kc_printer)(" kc_answer = (kc_voidptr_t) ", kc_current_view); } unparse_ID(a_op, kc_printer, kc_current_view); { (*kc_printer)("(", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_copydefs_bigatom_arguse_c); { (*kc_printer)(");\ \n break; }\ \n", kc_current_view); } } #line 6741 "../gen.k" gl_operator = 0; gl_phylum = 0; #line 18889 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_write2structuredef_c: { if (( kc_p->prod_sel == sel_Niloperators)) { #line 6492 "../gen.k" /*EMPTY*/ #line 18898 "unpk.c" } else if (( kc_p->prod_sel == sel_Consoperators)) { #line 6493 "../gen.k" ID a_op = kc_p->u.Consoperators.ID_1; #line 6493 "../gen.k" operators r_op = kc_p->u.Consoperators.operators_1; #line 6494 "../gen.k" arguments args; #line 18907 "unpk.c" unparse_operators(r_op, kc_printer, kc_current_view); #line 6496 "../gen.k" args = f_argumentsofoperator( a_op ); gl_operator = a_op; gl_phylum = f_phylumofoperator( a_op ); if (length_arguments(args) > 0) { #line 18915 "unpk.c" { (*kc_printer)(" case (int)sel_", kc_current_view); } unparse_ID(a_op, kc_printer, kc_current_view); { (*kc_printer)(": {\ \n", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_csgio_write2structuredef_bigatom_c); { (*kc_printer)(" break; }\ \n", kc_current_view); } #line 6506 "../gen.k" } gl_operator = 0; gl_phylum = 0; #line 18928 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_scandef_c: { if (( kc_p->prod_sel == sel_Niloperators)) { #line 6411 "../gen.k" /*EMPTY*/ #line 18937 "unpk.c" } else if (( kc_p->prod_sel == sel_Consoperators)) { #line 6412 "../gen.k" ID a_op = kc_p->u.Consoperators.ID_1; #line 6412 "../gen.k" operators r_op = kc_p->u.Consoperators.operators_1; #line 6413 "../gen.k" arguments args; #line 18946 "unpk.c" unparse_operators(r_op, kc_printer, kc_current_view); #line 6415 "../gen.k" args = f_argumentsofoperator( a_op ); gl_operator = a_op; gl_phylum = f_phylumofoperator( a_op ); if (length_arguments(args) > 0) { #line 18954 "unpk.c" { (*kc_printer)(" case (int)sel_", kc_current_view); } unparse_ID(a_op, kc_printer, kc_current_view); { (*kc_printer)(": {\ \n", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_csgio_scandef_bigatom_c); { (*kc_printer)(" break; }\ \n", kc_current_view); } #line 6425 "../gen.k" } gl_operator = 0; gl_phylum = 0; #line 18967 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_c: { if (( kc_p->prod_sel == sel_Niloperators)) { #line 6350 "../gen.k" /*EMPTY*/ #line 18976 "unpk.c" } else if (( kc_p->prod_sel == sel_Consoperators)) { #line 6351 "../gen.k" ID a_op = kc_p->u.Consoperators.ID_1; #line 6351 "../gen.k" operators r_op = kc_p->u.Consoperators.operators_1; #line 6352 "../gen.k" arguments args; ID phy; #line 18985 "unpk.c" unparse_operators(r_op, kc_printer, kc_current_view); #line 6354 "../gen.k" args = f_argumentsofoperator( a_op ); phy = f_phylumofoperator( a_op ); if (length_arguments(args) > 0) { #line 18992 "unpk.c" { (*kc_printer)(" case (int)sel_", kc_current_view); } unparse_ID(a_op, kc_printer, kc_current_view); { (*kc_printer)(": {\ \n kc_answer.yt_", kc_current_view); } unparse_ID(phy, kc_printer, kc_current_view); { (*kc_printer)(" = ", kc_current_view); } unparse_ID(a_op, kc_printer, kc_current_view); { (*kc_printer)("(", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_csgio_bigatom_arguse_c); { (*kc_printer)(");\ \n break; }\ \n", kc_current_view); } #line 6364 "../gen.k" } #line 19007 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_printdotdefs_c: { if (( kc_p->prod_sel == sel_Niloperators)) { #line 4747 "../gen.k" /*EMPTY*/ #line 19016 "unpk.c" } else if (( kc_p->prod_sel == sel_Consoperators)) { #line 4748 "../gen.k" ID a_op = kc_p->u.Consoperators.ID_1; #line 4748 "../gen.k" operators r_op = kc_p->u.Consoperators.operators_1; #line 4749 "../gen.k" arguments args; #line 19025 "unpk.c" unparse_operators(r_op, kc_printer, kc_current_view); #line 4751 "../gen.k" args = f_argumentsofoperator( a_op ); gl_operator = a_op; gl_phylum = f_phylumofoperator( a_op ); if (length_arguments(args) > 0) #line 19032 "unpk.c" { { (*kc_printer)(" case (int)sel_", kc_current_view); } unparse_ID(a_op, kc_printer, kc_current_view); { (*kc_printer)(": {\ \n kc_i = 0;\ \n", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_printdotdefs_bigatom_c); { (*kc_printer)(" break; }\ \n", kc_current_view); } } #line 4762 "../gen.k" gl_operator = 0; gl_phylum = 0; #line 19047 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_printdefs_c: { if (( kc_p->prod_sel == sel_Niloperators)) { #line 4252 "../gen.k" /*EMPTY*/ #line 19056 "unpk.c" } else if (( kc_p->prod_sel == sel_Consoperators)) { #line 4253 "../gen.k" ID a_op = kc_p->u.Consoperators.ID_1; #line 4253 "../gen.k" operators r_op = kc_p->u.Consoperators.operators_1; #line 4254 "../gen.k" arguments args; #line 19065 "unpk.c" unparse_operators(r_op, kc_printer, kc_current_view); #line 4256 "../gen.k" args = f_argumentsofoperator( a_op ); gl_operator = a_op; gl_phylum = f_phylumofoperator( a_op ); if (length_arguments(args) > 0) #line 19072 "unpk.c" { { (*kc_printer)(" case (int)sel_", kc_current_view); } unparse_ID(a_op, kc_printer, kc_current_view); { (*kc_printer)(": {\ \n", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_printdefs_bigatom_c); { (*kc_printer)(" break; }\ \n", kc_current_view); } } #line 4266 "../gen.k" gl_operator = 0; gl_phylum = 0; #line 19086 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_eqdefs_c: { if (( kc_p->prod_sel == sel_Niloperators)) { #line 4072 "../gen.k" /*EMPTY*/ #line 19095 "unpk.c" } else if (( kc_p->prod_sel == sel_Consoperators)) { #line 4073 "../gen.k" ID a_op = kc_p->u.Consoperators.ID_1; #line 4073 "../gen.k" operators r_op = kc_p->u.Consoperators.operators_1; #line 4074 "../gen.k" arguments args; #line 19104 "unpk.c" unparse_operators(r_op, kc_printer, kc_current_view); #line 4076 "../gen.k" args = f_argumentsofoperator( a_op ); gl_operator = a_op; gl_phylum = f_phylumofoperator( a_op ); if (length_arguments(args) > 0) #line 19111 "unpk.c" { { (*kc_printer)(" case (int)sel_", kc_current_view); } unparse_ID(a_op, kc_printer, kc_current_view); { (*kc_printer)(":\ \n return ((", kc_current_view); } unparse_arguments(args, kc_printer, view_gen_eqdefs_bigatom_c); { (*kc_printer)(") ? True : False);\ \n", kc_current_view); } } #line 4086 "../gen.k" gl_operator = 0; gl_phylum = 0; #line 19125 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consoperators: unparse_ID( kc_p->u.Consoperators.ID_1, kc_printer, kc_current_view ); unparse_operators( kc_p->u.Consoperators.operators_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_phyla #ifdef KC_USE_PROTOTYPES (phyla kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) phyla kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_phyla(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_copydefs_c: { if (( kc_p->prod_sel == sel_Nilphyla)) { #line 6716 "../gen.k" /*EMPTY*/ #line 19158 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphyla)) { #line 6717 "../gen.k" ID a_phy = kc_p->u.Consphyla.ID_1; #line 6717 "../gen.k" phyla r_phy = kc_p->u.Consphyla.phyla_1; unparse_phyla(r_phy, kc_printer, kc_current_view); { (*kc_printer)(" /*SUPPRESS 622*/\ \n assertReason(kc_phylum != kc_phylum_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(", \"kc_do_copy_phylum called with kc_phylum_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(" argument\");\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_writephylumdef_write_c: { if (( kc_p->prod_sel == sel_Nilphyla)) { #line 6535 "../gen.k" /*EMPTY*/ #line 19181 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphyla)) { #line 6536 "../gen.k" ID a_phy = kc_p->u.Consphyla.ID_1; #line 6536 "../gen.k" phyla r_phy = kc_p->u.Consphyla.phyla_1; unparse_phyla(r_phy, kc_printer, kc_current_view); { (*kc_printer)(" case (int)kc_phylum_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(":\ \n kc_CSGIOwrite2structure_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)("(kc_stream, kc_p.yt_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(");\ \n break;\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_writephylumdef_scan_c: { if (( kc_p->prod_sel == sel_Nilphyla)) { #line 6528 "../gen.k" /*EMPTY*/ #line 19207 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphyla)) { #line 6529 "../gen.k" ID a_phy = kc_p->u.Consphyla.ID_1; #line 6529 "../gen.k" phyla r_phy = kc_p->u.Consphyla.phyla_1; unparse_phyla(r_phy, kc_printer, kc_current_view); { (*kc_printer)(" case (int)kc_phylum_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(":\ \n kc_CSGIOscan_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)("( kc_stream, kc_p.yt_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(" );\ \n break;\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_write2structuredef_c: { if (( kc_p->prod_sel == sel_Nilphyla)) { #line 6485 "../gen.k" /*EMPTY*/ #line 19233 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphyla)) { #line 6486 "../gen.k" ID a_phy = kc_p->u.Consphyla.ID_1; #line 6486 "../gen.k" phyla r_phy = kc_p->u.Consphyla.phyla_1; unparse_phyla(r_phy, kc_printer, kc_current_view); { (*kc_printer)(" /*SUPPRESS 622*/\ \n assertReason(kc_phylum != kc_phylum_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(", \"kc_CSGIOwrite2structure called with kc_phylum_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(" argument\");\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_write2structuredefs_c: { if (( kc_p->prod_sel == sel_Nilphyla)) { #line 6447 "../gen.k" /*EMPTY*/ #line 19256 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphyla)) { #line 6448 "../gen.k" ID a_phy = kc_p->u.Consphyla.ID_1; #line 6448 "../gen.k" phyla r_phy = kc_p->u.Consphyla.phyla_1; #line 6449 "../gen.k" ID oper = f_operatorofphylum(a_phy, Int(1)); #line 19265 "unpk.c" unparse_phyla(r_phy, kc_printer, kc_current_view); { (*kc_printer)("static void kc_CSGIOwrite2structure_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_stream, ", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(" kc_p)\ \n#else\ \n(kc_stream, kc_p) FILE *kc_stream; ", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(" kc_p;\ \n#endif\ \n{ kc_hashnode_t kc_hn;\ \n YYSTYPE kc_yt;\ \n /*SUPPRESS 622*/\ \n assert_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)("(kc_p,\"kc_p\");\ \n kc_yt.yt_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(" = kc_p;\ \n kc_hn = (*kc_mkhashnode)(kc_yt, kc_CSGIOhashtable, kc_phylum_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(");\ \n if (kc_hn->created) {\ \n kc_print_b64_to_file( kc_stream, kc_file_offset - kc_hn->number );\ \n } else {\ \n kc_hn->created = True;\ \n (void)fprintf( kc_stream, \"%d\\n\", KC_MAP( (int)sel_", kc_current_view); } unparse_ID(oper, kc_printer, kc_current_view); { (*kc_printer)(" ) );\ \n kc_file_offset++;\ \n", kc_current_view); } #line 6470 "../gen.k" if (strcmp(f_strofID( a_phy), "int")==0) #line 19302 "unpk.c" { { (*kc_printer)(" { char kc_value[30];\ \n (void)sprintf( kc_value, \"%d\", kc_p);\ \n kc_print_to_file( kc_stream, kc_value );\ \n }\ \n", kc_current_view); } } #line 6476 "../gen.k" else #line 19312 "unpk.c" { { (*kc_printer)(" { char kc_value[30];\ \n (void)sprintf( kc_value, \"%f\", kc_p);\ \n kc_print_to_file( kc_stream, kc_value );\ \n }\ \n", kc_current_view); } } { (*kc_printer)("} }\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_scandefs_c: { if (( kc_p->prod_sel == sel_Nilphyla)) { #line 6389 "../gen.k" /*EMPTY*/ #line 19330 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphyla)) { #line 6390 "../gen.k" ID a_phy = kc_p->u.Consphyla.ID_1; #line 6390 "../gen.k" phyla r_phy = kc_p->u.Consphyla.phyla_1; #line 6391 "../gen.k" ID oper = f_operatorofphylum(a_phy, Int(1)); #line 19339 "unpk.c" unparse_phyla(r_phy, kc_printer, kc_current_view); { (*kc_printer)("/*ARGSUSED*/\ \nstatic void kc_CSGIOscan_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)("\ \n#ifdef KC_USE_PROTOTYPES\ \n(FILE *kc_stream, ", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(" kc_p)\ \n#else\ \n(kc_stream, kc_p) FILE *kc_stream; ", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(" kc_p;\ \n#endif\ \n{ kc_hashnode_t kc_hn;\ \n YYSTYPE kc_yt;\ \n /*SUPPRESS 622*/\ \n assert_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)("(kc_p,\"kc_p\");\ \n kc_yt.yt_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(" = kc_p;\ \n kc_hn = (*kc_mkhashnode)(kc_yt, kc_CSGIOhashtable, kc_phylum_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(");\ \n if (kc_hn->number == -1) {\ \n kc_hn->number = kc_node_count++;\ \n KC_MAKE_NEW_SCAN_MAPPING( (int)sel_", kc_current_view); } unparse_ID(oper, kc_printer, kc_current_view); { (*kc_printer)(" );\ \n} }\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_csgio_scandef_c: { if (( kc_p->prod_sel == sel_Nilphyla)) { #line 6382 "../gen.k" /*EMPTY*/ #line 19381 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphyla)) { #line 6383 "../gen.k" ID a_phy = kc_p->u.Consphyla.ID_1; #line 6383 "../gen.k" phyla r_phy = kc_p->u.Consphyla.phyla_1; unparse_phyla(r_phy, kc_printer, kc_current_view); { (*kc_printer)(" /*SUPPRESS 622*/\ \n assertReason(kc_phylum != kc_phylum_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(", \"kc_CSGIOscan called with kc_phylum_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(" argument\");\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_printdotedges_c: { if (( kc_p->prod_sel == sel_Nilphyla)) { #line 4791 "../gen.k" /*EMPTY*/ #line 19404 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphyla)) { #line 4792 "../gen.k" ID a_phy = kc_p->u.Consphyla.ID_1; #line 4792 "../gen.k" phyla r_phy = kc_p->u.Consphyla.phyla_1; unparse_phyla(r_phy, kc_printer, kc_current_view); { (*kc_printer)(" case (int)kc_phylum_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(": {\ \n kc_do_printdot_id_of__", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)("(kc_f, kc_p->ptr_to.yt_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(", kc_use_ctxt, kc_p->ptr_from.yt_voidptr, kc_p->son_nr);\ \n break; }\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_printdotdefs_c: { if (( kc_p->prod_sel == sel_Nilphyla)) { #line 4737 "../gen.k" /*EMPTY*/ #line 19430 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphyla)) { #line 4738 "../gen.k" ID a_phy = kc_p->u.Consphyla.ID_1; #line 4738 "../gen.k" phyla r_phy = kc_p->u.Consphyla.phyla_1; unparse_phyla(r_phy, kc_printer, kc_current_view); { (*kc_printer)(" /*SUPPRESS 622*/\ \n assertReason(kc_phylum != kc_phylum_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(", \"kc_do_printdot_phylum called with kc_phylum_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(" argument\");\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_printdefs_c: { if (( kc_p->prod_sel == sel_Nilphyla)) { #line 4245 "../gen.k" /*EMPTY*/ #line 19453 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphyla)) { #line 4246 "../gen.k" ID a_phy = kc_p->u.Consphyla.ID_1; #line 4246 "../gen.k" phyla r_phy = kc_p->u.Consphyla.phyla_1; unparse_phyla(r_phy, kc_printer, kc_current_view); { (*kc_printer)(" /*SUPPRESS 622*/\ \n assertReason(kc_phylum != kc_phylum_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(", \"kc_do_print_phylum called with kc_phylum_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(" argument\");\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_eqdefs_c: { if (( kc_p->prod_sel == sel_Nilphyla)) { #line 4065 "../gen.k" /*EMPTY*/ #line 19476 "unpk.c" } else if (( kc_p->prod_sel == sel_Consphyla)) { #line 4066 "../gen.k" ID a_phy = kc_p->u.Consphyla.ID_1; #line 4066 "../gen.k" phyla r_phy = kc_p->u.Consphyla.phyla_1; unparse_phyla(r_phy, kc_printer, kc_current_view); { (*kc_printer)(" /*SUPPRESS 622*/\ \n assertReason(kc_phylum != kc_phylum_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(", \"kc_do_eq_phylum called with kc_phylum_", kc_current_view); } unparse_ID(a_phy, kc_printer, kc_current_view); { (*kc_printer)(" argument\");\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consphyla: unparse_ID( kc_p->u.Consphyla.ID_1, kc_printer, kc_current_view ); unparse_phyla( kc_p->u.Consphyla.phyla_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_variables #ifdef KC_USE_PROTOTYPES (variables kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) variables kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_variables(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consvariables: unparse_ID( kc_p->u.Consvariables.ID_1, kc_printer, kc_current_view ); unparse_variables( kc_p->u.Consvariables.variables_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_argumentsstack #ifdef KC_USE_PROTOTYPES (argumentsstack kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) argumentsstack kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_argumentsstack(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consargumentsstack: unparse_arguments( kc_p->u.Consargumentsstack.arguments_1, kc_printer, kc_current_view ); unparse_argumentsstack( kc_p->u.Consargumentsstack.argumentsstack_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_phylumstack #ifdef KC_USE_PROTOTYPES (phylumstack kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) phylumstack kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_phylumstack(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consphylumstack: unparse_ID( kc_p->u.Consphylumstack.ID_1, kc_printer, kc_current_view ); unparse_phylumstack( kc_p->u.Consphylumstack.phylumstack_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_phylumnamesstack #ifdef KC_USE_PROTOTYPES (phylumnamesstack kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) phylumnamesstack kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_phylumnamesstack(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consphylumnamesstack: unparse_phylumnames( kc_p->u.Consphylumnamesstack.phylumnames_1, kc_printer, kc_current_view ); unparse_phylumnamesstack( kc_p->u.Consphylumnamesstack.phylumnamesstack_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_withexpressionsstack #ifdef KC_USE_PROTOTYPES (withexpressionsstack kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) withexpressionsstack kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_withexpressionsstack(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Conswithexpressionsstack: unparse_withexpressions( kc_p->u.Conswithexpressionsstack.withexpressions_1, kc_printer, kc_current_view ); unparse_withexpressionsstack( kc_p->u.Conswithexpressionsstack.withexpressionsstack_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_operatorstack #ifdef KC_USE_PROTOTYPES (operatorstack kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) operatorstack kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_operatorstack(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consoperatorstack: unparse_ID( kc_p->u.Consoperatorstack.ID_1, kc_printer, kc_current_view ); unparse_operatorstack( kc_p->u.Consoperatorstack.operatorstack_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_variablesstack #ifdef KC_USE_PROTOTYPES (variablesstack kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) variablesstack kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_variablesstack(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consvariablesstack: unparse_variables( kc_p->u.Consvariablesstack.variables_1, kc_printer, kc_current_view ); unparse_variablesstack( kc_p->u.Consvariablesstack.variablesstack_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_selvarstack #ifdef KC_USE_PROTOTYPES (selvarstack kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) selvarstack kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_selvarstack(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consselvarstack: unparse_ID( kc_p->u.Consselvarstack.ID_1, kc_printer, kc_current_view ); unparse_selvarstack( kc_p->u.Consselvarstack.selvarstack_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_dollarvarstatus #ifdef KC_USE_PROTOTYPES (dollarvarstatus kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) dollarvarstatus kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_dollarvarstatus(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { break; } } } /*ARGSUSED*/ void unparse_dollarvarsallowedstack #ifdef KC_USE_PROTOTYPES (dollarvarsallowedstack kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) dollarvarsallowedstack kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_dollarvarsallowedstack(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consdollarvarsallowedstack: unparse_dollarvarstatus( kc_p->u.Consdollarvarsallowedstack.dollarvarstatus_1, kc_printer, kc_current_view ); unparse_dollarvarsallowedstack( kc_p->u.Consdollarvarsallowedstack.dollarvarsallowedstack_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_intstack #ifdef KC_USE_PROTOTYPES (intstack kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) intstack kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_intstack(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consintstack: unparse_int( kc_p->u.Consintstack.int_1, kc_printer, kc_current_view ); unparse_intstack( kc_p->u.Consintstack.intstack_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_idCexpressionsstack #ifdef KC_USE_PROTOTYPES (idCexpressionsstack kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) idCexpressionsstack kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_idCexpressionsstack(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_ConsidCexpressionsstack: unparse_idCexpressions( kc_p->u.ConsidCexpressionsstack.idCexpressions_1, kc_printer, kc_current_view ); unparse_idCexpressionsstack( kc_p->u.ConsidCexpressionsstack.idCexpressionsstack_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_two_phyla #ifdef KC_USE_PROTOTYPES (two_phyla kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) two_phyla kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_two_phyla(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_TwoStorageoption: unparse_storageoption( kc_p->u.TwoStorageoption.storageoption_1, kc_printer, kc_current_view ); unparse_storageoption( kc_p->u.TwoStorageoption.storageoption_2, kc_printer, kc_current_view ); break; case (int)sel_TwoProductionblock: unparse_productionblock( kc_p->u.TwoProductionblock.productionblock_1, kc_printer, kc_current_view ); unparse_productionblock( kc_p->u.TwoProductionblock.productionblock_2, kc_printer, kc_current_view ); break; case (int)sel_TwoCcode_option: unparse_Ccode_option( kc_p->u.TwoCcode_option.Ccode_option_1, kc_printer, kc_current_view ); unparse_Ccode_option( kc_p->u.TwoCcode_option.Ccode_option_2, kc_printer, kc_current_view ); break; case (int)sel_TwoRewriteruleinfo: unparse_rewriteruleinfo( kc_p->u.TwoRewriteruleinfo.rewriteruleinfo_1, kc_printer, kc_current_view ); unparse_rewriteruleinfo( kc_p->u.TwoRewriteruleinfo.rewriteruleinfo_2, kc_printer, kc_current_view ); break; case (int)sel_TwoWithcaseinfo: unparse_withcaseinfo( kc_p->u.TwoWithcaseinfo.withcaseinfo_1, kc_printer, kc_current_view ); unparse_withcaseinfo( kc_p->u.TwoWithcaseinfo.withcaseinfo_2, kc_printer, kc_current_view ); break; case (int)sel_TwoUnparsedeclinfo: unparse_unparsedeclinfo( kc_p->u.TwoUnparsedeclinfo.unparsedeclinfo_1, kc_printer, kc_current_view ); unparse_unparsedeclinfo( kc_p->u.TwoUnparsedeclinfo.unparsedeclinfo_2, kc_printer, kc_current_view ); break; case (int)sel_TwoPatternrepresentation: unparse_patternrepresentation( kc_p->u.TwoPatternrepresentation.patternrepresentation_1, kc_printer, kc_current_view ); unparse_patternrepresentation( kc_p->u.TwoPatternrepresentation.patternrepresentation_2, kc_printer, kc_current_view ); break; case (int)sel_TwoElem_patternrepresentation: unparse_elem_patternrepresentation( kc_p->u.TwoElem_patternrepresentation.elem_patternrepresentation_1, kc_printer, kc_current_view ); unparse_elem_patternrepresentation( kc_p->u.TwoElem_patternrepresentation.elem_patternrepresentation_2, kc_printer, kc_current_view ); break; case (int)sel_TwoPaths: unparse_paths( kc_p->u.TwoPaths.paths_1, kc_printer, kc_current_view ); unparse_paths( kc_p->u.TwoPaths.paths_2, kc_printer, kc_current_view ); break; case (int)sel_TwoPath: unparse_path( kc_p->u.TwoPath.path_1, kc_printer, kc_current_view ); unparse_path( kc_p->u.TwoPath.path_2, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_tribool #ifdef KC_USE_PROTOTYPES (tribool kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) tribool kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_tribool(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { break; } } } /*ARGSUSED*/ void unparse_patternrepresentations #ifdef KC_USE_PROTOTYPES (patternrepresentations kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) patternrepresentations kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_patternrepresentations(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Conspatternrepresentations: unparse_patternrepresentation( kc_p->u.Conspatternrepresentations.patternrepresentation_1, kc_printer, kc_current_view ); unparse_patternrepresentations( kc_p->u.Conspatternrepresentations.patternrepresentations_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_patternrepresentation #ifdef KC_USE_PROTOTYPES (patternrepresentation kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) patternrepresentation kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_patternrepresentation(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_unp_predicates: { if (( kc_p->prod_sel == sel_Conspatternrepresentation) && ( kc_p->u.Conspatternrepresentation.patternrepresentation_1->prod_sel == sel_Nilpatternrepresentation)) { #line 7200 "../gen.k" elem_patternrepresentation p = kc_p->u.Conspatternrepresentation.elem_patternrepresentation_1; unparse_elem_patternrepresentation(p, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Conspatternrepresentation)) { #line 7204 "../gen.k" elem_patternrepresentation p = kc_p->u.Conspatternrepresentation.elem_patternrepresentation_1; #line 7204 "../gen.k" patternrepresentation r_p = kc_p->u.Conspatternrepresentation.patternrepresentation_1; unparse_elem_patternrepresentation(p, kc_printer, kc_current_view); { (*kc_printer)(") && (", kc_current_view); } unparse_patternrepresentation(r_p, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_wc_predicates: { if (( kc_p->prod_sel == sel_Conspatternrepresentation) && ( kc_p->u.Conspatternrepresentation.patternrepresentation_1->prod_sel == sel_Nilpatternrepresentation)) { #line 7200 "../gen.k" elem_patternrepresentation p = kc_p->u.Conspatternrepresentation.elem_patternrepresentation_1; unparse_elem_patternrepresentation(p, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Conspatternrepresentation)) { #line 7204 "../gen.k" elem_patternrepresentation p = kc_p->u.Conspatternrepresentation.elem_patternrepresentation_1; #line 7204 "../gen.k" patternrepresentation r_p = kc_p->u.Conspatternrepresentation.patternrepresentation_1; unparse_elem_patternrepresentation(p, kc_printer, kc_current_view); { (*kc_printer)(") && (", kc_current_view); } unparse_patternrepresentation(r_p, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_rw_predicates: { if (( kc_p->prod_sel == sel_Conspatternrepresentation) && ( kc_p->u.Conspatternrepresentation.patternrepresentation_1->prod_sel == sel_Nilpatternrepresentation)) { #line 7200 "../gen.k" elem_patternrepresentation p = kc_p->u.Conspatternrepresentation.elem_patternrepresentation_1; unparse_elem_patternrepresentation(p, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Conspatternrepresentation)) { #line 7204 "../gen.k" elem_patternrepresentation p = kc_p->u.Conspatternrepresentation.elem_patternrepresentation_1; #line 7204 "../gen.k" patternrepresentation r_p = kc_p->u.Conspatternrepresentation.patternrepresentation_1; unparse_elem_patternrepresentation(p, kc_printer, kc_current_view); { (*kc_printer)(") && (", kc_current_view); } unparse_patternrepresentation(r_p, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { if (( kc_p->prod_sel == sel_Nilpatternrepresentation)) { #line 7199 "../gen.k" /*EMPTY*/ #line 19948 "unpk.c" } else if (( kc_p->prod_sel == sel_Conspatternrepresentation)) { #line 7209 "../gen.k" elem_patternrepresentation p = kc_p->u.Conspatternrepresentation.elem_patternrepresentation_1; #line 7209 "../gen.k" patternrepresentation r_p = kc_p->u.Conspatternrepresentation.patternrepresentation_1; unparse_elem_patternrepresentation(p, kc_printer, kc_current_view); unparse_patternrepresentation(r_p, kc_printer, kc_current_view); } else switch((int)kc_p->prod_sel) { case (int)sel_Conspatternrepresentation: unparse_elem_patternrepresentation( kc_p->u.Conspatternrepresentation.elem_patternrepresentation_1, kc_printer, kc_current_view ); unparse_patternrepresentation( kc_p->u.Conspatternrepresentation.patternrepresentation_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_elem_patternrepresentation #ifdef KC_USE_PROTOTYPES (elem_patternrepresentation kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) elem_patternrepresentation kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_elem_patternrepresentation(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { if (( kc_p->prod_sel == sel_PRBinding)) { #line 7214 "../gen.k" path p = kc_p->u.PRBinding.path_1; #line 7214 "../gen.k" ID id = kc_p->u.PRBinding.ID_1; { #line 7216 "../gen.k" ID gl_type; if (eq_ID(kc_p->type, f_emptyId())) { gl_type = f_typeof( p ); } else { gl_type = kc_p->type; } #line 19995 "unpk.c" { (*kc_printer)("#line ", kc_current_view); } unparse_int(id->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(id->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n ", kc_current_view); } unparse_ID(gl_type, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" = ", kc_current_view); } unparse_path(p, kc_printer, kc_current_view); { (*kc_printer)(";\ \n", kc_current_view); } } } else if (( kc_p->prod_sel == sel_PRVarPredicate)) { #line 7272 "../gen.k" paths ps = kc_p->u.PRVarPredicate.paths_1; unparse_paths(ps, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_PROperPredicate) && ( kc_p->u.PROperPredicate.path_1->prod_sel == sel_Conspath)) { #line 7289 "../gen.k" path p = kc_p->u.PROperPredicate.path_1->u.Conspath.path_1; #line 7289 "../gen.k" ID id = kc_p->u.PROperPredicate.ID_1; unparse_path(p, kc_printer, kc_current_view); { (*kc_printer)("->prod_sel == sel_", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_PROperPredicate) && ( kc_p->u.PROperPredicate.path_1->prod_sel == sel_Nilpath)) { #line 7292 "../gen.k" /*EMPTY*/ #line 20028 "unpk.c" } else if (( kc_p->prod_sel == sel_PRNonLeafBinding)) { #line 7213 "../gen.k" path p = kc_p->u.PRNonLeafBinding.path_1; #line 7213 "../gen.k" ID id = kc_p->u.PRNonLeafBinding.ID_1; { #line 7216 "../gen.k" ID gl_type; if (eq_ID(kc_p->type, f_emptyId())) { gl_type = f_typeof( p ); } else { gl_type = kc_p->type; } #line 20044 "unpk.c" { (*kc_printer)("#line ", kc_current_view); } unparse_int(id->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(id->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n ", kc_current_view); } unparse_ID(gl_type, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); { (*kc_printer)(" = ", kc_current_view); } unparse_path(p, kc_printer, kc_current_view); { (*kc_printer)(";\ \n", kc_current_view); } } } else if (( kc_p->prod_sel == sel_PRWildcard)) { { (*kc_printer)("1 /*default*/", kc_current_view); } } else if (( kc_p->prod_sel == sel_PRDefault)) { { (*kc_printer)("1 /*default*/", kc_current_view); } } else if (( kc_p->prod_sel == sel_PRStringLiteral)) { #line 7297 "../gen.k" path p = kc_p->u.PRStringLiteral.path_1; #line 7297 "../gen.k" CexpressionDQ Cexprdq = kc_p->u.PRStringLiteral.CexpressionDQ_1; #line 7298 "../gen.k" if (strcmp( f_strofID( f_typeof( p ) ), "casestring" ) == 0) #line 20073 "unpk.c" { { (*kc_printer)("strcmp(", kc_current_view); } unparse_path(p, kc_printer, kc_current_view); { (*kc_printer)("->name, \"", kc_current_view); } unparse_CexpressionDQ(Cexprdq, kc_printer, kc_current_view); { (*kc_printer)("\")==0", kc_current_view); } } #line 7300 "../gen.k" else if (strcmp( f_strofID( f_typeof( p ) ), "nocasestring" ) == 0) #line 20083 "unpk.c" { { (*kc_printer)("kc_ci_strcmp(", kc_current_view); } unparse_path(p, kc_printer, kc_current_view); { (*kc_printer)("->name, \"", kc_current_view); } unparse_CexpressionDQ(Cexprdq, kc_printer, kc_current_view); { (*kc_printer)("\")==0", kc_current_view); } } #line 7302 "../gen.k" else #line 20093 "unpk.c" { #line 7303 "../gen.k" /*SUPPRESS 622*/ assert(kc_zero_constant); #line 20098 "unpk.c" } } else if (( kc_p->prod_sel == sel_PRIntLiteral)) { #line 7307 "../gen.k" path p = kc_p->u.PRIntLiteral.path_1; #line 7307 "../gen.k" INT i = kc_p->u.PRIntLiteral.INT_1; unparse_path(p, kc_printer, kc_current_view); { (*kc_printer)(" == ", kc_current_view); } unparse_INT(i, kc_printer, kc_current_view); } else switch((int)kc_p->prod_sel) { case (int)sel_PRBinding: unparse_path( kc_p->u.PRBinding.path_1, kc_printer, kc_current_view ); unparse_ID( kc_p->u.PRBinding.ID_1, kc_printer, kc_current_view ); break; case (int)sel_PRVarPredicate: unparse_paths( kc_p->u.PRVarPredicate.paths_1, kc_printer, kc_current_view ); unparse_ID( kc_p->u.PRVarPredicate.ID_1, kc_printer, kc_current_view ); unparse_patternrepresentation( kc_p->u.PRVarPredicate.patternrepresentation_1, kc_printer, kc_current_view ); break; case (int)sel_PROperPredicate: unparse_path( kc_p->u.PROperPredicate.path_1, kc_printer, kc_current_view ); unparse_ID( kc_p->u.PROperPredicate.ID_1, kc_printer, kc_current_view ); break; case (int)sel_PRNonLeafBinding: unparse_path( kc_p->u.PRNonLeafBinding.path_1, kc_printer, kc_current_view ); unparse_ID( kc_p->u.PRNonLeafBinding.ID_1, kc_printer, kc_current_view ); unparse_patternrepresentation( kc_p->u.PRNonLeafBinding.patternrepresentation_1, kc_printer, kc_current_view ); break; case (int)sel_PRWildcard: unparse_path( kc_p->u.PRWildcard.path_1, kc_printer, kc_current_view ); break; case (int)sel_PRStringLiteral: unparse_path( kc_p->u.PRStringLiteral.path_1, kc_printer, kc_current_view ); unparse_CexpressionDQ( kc_p->u.PRStringLiteral.CexpressionDQ_1, kc_printer, kc_current_view ); break; case (int)sel_PRIntLiteral: unparse_path( kc_p->u.PRIntLiteral.path_1, kc_printer, kc_current_view ); unparse_INT( kc_p->u.PRIntLiteral.INT_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_path #ifdef KC_USE_PROTOTYPES (path kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) path kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_path(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_rw_bindings: { if (( kc_p->prod_sel == sel_Nilpath)) { #line 7259 "../gen.k" if (gl_outmost_nonleaf_predicates) #line 20160 "unpk.c" { { (*kc_printer)(" kc_rp", kc_current_view); } } #line 7261 "../gen.k" else #line 20166 "unpk.c" { { (*kc_printer)(" ((", kc_current_view); } unparse_arguments(gl_args, kc_printer, view_gen_rewritedefs_dotestarg_c); { (*kc_printer)("))\ \n ? kc_p\ \n : ", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)("(", kc_current_view); } unparse_arguments(gl_args, kc_printer, view_gen_rewritedefs_args_c); { (*kc_printer)(")", kc_current_view); } } } else if (( kc_p->prod_sel == sel_Conspath) && ( kc_p->u.Conspath.path_1->prod_sel == sel_Nilpath)) { #line 7267 "../gen.k" int i = kc_p->u.Conspath.int_1; { #line 7268 "../gen.k" argument gl_argument = f_argumentofoperator( kc_p->u.Conspath.path_1->op, Int( i )); #line 20185 "unpk.c" unparse_argument(gl_argument, kc_printer, kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_unp_bindings: { if (( kc_p->prod_sel == sel_Nilpath)) { { (*kc_printer)(" kc_p", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_wc_bindings: { if (( kc_p->prod_sel == sel_Nilpath)) { #line 7234 "../gen.k" ID selvar = cf_topselvar(); #line 20203 "unpk.c" { (*kc_printer)(" ", kc_current_view); } unparse_ID(selvar, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Conspath) && ( kc_p->u.Conspath.path_1->prod_sel == sel_Nilpath)) { #line 7242 "../gen.k" int i = kc_p->u.Conspath.int_1; #line 7242 "../gen.k" path r_p = kc_p->u.Conspath.path_1; unparse_path(r_p, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(i, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_unp_predicates: { if (( kc_p->prod_sel == sel_Nilpath)) { { (*kc_printer)(" kc_p", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_wc_predicates: { if (( kc_p->prod_sel == sel_Nilpath)) { #line 7234 "../gen.k" ID selvar = cf_topselvar(); #line 20230 "unpk.c" { (*kc_printer)(" ", kc_current_view); } unparse_ID(selvar, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Conspath) && ( kc_p->u.Conspath.path_1->prod_sel == sel_Nilpath)) { #line 7242 "../gen.k" int i = kc_p->u.Conspath.int_1; #line 7242 "../gen.k" path r_p = kc_p->u.Conspath.path_1; unparse_path(r_p, kc_printer, kc_current_view); { (*kc_printer)("_", kc_current_view); } unparse_int(i, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_rw_predicates: { if (( kc_p->prod_sel == sel_Nilpath)) { #line 7259 "../gen.k" if (gl_outmost_nonleaf_predicates) #line 20250 "unpk.c" { { (*kc_printer)(" kc_rp", kc_current_view); } } #line 7261 "../gen.k" else #line 20256 "unpk.c" { { (*kc_printer)(" ((", kc_current_view); } unparse_arguments(gl_args, kc_printer, view_gen_rewritedefs_dotestarg_c); { (*kc_printer)("))\ \n ? kc_p\ \n : ", kc_current_view); } unparse_ID(gl_operator, kc_printer, kc_current_view); { (*kc_printer)("(", kc_current_view); } unparse_arguments(gl_args, kc_printer, view_gen_rewritedefs_args_c); { (*kc_printer)(")", kc_current_view); } } } else if (( kc_p->prod_sel == sel_Conspath) && ( kc_p->u.Conspath.path_1->prod_sel == sel_Nilpath)) { #line 7267 "../gen.k" int i = kc_p->u.Conspath.int_1; { #line 7268 "../gen.k" argument gl_argument = f_argumentofoperator( kc_p->u.Conspath.path_1->op, Int( i )); #line 20275 "unpk.c" unparse_argument(gl_argument, kc_printer, kc_current_view); } } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { if (( kc_p->prod_sel == sel_Nilpath)) { #line 7228 "../gen.k" /*EMPTY*/ #line 20288 "unpk.c" } else if (( kc_p->prod_sel == sel_Conspath)) { #line 7248 "../gen.k" int i = kc_p->u.Conspath.int_1; #line 7248 "../gen.k" path r_p = kc_p->u.Conspath.path_1; unparse_path(r_p, kc_printer, kc_current_view); { (*kc_printer)("->u.", kc_current_view); } unparse_ID(r_p->op, kc_printer, kc_current_view); { (*kc_printer)(".", kc_current_view); } { #line 7251 "../gen.k" argument gl_argument = f_argumentofoperator( r_p->op, Int( i )); #line 20302 "unpk.c" unparse_argument(gl_argument, kc_printer, kc_current_view); } } else switch((int)kc_p->prod_sel) { case (int)sel_Conspath: unparse_int( kc_p->u.Conspath.int_1, kc_printer, kc_current_view ); unparse_path( kc_p->u.Conspath.path_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_paths #ifdef KC_USE_PROTOTYPES (paths kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) paths kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_paths(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { if (( kc_p->prod_sel == sel_Nilpaths)) { #line 7275 "../gen.k" /*EMPTY*/ #line 20332 "unpk.c" } else if (( kc_p->prod_sel == sel_Conspaths) && ( kc_p->u.Conspaths.paths_1->prod_sel == sel_Conspaths) && ( kc_p->u.Conspaths.paths_1->u.Conspaths.paths_1->prod_sel == sel_Nilpaths)) { #line 7277 "../gen.k" path p1 = kc_p->u.Conspaths.path_1; #line 7277 "../gen.k" path p2 = kc_p->u.Conspaths.paths_1->u.Conspaths.path_1; { #line 7279 "../gen.k" ID gl_type = f_typeof( p1 ); #line 20342 "unpk.c" { (*kc_printer)("eq_", kc_current_view); } unparse_ID(gl_type, kc_printer, kc_current_view); { (*kc_printer)("(", kc_current_view); } unparse_path(p1, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_path(p2, kc_printer, kc_current_view); { (*kc_printer)(")", kc_current_view); } } } else if (( kc_p->prod_sel == sel_Conspaths) && ( kc_p->u.Conspaths.paths_1->prod_sel == sel_Nilpaths)) { #line 7276 "../gen.k" /*EMPTY*/ #line 20355 "unpk.c" } else if (( kc_p->prod_sel == sel_Conspaths) && ( kc_p->u.Conspaths.paths_1->prod_sel == sel_Conspaths)) { #line 7283 "../gen.k" path p1 = kc_p->u.Conspaths.path_1; #line 7283 "../gen.k" path p2 = kc_p->u.Conspaths.paths_1->u.Conspaths.path_1; { #line 7284 "../gen.k" ID gl_type = f_typeof( p1 ); #line 20365 "unpk.c" { (*kc_printer)("eq_", kc_current_view); } unparse_ID(gl_type, kc_printer, kc_current_view); { (*kc_printer)("(", kc_current_view); } unparse_path(p1, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_path(p2, kc_printer, kc_current_view); { (*kc_printer)(")) && (", kc_current_view); } unparse_paths(kc_p->u.Conspaths.paths_1, kc_printer, kc_current_view); } } else switch((int)kc_p->prod_sel) { case (int)sel_Conspaths: unparse_path( kc_p->u.Conspaths.path_1, kc_printer, kc_current_view ); unparse_paths( kc_p->u.Conspaths.paths_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_argsnumbers #ifdef KC_USE_PROTOTYPES (argsnumbers kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) argsnumbers kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_argsnumbers(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_copydefs_c: { if (( kc_p->prod_sel == sel_Nilargsnumbers)) { #line 6787 "../gen.k" /*EMPTY*/ #line 20401 "unpk.c" } else if (( kc_p->prod_sel == sel_Consargsnumbers)) { #line 6788 "../gen.k" int i = kc_p->u.Consargsnumbers.int_1; #line 6788 "../gen.k" argsnumbers r = kc_p->u.Consargsnumbers.argsnumbers_1; { (*kc_printer)(" case ", kc_current_view); } unparse_int(i, kc_printer, kc_current_view); { (*kc_printer)(": kc_answer = (kc_voidptr_t) (*kc_op_info->create_routine)(", kc_current_view); } { (*kc_printer)(" kc_prodsel", kc_current_view); } #line 6791 "../gen.k" if (i > 0) #line 20414 "unpk.c" { { (*kc_printer)(",", kc_current_view); } } { #line 6794 "../gen.k" int j; for (j=0; jprod_sel == sel_Nilargsnumbers)) { #line 6331 "../gen.k" /*EMPTY*/ #line 20447 "unpk.c" } else if (( kc_p->prod_sel == sel_Consargsnumbers)) { #line 6332 "../gen.k" int i = kc_p->u.Consargsnumbers.int_1; #line 6332 "../gen.k" argsnumbers r = kc_p->u.Consargsnumbers.argsnumbers_1; { (*kc_printer)(" case ", kc_current_view); } unparse_int(i, kc_printer, kc_current_view); { (*kc_printer)(": kc_answer.yt_voidptr = (kc_voidptr_t) (*kc_OperatorInfo[kc_op].create_routine)(", kc_current_view); } { (*kc_printer)(" (kc_enum_operators)kc_op", kc_current_view); } #line 6335 "../gen.k" if (i > 0) #line 20460 "unpk.c" { { (*kc_printer)(",", kc_current_view); } } { #line 6338 "../gen.k" int j; for (j=0; jprod_sel) { case (int)sel_Consargsnumbers: unparse_int( kc_p->u.Consargsnumbers.int_1, kc_printer, kc_current_view ); unparse_argsnumbers( kc_p->u.Consargsnumbers.argsnumbers_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_rewriterulesinfo #ifdef KC_USE_PROTOTYPES (rewriterulesinfo kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) rewriterulesinfo kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_rewriterulesinfo(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_rewritedefs_other_c: { if (( kc_p->prod_sel == sel_Nilrewriterulesinfo)) { { (*kc_printer)(" goto kc_rewrite_default;\ \n", kc_current_view); } #line 7121 "../gen.k" gl_rewrite_goto_used = True; #line 20519 "unpk.c" } else if (( kc_p->prod_sel == sel_Consrewriterulesinfo) && ( kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->prod_sel == sel_Rewriteruleinfo) && ( kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.patternrepresentation_1->prod_sel == sel_Conspatternrepresentation) && ( kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.patternrepresentation_1->u.Conspatternrepresentation.patternrepresentation_1->prod_sel == sel_Nilpatternrepresentation) && ( kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.rewriteclause_1->prod_sel == sel_RewriteClause)) { #line 7125 "../gen.k" patternrepresentation bindings = kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.patternrepresentation_2; #line 7125 "../gen.k" term t = kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.rewriteclause_1->u.RewriteClause.term_1; { (*kc_printer)(" {\ \n", kc_current_view); } unparse_patternrepresentation(bindings, kc_printer, view_rw_bindings); unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); { (*kc_printer)(" ", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(" kc_result = ", kc_current_view); } unparse_term(t, kc_printer, kc_current_view); { (*kc_printer)(";\ \n return (kc_result == kc_p) ? kc_p : rewrite_", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)("( kc_result, kc_current_view );\ \n }\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_Consrewriterulesinfo) && ( kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->prod_sel == sel_Rewriteruleinfo) && ( kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.patternrepresentation_1->prod_sel == sel_Nilpatternrepresentation) && ( kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.rewriteclause_1->prod_sel == sel_RewriteClause)) { #line 7124 "../gen.k" patternrepresentation bindings = kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.patternrepresentation_2; #line 7124 "../gen.k" term t = kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.rewriteclause_1->u.RewriteClause.term_1; { (*kc_printer)(" {\ \n", kc_current_view); } unparse_patternrepresentation(bindings, kc_printer, view_rw_bindings); unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); { (*kc_printer)(" ", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(" kc_result = ", kc_current_view); } unparse_term(t, kc_printer, kc_current_view); { (*kc_printer)(";\ \n return (kc_result == kc_p) ? kc_p : rewrite_", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)("( kc_result, kc_current_view );\ \n }\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_Consrewriterulesinfo) && ( kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->prod_sel == sel_Rewriteruleinfo) && ( kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.patternrepresentation_1->prod_sel == sel_Conspatternrepresentation) && ( kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.rewriteclause_1->prod_sel == sel_RewriteClause)) { #line 7136 "../gen.k" patternrepresentation r_p = kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.patternrepresentation_1->u.Conspatternrepresentation.patternrepresentation_1; #line 7136 "../gen.k" patternrepresentation bindings = kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.patternrepresentation_2; #line 7136 "../gen.k" term t = kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.rewriteclause_1->u.RewriteClause.term_1; #line 7136 "../gen.k" rewriterulesinfo r_rri = kc_p->u.Consrewriterulesinfo.rewriterulesinfo_1; { (*kc_printer)(" if ((", kc_current_view); } unparse_patternrepresentation(r_p, kc_printer, view_rw_predicates); { (*kc_printer)(")) {\ \n", kc_current_view); } unparse_patternrepresentation(bindings, kc_printer, view_rw_bindings); unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); { (*kc_printer)(" ", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(" kc_result = ", kc_current_view); } unparse_term(t, kc_printer, kc_current_view); { (*kc_printer)(";\ \n return (kc_result == kc_p) ? kc_p : rewrite_", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)("( kc_result, kc_current_view );\ \n } else\ \n", kc_current_view); } unparse_rewriterulesinfo(r_rri, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_rewritedefs_default_c: { if (( kc_p->prod_sel == sel_Nilrewriterulesinfo)) { unparse_arguments(gl_args, kc_printer, view_gen_rewritedefs_testarg_c); } else if (( kc_p->prod_sel == sel_Consrewriterulesinfo) && ( kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->prod_sel == sel_Rewriteruleinfo) && ( kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.patternrepresentation_1->prod_sel == sel_Conspatternrepresentation) && ( kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.patternrepresentation_1->u.Conspatternrepresentation.patternrepresentation_1->prod_sel == sel_Nilpatternrepresentation) && ( kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.rewriteclause_1->prod_sel == sel_RewriteClause)) { #line 7125 "../gen.k" patternrepresentation bindings = kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.patternrepresentation_2; #line 7125 "../gen.k" term t = kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.rewriteclause_1->u.RewriteClause.term_1; { (*kc_printer)(" {\ \n", kc_current_view); } unparse_patternrepresentation(bindings, kc_printer, view_rw_bindings); unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); { (*kc_printer)(" ", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(" kc_result = ", kc_current_view); } unparse_term(t, kc_printer, kc_current_view); { (*kc_printer)(";\ \n return (kc_result == kc_p) ? kc_p : rewrite_", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)("( kc_result, kc_current_view );\ \n }\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_Consrewriterulesinfo) && ( kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->prod_sel == sel_Rewriteruleinfo) && ( kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.patternrepresentation_1->prod_sel == sel_Nilpatternrepresentation) && ( kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.rewriteclause_1->prod_sel == sel_RewriteClause)) { #line 7124 "../gen.k" patternrepresentation bindings = kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.patternrepresentation_2; #line 7124 "../gen.k" term t = kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.rewriteclause_1->u.RewriteClause.term_1; { (*kc_printer)(" {\ \n", kc_current_view); } unparse_patternrepresentation(bindings, kc_printer, view_rw_bindings); unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); { (*kc_printer)(" ", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(" kc_result = ", kc_current_view); } unparse_term(t, kc_printer, kc_current_view); { (*kc_printer)(";\ \n return (kc_result == kc_p) ? kc_p : rewrite_", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)("( kc_result, kc_current_view );\ \n }\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_Consrewriterulesinfo) && ( kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->prod_sel == sel_Rewriteruleinfo) && ( kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.patternrepresentation_1->prod_sel == sel_Conspatternrepresentation) && ( kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.rewriteclause_1->prod_sel == sel_RewriteClause)) { #line 7136 "../gen.k" patternrepresentation r_p = kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.patternrepresentation_1->u.Conspatternrepresentation.patternrepresentation_1; #line 7136 "../gen.k" patternrepresentation bindings = kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.patternrepresentation_2; #line 7136 "../gen.k" term t = kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1->u.Rewriteruleinfo.rewriteclause_1->u.RewriteClause.term_1; #line 7136 "../gen.k" rewriterulesinfo r_rri = kc_p->u.Consrewriterulesinfo.rewriterulesinfo_1; { (*kc_printer)(" if ((", kc_current_view); } unparse_patternrepresentation(r_p, kc_printer, view_rw_predicates); { (*kc_printer)(")) {\ \n", kc_current_view); } unparse_patternrepresentation(bindings, kc_printer, view_rw_bindings); unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); { (*kc_printer)(" ", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)(" kc_result = ", kc_current_view); } unparse_term(t, kc_printer, kc_current_view); { (*kc_printer)(";\ \n return (kc_result == kc_p) ? kc_p : rewrite_", kc_current_view); } unparse_ID(gl_phylum, kc_printer, kc_current_view); { (*kc_printer)("( kc_result, kc_current_view );\ \n } else\ \n", kc_current_view); } unparse_rewriterulesinfo(r_rri, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consrewriterulesinfo: unparse_rewriteruleinfo( kc_p->u.Consrewriterulesinfo.rewriteruleinfo_1, kc_printer, kc_current_view ); unparse_rewriterulesinfo( kc_p->u.Consrewriterulesinfo.rewriterulesinfo_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_rewriteruleinfo #ifdef KC_USE_PROTOTYPES (rewriteruleinfo kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) rewriteruleinfo kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_rewriteruleinfo(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Rewriteruleinfo: unparse_patternrepresentation( kc_p->u.Rewriteruleinfo.patternrepresentation_1, kc_printer, kc_current_view ); unparse_patternrepresentation( kc_p->u.Rewriteruleinfo.patternrepresentation_2, kc_printer, kc_current_view ); unparse_rewriteclause( kc_p->u.Rewriteruleinfo.rewriteclause_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_withcasesinfo #ifdef KC_USE_PROTOTYPES (withcasesinfo kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) withcasesinfo kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_withcasesinfo(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_withcases_and_default: { if (( kc_p->prod_sel == sel_Nilwithcasesinfo)) { #line 7152 "../gen.k" if (cf_topinforeachcontext()) #line 20717 "unpk.c" { { (*kc_printer)("{/*EMPTY*/ /*skip: no matching pattern in foreach patterns*/}\ \n", kc_current_view); } } #line 7155 "../gen.k" else if ( (strcmp( gl_return_type, "" ) == 0) || ((strcmp( gl_star_string, "") == 0) && (! f_isphylum( gl_return_ID )) && (! f_is_known_ptr_type( gl_return_ID )) ) ) #line 20727 "unpk.c" { { (*kc_printer)("kc_no_default_in_with( \"", kc_current_view); } unparse_charptr(gl_function, kc_printer, kc_current_view); { (*kc_printer)("\", __LINE__, __FILE__ );\ \n", kc_current_view); } } #line 7161 "../gen.k" else #line 20736 "unpk.c" { { (*kc_printer)("{ kc_no_default_in_with( \"", kc_current_view); } unparse_charptr(gl_function, kc_printer, kc_current_view); { (*kc_printer)("\", __LINE__, __FILE__ );\ \n return (", kc_current_view); } unparse_charptr(gl_return_type, kc_printer, kc_current_view); unparse_charptr(gl_star_string, kc_printer, kc_current_view); { (*kc_printer)(")0; }\ \n", kc_current_view); } } } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { if (( kc_p->prod_sel == sel_Conswithcasesinfo) && ( kc_p->u.Conswithcasesinfo.withcaseinfo_1->prod_sel == sel_Withcaseinfo) && ( kc_p->u.Conswithcasesinfo.withcaseinfo_1->u.Withcaseinfo.patternrepresentation_1->prod_sel == sel_Conspatternrepresentation) && ( kc_p->u.Conswithcasesinfo.withcaseinfo_1->u.Withcaseinfo.patternrepresentation_1->u.Conspatternrepresentation.elem_patternrepresentation_1->prod_sel == sel_PRDefault)) { #line 7170 "../gen.k" patternrepresentation bindings = kc_p->u.Conswithcasesinfo.withcaseinfo_1->u.Withcaseinfo.patternrepresentation_2; #line 7170 "../gen.k" Ctext ct = kc_p->u.Conswithcasesinfo.withcaseinfo_1->u.Withcaseinfo.Ctext_1; { (*kc_printer)("{\ \n", kc_current_view); } unparse_patternrepresentation(bindings, kc_printer, view_wc_bindings); { (*kc_printer)("#line ", kc_current_view); } unparse_int(ct->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(ct->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n", kc_current_view); } unparse_Ctext(ct, kc_printer, view_gen_initializephyla_c); unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); { (*kc_printer)("}\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_Conswithcasesinfo) && ( kc_p->u.Conswithcasesinfo.withcaseinfo_1->prod_sel == sel_Withcaseinfo) && ( kc_p->u.Conswithcasesinfo.withcaseinfo_1->u.Withcaseinfo.patternrepresentation_1->prod_sel == sel_Nilpatternrepresentation)) { #line 7167 "../gen.k" patternrepresentation bindings = kc_p->u.Conswithcasesinfo.withcaseinfo_1->u.Withcaseinfo.patternrepresentation_2; #line 7167 "../gen.k" Ctext ct = kc_p->u.Conswithcasesinfo.withcaseinfo_1->u.Withcaseinfo.Ctext_1; { (*kc_printer)("{\ \n", kc_current_view); } unparse_patternrepresentation(bindings, kc_printer, view_wc_bindings); { (*kc_printer)("#line ", kc_current_view); } unparse_int(ct->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(ct->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n", kc_current_view); } unparse_Ctext(ct, kc_printer, view_gen_initializephyla_c); unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); { (*kc_printer)("}\ \n", kc_current_view); } } else if (( kc_p->prod_sel == sel_Conswithcasesinfo) && ( kc_p->u.Conswithcasesinfo.withcaseinfo_1->prod_sel == sel_Withcaseinfo)) { #line 7182 "../gen.k" patternrepresentation p = kc_p->u.Conswithcasesinfo.withcaseinfo_1->u.Withcaseinfo.patternrepresentation_1; #line 7182 "../gen.k" patternrepresentation bindings = kc_p->u.Conswithcasesinfo.withcaseinfo_1->u.Withcaseinfo.patternrepresentation_2; #line 7182 "../gen.k" Ctext ct = kc_p->u.Conswithcasesinfo.withcaseinfo_1->u.Withcaseinfo.Ctext_1; #line 7182 "../gen.k" withcasesinfo r_rri = kc_p->u.Conswithcasesinfo.withcasesinfo_1; { (*kc_printer)(" if ((", kc_current_view); } unparse_patternrepresentation(p, kc_printer, view_wc_predicates); { (*kc_printer)(")) {\ \n", kc_current_view); } unparse_patternrepresentation(bindings, kc_printer, view_wc_bindings); { (*kc_printer)("#line ", kc_current_view); } unparse_int(ct->line, kc_printer, kc_current_view); { (*kc_printer)(" \"", kc_current_view); } unparse_casestring(ct->file, kc_printer, view_filename); { (*kc_printer)("\"\ \n", kc_current_view); } #line 7189 "../gen.k" cf_pushoperator( f_operatorofpatternrepresentation( p ) ); #line 20814 "unpk.c" unparse_Ctext(ct, kc_printer, view_gen_initializephyla_c); #line 7191 "../gen.k" cf_popoperator(); #line 20818 "unpk.c" unparse_charptr(g_emptystring, kc_printer, view_printer_outputfileline); { (*kc_printer)(" } else\ \n", kc_current_view); } unparse_withcasesinfo(r_rri, kc_printer, kc_current_view); } else switch((int)kc_p->prod_sel) { case (int)sel_Conswithcasesinfo: unparse_withcaseinfo( kc_p->u.Conswithcasesinfo.withcaseinfo_1, kc_printer, kc_current_view ); unparse_withcasesinfo( kc_p->u.Conswithcasesinfo.withcasesinfo_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_withcaseinfo #ifdef KC_USE_PROTOTYPES (withcaseinfo kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) withcaseinfo kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_withcaseinfo(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Withcaseinfo: unparse_patternrepresentation( kc_p->u.Withcaseinfo.patternrepresentation_1, kc_printer, kc_current_view ); unparse_patternrepresentation( kc_p->u.Withcaseinfo.patternrepresentation_2, kc_printer, kc_current_view ); unparse_Ctext( kc_p->u.Withcaseinfo.Ctext_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_rewriteviewsinfo #ifdef KC_USE_PROTOTYPES (rewriteviewsinfo kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) rewriteviewsinfo kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_rewriteviewsinfo(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_rewritedefs_c: { if (( kc_p->prod_sel == sel_Nilrewriteviewsinfo)) { #line 6952 "../gen.k" /*EMPTY*/ #line 20873 "unpk.c" } else if (( kc_p->prod_sel == sel_Consrewriteviewsinfo)) { #line 6960 "../gen.k" rewriteviewinfo a_rvi = kc_p->u.Consrewriteviewsinfo.rewriteviewinfo_1; #line 6960 "../gen.k" rewriteviewsinfo r_rvi = kc_p->u.Consrewriteviewsinfo.rewriteviewsinfo_1; unparse_rewriteviewsinfo(r_rvi, kc_printer, kc_current_view); unparse_rewriteviewinfo(a_rvi, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consrewriteviewsinfo: unparse_rewriteviewinfo( kc_p->u.Consrewriteviewsinfo.rewriteviewinfo_1, kc_printer, kc_current_view ); unparse_rewriteviewsinfo( kc_p->u.Consrewriteviewsinfo.rewriteviewsinfo_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_rewriteviewinfo #ifdef KC_USE_PROTOTYPES (rewriteviewinfo kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) rewriteviewinfo kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_rewriteviewinfo(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_rewritedefs_other_c: { if (( kc_p->prod_sel == sel_Rewriteviewinfo) && ( kc_p->u.Rewriteviewinfo.rewriterulesinfo_1->prod_sel == sel_Nilrewriterulesinfo)) { #line 6989 "../gen.k" /*EMPTY*/ #line 20914 "unpk.c" } else if (( kc_p->prod_sel == sel_Rewriteviewinfo)) { #line 6990 "../gen.k" ID v = kc_p->u.Rewriteviewinfo.ID_1; { (*kc_printer)(" case (int)", kc_current_view); } unparse_ID(v, kc_printer, kc_current_view); { (*kc_printer)(": {\ \n", kc_current_view); } #line 6993 "../gen.k" gl_view = v; #line 20925 "unpk.c" unparse_phylumdeclaration(gl_phydecl, kc_printer, kc_current_view); #line 6995 "../gen.k" gl_view = 0; #line 20929 "unpk.c" { (*kc_printer)(" }\ \n", kc_current_view); } #line 6998 "../gen.k" gl_rewrite_goto_used = True; #line 20934 "unpk.c" } else goto kc_unparsing_default; break; } case (int)view_gen_rewritedefs_default_c: { if (( kc_p->prod_sel == sel_Rewriteviewinfo)) { #line 6973 "../gen.k" ID v = kc_p->u.Rewriteviewinfo.ID_1; { (*kc_printer)(" default:\ \n", kc_current_view); } #line 6976 "../gen.k" if (gl_rewrite_goto_used) #line 20947 "unpk.c" { { (*kc_printer)(" kc_rewrite_default:\ \n", kc_current_view); } } { (*kc_printer)(" case (int)", kc_current_view); } unparse_ID(v, kc_printer, kc_current_view); { (*kc_printer)(": {\ \n", kc_current_view); } #line 6982 "../gen.k" gl_view = v; #line 20958 "unpk.c" unparse_phylumdeclaration(gl_phydecl, kc_printer, kc_current_view); #line 6984 "../gen.k" gl_view = 0; #line 20962 "unpk.c" { (*kc_printer)(" }\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_rewritedefs_c: { if (( kc_p->prod_sel == sel_Rewriteviewinfo)) { #line 6964 "../gen.k" ID v = kc_p->u.Rewriteviewinfo.ID_1; #line 6964 "../gen.k" rewriterulesinfo rri = kc_p->u.Rewriteviewinfo.rewriterulesinfo_1; #line 6965 "../gen.k" gl_rewrite_rewriteinfo = rri; #line 20977 "unpk.c" #line 6966 "../gen.k" if (eq_ID( v, Id( Str( mkcasestring( "base_rview" ))))) #line 20980 "unpk.c" { unparse_rewriteviewinfo(kc_p, kc_printer, view_gen_rewritedefs_default_c); } #line 6968 "../gen.k" else #line 20986 "unpk.c" { unparse_rewriteviewinfo(kc_p, kc_printer, view_gen_rewritedefs_other_c); } #line 6971 "../gen.k" gl_rewrite_rewriteinfo = 0; #line 20992 "unpk.c" } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Rewriteviewinfo: unparse_ID( kc_p->u.Rewriteviewinfo.ID_1, kc_printer, kc_current_view ); unparse_rewriterulesinfo( kc_p->u.Rewriteviewinfo.rewriterulesinfo_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_unparseviewsinfo #ifdef KC_USE_PROTOTYPES (unparseviewsinfo kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) unparseviewsinfo kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unparseviewsinfo(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_unparsedefs_c: { if (( kc_p->prod_sel == sel_Nilunparseviewsinfo)) { #line 7946 "../gen.k" /*EMPTY*/ #line 21025 "unpk.c" } else if (( kc_p->prod_sel == sel_Consunparseviewsinfo)) { #line 7954 "../gen.k" unparseviewinfo a_uvi = kc_p->u.Consunparseviewsinfo.unparseviewinfo_1; #line 7954 "../gen.k" unparseviewsinfo r_uvi = kc_p->u.Consunparseviewsinfo.unparseviewsinfo_1; unparse_unparseviewsinfo(r_uvi, kc_printer, kc_current_view); unparse_unparseviewinfo(a_uvi, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consunparseviewsinfo: unparse_unparseviewinfo( kc_p->u.Consunparseviewsinfo.unparseviewinfo_1, kc_printer, kc_current_view ); unparse_unparseviewsinfo( kc_p->u.Consunparseviewsinfo.unparseviewsinfo_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_unparseviewinfo #ifdef KC_USE_PROTOTYPES (unparseviewinfo kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) unparseviewinfo kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unparseviewinfo(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_unparsedefs_other_c: { if (( kc_p->prod_sel == sel_Unparseviewinfo) && ( kc_p->u.Unparseviewinfo.unparsedeclsinfo_1->prod_sel == sel_Nilunparsedeclsinfo)) { #line 7980 "../gen.k" /*EMPTY*/ #line 21066 "unpk.c" } else if (( kc_p->prod_sel == sel_Unparseviewinfo)) { #line 7981 "../gen.k" ID v = kc_p->u.Unparseviewinfo.ID_1; #line 7981 "../gen.k" unparsedeclsinfo udi = kc_p->u.Unparseviewinfo.unparsedeclsinfo_1; { (*kc_printer)(" case (int)", kc_current_view); } unparse_ID(v, kc_printer, kc_current_view); { (*kc_printer)(": {\ \n", kc_current_view); } unparse_unparsedeclsinfo(udi, kc_printer, kc_current_view); { (*kc_printer)(" break;\ \n }\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_unparsedefs_default_c: { if (( kc_p->prod_sel == sel_Unparseviewinfo)) { #line 7965 "../gen.k" ID v = kc_p->u.Unparseviewinfo.ID_1; #line 7965 "../gen.k" unparsedeclsinfo udi = kc_p->u.Unparseviewinfo.unparsedeclsinfo_1; { (*kc_printer)(" default:\ \n", kc_current_view); } #line 7968 "../gen.k" if (gl_unparse_goto_used) #line 21095 "unpk.c" { { (*kc_printer)(" kc_unparsing_default:\ \n", kc_current_view); } } { (*kc_printer)(" case (int)", kc_current_view); } unparse_ID(v, kc_printer, kc_current_view); { (*kc_printer)(": {\ \n", kc_current_view); } unparse_unparsedeclsinfo(udi, kc_printer, kc_current_view); { (*kc_printer)(" break;\ \n }\ \n", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_unparsedefs_c: { if (( kc_p->prod_sel == sel_Unparseviewinfo)) { #line 7958 "../gen.k" ID v = kc_p->u.Unparseviewinfo.ID_1; #line 7959 "../gen.k" if (eq_ID( v, Id( Str( mkcasestring( "base_uview" ))))) #line 21118 "unpk.c" { unparse_unparseviewinfo(kc_p, kc_printer, view_gen_unparsedefs_default_c); } #line 7961 "../gen.k" else if (! eq_ID( v, Id( Str( mkcasestring( "base_view" ))))) #line 21124 "unpk.c" { unparse_unparseviewinfo(kc_p, kc_printer, view_gen_unparsedefs_other_c); } } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Unparseviewinfo: unparse_ID( kc_p->u.Unparseviewinfo.ID_1, kc_printer, kc_current_view ); unparse_unparsedeclsinfo( kc_p->u.Unparseviewinfo.unparsedeclsinfo_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_unparsedeclsinfo #ifdef KC_USE_PROTOTYPES (unparsedeclsinfo kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) unparsedeclsinfo kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unparsedeclsinfo(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_unparsedefs_other_c: { if (( kc_p->prod_sel == sel_Nilunparsedeclsinfo)) { { (*kc_printer)(" goto kc_unparsing_default;\ \n", kc_current_view); } #line 7992 "../gen.k" gl_unparse_goto_used = True; #line 21162 "unpk.c" } else if (( kc_p->prod_sel == sel_Consunparsedeclsinfo) && ( kc_p->u.Consunparsedeclsinfo.unparsedeclinfo_1->prod_sel == sel_Unparsedeclinfo) && ( kc_p->u.Consunparsedeclsinfo.unparsedeclinfo_1->u.Unparsedeclinfo.patternrepresentation_1->prod_sel == sel_Nilpatternrepresentation)) { #line 8044 "../gen.k" patternrepresentation bindings = kc_p->u.Consunparsedeclsinfo.unparsedeclinfo_1->u.Unparsedeclinfo.patternrepresentation_2; #line 8044 "../gen.k" unparseclause uc = kc_p->u.Consunparsedeclsinfo.unparsedeclinfo_1->u.Unparsedeclinfo.unparseclause_1; unparse_patternrepresentation(bindings, kc_printer, view_unp_bindings); unparse_unparseclause(uc, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Consunparsedeclsinfo) && ( kc_p->u.Consunparsedeclsinfo.unparsedeclinfo_1->prod_sel == sel_Unparsedeclinfo)) { #line 8049 "../gen.k" patternrepresentation p = kc_p->u.Consunparsedeclsinfo.unparsedeclinfo_1->u.Unparsedeclinfo.patternrepresentation_1; #line 8049 "../gen.k" patternrepresentation bindings = kc_p->u.Consunparsedeclsinfo.unparsedeclinfo_1->u.Unparsedeclinfo.patternrepresentation_2; #line 8049 "../gen.k" unparseclause uc = kc_p->u.Consunparsedeclsinfo.unparsedeclinfo_1->u.Unparsedeclinfo.unparseclause_1; #line 8049 "../gen.k" unparsedeclsinfo r_rri = kc_p->u.Consunparsedeclsinfo.unparsedeclsinfo_1; { (*kc_printer)(" if ((", kc_current_view); } unparse_patternrepresentation(p, kc_printer, view_unp_predicates); { (*kc_printer)(")) {\ \n", kc_current_view); } unparse_patternrepresentation(bindings, kc_printer, view_unp_bindings); #line 8054 "../gen.k" cf_pushoperator( f_operatorofpatternrepresentation( p ) ); #line 21188 "unpk.c" unparse_unparseclause(uc, kc_printer, kc_current_view); #line 8057 "../gen.k" cf_popoperator(); #line 21192 "unpk.c" { (*kc_printer)(" } else\ \n", kc_current_view); } unparse_unparsedeclsinfo(r_rri, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_unparsedefs_default_c: { if (( kc_p->prod_sel == sel_Nilunparsedeclsinfo)) { #line 7995 "../gen.k" phylumdeclaration phydecl = f_lookupdecl( gl_phylum ); if ( phydecl == 0 ) #line 21205 "unpk.c" { #line 7996 "../gen.k" v_report(NonFatal( FileLine( gl_phylum->file, gl_phylum->line ), Problem1S1ID( "internal error: could not find declaration of phylum:", gl_phylum ))); #line 21211 "unpk.c" } #line 7998 "../gen.k" else #line 21215 "unpk.c" { unparse_phylumdeclaration(phydecl, kc_printer, kc_current_view); } } else if (( kc_p->prod_sel == sel_Consunparsedeclsinfo) && ( kc_p->u.Consunparsedeclsinfo.unparsedeclinfo_1->prod_sel == sel_Unparsedeclinfo) && ( kc_p->u.Consunparsedeclsinfo.unparsedeclinfo_1->u.Unparsedeclinfo.patternrepresentation_1->prod_sel == sel_Nilpatternrepresentation)) { #line 8044 "../gen.k" patternrepresentation bindings = kc_p->u.Consunparsedeclsinfo.unparsedeclinfo_1->u.Unparsedeclinfo.patternrepresentation_2; #line 8044 "../gen.k" unparseclause uc = kc_p->u.Consunparsedeclsinfo.unparsedeclinfo_1->u.Unparsedeclinfo.unparseclause_1; unparse_patternrepresentation(bindings, kc_printer, view_unp_bindings); unparse_unparseclause(uc, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Consunparsedeclsinfo) && ( kc_p->u.Consunparsedeclsinfo.unparsedeclinfo_1->prod_sel == sel_Unparsedeclinfo)) { #line 8049 "../gen.k" patternrepresentation p = kc_p->u.Consunparsedeclsinfo.unparsedeclinfo_1->u.Unparsedeclinfo.patternrepresentation_1; #line 8049 "../gen.k" patternrepresentation bindings = kc_p->u.Consunparsedeclsinfo.unparsedeclinfo_1->u.Unparsedeclinfo.patternrepresentation_2; #line 8049 "../gen.k" unparseclause uc = kc_p->u.Consunparsedeclsinfo.unparsedeclinfo_1->u.Unparsedeclinfo.unparseclause_1; #line 8049 "../gen.k" unparsedeclsinfo r_rri = kc_p->u.Consunparsedeclsinfo.unparsedeclsinfo_1; { (*kc_printer)(" if ((", kc_current_view); } unparse_patternrepresentation(p, kc_printer, view_unp_predicates); { (*kc_printer)(")) {\ \n", kc_current_view); } unparse_patternrepresentation(bindings, kc_printer, view_unp_bindings); #line 8054 "../gen.k" cf_pushoperator( f_operatorofpatternrepresentation( p ) ); #line 21244 "unpk.c" unparse_unparseclause(uc, kc_printer, kc_current_view); #line 8057 "../gen.k" cf_popoperator(); #line 21248 "unpk.c" { (*kc_printer)(" } else\ \n", kc_current_view); } unparse_unparsedeclsinfo(r_rri, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consunparsedeclsinfo: unparse_unparsedeclinfo( kc_p->u.Consunparsedeclsinfo.unparsedeclinfo_1, kc_printer, kc_current_view ); unparse_unparsedeclsinfo( kc_p->u.Consunparsedeclsinfo.unparsedeclsinfo_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_unparsedeclinfo #ifdef KC_USE_PROTOTYPES (unparsedeclinfo kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) unparsedeclinfo kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_unparsedeclinfo(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Unparsedeclinfo: unparse_patternrepresentation( kc_p->u.Unparsedeclinfo.patternrepresentation_1, kc_printer, kc_current_view ); unparse_patternrepresentation( kc_p->u.Unparsedeclinfo.patternrepresentation_2, kc_printer, kc_current_view ); unparse_unparseclause( kc_p->u.Unparsedeclinfo.unparseclause_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ac_declaration #ifdef KC_USE_PROTOTYPES (ac_declaration kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_declaration kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_declaration(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { if (( kc_p->prod_sel == sel_AcDeclaration)) { #line 7529 "../gen.k" ac_declaration_specifiers ds = kc_p->u.AcDeclaration.ac_declaration_specifiers_1; #line 7529 "../gen.k" ac_init_declarator_list idlo = kc_p->u.AcDeclaration.ac_init_declarator_list_1; unparse_ac_declaration_specifiers(ds, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ac_init_declarator_list(idlo, kc_printer, kc_current_view); { (*kc_printer)(";\ \n", kc_current_view); } } else switch((int)kc_p->prod_sel) { case (int)sel_AcDeclaration: unparse_ac_declaration_specifiers( kc_p->u.AcDeclaration.ac_declaration_specifiers_1, kc_printer, kc_current_view ); unparse_ac_init_declarator_list( kc_p->u.AcDeclaration.ac_init_declarator_list_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ac_declaration_list #ifdef KC_USE_PROTOTYPES (ac_declaration_list kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_declaration_list kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_declaration_list(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { if (( kc_p->prod_sel == sel_Consac_declaration_list)) { #line 7534 "../gen.k" ac_declaration h = kc_p->u.Consac_declaration_list.ac_declaration_1; #line 7534 "../gen.k" ac_declaration_list t = kc_p->u.Consac_declaration_list.ac_declaration_list_1; unparse_ac_declaration_list(t, kc_printer, kc_current_view); unparse_ac_declaration(h, kc_printer, kc_current_view); } else switch((int)kc_p->prod_sel) { case (int)sel_Consac_declaration_list: unparse_ac_declaration( kc_p->u.Consac_declaration_list.ac_declaration_1, kc_printer, kc_current_view ); unparse_ac_declaration_list( kc_p->u.Consac_declaration_list.ac_declaration_list_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ac_declaration_specifiers #ifdef KC_USE_PROTOTYPES (ac_declaration_specifiers kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_declaration_specifiers kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_declaration_specifiers(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { if (( kc_p->prod_sel == sel_Consac_declaration_specifiers) && ( kc_p->u.Consac_declaration_specifiers.ac_declaration_specifiers_1->prod_sel == sel_Nilac_declaration_specifiers)) { #line 7536 "../gen.k" ac_declaration_specifier h = kc_p->u.Consac_declaration_specifiers.ac_declaration_specifier_1; unparse_ac_declaration_specifier(h, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Consac_declaration_specifiers)) { #line 7537 "../gen.k" ac_declaration_specifier h = kc_p->u.Consac_declaration_specifiers.ac_declaration_specifier_1; #line 7537 "../gen.k" ac_declaration_specifiers t = kc_p->u.Consac_declaration_specifiers.ac_declaration_specifiers_1; unparse_ac_declaration_specifiers(t, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ac_declaration_specifier(h, kc_printer, kc_current_view); } else switch((int)kc_p->prod_sel) { case (int)sel_Consac_declaration_specifiers: unparse_ac_declaration_specifier( kc_p->u.Consac_declaration_specifiers.ac_declaration_specifier_1, kc_printer, kc_current_view ); unparse_ac_declaration_specifiers( kc_p->u.Consac_declaration_specifiers.ac_declaration_specifiers_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ac_declaration_specifier #ifdef KC_USE_PROTOTYPES (ac_declaration_specifier kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_declaration_specifier kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_declaration_specifier(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_AcDeclSpecStorageSpec: unparse_ac_storage_class_specifier( kc_p->u.AcDeclSpecStorageSpec.ac_storage_class_specifier_1, kc_printer, kc_current_view ); break; case (int)sel_AcDeclSpecTypeSpec: unparse_ac_type_specifier( kc_p->u.AcDeclSpecTypeSpec.ac_type_specifier_1, kc_printer, kc_current_view ); break; case (int)sel_AcDeclSpecTypeQual: unparse_ac_type_qualifier( kc_p->u.AcDeclSpecTypeQual.ac_type_qualifier_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ac_storage_class_specifier #ifdef KC_USE_PROTOTYPES (ac_storage_class_specifier kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_storage_class_specifier kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_storage_class_specifier(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { if (( kc_p->prod_sel == sel_AcAuto)) { { (*kc_printer)("auto", kc_current_view); } } else if (( kc_p->prod_sel == sel_AcRegister)) { { (*kc_printer)("register", kc_current_view); } } else if (( kc_p->prod_sel == sel_AcStatic)) { { (*kc_printer)("static", kc_current_view); } } else if (( kc_p->prod_sel == sel_AcExtern)) { { (*kc_printer)("extern", kc_current_view); } } else if (( kc_p->prod_sel == sel_AcTypedef)) { { (*kc_printer)("typedef", kc_current_view); } } else break; } } } /*ARGSUSED*/ void unparse_ac_type_specifier #ifdef KC_USE_PROTOTYPES (ac_type_specifier kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_type_specifier kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_type_specifier(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { if (( kc_p->prod_sel == sel_AcTypeSpec)) { #line 7544 "../gen.k" ID i = kc_p->u.AcTypeSpec.ID_1; unparse_ID(i, kc_printer, kc_current_view); } else switch((int)kc_p->prod_sel) { case (int)sel_AcTypeSpec: unparse_ID( kc_p->u.AcTypeSpec.ID_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ac_type_qualifier #ifdef KC_USE_PROTOTYPES (ac_type_qualifier kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_type_qualifier kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_type_qualifier(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { if (( kc_p->prod_sel == sel_AcConst)) { { (*kc_printer)("const", kc_current_view); } } else if (( kc_p->prod_sel == sel_AcVolatile)) { { (*kc_printer)("volatile", kc_current_view); } } else break; } } } /*ARGSUSED*/ void unparse_ac_init_declarator_list #ifdef KC_USE_PROTOTYPES (ac_init_declarator_list kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_init_declarator_list kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_init_declarator_list(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { if (( kc_p->prod_sel == sel_Consac_init_declarator_list) && ( kc_p->u.Consac_init_declarator_list.ac_init_declarator_list_1->prod_sel == sel_Nilac_init_declarator_list)) { #line 7550 "../gen.k" ac_init_declarator h = kc_p->u.Consac_init_declarator_list.ac_init_declarator_1; unparse_ac_init_declarator(h, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Consac_init_declarator_list)) { #line 7549 "../gen.k" ac_init_declarator h = kc_p->u.Consac_init_declarator_list.ac_init_declarator_1; #line 7549 "../gen.k" ac_init_declarator_list t = kc_p->u.Consac_init_declarator_list.ac_init_declarator_list_1; unparse_ac_init_declarator_list(t, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ac_init_declarator(h, kc_printer, kc_current_view); } else switch((int)kc_p->prod_sel) { case (int)sel_Consac_init_declarator_list: unparse_ac_init_declarator( kc_p->u.Consac_init_declarator_list.ac_init_declarator_1, kc_printer, kc_current_view ); unparse_ac_init_declarator_list( kc_p->u.Consac_init_declarator_list.ac_init_declarator_list_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ac_init_declarator #ifdef KC_USE_PROTOTYPES (ac_init_declarator kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_init_declarator kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_init_declarator(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { if (( kc_p->prod_sel == sel_AcInitDecl)) { #line 7552 "../gen.k" ac_declarator d = kc_p->u.AcInitDecl.ac_declarator_1; unparse_ac_declarator(d, kc_printer, kc_current_view); } else switch((int)kc_p->prod_sel) { case (int)sel_AcInitDecl: unparse_ac_declarator( kc_p->u.AcInitDecl.ac_declarator_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ac_declarator #ifdef KC_USE_PROTOTYPES (ac_declarator kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_declarator kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_declarator(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_fnkdecls: { if (( kc_p->prod_sel == sel_AcDeclarator)) { #line 7624 "../gen.k" ac_pointer_option po = kc_p->u.AcDeclarator.ac_pointer_option_1; #line 7624 "../gen.k" ac_direct_declarator dd = kc_p->u.AcDeclarator.ac_direct_declarator_1; unparse_ac_pointer_option(po, kc_printer, kc_current_view); unparse_ac_direct_declarator(dd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_fnkargs: { if (( kc_p->prod_sel == sel_AcDeclarator)) { #line 7607 "../gen.k" ac_direct_declarator dd = kc_p->u.AcDeclarator.ac_direct_declarator_1; unparse_ac_direct_declarator(dd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_fn_pointer_name: { if (( kc_p->prod_sel == sel_AcDeclarator)) { #line 7599 "../gen.k" ac_pointer_option po = kc_p->u.AcDeclarator.ac_pointer_option_1; #line 7599 "../gen.k" ac_direct_declarator dd = kc_p->u.AcDeclarator.ac_direct_declarator_1; unparse_ac_pointer_option(po, kc_printer, kc_current_view); unparse_ac_direct_declarator(dd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { if (( kc_p->prod_sel == sel_AcDeclarator)) { #line 7554 "../gen.k" ac_pointer_option po = kc_p->u.AcDeclarator.ac_pointer_option_1; #line 7554 "../gen.k" ac_direct_declarator dd = kc_p->u.AcDeclarator.ac_direct_declarator_1; unparse_ac_pointer_option(po, kc_printer, kc_current_view); unparse_ac_direct_declarator(dd, kc_printer, kc_current_view); } else switch((int)kc_p->prod_sel) { case (int)sel_AcDeclarator: unparse_ac_pointer_option( kc_p->u.AcDeclarator.ac_pointer_option_1, kc_printer, kc_current_view ); unparse_ac_direct_declarator( kc_p->u.AcDeclarator.ac_direct_declarator_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ac_direct_declarator #ifdef KC_USE_PROTOTYPES (ac_direct_declarator kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_direct_declarator kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_direct_declarator(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_fnkdecls: { if (( kc_p->prod_sel == sel_AcDirectDeclId)) { #line 7625 "../gen.k" ID i = kc_p->u.AcDirectDeclId.ID_1; unparse_ID(i, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_AcDirectDeclPack)) { #line 7626 "../gen.k" ac_declarator d = kc_p->u.AcDirectDeclPack.ac_declarator_1; { (*kc_printer)("(", kc_current_view); } unparse_ac_declarator(d, kc_printer, kc_current_view); { (*kc_printer)(")", kc_current_view); } } else if (( kc_p->prod_sel == sel_AcDirectDeclArray)) { #line 7627 "../gen.k" ac_direct_declarator dd = kc_p->u.AcDirectDeclArray.ac_direct_declarator_1; #line 7627 "../gen.k" ac_constant_expression_option ceo = kc_p->u.AcDirectDeclArray.ac_constant_expression_option_1; unparse_ac_direct_declarator(dd, kc_printer, kc_current_view); { (*kc_printer)("[", kc_current_view); } unparse_ac_constant_expression_option(ceo, kc_printer, kc_current_view); { (*kc_printer)("]", kc_current_view); } } else if (( kc_p->prod_sel == sel_AcDirectDeclProto)) { #line 7628 "../gen.k" ac_direct_declarator dd = kc_p->u.AcDirectDeclProto.ac_direct_declarator_1; unparse_ac_direct_declarator(dd, kc_printer, kc_current_view); { (*kc_printer)("()", kc_current_view); } } else if (( kc_p->prod_sel == sel_AcDirectDeclKandR)) { #line 7629 "../gen.k" ac_direct_declarator dd = kc_p->u.AcDirectDeclKandR.ac_direct_declarator_1; unparse_ac_direct_declarator(dd, kc_printer, kc_current_view); { (*kc_printer)("()", kc_current_view); } } else goto kc_unparsing_default; break; } case (int)view_gen_fnkargs: { if (( kc_p->prod_sel == sel_AcDirectDeclPack)) { #line 7608 "../gen.k" ac_declarator d = kc_p->u.AcDirectDeclPack.ac_declarator_1; unparse_ac_declarator(d, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_AcDirectDeclArray)) { #line 7609 "../gen.k" ac_direct_declarator dd = kc_p->u.AcDirectDeclArray.ac_direct_declarator_1; unparse_ac_direct_declarator(dd, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_AcDirectDeclProto)) { #line 7610 "../gen.k" ac_direct_declarator dd = kc_p->u.AcDirectDeclProto.ac_direct_declarator_1; unparse_ac_direct_declarator(dd, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_AcDirectDeclKandR)) { #line 7611 "../gen.k" ac_direct_declarator dd = kc_p->u.AcDirectDeclKandR.ac_direct_declarator_1; unparse_ac_direct_declarator(dd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_fn_pointer_name: { if (( kc_p->prod_sel == sel_AcDirectDeclProto)) { #line 7600 "../gen.k" ac_direct_declarator dd = kc_p->u.AcDirectDeclProto.ac_direct_declarator_1; unparse_ac_direct_declarator(dd, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_AcDirectDeclKandR)) { #line 7601 "../gen.k" ac_direct_declarator dd = kc_p->u.AcDirectDeclKandR.ac_direct_declarator_1; unparse_ac_direct_declarator(dd, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { if (( kc_p->prod_sel == sel_AcDirectDeclId)) { #line 7556 "../gen.k" ID i = kc_p->u.AcDirectDeclId.ID_1; unparse_ID(i, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_AcDirectDeclPack)) { #line 7557 "../gen.k" ac_declarator d = kc_p->u.AcDirectDeclPack.ac_declarator_1; { (*kc_printer)("(", kc_current_view); } unparse_ac_declarator(d, kc_printer, kc_current_view); { (*kc_printer)(")", kc_current_view); } } else if (( kc_p->prod_sel == sel_AcDirectDeclArray)) { #line 7558 "../gen.k" ac_direct_declarator dd = kc_p->u.AcDirectDeclArray.ac_direct_declarator_1; #line 7558 "../gen.k" ac_constant_expression_option ceo = kc_p->u.AcDirectDeclArray.ac_constant_expression_option_1; unparse_ac_direct_declarator(dd, kc_printer, kc_current_view); { (*kc_printer)("[", kc_current_view); } unparse_ac_constant_expression_option(ceo, kc_printer, kc_current_view); { (*kc_printer)("]", kc_current_view); } } else if (( kc_p->prod_sel == sel_AcDirectDeclProto)) { #line 7559 "../gen.k" ac_direct_declarator dd = kc_p->u.AcDirectDeclProto.ac_direct_declarator_1; #line 7559 "../gen.k" ac_parameter_type_list ptl = kc_p->u.AcDirectDeclProto.ac_parameter_type_list_1; unparse_ac_direct_declarator(dd, kc_printer, kc_current_view); { (*kc_printer)("(", kc_current_view); } unparse_ac_parameter_type_list(ptl, kc_printer, kc_current_view); { (*kc_printer)(")", kc_current_view); } } else if (( kc_p->prod_sel == sel_AcDirectDeclKandR)) { #line 7560 "../gen.k" ac_direct_declarator dd = kc_p->u.AcDirectDeclKandR.ac_direct_declarator_1; #line 7560 "../gen.k" ac_identifier_list il = kc_p->u.AcDirectDeclKandR.ac_identifier_list_1; unparse_ac_direct_declarator(dd, kc_printer, kc_current_view); { (*kc_printer)("(", kc_current_view); } unparse_ac_identifier_list(il, kc_printer, kc_current_view); { (*kc_printer)(")", kc_current_view); } } else switch((int)kc_p->prod_sel) { case (int)sel_AcDirectDeclId: unparse_ID( kc_p->u.AcDirectDeclId.ID_1, kc_printer, kc_current_view ); break; case (int)sel_AcDirectDeclPack: unparse_ac_declarator( kc_p->u.AcDirectDeclPack.ac_declarator_1, kc_printer, kc_current_view ); break; case (int)sel_AcDirectDeclArray: unparse_ac_direct_declarator( kc_p->u.AcDirectDeclArray.ac_direct_declarator_1, kc_printer, kc_current_view ); unparse_ac_constant_expression_option( kc_p->u.AcDirectDeclArray.ac_constant_expression_option_1, kc_printer, kc_current_view ); break; case (int)sel_AcDirectDeclProto: unparse_ac_direct_declarator( kc_p->u.AcDirectDeclProto.ac_direct_declarator_1, kc_printer, kc_current_view ); unparse_ac_parameter_type_list( kc_p->u.AcDirectDeclProto.ac_parameter_type_list_1, kc_printer, kc_current_view ); break; case (int)sel_AcDirectDeclKandR: unparse_ac_direct_declarator( kc_p->u.AcDirectDeclKandR.ac_direct_declarator_1, kc_printer, kc_current_view ); unparse_ac_identifier_list( kc_p->u.AcDirectDeclKandR.ac_identifier_list_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ac_pointer_option #ifdef KC_USE_PROTOTYPES (ac_pointer_option kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_pointer_option kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_pointer_option(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { if (( kc_p->prod_sel == sel_Nopointer)) { #line 7562 "../gen.k" /*EMPTY*/ #line 21806 "unpk.c" } else if (( kc_p->prod_sel == sel_Yespointer)) { #line 7563 "../gen.k" ac_pointer p = kc_p->u.Yespointer.ac_pointer_1; unparse_ac_pointer(p, kc_printer, kc_current_view); } else switch((int)kc_p->prod_sel) { case (int)sel_Yespointer: unparse_ac_pointer( kc_p->u.Yespointer.ac_pointer_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ac_pointer #ifdef KC_USE_PROTOTYPES (ac_pointer kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_pointer kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_pointer(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { if (( kc_p->prod_sel == sel_AcPointerNil) && ( kc_p->u.AcPointerNil.ac_type_qualifier_list_1->prod_sel == sel_Nilac_type_qualifier_list)) { { (*kc_printer)("*", kc_current_view); } } else if (( kc_p->prod_sel == sel_AcPointerNil)) { #line 7566 "../gen.k" ac_type_qualifier_list tql = kc_p->u.AcPointerNil.ac_type_qualifier_list_1; { (*kc_printer)("* ", kc_current_view); } unparse_ac_type_qualifier_list(tql, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } } else if (( kc_p->prod_sel == sel_AcPointerCons) && ( kc_p->u.AcPointerCons.ac_type_qualifier_list_1->prod_sel == sel_Nilac_type_qualifier_list)) { #line 7567 "../gen.k" ac_pointer p = kc_p->u.AcPointerCons.ac_pointer_1; { (*kc_printer)("*", kc_current_view); } unparse_ac_pointer(p, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_AcPointerCons)) { #line 7568 "../gen.k" ac_type_qualifier_list tql = kc_p->u.AcPointerCons.ac_type_qualifier_list_1; #line 7568 "../gen.k" ac_pointer p = kc_p->u.AcPointerCons.ac_pointer_1; { (*kc_printer)("* ", kc_current_view); } unparse_ac_type_qualifier_list(tql, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ac_pointer(p, kc_printer, kc_current_view); } else switch((int)kc_p->prod_sel) { case (int)sel_AcPointerNil: unparse_ac_type_qualifier_list( kc_p->u.AcPointerNil.ac_type_qualifier_list_1, kc_printer, kc_current_view ); break; case (int)sel_AcPointerCons: unparse_ac_type_qualifier_list( kc_p->u.AcPointerCons.ac_type_qualifier_list_1, kc_printer, kc_current_view ); unparse_ac_pointer( kc_p->u.AcPointerCons.ac_pointer_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ac_type_qualifier_list #ifdef KC_USE_PROTOTYPES (ac_type_qualifier_list kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_type_qualifier_list kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_type_qualifier_list(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { if (( kc_p->prod_sel == sel_Consac_type_qualifier_list) && ( kc_p->u.Consac_type_qualifier_list.ac_type_qualifier_list_1->prod_sel == sel_Nilac_type_qualifier_list)) { #line 7570 "../gen.k" ac_type_qualifier h = kc_p->u.Consac_type_qualifier_list.ac_type_qualifier_1; unparse_ac_type_qualifier(h, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Consac_type_qualifier_list)) { #line 7571 "../gen.k" ac_type_qualifier h = kc_p->u.Consac_type_qualifier_list.ac_type_qualifier_1; #line 7571 "../gen.k" ac_type_qualifier_list t = kc_p->u.Consac_type_qualifier_list.ac_type_qualifier_list_1; unparse_ac_type_qualifier_list(t, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ac_type_qualifier(h, kc_printer, kc_current_view); } else switch((int)kc_p->prod_sel) { case (int)sel_Consac_type_qualifier_list: unparse_ac_type_qualifier( kc_p->u.Consac_type_qualifier_list.ac_type_qualifier_1, kc_printer, kc_current_view ); unparse_ac_type_qualifier_list( kc_p->u.Consac_type_qualifier_list.ac_type_qualifier_list_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ac_parameter_type_list #ifdef KC_USE_PROTOTYPES (ac_parameter_type_list kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_parameter_type_list kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_parameter_type_list(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_fnkdecls: { if (( kc_p->prod_sel == sel_AcParList) && ( kc_p->u.AcParList.ac_parameter_list_1->prod_sel == sel_Nilac_parameter_list)) { } else if (( kc_p->prod_sel == sel_AcParList3Dot)) { #line 7619 "../gen.k" ac_parameter_list pl = kc_p->u.AcParList3Dot.ac_parameter_list_1; unparse_ac_parameter_list(pl, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_fnkargs: { if (( kc_p->prod_sel == sel_AcParList) && ( kc_p->u.AcParList.ac_parameter_list_1->prod_sel == sel_Nilac_parameter_list)) { } else if (( kc_p->prod_sel == sel_AcParList3Dot)) { #line 7604 "../gen.k" ac_parameter_list pl = kc_p->u.AcParList3Dot.ac_parameter_list_1; unparse_ac_parameter_list(pl, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { if (( kc_p->prod_sel == sel_AcParList) && ( kc_p->u.AcParList.ac_parameter_list_1->prod_sel == sel_Nilac_parameter_list)) { { (*kc_printer)("void", kc_current_view); } } else if (( kc_p->prod_sel == sel_AcParList)) { #line 7573 "../gen.k" ac_parameter_list pl = kc_p->u.AcParList.ac_parameter_list_1; unparse_ac_parameter_list(pl, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_AcParList3Dot)) { #line 7575 "../gen.k" ac_parameter_list pl = kc_p->u.AcParList3Dot.ac_parameter_list_1; unparse_ac_parameter_list(pl, kc_printer, kc_current_view); { (*kc_printer)(", ...", kc_current_view); } } else switch((int)kc_p->prod_sel) { case (int)sel_AcParList: unparse_ac_parameter_list( kc_p->u.AcParList.ac_parameter_list_1, kc_printer, kc_current_view ); break; case (int)sel_AcParList3Dot: unparse_ac_parameter_list( kc_p->u.AcParList3Dot.ac_parameter_list_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ac_parameter_list #ifdef KC_USE_PROTOTYPES (ac_parameter_list kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_parameter_list kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_parameter_list(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_fnkdecls: { if (( kc_p->prod_sel == sel_Consac_parameter_list) && ( kc_p->u.Consac_parameter_list.ac_parameter_list_1->prod_sel == sel_Nilac_parameter_list)) { #line 7620 "../gen.k" ac_parameter_declaration h = kc_p->u.Consac_parameter_list.ac_parameter_declaration_1; unparse_ac_parameter_declaration(h, kc_printer, kc_current_view); { (*kc_printer)(";", kc_current_view); } } else if (( kc_p->prod_sel == sel_Consac_parameter_list)) { #line 7621 "../gen.k" ac_parameter_declaration h = kc_p->u.Consac_parameter_list.ac_parameter_declaration_1; #line 7621 "../gen.k" ac_parameter_list t = kc_p->u.Consac_parameter_list.ac_parameter_list_1; unparse_ac_parameter_list(t, kc_printer, kc_current_view); { (*kc_printer)("\n", kc_current_view); } unparse_ac_parameter_declaration(h, kc_printer, kc_current_view); { (*kc_printer)(";", kc_current_view); } } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { if (( kc_p->prod_sel == sel_Consac_parameter_list) && ( kc_p->u.Consac_parameter_list.ac_parameter_list_1->prod_sel == sel_Nilac_parameter_list)) { #line 7577 "../gen.k" ac_parameter_declaration h = kc_p->u.Consac_parameter_list.ac_parameter_declaration_1; unparse_ac_parameter_declaration(h, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Consac_parameter_list)) { #line 7578 "../gen.k" ac_parameter_declaration h = kc_p->u.Consac_parameter_list.ac_parameter_declaration_1; #line 7578 "../gen.k" ac_parameter_list t = kc_p->u.Consac_parameter_list.ac_parameter_list_1; unparse_ac_parameter_list(t, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_ac_parameter_declaration(h, kc_printer, kc_current_view); } else switch((int)kc_p->prod_sel) { case (int)sel_Consac_parameter_list: unparse_ac_parameter_declaration( kc_p->u.Consac_parameter_list.ac_parameter_declaration_1, kc_printer, kc_current_view ); unparse_ac_parameter_list( kc_p->u.Consac_parameter_list.ac_parameter_list_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ac_parameter_declaration #ifdef KC_USE_PROTOTYPES (ac_parameter_declaration kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_parameter_declaration kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_parameter_declaration(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_fnkdecls: { if (( kc_p->prod_sel == sel_AcParDeclDecl)) { #line 7622 "../gen.k" ac_declaration_specifiers ds = kc_p->u.AcParDeclDecl.ac_declaration_specifiers_1; #line 7622 "../gen.k" ac_declarator d = kc_p->u.AcParDeclDecl.ac_declarator_1; unparse_ac_declaration_specifiers(ds, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ac_declarator(d, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_AcParDeclAbsdecl)) { #line 7623 "../gen.k" ac_declaration_specifiers ds = kc_p->u.AcParDeclAbsdecl.ac_declaration_specifiers_1; #line 7623 "../gen.k" ac_abstract_declarator ad = kc_p->u.AcParDeclAbsdecl.ac_abstract_declarator_1; unparse_ac_declaration_specifiers(ds, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ac_abstract_declarator(ad, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } case (int)view_gen_fnkargs: { if (( kc_p->prod_sel == sel_AcParDeclDecl)) { #line 7605 "../gen.k" ac_declarator d = kc_p->u.AcParDeclDecl.ac_declarator_1; unparse_ac_declarator(d, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_AcParDeclAbsdecl)) { #line 7606 "../gen.k" ac_abstract_declarator ad = kc_p->u.AcParDeclAbsdecl.ac_abstract_declarator_1; unparse_ac_abstract_declarator(ad, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { if (( kc_p->prod_sel == sel_AcParDeclDecl)) { #line 7580 "../gen.k" ac_declaration_specifiers ds = kc_p->u.AcParDeclDecl.ac_declaration_specifiers_1; #line 7580 "../gen.k" ac_declarator d = kc_p->u.AcParDeclDecl.ac_declarator_1; unparse_ac_declaration_specifiers(ds, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ac_declarator(d, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_AcParDeclAbsdecl)) { #line 7581 "../gen.k" ac_declaration_specifiers ds = kc_p->u.AcParDeclAbsdecl.ac_declaration_specifiers_1; #line 7581 "../gen.k" ac_abstract_declarator ad = kc_p->u.AcParDeclAbsdecl.ac_abstract_declarator_1; unparse_ac_declaration_specifiers(ds, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ac_abstract_declarator(ad, kc_printer, kc_current_view); } else switch((int)kc_p->prod_sel) { case (int)sel_AcParDeclDecl: unparse_ac_declaration_specifiers( kc_p->u.AcParDeclDecl.ac_declaration_specifiers_1, kc_printer, kc_current_view ); unparse_ac_declarator( kc_p->u.AcParDeclDecl.ac_declarator_1, kc_printer, kc_current_view ); break; case (int)sel_AcParDeclAbsdecl: unparse_ac_declaration_specifiers( kc_p->u.AcParDeclAbsdecl.ac_declaration_specifiers_1, kc_printer, kc_current_view ); unparse_ac_abstract_declarator( kc_p->u.AcParDeclAbsdecl.ac_abstract_declarator_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ac_identifier_list #ifdef KC_USE_PROTOTYPES (ac_identifier_list kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_identifier_list kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_identifier_list(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { if (( kc_p->prod_sel == sel_Consac_identifier_list) && ( kc_p->u.Consac_identifier_list.ac_identifier_list_1->prod_sel == sel_Nilac_identifier_list)) { #line 7583 "../gen.k" ID h = kc_p->u.Consac_identifier_list.ID_1; unparse_ID(h, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Consac_identifier_list)) { #line 7584 "../gen.k" ID h = kc_p->u.Consac_identifier_list.ID_1; #line 7584 "../gen.k" ac_identifier_list t = kc_p->u.Consac_identifier_list.ac_identifier_list_1; unparse_ac_identifier_list(t, kc_printer, kc_current_view); { (*kc_printer)(", ", kc_current_view); } unparse_ID(h, kc_printer, kc_current_view); } else switch((int)kc_p->prod_sel) { case (int)sel_Consac_identifier_list: unparse_ID( kc_p->u.Consac_identifier_list.ID_1, kc_printer, kc_current_view ); unparse_ac_identifier_list( kc_p->u.Consac_identifier_list.ac_identifier_list_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ac_abstract_declarator #ifdef KC_USE_PROTOTYPES (ac_abstract_declarator kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_abstract_declarator kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_abstract_declarator(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_fnkargs: { if (( kc_p->prod_sel == sel_AcAbsdeclPointer)) { { (*kc_printer)("kc_arg_missing", kc_current_view); } } else if (( kc_p->prod_sel == sel_AcAbsdeclPointer)) { #line 7630 "../gen.k" ac_pointer p = kc_p->u.AcAbsdeclPointer.ac_pointer_1; unparse_ac_pointer(p, kc_printer, kc_current_view); { (*kc_printer)(" kc_arg_missing", kc_current_view); } } else if (( kc_p->prod_sel == sel_AcAbsdeclDirdecl)) { #line 7613 "../gen.k" ac_direct_abstract_declarator dad = kc_p->u.AcAbsdeclDirdecl.ac_direct_abstract_declarator_1; unparse_ac_direct_abstract_declarator(dad, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_AcAbsdeclDirdecl)) { #line 7631 "../gen.k" ac_pointer_option p = kc_p->u.AcAbsdeclDirdecl.ac_pointer_option_1; #line 7631 "../gen.k" ac_direct_abstract_declarator dad = kc_p->u.AcAbsdeclDirdecl.ac_direct_abstract_declarator_1; unparse_ac_pointer_option(p, kc_printer, kc_current_view); unparse_ac_direct_abstract_declarator(dad, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { if (( kc_p->prod_sel == sel_AcAbsdeclPointer)) { #line 7586 "../gen.k" ac_pointer p = kc_p->u.AcAbsdeclPointer.ac_pointer_1; unparse_ac_pointer(p, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_AcAbsdeclDirdecl)) { #line 7587 "../gen.k" ac_pointer_option po = kc_p->u.AcAbsdeclDirdecl.ac_pointer_option_1; #line 7587 "../gen.k" ac_direct_abstract_declarator dad = kc_p->u.AcAbsdeclDirdecl.ac_direct_abstract_declarator_1; unparse_ac_pointer_option(po, kc_printer, kc_current_view); unparse_ac_direct_abstract_declarator(dad, kc_printer, kc_current_view); } else switch((int)kc_p->prod_sel) { case (int)sel_AcAbsdeclPointer: unparse_ac_pointer( kc_p->u.AcAbsdeclPointer.ac_pointer_1, kc_printer, kc_current_view ); break; case (int)sel_AcAbsdeclDirdecl: unparse_ac_pointer_option( kc_p->u.AcAbsdeclDirdecl.ac_pointer_option_1, kc_printer, kc_current_view ); unparse_ac_direct_abstract_declarator( kc_p->u.AcAbsdeclDirdecl.ac_direct_abstract_declarator_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ac_direct_abstract_declarator_option #ifdef KC_USE_PROTOTYPES (ac_direct_abstract_declarator_option kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_direct_abstract_declarator_option kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_direct_abstract_declarator_option(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { if (( kc_p->prod_sel == sel_Yesac_direct_abstract_declarator)) { #line 7589 "../gen.k" ac_direct_abstract_declarator dad = kc_p->u.Yesac_direct_abstract_declarator.ac_direct_abstract_declarator_1; unparse_ac_direct_abstract_declarator(dad, kc_printer, kc_current_view); } else switch((int)kc_p->prod_sel) { case (int)sel_Yesac_direct_abstract_declarator: unparse_ac_direct_abstract_declarator( kc_p->u.Yesac_direct_abstract_declarator.ac_direct_abstract_declarator_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ac_direct_abstract_declarator #ifdef KC_USE_PROTOTYPES (ac_direct_abstract_declarator kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_direct_abstract_declarator kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_direct_abstract_declarator(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_gen_fnkargs: { if (( kc_p->prod_sel == sel_AcDirAbsdeclPack)) { #line 7614 "../gen.k" ac_abstract_declarator ad = kc_p->u.AcDirAbsdeclPack.ac_abstract_declarator_1; unparse_ac_abstract_declarator(ad, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_AcDirAbsdeclArray)) { #line 7615 "../gen.k" ac_direct_abstract_declarator_option dado = kc_p->u.AcDirAbsdeclArray.ac_direct_abstract_declarator_option_1; unparse_ac_direct_abstract_declarator_option(dado, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_AcDirAbsdeclFn)) { #line 7616 "../gen.k" ac_direct_abstract_declarator_option dado = kc_p->u.AcDirAbsdeclFn.ac_direct_abstract_declarator_option_1; unparse_ac_direct_abstract_declarator_option(dado, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { if (( kc_p->prod_sel == sel_AcDirAbsdeclPack)) { #line 7591 "../gen.k" ac_abstract_declarator ad = kc_p->u.AcDirAbsdeclPack.ac_abstract_declarator_1; { (*kc_printer)("(", kc_current_view); } unparse_ac_abstract_declarator(ad, kc_printer, kc_current_view); { (*kc_printer)(")", kc_current_view); } } else if (( kc_p->prod_sel == sel_AcDirAbsdeclArray)) { #line 7592 "../gen.k" ac_direct_abstract_declarator_option dado = kc_p->u.AcDirAbsdeclArray.ac_direct_abstract_declarator_option_1; #line 7592 "../gen.k" ac_constant_expression_option ceo = kc_p->u.AcDirAbsdeclArray.ac_constant_expression_option_1; unparse_ac_direct_abstract_declarator_option(dado, kc_printer, kc_current_view); { (*kc_printer)("[", kc_current_view); } unparse_ac_constant_expression_option(ceo, kc_printer, kc_current_view); { (*kc_printer)("]", kc_current_view); } } else if (( kc_p->prod_sel == sel_AcDirAbsdeclFn)) { #line 7593 "../gen.k" ac_direct_abstract_declarator_option dado = kc_p->u.AcDirAbsdeclFn.ac_direct_abstract_declarator_option_1; #line 7593 "../gen.k" ac_parameter_type_list ptl = kc_p->u.AcDirAbsdeclFn.ac_parameter_type_list_1; unparse_ac_direct_abstract_declarator_option(dado, kc_printer, kc_current_view); { (*kc_printer)("(", kc_current_view); } unparse_ac_parameter_type_list(ptl, kc_printer, kc_current_view); { (*kc_printer)(")", kc_current_view); } } else switch((int)kc_p->prod_sel) { case (int)sel_AcDirAbsdeclPack: unparse_ac_abstract_declarator( kc_p->u.AcDirAbsdeclPack.ac_abstract_declarator_1, kc_printer, kc_current_view ); break; case (int)sel_AcDirAbsdeclArray: unparse_ac_direct_abstract_declarator_option( kc_p->u.AcDirAbsdeclArray.ac_direct_abstract_declarator_option_1, kc_printer, kc_current_view ); unparse_ac_constant_expression_option( kc_p->u.AcDirAbsdeclArray.ac_constant_expression_option_1, kc_printer, kc_current_view ); break; case (int)sel_AcDirAbsdeclFn: unparse_ac_direct_abstract_declarator_option( kc_p->u.AcDirAbsdeclFn.ac_direct_abstract_declarator_option_1, kc_printer, kc_current_view ); unparse_ac_parameter_type_list( kc_p->u.AcDirAbsdeclFn.ac_parameter_type_list_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ac_constant_expression_option #ifdef KC_USE_PROTOTYPES (ac_constant_expression_option kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_constant_expression_option kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_constant_expression_option(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Yesac_constant_expression: unparse_ac_constant_expression( kc_p->u.Yesac_constant_expression.ac_constant_expression_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_ac_constant_expression #ifdef KC_USE_PROTOTYPES (ac_constant_expression kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) ac_constant_expression kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_ac_constant_expression(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { if (( kc_p->prod_sel == sel_AcConstExpr)) { #line 7595 "../gen.k" Cexpression ce = kc_p->u.AcConstExpr.Cexpression_1; unparse_Cexpression(ce, kc_printer, view_gen_initializephyla_c); } else switch((int)kc_p->prod_sel) { case (int)sel_AcConstExpr: unparse_Cexpression( kc_p->u.AcConstExpr.Cexpression_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_error #ifdef KC_USE_PROTOTYPES (error kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) error kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_error(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_error: { if (( kc_p->prod_sel == sel_Fatal)) { #line 280 "../error.k" fileline fl = kc_p->u.Fatal.fileline_1; #line 280 "../error.k" problem e = kc_p->u.Fatal.problem_1; #line 281 "../error.k" gp_no_fatal_problems=False; #line 22388 "unpk.c" unparse_casestring(g_progname, kc_printer, kc_current_view); { (*kc_printer)(": fatal error", kc_current_view); } unparse_fileline(fl, kc_printer, kc_current_view); { (*kc_printer)(": ", kc_current_view); } unparse_problem(e, kc_printer, kc_current_view); { (*kc_printer)("\n", kc_current_view); } #line 284 "../error.k" leave( 1 ); #line 22397 "unpk.c" } else if (( kc_p->prod_sel == sel_NonFatal)) { #line 288 "../error.k" fileline fl = kc_p->u.NonFatal.fileline_1; #line 288 "../error.k" problem e = kc_p->u.NonFatal.problem_1; #line 289 "../error.k" gp_no_fatal_problems=False; #line 22406 "unpk.c" unparse_casestring(g_progname, kc_printer, kc_current_view); { (*kc_printer)(": error", kc_current_view); } unparse_fileline(fl, kc_printer, kc_current_view); { (*kc_printer)(": ", kc_current_view); } unparse_problem(e, kc_printer, kc_current_view); { (*kc_printer)("\n", kc_current_view); } } else if (( kc_p->prod_sel == sel_Warning)) { #line 295 "../error.k" fileline fl = kc_p->u.Warning.fileline_1; #line 295 "../error.k" problem e = kc_p->u.Warning.problem_1; unparse_casestring(g_progname, kc_printer, kc_current_view); { (*kc_printer)(": warning", kc_current_view); } unparse_fileline(fl, kc_printer, kc_current_view); { (*kc_printer)(": ", kc_current_view); } unparse_problem(e, kc_printer, kc_current_view); { (*kc_printer)("\n", kc_current_view); } } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Fatal: unparse_fileline( kc_p->u.Fatal.fileline_1, kc_printer, kc_current_view ); unparse_problem( kc_p->u.Fatal.problem_1, kc_printer, kc_current_view ); break; case (int)sel_NonFatal: unparse_fileline( kc_p->u.NonFatal.fileline_1, kc_printer, kc_current_view ); unparse_problem( kc_p->u.NonFatal.problem_1, kc_printer, kc_current_view ); break; case (int)sel_Warning: unparse_fileline( kc_p->u.Warning.fileline_1, kc_printer, kc_current_view ); unparse_problem( kc_p->u.Warning.problem_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_problem #ifdef KC_USE_PROTOTYPES (problem kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) problem kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_problem(kc_p, "kc_p"); switch((int)kc_current_view) { case (int)view_error: { if (( kc_p->prod_sel == sel_Problem1)) { #line 154 "../error.k" casestring s1 = kc_p->u.Problem1.casestring_1; unparse_casestring(s1, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Problem1ID)) { #line 156 "../error.k" casestring s1 = kc_p->u.Problem1ID.casestring_1; #line 156 "../error.k" ID id = kc_p->u.Problem1ID.ID_1; unparse_casestring(s1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Problem1tID)) { #line 157 "../error.k" casestring s1 = kc_p->u.Problem1tID.casestring_1; #line 157 "../error.k" ID id = kc_p->u.Problem1tID.ID_1; unparse_casestring(s1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(id, kc_printer, view_error_tID); } else if (( kc_p->prod_sel == sel_Problem1we)) { #line 155 "../error.k" casestring s1 = kc_p->u.Problem1we.casestring_1; #line 155 "../error.k" withexpression we1 = kc_p->u.Problem1we.withexpression_1; unparse_casestring(s1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_withexpression(we1, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Problem1ID1ID)) { #line 158 "../error.k" casestring s1 = kc_p->u.Problem1ID1ID.casestring_1; #line 158 "../error.k" ID id1 = kc_p->u.Problem1ID1ID.ID_1; #line 158 "../error.k" casestring s2 = kc_p->u.Problem1ID1ID.casestring_2; #line 158 "../error.k" ID id2 = kc_p->u.Problem1ID1ID.ID_2; unparse_casestring(s1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(id1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s2, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(id2, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Problem1t1ID)) { #line 159 "../error.k" casestring s1 = kc_p->u.Problem1t1ID.casestring_1; #line 159 "../error.k" IDtype t = kc_p->u.Problem1t1ID.IDtype_1; #line 159 "../error.k" casestring s2 = kc_p->u.Problem1t1ID.casestring_2; #line 159 "../error.k" ID id = kc_p->u.Problem1t1ID.ID_1; unparse_casestring(s1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_IDtype(t, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s2, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Problem1INT)) { #line 160 "../error.k" casestring s1 = kc_p->u.Problem1INT.casestring_1; #line 160 "../error.k" INT i1 = kc_p->u.Problem1INT.INT_1; unparse_casestring(s1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_INT(i1, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Problem1int1)) { #line 161 "../error.k" casestring s1 = kc_p->u.Problem1int1.casestring_1; #line 161 "../error.k" int i1 = kc_p->u.Problem1int1.int_1; #line 161 "../error.k" casestring s2 = kc_p->u.Problem1int1.casestring_2; unparse_casestring(s1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_int(i1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s2, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Problem1INT1ID)) { #line 162 "../error.k" casestring s1 = kc_p->u.Problem1INT1ID.casestring_1; #line 162 "../error.k" INT i1 = kc_p->u.Problem1INT1ID.INT_1; #line 162 "../error.k" casestring s2 = kc_p->u.Problem1INT1ID.casestring_2; #line 162 "../error.k" ID id1 = kc_p->u.Problem1INT1ID.ID_1; unparse_casestring(s1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_INT(i1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s2, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(id1, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Problem1ID1ID1ID)) { #line 163 "../error.k" casestring s1 = kc_p->u.Problem1ID1ID1ID.casestring_1; #line 163 "../error.k" ID id1 = kc_p->u.Problem1ID1ID1ID.ID_1; #line 163 "../error.k" casestring s2 = kc_p->u.Problem1ID1ID1ID.casestring_2; #line 163 "../error.k" ID id2 = kc_p->u.Problem1ID1ID1ID.ID_2; #line 163 "../error.k" casestring s3 = kc_p->u.Problem1ID1ID1ID.casestring_3; #line 163 "../error.k" ID id3 = kc_p->u.Problem1ID1ID1ID.ID_3; unparse_casestring(s1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(id1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s2, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(id2, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s3, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(id3, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Problem1INT1ID1ID)) { #line 164 "../error.k" casestring s1 = kc_p->u.Problem1INT1ID1ID.casestring_1; #line 164 "../error.k" INT i1 = kc_p->u.Problem1INT1ID1ID.INT_1; #line 164 "../error.k" casestring s2 = kc_p->u.Problem1INT1ID1ID.casestring_2; #line 164 "../error.k" ID id1 = kc_p->u.Problem1INT1ID1ID.ID_1; #line 164 "../error.k" casestring s3 = kc_p->u.Problem1INT1ID1ID.casestring_3; #line 164 "../error.k" ID id2 = kc_p->u.Problem1INT1ID1ID.ID_2; unparse_casestring(s1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_INT(i1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s2, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(id1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s3, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(id2, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Problem1storageoption1ID)) { #line 165 "../error.k" casestring s1 = kc_p->u.Problem1storageoption1ID.casestring_1; #line 165 "../error.k" storageoption so = kc_p->u.Problem1storageoption1ID.storageoption_1; #line 165 "../error.k" casestring s2 = kc_p->u.Problem1storageoption1ID.casestring_2; #line 165 "../error.k" ID id = kc_p->u.Problem1storageoption1ID.ID_1; unparse_casestring(s1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_storageoption(so, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s2, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_ID(id, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Problem2)) { #line 166 "../error.k" casestring s1 = kc_p->u.Problem2.casestring_1; #line 166 "../error.k" casestring s2 = kc_p->u.Problem2.casestring_2; unparse_casestring(s1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s2, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Problem3)) { #line 167 "../error.k" casestring s1 = kc_p->u.Problem3.casestring_1; #line 167 "../error.k" casestring s2 = kc_p->u.Problem3.casestring_2; #line 167 "../error.k" casestring s3 = kc_p->u.Problem3.casestring_3; unparse_casestring(s1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s2, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s3, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Problem3int1)) { #line 168 "../error.k" casestring s1 = kc_p->u.Problem3int1.casestring_1; #line 168 "../error.k" casestring s2 = kc_p->u.Problem3int1.casestring_2; #line 168 "../error.k" casestring s3 = kc_p->u.Problem3int1.casestring_3; #line 168 "../error.k" int i1 = kc_p->u.Problem3int1.int_1; #line 168 "../error.k" casestring s4 = kc_p->u.Problem3int1.casestring_4; unparse_casestring(s1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s2, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s3, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_int(i1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s4, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Problem4)) { #line 169 "../error.k" casestring s1 = kc_p->u.Problem4.casestring_1; #line 169 "../error.k" casestring s2 = kc_p->u.Problem4.casestring_2; #line 169 "../error.k" casestring s3 = kc_p->u.Problem4.casestring_3; #line 169 "../error.k" casestring s4 = kc_p->u.Problem4.casestring_4; unparse_casestring(s1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s2, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s3, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s4, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Problem5)) { #line 170 "../error.k" casestring s1 = kc_p->u.Problem5.casestring_1; #line 170 "../error.k" casestring s2 = kc_p->u.Problem5.casestring_2; #line 170 "../error.k" casestring s3 = kc_p->u.Problem5.casestring_3; #line 170 "../error.k" casestring s4 = kc_p->u.Problem5.casestring_4; #line 170 "../error.k" casestring s5 = kc_p->u.Problem5.casestring_5; unparse_casestring(s1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s2, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s3, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s4, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s5, kc_printer, kc_current_view); } else if (( kc_p->prod_sel == sel_Problem6)) { #line 171 "../error.k" casestring s1 = kc_p->u.Problem6.casestring_1; #line 171 "../error.k" casestring s2 = kc_p->u.Problem6.casestring_2; #line 171 "../error.k" casestring s3 = kc_p->u.Problem6.casestring_3; #line 171 "../error.k" casestring s4 = kc_p->u.Problem6.casestring_4; #line 171 "../error.k" casestring s5 = kc_p->u.Problem6.casestring_5; #line 171 "../error.k" casestring s6 = kc_p->u.Problem6.casestring_6; unparse_casestring(s1, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s2, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s3, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s4, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s5, kc_printer, kc_current_view); { (*kc_printer)(" ", kc_current_view); } unparse_casestring(s6, kc_printer, kc_current_view); } else goto kc_unparsing_default; break; } default: kc_unparsing_default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Problem1: unparse_casestring( kc_p->u.Problem1.casestring_1, kc_printer, kc_current_view ); break; case (int)sel_Problem1ID: unparse_casestring( kc_p->u.Problem1ID.casestring_1, kc_printer, kc_current_view ); unparse_ID( kc_p->u.Problem1ID.ID_1, kc_printer, kc_current_view ); break; case (int)sel_Problem1tID: unparse_casestring( kc_p->u.Problem1tID.casestring_1, kc_printer, kc_current_view ); unparse_ID( kc_p->u.Problem1tID.ID_1, kc_printer, kc_current_view ); break; case (int)sel_Problem1we: unparse_casestring( kc_p->u.Problem1we.casestring_1, kc_printer, kc_current_view ); unparse_withexpression( kc_p->u.Problem1we.withexpression_1, kc_printer, kc_current_view ); break; case (int)sel_Problem1ID1ID: unparse_casestring( kc_p->u.Problem1ID1ID.casestring_1, kc_printer, kc_current_view ); unparse_ID( kc_p->u.Problem1ID1ID.ID_1, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem1ID1ID.casestring_2, kc_printer, kc_current_view ); unparse_ID( kc_p->u.Problem1ID1ID.ID_2, kc_printer, kc_current_view ); break; case (int)sel_Problem1t1ID: unparse_casestring( kc_p->u.Problem1t1ID.casestring_1, kc_printer, kc_current_view ); unparse_IDtype( kc_p->u.Problem1t1ID.IDtype_1, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem1t1ID.casestring_2, kc_printer, kc_current_view ); unparse_ID( kc_p->u.Problem1t1ID.ID_1, kc_printer, kc_current_view ); break; case (int)sel_Problem1INT: unparse_casestring( kc_p->u.Problem1INT.casestring_1, kc_printer, kc_current_view ); unparse_INT( kc_p->u.Problem1INT.INT_1, kc_printer, kc_current_view ); break; case (int)sel_Problem1int1: unparse_casestring( kc_p->u.Problem1int1.casestring_1, kc_printer, kc_current_view ); unparse_int( kc_p->u.Problem1int1.int_1, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem1int1.casestring_2, kc_printer, kc_current_view ); break; case (int)sel_Problem1INT1ID: unparse_casestring( kc_p->u.Problem1INT1ID.casestring_1, kc_printer, kc_current_view ); unparse_INT( kc_p->u.Problem1INT1ID.INT_1, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem1INT1ID.casestring_2, kc_printer, kc_current_view ); unparse_ID( kc_p->u.Problem1INT1ID.ID_1, kc_printer, kc_current_view ); break; case (int)sel_Problem1ID1ID1ID: unparse_casestring( kc_p->u.Problem1ID1ID1ID.casestring_1, kc_printer, kc_current_view ); unparse_ID( kc_p->u.Problem1ID1ID1ID.ID_1, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem1ID1ID1ID.casestring_2, kc_printer, kc_current_view ); unparse_ID( kc_p->u.Problem1ID1ID1ID.ID_2, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem1ID1ID1ID.casestring_3, kc_printer, kc_current_view ); unparse_ID( kc_p->u.Problem1ID1ID1ID.ID_3, kc_printer, kc_current_view ); break; case (int)sel_Problem1INT1ID1ID: unparse_casestring( kc_p->u.Problem1INT1ID1ID.casestring_1, kc_printer, kc_current_view ); unparse_INT( kc_p->u.Problem1INT1ID1ID.INT_1, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem1INT1ID1ID.casestring_2, kc_printer, kc_current_view ); unparse_ID( kc_p->u.Problem1INT1ID1ID.ID_1, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem1INT1ID1ID.casestring_3, kc_printer, kc_current_view ); unparse_ID( kc_p->u.Problem1INT1ID1ID.ID_2, kc_printer, kc_current_view ); break; case (int)sel_Problem1storageoption1ID: unparse_casestring( kc_p->u.Problem1storageoption1ID.casestring_1, kc_printer, kc_current_view ); unparse_storageoption( kc_p->u.Problem1storageoption1ID.storageoption_1, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem1storageoption1ID.casestring_2, kc_printer, kc_current_view ); unparse_ID( kc_p->u.Problem1storageoption1ID.ID_1, kc_printer, kc_current_view ); break; case (int)sel_Problem2: unparse_casestring( kc_p->u.Problem2.casestring_1, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem2.casestring_2, kc_printer, kc_current_view ); break; case (int)sel_Problem3: unparse_casestring( kc_p->u.Problem3.casestring_1, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem3.casestring_2, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem3.casestring_3, kc_printer, kc_current_view ); break; case (int)sel_Problem3int1: unparse_casestring( kc_p->u.Problem3int1.casestring_1, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem3int1.casestring_2, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem3int1.casestring_3, kc_printer, kc_current_view ); unparse_int( kc_p->u.Problem3int1.int_1, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem3int1.casestring_4, kc_printer, kc_current_view ); break; case (int)sel_Problem4: unparse_casestring( kc_p->u.Problem4.casestring_1, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem4.casestring_2, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem4.casestring_3, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem4.casestring_4, kc_printer, kc_current_view ); break; case (int)sel_Problem5: unparse_casestring( kc_p->u.Problem5.casestring_1, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem5.casestring_2, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem5.casestring_3, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem5.casestring_4, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem5.casestring_5, kc_printer, kc_current_view ); break; case (int)sel_Problem6: unparse_casestring( kc_p->u.Problem6.casestring_1, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem6.casestring_2, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem6.casestring_3, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem6.casestring_4, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem6.casestring_5, kc_printer, kc_current_view ); unparse_casestring( kc_p->u.Problem6.casestring_6, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_addedphylumdeclarations #ifdef KC_USE_PROTOTYPES (addedphylumdeclarations kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) addedphylumdeclarations kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_addedphylumdeclarations(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consaddedphylumdeclarations: unparse_addedphylumdeclaration( kc_p->u.Consaddedphylumdeclarations.addedphylumdeclaration_1, kc_printer, kc_current_view ); unparse_addedphylumdeclarations( kc_p->u.Consaddedphylumdeclarations.addedphylumdeclarations_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_addedphylumdeclaration #ifdef KC_USE_PROTOTYPES (addedphylumdeclaration kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) addedphylumdeclaration kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_addedphylumdeclaration(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_AddedPhylumdeclaration: unparse_uniqID( kc_p->u.AddedPhylumdeclaration.uniqID_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_countedphylumdeclarations #ifdef KC_USE_PROTOTYPES (countedphylumdeclarations kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) countedphylumdeclarations kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_countedphylumdeclarations(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Conscountedphylumdeclarations: unparse_countedphylumdeclaration( kc_p->u.Conscountedphylumdeclarations.countedphylumdeclaration_1, kc_printer, kc_current_view ); unparse_countedphylumdeclarations( kc_p->u.Conscountedphylumdeclarations.countedphylumdeclarations_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_countedphylumdeclaration #ifdef KC_USE_PROTOTYPES (countedphylumdeclaration kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) countedphylumdeclaration kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_countedphylumdeclaration(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_CountedPhylumdeclaration: unparse_uniqID( kc_p->u.CountedPhylumdeclaration.uniqID_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_bindingidmarks #ifdef KC_USE_PROTOTYPES (bindingidmarks kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) bindingidmarks kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_bindingidmarks(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_Consbindingidmarks: unparse_bindingidmark( kc_p->u.Consbindingidmarks.bindingidmark_1, kc_printer, kc_current_view ); unparse_bindingidmarks( kc_p->u.Consbindingidmarks.bindingidmarks_1, kc_printer, kc_current_view ); break; default:;} break; } } } /*ARGSUSED*/ void unparse_bindingidmark #ifdef KC_USE_PROTOTYPES (bindingidmark kc_p, void (*kc_printer)(char*, uview), uview kc_current_view) #else (kc_p, kc_printer, kc_current_view) bindingidmark kc_p; void (*kc_printer)KC__P((char*, uview)); uview kc_current_view; #endif { /*SUPPRESS 622*/ assert_bindingidmark(kc_p, "kc_p"); switch((int)kc_current_view) { default: case (int)base_uview: { switch((int)kc_p->prod_sel) { case (int)sel_BindingIdMark: unparse_uniqID( kc_p->u.BindingIdMark.uniqID_1, kc_printer, kc_current_view ); break; default:;} break; } } } kimwitu-4.6.1.orig/src/unpk.h0100644000176100001440000004361407076113233015402 0ustar debacleusers/* translation of file(s) "../abs.k" "../main.k" "../parse.k" "../error.k" "../defocc.k" "../extocc.k" "../useocc.k" "../util.k" "../gen.k" "../gutil.k" "../pat.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #ifndef KC_UNPARSE_HEADER #define KC_UNPARSE_HEADER #define KIMW_UNPARSE_HEADER /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include "k.h" /* in case a user forgets */ /* included stuff */ #line 2 "../main.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 38 "unpk.h" #line 141 "../gutil.k" #include "gen.h" #line 42 "unpk.h" /* end included stuff */ #ifndef KC_MAXINTSTRING # define KC_MAXINTSTRING 30 #endif /* !KC_MAXINTSTRING */ typedef enum { base_uview, base_view = base_uview, view_filename, view_error, view_error_tID, view_check, view_check_count, view_check_count1, view_check_outmostopers_in_phylum, view_set_type, view_check_is_var, view_gen_initializephyla_c, view_check_u, view_check_r, view_check_viewnames, view_init_stacks, view_check_uniq, view_check_uniq1, view_check_uniq2, view_make_patternreps, view_printer_outputfileline, view_printer_reset, view_no_of_printed_string_chars_reset, view_gen_k_h, view_gen_end_k_h, view_gen_k_c, view_gen_alloc_h, view_gen_alloc_c, view_gen_enumphyla_h, view_gen_enumoperators_h, view_gen_operatormap_type_h, view_gen_phylummap_c, view_gen_operatormap_c, view_count_args, view_gen_operatormap_operator_fn, view_gen_prodsel_fnarg_and_decls, view_gen_prodsel_fnargs, view_gen_prodsel_fnargdecls, view_gen_operatormap_subphyla, view_gen_operatormap_suboffsets, view_gen_uniqmap_c, view_gen_uniqmap_c_1, view_gen_uniqmap_c_2, view_gen_nodetypedefs_h, view_gen_nodetypes_h, view_gen_yaccstacktype_h, view_gen_noofoperators_h, view_gen_booleans_h, view_gen_initialization_h, view_gen_initialization_c, view_gen_assertmacros_h, view_gen_operatordecls_h, view_gen_operatordefs_c, view_gen_operatordefs_c_0, view_gen_operatordefs_c_1, view_gen_operatordefs_c_2, view_gen_operatordefs_c_2a, view_gen_operatordefs_c_3, view_gen_operatordefs_c_3a, view_gen_operatordefs_c_4, view_gen_operatordefs_c_4z, view_gen_operatordefs_c_4a, view_gen_initializephyla_assert_c, view_gen_initializephyla_whiletest_c, view_gen_initializephyla_init_el_c, view_gen_initializephyla_update_loop_c, view_gen_operatordefs_nonhash_c, view_gen_operatordefs_hash_c, view_gen_argseqnr, view_gen_fnargs, view_gen_fnargdecls, view_gen_fnarg_and_decls, view_gen_asserts, view_gen_assignments, view_gen_hash, view_gen_test, view_gen_error_decls_h, view_gen_error_defs_c, view_gen_freedecls_h, view_gen_freedefs_c, view_gen_eqdecls_h, view_gen_eqdefs_c, view_gen_eqdefs_bigatom_c, view_gen_eqdefs_bigatom_do_c, view_gen_printdecls_h, view_gen_printdefs_c, view_gen_printdefs_bigatom_c, view_gen_printdefs_bigatom_do_c, view_gen_printdotdecls_h, view_gen_printdotdefs_c, view_gen_printdotdecls_c, view_gen_printdotdefs_bigatom_c, view_gen_printdotdefs_bigatom_do_c, view_gen_printdotedges_c, view_gen_listdecls_h, view_gen_listdefs_c, view_gen_includes, view_do_gen_includes, view_gen_csgio_start_h, view_gen_csgio_end_h, view_gen_csgio_h, view_gen_csgio_start_c, view_gen_csgio_c, view_gen_csgio_c_read, view_gen_csgio_c_write, view_gen_csgio_bigatom_arguse_c, view_gen_csgio_bigatom_do_arguse_c, view_gen_csgio_scandef_c, view_gen_csgio_scandefs_c, view_gen_csgio_scandef_bigatom_c, view_gen_csgio_scandef_bigatom_do_c, view_gen_csgio_write2structuredefs_c, view_gen_csgio_write2structuredef_c, view_gen_csgio_write2structuredef_bigatom_c, view_gen_csgio_write2structuredef_bigatom_do_c, view_gen_csgio_writephylumdef_scan_c, view_gen_csgio_writephylumdef_write_c, view_gen_copy_attributes_c, view_gen_copy_attributes_c_doit, view_gen_copydecls_h, view_gen_copydefs_c, view_gen_copydefs_bigatom_argdefs_c, view_gen_copydefs_bigatom_argset_c, view_gen_copydefs_bigatom_arguse_c, view_gen_copydefs_bigatom_do_arguse_c, view_gen_rewritek_h, view_gen_end_rewritek_h, view_gen_rewritek_c, view_gen_rewritedecls_h, view_gen_rewritedefs_c, view_gen_rewritedefs_default_c, view_gen_rewritedefs_other_c, view_gen_rewritedefs_rewritearg_c, view_gen_rewritedefs_nl_arg_c, view_gen_rewritedefs_testarg_c, view_gen_rewritedefs_dotestarg_c, view_gen_rewritedefs_args_c, view_gen_withcases_and_default, view_rw_predicates, view_wc_predicates, view_unp_predicates, view_wc_bindings, view_unp_bindings, view_rw_bindings, view_gen_fnk_h, view_gen_fnkdecls_c, view_gen_fnk_c, view_gen_fnkarg_and_decls, view_gen_fn_pointer_name, view_gen_fnkargs, view_gen_fnkdecls, view_gen_fns_start_h, view_gen_fns_end_h, view_gen_fns_start_c, view_gen_fns_owninclude_c, view_gen_unpk_h, view_gen_unparsedecls_h, view_uview_def, view_gen_end_unpk_h, view_gen_unpk_c, view_gen_default_types_unpk_c, view_gen_unparsedefs_c, view_gen_unparsedefs_default_c, view_gen_unparsedefs_other_c, view_gen_unpstr_c } uview; typedef uview view; /* for backwards compatibility */ extern char *kc_view_names[]; void unparse_nocasestring KC__P(( nocasestring, void(*)(char*, uview), uview )); void unparse_casestring KC__P(( casestring, void(*)(char*, uview), uview )); void unparse_float KC__P(( float, void(*)(char*, uview), uview )); void unparse_int KC__P(( int, void(*)(char*, uview), uview )); void unparse_voidptr KC__P(( voidptr, void(*)(char*, uview), uview )); void unparse_uniqID KC__P(( uniqID, void(*)(char*, uview), uview )); void unparse_ID KC__P(( ID, void(*)(char*, uview), uview )); void unparse_INT KC__P(( INT, void(*)(char*, uview), uview )); void unparse_STRING KC__P(( STRING, void(*)(char*, uview), uview )); void unparse_phylumdeclarationsroot KC__P(( phylumdeclarationsroot, void(*)(char*, uview), uview )); void unparse_phylumdeclarations KC__P(( phylumdeclarations, void(*)(char*, uview), uview )); void unparse_phylumnames KC__P(( phylumnames, void(*)(char*, uview), uview )); void unparse_phylumdeclaration KC__P(( phylumdeclaration, void(*)(char*, uview), uview )); void unparse_storageoption KC__P(( storageoption, void(*)(char*, uview), uview )); void unparse_storageclasses KC__P(( storageclasses, void(*)(char*, uview), uview )); void unparse_productionblock KC__P(( productionblock, void(*)(char*, uview), uview )); void unparse_alternatives KC__P(( alternatives, void(*)(char*, uview), uview )); void unparse_alternative KC__P(( alternative, void(*)(char*, uview), uview )); void unparse_arguments KC__P(( arguments, void(*)(char*, uview), uview )); void unparse_argument KC__P(( argument, void(*)(char*, uview), uview )); void unparse_Ccode_option KC__P(( Ccode_option, void(*)(char*, uview), uview )); void unparse_attributes KC__P(( attributes, void(*)(char*, uview), uview )); void unparse_attribute KC__P(( attribute, void(*)(char*, uview), uview )); void unparse_attribute_initialisation_option KC__P(( attribute_initialisation_option, void(*)(char*, uview), uview )); void unparse_Cexpression KC__P(( Cexpression, void(*)(char*, uview), uview )); void unparse_Cexpression_elem KC__P(( Cexpression_elem, void(*)(char*, uview), uview )); void unparse_CexpressionDQ KC__P(( CexpressionDQ, void(*)(char*, uview), uview )); void unparse_CexpressionDQ_elem KC__P(( CexpressionDQ_elem, void(*)(char*, uview), uview )); void unparse_CexpressionSQ KC__P(( CexpressionSQ, void(*)(char*, uview), uview )); void unparse_CexpressionSQ_elem KC__P(( CexpressionSQ_elem, void(*)(char*, uview), uview )); void unparse_idCexpressions KC__P(( idCexpressions, void(*)(char*, uview), uview )); void unparse_idCexpression KC__P(( idCexpression, void(*)(char*, uview), uview )); void unparse_Ctexts KC__P(( Ctexts, void(*)(char*, uview), uview )); void unparse_includefiles KC__P(( includefiles, void(*)(char*, uview), uview )); void unparse_includefile KC__P(( includefile, void(*)(char*, uview), uview )); void unparse_includedeclarations KC__P(( includedeclarations, void(*)(char*, uview), uview )); void unparse_includedeclaration KC__P(( includedeclaration, void(*)(char*, uview), uview )); void unparse_includes KC__P(( includes, void(*)(char*, uview), uview )); void unparse_include KC__P(( include, void(*)(char*, uview), uview )); void unparse_rwdeclarations KC__P(( rwdeclarations, void(*)(char*, uview), uview )); void unparse_rwdeclaration KC__P(( rwdeclaration, void(*)(char*, uview), uview )); void unparse_rewriteclauses KC__P(( rewriteclauses, void(*)(char*, uview), uview )); void unparse_rewriteclause KC__P(( rewriteclause, void(*)(char*, uview), uview )); void unparse_patternchains KC__P(( patternchains, void(*)(char*, uview), uview )); void unparse_patternchain KC__P(( patternchain, void(*)(char*, uview), uview )); void unparse_outmostpatterns KC__P(( outmostpatterns, void(*)(char*, uview), uview )); void unparse_patternchainitem KC__P(( patternchainitem, void(*)(char*, uview), uview )); void unparse_outmostpattern KC__P(( outmostpattern, void(*)(char*, uview), uview )); void unparse_pattern KC__P(( pattern, void(*)(char*, uview), uview )); void unparse_patterns KC__P(( patterns, void(*)(char*, uview), uview )); void unparse_term KC__P(( term, void(*)(char*, uview), uview )); void unparse_terms KC__P(( terms, void(*)(char*, uview), uview )); void unparse_fnfiles KC__P(( fnfiles, void(*)(char*, uview), uview )); void unparse_fnfile KC__P(( fnfile, void(*)(char*, uview), uview )); void unparse_fndeclarations KC__P(( fndeclarations, void(*)(char*, uview), uview )); void unparse_fndeclaration KC__P(( fndeclaration, void(*)(char*, uview), uview )); void unparse_fnclass KC__P(( fnclass, void(*)(char*, uview), uview )); void unparse_fnarguments KC__P(( fnarguments, void(*)(char*, uview), uview )); void unparse_Cvariabledeclarations KC__P(( Cvariabledeclarations, void(*)(char*, uview), uview )); void unparse_Cvariabledeclaration KC__P(( Cvariabledeclaration, void(*)(char*, uview), uview )); void unparse_Cvariables KC__P(( Cvariables, void(*)(char*, uview), uview )); void unparse_Cvariable KC__P(( Cvariable, void(*)(char*, uview), uview )); void unparse_Ctext KC__P(( Ctext, void(*)(char*, uview), uview )); void unparse_Ctext_elem KC__P(( Ctext_elem, void(*)(char*, uview), uview )); void unparse_foreach_after KC__P(( foreach_after, void(*)(char*, uview), uview )); void unparse_contextinfo KC__P(( contextinfo, void(*)(char*, uview), uview )); void unparse_withexpressions KC__P(( withexpressions, void(*)(char*, uview), uview )); void unparse_withexpression KC__P(( withexpression, void(*)(char*, uview), uview )); void unparse_withcases KC__P(( withcases, void(*)(char*, uview), uview )); void unparse_withcase KC__P(( withcase, void(*)(char*, uview), uview )); void unparse_unparsedeclarations KC__P(( unparsedeclarations, void(*)(char*, uview), uview )); void unparse_unparsedeclaration KC__P(( unparsedeclaration, void(*)(char*, uview), uview )); void unparse_unparseclauses KC__P(( unparseclauses, void(*)(char*, uview), uview )); void unparse_unparseclause KC__P(( unparseclause, void(*)(char*, uview), uview )); void unparse_viewnames KC__P(( viewnames, void(*)(char*, uview), uview )); void unparse_unparseitems KC__P(( unparseitems, void(*)(char*, uview), uview )); void unparse_unparseitem KC__P(( unparseitem, void(*)(char*, uview), uview )); void unparse_unpsubterm KC__P(( unpsubterm, void(*)(char*, uview), uview )); void unparse_unpattributes KC__P(( unpattributes, void(*)(char*, uview), uview )); void unparse_viewnameoption KC__P(( viewnameoption, void(*)(char*, uview), uview )); void unparse_filelinestack KC__P(( filelinestack, void(*)(char*, uview), uview )); void unparse_fileline KC__P(( fileline, void(*)(char*, uview), uview )); void unparse_nooperatorsstack KC__P(( nooperatorsstack, void(*)(char*, uview), uview )); void unparse_scopetypefilelinestack KC__P(( scopetypefilelinestack, void(*)(char*, uview), uview )); void unparse_scopetypefileline KC__P(( scopetypefileline, void(*)(char*, uview), uview )); void unparse_IDtype KC__P(( IDtype, void(*)(char*, uview), uview )); void unparse_operatorsstack KC__P(( operatorsstack, void(*)(char*, uview), uview )); void unparse_operators KC__P(( operators, void(*)(char*, uview), uview )); void unparse_phyla KC__P(( phyla, void(*)(char*, uview), uview )); void unparse_variables KC__P(( variables, void(*)(char*, uview), uview )); void unparse_argumentsstack KC__P(( argumentsstack, void(*)(char*, uview), uview )); void unparse_phylumstack KC__P(( phylumstack, void(*)(char*, uview), uview )); void unparse_phylumnamesstack KC__P(( phylumnamesstack, void(*)(char*, uview), uview )); void unparse_withexpressionsstack KC__P(( withexpressionsstack, void(*)(char*, uview), uview )); void unparse_operatorstack KC__P(( operatorstack, void(*)(char*, uview), uview )); void unparse_variablesstack KC__P(( variablesstack, void(*)(char*, uview), uview )); void unparse_selvarstack KC__P(( selvarstack, void(*)(char*, uview), uview )); void unparse_dollarvarstatus KC__P(( dollarvarstatus, void(*)(char*, uview), uview )); void unparse_dollarvarsallowedstack KC__P(( dollarvarsallowedstack, void(*)(char*, uview), uview )); void unparse_intstack KC__P(( intstack, void(*)(char*, uview), uview )); void unparse_idCexpressionsstack KC__P(( idCexpressionsstack, void(*)(char*, uview), uview )); void unparse_two_phyla KC__P(( two_phyla, void(*)(char*, uview), uview )); void unparse_tribool KC__P(( tribool, void(*)(char*, uview), uview )); void unparse_patternrepresentations KC__P(( patternrepresentations, void(*)(char*, uview), uview )); void unparse_patternrepresentation KC__P(( patternrepresentation, void(*)(char*, uview), uview )); void unparse_elem_patternrepresentation KC__P(( elem_patternrepresentation, void(*)(char*, uview), uview )); void unparse_path KC__P(( path, void(*)(char*, uview), uview )); void unparse_paths KC__P(( paths, void(*)(char*, uview), uview )); void unparse_argsnumbers KC__P(( argsnumbers, void(*)(char*, uview), uview )); void unparse_rewriterulesinfo KC__P(( rewriterulesinfo, void(*)(char*, uview), uview )); void unparse_rewriteruleinfo KC__P(( rewriteruleinfo, void(*)(char*, uview), uview )); void unparse_withcasesinfo KC__P(( withcasesinfo, void(*)(char*, uview), uview )); void unparse_withcaseinfo KC__P(( withcaseinfo, void(*)(char*, uview), uview )); void unparse_rewriteviewsinfo KC__P(( rewriteviewsinfo, void(*)(char*, uview), uview )); void unparse_rewriteviewinfo KC__P(( rewriteviewinfo, void(*)(char*, uview), uview )); void unparse_unparseviewsinfo KC__P(( unparseviewsinfo, void(*)(char*, uview), uview )); void unparse_unparseviewinfo KC__P(( unparseviewinfo, void(*)(char*, uview), uview )); void unparse_unparsedeclsinfo KC__P(( unparsedeclsinfo, void(*)(char*, uview), uview )); void unparse_unparsedeclinfo KC__P(( unparsedeclinfo, void(*)(char*, uview), uview )); void unparse_ac_declaration KC__P(( ac_declaration, void(*)(char*, uview), uview )); void unparse_ac_declaration_list KC__P(( ac_declaration_list, void(*)(char*, uview), uview )); void unparse_ac_declaration_specifiers KC__P(( ac_declaration_specifiers, void(*)(char*, uview), uview )); void unparse_ac_declaration_specifier KC__P(( ac_declaration_specifier, void(*)(char*, uview), uview )); void unparse_ac_storage_class_specifier KC__P(( ac_storage_class_specifier, void(*)(char*, uview), uview )); void unparse_ac_type_specifier KC__P(( ac_type_specifier, void(*)(char*, uview), uview )); void unparse_ac_type_qualifier KC__P(( ac_type_qualifier, void(*)(char*, uview), uview )); void unparse_ac_init_declarator_list KC__P(( ac_init_declarator_list, void(*)(char*, uview), uview )); void unparse_ac_init_declarator KC__P(( ac_init_declarator, void(*)(char*, uview), uview )); void unparse_ac_declarator KC__P(( ac_declarator, void(*)(char*, uview), uview )); void unparse_ac_direct_declarator KC__P(( ac_direct_declarator, void(*)(char*, uview), uview )); void unparse_ac_pointer_option KC__P(( ac_pointer_option, void(*)(char*, uview), uview )); void unparse_ac_pointer KC__P(( ac_pointer, void(*)(char*, uview), uview )); void unparse_ac_type_qualifier_list KC__P(( ac_type_qualifier_list, void(*)(char*, uview), uview )); void unparse_ac_parameter_type_list KC__P(( ac_parameter_type_list, void(*)(char*, uview), uview )); void unparse_ac_parameter_list KC__P(( ac_parameter_list, void(*)(char*, uview), uview )); void unparse_ac_parameter_declaration KC__P(( ac_parameter_declaration, void(*)(char*, uview), uview )); void unparse_ac_identifier_list KC__P(( ac_identifier_list, void(*)(char*, uview), uview )); void unparse_ac_abstract_declarator KC__P(( ac_abstract_declarator, void(*)(char*, uview), uview )); void unparse_ac_direct_abstract_declarator_option KC__P(( ac_direct_abstract_declarator_option, void(*)(char*, uview), uview )); void unparse_ac_direct_abstract_declarator KC__P(( ac_direct_abstract_declarator, void(*)(char*, uview), uview )); void unparse_ac_constant_expression_option KC__P(( ac_constant_expression_option, void(*)(char*, uview), uview )); void unparse_ac_constant_expression KC__P(( ac_constant_expression, void(*)(char*, uview), uview )); void unparse_error KC__P(( error, void(*)(char*, uview), uview )); void unparse_problem KC__P(( problem, void(*)(char*, uview), uview )); void unparse_addedphylumdeclarations KC__P(( addedphylumdeclarations, void(*)(char*, uview), uview )); void unparse_addedphylumdeclaration KC__P(( addedphylumdeclaration, void(*)(char*, uview), uview )); void unparse_countedphylumdeclarations KC__P(( countedphylumdeclarations, void(*)(char*, uview), uview )); void unparse_countedphylumdeclaration KC__P(( countedphylumdeclaration, void(*)(char*, uview), uview )); void unparse_bindingidmarks KC__P(( bindingidmarks, void(*)(char*, uview), uview )); void unparse_bindingidmark KC__P(( bindingidmark, void(*)(char*, uview), uview )); #endif /* KC_UNPARSE_HEADER */ kimwitu-4.6.1.orig/src/useocc.c0100644000176100001440000003367107076113222015701 0ustar debacleusers/* translation of file "../useocc.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #define KC_FUNCTIONS_useocc #define KIMW_FUNCTIONS_useocc /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include #ifdef KC_STDC # include #endif #include "k.h" /* included stuff */ #line 2 "../useocc.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 29 "useocc.c" #line 14 "../useocc.k" #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char useocc_kAccesSid[] = "@(#)$Id: useocc.k,v 1.12 1996/10/14 11:12:31 belinfan Rel $"; #endif #line 35 "useocc.c" /* end included stuff */ #include "useocc.h" void v_useoccuroperator #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 25 "../useocc.k" { (void) f_useoccuroperator( id ); #line 27 "../useocc.k" } #line 51 "useocc.c" boolean f_useoccuroperator #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 30 "../useocc.k" { { #line 31 "../useocc.k" ID kc_selvar_0_1 = id ; #line 31 "../useocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 70 "useocc.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 32 "../useocc.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 32 "../useocc.k" { #line 33 "../useocc.k" IDtype kc_selvar_1_1 = uid->type ; #line 33 "../useocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_1_1, "with_expression (1)"); #line 85 "useocc.c" if (( kc_selvar_1_1->prod_sel == sel_ITUserOperator)) { #line 35 "../useocc.k" return True; #line 89 "useocc.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedOperator)) { #line 34 "../useocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "undefined operator (it's predefined, you're not supposed to use those):", id ))); return False; #line 94 "useocc.c" } else { #line 36 "../useocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1tID( "undefined operator", id ))); return False; #line 99 "useocc.c" } } #line 37 "../useocc.k" #line 104 "useocc.c" } else { kc_no_default_in_with( "f_useoccuroperator", __LINE__, __FILE__ ); return (boolean)0; } } #line 37 "../useocc.k" #line 37 "../useocc.k" } #line 113 "useocc.c" void v_warnifnotvariable #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 40 "../useocc.k" { (void) f_warnifnotvariable( id ); #line 42 "../useocc.k" } #line 127 "useocc.c" boolean f_warnifnotvariable #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 45 "../useocc.k" { { #line 46 "../useocc.k" ID kc_selvar_0_1 = id ; #line 46 "../useocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 146 "useocc.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 47 "../useocc.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 47 "../useocc.k" { #line 48 "../useocc.k" IDtype kc_selvar_1_1 = uid->type ; #line 48 "../useocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_1_1, "with_expression (1)"); #line 161 "useocc.c" if (( kc_selvar_1_1->prod_sel == sel_ITUnknown)) { #line 50 "../useocc.k" return False; #line 165 "useocc.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPatternVariable)) { #line 50 "../useocc.k" return False; #line 170 "useocc.c" } else { #line 51 "../useocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1tID( "variable expected:", id ))); return True; #line 175 "useocc.c" } } #line 52 "../useocc.k" #line 180 "useocc.c" } else { kc_no_default_in_with( "f_warnifnotvariable", __LINE__, __FILE__ ); return (boolean)0; } } #line 52 "../useocc.k" #line 52 "../useocc.k" } #line 189 "useocc.c" void v_useoccurphylum #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 56 "../useocc.k" { (void) f_useoccurphylum( id ); #line 58 "../useocc.k" } #line 203 "useocc.c" boolean f_useoccurphylum #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 61 "../useocc.k" { { #line 62 "../useocc.k" ID kc_selvar_0_1 = id ; #line 62 "../useocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 222 "useocc.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 63 "../useocc.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 63 "../useocc.k" { #line 64 "../useocc.k" IDtype kc_selvar_1_1 = uid->type ; #line 64 "../useocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_1_1, "with_expression (1)"); #line 237 "useocc.c" if (( kc_selvar_1_1->prod_sel == sel_ITUserPhylum)) { #line 67 "../useocc.k" return True; #line 241 "useocc.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedPhylum)) { #line 66 "../useocc.k" return True; #line 246 "useocc.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 66 "../useocc.k" return True; #line 251 "useocc.c" } else { #line 68 "../useocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1tID( "undefined phylum", id ))); return False; #line 256 "useocc.c" } } #line 69 "../useocc.k" #line 261 "useocc.c" } else { kc_no_default_in_with( "f_useoccurphylum", __LINE__, __FILE__ ); return (boolean)0; } } #line 69 "../useocc.k" #line 69 "../useocc.k" } #line 270 "useocc.c" void v_useoccurlistphylum #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 73 "../useocc.k" { (void) f_useoccurlistphylum( id ); #line 75 "../useocc.k" } #line 284 "useocc.c" boolean f_useoccurlistphylum #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 78 "../useocc.k" { { #line 79 "../useocc.k" ID kc_selvar_0_1 = id ; #line 79 "../useocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 303 "useocc.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 80 "../useocc.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 80 "../useocc.k" { #line 81 "../useocc.k" IDtype kc_selvar_1_1 = uid->type ; #line 81 "../useocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_1_1, "with_expression (1)"); #line 318 "useocc.c" if (( kc_selvar_1_1->prod_sel == sel_ITUserPhylum)) { #line 82 "../useocc.k" phylumdeclaration pd = kc_selvar_1_1->u.ITUserPhylum.phylumdeclaration_1; #line 82 "../useocc.k" { #line 83 "../useocc.k" phylumdeclaration kc_selvar_2_1 = pd ; #line 83 "../useocc.k" /*SUPPRESS 622*/ assert_phylumdeclaration(kc_selvar_2_1, "with_expression (1)"); #line 333 "useocc.c" if (( kc_selvar_2_1->prod_sel == sel_PhylumDeclaration) && ( kc_selvar_2_1->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 87 "../useocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "undefined list phylum (it's a predefined phylum):", id ))); return False; #line 337 "useocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_PhylumDeclaration) && ( kc_selvar_2_1->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 86 "../useocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "undefined list phylum (it's a non-list phylum):", id ))); return False; #line 342 "useocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_PhylumDeclaration) && ( kc_selvar_2_1->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 85 "../useocc.k" return True; #line 347 "useocc.c" } else if (( kc_selvar_2_1->prod_sel == sel_PhylumDeclaration) && ( kc_selvar_2_1->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 84 "../useocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "undefined list phylum (the productionblock is empty):", id ))); return False; #line 352 "useocc.c" } else { kc_no_default_in_with( "f_useoccurlistphylum", __LINE__, __FILE__ ); return (boolean)0; } } #line 88 "../useocc.k" #line 359 "useocc.c" } else { #line 89 "../useocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1tID( "undefined list phylum", id ))); return False; #line 364 "useocc.c" } } #line 90 "../useocc.k" #line 369 "useocc.c" } else { kc_no_default_in_with( "f_useoccurlistphylum", __LINE__, __FILE__ ); return (boolean)0; } } #line 90 "../useocc.k" #line 90 "../useocc.k" } #line 378 "useocc.c" void v_useoccuruviewname #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 93 "../useocc.k" { (void) f_useoccuruviewname( id ); #line 95 "../useocc.k" } #line 392 "useocc.c" boolean f_useoccuruviewname #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 98 "../useocc.k" { { #line 99 "../useocc.k" ID kc_selvar_0_1 = id ; #line 99 "../useocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 411 "useocc.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 100 "../useocc.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 100 "../useocc.k" { #line 101 "../useocc.k" IDtype kc_selvar_1_1 = uid->type ; #line 101 "../useocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_1_1, "with_expression (1)"); #line 426 "useocc.c" if (( kc_selvar_1_1->prod_sel == sel_ITUserUView)) { #line 103 "../useocc.k" return True; #line 430 "useocc.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedUView)) { #line 102 "../useocc.k" return True; #line 435 "useocc.c" } else { #line 104 "../useocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1tID( "undefined unparse view:", id ))); return False; #line 440 "useocc.c" } } #line 105 "../useocc.k" #line 445 "useocc.c" } else { kc_no_default_in_with( "f_useoccuruviewname", __LINE__, __FILE__ ); return (boolean)0; } } #line 105 "../useocc.k" #line 105 "../useocc.k" } #line 454 "useocc.c" void v_useoccurrviewname #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 108 "../useocc.k" { (void) f_useoccurrviewname( id ); #line 110 "../useocc.k" } #line 468 "useocc.c" boolean f_useoccurrviewname #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 113 "../useocc.k" { { #line 114 "../useocc.k" ID kc_selvar_0_1 = id ; #line 114 "../useocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 487 "useocc.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 115 "../useocc.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 115 "../useocc.k" { #line 116 "../useocc.k" IDtype kc_selvar_1_1 = uid->type ; #line 116 "../useocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_1_1, "with_expression (1)"); #line 502 "useocc.c" if (( kc_selvar_1_1->prod_sel == sel_ITUserRView)) { #line 118 "../useocc.k" return True; #line 506 "useocc.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedRView)) { #line 117 "../useocc.k" return True; #line 511 "useocc.c" } else { #line 119 "../useocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1tID( "undefined rewrite view:", id ))); return False; #line 516 "useocc.c" } } #line 120 "../useocc.k" #line 521 "useocc.c" } else { kc_no_default_in_with( "f_useoccurrviewname", __LINE__, __FILE__ ); return (boolean)0; } } #line 120 "../useocc.k" #line 120 "../useocc.k" } #line 530 "useocc.c" void v_useoccurstorageclass #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 123 "../useocc.k" { (void) f_useoccurstorageclass( id ); #line 125 "../useocc.k" } #line 544 "useocc.c" boolean f_useoccurstorageclass #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 128 "../useocc.k" { { #line 129 "../useocc.k" ID kc_selvar_0_1 = id ; #line 129 "../useocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 563 "useocc.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 130 "../useocc.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 130 "../useocc.k" { #line 131 "../useocc.k" IDtype kc_selvar_1_1 = uid->type ; #line 131 "../useocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_1_1, "with_expression (1)"); #line 578 "useocc.c" if (( kc_selvar_1_1->prod_sel == sel_ITStorageClass)) { #line 133 "../useocc.k" return True; #line 582 "useocc.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedStorageClass)) { #line 132 "../useocc.k" return True; #line 587 "useocc.c" } else { #line 134 "../useocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1tID( "undefined storage class:", id ))); return False; #line 592 "useocc.c" } } #line 135 "../useocc.k" #line 597 "useocc.c" } else { kc_no_default_in_with( "f_useoccurstorageclass", __LINE__, __FILE__ ); return (boolean)0; } } #line 135 "../useocc.k" #line 135 "../useocc.k" } #line 606 "useocc.c" void v_useoccurpatternvariable #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 138 "../useocc.k" { (void) f_useoccurpatternvariable( id ); #line 140 "../useocc.k" } #line 620 "useocc.c" boolean f_useoccurpatternvariable #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 143 "../useocc.k" { { #line 144 "../useocc.k" ID kc_selvar_0_1 = id ; #line 144 "../useocc.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 639 "useocc.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 145 "../useocc.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 145 "../useocc.k" { #line 146 "../useocc.k" IDtype kc_selvar_1_1 = uid->type ; #line 146 "../useocc.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_1_1, "with_expression (1)"); #line 654 "useocc.c" if (( kc_selvar_1_1->prod_sel == sel_ITPatternVariable)) { #line 147 "../useocc.k" return True; #line 658 "useocc.c" } else { #line 148 "../useocc.k" v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1tID( "undefined pattern variable:", id ))); return False; #line 663 "useocc.c" } } #line 149 "../useocc.k" #line 668 "useocc.c" } else { kc_no_default_in_with( "f_useoccurpatternvariable", __LINE__, __FILE__ ); return (boolean)0; } } #line 149 "../useocc.k" #line 149 "../useocc.k" } #line 677 "useocc.c" kimwitu-4.6.1.orig/src/useocc.h0100644000176100001440000000270407076113232015700 0ustar debacleusers/* translation of file "../useocc.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #ifndef KC_FUNCTIONS_useocc_HEADER #define KC_FUNCTIONS_useocc_HEADER #define KIMW_FUNCTIONS_useocc_HEADER /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include "k.h" /* in case a user forgets */ /* included stuff */ #line 2 "../useocc.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 27 "useocc.h" /* end included stuff */ void v_useoccuroperator KC__P((ID id)); boolean f_useoccuroperator KC__P((ID id)); void v_warnifnotvariable KC__P((ID id)); boolean f_warnifnotvariable KC__P((ID id)); void v_useoccurphylum KC__P((ID id)); boolean f_useoccurphylum KC__P((ID id)); void v_useoccurlistphylum KC__P((ID id)); boolean f_useoccurlistphylum KC__P((ID id)); void v_useoccuruviewname KC__P((ID id)); boolean f_useoccuruviewname KC__P((ID id)); void v_useoccurrviewname KC__P((ID id)); boolean f_useoccurrviewname KC__P((ID id)); void v_useoccurstorageclass KC__P((ID id)); boolean f_useoccurstorageclass KC__P((ID id)); void v_useoccurpatternvariable KC__P((ID id)); boolean f_useoccurpatternvariable KC__P((ID id)); #endif /* ! KC_FUNCTIONS_useocc_HEADER */ kimwitu-4.6.1.orig/src/useocc.k0100644000176100001440000001062207076113220015676 0ustar debacleusers%{ CODE HEADER /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ %} /* * useocc.k */ %{ #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char useocc_kAccesSid[] = "@(#)$Id: useocc.k,v 1.12 1996/10/14 11:12:31 belinfan Rel $"; #endif %} /***************************************************************************/ %{ KC_TYPES_HEADER #include "useocc.h" %} void v_useoccuroperator( id ) ID id; { (void) f_useoccuroperator( id ); } boolean f_useoccuroperator( id ) ID id; { with( id ) { Id( uid ): { with( uid->type ) { ITPredefinedOperator( *, *): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "undefined operator (it's predefined, you're not supposed to use those):", id ))); return False;} ITUserOperator( *, * ): { return True; } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1tID( "undefined operator", id ))); return False; } } } } } void v_warnifnotvariable( id ) ID id; { (void) f_warnifnotvariable( id ); } boolean f_warnifnotvariable( id ) ID id; { with( id ) { Id( uid ): { with( uid->type ) { ITPatternVariable( *, * ), ITUnknown(): { return False; } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1tID( "variable expected:", id ))); return True; } } } } } void v_useoccurphylum( id ) ID id; { (void) f_useoccurphylum( id ); } boolean f_useoccurphylum( id ) ID id; { with( id ) { Id( uid ): { with( uid->type ) { ITPredefinedBigatomPhylum( * ), ITPredefinedPhylum( * ): { return True;} ITUserPhylum( * ): { return True;} default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1tID( "undefined phylum", id ))); return False; } } } } } void v_useoccurlistphylum( id ) ID id; { (void) f_useoccurlistphylum( id ); } boolean f_useoccurlistphylum( id ) ID id; { with( id ) { Id( uid ): { with( uid->type ) { ITUserPhylum( pd ): { with( pd ) { PhylumDeclaration( *, *, Emptyproductionblock(), * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "undefined list phylum (the productionblock is empty):", id ))); return False; } PhylumDeclaration( *, *, ListAlternatives( *, * ), * ): { return True; } PhylumDeclaration( *, *, NonlistAlternatives( * ), * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "undefined list phylum (it's a non-list phylum):", id ))); return False; } PhylumDeclaration( *, *, PredefinedAlternatives( * ), * ): { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1ID( "undefined list phylum (it's a predefined phylum):", id ))); return False; } } } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1tID( "undefined list phylum", id ))); return False; } } } } } void v_useoccuruviewname( id ) ID id; { (void) f_useoccuruviewname( id ); } boolean f_useoccuruviewname( id ) ID id; { with( id ) { Id( uid ): { with( uid->type ) { ITPredefinedUView(): { return True; } ITUserUView(): { return True; } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1tID( "undefined unparse view:", id ))); return False; } } } } } void v_useoccurrviewname( id ) ID id; { (void) f_useoccurrviewname( id ); } boolean f_useoccurrviewname( id ) ID id; { with( id ) { Id( uid ): { with( uid->type ) { ITPredefinedRView(): { return True; } ITUserRView(): { return True; } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1tID( "undefined rewrite view:", id ))); return False; } } } } } void v_useoccurstorageclass( id ) ID id; { (void) f_useoccurstorageclass( id ); } boolean f_useoccurstorageclass( id ) ID id; { with( id ) { Id( uid ): { with( uid->type ) { ITPredefinedStorageClass(): { return True; } ITStorageClass(): { return True; } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1tID( "undefined storage class:", id ))); return False; } } } } } void v_useoccurpatternvariable( id ) ID id; { (void) f_useoccurpatternvariable( id ); } boolean f_useoccurpatternvariable( id ) ID id; { with( id ) { Id( uid ): { with( uid->type ) { ITPatternVariable( *, * ): { return True; } default: { v_report(NonFatal( FileLine( id->file, id->line ), Problem1S1tID( "undefined pattern variable:", id ))); return False; } } } } } kimwitu-4.6.1.orig/src/util.c0100644000176100001440000021741207076113222015372 0ustar debacleusers/* translation of file "../util.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #define KC_FUNCTIONS_util #define KIMW_FUNCTIONS_util /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include #ifdef KC_STDC # include #endif #include "k.h" /* included stuff */ #line 2 "../util.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 29 "util.c" #line 14 "../util.k" #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char util_kAccesSid[] = "@(#)$Id: util.k,v 1.28 1997/05/26 16:10:31 belinfan Rel $"; #endif #line 35 "util.c" #line 37 "../util.k" addedphylumdeclarations pl_addedphylumdeclarations = 0; #line 39 "util.c" #line 81 "../util.k" countedphylumdeclarations pl_countedphylumdeclarations = 0; #line 43 "util.c" #line 147 "../util.k" operators cg_bigatomoperators = 0; /* global big-atoms operators */ phyla cg_bigatomphyla = 0; /* global big-atoms phyla */ #line 48 "util.c" #line 247 "../util.k" #include /* for strcmp */ #line 52 "util.c" #line 1557 "../util.k" #include "parse.h" /* for f_lookupdecl */ #line 56 "util.c" /* end included stuff */ #include "util.h" static ID f_do_check_unpattributes_in_phylum KC__P((unpattributes a, ID p)); static void v_do_check_dollarvar_in_operators KC__P((INT i, operators o, ID p)); static ID f_do_subphylum KC__P((arguments a, INT i, int a_i)); static argument f_do_argument KC__P((arguments a, INT i, int a_i)); static alternative f_do_alternative KC__P((alternatives a, INT i, int a_i)); static storageclasses do_add_to_storageclasses KC__P((ID v, ID p, storageclasses s, storageclasses all)); boolean f_added #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 58 "../util.k" { { #line 59 "../util.k" ID kc_selvar_0_1 = id ; #line 59 "../util.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 83 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 60 "../util.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 60 "../util.k" return AddedPhylumdeclaration( uid )->added; #line 91 "util.c" } else { kc_no_default_in_with( "f_added", __LINE__, __FILE__ ); return (boolean)0; } } #line 62 "../util.k" #line 62 "../util.k" } #line 100 "util.c" void v_add #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 65 "../util.k" { { #line 66 "../util.k" ID kc_selvar_0_1 = id ; #line 66 "../util.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 119 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 67 "../util.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 67 "../util.k" AddedPhylumdeclaration( uid )->added = True; #line 127 "util.c" } else kc_no_default_in_with( "v_add", __LINE__, __FILE__ ); } #line 69 "../util.k" #line 69 "../util.k" } #line 135 "util.c" void v_freeadded #ifdef KC_USE_PROTOTYPES (void) #else () #endif #line 72 "../util.k" { free_addedphylumdeclarations( pl_addedphylumdeclarations, True ); pl_addedphylumdeclarations = 0; #line 75 "../util.k" } #line 150 "util.c" int f_getcount #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 108 "../util.k" { { #line 109 "../util.k" ID kc_selvar_0_1 = id ; #line 109 "../util.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 169 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 110 "../util.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 110 "../util.k" return ++(CountedPhylumdeclaration( uid ) -> count); #line 177 "util.c" } else { kc_no_default_in_with( "f_getcount", __LINE__, __FILE__ ); return (int)0; } } #line 112 "../util.k" #line 112 "../util.k" } #line 186 "util.c" void v_resetcount #ifdef KC_USE_PROTOTYPES (void) #else () #endif #line 115 "../util.k" { if (pl_countedphylumdeclarations) { { #line 117 "../util.k" countedphylumdeclarations kc_fe_selvar_1 = pl_countedphylumdeclarations ; #line 117 "../util.k" /*SUPPRESS 622*/ assert_countedphylumdeclarations(kc_fe_selvar_1, "foreach_list_expression"); #line 204 "util.c" while( kc_fe_selvar_1->prod_sel == sel_Conscountedphylumdeclarations ) { countedphylumdeclaration kc_selvar_0_1 = kc_fe_selvar_1->u.Conscountedphylumdeclarations.countedphylumdeclaration_1; { #line 117 "../util.k" { #line 117 "../util.k" /*SUPPRESS 622*/ assert_countedphylumdeclaration(kc_selvar_0_1, "with_expression (1)"); #line 216 "util.c" { #line 117 "../util.k" countedphylumdeclaration c = kc_selvar_0_1; #line 117 "../util.k" c->count = 0; #line 224 "util.c" } } #line 228 "util.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Conscountedphylumdeclarations.countedphylumdeclarations_1; #line 117 "../util.k" /*SUPPRESS 622*/ assert_countedphylumdeclarations(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 235 "util.c" } } #line 120 "../util.k" } #line 121 "../util.k" } #line 243 "util.c" void v_freecount #ifdef KC_USE_PROTOTYPES (void) #else () #endif #line 124 "../util.k" { if (pl_countedphylumdeclarations) { v_resetcount(); free_countedphylumdeclarations( pl_countedphylumdeclarations, True ); pl_countedphylumdeclarations = 0; } #line 130 "../util.k" } #line 261 "util.c" boolean f_isbigatom #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 250 "../util.k" { { #line 251 "../util.k" ID kc_selvar_0_1 = id ; #line 251 "../util.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 280 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 252 "../util.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 252 "../util.k" { #line 253 "../util.k" IDtype kc_selvar_1_1 = uid->type ; #line 253 "../util.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_1_1, "with_expression (1)"); #line 295 "util.c" if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 254 "../util.k" return True; #line 299 "util.c" } else { #line 255 "../util.k" return False; #line 304 "util.c" } } #line 256 "../util.k" #line 309 "util.c" } else { kc_no_default_in_with( "f_isbigatom", __LINE__, __FILE__ ); return (boolean)0; } } #line 256 "../util.k" #line 256 "../util.k" } #line 318 "util.c" boolean f_DvIsDisallowed #ifdef KC_USE_PROTOTYPES (dollarvarstatus dvs) #else (dvs) dollarvarstatus dvs; #endif #line 1215 "../util.k" {{ #line 1214 "../util.k" dollarvarstatus kc_selvar_0_1 = dvs; #line 1214 "../util.k" /*SUPPRESS 622*/ assert_dollarvarstatus(kc_selvar_0_1, "with_expression (1)"); #line 334 "util.c" if (( kc_selvar_0_1->prod_sel == sel_DVDisallowed)) { #line 1217 "../util.k" return True; #line 338 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_DVAllowed)) { #line 1216 "../util.k" return False; #line 343 "util.c" } else { kc_no_default_in_with( "f_DvIsDisallowed", __LINE__, __FILE__ ); return (boolean)0; } } #line 1218 "../util.k" } #line 351 "util.c" ID f_listelementphylum #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 1221 "../util.k" {{ #line 1220 "../util.k" ID kc_selvar_0_1 = id; #line 1220 "../util.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 367 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 1222 "../util.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 1222 "../util.k" { #line 1223 "../util.k" IDtype kc_selvar_1_1 = uid->type ; #line 1223 "../util.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_1_1, "with_expression (1)"); #line 382 "util.c" if (( kc_selvar_1_1->prod_sel == sel_ITPatternVariable)) { #line 1251 "../util.k" return f_emptyId(); #line 386 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserRView)) { #line 1251 "../util.k" return f_emptyId(); #line 391 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedRView)) { #line 1251 "../util.k" return f_emptyId(); #line 396 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserUView)) { #line 1251 "../util.k" return f_emptyId(); #line 401 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedUView)) { #line 1251 "../util.k" return f_emptyId(); #line 406 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserFunction)) { #line 1251 "../util.k" return f_emptyId(); #line 411 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITStorageClass)) { #line 1251 "../util.k" return f_emptyId(); #line 416 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedStorageClass)) { #line 1251 "../util.k" return f_emptyId(); #line 421 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserOperator)) { #line 1251 "../util.k" return f_emptyId(); #line 426 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedOperator)) { #line 1251 "../util.k" return f_emptyId(); #line 431 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserPhylum)) { #line 1227 "../util.k" phylumdeclaration pd = kc_selvar_1_1->u.ITUserPhylum.phylumdeclaration_1; #line 1227 "../util.k" { #line 1228 "../util.k" phylumdeclaration kc_selvar_2_1 = pd ; #line 1228 "../util.k" /*SUPPRESS 622*/ assert_phylumdeclaration(kc_selvar_2_1, "with_expression (1)"); #line 447 "util.c" if (( kc_selvar_2_1->prod_sel == sel_PhylumDeclaration) && ( kc_selvar_2_1->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 1238 "../util.k" return f_emptyId(); #line 453 "util.c" } else if (( kc_selvar_2_1->prod_sel == sel_PhylumDeclaration) && ( kc_selvar_2_1->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 1235 "../util.k" return f_emptyId(); #line 460 "util.c" } else if (( kc_selvar_2_1->prod_sel == sel_PhylumDeclaration) && ( kc_selvar_2_1->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives)) { #line 1232 "../util.k" ID i = kc_selvar_2_1->u.PhylumDeclaration.productionblock_1->u.ListAlternatives.ID_1; #line 1232 "../util.k" return i; #line 469 "util.c" } else if (( kc_selvar_2_1->prod_sel == sel_PhylumDeclaration) && ( kc_selvar_2_1->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 1229 "../util.k" return f_emptyId(); #line 476 "util.c" } else { kc_no_default_in_with( "f_listelementphylum", __LINE__, __FILE__ ); return (ID)0; } } #line 1241 "../util.k" #line 483 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedPhylum)) { #line 1226 "../util.k" return f_emptyId(); #line 488 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 1226 "../util.k" return f_emptyId(); #line 493 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUnknown)) { #line 1226 "../util.k" return f_emptyId(); #line 498 "util.c" } else { kc_no_default_in_with( "f_listelementphylum", __LINE__, __FILE__ ); return (ID)0; } } #line 1252 "../util.k" #line 505 "util.c" } else { kc_no_default_in_with( "f_listelementphylum", __LINE__, __FILE__ ); return (ID)0; } } #line 1252 "../util.k" } #line 513 "util.c" ID f_listelementconsoperator #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 1255 "../util.k" {{ #line 1254 "../util.k" ID kc_selvar_0_1 = id; #line 1254 "../util.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 529 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 1256 "../util.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 1256 "../util.k" { #line 1257 "../util.k" IDtype kc_selvar_1_1 = uid->type ; #line 1257 "../util.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_1_1, "with_expression (1)"); #line 544 "util.c" if (( kc_selvar_1_1->prod_sel == sel_ITPatternVariable)) { #line 1287 "../util.k" return f_emptyId(); #line 548 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserRView)) { #line 1287 "../util.k" return f_emptyId(); #line 553 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedRView)) { #line 1287 "../util.k" return f_emptyId(); #line 558 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserUView)) { #line 1287 "../util.k" return f_emptyId(); #line 563 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedUView)) { #line 1287 "../util.k" return f_emptyId(); #line 568 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserFunction)) { #line 1287 "../util.k" return f_emptyId(); #line 573 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITStorageClass)) { #line 1287 "../util.k" return f_emptyId(); #line 578 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedStorageClass)) { #line 1287 "../util.k" return f_emptyId(); #line 583 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserOperator)) { #line 1287 "../util.k" return f_emptyId(); #line 588 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedOperator)) { #line 1287 "../util.k" return f_emptyId(); #line 593 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserPhylum)) { #line 1261 "../util.k" phylumdeclaration pd = kc_selvar_1_1->u.ITUserPhylum.phylumdeclaration_1; #line 1261 "../util.k" { #line 1262 "../util.k" phylumdeclaration kc_selvar_2_1 = pd ; #line 1262 "../util.k" /*SUPPRESS 622*/ assert_phylumdeclaration(kc_selvar_2_1, "with_expression (1)"); #line 609 "util.c" if (( kc_selvar_2_1->prod_sel == sel_PhylumDeclaration) && ( kc_selvar_2_1->u.PhylumDeclaration.productionblock_1->prod_sel == sel_ListAlternatives) && ( kc_selvar_2_1->u.PhylumDeclaration.productionblock_1->u.ListAlternatives.alternatives_1->prod_sel == sel_Consalternatives) && ( kc_selvar_2_1->u.PhylumDeclaration.productionblock_1->u.ListAlternatives.alternatives_1->u.Consalternatives.alternative_1->prod_sel == sel_Alternative)) { #line 1268 "../util.k" ID Cons_id = kc_selvar_2_1->u.PhylumDeclaration.productionblock_1->u.ListAlternatives.alternatives_1->u.Consalternatives.alternative_1->u.Alternative.ID_1; #line 1268 "../util.k" return Cons_id; #line 617 "util.c" } else if (( kc_selvar_2_1->prod_sel == sel_PhylumDeclaration) && ( kc_selvar_2_1->u.PhylumDeclaration.productionblock_1->prod_sel == sel_PredefinedAlternatives)) { #line 1274 "../util.k" return f_emptyId(); #line 624 "util.c" } else if (( kc_selvar_2_1->prod_sel == sel_PhylumDeclaration) && ( kc_selvar_2_1->u.PhylumDeclaration.productionblock_1->prod_sel == sel_NonlistAlternatives)) { #line 1271 "../util.k" return f_emptyId(); #line 631 "util.c" } else if (( kc_selvar_2_1->prod_sel == sel_PhylumDeclaration) && ( kc_selvar_2_1->u.PhylumDeclaration.productionblock_1->prod_sel == sel_Emptyproductionblock)) { #line 1263 "../util.k" return f_emptyId(); #line 638 "util.c" } else { kc_no_default_in_with( "f_listelementconsoperator", __LINE__, __FILE__ ); return (ID)0; } } #line 1277 "../util.k" #line 645 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedPhylum)) { #line 1260 "../util.k" return f_emptyId(); #line 650 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 1260 "../util.k" return f_emptyId(); #line 655 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUnknown)) { #line 1260 "../util.k" return f_emptyId(); #line 660 "util.c" } else { kc_no_default_in_with( "f_listelementconsoperator", __LINE__, __FILE__ ); return (ID)0; } } #line 1288 "../util.k" #line 667 "util.c" } else { kc_no_default_in_with( "f_listelementconsoperator", __LINE__, __FILE__ ); return (ID)0; } } #line 1288 "../util.k" } #line 675 "util.c" ID f_emptyId #ifdef KC_USE_PROTOTYPES (void) #else () #endif #line 1294 "../util.k" { static ID emptyID = 0; if (! emptyID) { emptyID = Id (Str( mkcasestring( "" ))); } return emptyID; #line 1300 "../util.k" } #line 693 "util.c" boolean f_operatorinphylum #ifdef KC_USE_PROTOTYPES (ID oid, ID pid) #else (oid, pid) ID oid; ID pid; #endif #line 1303 "../util.k" {{ #line 1302 "../util.k" ID kc_selvar_0_1 = oid; #line 1302 "../util.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 710 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 1304 "../util.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 1304 "../util.k" { #line 1305 "../util.k" IDtype kc_selvar_1_1 = uid->type ; #line 1305 "../util.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_1_1, "with_expression (1)"); #line 725 "util.c" if (( kc_selvar_1_1->prod_sel == sel_ITPatternVariable)) { #line 1319 "../util.k" return False; #line 729 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserRView)) { #line 1319 "../util.k" return False; #line 734 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedRView)) { #line 1319 "../util.k" return False; #line 739 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserUView)) { #line 1319 "../util.k" return False; #line 744 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedUView)) { #line 1319 "../util.k" return False; #line 749 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserFunction)) { #line 1319 "../util.k" return False; #line 754 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITStorageClass)) { #line 1319 "../util.k" return False; #line 759 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedStorageClass)) { #line 1319 "../util.k" return False; #line 764 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserOperator)) { #line 1311 "../util.k" ID id = kc_selvar_1_1->u.ITUserOperator.ID_1; #line 1311 "../util.k" return eq_ID( pid, id ); #line 771 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedOperator)) { #line 1310 "../util.k" return False; #line 776 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserPhylum)) { #line 1310 "../util.k" return False; #line 781 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedPhylum)) { #line 1310 "../util.k" return False; #line 786 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 1310 "../util.k" return False; #line 791 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUnknown)) { #line 1310 "../util.k" return False; #line 796 "util.c" } else { kc_no_default_in_with( "f_operatorinphylum", __LINE__, __FILE__ ); return (boolean)0; } } #line 1320 "../util.k" #line 803 "util.c" } else { kc_no_default_in_with( "f_operatorinphylum", __LINE__, __FILE__ ); return (boolean)0; } } #line 1320 "../util.k" } #line 811 "util.c" boolean f_isphylum #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 1323 "../util.k" {{ #line 1322 "../util.k" ID kc_selvar_0_1 = id; #line 1322 "../util.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 827 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 1324 "../util.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 1324 "../util.k" { #line 1325 "../util.k" IDtype kc_selvar_1_1 = uid->type ; #line 1325 "../util.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_1_1, "with_expression (1)"); #line 842 "util.c" if (( kc_selvar_1_1->prod_sel == sel_ITPatternVariable)) { #line 1339 "../util.k" return False; #line 846 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserRView)) { #line 1339 "../util.k" return False; #line 851 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedRView)) { #line 1339 "../util.k" return False; #line 856 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserUView)) { #line 1339 "../util.k" return False; #line 861 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedUView)) { #line 1339 "../util.k" return False; #line 866 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserFunction)) { #line 1339 "../util.k" return False; #line 871 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITStorageClass)) { #line 1339 "../util.k" return False; #line 876 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedStorageClass)) { #line 1339 "../util.k" return False; #line 881 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserOperator)) { #line 1339 "../util.k" return False; #line 886 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedOperator)) { #line 1339 "../util.k" return False; #line 891 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserPhylum)) { #line 1329 "../util.k" return True; #line 896 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedPhylum)) { #line 1329 "../util.k" return True; #line 901 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 1329 "../util.k" return True; #line 906 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUnknown)) { #line 1326 "../util.k" return False; #line 911 "util.c" } else { kc_no_default_in_with( "f_isphylum", __LINE__, __FILE__ ); return (boolean)0; } } #line 1340 "../util.k" #line 918 "util.c" } else { kc_no_default_in_with( "f_isphylum", __LINE__, __FILE__ ); return (boolean)0; } } #line 1340 "../util.k" } #line 926 "util.c" boolean f_ispredefinedphylum #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 1343 "../util.k" {{ #line 1342 "../util.k" ID kc_selvar_0_1 = id; #line 1342 "../util.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 942 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 1344 "../util.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 1344 "../util.k" { #line 1345 "../util.k" IDtype kc_selvar_1_1 = uid->type ; #line 1345 "../util.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_1_1, "with_expression (1)"); #line 957 "util.c" if (( kc_selvar_1_1->prod_sel == sel_ITPatternVariable)) { #line 1359 "../util.k" return False; #line 961 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserRView)) { #line 1359 "../util.k" return False; #line 966 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedRView)) { #line 1359 "../util.k" return False; #line 971 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserUView)) { #line 1359 "../util.k" return False; #line 976 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedUView)) { #line 1359 "../util.k" return False; #line 981 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserFunction)) { #line 1359 "../util.k" return False; #line 986 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITStorageClass)) { #line 1359 "../util.k" return False; #line 991 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedStorageClass)) { #line 1359 "../util.k" return False; #line 996 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserOperator)) { #line 1359 "../util.k" return False; #line 1001 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedOperator)) { #line 1359 "../util.k" return False; #line 1006 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserPhylum)) { #line 1359 "../util.k" return False; #line 1011 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedPhylum)) { #line 1348 "../util.k" return True; #line 1016 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 1348 "../util.k" return True; #line 1021 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUnknown)) { #line 1346 "../util.k" return False; #line 1026 "util.c" } else { kc_no_default_in_with( "f_ispredefinedphylum", __LINE__, __FILE__ ); return (boolean)0; } } #line 1360 "../util.k" #line 1033 "util.c" } else { kc_no_default_in_with( "f_ispredefinedphylum", __LINE__, __FILE__ ); return (boolean)0; } } #line 1360 "../util.k" } #line 1041 "util.c" alternative f_alternativeofoperator #ifdef KC_USE_PROTOTYPES (ID oid) #else (oid) ID oid; #endif #line 1363 "../util.k" {{ #line 1362 "../util.k" ID kc_selvar_0_1 = oid; #line 1362 "../util.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 1057 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 1364 "../util.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 1364 "../util.k" { #line 1365 "../util.k" IDtype kc_selvar_1_1 = uid->type ; #line 1365 "../util.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_1_1, "with_expression (1)"); #line 1072 "util.c" if (( kc_selvar_1_1->prod_sel == sel_ITPatternVariable)) { #line 1379 "../util.k" return (alternative)0; #line 1076 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserRView)) { #line 1379 "../util.k" return (alternative)0; #line 1081 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedRView)) { #line 1379 "../util.k" return (alternative)0; #line 1086 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserUView)) { #line 1379 "../util.k" return (alternative)0; #line 1091 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedUView)) { #line 1379 "../util.k" return (alternative)0; #line 1096 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserFunction)) { #line 1379 "../util.k" return (alternative)0; #line 1101 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITStorageClass)) { #line 1379 "../util.k" return (alternative)0; #line 1106 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedStorageClass)) { #line 1379 "../util.k" return (alternative)0; #line 1111 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserOperator)) { #line 1371 "../util.k" alternative a = kc_selvar_1_1->u.ITUserOperator.alternative_1; #line 1371 "../util.k" return a; #line 1118 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedOperator)) { #line 1370 "../util.k" return (alternative)0; #line 1123 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserPhylum)) { #line 1370 "../util.k" return (alternative)0; #line 1128 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedPhylum)) { #line 1370 "../util.k" return (alternative)0; #line 1133 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 1370 "../util.k" return (alternative)0; #line 1138 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUnknown)) { #line 1370 "../util.k" return (alternative)0; #line 1143 "util.c" } else { kc_no_default_in_with( "f_alternativeofoperator", __LINE__, __FILE__ ); return (alternative)0; } } #line 1380 "../util.k" #line 1150 "util.c" } else { kc_no_default_in_with( "f_alternativeofoperator", __LINE__, __FILE__ ); return (alternative)0; } } #line 1380 "../util.k" } #line 1158 "util.c" arguments f_argumentsofoperator #ifdef KC_USE_PROTOTYPES (ID oid) #else (oid) ID oid; #endif #line 1383 "../util.k" {{ #line 1382 "../util.k" ID kc_selvar_0_1 = oid; #line 1382 "../util.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 1174 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 1384 "../util.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 1384 "../util.k" { #line 1385 "../util.k" IDtype kc_selvar_1_1 = uid->type ; #line 1385 "../util.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_1_1, "with_expression (1)"); #line 1189 "util.c" if (( kc_selvar_1_1->prod_sel == sel_ITUserOperator) && ( kc_selvar_1_1->u.ITUserOperator.alternative_1->prod_sel == sel_Alternative)) { #line 1391 "../util.k" arguments args = kc_selvar_1_1->u.ITUserOperator.alternative_1->u.Alternative.arguments_1; #line 1391 "../util.k" return args; #line 1195 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPatternVariable)) { #line 1399 "../util.k" return Nilarguments(); #line 1200 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserRView)) { #line 1399 "../util.k" return Nilarguments(); #line 1205 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedRView)) { #line 1399 "../util.k" return Nilarguments(); #line 1210 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserUView)) { #line 1399 "../util.k" return Nilarguments(); #line 1215 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedUView)) { #line 1399 "../util.k" return Nilarguments(); #line 1220 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserFunction)) { #line 1399 "../util.k" return Nilarguments(); #line 1225 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITStorageClass)) { #line 1399 "../util.k" return Nilarguments(); #line 1230 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedStorageClass)) { #line 1399 "../util.k" return Nilarguments(); #line 1235 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedOperator)) { #line 1390 "../util.k" return Nilarguments(); #line 1240 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserPhylum)) { #line 1390 "../util.k" return Nilarguments(); #line 1245 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedPhylum)) { #line 1390 "../util.k" return Nilarguments(); #line 1250 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 1390 "../util.k" return Nilarguments(); #line 1255 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUnknown)) { #line 1390 "../util.k" return Nilarguments(); #line 1260 "util.c" } else { kc_no_default_in_with( "f_argumentsofoperator", __LINE__, __FILE__ ); return (arguments)0; } } #line 1400 "../util.k" #line 1267 "util.c" } else { kc_no_default_in_with( "f_argumentsofoperator", __LINE__, __FILE__ ); return (arguments)0; } } #line 1400 "../util.k" } #line 1275 "util.c" ID f_phylumofoperator #ifdef KC_USE_PROTOTYPES (ID oid) #else (oid) ID oid; #endif #line 1403 "../util.k" {{ #line 1402 "../util.k" ID kc_selvar_0_1 = oid; #line 1402 "../util.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 1291 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 1404 "../util.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 1404 "../util.k" { #line 1405 "../util.k" IDtype kc_selvar_1_1 = uid->type ; #line 1405 "../util.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_1_1, "with_expression (1)"); #line 1306 "util.c" if (( kc_selvar_1_1->prod_sel == sel_ITPatternVariable)) { #line 1419 "../util.k" return f_emptyId(); #line 1310 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserRView)) { #line 1419 "../util.k" return f_emptyId(); #line 1315 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedRView)) { #line 1419 "../util.k" return f_emptyId(); #line 1320 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserUView)) { #line 1419 "../util.k" return f_emptyId(); #line 1325 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedUView)) { #line 1419 "../util.k" return f_emptyId(); #line 1330 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserFunction)) { #line 1419 "../util.k" return f_emptyId(); #line 1335 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITStorageClass)) { #line 1419 "../util.k" return f_emptyId(); #line 1340 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedStorageClass)) { #line 1419 "../util.k" return f_emptyId(); #line 1345 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserOperator)) { #line 1411 "../util.k" ID id = kc_selvar_1_1->u.ITUserOperator.ID_1; #line 1411 "../util.k" return id; #line 1352 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedOperator)) { #line 1410 "../util.k" return f_emptyId(); #line 1357 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserPhylum)) { #line 1410 "../util.k" return f_emptyId(); #line 1362 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedPhylum)) { #line 1410 "../util.k" return f_emptyId(); #line 1367 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 1410 "../util.k" return f_emptyId(); #line 1372 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUnknown)) { #line 1410 "../util.k" return f_emptyId(); #line 1377 "util.c" } else { kc_no_default_in_with( "f_phylumofoperator", __LINE__, __FILE__ ); return (ID)0; } } #line 1420 "../util.k" #line 1384 "util.c" } else { kc_no_default_in_with( "f_phylumofoperator", __LINE__, __FILE__ ); return (ID)0; } } #line 1420 "../util.k" } #line 1392 "util.c" ID f_phylumofpatternID #ifdef KC_USE_PROTOTYPES (ID vid) #else (vid) ID vid; #endif #line 1423 "../util.k" { { #line 1424 "../util.k" IDtype kc_selvar_0_1 = vid->type ; #line 1424 "../util.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_0_1, "with_expression (1)"); #line 1411 "util.c" if (( kc_selvar_0_1->prod_sel == sel_ITPatternVariable)) { #line 1438 "../util.k" ID id = kc_selvar_0_1->u.ITPatternVariable.ID_1; #line 1438 "../util.k" return id; #line 1417 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITUserRView)) { #line 1437 "../util.k" return f_emptyId(); #line 1422 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITPredefinedRView)) { #line 1437 "../util.k" return f_emptyId(); #line 1427 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITUserUView)) { #line 1437 "../util.k" return f_emptyId(); #line 1432 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITPredefinedUView)) { #line 1437 "../util.k" return f_emptyId(); #line 1437 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITUserFunction)) { #line 1437 "../util.k" return f_emptyId(); #line 1442 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITStorageClass)) { #line 1437 "../util.k" return f_emptyId(); #line 1447 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITPredefinedStorageClass)) { #line 1437 "../util.k" return f_emptyId(); #line 1452 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITUserOperator)) { #line 1437 "../util.k" return f_emptyId(); #line 1457 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITPredefinedOperator)) { #line 1437 "../util.k" return f_emptyId(); #line 1462 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITUserPhylum)) { #line 1437 "../util.k" return f_emptyId(); #line 1467 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITPredefinedPhylum)) { #line 1437 "../util.k" return f_emptyId(); #line 1472 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 1437 "../util.k" return f_emptyId(); #line 1477 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_ITUnknown)) { #line 1437 "../util.k" return f_emptyId(); #line 1482 "util.c" } else { kc_no_default_in_with( "f_phylumofpatternID", __LINE__, __FILE__ ); return (ID)0; } } #line 1439 "../util.k" #line 1439 "../util.k" } #line 1491 "util.c" ID f_phylumofpatternvariable #ifdef KC_USE_PROTOTYPES (ID vid) #else (vid) ID vid; #endif #line 1442 "../util.k" {{ #line 1441 "../util.k" ID kc_selvar_0_1 = vid; #line 1441 "../util.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 1507 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 1443 "../util.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 1443 "../util.k" { #line 1444 "../util.k" IDtype kc_selvar_1_1 = uid->type ; #line 1444 "../util.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_1_1, "with_expression (1)"); #line 1522 "util.c" if (( kc_selvar_1_1->prod_sel == sel_ITPatternVariable)) { #line 1458 "../util.k" ID id = kc_selvar_1_1->u.ITPatternVariable.ID_1; #line 1458 "../util.k" return id; #line 1528 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserRView)) { #line 1457 "../util.k" return f_emptyId(); #line 1533 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedRView)) { #line 1457 "../util.k" return f_emptyId(); #line 1538 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserUView)) { #line 1457 "../util.k" return f_emptyId(); #line 1543 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedUView)) { #line 1457 "../util.k" return f_emptyId(); #line 1548 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserFunction)) { #line 1457 "../util.k" return f_emptyId(); #line 1553 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITStorageClass)) { #line 1457 "../util.k" return f_emptyId(); #line 1558 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedStorageClass)) { #line 1457 "../util.k" return f_emptyId(); #line 1563 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserOperator)) { #line 1457 "../util.k" return f_emptyId(); #line 1568 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedOperator)) { #line 1457 "../util.k" return f_emptyId(); #line 1573 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUserPhylum)) { #line 1457 "../util.k" return f_emptyId(); #line 1578 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedPhylum)) { #line 1457 "../util.k" return f_emptyId(); #line 1583 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 1457 "../util.k" return f_emptyId(); #line 1588 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ITUnknown)) { #line 1457 "../util.k" return f_emptyId(); #line 1593 "util.c" } else { kc_no_default_in_with( "f_phylumofpatternvariable", __LINE__, __FILE__ ); return (ID)0; } } #line 1459 "../util.k" #line 1600 "util.c" } else { kc_no_default_in_with( "f_phylumofpatternvariable", __LINE__, __FILE__ ); return (ID)0; } } #line 1459 "../util.k" } #line 1608 "util.c" void v_syn_type_attribute_ID #ifdef KC_USE_PROTOTYPES (ID id) #else (id) ID id; #endif #line 1462 "../util.k" {{ #line 1461 "../util.k" ID kc_selvar_0_1 = id; #line 1461 "../util.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 1624 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Id)) { #line 1463 "../util.k" uniqID uid = kc_selvar_0_1->u.Id.uniqID_1; #line 1463 "../util.k" { #line 1464 "../util.k" IDtype kc_selvar_1_1 = uid->type ; #line 1464 "../util.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_1_1, "with_expression (1)"); #line 1639 "util.c" if (( kc_selvar_1_1->prod_sel == sel_ITPatternVariable)) { #line 1465 "../util.k" id->type = uid->type; #line 1643 "util.c" } else { #line 1466 "../util.k" {/*EMPTY*/} #line 1648 "util.c" } } #line 1467 "../util.k" #line 1653 "util.c" } else kc_no_default_in_with( "v_syn_type_attribute_ID", __LINE__, __FILE__ ); } #line 1467 "../util.k" } #line 1660 "util.c" boolean f_Nilarguments #ifdef KC_USE_PROTOTYPES (arguments a) #else (a) arguments a; #endif #line 1470 "../util.k" {{ #line 1469 "../util.k" arguments kc_selvar_0_1 = a; #line 1469 "../util.k" /*SUPPRESS 622*/ assert_arguments(kc_selvar_0_1, "with_expression (1)"); #line 1676 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Consarguments)) { #line 1472 "../util.k" return False; #line 1680 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilarguments)) { #line 1471 "../util.k" return True; #line 1685 "util.c" } else { kc_no_default_in_with( "f_Nilarguments", __LINE__, __FILE__ ); return (boolean)0; } } #line 1473 "../util.k" } #line 1693 "util.c" ID f_hd_arguments #ifdef KC_USE_PROTOTYPES (arguments a) #else (a) arguments a; #endif #line 1476 "../util.k" {{ #line 1475 "../util.k" arguments kc_selvar_0_1 = a; #line 1475 "../util.k" /*SUPPRESS 622*/ assert_arguments(kc_selvar_0_1, "with_expression (1)"); #line 1709 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Consarguments)) { #line 1482 "../util.k" ID hd = kc_selvar_0_1->u.Consarguments.ID_1; #line 1482 "../util.k" return hd; #line 1715 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilarguments)) { #line 1477 "../util.k" /*SUPPRESS 622*/ assert(kc_zero_constant); return (ID)0; #line 1724 "util.c" } else { kc_no_default_in_with( "f_hd_arguments", __LINE__, __FILE__ ); return (ID)0; } } #line 1483 "../util.k" } #line 1732 "util.c" arguments f_tl_arguments #ifdef KC_USE_PROTOTYPES (arguments a) #else (a) arguments a; #endif #line 1486 "../util.k" {{ #line 1485 "../util.k" arguments kc_selvar_0_1 = a; #line 1485 "../util.k" /*SUPPRESS 622*/ assert_arguments(kc_selvar_0_1, "with_expression (1)"); #line 1748 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Consarguments)) { #line 1492 "../util.k" arguments tl = kc_selvar_0_1->u.Consarguments.arguments_1; #line 1492 "../util.k" return tl; #line 1754 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilarguments)) { #line 1487 "../util.k" /*SUPPRESS 622*/ assert( kc_zero_constant ); return (arguments)0; #line 1763 "util.c" } else { kc_no_default_in_with( "f_tl_arguments", __LINE__, __FILE__ ); return (arguments)0; } } #line 1493 "../util.k" } #line 1771 "util.c" void v_check_dollarvar_attribute_in_operators #ifdef KC_USE_PROTOTYPES (INT i, unpattributes a, operators o) #else (i, a, o) INT i; unpattributes a; operators o; #endif #line 1497 "../util.k" {{ #line 1496 "../util.k" operators kc_selvar_0_1 = o; #line 1496 "../util.k" /*SUPPRESS 622*/ assert_operators(kc_selvar_0_1, "with_expression (1)"); #line 1789 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Consoperators)) { #line 1499 "../util.k" ID o_o = kc_selvar_0_1->u.Consoperators.ID_1; #line 1499 "../util.k" operators o_os = kc_selvar_0_1->u.Consoperators.operators_1; #line 1499 "../util.k" ID phy = f_subphylumofoperator( o_o, i ); if (eq_ID(phy, f_emptyId())) { v_report(NonFatal( FileLine( i->file, i->line ), Problem1S1INT1S1ID( "illegal dollar variable", i, "not that many subterms in operator", o_o ))); } else { (void)f_check_unpattributes_in_phylum( a, phy ); v_do_check_dollarvar_in_operators( i, o_os, phy ); } #line 1806 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_Niloperators)) { #line 1498 "../util.k" {/*EMPTY*/} #line 1811 "util.c" } else kc_no_default_in_with( "v_check_dollarvar_attribute_in_operators", __LINE__, __FILE__ ); } #line 1508 "../util.k" } #line 1818 "util.c" ID f_check_unpattributes_in_phylum #ifdef KC_USE_PROTOTYPES (unpattributes a, ID p) #else (a, p) unpattributes a; ID p; #endif #line 1511 "../util.k" { ID tmp; unpattributes t = reverse_unpattributes( a ); tmp = f_do_check_unpattributes_in_phylum( t, p ); freelist_unpattributes( t ); return tmp; #line 1517 "../util.k" } #line 1837 "util.c" static ID f_do_check_unpattributes_in_phylum #ifdef KC_USE_PROTOTYPES (unpattributes a, ID p) #else (a, p) unpattributes a; ID p; #endif #line 1527 "../util.k" {{ #line 1526 "../util.k" unpattributes kc_selvar_0_1 = a; #line 1526 "../util.k" /*SUPPRESS 622*/ assert_unpattributes(kc_selvar_0_1, "with_expression (1)"); #line 1854 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Consunpattributes)) { #line 1529 "../util.k" ID a_id = kc_selvar_0_1->u.Consunpattributes.ID_1; #line 1529 "../util.k" unpattributes r_a = kc_selvar_0_1->u.Consunpattributes.unpattributes_1; #line 1529 "../util.k" ID type = f_typeof_attribute_in_phylym( a_id, p ); if ( eq_ID( type, f_emptyId() )) { v_report(NonFatal( FileLine( a_id->file, a_id->line ), Problem1S1ID1S1ID( "attribute", a_id, "not defined in phylum", p ))); return f_emptyId(); } else { return f_do_check_unpattributes_in_phylum( r_a, type ); } #line 1870 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilunpattributes)) { #line 1528 "../util.k" return p; #line 1875 "util.c" } else { kc_no_default_in_with( "f_do_check_unpattributes_in_phylum", __LINE__, __FILE__ ); return (ID)0; } } #line 1537 "../util.k" } #line 1883 "util.c" static void v_do_check_dollarvar_in_operators #ifdef KC_USE_PROTOTYPES (INT i, operators o, ID p) #else (i, o, p) INT i; operators o; ID p; #endif #line 1540 "../util.k" {{ #line 1539 "../util.k" operators kc_selvar_0_1 = o; #line 1539 "../util.k" /*SUPPRESS 622*/ assert_operators(kc_selvar_0_1, "with_expression (1)"); #line 1901 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Consoperators)) { #line 1542 "../util.k" ID o_o = kc_selvar_0_1->u.Consoperators.ID_1; #line 1542 "../util.k" operators o_os = kc_selvar_0_1->u.Consoperators.operators_1; #line 1542 "../util.k" ID phy = f_subphylumofoperator( o_o, i ); if (eq_ID(phy, f_emptyId())) { v_report(NonFatal( FileLine( i->file, i->line ), Problem1S1INT1S1ID( "illegal dollar variable", i, "not that many subterms in operator", o_o ))); } else if (! eq_ID( p, phy )) { v_report(NonFatal( FileLine( i->file, i->line ), Problem1S1INT1S1ID1S1ID( " type mismatch for dollar varariable:", i, "; old type", p, "; new type", phy ))); } v_do_check_dollarvar_in_operators( i, o_os, p ); #line 1921 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_Niloperators)) { #line 1541 "../util.k" {/*EMPTY*/} #line 1926 "util.c" } else kc_no_default_in_with( "v_do_check_dollarvar_in_operators", __LINE__, __FILE__ ); } #line 1554 "../util.k" } #line 1933 "util.c" boolean f_attribute_in_phylym #ifdef KC_USE_PROTOTYPES (ID a, ID p) #else (a, p) ID a; ID p; #endif #line 1560 "../util.k" { ID t = f_typeof_attribute_in_phylym( a, p ); if ( eq_ID( t, f_emptyId() )) { return False; } else { return True; } #line 1566 "../util.k" } #line 1952 "util.c" ID f_typeof_attribute_in_phylym #ifdef KC_USE_PROTOTYPES (ID a, ID p) #else (a, p) ID a; ID p; #endif #line 1569 "../util.k" { phylumdeclaration tmp = f_lookupdecl( p ); if ( tmp == 0 ) { v_report(NonFatal( FileLine( p->file, p->line ), Problem1S1ID( "internal error: could not find declaration of phylum:", p ))); return f_emptyId(); } { #line 1577 "../util.k" phylumdeclaration kc_selvar_0_1 = tmp ; #line 1577 "../util.k" /*SUPPRESS 622*/ assert_phylumdeclaration(kc_selvar_0_1, "with_expression (1)"); #line 1979 "util.c" if (( kc_selvar_0_1->prod_sel == sel_PhylumDeclaration) && ( kc_selvar_0_1->u.PhylumDeclaration.Ccode_option_1->prod_sel == sel_CcodeOption)) { #line 1578 "../util.k" attributes attrs = kc_selvar_0_1->u.PhylumDeclaration.Ccode_option_1->u.CcodeOption.attributes_1; #line 1578 "../util.k" { #line 1579 "../util.k" attributes kc_fe_selvar_1 = attrs ; #line 1579 "../util.k" /*SUPPRESS 622*/ assert_attributes(kc_fe_selvar_1, "foreach_list_expression"); #line 1992 "util.c" while( kc_fe_selvar_1->prod_sel == sel_Consattributes ) { attribute kc_selvar_1_1 = kc_fe_selvar_1->u.Consattributes.attribute_1; { #line 1579 "../util.k" { #line 1579 "../util.k" /*SUPPRESS 622*/ assert_attribute(kc_selvar_1_1, "with_expression (1)"); #line 2004 "util.c" { #line 1579 "../util.k" attribute attr = kc_selvar_1_1; #line 1579 "../util.k" { #line 1580 "../util.k" attribute kc_selvar_2_1 = attr ; #line 1580 "../util.k" /*SUPPRESS 622*/ assert_attribute(kc_selvar_2_1, "with_expression (1)"); #line 2019 "util.c" if (( kc_selvar_2_1->prod_sel == sel_Attribute)) { #line 1581 "../util.k" ID a_type = kc_selvar_2_1->u.Attribute.ID_1; #line 1581 "../util.k" ID a_id = kc_selvar_2_1->u.Attribute.ID_2; #line 1581 "../util.k" if (eq_ID( a, a_id)) { return a_type; } #line 2030 "util.c" } else { kc_no_default_in_with( "f_typeof_attribute_in_phylym", __LINE__, __FILE__ ); return (ID)0; } } #line 1584 "../util.k" #line 2037 "util.c" } } #line 2041 "util.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consattributes.attributes_1; #line 1579 "../util.k" /*SUPPRESS 622*/ assert_attributes(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 2048 "util.c" } } #line 1585 "../util.k" return f_emptyId(); #line 2054 "util.c" } else { kc_no_default_in_with( "f_typeof_attribute_in_phylym", __LINE__, __FILE__ ); return (ID)0; } } #line 1586 "../util.k" #line 1586 "../util.k" } #line 2063 "util.c" ID f_subphylumofoperator #ifdef KC_USE_PROTOTYPES (ID o, INT i) #else (o, i) ID o; INT i; #endif #line 1589 "../util.k" {{ #line 1588 "../util.k" INT kc_selvar_0_1 = i; #line 1588 "../util.k" /*SUPPRESS 622*/ assert_INT(kc_selvar_0_1, "with_expression (1)"); #line 2080 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Int)) { #line 1590 "../util.k" int ii = kc_selvar_0_1->u.Int.int_1; #line 1590 "../util.k" if (ii == 0) { return f_phylumofoperator( o ); } else { return f_subphylum( f_argumentsofoperator( o ), i ); } #line 2091 "util.c" } else { kc_no_default_in_with( "f_subphylumofoperator", __LINE__, __FILE__ ); return (ID)0; } } #line 1595 "../util.k" } #line 2099 "util.c" ID f_subphylum #ifdef KC_USE_PROTOTYPES (arguments a, INT i) #else (a, i) arguments a; INT i; #endif #line 1599 "../util.k" { return f_do_subphylum( a, i, length_arguments( a ) ); #line 1601 "../util.k" } #line 2114 "util.c" static ID f_do_subphylum #ifdef KC_USE_PROTOTYPES (arguments a, INT i, int a_i) #else (a, i, a_i) arguments a; INT i; int a_i; #endif #line 1604 "../util.k" {{ #line 1603 "../util.k" arguments kc_selvar_0_1 = a; #line 1603 "../util.k" /*SUPPRESS 622*/ assert_arguments(kc_selvar_0_1, "with_expression (1)"); #line 2132 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Consarguments)) { #line 1606 "../util.k" ID a_a = kc_selvar_0_1->u.Consarguments.ID_1; #line 1606 "../util.k" arguments a_as = kc_selvar_0_1->u.Consarguments.arguments_1; #line 1606 "../util.k" { #line 1607 "../util.k" INT kc_selvar_1_1 = i ; #line 1607 "../util.k" /*SUPPRESS 622*/ assert_INT(kc_selvar_1_1, "with_expression (1)"); #line 2149 "util.c" if (( kc_selvar_1_1->prod_sel == sel_Int)) { #line 1608 "../util.k" int ii = kc_selvar_1_1->u.Int.int_1; #line 1608 "../util.k" if (ii == a_i) { return a_a; } else { return f_do_subphylum( a_as, i, a_i - 1 ); } #line 2160 "util.c" } else { kc_no_default_in_with( "f_do_subphylum", __LINE__, __FILE__ ); return (ID)0; } } #line 1613 "../util.k" #line 2167 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilarguments)) { #line 1605 "../util.k" return f_emptyId(); #line 2172 "util.c" } else { kc_no_default_in_with( "f_do_subphylum", __LINE__, __FILE__ ); return (ID)0; } } #line 1613 "../util.k" } #line 2180 "util.c" argument f_argumentofoperator #ifdef KC_USE_PROTOTYPES (ID o, INT i) #else (o, i) ID o; INT i; #endif #line 1616 "../util.k" {{ #line 1615 "../util.k" INT kc_selvar_0_1 = i; #line 1615 "../util.k" /*SUPPRESS 622*/ assert_INT(kc_selvar_0_1, "with_expression (1)"); #line 2197 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Int)) { #line 1617 "../util.k" int ii = kc_selvar_0_1->u.Int.int_1; #line 1617 "../util.k" if (ii == 0) { return Argument( f_phylumofoperator( o ), 0); } else { return f_argument( f_argumentsofoperator( o ), i ); } #line 2208 "util.c" } else { kc_no_default_in_with( "f_argumentofoperator", __LINE__, __FILE__ ); return (argument)0; } } #line 1622 "../util.k" } #line 2216 "util.c" argument f_argument #ifdef KC_USE_PROTOTYPES (arguments a, INT i) #else (a, i) arguments a; INT i; #endif #line 1626 "../util.k" { return f_do_argument( a, i, length_arguments( a ) ); #line 1628 "../util.k" } #line 2231 "util.c" static argument f_do_argument #ifdef KC_USE_PROTOTYPES (arguments a, INT i, int a_i) #else (a, i, a_i) arguments a; INT i; int a_i; #endif #line 1631 "../util.k" {{ #line 1630 "../util.k" arguments kc_selvar_0_1 = a; #line 1630 "../util.k" /*SUPPRESS 622*/ assert_arguments(kc_selvar_0_1, "with_expression (1)"); #line 2249 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Consarguments)) { #line 1633 "../util.k" ID a_a = kc_selvar_0_1->u.Consarguments.ID_1; #line 1633 "../util.k" arguments a_as = kc_selvar_0_1->u.Consarguments.arguments_1; #line 1633 "../util.k" { #line 1634 "../util.k" INT kc_selvar_1_1 = i ; #line 1634 "../util.k" /*SUPPRESS 622*/ assert_INT(kc_selvar_1_1, "with_expression (1)"); #line 2266 "util.c" if (( kc_selvar_1_1->prod_sel == sel_Int)) { #line 1635 "../util.k" int ii = kc_selvar_1_1->u.Int.int_1; #line 1635 "../util.k" if (ii == a_i) { return Argument( a_a, a->seqnr ); } else { return f_do_argument( a_as, i, a_i - 1 ); } #line 2277 "util.c" } else { kc_no_default_in_with( "f_do_argument", __LINE__, __FILE__ ); return (argument)0; } } #line 1640 "../util.k" #line 2284 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilarguments)) { #line 1632 "../util.k" return Argument(f_emptyId(), 0); #line 2289 "util.c" } else { kc_no_default_in_with( "f_do_argument", __LINE__, __FILE__ ); return (argument)0; } } #line 1640 "../util.k" } #line 2297 "util.c" ID f_phylumofoutmostpattern #ifdef KC_USE_PROTOTYPES (outmostpattern p) #else (p) outmostpattern p; #endif #line 1643 "../util.k" {{ #line 1642 "../util.k" outmostpattern kc_selvar_0_1 = p; #line 1642 "../util.k" /*SUPPRESS 622*/ assert_outmostpattern(kc_selvar_0_1, "with_expression (1)"); #line 2313 "util.c" if (( kc_selvar_0_1->prod_sel == sel_OPWildcard)) { #line 1648 "../util.k" return f_emptyId(); #line 2317 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_OPDefault)) { #line 1648 "../util.k" return f_emptyId(); #line 2322 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_OPNonLeafVariable)) { #line 1646 "../util.k" outmostpattern r_p = kc_selvar_0_1->u.OPNonLeafVariable.outmostpattern_1; #line 1646 "../util.k" return f_phylumofoutmostpattern( r_p ); #line 2329 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_OPOperator)) { #line 1645 "../util.k" ID o = kc_selvar_0_1->u.OPOperator.ID_1; #line 1645 "../util.k" return f_phylumofoperator( o ); #line 2336 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_OPOperatorWildcard)) { #line 1644 "../util.k" ID o = kc_selvar_0_1->u.OPOperatorWildcard.ID_1; #line 1644 "../util.k" return f_phylumofoperator( o ); #line 2343 "util.c" } else { kc_no_default_in_with( "f_phylumofoutmostpattern", __LINE__, __FILE__ ); return (ID)0; } } #line 1649 "../util.k" } #line 2351 "util.c" ID f_operatorofphylum #ifdef KC_USE_PROTOTYPES (ID p, INT i) #else (p, i) ID p; INT i; #endif #line 1652 "../util.k" { phylumdeclaration tmp = f_lookupdecl( p ); if ( tmp == 0 ) { v_report(NonFatal( FileLine( p->file, p->line ), Problem1S1ID( "internal error: could not find declaration of phylum:", p ))); return f_emptyId(); } { #line 1660 "../util.k" phylumdeclaration kc_selvar_0_1 = tmp ; #line 1660 "../util.k" /*SUPPRESS 622*/ assert_phylumdeclaration(kc_selvar_0_1, "with_expression (1)"); #line 2378 "util.c" if (( kc_selvar_0_1->prod_sel == sel_PhylumDeclaration)) { #line 1661 "../util.k" productionblock pb = kc_selvar_0_1->u.PhylumDeclaration.productionblock_1; #line 1661 "../util.k" { #line 1662 "../util.k" productionblock kc_selvar_1_1 = pb ; #line 1662 "../util.k" /*SUPPRESS 622*/ assert_productionblock(kc_selvar_1_1, "with_expression (1)"); #line 2393 "util.c" if (( kc_selvar_1_1->prod_sel == sel_PredefinedAlternatives)) { #line 1666 "../util.k" alternatives a = kc_selvar_1_1->u.PredefinedAlternatives.alternatives_1; #line 1666 "../util.k" alternative tmp_a = f_alternative( a, i ); if ( tmp_a == 0 ) { v_report(NonFatal( FileLine( p->file, p->line ), Problem1S1ID( "internal error: could not find operators of phylum:", p ))); return f_emptyId(); } { #line 1675 "../util.k" alternative kc_selvar_2_1 = tmp_a ; #line 1675 "../util.k" /*SUPPRESS 622*/ assert_alternative(kc_selvar_2_1, "with_expression (1)"); #line 2416 "util.c" if (( kc_selvar_2_1->prod_sel == sel_Alternative)) { #line 1676 "../util.k" ID id = kc_selvar_2_1->u.Alternative.ID_1; #line 1676 "../util.k" return id; #line 2422 "util.c" } else { kc_no_default_in_with( "f_operatorofphylum", __LINE__, __FILE__ ); return (ID)0; } } #line 1677 "../util.k" #line 2429 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_NonlistAlternatives)) { #line 1665 "../util.k" alternatives a = kc_selvar_1_1->u.NonlistAlternatives.alternatives_1; #line 1666 "../util.k" alternative tmp_a = f_alternative( a, i ); if ( tmp_a == 0 ) { v_report(NonFatal( FileLine( p->file, p->line ), Problem1S1ID( "internal error: could not find operators of phylum:", p ))); return f_emptyId(); } { #line 1675 "../util.k" alternative kc_selvar_2_1 = tmp_a ; #line 1675 "../util.k" /*SUPPRESS 622*/ assert_alternative(kc_selvar_2_1, "with_expression (1)"); #line 2453 "util.c" if (( kc_selvar_2_1->prod_sel == sel_Alternative)) { #line 1676 "../util.k" ID id = kc_selvar_2_1->u.Alternative.ID_1; #line 1676 "../util.k" return id; #line 2459 "util.c" } else { kc_no_default_in_with( "f_operatorofphylum", __LINE__, __FILE__ ); return (ID)0; } } #line 1677 "../util.k" #line 2466 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_ListAlternatives)) { #line 1664 "../util.k" alternatives a = kc_selvar_1_1->u.ListAlternatives.alternatives_1; #line 1666 "../util.k" alternative tmp_a = f_alternative( a, i ); if ( tmp_a == 0 ) { v_report(NonFatal( FileLine( p->file, p->line ), Problem1S1ID( "internal error: could not find operators of phylum:", p ))); return f_emptyId(); } { #line 1675 "../util.k" alternative kc_selvar_2_1 = tmp_a ; #line 1675 "../util.k" /*SUPPRESS 622*/ assert_alternative(kc_selvar_2_1, "with_expression (1)"); #line 2490 "util.c" if (( kc_selvar_2_1->prod_sel == sel_Alternative)) { #line 1676 "../util.k" ID id = kc_selvar_2_1->u.Alternative.ID_1; #line 1676 "../util.k" return id; #line 2496 "util.c" } else { kc_no_default_in_with( "f_operatorofphylum", __LINE__, __FILE__ ); return (ID)0; } } #line 1677 "../util.k" #line 2503 "util.c" } else if (( kc_selvar_1_1->prod_sel == sel_Emptyproductionblock)) { #line 1663 "../util.k" return f_emptyId(); #line 2508 "util.c" } else { kc_no_default_in_with( "f_operatorofphylum", __LINE__, __FILE__ ); return (ID)0; } } #line 1677 "../util.k" #line 2515 "util.c" } else { kc_no_default_in_with( "f_operatorofphylum", __LINE__, __FILE__ ); return (ID)0; } } #line 1677 "../util.k" #line 1677 "../util.k" } #line 2524 "util.c" alternative f_alternative #ifdef KC_USE_PROTOTYPES (alternatives a, INT i) #else (a, i) alternatives a; INT i; #endif #line 1681 "../util.k" { return f_do_alternative( a, i, length_alternatives( a ) ); #line 1683 "../util.k" } #line 2539 "util.c" static alternative f_do_alternative #ifdef KC_USE_PROTOTYPES (alternatives a, INT i, int a_i) #else (a, i, a_i) alternatives a; INT i; int a_i; #endif #line 1686 "../util.k" {{ #line 1685 "../util.k" alternatives kc_selvar_0_1 = a; #line 1685 "../util.k" /*SUPPRESS 622*/ assert_alternatives(kc_selvar_0_1, "with_expression (1)"); #line 2557 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Consalternatives)) { #line 1688 "../util.k" alternative a_a = kc_selvar_0_1->u.Consalternatives.alternative_1; #line 1688 "../util.k" alternatives a_as = kc_selvar_0_1->u.Consalternatives.alternatives_1; #line 1688 "../util.k" { #line 1689 "../util.k" INT kc_selvar_1_1 = i ; #line 1689 "../util.k" /*SUPPRESS 622*/ assert_INT(kc_selvar_1_1, "with_expression (1)"); #line 2574 "util.c" if (( kc_selvar_1_1->prod_sel == sel_Int)) { #line 1690 "../util.k" int ii = kc_selvar_1_1->u.Int.int_1; #line 1690 "../util.k" if (ii == a_i) { return a_a; } else { return f_do_alternative( a_as, i, a_i - 1 ); } #line 2585 "util.c" } else { kc_no_default_in_with( "f_do_alternative", __LINE__, __FILE__ ); return (alternative)0; } } #line 1695 "../util.k" #line 2592 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilalternatives)) { #line 1687 "../util.k" return 0; #line 2597 "util.c" } else { kc_no_default_in_with( "f_do_alternative", __LINE__, __FILE__ ); return (alternative)0; } } #line 1695 "../util.k" } #line 2605 "util.c" void v_reset_phylumdeclaration_marks #ifdef KC_USE_PROTOTYPES (void) #else () #endif #line 1764 "../util.k" { { #line 1765 "../util.k" phylumdeclarations kc_fe_selvar_1 = Thephylumdeclarations ; #line 1765 "../util.k" /*SUPPRESS 622*/ assert_phylumdeclarations(kc_fe_selvar_1, "foreach_list_expression"); #line 2622 "util.c" while( kc_fe_selvar_1->prod_sel == sel_Consphylumdeclarations ) { phylumdeclaration kc_selvar_0_1 = kc_fe_selvar_1->u.Consphylumdeclarations.phylumdeclaration_1; { #line 1765 "../util.k" { #line 1765 "../util.k" /*SUPPRESS 622*/ assert_phylumdeclaration(kc_selvar_0_1, "with_expression (1)"); #line 2634 "util.c" { #line 1765 "../util.k" phylumdeclaration p = kc_selvar_0_1; #line 1765 "../util.k" p->marked = 0; #line 2642 "util.c" } } #line 2646 "util.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consphylumdeclarations.phylumdeclarations_1; #line 1765 "../util.k" /*SUPPRESS 622*/ assert_phylumdeclarations(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 2653 "util.c" } } #line 1767 "../util.k" #line 1767 "../util.k" } #line 2660 "util.c" void v_reset_variables_type #ifdef KC_USE_PROTOTYPES (variables v) #else (v) variables v; #endif #line 1770 "../util.k" { { #line 1771 "../util.k" variables kc_fe_selvar_1 = v ; #line 1771 "../util.k" /*SUPPRESS 622*/ assert_variables(kc_fe_selvar_1, "foreach_list_expression"); #line 2677 "util.c" while( kc_fe_selvar_1->prod_sel == sel_Consvariables ) { ID kc_selvar_0_1 = kc_fe_selvar_1->u.Consvariables.ID_1; { #line 1771 "../util.k" { #line 1771 "../util.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 2689 "util.c" { #line 1771 "../util.k" ID var = kc_selvar_0_1; #line 1771 "../util.k" { #line 1772 "../util.k" ID kc_selvar_1_1 = var ; #line 1772 "../util.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_1_1, "with_expression (1)"); #line 2704 "util.c" if (( kc_selvar_1_1->prod_sel == sel_Id)) { #line 1773 "../util.k" uniqID uid = kc_selvar_1_1->u.Id.uniqID_1; #line 1773 "../util.k" { #line 1774 "../util.k" IDtype kc_selvar_2_1 = uid->type ; #line 1774 "../util.k" /*SUPPRESS 622*/ assert_IDtype(kc_selvar_2_1, "with_expression (1)"); #line 2719 "util.c" if (( kc_selvar_2_1->prod_sel == sel_ITPatternVariable)) { #line 1788 "../util.k" int uid_scope = kc_selvar_2_1->u.ITPatternVariable.int_1; #line 1788 "../util.k" { #line 1789 "../util.k" scopetypefilelinestack kc_selvar_3_1 = uid->scopeinfo ; #line 1789 "../util.k" /*SUPPRESS 622*/ assert_scopetypefilelinestack(kc_selvar_3_1, "with_expression (1)"); #line 2734 "util.c" if (( kc_selvar_3_1->prod_sel == sel_Consscopetypefilelinestack) && ( kc_selvar_3_1->u.Consscopetypefilelinestack.scopetypefileline_1->prod_sel == sel_ScopeTypeFileLine)) { #line 1795 "../util.k" int s = kc_selvar_3_1->u.Consscopetypefilelinestack.scopetypefileline_1->u.ScopeTypeFileLine.int_1; #line 1795 "../util.k" IDtype t = kc_selvar_3_1->u.Consscopetypefilelinestack.scopetypefileline_1->u.ScopeTypeFileLine.IDtype_1; #line 1795 "../util.k" casestring f = kc_selvar_3_1->u.Consscopetypefilelinestack.scopetypefileline_1->u.ScopeTypeFileLine.casestring_1; #line 1795 "../util.k" int l = kc_selvar_3_1->u.Consscopetypefilelinestack.scopetypefileline_1->u.ScopeTypeFileLine.int_2; #line 1795 "../util.k" scopetypefilelinestack r_scopeinfo = kc_selvar_3_1->u.Consscopetypefilelinestack.scopetypefilelinestack_1; #line 1795 "../util.k" if (s == uid_scope) { uid->type = t; uid->file = f; uid->line = l; uid->scopeinfo = r_scopeinfo; } #line 2754 "util.c" } else if (( kc_selvar_3_1->prod_sel == sel_Nilscopetypefilelinestack)) { #line 1790 "../util.k" uid->type = ITUnknown(); uid->file = mkcasestring(""); uid->line = 0; #line 2763 "util.c" } else kc_no_default_in_with( "v_reset_variables_type", __LINE__, __FILE__ ); } #line 1801 "../util.k" #line 2769 "util.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUserRView)) { #line 1787 "../util.k" {/*EMPTY*/} #line 2774 "util.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedRView)) { #line 1786 "../util.k" {/*EMPTY*/} #line 2779 "util.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUserUView)) { #line 1785 "../util.k" {/*EMPTY*/} #line 2784 "util.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedUView)) { #line 1784 "../util.k" {/*EMPTY*/} #line 2789 "util.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUserFunction)) { #line 1783 "../util.k" {/*EMPTY*/} #line 2794 "util.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITStorageClass)) { #line 1782 "../util.k" {/*EMPTY*/} #line 2799 "util.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedStorageClass)) { #line 1781 "../util.k" {/*EMPTY*/} #line 2804 "util.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUserOperator)) { #line 1780 "../util.k" {/*EMPTY*/} #line 2809 "util.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedOperator)) { #line 1779 "../util.k" {/*EMPTY*/} #line 2814 "util.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUserPhylum)) { #line 1778 "../util.k" {/*EMPTY*/} #line 2819 "util.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedPhylum)) { #line 1777 "../util.k" {/*EMPTY*/} #line 2824 "util.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITPredefinedBigatomPhylum)) { #line 1777 "../util.k" {/*EMPTY*/} #line 2829 "util.c" } else if (( kc_selvar_2_1->prod_sel == sel_ITUnknown)) { #line 1775 "../util.k" {/*EMPTY*/} #line 2834 "util.c" } else kc_no_default_in_with( "v_reset_variables_type", __LINE__, __FILE__ ); } #line 1802 "../util.k" #line 2840 "util.c" } else kc_no_default_in_with( "v_reset_variables_type", __LINE__, __FILE__ ); } #line 1802 "../util.k" #line 2846 "util.c" } } #line 2850 "util.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consvariables.variables_1; #line 1771 "../util.k" /*SUPPRESS 622*/ assert_variables(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 2857 "util.c" } } #line 1802 "../util.k" #line 1802 "../util.k" } #line 2864 "util.c" void v_add_to_uviewnames #ifdef KC_USE_PROTOTYPES (ID v) #else (v) ID v; #endif #line 1906 "../util.k" { { #line 1907 "../util.k" viewnames kc_fe_selvar_1 = Theuviewnames ; #line 1907 "../util.k" /*SUPPRESS 622*/ assert_viewnames(kc_fe_selvar_1, "foreach_list_expression"); #line 2881 "util.c" while( kc_fe_selvar_1->prod_sel == sel_Consviewnames ) { ID kc_selvar_0_1 = kc_fe_selvar_1->u.Consviewnames.ID_1; { #line 1907 "../util.k" { #line 1907 "../util.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 2893 "util.c" { #line 1907 "../util.k" ID vn = kc_selvar_0_1; #line 1907 "../util.k" if ( eq_ID( vn, v )) return; #line 2901 "util.c" } } #line 2905 "util.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consviewnames.viewnames_1; #line 1907 "../util.k" /*SUPPRESS 622*/ assert_viewnames(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 2912 "util.c" } } #line 1910 "../util.k" Theuviewnames = Consviewnames( v, Theuviewnames ); #line 1911 "../util.k" } #line 2920 "util.c" void v_add_to_rviewnames #ifdef KC_USE_PROTOTYPES (ID v) #else (v) ID v; #endif #line 1914 "../util.k" { { #line 1915 "../util.k" viewnames kc_fe_selvar_1 = Therviewnames ; #line 1915 "../util.k" /*SUPPRESS 622*/ assert_viewnames(kc_fe_selvar_1, "foreach_list_expression"); #line 2937 "util.c" while( kc_fe_selvar_1->prod_sel == sel_Consviewnames ) { ID kc_selvar_0_1 = kc_fe_selvar_1->u.Consviewnames.ID_1; { #line 1915 "../util.k" { #line 1915 "../util.k" /*SUPPRESS 622*/ assert_ID(kc_selvar_0_1, "with_expression (1)"); #line 2949 "util.c" { #line 1915 "../util.k" ID vn = kc_selvar_0_1; #line 1915 "../util.k" if ( eq_ID( vn, v )) return; #line 2957 "util.c" } } #line 2961 "util.c" } kc_fe_selvar_1 = kc_fe_selvar_1->u.Consviewnames.viewnames_1; #line 1915 "../util.k" /*SUPPRESS 622*/ assert_viewnames(kc_fe_selvar_1, "sublist_of_foreach_list_expression"); #line 2968 "util.c" } } #line 1918 "../util.k" Therviewnames = Consviewnames( v, Therviewnames ); #line 1919 "../util.k" } #line 2976 "util.c" void v_add_to_storageclasses #ifdef KC_USE_PROTOTYPES (ID v, ID p) #else (v, p) ID v; ID p; #endif #line 1922 "../util.k" { Thestorageclasses = do_add_to_storageclasses( v, p, Thestorageclasses, Thestorageclasses ); #line 1925 "../util.k" } #line 2992 "util.c" static storageclasses do_add_to_storageclasses #ifdef KC_USE_PROTOTYPES (ID v, ID p, storageclasses s, storageclasses all) #else (v, p, s, all) ID v; ID p; storageclasses s; storageclasses all; #endif #line 1929 "../util.k" {{ #line 1927 "../util.k" storageclasses kc_selvar_0_1 = s; #line 1927 "../util.k" /*SUPPRESS 622*/ assert_storageclasses(kc_selvar_0_1, "with_expression (1)"); #line 3011 "util.c" if (( kc_selvar_0_1->prod_sel == sel_Consstorageclasses)) { #line 1938 "../util.k" ID sc = kc_selvar_0_1->u.Consstorageclasses.ID_1; #line 1938 "../util.k" storageclasses r_sc = kc_selvar_0_1->u.Consstorageclasses.storageclasses_1; #line 1938 "../util.k" if ( eq_ID( sc, v )) { if (! eq_ID(p, f_emptyId())) { s->phyla = Consphylumnames( p, s->phyla ); } return all; } else { return do_add_to_storageclasses( v, p, r_sc, all ); } #line 3027 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_Nilstorageclasses)) { #line 1930 "../util.k" storageclasses tmp = Consstorageclasses( v, all ); tmp->phyla = Nilphylumnames(); if (! eq_ID(p, f_emptyId())) { tmp->phyla = Consphylumnames( p, tmp->phyla ); } return tmp; #line 3039 "util.c" } else { kc_no_default_in_with( "do_add_to_storageclasses", __LINE__, __FILE__ ); return (storageclasses)0; } } #line 1946 "../util.k" } #line 3047 "util.c" phylumnames f_phylumnames_foreachwith_vars #ifdef KC_USE_PROTOTYPES (idCexpressions a_idCexpressions) #else (a_idCexpressions) idCexpressions a_idCexpressions; #endif #line 1954 "../util.k" { return t_f_phylumnames_foreachwith_vars(a_idCexpressions); #line 1956 "../util.k" } #line 3061 "util.c" phylumnames t_f_phylumnames_foreachwith_vars #ifdef KC_USE_PROTOTYPES (idCexpressions a_idCexpressions) #else (a_idCexpressions) idCexpressions a_idCexpressions; #endif #line 1958 "../util.k" {{ #line 1957 "../util.k" idCexpressions kc_selvar_0_1 = a_idCexpressions; #line 1957 "../util.k" /*SUPPRESS 622*/ assert_idCexpressions(kc_selvar_0_1, "with_expression (1)"); #line 3077 "util.c" if (( kc_selvar_0_1->prod_sel == sel_ConsidCexpressions) && ( kc_selvar_0_1->u.ConsidCexpressions.idCexpression_1->prod_sel == sel_IdCexpression)) { #line 1959 "../util.k" idCexpression ice = kc_selvar_0_1->u.ConsidCexpressions.idCexpression_1; #line 1959 "../util.k" ID id = kc_selvar_0_1->u.ConsidCexpressions.idCexpression_1->u.IdCexpression.ID_1; #line 1959 "../util.k" idCexpressions t = kc_selvar_0_1->u.ConsidCexpressions.idCexpressions_1; #line 1959 "../util.k" return Consphylumnames( f_listelementphylum(id), t_f_phylumnames_foreachwith_vars( t )); #line 3091 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_NilidCexpressions)) { #line 1964 "../util.k" return Nilphylumnames(); #line 3096 "util.c" } else { kc_no_default_in_with( "t_f_phylumnames_foreachwith_vars", __LINE__, __FILE__ ); return (phylumnames)0; } } #line 1965 "../util.k" } #line 3104 "util.c" phylumnames f_phylumnames_foreachwith_listvars #ifdef KC_USE_PROTOTYPES (idCexpressions a_idCexpressions) #else (a_idCexpressions) idCexpressions a_idCexpressions; #endif #line 1968 "../util.k" { return t_f_phylumnames_foreachwith_listvars(a_idCexpressions); #line 1970 "../util.k" } #line 3118 "util.c" phylumnames t_f_phylumnames_foreachwith_listvars #ifdef KC_USE_PROTOTYPES (idCexpressions a_idCexpressions) #else (a_idCexpressions) idCexpressions a_idCexpressions; #endif #line 1972 "../util.k" {{ #line 1971 "../util.k" idCexpressions kc_selvar_0_1 = a_idCexpressions; #line 1971 "../util.k" /*SUPPRESS 622*/ assert_idCexpressions(kc_selvar_0_1, "with_expression (1)"); #line 3134 "util.c" if (( kc_selvar_0_1->prod_sel == sel_ConsidCexpressions) && ( kc_selvar_0_1->u.ConsidCexpressions.idCexpression_1->prod_sel == sel_IdCexpression)) { #line 1973 "../util.k" idCexpression ice = kc_selvar_0_1->u.ConsidCexpressions.idCexpression_1; #line 1973 "../util.k" ID id = kc_selvar_0_1->u.ConsidCexpressions.idCexpression_1->u.IdCexpression.ID_1; #line 1973 "../util.k" idCexpressions t = kc_selvar_0_1->u.ConsidCexpressions.idCexpressions_1; #line 1973 "../util.k" return Consphylumnames( id, t_f_phylumnames_foreachwith_listvars( t )); #line 3148 "util.c" } else if (( kc_selvar_0_1->prod_sel == sel_NilidCexpressions)) { #line 1978 "../util.k" return Nilphylumnames(); #line 3153 "util.c" } else { kc_no_default_in_with( "t_f_phylumnames_foreachwith_listvars", __LINE__, __FILE__ ); return (phylumnames)0; } } #line 1979 "../util.k" } #line 3161 "util.c" kimwitu-4.6.1.orig/src/util.h0100644000176100001440000000554707076113232015404 0ustar debacleusers/* translation of file "../util.k" */ /* generated by: * @(#)$Author: Kimwitu version: V4_6 (c) 1990-1996 University of Twente $ */ #ifndef KC_FUNCTIONS_util_HEADER #define KC_FUNCTIONS_util_HEADER #define KIMW_FUNCTIONS_util_HEADER /* for backwards compatibility */ /* define our own macro if we have a 'standard' (ansi) C(++) compiler */ #ifndef KC_NO_STDC # if defined(__STDC__) || defined(__cplusplus) || defined(_WIN32) # define KC_STDC # endif #endif #include "k.h" /* in case a user forgets */ /* included stuff */ #line 2 "../util.k" /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ #line 27 "util.h" /* end included stuff */ boolean f_added KC__P((ID id)); void v_add KC__P((ID id)); void v_freeadded KC__P((void)); int f_getcount KC__P((ID id)); void v_resetcount KC__P((void)); void v_freecount KC__P((void)); boolean f_isbigatom KC__P((ID id)); boolean f_DvIsDisallowed KC__P((dollarvarstatus dvs)); ID f_listelementphylum KC__P((ID id)); ID f_listelementconsoperator KC__P((ID id)); ID f_emptyId KC__P((void)); boolean f_operatorinphylum KC__P((ID oid, ID pid)); boolean f_isphylum KC__P((ID id)); boolean f_ispredefinedphylum KC__P((ID id)); alternative f_alternativeofoperator KC__P((ID oid)); arguments f_argumentsofoperator KC__P((ID oid)); ID f_phylumofoperator KC__P((ID oid)); ID f_phylumofpatternID KC__P((ID vid)); ID f_phylumofpatternvariable KC__P((ID vid)); void v_syn_type_attribute_ID KC__P((ID id)); boolean f_Nilarguments KC__P((arguments a)); ID f_hd_arguments KC__P((arguments a)); arguments f_tl_arguments KC__P((arguments a)); void v_check_dollarvar_attribute_in_operators KC__P((INT i, unpattributes a, operators o)); ID f_check_unpattributes_in_phylum KC__P((unpattributes a, ID p)); boolean f_attribute_in_phylym KC__P((ID a, ID p)); ID f_typeof_attribute_in_phylym KC__P((ID a, ID p)); ID f_subphylumofoperator KC__P((ID o, INT i)); ID f_subphylum KC__P((arguments a, INT i)); argument f_argumentofoperator KC__P((ID o, INT i)); argument f_argument KC__P((arguments a, INT i)); ID f_phylumofoutmostpattern KC__P((outmostpattern p)); ID f_operatorofphylum KC__P((ID p, INT i)); alternative f_alternative KC__P((alternatives a, INT i)); void v_reset_phylumdeclaration_marks KC__P((void)); void v_reset_variables_type KC__P((variables v)); void v_add_to_uviewnames KC__P((ID v)); void v_add_to_rviewnames KC__P((ID v)); void v_add_to_storageclasses KC__P((ID v, ID p)); phylumnames f_phylumnames_foreachwith_vars KC__P((idCexpressions a_idCexpressions)); phylumnames t_f_phylumnames_foreachwith_vars KC__P((idCexpressions a_idCexpressions)); phylumnames f_phylumnames_foreachwith_listvars KC__P((idCexpressions a_idCexpressions)); phylumnames t_f_phylumnames_foreachwith_listvars KC__P((idCexpressions a_idCexpressions)); #endif /* ! KC_FUNCTIONS_util_HEADER */ kimwitu-4.6.1.orig/src/util.k0100644000176100001440000015526107076113220015403 0ustar debacleusers%{ CODE HEADER /* * The Termprocessor Kimwitu * * Copyright (c) 1991 University of Twente, Dept TIOS. * All rights reserved. * */ %} /* * util.k */ %{ #if ! (defined(lint) || defined(SABER) || defined(CODECENTER)) static char util_kAccesSid[] = "@(#)$Id: util.k,v 1.28 1997/05/26 16:10:31 belinfan Rel $"; #endif %} /***************************************************************************/ /* * small tricks to shut up lint */ %{ KC_TYPES_HEADER #ifndef KC_LINTUSE # if (defined(lint) || defined(SABER) || defined(CODECENTER)) extern int kc_zero_constant; # define KC_LINTUSE(x) if(x)x=x # else # define kc_zero_constant 0 # define KC_LINTUSE(x) # endif #endif %} /***************************************************************************/ %{ addedphylumdeclarations pl_addedphylumdeclarations = 0; %} %{ KC_TYPES_HEADER extern addedphylumdeclarations pl_addedphylumdeclarations; %} addedphylumdeclarations : list addedphylumdeclaration ; addedphylumdeclaration : AddedPhylumdeclaration( uniqID ) { boolean added = False; { if (!pl_addedphylumdeclarations) pl_addedphylumdeclarations = Consaddedphylumdeclarations( $0, Niladdedphylumdeclarations() ); else pl_addedphylumdeclarations = Consaddedphylumdeclarations( $0, pl_addedphylumdeclarations ); } } ; boolean f_added( id ) ID id; { with( id ) { Id( uid ): { return AddedPhylumdeclaration( uid )->added; } } } void v_add( id ) ID id; { with( id ) { Id( uid ): { AddedPhylumdeclaration( uid )->added = True; } } } void v_freeadded() { free_addedphylumdeclarations( pl_addedphylumdeclarations, True ); pl_addedphylumdeclarations = 0; } /***************************************************************************/ %{ countedphylumdeclarations pl_countedphylumdeclarations = 0; %} %{ KC_TYPES_HEADER extern countedphylumdeclarations pl_countedphylumdeclarations; %} uniqID {uniq}:; /* necessary because of the way it is used here */ countedphylumdeclarations : list countedphylumdeclaration ; countedphylumdeclaration {uniq} : CountedPhylumdeclaration( uniqID ) { int count = 0; { if (!pl_countedphylumdeclarations) pl_countedphylumdeclarations = Conscountedphylumdeclarations( $0, Nilcountedphylumdeclarations() ); else pl_countedphylumdeclarations = Conscountedphylumdeclarations( $0, pl_countedphylumdeclarations ); } } ; int f_getcount( id ) ID id; { with( id ) { Id( uid ): { return ++(CountedPhylumdeclaration( uid ) -> count); } } } void v_resetcount() { if (pl_countedphylumdeclarations) { foreach( c; countedphylumdeclarations pl_countedphylumdeclarations ) { c->count = 0; } } } void v_freecount() { if (pl_countedphylumdeclarations) { v_resetcount(); free_countedphylumdeclarations( pl_countedphylumdeclarations, True ); pl_countedphylumdeclarations = 0; } } /***************************************************************************/ %{ KC_UNPARSE #include "util.h" #include "extocc.h" static int cl_scope = 0; static boolean cl_bigatoms = False; %} %{ KC_TYPES_HEADER extern operators cg_bigatomoperators; /* global big-atoms operators */ extern phyla cg_bigatomphyla; /* global big-atoms phyla */ %} %{ operators cg_bigatomoperators = 0; /* global big-atoms operators */ phyla cg_bigatomphyla = 0; /* global big-atoms phyla */ %} /* * check used occurences of phyla in the phylumdeclarations * and set the seqnr attribute of the arguments * and warn if a phylum has an empty production block * and check/collect the storage classes * use gl_phylum as defined in gutil.k * and set the bigatoms attribute of alternative and cg_bigatoms */ Consphylumdeclarations( pd, pds ) -> [view_check: pds pd ]; Nilphylumdeclarations() -> [view_check: {/*EMPTY*/} ]; PhylumDeclaration( i, *, *, cco ) -> [view_check: { cf_pushoutmostoperators( Niloperators() ); cf_pushdollarvarsallowed( DVAllowed() ); cf_pushphylum( i ); } cco { freelist_operators( cf_topoutmostoperators() ); cf_popoutmostoperators(); cf_popdollarvarsallowed(); cf_popphylum(); } ]; CcodeOption( *, ct ) -> [view_check: ct ]; Consphylumdeclarations( *, * ) -> [view_check_count: $0:view_check_count1 { v_freecount(); } ]; Consphylumdeclarations( pd, rpds ) -> [view_check_count1: rpds pd]; Nilphylumdeclarations() -> [view_check_count1: {/*EMPTY*/} ]; PhylumDeclaration( id, stopt, pb, * ) -> [view_check_count1: { gl_phylum = id; } stopt { gl_phylum = 0; } pb ]; PhylumDeclaration( id, stopt, Emptyproductionblock(), * ) -> [view_check_count1: { gl_phylum = id; } stopt { gl_phylum = 0; } { v_report(NonFatal( NoFileLine(), Problem1S1ID( "no operators defined for phylum", id ))); } ]; NoStorageOption() -> [view_check_count1: {/*EMPTY*/} ]; NegativeStorageOption( sc ), PositiveStorageOption( sc ) -> [view_check_count1: { if (pg_storageclasseshavebeendefined) v_useoccurstorageclass( sc ); else v_extendoccur( sc, ITStorageClass() ); v_add_to_storageclasses( sc, gl_phylum ); } ]; ListAlternatives( alt, * ), NonlistAlternatives( alt ) -> [view_check_count1: alt ]; PredefinedAlternatives( * ) -> [view_check_count1: {/*EMPTY*/} ]; Consalternatives( alt = Alternative( id, args ), ralts ) -> [view_check_count1: ralts args { v_resetcount(); alt->bigatoms = cl_bigatoms; if (cl_bigatoms) { if (cg_bigatomoperators) { cg_bigatomoperators = Consoperators( id, cg_bigatomoperators ); } else { cg_bigatomoperators = Consoperators( id, Niloperators() ); } } cl_bigatoms = False; } ]; Nilalternatives() -> [view_check_count1: {/*EMPTY*/} ]; Consarguments( id, rargs ) -> [view_check_count1: rargs { v_useoccurphylum( id ); $0->seqnr = f_getcount( id ); cl_bigatoms = (boolean) (cl_bigatoms || f_isbigatom( id )); } ]; Nilarguments() -> [view_check_count1: {/*EMPTY*/} ]; %{ #include /* for strcmp */ %} boolean f_isbigatom(id) ID id; { with( id ) { Id( uid ): { with( uid->type ) { ITPredefinedBigatomPhylum( * ): { return True; } default: { return False; } } } } } /***************************************************************************/ /* rewrite the patternchains to normal form. * this normal form consists of a list of patternchain, where * patternchainitem's do not contain PatternchainitemGroup's */ /* In the rules below, capitals represent lists, and lowercase letters * represent list elements. () represents empty list. * we use & and , for Cons * we use && and ,, for concat * * Expand: * (h_pc, T_pcs) & Y_pc => ( h_pc&&Y_pc , (T_pcs)&Y_pc, () ), () * p & (h_pc, T_pcs) & () => ( p&h_pc, p&(T_pcs)&(), () ) & () * * Simplify: * ( h_p&(), () ) => h_p * (P_pcs)&(), () => P_pcs * (P_pcs)&(), Q_pcs => P_pcs ,, Q_pcs * p & (P_pc,()) & () => p & P_pc * (P_pc,()) & Q_pc => P_pc&&Q_pc * */ /* rules for expansion (insertion of list elements in sublists */ /* (h_pc, T_pcs) & Y_pc => ( h_pc&&Y_pc , (T_pcs)&Y_pc, () ), () */ Conspatternchain( PatternchainitemGroup( Conspatternchains( h_pc, T_pcs = Conspatternchains(*,*) ) ), Y_pc = Conspatternchain(*,*) ) -> Conspatternchain( PatternchainitemGroup( Conspatternchains( concat_patternchain( h_pc, Y_pc ), Conspatternchains( Conspatternchain( PatternchainitemGroup( T_pcs ), Y_pc ), Nilpatternchains() ) ) ), Nilpatternchain() ); /* p & (h_pc, T_pcs) & () => ( p&h_pc, p&(T_pcs)&(), () ) & () */ Conspatternchain( p, Conspatternchain( PatternchainitemGroup( Conspatternchains( h_pc, T_pcs = Conspatternchains(*,*) )), Nilpatternchain() ) ) -> Conspatternchain( PatternchainitemGroup( Conspatternchains( Conspatternchain( p, h_pc ), Conspatternchains( Conspatternchain( p, Conspatternchain( PatternchainitemGroup( T_pcs ), Nilpatternchain() ) ), Nilpatternchains() ) ) ), Nilpatternchain() ); /* symplifying the generated grouped lists of lists etc. */ /* ( h_p&(), () ) -> h_p */ PatternchainitemGroup( Conspatternchains( Conspatternchain( h_p, Nilpatternchain()), Nilpatternchains() ) ) -> h_p; /* (P_pcs)&(), () -> P_pcs */ Conspatternchains( Conspatternchain( PatternchainitemGroup( P_pcs ), Nilpatternchain() ), Nilpatternchains() ) -> P_pcs; /* (P_pcs)&(), Q_pcs -> P_pcs ,, Q_pcs */ Conspatternchains( Conspatternchain( PatternchainitemGroup( P_pcs ), Nilpatternchain() ), Q_pcs = Conspatternchains(*,*) ) -> concat_patternchains( P_pcs, Q_pcs ); /* p & (P_pc,()) & () -> p & P_pc */ Conspatternchain( p, Conspatternchain( PatternchainitemGroup( Conspatternchains( P_pc, Nilpatternchains() ) ), Nilpatternchain() ) ) -> Conspatternchain( p, P_pc ); /* (P_pc,()) & Q_pc -> P_pc&&Q_pc */ Conspatternchain( PatternchainitemGroup( Conspatternchains( P_pc, Nilpatternchains() ) ), Q_pc = Conspatternchain(*, *) ) -> concat_patternchain( P_pc, Q_pc ); /***************************************************************************/ /* * check used occurences of operators in the multi patterns (using the * existing code for checking (outmost)patterns * */ /***************************************************************************/ /* * check used occurences of operators in the (outmost)patterns * */ Consoutmostpatterns( p, rp ) -> [view_check: rp p ]; Niloutmostpatterns() -> [view_check: {/*EMPTY*/} ]; OPOperatorWildcard( o ) -> [view_check_outmostopers_in_phylum: { if ( f_useoccuroperator( o )) { if ( eq_ID( cf_topphylum(), f_emptyId() )) { cf_popphylum(); cf_pushphylum( f_phylumofoperator( o ) ); } if (! f_operatorinphylum( o, cf_topphylum())) { v_report(NonFatal( FileLine( o->file, o->line ), Problem1S1ID1S1ID( "outermost operator", o, "not in expected phylum", cf_topphylum() ))); } else { operators tmp = Consoperators( o, cf_topoutmostoperators() ); cf_popoutmostoperators(); cf_pushoutmostoperators( tmp ); } } } ]; OPOperatorWildcard( o ) -> [view_check: { if( f_useoccuroperator( o )) { if ( eq_ID( cf_topphylum(), f_emptyId() )) { cf_popphylum(); cf_pushphylum( f_phylumofoperator( o ) ); } { operators tmp = Consoperators( o, cf_topoutmostoperators() ); cf_popoutmostoperators(); cf_pushoutmostoperators( tmp ); } } } ]; OPOperator( o, p ) -> [view_check_outmostopers_in_phylum: { if( f_useoccuroperator( o )) } ${ { if ( eq_ID( cf_topphylum(), f_emptyId() )) { cf_popphylum(); cf_pushphylum( f_phylumofoperator( o ) ); } } { if (f_operatorinphylum( o, cf_topphylum())) } ${ { operators tmp = Consoperators( o, cf_topoutmostoperators() ); cf_popoutmostoperators(); cf_pushoutmostoperators( tmp ); cf_pusharguments( reverse_arguments( f_argumentsofoperator( o ))); cf_pushoperator( o ); } p:view_check { if (! f_Nilarguments( cf_toparguments() )) { v_report(NonFatal( FileLine( o->file, o->line ), Problem1S1ID( "too few subpatterns for operator", o ))); } cf_poparguments(); cf_popoperator(); } $} { else { v_report(NonFatal( FileLine( o->file, o->line ), Problem1S1ID1S1ID( "outermost operator", o, "not in expected phylum", cf_topphylum() ))); } } $} ]; OPOperator( o, p ) -> [view_check: { if( f_useoccuroperator( o )) } ${ { if ( eq_ID( cf_topphylum(), f_emptyId() )) { cf_popphylum(); cf_pushphylum( f_phylumofoperator( o ) ); } } ${ { operators tmp = Consoperators( o, cf_topoutmostoperators() ); cf_popoutmostoperators(); cf_pushoutmostoperators( tmp ); cf_pusharguments( reverse_arguments( f_argumentsofoperator( o ))); cf_pushoperator( o ); } p { if (! f_Nilarguments( cf_toparguments() )) { v_report(NonFatal( FileLine( o->file, o->line ), Problem1S1ID( "too few subpatterns for operator", o ))); } cf_poparguments(); cf_popoperator(); } $} $} ]; OPNonLeafVariable( v, p ) -> [view_check: { variables tmp = Consvariables( v, cf_topvariables() ); cf_popvariables(); cf_pushvariables( tmp ); v_extendoccur( v, ITPatternVariable( f_phylumofoutmostpattern( p ), cl_scope)); } p ]; OPNonLeafVariable( v, p ) -> [view_check_outmostopers_in_phylum: { variables tmp = Consvariables( v, cf_topvariables() ); ID tmp_pid = f_phylumofoutmostpattern( p ); ID tmp_vid = f_phylumofpatternvariable( v ); ID tmp_resid = eq_ID( tmp_pid, f_emptyId() ) ? tmp_vid : tmp_pid; if ( eq_ID( cf_topphylum(), f_emptyId() )) { cf_popphylum(); cf_pushphylum( tmp_resid ); } cf_popvariables(); cf_pushvariables( tmp ); v_extendoccur( v, ITPatternVariable( tmp_resid, cl_scope)); } p:view_check ]; OPDefault(), OPWildcard() -> [view_check: {/*EMPTY*/} ]; Conspatterns( p, rp ) -> [view_check: rp { if (f_Nilarguments( cf_toparguments() )) { ID o = cf_topoperator(); v_report(NonFatal( FileLine( o->file, o->line ), Problem1S1ID( "too many subpatterns for operator", o ))); } else } ${ { arguments tmp; } p { tmp = cf_toparguments(); cf_poparguments(); cf_pusharguments( f_tl_arguments( tmp )); } $} ]; Nilpatterns() -> [view_check: {/*EMPTY*/} /* we don't test here, because at this point we are before the first element in the list */ ]; PVariable( v ) -> [view_check: { variables tmp = Consvariables( v, cf_topvariables() ); cf_popvariables(); cf_pushvariables( tmp ); v_extendoccur( v, ITPatternVariable( f_hd_arguments( cf_toparguments() ), cl_scope )); } ]; POperator( o, p ) -> [view_check: { if( f_useoccuroperator( o )) } ${ { if (f_Nilarguments( cf_toparguments() )) { ID o = cf_topoperator(); v_report(NonFatal( FileLine( o->file, o->line ), Problem1S1ID( "too many subpatterns for operator", o ))); } else if (f_operatorinphylum( o, f_hd_arguments( cf_toparguments() ))) } ${ { cf_pusharguments( reverse_arguments( f_argumentsofoperator( o ))); cf_pushoperator( o ); } p { if (! f_Nilarguments( cf_toparguments() )) { v_report(NonFatal( FileLine( o->file, o->line ), Problem1S1ID( "too few subpatterns for operator", o ))); } cf_poparguments(); cf_popoperator(); } $} {else} ${ { v_report(NonFatal( FileLine( o->file, o->line ), Problem1S1ID1S1ID( "operator", o, "not in phylum", f_hd_arguments( cf_toparguments() ) ))); } $} $} ]; PNonLeafVariable( v, p ) -> [view_check: { variables tmp = Consvariables( v, cf_topvariables() ); cf_popvariables(); cf_pushvariables( tmp ); v_extendoccur( v, ITPatternVariable( f_hd_arguments( cf_toparguments() ), cl_scope )); } p ]; PWildcard() -> [view_check: {/*EMPTY*/} ]; PStringLiteral( * ) -> [view_check: { if ( (! eq_ID( f_hd_arguments( cf_toparguments() ), Id( Str( mkcasestring( "casestring" ))))) && (! eq_ID( f_hd_arguments( cf_toparguments() ), Id( Str( mkcasestring( "nocasestring" ))))) ) { v_report(NonFatal( FileLine( cf_topoperator()->file, cf_topoperator()->line ), Problem1S( "unexpected string subterm" ))); } } ]; PIntLiteral( i ) -> [view_check: { if ((! eq_ID( f_hd_arguments( cf_toparguments() ), Id( Str( mkcasestring( "int" ))))) && (! eq_ID( f_hd_arguments( cf_toparguments() ), Id( Str( mkcasestring( "float" ))))) ) { v_report(NonFatal( FileLine( i->file, i->line ), Problem1S( "unexpected int subterm" ))); } } ]; /* * check used occurences of operators in the rwdeclarations * */ /* * Basic idea: when we check a Ctext that is part of a withcase, we expect that we can find the type of the outmost-opers in stacktopphylum and the outmostoperators (a list of ID) in stacktopoperators */ Consrwdeclarations( rwd, rrwd ) -> [view_check: rrwd rwd ]; Nilrwdeclarations() -> [view_check: {/*EMPTY*/} ]; RwDeclaration( op, rc ) -> [view_check: { cf_pushoutmostoperators( Niloperators() ); cf_pushdollarvarsallowed( DVAllowed() ); cf_pushphylum( f_emptyId() ); cf_pushvariables( Nilvariables()); cl_scope++; } op rc { freelist_operators( cf_topoutmostoperators() ); cf_popoutmostoperators(); cf_popphylum(); cf_popdollarvarsallowed(); v_reset_variables_type( cf_topvariables() ); cl_scope--; freelist_variables( cf_topvariables() ); cf_popvariables(); } ]; Consrewriteclauses( rc, rcs ) -> [view_check: rcs rc ]; Nilrewriteclauses() -> [view_check: {/*EMPTY*/} ]; RewriteClause( vn, * ) -> [view_check: vn:view_check_r ]; Consfndeclarations( fnd, fnds ) -> [view_check: fnds fnd]; Nilfndeclarations() -> [view_check: {/*EMPTY*/} ]; FnAcDeclaration( *, *, *, ct, *, * ), FnDeclaration( *, *, *, *, *, ct, * ) -> [view_check: ct ]; ConsCtext( cte, ctes ) -> [view_check: ctes cte ]; NilCtext() -> [view_check: {/*EMPTY*/} ]; CTextLine( * ) -> [view_check: {/*EMPTY*/} ]; CTextDollarVar( i = Int( iv ) ) -> [view_check: { if ( /*(i != 0) &&*/ f_DvIsDisallowed( cf_topdollarvarsallowed() )) { v_report(NonFatal( FileLine( i->file, i->line ), Problem1S1INT( "illegal dollar variable (not allowed in &-ed pattern context)", i ))); } else if (cf_notemptyoutmostoperators()) { v_check_dollarvar_attribute_in_operators( i, Nilunpattributes(), cf_topoutmostoperators() ); } else if (iv != 0) { v_report(NonFatal( FileLine( i->file, i->line ), Problem1S1INT( "illegal dollar variable", i ))); } } ]; CTextNl( * ) -> [view_check: {/*EMPTY*/} ]; CTextCexpressionDQ( * ) -> [view_check: {/*EMPTY*/} ]; CTextCexpressionSQ( * ) -> [view_check: {/*EMPTY*/} ]; CTextCbody( ct ) -> [view_check: ct ]; /* for the patternchains, we check in the following way: * We have a list of types (on top of a stack of such lists), * and a list of patterns: the term we are unparsing. * Note that we first unparse tail, then head. * We start by taking the head and tail of the top-of-types-stack. * Just before we unparse the tail of the patterns list, * we pop the types list, and push the tail of the types list back. * Just before we unparse the head of the patterns list, * we push the head of the original type list to make it available * to the code that will check the pattern. * During checking, this type may be updated, eg. if it wasn't known * so far. Such an update will replace the value on top of the type stack. * After unparsing the head and the tail of the patterns list, we restore the * 'old' types list on top the stack, at the same time taking into account the * possible changes, by replacing the top of the type-list stack by the * prepending the top of the type stack (used/updated during checking the pattern head) * to the top of the types-stack (used/updated during checking the pattern tail). */ Nilpatternchains() -> [view_check view_set_type: {/*EMPTY*/} ]; Conspatternchains( h, t ) -> [view_check view_set_type: t h ]; p = Nilpatternchain() -> [view_check: { with( cf_topphylumnames() ) { Consphylumnames( p_h, p_t ): { v_report(NonFatal( FileLine( p->file, p->line ), Problem1S( "less &-ed patterns than expressions"))); } Nilphylumnames(): {/*EMPTY*/} } } ]; p = Conspatternchain( h, t ) -> [view_check: { ID tmp_type = 0; phylumnames tmp_types = 0; with( cf_topphylumnames() ) { Consphylumnames( p_h, p_t ): { tmp_type = p_h; tmp_types = p_t; } Nilphylumnames(): { tmp_type = f_emptyId(); tmp_types = Nilphylumnames(); v_report(NonFatal( FileLine( p->file, p->line ), Problem1S( "more &-ed patterns than expressions"))); } } cf_popphylumnames(); cf_pushphylumnames( tmp_types ); } t { tmp_types = cf_topphylumnames(); cf_popphylumnames(); cf_pushphylum( tmp_type ); } h { tmp_type = cf_topphylum(); cf_popphylum(); cf_pushphylumnames( Consphylumnames( tmp_type, tmp_types ) ); } ]; Conspatternchain( PatternchainitemOutmost( OPDefault() ), Nilpatternchain() ) -> [view_check: {/*EMPTY*/} ]; Conspatternchain( *, Conspatternchain( p = PatternchainitemOutmost( OPDefault() ), * )), Conspatternchain( p = PatternchainitemOutmost( OPDefault() ), Conspatternchain( *, * )) -> [view_check: { v_report(NonFatal( FileLine( p->file, p->line ), Problem1S( "'default' can not be &-ed with (other) patterns"))); } ]; mpg = PatternchainitemGroup( mp ) -> [view_check: { v_report( NonFatal( FileLine( mpg->file, mpg->line ), Problem1S( "Internal Error: PatternchainitemGroup was not handled correctly" ))); } ]; PatternchainitemOutmost( p ) -> [view_check: { if (cf_topinforeachcontext()) } ${ p:view_check_is_var $} {else} ${ p:view_check_outmostopers_in_phylum $} ]; Nilpatternchain() -> [view_set_type: {/*EMPTY*/} ]; Conspatternchain( h, t ) -> [view_set_type: { ID tmp_type = 0; phylumnames tmp_types = 0; with( cf_topphylumnames() ) { Consphylumnames( p_h, p_t ): { tmp_type = p_h; tmp_types = p_t; } Nilphylumnames(): { tmp_type = f_emptyId(); tmp_types = Nilphylumnames(); } } cf_popphylumnames(); cf_pushphylumnames( tmp_types ); } t { tmp_types = cf_topphylumnames(); cf_popphylumnames(); cf_pushphylum( tmp_type ); if (! eq_ID( cf_topphylum(), f_emptyId() )) { h->type = cf_topphylum(); } } h { tmp_type = cf_topphylum(); cf_popphylum(); cf_pushphylumnames( Consphylumnames( tmp_type, tmp_types ) ); } ]; PatternchainitemGroup( mp ) -> [view_set_type: {/*EMPTY*/} ]; PatternchainitemOutmost( p ) -> [view_set_type: { if (! eq_ID( cf_topphylum(), f_emptyId() )) } ${ { p->type = cf_topphylum(); } $} ]; OPOperatorWildcard( i ) -> [view_check_is_var: { v_warnifnotvariable( i ); } ]; OPOperator( *, * ) -> [view_check_is_var: {/*EMPTY*/} ]; OPNonLeafVariable( *, * ) -> [view_check_is_var: {/*EMPTY*/} ]; OPDefault(), OPWildcard() -> [view_check_is_var: {/*EMPTY*/} ]; ConsidCexpressions( h, t ) -> [view_check: t h ]; IdCexpression( t, * ) -> [view_check: { v_useoccurlistphylum( t ); } ]; CTextForeachexpression( *, ide, *, ct, fa ) -> [view_check: { phylumnames tmp = f_phylumnames_foreachwith_vars( ide ); cf_pushphylumnames( tmp ); } ide ct { cf_popphylumnames(); /* free_phylumnames(tmp); ??? */ } fa ]; NoForeachAfter() -> [view_check: {/*EMPTT*/} ]; ForeachAfter( mp, ide, *, ct ) -> [view_check: { phylumnames tmp = f_phylumnames_foreachwith_listvars( ide ); cf_pushphylumnames( tmp ); } ct { cf_popphylumnames(); /* free_phylumnames(tmp); ??? */ } ]; CTextWithexpression( we, wc, in_foreach_context ) -> [view_check: { cf_pushwithexpressions( we ); with(in_foreach_context) { InForeachContext(*): { cf_pushinforeachcontext(1); } NotInForeachContext(): { cf_pushinforeachcontext(0); cf_pushphylumnames( we->type ); } } if (length_withexpressions( we ) == 1) { cf_pushdollarvarsallowed( DVAllowed() ); } else { cf_pushdollarvarsallowed( DVDisallowed() ); } } wc wc:view_set_type { we->type = cf_topphylumnames(); cf_popwithexpressions(); cf_popdollarvarsallowed(); } we { if (! cf_topinforeachcontext() ) { cf_popphylumnames(); } cf_popinforeachcontext(); } ]; Nilwithexpressions() -> [view_check: {/*EMPTT*/} ]; Conswithexpressions( h, t ) -> [view_check: { ID tmp_type = 0; phylumnames tmp_types = 0; t->type = cf_topphylumnames(); with( t->type ) { Consphylumnames( p_h, p_t ): { tmp_type = p_h; tmp_types = p_t; } Nilphylumnames(): { tmp_type = f_emptyId(); tmp_types = Nilphylumnames(); } } cf_popphylumnames(); cf_pushphylumnames( tmp_types ); } t { h->type = tmp_type; if (eq_ID(tmp_type, f_emptyId())) { v_report(NonFatal( FileLine( h->file, h->line ), Problem1S1we( "could not infer type of with-expression argument:", h ))); } } ]; WEVariable( id ) -> [view_gen_initializephyla_c: id ]; WECexpression( cexpr ) -> [view_gen_initializephyla_c: " " cexpr " " ]; Conswithcases( wc, wcs ) -> [view_check: wcs wc ]; Nilwithcases() -> [view_check: {/*EMPTY*/} ]; Withcase( mp, ct ) -> [view_check: { cf_pushoutmostoperators( Niloperators() ); cf_pushvariables( Nilvariables()); cl_scope++; } /* the context (Ctext) has called cf_pushphylum */ mp ct /* the context (Ctext) calls cf_popphylum */ { freelist_operators( cf_topoutmostoperators() ); cf_popoutmostoperators(); v_reset_variables_type( cf_topvariables() ); cl_scope--; freelist_variables( cf_topvariables() ); cf_popvariables(); } ]; Conswithcases( wc, wcs ) -> [view_set_type: wcs wc ]; Nilwithcases() -> [view_set_type: {/*EMPTY*/} ]; Withcase( mp, * ) -> [view_set_type: mp ]; Consunparsedeclarations( ud, uds ) -> [view_check: uds ud ]; Nilunparsedeclarations() -> [view_check: {/*EMPTY*/} ]; UnparseDeclaration( op, uc ) -> [view_check: { cf_pushoutmostoperators( Niloperators() ); cf_pushdollarvarsallowed( DVAllowed() ); cf_pushphylum( f_emptyId() ); cf_pushvariables( Nilvariables()); cl_scope++; } op uc { freelist_operators( cf_topoutmostoperators() ); cf_popoutmostoperators(); cf_popdollarvarsallowed(); cf_popphylum(); v_reset_variables_type( cf_topvariables() ); cl_scope--; freelist_variables( cf_topvariables() ); cf_popvariables(); } ]; Consunparseclauses( uc, ucs ) -> [view_check: ucs uc ]; Nilunparseclauses() -> [view_check: {/*EMPTY*/} ]; UnparseClause( vn, ui ) -> [view_check: vn:view_check_u ui]; Consviewnames( vn, vns ) -> [view_check_u: vns { if (pg_uviewshavebeendefined) v_useoccuruviewname( vn ); else v_extendoccur_nowarning( vn, ITUserUView() ); v_add_to_uviewnames( vn ); } ]; Nilviewnames() -> [view_check_u: {/*EMPTY*/} ]; Consviewnames( vn, vns ) -> [view_check_r: vns { if (pg_rviewshavebeendefined) v_useoccurrviewname( vn ); else v_extendoccur_nowarning( vn, ITUserRView() ); v_add_to_rviewnames( vn ); } ]; Nilviewnames() -> [view_check_r: {/*EMPTY*/} ]; Consunparseitems( ui, uis ) -> [view_check: uis ui ]; Nilunparseitems() -> [view_check: {/*EMPTY*/} ]; UnpStr( *, * ) -> [view_check: {/*EMPTY*/} ]; UnpSubexpr( us, * ) -> [view_check: us ]; UnpCtext( ct ) -> [view_check: ct ]; UnpBody( ui ) -> [view_check: ui ]; UnpSubTerm( id ) -> [view_check: { v_useoccurpatternvariable( id ); v_syn_type_attribute_ID( id ); } ]; UnpDollarvarTerm( i ) -> [view_check: { v_check_dollarvar_attribute_in_operators( i, Nilunpattributes(), cf_topoutmostoperators() ); } ]; UnpSubAttr( v_id, unp_a ) -> [view_check: { ID p_id; if (f_useoccurpatternvariable( v_id ) && (p_id = f_phylumofpatternvariable( v_id))) (void)f_check_unpattributes_in_phylum( unp_a, p_id ); v_syn_type_attribute_ID( v_id ); } ]; UnpDollarvarAttr( i, unp_a ) -> [view_check: { v_check_dollarvar_attribute_in_operators( i, unp_a, cf_topoutmostoperators() ); } ]; UnpCastedVariable( *, * ) -> [view_check: {/*EMPTY*/} ]; Consunparsedeclarations( ud, uds ) -> [view_check_viewnames: uds ud ]; Nilunparsedeclarations() -> [view_check_viewnames: {/*EMPTY*/} ]; UnparseDeclaration( *, uc ) -> [view_check_viewnames: uc ]; Consunparseclauses( uc, ucs ) -> [view_check_viewnames: ucs uc ]; Nilunparseclauses() -> [view_check_viewnames: {/*EMPTY*/} ]; UnparseClause( *, ui ) -> [view_check_viewnames: ui]; Consunparseitems( ui, uis ) -> [view_check_viewnames: uis ui ]; Nilunparseitems() -> [view_check_viewnames: {/*EMPTY*/} ]; UnpStr( *, vno ) -> [view_check_viewnames: vno ]; UnpSubexpr( *, vno ) -> [view_check_viewnames: vno ]; NoViewname() -> [view_check_viewnames: {/*EMPTY*/} ]; YesViewname( vn ) -> [view_check_viewnames: { v_useoccuruviewname( vn ); } ]; /* * IMPORTANT!!!! * The following code should be called in time to initialise the stacks * (static variables in the generated KC_UNPARSE code file). */ Nilphylumdeclarations(), Consphylumdeclarations( *, * ) -> [view_init_stacks: { if (!cl_operatorsstack) cl_operatorsstack = Niloperatorsstack(); if (!cl_dollarvarsallowedstack) cl_dollarvarsallowedstack = Nildollarvarsallowedstack(); if (!cl_inforeachcontextstack) cl_inforeachcontextstack = Nilintstack(); if (!cl_argumentsstack) cl_argumentsstack = Nilargumentsstack(); if (!cl_phylumstack) cl_phylumstack = Nilphylumstack(); if (!cl_phylumnamesstack) cl_phylumnamesstack = Nilphylumnamesstack(); if (!cl_withexpressionsstack) cl_withexpressionsstack = Nilwithexpressionsstack(); if (!cl_operatorstack) cl_operatorstack = Niloperatorstack(); if (!cl_variablesstack) cl_variablesstack = Nilvariablesstack(); if (!cl_selvarstack) cl_selvarstack = Nilselvarstack(); if (!cl_dollarvarstack) cl_dollarvarstack = Nilselvarstack(); if (!cl_dollarvarextstack) cl_dollarvarextstack = Nilselvarstack(); } ]; %{ KC_UNPARSE static operatorsstack cl_operatorsstack = 0; #define cf_pushoutmostoperators(o) \ cl_operatorsstack = Consoperatorsstack( o, cl_operatorsstack ) #define cf_notemptyoutmostoperators() \ (cl_operatorsstack->prod_sel == sel_Consoperatorsstack) #define cf_topoutmostoperators() \ ((cl_operatorsstack->prod_sel == sel_Consoperatorsstack) \ ? cl_operatorsstack->u.Consoperatorsstack.operators_1 \ : Niloperators()) #define cf_popoutmostoperators() \ do { \ if (cl_operatorsstack->prod_sel == sel_Consoperatorsstack) { \ operatorsstack tmp_cl_operatorsstack = cl_operatorsstack; \ cl_operatorsstack = \ cl_operatorsstack->u.Consoperatorsstack.operatorsstack_1; \ free_operatorsstack( tmp_cl_operatorsstack, False ); \ } \ } while(kc_zero_constant) static dollarvarsallowedstack cl_dollarvarsallowedstack = 0; #define cf_pushdollarvarsallowed(o) \ cl_dollarvarsallowedstack = Consdollarvarsallowedstack( o, cl_dollarvarsallowedstack ) #define cf_topdollarvarsallowed() \ ((cl_dollarvarsallowedstack->prod_sel == sel_Consdollarvarsallowedstack) \ ? cl_dollarvarsallowedstack->u.Consdollarvarsallowedstack.dollarvarstatus_1 \ : DVDisallowed()) #define cf_popdollarvarsallowed() \ do { \ if (cl_dollarvarsallowedstack->prod_sel == sel_Consdollarvarsallowedstack) { \ dollarvarsallowedstack tmp_cl_dollarvarsallowedstack = cl_dollarvarsallowedstack; \ cl_dollarvarsallowedstack = \ cl_dollarvarsallowedstack->u.Consdollarvarsallowedstack.dollarvarsallowedstack_1; \ free_dollarvarsallowedstack( tmp_cl_dollarvarsallowedstack, False ); \ } \ } while(kc_zero_constant) static intstack cl_inforeachcontextstack = 0; #define cf_pushinforeachcontext(o) \ cl_inforeachcontextstack = Consintstack( o, cl_inforeachcontextstack ) #define cf_topinforeachcontext() \ ((cl_inforeachcontextstack->prod_sel == sel_Consintstack) \ ? cl_inforeachcontextstack->u.Consintstack.int_1 \ : 0) #define cf_popinforeachcontext() \ do { \ if (cl_inforeachcontextstack->prod_sel == sel_Consintstack) { \ intstack tmp_cl_inforeachcontextstack = cl_inforeachcontextstack; \ cl_inforeachcontextstack = \ cl_inforeachcontextstack->u.Consintstack.intstack_1; \ free_intstack( tmp_cl_inforeachcontextstack, False ); \ } \ } while(kc_zero_constant) static argumentsstack cl_argumentsstack = 0; #define cf_pusharguments(a) \ cl_argumentsstack = Consargumentsstack( a, cl_argumentsstack ) #define cf_toparguments() \ ((cl_argumentsstack->prod_sel == sel_Consargumentsstack) \ ? cl_argumentsstack->u.Consargumentsstack.arguments_1 \ : Nilarguments()) #define cf_poparguments() \ do { \ if (cl_argumentsstack->prod_sel == sel_Consargumentsstack) { \ argumentsstack tmp_cl_argumentsstack = cl_argumentsstack; \ cl_argumentsstack = \ cl_argumentsstack->u.Consargumentsstack.argumentsstack_1; \ free_argumentsstack( tmp_cl_argumentsstack, False ); \ } \ } while(kc_zero_constant) static phylumstack cl_phylumstack = 0; #define cf_pushphylum(a) cl_phylumstack = Consphylumstack( a, cl_phylumstack ) #define cf_topphylum() \ ((cl_phylumstack->prod_sel == sel_Consphylumstack) \ ? cl_phylumstack->u.Consphylumstack.ID_1 \ : f_emptyId()) #define cf_popphylum() \ do { \ if (cl_phylumstack->prod_sel == sel_Consphylumstack) { \ phylumstack tmp_cl_phylumstack = cl_phylumstack; \ cl_phylumstack = cl_phylumstack->u.Consphylumstack.phylumstack_1; \ free_phylumstack( tmp_cl_phylumstack, False ); \ } \ } while(kc_zero_constant) static phylumnamesstack cl_phylumnamesstack = 0; #define cf_pushphylumnames(a) cl_phylumnamesstack = Consphylumnamesstack( a, cl_phylumnamesstack ) #define cf_topphylumnames() \ ((cl_phylumnamesstack->prod_sel == sel_Consphylumnamesstack) \ ? cl_phylumnamesstack->u.Consphylumnamesstack.phylumnames_1 \ : Nilphylumnames()) #define cf_popphylumnames() \ do { \ if (cl_phylumnamesstack->prod_sel == sel_Consphylumnamesstack) { \ phylumnamesstack tmp_cl_phylumnamesstack = cl_phylumnamesstack; \ cl_phylumnamesstack = cl_phylumnamesstack->u.Consphylumnamesstack.phylumnamesstack_1; \ free_phylumnamesstack( tmp_cl_phylumnamesstack, False ); \ } \ } while(kc_zero_constant) static withexpressionsstack cl_withexpressionsstack = 0; #define cf_pushwithexpressions(a) \ cl_withexpressionsstack = \ Conswithexpressionsstack( a, cl_withexpressionsstack ) #define cf_topwithexpressions() \ ((cl_withexpressionsstack->prod_sel == sel_Conswithexpressionsstack) \ ? cl_withexpressionsstack->u.Conswithexpressionsstack.withexpressions_1 \ : (withexpressions)0) #define cf_popwithexpressions() \ do { \ if (cl_withexpressionsstack->prod_sel == sel_Conswithexpressionsstack) { \ withexpressionsstack tmp_cl_withexpressionsstack = \ cl_withexpressionsstack; \ cl_withexpressionsstack = \ cl_withexpressionsstack->u.Conswithexpressionsstack.withexpressionsstack_1; \ free_withexpressionsstack( tmp_cl_withexpressionsstack, False ); \ } \ } while(kc_zero_constant) static operatorstack cl_operatorstack = 0; #define cf_pushoperator(o) cl_operatorstack = Consoperatorstack( o, cl_operatorstack ) #define cf_topoperator() \ ((cl_operatorstack->prod_sel == sel_Consoperatorstack) \ ? cl_operatorstack->u.Consoperatorstack.ID_1 \ : f_emptyId()) #define cf_popoperator() \ do { \ if (cl_operatorstack->prod_sel == sel_Consoperatorstack) { \ operatorstack tmp_cl_operatorstack = cl_operatorstack; \ cl_operatorstack = cl_operatorstack->u.Consoperatorstack.operatorstack_1; \ free_operatorstack( tmp_cl_operatorstack, False ); \ } \ } while(kc_zero_constant) static variablesstack cl_variablesstack = 0; #define cf_pushvariables(o) \ cl_variablesstack = Consvariablesstack( o, cl_variablesstack ) #define cf_topvariables() \ ((cl_variablesstack->prod_sel == sel_Consvariablesstack) \ ? cl_variablesstack->u.Consvariablesstack.variables_1 \ : Nilvariables()) #define cf_popvariables() \ do { \ if (cl_variablesstack->prod_sel == sel_Consvariablesstack) { \ variablesstack tmp_cl_variablesstack = cl_variablesstack; \ cl_variablesstack = \ cl_variablesstack->u.Consvariablesstack.variablesstack_1; \ free_variablesstack( tmp_cl_variablesstack, False ); \ } \ } while(kc_zero_constant) %} boolean f_DvIsDisallowed( $dvs ) dollarvarstatus dvs; { DVAllowed(): { return False; } DVDisallowed(): { return True; } } ID f_listelementphylum( $id ) ID id; { Id( uid ): { with( uid->type ) { ITUnknown(), ITPredefinedBigatomPhylum( * ), ITPredefinedPhylum( * ): { return f_emptyId(); } ITUserPhylum( pd ): { with( pd ) { PhylumDeclaration( *, *, Emptyproductionblock(), * ): { return f_emptyId(); } PhylumDeclaration( *, *, ListAlternatives( *, i ), * ): { return i; } PhylumDeclaration( *, *, NonlistAlternatives( * ), * ): { return f_emptyId(); } PhylumDeclaration( *, *, PredefinedAlternatives( * ), * ): { return f_emptyId(); } } } ITPredefinedOperator( *, * ), ITUserOperator( *, * ), ITPredefinedStorageClass(), ITStorageClass(), ITUserFunction( * ), ITPredefinedUView(), ITUserUView(), ITPredefinedRView(), ITUserRView(), ITPatternVariable( *, * ): { return f_emptyId(); } } } } ID f_listelementconsoperator( $id ) ID id; { Id( uid ): { with( uid->type ) { ITUnknown(), ITPredefinedBigatomPhylum( * ), ITPredefinedPhylum( * ): { return f_emptyId(); } ITUserPhylum( pd ): { with( pd ) { PhylumDeclaration( *, *, Emptyproductionblock(), * ): { return f_emptyId(); } PhylumDeclaration( *, *, ListAlternatives( Consalternatives( Alternative( Cons_id, * ), * ), * ), * ): { return Cons_id; } PhylumDeclaration( *, *, NonlistAlternatives( * ), * ): { return f_emptyId(); } PhylumDeclaration( *, *, PredefinedAlternatives( * ), * ): { return f_emptyId(); } } } ITPredefinedOperator( *, * ), ITUserOperator( *, * ), ITPredefinedStorageClass(), ITStorageClass(), ITUserFunction( * ), ITPredefinedUView(), ITUserUView(), ITPredefinedRView(), ITUserRView(), ITPatternVariable( *, * ): { return f_emptyId(); } } } } %{ KC_TYPES_HEADER extern ID f_emptyId(); %} ID f_emptyId() { static ID emptyID = 0; if (! emptyID) { emptyID = Id (Str( mkcasestring( "" ))); } return emptyID; } boolean f_operatorinphylum( $oid, pid ) ID oid; ID pid; { Id( uid ): { with( uid->type ) { ITUnknown(), ITPredefinedBigatomPhylum( * ), ITPredefinedPhylum( * ), ITUserPhylum( * ), ITPredefinedOperator( *, *): { return False; } ITUserOperator( *, id ): { return eq_ID( pid, id ); } ITPredefinedStorageClass(), ITStorageClass(), ITUserFunction( * ), ITPredefinedUView(), ITUserUView(), ITPredefinedRView(), ITUserRView(), ITPatternVariable( *, * ): { return False; } } } } boolean f_isphylum( $id ) ID id; { Id( uid ): { with( uid->type ) { ITUnknown(): { return False; } ITPredefinedBigatomPhylum( * ), ITPredefinedPhylum( * ), ITUserPhylum( * ): { return True; } ITPredefinedOperator( *, *), ITUserOperator( *, * ), ITPredefinedStorageClass(), ITStorageClass(), ITUserFunction( * ), ITPredefinedUView(), ITUserUView(), ITPredefinedRView(), ITUserRView(), ITPatternVariable( *, * ): { return False; } } } } boolean f_ispredefinedphylum( $id ) ID id; { Id( uid ): { with( uid->type ) { ITUnknown(): { return False; } ITPredefinedBigatomPhylum( * ), ITPredefinedPhylum( * ): { return True; } ITUserPhylum( * ), ITPredefinedOperator( *, *), ITUserOperator( *, * ), ITPredefinedStorageClass(), ITStorageClass(), ITUserFunction( * ), ITPredefinedUView(), ITUserUView(), ITPredefinedRView(), ITUserRView(), ITPatternVariable( *, * ): { return False; } } } } alternative f_alternativeofoperator( $oid ) ID oid; { Id( uid ): { with( uid->type ) { ITUnknown(), ITPredefinedBigatomPhylum( * ), ITPredefinedPhylum( * ), ITUserPhylum( * ), ITPredefinedOperator( *, * ): { return (alternative)0; } ITUserOperator( a, * ): { return a; } ITPredefinedStorageClass(), ITStorageClass(), ITUserFunction( * ), ITPredefinedUView(), ITUserUView(), ITPredefinedRView(), ITUserRView(), ITPatternVariable( *, * ): { return (alternative)0; } } } } arguments f_argumentsofoperator( $oid ) ID oid; { Id( uid ): { with( uid->type ) { ITUnknown(), ITPredefinedBigatomPhylum( * ), ITPredefinedPhylum( * ), ITUserPhylum( * ), ITPredefinedOperator( *, * ): { return Nilarguments(); } ITUserOperator( Alternative( *, args ), * ): { return args; } ITPredefinedStorageClass(), ITStorageClass(), ITUserFunction( * ), ITPredefinedUView(), ITUserUView(), ITPredefinedRView(), ITUserRView(), ITPatternVariable( *, * ): { return Nilarguments(); } } } } ID f_phylumofoperator( $oid ) ID oid; { Id( uid ): { with( uid->type ) { ITUnknown(), ITPredefinedBigatomPhylum( * ), ITPredefinedPhylum( * ), ITUserPhylum( * ), ITPredefinedOperator( *, * ): { return f_emptyId(); } ITUserOperator( *, id ): { return id; } ITPredefinedStorageClass(), ITStorageClass(), ITUserFunction( * ), ITPredefinedUView(), ITUserUView(), ITPredefinedRView(), ITUserRView(), ITPatternVariable( *, * ): { return f_emptyId(); } } } } ID f_phylumofpatternID( vid ) ID vid; { with( vid->type ) { ITUnknown(), ITPredefinedBigatomPhylum( * ), ITPredefinedPhylum( * ), ITUserPhylum( * ), ITPredefinedOperator( *, * ), ITUserOperator( *, * ), ITPredefinedStorageClass(), ITStorageClass(), ITUserFunction( * ), ITPredefinedUView(), ITUserUView(), ITPredefinedRView(), ITUserRView(): { return f_emptyId(); } ITPatternVariable( id, * ): { return id; } } } ID f_phylumofpatternvariable( $vid ) ID vid; { Id( uid ): { with( uid->type ) { ITUnknown(), ITPredefinedBigatomPhylum( * ), ITPredefinedPhylum( * ), ITUserPhylum( * ), ITPredefinedOperator( *, * ), ITUserOperator( *, * ), ITPredefinedStorageClass(), ITStorageClass(), ITUserFunction( * ), ITPredefinedUView(), ITUserUView(), ITPredefinedRView(), ITUserRView(): { return f_emptyId(); } ITPatternVariable( id, * ): { return id; } } } } void v_syn_type_attribute_ID( $id ) ID id; { Id( uid ): { with( uid->type ) { ITPatternVariable( *, * ): { id->type = uid->type; } default: {{/*EMPTY*/}} } } } boolean f_Nilarguments( $a ) arguments a; { Nilarguments(): { return True; } Consarguments( *, * ): { return False; } } ID f_hd_arguments( $a ) arguments a; { Nilarguments(): { /*SUPPRESS 622*/ assert(kc_zero_constant); /*shouldn't happen*/ return (ID)0;/*for lint */ } Consarguments( hd, * ): { return hd; } } arguments f_tl_arguments( $a ) arguments a; { Nilarguments(): { /*SUPPRESS 622*/ assert( kc_zero_constant ); /*shouldn't happen*/ return (arguments)0;/*for lint */ } Consarguments( *, tl ): { return tl; } } void v_check_dollarvar_attribute_in_operators( i, a, o ) INT i; unpattributes a; operators $o; { Niloperators(): {{/*EMPTY*/}} Consoperators( o_o, o_os ): { ID phy = f_subphylumofoperator( o_o, i ); if (eq_ID(phy, f_emptyId())) { v_report(NonFatal( FileLine( i->file, i->line ), Problem1S1INT1S1ID( "illegal dollar variable", i, "not that many subterms in operator", o_o ))); } else { (void)f_check_unpattributes_in_phylum( a, phy ); v_do_check_dollarvar_in_operators( i, o_os, phy ); } } } ID f_check_unpattributes_in_phylum( a, p ) unpattributes a; ID p; { ID tmp; unpattributes t = reverse_unpattributes( a ); tmp = f_do_check_unpattributes_in_phylum( t, p ); freelist_unpattributes( t ); return tmp; } /* * WARNING: the routine below expects the unpattributes list to be in * `normal' order: the tail contains attributes of the head * So: take care that the unpattributes as parsed are reversed.. * as v_check_unpattributes_in_phylum does for example * It returns the type of the attribute */ static ID f_do_check_unpattributes_in_phylum( $a, p ) unpattributes a; ID p; { Nilunpattributes(): { return p; } Consunpattributes( a_id, r_a ): { ID type = f_typeof_attribute_in_phylym( a_id, p ); if ( eq_ID( type, f_emptyId() )) { v_report(NonFatal( FileLine( a_id->file, a_id->line ), Problem1S1ID1S1ID( "attribute", a_id, "not defined in phylum", p ))); return f_emptyId(); } else { return f_do_check_unpattributes_in_phylum( r_a, type ); } } } static void v_do_check_dollarvar_in_operators( i, $o, p ) INT i; operators o; ID p; { Niloperators(): {{/*EMPTY*/}} Consoperators( o_o, o_os ): { ID phy = f_subphylumofoperator( o_o, i ); if (eq_ID(phy, f_emptyId())) { v_report(NonFatal( FileLine( i->file, i->line ), Problem1S1INT1S1ID( "illegal dollar variable", i, "not that many subterms in operator", o_o ))); } else if (! eq_ID( p, phy )) { v_report(NonFatal( FileLine( i->file, i->line ), Problem1S1INT1S1ID1S1ID( " type mismatch for dollar varariable:", i, "; old type", p, "; new type", phy ))); } v_do_check_dollarvar_in_operators( i, o_os, p ); } } %{ #include "parse.h" /* for f_lookupdecl */ %} boolean f_attribute_in_phylym( a, p ) ID a; ID p; { ID t = f_typeof_attribute_in_phylym( a, p ); if ( eq_ID( t, f_emptyId() )) { return False; } else { return True; } } ID f_typeof_attribute_in_phylym( a, p ) ID a; ID p; { phylumdeclaration tmp = f_lookupdecl( p ); if ( tmp == 0 ) { v_report(NonFatal( FileLine( p->file, p->line ), Problem1S1ID( "internal error: could not find declaration of phylum:", p ))); return f_emptyId(); } with( tmp ) { PhylumDeclaration( *, *, *, CcodeOption( attrs, * ) ): { foreach( attr; attributes attrs ) { with( attr ) { Attribute( a_type, a_id, * ): { if (eq_ID( a, a_id)) { return a_type; } } } } return f_emptyId(); } } } ID f_subphylumofoperator( o, $i ) ID o; INT i; { Int( ii ): { if (ii == 0) { return f_phylumofoperator( o ); } else { return f_subphylum( f_argumentsofoperator( o ), i ); } } } /* we want to have the i-th element from the *end* of the list */ ID f_subphylum( a, i ) arguments a; INT i; { return f_do_subphylum( a, i, length_arguments( a ) ); } static ID f_do_subphylum( $a, i, a_i ) arguments a; INT i; int a_i; { Nilarguments(): { /* internal error*/ return f_emptyId(); } Consarguments( a_a, a_as ): { with( i ) { Int( ii ): { if (ii == a_i) { return a_a; } else { return f_do_subphylum( a_as, i, a_i - 1 ); } } } } } argument f_argumentofoperator( o, $i ) ID o; INT i; { Int( ii ): { if (ii == 0) { return Argument( f_phylumofoperator( o ), 0); } else { return f_argument( f_argumentsofoperator( o ), i ); } } } /* we want to have the i-th element from the *end* of the list */ argument f_argument( a, i ) arguments a; INT i; { return f_do_argument( a, i, length_arguments( a ) ); } static argument f_do_argument( $a, i, a_i ) arguments a; INT i; int a_i; { Nilarguments(): { /* internal error*/ return Argument(f_emptyId(), 0); } Consarguments( a_a, a_as ): { with( i ) { Int( ii ): { if (ii == a_i) { return Argument( a_a, a->seqnr ); } else { return f_do_argument( a_as, i, a_i - 1 ); } } } } } ID f_phylumofoutmostpattern( $p ) outmostpattern p; { OPOperatorWildcard( o ): { return f_phylumofoperator( o ); } OPOperator( o, * ): { return f_phylumofoperator( o ); } OPNonLeafVariable( *, r_p ): { return f_phylumofoutmostpattern( r_p ); } OPDefault(), OPWildcard(): { return f_emptyId(); } } ID f_operatorofphylum(p, i) ID p; INT i; { phylumdeclaration tmp = f_lookupdecl( p ); if ( tmp == 0 ) { v_report(NonFatal( FileLine( p->file, p->line ), Problem1S1ID( "internal error: could not find declaration of phylum:", p ))); return f_emptyId(); } with( tmp ) { PhylumDeclaration( *, *, pb, * ): { with( pb ) { Emptyproductionblock(): { return f_emptyId(); } ListAlternatives( a, * ), NonlistAlternatives( a ), PredefinedAlternatives( a ): { alternative tmp_a = f_alternative( a, i ); if ( tmp_a == 0 ) { v_report(NonFatal( FileLine( p->file, p->line ), Problem1S1ID( "internal error: could not find operators of phylum:", p ))); return f_emptyId(); } with( tmp_a ) { Alternative( id, * ): { return id; } } } } } } } /* we want to have the i-th element from the *end* of the list */ alternative f_alternative( a, i ) alternatives a; INT i; { return f_do_alternative( a, i, length_alternatives( a ) ); } static alternative f_do_alternative( $a, i, a_i ) alternatives a; INT i; int a_i; { Nilalternatives(): { /* internal error*/ return 0; } Consalternatives( a_a, a_as ): { with( i ) { Int( ii ): { if (ii == a_i) { return a_a; } else { return f_do_alternative( a_as, i, a_i - 1 ); } } } } } /***************************************************************************/ %{ KC_UNPARSE #include "parse.h" static ID cl_uniqueID = 0; static ID cl_storageID = 0; %} Consphylumdeclarations( d, rpds ) -> [view_check_uniq: rpds d ]; Nilphylumdeclarations() -> [view_check_uniq: {/*EMPTY*/} ]; PhylumDeclaration( *, NoStorageOption(), pb, * ) -> [view_check_uniq: pb ]; PhylumDeclaration( *, NegativeStorageOption( * ), *, * ) -> [view_check_uniq: {/*EMPTY*/} ]; PhylumDeclaration( id, PositiveStorageOption( s_id ), pb, * ) -> [view_check_uniq: { $0->marked = 1; cl_uniqueID = id; cl_storageID = s_id; } pb:view_check_uniq1 { v_reset_phylumdeclaration_marks(); cl_uniqueID = (ID)0; cl_storageID = (ID)0; } ]; PhylumDeclaration( *, *, pb, * ) -> [view_check_uniq1: pb ]; Emptyproductionblock() -> [view_check_uniq1: {/*EMPTY*/} ]; ListAlternatives( alt, * ), NonlistAlternatives( alt ), PredefinedAlternatives( alt ) -> [view_check_uniq1: alt ]; Consalternatives( a, ralts ) -> [view_check_uniq1: ralts a ]; Nilalternatives() -> [view_check_uniq1: {/*EMPTY*/} ]; Alternative( *, args ) -> [view_check_uniq1: args ]; Consarguments( id, rargs ) -> [view_check_uniq1: { phylumdeclaration tmp = f_lookupdecl( id ); } rargs { if (tmp) } ${ (phylumdeclaration)tmp:view_check_uniq2 $} ]; PhylumDeclaration( *, PositiveStorageOption( * ), *, * ), PhylumDeclaration( *, *, Emptyproductionblock(), * ) -> [view_check_uniq2: {/*EMPTY*/} ]; PhylumDeclaration( id, *, ListAlternatives( *, * ), * ), PhylumDeclaration( id, *, NonlistAlternatives( * ), * ) -> [view_check_uniq2: { if (! $0->marked) } ${ { v_report(NonFatal( FileLine( cl_storageID->file, cl_storageID->line ), Problem1S1ID1S1ID( "'uniq' declared phylum:", cl_uniqueID, "has non 'uniq' (transitive) subterm:", id) )); $0->marked = 1; } $0:view_check_uniq1 $} ]; PhylumDeclaration( *, *, PredefinedAlternatives( * ), * ) -> [view_check_uniq2: {/*EMPTY*/} ]; Nilarguments() -> [view_check_uniq1: {/*EMPTY*/} ]; void v_reset_phylumdeclaration_marks() { foreach( p; phylumdeclarations Thephylumdeclarations ) { p->marked = 0; } } void v_reset_variables_type( v ) variables v; { foreach( var; variables v ) { with( var ) { Id( uid ): { with( uid->type ) { ITUnknown(): {{/*EMPTY*/}} ITPredefinedBigatomPhylum( * ), ITPredefinedPhylum( * ): {{/*EMPTY*/}} ITUserPhylum( * ): {{/*EMPTY*/}} ITPredefinedOperator( *, * ): {{/*EMPTY*/}} ITUserOperator( *, * ): {{/*EMPTY*/}} ITPredefinedStorageClass(): {{/*EMPTY*/}} ITStorageClass(): {{/*EMPTY*/}} ITUserFunction( * ): {{/*EMPTY*/}} ITPredefinedUView(): {{/*EMPTY*/}} ITUserUView(): {{/*EMPTY*/}} ITPredefinedRView(): {{/*EMPTY*/}} ITUserRView(): {{/*EMPTY*/}} ITPatternVariable( *, uid_scope ): { with( uid->scopeinfo ) { Nilscopetypefilelinestack(): { uid->type = ITUnknown(); uid->file = mkcasestring(""); uid->line = 0; } Consscopetypefilelinestack( ScopeTypeFileLine( s, t, f, l ), r_scopeinfo ): { if (s == uid_scope) { uid->type = t; uid->file = f; uid->line = l; uid->scopeinfo = r_scopeinfo; } } } } } } } } } /* code to test the pattern making routines */ %{ KC_UNPARSE #include "pat.h" /* for syn_outmostpatterns and v_resetbindingidmarks */ %} RwDeclaration( op, rc ) -> [view_make_patternreps: { v_resetbindingidmarks(); v_add_rewriterulesinfo_to_operator( add_predicates_to_patternrepresentations( syn_outmostpatterns( op ) ), rc ); } ]; Nilfndeclarations() -> [view_make_patternreps: {/*EMPTY*/} ]; Consfndeclarations( a_fnd, r_fnd) -> [view_make_patternreps: r_fnd a_fnd ]; FnAcDeclaration( *, *, *, ct, *, * ), FnDeclaration( *, *, *, *, *, ct, * ) -> [view_make_patternreps: ct ]; NilCtext() -> [view_make_patternreps: {/*EMPTY*/} ]; ConsCtext( ct_elem, r_ct ) -> [view_make_patternreps: r_ct ct_elem ]; CTextCbody( ct ) -> [view_make_patternreps: ct ]; CTextForeachexpression( *, *, *, ct, fa ) -> [view_make_patternreps: ct fa ]; NoForeachAfter() -> [view_make_patternreps: {/*EMPTT*/} ]; ForeachAfter( *, *, *, ct ) -> [view_make_patternreps: ct ]; CTextWithexpression( *, wc, * ) -> [view_make_patternreps: wc ]; Nilwithcases() -> [view_make_patternreps: { $0->wcinfo = Nilwithcasesinfo(); } ]; Conswithcases( wc, r_wcs ) -> [view_make_patternreps: wc r_wcs /* the following can be done much more efficient, * because both wc->wcinfo and r_wcs->wcinfo are already sorted */ { $0->wcinfo = r_wcs->wcinfo; foreach( wci; withcasesinfo wc->wcinfo ) { $0->wcinfo = insertin_withcasesinfo( wci, $0->wcinfo ); } } ]; Withcase( mp, ct ) -> [view_make_patternreps: ct { v_resetbindingidmarks(); $0->wcinfo = f_withcasesinfo( add_predicates_to_patternrepresentations( syn_patternchains( mp ) ), ct ); } ]; UnparseDeclaration( op, uc ) -> [view_make_patternreps: uc { v_resetbindingidmarks(); $0->patternreps = syn_outmostpatterns( op ); $0->patternreps = add_predicates_to_patternrepresentations($0->patternreps); v_add_unparsedeclsinfo_to_operator( $0->patternreps, uc ); /******* print_outmostpatterns( op ); print_patternrepresentations( $0->patternreps ); ******/ } ]; Nilunparseclauses() -> [view_make_patternreps: {/*EMPTY*/} ]; Consunparseclauses( a_uc, r_uc ) -> [view_make_patternreps: r_uc a_uc ]; UnparseClause( *, u_i ) -> [view_make_patternreps: u_i ]; Nilunparseitems() -> [view_make_patternreps: {/*EMPTY*/} ]; Consunparseitems( a_ui, r_ui ) -> [view_make_patternreps: r_ui a_ui ]; UnpCtext( ct ) -> [view_make_patternreps: ct ]; UnpBody( ui ) -> [view_make_patternreps: ui ]; void v_add_to_uviewnames( v ) ID v; { foreach( vn; viewnames Theuviewnames ) { if ( eq_ID( vn, v )) return; } Theuviewnames = Consviewnames( v, Theuviewnames ); } void v_add_to_rviewnames( v ) ID v; { foreach( vn; viewnames Therviewnames ) { if ( eq_ID( vn, v )) return; } Therviewnames = Consviewnames( v, Therviewnames ); } void v_add_to_storageclasses( v, p ) ID v; ID p; { Thestorageclasses = do_add_to_storageclasses( v, p, Thestorageclasses, Thestorageclasses ); } static storageclasses do_add_to_storageclasses( v, p, $s, all ) ID v; ID p; storageclasses s; storageclasses all; { Nilstorageclasses() : { storageclasses tmp = Consstorageclasses( v, all ); tmp->phyla = Nilphylumnames(); if (! eq_ID(p, f_emptyId())) { tmp->phyla = Consphylumnames( p, tmp->phyla ); } return tmp; } Consstorageclasses( sc, r_sc ): { if ( eq_ID( sc, v )) { if (! eq_ID(p, f_emptyId())) { s->phyla = Consphylumnames( p, s->phyla ); } return all; } else { return do_add_to_storageclasses( v, p, r_sc, all ); } } } /***************************************************************************/ /* genrate a list of types of the foreach variables generated for * the with-expression in a foreach context. */ phylumnames f_phylumnames_foreachwith_vars( idCexpressions a_idCexpressions ) { return t_f_phylumnames_foreachwith_vars(a_idCexpressions); } phylumnames t_f_phylumnames_foreachwith_vars( idCexpressions $a_idCexpressions ) { ConsidCexpressions( ice = IdCexpression( id, * ), t ): { return Consphylumnames( f_listelementphylum(id), t_f_phylumnames_foreachwith_vars( t )); } NilidCexpressions(): { return Nilphylumnames(); } } phylumnames f_phylumnames_foreachwith_listvars( idCexpressions a_idCexpressions ) { return t_f_phylumnames_foreachwith_listvars(a_idCexpressions); } phylumnames t_f_phylumnames_foreachwith_listvars( idCexpressions $a_idCexpressions ) { ConsidCexpressions( ice = IdCexpression( id, * ), t ): { return Consphylumnames( id, t_f_phylumnames_foreachwith_listvars( t )); } NilidCexpressions(): { return Nilphylumnames(); } } kimwitu-4.6.1.orig/src/y.output0100644000176100001440000032747207076113234016016 0ustar debacleusers Grammar rule 1 dollarvar -> T_DOLLARVAR rule 2 id -> T_ID rule 3 int -> T_INT rule 4 @1 -> /* empty */ rule 5 specification -> @1 declarations rule 6 declarations -> declaration rule 7 declarations -> declarations declaration rule 8 declaration -> phylumdeclaration rule 9 declaration -> rwdeclaration rule 10 declaration -> ac_function_definition rule 11 declaration -> includedeclaration rule 12 declaration -> unparsedeclaration rule 13 declaration -> uviewdeclaration rule 14 declaration -> rviewdeclaration rule 15 declaration -> storageclassdeclaration rule 16 @2 -> /* empty */ rule 17 phylumdeclaration -> id storageoption ':' @2 productionblock Ccode_option ';' rule 18 storageoption -> /* empty */ rule 19 storageoption -> '{' id '}' rule 20 storageoption -> '{' '!' id '}' rule 21 productionblock -> /* empty */ rule 22 productionblock -> T_LIST id rule 23 productionblock -> alternatives rule 24 alternatives -> alternative rule 25 alternatives -> alternatives '|' alternative rule 26 @3 -> /* empty */ rule 27 @4 -> /* empty */ rule 28 alternative -> id '(' @3 arguments @4 ')' rule 29 arguments -> /* empty */ rule 30 arguments -> arguments id rule 31 Ccode_option -> /* empty */ rule 32 Ccode_option -> '{' attributes_option init_option '}' rule 33 attributes_option -> /* empty */ rule 34 attributes_option -> attributes_option attribute rule 35 attribute -> id id attribute_init_option ';' rule 36 attribute_init_option -> /* empty */ rule 37 @5 -> /* empty */ rule 38 attribute_init_option -> '=' @5 Cexpression rule 39 Cexpression -> /* empty */ rule 40 Cexpression -> Cexpression Cexpression_elem rule 41 Cexpression_elem -> T_CEXPRESSION rule 42 Cexpression_elem -> dollarvar rule 43 Cexpression_elem -> '\n' rule 44 Cexpression_elem -> T_CNEWLINES rule 45 Cexpression_elem -> '"' CexpressionDQ '"' rule 46 Cexpression_elem -> ''' CexpressionSQ ''' rule 47 Cexpression_elem -> '(' Cexpression_inner ')' rule 48 Cexpression_elem -> '[' Cexpression_inner ']' rule 49 Cexpression_inner -> /* empty */ rule 50 Cexpression_inner -> Cexpression_inner Cexpression_elem_inner rule 51 Cexpression_elem_inner -> Cexpression_elem rule 52 Cexpression_elem_inner -> ',' rule 53 CexpressionDQ -> /* empty */ rule 54 CexpressionDQ -> CexpressionDQ CexpressionDQ_elem rule 55 CexpressionDQ_elem -> T_CEXPRESSION rule 56 CexpressionDQ_elem -> '\n' rule 57 CexpressionSQ -> /* empty */ rule 58 CexpressionSQ -> CexpressionSQ CexpressionSQ_elem rule 59 CexpressionSQ_elem -> T_CEXPRESSION rule 60 CexpressionSQ_elem -> '\n' rule 61 idCexpressions -> idCexpression rule 62 idCexpressions -> idCexpressions ',' idCexpression rule 63 @6 -> /* empty */ rule 64 @7 -> /* empty */ rule 65 idCexpression -> id @6 Cexpression @7 rule 66 withCexpression -> Cexpression rule 67 withCexpressions -> withCexpression rule 68 @8 -> /* empty */ rule 69 withCexpressions -> withCexpressions ',' @8 withCexpression rule 70 @9 -> /* empty */ rule 71 @10 -> /* empty */ rule 72 MainCbody -> '{' @9 MainCBodycontinuation @10 '}' rule 73 @11 -> /* empty */ rule 74 @12 -> /* empty */ rule 75 MainCbodyinC -> '{' @11 MainCBodycontinuation @12 '}' rule 76 MainCBodycontinuation -> Ctext rule 77 MainCBodycontinuation -> withcases rule 78 @13 -> /* empty */ rule 79 @14 -> /* empty */ rule 80 Cbody -> '{' @13 Ctext @14 '}' rule 81 Ctext -> /* empty */ rule 82 @15 -> /* empty */ rule 83 Ctext -> Ctext @15 Ctext_elem rule 84 Ctext_elem -> T_CLINE rule 85 Ctext_elem -> dollarvar rule 86 Ctext_elem -> '\n' rule 87 Ctext_elem -> T_CNEWLINES rule 88 @16 -> /* empty */ rule 89 Ctext_elem -> '"' @16 CexpressionDQ '"' rule 90 @17 -> /* empty */ rule 91 Ctext_elem -> ''' @17 CexpressionSQ ''' rule 92 Ctext_elem -> Cbody rule 93 @18 -> /* empty */ rule 94 Ctext_elem -> T_FOREACH @18 foreach_continuation rule 95 @19 -> /* empty */ rule 96 @20 -> /* empty */ rule 97 @21 -> /* empty */ rule 98 Ctext_elem -> T_WITH @19 '(' @20 withCexpressions @21 ')' '{' withcases '}' rule 99 @22 -> /* empty */ rule 100 @23 -> /* empty */ rule 101 foreach_continuation -> '(' patternchain ';' @22 idCexpressions ')' MainCbodyinC @23 foreach_end_continuation rule 102 foreach_end_continuation -> /* empty */ rule 103 @24 -> /* empty */ rule 104 @25 -> /* empty */ rule 105 foreach_end_continuation -> T_FOREACH_AFTER @24 '(' patternchain @25 ')' MainCbodyinC rule 106 init_option -> /* empty */ rule 107 init_option -> Cbody rule 108 @26 -> /* empty */ rule 109 includedeclaration -> T_INCLUDESTART includefiles_option @26 includes T_INCLUDEEND rule 110 includefiles_option -> /* empty */ rule 111 includefiles_option -> includefiles rule 112 includefiles -> T_ID rule 113 includefiles -> includefiles T_ID rule 114 includes -> /* empty */ rule 115 includes -> includes include rule 116 include -> T_INCLUDE rule 117 include -> '\n' rule 118 @27 -> /* empty */ rule 119 rwdeclaration -> outmostpatterns T_ARROW @27 rwclauses_or_term ';' rule 120 rwclauses_or_term -> term rule 121 rwclauses_or_term -> rwclauses rule 122 rwclauses -> rwclause rule 123 rwclauses -> rwclauses rwclause rule 124 rwclause -> '<' useviewnames ':' term '>' rule 125 patternchains -> patternchain rule 126 patternchains -> patternchains ',' patternchain rule 127 patternchain -> patternchainitem_lineinfo rule 128 patternchain -> patternchain '&' patternchainitem_lineinfo rule 129 @28 -> /* empty */ rule 130 patternchainitem_lineinfo -> @28 patternchainitem rule 131 patternchainitem -> outmostpattern rule 132 patternchainitem -> '(' patternchains ')' rule 133 patternchainitem -> '$' id rule 134 outmostpatterns -> outmostpattern rule 135 outmostpatterns -> outmostpatterns ',' outmostpattern rule 136 outmostpattern -> id rule 137 outmostpattern -> id '(' patternsoption ')' rule 138 outmostpattern -> id '=' outmostpattern rule 139 outmostpattern -> '*' rule 140 outmostpattern -> T_DEFAULT rule 141 pattern -> id rule 142 pattern -> id '(' patternsoption ')' rule 143 pattern -> '*' rule 144 pattern -> T_DEFAULT rule 145 pattern -> id '=' pattern rule 146 @29 -> /* empty */ rule 147 pattern -> '"' @29 CexpressionDQ '"' rule 148 pattern -> int rule 149 patternsoption -> /* empty */ rule 150 patternsoption -> patterns rule 151 patterns -> pattern rule 152 patterns -> patterns ',' pattern rule 153 term -> id rule 154 term -> id '(' termsoption ')' rule 155 @30 -> /* empty */ rule 156 term -> '"' @30 CexpressionDQ '"' rule 157 term -> int rule 158 termsoption -> /* empty */ rule 159 termsoption -> terms rule 160 terms -> term rule 161 terms -> terms ',' term rule 162 withcases -> withcase rule 163 withcases -> withcases withcase rule 164 withcase -> patternchains ':' Cbody rule 165 @31 -> /* empty */ rule 166 unparsedeclaration -> outmostpatterns T_ARROW @31 unparseclauses ';' rule 167 unparseclauses -> unparseclause rule 168 unparseclauses -> unparseclauses unparseclause rule 169 unparseclause -> '[' useviewnames ':' unparseitems ']' rule 170 useviewnames -> /* empty */ rule 171 useviewnames -> useviewnames id rule 172 unparseitems -> /* empty */ rule 173 unparseitems -> unparseitems unparseitem rule 174 @32 -> /* empty */ rule 175 @33 -> /* empty */ rule 176 unparseitem -> '"' @32 CexpressionDQ '"' @33 viewnameoption rule 177 unparseitem -> unpsubterm viewnameoption rule 178 unparseitem -> Cbody rule 179 unparseitem -> T_UNPBLOCKSTART unparseitems T_UNPBLOCKEND rule 180 unpsubterm -> id rule 181 unpsubterm -> dollarvar rule 182 unpsubterm -> id unpattributes rule 183 unpsubterm -> dollarvar unpattributes rule 184 unpsubterm -> '(' id ')' id rule 185 unpattributes -> unpattribute rule 186 unpattributes -> unpattributes unpattribute rule 187 unpattribute -> T_ARROW id rule 188 viewnameoption -> /* empty */ rule 189 viewnameoption -> ':' id rule 190 uviewdeclaration -> T_PERCENTUVIEW defuviewnames ';' rule 191 defuviewnames -> id rule 192 defuviewnames -> defuviewnames id rule 193 defuviewnames -> defuviewnames ',' id rule 194 rviewdeclaration -> T_PERCENTRVIEW defrviewnames ';' rule 195 defrviewnames -> id rule 196 defrviewnames -> defrviewnames id rule 197 defrviewnames -> defrviewnames ',' id rule 198 storageclassdeclaration -> T_PERCENTSTORAGECLASS defstorageclasses ';' rule 199 defstorageclasses -> id rule 200 defstorageclasses -> defstorageclasses id rule 201 defstorageclasses -> defstorageclasses ',' id rule 202 ac_function_definition -> ac_declaration_specifiers ac_fn_declarator ac_declaration_list_option ac_compound_statement rule 203 ac_declaration -> ac_declaration_specifiers ac_init_declarator_list_option ';' rule 204 ac_declaration_list_option -> /* empty */ rule 205 ac_declaration_list_option -> ac_declaration_list rule 206 ac_declaration_list -> ac_declaration rule 207 ac_declaration_list -> ac_declaration_list ac_declaration rule 208 ac_declaration_specifiers -> ac_type_specifier rule 209 ac_declaration_specifiers -> ac_storage_class_specifier ac_type_specifier rule 210 ac_declaration_specifiers -> ac_type_qualifier ac_type_specifier rule 211 ac_declaration_specifiers -> ac_storage_class_specifier ac_type_qualifier ac_type_specifier rule 212 ac_storage_class_specifier -> T_AUTO rule 213 ac_storage_class_specifier -> T_REGISTER rule 214 ac_storage_class_specifier -> T_STATIC rule 215 ac_storage_class_specifier -> T_EXTERN rule 216 ac_storage_class_specifier -> T_TYPEDEF rule 217 ac_type_specifier -> id rule 218 ac_type_qualifier -> T_CONST rule 219 ac_type_qualifier -> T_VOLATILE rule 220 ac_init_declarator_list_option -> /* empty */ rule 221 ac_init_declarator_list_option -> ac_init_declarator_list rule 222 ac_init_declarator_list -> ac_init_declarator rule 223 ac_init_declarator_list -> ac_init_declarator_list ',' ac_init_declarator rule 224 ac_init_declarator -> ac_declarator rule 225 ac_fn_declarator -> ac_direct_fn_declarator rule 226 ac_fn_declarator -> ac_pointer ac_direct_fn_declarator rule 227 ac_declarator -> ac_direct_declarator rule 228 ac_declarator -> ac_pointer ac_direct_declarator rule 229 ac_pointer_declarator -> ac_pointer ac_direct_declarator rule 230 ac_direct_declarator -> ac_identifier rule 231 ac_direct_declarator -> '(' ac_pointer_declarator ')' rule 232 ac_direct_declarator -> ac_direct_declarator '[' ac_constant_expression_option ']' rule 233 ac_direct_declarator -> ac_direct_declarator '(' ac_parameter_type_list ')' rule 234 ac_direct_declarator -> ac_direct_declarator '(' ')' rule 235 ac_direct_declarator -> ac_direct_declarator '(' ac_identifier_list ')' rule 236 ac_direct_fn_declarator -> ac_identifier '(' ac_parameter_type_list ')' rule 237 ac_direct_fn_declarator -> ac_identifier '(' ')' rule 238 ac_direct_fn_declarator -> ac_identifier '(' ac_identifier_list ')' rule 239 ac_pointer -> '*' rule 240 ac_pointer -> '*' ac_type_qualifier_list rule 241 ac_pointer -> '*' ac_pointer rule 242 ac_pointer -> '*' ac_type_qualifier_list ac_pointer rule 243 ac_type_qualifier_list -> ac_type_qualifier rule 244 ac_type_qualifier_list -> ac_type_qualifier_list ac_type_qualifier rule 245 ac_parameter_type_list -> ac_parameter_list rule 246 ac_parameter_type_list -> ac_parameter_list ',' T_DOTDOTDOT rule 247 ac_parameter_list -> ac_parameter_declaration rule 248 ac_parameter_list -> ac_parameter_list ',' ac_parameter_declaration rule 249 ac_parameter_declaration -> ac_declaration_specifiers ac_declarator rule 250 ac_parameter_declaration -> ac_declaration_specifiers ac_abstract_declarator rule 251 ac_identifier_list -> ac_identifier rule 252 ac_identifier_list -> ac_identifier_list ',' ac_identifier rule 253 ac_abstract_declarator -> ac_pointer rule 254 ac_abstract_declarator -> ac_direct_abstract_declarator rule 255 ac_abstract_declarator -> ac_pointer ac_direct_abstract_declarator rule 256 ac_direct_abstract_declarator -> '(' ac_abstract_declarator ')' rule 257 ac_direct_abstract_declarator -> ac_direct_abstract_declarator '[' ac_constant_expression_option ']' rule 258 ac_direct_abstract_declarator -> '[' ac_constant_expression_option ']' rule 259 ac_direct_abstract_declarator -> ac_direct_abstract_declarator '(' ')' rule 260 ac_direct_abstract_declarator -> ac_direct_abstract_declarator '(' ac_parameter_type_list ')' rule 261 ac_direct_abstract_declarator -> '(' ')' rule 262 ac_direct_abstract_declarator -> '(' ac_parameter_type_list ')' rule 263 ac_constant_expression_option -> ac_constant_expression rule 264 @34 -> /* empty */ rule 265 ac_constant_expression -> @34 Cexpression rule 266 ac_identifier -> id rule 267 ac_identifier -> '$' id rule 268 ac_compound_statement -> MainCbody Terminals, with rules where they appear $ (-1) '\n' (10) 43 56 60 86 117 '!' (33) 20 '"' (34) 45 89 147 156 176 '$' (36) 133 267 '&' (38) 128 ''' (39) 46 91 '(' (40) 28 47 98 101 105 132 137 142 154 184 231 233 234 235 236 237 238 256 259 260 261 262 ')' (41) 28 47 98 101 105 132 137 142 154 184 231 233 234 235 236 237 238 256 259 260 261 262 '*' (42) 139 143 239 240 241 242 ',' (44) 52 62 69 126 135 152 161 193 197 201 223 246 248 252 ':' (58) 17 124 164 169 189 ';' (59) 17 35 101 119 166 190 194 198 203 '<' (60) 124 '=' (61) 38 138 145 '>' (62) 124 '[' (91) 48 169 232 257 258 ']' (93) 48 169 232 257 258 '{' (123) 19 20 32 72 75 80 98 '|' (124) 25 '}' (125) 19 20 32 72 75 80 98 error (256) T_ID (258) 2 112 113 T_INT (259) 3 T_CNEWLINES (260) 44 87 T_CLINE (261) 84 T_CEXPRESSION (262) 41 55 59 T_DOLLARVAR (263) 1 T_INCLUDE (264) 116 T_INCLUDESTART (265) 109 T_INCLUDEEND (266) 109 T_LIST (267) 22 T_ARROW (268) 119 166 187 T_STATIC (269) 214 T_WITH (270) 98 T_FOREACH (271) 94 T_FOREACH_AFTER (272) 105 T_DEFAULT (273) 140 144 T_UNPBLOCKSTART (274) 179 T_UNPBLOCKEND (275) 179 T_PERCENTRVIEW (276) 194 T_PERCENTUVIEW (277) 190 T_PERCENTSTORAGECLASS (278) 198 T_AUTO (279) 212 T_REGISTER (280) 213 T_EXTERN (281) 215 T_TYPEDEF (282) 216 T_CONST (283) 218 T_VOLATILE (284) 219 T_DOTDOTDOT (285) 246 Nonterminals, with rules where they appear dollarvar (51) on left: 1, on right: 42 85 181 183 id (52) on left: 2, on right: 17 19 20 22 28 30 35 65 133 136 137 138 141 142 145 153 154 171 180 182 184 187 189 191 192 193 195 196 197 199 200 201 217 266 267 int (53) on left: 3, on right: 148 157 specification (54) on left: 5 @1 (55) on left: 4, on right: 5 declarations (56) on left: 6 7, on right: 5 7 declaration (57) on left: 8 9 10 11 12 13 14 15, on right: 6 7 phylumdeclaration (58) on left: 17, on right: 8 @2 (59) on left: 16, on right: 17 storageoption (60) on left: 18 19 20, on right: 17 productionblock (61) on left: 21 22 23, on right: 17 alternatives (62) on left: 24 25, on right: 23 25 alternative (63) on left: 28, on right: 24 25 @3 (64) on left: 26, on right: 28 @4 (65) on left: 27, on right: 28 arguments (66) on left: 29 30, on right: 28 30 Ccode_option (67) on left: 31 32, on right: 17 attributes_option (68) on left: 33 34, on right: 32 34 attribute (69) on left: 35, on right: 34 attribute_init_option (70) on left: 36 38, on right: 35 @5 (71) on left: 37, on right: 38 Cexpression (72) on left: 39 40, on right: 38 40 65 66 265 Cexpression_elem (73) on left: 41 42 43 44 45 46 47 48, on right: 40 51 Cexpression_inner (74) on left: 49 50, on right: 47 48 50 Cexpression_elem_inner (75) on left: 51 52, on right: 50 CexpressionDQ (76) on left: 53 54, on right: 45 54 89 147 156 176 CexpressionDQ_elem (77) on left: 55 56, on right: 54 CexpressionSQ (78) on left: 57 58, on right: 46 58 91 CexpressionSQ_elem (79) on left: 59 60, on right: 58 idCexpressions (80) on left: 61 62, on right: 62 101 idCexpression (81) on left: 65, on right: 61 62 @6 (82) on left: 63, on right: 65 @7 (83) on left: 64, on right: 65 withCexpression (84) on left: 66, on right: 67 69 withCexpressions (85) on left: 67 69, on right: 69 98 @8 (86) on left: 68, on right: 69 MainCbody (87) on left: 72, on right: 268 @9 (88) on left: 70, on right: 72 @10 (89) on left: 71, on right: 72 MainCbodyinC (90) on left: 75, on right: 101 105 @11 (91) on left: 73, on right: 75 @12 (92) on left: 74, on right: 75 MainCBodycontinuation (93) on left: 76 77, on right: 72 75 Cbody (94) on left: 80, on right: 92 107 164 178 @13 (95) on left: 78, on right: 80 @14 (96) on left: 79, on right: 80 Ctext (97) on left: 81 83, on right: 76 80 83 @15 (98) on left: 82, on right: 83 Ctext_elem (99) on left: 84 85 86 87 89 91 92 94 98, on right: 83 @16 (100) on left: 88, on right: 89 @17 (101) on left: 90, on right: 91 @18 (102) on left: 93, on right: 94 @19 (103) on left: 95, on right: 98 @20 (104) on left: 96, on right: 98 @21 (105) on left: 97, on right: 98 foreach_continuation (106) on left: 101, on right: 94 @22 (107) on left: 99, on right: 101 @23 (108) on left: 100, on right: 101 foreach_end_continuation (109) on left: 102 105, on right: 101 @24 (110) on left: 103, on right: 105 @25 (111) on left: 104, on right: 105 init_option (112) on left: 106 107, on right: 32 includedeclaration (113) on left: 109, on right: 11 @26 (114) on left: 108, on right: 109 includefiles_option (115) on left: 110 111, on right: 109 includefiles (116) on left: 112 113, on right: 111 113 includes (117) on left: 114 115, on right: 109 115 include (118) on left: 116 117, on right: 115 rwdeclaration (119) on left: 119, on right: 9 @27 (120) on left: 118, on right: 119 rwclauses_or_term (121) on left: 120 121, on right: 119 rwclauses (122) on left: 122 123, on right: 121 123 rwclause (123) on left: 124, on right: 122 123 patternchains (124) on left: 125 126, on right: 126 132 164 patternchain (125) on left: 127 128, on right: 101 105 125 126 128 patternchainitem_lineinfo (126) on left: 130, on right: 127 128 @28 (127) on left: 129, on right: 130 patternchainitem (128) on left: 131 132 133, on right: 130 outmostpatterns (129) on left: 134 135, on right: 119 135 166 outmostpattern (130) on left: 136 137 138 139 140, on right: 131 134 135 138 pattern (131) on left: 141 142 143 144 145 147 148, on right: 145 151 152 @29 (132) on left: 146, on right: 147 patternsoption (133) on left: 149 150, on right: 137 142 patterns (134) on left: 151 152, on right: 150 152 term (135) on left: 153 154 156 157, on right: 120 124 160 161 @30 (136) on left: 155, on right: 156 termsoption (137) on left: 158 159, on right: 154 terms (138) on left: 160 161, on right: 159 161 withcases (139) on left: 162 163, on right: 77 98 163 withcase (140) on left: 164, on right: 162 163 unparsedeclaration (141) on left: 166, on right: 12 @31 (142) on left: 165, on right: 166 unparseclauses (143) on left: 167 168, on right: 166 168 unparseclause (144) on left: 169, on right: 167 168 useviewnames (145) on left: 170 171, on right: 124 169 171 unparseitems (146) on left: 172 173, on right: 169 173 179 unparseitem (147) on left: 176 177 178 179, on right: 173 @32 (148) on left: 174, on right: 176 @33 (149) on left: 175, on right: 176 unpsubterm (150) on left: 180 181 182 183 184, on right: 177 unpattributes (151) on left: 185 186, on right: 182 183 186 unpattribute (152) on left: 187, on right: 185 186 viewnameoption (153) on left: 188 189, on right: 176 177 uviewdeclaration (154) on left: 190, on right: 13 defuviewnames (155) on left: 191 192 193, on right: 190 192 193 rviewdeclaration (156) on left: 194, on right: 14 defrviewnames (157) on left: 195 196 197, on right: 194 196 197 storageclassdeclaration (158) on left: 198, on right: 15 defstorageclasses (159) on left: 199 200 201, on right: 198 200 201 ac_function_definition (160) on left: 202, on right: 10 ac_declaration (161) on left: 203, on right: 206 207 ac_declaration_list_option (162) on left: 204 205, on right: 202 ac_declaration_list (163) on left: 206 207, on right: 205 207 ac_declaration_specifiers (164) on left: 208 209 210 211, on right: 202 203 249 250 ac_storage_class_specifier (165) on left: 212 213 214 215 216, on right: 209 211 ac_type_specifier (166) on left: 217, on right: 208 209 210 211 ac_type_qualifier (167) on left: 218 219, on right: 210 211 243 244 ac_init_declarator_list_option (168) on left: 220 221, on right: 203 ac_init_declarator_list (169) on left: 222 223, on right: 221 223 ac_init_declarator (170) on left: 224, on right: 222 223 ac_fn_declarator (171) on left: 225 226, on right: 202 ac_declarator (172) on left: 227 228, on right: 224 249 ac_pointer_declarator (173) on left: 229, on right: 231 ac_direct_declarator (174) on left: 230 231 232 233 234 235, on right: 227 228 229 232 233 234 235 ac_direct_fn_declarator (175) on left: 236 237 238, on right: 225 226 ac_pointer (176) on left: 239 240 241 242, on right: 226 228 229 241 242 253 255 ac_type_qualifier_list (177) on left: 243 244, on right: 240 242 244 ac_parameter_type_list (178) on left: 245 246, on right: 233 236 260 262 ac_parameter_list (179) on left: 247 248, on right: 245 246 248 ac_parameter_declaration (180) on left: 249 250, on right: 247 248 ac_identifier_list (181) on left: 251 252, on right: 235 238 252 ac_abstract_declarator (182) on left: 253 254 255, on right: 250 256 ac_direct_abstract_declarator (183) on left: 256 257 258 259 260 261 262, on right: 254 255 257 259 260 ac_constant_expression_option (184) on left: 263, on right: 232 257 258 ac_constant_expression (185) on left: 265, on right: 263 @34 (186) on left: 264, on right: 265 ac_identifier (187) on left: 266 267, on right: 230 236 237 238 251 252 ac_compound_statement (188) on left: 268, on right: 202 state 0 $default reduce using rule 4 (@1) specification go to state 403 @1 go to state 1 state 1 specification -> @1 . declarations (rule 5) T_ID shift, and go to state 2 T_INCLUDESTART shift, and go to state 3 T_STATIC shift, and go to state 4 T_DEFAULT shift, and go to state 5 T_PERCENTRVIEW shift, and go to state 6 T_PERCENTUVIEW shift, and go to state 7 T_PERCENTSTORAGECLASS shift, and go to state 8 T_AUTO shift, and go to state 9 T_REGISTER shift, and go to state 10 T_EXTERN shift, and go to state 11 T_TYPEDEF shift, and go to state 12 T_CONST shift, and go to state 13 T_VOLATILE shift, and go to state 14 '*' shift, and go to state 15 id go to state 16 declarations go to state 17 declaration go to state 18 phylumdeclaration go to state 19 includedeclaration go to state 20 rwdeclaration go to state 21 outmostpatterns go to state 22 outmostpattern go to state 23 unparsedeclaration go to state 24 uviewdeclaration go to state 25 rviewdeclaration go to state 26 storageclassdeclaration go to state 27 ac_function_definition go to state 28 ac_declaration_specifiers go to state 29 ac_storage_class_specifier go to state 30 ac_type_specifier go to state 31 ac_type_qualifier go to state 32 state 2 id -> T_ID . (rule 2) $default reduce using rule 2 (id) state 3 includedeclaration -> T_INCLUDESTART . includefiles_option @26 includes T_INCLUDEEND (rule 109) T_ID shift, and go to state 33 $default reduce using rule 110 (includefiles_option) includefiles_option go to state 34 includefiles go to state 35 state 4 ac_storage_class_specifier -> T_STATIC . (rule 214) $default reduce using rule 214 (ac_storage_class_specifier) state 5 outmostpattern -> T_DEFAULT . (rule 140) $default reduce using rule 140 (outmostpattern) state 6 rviewdeclaration -> T_PERCENTRVIEW . defrviewnames ';' (rule 194) T_ID shift, and go to state 2 id go to state 36 defrviewnames go to state 37 state 7 uviewdeclaration -> T_PERCENTUVIEW . defuviewnames ';' (rule 190) T_ID shift, and go to state 2 id go to state 38 defuviewnames go to state 39 state 8 storageclassdeclaration -> T_PERCENTSTORAGECLASS . defstorageclasses ';' (rule 198) T_ID shift, and go to state 2 id go to state 40 defstorageclasses go to state 41 state 9 ac_storage_class_specifier -> T_AUTO . (rule 212) $default reduce using rule 212 (ac_storage_class_specifier) state 10 ac_storage_class_specifier -> T_REGISTER . (rule 213) $default reduce using rule 213 (ac_storage_class_specifier) state 11 ac_storage_class_specifier -> T_EXTERN . (rule 215) $default reduce using rule 215 (ac_storage_class_specifier) state 12 ac_storage_class_specifier -> T_TYPEDEF . (rule 216) $default reduce using rule 216 (ac_storage_class_specifier) state 13 ac_type_qualifier -> T_CONST . (rule 218) $default reduce using rule 218 (ac_type_qualifier) state 14 ac_type_qualifier -> T_VOLATILE . (rule 219) $default reduce using rule 219 (ac_type_qualifier) state 15 outmostpattern -> '*' . (rule 139) $default reduce using rule 139 (outmostpattern) state 16 phylumdeclaration -> id . storageoption ':' @2 productionblock Ccode_option ';' (rule 17) outmostpattern -> id . (rule 136) outmostpattern -> id . '(' patternsoption ')' (rule 137) outmostpattern -> id . '=' outmostpattern (rule 138) ac_type_specifier -> id . (rule 217) '{' shift, and go to state 42 '(' shift, and go to state 43 '=' shift, and go to state 44 T_ARROW reduce using rule 136 (outmostpattern) ':' reduce using rule 18 (storageoption) ',' reduce using rule 136 (outmostpattern) $default reduce using rule 217 (ac_type_specifier) storageoption go to state 45 state 17 specification -> @1 declarations . (rule 5) declarations -> declarations . declaration (rule 7) T_ID shift, and go to state 2 T_INCLUDESTART shift, and go to state 3 T_STATIC shift, and go to state 4 T_DEFAULT shift, and go to state 5 T_PERCENTRVIEW shift, and go to state 6 T_PERCENTUVIEW shift, and go to state 7 T_PERCENTSTORAGECLASS shift, and go to state 8 T_AUTO shift, and go to state 9 T_REGISTER shift, and go to state 10 T_EXTERN shift, and go to state 11 T_TYPEDEF shift, and go to state 12 T_CONST shift, and go to state 13 T_VOLATILE shift, and go to state 14 '*' shift, and go to state 15 $default reduce using rule 5 (specification) id go to state 16 declaration go to state 46 phylumdeclaration go to state 19 includedeclaration go to state 20 rwdeclaration go to state 21 outmostpatterns go to state 22 outmostpattern go to state 23 unparsedeclaration go to state 24 uviewdeclaration go to state 25 rviewdeclaration go to state 26 storageclassdeclaration go to state 27 ac_function_definition go to state 28 ac_declaration_specifiers go to state 29 ac_storage_class_specifier go to state 30 ac_type_specifier go to state 31 ac_type_qualifier go to state 32 state 18 declarations -> declaration . (rule 6) $default reduce using rule 6 (declarations) state 19 declaration -> phylumdeclaration . (rule 8) $default reduce using rule 8 (declaration) state 20 declaration -> includedeclaration . (rule 11) $default reduce using rule 11 (declaration) state 21 declaration -> rwdeclaration . (rule 9) $default reduce using rule 9 (declaration) state 22 rwdeclaration -> outmostpatterns . T_ARROW @27 rwclauses_or_term ';' (rule 119) outmostpatterns -> outmostpatterns . ',' outmostpattern (rule 135) unparsedeclaration -> outmostpatterns . T_ARROW @31 unparseclauses ';' (rule 166) T_ARROW shift, and go to state 47 ',' shift, and go to state 48 state 23 outmostpatterns -> outmostpattern . (rule 134) $default reduce using rule 134 (outmostpatterns) state 24 declaration -> unparsedeclaration . (rule 12) $default reduce using rule 12 (declaration) state 25 declaration -> uviewdeclaration . (rule 13) $default reduce using rule 13 (declaration) state 26 declaration -> rviewdeclaration . (rule 14) $default reduce using rule 14 (declaration) state 27 declaration -> storageclassdeclaration . (rule 15) $default reduce using rule 15 (declaration) state 28 declaration -> ac_function_definition . (rule 10) $default reduce using rule 10 (declaration) state 29 ac_function_definition -> ac_declaration_specifiers . ac_fn_declarator ac_declaration_list_option ac_compound_statement (rule 202) T_ID shift, and go to state 2 '$' shift, and go to state 49 '*' shift, and go to state 50 id go to state 51 ac_fn_declarator go to state 52 ac_direct_fn_declarator go to state 53 ac_pointer go to state 54 ac_identifier go to state 55 state 30 ac_declaration_specifiers -> ac_storage_class_specifier . ac_type_specifier (rule 209) ac_declaration_specifiers -> ac_storage_class_specifier . ac_type_qualifier ac_type_specifier (rule 211) T_ID shift, and go to state 2 T_CONST shift, and go to state 13 T_VOLATILE shift, and go to state 14 id go to state 56 ac_type_specifier go to state 57 ac_type_qualifier go to state 58 state 31 ac_declaration_specifiers -> ac_type_specifier . (rule 208) $default reduce using rule 208 (ac_declaration_specifiers) state 32 ac_declaration_specifiers -> ac_type_qualifier . ac_type_specifier (rule 210) T_ID shift, and go to state 2 id go to state 56 ac_type_specifier go to state 59 state 33 includefiles -> T_ID . (rule 112) $default reduce using rule 112 (includefiles) state 34 includedeclaration -> T_INCLUDESTART includefiles_option . @26 includes T_INCLUDEEND (rule 109) $default reduce using rule 108 (@26) @26 go to state 60 state 35 includefiles_option -> includefiles . (rule 111) includefiles -> includefiles . T_ID (rule 113) T_ID shift, and go to state 61 $default reduce using rule 111 (includefiles_option) state 36 defrviewnames -> id . (rule 195) $default reduce using rule 195 (defrviewnames) state 37 rviewdeclaration -> T_PERCENTRVIEW defrviewnames . ';' (rule 194) defrviewnames -> defrviewnames . id (rule 196) defrviewnames -> defrviewnames . ',' id (rule 197) T_ID shift, and go to state 2 ';' shift, and go to state 62 ',' shift, and go to state 63 id go to state 64 state 38 defuviewnames -> id . (rule 191) $default reduce using rule 191 (defuviewnames) state 39 uviewdeclaration -> T_PERCENTUVIEW defuviewnames . ';' (rule 190) defuviewnames -> defuviewnames . id (rule 192) defuviewnames -> defuviewnames . ',' id (rule 193) T_ID shift, and go to state 2 ';' shift, and go to state 65 ',' shift, and go to state 66 id go to state 67 state 40 defstorageclasses -> id . (rule 199) $default reduce using rule 199 (defstorageclasses) state 41 storageclassdeclaration -> T_PERCENTSTORAGECLASS defstorageclasses . ';' (rule 198) defstorageclasses -> defstorageclasses . id (rule 200) defstorageclasses -> defstorageclasses . ',' id (rule 201) T_ID shift, and go to state 2 ';' shift, and go to state 68 ',' shift, and go to state 69 id go to state 70 state 42 storageoption -> '{' . id '}' (rule 19) storageoption -> '{' . '!' id '}' (rule 20) T_ID shift, and go to state 2 '!' shift, and go to state 71 id go to state 72 state 43 outmostpattern -> id '(' . patternsoption ')' (rule 137) T_ID shift, and go to state 2 T_INT shift, and go to state 73 T_DEFAULT shift, and go to state 74 '"' shift, and go to state 75 '*' shift, and go to state 76 $default reduce using rule 149 (patternsoption) id go to state 77 int go to state 78 pattern go to state 79 patternsoption go to state 80 patterns go to state 81 state 44 outmostpattern -> id '=' . outmostpattern (rule 138) T_ID shift, and go to state 2 T_DEFAULT shift, and go to state 5 '*' shift, and go to state 15 id go to state 82 outmostpattern go to state 83 state 45 phylumdeclaration -> id storageoption . ':' @2 productionblock Ccode_option ';' (rule 17) ':' shift, and go to state 84 state 46 declarations -> declarations declaration . (rule 7) $default reduce using rule 7 (declarations) state 47 rwdeclaration -> outmostpatterns T_ARROW . @27 rwclauses_or_term ';' (rule 119) unparsedeclaration -> outmostpatterns T_ARROW . @31 unparseclauses ';' (rule 166) '[' reduce using rule 165 (@31) $default reduce using rule 118 (@27) @27 go to state 85 @31 go to state 86 state 48 outmostpatterns -> outmostpatterns ',' . outmostpattern (rule 135) T_ID shift, and go to state 2 T_DEFAULT shift, and go to state 5 '*' shift, and go to state 15 id go to state 82 outmostpattern go to state 87 state 49 ac_identifier -> '$' . id (rule 267) T_ID shift, and go to state 2 id go to state 88 state 50 ac_pointer -> '*' . (rule 239) ac_pointer -> '*' . ac_type_qualifier_list (rule 240) ac_pointer -> '*' . ac_pointer (rule 241) ac_pointer -> '*' . ac_type_qualifier_list ac_pointer (rule 242) T_CONST shift, and go to state 13 T_VOLATILE shift, and go to state 14 '*' shift, and go to state 50 $default reduce using rule 239 (ac_pointer) ac_type_qualifier go to state 89 ac_pointer go to state 90 ac_type_qualifier_list go to state 91 state 51 ac_identifier -> id . (rule 266) $default reduce using rule 266 (ac_identifier) state 52 ac_function_definition -> ac_declaration_specifiers ac_fn_declarator . ac_declaration_list_option ac_compound_statement (rule 202) T_ID shift, and go to state 2 T_STATIC shift, and go to state 4 T_AUTO shift, and go to state 9 T_REGISTER shift, and go to state 10 T_EXTERN shift, and go to state 11 T_TYPEDEF shift, and go to state 12 T_CONST shift, and go to state 13 T_VOLATILE shift, and go to state 14 $default reduce using rule 204 (ac_declaration_list_option) id go to state 56 ac_declaration go to state 92 ac_declaration_list_option go to state 93 ac_declaration_list go to state 94 ac_declaration_specifiers go to state 95 ac_storage_class_specifier go to state 30 ac_type_specifier go to state 31 ac_type_qualifier go to state 32 state 53 ac_fn_declarator -> ac_direct_fn_declarator . (rule 225) $default reduce using rule 225 (ac_fn_declarator) state 54 ac_fn_declarator -> ac_pointer . ac_direct_fn_declarator (rule 226) T_ID shift, and go to state 2 '$' shift, and go to state 49 id go to state 51 ac_direct_fn_declarator go to state 96 ac_identifier go to state 55 state 55 ac_direct_fn_declarator -> ac_identifier . '(' ac_parameter_type_list ')' (rule 236) ac_direct_fn_declarator -> ac_identifier . '(' ')' (rule 237) ac_direct_fn_declarator -> ac_identifier . '(' ac_identifier_list ')' (rule 238) '(' shift, and go to state 97 state 56 ac_type_specifier -> id . (rule 217) $default reduce using rule 217 (ac_type_specifier) state 57 ac_declaration_specifiers -> ac_storage_class_specifier ac_type_specifier . (rule 209) $default reduce using rule 209 (ac_declaration_specifiers) state 58 ac_declaration_specifiers -> ac_storage_class_specifier ac_type_qualifier . ac_type_specifier (rule 211) T_ID shift, and go to state 2 id go to state 56 ac_type_specifier go to state 98 state 59 ac_declaration_specifiers -> ac_type_qualifier ac_type_specifier . (rule 210) $default reduce using rule 210 (ac_declaration_specifiers) state 60 includedeclaration -> T_INCLUDESTART includefiles_option @26 . includes T_INCLUDEEND (rule 109) $default reduce using rule 114 (includes) includes go to state 99 state 61 includefiles -> includefiles T_ID . (rule 113) $default reduce using rule 113 (includefiles) state 62 rviewdeclaration -> T_PERCENTRVIEW defrviewnames ';' . (rule 194) $default reduce using rule 194 (rviewdeclaration) state 63 defrviewnames -> defrviewnames ',' . id (rule 197) T_ID shift, and go to state 2 id go to state 100 state 64 defrviewnames -> defrviewnames id . (rule 196) $default reduce using rule 196 (defrviewnames) state 65 uviewdeclaration -> T_PERCENTUVIEW defuviewnames ';' . (rule 190) $default reduce using rule 190 (uviewdeclaration) state 66 defuviewnames -> defuviewnames ',' . id (rule 193) T_ID shift, and go to state 2 id go to state 101 state 67 defuviewnames -> defuviewnames id . (rule 192) $default reduce using rule 192 (defuviewnames) state 68 storageclassdeclaration -> T_PERCENTSTORAGECLASS defstorageclasses ';' . (rule 198) $default reduce using rule 198 (storageclassdeclaration) state 69 defstorageclasses -> defstorageclasses ',' . id (rule 201) T_ID shift, and go to state 2 id go to state 102 state 70 defstorageclasses -> defstorageclasses id . (rule 200) $default reduce using rule 200 (defstorageclasses) state 71 storageoption -> '{' '!' . id '}' (rule 20) T_ID shift, and go to state 2 id go to state 103 state 72 storageoption -> '{' id . '}' (rule 19) '}' shift, and go to state 104 state 73 int -> T_INT . (rule 3) $default reduce using rule 3 (int) state 74 pattern -> T_DEFAULT . (rule 144) $default reduce using rule 144 (pattern) state 75 pattern -> '"' . @29 CexpressionDQ '"' (rule 147) $default reduce using rule 146 (@29) @29 go to state 105 state 76 pattern -> '*' . (rule 143) $default reduce using rule 143 (pattern) state 77 pattern -> id . (rule 141) pattern -> id . '(' patternsoption ')' (rule 142) pattern -> id . '=' pattern (rule 145) '(' shift, and go to state 106 '=' shift, and go to state 107 $default reduce using rule 141 (pattern) state 78 pattern -> int . (rule 148) $default reduce using rule 148 (pattern) state 79 patterns -> pattern . (rule 151) $default reduce using rule 151 (patterns) state 80 outmostpattern -> id '(' patternsoption . ')' (rule 137) ')' shift, and go to state 108 state 81 patternsoption -> patterns . (rule 150) patterns -> patterns . ',' pattern (rule 152) ',' shift, and go to state 109 $default reduce using rule 150 (patternsoption) state 82 outmostpattern -> id . (rule 136) outmostpattern -> id . '(' patternsoption ')' (rule 137) outmostpattern -> id . '=' outmostpattern (rule 138) '(' shift, and go to state 43 '=' shift, and go to state 44 $default reduce using rule 136 (outmostpattern) state 83 outmostpattern -> id '=' outmostpattern . (rule 138) $default reduce using rule 138 (outmostpattern) state 84 phylumdeclaration -> id storageoption ':' . @2 productionblock Ccode_option ';' (rule 17) $default reduce using rule 16 (@2) @2 go to state 110 state 85 rwdeclaration -> outmostpatterns T_ARROW @27 . rwclauses_or_term ';' (rule 119) T_ID shift, and go to state 2 T_INT shift, and go to state 73 '"' shift, and go to state 111 '<' shift, and go to state 112 id go to state 113 int go to state 114 rwclauses_or_term go to state 115 rwclauses go to state 116 rwclause go to state 117 term go to state 118 state 86 unparsedeclaration -> outmostpatterns T_ARROW @31 . unparseclauses ';' (rule 166) '[' shift, and go to state 119 unparseclauses go to state 120 unparseclause go to state 121 state 87 outmostpatterns -> outmostpatterns ',' outmostpattern . (rule 135) $default reduce using rule 135 (outmostpatterns) state 88 ac_identifier -> '$' id . (rule 267) $default reduce using rule 267 (ac_identifier) state 89 ac_type_qualifier_list -> ac_type_qualifier . (rule 243) $default reduce using rule 243 (ac_type_qualifier_list) state 90 ac_pointer -> '*' ac_pointer . (rule 241) $default reduce using rule 241 (ac_pointer) state 91 ac_pointer -> '*' ac_type_qualifier_list . (rule 240) ac_pointer -> '*' ac_type_qualifier_list . ac_pointer (rule 242) ac_type_qualifier_list -> ac_type_qualifier_list . ac_type_qualifier (rule 244) T_CONST shift, and go to state 13 T_VOLATILE shift, and go to state 14 '*' shift, and go to state 50 $default reduce using rule 240 (ac_pointer) ac_type_qualifier go to state 122 ac_pointer go to state 123 state 92 ac_declaration_list -> ac_declaration . (rule 206) $default reduce using rule 206 (ac_declaration_list) state 93 ac_function_definition -> ac_declaration_specifiers ac_fn_declarator ac_declaration_list_option . ac_compound_statement (rule 202) '{' shift, and go to state 124 MainCbody go to state 125 ac_compound_statement go to state 126 state 94 ac_declaration_list_option -> ac_declaration_list . (rule 205) ac_declaration_list -> ac_declaration_list . ac_declaration (rule 207) T_ID shift, and go to state 2 T_STATIC shift, and go to state 4 T_AUTO shift, and go to state 9 T_REGISTER shift, and go to state 10 T_EXTERN shift, and go to state 11 T_TYPEDEF shift, and go to state 12 T_CONST shift, and go to state 13 T_VOLATILE shift, and go to state 14 $default reduce using rule 205 (ac_declaration_list_option) id go to state 56 ac_declaration go to state 127 ac_declaration_specifiers go to state 95 ac_storage_class_specifier go to state 30 ac_type_specifier go to state 31 ac_type_qualifier go to state 32 state 95 ac_declaration -> ac_declaration_specifiers . ac_init_declarator_list_option ';' (rule 203) T_ID shift, and go to state 2 '(' shift, and go to state 128 '$' shift, and go to state 49 '*' shift, and go to state 50 $default reduce using rule 220 (ac_init_declarator_list_option) id go to state 51 ac_init_declarator_list_option go to state 129 ac_init_declarator_list go to state 130 ac_init_declarator go to state 131 ac_declarator go to state 132 ac_direct_declarator go to state 133 ac_pointer go to state 134 ac_identifier go to state 135 state 96 ac_fn_declarator -> ac_pointer ac_direct_fn_declarator . (rule 226) $default reduce using rule 226 (ac_fn_declarator) state 97 ac_direct_fn_declarator -> ac_identifier '(' . ac_parameter_type_list ')' (rule 236) ac_direct_fn_declarator -> ac_identifier '(' . ')' (rule 237) ac_direct_fn_declarator -> ac_identifier '(' . ac_identifier_list ')' (rule 238) T_ID shift, and go to state 2 T_STATIC shift, and go to state 4 T_AUTO shift, and go to state 9 T_REGISTER shift, and go to state 10 T_EXTERN shift, and go to state 11 T_TYPEDEF shift, and go to state 12 T_CONST shift, and go to state 13 T_VOLATILE shift, and go to state 14 ')' shift, and go to state 136 '$' shift, and go to state 49 id go to state 137 ac_declaration_specifiers go to state 138 ac_storage_class_specifier go to state 30 ac_type_specifier go to state 31 ac_type_qualifier go to state 32 ac_parameter_type_list go to state 139 ac_parameter_list go to state 140 ac_parameter_declaration go to state 141 ac_identifier_list go to state 142 ac_identifier go to state 143 state 98 ac_declaration_specifiers -> ac_storage_class_specifier ac_type_qualifier ac_type_specifier . (rule 211) $default reduce using rule 211 (ac_declaration_specifiers) state 99 includedeclaration -> T_INCLUDESTART includefiles_option @26 includes . T_INCLUDEEND (rule 109) includes -> includes . include (rule 115) T_INCLUDE shift, and go to state 144 T_INCLUDEEND shift, and go to state 145 '\n' shift, and go to state 146 include go to state 147 state 100 defrviewnames -> defrviewnames ',' id . (rule 197) $default reduce using rule 197 (defrviewnames) state 101 defuviewnames -> defuviewnames ',' id . (rule 193) $default reduce using rule 193 (defuviewnames) state 102 defstorageclasses -> defstorageclasses ',' id . (rule 201) $default reduce using rule 201 (defstorageclasses) state 103 storageoption -> '{' '!' id . '}' (rule 20) '}' shift, and go to state 148 state 104 storageoption -> '{' id '}' . (rule 19) $default reduce using rule 19 (storageoption) state 105 pattern -> '"' @29 . CexpressionDQ '"' (rule 147) $default reduce using rule 53 (CexpressionDQ) CexpressionDQ go to state 149 state 106 pattern -> id '(' . patternsoption ')' (rule 142) T_ID shift, and go to state 2 T_INT shift, and go to state 73 T_DEFAULT shift, and go to state 74 '"' shift, and go to state 75 '*' shift, and go to state 76 $default reduce using rule 149 (patternsoption) id go to state 77 int go to state 78 pattern go to state 79 patternsoption go to state 150 patterns go to state 81 state 107 pattern -> id '=' . pattern (rule 145) T_ID shift, and go to state 2 T_INT shift, and go to state 73 T_DEFAULT shift, and go to state 74 '"' shift, and go to state 75 '*' shift, and go to state 76 id go to state 77 int go to state 78 pattern go to state 151 state 108 outmostpattern -> id '(' patternsoption ')' . (rule 137) $default reduce using rule 137 (outmostpattern) state 109 patterns -> patterns ',' . pattern (rule 152) T_ID shift, and go to state 2 T_INT shift, and go to state 73 T_DEFAULT shift, and go to state 74 '"' shift, and go to state 75 '*' shift, and go to state 76 id go to state 77 int go to state 78 pattern go to state 152 state 110 phylumdeclaration -> id storageoption ':' @2 . productionblock Ccode_option ';' (rule 17) T_ID shift, and go to state 2 T_LIST shift, and go to state 153 $default reduce using rule 21 (productionblock) id go to state 154 productionblock go to state 155 alternatives go to state 156 alternative go to state 157 state 111 term -> '"' . @30 CexpressionDQ '"' (rule 156) $default reduce using rule 155 (@30) @30 go to state 158 state 112 rwclause -> '<' . useviewnames ':' term '>' (rule 124) $default reduce using rule 170 (useviewnames) useviewnames go to state 159 state 113 term -> id . (rule 153) term -> id . '(' termsoption ')' (rule 154) '(' shift, and go to state 160 $default reduce using rule 153 (term) state 114 term -> int . (rule 157) $default reduce using rule 157 (term) state 115 rwdeclaration -> outmostpatterns T_ARROW @27 rwclauses_or_term . ';' (rule 119) ';' shift, and go to state 161 state 116 rwclauses_or_term -> rwclauses . (rule 121) rwclauses -> rwclauses . rwclause (rule 123) '<' shift, and go to state 112 $default reduce using rule 121 (rwclauses_or_term) rwclause go to state 162 state 117 rwclauses -> rwclause . (rule 122) $default reduce using rule 122 (rwclauses) state 118 rwclauses_or_term -> term . (rule 120) $default reduce using rule 120 (rwclauses_or_term) state 119 unparseclause -> '[' . useviewnames ':' unparseitems ']' (rule 169) $default reduce using rule 170 (useviewnames) useviewnames go to state 163 state 120 unparsedeclaration -> outmostpatterns T_ARROW @31 unparseclauses . ';' (rule 166) unparseclauses -> unparseclauses . unparseclause (rule 168) ';' shift, and go to state 164 '[' shift, and go to state 119 unparseclause go to state 165 state 121 unparseclauses -> unparseclause . (rule 167) $default reduce using rule 167 (unparseclauses) state 122 ac_type_qualifier_list -> ac_type_qualifier_list ac_type_qualifier . (rule 244) $default reduce using rule 244 (ac_type_qualifier_list) state 123 ac_pointer -> '*' ac_type_qualifier_list ac_pointer . (rule 242) $default reduce using rule 242 (ac_pointer) state 124 MainCbody -> '{' . @9 MainCBodycontinuation @10 '}' (rule 72) $default reduce using rule 70 (@9) @9 go to state 166 state 125 ac_compound_statement -> MainCbody . (rule 268) $default reduce using rule 268 (ac_compound_statement) state 126 ac_function_definition -> ac_declaration_specifiers ac_fn_declarator ac_declaration_list_option ac_compound_statement . (rule 202) $default reduce using rule 202 (ac_function_definition) state 127 ac_declaration_list -> ac_declaration_list ac_declaration . (rule 207) $default reduce using rule 207 (ac_declaration_list) state 128 ac_direct_declarator -> '(' . ac_pointer_declarator ')' (rule 231) '*' shift, and go to state 50 ac_pointer_declarator go to state 167 ac_pointer go to state 168 state 129 ac_declaration -> ac_declaration_specifiers ac_init_declarator_list_option . ';' (rule 203) ';' shift, and go to state 169 state 130 ac_init_declarator_list_option -> ac_init_declarator_list . (rule 221) ac_init_declarator_list -> ac_init_declarator_list . ',' ac_init_declarator (rule 223) ',' shift, and go to state 170 $default reduce using rule 221 (ac_init_declarator_list_option) state 131 ac_init_declarator_list -> ac_init_declarator . (rule 222) $default reduce using rule 222 (ac_init_declarator_list) state 132 ac_init_declarator -> ac_declarator . (rule 224) $default reduce using rule 224 (ac_init_declarator) state 133 ac_declarator -> ac_direct_declarator . (rule 227) ac_direct_declarator -> ac_direct_declarator . '[' ac_constant_expression_option ']' (rule 232) ac_direct_declarator -> ac_direct_declarator . '(' ac_parameter_type_list ')' (rule 233) ac_direct_declarator -> ac_direct_declarator . '(' ')' (rule 234) ac_direct_declarator -> ac_direct_declarator . '(' ac_identifier_list ')' (rule 235) '(' shift, and go to state 171 '[' shift, and go to state 172 $default reduce using rule 227 (ac_declarator) state 134 ac_declarator -> ac_pointer . ac_direct_declarator (rule 228) T_ID shift, and go to state 2 '(' shift, and go to state 128 '$' shift, and go to state 49 id go to state 51 ac_direct_declarator go to state 173 ac_identifier go to state 135 state 135 ac_direct_declarator -> ac_identifier . (rule 230) $default reduce using rule 230 (ac_direct_declarator) state 136 ac_direct_fn_declarator -> ac_identifier '(' ')' . (rule 237) $default reduce using rule 237 (ac_direct_fn_declarator) state 137 ac_type_specifier -> id . (rule 217) ac_identifier -> id . (rule 266) ')' reduce using rule 266 (ac_identifier) ',' reduce using rule 266 (ac_identifier) $default reduce using rule 217 (ac_type_specifier) state 138 ac_parameter_declaration -> ac_declaration_specifiers . ac_declarator (rule 249) ac_parameter_declaration -> ac_declaration_specifiers . ac_abstract_declarator (rule 250) T_ID shift, and go to state 2 '(' shift, and go to state 174 '[' shift, and go to state 175 '$' shift, and go to state 49 '*' shift, and go to state 50 id go to state 51 ac_declarator go to state 176 ac_direct_declarator go to state 133 ac_pointer go to state 177 ac_abstract_declarator go to state 178 ac_direct_abstract_declarator go to state 179 ac_identifier go to state 135 state 139 ac_direct_fn_declarator -> ac_identifier '(' ac_parameter_type_list . ')' (rule 236) ')' shift, and go to state 180 state 140 ac_parameter_type_list -> ac_parameter_list . (rule 245) ac_parameter_type_list -> ac_parameter_list . ',' T_DOTDOTDOT (rule 246) ac_parameter_list -> ac_parameter_list . ',' ac_parameter_declaration (rule 248) ',' shift, and go to state 181 $default reduce using rule 245 (ac_parameter_type_list) state 141 ac_parameter_list -> ac_parameter_declaration . (rule 247) $default reduce using rule 247 (ac_parameter_list) state 142 ac_direct_fn_declarator -> ac_identifier '(' ac_identifier_list . ')' (rule 238) ac_identifier_list -> ac_identifier_list . ',' ac_identifier (rule 252) ')' shift, and go to state 182 ',' shift, and go to state 183 state 143 ac_identifier_list -> ac_identifier . (rule 251) $default reduce using rule 251 (ac_identifier_list) state 144 include -> T_INCLUDE . (rule 116) $default reduce using rule 116 (include) state 145 includedeclaration -> T_INCLUDESTART includefiles_option @26 includes T_INCLUDEEND . (rule 109) $default reduce using rule 109 (includedeclaration) state 146 include -> '\n' . (rule 117) $default reduce using rule 117 (include) state 147 includes -> includes include . (rule 115) $default reduce using rule 115 (includes) state 148 storageoption -> '{' '!' id '}' . (rule 20) $default reduce using rule 20 (storageoption) state 149 CexpressionDQ -> CexpressionDQ . CexpressionDQ_elem (rule 54) pattern -> '"' @29 CexpressionDQ . '"' (rule 147) T_CEXPRESSION shift, and go to state 184 '\n' shift, and go to state 185 '"' shift, and go to state 186 CexpressionDQ_elem go to state 187 state 150 pattern -> id '(' patternsoption . ')' (rule 142) ')' shift, and go to state 188 state 151 pattern -> id '=' pattern . (rule 145) $default reduce using rule 145 (pattern) state 152 patterns -> patterns ',' pattern . (rule 152) $default reduce using rule 152 (patterns) state 153 productionblock -> T_LIST . id (rule 22) T_ID shift, and go to state 2 id go to state 189 state 154 alternative -> id . '(' @3 arguments @4 ')' (rule 28) '(' shift, and go to state 190 state 155 phylumdeclaration -> id storageoption ':' @2 productionblock . Ccode_option ';' (rule 17) '{' shift, and go to state 191 $default reduce using rule 31 (Ccode_option) Ccode_option go to state 192 state 156 productionblock -> alternatives . (rule 23) alternatives -> alternatives . '|' alternative (rule 25) '|' shift, and go to state 193 $default reduce using rule 23 (productionblock) state 157 alternatives -> alternative . (rule 24) $default reduce using rule 24 (alternatives) state 158 term -> '"' @30 . CexpressionDQ '"' (rule 156) $default reduce using rule 53 (CexpressionDQ) CexpressionDQ go to state 194 state 159 rwclause -> '<' useviewnames . ':' term '>' (rule 124) useviewnames -> useviewnames . id (rule 171) T_ID shift, and go to state 2 ':' shift, and go to state 195 id go to state 196 state 160 term -> id '(' . termsoption ')' (rule 154) T_ID shift, and go to state 2 T_INT shift, and go to state 73 '"' shift, and go to state 111 $default reduce using rule 158 (termsoption) id go to state 113 int go to state 114 term go to state 197 termsoption go to state 198 terms go to state 199 state 161 rwdeclaration -> outmostpatterns T_ARROW @27 rwclauses_or_term ';' . (rule 119) $default reduce using rule 119 (rwdeclaration) state 162 rwclauses -> rwclauses rwclause . (rule 123) $default reduce using rule 123 (rwclauses) state 163 unparseclause -> '[' useviewnames . ':' unparseitems ']' (rule 169) useviewnames -> useviewnames . id (rule 171) T_ID shift, and go to state 2 ':' shift, and go to state 200 id go to state 196 state 164 unparsedeclaration -> outmostpatterns T_ARROW @31 unparseclauses ';' . (rule 166) $default reduce using rule 166 (unparsedeclaration) state 165 unparseclauses -> unparseclauses unparseclause . (rule 168) $default reduce using rule 168 (unparseclauses) state 166 MainCbody -> '{' @9 . MainCBodycontinuation @10 '}' (rule 72) T_ID reduce using rule 129 (@28) T_DEFAULT reduce using rule 129 (@28) '(' reduce using rule 129 (@28) '$' reduce using rule 129 (@28) '*' reduce using rule 129 (@28) $default reduce using rule 81 (Ctext) MainCBodycontinuation go to state 201 Ctext go to state 202 patternchains go to state 203 patternchain go to state 204 patternchainitem_lineinfo go to state 205 @28 go to state 206 withcases go to state 207 withcase go to state 208 state 167 ac_direct_declarator -> '(' ac_pointer_declarator . ')' (rule 231) ')' shift, and go to state 209 state 168 ac_pointer_declarator -> ac_pointer . ac_direct_declarator (rule 229) T_ID shift, and go to state 2 '(' shift, and go to state 128 '$' shift, and go to state 49 id go to state 51 ac_direct_declarator go to state 210 ac_identifier go to state 135 state 169 ac_declaration -> ac_declaration_specifiers ac_init_declarator_list_option ';' . (rule 203) $default reduce using rule 203 (ac_declaration) state 170 ac_init_declarator_list -> ac_init_declarator_list ',' . ac_init_declarator (rule 223) T_ID shift, and go to state 2 '(' shift, and go to state 128 '$' shift, and go to state 49 '*' shift, and go to state 50 id go to state 51 ac_init_declarator go to state 211 ac_declarator go to state 132 ac_direct_declarator go to state 133 ac_pointer go to state 134 ac_identifier go to state 135 state 171 ac_direct_declarator -> ac_direct_declarator '(' . ac_parameter_type_list ')' (rule 233) ac_direct_declarator -> ac_direct_declarator '(' . ')' (rule 234) ac_direct_declarator -> ac_direct_declarator '(' . ac_identifier_list ')' (rule 235) T_ID shift, and go to state 2 T_STATIC shift, and go to state 4 T_AUTO shift, and go to state 9 T_REGISTER shift, and go to state 10 T_EXTERN shift, and go to state 11 T_TYPEDEF shift, and go to state 12 T_CONST shift, and go to state 13 T_VOLATILE shift, and go to state 14 ')' shift, and go to state 212 '$' shift, and go to state 49 id go to state 137 ac_declaration_specifiers go to state 138 ac_storage_class_specifier go to state 30 ac_type_specifier go to state 31 ac_type_qualifier go to state 32 ac_parameter_type_list go to state 213 ac_parameter_list go to state 140 ac_parameter_declaration go to state 141 ac_identifier_list go to state 214 ac_identifier go to state 143 state 172 ac_direct_declarator -> ac_direct_declarator '[' . ac_constant_expression_option ']' (rule 232) $default reduce using rule 264 (@34) ac_constant_expression_option go to state 215 ac_constant_expression go to state 216 @34 go to state 217 state 173 ac_declarator -> ac_pointer ac_direct_declarator . (rule 228) ac_direct_declarator -> ac_direct_declarator . '[' ac_constant_expression_option ']' (rule 232) ac_direct_declarator -> ac_direct_declarator . '(' ac_parameter_type_list ')' (rule 233) ac_direct_declarator -> ac_direct_declarator . '(' ')' (rule 234) ac_direct_declarator -> ac_direct_declarator . '(' ac_identifier_list ')' (rule 235) '(' shift, and go to state 171 '[' shift, and go to state 172 $default reduce using rule 228 (ac_declarator) state 174 ac_direct_declarator -> '(' . ac_pointer_declarator ')' (rule 231) ac_direct_abstract_declarator -> '(' . ac_abstract_declarator ')' (rule 256) ac_direct_abstract_declarator -> '(' . ')' (rule 261) ac_direct_abstract_declarator -> '(' . ac_parameter_type_list ')' (rule 262) T_ID shift, and go to state 2 T_STATIC shift, and go to state 4 T_AUTO shift, and go to state 9 T_REGISTER shift, and go to state 10 T_EXTERN shift, and go to state 11 T_TYPEDEF shift, and go to state 12 T_CONST shift, and go to state 13 T_VOLATILE shift, and go to state 14 '(' shift, and go to state 218 ')' shift, and go to state 219 '[' shift, and go to state 175 '*' shift, and go to state 50 id go to state 56 ac_declaration_specifiers go to state 138 ac_storage_class_specifier go to state 30 ac_type_specifier go to state 31 ac_type_qualifier go to state 32 ac_pointer_declarator go to state 167 ac_pointer go to state 220 ac_parameter_type_list go to state 221 ac_parameter_list go to state 140 ac_parameter_declaration go to state 141 ac_abstract_declarator go to state 222 ac_direct_abstract_declarator go to state 179 state 175 ac_direct_abstract_declarator -> '[' . ac_constant_expression_option ']' (rule 258) $default reduce using rule 264 (@34) ac_constant_expression_option go to state 223 ac_constant_expression go to state 216 @34 go to state 217 state 176 ac_parameter_declaration -> ac_declaration_specifiers ac_declarator . (rule 249) $default reduce using rule 249 (ac_parameter_declaration) state 177 ac_declarator -> ac_pointer . ac_direct_declarator (rule 228) ac_abstract_declarator -> ac_pointer . (rule 253) ac_abstract_declarator -> ac_pointer . ac_direct_abstract_declarator (rule 255) T_ID shift, and go to state 2 '(' shift, and go to state 174 '[' shift, and go to state 175 '$' shift, and go to state 49 $default reduce using rule 253 (ac_abstract_declarator) id go to state 51 ac_direct_declarator go to state 173 ac_direct_abstract_declarator go to state 224 ac_identifier go to state 135 state 178 ac_parameter_declaration -> ac_declaration_specifiers ac_abstract_declarator . (rule 250) $default reduce using rule 250 (ac_parameter_declaration) state 179 ac_abstract_declarator -> ac_direct_abstract_declarator . (rule 254) ac_direct_abstract_declarator -> ac_direct_abstract_declarator . '[' ac_constant_expression_option ']' (rule 257) ac_direct_abstract_declarator -> ac_direct_abstract_declarator . '(' ')' (rule 259) ac_direct_abstract_declarator -> ac_direct_abstract_declarator . '(' ac_parameter_type_list ')' (rule 260) '(' shift, and go to state 225 '[' shift, and go to state 226 $default reduce using rule 254 (ac_abstract_declarator) state 180 ac_direct_fn_declarator -> ac_identifier '(' ac_parameter_type_list ')' . (rule 236) $default reduce using rule 236 (ac_direct_fn_declarator) state 181 ac_parameter_type_list -> ac_parameter_list ',' . T_DOTDOTDOT (rule 246) ac_parameter_list -> ac_parameter_list ',' . ac_parameter_declaration (rule 248) T_ID shift, and go to state 2 T_STATIC shift, and go to state 4 T_AUTO shift, and go to state 9 T_REGISTER shift, and go to state 10 T_EXTERN shift, and go to state 11 T_TYPEDEF shift, and go to state 12 T_CONST shift, and go to state 13 T_VOLATILE shift, and go to state 14 T_DOTDOTDOT shift, and go to state 227 id go to state 56 ac_declaration_specifiers go to state 138 ac_storage_class_specifier go to state 30 ac_type_specifier go to state 31 ac_type_qualifier go to state 32 ac_parameter_declaration go to state 228 state 182 ac_direct_fn_declarator -> ac_identifier '(' ac_identifier_list ')' . (rule 238) $default reduce using rule 238 (ac_direct_fn_declarator) state 183 ac_identifier_list -> ac_identifier_list ',' . ac_identifier (rule 252) T_ID shift, and go to state 2 '$' shift, and go to state 49 id go to state 51 ac_identifier go to state 229 state 184 CexpressionDQ_elem -> T_CEXPRESSION . (rule 55) $default reduce using rule 55 (CexpressionDQ_elem) state 185 CexpressionDQ_elem -> '\n' . (rule 56) $default reduce using rule 56 (CexpressionDQ_elem) state 186 pattern -> '"' @29 CexpressionDQ '"' . (rule 147) $default reduce using rule 147 (pattern) state 187 CexpressionDQ -> CexpressionDQ CexpressionDQ_elem . (rule 54) $default reduce using rule 54 (CexpressionDQ) state 188 pattern -> id '(' patternsoption ')' . (rule 142) $default reduce using rule 142 (pattern) state 189 productionblock -> T_LIST id . (rule 22) $default reduce using rule 22 (productionblock) state 190 alternative -> id '(' . @3 arguments @4 ')' (rule 28) $default reduce using rule 26 (@3) @3 go to state 230 state 191 Ccode_option -> '{' . attributes_option init_option '}' (rule 32) $default reduce using rule 33 (attributes_option) attributes_option go to state 231 state 192 phylumdeclaration -> id storageoption ':' @2 productionblock Ccode_option . ';' (rule 17) ';' shift, and go to state 232 state 193 alternatives -> alternatives '|' . alternative (rule 25) T_ID shift, and go to state 2 id go to state 154 alternative go to state 233 state 194 CexpressionDQ -> CexpressionDQ . CexpressionDQ_elem (rule 54) term -> '"' @30 CexpressionDQ . '"' (rule 156) T_CEXPRESSION shift, and go to state 184 '\n' shift, and go to state 185 '"' shift, and go to state 234 CexpressionDQ_elem go to state 187 state 195 rwclause -> '<' useviewnames ':' . term '>' (rule 124) T_ID shift, and go to state 2 T_INT shift, and go to state 73 '"' shift, and go to state 111 id go to state 113 int go to state 114 term go to state 235 state 196 useviewnames -> useviewnames id . (rule 171) $default reduce using rule 171 (useviewnames) state 197 terms -> term . (rule 160) $default reduce using rule 160 (terms) state 198 term -> id '(' termsoption . ')' (rule 154) ')' shift, and go to state 236 state 199 termsoption -> terms . (rule 159) terms -> terms . ',' term (rule 161) ',' shift, and go to state 237 $default reduce using rule 159 (termsoption) state 200 unparseclause -> '[' useviewnames ':' . unparseitems ']' (rule 169) $default reduce using rule 172 (unparseitems) unparseitems go to state 238 state 201 MainCbody -> '{' @9 MainCBodycontinuation . @10 '}' (rule 72) $default reduce using rule 71 (@10) @10 go to state 239 state 202 MainCBodycontinuation -> Ctext . (rule 76) Ctext -> Ctext . @15 Ctext_elem (rule 83) '}' reduce using rule 76 (MainCBodycontinuation) $default reduce using rule 82 (@15) @15 go to state 240 state 203 patternchains -> patternchains . ',' patternchain (rule 126) withcase -> patternchains . ':' Cbody (rule 164) ':' shift, and go to state 241 ',' shift, and go to state 242 state 204 patternchains -> patternchain . (rule 125) patternchain -> patternchain . '&' patternchainitem_lineinfo (rule 128) '&' shift, and go to state 243 $default reduce using rule 125 (patternchains) state 205 patternchain -> patternchainitem_lineinfo . (rule 127) $default reduce using rule 127 (patternchain) state 206 patternchainitem_lineinfo -> @28 . patternchainitem (rule 130) T_ID shift, and go to state 2 T_DEFAULT shift, and go to state 5 '(' shift, and go to state 244 '$' shift, and go to state 245 '*' shift, and go to state 15 id go to state 82 patternchainitem go to state 246 outmostpattern go to state 247 state 207 MainCBodycontinuation -> withcases . (rule 77) withcases -> withcases . withcase (rule 163) '}' reduce using rule 77 (MainCBodycontinuation) $default reduce using rule 129 (@28) patternchains go to state 203 patternchain go to state 204 patternchainitem_lineinfo go to state 205 @28 go to state 206 withcase go to state 248 state 208 withcases -> withcase . (rule 162) $default reduce using rule 162 (withcases) state 209 ac_direct_declarator -> '(' ac_pointer_declarator ')' . (rule 231) $default reduce using rule 231 (ac_direct_declarator) state 210 ac_pointer_declarator -> ac_pointer ac_direct_declarator . (rule 229) ac_direct_declarator -> ac_direct_declarator . '[' ac_constant_expression_option ']' (rule 232) ac_direct_declarator -> ac_direct_declarator . '(' ac_parameter_type_list ')' (rule 233) ac_direct_declarator -> ac_direct_declarator . '(' ')' (rule 234) ac_direct_declarator -> ac_direct_declarator . '(' ac_identifier_list ')' (rule 235) '(' shift, and go to state 171 '[' shift, and go to state 172 $default reduce using rule 229 (ac_pointer_declarator) state 211 ac_init_declarator_list -> ac_init_declarator_list ',' ac_init_declarator . (rule 223) $default reduce using rule 223 (ac_init_declarator_list) state 212 ac_direct_declarator -> ac_direct_declarator '(' ')' . (rule 234) $default reduce using rule 234 (ac_direct_declarator) state 213 ac_direct_declarator -> ac_direct_declarator '(' ac_parameter_type_list . ')' (rule 233) ')' shift, and go to state 249 state 214 ac_direct_declarator -> ac_direct_declarator '(' ac_identifier_list . ')' (rule 235) ac_identifier_list -> ac_identifier_list . ',' ac_identifier (rule 252) ')' shift, and go to state 250 ',' shift, and go to state 183 state 215 ac_direct_declarator -> ac_direct_declarator '[' ac_constant_expression_option . ']' (rule 232) ']' shift, and go to state 251 state 216 ac_constant_expression_option -> ac_constant_expression . (rule 263) $default reduce using rule 263 (ac_constant_expression_option) state 217 ac_constant_expression -> @34 . Cexpression (rule 265) $default reduce using rule 39 (Cexpression) Cexpression go to state 252 state 218 ac_direct_abstract_declarator -> '(' . ac_abstract_declarator ')' (rule 256) ac_direct_abstract_declarator -> '(' . ')' (rule 261) ac_direct_abstract_declarator -> '(' . ac_parameter_type_list ')' (rule 262) T_ID shift, and go to state 2 T_STATIC shift, and go to state 4 T_AUTO shift, and go to state 9 T_REGISTER shift, and go to state 10 T_EXTERN shift, and go to state 11 T_TYPEDEF shift, and go to state 12 T_CONST shift, and go to state 13 T_VOLATILE shift, and go to state 14 '(' shift, and go to state 218 ')' shift, and go to state 219 '[' shift, and go to state 175 '*' shift, and go to state 50 id go to state 56 ac_declaration_specifiers go to state 138 ac_storage_class_specifier go to state 30 ac_type_specifier go to state 31 ac_type_qualifier go to state 32 ac_pointer go to state 253 ac_parameter_type_list go to state 221 ac_parameter_list go to state 140 ac_parameter_declaration go to state 141 ac_abstract_declarator go to state 222 ac_direct_abstract_declarator go to state 179 state 219 ac_direct_abstract_declarator -> '(' ')' . (rule 261) $default reduce using rule 261 (ac_direct_abstract_declarator) state 220 ac_pointer_declarator -> ac_pointer . ac_direct_declarator (rule 229) ac_abstract_declarator -> ac_pointer . (rule 253) ac_abstract_declarator -> ac_pointer . ac_direct_abstract_declarator (rule 255) T_ID shift, and go to state 2 '(' shift, and go to state 174 '[' shift, and go to state 175 '$' shift, and go to state 49 $default reduce using rule 253 (ac_abstract_declarator) id go to state 51 ac_direct_declarator go to state 210 ac_direct_abstract_declarator go to state 224 ac_identifier go to state 135 state 221 ac_direct_abstract_declarator -> '(' ac_parameter_type_list . ')' (rule 262) ')' shift, and go to state 254 state 222 ac_direct_abstract_declarator -> '(' ac_abstract_declarator . ')' (rule 256) ')' shift, and go to state 255 state 223 ac_direct_abstract_declarator -> '[' ac_constant_expression_option . ']' (rule 258) ']' shift, and go to state 256 state 224 ac_abstract_declarator -> ac_pointer ac_direct_abstract_declarator . (rule 255) ac_direct_abstract_declarator -> ac_direct_abstract_declarator . '[' ac_constant_expression_option ']' (rule 257) ac_direct_abstract_declarator -> ac_direct_abstract_declarator . '(' ')' (rule 259) ac_direct_abstract_declarator -> ac_direct_abstract_declarator . '(' ac_parameter_type_list ')' (rule 260) '(' shift, and go to state 225 '[' shift, and go to state 226 $default reduce using rule 255 (ac_abstract_declarator) state 225 ac_direct_abstract_declarator -> ac_direct_abstract_declarator '(' . ')' (rule 259) ac_direct_abstract_declarator -> ac_direct_abstract_declarator '(' . ac_parameter_type_list ')' (rule 260) T_ID shift, and go to state 2 T_STATIC shift, and go to state 4 T_AUTO shift, and go to state 9 T_REGISTER shift, and go to state 10 T_EXTERN shift, and go to state 11 T_TYPEDEF shift, and go to state 12 T_CONST shift, and go to state 13 T_VOLATILE shift, and go to state 14 ')' shift, and go to state 257 id go to state 56 ac_declaration_specifiers go to state 138 ac_storage_class_specifier go to state 30 ac_type_specifier go to state 31 ac_type_qualifier go to state 32 ac_parameter_type_list go to state 258 ac_parameter_list go to state 140 ac_parameter_declaration go to state 141 state 226 ac_direct_abstract_declarator -> ac_direct_abstract_declarator '[' . ac_constant_expression_option ']' (rule 257) $default reduce using rule 264 (@34) ac_constant_expression_option go to state 259 ac_constant_expression go to state 216 @34 go to state 217 state 227 ac_parameter_type_list -> ac_parameter_list ',' T_DOTDOTDOT . (rule 246) $default reduce using rule 246 (ac_parameter_type_list) state 228 ac_parameter_list -> ac_parameter_list ',' ac_parameter_declaration . (rule 248) $default reduce using rule 248 (ac_parameter_list) state 229 ac_identifier_list -> ac_identifier_list ',' ac_identifier . (rule 252) $default reduce using rule 252 (ac_identifier_list) state 230 alternative -> id '(' @3 . arguments @4 ')' (rule 28) $default reduce using rule 29 (arguments) arguments go to state 260 state 231 Ccode_option -> '{' attributes_option . init_option '}' (rule 32) attributes_option -> attributes_option . attribute (rule 34) T_ID shift, and go to state 2 '{' shift, and go to state 261 $default reduce using rule 106 (init_option) id go to state 262 attribute go to state 263 Cbody go to state 264 init_option go to state 265 state 232 phylumdeclaration -> id storageoption ':' @2 productionblock Ccode_option ';' . (rule 17) $default reduce using rule 17 (phylumdeclaration) state 233 alternatives -> alternatives '|' alternative . (rule 25) $default reduce using rule 25 (alternatives) state 234 term -> '"' @30 CexpressionDQ '"' . (rule 156) $default reduce using rule 156 (term) state 235 rwclause -> '<' useviewnames ':' term . '>' (rule 124) '>' shift, and go to state 266 state 236 term -> id '(' termsoption ')' . (rule 154) $default reduce using rule 154 (term) state 237 terms -> terms ',' . term (rule 161) T_ID shift, and go to state 2 T_INT shift, and go to state 73 '"' shift, and go to state 111 id go to state 113 int go to state 114 term go to state 267 state 238 unparseclause -> '[' useviewnames ':' unparseitems . ']' (rule 169) unparseitems -> unparseitems . unparseitem (rule 173) T_ID shift, and go to state 2 T_DOLLARVAR shift, and go to state 268 T_UNPBLOCKSTART shift, and go to state 269 '{' shift, and go to state 261 '(' shift, and go to state 270 '"' shift, and go to state 271 ']' shift, and go to state 272 dollarvar go to state 273 id go to state 274 Cbody go to state 275 unparseitem go to state 276 unpsubterm go to state 277 state 239 MainCbody -> '{' @9 MainCBodycontinuation @10 . '}' (rule 72) '}' shift, and go to state 278 state 240 Ctext -> Ctext @15 . Ctext_elem (rule 83) T_CNEWLINES shift, and go to state 279 T_CLINE shift, and go to state 280 T_DOLLARVAR shift, and go to state 268 T_WITH shift, and go to state 281 T_FOREACH shift, and go to state 282 '{' shift, and go to state 261 '\n' shift, and go to state 283 '"' shift, and go to state 284 ''' shift, and go to state 285 dollarvar go to state 286 Cbody go to state 287 Ctext_elem go to state 288 state 241 withcase -> patternchains ':' . Cbody (rule 164) '{' shift, and go to state 261 Cbody go to state 289 state 242 patternchains -> patternchains ',' . patternchain (rule 126) $default reduce using rule 129 (@28) patternchain go to state 290 patternchainitem_lineinfo go to state 205 @28 go to state 206 state 243 patternchain -> patternchain '&' . patternchainitem_lineinfo (rule 128) $default reduce using rule 129 (@28) patternchainitem_lineinfo go to state 291 @28 go to state 206 state 244 patternchainitem -> '(' . patternchains ')' (rule 132) $default reduce using rule 129 (@28) patternchains go to state 292 patternchain go to state 204 patternchainitem_lineinfo go to state 205 @28 go to state 206 state 245 patternchainitem -> '$' . id (rule 133) T_ID shift, and go to state 2 id go to state 293 state 246 patternchainitem_lineinfo -> @28 patternchainitem . (rule 130) $default reduce using rule 130 (patternchainitem_lineinfo) state 247 patternchainitem -> outmostpattern . (rule 131) $default reduce using rule 131 (patternchainitem) state 248 withcases -> withcases withcase . (rule 163) $default reduce using rule 163 (withcases) state 249 ac_direct_declarator -> ac_direct_declarator '(' ac_parameter_type_list ')' . (rule 233) $default reduce using rule 233 (ac_direct_declarator) state 250 ac_direct_declarator -> ac_direct_declarator '(' ac_identifier_list ')' . (rule 235) $default reduce using rule 235 (ac_direct_declarator) state 251 ac_direct_declarator -> ac_direct_declarator '[' ac_constant_expression_option ']' . (rule 232) $default reduce using rule 232 (ac_direct_declarator) state 252 Cexpression -> Cexpression . Cexpression_elem (rule 40) ac_constant_expression -> @34 Cexpression . (rule 265) T_CNEWLINES shift, and go to state 294 T_CEXPRESSION shift, and go to state 295 T_DOLLARVAR shift, and go to state 268 '(' shift, and go to state 296 '\n' shift, and go to state 297 '"' shift, and go to state 298 ''' shift, and go to state 299 '[' shift, and go to state 300 $default reduce using rule 265 (ac_constant_expression) dollarvar go to state 301 Cexpression_elem go to state 302 state 253 ac_abstract_declarator -> ac_pointer . (rule 253) ac_abstract_declarator -> ac_pointer . ac_direct_abstract_declarator (rule 255) '(' shift, and go to state 218 '[' shift, and go to state 175 $default reduce using rule 253 (ac_abstract_declarator) ac_direct_abstract_declarator go to state 224 state 254 ac_direct_abstract_declarator -> '(' ac_parameter_type_list ')' . (rule 262) $default reduce using rule 262 (ac_direct_abstract_declarator) state 255 ac_direct_abstract_declarator -> '(' ac_abstract_declarator ')' . (rule 256) $default reduce using rule 256 (ac_direct_abstract_declarator) state 256 ac_direct_abstract_declarator -> '[' ac_constant_expression_option ']' . (rule 258) $default reduce using rule 258 (ac_direct_abstract_declarator) state 257 ac_direct_abstract_declarator -> ac_direct_abstract_declarator '(' ')' . (rule 259) $default reduce using rule 259 (ac_direct_abstract_declarator) state 258 ac_direct_abstract_declarator -> ac_direct_abstract_declarator '(' ac_parameter_type_list . ')' (rule 260) ')' shift, and go to state 303 state 259 ac_direct_abstract_declarator -> ac_direct_abstract_declarator '[' ac_constant_expression_option . ']' (rule 257) ']' shift, and go to state 304 state 260 alternative -> id '(' @3 arguments . @4 ')' (rule 28) arguments -> arguments . id (rule 30) T_ID shift, and go to state 2 $default reduce using rule 27 (@4) id go to state 305 @4 go to state 306 state 261 Cbody -> '{' . @13 Ctext @14 '}' (rule 80) $default reduce using rule 78 (@13) @13 go to state 307 state 262 attribute -> id . id attribute_init_option ';' (rule 35) T_ID shift, and go to state 2 id go to state 308 state 263 attributes_option -> attributes_option attribute . (rule 34) $default reduce using rule 34 (attributes_option) state 264 init_option -> Cbody . (rule 107) $default reduce using rule 107 (init_option) state 265 Ccode_option -> '{' attributes_option init_option . '}' (rule 32) '}' shift, and go to state 309 state 266 rwclause -> '<' useviewnames ':' term '>' . (rule 124) $default reduce using rule 124 (rwclause) state 267 terms -> terms ',' term . (rule 161) $default reduce using rule 161 (terms) state 268 dollarvar -> T_DOLLARVAR . (rule 1) $default reduce using rule 1 (dollarvar) state 269 unparseitem -> T_UNPBLOCKSTART . unparseitems T_UNPBLOCKEND (rule 179) $default reduce using rule 172 (unparseitems) unparseitems go to state 310 state 270 unpsubterm -> '(' . id ')' id (rule 184) T_ID shift, and go to state 2 id go to state 311 state 271 unparseitem -> '"' . @32 CexpressionDQ '"' @33 viewnameoption (rule 176) $default reduce using rule 174 (@32) @32 go to state 312 state 272 unparseclause -> '[' useviewnames ':' unparseitems ']' . (rule 169) $default reduce using rule 169 (unparseclause) state 273 unpsubterm -> dollarvar . (rule 181) unpsubterm -> dollarvar . unpattributes (rule 183) T_ARROW shift, and go to state 313 $default reduce using rule 181 (unpsubterm) unpattributes go to state 314 unpattribute go to state 315 state 274 unpsubterm -> id . (rule 180) unpsubterm -> id . unpattributes (rule 182) T_ARROW shift, and go to state 313 $default reduce using rule 180 (unpsubterm) unpattributes go to state 316 unpattribute go to state 315 state 275 unparseitem -> Cbody . (rule 178) $default reduce using rule 178 (unparseitem) state 276 unparseitems -> unparseitems unparseitem . (rule 173) $default reduce using rule 173 (unparseitems) state 277 unparseitem -> unpsubterm . viewnameoption (rule 177) ':' shift, and go to state 317 $default reduce using rule 188 (viewnameoption) viewnameoption go to state 318 state 278 MainCbody -> '{' @9 MainCBodycontinuation @10 '}' . (rule 72) $default reduce using rule 72 (MainCbody) state 279 Ctext_elem -> T_CNEWLINES . (rule 87) $default reduce using rule 87 (Ctext_elem) state 280 Ctext_elem -> T_CLINE . (rule 84) $default reduce using rule 84 (Ctext_elem) state 281 Ctext_elem -> T_WITH . @19 '(' @20 withCexpressions @21 ')' '{' withcases '}' (rule 98) $default reduce using rule 95 (@19) @19 go to state 319 state 282 Ctext_elem -> T_FOREACH . @18 foreach_continuation (rule 94) $default reduce using rule 93 (@18) @18 go to state 320 state 283 Ctext_elem -> '\n' . (rule 86) $default reduce using rule 86 (Ctext_elem) state 284 Ctext_elem -> '"' . @16 CexpressionDQ '"' (rule 89) $default reduce using rule 88 (@16) @16 go to state 321 state 285 Ctext_elem -> ''' . @17 CexpressionSQ ''' (rule 91) $default reduce using rule 90 (@17) @17 go to state 322 state 286 Ctext_elem -> dollarvar . (rule 85) $default reduce using rule 85 (Ctext_elem) state 287 Ctext_elem -> Cbody . (rule 92) $default reduce using rule 92 (Ctext_elem) state 288 Ctext -> Ctext @15 Ctext_elem . (rule 83) $default reduce using rule 83 (Ctext) state 289 withcase -> patternchains ':' Cbody . (rule 164) $default reduce using rule 164 (withcase) state 290 patternchains -> patternchains ',' patternchain . (rule 126) patternchain -> patternchain . '&' patternchainitem_lineinfo (rule 128) '&' shift, and go to state 243 $default reduce using rule 126 (patternchains) state 291 patternchain -> patternchain '&' patternchainitem_lineinfo . (rule 128) $default reduce using rule 128 (patternchain) state 292 patternchains -> patternchains . ',' patternchain (rule 126) patternchainitem -> '(' patternchains . ')' (rule 132) ')' shift, and go to state 323 ',' shift, and go to state 242 state 293 patternchainitem -> '$' id . (rule 133) $default reduce using rule 133 (patternchainitem) state 294 Cexpression_elem -> T_CNEWLINES . (rule 44) $default reduce using rule 44 (Cexpression_elem) state 295 Cexpression_elem -> T_CEXPRESSION . (rule 41) $default reduce using rule 41 (Cexpression_elem) state 296 Cexpression_elem -> '(' . Cexpression_inner ')' (rule 47) $default reduce using rule 49 (Cexpression_inner) Cexpression_inner go to state 324 state 297 Cexpression_elem -> '\n' . (rule 43) $default reduce using rule 43 (Cexpression_elem) state 298 Cexpression_elem -> '"' . CexpressionDQ '"' (rule 45) $default reduce using rule 53 (CexpressionDQ) CexpressionDQ go to state 325 state 299 Cexpression_elem -> ''' . CexpressionSQ ''' (rule 46) $default reduce using rule 57 (CexpressionSQ) CexpressionSQ go to state 326 state 300 Cexpression_elem -> '[' . Cexpression_inner ']' (rule 48) $default reduce using rule 49 (Cexpression_inner) Cexpression_inner go to state 327 state 301 Cexpression_elem -> dollarvar . (rule 42) $default reduce using rule 42 (Cexpression_elem) state 302 Cexpression -> Cexpression Cexpression_elem . (rule 40) $default reduce using rule 40 (Cexpression) state 303 ac_direct_abstract_declarator -> ac_direct_abstract_declarator '(' ac_parameter_type_list ')' . (rule 260) $default reduce using rule 260 (ac_direct_abstract_declarator) state 304 ac_direct_abstract_declarator -> ac_direct_abstract_declarator '[' ac_constant_expression_option ']' . (rule 257) $default reduce using rule 257 (ac_direct_abstract_declarator) state 305 arguments -> arguments id . (rule 30) $default reduce using rule 30 (arguments) state 306 alternative -> id '(' @3 arguments @4 . ')' (rule 28) ')' shift, and go to state 328 state 307 Cbody -> '{' @13 . Ctext @14 '}' (rule 80) $default reduce using rule 81 (Ctext) Ctext go to state 329 state 308 attribute -> id id . attribute_init_option ';' (rule 35) '=' shift, and go to state 330 $default reduce using rule 36 (attribute_init_option) attribute_init_option go to state 331 state 309 Ccode_option -> '{' attributes_option init_option '}' . (rule 32) $default reduce using rule 32 (Ccode_option) state 310 unparseitems -> unparseitems . unparseitem (rule 173) unparseitem -> T_UNPBLOCKSTART unparseitems . T_UNPBLOCKEND (rule 179) T_ID shift, and go to state 2 T_DOLLARVAR shift, and go to state 268 T_UNPBLOCKSTART shift, and go to state 269 T_UNPBLOCKEND shift, and go to state 332 '{' shift, and go to state 261 '(' shift, and go to state 270 '"' shift, and go to state 271 dollarvar go to state 273 id go to state 274 Cbody go to state 275 unparseitem go to state 276 unpsubterm go to state 277 state 311 unpsubterm -> '(' id . ')' id (rule 184) ')' shift, and go to state 333 state 312 unparseitem -> '"' @32 . CexpressionDQ '"' @33 viewnameoption (rule 176) $default reduce using rule 53 (CexpressionDQ) CexpressionDQ go to state 334 state 313 unpattribute -> T_ARROW . id (rule 187) T_ID shift, and go to state 2 id go to state 335 state 314 unpsubterm -> dollarvar unpattributes . (rule 183) unpattributes -> unpattributes . unpattribute (rule 186) T_ARROW shift, and go to state 313 $default reduce using rule 183 (unpsubterm) unpattribute go to state 336 state 315 unpattributes -> unpattribute . (rule 185) $default reduce using rule 185 (unpattributes) state 316 unpsubterm -> id unpattributes . (rule 182) unpattributes -> unpattributes . unpattribute (rule 186) T_ARROW shift, and go to state 313 $default reduce using rule 182 (unpsubterm) unpattribute go to state 336 state 317 viewnameoption -> ':' . id (rule 189) T_ID shift, and go to state 2 id go to state 337 state 318 unparseitem -> unpsubterm viewnameoption . (rule 177) $default reduce using rule 177 (unparseitem) state 319 Ctext_elem -> T_WITH @19 . '(' @20 withCexpressions @21 ')' '{' withcases '}' (rule 98) '(' shift, and go to state 338 state 320 Ctext_elem -> T_FOREACH @18 . foreach_continuation (rule 94) '(' shift, and go to state 339 foreach_continuation go to state 340 state 321 Ctext_elem -> '"' @16 . CexpressionDQ '"' (rule 89) $default reduce using rule 53 (CexpressionDQ) CexpressionDQ go to state 341 state 322 Ctext_elem -> ''' @17 . CexpressionSQ ''' (rule 91) $default reduce using rule 57 (CexpressionSQ) CexpressionSQ go to state 342 state 323 patternchainitem -> '(' patternchains ')' . (rule 132) $default reduce using rule 132 (patternchainitem) state 324 Cexpression_elem -> '(' Cexpression_inner . ')' (rule 47) Cexpression_inner -> Cexpression_inner . Cexpression_elem_inner (rule 50) T_CNEWLINES shift, and go to state 294 T_CEXPRESSION shift, and go to state 295 T_DOLLARVAR shift, and go to state 268 '(' shift, and go to state 296 ')' shift, and go to state 343 '\n' shift, and go to state 297 '"' shift, and go to state 298 ''' shift, and go to state 299 '[' shift, and go to state 300 ',' shift, and go to state 344 dollarvar go to state 301 Cexpression_elem go to state 345 Cexpression_elem_inner go to state 346 state 325 Cexpression_elem -> '"' CexpressionDQ . '"' (rule 45) CexpressionDQ -> CexpressionDQ . CexpressionDQ_elem (rule 54) T_CEXPRESSION shift, and go to state 184 '\n' shift, and go to state 185 '"' shift, and go to state 347 CexpressionDQ_elem go to state 187 state 326 Cexpression_elem -> ''' CexpressionSQ . ''' (rule 46) CexpressionSQ -> CexpressionSQ . CexpressionSQ_elem (rule 58) T_CEXPRESSION shift, and go to state 348 '\n' shift, and go to state 349 ''' shift, and go to state 350 CexpressionSQ_elem go to state 351 state 327 Cexpression_elem -> '[' Cexpression_inner . ']' (rule 48) Cexpression_inner -> Cexpression_inner . Cexpression_elem_inner (rule 50) T_CNEWLINES shift, and go to state 294 T_CEXPRESSION shift, and go to state 295 T_DOLLARVAR shift, and go to state 268 '(' shift, and go to state 296 '\n' shift, and go to state 297 '"' shift, and go to state 298 ''' shift, and go to state 299 '[' shift, and go to state 300 ']' shift, and go to state 352 ',' shift, and go to state 344 dollarvar go to state 301 Cexpression_elem go to state 345 Cexpression_elem_inner go to state 346 state 328 alternative -> id '(' @3 arguments @4 ')' . (rule 28) $default reduce using rule 28 (alternative) state 329 Cbody -> '{' @13 Ctext . @14 '}' (rule 80) Ctext -> Ctext . @15 Ctext_elem (rule 83) '}' reduce using rule 79 (@14) $default reduce using rule 82 (@15) @14 go to state 353 @15 go to state 240 state 330 attribute_init_option -> '=' . @5 Cexpression (rule 38) $default reduce using rule 37 (@5) @5 go to state 354 state 331 attribute -> id id attribute_init_option . ';' (rule 35) ';' shift, and go to state 355 state 332 unparseitem -> T_UNPBLOCKSTART unparseitems T_UNPBLOCKEND . (rule 179) $default reduce using rule 179 (unparseitem) state 333 unpsubterm -> '(' id ')' . id (rule 184) T_ID shift, and go to state 2 id go to state 356 state 334 CexpressionDQ -> CexpressionDQ . CexpressionDQ_elem (rule 54) unparseitem -> '"' @32 CexpressionDQ . '"' @33 viewnameoption (rule 176) T_CEXPRESSION shift, and go to state 184 '\n' shift, and go to state 185 '"' shift, and go to state 357 CexpressionDQ_elem go to state 187 state 335 unpattribute -> T_ARROW id . (rule 187) $default reduce using rule 187 (unpattribute) state 336 unpattributes -> unpattributes unpattribute . (rule 186) $default reduce using rule 186 (unpattributes) state 337 viewnameoption -> ':' id . (rule 189) $default reduce using rule 189 (viewnameoption) state 338 Ctext_elem -> T_WITH @19 '(' . @20 withCexpressions @21 ')' '{' withcases '}' (rule 98) $default reduce using rule 96 (@20) @20 go to state 358 state 339 foreach_continuation -> '(' . patternchain ';' @22 idCexpressions ')' MainCbodyinC @23 foreach_end_continuation (rule 101) $default reduce using rule 129 (@28) patternchain go to state 359 patternchainitem_lineinfo go to state 205 @28 go to state 206 state 340 Ctext_elem -> T_FOREACH @18 foreach_continuation . (rule 94) $default reduce using rule 94 (Ctext_elem) state 341 CexpressionDQ -> CexpressionDQ . CexpressionDQ_elem (rule 54) Ctext_elem -> '"' @16 CexpressionDQ . '"' (rule 89) T_CEXPRESSION shift, and go to state 184 '\n' shift, and go to state 185 '"' shift, and go to state 360 CexpressionDQ_elem go to state 187 state 342 CexpressionSQ -> CexpressionSQ . CexpressionSQ_elem (rule 58) Ctext_elem -> ''' @17 CexpressionSQ . ''' (rule 91) T_CEXPRESSION shift, and go to state 348 '\n' shift, and go to state 349 ''' shift, and go to state 361 CexpressionSQ_elem go to state 351 state 343 Cexpression_elem -> '(' Cexpression_inner ')' . (rule 47) $default reduce using rule 47 (Cexpression_elem) state 344 Cexpression_elem_inner -> ',' . (rule 52) $default reduce using rule 52 (Cexpression_elem_inner) state 345 Cexpression_elem_inner -> Cexpression_elem . (rule 51) $default reduce using rule 51 (Cexpression_elem_inner) state 346 Cexpression_inner -> Cexpression_inner Cexpression_elem_inner . (rule 50) $default reduce using rule 50 (Cexpression_inner) state 347 Cexpression_elem -> '"' CexpressionDQ '"' . (rule 45) $default reduce using rule 45 (Cexpression_elem) state 348 CexpressionSQ_elem -> T_CEXPRESSION . (rule 59) $default reduce using rule 59 (CexpressionSQ_elem) state 349 CexpressionSQ_elem -> '\n' . (rule 60) $default reduce using rule 60 (CexpressionSQ_elem) state 350 Cexpression_elem -> ''' CexpressionSQ ''' . (rule 46) $default reduce using rule 46 (Cexpression_elem) state 351 CexpressionSQ -> CexpressionSQ CexpressionSQ_elem . (rule 58) $default reduce using rule 58 (CexpressionSQ) state 352 Cexpression_elem -> '[' Cexpression_inner ']' . (rule 48) $default reduce using rule 48 (Cexpression_elem) state 353 Cbody -> '{' @13 Ctext @14 . '}' (rule 80) '}' shift, and go to state 362 state 354 attribute_init_option -> '=' @5 . Cexpression (rule 38) $default reduce using rule 39 (Cexpression) Cexpression go to state 363 state 355 attribute -> id id attribute_init_option ';' . (rule 35) $default reduce using rule 35 (attribute) state 356 unpsubterm -> '(' id ')' id . (rule 184) $default reduce using rule 184 (unpsubterm) state 357 unparseitem -> '"' @32 CexpressionDQ '"' . @33 viewnameoption (rule 176) $default reduce using rule 175 (@33) @33 go to state 364 state 358 Ctext_elem -> T_WITH @19 '(' @20 . withCexpressions @21 ')' '{' withcases '}' (rule 98) $default reduce using rule 39 (Cexpression) Cexpression go to state 365 withCexpression go to state 366 withCexpressions go to state 367 state 359 foreach_continuation -> '(' patternchain . ';' @22 idCexpressions ')' MainCbodyinC @23 foreach_end_continuation (rule 101) patternchain -> patternchain . '&' patternchainitem_lineinfo (rule 128) ';' shift, and go to state 368 '&' shift, and go to state 243 state 360 Ctext_elem -> '"' @16 CexpressionDQ '"' . (rule 89) $default reduce using rule 89 (Ctext_elem) state 361 Ctext_elem -> ''' @17 CexpressionSQ ''' . (rule 91) $default reduce using rule 91 (Ctext_elem) state 362 Cbody -> '{' @13 Ctext @14 '}' . (rule 80) $default reduce using rule 80 (Cbody) state 363 attribute_init_option -> '=' @5 Cexpression . (rule 38) Cexpression -> Cexpression . Cexpression_elem (rule 40) T_CNEWLINES shift, and go to state 294 T_CEXPRESSION shift, and go to state 295 T_DOLLARVAR shift, and go to state 268 '(' shift, and go to state 296 '\n' shift, and go to state 297 '"' shift, and go to state 298 ''' shift, and go to state 299 '[' shift, and go to state 300 $default reduce using rule 38 (attribute_init_option) dollarvar go to state 301 Cexpression_elem go to state 302 state 364 unparseitem -> '"' @32 CexpressionDQ '"' @33 . viewnameoption (rule 176) ':' shift, and go to state 317 $default reduce using rule 188 (viewnameoption) viewnameoption go to state 369 state 365 Cexpression -> Cexpression . Cexpression_elem (rule 40) withCexpression -> Cexpression . (rule 66) T_CNEWLINES shift, and go to state 294 T_CEXPRESSION shift, and go to state 295 T_DOLLARVAR shift, and go to state 268 '(' shift, and go to state 296 '\n' shift, and go to state 297 '"' shift, and go to state 298 ''' shift, and go to state 299 '[' shift, and go to state 300 $default reduce using rule 66 (withCexpression) dollarvar go to state 301 Cexpression_elem go to state 302 state 366 withCexpressions -> withCexpression . (rule 67) $default reduce using rule 67 (withCexpressions) state 367 withCexpressions -> withCexpressions . ',' @8 withCexpression (rule 69) Ctext_elem -> T_WITH @19 '(' @20 withCexpressions . @21 ')' '{' withcases '}' (rule 98) ',' shift, and go to state 370 $default reduce using rule 97 (@21) @21 go to state 371 state 368 foreach_continuation -> '(' patternchain ';' . @22 idCexpressions ')' MainCbodyinC @23 foreach_end_continuation (rule 101) $default reduce using rule 99 (@22) @22 go to state 372 state 369 unparseitem -> '"' @32 CexpressionDQ '"' @33 viewnameoption . (rule 176) $default reduce using rule 176 (unparseitem) state 370 withCexpressions -> withCexpressions ',' . @8 withCexpression (rule 69) $default reduce using rule 68 (@8) @8 go to state 373 state 371 Ctext_elem -> T_WITH @19 '(' @20 withCexpressions @21 . ')' '{' withcases '}' (rule 98) ')' shift, and go to state 374 state 372 foreach_continuation -> '(' patternchain ';' @22 . idCexpressions ')' MainCbodyinC @23 foreach_end_continuation (rule 101) T_ID shift, and go to state 2 id go to state 375 idCexpressions go to state 376 idCexpression go to state 377 state 373 withCexpressions -> withCexpressions ',' @8 . withCexpression (rule 69) $default reduce using rule 39 (Cexpression) Cexpression go to state 365 withCexpression go to state 378 state 374 Ctext_elem -> T_WITH @19 '(' @20 withCexpressions @21 ')' . '{' withcases '}' (rule 98) '{' shift, and go to state 379 state 375 idCexpression -> id . @6 Cexpression @7 (rule 65) $default reduce using rule 63 (@6) @6 go to state 380 state 376 idCexpressions -> idCexpressions . ',' idCexpression (rule 62) foreach_continuation -> '(' patternchain ';' @22 idCexpressions . ')' MainCbodyinC @23 foreach_end_continuation (rule 101) ')' shift, and go to state 381 ',' shift, and go to state 382 state 377 idCexpressions -> idCexpression . (rule 61) $default reduce using rule 61 (idCexpressions) state 378 withCexpressions -> withCexpressions ',' @8 withCexpression . (rule 69) $default reduce using rule 69 (withCexpressions) state 379 Ctext_elem -> T_WITH @19 '(' @20 withCexpressions @21 ')' '{' . withcases '}' (rule 98) $default reduce using rule 129 (@28) patternchains go to state 203 patternchain go to state 204 patternchainitem_lineinfo go to state 205 @28 go to state 206 withcases go to state 383 withcase go to state 208 state 380 idCexpression -> id @6 . Cexpression @7 (rule 65) $default reduce using rule 39 (Cexpression) Cexpression go to state 384 state 381 foreach_continuation -> '(' patternchain ';' @22 idCexpressions ')' . MainCbodyinC @23 foreach_end_continuation (rule 101) '{' shift, and go to state 385 MainCbodyinC go to state 386 state 382 idCexpressions -> idCexpressions ',' . idCexpression (rule 62) T_ID shift, and go to state 2 id go to state 375 idCexpression go to state 387 state 383 Ctext_elem -> T_WITH @19 '(' @20 withCexpressions @21 ')' '{' withcases . '}' (rule 98) withcases -> withcases . withcase (rule 163) '}' shift, and go to state 388 $default reduce using rule 129 (@28) patternchains go to state 203 patternchain go to state 204 patternchainitem_lineinfo go to state 205 @28 go to state 206 withcase go to state 248 state 384 Cexpression -> Cexpression . Cexpression_elem (rule 40) idCexpression -> id @6 Cexpression . @7 (rule 65) T_CNEWLINES shift, and go to state 294 T_CEXPRESSION shift, and go to state 295 T_DOLLARVAR shift, and go to state 268 '(' shift, and go to state 296 '\n' shift, and go to state 297 '"' shift, and go to state 298 ''' shift, and go to state 299 '[' shift, and go to state 300 $default reduce using rule 64 (@7) dollarvar go to state 301 Cexpression_elem go to state 302 @7 go to state 389 state 385 MainCbodyinC -> '{' . @11 MainCBodycontinuation @12 '}' (rule 75) $default reduce using rule 73 (@11) @11 go to state 390 state 386 foreach_continuation -> '(' patternchain ';' @22 idCexpressions ')' MainCbodyinC . @23 foreach_end_continuation (rule 101) $default reduce using rule 100 (@23) @23 go to state 391 state 387 idCexpressions -> idCexpressions ',' idCexpression . (rule 62) $default reduce using rule 62 (idCexpressions) state 388 Ctext_elem -> T_WITH @19 '(' @20 withCexpressions @21 ')' '{' withcases '}' . (rule 98) $default reduce using rule 98 (Ctext_elem) state 389 idCexpression -> id @6 Cexpression @7 . (rule 65) $default reduce using rule 65 (idCexpression) state 390 MainCbodyinC -> '{' @11 . MainCBodycontinuation @12 '}' (rule 75) T_ID reduce using rule 129 (@28) T_DEFAULT reduce using rule 129 (@28) '(' reduce using rule 129 (@28) '$' reduce using rule 129 (@28) '*' reduce using rule 129 (@28) $default reduce using rule 81 (Ctext) MainCBodycontinuation go to state 392 Ctext go to state 202 patternchains go to state 203 patternchain go to state 204 patternchainitem_lineinfo go to state 205 @28 go to state 206 withcases go to state 207 withcase go to state 208 state 391 foreach_continuation -> '(' patternchain ';' @22 idCexpressions ')' MainCbodyinC @23 . foreach_end_continuation (rule 101) T_FOREACH_AFTER shift, and go to state 393 $default reduce using rule 102 (foreach_end_continuation) foreach_end_continuation go to state 394 state 392 MainCbodyinC -> '{' @11 MainCBodycontinuation . @12 '}' (rule 75) $default reduce using rule 74 (@12) @12 go to state 395 state 393 foreach_end_continuation -> T_FOREACH_AFTER . @24 '(' patternchain @25 ')' MainCbodyinC (rule 105) $default reduce using rule 103 (@24) @24 go to state 396 state 394 foreach_continuation -> '(' patternchain ';' @22 idCexpressions ')' MainCbodyinC @23 foreach_end_continuation . (rule 101) $default reduce using rule 101 (foreach_continuation) state 395 MainCbodyinC -> '{' @11 MainCBodycontinuation @12 . '}' (rule 75) '}' shift, and go to state 397 state 396 foreach_end_continuation -> T_FOREACH_AFTER @24 . '(' patternchain @25 ')' MainCbodyinC (rule 105) '(' shift, and go to state 398 state 397 MainCbodyinC -> '{' @11 MainCBodycontinuation @12 '}' . (rule 75) $default reduce using rule 75 (MainCbodyinC) state 398 foreach_end_continuation -> T_FOREACH_AFTER @24 '(' . patternchain @25 ')' MainCbodyinC (rule 105) $default reduce using rule 129 (@28) patternchain go to state 399 patternchainitem_lineinfo go to state 205 @28 go to state 206 state 399 foreach_end_continuation -> T_FOREACH_AFTER @24 '(' patternchain . @25 ')' MainCbodyinC (rule 105) patternchain -> patternchain . '&' patternchainitem_lineinfo (rule 128) '&' shift, and go to state 243 $default reduce using rule 104 (@25) @25 go to state 400 state 400 foreach_end_continuation -> T_FOREACH_AFTER @24 '(' patternchain @25 . ')' MainCbodyinC (rule 105) ')' shift, and go to state 401 state 401 foreach_end_continuation -> T_FOREACH_AFTER @24 '(' patternchain @25 ')' . MainCbodyinC (rule 105) '{' shift, and go to state 385 MainCbodyinC go to state 402 state 402 foreach_end_continuation -> T_FOREACH_AFTER @24 '(' patternchain @25 ')' MainCbodyinC . (rule 105) $default reduce using rule 105 (foreach_end_continuation) state 403 $ go to state 404 state 404 $ go to state 405 state 405 $default accept