2 /* A Bison parser, made by GNU Bison 2.4.1. */
4 /* Skeleton implementation for Bison's Yacc-like parsers in C
6 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
7 Free Software Foundation, Inc.
9 This program is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation, either version 3 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with this program. If not, see <http://www.gnu.org/licenses/>. */
22 /* As a special exception, you may create a larger work that contains
23 part or all of the Bison parser skeleton and distribute that work
24 under terms of your choice, so long as that work isn't itself a
25 parser generator using the skeleton or a modified version thereof
26 as a parser skeleton. Alternatively, if you modify or redistribute
27 the parser skeleton itself, you may (at your option) remove this
28 special exception, which will cause the skeleton and the resulting
29 Bison output files to be licensed under the GNU General Public
30 License without this special exception.
32 This special exception was added by the Free Software Foundation in
33 version 2.2 of Bison. */
35 /* C LALR(1) parser skeleton written by Richard Stallman, by
36 simplifying the original so-called "semantic" parser. */
38 /* All symbols defined below should begin with yy or YY, to avoid
39 infringing on user name space. This should be done even for local
40 variables, as they might otherwise be expanded by user macros.
41 There are some unavoidable exceptions within include files to
42 define necessary library symbols; they are noted "INFRINGES ON
43 USER NAME SPACE" below. */
45 /* Identify Bison output. */
49 #define YYBISON_VERSION "2.4.1"
52 #define YYSKELETON_NAME "yacc.c"
63 /* Using locations. */
64 #define YYLSP_NEEDED 0
68 /* Copy the first part of user declarations. */
70 /* Line 189 of yacc.c */
76 This file must be translated to C and modified to build everywhere.
80 yacc -b vtkParse vtkParse.y
82 Modify vtkParse.tab.c:
83 - convert TABs to spaces (eight per tab)
84 - remove spaces from ends of lines, s/ *$//g
85 - remove the "goto yyerrlab1;" that appears right before yyerrlab1:
86 - remove the #defined constants that appear right after the anonymous_enums
91 The purpose of this parser is to read C++ header files in order to
92 generate data structures that describe the C++ interface of a library,
93 one header file at a time. As such, it is not a complete C++ parser.
94 It only parses what is relevant to the interface and skips the rest.
96 While the parser reads method definitions, type definitions, and
97 template definitions it generates a "signature" which is a string
98 that matches (apart from whitespace) the text that was parsed.
100 While parsing types, the parser creates an unsigned int that describes
101 the type as well as creating other data structures for arrays, function
102 pointers, etc. The parser also creates a typeId string, which is either
103 a simple id that gives the class name or type name, or is "function" for
104 function pointer types, or "method" for method pointer types.
110 This parser was designed empirically and incrementally. It has been
111 refactored to make it more similar to the ANSI C++ 1996 BNF grammar,
112 but there are still many very significant differences.
114 The most significant difference between this parser and a "standard"
115 parser is that it only parses declarations in detail. All other
116 statements and expressions are parsed as arbitrary sequences of symbols,
117 without any syntactic analysis.
119 The "unqualified_id" does not directly include "operator_function_id" or
120 "conversion_function_id" (e.g. ids like "operator=" or "operator int*").
121 Instead, these two id types are used to allow operator functions to be
122 handled by their own rules, rather than by the generic function rules.
123 These ids can only be used in function declarations and using declarations.
125 Types are handled quite differently from the ANSI BNF. These differences
126 represent a prolonged (and ultimately successful) attempt to empirically
127 create a yacc parser without any shift/reduce conflicts. The rules for
128 types are organized according to the way that types are usually defined
129 in working code, rather than strictly according to C++ grammar.
131 The declaration specifiers "friend" and "typedef" can only appear at the
132 beginning of a declaration sequence. There are also restrictions on
133 where class and enum specifiers can be used: you can declare a new struct
134 within a variable declaration, but not within a parameter declaration.
136 The lexer returns each of "(scope::*", "(*", "(a::b::*", etc. as single
137 tokens. The ANSI BNF, in contrast, would consider these to be a "("
138 followed by a "ptr_operator". The lexer concatenates these tokens in
139 order to eliminate shift/reduce conflicts in the parser. However, this
140 means that this parser will only recognize "scope::*" as valid if it is
141 preceded by "(", e.g. as part of a member function pointer specification.
143 An odd bit of C++ ambiguity is that y(x); can be interpreted variously
144 as declaration of variable "x" of type "y", as a function call if "y"
145 is the name of a function, or as a constructor if "y" is the name of
146 a class. This parser always interprets this pattern as a constructor
147 declaration, because function calls are ignored by the parser, and
148 variable declarations of the form y(x); are exceedingly rare compared
149 to the more usual form y x; without parentheses.
155 #define yyerror(a) fprintf(stderr,"%s\n",a)
158 /* Make sure yacc-generated code knows we have included stdlib.h. */
162 #define YYINCLUDED_STDLIB_H
164 /* Borland and MSVC do not define __STDC__ properly. */
165 #if !defined(__STDC__)
166 # if (defined(_MSC_VER) && _MSC_VER >= 1200) || defined(__BORLANDC__)
171 /* Disable warnings in generated code. */
172 #if defined(_MSC_VER)
173 # pragma warning (disable: 4127) /* conditional expression is constant */
174 # pragma warning (disable: 4244) /* conversion to smaller integer type */
176 #if defined(__BORLANDC__)
177 # pragma warn -8004 /* assigned a value that is never used */
178 # pragma warn -8008 /* conditional is always true */
179 # pragma warn -8066 /* unreachable code */
182 /* Map from the type anonymous_enumeration in vtkType.h to the
183 VTK wrapping type system number for the type. */
185 #include "vtkParse.h"
186 #include "vtkParsePreprocess.h"
187 #include "vtkParseData.h"
190 static unsigned int vtkParseTypeMap[] =
192 VTK_PARSE_VOID, /* VTK_VOID 0 */
194 VTK_PARSE_CHAR, /* VTK_CHAR 2 */
195 VTK_PARSE_UNSIGNED_CHAR, /* VTK_UNSIGNED_CHAR 3 */
196 VTK_PARSE_SHORT, /* VTK_SHORT 4 */
197 VTK_PARSE_UNSIGNED_SHORT, /* VTK_UNSIGNED_SHORT 5 */
198 VTK_PARSE_INT, /* VTK_INT 6 */
199 VTK_PARSE_UNSIGNED_INT, /* VTK_UNSIGNED_INT 7 */
200 VTK_PARSE_LONG, /* VTK_LONG 8 */
201 VTK_PARSE_UNSIGNED_LONG, /* VTK_UNSIGNED_LONG 9 */
202 VTK_PARSE_FLOAT, /* VTK_FLOAT 10 */
203 VTK_PARSE_DOUBLE, /* VTK_DOUBLE 11 */
204 VTK_PARSE_ID_TYPE, /* VTK_ID_TYPE 12 */
205 VTK_PARSE_STRING, /* VTK_STRING 13 */
206 0, /* VTK_OPAQUE 14 */
207 VTK_PARSE_SIGNED_CHAR, /* VTK_SIGNED_CHAR 15 */
208 VTK_PARSE_LONG_LONG, /* VTK_LONG_LONG 16 */
209 VTK_PARSE_UNSIGNED_LONG_LONG, /* VTK_UNSIGNED_LONG_LONG 17 */
210 VTK_PARSE___INT64, /* VTK___INT64 18 */
211 VTK_PARSE_UNSIGNED___INT64, /* VTK_UNSIGNED___INT64 19 */
212 0, /* VTK_VARIANT 20 */
213 0, /* VTK_OBJECT 21 */
214 VTK_PARSE_UNICODE_STRING /* VTK_UNICODE_STRING 22 */
217 /* Define some constants to simplify references to the table lookup in
218 the primitive_type production rule code. */
219 #define VTK_PARSE_INT8 vtkParseTypeMap[VTK_TYPE_INT8]
220 #define VTK_PARSE_UINT8 vtkParseTypeMap[VTK_TYPE_UINT8]
221 #define VTK_PARSE_INT16 vtkParseTypeMap[VTK_TYPE_INT16]
222 #define VTK_PARSE_UINT16 vtkParseTypeMap[VTK_TYPE_UINT16]
223 #define VTK_PARSE_INT32 vtkParseTypeMap[VTK_TYPE_INT32]
224 #define VTK_PARSE_UINT32 vtkParseTypeMap[VTK_TYPE_UINT32]
225 #define VTK_PARSE_INT64 vtkParseTypeMap[VTK_TYPE_INT64]
226 #define VTK_PARSE_UINT64 vtkParseTypeMap[VTK_TYPE_UINT64]
227 #define VTK_PARSE_FLOAT32 vtkParseTypeMap[VTK_TYPE_FLOAT32]
228 #define VTK_PARSE_FLOAT64 vtkParseTypeMap[VTK_TYPE_FLOAT64]
230 #define vtkParseDebug(s1, s2) \
231 if ( parseDebug ) { fprintf(stderr, " %s %s\n", s1, s2); }
236 /* global variables */
237 FileInfo *data = NULL;
240 /* the "preprocessor" */
241 PreprocessInfo *preprocessor = NULL;
243 /* include dirs specified on the command line */
244 int NumberOfIncludeDirectories= 0;
245 const char **IncludeDirectories;
247 /* macros specified on the command line */
248 int NumberOfDefinitions = 0;
249 const char **Definitions;
251 /* options that can be set by the programs that use the parser */
255 /* various state variables */
256 NamespaceInfo *currentNamespace = NULL;
257 ClassInfo *currentClass = NULL;
258 FunctionInfo *currentFunction = NULL;
259 TemplateInfo *currentTemplate = NULL;
260 const char *currentEnumName = NULL;
261 const char *currentEnumValue = NULL;
262 parse_access_t access_level = VTK_ACCESS_PUBLIC;
264 /* functions from vtkParse.l */
265 void print_parser_error(const char *text, const char *cp, size_t n);
267 /* helper functions */
268 const char *type_class(unsigned int type, const char *classname);
269 void start_class(const char *classname, int is_struct_or_union);
270 void reject_class(const char *classname, int is_struct_or_union);
272 void add_base_class(ClassInfo *cls, const char *name, int access_lev,
274 void output_friend_function(void);
275 void output_function(void);
276 void reject_function(void);
277 void set_return(FunctionInfo *func, unsigned int type,
278 const char *typeclass, int count);
279 void add_parameter(FunctionInfo *func, unsigned int type,
280 const char *classname, int count);
281 void add_template_parameter(unsigned int datatype,
282 unsigned int extra, const char *funcSig);
283 void add_using(const char *name, int is_namespace);
284 void start_enum(const char *enumname);
285 void add_enum(const char *name, const char *value);
287 unsigned int guess_constant_type(const char *value);
288 void add_constant(const char *name, const char *value,
289 unsigned int type, const char *typeclass, int global);
290 const char *add_const_scope(const char *name);
291 void prepend_scope(char *cp, const char *arg);
292 unsigned int guess_id_type(const char *cp);
293 unsigned int add_indirection(unsigned int tval, unsigned int ptr);
294 unsigned int add_indirection_to_array(unsigned int ptr);
295 void handle_complex_type(ValueInfo *val, unsigned int datatype,
296 unsigned int extra, const char *funcSig);
297 void handle_function_type(ValueInfo *param, const char *name,
298 const char *funcSig);
299 void add_legacy_parameter(FunctionInfo *func, ValueInfo *param);
301 void outputSetVectorMacro(const char *var, unsigned int paramType,
302 const char *typeText, int n);
303 void outputGetVectorMacro(const char *var, unsigned int paramType,
304 const char *typeText, int n);
306 /*----------------------------------------------------------------
307 * String utility methods
309 * Strings are centrally allocated and are const, and they are not
310 * freed until the program exits. If they need to be freed before
311 * then, vtkParse_FreeStringCache() can be called.
314 /* duplicate the first n bytes of a string and terminate */
315 static const char *vtkstrndup(const char *in, size_t n)
317 return vtkParse_CacheString(data->Strings, in, n);
320 /* duplicate a string */
321 static const char *vtkstrdup(const char *in)
325 in = vtkParse_CacheString(data->Strings, in, strlen(in));
331 /* helper function for concatenating strings */
332 static const char *vtkstrncat(size_t n, const char **str)
339 for (i = 0; i < n; i++)
344 j[i] = strlen(str[i]);
348 cp = vtkParse_NewString(data->Strings, m);
350 for (i = 0; i < n; i++)
354 strncpy(&cp[m], str[i], j[i]);
363 /* concatenate strings */
364 static const char *vtkstrcat(const char *str1, const char *str2)
370 return vtkstrncat(2, cp);
373 static const char *vtkstrcat3(const char *str1, const char *str2,
381 return vtkstrncat(3, cp);
384 static const char *vtkstrcat4(const char *str1, const char *str2,
385 const char *str3, const char *str4)
393 return vtkstrncat(4, cp);
396 static const char *vtkstrcat5(const char *str1, const char *str2,
397 const char *str3, const char *str4,
407 return vtkstrncat(5, cp);
410 static const char *vtkstrcat7(const char *str1, const char *str2,
411 const char *str3, const char *str4,
412 const char *str5, const char *str6,
424 return vtkstrncat(7, cp);
427 static size_t vtkidlen(const char *text)
432 if ((c >= 'a' && c <= 'z') ||
433 (c >= 'A' && c <= 'Z') ||
440 while ((c >= 'a' && c <= 'z') ||
441 (c >= 'A' && c <= 'Z') ||
442 (c >= '0' && c <= '9') ||
449 /*----------------------------------------------------------------
453 /* "private" variables */
454 char *commentText = NULL;
455 size_t commentLength = 0;
456 size_t commentAllocatedLength = 0;
457 int commentState = 0;
459 const char *getComment()
461 if (commentState != 0)
473 commentText[commentLength] = '\0';
478 void addCommentLine(const char *line, size_t n)
480 if (commentState <= 0)
486 if (commentText == NULL)
488 commentAllocatedLength = n+80;
489 commentText = (char *)malloc(commentAllocatedLength);
491 commentText[0] = '\0';
493 else if (commentLength + n + 2 > commentAllocatedLength)
495 commentAllocatedLength = commentAllocatedLength + commentLength + n + 2;
496 commentText = (char *)realloc(commentText, commentAllocatedLength);
501 memcpy(&commentText[commentLength], line, n);
504 commentText[commentLength++] = '\n';
505 commentText[commentLength] = '\0';
510 switch (commentState)
513 /* Make comment persist until a new comment starts */
517 data->Description = vtkstrdup(getComment());
521 data->SeeAlso = vtkstrdup(getComment());
525 data->Caveats = vtkstrdup(getComment());
531 void closeOrClearComment()
533 if (commentState < 0)
543 void setCommentState(int state)
556 commentState = state;
560 /*----------------------------------------------------------------
564 /* "private" variables */
565 const char *macroName = NULL;
569 const char *getMacro()
573 macroUsed = macroEnded;
580 /*----------------------------------------------------------------
583 * operates on: currentNamespace
586 /* "private" variables */
587 NamespaceInfo *namespaceStack[10];
588 int namespaceDepth = 0;
590 /* enter a namespace */
591 void pushNamespace(const char *name)
594 NamespaceInfo *oldNamespace = currentNamespace;
596 for (i = 0; i < oldNamespace->NumberOfNamespaces; i++)
598 /* see if the namespace already exists */
599 if (strcmp(name, oldNamespace->Namespaces[i]->Name) == 0)
601 currentNamespace = oldNamespace->Namespaces[i];
605 /* create a new namespace */
606 if (i == oldNamespace->NumberOfNamespaces)
608 currentNamespace = (NamespaceInfo *)malloc(sizeof(NamespaceInfo));
609 vtkParse_InitNamespace(currentNamespace);
610 currentNamespace->Name = name;
611 vtkParse_AddNamespaceToNamespace(oldNamespace, currentNamespace);
614 namespaceStack[namespaceDepth++] = oldNamespace;
617 /* leave the namespace */
620 currentNamespace = namespaceStack[--namespaceDepth];
624 /*----------------------------------------------------------------
627 * operates on: currentClass, access_level
630 /* "private" variables */
631 ClassInfo *classStack[10];
632 parse_access_t classAccessStack[10];
635 /* start an internal class definition */
638 classAccessStack[classDepth] = access_level;
639 classStack[classDepth++] = currentClass;
642 /* leave the internal class */
645 currentClass = classStack[--classDepth];
646 access_level = classAccessStack[classDepth];
650 /*----------------------------------------------------------------
653 * operates on: currentTemplate
656 /* "private" variables */
657 TemplateInfo *templateStack[10];
658 int templateDepth = 0;
660 /* begin a template */
663 currentTemplate = (TemplateInfo *)malloc(sizeof(TemplateInfo));
664 vtkParse_InitTemplate(currentTemplate);
667 /* clear a template, if set */
672 free(currentTemplate);
674 currentTemplate = NULL;
677 /* push the template onto the stack, and start a new one */
680 templateStack[templateDepth++] = currentTemplate;
684 /* pop a template off the stack */
687 currentTemplate = templateStack[--templateDepth];
690 /*----------------------------------------------------------------
691 * Function signatures
693 * operates on: currentFunction
696 /* "private" variables */
699 size_t sigLength = 0;
700 size_t sigAllocatedLength = 0;
701 int sigMarkDepth = 0;
702 char *signature = NULL;
704 /* start a new signature */
709 sigAllocatedLength = 0;
715 /* get the signature */
721 /* get the signature length */
722 size_t getSigLength()
727 /* reset the sig to the specified length */
728 void resetSig(size_t n)
736 /* reallocate Signature if n chars cannot be appended */
737 void checkSigSize(size_t n)
741 if (sigAllocatedLength == 0)
744 sigAllocatedLength = 80 + n;
745 signature = vtkParse_NewString(data->Strings, sigAllocatedLength);
748 else if (sigLength + n > sigAllocatedLength)
750 sigAllocatedLength += sigLength + n;
752 signature = vtkParse_NewString(data->Strings, sigAllocatedLength);
753 strncpy(signature, ccp, sigLength);
754 signature[sigLength] = '\0';
758 /* close the signature, i.e. allow no more additions to it */
764 /* re-open the signature */
770 /* insert text at the beginning of the signature */
771 void preSig(const char *arg)
775 size_t n = strlen(arg);
779 memmove(&signature[n], signature, sigLength);
780 strncpy(signature, arg, n);
783 signature[sigLength] = '\0';
787 /* append text to the end of the signature */
788 void postSig(const char *arg)
792 size_t n = strlen(arg);
796 strncpy(&signature[sigLength], arg, n);
799 signature[sigLength] = '\0';
803 /* set a mark in the signature for later operations */
806 sigMark[sigMarkDepth] = 0;
809 sigMark[sigMarkDepth] = sigLength;
814 /* get the contents of the sig from the mark, and clear the mark */
815 const char *copySig()
817 const char *cp = NULL;
818 if (sigMarkDepth > 0)
824 cp = &signature[sigMark[sigMarkDepth]];
826 return vtkstrdup(cp);
829 /* swap the signature text using the mark as the radix */
832 if (sigMarkDepth > 0)
836 if (signature && sigMark[sigMarkDepth] > 0)
843 m = sigMark[sigMarkDepth];
845 for (i = 0; i < nn; i++)
847 c = cp[i]; cp[i] = cp[m-i-1]; cp[m-i-1] = c;
850 for (i = 0; i < nn; i++)
852 c = cp[i+m]; cp[i+m] = cp[n-i-1]; cp[n-i-1] = c;
855 for (i = 0; i < nn; i++)
857 c = cp[i]; cp[i] = cp[n-i-1]; cp[n-i-1] = c;
862 /* chop the last space from the signature */
867 size_t n = sigLength;
868 if (n > 0 && signature[n-1] == ' ')
870 signature[n-1] = '\0';
876 /*----------------------------------------------------------------
877 * Subroutines for building a type
880 /* "private" variables */
881 unsigned int storedType;
882 unsigned int typeStack[10];
885 /* save the type on the stack */
888 typeStack[typeDepth++] = storedType;
891 /* pop the type stack */
894 storedType = typeStack[--typeDepth];
897 /* clear the storage type */
904 void setTypeBase(unsigned int base)
906 storedType &= ~(unsigned int)(VTK_PARSE_BASE_TYPE);
910 /* set a type modifier bit */
911 void setTypeMod(unsigned int mod)
916 /* modify the indirection (pointers, refs) in the storage type */
917 void setTypePtr(unsigned int ind)
919 storedType &= ~(unsigned int)(VTK_PARSE_INDIRECT);
920 ind &= VTK_PARSE_INDIRECT;
924 /* retrieve the storage type */
925 unsigned int getType()
930 /* combine two primitive type parts, e.g. "long int" */
931 unsigned int buildTypeBase(unsigned int a, unsigned int b)
933 unsigned int base = (a & VTK_PARSE_BASE_TYPE);
934 unsigned int basemod = (b & VTK_PARSE_BASE_TYPE);
941 case VTK_PARSE_UNSIGNED_INT:
942 base = (basemod | VTK_PARSE_UNSIGNED);
946 if (base == VTK_PARSE_CHAR)
948 base = VTK_PARSE_SIGNED_CHAR;
952 if (basemod == VTK_PARSE_INT)
954 base = VTK_PARSE_SIGNED_CHAR;
956 else if (basemod == VTK_PARSE_UNSIGNED_INT)
958 base = VTK_PARSE_UNSIGNED_CHAR;
961 case VTK_PARSE_SHORT:
962 if (basemod == VTK_PARSE_UNSIGNED_INT)
964 base = VTK_PARSE_UNSIGNED_SHORT;
968 if (basemod == VTK_PARSE_UNSIGNED_INT)
970 base = VTK_PARSE_UNSIGNED_LONG;
972 else if (basemod == VTK_PARSE_LONG)
974 base = VTK_PARSE_LONG_LONG;
976 else if (basemod == VTK_PARSE_DOUBLE)
978 base = VTK_PARSE_LONG_DOUBLE;
981 case VTK_PARSE_UNSIGNED_LONG:
982 if (basemod == VTK_PARSE_LONG)
984 base = VTK_PARSE_UNSIGNED_LONG_LONG;
987 case VTK_PARSE_LONG_LONG:
988 if (basemod == VTK_PARSE_UNSIGNED_INT)
990 base = VTK_PARSE_UNSIGNED_LONG_LONG;
993 case VTK_PARSE___INT64:
994 if (basemod == VTK_PARSE_UNSIGNED_INT)
996 base = VTK_PARSE_UNSIGNED___INT64;
999 case VTK_PARSE_DOUBLE:
1000 if (basemod == VTK_PARSE_LONG)
1002 base = VTK_PARSE_LONG_DOUBLE;
1007 return ((a & ~(unsigned int)(VTK_PARSE_BASE_TYPE)) | base);
1011 /*----------------------------------------------------------------
1015 /* "private" variables */
1016 int numberOfDimensions = 0;
1017 const char **arrayDimensions = NULL;
1019 /* clear the array counter */
1020 void clearArray(void)
1022 numberOfDimensions = 0;
1023 arrayDimensions = NULL;
1026 /* add another dimension */
1027 void pushArraySize(const char *size)
1029 vtkParse_AddStringToArray(&arrayDimensions, &numberOfDimensions,
1033 /* add another dimension to the front */
1034 void pushArrayFront(const char *size)
1038 vtkParse_AddStringToArray(&arrayDimensions, &numberOfDimensions, 0);
1040 for (i = numberOfDimensions-1; i > 0; i--)
1042 arrayDimensions[i] = arrayDimensions[i-1];
1045 arrayDimensions[0] = size;
1048 /* get the number of dimensions */
1051 return numberOfDimensions;
1054 /* get the whole array */
1055 const char **getArray()
1057 if (numberOfDimensions > 0)
1059 return arrayDimensions;
1064 /*----------------------------------------------------------------
1065 * Variables and Parameters
1068 /* "private" variables */
1069 const char *currentVarName = 0;
1070 const char *currentVarValue = 0;
1071 const char *currentId = 0;
1073 /* clear the var Id */
1074 void clearVarName(void)
1076 currentVarName = NULL;
1079 /* set the var Id */
1080 void setVarName(const char *text)
1082 currentVarName = text;
1085 /* return the var id */
1086 const char *getVarName()
1088 return currentVarName;
1091 /* variable value -------------- */
1093 /* clear the var value */
1094 void clearVarValue(void)
1096 currentVarValue = NULL;
1099 /* set the var value */
1100 void setVarValue(const char *text)
1102 currentVarValue = text;
1105 /* return the var value */
1106 const char *getVarValue()
1108 return currentVarValue;
1111 /* variable type -------------- */
1113 /* clear the current Id */
1114 void clearTypeId(void)
1119 /* set the current Id, it is sticky until cleared */
1120 void setTypeId(const char *text)
1122 if (currentId == NULL)
1128 /* set the signature and type together */
1129 void typeSig(const char *text)
1140 /* return the current Id */
1141 const char *getTypeId()
1146 /*----------------------------------------------------------------
1147 * Specifically for function pointers, the scope (i.e. class) that
1148 * the function is a method of.
1151 const char *pointerScopeStack[10];
1152 int pointerScopeDepth = 0;
1154 /* save the scope for scoped method pointers */
1155 void scopeSig(const char *scope)
1157 if (scope && scope[0] != '\0')
1165 pointerScopeStack[pointerScopeDepth++] = vtkstrdup(scope);
1168 /* get the scope back */
1169 const char *getScope()
1171 return pointerScopeStack[--pointerScopeDepth];
1174 /*----------------------------------------------------------------
1177 * operates on: currentFunction
1180 /* "private" variables */
1181 FunctionInfo *functionStack[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
1182 const char *functionVarNameStack[10];
1183 const char *functionTypeIdStack[10];
1184 int functionDepth = 0;
1188 functionStack[functionDepth] = currentFunction;
1189 currentFunction = (FunctionInfo *)malloc(sizeof(FunctionInfo));
1190 vtkParse_InitFunction(currentFunction);
1191 if (!functionStack[functionDepth])
1195 functionVarNameStack[functionDepth] = getVarName();
1196 functionTypeIdStack[functionDepth] = getTypeId();
1202 functionStack[functionDepth] = 0;
1207 FunctionInfo *newFunction = currentFunction;
1210 currentFunction = functionStack[functionDepth];
1212 if (functionVarNameStack[functionDepth])
1214 setVarName(functionVarNameStack[functionDepth]);
1217 if (functionTypeIdStack[functionDepth])
1219 setTypeId(functionTypeIdStack[functionDepth]);
1223 functionStack[functionDepth+1] = newFunction;
1226 FunctionInfo *getFunction()
1228 return functionStack[functionDepth+1];
1231 /*----------------------------------------------------------------
1235 /* prepend a scope:: to a name */
1236 void prepend_scope(char *cp, const char *arg)
1245 ((cp[i-1] >= 'a' && cp[i-1] <= 'z') ||
1246 (cp[i-1] >= 'A' && cp[i-1] <= 'Z') ||
1247 (cp[i-1] >= '0' && cp[i-1] <= '9') ||
1248 cp[i-1] == '_' || cp[i-1] == ':' ||
1273 for (j = m; j > i; j--)
1275 cp[j+n+1] = cp[j-1];
1277 for (j = 0; j < n; j++)
1281 cp[n+i] = ':'; cp[n+i+1] = ':';
1285 /* expand a type by including pointers from another */
1286 unsigned int add_indirection(unsigned int type1, unsigned int type2)
1288 unsigned int ptr1 = (type1 & VTK_PARSE_POINTER_MASK);
1289 unsigned int ptr2 = (type2 & VTK_PARSE_POINTER_MASK);
1290 unsigned int reverse = 0;
1291 unsigned int result;
1293 /* one of type1 or type2 will only have VTK_PARSE_INDIRECT, but
1294 * we don't know which one. */
1295 result = ((type1 & ~VTK_PARSE_POINTER_MASK) |
1296 (type2 & ~VTK_PARSE_POINTER_MASK));
1300 reverse = ((reverse << 2) | (ptr2 & VTK_PARSE_POINTER_LOWMASK));
1301 ptr2 = ((ptr2 >> 2) & VTK_PARSE_POINTER_MASK);
1306 ptr1 = ((ptr1 << 2) | (reverse & VTK_PARSE_POINTER_LOWMASK));
1307 reverse = ((reverse >> 2) & VTK_PARSE_POINTER_MASK);
1309 /* make sure we don't exceed the VTK_PARSE_POINTER bitfield */
1310 if ((ptr1 & VTK_PARSE_POINTER_MASK) != ptr1)
1312 ptr1 = VTK_PARSE_BAD_INDIRECT;
1317 return (ptr1 | result);
1320 /* There is only one array, so add any parenthetical indirection to it */
1321 unsigned int add_indirection_to_array(unsigned int type)
1323 unsigned int ptrs = (type & VTK_PARSE_POINTER_MASK);
1324 unsigned int result = (type & ~VTK_PARSE_POINTER_MASK);
1325 unsigned int reverse = 0;
1327 if ((type & VTK_PARSE_INDIRECT) == VTK_PARSE_BAD_INDIRECT)
1329 return (result | VTK_PARSE_BAD_INDIRECT);
1334 reverse = ((reverse << 2) | (ptrs & VTK_PARSE_POINTER_LOWMASK));
1335 ptrs = ((ptrs >> 2) & VTK_PARSE_POINTER_MASK);
1338 /* I know the reversal makes no difference, but it is still
1339 * nice to add the pointers in the correct order, just in
1340 * case const pointers are thrown into the mix. */
1344 reverse = ((reverse >> 2) & VTK_PARSE_POINTER_MASK);
1352 /* Line 189 of yacc.c */
1353 #line 1354 "vtkParse.tab.c"
1355 /* Enabling traces. */
1360 /* Enabling verbose error messages. */
1361 #ifdef YYERROR_VERBOSE
1362 # undef YYERROR_VERBOSE
1363 # define YYERROR_VERBOSE 1
1365 # define YYERROR_VERBOSE 0
1368 /* Enabling the token table. */
1369 #ifndef YYTOKEN_TABLE
1370 # define YYTOKEN_TABLE 0
1376 # define YYTOKENTYPE
1377 /* Put the tokens into the symbol table, so that GDB and other debuggers
1384 UnicodeString = 262,
1389 STRING_LITERAL = 267,
1393 FLOAT_LITERAL = 271,
1424 REINTERPRET_CAST = 302,
1429 OP_DOT_POINTER = 307,
1430 OP_ARROW_POINTER = 308,
1438 OP_REMAINDER_EQ = 316,
1477 SetStringMacro = 355,
1478 GetStringMacro = 356,
1479 SetClampMacro = 357,
1480 SetObjectMacro = 358,
1481 GetObjectMacro = 359,
1483 SetVector2Macro = 361,
1484 SetVector3Macro = 362,
1485 SetVector4Macro = 363,
1486 SetVector6Macro = 364,
1487 GetVector2Macro = 365,
1488 GetVector3Macro = 366,
1489 GetVector4Macro = 367,
1490 GetVector6Macro = 368,
1491 SetVectorMacro = 369,
1492 GetVectorMacro = 370,
1493 ViewportCoordinateMacro = 371,
1494 WorldCoordinateMacro = 372,
1496 VTK_BYTE_SWAP_DECL = 374
1503 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
1504 typedef union YYSTYPE
1507 /* Line 222 of yacc.c */
1508 #line 1302 "vtkParse.y"
1511 unsigned int integer;
1515 /* Line 222 of yacc.c */
1516 #line 1635 "vtkParse.tab.c"
1518 # define YYSTYPE_IS_TRIVIAL 1
1519 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
1520 # define YYSTYPE_IS_DECLARED 1
1524 /* Copy the second part of user declarations. */
1527 /* Line 264 of yacc.c */
1528 #line 1647 "vtkParse.tab.c"
1535 typedef YYTYPE_UINT8 yytype_uint8;
1537 typedef unsigned char yytype_uint8;
1541 typedef YYTYPE_INT8 yytype_int8;
1542 #elif (defined __STDC__ || defined __C99__FUNC__ \
1543 || defined __cplusplus || defined _MSC_VER)
1544 typedef signed char yytype_int8;
1546 typedef short int yytype_int8;
1549 #ifdef YYTYPE_UINT16
1550 typedef YYTYPE_UINT16 yytype_uint16;
1552 typedef unsigned short int yytype_uint16;
1556 typedef YYTYPE_INT16 yytype_int16;
1558 typedef short int yytype_int16;
1562 # ifdef __SIZE_TYPE__
1563 # define YYSIZE_T __SIZE_TYPE__
1564 # elif defined size_t
1565 # define YYSIZE_T size_t
1566 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
1567 || defined __cplusplus || defined _MSC_VER)
1568 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1569 # define YYSIZE_T size_t
1571 # define YYSIZE_T unsigned int
1575 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
1580 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
1581 # define YY_(msgid) dgettext ("bison-runtime", msgid)
1585 # define YY_(msgid) msgid
1589 /* Suppress unused-variable warnings by "using" E. */
1590 #if ! defined lint || defined __GNUC__
1591 # define YYUSE(e) ((void) (e))
1593 # define YYUSE(e) /* empty */
1596 /* Identity function, used to suppress warnings about constant conditions. */
1598 # define YYID(n) (n)
1600 #if (defined __STDC__ || defined __C99__FUNC__ \
1601 || defined __cplusplus || defined _MSC_VER)
1614 #if ! defined yyoverflow || YYERROR_VERBOSE
1616 /* The parser invokes alloca or malloc; define the necessary symbols. */
1618 # ifdef YYSTACK_USE_ALLOCA
1619 # if YYSTACK_USE_ALLOCA
1621 # define YYSTACK_ALLOC __builtin_alloca
1622 # elif defined __BUILTIN_VA_ARG_INCR
1623 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
1625 # define YYSTACK_ALLOC __alloca
1626 # elif defined _MSC_VER
1627 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
1628 # define alloca _alloca
1630 # define YYSTACK_ALLOC alloca
1631 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1632 || defined __cplusplus || defined _MSC_VER)
1633 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1635 # define _STDLIB_H 1
1642 # ifdef YYSTACK_ALLOC
1643 /* Pacify GCC's `empty if-body' warning. */
1644 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
1645 # ifndef YYSTACK_ALLOC_MAXIMUM
1646 /* The OS might guarantee only one guard page at the bottom of the stack,
1647 and a page size can be as small as 4096 bytes. So we cannot safely
1648 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
1649 to allow for a few compiler-allocated temporary stack slots. */
1650 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
1653 # define YYSTACK_ALLOC YYMALLOC
1654 # define YYSTACK_FREE YYFREE
1655 # ifndef YYSTACK_ALLOC_MAXIMUM
1656 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1658 # if (defined __cplusplus && ! defined _STDLIB_H \
1659 && ! ((defined YYMALLOC || defined malloc) \
1660 && (defined YYFREE || defined free)))
1661 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1663 # define _STDLIB_H 1
1667 # define YYMALLOC malloc
1668 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1669 || defined __cplusplus || defined _MSC_VER)
1670 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
1674 # define YYFREE free
1675 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1676 || defined __cplusplus || defined _MSC_VER)
1677 void free (void *); /* INFRINGES ON USER NAME SPACE */
1681 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
1684 #if (! defined yyoverflow \
1685 && (! defined __cplusplus \
1686 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1688 /* A type that is properly aligned for any stack member. */
1691 yytype_int16 yyss_alloc;
1695 /* The size of the maximum gap between one aligned stack and the next. */
1696 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
1698 /* The size of an array large to enough to hold all stacks, each with
1700 # define YYSTACK_BYTES(N) \
1701 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
1702 + YYSTACK_GAP_MAXIMUM)
1704 /* Copy COUNT objects from FROM to TO. The source and destination do
1707 # if defined __GNUC__ && 1 < __GNUC__
1708 # define YYCOPY(To, From, Count) \
1709 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1711 # define YYCOPY(To, From, Count) \
1715 for (yyi = 0; yyi < (Count); yyi++) \
1716 (To)[yyi] = (From)[yyi]; \
1722 /* Relocate STACK from its old location to the new one. The
1723 local variables YYSIZE and YYSTACKSIZE give the old and new number of
1724 elements in the stack, and YYPTR gives the new location of the
1725 stack. Advance YYPTR to a properly aligned location for the next
1727 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1730 YYSIZE_T yynewbytes; \
1731 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1732 Stack = &yyptr->Stack_alloc; \
1733 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1734 yyptr += yynewbytes / sizeof (*yyptr); \
1740 /* YYFINAL -- State number of the termination state. */
1742 /* YYLAST -- Last index in YYTABLE. */
1745 /* YYNTOKENS -- Number of terminals. */
1746 #define YYNTOKENS 143
1747 /* YYNNTS -- Number of nonterminals. */
1749 /* YYNRULES -- Number of rules. */
1750 #define YYNRULES 603
1751 /* YYNRULES -- Number of states. */
1752 #define YYNSTATES 968
1754 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
1755 #define YYUNDEFTOK 2
1756 #define YYMAXUTOK 374
1758 #define YYTRANSLATE(YYX) \
1759 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1761 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
1762 static const yytype_uint8 yytranslate[] =
1764 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1765 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1766 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1767 2, 2, 2, 139, 2, 2, 2, 135, 133, 2,
1768 126, 127, 134, 138, 125, 137, 142, 136, 2, 2,
1769 2, 2, 2, 2, 2, 2, 2, 2, 124, 120,
1770 128, 123, 129, 2, 2, 2, 2, 2, 2, 2,
1771 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1772 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1773 2, 130, 2, 131, 141, 2, 2, 2, 2, 2,
1774 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1775 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1776 2, 2, 2, 121, 140, 122, 132, 2, 2, 2,
1777 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1778 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1779 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1780 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1781 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1782 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1783 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1784 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1785 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1786 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1787 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1788 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1789 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1790 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1791 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1792 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1793 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1794 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1795 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1796 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1797 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1798 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1799 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1800 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1801 115, 116, 117, 118, 119
1805 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
1807 static const yytype_uint16 yyprhs[] =
1809 0, 0, 3, 5, 6, 7, 11, 13, 15, 17,
1810 19, 21, 23, 25, 27, 29, 31, 33, 35, 37,
1811 40, 42, 45, 48, 51, 54, 60, 65, 66, 73,
1812 79, 81, 84, 88, 93, 98, 104, 105, 111, 112,
1813 117, 118, 122, 124, 126, 128, 129, 130, 134, 138,
1814 140, 142, 144, 146, 148, 150, 152, 154, 156, 158,
1815 160, 162, 164, 167, 170, 172, 175, 178, 181, 185,
1816 188, 192, 193, 195, 198, 200, 204, 206, 210, 214,
1817 215, 217, 218, 220, 222, 224, 226, 231, 237, 238,
1818 244, 247, 249, 250, 252, 254, 257, 261, 263, 264,
1819 269, 276, 280, 285, 288, 292, 298, 302, 304, 307,
1820 313, 319, 326, 332, 339, 342, 343, 347, 350, 352,
1821 354, 355, 356, 364, 366, 370, 372, 375, 378, 381,
1822 385, 389, 394, 398, 399, 405, 407, 408, 413, 414,
1823 415, 421, 422, 423, 429, 430, 431, 432, 440, 442,
1824 444, 445, 447, 448, 452, 454, 457, 460, 463, 466,
1825 469, 472, 476, 479, 483, 486, 490, 494, 497, 501,
1826 506, 509, 511, 513, 516, 518, 521, 524, 525, 526,
1827 534, 537, 538, 542, 543, 549, 552, 554, 557, 558,
1828 561, 562, 566, 568, 571, 575, 577, 578, 584, 586,
1829 588, 589, 590, 596, 597, 603, 604, 607, 609, 613,
1830 616, 617, 618, 621, 623, 624, 629, 633, 634, 635,
1831 641, 642, 644, 645, 649, 654, 657, 658, 661, 662,
1832 663, 668, 671, 672, 674, 677, 678, 684, 687, 688,
1833 694, 696, 698, 700, 702, 704, 705, 706, 707, 714,
1834 716, 717, 720, 723, 727, 729, 732, 734, 737, 738,
1835 740, 742, 746, 748, 750, 752, 753, 755, 756, 759,
1836 761, 764, 765, 770, 771, 772, 775, 777, 779, 781,
1837 783, 786, 789, 792, 795, 798, 802, 806, 807, 813,
1838 815, 817, 818, 824, 826, 828, 830, 832, 834, 836,
1839 838, 841, 844, 847, 850, 853, 856, 859, 861, 863,
1840 865, 867, 869, 871, 873, 875, 877, 879, 881, 883,
1841 885, 887, 889, 891, 893, 895, 897, 899, 900, 903,
1842 905, 907, 909, 911, 913, 916, 918, 920, 922, 924,
1843 926, 929, 931, 933, 935, 937, 939, 941, 943, 946,
1844 949, 950, 954, 955, 960, 962, 963, 967, 969, 971,
1845 974, 977, 980, 981, 985, 986, 991, 993, 995, 997,
1846 1000, 1003, 1006, 1008, 1010, 1012, 1014, 1016, 1018, 1020,
1847 1022, 1024, 1026, 1028, 1030, 1032, 1034, 1036, 1038, 1040,
1848 1042, 1044, 1046, 1048, 1050, 1052, 1054, 1056, 1058, 1060,
1849 1062, 1064, 1066, 1068, 1070, 1072, 1074, 1076, 1079, 1081,
1850 1083, 1084, 1088, 1090, 1093, 1094, 1102, 1103, 1104, 1105,
1851 1115, 1116, 1122, 1123, 1129, 1130, 1131, 1142, 1143, 1151,
1852 1152, 1153, 1154, 1164, 1171, 1172, 1180, 1181, 1189, 1190,
1853 1198, 1199, 1207, 1208, 1216, 1217, 1225, 1226, 1234, 1235,
1854 1243, 1244, 1254, 1255, 1265, 1270, 1275, 1283, 1284, 1286,
1855 1289, 1292, 1296, 1300, 1302, 1304, 1306, 1308, 1310, 1312,
1856 1314, 1316, 1318, 1320, 1322, 1324, 1326, 1328, 1330, 1332,
1857 1334, 1336, 1338, 1340, 1342, 1344, 1346, 1348, 1350, 1352,
1858 1354, 1356, 1358, 1360, 1362, 1364, 1366, 1368, 1370, 1372,
1859 1374, 1376, 1378, 1380, 1382, 1384, 1386, 1388, 1390, 1392,
1860 1394, 1396, 1398, 1400, 1402, 1404, 1406, 1408, 1410, 1412,
1861 1414, 1416, 1418, 1420, 1422, 1424, 1426, 1428, 1430, 1432,
1862 1434, 1436, 1438, 1440, 1443, 1445, 1447, 1449, 1451, 1453,
1863 1455, 1457, 1459, 1461, 1463, 1465, 1466, 1469, 1471, 1473,
1864 1475, 1477, 1479, 1481, 1483, 1485, 1486, 1489, 1490, 1493,
1865 1495, 1497, 1499, 1501, 1503, 1504, 1509, 1510, 1515, 1516,
1866 1521, 1522, 1527, 1528, 1533, 1534, 1539, 1540, 1543, 1544,
1867 1547, 1549, 1551, 1553, 1555, 1557, 1559, 1561, 1563, 1565,
1868 1567, 1569, 1571, 1573, 1575, 1577, 1579, 1581, 1583, 1587,
1869 1591, 1595, 1597, 1599
1872 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
1873 static const yytype_int16 yyrhs[] =
1875 144, 0, -1, 145, -1, -1, -1, 145, 146, 147,
1876 -1, 198, -1, 196, -1, 153, -1, 150, -1, 152,
1877 -1, 149, -1, 186, -1, 259, -1, 175, -1, 155,
1878 -1, 216, -1, 148, -1, 327, -1, 289, 120, -1,
1879 120, -1, 199, 155, -1, 199, 216, -1, 199, 183,
1880 -1, 199, 148, -1, 34, 12, 121, 145, 122, -1,
1881 40, 121, 375, 122, -1, -1, 40, 299, 151, 121,
1882 145, 122, -1, 40, 299, 123, 291, 120, -1, 154,
1883 -1, 199, 154, -1, 161, 289, 120, -1, 302, 161,
1884 289, 120, -1, 156, 300, 261, 120, -1, 302, 156,
1885 300, 261, 120, -1, -1, 158, 157, 121, 162, 122,
1886 -1, -1, 161, 289, 159, 168, -1, -1, 161, 160,
1887 168, -1, 20, -1, 19, -1, 21, -1, -1, -1,
1888 162, 163, 165, -1, 162, 164, 124, -1, 23, -1,
1889 24, -1, 25, -1, 196, -1, 153, -1, 167, -1,
1890 186, -1, 259, -1, 175, -1, 155, -1, 220, -1,
1891 166, -1, 327, -1, 119, 381, -1, 289, 120, -1,
1892 120, -1, 199, 155, -1, 199, 220, -1, 33, 184,
1893 -1, 33, 199, 184, -1, 33, 153, -1, 33, 221,
1894 237, -1, -1, 169, -1, 124, 170, -1, 171, -1,
1895 170, 125, 171, -1, 289, -1, 30, 173, 289, -1,
1896 174, 172, 289, -1, -1, 30, -1, -1, 174, -1,
1897 23, -1, 24, -1, 25, -1, 176, 300, 261, 120,
1898 -1, 302, 176, 300, 261, 120, -1, -1, 178, 121,
1899 177, 179, 122, -1, 22, 289, -1, 22, -1, -1,
1900 180, -1, 181, -1, 180, 125, -1, 180, 125, 181,
1901 -1, 298, -1, -1, 298, 123, 182, 355, -1, 308,
1902 292, 298, 123, 376, 120, -1, 161, 289, 185, -1,
1903 302, 161, 289, 185, -1, 161, 185, -1, 302, 161,
1904 185, -1, 121, 375, 122, 376, 120, -1, 124, 376,
1905 120, -1, 187, -1, 302, 187, -1, 39, 308, 195,
1906 189, 120, -1, 39, 156, 300, 188, 120, -1, 39,
1907 302, 156, 300, 188, 120, -1, 39, 176, 300, 188,
1908 120, -1, 39, 302, 176, 300, 188, 120, -1, 190,
1909 189, -1, -1, 189, 125, 190, -1, 265, 195, -1,
1910 268, -1, 192, -1, -1, -1, 279, 126, 193, 249,
1911 127, 194, 275, -1, 191, -1, 41, 197, 120, -1,
1912 289, -1, 38, 289, -1, 292, 231, -1, 292, 226,
1913 -1, 295, 292, 231, -1, 295, 292, 226, -1, 41,
1914 40, 289, 120, -1, 36, 128, 129, -1, -1, 36,
1915 128, 200, 201, 129, -1, 203, -1, -1, 201, 125,
1916 202, 203, -1, -1, -1, 204, 314, 266, 205, 212,
1917 -1, -1, -1, 206, 211, 266, 207, 212, -1, -1,
1918 -1, -1, 208, 199, 20, 209, 266, 210, 212, -1,
1919 20, -1, 38, -1, -1, 213, -1, -1, 123, 214,
1920 215, -1, 363, -1, 215, 363, -1, 217, 237, -1,
1921 222, 237, -1, 218, 237, -1, 219, 237, -1, 308,
1922 233, -1, 308, 292, 233, -1, 292, 241, -1, 302,
1923 292, 241, -1, 292, 223, -1, 302, 292, 223, -1,
1924 308, 292, 227, -1, 221, 237, -1, 292, 231, 120,
1925 -1, 302, 292, 231, 120, -1, 308, 233, -1, 222,
1926 -1, 241, -1, 302, 241, -1, 223, -1, 302, 223,
1927 -1, 308, 227, -1, -1, -1, 226, 126, 224, 249,
1928 127, 225, 234, -1, 232, 308, -1, -1, 229, 228,
1929 234, -1, -1, 231, 126, 230, 249, 127, -1, 232,
1930 351, -1, 35, -1, 238, 234, -1, -1, 234, 235,
1931 -1, -1, 37, 236, 369, -1, 26, -1, 123, 18,
1932 -1, 121, 375, 122, -1, 120, -1, -1, 240, 126,
1933 239, 249, 127, -1, 298, -1, 296, -1, -1, -1,
1934 244, 242, 246, 243, 234, -1, -1, 240, 126, 245,
1935 249, 127, -1, -1, 124, 247, -1, 248, -1, 247,
1936 125, 248, -1, 289, 381, -1, -1, -1, 250, 251,
1937 -1, 253, -1, -1, 251, 125, 252, 253, -1, 251,
1938 125, 71, -1, -1, -1, 254, 308, 266, 255, 256,
1939 -1, -1, 257, -1, -1, 123, 258, 355, -1, 308,
1940 260, 262, 120, -1, 268, 256, -1, -1, 264, 262,
1941 -1, -1, -1, 262, 125, 263, 264, -1, 265, 260,
1942 -1, -1, 322, -1, 278, 281, -1, -1, 270, 276,
1943 127, 267, 272, -1, 279, 281, -1, -1, 271, 277,
1944 127, 269, 272, -1, 126, -1, 10, -1, 11, -1,
1945 10, -1, 11, -1, -1, -1, -1, 126, 273, 249,
1946 127, 274, 275, -1, 282, -1, -1, 275, 28, -1,
1947 275, 26, -1, 275, 37, 381, -1, 266, -1, 322,
1948 266, -1, 268, -1, 322, 268, -1, -1, 279, -1,
1949 298, -1, 298, 124, 280, -1, 15, -1, 13, -1,
1950 14, -1, -1, 282, -1, -1, 283, 284, -1, 285,
1951 -1, 284, 285, -1, -1, 130, 286, 287, 131, -1,
1952 -1, -1, 288, 355, -1, 290, -1, 291, -1, 298,
1953 -1, 296, -1, 292, 290, -1, 295, 290, -1, 295,
1954 291, -1, 294, 295, -1, 296, 295, -1, 292, 294,
1955 295, -1, 292, 296, 295, -1, -1, 292, 36, 293,
1956 296, 295, -1, 299, -1, 72, -1, -1, 299, 128,
1957 297, 361, 129, -1, 4, -1, 5, -1, 3, -1,
1958 9, -1, 8, -1, 6, -1, 7, -1, 132, 4,
1959 -1, 132, 5, -1, 132, 3, -1, 132, 9, -1,
1960 132, 8, -1, 132, 6, -1, 132, 7, -1, 86,
1961 -1, 85, -1, 88, -1, 89, -1, 90, -1, 91,
1962 -1, 92, -1, 93, -1, 94, -1, 95, -1, 96,
1963 -1, 97, -1, 87, -1, 3, -1, 5, -1, 4,
1964 -1, 9, -1, 8, -1, 6, -1, 7, -1, -1,
1965 300, 301, -1, 303, -1, 321, -1, 39, -1, 33,
1966 -1, 303, -1, 302, 303, -1, 304, -1, 305, -1,
1967 306, -1, 28, -1, 34, -1, 34, 12, -1, 29,
1968 -1, 32, -1, 30, -1, 31, -1, 26, -1, 27,
1969 -1, 306, -1, 307, 306, -1, 309, 265, -1, -1,
1970 312, 310, 300, -1, -1, 302, 312, 311, 300, -1,
1971 319, -1, -1, 38, 313, 289, -1, 296, -1, 291,
1972 -1, 161, 289, -1, 22, 289, -1, 315, 265, -1,
1973 -1, 318, 316, 300, -1, -1, 302, 312, 317, 300,
1974 -1, 319, -1, 296, -1, 291, -1, 19, 289, -1,
1975 21, 289, -1, 22, 289, -1, 321, -1, 320, -1,
1976 6, -1, 7, -1, 8, -1, 9, -1, 3, -1,
1977 4, -1, 5, -1, 85, -1, 86, -1, 88, -1,
1978 89, -1, 90, -1, 91, -1, 92, -1, 93, -1,
1979 94, -1, 95, -1, 96, -1, 97, -1, 87, -1,
1980 74, -1, 75, -1, 76, -1, 77, -1, 82, -1,
1981 78, -1, 79, -1, 80, -1, 81, -1, 83, -1,
1982 84, -1, 323, -1, 326, -1, 326, 323, -1, 133,
1983 -1, 134, -1, -1, 134, 325, 307, -1, 324, -1,
1984 326, 324, -1, -1, 98, 126, 298, 125, 328, 308,
1985 127, -1, -1, -1, -1, 99, 126, 329, 298, 125,
1986 330, 308, 331, 127, -1, -1, 100, 126, 332, 298,
1987 127, -1, -1, 101, 126, 333, 298, 127, -1, -1,
1988 -1, 102, 126, 298, 125, 334, 308, 335, 125, 376,
1989 127, -1, -1, 103, 126, 298, 125, 336, 308, 127,
1990 -1, -1, -1, -1, 104, 126, 337, 298, 125, 338,
1991 308, 339, 127, -1, 105, 126, 298, 125, 308, 127,
1992 -1, -1, 106, 126, 298, 125, 340, 308, 127, -1,
1993 -1, 110, 126, 298, 125, 341, 308, 127, -1, -1,
1994 107, 126, 298, 125, 342, 308, 127, -1, -1, 111,
1995 126, 298, 125, 343, 308, 127, -1, -1, 108, 126,
1996 298, 125, 344, 308, 127, -1, -1, 112, 126, 298,
1997 125, 345, 308, 127, -1, -1, 109, 126, 298, 125,
1998 346, 308, 127, -1, -1, 113, 126, 298, 125, 347,
1999 308, 127, -1, -1, 114, 126, 298, 125, 348, 308,
2000 125, 13, 127, -1, -1, 115, 126, 298, 125, 349,
2001 308, 125, 13, 127, -1, 116, 126, 298, 127, -1,
2002 117, 126, 298, 127, -1, 118, 126, 298, 125, 298,
2003 350, 127, -1, -1, 125, -1, 126, 127, -1, 130,
2004 131, -1, 42, 130, 131, -1, 43, 130, 131, -1,
2005 128, -1, 129, -1, 125, -1, 123, -1, 352, -1,
2006 135, -1, 134, -1, 136, -1, 137, -1, 138, -1,
2007 139, -1, 132, -1, 133, -1, 140, -1, 141, -1,
2008 42, -1, 43, -1, 48, -1, 49, -1, 50, -1,
2009 51, -1, 52, -1, 53, -1, 54, -1, 57, -1,
2010 58, -1, 59, -1, 60, -1, 61, -1, 55, -1,
2011 56, -1, 62, -1, 63, -1, 64, -1, 65, -1,
2012 66, -1, 67, -1, 68, -1, 69, -1, 70, -1,
2013 39, -1, 38, -1, 20, -1, 19, -1, 21, -1,
2014 36, -1, 23, -1, 25, -1, 24, -1, 26, -1,
2015 29, -1, 32, -1, 30, -1, 34, -1, 40, -1,
2016 35, -1, 22, -1, 37, -1, 46, -1, 45, -1,
2017 44, -1, 47, -1, 15, -1, 13, -1, 14, -1,
2018 16, -1, 17, -1, 12, -1, 18, -1, 358, -1,
2019 355, 358, -1, 367, -1, 369, -1, 373, -1, 352,
2020 -1, 124, -1, 142, -1, 72, -1, 353, -1, 354,
2021 -1, 321, -1, 320, -1, -1, 357, 359, -1, 356,
2022 -1, 128, -1, 129, -1, 358, -1, 123, -1, 125,
2023 -1, 359, -1, 120, -1, -1, 361, 364, -1, -1,
2024 362, 360, -1, 365, -1, 356, -1, 363, -1, 123,
2025 -1, 125, -1, -1, 128, 366, 361, 129, -1, -1,
2026 130, 368, 357, 131, -1, -1, 126, 370, 357, 127,
2027 -1, -1, 10, 371, 357, 127, -1, -1, 11, 372,
2028 357, 127, -1, -1, 121, 374, 362, 122, -1, -1,
2029 375, 377, -1, -1, 376, 378, -1, 378, -1, 120,
2030 -1, 379, -1, 381, -1, 380, -1, 72, -1, 71,
2031 -1, 352, -1, 124, -1, 142, -1, 128, -1, 129,
2032 -1, 123, -1, 125, -1, 353, -1, 354, -1, 319,
2033 -1, 73, -1, 121, 375, 122, -1, 130, 375, 131,
2034 -1, 382, 375, 127, -1, 126, -1, 10, -1, 11,
2038 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
2039 static const yytype_uint16 yyrline[] =
2041 0, 1460, 1460, 1462, 1464, 1463, 1474, 1475, 1476, 1477,
2042 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487,
2043 1488, 1491, 1492, 1493, 1494, 1501, 1508, 1509, 1509, 1513,
2044 1520, 1521, 1524, 1525, 1528, 1529, 1532, 1532, 1546, 1546,
2045 1548, 1548, 1552, 1553, 1554, 1556, 1558, 1557, 1566, 1570,
2046 1571, 1572, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582,
2047 1583, 1584, 1585, 1586, 1587, 1590, 1591, 1594, 1595, 1596,
2048 1597, 1599, 1600, 1603, 1606, 1607, 1610, 1612, 1614, 1618,
2049 1619, 1622, 1623, 1626, 1627, 1628, 1639, 1640, 1644, 1644,
2050 1657, 1658, 1660, 1661, 1664, 1665, 1666, 1669, 1670, 1670,
2051 1678, 1681, 1682, 1683, 1684, 1687, 1688, 1696, 1697, 1700,
2052 1701, 1703, 1705, 1707, 1711, 1713, 1714, 1717, 1720, 1721,
2053 1724, 1725, 1724, 1729, 1763, 1766, 1767, 1768, 1770, 1772,
2054 1774, 1778, 1785, 1788, 1787, 1805, 1807, 1806, 1811, 1813,
2055 1811, 1815, 1817, 1815, 1819, 1820, 1822, 1819, 1833, 1834,
2056 1836, 1837, 1840, 1840, 1850, 1851, 1859, 1860, 1861, 1862,
2057 1865, 1868, 1869, 1870, 1873, 1874, 1875, 1878, 1879, 1880,
2058 1883, 1884, 1885, 1886, 1889, 1890, 1891, 1895, 1899, 1894,
2059 1911, 1915, 1915, 1926, 1925, 1934, 1938, 1941, 1950, 1951,
2060 1954, 1954, 1955, 1956, 1964, 1965, 1969, 1968, 1976, 1977,
2061 1985, 1986, 1985, 2004, 2004, 2007, 2008, 2011, 2012, 2015,
2062 2021, 2022, 2022, 2025, 2026, 2026, 2028, 2032, 2034, 2032,
2063 2058, 2059, 2062, 2062, 2070, 2073, 2132, 2133, 2135, 2136,
2064 2136, 2139, 2142, 2143, 2147, 2148, 2148, 2167, 2168, 2168,
2065 2186, 2187, 2189, 2193, 2195, 2198, 2199, 2200, 2199, 2205,
2066 2207, 2208, 2209, 2210, 2213, 2214, 2218, 2219, 2223, 2224,
2067 2227, 2228, 2231, 2232, 2233, 2236, 2237, 2240, 2240, 2243,
2068 2244, 2247, 2247, 2250, 2251, 2251, 2258, 2259, 2262, 2263,
2069 2266, 2268, 2270, 2274, 2276, 2278, 2280, 2282, 2282, 2287,
2070 2290, 2293, 2293, 2308, 2309, 2310, 2311, 2312, 2313, 2314,
2071 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324,
2072 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334,
2073 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2354, 2355, 2358,
2074 2359, 2361, 2362, 2365, 2366, 2369, 2370, 2371, 2374, 2375,
2075 2376, 2377, 2380, 2381, 2382, 2385, 2386, 2389, 2390, 2399,
2076 2402, 2402, 2404, 2404, 2408, 2409, 2409, 2411, 2413, 2415,
2077 2417, 2421, 2424, 2424, 2426, 2426, 2430, 2431, 2433, 2435,
2078 2437, 2439, 2443, 2444, 2447, 2448, 2449, 2450, 2451, 2452,
2079 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462,
2080 2463, 2464, 2465, 2466, 2469, 2470, 2471, 2472, 2473, 2474,
2081 2475, 2476, 2477, 2478, 2479, 2499, 2500, 2501, 2504, 2507,
2082 2508, 2508, 2523, 2524, 2541, 2541, 2551, 2552, 2552, 2551,
2083 2561, 2561, 2571, 2571, 2580, 2580, 2580, 2613, 2612, 2623,
2084 2624, 2624, 2623, 2633, 2651, 2651, 2656, 2656, 2661, 2661,
2085 2666, 2666, 2671, 2671, 2676, 2676, 2681, 2681, 2686, 2686,
2086 2691, 2691, 2708, 2708, 2722, 2759, 2797, 2834, 2835, 2842,
2087 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2853, 2854,
2088 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864,
2089 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874,
2090 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884,
2091 2885, 2886, 2887, 2890, 2891, 2892, 2893, 2894, 2895, 2896,
2092 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906,
2093 2907, 2908, 2909, 2910, 2911, 2914, 2915, 2916, 2917, 2918,
2094 2919, 2920, 2927, 2928, 2931, 2932, 2933, 2934, 2965, 2965,
2095 2966, 2967, 2968, 2969, 2970, 2993, 2994, 2996, 2997, 2998,
2096 3000, 3001, 3002, 3004, 3005, 3007, 3008, 3010, 3011, 3014,
2097 3015, 3018, 3019, 3020, 3024, 3023, 3037, 3037, 3041, 3041,
2098 3043, 3043, 3045, 3045, 3049, 3049, 3054, 3055, 3057, 3058,
2099 3061, 3062, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3071,
2100 3071, 3071, 3071, 3071, 3072, 3072, 3073, 3074, 3077, 3080,
2101 3083, 3086, 3086, 3086
2105 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
2106 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
2107 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
2108 static const char *const yytname[] =
2110 "$end", "error", "$undefined", "ID", "VTK_ID", "QT_ID", "StdString",
2111 "UnicodeString", "OSTREAM", "ISTREAM", "LP", "LA", "STRING_LITERAL",
2112 "INT_LITERAL", "HEX_LITERAL", "OCT_LITERAL", "FLOAT_LITERAL",
2113 "CHAR_LITERAL", "ZERO", "STRUCT", "CLASS", "UNION", "ENUM", "PUBLIC",
2114 "PRIVATE", "PROTECTED", "CONST", "VOLATILE", "MUTABLE", "STATIC",
2115 "VIRTUAL", "EXPLICIT", "INLINE", "FRIEND", "EXTERN", "OPERATOR",
2116 "TEMPLATE", "THROW", "TYPENAME", "TYPEDEF", "NAMESPACE", "USING", "NEW",
2117 "DELETE", "STATIC_CAST", "DYNAMIC_CAST", "CONST_CAST",
2118 "REINTERPRET_CAST", "OP_LSHIFT_EQ", "OP_RSHIFT_EQ", "OP_LSHIFT",
2119 "OP_RSHIFT", "OP_DOT_POINTER", "OP_ARROW_POINTER", "OP_ARROW", "OP_INCR",
2120 "OP_DECR", "OP_PLUS_EQ", "OP_MINUS_EQ", "OP_TIMES_EQ", "OP_DIVIDE_EQ",
2121 "OP_REMAINDER_EQ", "OP_AND_EQ", "OP_OR_EQ", "OP_XOR_EQ", "OP_LOGIC_AND",
2122 "OP_LOGIC_OR", "OP_LOGIC_EQ", "OP_LOGIC_NEQ", "OP_LOGIC_LEQ",
2123 "OP_LOGIC_GEQ", "ELLIPSIS", "DOUBLE_COLON", "OTHER", "VOID", "BOOL",
2124 "FLOAT", "DOUBLE", "INT", "SHORT", "LONG", "INT64__", "CHAR", "SIGNED",
2125 "UNSIGNED", "SSIZE_T", "SIZE_T", "IdType", "TypeInt8", "TypeUInt8",
2126 "TypeInt16", "TypeUInt16", "TypeInt32", "TypeUInt32", "TypeInt64",
2127 "TypeUInt64", "TypeFloat32", "TypeFloat64", "SetMacro", "GetMacro",
2128 "SetStringMacro", "GetStringMacro", "SetClampMacro", "SetObjectMacro",
2129 "GetObjectMacro", "BooleanMacro", "SetVector2Macro", "SetVector3Macro",
2130 "SetVector4Macro", "SetVector6Macro", "GetVector2Macro",
2131 "GetVector3Macro", "GetVector4Macro", "GetVector6Macro",
2132 "SetVectorMacro", "GetVectorMacro", "ViewportCoordinateMacro",
2133 "WorldCoordinateMacro", "TypeMacro", "VTK_BYTE_SWAP_DECL", "';'", "'{'",
2134 "'}'", "'='", "':'", "','", "'('", "')'", "'<'", "'>'", "'['", "']'",
2135 "'~'", "'&'", "'*'", "'%'", "'/'", "'-'", "'+'", "'!'", "'|'", "'^'",
2136 "'.'", "$accept", "translation_unit", "opt_declaration_seq", "$@1",
2137 "declaration", "template_declaration", "linkage_specification",
2138 "namespace_definition", "$@2", "namespace_alias_definition",
2139 "forward_declaration", "simple_forward_declaration", "class_definition",
2140 "class_specifier", "$@3", "class_head", "$@4", "$@5", "class_key",
2141 "member_specification", "$@6", "member_access_specifier",
2142 "member_declaration", "template_member_declaration",
2143 "friend_declaration", "opt_base_clause", "base_clause",
2144 "base_specifier_list", "base_specifier", "opt_virtual",
2145 "opt_access_specifier", "access_specifier", "enum_definition",
2146 "enum_specifier", "$@7", "enum_head", "opt_enumerator_list",
2147 "enumerator_list", "enumerator_definition", "$@8",
2148 "nested_variable_initialization", "ignored_class", "ignored_class_body",
2149 "typedef_declaration", "basic_typedef_declaration",
2150 "typedef_declarator_list", "typedef_declarator_list_cont",
2151 "typedef_declarator", "typedef_direct_declarator",
2152 "function_direct_declarator", "$@9", "$@10", "typedef_declarator_id",
2153 "using_declaration", "using_id", "using_directive", "template_head",
2154 "$@11", "template_parameter_list", "$@12", "template_parameter", "$@13",
2155 "$@14", "$@15", "$@16", "$@17", "$@18", "$@19", "class_or_typename",
2156 "opt_template_parameter_initializer", "template_parameter_initializer",
2157 "$@20", "template_parameter_value", "function_definition",
2158 "function_declaration", "nested_method_declaration",
2159 "nested_operator_declaration", "method_definition", "method_declaration",
2160 "operator_declaration", "conversion_function", "$@21", "$@22",
2161 "conversion_function_id", "operator_function_nr", "$@23",
2162 "operator_function_sig", "$@24", "operator_function_id", "operator_sig",
2163 "function_nr", "function_trailer_clause", "function_trailer", "$@25",
2164 "function_body", "function_sig", "$@26", "function_name",
2165 "structor_declaration", "$@27", "$@28", "structor_sig", "$@29",
2166 "opt_ctor_initializer", "mem_initializer_list", "mem_initializer",
2167 "parameter_declaration_clause", "$@30", "parameter_list", "$@31",
2168 "parameter_declaration", "$@32", "$@33", "opt_initializer",
2169 "initializer", "$@34", "variable_declaration", "init_declarator_id",
2170 "opt_declarator_list", "declarator_list_cont", "$@35", "init_declarator",
2171 "opt_ptr_operator_seq", "direct_abstract_declarator", "$@36",
2172 "direct_declarator", "$@37", "p_or_lp_or_la", "lp_or_la",
2173 "opt_array_or_parameters", "$@38", "$@39", "function_qualifiers",
2174 "abstract_declarator", "declarator", "opt_declarator_id",
2175 "declarator_id", "bitfield_size", "opt_array_decorator_seq",
2176 "array_decorator_seq", "$@40", "array_decorator_seq_impl",
2177 "array_decorator", "$@41", "array_size_specifier", "$@42",
2178 "id_expression", "unqualified_id", "qualified_id",
2179 "nested_name_specifier", "$@43", "identifier_sig", "scope_operator_sig",
2180 "template_id", "$@44", "simple_id", "identifier",
2181 "opt_decl_specifier_seq", "decl_specifier2", "decl_specifier_seq",
2182 "decl_specifier", "storage_class_specifier", "function_specifier",
2183 "cv_qualifier", "cv_qualifier_seq", "store_type", "store_type_specifier",
2184 "$@45", "$@46", "type_specifier", "$@47", "tparam_type",
2185 "tparam_type_specifier2", "$@48", "$@49", "tparam_type_specifier",
2186 "simple_type_specifier", "type_name", "primitive_type",
2187 "ptr_operator_seq", "reference", "pointer", "$@50", "pointer_seq",
2188 "declaration_macro", "$@51", "$@52", "$@53", "$@54", "$@55", "$@56",
2189 "$@57", "$@58", "$@59", "$@60", "$@61", "$@62", "$@63", "$@64", "$@65",
2190 "$@66", "$@67", "$@68", "$@69", "$@70", "$@71", "$@72", "opt_comma",
2191 "operator_id", "operator_id_no_delim", "keyword", "literal",
2192 "constant_expression", "common_bracket_item", "any_bracket_contents",
2193 "bracket_pitem", "any_bracket_item", "braces_item",
2194 "angle_bracket_contents", "braces_contents", "angle_bracket_pitem",
2195 "angle_bracket_item", "angle_brackets_sig", "$@73", "brackets_sig",
2196 "$@74", "parentheses_sig", "$@75", "$@76", "$@77", "braces_sig", "$@78",
2197 "ignored_items", "ignored_expression", "ignored_item",
2198 "ignored_item_no_semi", "ignored_braces", "ignored_brackets",
2199 "ignored_parentheses", "ignored_left_parenthesis", 0
2204 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
2206 static const yytype_uint16 yytoknum[] =
2208 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2209 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2210 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2211 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2212 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2213 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2214 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
2215 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
2216 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
2217 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
2218 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
2219 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
2220 59, 123, 125, 61, 58, 44, 40, 41, 60, 62,
2221 91, 93, 126, 38, 42, 37, 47, 45, 43, 33,
2226 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2227 static const yytype_uint16 yyr1[] =
2229 0, 143, 144, 145, 146, 145, 147, 147, 147, 147,
2230 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
2231 147, 148, 148, 148, 148, 149, 150, 151, 150, 152,
2232 153, 153, 154, 154, 155, 155, 157, 156, 159, 158,
2233 160, 158, 161, 161, 161, 162, 163, 162, 162, 164,
2234 164, 164, 165, 165, 165, 165, 165, 165, 165, 165,
2235 165, 165, 165, 165, 165, 166, 166, 167, 167, 167,
2236 167, 168, 168, 169, 170, 170, 171, 171, 171, 172,
2237 172, 173, 173, 174, 174, 174, 175, 175, 177, 176,
2238 178, 178, 179, 179, 180, 180, 180, 181, 182, 181,
2239 183, 184, 184, 184, 184, 185, 185, 186, 186, 187,
2240 187, 187, 187, 187, 188, 189, 189, 190, 191, 191,
2241 193, 194, 192, 195, 196, 197, 197, 197, 197, 197,
2242 197, 198, 199, 200, 199, 201, 202, 201, 204, 205,
2243 203, 206, 207, 203, 208, 209, 210, 203, 211, 211,
2244 212, 212, 214, 213, 215, 215, 216, 216, 216, 216,
2245 217, 218, 218, 218, 219, 219, 219, 220, 220, 220,
2246 221, 221, 221, 221, 222, 222, 222, 224, 225, 223,
2247 226, 228, 227, 230, 229, 231, 232, 233, 234, 234,
2248 236, 235, 235, 235, 237, 237, 239, 238, 240, 240,
2249 242, 243, 241, 245, 244, 246, 246, 247, 247, 248,
2250 249, 250, 249, 251, 252, 251, 251, 254, 255, 253,
2251 256, 256, 258, 257, 259, 260, 261, 261, 262, 263,
2252 262, 264, 265, 265, 266, 267, 266, 268, 269, 268,
2253 270, 270, 270, 271, 271, 272, 273, 274, 272, 272,
2254 275, 275, 275, 275, 276, 276, 277, 277, 278, 278,
2255 279, 279, 280, 280, 280, 281, 281, 283, 282, 284,
2256 284, 286, 285, 287, 288, 287, 289, 289, 290, 290,
2257 291, 291, 291, 292, 292, 292, 292, 293, 292, 294,
2258 295, 297, 296, 298, 298, 298, 298, 298, 298, 298,
2259 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
2260 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
2261 299, 299, 299, 299, 299, 299, 299, 300, 300, 301,
2262 301, 301, 301, 302, 302, 303, 303, 303, 304, 304,
2263 304, 304, 305, 305, 305, 306, 306, 307, 307, 308,
2264 310, 309, 311, 309, 312, 313, 312, 312, 312, 312,
2265 312, 314, 316, 315, 317, 315, 318, 318, 318, 318,
2266 318, 318, 319, 319, 320, 320, 320, 320, 320, 320,
2267 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
2268 320, 320, 320, 320, 321, 321, 321, 321, 321, 321,
2269 321, 321, 321, 321, 321, 322, 322, 322, 323, 324,
2270 325, 324, 326, 326, 328, 327, 329, 330, 331, 327,
2271 332, 327, 333, 327, 334, 335, 327, 336, 327, 337,
2272 338, 339, 327, 327, 340, 327, 341, 327, 342, 327,
2273 343, 327, 344, 327, 345, 327, 346, 327, 347, 327,
2274 348, 327, 349, 327, 327, 327, 327, 350, 350, 351,
2275 351, 351, 351, 351, 351, 351, 351, 351, 352, 352,
2276 352, 352, 352, 352, 352, 352, 352, 352, 352, 352,
2277 352, 352, 352, 352, 352, 352, 352, 352, 352, 352,
2278 352, 352, 352, 352, 352, 352, 352, 352, 352, 352,
2279 352, 352, 352, 353, 353, 353, 353, 353, 353, 353,
2280 353, 353, 353, 353, 353, 353, 353, 353, 353, 353,
2281 353, 353, 353, 353, 353, 354, 354, 354, 354, 354,
2282 354, 354, 355, 355, 356, 356, 356, 356, 356, 356,
2283 356, 356, 356, 356, 356, 357, 357, 358, 358, 358,
2284 359, 359, 359, 360, 360, 361, 361, 362, 362, 363,
2285 363, 364, 364, 364, 366, 365, 368, 367, 370, 369,
2286 371, 369, 372, 369, 374, 373, 375, 375, 376, 376,
2287 377, 377, 378, 378, 378, 378, 378, 378, 378, 378,
2288 378, 378, 378, 378, 378, 378, 378, 378, 379, 380,
2292 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
2293 static const yytype_uint8 yyr2[] =
2295 0, 2, 1, 0, 0, 3, 1, 1, 1, 1,
2296 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
2297 1, 2, 2, 2, 2, 5, 4, 0, 6, 5,
2298 1, 2, 3, 4, 4, 5, 0, 5, 0, 4,
2299 0, 3, 1, 1, 1, 0, 0, 3, 3, 1,
2300 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2301 1, 1, 2, 2, 1, 2, 2, 2, 3, 2,
2302 3, 0, 1, 2, 1, 3, 1, 3, 3, 0,
2303 1, 0, 1, 1, 1, 1, 4, 5, 0, 5,
2304 2, 1, 0, 1, 1, 2, 3, 1, 0, 4,
2305 6, 3, 4, 2, 3, 5, 3, 1, 2, 5,
2306 5, 6, 5, 6, 2, 0, 3, 2, 1, 1,
2307 0, 0, 7, 1, 3, 1, 2, 2, 2, 3,
2308 3, 4, 3, 0, 5, 1, 0, 4, 0, 0,
2309 5, 0, 0, 5, 0, 0, 0, 7, 1, 1,
2310 0, 1, 0, 3, 1, 2, 2, 2, 2, 2,
2311 2, 3, 2, 3, 2, 3, 3, 2, 3, 4,
2312 2, 1, 1, 2, 1, 2, 2, 0, 0, 7,
2313 2, 0, 3, 0, 5, 2, 1, 2, 0, 2,
2314 0, 3, 1, 2, 3, 1, 0, 5, 1, 1,
2315 0, 0, 5, 0, 5, 0, 2, 1, 3, 2,
2316 0, 0, 2, 1, 0, 4, 3, 0, 0, 5,
2317 0, 1, 0, 3, 4, 2, 0, 2, 0, 0,
2318 4, 2, 0, 1, 2, 0, 5, 2, 0, 5,
2319 1, 1, 1, 1, 1, 0, 0, 0, 6, 1,
2320 0, 2, 2, 3, 1, 2, 1, 2, 0, 1,
2321 1, 3, 1, 1, 1, 0, 1, 0, 2, 1,
2322 2, 0, 4, 0, 0, 2, 1, 1, 1, 1,
2323 2, 2, 2, 2, 2, 3, 3, 0, 5, 1,
2324 1, 0, 5, 1, 1, 1, 1, 1, 1, 1,
2325 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
2326 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2327 1, 1, 1, 1, 1, 1, 1, 0, 2, 1,
2328 1, 1, 1, 1, 2, 1, 1, 1, 1, 1,
2329 2, 1, 1, 1, 1, 1, 1, 1, 2, 2,
2330 0, 3, 0, 4, 1, 0, 3, 1, 1, 2,
2331 2, 2, 0, 3, 0, 4, 1, 1, 1, 2,
2332 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
2333 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2334 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2335 1, 1, 1, 1, 1, 1, 1, 2, 1, 1,
2336 0, 3, 1, 2, 0, 7, 0, 0, 0, 9,
2337 0, 5, 0, 5, 0, 0, 10, 0, 7, 0,
2338 0, 0, 9, 6, 0, 7, 0, 7, 0, 7,
2339 0, 7, 0, 7, 0, 7, 0, 7, 0, 7,
2340 0, 9, 0, 9, 4, 4, 7, 0, 1, 2,
2341 2, 3, 3, 1, 1, 1, 1, 1, 1, 1,
2342 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2343 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2344 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2345 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2346 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2347 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2348 1, 1, 1, 2, 1, 1, 1, 1, 1, 1,
2349 1, 1, 1, 1, 1, 0, 2, 1, 1, 1,
2350 1, 1, 1, 1, 1, 0, 2, 0, 2, 1,
2351 1, 1, 1, 1, 0, 4, 0, 4, 0, 4,
2352 0, 4, 0, 4, 0, 4, 0, 2, 0, 2,
2353 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2354 1, 1, 1, 1, 1, 1, 1, 1, 3, 3,
2358 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
2359 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
2360 means the default is an error. */
2361 static const yytype_uint16 yydefact[] =
2363 3, 0, 4, 1, 0, 378, 379, 380, 374, 375,
2364 376, 377, 43, 42, 44, 91, 345, 346, 338, 341,
2365 343, 344, 342, 339, 186, 0, 355, 0, 0, 0,
2366 290, 394, 395, 396, 397, 399, 400, 401, 402, 398,
2367 403, 404, 381, 382, 393, 383, 384, 385, 386, 387,
2368 388, 389, 390, 391, 392, 0, 0, 0, 0, 0,
2369 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2370 0, 0, 0, 0, 0, 0, 20, 0, 5, 17,
2371 11, 9, 10, 8, 30, 15, 327, 36, 40, 14,
2372 327, 0, 12, 107, 7, 6, 0, 16, 0, 0,
2373 0, 0, 174, 0, 0, 13, 0, 276, 358, 0,
2374 0, 0, 357, 278, 289, 0, 333, 335, 336, 337,
2375 0, 232, 350, 354, 373, 372, 18, 295, 293, 294,
2376 298, 299, 297, 296, 308, 307, 319, 309, 310, 311,
2377 312, 313, 314, 315, 316, 317, 318, 360, 277, 0,
2378 279, 340, 133, 0, 378, 379, 380, 374, 375, 376,
2379 377, 339, 381, 382, 393, 383, 384, 385, 386, 387,
2380 388, 389, 390, 391, 392, 327, 40, 327, 358, 357,
2381 0, 0, 320, 322, 321, 325, 326, 324, 323, 576,
2382 27, 0, 0, 0, 125, 0, 0, 0, 416, 420,
2383 422, 0, 0, 429, 0, 0, 0, 0, 0, 0,
2384 0, 0, 0, 0, 0, 0, 0, 0, 302, 300,
2385 301, 305, 306, 304, 303, 232, 0, 71, 359, 232,
2386 88, 0, 24, 31, 21, 23, 0, 22, 0, 0,
2387 195, 576, 156, 158, 159, 157, 177, 0, 0, 180,
2388 19, 287, 164, 0, 162, 200, 280, 0, 279, 278,
2389 283, 281, 282, 284, 291, 327, 40, 327, 108, 175,
2390 0, 334, 352, 243, 244, 176, 181, 0, 0, 160,
2391 188, 0, 228, 220, 0, 265, 0, 199, 260, 408,
2392 409, 349, 233, 405, 412, 406, 327, 279, 3, 132,
2393 138, 356, 340, 232, 359, 232, 327, 327, 295, 293,
2394 294, 298, 299, 297, 296, 123, 119, 115, 118, 265,
2395 260, 0, 0, 0, 126, 0, 124, 128, 127, 0,
2396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2398 0, 0, 332, 331, 0, 228, 0, 328, 329, 330,
2399 45, 0, 41, 72, 32, 71, 0, 92, 360, 0,
2400 0, 198, 0, 211, 359, 0, 203, 205, 285, 286,
2401 555, 232, 359, 232, 165, 163, 327, 188, 183, 478,
2402 479, 480, 481, 482, 483, 484, 485, 486, 492, 493,
2403 487, 488, 489, 490, 491, 494, 495, 496, 497, 498,
2404 499, 500, 501, 502, 466, 465, 0, 463, 464, 0,
2405 474, 475, 469, 468, 470, 471, 472, 473, 476, 477,
2406 185, 467, 187, 196, 0, 222, 225, 221, 256, 0,
2407 0, 237, 266, 0, 166, 161, 199, 0, 0, 407,
2408 413, 351, 4, 0, 135, 0, 0, 0, 0, 115,
2409 0, 0, 232, 232, 0, 120, 378, 379, 380, 374,
2410 375, 376, 377, 602, 603, 530, 526, 527, 525, 528,
2411 529, 531, 506, 505, 507, 519, 509, 511, 510, 512,
2412 513, 515, 514, 516, 518, 508, 520, 504, 503, 517,
2413 478, 479, 523, 522, 521, 524, 586, 585, 597, 581,
2414 576, 26, 592, 588, 593, 601, 590, 591, 576, 589,
2415 596, 587, 594, 595, 577, 580, 582, 584, 583, 576,
2416 0, 0, 3, 131, 130, 129, 414, 0, 0, 0,
2417 424, 427, 0, 0, 434, 438, 442, 446, 436, 440,
2418 444, 448, 450, 452, 454, 455, 0, 34, 227, 231,
2419 46, 83, 84, 85, 81, 73, 74, 79, 76, 39,
2420 86, 0, 93, 94, 97, 198, 194, 0, 217, 0,
2421 0, 211, 0, 201, 0, 0, 33, 0, 353, 182,
2422 211, 0, 0, 459, 460, 192, 190, 0, 189, 211,
2423 224, 229, 0, 238, 257, 271, 268, 269, 263, 264,
2424 262, 261, 347, 411, 25, 136, 134, 0, 0, 0,
2425 368, 367, 0, 258, 232, 362, 366, 148, 149, 258,
2426 0, 110, 114, 117, 112, 0, 0, 109, 232, 211,
2427 0, 0, 0, 29, 4, 0, 417, 421, 423, 0,
2428 0, 430, 0, 0, 0, 0, 0, 0, 0, 0,
2429 0, 0, 0, 457, 49, 50, 51, 37, 0, 0,
2430 0, 82, 0, 80, 0, 89, 95, 98, 578, 178,
2431 212, 213, 0, 288, 0, 206, 207, 0, 188, 570,
2432 572, 540, 574, 562, 538, 563, 568, 564, 292, 566,
2433 539, 544, 543, 537, 541, 542, 560, 561, 556, 559,
2434 534, 535, 536, 35, 87, 0, 461, 462, 0, 193,
2435 0, 232, 548, 549, 223, 547, 532, 245, 274, 270,
2436 348, 138, 369, 370, 371, 364, 241, 242, 240, 139,
2437 258, 265, 259, 361, 327, 142, 145, 111, 113, 116,
2438 0, 598, 599, 600, 28, 0, 0, 425, 0, 0,
2439 433, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2440 0, 458, 0, 0, 0, 0, 64, 53, 58, 47,
2441 60, 54, 57, 55, 52, 0, 59, 0, 171, 172,
2442 56, 0, 0, 357, 0, 0, 61, 48, 77, 75,
2443 78, 96, 0, 0, 188, 214, 258, 204, 0, 209,
2444 202, 545, 545, 557, 545, 555, 545, 184, 191, 197,
2445 230, 533, 246, 239, 249, 0, 0, 137, 327, 150,
2446 254, 0, 258, 234, 363, 150, 258, 121, 415, 418,
2447 0, 428, 431, 435, 439, 443, 447, 437, 441, 445,
2448 449, 0, 0, 456, 69, 0, 67, 0, 0, 357,
2449 0, 0, 62, 65, 66, 0, 167, 63, 0, 173,
2450 0, 170, 199, 99, 100, 579, 179, 216, 217, 218,
2451 208, 0, 0, 0, 0, 0, 0, 211, 272, 275,
2452 365, 152, 140, 151, 235, 255, 143, 146, 250, 0,
2453 578, 0, 0, 0, 576, 578, 103, 359, 0, 68,
2454 0, 70, 0, 168, 0, 215, 220, 551, 552, 571,
2455 550, 546, 573, 554, 575, 553, 558, 569, 565, 567,
2456 0, 0, 245, 150, 122, 419, 0, 432, 451, 453,
2457 0, 0, 101, 0, 0, 104, 359, 169, 219, 247,
2458 153, 154, 236, 147, 252, 251, 0, 426, 578, 106,
2459 0, 102, 250, 155, 253, 0, 248, 105
2462 /* YYDEFGOTO[NTERM-NUM]. */
2463 static const yytype_int16 yydefgoto[] =
2465 -1, 1, 2, 4, 78, 232, 80, 81, 323, 82,
2466 83, 84, 234, 86, 226, 87, 365, 227, 247, 560,
2467 668, 669, 779, 780, 781, 362, 363, 565, 566, 674,
2468 670, 567, 89, 90, 367, 91, 571, 572, 573, 802,
2469 235, 856, 906, 92, 93, 458, 464, 459, 315, 316,
2470 639, 898, 317, 94, 193, 95, 236, 300, 453, 731,
2471 454, 455, 829, 456, 835, 457, 836, 933, 629, 892,
2472 893, 931, 950, 237, 98, 99, 100, 786, 787, 101,
2473 102, 373, 804, 103, 275, 387, 276, 590, 277, 104,
2474 279, 432, 598, 718, 242, 280, 599, 253, 789, 377,
2475 688, 255, 581, 583, 685, 686, 577, 578, 680, 878,
2476 681, 682, 916, 436, 437, 602, 105, 282, 354, 434,
2477 721, 355, 356, 739, 932, 283, 727, 740, 284, 823,
2478 887, 962, 934, 831, 439, 741, 742, 611, 441, 442,
2479 443, 606, 607, 728, 825, 826, 194, 107, 178, 149,
2480 375, 110, 111, 179, 380, 113, 114, 225, 357, 248,
2481 116, 117, 118, 119, 613, 239, 121, 296, 386, 122,
2482 153, 623, 624, 744, 828, 625, 123, 124, 125, 292,
2483 293, 294, 448, 295, 126, 645, 332, 756, 899, 333,
2484 334, 649, 840, 650, 337, 759, 901, 653, 657, 654,
2485 658, 655, 659, 656, 660, 661, 662, 772, 430, 703,
2486 704, 705, 724, 725, 881, 920, 921, 926, 584, 883,
2487 707, 708, 709, 815, 710, 816, 711, 814, 811, 812,
2488 712, 813, 321, 803, 524, 525, 526, 527, 528, 529
2491 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
2493 #define YYPACT_NINF -872
2494 static const yytype_int16 yypact[] =
2496 -872, 77, 87, -872, 4255, 167, 191, 227, 280, 300,
2497 301, 304, -872, -872, -872, 4899, -872, -872, -872, -872,
2498 -872, -872, -872, 98, -872, -8, -872, 5429, 383, 4624,
2499 -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
2500 -872, -872, -38, 106, 121, 122, 133, 158, 171, 186,
2501 196, 203, 210, 228, 243, -3, 36, 43, 45, 90,
2502 114, 130, 138, 151, 179, 183, 187, 202, 215, 233,
2503 235, 249, 258, 267, 269, 271, -872, 438, -872, -872,
2504 -872, -872, -872, -872, -872, -872, -872, -872, 4899, -872,
2505 -872, 21, -872, -872, -872, -872, 5144, -872, -71, -71,
2506 -71, -71, -872, 281, 5524, -872, 54, -872, 284, 4742,
2507 350, 4899, -25, -872, 297, 5239, -872, -872, -872, -872,
2508 4672, 276, -872, -872, -872, -872, -872, -10, 9, 18,
2509 50, 52, 148, 166, -872, -872, -872, -872, -872, -872,
2510 -872, -872, -872, -872, -872, -872, -872, 310, -872, 4921,
2511 350, 312, 321, 4899, -10, 9, 18, 50, 52, 148,
2512 166, 441, -872, -872, -872, -872, -872, -872, -872, -872,
2513 -872, -872, -872, -872, -872, -872, 4899, -872, -872, 350,
2514 5429, 4790, -872, -872, -872, -872, -872, -872, -872, -872,
2515 332, 4899, 4899, 337, -872, 4742, 4899, 4529, -872, -872,
2516 -872, 4529, 4529, -872, 4529, 4529, 4529, 4529, 4529, 4529,
2517 4529, 4529, 4529, 4529, 4529, 4529, 4529, 4529, -872, -872,
2518 -872, -872, -872, -872, -872, 1286, 343, 348, 259, 1286,
2519 -872, 4899, -872, -872, -872, -872, 5144, -872, 5334, 4947,
2520 -872, -872, -872, -872, -872, -872, -872, 4899, 5524, -872,
2521 -872, -872, -872, 360, -872, -872, -872, 350, -13, 362,
2522 -872, -872, -872, -872, -872, -872, 4899, -872, -872, -872,
2523 4742, -872, -872, -872, -872, -872, -872, 363, 5071, -872,
2524 -872, 370, -872, 377, 1478, 372, 4742, 350, 15, -872,
2525 435, -872, -872, -872, -872, 276, -872, 350, -872, -872,
2526 73, -872, -872, 5028, 177, 5028, -872, -872, -872, -872,
2527 -872, -872, -872, -872, -872, -872, -872, -872, -872, 107,
2528 379, 1212, 409, 384, -872, 386, -872, -872, -872, 1383,
2529 4742, 387, 4529, 4529, 4529, 388, 389, 4529, 390, 391,
2530 392, 393, 397, 398, 399, 401, 402, 403, 405, 404,
2531 406, 407, -872, -872, 414, -872, 4790, -872, -872, -872,
2532 -872, 1111, -872, -872, -872, 348, 415, 4529, -872, 5334,
2533 4742, -872, 1617, 424, -872, 471, -872, 412, -872, -872,
2534 -872, 1286, 278, 1286, -872, -872, -872, -872, -872, 381,
2535 423, -872, -872, -872, -872, -872, -872, -872, -872, -872,
2536 -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
2537 -872, -872, -872, -872, -872, -872, 428, -872, -872, 411,
2538 -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
2539 -872, -872, 41, -872, 212, -872, -872, -872, -872, 429,
2540 4790, -872, -872, 427, -872, -872, 350, 470, 440, -872,
2541 -872, 4121, 436, 11, -872, 5560, 88, 524, 442, -872,
2542 4790, 443, 5028, 5028, 224, -872, -872, -872, -872, -872,
2543 -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
2544 -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
2545 -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
2546 -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
2547 -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
2548 -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
2549 444, 350, -872, -872, -872, -872, -872, 445, 434, 439,
2550 -872, -872, 446, 5524, -872, -872, -872, -872, -872, -872,
2551 -872, -872, -872, -872, -872, -872, 4529, -872, 447, -872,
2552 48, -872, -872, -872, 485, 448, -872, 535, -872, -872,
2553 -872, 452, 451, -872, 456, 457, -872, 454, -872, 350,
2554 297, 424, 4899, -872, 3577, 449, -872, 462, 4121, 41,
2555 424, 437, 453, -872, -872, -872, -872, 549, -872, 424,
2556 -872, -872, 3857, -872, -872, -872, 427, -872, -872, -872,
2557 -872, -872, -872, 440, -872, -872, -872, 4899, 4899, 4899,
2558 -872, 350, 5524, 4694, 276, -872, -872, -872, -872, 4694,
2559 563, -872, 461, -872, -872, 467, 468, -872, 276, 424,
2560 1757, 1897, 2037, -872, 472, 5524, -872, -872, -872, 5524,
2561 5524, -872, 463, 5524, 5524, 5524, 5524, 5524, 5524, 5524,
2562 5524, 5524, 5524, 464, -872, -872, -872, -872, 4137, 469,
2563 4899, -872, 1111, -872, 4899, -872, 4529, -872, -872, -872,
2564 473, -872, 5524, -872, 474, 475, -872, 58, -872, -872,
2565 -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
2566 -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
2567 -872, -872, -872, -872, -872, 477, -872, -872, 92, -872,
2568 478, 276, -872, -872, 3857, -872, -872, 160, 465, -872,
2569 -872, 73, -872, -872, -872, -872, -872, -872, -872, -872,
2570 969, 372, -872, -872, -872, -872, -872, -872, -872, -872,
2571 479, -872, -872, -872, -872, 480, 5524, -872, 481, 5524,
2572 -872, 482, 483, 484, 489, 490, 491, 492, 496, 487,
2573 499, -872, 498, 4373, 4851, 58, -872, -872, -872, -872,
2574 -872, -872, -872, -872, -872, 4563, -872, -71, -872, -872,
2575 -872, 506, 4742, 129, 4468, 4672, -872, -872, -872, -872,
2576 -872, -872, 3857, 2317, -872, 526, 4694, -872, 4899, -872,
2577 41, -872, -872, -872, -872, -872, -872, -872, -872, -872,
2578 -872, -872, -872, -872, -872, 497, 3857, -872, -872, 504,
2579 -872, 502, 4694, -872, 4121, 504, 4694, -872, -872, -872,
2580 508, -872, -872, -872, -872, -872, -872, -872, -872, -872,
2581 -872, 622, 623, -872, -872, 4720, -872, 518, -71, -13,
2582 4563, 4947, -872, -872, -872, 4563, -872, -872, 520, -872,
2583 4742, -872, -872, 3857, -872, -872, 41, -872, -872, -872,
2584 -872, 3017, 3157, 2877, 3297, 3717, 3437, 424, -872, 3857,
2585 4121, -872, -872, -872, -872, -872, -872, -872, -872, 514,
2586 -872, 515, 516, 519, -872, -872, -872, 328, 4720, -872,
2587 518, -872, 4720, -872, 527, -872, 377, -872, -872, -872,
2588 -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
2589 521, 3997, 160, 504, 93, -872, 2457, -872, -872, -872,
2590 2177, 2597, -872, 328, 4720, -872, 339, -872, -872, -872,
2591 3997, -872, -872, -872, -872, -872, 58, -872, -872, -872,
2592 339, -872, -872, -872, -872, 2737, 93, -872
2595 /* YYPGOTO[NTERM-NUM]. */
2596 static const yytype_int16 yypgoto[] =
2598 -872, -872, -260, -872, -872, 645, -872, -872, -872, -872,
2599 -613, -94, 1, -26, -872, -872, -872, -872, 16, -872,
2600 -872, -872, -872, -872, -872, 285, -872, -872, -20, -872,
2601 -872, 89, -17, -21, -872, -872, -872, -872, -22, -872,
2602 -872, -202, -473, -9, -102, -249, 199, 22, -872, -872,
2603 -872, -872, 201, -6, -872, -872, -1, -872, -872, -872,
2604 -66, -872, -872, -872, -872, -872, -872, -872, -872, -770,
2605 -872, -872, -872, 668, -872, -872, -872, -111, -97, -576,
2606 -80, -872, -872, -154, -241, -872, -872, -872, -155, 35,
2607 -270, -364, -872, -872, -91, -872, -872, -105, -67, -872,
2608 -872, -872, -872, -872, -872, -129, -542, -872, -872, -872,
2609 -198, -872, -872, -230, -872, -872, 20, 333, -166, 338,
2610 -872, -5, -95, -575, -872, -157, -872, -872, -872, -237,
2611 -872, -872, -261, -872, -872, -872, -98, -872, -29, -696,
2612 -872, -872, 112, -872, -872, -872, 13, -45, 3, 32,
2613 -872, -63, 23, -4, -872, 754, -24, 8, -872, 10,
2614 -81, -872, -872, -415, -872, 49, -872, -872, -872, -19,
2615 -872, -872, -872, -872, -872, -872, -121, -391, 194, -272,
2616 425, 430, -872, -872, 51, -872, -872, -872, -872, -872,
2617 -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
2618 -872, -872, -872, -872, -872, -872, -872, -872, -872, -204,
2619 -302, 82, -751, -554, -456, -581, -153, -872, -89, -872,
2620 -871, -872, -872, -872, -872, -872, 17, -872, -872, -872,
2621 -872, -872, -183, -820, -872, -759, -872, -872, -660, -872
2624 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
2625 positive, shift that token. If negative, reduce the rule which
2626 number is the opposite. If zero, do what YYDEFACT says.
2627 If YYTABLE_NINF, syntax error. */
2628 #define YYTABLE_NINF -411
2629 static const yytype_int16 yytable[] =
2631 112, 175, 233, 96, 190, 85, 177, 108, 243, 244,
2632 245, 150, 440, 268, 115, 281, 445, 106, 148, 522,
2633 88, 726, 285, 589, 318, 150, 291, 809, 147, 252,
2634 706, 824, 148, 612, 271, 269, 109, 180, 452, 684,
2635 328, 327, 254, 176, 875, 444, 257, 30, 715, 240,
2636 241, 873, 196, 120, 745, 777, 461, 720, 372, 30,
2637 951, 195, -320, 366, 256, 896, 261, 595, 473, 474,
2638 522, 664, 665, 666, 431, 889, 181, 3, 596, 963,
2639 936, -322, -308, 319, 150, 941, 257, -2, -308, 265,
2640 -321, 148, 788, -141, 267, -279, 272, 750, 229, 271,
2641 445, 228, 689, 690, 256, 258, 238, 150, 627, -144,
2642 151, -141, 88, -199, 262, 862, 287, 521, -320, 954,
2643 152, 955, -325, 197, -326, 431, 628, 438, 109, 444,
2644 956, 266, 257, 260, 281, 263, 615, -322, 965, 447,
2645 616, -198, 230, 821, 358, 297, -321, 270, 358, 150,
2646 256, 261, 286, 249, 306, 278, 148, 271, 269, 307,
2647 854, 272, 198, 953, 597, 830, 301, 271, 521, 199,
2648 667, 200, 150, 263, 250, 535, 534, 875, -325, 148,
2649 -326, 281, 875, 303, 515, 305, 285, 150, 150, 304,
2650 384, 297, 150, 701, 148, 148, 176, 788, 730, 262,
2651 520, 30, 263, 385, 324, 325, 875, 257, 460, 788,
2652 460, 701, 265, 635, 636, 585, 201, 587, 696, 272,
2653 -324, 726, 358, 257, 358, 256, -307, 150, 330, 272,
2654 329, 879, -307, 465, 148, 287, 824, -267, -323, -320,
2655 202, -319, -309, 150, 368, 726, 369, -319, -309, -279,
2656 148, 520, 176, -310, 266, -199, 203, 895, 285, -310,
2657 374, 897, 150, -322, 204, 281, 258, 257, 109, 148,
2658 270, 370, 644, 381, 278, 383, -324, 205, -311, 382,
2659 378, 379, 446, 604, -311, 256, 822, -295, 271, 269,
2660 -267, -312, 821, -295, -323, -320, 964, -312, -38, -321,
2661 358, -38, 358, 318, 451, 206, -313, 257, 821, 207,
2662 263, -293, -313, 208, 462, 463, -314, -293, 531, -322,
2663 379, 278, -314, -315, 810, 530, 297, 640, 209, -315,
2664 -316, 706, 600, 701, 626, 641, -316, 601, 522, 522,
2665 522, 210, 285, 265, 637, 930, 642, -294, -317, 638,
2666 272, 580, -325, -294, -317, -321, 882, 150, 884, 211,
2667 886, 212, 319, -318, 148, 329, 446, 460, 460, -318,
2668 358, 579, -326, -324, 568, 213, -323, 706, 249, 364,
2669 -38, 358, 358, -38, 214, 176, 182, 183, 184, 185,
2670 186, 187, 188, 215, 588, 216, 706, 217, 586, -38,
2671 -298, 270, -38, 523, -277, 278, -298, 246, -325, 289,
2672 290, 701, 182, 183, 184, 185, 186, 187, 188, 359,
2673 -299, -297, 30, 359, -296, 264, -299, -297, -326, -324,
2674 -296, -90, -323, 298, 942, 701, 521, 521, 521, 945,
2675 876, 218, 219, 220, 221, 222, 223, 224, 364, 904,
2676 299, 621, 905, 302, 523, 322, 630, 326, 620, 586,
2677 904, -410, -410, 905, 360, 622, 16, 17, 832, 379,
2678 942, 945, 361, 961, 182, 183, 184, 185, 186, 187,
2679 188, 30, 701, 608, 609, 610, 376, 961, -198, 388,
2680 701, 701, 701, 701, 701, 701, 433, 359, 701, 359,
2681 435, 522, -267, 447, 189, 532, 533, 358, 561, 562,
2682 563, 591, 536, 540, 541, 543, 544, 545, 546, 520,
2683 520, 520, 547, 548, 549, 871, 550, 551, 552, 743,
2684 553, 554, 556, 555, 557, 570, 582, 12, 13, 14,
2685 701, 271, 594, 460, 16, 17, 18, 19, 20, 21,
2686 22, -210, 161, 592, 263, 593, 603, 605, 614, 701,
2687 25, 647, 631, 634, 643, 673, 648, 719, 716, 713,
2688 646, 651, 601, 672, 675, 359, 676, 359, 150, 677,
2689 678, 679, 714, 746, 717, 148, 638, 747, 748, 771,
2690 760, 871, 652, 797, 754, 687, -273, 877, 805, 521,
2691 808, 807, 683, 735, 817, 819, 837, 838, 841, 843,
2692 844, 845, 851, 150, 150, 150, 846, 847, 848, 849,
2693 148, 148, 148, 850, 852, 853, 867, 891, 888, 894,
2694 732, 733, 734, 900, 522, 902, 903, 868, 522, 522,
2695 913, 935, 937, 938, 263, 359, 939, 947, 949, 79,
2696 569, 782, 799, 671, 801, 909, 359, 359, 632, 783,
2697 749, 633, 784, 522, 793, 827, 150, 785, 150, 778,
2698 150, 108, 97, 148, 864, 148, 858, 148, 794, 880,
2699 915, 791, 520, 798, 88, 568, 948, 800, 790, 559,
2700 281, 233, 268, 558, 755, 952, 866, 285, 757, 758,
2701 792, 966, 761, 762, 763, 764, 765, 766, 767, 768,
2702 769, 770, 833, 271, 269, 914, 820, 795, 729, 796,
2703 449, 940, 523, 523, 523, 450, 885, 869, 0, 257,
2704 925, 806, 521, 0, 0, 818, 521, 521, 0, 0,
2705 0, 0, 0, 0, 0, 0, 0, 256, 0, 0,
2706 0, 0, 834, 358, 0, 0, 281, 0, 0, 0,
2707 0, 521, 0, 233, 0, 0, 0, 911, 265, 859,
2708 150, 580, 857, 267, 0, 272, 0, 148, 702, 271,
2709 269, 859, 359, 860, 271, 269, 863, 0, 297, 855,
2710 859, 872, 0, 869, 0, 865, 702, 196, 869, 0,
2711 0, 88, 0, 0, 150, 839, 195, 257, 842, 358,
2712 266, 148, 0, 0, 0, 520, 263, 792, 0, 520,
2713 520, 687, 861, 0, 0, 256, 870, 278, 0, 271,
2714 278, 0, 0, 0, 861, 0, 890, 580, 0, 265,
2715 0, 272, 0, 0, 520, 0, 272, 0, 0, 0,
2716 0, 150, 0, 0, 0, 0, 859, 872, 148, 0,
2717 0, 859, 0, 259, 0, 0, 297, 910, 907, 0,
2718 0, 0, 0, 908, 288, 0, 912, 0, 0, 0,
2719 0, 266, 263, 0, 0, 523, 0, 0, 0, 0,
2720 0, 0, 0, 0, 0, 0, 278, 870, 0, 0,
2721 0, 0, 0, 0, 150, 278, 0, 0, 150, 0,
2722 0, 148, 0, 0, 0, 148, 0, 0, 702, 0,
2723 0, 943, 0, 0, 0, 946, 944, 0, 0, 0,
2724 0, 0, 0, 0, 0, 320, 0, 0, 0, 0,
2725 150, 0, 0, 0, 0, 0, 0, 148, 0, 0,
2726 0, 331, 0, 0, 0, 335, 336, 960, 338, 339,
2727 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
2728 350, 351, 308, 309, 310, 311, 312, 313, 314, 736,
2729 737, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2730 0, 0, 0, 371, 0, 0, 702, 0, 0, 0,
2731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2732 0, 0, 0, 0, 0, 0, 0, 0, 523, 0,
2733 702, 0, 523, 523, 259, 0, 0, 0, 359, 0,
2734 0, 0, 0, 0, 0, 0, 0, 0, 320, 0,
2735 371, 0, 0, 0, 0, 0, 0, 523, 0, 0,
2736 0, 0, 0, 0, 134, 135, 136, 137, 138, 139,
2737 140, 141, 142, 143, 144, 145, 146, 702, 0, 0,
2738 0, 0, 0, 0, 0, 702, 702, 702, 702, 702,
2739 702, 0, 0, 702, 359, 0, 537, 538, 539, 0,
2740 0, 542, 0, 0, 0, 738, 0, 0, 0, 0,
2741 0, 77, 289, 290, 0, 0, 0, 0, 0, 0,
2742 320, 0, 0, 0, 127, 128, 129, 130, 131, 132,
2743 133, 574, 0, 0, 575, 702, 0, 0, 0, 0,
2744 0, 0, 0, 0, 561, 562, 563, 0, 0, 0,
2745 0, 564, 0, 0, 702, 0, 0, 0, 0, 0,
2746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2749 0, 0, 0, 30, 0, 0, 0, 0, 0, 0,
2750 0, 0, 0, 0, 320, 0, 134, 135, 136, 137,
2751 138, 139, 140, 141, 142, 143, 144, 145, 146, 0,
2752 0, 0, 0, 0, 320, 466, 467, 468, 469, 470,
2753 471, 472, 473, 474, 475, 476, 477, 478, 479, 480,
2754 481, 482, 483, 484, 485, 486, 487, 488, 489, 0,
2755 0, 490, 491, 77, 492, 0, 493, 494, 495, 496,
2756 497, 498, 499, 0, 500, 501, 502, 503, 504, 505,
2757 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
2758 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
2759 411, 412, 413, 506, 507, 508, 31, 32, 33, 34,
2760 35, 36, 37, 38, 39, 40, 41, 162, 163, 164,
2761 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
2762 663, 0, 16, 17, 18, 19, 20, 21, 22, 352,
2763 161, 0, 0, 0, 0, 353, 0, 0, 0, 0,
2764 0, 0, 509, 510, 511, 512, 513, 514, 515, 0,
2765 516, 517, 518, 0, 420, 421, 422, 423, 424, 425,
2766 426, 427, 428, 429, 519, 0, 0, 0, 0, 0,
2767 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2768 41, 0, 0, 0, 0, 0, 0, 320, 0, 0,
2769 0, 0, 0, 320, 0, 0, 154, 155, 156, 157,
2770 158, 159, 160, 0, 0, 0, 0, 0, 0, 0,
2771 0, 0, 12, 13, 14, 231, -226, 0, 0, 16,
2772 17, 18, 19, 20, 21, 22, 0, 161, 0, 289,
2773 290, 26, 259, 0, 0, 389, 390, 0, 0, 0,
2774 574, 391, 392, 393, 394, 395, 396, 397, 398, 399,
2775 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
2776 410, 411, 412, 413, 0, 30, 0, 31, 32, 33,
2777 34, 35, 36, 37, 38, 39, 40, 41, 162, 163,
2778 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
2779 174, 308, 309, 310, 311, 312, 313, 314, 273, 274,
2780 0, 0, 0, 0, 320, 0, 0, 0, 0, 0,
2781 0, 0, 0, 0, 0, 0, 414, 0, 415, 416,
2782 0, 417, 418, 419, 0, 420, 421, 422, 423, 424,
2783 425, 426, 427, 428, 429, 0, 0, 371, 0, 0,
2784 0, 0, 0, 0, 0, 0, 0, 0, 0, 371,
2785 0, 0, 0, 0, 0, 0, 0, 0, 371, 288,
2786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2787 320, 0, 0, 134, 135, 136, 137, 138, 139, 140,
2788 141, 142, 143, 144, 145, 146, 0, 0, 0, 0,
2789 0, 0, 0, 0, 0, 0, 320, 0, 0, 0,
2790 320, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2792 77, 289, 290, 0, 371, 371, 0, 0, 0, 371,
2793 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
2794 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
2795 486, 487, 488, 489, 0, 0, 490, 491, 0, 492,
2796 0, 493, 494, 495, 496, 497, 498, 499, 0, 500,
2797 501, 502, 503, 504, 505, 391, 392, 393, 394, 395,
2798 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
2799 406, 407, 408, 409, 410, 411, 412, 413, 506, 507,
2800 508, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2801 40, 41, 162, 163, 164, 165, 166, 167, 168, 169,
2802 170, 171, 172, 173, 174, 0, 0, 0, 0, 0,
2803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2804 0, 0, 0, 0, 0, 0, 0, 509, 510, 576,
2805 512, 513, 514, 515, 0, 516, 517, 518, 0, 420,
2806 421, 422, 423, 424, 425, 426, 427, 428, 429, 519,
2807 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
2808 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
2809 486, 487, 488, 489, 0, 0, 490, 491, 0, 492,
2810 0, 493, 494, 495, 496, 497, 498, 499, 0, 500,
2811 501, 502, 503, 504, 505, 391, 392, 393, 394, 395,
2812 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
2813 406, 407, 408, 409, 410, 411, 412, 413, 506, 507,
2814 508, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2815 40, 41, 162, 163, 164, 165, 166, 167, 168, 169,
2816 170, 171, 172, 173, 174, 0, 0, 0, 0, 0,
2817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2818 0, 0, 0, 0, 0, 0, 0, 509, 510, 751,
2819 512, 513, 514, 515, 0, 516, 517, 518, 0, 420,
2820 421, 422, 423, 424, 425, 426, 427, 428, 429, 519,
2821 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
2822 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
2823 486, 487, 488, 489, 0, 0, 490, 491, 0, 492,
2824 0, 493, 494, 495, 496, 497, 498, 499, 0, 500,
2825 501, 502, 503, 504, 505, 391, 392, 393, 394, 395,
2826 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
2827 406, 407, 408, 409, 410, 411, 412, 413, 506, 507,
2828 508, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2829 40, 41, 162, 163, 164, 165, 166, 167, 168, 169,
2830 170, 171, 172, 173, 174, 0, 0, 0, 0, 0,
2831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2832 0, 0, 0, 0, 0, 0, 0, 509, 510, 0,
2833 512, 513, 514, 515, 0, 516, 517, 518, 752, 420,
2834 421, 422, 423, 424, 425, 426, 427, 428, 429, 519,
2835 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
2836 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
2837 486, 487, 488, 489, 0, 0, 490, 491, 0, 492,
2838 0, 493, 494, 495, 496, 497, 498, 499, 0, 500,
2839 501, 502, 503, 504, 505, 391, 392, 393, 394, 395,
2840 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
2841 406, 407, 408, 409, 410, 411, 412, 413, 506, 507,
2842 508, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2843 40, 41, 162, 163, 164, 165, 166, 167, 168, 169,
2844 170, 171, 172, 173, 174, 0, 0, 0, 0, 0,
2845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2846 0, 0, 0, 0, 0, 0, 0, 509, 510, 0,
2847 512, 513, 514, 515, 753, 516, 517, 518, 0, 420,
2848 421, 422, 423, 424, 425, 426, 427, 428, 429, 519,
2849 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
2850 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
2851 486, 487, 488, 489, 0, 0, 490, 491, 0, 492,
2852 0, 493, 494, 495, 496, 497, 498, 499, 0, 500,
2853 501, 502, 503, 504, 505, 391, 392, 393, 394, 395,
2854 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
2855 406, 407, 408, 409, 410, 411, 412, 413, 506, 507,
2856 508, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2857 40, 41, 162, 163, 164, 165, 166, 167, 168, 169,
2858 170, 171, 172, 173, 174, 0, 0, 0, 0, 0,
2859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2860 0, 0, 0, 0, 0, 0, 0, 509, 510, 958,
2861 512, 513, 514, 515, 0, 516, 517, 518, 0, 420,
2862 421, 422, 423, 424, 425, 426, 427, 428, 429, 519,
2863 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
2864 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
2865 486, 487, 488, 489, 0, 0, 490, 491, 0, 492,
2866 0, 493, 494, 495, 496, 497, 498, 499, 0, 500,
2867 501, 502, 503, 504, 505, 391, 392, 393, 394, 395,
2868 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
2869 406, 407, 408, 409, 410, 411, 412, 413, 506, 507,
2870 508, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2871 40, 41, 162, 163, 164, 165, 166, 167, 168, 169,
2872 170, 171, 172, 173, 174, 0, 0, 0, 0, 0,
2873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2874 0, 0, 0, 0, 0, 0, 0, 874, 510, 0,
2875 512, 513, 514, 515, 0, 516, 517, 518, 0, 420,
2876 421, 422, 423, 424, 425, 426, 427, 428, 429, 519,
2877 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
2878 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
2879 486, 487, 488, 489, 0, 0, 490, 491, 0, 492,
2880 0, 493, 494, 495, 496, 497, 498, 499, 0, 500,
2881 501, 502, 503, 504, 505, 391, 392, 393, 394, 395,
2882 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
2883 406, 407, 408, 409, 410, 411, 412, 413, 506, 507,
2884 508, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2885 40, 41, 162, 163, 164, 165, 166, 167, 168, 169,
2886 170, 171, 172, 173, 174, 0, 0, 0, 0, 0,
2887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2888 0, 0, 0, 0, 0, 0, 0, 0, 510, 0,
2889 512, 513, 514, 515, 957, 516, 517, 518, 0, 420,
2890 421, 422, 423, 424, 425, 426, 427, 428, 429, 519,
2891 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
2892 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
2893 486, 487, 488, 489, 0, 0, 490, 491, 0, 492,
2894 0, 493, 494, 495, 496, 497, 498, 499, 0, 500,
2895 501, 502, 503, 504, 505, 391, 392, 393, 394, 395,
2896 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
2897 406, 407, 408, 409, 410, 411, 412, 413, 506, 507,
2898 508, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2899 40, 41, 162, 163, 164, 165, 166, 167, 168, 169,
2900 170, 171, 172, 173, 174, 0, 0, 0, 0, 0,
2901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2902 0, 0, 0, 0, 0, 0, 0, 959, 510, 0,
2903 512, 513, 514, 515, 0, 516, 517, 518, 0, 420,
2904 421, 422, 423, 424, 425, 426, 427, 428, 429, 519,
2905 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
2906 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
2907 486, 487, 488, 489, 0, 0, 490, 491, 0, 492,
2908 0, 493, 494, 495, 496, 497, 498, 499, 0, 500,
2909 501, 502, 503, 504, 505, 391, 392, 393, 394, 395,
2910 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
2911 406, 407, 408, 409, 410, 411, 412, 413, 506, 507,
2912 508, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2913 40, 41, 162, 163, 164, 165, 166, 167, 168, 169,
2914 170, 171, 172, 173, 174, 0, 0, 0, 0, 0,
2915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2916 0, 0, 0, 0, 0, 0, 0, 967, 510, 0,
2917 512, 513, 514, 515, 0, 516, 517, 518, 0, 420,
2918 421, 422, 423, 424, 425, 426, 427, 428, 429, 519,
2919 466, 467, 468, 469, 470, 471, 472, 689, 690, 475,
2920 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
2921 486, 487, 488, 489, 0, 0, 490, 491, 0, 492,
2922 0, 493, 494, 495, 496, 497, 498, 499, 0, 500,
2923 501, 502, 503, 504, 505, 391, 392, 393, 394, 395,
2924 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
2925 406, 407, 408, 409, 410, 411, 412, 413, 0, 691,
2926 0, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2927 40, 41, 162, 163, 164, 165, 166, 167, 168, 169,
2928 170, 171, 172, 173, 174, 0, 0, 0, 0, 0,
2929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2930 0, 0, 0, 0, 0, 0, 0, 923, 692, 924,
2931 917, 694, 918, 696, 0, 722, 723, 699, 0, 420,
2932 421, 422, 423, 424, 425, 426, 427, 428, 429, 700,
2933 466, 467, 468, 469, 470, 471, 472, 689, 690, 475,
2934 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
2935 486, 487, 488, 489, 0, 0, 490, 491, 0, 492,
2936 0, 493, 494, 495, 496, 497, 498, 499, 0, 500,
2937 501, 502, 503, 504, 505, 391, 392, 393, 394, 395,
2938 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
2939 406, 407, 408, 409, 410, 411, 412, 413, 0, 691,
2940 0, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2941 40, 41, 162, 163, 164, 165, 166, 167, 168, 169,
2942 170, 171, 172, 173, 174, 0, 0, 0, 0, 0,
2943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2944 0, 0, 0, 0, 0, 0, 0, 0, 692, 0,
2945 917, 694, 918, 696, 919, 722, 723, 699, 0, 420,
2946 421, 422, 423, 424, 425, 426, 427, 428, 429, 700,
2947 466, 467, 468, 469, 470, 471, 472, 689, 690, 475,
2948 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
2949 486, 487, 488, 489, 0, 0, 490, 491, 0, 492,
2950 0, 493, 494, 495, 496, 497, 498, 499, 0, 500,
2951 501, 502, 503, 504, 505, 391, 392, 393, 394, 395,
2952 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
2953 406, 407, 408, 409, 410, 411, 412, 413, 0, 691,
2954 0, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2955 40, 41, 162, 163, 164, 165, 166, 167, 168, 169,
2956 170, 171, 172, 173, 174, 0, 0, 0, 0, 0,
2957 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2958 0, 0, 0, 0, 0, 0, 0, 0, 692, 0,
2959 917, 694, 918, 696, 922, 722, 723, 699, 0, 420,
2960 421, 422, 423, 424, 425, 426, 427, 428, 429, 700,
2961 466, 467, 468, 469, 470, 471, 472, 689, 690, 475,
2962 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
2963 486, 487, 488, 489, 0, 0, 490, 491, 0, 492,
2964 0, 493, 494, 495, 496, 497, 498, 499, 0, 500,
2965 501, 502, 503, 504, 505, 391, 392, 393, 394, 395,
2966 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
2967 406, 407, 408, 409, 410, 411, 412, 413, 0, 691,
2968 0, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2969 40, 41, 162, 163, 164, 165, 166, 167, 168, 169,
2970 170, 171, 172, 173, 174, 0, 0, 0, 0, 0,
2971 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2972 0, 0, 0, 0, 0, 0, 0, 0, 692, 0,
2973 917, 694, 918, 696, 927, 722, 723, 699, 0, 420,
2974 421, 422, 423, 424, 425, 426, 427, 428, 429, 700,
2975 466, 467, 468, 469, 470, 471, 472, 689, 690, 475,
2976 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
2977 486, 487, 488, 489, 0, 0, 490, 491, 0, 492,
2978 0, 493, 494, 495, 496, 497, 498, 499, 0, 500,
2979 501, 502, 503, 504, 505, 391, 392, 393, 394, 395,
2980 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
2981 406, 407, 408, 409, 410, 411, 412, 413, 0, 691,
2982 0, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2983 40, 41, 162, 163, 164, 165, 166, 167, 168, 169,
2984 170, 171, 172, 173, 174, 0, 0, 0, 0, 0,
2985 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2986 0, 0, 0, 0, 0, 0, 0, 0, 692, 0,
2987 917, 694, 918, 696, 0, 722, 723, 699, 929, 420,
2988 421, 422, 423, 424, 425, 426, 427, 428, 429, 700,
2989 466, 467, 468, 469, 470, 471, 472, 689, 690, 475,
2990 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
2991 486, 487, 488, 489, 0, 0, 490, 491, 0, 492,
2992 0, 493, 494, 495, 496, 497, 498, 499, 0, 500,
2993 501, 502, 503, 504, 505, 391, 392, 393, 394, 395,
2994 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
2995 406, 407, 408, 409, 410, 411, 412, 413, 0, 691,
2996 0, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2997 40, 41, 162, 163, 164, 165, 166, 167, 168, 169,
2998 170, 171, 172, 173, 174, 0, 0, 0, 0, 0,
2999 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3000 0, 0, 0, 0, 0, 0, 0, 0, 692, 0,
3001 693, 694, 695, 696, 0, 697, 698, 699, 0, 420,
3002 421, 422, 423, 424, 425, 426, 427, 428, 429, 700,
3003 466, 467, 468, 469, 470, 471, 472, 689, 690, 475,
3004 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
3005 486, 487, 488, 489, 0, 0, 490, 491, 0, 492,
3006 0, 493, 494, 495, 496, 497, 498, 499, 0, 500,
3007 501, 502, 503, 504, 505, 391, 392, 393, 394, 395,
3008 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
3009 406, 407, 408, 409, 410, 411, 412, 413, 0, 691,
3010 0, 31, 32, 33, 34, 35, 36, 37, 38, 39,
3011 40, 41, 162, 163, 164, 165, 166, 167, 168, 169,
3012 170, 171, 172, 173, 174, 0, 0, 0, 0, 0,
3013 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3014 0, 0, 0, 0, 0, 0, 0, 0, 692, 0,
3015 693, 694, 695, 696, 0, 697, 928, 699, 0, 420,
3016 421, 422, 423, 424, 425, 426, 427, 428, 429, 700,
3017 466, 467, 468, 469, 470, 471, 472, 689, 690, 475,
3018 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
3019 486, 487, 488, 489, 0, 0, 490, 491, 0, 492,
3020 0, 493, 494, 495, 496, 497, 498, 499, 0, 500,
3021 501, 502, 503, 504, 505, 391, 392, 393, 394, 395,
3022 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
3023 406, 407, 408, 409, 410, 411, 412, 413, 0, 691,
3024 0, 31, 32, 33, 34, 35, 36, 37, 38, 39,
3025 40, 41, 162, 163, 164, 165, 166, 167, 168, 169,
3026 170, 171, 172, 173, 174, 0, 0, 0, 0, 0,
3027 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3028 0, 0, 0, 0, 0, 0, 0, 0, 692, 0,
3029 0, 694, 0, 696, 0, 722, 723, 699, 0, 420,
3030 421, 422, 423, 424, 425, 426, 427, 428, 429, 700,
3031 466, 467, 468, 469, 470, 471, 472, 689, 690, 475,
3032 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
3033 486, 487, 488, 489, 0, 0, 490, 491, 0, 492,
3034 0, 493, 494, 495, 496, 497, 498, 499, 0, 500,
3035 501, 502, 503, 504, 505, 391, 392, 393, 394, 395,
3036 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
3037 406, 407, 408, 409, 410, 411, 412, 413, 0, 691,
3038 0, 31, 32, 33, 34, 35, 36, 37, 38, 39,
3039 40, 41, 162, 163, 164, 165, 166, 167, 168, 169,
3040 170, 171, 172, 173, 174, 0, 0, 0, 0, 0,
3041 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3042 0, 0, 0, 0, 0, 0, 0, 0, 692, 0,
3043 0, 694, 0, 696, 0, 697, 0, 699, 0, 420,
3044 421, 422, 423, 424, 425, 426, 427, 428, 429, 700,
3045 5, 6, 7, 8, 9, 10, 11, 16, 17, 18,
3046 19, 20, 21, 22, 352, 161, 12, 13, 14, 15,
3047 353, 0, 0, 16, 17, 18, 19, 20, 21, 22,
3048 773, 161, 24, 25, 0, 26, 27, 0, 774, 0,
3049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3050 0, 0, 0, 0, 0, 31, 32, 33, 34, 35,
3051 36, 37, 38, 39, 40, 41, 0, 0, 0, 30,
3052 0, 31, 32, 33, 34, 35, 36, 37, 38, 39,
3053 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
3054 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
3055 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
3056 70, 71, 72, 73, 74, 75, 775, 776, 5, 6,
3057 7, 8, 9, 10, 11, 0, 0, 0, 0, 77,
3058 0, 0, 0, 0, 12, 13, 14, 15, 0, 0,
3059 0, 16, 17, 18, 19, 20, 21, 22, 0, 23,
3060 24, 25, 0, 26, 27, 28, 29, 0, 0, 0,
3061 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3062 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3063 0, 0, 0, 0, 0, 0, 0, 30, 0, 31,
3064 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
3065 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
3066 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
3067 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
3068 72, 73, 74, 75, 0, 76, 5, 6, 7, 8,
3069 9, 10, 11, 0, 0, 0, 0, 77, 0, 0,
3070 0, 0, 12, 13, 14, 231, 0, 0, 0, 16,
3071 17, 18, 19, 20, 21, 22, 0, 161, 24, 25,
3072 0, 26, 0, 0, 0, 0, 0, 0, 0, 0,
3073 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3074 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3075 0, 0, 0, 0, 0, 30, 0, 31, 32, 33,
3076 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
3077 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3078 54, 5, 6, 7, 8, 9, 10, 11, 0, 0,
3079 0, 0, 0, 0, 0, 0, 0, 12, 13, 14,
3080 15, 0, 0, 0, 16, 17, 18, 19, 20, 21,
3081 22, 0, 161, 24, 0, 77, 26, 27, 0, 0,
3082 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3083 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3084 0, 0, 308, 309, 310, 311, 312, 313, 314, 0,
3085 30, 0, 31, 32, 33, 34, 35, 36, 37, 38,
3086 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
3087 49, 50, 51, 52, 53, 54, 5, 6, 7, 8,
3088 9, 10, 11, 0, 0, 0, 0, 0, 0, 0,
3089 0, 0, 12, 13, 14, 231, 0, 0, 0, 16,
3090 17, 18, 19, 20, 21, 22, 0, 161, 24, 0,
3091 77, 26, 0, 0, 0, 0, 0, 0, 0, 0,
3092 0, 0, 0, 0, 134, 135, 136, 137, 138, 139,
3093 140, 141, 142, 143, 144, 145, 146, 127, 128, 129,
3094 130, 131, 132, 133, 0, 30, 0, 31, 32, 33,
3095 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
3096 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3097 54, 77, 191, 0, 192, 0, 0, 0, 0, 0,
3098 0, 0, 0, 0, 0, 127, 128, 129, 130, 131,
3099 132, 133, 273, 274, 0, 0, 0, 0, 0, 0,
3100 0, 0, 0, 0, 0, 77, 30, 308, 309, 310,
3101 311, 312, 313, 314, 736, 737, 0, 24, 0, 134,
3102 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
3103 145, 146, 0, 127, 128, 129, 130, 131, 132, 133,
3104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3105 0, 0, 0, 0, 0, 127, 128, 129, 130, 131,
3106 132, 133, 0, 0, 0, 0, 77, 134, 135, 136,
3107 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
3108 0, 0, 0, 0, 0, 0, 0, 24, 251, 134,
3109 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
3110 145, 146, 30, 308, 309, 310, 311, 312, 313, 314,
3111 273, 274, 0, 0, 77, 134, 135, 136, 137, 138,
3112 139, 140, 141, 142, 143, 144, 145, 146, 0, 0,
3113 738, 0, 0, 0, 0, 0, 77, 134, 135, 136,
3114 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
3115 0, 904, 0, 0, 905, 0, 0, 0, 0, 0,
3116 0, 0, 77, 0, 127, 128, 129, 130, 131, 132,
3117 133, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3118 0, 0, 0, 0, 77, 134, 135, 136, 137, 138,
3119 139, 140, 141, 142, 143, 144, 145, 146, 0, 191,
3120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3121 0, 0, 127, 128, 129, 130, 131, 132, 133, 0,
3122 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3123 0, 0, 77, 30, 127, 128, 129, 130, 131, 132,
3124 133, 0, 0, 0, 0, 0, 134, 135, 136, 137,
3125 138, 139, 140, 141, 142, 143, 144, 145, 146, 0,
3126 127, 128, 129, 130, 131, 132, 133, 251, 0, 0,
3127 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3128 0, 30, 0, 0, 0, 0, 0, 0, 0, 0,
3129 0, 0, 24, 77, 134, 135, 136, 137, 138, 139,
3130 140, 141, 142, 143, 144, 145, 146, 0, 0, 0,
3131 0, 0, 0, 0, 0, 0, 134, 135, 136, 137,
3132 138, 139, 140, 141, 142, 143, 144, 145, 146, 0,
3133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3134 0, 77, 134, 135, 136, 137, 138, 139, 140, 141,
3135 142, 143, 144, 145, 146, 0, 0, 0, 0, 0,
3136 0, 0, 0, 77, 16, 17, 18, 19, 20, 21,
3137 22, 352, 161, 0, 0, 0, 0, 353, 0, 0,
3138 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,
3139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3140 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3141 0, 0, 31, 32, 33, 34, 35, 36, 37, 38,
3142 39, 40, 41, 389, 390, 0, 0, 0, 0, 391,
3143 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
3144 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
3145 412, 413, 0, 0, 0, 0, 0, 154, 155, 156,
3146 157, 158, 159, 160, 0, 0, 0, 0, 0, 0,
3147 0, 289, 290, 12, 13, 14, 231, 0, 0, 0,
3148 16, 17, 18, 19, 20, 21, 22, 0, 161, 24,
3149 25, 0, 26, 0, 0, 0, 0, 0, 0, 0,
3150 0, 0, 0, 0, 414, 0, 415, 416, 0, 417,
3151 418, 419, 0, 420, 421, 422, 423, 424, 425, 426,
3152 427, 428, 429, 0, 0, 0, 30, 0, 31, 32,
3153 33, 34, 35, 36, 37, 38, 39, 40, 41, 162,
3154 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
3155 173, 174, 154, 155, 156, 157, 158, 159, 160, 0,
3156 0, 0, 0, 0, 0, 0, 0, 0, 12, 13,
3157 14, 15, 0, 0, 0, 16, 17, 18, 19, 20,
3158 21, 22, 0, 161, 24, 0, 0, 26, 27, 0,
3159 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3160 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3161 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3162 0, 30, 0, 31, 32, 33, 34, 35, 36, 37,
3163 38, 39, 40, 41, 162, 163, 164, 165, 166, 167,
3164 168, 169, 170, 171, 172, 173, 174, 154, 155, 156,
3165 157, 158, 159, 160, 0, 0, 0, 0, 0, 0,
3166 0, 0, 0, 12, 13, 14, 231, 0, 0, 0,
3167 16, 17, 18, 19, 20, 21, 22, 0, 161, 24,
3168 0, 0, 26, 0, 0, 0, 0, 0, 0, 0,
3169 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3170 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3171 0, 0, 0, 0, 0, 0, 30, 0, 31, 32,
3172 33, 34, 35, 36, 37, 38, 39, 40, 41, 162,
3173 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
3174 173, 174, 154, 155, 156, 157, 158, 159, 160, 0,
3175 0, 0, 0, 0, 0, 0, 0, 0, 12, 13,
3176 14, 15, 0, 0, 0, 16, 17, 18, 19, 20,
3177 21, 22, 0, 161, 0, 0, 0, 26, 0, 0,
3178 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3180 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3181 0, 30, 0, 31, 32, 33, 34, 35, 36, 37,
3182 38, 39, 40, 41, 162, 163, 164, 165, 166, 167,
3183 168, 169, 170, 171, 172, 173, 174, 154, 155, 156,
3184 157, 158, 159, 160, 0, 0, 0, 0, 0, 0,
3185 0, 0, 0, 12, 13, 14, 231, 0, 0, 0,
3186 16, 17, 18, 19, 20, 21, 22, 0, 161, 0,
3187 0, 0, 26, 154, 155, 156, 157, 158, 159, 160,
3188 0, 0, 0, 0, 0, 0, 0, 0, 0, 617,
3189 0, 618, 619, 0, 0, 0, 16, 17, 18, 19,
3190 20, 21, 22, 0, 161, 0, 30, 0, 31, 32,
3191 33, 34, 35, 36, 37, 38, 39, 40, 41, 162,
3192 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
3193 173, 174, 0, 0, 0, 0, 0, 0, 0, 0,
3194 0, 0, 30, 0, 31, 32, 33, 34, 35, 36,
3195 37, 38, 39, 40, 41, 162, 163, 164, 165, 166,
3196 167, 168, 169, 170, 171, 172, 173, 174
3199 static const yytype_int16 yycheck[] =
3201 4, 27, 96, 4, 28, 4, 27, 4, 99, 100,
3202 101, 15, 284, 115, 4, 120, 286, 4, 15, 321,
3203 4, 602, 120, 387, 181, 29, 121, 687, 15, 109,
3204 584, 727, 29, 448, 115, 115, 4, 27, 298, 581,
3205 195, 195, 109, 27, 803, 286, 109, 72, 590, 120,
3206 121, 802, 29, 4, 629, 668, 305, 599, 241, 72,
3207 931, 29, 72, 229, 109, 835, 111, 26, 10, 11,
3208 372, 23, 24, 25, 278, 826, 27, 0, 37, 950,
3209 900, 72, 120, 181, 88, 905, 149, 0, 126, 115,
3210 72, 88, 668, 20, 115, 120, 115, 639, 90, 180,
3211 370, 88, 10, 11, 149, 109, 96, 111, 20, 36,
3212 12, 38, 96, 126, 111, 775, 120, 321, 128, 26,
3213 128, 28, 72, 126, 72, 329, 38, 284, 96, 370,
3214 37, 115, 195, 110, 239, 112, 125, 128, 958, 124,
3215 129, 126, 121, 724, 225, 149, 128, 115, 229, 153,
3216 195, 196, 120, 104, 180, 120, 153, 238, 238, 180,
3217 773, 180, 126, 933, 123, 740, 153, 248, 372, 126,
3218 122, 126, 176, 150, 120, 330, 330, 936, 128, 176,
3219 128, 286, 941, 175, 126, 177, 284, 191, 192, 176,
3220 270, 195, 196, 584, 191, 192, 180, 773, 613, 196,
3221 321, 72, 179, 270, 191, 192, 965, 270, 303, 785,
3222 305, 602, 238, 462, 463, 381, 126, 383, 126, 238,
3223 72, 802, 303, 286, 305, 270, 120, 231, 196, 248,
3224 195, 806, 126, 126, 231, 239, 932, 130, 72, 72,
3225 126, 120, 120, 247, 231, 826, 236, 126, 126, 120,
3226 247, 372, 236, 120, 238, 126, 126, 832, 356, 126,
3227 247, 836, 266, 72, 126, 370, 270, 330, 236, 266,
3228 238, 239, 532, 265, 239, 267, 128, 126, 120, 266,
3229 257, 258, 286, 440, 126, 330, 126, 120, 369, 369,
3230 130, 120, 873, 126, 128, 128, 956, 126, 121, 72,
3231 381, 124, 383, 460, 296, 126, 120, 370, 889, 126,
3232 287, 120, 126, 126, 306, 307, 120, 126, 322, 128,
3233 297, 286, 126, 120, 688, 322, 330, 510, 126, 126,
3234 120, 885, 120, 724, 455, 518, 126, 125, 640, 641,
3235 642, 126, 440, 369, 120, 887, 529, 120, 120, 125,
3236 369, 375, 72, 126, 126, 128, 812, 361, 814, 126,
3237 816, 126, 460, 120, 361, 330, 370, 462, 463, 126,
3238 451, 375, 72, 72, 361, 126, 72, 931, 329, 120,
3239 121, 462, 463, 124, 126, 369, 3, 4, 5, 6,
3240 7, 8, 9, 126, 386, 126, 950, 126, 120, 121,
3241 120, 369, 124, 321, 120, 370, 126, 126, 128, 133,
3242 134, 802, 3, 4, 5, 6, 7, 8, 9, 225,
3243 120, 120, 72, 229, 120, 128, 126, 126, 128, 128,
3244 126, 121, 128, 121, 907, 826, 640, 641, 642, 912,
3245 804, 3, 4, 5, 6, 7, 8, 9, 120, 121,
3246 129, 455, 124, 12, 372, 123, 457, 120, 455, 120,
3247 121, 26, 27, 124, 121, 455, 26, 27, 740, 446,
3248 943, 944, 124, 946, 3, 4, 5, 6, 7, 8,
3249 9, 72, 873, 13, 14, 15, 126, 960, 126, 126,
3250 881, 882, 883, 884, 885, 886, 126, 303, 889, 305,
3251 123, 803, 130, 124, 121, 121, 120, 588, 23, 24,
3252 25, 130, 125, 125, 125, 125, 125, 125, 125, 640,
3253 641, 642, 125, 125, 125, 795, 125, 125, 125, 624,
3254 125, 127, 125, 127, 120, 120, 124, 19, 20, 21,
3255 931, 622, 131, 638, 26, 27, 28, 29, 30, 31,
3256 32, 127, 34, 130, 531, 127, 127, 130, 122, 950,
3257 36, 127, 120, 120, 120, 30, 127, 18, 131, 120,
3258 125, 125, 125, 125, 122, 381, 125, 383, 582, 123,
3259 123, 127, 120, 20, 131, 582, 125, 120, 120, 125,
3260 127, 861, 543, 124, 122, 582, 131, 71, 125, 803,
3261 125, 127, 579, 622, 127, 127, 127, 127, 127, 127,
3262 127, 127, 125, 617, 618, 619, 127, 127, 127, 127,
3263 617, 618, 619, 127, 125, 127, 120, 123, 131, 127,
3264 617, 618, 619, 125, 936, 13, 13, 792, 940, 941,
3265 120, 127, 127, 127, 621, 451, 127, 120, 127, 4,
3266 365, 668, 672, 564, 676, 857, 462, 463, 459, 668,
3267 638, 460, 668, 965, 668, 731, 670, 668, 672, 668,
3268 674, 668, 4, 670, 785, 672, 773, 674, 668, 808,
3269 878, 668, 803, 670, 668, 672, 916, 674, 668, 356,
3270 795, 785, 794, 355, 645, 932, 787, 795, 649, 650,
3271 668, 962, 653, 654, 655, 656, 657, 658, 659, 660,
3272 661, 662, 741, 794, 794, 870, 721, 668, 606, 668,
3273 295, 904, 640, 641, 642, 295, 815, 794, -1, 792,
3274 883, 682, 936, -1, -1, 718, 940, 941, -1, -1,
3275 -1, -1, -1, -1, -1, -1, -1, 792, -1, -1,
3276 -1, -1, 744, 834, -1, -1, 861, -1, -1, -1,
3277 -1, 965, -1, 857, -1, -1, -1, 858, 794, 773,
3278 774, 795, 773, 794, -1, 794, -1, 774, 584, 860,
3279 860, 785, 588, 773, 865, 865, 785, -1, 792, 773,
3280 794, 795, -1, 860, -1, 785, 602, 774, 865, -1,
3281 -1, 785, -1, -1, 808, 756, 774, 870, 759, 890,
3282 794, 808, -1, -1, -1, 936, 793, 785, -1, 940,
3283 941, 808, 773, -1, -1, 870, 794, 792, -1, 910,
3284 795, -1, -1, -1, 785, -1, 828, 861, -1, 865,
3285 -1, 860, -1, -1, 965, -1, 865, -1, -1, -1,
3286 -1, 855, -1, -1, -1, -1, 860, 861, 855, -1,
3287 -1, 865, -1, 109, -1, -1, 870, 857, 855, -1,
3288 -1, -1, -1, 857, 120, -1, 860, -1, -1, -1,
3289 -1, 865, 859, -1, -1, 803, -1, -1, -1, -1,
3290 -1, -1, -1, -1, -1, -1, 861, 865, -1, -1,
3291 -1, -1, -1, -1, 908, 870, -1, -1, 912, -1,
3292 -1, 908, -1, -1, -1, 912, -1, -1, 724, -1,
3293 -1, 908, -1, -1, -1, 912, 910, -1, -1, -1,
3294 -1, -1, -1, -1, -1, 181, -1, -1, -1, -1,
3295 944, -1, -1, -1, -1, -1, -1, 944, -1, -1,
3296 -1, 197, -1, -1, -1, 201, 202, 944, 204, 205,
3297 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
3298 216, 217, 3, 4, 5, 6, 7, 8, 9, 10,
3299 11, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3300 -1, -1, -1, 239, -1, -1, 802, -1, -1, -1,
3301 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3302 -1, -1, -1, -1, -1, -1, -1, -1, 936, -1,
3303 826, -1, 940, 941, 270, -1, -1, -1, 834, -1,
3304 -1, -1, -1, -1, -1, -1, -1, -1, 284, -1,
3305 286, -1, -1, -1, -1, -1, -1, 965, -1, -1,
3306 -1, -1, -1, -1, 85, 86, 87, 88, 89, 90,
3307 91, 92, 93, 94, 95, 96, 97, 873, -1, -1,
3308 -1, -1, -1, -1, -1, 881, 882, 883, 884, 885,
3309 886, -1, -1, 889, 890, -1, 332, 333, 334, -1,
3310 -1, 337, -1, -1, -1, 126, -1, -1, -1, -1,
3311 -1, 132, 133, 134, -1, -1, -1, -1, -1, -1,
3312 356, -1, -1, -1, 3, 4, 5, 6, 7, 8,
3313 9, 367, -1, -1, 370, 931, -1, -1, -1, -1,
3314 -1, -1, -1, -1, 23, 24, 25, -1, -1, -1,
3315 -1, 30, -1, -1, 950, -1, -1, -1, -1, -1,
3316 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3317 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3318 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3319 -1, -1, -1, 72, -1, -1, -1, -1, -1, -1,
3320 -1, -1, -1, -1, 440, -1, 85, 86, 87, 88,
3321 89, 90, 91, 92, 93, 94, 95, 96, 97, -1,
3322 -1, -1, -1, -1, 460, 3, 4, 5, 6, 7,
3323 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
3324 18, 19, 20, 21, 22, 23, 24, 25, 26, -1,
3325 -1, 29, 30, 132, 32, -1, 34, 35, 36, 37,
3326 38, 39, 40, -1, 42, 43, 44, 45, 46, 47,
3327 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3328 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
3329 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3330 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
3331 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
3332 556, -1, 26, 27, 28, 29, 30, 31, 32, 33,
3333 34, -1, -1, -1, -1, 39, -1, -1, -1, -1,
3334 -1, -1, 120, 121, 122, 123, 124, 125, 126, -1,
3335 128, 129, 130, -1, 132, 133, 134, 135, 136, 137,
3336 138, 139, 140, 141, 142, -1, -1, -1, -1, -1,
3337 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3338 84, -1, -1, -1, -1, -1, -1, 623, -1, -1,
3339 -1, -1, -1, 629, -1, -1, 3, 4, 5, 6,
3340 7, 8, 9, -1, -1, -1, -1, -1, -1, -1,
3341 -1, -1, 19, 20, 21, 22, 120, -1, -1, 26,
3342 27, 28, 29, 30, 31, 32, -1, 34, -1, 133,
3343 134, 38, 668, -1, -1, 42, 43, -1, -1, -1,
3344 676, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3345 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
3346 67, 68, 69, 70, -1, 72, -1, 74, 75, 76,
3347 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
3348 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
3349 97, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3350 -1, -1, -1, -1, 740, -1, -1, -1, -1, -1,
3351 -1, -1, -1, -1, -1, -1, 123, -1, 125, 126,
3352 -1, 128, 129, 130, -1, 132, 133, 134, 135, 136,
3353 137, 138, 139, 140, 141, -1, -1, 773, -1, -1,
3354 -1, -1, -1, -1, -1, -1, -1, -1, -1, 785,
3355 -1, -1, -1, -1, -1, -1, -1, -1, 794, 795,
3356 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3357 806, -1, -1, 85, 86, 87, 88, 89, 90, 91,
3358 92, 93, 94, 95, 96, 97, -1, -1, -1, -1,
3359 -1, -1, -1, -1, -1, -1, 832, -1, -1, -1,
3360 836, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3361 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3362 132, 133, 134, -1, 860, 861, -1, -1, -1, 865,
3363 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3364 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3365 23, 24, 25, 26, -1, -1, 29, 30, -1, 32,
3366 -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
3367 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3368 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3369 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3370 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3371 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3372 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
3373 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3374 -1, -1, -1, -1, -1, -1, -1, 120, 121, 122,
3375 123, 124, 125, 126, -1, 128, 129, 130, -1, 132,
3376 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3377 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3378 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3379 23, 24, 25, 26, -1, -1, 29, 30, -1, 32,
3380 -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
3381 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3382 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3383 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3384 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3385 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3386 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
3387 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3388 -1, -1, -1, -1, -1, -1, -1, 120, 121, 122,
3389 123, 124, 125, 126, -1, 128, 129, 130, -1, 132,
3390 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3391 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3392 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3393 23, 24, 25, 26, -1, -1, 29, 30, -1, 32,
3394 -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
3395 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3396 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3397 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3398 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3399 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3400 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
3401 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3402 -1, -1, -1, -1, -1, -1, -1, 120, 121, -1,
3403 123, 124, 125, 126, -1, 128, 129, 130, 131, 132,
3404 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3405 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3406 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3407 23, 24, 25, 26, -1, -1, 29, 30, -1, 32,
3408 -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
3409 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3410 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3411 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3412 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3413 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3414 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
3415 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3416 -1, -1, -1, -1, -1, -1, -1, 120, 121, -1,
3417 123, 124, 125, 126, 127, 128, 129, 130, -1, 132,
3418 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3419 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3420 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3421 23, 24, 25, 26, -1, -1, 29, 30, -1, 32,
3422 -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
3423 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3424 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3425 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3426 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3427 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3428 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
3429 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3430 -1, -1, -1, -1, -1, -1, -1, 120, 121, 122,
3431 123, 124, 125, 126, -1, 128, 129, 130, -1, 132,
3432 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3433 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3434 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3435 23, 24, 25, 26, -1, -1, 29, 30, -1, 32,
3436 -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
3437 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3438 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3439 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3440 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3441 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3442 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
3443 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3444 -1, -1, -1, -1, -1, -1, -1, 120, 121, -1,
3445 123, 124, 125, 126, -1, 128, 129, 130, -1, 132,
3446 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3447 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3448 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3449 23, 24, 25, 26, -1, -1, 29, 30, -1, 32,
3450 -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
3451 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3452 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3453 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3454 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3455 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3456 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
3457 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3458 -1, -1, -1, -1, -1, -1, -1, -1, 121, -1,
3459 123, 124, 125, 126, 127, 128, 129, 130, -1, 132,
3460 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3461 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3462 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3463 23, 24, 25, 26, -1, -1, 29, 30, -1, 32,
3464 -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
3465 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3466 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3467 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3468 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3469 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3470 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
3471 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3472 -1, -1, -1, -1, -1, -1, -1, 120, 121, -1,
3473 123, 124, 125, 126, -1, 128, 129, 130, -1, 132,
3474 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3475 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3476 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3477 23, 24, 25, 26, -1, -1, 29, 30, -1, 32,
3478 -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
3479 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3480 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3481 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3482 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3483 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3484 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
3485 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3486 -1, -1, -1, -1, -1, -1, -1, 120, 121, -1,
3487 123, 124, 125, 126, -1, 128, 129, 130, -1, 132,
3488 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3489 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3490 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3491 23, 24, 25, 26, -1, -1, 29, 30, -1, 32,
3492 -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
3493 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3494 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3495 63, 64, 65, 66, 67, 68, 69, 70, -1, 72,
3496 -1, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3497 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3498 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
3499 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3500 -1, -1, -1, -1, -1, -1, -1, 120, 121, 122,
3501 123, 124, 125, 126, -1, 128, 129, 130, -1, 132,
3502 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3503 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3504 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3505 23, 24, 25, 26, -1, -1, 29, 30, -1, 32,
3506 -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
3507 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3508 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3509 63, 64, 65, 66, 67, 68, 69, 70, -1, 72,
3510 -1, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3511 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3512 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
3513 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3514 -1, -1, -1, -1, -1, -1, -1, -1, 121, -1,
3515 123, 124, 125, 126, 127, 128, 129, 130, -1, 132,
3516 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3517 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3518 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3519 23, 24, 25, 26, -1, -1, 29, 30, -1, 32,
3520 -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
3521 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3522 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3523 63, 64, 65, 66, 67, 68, 69, 70, -1, 72,
3524 -1, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3525 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3526 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
3527 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3528 -1, -1, -1, -1, -1, -1, -1, -1, 121, -1,
3529 123, 124, 125, 126, 127, 128, 129, 130, -1, 132,
3530 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3531 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3532 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3533 23, 24, 25, 26, -1, -1, 29, 30, -1, 32,
3534 -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
3535 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3536 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3537 63, 64, 65, 66, 67, 68, 69, 70, -1, 72,
3538 -1, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3539 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3540 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
3541 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3542 -1, -1, -1, -1, -1, -1, -1, -1, 121, -1,
3543 123, 124, 125, 126, 127, 128, 129, 130, -1, 132,
3544 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3545 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3546 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3547 23, 24, 25, 26, -1, -1, 29, 30, -1, 32,
3548 -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
3549 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3550 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3551 63, 64, 65, 66, 67, 68, 69, 70, -1, 72,
3552 -1, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3553 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3554 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
3555 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3556 -1, -1, -1, -1, -1, -1, -1, -1, 121, -1,
3557 123, 124, 125, 126, -1, 128, 129, 130, 131, 132,
3558 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3559 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3560 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3561 23, 24, 25, 26, -1, -1, 29, 30, -1, 32,
3562 -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
3563 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3564 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3565 63, 64, 65, 66, 67, 68, 69, 70, -1, 72,
3566 -1, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3567 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3568 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
3569 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3570 -1, -1, -1, -1, -1, -1, -1, -1, 121, -1,
3571 123, 124, 125, 126, -1, 128, 129, 130, -1, 132,
3572 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3573 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3574 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3575 23, 24, 25, 26, -1, -1, 29, 30, -1, 32,
3576 -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
3577 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3578 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3579 63, 64, 65, 66, 67, 68, 69, 70, -1, 72,
3580 -1, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3581 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3582 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
3583 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3584 -1, -1, -1, -1, -1, -1, -1, -1, 121, -1,
3585 123, 124, 125, 126, -1, 128, 129, 130, -1, 132,
3586 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3587 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3588 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3589 23, 24, 25, 26, -1, -1, 29, 30, -1, 32,
3590 -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
3591 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3592 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3593 63, 64, 65, 66, 67, 68, 69, 70, -1, 72,
3594 -1, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3595 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3596 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
3597 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3598 -1, -1, -1, -1, -1, -1, -1, -1, 121, -1,
3599 -1, 124, -1, 126, -1, 128, 129, 130, -1, 132,
3600 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3601 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3602 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3603 23, 24, 25, 26, -1, -1, 29, 30, -1, 32,
3604 -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
3605 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
3606 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
3607 63, 64, 65, 66, 67, 68, 69, 70, -1, 72,
3608 -1, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3609 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3610 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
3611 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3612 -1, -1, -1, -1, -1, -1, -1, -1, 121, -1,
3613 -1, 124, -1, 126, -1, 128, -1, 130, -1, 132,
3614 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3615 3, 4, 5, 6, 7, 8, 9, 26, 27, 28,
3616 29, 30, 31, 32, 33, 34, 19, 20, 21, 22,
3617 39, -1, -1, 26, 27, 28, 29, 30, 31, 32,
3618 33, 34, 35, 36, -1, 38, 39, -1, 41, -1,
3619 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3620 -1, -1, -1, -1, -1, 74, 75, 76, 77, 78,
3621 79, 80, 81, 82, 83, 84, -1, -1, -1, 72,
3622 -1, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3623 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3624 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
3625 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
3626 113, 114, 115, 116, 117, 118, 119, 120, 3, 4,
3627 5, 6, 7, 8, 9, -1, -1, -1, -1, 132,
3628 -1, -1, -1, -1, 19, 20, 21, 22, -1, -1,
3629 -1, 26, 27, 28, 29, 30, 31, 32, -1, 34,
3630 35, 36, -1, 38, 39, 40, 41, -1, -1, -1,
3631 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3632 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3633 -1, -1, -1, -1, -1, -1, -1, 72, -1, 74,
3634 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
3635 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
3636 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
3637 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
3638 115, 116, 117, 118, -1, 120, 3, 4, 5, 6,
3639 7, 8, 9, -1, -1, -1, -1, 132, -1, -1,
3640 -1, -1, 19, 20, 21, 22, -1, -1, -1, 26,
3641 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
3642 -1, 38, -1, -1, -1, -1, -1, -1, -1, -1,
3643 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3644 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3645 -1, -1, -1, -1, -1, 72, -1, 74, 75, 76,
3646 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
3647 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
3648 97, 3, 4, 5, 6, 7, 8, 9, -1, -1,
3649 -1, -1, -1, -1, -1, -1, -1, 19, 20, 21,
3650 22, -1, -1, -1, 26, 27, 28, 29, 30, 31,
3651 32, -1, 34, 35, -1, 132, 38, 39, -1, -1,
3652 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3653 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3654 -1, -1, 3, 4, 5, 6, 7, 8, 9, -1,
3655 72, -1, 74, 75, 76, 77, 78, 79, 80, 81,
3656 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
3657 92, 93, 94, 95, 96, 97, 3, 4, 5, 6,
3658 7, 8, 9, -1, -1, -1, -1, -1, -1, -1,
3659 -1, -1, 19, 20, 21, 22, -1, -1, -1, 26,
3660 27, 28, 29, 30, 31, 32, -1, 34, 35, -1,
3661 132, 38, -1, -1, -1, -1, -1, -1, -1, -1,
3662 -1, -1, -1, -1, 85, 86, 87, 88, 89, 90,
3663 91, 92, 93, 94, 95, 96, 97, 3, 4, 5,
3664 6, 7, 8, 9, -1, 72, -1, 74, 75, 76,
3665 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
3666 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
3667 97, 132, 38, -1, 40, -1, -1, -1, -1, -1,
3668 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
3669 8, 9, 10, 11, -1, -1, -1, -1, -1, -1,
3670 -1, -1, -1, -1, -1, 132, 72, 3, 4, 5,
3671 6, 7, 8, 9, 10, 11, -1, 35, -1, 85,
3672 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
3673 96, 97, -1, 3, 4, 5, 6, 7, 8, 9,
3674 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3675 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
3676 8, 9, -1, -1, -1, -1, 132, 85, 86, 87,
3677 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
3678 -1, -1, -1, -1, -1, -1, -1, 35, 36, 85,
3679 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
3680 96, 97, 72, 3, 4, 5, 6, 7, 8, 9,
3681 10, 11, -1, -1, 132, 85, 86, 87, 88, 89,
3682 90, 91, 92, 93, 94, 95, 96, 97, -1, -1,
3683 126, -1, -1, -1, -1, -1, 132, 85, 86, 87,
3684 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
3685 -1, 121, -1, -1, 124, -1, -1, -1, -1, -1,
3686 -1, -1, 132, -1, 3, 4, 5, 6, 7, 8,
3687 9, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3688 -1, -1, -1, -1, 132, 85, 86, 87, 88, 89,
3689 90, 91, 92, 93, 94, 95, 96, 97, -1, 38,
3690 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3691 -1, -1, 3, 4, 5, 6, 7, 8, 9, -1,
3692 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3693 -1, -1, 132, 72, 3, 4, 5, 6, 7, 8,
3694 9, -1, -1, -1, -1, -1, 85, 86, 87, 88,
3695 89, 90, 91, 92, 93, 94, 95, 96, 97, -1,
3696 3, 4, 5, 6, 7, 8, 9, 36, -1, -1,
3697 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3698 -1, 72, -1, -1, -1, -1, -1, -1, -1, -1,
3699 -1, -1, 35, 132, 85, 86, 87, 88, 89, 90,
3700 91, 92, 93, 94, 95, 96, 97, -1, -1, -1,
3701 -1, -1, -1, -1, -1, -1, 85, 86, 87, 88,
3702 89, 90, 91, 92, 93, 94, 95, 96, 97, -1,
3703 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3704 -1, 132, 85, 86, 87, 88, 89, 90, 91, 92,
3705 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
3706 -1, -1, -1, 132, 26, 27, 28, 29, 30, 31,
3707 32, 33, 34, -1, -1, -1, -1, 39, -1, -1,
3708 -1, -1, -1, -1, -1, -1, -1, -1, -1, 132,
3709 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3710 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3711 -1, -1, 74, 75, 76, 77, 78, 79, 80, 81,
3712 82, 83, 84, 42, 43, -1, -1, -1, -1, 48,
3713 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
3714 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
3715 69, 70, -1, -1, -1, -1, -1, 3, 4, 5,
3716 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,
3717 -1, 133, 134, 19, 20, 21, 22, -1, -1, -1,
3718 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
3719 36, -1, 38, -1, -1, -1, -1, -1, -1, -1,
3720 -1, -1, -1, -1, 123, -1, 125, 126, -1, 128,
3721 129, 130, -1, 132, 133, 134, 135, 136, 137, 138,
3722 139, 140, 141, -1, -1, -1, 72, -1, 74, 75,
3723 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3724 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
3725 96, 97, 3, 4, 5, 6, 7, 8, 9, -1,
3726 -1, -1, -1, -1, -1, -1, -1, -1, 19, 20,
3727 21, 22, -1, -1, -1, 26, 27, 28, 29, 30,
3728 31, 32, -1, 34, 35, -1, -1, 38, 39, -1,
3729 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3730 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3731 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3732 -1, 72, -1, 74, 75, 76, 77, 78, 79, 80,
3733 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
3734 91, 92, 93, 94, 95, 96, 97, 3, 4, 5,
3735 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,
3736 -1, -1, -1, 19, 20, 21, 22, -1, -1, -1,
3737 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
3738 -1, -1, 38, -1, -1, -1, -1, -1, -1, -1,
3739 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3740 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3741 -1, -1, -1, -1, -1, -1, 72, -1, 74, 75,
3742 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3743 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
3744 96, 97, 3, 4, 5, 6, 7, 8, 9, -1,
3745 -1, -1, -1, -1, -1, -1, -1, -1, 19, 20,
3746 21, 22, -1, -1, -1, 26, 27, 28, 29, 30,
3747 31, 32, -1, 34, -1, -1, -1, 38, -1, -1,
3748 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3749 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3750 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3751 -1, 72, -1, 74, 75, 76, 77, 78, 79, 80,
3752 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
3753 91, 92, 93, 94, 95, 96, 97, 3, 4, 5,
3754 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,
3755 -1, -1, -1, 19, 20, 21, 22, -1, -1, -1,
3756 26, 27, 28, 29, 30, 31, 32, -1, 34, -1,
3757 -1, -1, 38, 3, 4, 5, 6, 7, 8, 9,
3758 -1, -1, -1, -1, -1, -1, -1, -1, -1, 19,
3759 -1, 21, 22, -1, -1, -1, 26, 27, 28, 29,
3760 30, 31, 32, -1, 34, -1, 72, -1, 74, 75,
3761 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3762 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
3763 96, 97, -1, -1, -1, -1, -1, -1, -1, -1,
3764 -1, -1, 72, -1, 74, 75, 76, 77, 78, 79,
3765 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
3766 90, 91, 92, 93, 94, 95, 96, 97
3769 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
3770 symbol of state STATE-NUM. */
3771 static const yytype_uint16 yystos[] =
3773 0, 144, 145, 0, 146, 3, 4, 5, 6, 7,
3774 8, 9, 19, 20, 21, 22, 26, 27, 28, 29,
3775 30, 31, 32, 34, 35, 36, 38, 39, 40, 41,
3776 72, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3777 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
3778 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
3779 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
3780 113, 114, 115, 116, 117, 118, 120, 132, 147, 148,
3781 149, 150, 152, 153, 154, 155, 156, 158, 161, 175,
3782 176, 178, 186, 187, 196, 198, 199, 216, 217, 218,
3783 219, 222, 223, 226, 232, 259, 289, 290, 291, 292,
3784 294, 295, 296, 298, 299, 302, 303, 304, 305, 306,
3785 308, 309, 312, 319, 320, 321, 327, 3, 4, 5,
3786 6, 7, 8, 9, 85, 86, 87, 88, 89, 90,
3787 91, 92, 93, 94, 95, 96, 97, 289, 291, 292,
3788 296, 12, 128, 313, 3, 4, 5, 6, 7, 8,
3789 9, 34, 85, 86, 87, 88, 89, 90, 91, 92,
3790 93, 94, 95, 96, 97, 156, 161, 176, 291, 296,
3791 302, 308, 3, 4, 5, 6, 7, 8, 9, 121,
3792 299, 38, 40, 197, 289, 292, 295, 126, 126, 126,
3793 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
3794 126, 126, 126, 126, 126, 126, 126, 126, 3, 4,
3795 5, 6, 7, 8, 9, 300, 157, 160, 289, 300,
3796 121, 22, 148, 154, 155, 183, 199, 216, 302, 308,
3797 120, 121, 237, 237, 237, 237, 126, 161, 302, 308,
3798 120, 36, 223, 240, 241, 244, 290, 294, 296, 298,
3799 295, 290, 291, 295, 128, 156, 161, 176, 187, 223,
3800 292, 303, 312, 10, 11, 227, 229, 231, 232, 233,
3801 238, 240, 260, 268, 271, 279, 292, 296, 298, 133,
3802 134, 265, 322, 323, 324, 326, 310, 296, 121, 129,
3803 200, 289, 12, 300, 289, 300, 156, 176, 3, 4,
3804 5, 6, 7, 8, 9, 191, 192, 195, 268, 279,
3805 298, 375, 123, 151, 289, 289, 120, 226, 231, 232,
3806 292, 298, 329, 332, 333, 298, 298, 337, 298, 298,
3807 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
3808 298, 298, 33, 39, 261, 264, 265, 301, 303, 321,
3809 121, 124, 168, 169, 120, 159, 261, 177, 289, 302,
3810 292, 298, 375, 224, 289, 293, 126, 242, 295, 295,
3811 297, 300, 289, 300, 223, 241, 311, 228, 126, 42,
3812 43, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3813 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
3814 67, 68, 69, 70, 123, 125, 126, 128, 129, 130,
3815 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
3816 351, 352, 234, 126, 262, 123, 256, 257, 268, 277,
3817 322, 281, 282, 283, 227, 233, 296, 124, 325, 323,
3818 324, 300, 145, 201, 203, 204, 206, 208, 188, 190,
3819 265, 188, 300, 300, 189, 126, 3, 4, 5, 6,
3820 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
3821 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
3822 29, 30, 32, 34, 35, 36, 37, 38, 39, 40,
3823 42, 43, 44, 45, 46, 47, 71, 72, 73, 120,
3824 121, 122, 123, 124, 125, 126, 128, 129, 130, 142,
3825 319, 352, 353, 354, 377, 378, 379, 380, 381, 382,
3826 291, 296, 121, 120, 226, 231, 125, 298, 298, 298,
3827 125, 125, 298, 125, 125, 125, 125, 125, 125, 125,
3828 125, 125, 125, 125, 127, 127, 125, 120, 262, 260,
3829 162, 23, 24, 25, 30, 170, 171, 174, 289, 168,
3830 120, 179, 180, 181, 298, 298, 122, 249, 250, 296,
3831 299, 245, 124, 246, 361, 261, 120, 261, 300, 234,
3832 230, 130, 130, 127, 131, 26, 37, 123, 235, 239,
3833 120, 125, 258, 127, 268, 130, 284, 285, 13, 14,
3834 15, 280, 306, 307, 122, 125, 129, 19, 21, 22,
3835 291, 296, 302, 314, 315, 318, 319, 20, 38, 211,
3836 199, 120, 189, 195, 120, 188, 188, 120, 125, 193,
3837 375, 375, 375, 120, 145, 328, 125, 127, 127, 334,
3838 336, 125, 308, 340, 342, 344, 346, 341, 343, 345,
3839 347, 348, 349, 298, 23, 24, 25, 122, 163, 164,
3840 173, 174, 125, 30, 172, 122, 125, 123, 123, 127,
3841 251, 253, 254, 295, 249, 247, 248, 289, 243, 10,
3842 11, 72, 121, 123, 124, 125, 126, 128, 129, 130,
3843 142, 320, 321, 352, 353, 354, 356, 363, 364, 365,
3844 367, 369, 373, 120, 120, 249, 131, 131, 236, 18,
3845 249, 263, 128, 129, 355, 356, 358, 269, 286, 285,
3846 306, 202, 289, 289, 289, 312, 10, 11, 126, 266,
3847 270, 278, 279, 265, 316, 266, 20, 120, 120, 190,
3848 249, 122, 131, 127, 122, 308, 330, 308, 308, 338,
3849 127, 308, 308, 308, 308, 308, 308, 308, 308, 308,
3850 308, 125, 350, 33, 41, 119, 120, 153, 155, 165,
3851 166, 167, 175, 186, 196, 199, 220, 221, 222, 241,
3852 259, 289, 292, 296, 302, 308, 327, 124, 289, 171,
3853 289, 181, 182, 376, 225, 125, 308, 127, 125, 381,
3854 234, 371, 372, 374, 370, 366, 368, 127, 369, 127,
3855 264, 358, 126, 272, 282, 287, 288, 203, 317, 205,
3856 266, 276, 322, 281, 300, 207, 209, 127, 127, 308,
3857 335, 127, 308, 127, 127, 127, 127, 127, 127, 127,
3858 127, 125, 125, 127, 153, 161, 184, 199, 221, 296,
3859 302, 308, 381, 155, 220, 302, 237, 120, 231, 241,
3860 292, 233, 296, 355, 120, 378, 234, 71, 252, 266,
3861 248, 357, 357, 362, 357, 361, 357, 273, 131, 355,
3862 300, 123, 212, 213, 127, 266, 212, 266, 194, 331,
3863 125, 339, 13, 13, 121, 124, 185, 289, 161, 184,
3864 302, 237, 161, 120, 231, 253, 255, 123, 125, 127,
3865 358, 359, 127, 120, 122, 359, 360, 127, 129, 131,
3866 249, 214, 267, 210, 275, 127, 376, 127, 127, 127,
3867 375, 376, 185, 289, 161, 185, 289, 120, 256, 127,
3868 215, 363, 272, 212, 26, 28, 37, 127, 122, 120,
3869 289, 185, 274, 363, 381, 376, 275, 120
3872 #define yyerrok (yyerrstatus = 0)
3873 #define yyclearin (yychar = YYEMPTY)
3874 #define YYEMPTY (-2)
3877 #define YYACCEPT goto yyacceptlab
3878 #define YYABORT goto yyabortlab
3879 #define YYERROR goto yyerrorlab
3882 /* Like YYERROR except do call yyerror. This remains here temporarily
3883 to ease the transition to the new meaning of YYERROR, for GCC.
3884 Once GCC version 2 has supplanted version 1, this can go. */
3886 #define YYFAIL goto yyerrlab
3888 #define YYRECOVERING() (!!yyerrstatus)
3890 #define YYBACKUP(Token, Value) \
3892 if (yychar == YYEMPTY && yylen == 1) \
3896 yytoken = YYTRANSLATE (yychar); \
3902 yyerror (YY_("syntax error: cannot back up")); \
3909 #define YYERRCODE 256
3912 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
3913 If N is 0, then set CURRENT to the empty location which ends
3914 the previous symbol: RHS[0] (always defined). */
3916 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
3917 #ifndef YYLLOC_DEFAULT
3918 # define YYLLOC_DEFAULT(Current, Rhs, N) \
3922 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
3923 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
3924 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
3925 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
3929 (Current).first_line = (Current).last_line = \
3930 YYRHSLOC (Rhs, 0).last_line; \
3931 (Current).first_column = (Current).last_column = \
3932 YYRHSLOC (Rhs, 0).last_column; \
3938 /* YY_LOCATION_PRINT -- Print the location on the stream.
3939 This macro was not mandated originally: define only if we know
3940 we won't break user code: when these are the locations we know. */
3942 #ifndef YY_LOCATION_PRINT
3943 # if YYLTYPE_IS_TRIVIAL
3944 # define YY_LOCATION_PRINT(File, Loc) \
3945 fprintf (File, "%d.%d-%d.%d", \
3946 (Loc).first_line, (Loc).first_column, \
3947 (Loc).last_line, (Loc).last_column)
3949 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3954 /* YYLEX -- calling `yylex' with the right arguments. */
3957 # define YYLEX yylex (YYLEX_PARAM)
3959 # define YYLEX yylex ()
3962 /* Enable debugging if requested. */
3966 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3967 # define YYFPRINTF fprintf
3970 # define YYDPRINTF(Args) \
3976 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
3980 YYFPRINTF (stderr, "%s ", Title); \
3981 yy_symbol_print (stderr, \
3983 YYFPRINTF (stderr, "\n"); \
3988 /*--------------------------------.
3989 | Print this symbol on YYOUTPUT. |
3990 `--------------------------------*/
3993 #if (defined __STDC__ || defined __C99__FUNC__ \
3994 || defined __cplusplus || defined _MSC_VER)
3996 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
3999 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
4002 YYSTYPE const * const yyvaluep;
4008 if (yytype < YYNTOKENS)
4009 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
4021 /*--------------------------------.
4022 | Print this symbol on YYOUTPUT. |
4023 `--------------------------------*/
4025 #if (defined __STDC__ || defined __C99__FUNC__ \
4026 || defined __cplusplus || defined _MSC_VER)
4028 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
4031 yy_symbol_print (yyoutput, yytype, yyvaluep)
4034 YYSTYPE const * const yyvaluep;
4037 if (yytype < YYNTOKENS)
4038 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
4040 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
4042 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
4043 YYFPRINTF (yyoutput, ")");
4046 /*------------------------------------------------------------------.
4047 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
4049 `------------------------------------------------------------------*/
4051 #if (defined __STDC__ || defined __C99__FUNC__ \
4052 || defined __cplusplus || defined _MSC_VER)
4054 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
4057 yy_stack_print (yybottom, yytop)
4058 yytype_int16 *yybottom;
4059 yytype_int16 *yytop;
4062 YYFPRINTF (stderr, "Stack now");
4063 for (; yybottom <= yytop; yybottom++)
4065 int yybot = *yybottom;
4066 YYFPRINTF (stderr, " %d", yybot);
4068 YYFPRINTF (stderr, "\n");
4071 # define YY_STACK_PRINT(Bottom, Top) \
4074 yy_stack_print ((Bottom), (Top)); \
4078 /*------------------------------------------------.
4079 | Report that the YYRULE is going to be reduced. |
4080 `------------------------------------------------*/
4082 #if (defined __STDC__ || defined __C99__FUNC__ \
4083 || defined __cplusplus || defined _MSC_VER)
4085 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
4088 yy_reduce_print (yyvsp, yyrule)
4093 int yynrhs = yyr2[yyrule];
4095 unsigned long int yylno = yyrline[yyrule];
4096 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
4098 /* The symbols being reduced. */
4099 for (yyi = 0; yyi < yynrhs; yyi++)
4101 YYFPRINTF (stderr, " $%d = ", yyi + 1);
4102 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
4103 &(yyvsp[(yyi + 1) - (yynrhs)])
4105 YYFPRINTF (stderr, "\n");
4109 # define YY_REDUCE_PRINT(Rule) \
4112 yy_reduce_print (yyvsp, Rule); \
4115 /* Nonzero means print parse trace. It is left uninitialized so that
4116 multiple parsers can coexist. */
4118 #else /* !YYDEBUG */
4119 # define YYDPRINTF(Args)
4120 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
4121 # define YY_STACK_PRINT(Bottom, Top)
4122 # define YY_REDUCE_PRINT(Rule)
4123 #endif /* !YYDEBUG */
4126 /* YYINITDEPTH -- initial size of the parser's stacks. */
4128 # define YYINITDEPTH 200
4131 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
4132 if the built-in stack extension method is used).
4134 Do not make this value too large; the results are undefined if
4135 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
4136 evaluated with infinite-precision integer arithmetic. */
4139 # define YYMAXDEPTH 10000
4147 # if defined __GLIBC__ && defined _STRING_H
4148 # define yystrlen strlen
4150 /* Return the length of YYSTR. */
4151 #if (defined __STDC__ || defined __C99__FUNC__ \
4152 || defined __cplusplus || defined _MSC_VER)
4154 yystrlen (const char *yystr)
4162 for (yylen = 0; yystr[yylen]; yylen++)
4170 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4171 # define yystpcpy stpcpy
4173 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
4175 #if (defined __STDC__ || defined __C99__FUNC__ \
4176 || defined __cplusplus || defined _MSC_VER)
4178 yystpcpy (char *yydest, const char *yysrc)
4181 yystpcpy (yydest, yysrc)
4187 const char *yys = yysrc;
4189 while ((*yyd++ = *yys++) != '\0')
4198 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
4199 quotes and backslashes, so that it's suitable for yyerror. The
4200 heuristic is that double-quoting is unnecessary unless the string
4201 contains an apostrophe, a comma, or backslash (other than
4202 backslash-backslash). YYSTR is taken from yytname. If YYRES is
4203 null, do not copy; instead, return the length of what the result
4206 yytnamerr (char *yyres, const char *yystr)
4211 char const *yyp = yystr;
4218 goto do_not_strip_quotes;
4222 goto do_not_strip_quotes;
4235 do_not_strip_quotes: ;
4239 return yystrlen (yystr);
4241 return yystpcpy (yyres, yystr) - yyres;
4245 /* Copy into YYRESULT an error message about the unexpected token
4246 YYCHAR while in state YYSTATE. Return the number of bytes copied,
4247 including the terminating null byte. If YYRESULT is null, do not
4248 copy anything; just return the number of bytes that would be
4249 copied. As a special case, return 0 if an ordinary "syntax error"
4250 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
4251 size calculation. */
4253 yysyntax_error (char *yyresult, int yystate, int yychar)
4255 int yyn = yypact[yystate];
4257 if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
4261 int yytype = YYTRANSLATE (yychar);
4262 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
4263 YYSIZE_T yysize = yysize0;
4265 int yysize_overflow = 0;
4266 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
4267 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
4271 /* This is so xgettext sees the translatable formats that are
4272 constructed on the fly. */
4273 YY_("syntax error, unexpected %s");
4274 YY_("syntax error, unexpected %s, expecting %s");
4275 YY_("syntax error, unexpected %s, expecting %s or %s");
4276 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
4277 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
4281 static char const yyunexpected[] = "syntax error, unexpected %s";
4282 static char const yyexpecting[] = ", expecting %s";
4283 static char const yyor[] = " or %s";
4284 char yyformat[sizeof yyunexpected
4285 + sizeof yyexpecting - 1
4286 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
4287 * (sizeof yyor - 1))];
4288 char const *yyprefix = yyexpecting;
4290 /* Start YYX at -YYN if negative to avoid negative indexes in
4292 int yyxbegin = yyn < 0 ? -yyn : 0;
4294 /* Stay within bounds of both yycheck and yytname. */
4295 int yychecklim = YYLAST - yyn + 1;
4296 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
4299 yyarg[0] = yytname[yytype];
4300 yyfmt = yystpcpy (yyformat, yyunexpected);
4302 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4303 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
4305 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
4309 yyformat[sizeof yyunexpected - 1] = '\0';
4312 yyarg[yycount++] = yytname[yyx];
4313 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
4314 yysize_overflow |= (yysize1 < yysize);
4316 yyfmt = yystpcpy (yyfmt, yyprefix);
4320 yyf = YY_(yyformat);
4321 yysize1 = yysize + yystrlen (yyf);
4322 yysize_overflow |= (yysize1 < yysize);
4325 if (yysize_overflow)
4326 return YYSIZE_MAXIMUM;
4330 /* Avoid sprintf, as that infringes on the user's name space.
4331 Don't have undefined behavior even if the translation
4332 produced a string with the wrong number of "%s"s. */
4333 char *yyp = yyresult;
4335 while ((*yyp = *yyf) != '\0')
4337 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
4339 yyp += yytnamerr (yyp, yyarg[yyi++]);
4352 #endif /* YYERROR_VERBOSE */
4355 /*-----------------------------------------------.
4356 | Release the memory associated to this symbol. |
4357 `-----------------------------------------------*/
4360 #if (defined __STDC__ || defined __C99__FUNC__ \
4361 || defined __cplusplus || defined _MSC_VER)
4363 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
4366 yydestruct (yymsg, yytype, yyvaluep)
4376 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
4386 /* Prevent warnings from -Wmissing-prototypes. */
4387 #ifdef YYPARSE_PARAM
4388 #if defined __STDC__ || defined __cplusplus
4389 int yyparse (void *YYPARSE_PARAM);
4393 #else /* ! YYPARSE_PARAM */
4394 #if defined __STDC__ || defined __cplusplus
4399 #endif /* ! YYPARSE_PARAM */
4402 /* The lookahead symbol. */
4405 /* The semantic value of the lookahead symbol. */
4408 /* Number of syntax errors so far. */
4413 /*-------------------------.
4414 | yyparse or yypush_parse. |
4415 `-------------------------*/
4417 #ifdef YYPARSE_PARAM
4418 #if (defined __STDC__ || defined __C99__FUNC__ \
4419 || defined __cplusplus || defined _MSC_VER)
4421 yyparse (void *YYPARSE_PARAM)
4424 yyparse (YYPARSE_PARAM)
4425 void *YYPARSE_PARAM;
4427 #else /* ! YYPARSE_PARAM */
4428 #if (defined __STDC__ || defined __C99__FUNC__ \
4429 || defined __cplusplus || defined _MSC_VER)
4442 /* Number of tokens to shift before error messages enabled. */
4445 /* The stacks and their tools:
4446 `yyss': related to states.
4447 `yyvs': related to semantic values.
4449 Refer to the stacks thru separate pointers, to allow yyoverflow
4450 to reallocate them elsewhere. */
4452 /* The state stack. */
4453 yytype_int16 yyssa[YYINITDEPTH];
4455 yytype_int16 *yyssp;
4457 /* The semantic value stack. */
4458 YYSTYPE yyvsa[YYINITDEPTH];
4462 YYSIZE_T yystacksize;
4466 /* Lookahead token as an internal (translated) token number. */
4468 /* The variables used to return semantic value and location from the
4473 /* Buffer for error messages, and its allocated size. */
4475 char *yymsg = yymsgbuf;
4476 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
4479 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
4481 /* The number of symbols on the RHS of the reduced rule.
4482 Keep to zero when no symbol should be popped. */
4488 yystacksize = YYINITDEPTH;
4490 YYDPRINTF ((stderr, "Starting parse\n"));
4495 yychar = YYEMPTY; /* Cause a token to be read. */
4497 /* Initialize stack pointers.
4498 Waste one element of value and location stack
4499 so that they stay on the same level as the state stack.
4500 The wasted elements are never initialized. */
4506 /*------------------------------------------------------------.
4507 | yynewstate -- Push a new state, which is found in yystate. |
4508 `------------------------------------------------------------*/
4510 /* In all cases, when you get here, the value and location stacks
4511 have just been pushed. So pushing a state here evens the stacks. */
4517 if (yyss + yystacksize - 1 <= yyssp)
4519 /* Get the current used size of the three stacks, in elements. */
4520 YYSIZE_T yysize = yyssp - yyss + 1;
4524 /* Give user a chance to reallocate the stack. Use copies of
4525 these so that the &'s don't force the real ones into
4527 YYSTYPE *yyvs1 = yyvs;
4528 yytype_int16 *yyss1 = yyss;
4530 /* Each stack pointer address is followed by the size of the
4531 data in use in that stack, in bytes. This used to be a
4532 conditional around just the two extra args, but that might
4533 be undefined if yyoverflow is a macro. */
4534 yyoverflow (YY_("memory exhausted"),
4535 &yyss1, yysize * sizeof (*yyssp),
4536 &yyvs1, yysize * sizeof (*yyvsp),
4542 #else /* no yyoverflow */
4543 # ifndef YYSTACK_RELOCATE
4544 goto yyexhaustedlab;
4546 /* Extend the stack our own way. */
4547 if (YYMAXDEPTH <= yystacksize)
4548 goto yyexhaustedlab;
4550 if (YYMAXDEPTH < yystacksize)
4551 yystacksize = YYMAXDEPTH;
4554 yytype_int16 *yyss1 = yyss;
4555 union yyalloc *yyptr =
4556 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
4558 goto yyexhaustedlab;
4559 YYSTACK_RELOCATE (yyss_alloc, yyss);
4560 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
4561 # undef YYSTACK_RELOCATE
4563 YYSTACK_FREE (yyss1);
4566 #endif /* no yyoverflow */
4568 yyssp = yyss + yysize - 1;
4569 yyvsp = yyvs + yysize - 1;
4571 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
4572 (unsigned long int) yystacksize));
4574 if (yyss + yystacksize - 1 <= yyssp)
4578 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
4580 if (yystate == YYFINAL)
4590 /* Do appropriate processing given the current state. Read a
4591 lookahead token if we need one and don't already have one. */
4593 /* First try to decide what to do without reference to lookahead token. */
4594 yyn = yypact[yystate];
4595 if (yyn == YYPACT_NINF)
4598 /* Not known => get a lookahead token if don't already have one. */
4600 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
4601 if (yychar == YYEMPTY)
4603 YYDPRINTF ((stderr, "Reading a token: "));
4607 if (yychar <= YYEOF)
4609 yychar = yytoken = YYEOF;
4610 YYDPRINTF ((stderr, "Now at end of input.\n"));
4614 yytoken = YYTRANSLATE (yychar);
4615 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
4618 /* If the proper action on seeing token YYTOKEN is to reduce or to
4619 detect an error, take that action. */
4621 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
4626 if (yyn == 0 || yyn == YYTABLE_NINF)
4632 /* Count tokens shifted since error; after three, turn off error
4637 /* Shift the lookahead token. */
4638 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
4640 /* Discard the shifted token. */
4649 /*-----------------------------------------------------------.
4650 | yydefault -- do the default action for the current state. |
4651 `-----------------------------------------------------------*/
4653 yyn = yydefact[yystate];
4659 /*-----------------------------.
4660 | yyreduce -- Do a reduction. |
4661 `-----------------------------*/
4663 /* yyn is the number of a rule to reduce with. */
4666 /* If YYLEN is nonzero, implement the default value of the action:
4669 Otherwise, the following line sets YYVAL to garbage.
4670 This behavior is undocumented and Bison
4671 users should not rely upon it. Assigning to YYVAL
4672 unconditionally makes the parser a bit smaller, and it avoids a
4673 GCC warning that YYVAL may be used uninitialized. */
4674 yyval = yyvsp[1-yylen];
4677 YY_REDUCE_PRINT (yyn);
4682 /* Line 1455 of yacc.c */
4683 #line 1464 "vtkParse.y"
4695 /* Line 1455 of yacc.c */
4696 #line 1509 "vtkParse.y"
4697 { pushNamespace((yyvsp[(2) - (2)].str)); }
4702 /* Line 1455 of yacc.c */
4703 #line 1510 "vtkParse.y"
4709 /* Line 1455 of yacc.c */
4710 #line 1532 "vtkParse.y"
4716 /* Line 1455 of yacc.c */
4717 #line 1533 "vtkParse.y"
4719 const char *name = (currentClass ? currentClass->Name : NULL);
4725 setTypeBase(guess_id_type(name));
4733 /* Line 1455 of yacc.c */
4734 #line 1546 "vtkParse.y"
4735 { start_class((yyvsp[(2) - (2)].str), (yyvsp[(1) - (2)].integer)); }
4740 /* Line 1455 of yacc.c */
4741 #line 1548 "vtkParse.y"
4742 { start_class(NULL, (yyvsp[(1) - (1)].integer)); }
4747 /* Line 1455 of yacc.c */
4748 #line 1552 "vtkParse.y"
4749 { (yyval.integer) = 0; }
4754 /* Line 1455 of yacc.c */
4755 #line 1553 "vtkParse.y"
4756 { (yyval.integer) = 1; }
4761 /* Line 1455 of yacc.c */
4762 #line 1554 "vtkParse.y"
4763 { (yyval.integer) = 2; }
4768 /* Line 1455 of yacc.c */
4769 #line 1558 "vtkParse.y"
4781 /* Line 1455 of yacc.c */
4782 #line 1570 "vtkParse.y"
4783 { access_level = VTK_ACCESS_PUBLIC; }
4788 /* Line 1455 of yacc.c */
4789 #line 1571 "vtkParse.y"
4790 { access_level = VTK_ACCESS_PRIVATE; }
4795 /* Line 1455 of yacc.c */
4796 #line 1572 "vtkParse.y"
4797 { access_level = VTK_ACCESS_PROTECTED; }
4802 /* Line 1455 of yacc.c */
4803 #line 1597 "vtkParse.y"
4804 { output_friend_function(); }
4809 /* Line 1455 of yacc.c */
4810 #line 1611 "vtkParse.y"
4811 { add_base_class(currentClass, (yyvsp[(1) - (1)].str), access_level, 0); }
4816 /* Line 1455 of yacc.c */
4817 #line 1613 "vtkParse.y"
4818 { add_base_class(currentClass, (yyvsp[(3) - (3)].str), (yyvsp[(2) - (3)].integer), 1); }
4823 /* Line 1455 of yacc.c */
4824 #line 1615 "vtkParse.y"
4825 { add_base_class(currentClass, (yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].integer), (yyvsp[(2) - (3)].integer)); }
4830 /* Line 1455 of yacc.c */
4831 #line 1618 "vtkParse.y"
4832 { (yyval.integer) = 0; }
4837 /* Line 1455 of yacc.c */
4838 #line 1619 "vtkParse.y"
4839 { (yyval.integer) = 1; }
4844 /* Line 1455 of yacc.c */
4845 #line 1622 "vtkParse.y"
4846 { (yyval.integer) = access_level; }
4851 /* Line 1455 of yacc.c */
4852 #line 1626 "vtkParse.y"
4853 { (yyval.integer) = VTK_ACCESS_PUBLIC; }
4858 /* Line 1455 of yacc.c */
4859 #line 1627 "vtkParse.y"
4860 { (yyval.integer) = VTK_ACCESS_PRIVATE; }
4865 /* Line 1455 of yacc.c */
4866 #line 1628 "vtkParse.y"
4867 { (yyval.integer) = VTK_ACCESS_PROTECTED; }
4872 /* Line 1455 of yacc.c */
4873 #line 1644 "vtkParse.y"
4874 { pushType(); start_enum((yyvsp[(1) - (2)].str)); }
4879 /* Line 1455 of yacc.c */
4880 #line 1645 "vtkParse.y"
4884 if ((yyvsp[(1) - (5)].str) != NULL)
4886 setTypeId((yyvsp[(1) - (5)].str));
4887 setTypeBase(guess_id_type((yyvsp[(1) - (5)].str)));
4895 /* Line 1455 of yacc.c */
4896 #line 1657 "vtkParse.y"
4897 { (yyval.str) = (yyvsp[(2) - (2)].str); }
4902 /* Line 1455 of yacc.c */
4903 #line 1658 "vtkParse.y"
4904 { (yyval.str) = NULL; }
4909 /* Line 1455 of yacc.c */
4910 #line 1669 "vtkParse.y"
4911 { add_enum((yyvsp[(1) - (1)].str), NULL); }
4916 /* Line 1455 of yacc.c */
4917 #line 1670 "vtkParse.y"
4918 { postSig("="); markSig(); }
4923 /* Line 1455 of yacc.c */
4924 #line 1671 "vtkParse.y"
4925 { chopSig(); add_enum((yyvsp[(1) - (4)].str), copySig()); }
4930 /* Line 1455 of yacc.c */
4931 #line 1724 "vtkParse.y"
4932 { pushFunction(); postSig("("); }
4937 /* Line 1455 of yacc.c */
4938 #line 1725 "vtkParse.y"
4944 /* Line 1455 of yacc.c */
4945 #line 1726 "vtkParse.y"
4946 { (yyval.integer) = VTK_PARSE_FUNCTION; popFunction(); }
4951 /* Line 1455 of yacc.c */
4952 #line 1730 "vtkParse.y"
4954 ValueInfo *item = (ValueInfo *)malloc(sizeof(ValueInfo));
4955 vtkParse_InitValue(item);
4956 item->ItemType = VTK_TYPEDEF_INFO;
4957 item->Access = access_level;
4959 handle_complex_type(item, getType(), (yyvsp[(1) - (1)].integer), getSig());
4963 item->Name = getVarName();
4966 if (item->Class == NULL)
4968 vtkParse_FreeValue(item);
4970 else if (currentClass)
4972 vtkParse_AddTypedefToClass(currentClass, item);
4976 vtkParse_AddTypedefToNamespace(currentNamespace, item);
4983 /* Line 1455 of yacc.c */
4984 #line 1763 "vtkParse.y"
4985 { add_using((yyvsp[(2) - (3)].str), 0); }
4990 /* Line 1455 of yacc.c */
4991 #line 1767 "vtkParse.y"
4992 { (yyval.str) = (yyvsp[(2) - (2)].str); }
4997 /* Line 1455 of yacc.c */
4998 #line 1769 "vtkParse.y"
4999 { (yyval.str) = vtkstrcat((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)); }
5004 /* Line 1455 of yacc.c */
5005 #line 1771 "vtkParse.y"
5006 { (yyval.str) = vtkstrcat((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)); }
5011 /* Line 1455 of yacc.c */
5012 #line 1773 "vtkParse.y"
5013 { (yyval.str) = vtkstrcat3((yyvsp[(1) - (3)].str), (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)); }
5018 /* Line 1455 of yacc.c */
5019 #line 1775 "vtkParse.y"
5020 { (yyval.str) = vtkstrcat3((yyvsp[(1) - (3)].str), (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)); }
5025 /* Line 1455 of yacc.c */
5026 #line 1778 "vtkParse.y"
5027 { add_using((yyvsp[(3) - (4)].str), 1); }
5032 /* Line 1455 of yacc.c */
5033 #line 1786 "vtkParse.y"
5034 { postSig("template<> "); clearTypeId(); }
5039 /* Line 1455 of yacc.c */
5040 #line 1788 "vtkParse.y"
5042 postSig("template<");
5052 /* Line 1455 of yacc.c */
5053 #line 1796 "vtkParse.y"
5056 if (getSig()[getSigLength()-1] == '>') { postSig(" "); }
5065 /* Line 1455 of yacc.c */
5066 #line 1807 "vtkParse.y"
5067 { chopSig(); postSig(", "); clearType(); clearTypeId(); }
5072 /* Line 1455 of yacc.c */
5073 #line 1811 "vtkParse.y"
5079 /* Line 1455 of yacc.c */
5080 #line 1813 "vtkParse.y"
5081 { add_template_parameter(getType(), (yyvsp[(3) - (3)].integer), copySig()); }
5086 /* Line 1455 of yacc.c */
5087 #line 1815 "vtkParse.y"
5093 /* Line 1455 of yacc.c */
5094 #line 1817 "vtkParse.y"
5095 { add_template_parameter(0, (yyvsp[(3) - (3)].integer), copySig()); }
5100 /* Line 1455 of yacc.c */
5101 #line 1819 "vtkParse.y"
5102 { pushTemplate(); markSig(); }
5107 /* Line 1455 of yacc.c */
5108 #line 1820 "vtkParse.y"
5109 { postSig("class "); }
5114 /* Line 1455 of yacc.c */
5115 #line 1822 "vtkParse.y"
5118 TemplateInfo *newTemplate = currentTemplate;
5120 add_template_parameter(0, (yyvsp[(5) - (5)].integer), copySig());
5121 i = currentTemplate->NumberOfParameters-1;
5122 currentTemplate->Parameters[i]->Template = newTemplate;
5128 /* Line 1455 of yacc.c */
5129 #line 1833 "vtkParse.y"
5130 { postSig("class "); }
5135 /* Line 1455 of yacc.c */
5136 #line 1834 "vtkParse.y"
5137 { postSig("typename "); }
5142 /* Line 1455 of yacc.c */
5143 #line 1840 "vtkParse.y"
5144 { postSig("="); markSig(); }
5149 /* Line 1455 of yacc.c */
5150 #line 1842 "vtkParse.y"
5152 int i = currentTemplate->NumberOfParameters-1;
5153 ValueInfo *param = currentTemplate->Parameters[i];
5155 param->Value = copySig();
5161 /* Line 1455 of yacc.c */
5162 #line 1859 "vtkParse.y"
5163 { output_function(); }
5168 /* Line 1455 of yacc.c */
5169 #line 1860 "vtkParse.y"
5170 { output_function(); }
5175 /* Line 1455 of yacc.c */
5176 #line 1861 "vtkParse.y"
5177 { reject_function(); }
5182 /* Line 1455 of yacc.c */
5183 #line 1862 "vtkParse.y"
5184 { reject_function(); }
5189 /* Line 1455 of yacc.c */
5190 #line 1878 "vtkParse.y"
5191 { output_function(); }
5196 /* Line 1455 of yacc.c */
5197 #line 1895 "vtkParse.y"
5200 set_return(currentFunction, getType(), getTypeId(), 0);
5206 /* Line 1455 of yacc.c */
5207 #line 1899 "vtkParse.y"
5213 /* Line 1455 of yacc.c */
5214 #line 1901 "vtkParse.y"
5218 currentFunction->IsOperator = 1;
5219 currentFunction->Name = "operator typecast";
5220 currentFunction->Comment = vtkstrdup(getComment());
5221 vtkParseDebug("Parsed operator", "operator typecast");
5227 /* Line 1455 of yacc.c */
5228 #line 1912 "vtkParse.y"
5229 { (yyval.str) = copySig(); }
5234 /* Line 1455 of yacc.c */
5235 #line 1915 "vtkParse.y"
5241 /* Line 1455 of yacc.c */
5242 #line 1916 "vtkParse.y"
5246 currentFunction->Name = (yyvsp[(1) - (3)].str);
5247 currentFunction->Comment = vtkstrdup(getComment());
5248 vtkParseDebug("Parsed operator", currentFunction->Name);
5254 /* Line 1455 of yacc.c */
5255 #line 1926 "vtkParse.y"
5258 currentFunction->IsOperator = 1;
5259 set_return(currentFunction, getType(), getTypeId(), 0);
5265 /* Line 1455 of yacc.c */
5266 #line 1935 "vtkParse.y"
5267 { chopSig(); (yyval.str) = vtkstrcat(copySig(), (yyvsp[(2) - (2)].str)); postSig((yyvsp[(2) - (2)].str)); }
5272 /* Line 1455 of yacc.c */
5273 #line 1938 "vtkParse.y"
5274 { markSig(); postSig("operator "); }
5279 /* Line 1455 of yacc.c */
5280 #line 1942 "vtkParse.y"
5284 currentFunction->Name = (yyvsp[(1) - (2)].str);
5285 currentFunction->Comment = vtkstrdup(getComment());
5286 vtkParseDebug("Parsed func", currentFunction->Name);
5292 /* Line 1455 of yacc.c */
5293 #line 1954 "vtkParse.y"
5294 { postSig(" throw "); }
5299 /* Line 1455 of yacc.c */
5300 #line 1954 "vtkParse.y"
5306 /* Line 1455 of yacc.c */
5307 #line 1955 "vtkParse.y"
5308 { postSig(" const"); currentFunction->IsConst = 1; }
5313 /* Line 1455 of yacc.c */
5314 #line 1957 "vtkParse.y"
5317 currentFunction->IsPureVirtual = 1;
5318 if (currentClass) { currentClass->IsAbstract = 1; }
5324 /* Line 1455 of yacc.c */
5325 #line 1969 "vtkParse.y"
5328 set_return(currentFunction, getType(), getTypeId(), 0);
5334 /* Line 1455 of yacc.c */
5335 #line 1973 "vtkParse.y"
5341 /* Line 1455 of yacc.c */
5342 #line 1985 "vtkParse.y"
5348 /* Line 1455 of yacc.c */
5349 #line 1986 "vtkParse.y"
5355 /* Line 1455 of yacc.c */
5356 #line 1987 "vtkParse.y"
5360 if (getType() & VTK_PARSE_VIRTUAL)
5362 currentFunction->IsVirtual = 1;
5364 if (getType() & VTK_PARSE_EXPLICIT)
5366 currentFunction->IsExplicit = 1;
5368 currentFunction->Name = (yyvsp[(1) - (5)].str);
5369 currentFunction->Comment = vtkstrdup(getComment());
5370 vtkParseDebug("Parsed func", currentFunction->Name);
5376 /* Line 1455 of yacc.c */
5377 #line 2004 "vtkParse.y"
5378 { pushType(); postSig("("); }
5383 /* Line 1455 of yacc.c */
5384 #line 2005 "vtkParse.y"
5385 { popType(); postSig(")"); }
5390 /* Line 1455 of yacc.c */
5391 #line 2022 "vtkParse.y"
5392 { clearType(); clearTypeId(); }
5397 /* Line 1455 of yacc.c */
5398 #line 2025 "vtkParse.y"
5399 { clearType(); clearTypeId(); }
5404 /* Line 1455 of yacc.c */
5405 #line 2026 "vtkParse.y"
5406 { clearType(); clearTypeId(); postSig(", "); }
5411 /* Line 1455 of yacc.c */
5412 #line 2029 "vtkParse.y"
5413 { currentFunction->IsVariadic = 1; postSig(", ..."); }
5418 /* Line 1455 of yacc.c */
5419 #line 2032 "vtkParse.y"
5425 /* Line 1455 of yacc.c */
5426 #line 2034 "vtkParse.y"
5428 ValueInfo *param = (ValueInfo *)malloc(sizeof(ValueInfo));
5429 vtkParse_InitValue(param);
5431 handle_complex_type(param, getType(), (yyvsp[(3) - (3)].integer), copySig());
5432 add_legacy_parameter(currentFunction, param);
5436 param->Name = getVarName();
5439 vtkParse_AddParameterToFunction(currentFunction, param);
5445 /* Line 1455 of yacc.c */
5446 #line 2049 "vtkParse.y"
5448 int i = currentFunction->NumberOfParameters-1;
5451 currentFunction->Parameters[i]->Value = getVarValue();
5458 /* Line 1455 of yacc.c */
5459 #line 2058 "vtkParse.y"
5460 { clearVarValue(); }
5465 /* Line 1455 of yacc.c */
5466 #line 2062 "vtkParse.y"
5467 { postSig("="); clearVarValue(); markSig(); }
5472 /* Line 1455 of yacc.c */
5473 #line 2063 "vtkParse.y"
5474 { chopSig(); setVarValue(copySig()); }
5479 /* Line 1455 of yacc.c */
5480 #line 2074 "vtkParse.y"
5482 unsigned int type = getType();
5483 ValueInfo *var = (ValueInfo *)malloc(sizeof(ValueInfo));
5484 vtkParse_InitValue(var);
5485 var->ItemType = VTK_VARIABLE_INFO;
5486 var->Access = access_level;
5488 handle_complex_type(var, type, (yyvsp[(1) - (2)].integer), getSig());
5490 var->Name = getVarName();
5494 var->Value = getVarValue();
5497 /* Is this a typedef? */
5498 if ((type & VTK_PARSE_TYPEDEF) != 0)
5500 var->ItemType = VTK_TYPEDEF_INFO;
5503 vtkParse_AddVariableToClass(currentClass, var);
5507 vtkParse_AddVariableToNamespace(currentNamespace, var);
5510 /* Is this a constant? */
5511 else if (((type & VTK_PARSE_CONST) != 0) && var->Value != NULL &&
5512 (((type & VTK_PARSE_INDIRECT) == 0) ||
5513 ((type & VTK_PARSE_INDIRECT) == VTK_PARSE_ARRAY)))
5515 var->ItemType = VTK_CONSTANT_INFO;
5518 vtkParse_AddConstantToClass(currentClass, var);
5522 vtkParse_AddConstantToNamespace(currentNamespace, var);
5525 /* This is a true variable i.e. not constant */
5530 vtkParse_AddVariableToClass(currentClass, var);
5534 vtkParse_AddVariableToNamespace(currentNamespace, var);
5542 /* Line 1455 of yacc.c */
5543 #line 2136 "vtkParse.y"
5549 /* Line 1455 of yacc.c */
5550 #line 2142 "vtkParse.y"
5556 /* Line 1455 of yacc.c */
5557 #line 2143 "vtkParse.y"
5558 { setTypePtr((yyvsp[(1) - (1)].integer)); }
5563 /* Line 1455 of yacc.c */
5564 #line 2147 "vtkParse.y"
5565 { (yyval.integer) = 0; }
5570 /* Line 1455 of yacc.c */
5571 #line 2148 "vtkParse.y"
5577 /* Line 1455 of yacc.c */
5578 #line 2150 "vtkParse.y"
5580 const char *scope = getScope();
5581 unsigned int parens = add_indirection((yyvsp[(1) - (5)].integer), (yyvsp[(2) - (5)].integer));
5582 if ((yyvsp[(5) - (5)].integer) == VTK_PARSE_FUNCTION)
5584 if (scope) { scope = vtkstrndup(scope, strlen(scope) - 2); }
5585 getFunction()->Class = scope;
5586 (yyval.integer) = (parens | VTK_PARSE_FUNCTION);
5588 else if ((yyvsp[(5) - (5)].integer) == VTK_PARSE_ARRAY)
5590 (yyval.integer) = add_indirection_to_array(parens);
5597 /* Line 1455 of yacc.c */
5598 #line 2167 "vtkParse.y"
5599 { (yyval.integer) = 0; }
5604 /* Line 1455 of yacc.c */
5605 #line 2168 "vtkParse.y"
5611 /* Line 1455 of yacc.c */
5612 #line 2170 "vtkParse.y"
5614 const char *scope = getScope();
5615 unsigned int parens = add_indirection((yyvsp[(1) - (5)].integer), (yyvsp[(2) - (5)].integer));
5616 if ((yyvsp[(5) - (5)].integer) == VTK_PARSE_FUNCTION)
5618 if (scope) { scope = vtkstrndup(scope, strlen(scope) - 2); }
5619 getFunction()->Class = scope;
5620 (yyval.integer) = (parens | VTK_PARSE_FUNCTION);
5622 else if ((yyvsp[(5) - (5)].integer) == VTK_PARSE_ARRAY)
5624 (yyval.integer) = add_indirection_to_array(parens);
5631 /* Line 1455 of yacc.c */
5632 #line 2186 "vtkParse.y"
5633 { postSig("("); scopeSig(""); (yyval.integer) = 0; }
5638 /* Line 1455 of yacc.c */
5639 #line 2187 "vtkParse.y"
5640 { postSig("("); scopeSig((yyvsp[(1) - (1)].str)); postSig("*");
5641 (yyval.integer) = VTK_PARSE_POINTER; }
5646 /* Line 1455 of yacc.c */
5647 #line 2189 "vtkParse.y"
5648 { postSig("("); scopeSig((yyvsp[(1) - (1)].str)); postSig("&");
5649 (yyval.integer) = VTK_PARSE_REF; }
5654 /* Line 1455 of yacc.c */
5655 #line 2193 "vtkParse.y"
5656 { postSig("("); scopeSig((yyvsp[(1) - (1)].str)); postSig("*");
5657 (yyval.integer) = VTK_PARSE_POINTER; }
5662 /* Line 1455 of yacc.c */
5663 #line 2195 "vtkParse.y"
5664 { postSig("("); scopeSig((yyvsp[(1) - (1)].str)); postSig("&");
5665 (yyval.integer) = VTK_PARSE_REF; }
5670 /* Line 1455 of yacc.c */
5671 #line 2198 "vtkParse.y"
5672 { (yyval.integer) = 0; }
5677 /* Line 1455 of yacc.c */
5678 #line 2199 "vtkParse.y"
5679 { pushFunction(); postSig("("); }
5684 /* Line 1455 of yacc.c */
5685 #line 2200 "vtkParse.y"
5691 /* Line 1455 of yacc.c */
5692 #line 2201 "vtkParse.y"
5694 (yyval.integer) = VTK_PARSE_FUNCTION;
5701 /* Line 1455 of yacc.c */
5702 #line 2205 "vtkParse.y"
5703 { (yyval.integer) = VTK_PARSE_ARRAY; }
5708 /* Line 1455 of yacc.c */
5709 #line 2209 "vtkParse.y"
5710 { currentFunction->IsConst = 1; }
5715 /* Line 1455 of yacc.c */
5716 #line 2215 "vtkParse.y"
5717 { (yyval.integer) = add_indirection((yyvsp[(1) - (2)].integer), (yyvsp[(2) - (2)].integer)); }
5722 /* Line 1455 of yacc.c */
5723 #line 2220 "vtkParse.y"
5724 { (yyval.integer) = add_indirection((yyvsp[(1) - (2)].integer), (yyvsp[(2) - (2)].integer)); }
5729 /* Line 1455 of yacc.c */
5730 #line 2223 "vtkParse.y"
5731 { clearVarName(); chopSig(); }
5736 /* Line 1455 of yacc.c */
5737 #line 2227 "vtkParse.y"
5738 { setVarName((yyvsp[(1) - (1)].str)); }
5743 /* Line 1455 of yacc.c */
5744 #line 2228 "vtkParse.y"
5745 { setVarName((yyvsp[(1) - (3)].str)); }
5750 /* Line 1455 of yacc.c */
5751 #line 2236 "vtkParse.y"
5757 /* Line 1455 of yacc.c */
5758 #line 2240 "vtkParse.y"
5764 /* Line 1455 of yacc.c */
5765 #line 2247 "vtkParse.y"
5771 /* Line 1455 of yacc.c */
5772 #line 2247 "vtkParse.y"
5778 /* Line 1455 of yacc.c */
5779 #line 2250 "vtkParse.y"
5780 { pushArraySize(""); }
5785 /* Line 1455 of yacc.c */
5786 #line 2251 "vtkParse.y"
5792 /* Line 1455 of yacc.c */
5793 #line 2251 "vtkParse.y"
5794 { chopSig(); pushArraySize(copySig()); }
5799 /* Line 1455 of yacc.c */
5800 #line 2267 "vtkParse.y"
5801 { (yyval.str) = vtkstrcat((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)); }
5806 /* Line 1455 of yacc.c */
5807 #line 2269 "vtkParse.y"
5808 { (yyval.str) = vtkstrcat((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)); }
5813 /* Line 1455 of yacc.c */
5814 #line 2271 "vtkParse.y"
5815 { (yyval.str) = vtkstrcat((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)); }
5820 /* Line 1455 of yacc.c */
5821 #line 2275 "vtkParse.y"
5822 { (yyval.str) = vtkstrcat((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)); }
5827 /* Line 1455 of yacc.c */
5828 #line 2277 "vtkParse.y"
5829 { (yyval.str) = vtkstrcat((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)); }
5834 /* Line 1455 of yacc.c */
5835 #line 2279 "vtkParse.y"
5836 { (yyval.str) = vtkstrcat3((yyvsp[(1) - (3)].str), (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)); }
5841 /* Line 1455 of yacc.c */
5842 #line 2281 "vtkParse.y"
5843 { (yyval.str) = vtkstrcat3((yyvsp[(1) - (3)].str), (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)); }
5848 /* Line 1455 of yacc.c */
5849 #line 2282 "vtkParse.y"
5850 { postSig("template "); }
5855 /* Line 1455 of yacc.c */
5856 #line 2284 "vtkParse.y"
5857 { (yyval.str) = vtkstrcat4((yyvsp[(1) - (5)].str), "template ", (yyvsp[(4) - (5)].str), (yyvsp[(5) - (5)].str)); }
5862 /* Line 1455 of yacc.c */
5863 #line 2287 "vtkParse.y"
5864 { postSig((yyvsp[(1) - (1)].str)); }
5869 /* Line 1455 of yacc.c */
5870 #line 2290 "vtkParse.y"
5871 { (yyval.str) = "::"; postSig((yyval.str)); }
5876 /* Line 1455 of yacc.c */
5877 #line 2293 "vtkParse.y"
5878 { markSig(); postSig((yyvsp[(1) - (2)].str)); postSig("<"); }
5883 /* Line 1455 of yacc.c */
5884 #line 2295 "vtkParse.y"
5886 chopSig(); if (getSig()[getSigLength()-1] == '>') { postSig(" "); }
5887 postSig(">"); (yyval.str) = copySig(); clearTypeId();
5893 /* Line 1455 of yacc.c */
5894 #line 2308 "vtkParse.y"
5895 { postSig((yyvsp[(1) - (1)].str)); }
5900 /* Line 1455 of yacc.c */
5901 #line 2309 "vtkParse.y"
5902 { postSig((yyvsp[(1) - (1)].str)); }
5907 /* Line 1455 of yacc.c */
5908 #line 2310 "vtkParse.y"
5909 { postSig((yyvsp[(1) - (1)].str)); }
5914 /* Line 1455 of yacc.c */
5915 #line 2311 "vtkParse.y"
5916 { postSig((yyvsp[(1) - (1)].str)); }
5921 /* Line 1455 of yacc.c */
5922 #line 2312 "vtkParse.y"
5923 { postSig((yyvsp[(1) - (1)].str)); }
5928 /* Line 1455 of yacc.c */
5929 #line 2313 "vtkParse.y"
5930 { postSig((yyvsp[(1) - (1)].str)); }
5935 /* Line 1455 of yacc.c */
5936 #line 2314 "vtkParse.y"
5937 { postSig((yyvsp[(1) - (1)].str)); }
5942 /* Line 1455 of yacc.c */
5943 #line 2315 "vtkParse.y"
5944 { (yyval.str) = vtkstrcat("~",(yyvsp[(2) - (2)].str)); postSig((yyval.str)); }
5949 /* Line 1455 of yacc.c */
5950 #line 2316 "vtkParse.y"
5951 { (yyval.str) = vtkstrcat("~",(yyvsp[(2) - (2)].str)); postSig((yyval.str)); }
5956 /* Line 1455 of yacc.c */
5957 #line 2317 "vtkParse.y"
5958 { (yyval.str) = vtkstrcat("~",(yyvsp[(2) - (2)].str)); postSig((yyval.str)); }
5963 /* Line 1455 of yacc.c */
5964 #line 2318 "vtkParse.y"
5965 { (yyval.str) = vtkstrcat("~",(yyvsp[(2) - (2)].str)); postSig((yyval.str)); }
5970 /* Line 1455 of yacc.c */
5971 #line 2319 "vtkParse.y"
5972 { (yyval.str) = vtkstrcat("~",(yyvsp[(2) - (2)].str)); postSig((yyval.str)); }
5977 /* Line 1455 of yacc.c */
5978 #line 2320 "vtkParse.y"
5979 { (yyval.str) = vtkstrcat("~",(yyvsp[(2) - (2)].str)); postSig((yyval.str)); }
5984 /* Line 1455 of yacc.c */
5985 #line 2321 "vtkParse.y"
5986 { (yyval.str) = vtkstrcat("~",(yyvsp[(2) - (2)].str)); postSig((yyval.str)); }
5991 /* Line 1455 of yacc.c */
5992 #line 2322 "vtkParse.y"
5993 { (yyval.str) = "size_t"; postSig((yyval.str)); }
5998 /* Line 1455 of yacc.c */
5999 #line 2323 "vtkParse.y"
6000 { (yyval.str) = "ssize_t"; postSig((yyval.str)); }
6005 /* Line 1455 of yacc.c */
6006 #line 2324 "vtkParse.y"
6007 { (yyval.str) = "vtkTypeInt8"; postSig((yyval.str)); }
6012 /* Line 1455 of yacc.c */
6013 #line 2325 "vtkParse.y"
6014 { (yyval.str) = "vtkTypeUInt8"; postSig((yyval.str)); }
6019 /* Line 1455 of yacc.c */
6020 #line 2326 "vtkParse.y"
6021 { (yyval.str) = "vtkTypeInt16"; postSig((yyval.str)); }
6026 /* Line 1455 of yacc.c */
6027 #line 2327 "vtkParse.y"
6028 { (yyval.str) = "vtkTypeUInt16"; postSig((yyval.str)); }
6033 /* Line 1455 of yacc.c */
6034 #line 2328 "vtkParse.y"
6035 { (yyval.str) = "vtkTypeInt32"; postSig((yyval.str)); }
6040 /* Line 1455 of yacc.c */
6041 #line 2329 "vtkParse.y"
6042 { (yyval.str) = "vtkTypeUInt32"; postSig((yyval.str)); }
6047 /* Line 1455 of yacc.c */
6048 #line 2330 "vtkParse.y"
6049 { (yyval.str) = "vtkTypeInt64"; postSig((yyval.str)); }
6054 /* Line 1455 of yacc.c */
6055 #line 2331 "vtkParse.y"
6056 { (yyval.str) = "vtkTypeUInt64"; postSig((yyval.str)); }
6061 /* Line 1455 of yacc.c */
6062 #line 2332 "vtkParse.y"
6063 { (yyval.str) = "vtkTypeFloat32"; postSig((yyval.str)); }
6068 /* Line 1455 of yacc.c */
6069 #line 2333 "vtkParse.y"
6070 { (yyval.str) = "vtkTypeFloat64"; postSig((yyval.str)); }
6075 /* Line 1455 of yacc.c */
6076 #line 2334 "vtkParse.y"
6077 { (yyval.str) = "vtkIdType"; postSig((yyval.str)); }
6082 /* Line 1455 of yacc.c */
6083 #line 2360 "vtkParse.y"
6084 { setTypeBase(buildTypeBase(getType(), (yyvsp[(1) - (1)].integer))); }
6089 /* Line 1455 of yacc.c */
6090 #line 2361 "vtkParse.y"
6091 { setTypeMod(VTK_PARSE_TYPEDEF); }
6096 /* Line 1455 of yacc.c */
6097 #line 2362 "vtkParse.y"
6098 { setTypeMod(VTK_PARSE_FRIEND); }
6103 /* Line 1455 of yacc.c */
6104 #line 2369 "vtkParse.y"
6105 { setTypeMod((yyvsp[(1) - (1)].integer)); }
6110 /* Line 1455 of yacc.c */
6111 #line 2370 "vtkParse.y"
6112 { setTypeMod((yyvsp[(1) - (1)].integer)); }
6117 /* Line 1455 of yacc.c */
6118 #line 2371 "vtkParse.y"
6119 { setTypeMod((yyvsp[(1) - (1)].integer)); }
6124 /* Line 1455 of yacc.c */
6125 #line 2374 "vtkParse.y"
6126 { postSig("mutable "); (yyval.integer) = VTK_PARSE_MUTABLE; }
6131 /* Line 1455 of yacc.c */
6132 #line 2375 "vtkParse.y"
6133 { (yyval.integer) = 0; }
6138 /* Line 1455 of yacc.c */
6139 #line 2376 "vtkParse.y"
6140 { (yyval.integer) = 0; }
6145 /* Line 1455 of yacc.c */
6146 #line 2377 "vtkParse.y"
6147 { postSig("static "); (yyval.integer) = VTK_PARSE_STATIC; }
6152 /* Line 1455 of yacc.c */
6153 #line 2380 "vtkParse.y"
6154 { (yyval.integer) = 0; }
6159 /* Line 1455 of yacc.c */
6160 #line 2381 "vtkParse.y"
6161 { postSig("virtual "); (yyval.integer) = VTK_PARSE_VIRTUAL; }
6166 /* Line 1455 of yacc.c */
6167 #line 2382 "vtkParse.y"
6168 { postSig("explicit "); (yyval.integer) = VTK_PARSE_EXPLICIT; }
6173 /* Line 1455 of yacc.c */
6174 #line 2385 "vtkParse.y"
6175 { postSig("const "); (yyval.integer) = VTK_PARSE_CONST; }
6180 /* Line 1455 of yacc.c */
6181 #line 2386 "vtkParse.y"
6182 { postSig("volatile "); (yyval.integer) = VTK_PARSE_VOLATILE; }
6187 /* Line 1455 of yacc.c */
6188 #line 2391 "vtkParse.y"
6189 { (yyval.integer) = ((yyvsp[(1) - (2)].integer) | (yyvsp[(2) - (2)].integer)); }
6194 /* Line 1455 of yacc.c */
6195 #line 2402 "vtkParse.y"
6196 { setTypeBase((yyvsp[(1) - (1)].integer)); }
6201 /* Line 1455 of yacc.c */
6202 #line 2404 "vtkParse.y"
6203 { setTypeBase((yyvsp[(2) - (2)].integer)); }
6208 /* Line 1455 of yacc.c */
6209 #line 2409 "vtkParse.y"
6210 { postSig("typename "); }
6215 /* Line 1455 of yacc.c */
6216 #line 2410 "vtkParse.y"
6217 { postSig(" "); setTypeId((yyvsp[(3) - (3)].str)); (yyval.integer) = guess_id_type((yyvsp[(3) - (3)].str)); }
6222 /* Line 1455 of yacc.c */
6223 #line 2412 "vtkParse.y"
6224 { postSig(" "); setTypeId((yyvsp[(1) - (1)].str)); (yyval.integer) = guess_id_type((yyvsp[(1) - (1)].str)); }
6229 /* Line 1455 of yacc.c */
6230 #line 2414 "vtkParse.y"
6231 { postSig(" "); setTypeId((yyvsp[(1) - (1)].str)); (yyval.integer) = guess_id_type((yyvsp[(1) - (1)].str)); }
6236 /* Line 1455 of yacc.c */
6237 #line 2416 "vtkParse.y"
6238 { postSig(" "); setTypeId((yyvsp[(2) - (2)].str)); (yyval.integer) = guess_id_type((yyvsp[(2) - (2)].str)); }
6243 /* Line 1455 of yacc.c */
6244 #line 2418 "vtkParse.y"
6245 { postSig(" "); setTypeId((yyvsp[(2) - (2)].str)); (yyval.integer) = guess_id_type((yyvsp[(2) - (2)].str)); }
6250 /* Line 1455 of yacc.c */
6251 #line 2424 "vtkParse.y"
6252 { setTypeBase((yyvsp[(1) - (1)].integer)); }
6257 /* Line 1455 of yacc.c */
6258 #line 2426 "vtkParse.y"
6259 { setTypeBase((yyvsp[(2) - (2)].integer)); }
6264 /* Line 1455 of yacc.c */
6265 #line 2432 "vtkParse.y"
6266 { postSig(" "); setTypeId((yyvsp[(1) - (1)].str)); (yyval.integer) = guess_id_type((yyvsp[(1) - (1)].str)); }
6271 /* Line 1455 of yacc.c */
6272 #line 2434 "vtkParse.y"
6273 { postSig(" "); setTypeId((yyvsp[(1) - (1)].str)); (yyval.integer) = guess_id_type((yyvsp[(1) - (1)].str)); }
6278 /* Line 1455 of yacc.c */
6279 #line 2436 "vtkParse.y"
6280 { postSig(" "); setTypeId((yyvsp[(2) - (2)].str)); (yyval.integer) = guess_id_type((yyvsp[(2) - (2)].str)); }
6285 /* Line 1455 of yacc.c */
6286 #line 2438 "vtkParse.y"
6287 { postSig(" "); setTypeId((yyvsp[(2) - (2)].str)); (yyval.integer) = guess_id_type((yyvsp[(2) - (2)].str)); }
6292 /* Line 1455 of yacc.c */
6293 #line 2440 "vtkParse.y"
6294 { postSig(" "); setTypeId((yyvsp[(2) - (2)].str)); (yyval.integer) = guess_id_type((yyvsp[(2) - (2)].str)); }
6299 /* Line 1455 of yacc.c */
6300 #line 2443 "vtkParse.y"
6306 /* Line 1455 of yacc.c */
6307 #line 2447 "vtkParse.y"
6308 { typeSig((yyvsp[(1) - (1)].str)); (yyval.integer) = VTK_PARSE_STRING; }
6313 /* Line 1455 of yacc.c */
6314 #line 2448 "vtkParse.y"
6315 { typeSig((yyvsp[(1) - (1)].str)); (yyval.integer) = VTK_PARSE_UNICODE_STRING;}
6320 /* Line 1455 of yacc.c */
6321 #line 2449 "vtkParse.y"
6322 { typeSig((yyvsp[(1) - (1)].str)); (yyval.integer) = VTK_PARSE_OSTREAM; }
6327 /* Line 1455 of yacc.c */
6328 #line 2450 "vtkParse.y"
6329 { typeSig((yyvsp[(1) - (1)].str)); (yyval.integer) = VTK_PARSE_ISTREAM; }
6334 /* Line 1455 of yacc.c */
6335 #line 2451 "vtkParse.y"
6336 { typeSig((yyvsp[(1) - (1)].str)); (yyval.integer) = VTK_PARSE_UNKNOWN; }
6341 /* Line 1455 of yacc.c */
6342 #line 2452 "vtkParse.y"
6343 { typeSig((yyvsp[(1) - (1)].str)); (yyval.integer) = VTK_PARSE_OBJECT; }
6348 /* Line 1455 of yacc.c */
6349 #line 2453 "vtkParse.y"
6350 { typeSig((yyvsp[(1) - (1)].str)); (yyval.integer) = VTK_PARSE_QOBJECT; }
6355 /* Line 1455 of yacc.c */
6356 #line 2454 "vtkParse.y"
6357 { typeSig("ssize_t"); (yyval.integer) = VTK_PARSE_SSIZE_T; }
6362 /* Line 1455 of yacc.c */
6363 #line 2455 "vtkParse.y"
6364 { typeSig("size_t"); (yyval.integer) = VTK_PARSE_SIZE_T; }
6369 /* Line 1455 of yacc.c */
6370 #line 2456 "vtkParse.y"
6371 { typeSig("vtkTypeInt8"); (yyval.integer) = VTK_PARSE_INT8; }
6376 /* Line 1455 of yacc.c */
6377 #line 2457 "vtkParse.y"
6378 { typeSig("vtkTypeUInt8"); (yyval.integer) = VTK_PARSE_UINT8; }
6383 /* Line 1455 of yacc.c */
6384 #line 2458 "vtkParse.y"
6385 { typeSig("vtkTypeInt16"); (yyval.integer) = VTK_PARSE_INT16; }
6390 /* Line 1455 of yacc.c */
6391 #line 2459 "vtkParse.y"
6392 { typeSig("vtkTypeUInt16"); (yyval.integer) = VTK_PARSE_UINT16; }
6397 /* Line 1455 of yacc.c */
6398 #line 2460 "vtkParse.y"
6399 { typeSig("vtkTypeInt32"); (yyval.integer) = VTK_PARSE_INT32; }
6404 /* Line 1455 of yacc.c */
6405 #line 2461 "vtkParse.y"
6406 { typeSig("vtkTypeUInt32"); (yyval.integer) = VTK_PARSE_UINT32; }
6411 /* Line 1455 of yacc.c */
6412 #line 2462 "vtkParse.y"
6413 { typeSig("vtkTypeInt64"); (yyval.integer) = VTK_PARSE_INT64; }
6418 /* Line 1455 of yacc.c */
6419 #line 2463 "vtkParse.y"
6420 { typeSig("vtkTypeUInt64"); (yyval.integer) = VTK_PARSE_UINT64; }
6425 /* Line 1455 of yacc.c */
6426 #line 2464 "vtkParse.y"
6427 { typeSig("vtkTypeFloat32"); (yyval.integer) = VTK_PARSE_FLOAT32; }
6432 /* Line 1455 of yacc.c */
6433 #line 2465 "vtkParse.y"
6434 { typeSig("vtkTypeFloat64"); (yyval.integer) = VTK_PARSE_FLOAT64; }
6439 /* Line 1455 of yacc.c */
6440 #line 2466 "vtkParse.y"
6441 { typeSig("vtkIdType"); (yyval.integer) = VTK_PARSE_ID_TYPE; }
6446 /* Line 1455 of yacc.c */
6447 #line 2469 "vtkParse.y"
6448 { postSig("void "); (yyval.integer) = VTK_PARSE_VOID; }
6453 /* Line 1455 of yacc.c */
6454 #line 2470 "vtkParse.y"
6455 { postSig("bool "); (yyval.integer) = VTK_PARSE_BOOL; }
6460 /* Line 1455 of yacc.c */
6461 #line 2471 "vtkParse.y"
6462 { postSig("float "); (yyval.integer) = VTK_PARSE_FLOAT; }
6467 /* Line 1455 of yacc.c */
6468 #line 2472 "vtkParse.y"
6469 { postSig("double "); (yyval.integer) = VTK_PARSE_DOUBLE; }
6474 /* Line 1455 of yacc.c */
6475 #line 2473 "vtkParse.y"
6476 { postSig("char "); (yyval.integer) = VTK_PARSE_CHAR; }
6481 /* Line 1455 of yacc.c */
6482 #line 2474 "vtkParse.y"
6483 { postSig("int "); (yyval.integer) = VTK_PARSE_INT; }
6488 /* Line 1455 of yacc.c */
6489 #line 2475 "vtkParse.y"
6490 { postSig("short "); (yyval.integer) = VTK_PARSE_SHORT; }
6495 /* Line 1455 of yacc.c */
6496 #line 2476 "vtkParse.y"
6497 { postSig("long "); (yyval.integer) = VTK_PARSE_LONG; }
6502 /* Line 1455 of yacc.c */
6503 #line 2477 "vtkParse.y"
6504 { postSig("__int64 "); (yyval.integer) = VTK_PARSE___INT64; }
6509 /* Line 1455 of yacc.c */
6510 #line 2478 "vtkParse.y"
6511 { postSig("signed "); (yyval.integer) = VTK_PARSE_INT; }
6516 /* Line 1455 of yacc.c */
6517 #line 2479 "vtkParse.y"
6518 { postSig("unsigned "); (yyval.integer) = VTK_PARSE_UNSIGNED_INT; }
6523 /* Line 1455 of yacc.c */
6524 #line 2501 "vtkParse.y"
6525 { (yyval.integer) = ((yyvsp[(1) - (2)].integer) | (yyvsp[(2) - (2)].integer)); }
6530 /* Line 1455 of yacc.c */
6531 #line 2504 "vtkParse.y"
6532 { postSig("&"); (yyval.integer) = VTK_PARSE_REF; }
6537 /* Line 1455 of yacc.c */
6538 #line 2507 "vtkParse.y"
6539 { postSig("*"); (yyval.integer) = VTK_PARSE_POINTER; }
6544 /* Line 1455 of yacc.c */
6545 #line 2508 "vtkParse.y"
6551 /* Line 1455 of yacc.c */
6552 #line 2509 "vtkParse.y"
6554 if (((yyvsp[(3) - (3)].integer) & VTK_PARSE_CONST) != 0)
6556 (yyval.integer) = VTK_PARSE_CONST_POINTER;
6558 if (((yyvsp[(3) - (3)].integer) & VTK_PARSE_VOLATILE) != 0)
6560 (yyval.integer) = VTK_PARSE_BAD_INDIRECT;
6567 /* Line 1455 of yacc.c */
6568 #line 2525 "vtkParse.y"
6571 n = (((yyvsp[(1) - (2)].integer) << 2) | (yyvsp[(2) - (2)].integer));
6572 if ((n & VTK_PARSE_INDIRECT) != n)
6574 n = VTK_PARSE_BAD_INDIRECT;
6576 (yyval.integer) = n;
6582 /* Line 1455 of yacc.c */
6583 #line 2541 "vtkParse.y"
6584 {preSig("void Set"); postSig("(");}
6589 /* Line 1455 of yacc.c */
6590 #line 2542 "vtkParse.y"
6593 currentFunction->Macro = "vtkSetMacro";
6594 currentFunction->Name = vtkstrcat("Set", (yyvsp[(3) - (7)].str));
6595 currentFunction->Comment = vtkstrdup(getComment());
6596 add_parameter(currentFunction, getType(), getTypeId(), 0);
6597 set_return(currentFunction, VTK_PARSE_VOID, "void", 0);
6604 /* Line 1455 of yacc.c */
6605 #line 2551 "vtkParse.y"
6611 /* Line 1455 of yacc.c */
6612 #line 2552 "vtkParse.y"
6618 /* Line 1455 of yacc.c */
6619 #line 2552 "vtkParse.y"
6625 /* Line 1455 of yacc.c */
6626 #line 2553 "vtkParse.y"
6629 currentFunction->Macro = "vtkGetMacro";
6630 currentFunction->Name = vtkstrcat("Get", (yyvsp[(4) - (9)].str));
6631 currentFunction->Comment = vtkstrdup(getComment());
6632 set_return(currentFunction, getType(), getTypeId(), 0);
6639 /* Line 1455 of yacc.c */
6640 #line 2561 "vtkParse.y"
6641 {preSig("void Set");}
6646 /* Line 1455 of yacc.c */
6647 #line 2562 "vtkParse.y"
6649 postSig("(char *);");
6650 currentFunction->Macro = "vtkSetStringMacro";
6651 currentFunction->Name = vtkstrcat("Set", (yyvsp[(4) - (5)].str));
6652 currentFunction->Comment = vtkstrdup(getComment());
6653 add_parameter(currentFunction, VTK_PARSE_CHAR_PTR, "char", 0);
6654 set_return(currentFunction, VTK_PARSE_VOID, "void", 0);
6661 /* Line 1455 of yacc.c */
6662 #line 2571 "vtkParse.y"
6663 {preSig("char *Get");}
6668 /* Line 1455 of yacc.c */
6669 #line 2572 "vtkParse.y"
6672 currentFunction->Macro = "vtkGetStringMacro";
6673 currentFunction->Name = vtkstrcat("Get", (yyvsp[(4) - (5)].str));
6674 currentFunction->Comment = vtkstrdup(getComment());
6675 set_return(currentFunction, VTK_PARSE_CHAR_PTR, "char", 0);
6682 /* Line 1455 of yacc.c */
6683 #line 2580 "vtkParse.y"
6684 {startSig(); markSig();}
6689 /* Line 1455 of yacc.c */
6690 #line 2580 "vtkParse.y"
6696 /* Line 1455 of yacc.c */
6697 #line 2582 "vtkParse.y"
6699 const char *typeText;
6701 typeText = copySig();
6703 currentFunction->Macro = "vtkSetClampMacro";
6704 currentFunction->Name = vtkstrcat("Set", (yyvsp[(3) - (10)].str));
6705 currentFunction->Signature =
6706 vtkstrcat5("void ", currentFunction->Name, "(", typeText, ");");
6707 currentFunction->Comment = vtkstrdup(getComment());
6708 add_parameter(currentFunction, getType(), getTypeId(), 0);
6709 set_return(currentFunction, VTK_PARSE_VOID, "void", 0);
6712 currentFunction->Macro = "vtkSetClampMacro";
6713 currentFunction->Name = vtkstrcat3("Get", (yyvsp[(3) - (10)].str), "MinValue");
6714 currentFunction->Signature =
6715 vtkstrcat4(typeText, " ", currentFunction->Name, "();");
6716 currentFunction->Comment = vtkstrdup(getComment());
6717 set_return(currentFunction, getType(), getTypeId(), 0);
6720 currentFunction->Macro = "vtkSetClampMacro";
6721 currentFunction->Name = vtkstrcat3("Get", (yyvsp[(3) - (10)].str), "MaxValue");
6722 currentFunction->Signature =
6723 vtkstrcat4(typeText, " ", currentFunction->Name, "();");
6724 currentFunction->Comment = vtkstrdup(getComment());
6725 set_return(currentFunction, getType(), getTypeId(), 0);
6732 /* Line 1455 of yacc.c */
6733 #line 2613 "vtkParse.y"
6734 {preSig("void Set"); postSig("("); }
6739 /* Line 1455 of yacc.c */
6740 #line 2614 "vtkParse.y"
6743 currentFunction->Macro = "vtkSetObjectMacro";
6744 currentFunction->Name = vtkstrcat("Set", (yyvsp[(3) - (7)].str));
6745 currentFunction->Comment = vtkstrdup(getComment());
6746 add_parameter(currentFunction, VTK_PARSE_OBJECT_PTR, getTypeId(), 0);
6747 set_return(currentFunction, VTK_PARSE_VOID, "void", 0);
6754 /* Line 1455 of yacc.c */
6755 #line 2623 "vtkParse.y"
6761 /* Line 1455 of yacc.c */
6762 #line 2624 "vtkParse.y"
6768 /* Line 1455 of yacc.c */
6769 #line 2624 "vtkParse.y"
6775 /* Line 1455 of yacc.c */
6776 #line 2625 "vtkParse.y"
6779 currentFunction->Macro = "vtkGetObjectMacro";
6780 currentFunction->Name = vtkstrcat("Get", (yyvsp[(4) - (9)].str));
6781 currentFunction->Comment = vtkstrdup(getComment());
6782 set_return(currentFunction, VTK_PARSE_OBJECT_PTR, getTypeId(), 0);
6789 /* Line 1455 of yacc.c */
6790 #line 2634 "vtkParse.y"
6792 currentFunction->Macro = "vtkBooleanMacro";
6793 currentFunction->Name = vtkstrcat((yyvsp[(3) - (6)].str), "On");
6794 currentFunction->Comment = vtkstrdup(getComment());
6795 currentFunction->Signature =
6796 vtkstrcat3("void ", currentFunction->Name, "();");
6797 set_return(currentFunction, VTK_PARSE_VOID, "void", 0);
6800 currentFunction->Macro = "vtkBooleanMacro";
6801 currentFunction->Name = vtkstrcat((yyvsp[(3) - (6)].str), "Off");
6802 currentFunction->Comment = vtkstrdup(getComment());
6803 currentFunction->Signature =
6804 vtkstrcat3("void ", currentFunction->Name, "();");
6805 set_return(currentFunction, VTK_PARSE_VOID, "void", 0);
6812 /* Line 1455 of yacc.c */
6813 #line 2651 "vtkParse.y"
6814 {startSig(); markSig();}
6819 /* Line 1455 of yacc.c */
6820 #line 2652 "vtkParse.y"
6823 outputSetVectorMacro((yyvsp[(3) - (7)].str), getType(), copySig(), 2);
6829 /* Line 1455 of yacc.c */
6830 #line 2656 "vtkParse.y"
6831 {startSig(); markSig();}
6836 /* Line 1455 of yacc.c */
6837 #line 2657 "vtkParse.y"
6840 outputGetVectorMacro((yyvsp[(3) - (7)].str), getType(), copySig(), 2);
6846 /* Line 1455 of yacc.c */
6847 #line 2661 "vtkParse.y"
6848 {startSig(); markSig();}
6853 /* Line 1455 of yacc.c */
6854 #line 2662 "vtkParse.y"
6857 outputSetVectorMacro((yyvsp[(3) - (7)].str), getType(), copySig(), 3);
6863 /* Line 1455 of yacc.c */
6864 #line 2666 "vtkParse.y"
6865 {startSig(); markSig();}
6870 /* Line 1455 of yacc.c */
6871 #line 2667 "vtkParse.y"
6874 outputGetVectorMacro((yyvsp[(3) - (7)].str), getType(), copySig(), 3);
6880 /* Line 1455 of yacc.c */
6881 #line 2671 "vtkParse.y"
6882 {startSig(); markSig();}
6887 /* Line 1455 of yacc.c */
6888 #line 2672 "vtkParse.y"
6891 outputSetVectorMacro((yyvsp[(3) - (7)].str), getType(), copySig(), 4);
6897 /* Line 1455 of yacc.c */
6898 #line 2676 "vtkParse.y"
6899 {startSig(); markSig();}
6904 /* Line 1455 of yacc.c */
6905 #line 2677 "vtkParse.y"
6908 outputGetVectorMacro((yyvsp[(3) - (7)].str), getType(), copySig(), 4);
6914 /* Line 1455 of yacc.c */
6915 #line 2681 "vtkParse.y"
6916 {startSig(); markSig();}
6921 /* Line 1455 of yacc.c */
6922 #line 2682 "vtkParse.y"
6925 outputSetVectorMacro((yyvsp[(3) - (7)].str), getType(), copySig(), 6);
6931 /* Line 1455 of yacc.c */
6932 #line 2686 "vtkParse.y"
6933 {startSig(); markSig();}
6938 /* Line 1455 of yacc.c */
6939 #line 2687 "vtkParse.y"
6942 outputGetVectorMacro((yyvsp[(3) - (7)].str), getType(), copySig(), 6);
6948 /* Line 1455 of yacc.c */
6949 #line 2691 "vtkParse.y"
6950 {startSig(); markSig();}
6955 /* Line 1455 of yacc.c */
6956 #line 2693 "vtkParse.y"
6958 const char *typeText;
6960 typeText = copySig();
6961 currentFunction->Macro = "vtkSetVectorMacro";
6962 currentFunction->Name = vtkstrcat("Set", (yyvsp[(3) - (9)].str));
6963 currentFunction->Signature =
6964 vtkstrcat7("void ", currentFunction->Name, "(", typeText,
6965 " a[", (yyvsp[(8) - (9)].str), "]);");
6966 currentFunction->Comment = vtkstrdup(getComment());
6967 add_parameter(currentFunction, (VTK_PARSE_POINTER | getType()),
6968 getTypeId(), (int)strtol((yyvsp[(8) - (9)].str), NULL, 0));
6969 set_return(currentFunction, VTK_PARSE_VOID, "void", 0);
6976 /* Line 1455 of yacc.c */
6977 #line 2708 "vtkParse.y"
6983 /* Line 1455 of yacc.c */
6984 #line 2710 "vtkParse.y"
6987 currentFunction->Macro = "vtkGetVectorMacro";
6988 currentFunction->Name = vtkstrcat("Get", (yyvsp[(3) - (9)].str));
6990 postSig(currentFunction->Name);
6992 currentFunction->Comment = vtkstrdup(getComment());
6993 set_return(currentFunction, (VTK_PARSE_POINTER | getType()),
6994 getTypeId(), (int)strtol((yyvsp[(8) - (9)].str), NULL, 0));
7001 /* Line 1455 of yacc.c */
7002 #line 2723 "vtkParse.y"
7004 currentFunction->Macro = "vtkViewportCoordinateMacro";
7005 currentFunction->Name = vtkstrcat3("Get", (yyvsp[(3) - (4)].str), "Coordinate");
7006 currentFunction->Signature =
7007 vtkstrcat3("vtkCoordinate *", currentFunction->Name, "();");
7008 currentFunction->Comment = vtkstrdup(getComment());
7009 set_return(currentFunction, VTK_PARSE_OBJECT_PTR, "vtkCoordinate", 0);
7012 currentFunction->Macro = "vtkViewportCoordinateMacro";
7013 currentFunction->Name = vtkstrcat("Set", (yyvsp[(3) - (4)].str));
7014 currentFunction->Signature =
7015 vtkstrcat3("void ", currentFunction->Name, "(double, double);");
7016 currentFunction->Comment = vtkstrdup(getComment());
7017 add_parameter(currentFunction, VTK_PARSE_DOUBLE, "double", 0);
7018 add_parameter(currentFunction, VTK_PARSE_DOUBLE, "double", 0);
7019 set_return(currentFunction, VTK_PARSE_VOID, "void", 0);
7022 currentFunction->Macro = "vtkViewportCoordinateMacro";
7023 currentFunction->Name = vtkstrcat("Set", (yyvsp[(3) - (4)].str));
7024 currentFunction->Signature =
7025 vtkstrcat3("void ", currentFunction->Name, "(double a[2]);");
7026 currentFunction->Comment = vtkstrdup(getComment());
7027 add_parameter(currentFunction, VTK_PARSE_DOUBLE_PTR, "double", 2);
7028 set_return(currentFunction, VTK_PARSE_VOID, "void", 0);
7031 currentFunction->Macro = "vtkViewportCoordinateMacro";
7032 currentFunction->Name = vtkstrcat("Get", (yyvsp[(3) - (4)].str));
7033 currentFunction->Signature =
7034 vtkstrcat3("double *", currentFunction->Name, "();");
7035 currentFunction->Comment = vtkstrdup(getComment());
7036 set_return(currentFunction, VTK_PARSE_DOUBLE_PTR, "double", 2);
7043 /* Line 1455 of yacc.c */
7044 #line 2760 "vtkParse.y"
7046 currentFunction->Macro = "vtkWorldCoordinateMacro";
7047 currentFunction->Name = vtkstrcat3("Get", (yyvsp[(3) - (4)].str), "Coordinate");
7048 currentFunction->Signature =
7049 vtkstrcat3("vtkCoordinate *", currentFunction->Name, "();");
7050 currentFunction->Comment = vtkstrdup(getComment());
7051 set_return(currentFunction, VTK_PARSE_OBJECT_PTR, "vtkCoordinate", 0);
7054 currentFunction->Macro = "vtkWorldCoordinateMacro";
7055 currentFunction->Name = vtkstrcat("Set", (yyvsp[(3) - (4)].str));
7056 currentFunction->Signature =
7057 vtkstrcat3("void ", currentFunction->Name, "(double, double, double);");
7058 currentFunction->Comment = vtkstrdup(getComment());
7059 add_parameter(currentFunction, VTK_PARSE_DOUBLE, "double", 0);
7060 add_parameter(currentFunction, VTK_PARSE_DOUBLE, "double", 0);
7061 add_parameter(currentFunction, VTK_PARSE_DOUBLE, "double", 0);
7062 set_return(currentFunction, VTK_PARSE_VOID, "void", 0);
7065 currentFunction->Macro = "vtkWorldCoordinateMacro";
7066 currentFunction->Name = vtkstrcat("Set", (yyvsp[(3) - (4)].str));
7067 currentFunction->Signature =
7068 vtkstrcat3("void ", currentFunction->Name, "(double a[3]);");
7069 currentFunction->Comment = vtkstrdup(getComment());
7070 add_parameter(currentFunction, VTK_PARSE_DOUBLE_PTR, "double", 3);
7071 set_return(currentFunction, VTK_PARSE_VOID, "void", 0);
7074 currentFunction->Macro = "vtkWorldCoordinateMacro";
7075 currentFunction->Name = vtkstrcat("Get", (yyvsp[(3) - (4)].str));
7076 currentFunction->Signature =
7077 vtkstrcat3("double *", currentFunction->Name, "();");
7078 currentFunction->Comment = vtkstrdup(getComment());
7079 set_return(currentFunction, VTK_PARSE_DOUBLE_PTR, "double", 3);
7086 /* Line 1455 of yacc.c */
7087 #line 2798 "vtkParse.y"
7089 currentFunction->Macro = "vtkTypeMacro";
7090 currentFunction->Name = "GetClassName";
7091 currentFunction->Signature = "const char *GetClassName();";
7092 currentFunction->Comment = vtkstrdup(getComment());
7093 set_return(currentFunction, (VTK_PARSE_CONST | VTK_PARSE_CHAR_PTR),
7097 currentFunction->Macro = "vtkTypeMacro";
7098 currentFunction->Name = "IsA";
7099 currentFunction->Signature = "int IsA(const char *name);";
7100 currentFunction->Comment = vtkstrdup(getComment());
7101 add_parameter(currentFunction, (VTK_PARSE_CONST | VTK_PARSE_CHAR_PTR),
7103 set_return(currentFunction, VTK_PARSE_INT, "int", 0);
7106 currentFunction->Macro = "vtkTypeMacro";
7107 currentFunction->Name = "NewInstance";
7108 currentFunction->Signature = vtkstrcat((yyvsp[(3) - (7)].str), " *NewInstance();");
7109 currentFunction->Comment = vtkstrdup(getComment());
7110 set_return(currentFunction, VTK_PARSE_OBJECT_PTR, (yyvsp[(3) - (7)].str), 0);
7113 currentFunction->Macro = "vtkTypeMacro";
7114 currentFunction->Name = "SafeDownCast";
7115 currentFunction->Signature =
7116 vtkstrcat((yyvsp[(3) - (7)].str), " *SafeDownCast(vtkObject* o);");
7117 currentFunction->Comment = vtkstrdup(getComment());
7118 add_parameter(currentFunction, VTK_PARSE_OBJECT_PTR, "vtkObject", 0);
7119 set_return(currentFunction, (VTK_PARSE_STATIC | VTK_PARSE_OBJECT_PTR),
7120 (yyvsp[(3) - (7)].str), 0);
7127 /* Line 1455 of yacc.c */
7128 #line 2842 "vtkParse.y"
7129 { (yyval.str) = "()"; }
7134 /* Line 1455 of yacc.c */
7135 #line 2843 "vtkParse.y"
7136 { (yyval.str) = "[]"; }
7141 /* Line 1455 of yacc.c */
7142 #line 2844 "vtkParse.y"
7143 { (yyval.str) = " new[]"; }
7148 /* Line 1455 of yacc.c */
7149 #line 2845 "vtkParse.y"
7150 { (yyval.str) = " delete[]"; }
7155 /* Line 1455 of yacc.c */
7156 #line 2846 "vtkParse.y"
7157 { (yyval.str) = "<"; }
7162 /* Line 1455 of yacc.c */
7163 #line 2847 "vtkParse.y"
7164 { (yyval.str) = ">"; }
7169 /* Line 1455 of yacc.c */
7170 #line 2848 "vtkParse.y"
7171 { (yyval.str) = ","; }
7176 /* Line 1455 of yacc.c */
7177 #line 2849 "vtkParse.y"
7178 { (yyval.str) = "="; }
7183 /* Line 1455 of yacc.c */
7184 #line 2853 "vtkParse.y"
7185 { (yyval.str) = "%"; }
7190 /* Line 1455 of yacc.c */
7191 #line 2854 "vtkParse.y"
7192 { (yyval.str) = "*"; }
7197 /* Line 1455 of yacc.c */
7198 #line 2855 "vtkParse.y"
7199 { (yyval.str) = "/"; }
7204 /* Line 1455 of yacc.c */
7205 #line 2856 "vtkParse.y"
7206 { (yyval.str) = "-"; }
7211 /* Line 1455 of yacc.c */
7212 #line 2857 "vtkParse.y"
7213 { (yyval.str) = "+"; }
7218 /* Line 1455 of yacc.c */
7219 #line 2858 "vtkParse.y"
7220 { (yyval.str) = "!"; }
7225 /* Line 1455 of yacc.c */
7226 #line 2859 "vtkParse.y"
7227 { (yyval.str) = "~"; }
7232 /* Line 1455 of yacc.c */
7233 #line 2860 "vtkParse.y"
7234 { (yyval.str) = "&"; }
7239 /* Line 1455 of yacc.c */
7240 #line 2861 "vtkParse.y"
7241 { (yyval.str) = "|"; }
7246 /* Line 1455 of yacc.c */
7247 #line 2862 "vtkParse.y"
7248 { (yyval.str) = "^"; }
7253 /* Line 1455 of yacc.c */
7254 #line 2863 "vtkParse.y"
7255 { (yyval.str) = " new"; }
7260 /* Line 1455 of yacc.c */
7261 #line 2864 "vtkParse.y"
7262 { (yyval.str) = " delete"; }
7267 /* Line 1455 of yacc.c */
7268 #line 2865 "vtkParse.y"
7269 { (yyval.str) = "<<="; }
7274 /* Line 1455 of yacc.c */
7275 #line 2866 "vtkParse.y"
7276 { (yyval.str) = ">>="; }
7281 /* Line 1455 of yacc.c */
7282 #line 2867 "vtkParse.y"
7283 { (yyval.str) = "<<"; }
7288 /* Line 1455 of yacc.c */
7289 #line 2868 "vtkParse.y"
7290 { (yyval.str) = ">>"; }
7295 /* Line 1455 of yacc.c */
7296 #line 2869 "vtkParse.y"
7297 { (yyval.str) = ".*"; }
7302 /* Line 1455 of yacc.c */
7303 #line 2870 "vtkParse.y"
7304 { (yyval.str) = "->*"; }
7309 /* Line 1455 of yacc.c */
7310 #line 2871 "vtkParse.y"
7311 { (yyval.str) = "->"; }
7316 /* Line 1455 of yacc.c */
7317 #line 2872 "vtkParse.y"
7318 { (yyval.str) = "+="; }
7323 /* Line 1455 of yacc.c */
7324 #line 2873 "vtkParse.y"
7325 { (yyval.str) = "-="; }
7330 /* Line 1455 of yacc.c */
7331 #line 2874 "vtkParse.y"
7332 { (yyval.str) = "*="; }
7337 /* Line 1455 of yacc.c */
7338 #line 2875 "vtkParse.y"
7339 { (yyval.str) = "/="; }
7344 /* Line 1455 of yacc.c */
7345 #line 2876 "vtkParse.y"
7346 { (yyval.str) = "%="; }
7351 /* Line 1455 of yacc.c */
7352 #line 2877 "vtkParse.y"
7353 { (yyval.str) = "++"; }
7358 /* Line 1455 of yacc.c */
7359 #line 2878 "vtkParse.y"
7360 { (yyval.str) = "--"; }
7365 /* Line 1455 of yacc.c */
7366 #line 2879 "vtkParse.y"
7367 { (yyval.str) = "&="; }
7372 /* Line 1455 of yacc.c */
7373 #line 2880 "vtkParse.y"
7374 { (yyval.str) = "|="; }
7379 /* Line 1455 of yacc.c */
7380 #line 2881 "vtkParse.y"
7381 { (yyval.str) = "^="; }
7386 /* Line 1455 of yacc.c */
7387 #line 2882 "vtkParse.y"
7388 { (yyval.str) = "&&"; }
7393 /* Line 1455 of yacc.c */
7394 #line 2883 "vtkParse.y"
7395 { (yyval.str) = "||"; }
7400 /* Line 1455 of yacc.c */
7401 #line 2884 "vtkParse.y"
7402 { (yyval.str) = "=="; }
7407 /* Line 1455 of yacc.c */
7408 #line 2885 "vtkParse.y"
7409 { (yyval.str) = "!="; }
7414 /* Line 1455 of yacc.c */
7415 #line 2886 "vtkParse.y"
7416 { (yyval.str) = "<="; }
7421 /* Line 1455 of yacc.c */
7422 #line 2887 "vtkParse.y"
7423 { (yyval.str) = ">="; }
7428 /* Line 1455 of yacc.c */
7429 #line 2890 "vtkParse.y"
7430 { (yyval.str) = "typedef"; }
7435 /* Line 1455 of yacc.c */
7436 #line 2891 "vtkParse.y"
7437 { (yyval.str) = "typename"; }
7442 /* Line 1455 of yacc.c */
7443 #line 2892 "vtkParse.y"
7444 { (yyval.str) = "class"; }
7449 /* Line 1455 of yacc.c */
7450 #line 2893 "vtkParse.y"
7451 { (yyval.str) = "struct"; }
7456 /* Line 1455 of yacc.c */
7457 #line 2894 "vtkParse.y"
7458 { (yyval.str) = "union"; }
7463 /* Line 1455 of yacc.c */
7464 #line 2895 "vtkParse.y"
7465 { (yyval.str) = "template"; }
7470 /* Line 1455 of yacc.c */
7471 #line 2896 "vtkParse.y"
7472 { (yyval.str) = "public"; }
7477 /* Line 1455 of yacc.c */
7478 #line 2897 "vtkParse.y"
7479 { (yyval.str) = "protected"; }
7484 /* Line 1455 of yacc.c */
7485 #line 2898 "vtkParse.y"
7486 { (yyval.str) = "private"; }
7491 /* Line 1455 of yacc.c */
7492 #line 2899 "vtkParse.y"
7493 { (yyval.str) = "const"; }
7498 /* Line 1455 of yacc.c */
7499 #line 2900 "vtkParse.y"
7500 { (yyval.str) = "static"; }
7505 /* Line 1455 of yacc.c */
7506 #line 2901 "vtkParse.y"
7507 { (yyval.str) = "inline"; }
7512 /* Line 1455 of yacc.c */
7513 #line 2902 "vtkParse.y"
7514 { (yyval.str) = "virtual"; }
7519 /* Line 1455 of yacc.c */
7520 #line 2903 "vtkParse.y"
7521 { (yyval.str) = "extern"; }
7526 /* Line 1455 of yacc.c */
7527 #line 2904 "vtkParse.y"
7528 { (yyval.str) = "namespace"; }
7533 /* Line 1455 of yacc.c */
7534 #line 2905 "vtkParse.y"
7535 { (yyval.str) = "operator"; }
7540 /* Line 1455 of yacc.c */
7541 #line 2906 "vtkParse.y"
7542 { (yyval.str) = "enum"; }
7547 /* Line 1455 of yacc.c */
7548 #line 2907 "vtkParse.y"
7549 { (yyval.str) = "throw"; }
7554 /* Line 1455 of yacc.c */
7555 #line 2908 "vtkParse.y"
7556 { (yyval.str) = "const_cast"; }
7561 /* Line 1455 of yacc.c */
7562 #line 2909 "vtkParse.y"
7563 { (yyval.str) = "dynamic_cast"; }
7568 /* Line 1455 of yacc.c */
7569 #line 2910 "vtkParse.y"
7570 { (yyval.str) = "static_cast"; }
7575 /* Line 1455 of yacc.c */
7576 #line 2911 "vtkParse.y"
7577 { (yyval.str) = "reinterpret_cast"; }
7582 /* Line 1455 of yacc.c */
7583 #line 2935 "vtkParse.y"
7585 if ((((yyvsp[(1) - (1)].str))[0] == '+' || ((yyvsp[(1) - (1)].str))[0] == '-' ||
7586 ((yyvsp[(1) - (1)].str))[0] == '*' || ((yyvsp[(1) - (1)].str))[0] == '&') &&
7587 ((yyvsp[(1) - (1)].str))[1] == '\0')
7595 if (l != 0) { c1 = cp[l-1]; }
7596 if (c1 != 0 && c1 != '(' && c1 != '[' && c1 != '=')
7600 postSig((yyvsp[(1) - (1)].str));
7601 if ((c1 >= 'A' && c1 <= 'Z') || (c1 >= 'a' && c1 <= 'z') ||
7602 (c1 >= '0' && c1 <= '9') || c1 == '_' || c1 == '\'' ||
7603 c1 == '\"' || c1 == ')' || c1 == ']')
7610 postSig((yyvsp[(1) - (1)].str));
7618 /* Line 1455 of yacc.c */
7619 #line 2965 "vtkParse.y"
7620 { postSig(":"); postSig(" "); }
7625 /* Line 1455 of yacc.c */
7626 #line 2965 "vtkParse.y"
7632 /* Line 1455 of yacc.c */
7633 #line 2966 "vtkParse.y"
7634 { chopSig(); postSig("::"); }
7639 /* Line 1455 of yacc.c */
7640 #line 2967 "vtkParse.y"
7641 { postSig((yyvsp[(1) - (1)].str)); postSig(" "); }
7646 /* Line 1455 of yacc.c */
7647 #line 2968 "vtkParse.y"
7648 { postSig((yyvsp[(1) - (1)].str)); postSig(" "); }
7653 /* Line 1455 of yacc.c */
7654 #line 2971 "vtkParse.y"
7662 if (l != 0) { c1 = cp[l-1]; }
7663 while (((c1 >= 'A' && c1 <= 'Z') || (c1 >= 'a' && c1 <= 'z') ||
7664 (c1 >= '0' && c1 <= '9') || c1 == '_') && l != 0)
7669 if (l < 2 || cp[l-1] != ':' || cp[l-2] != ':')
7671 cp = add_const_scope(&cp[l]);
7680 /* Line 1455 of yacc.c */
7681 #line 2997 "vtkParse.y"
7687 /* Line 1455 of yacc.c */
7688 #line 2998 "vtkParse.y"
7694 /* Line 1455 of yacc.c */
7695 #line 3001 "vtkParse.y"
7701 /* Line 1455 of yacc.c */
7702 #line 3002 "vtkParse.y"
7703 { chopSig(); postSig(", "); }
7708 /* Line 1455 of yacc.c */
7709 #line 3005 "vtkParse.y"
7710 { chopSig(); postSig(";"); }
7715 /* Line 1455 of yacc.c */
7716 #line 3019 "vtkParse.y"
7722 /* Line 1455 of yacc.c */
7723 #line 3020 "vtkParse.y"
7724 { chopSig(); postSig(", "); }
7729 /* Line 1455 of yacc.c */
7730 #line 3024 "vtkParse.y"
7733 if (getSig()[getSigLength()-1] == '<') { postSig(" "); }
7740 /* Line 1455 of yacc.c */
7741 #line 3030 "vtkParse.y"
7744 if (getSig()[getSigLength()-1] == '>') { postSig(" "); }
7751 /* Line 1455 of yacc.c */
7752 #line 3037 "vtkParse.y"
7758 /* Line 1455 of yacc.c */
7759 #line 3038 "vtkParse.y"
7760 { chopSig(); postSig("] "); }
7765 /* Line 1455 of yacc.c */
7766 #line 3041 "vtkParse.y"
7772 /* Line 1455 of yacc.c */
7773 #line 3042 "vtkParse.y"
7774 { chopSig(); postSig(") "); }
7779 /* Line 1455 of yacc.c */
7780 #line 3043 "vtkParse.y"
7781 { postSig("("); postSig((yyvsp[(1) - (1)].str)); postSig("*"); }
7786 /* Line 1455 of yacc.c */
7787 #line 3044 "vtkParse.y"
7788 { chopSig(); postSig(") "); }
7793 /* Line 1455 of yacc.c */
7794 #line 3045 "vtkParse.y"
7795 { postSig("("); postSig((yyvsp[(1) - (1)].str)); postSig("&"); }
7800 /* Line 1455 of yacc.c */
7801 #line 3046 "vtkParse.y"
7802 { chopSig(); postSig(") "); }
7807 /* Line 1455 of yacc.c */
7808 #line 3049 "vtkParse.y"
7814 /* Line 1455 of yacc.c */
7815 #line 3049 "vtkParse.y"
7821 /* Line 1455 of yacc.c */
7822 #line 7941 "vtkParse.tab.c"
7825 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
7829 YY_STACK_PRINT (yyss, yyssp);
7833 /* Now `shift' the result of the reduction. Determine what state
7834 that goes to, based on the state we popped back to and the rule
7835 number reduced by. */
7839 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
7840 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
7841 yystate = yytable[yystate];
7843 yystate = yydefgoto[yyn - YYNTOKENS];
7848 /*------------------------------------.
7849 | yyerrlab -- here on detecting error |
7850 `------------------------------------*/
7852 /* If not already recovering from an error, report this error. */
7856 #if ! YYERROR_VERBOSE
7857 yyerror (YY_("syntax error"));
7860 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
7861 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
7863 YYSIZE_T yyalloc = 2 * yysize;
7864 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
7865 yyalloc = YYSTACK_ALLOC_MAXIMUM;
7866 if (yymsg != yymsgbuf)
7867 YYSTACK_FREE (yymsg);
7868 yymsg = (char *) YYSTACK_ALLOC (yyalloc);
7870 yymsg_alloc = yyalloc;
7874 yymsg_alloc = sizeof yymsgbuf;
7878 if (0 < yysize && yysize <= yymsg_alloc)
7880 (void) yysyntax_error (yymsg, yystate, yychar);
7885 yyerror (YY_("syntax error"));
7887 goto yyexhaustedlab;
7895 if (yyerrstatus == 3)
7897 /* If just tried and failed to reuse lookahead token after an
7898 error, discard it. */
7900 if (yychar <= YYEOF)
7902 /* Return failure if at end of input. */
7903 if (yychar == YYEOF)
7908 yydestruct ("Error: discarding",
7914 /* Else will try to reuse lookahead token after shifting the error
7919 /*---------------------------------------------------.
7920 | yyerrorlab -- error raised explicitly by YYERROR. |
7921 `---------------------------------------------------*/
7924 /* Pacify compilers like GCC when the user code never invokes
7925 YYERROR and the label yyerrorlab therefore never appears in user
7927 if (/*CONSTCOND*/ 0)
7930 /* Do not reclaim the symbols of the rule which action triggered
7934 YY_STACK_PRINT (yyss, yyssp);
7938 /*-------------------------------------------------------------.
7939 | yyerrlab1 -- common code for both syntax error and YYERROR. |
7940 `-------------------------------------------------------------*/
7942 yyerrstatus = 3; /* Each real token shifted decrements this. */
7946 yyn = yypact[yystate];
7947 if (yyn != YYPACT_NINF)
7950 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
7958 /* Pop the current state because it cannot handle the error token. */
7963 yydestruct ("Error: popping",
7964 yystos[yystate], yyvsp);
7967 YY_STACK_PRINT (yyss, yyssp);
7973 /* Shift the error token. */
7974 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
7980 /*-------------------------------------.
7981 | yyacceptlab -- YYACCEPT comes here. |
7982 `-------------------------------------*/
7987 /*-----------------------------------.
7988 | yyabortlab -- YYABORT comes here. |
7989 `-----------------------------------*/
7994 #if !defined(yyoverflow) || YYERROR_VERBOSE
7995 /*-------------------------------------------------.
7996 | yyexhaustedlab -- memory exhaustion comes here. |
7997 `-------------------------------------------------*/
7999 yyerror (YY_("memory exhausted"));
8005 if (yychar != YYEMPTY)
8006 yydestruct ("Cleanup: discarding lookahead",
8008 /* Do not reclaim the symbols of the rule which action triggered
8009 this YYABORT or YYACCEPT. */
8011 YY_STACK_PRINT (yyss, yyssp);
8012 while (yyssp != yyss)
8014 yydestruct ("Cleanup: popping",
8015 yystos[*yyssp], yyvsp);
8020 YYSTACK_FREE (yyss);
8023 if (yymsg != yymsgbuf)
8024 YYSTACK_FREE (yymsg);
8026 /* Make sure YYID is used. */
8027 return YYID (yyresult);
8032 /* Line 1675 of yacc.c */
8033 #line 3088 "vtkParse.y"
8038 /* fill in the type name if none given */
8039 const char *type_class(unsigned int type, const char *classname)
8043 if (classname[0] == '\0')
8045 switch ((type & VTK_PARSE_BASE_TYPE))
8047 case VTK_PARSE_VOID:
8050 case VTK_PARSE_BOOL:
8053 case VTK_PARSE_FLOAT:
8054 classname = "float";
8056 case VTK_PARSE_DOUBLE:
8057 classname = "double";
8059 case VTK_PARSE_LONG_DOUBLE:
8060 classname = "long double";
8062 case VTK_PARSE_CHAR:
8065 case VTK_PARSE_UNSIGNED_CHAR:
8066 classname = "unsigned char";
8068 case VTK_PARSE_SIGNED_CHAR:
8069 classname = "signed char";
8071 case VTK_PARSE_SHORT:
8072 classname = "short";
8074 case VTK_PARSE_UNSIGNED_SHORT:
8075 classname = "unsigned short";
8080 case VTK_PARSE_UNSIGNED_INT:
8081 classname = "unsigned int";
8083 case VTK_PARSE_LONG:
8086 case VTK_PARSE_UNSIGNED_LONG:
8087 classname = "unsigned long";
8089 case VTK_PARSE_LONG_LONG:
8090 classname = "long long";
8092 case VTK_PARSE_UNSIGNED_LONG_LONG:
8093 classname = "unsigned long long";
8095 case VTK_PARSE___INT64:
8096 classname = "__int64";
8098 case VTK_PARSE_UNSIGNED___INT64:
8099 classname = "unsigned __int64";
8108 /* check whether this is the class we are looking for */
8109 void start_class(const char *classname, int is_struct_or_union)
8111 ClassInfo *outerClass = currentClass;
8113 currentClass = (ClassInfo *)malloc(sizeof(ClassInfo));
8114 vtkParse_InitClass(currentClass);
8115 currentClass->Name = classname;
8116 if (is_struct_or_union == 1)
8118 currentClass->ItemType = VTK_STRUCT_INFO;
8120 if (is_struct_or_union == 2)
8122 currentClass->ItemType = VTK_UNION_INFO;
8125 if (classname && classname[strlen(classname)-1] != '>')
8129 vtkParse_AddClassToClass(outerClass, currentClass);
8133 vtkParse_AddClassToNamespace(currentNamespace, currentClass);
8137 /* template information */
8138 if (currentTemplate)
8140 currentClass->Template = currentTemplate;
8141 currentTemplate = NULL;
8144 /* comment, if any */
8145 currentClass->Comment = vtkstrdup(getComment());
8147 access_level = VTK_ACCESS_PRIVATE;
8148 if (is_struct_or_union)
8150 access_level = VTK_ACCESS_PUBLIC;
8153 vtkParse_InitFunction(currentFunction);
8158 /* reject the class */
8159 void reject_class(const char *classname, int is_struct_or_union)
8161 static ClassInfo static_class;
8164 currentClass = &static_class;
8165 currentClass->Name = classname;
8166 vtkParse_InitClass(currentClass);
8168 access_level = VTK_ACCESS_PRIVATE;
8169 if (is_struct_or_union)
8171 access_level = VTK_ACCESS_PUBLIC;
8174 vtkParse_InitFunction(currentFunction);
8179 /* reached the end of a class definition */
8182 /* add default constructors */
8183 vtkParse_AddDefaultConstructors(currentClass, data->Strings);
8188 /* add a base class to the specified class */
8189 void add_base_class(ClassInfo *cls, const char *name, int al, int virt)
8191 if (cls && al == VTK_ACCESS_PUBLIC && virt == 0)
8193 vtkParse_AddStringToArray(&cls->SuperClasses,
8194 &cls->NumberOfSuperClasses,
8199 /* add a using declaration or directive */
8200 void add_using(const char *name, int is_namespace)
8205 item = (UsingInfo *)malloc(sizeof(UsingInfo));
8206 vtkParse_InitUsing(item);
8215 while (i > 0 && name[i-1] != ':') { i--; }
8216 item->Name = vtkstrdup(&name[i]);
8217 while (i > 0 && name[i-1] == ':') { i--; }
8218 item->Scope = vtkstrndup(name, i);
8223 vtkParse_AddUsingToClass(currentClass, item);
8227 vtkParse_AddUsingToNamespace(currentNamespace, item);
8231 /* start a new enum */
8232 void start_enum(const char *name)
8236 currentEnumName = "int";
8237 currentEnumValue = NULL;
8240 currentEnumName = name;
8241 item = (EnumInfo *)malloc(sizeof(EnumInfo));
8242 vtkParse_InitEnum(item);
8244 item->Access = access_level;
8247 vtkParse_AddEnumToClass(currentClass, item);
8251 vtkParse_AddEnumToNamespace(currentNamespace, item);
8256 /* finish the enum */
8259 currentEnumName = NULL;
8260 currentEnumValue = NULL;
8263 /* add a constant to the enum */
8264 void add_enum(const char *name, const char *value)
8266 static char text[2048];
8272 strcpy(text, value);
8273 currentEnumValue = value;
8275 else if (currentEnumValue)
8278 while (i > 0 && text[i-1] >= '0' &&
8279 text[i-1] <= '9') { i--; }
8281 if (i == 0 || text[i-1] == ' ' ||
8282 (i > 1 && text[i-2] == ' ' &&
8283 (text[i-1] == '-' || text[i-1] == '+')))
8285 if (i > 0 && text[i-1] != ' ')
8289 j = (int)strtol(&text[i], NULL, 10);
8290 sprintf(&text[i], "%li", j+1);
8295 strcpy(&text[i], " + 1");
8297 currentEnumValue = vtkstrdup(text);
8302 currentEnumValue = "0";
8305 add_constant(name, currentEnumValue, VTK_PARSE_INT, currentEnumName, 2);
8308 /* for a macro constant, guess the constant type, doesn't do any math */
8309 unsigned int guess_constant_type(const char *valstring)
8311 unsigned int valtype = 0;
8316 if (valstring == NULL || valstring[0] == '\0')
8321 if (valstring[0] < '0' || valstring[0] > '9')
8324 while ((valstring[k] >= '0' && valstring[k] <= '9') ||
8325 (valstring[k] >= 'a' && valstring[k] <= 'z') ||
8326 (valstring[k] >= 'A' && valstring[k] <= 'Z') ||
8327 valstring[k] == '_') { k++; }
8329 if (valstring[k] == '\0')
8335 if (strcmp(valstring, "true") == 0 || strcmp(valstring, "false") == 0)
8337 return VTK_PARSE_BOOL;
8340 if (valstring[0] == '\'')
8342 return VTK_PARSE_CHAR;
8345 if (strncmp(valstring, "VTK_TYPE_CAST(", 14) == 0 ||
8346 strncmp(valstring, "static_cast<", 12) == 0 ||
8347 strncmp(valstring, "const_cast<", 11) == 0 ||
8348 strncmp(valstring, "(", 1) == 0)
8352 int is_unsigned = 0;
8355 if (valstring[0] == 'c')
8357 cp = &valstring[11];
8359 else if (valstring[0] == 's')
8361 cp = &valstring[12];
8363 else if (valstring[0] == 'V')
8365 cp = &valstring[14];
8368 if (strncmp(cp, "unsigned ", 9) == 0)
8375 for (k = 0; k < n && cp[k] != ',' &&
8376 cp[k] != '>' && cp[k] != ')'; k++) { ; };
8378 if (strncmp(cp, "long long", k) == 0)
8379 { valtype = VTK_PARSE_LONG_LONG; }
8380 else if (strncmp(cp, "__int64", k) == 0)
8381 { valtype = VTK_PARSE___INT64; }
8382 else if (strncmp(cp, "long", k) == 0)
8383 { valtype = VTK_PARSE_LONG; }
8384 else if (strncmp(cp, "short", k) == 0)
8385 { valtype = VTK_PARSE_SHORT; }
8386 else if (strncmp(cp, "signed char", k) == 0)
8387 { valtype = VTK_PARSE_SIGNED_CHAR; }
8388 else if (strncmp(cp, "char", k) == 0)
8389 { valtype = VTK_PARSE_CHAR; }
8390 else if (strncmp(cp, "int", k) == 0 ||
8391 strncmp(cp, "signed", k) == 0)
8392 { valtype = VTK_PARSE_INT; }
8393 else if (strncmp(cp, "float", k) == 0)
8394 { valtype = VTK_PARSE_FLOAT; }
8395 else if (strncmp(cp, "double", k) == 0)
8396 { valtype = VTK_PARSE_DOUBLE; }
8397 else if (strncmp(cp, "char *", k) == 0)
8398 { valtype = VTK_PARSE_CHAR_PTR; }
8402 if (valtype == 0) { valtype = VTK_PARSE_INT; }
8403 valtype = (valtype | VTK_PARSE_UNSIGNED);
8412 /* check the current scope */
8415 NamespaceInfo *scope = currentNamespace;
8416 if (namespaceDepth > 0)
8418 scope = namespaceStack[0];
8421 for (i = 0; i < scope->NumberOfConstants; i++)
8423 if (strcmp(scope->Constants[i]->Name, valstring) == 0)
8425 return scope->Constants[i]->Type;
8430 /* check for preprocessor macros */
8433 MacroInfo *macro = vtkParsePreprocess_GetMacro(
8434 preprocessor, valstring);
8436 if (macro && !macro->IsFunction)
8438 return guess_constant_type(macro->Definition);
8442 /* fall back to the preprocessor to evaluate the constant */
8446 int result = vtkParsePreprocess_EvaluateExpression(
8447 preprocessor, valstring, &val, &is_unsigned);
8449 if (result == VTK_PARSE_PREPROC_DOUBLE)
8451 return VTK_PARSE_DOUBLE;
8453 else if (result == VTK_PARSE_PREPROC_FLOAT)
8455 return VTK_PARSE_FLOAT;
8457 else if (result == VTK_PARSE_PREPROC_STRING)
8459 return VTK_PARSE_CHAR_PTR;
8461 else if (result == VTK_PARSE_OK)
8465 if ((preproc_uint_t)val <= VTK_UNSIGNED_INT_MAX)
8467 return VTK_PARSE_UNSIGNED_INT;
8471 #if defined(VTK_TYPE_USE_LONG_LONG)
8472 return VTK_PARSE_UNSIGNED_LONG_LONG;
8473 #elif defined(VTK_TYPE_USE___INT64)
8474 return VTK_PARSE_UNSIGNED___INT64;
8476 return VTK_PARSE_UNSIGNED_LONG;
8482 if (val >= VTK_INT_MIN && val <= VTK_INT_MAX)
8484 return VTK_PARSE_INT;
8488 #if defined(VTK_TYPE_USE_LONG_LONG)
8489 return VTK_PARSE_LONG_LONG;
8490 #elif defined(VTK_TYPE_USE___INT64)
8491 return VTK_PARSE___INT64;
8493 return VTK_PARSE_LONG;
8503 /* add a constant to the current class or namespace */
8504 void add_constant(const char *name, const char *value,
8505 unsigned int type, const char *typeclass, int flag)
8507 ValueInfo *con = (ValueInfo *)malloc(sizeof(ValueInfo));
8508 vtkParse_InitValue(con);
8509 con->ItemType = VTK_CONSTANT_INFO;
8513 con->Class = type_class(type, typeclass);
8522 /* actually a macro, need to guess the type */
8523 ValueInfo **cptr = data->Contents->Constants;
8524 int n = data->Contents->NumberOfConstants;
8527 con->Access = VTK_ACCESS_PUBLIC;
8530 con->Type = guess_constant_type(con->Value);
8533 for (i = 0; i < n; i++)
8535 if (strcmp(cptr[i]->Name, con->Name) == 0)
8543 vtkParse_AddConstantToNamespace(data->Contents, con);
8547 vtkParse_FreeValue(con);
8550 else if (currentClass)
8552 con->Access = access_level;
8553 vtkParse_AddConstantToClass(currentClass, con);
8557 con->Access = VTK_ACCESS_PUBLIC;
8558 vtkParse_AddConstantToNamespace(currentNamespace, con);
8562 /* if the name is a const in this namespace, the scope it */
8563 const char *add_const_scope(const char *name)
8565 static char text[256];
8566 NamespaceInfo *scope = currentNamespace;
8574 for (j = 0; j < currentClass->NumberOfConstants; j++)
8576 if (strcmp(currentClass->Constants[j]->Name, text) == 0)
8578 prepend_scope(text, currentClass->Name);
8584 while (scope && scope->Name)
8588 prepend_scope(text, scope->Name);
8592 for (j = 0; j < scope->NumberOfConstants; j++)
8594 if (strcmp(scope->Constants[j]->Name, text) == 0)
8596 prepend_scope(text, scope->Name);
8605 scope = namespaceStack[--i];
8612 /* guess the type from the ID */
8613 unsigned int guess_id_type(const char *cp)
8623 while (i > 0 && cp[i-1] != ':') { i--; }
8626 if (strcmp(dp, "vtkStdString") == 0 ||
8627 strcmp(cp, "std::string") == 0)
8629 t = VTK_PARSE_STRING;
8631 else if (strcmp(dp, "vtkUnicodeString") == 0)
8633 t = VTK_PARSE_UNICODE_STRING;
8635 else if (strncmp(dp, "vtk", 3) == 0)
8637 t = VTK_PARSE_OBJECT;
8639 else if (strncmp(dp, "Q", 1) == 0 ||
8640 strncmp(cp, "Qt::", 4) == 0)
8642 t = VTK_PARSE_QOBJECT;
8646 t = VTK_PARSE_UNKNOWN;
8653 /* add a template parameter to the current template */
8654 void add_template_parameter(
8655 unsigned int datatype, unsigned int extra, const char *funcSig)
8657 ValueInfo *param = (ValueInfo *)malloc(sizeof(ValueInfo));
8658 vtkParse_InitValue(param);
8659 handle_complex_type(param, datatype, extra, funcSig);
8660 param->Name = getVarName();
8661 vtkParse_AddParameterToTemplate(currentTemplate, param);
8664 /* add a parameter to a function */
8665 void add_parameter(FunctionInfo *func, unsigned int type,
8666 const char *typeclass, int count)
8669 ValueInfo *param = (ValueInfo *)malloc(sizeof(ValueInfo));
8670 vtkParse_InitValue(param);
8673 param->Class = type_class(type, typeclass);
8677 param->Count = count;
8678 sprintf(text, "%i", count);
8679 vtkParse_AddStringToArray(¶m->Dimensions, ¶m->NumberOfDimensions,
8683 add_legacy_parameter(func, param);
8685 vtkParse_AddParameterToFunction(func, param);
8688 /* set the return type for the current function */
8689 void set_return(FunctionInfo *func, unsigned int type,
8690 const char *typeclass, int count)
8693 ValueInfo *val = (ValueInfo *)malloc(sizeof(ValueInfo));
8695 vtkParse_InitValue(val);
8697 val->Class = type_class(type, typeclass);
8702 sprintf(text, "%i", count);
8703 vtkParse_AddStringToArray(&val->Dimensions, &val->NumberOfDimensions,
8707 func->ReturnValue = val;
8709 #ifndef VTK_PARSE_LEGACY_REMOVE
8710 func->ReturnType = val->Type;
8711 func->ReturnClass = val->Class;
8712 func->HaveHint = (count > 0);
8713 func->HintSize = count;
8717 int count_from_dimensions(ValueInfo *val)
8722 /* count is the product of the dimensions */
8724 if (val->NumberOfDimensions)
8727 for (i = 0; i < val->NumberOfDimensions; i++)
8730 cp = val->Dimensions[i];
8733 while (*cp != '\0' && *cp >= '0' && *cp <= '9') { cp++; }
8734 while (*cp != '\0' && (*cp == 'u' || *cp == 'l' ||
8735 *cp == 'U' || *cp == 'L')) { cp++; }
8738 n = (int)strtol(val->Dimensions[i], NULL, 0);
8748 /* deal with types that include function pointers or arrays */
8749 void handle_complex_type(
8750 ValueInfo *val, unsigned int datatype, unsigned int extra,
8751 const char *funcSig)
8753 FunctionInfo *func = 0;
8755 /* remove specifiers like "friend" and "typedef" */
8756 datatype &= VTK_PARSE_QUALIFIED_TYPE;
8758 /* if "extra" was set, parentheses were involved */
8759 if ((extra & VTK_PARSE_BASE_TYPE) == VTK_PARSE_FUNCTION)
8761 /* the current type becomes the function return type */
8762 func = getFunction();
8763 func->ReturnValue = (ValueInfo *)malloc(sizeof(ValueInfo));
8764 vtkParse_InitValue(func->ReturnValue);
8765 func->ReturnValue->Type = datatype;
8766 func->ReturnValue->Class = type_class(datatype, getTypeId());
8767 if (funcSig) { func->Signature = vtkstrdup(funcSig); }
8768 val->Function = func;
8770 #ifndef VTK_PARSE_LEGACY_REMOVE
8771 func->ReturnType = func->ReturnValue->Type;
8772 func->ReturnClass = func->ReturnValue->Class;
8775 /* the val type is whatever was inside the parentheses */
8777 setTypeId(func->Class ? "method" : "function");
8778 datatype = (extra & VTK_PARSE_UNQUALIFIED_TYPE);
8780 else if ((extra & VTK_PARSE_INDIRECT) == VTK_PARSE_BAD_INDIRECT)
8782 datatype = (datatype | VTK_PARSE_BAD_INDIRECT);
8784 else if ((extra & VTK_PARSE_INDIRECT) != 0)
8786 extra = (extra & VTK_PARSE_INDIRECT);
8788 if ((extra & VTK_PARSE_REF) != 0)
8790 datatype = (datatype | VTK_PARSE_REF);
8791 extra = (extra & ~VTK_PARSE_REF);
8794 if (extra != 0 && getArrayNDims() > 0)
8796 /* pointer represents an unsized array bracket */
8797 datatype = add_indirection(datatype, VTK_PARSE_ARRAY);
8798 extra = ((extra >> 2) & VTK_PARSE_POINTER_MASK);
8801 datatype = add_indirection(datatype, extra);
8804 if (getArrayNDims() == 1)
8806 if ((datatype & VTK_PARSE_POINTER_LOWMASK) != VTK_PARSE_ARRAY)
8808 /* turn the first set of brackets into a pointer */
8809 datatype = add_indirection(datatype, VTK_PARSE_POINTER);
8816 else if (getArrayNDims() > 1)
8818 if ((datatype & VTK_PARSE_POINTER_LOWMASK) != VTK_PARSE_ARRAY)
8820 /* turn the first set of brackets into a pointer */
8821 datatype = add_indirection(datatype, VTK_PARSE_ARRAY);
8829 /* get the data type */
8830 val->Type = datatype;
8831 val->Class = type_class(datatype, getTypeId());
8833 /* copy contents of all brackets to the ArgDimensions */
8834 val->NumberOfDimensions = getArrayNDims();
8835 val->Dimensions = getArray();
8838 /* count is the product of the dimensions */
8839 val->Count = count_from_dimensions(val);
8842 /* add a parameter to the legacy part of the FunctionInfo struct */
8843 void add_legacy_parameter(FunctionInfo *func, ValueInfo *param)
8845 #ifndef VTK_PARSE_LEGACY_REMOVE
8846 int i = func->NumberOfArguments;
8850 func->NumberOfArguments = i + 1;
8851 func->ArgTypes[i] = param->Type;
8852 func->ArgClasses[i] = param->Class;
8853 func->ArgCounts[i] = param->Count;
8855 /* legacy wrappers need VTK_PARSE_FUNCTION without POINTER */
8856 if (param->Type == VTK_PARSE_FUNCTION_PTR)
8858 /* check for signature "void (*func)(void *)" */
8859 if (param->Function->NumberOfParameters == 1 &&
8860 param->Function->Parameters[0]->Type == VTK_PARSE_VOID_PTR &&
8861 param->Function->Parameters[0]->NumberOfDimensions == 0 &&
8862 param->Function->ReturnValue->Type == VTK_PARSE_VOID)
8864 func->ArgTypes[i] = VTK_PARSE_FUNCTION;
8870 func->ArrayFailure = 1;
8876 /* reject the function, do not output it */
8877 void reject_function()
8879 vtkParse_InitFunction(currentFunction);
8884 /* a simple routine that updates a few variables */
8885 void output_function()
8887 const char *macro = getMacro();
8892 /* reject template specializations */
8893 n = strlen(currentFunction->Name);
8894 if (currentFunction->Name[n-1] == '>')
8896 /* make sure there is a matching angle bracket */
8897 while (n > 0 && currentFunction->Name[n-1] != '<') { n--; }
8906 if (currentFunction->ReturnValue &&
8907 currentFunction->ReturnValue->Type & VTK_PARSE_STATIC)
8909 currentFunction->IsStatic = 1;
8913 if (currentFunction->ReturnValue &&
8914 currentFunction->ReturnValue->Type & VTK_PARSE_VIRTUAL)
8916 currentFunction->IsVirtual = 1;
8920 if (!currentFunction->Signature)
8922 currentFunction->Signature = getSig();
8925 /* template information */
8926 if (currentTemplate)
8928 currentFunction->Template = currentTemplate;
8929 currentTemplate = NULL;
8932 /* a void argument is the same as no parameters */
8933 if (currentFunction->NumberOfParameters == 1 &&
8934 (currentFunction->Parameters[0]->Type & VTK_PARSE_UNQUALIFIED_TYPE) ==
8937 currentFunction->NumberOfParameters = 0;
8940 /* is it defined in a legacy macro? */
8941 if (macro && strcmp(macro, "VTK_LEGACY") == 0)
8943 currentFunction->IsLegacy = 1;
8946 /* set public, protected */
8949 currentFunction->Access = access_level;
8953 currentFunction->Access = VTK_ACCESS_PUBLIC;
8956 #ifndef VTK_PARSE_LEGACY_REMOVE
8957 /* a void argument is the same as no parameters */
8958 if (currentFunction->NumberOfArguments == 1 &&
8959 (currentFunction->ArgTypes[0] & VTK_PARSE_UNQUALIFIED_TYPE) ==
8962 currentFunction->NumberOfArguments = 0;
8965 /* if return type is void, set return class to void */
8966 if (currentFunction->ReturnClass == NULL &&
8967 (currentFunction->ReturnType & VTK_PARSE_UNQUALIFIED_TYPE) ==
8970 currentFunction->ReturnClass = "void";
8973 /* set legacy flags */
8976 currentFunction->IsPublic = (access_level == VTK_ACCESS_PUBLIC);
8977 currentFunction->IsProtected = (access_level == VTK_ACCESS_PROTECTED);
8981 currentFunction->IsPublic = 1;
8982 currentFunction->IsProtected = 0;
8985 /* check for too many parameters */
8986 if (currentFunction->NumberOfParameters > MAX_ARGS)
8988 currentFunction->ArrayFailure = 1;
8991 for (i = 0; i < currentFunction->NumberOfParameters; i++)
8993 ValueInfo *param = currentFunction->Parameters[i];
8994 /* tell old wrappers that multi-dimensional arrays are bad */
8995 if ((param->Type & VTK_PARSE_POINTER_MASK) != 0)
8997 if (((param->Type & VTK_PARSE_INDIRECT) == VTK_PARSE_BAD_INDIRECT) ||
8998 ((param->Type & VTK_PARSE_POINTER_LOWMASK) != VTK_PARSE_POINTER))
9000 currentFunction->ArrayFailure = 1;
9004 /* allow only "void (*func)(void *)" as a valid function pointer */
9005 if ((param->Type & VTK_PARSE_BASE_TYPE) == VTK_PARSE_FUNCTION)
9007 if (i != 0 || param->Type != VTK_PARSE_FUNCTION_PTR ||
9008 currentFunction->NumberOfParameters != 2 ||
9009 currentFunction->Parameters[1]->Type != VTK_PARSE_VOID_PTR ||
9010 param->Function->NumberOfParameters != 1 ||
9011 param->Function->Parameters[0]->Type != VTK_PARSE_VOID_PTR ||
9012 param->Function->Parameters[0]->NumberOfDimensions != 0 ||
9013 param->Function->ReturnValue->Type != VTK_PARSE_VOID)
9015 currentFunction->ArrayFailure = 1;
9019 #endif /* VTK_PARSE_LEGACY_REMOVE */
9023 /* is it a delete function */
9024 if (currentFunction->Name && !strcmp("Delete",currentFunction->Name))
9026 currentClass->HasDelete = 1;
9029 currentFunction->Class = currentClass->Name;
9030 vtkParse_AddFunctionToClass(currentClass, currentFunction);
9032 currentFunction = (FunctionInfo *)malloc(sizeof(FunctionInfo));
9036 /* make sure this function isn't a repeat */
9038 for (i = 0; i < currentNamespace->NumberOfFunctions; i++)
9040 if (currentNamespace->Functions[i]->Name &&
9041 strcmp(currentNamespace->Functions[i]->Name,
9042 currentFunction->Name) == 0)
9044 if (currentNamespace->Functions[i]->NumberOfParameters ==
9045 currentFunction->NumberOfParameters)
9047 for (j = 0; j < currentFunction->NumberOfParameters; j++)
9049 if (currentNamespace->Functions[i]->Parameters[j]->Type ==
9050 currentFunction->Parameters[j]->Type)
9052 if (currentFunction->Parameters[j]->Type == VTK_PARSE_OBJECT &&
9053 strcmp(currentNamespace->Functions[i]->Parameters[j]->Class,
9054 currentFunction->Parameters[j]->Class) == 0)
9060 if (j == currentFunction->NumberOfParameters)
9071 vtkParse_AddFunctionToNamespace(currentNamespace, currentFunction);
9073 currentFunction = (FunctionInfo *)malloc(sizeof(FunctionInfo));
9077 vtkParse_InitFunction(currentFunction);
9081 /* output a function that is not a method of the current class */
9082 void output_friend_function()
9084 ClassInfo *tmpc = currentClass;
9085 currentClass = NULL;
9087 currentClass = tmpc;
9090 void outputSetVectorMacro(const char *var, unsigned int paramType,
9091 const char *typeText, int n)
9093 static const char *mnames[] = {
9095 "vtkSetVector2Macro", "vtkSetVector3Macro", "vtkSetVector4Macro",
9097 "vtkSetVector6Macro",
9101 m = (n > 7 ? 0 : n);
9103 sprintf(ntext, "%i", n);
9105 currentFunction->Macro = mnames[m];
9106 currentFunction->Name = vtkstrcat("Set", var);
9109 postSig(currentFunction->Name);
9112 for (i = 1; i < n; i++)
9118 for (i = 0; i < n; i++)
9120 add_parameter(currentFunction, paramType, getTypeId(), 0);
9122 set_return(currentFunction, VTK_PARSE_VOID, "void", 0);
9125 currentFunction->Macro = mnames[m];
9126 currentFunction->Name = vtkstrcat("Set", var);
9127 currentFunction->Signature =
9128 vtkstrcat7("void ", currentFunction->Name, "(", typeText,
9129 " a[", ntext, "]);");
9130 add_parameter(currentFunction, (VTK_PARSE_POINTER | paramType),
9132 set_return(currentFunction, VTK_PARSE_VOID, "void", 0);
9136 void outputGetVectorMacro(const char *var, unsigned int paramType,
9137 const char *typeText, int n)
9139 static const char *mnames[] = {
9141 "vtkGetVector2Macro", "vtkGetVector3Macro", "vtkGetVector4Macro",
9143 "vtkGetVector6Macro",
9146 m = (n > 7 ? 0 : n);
9148 currentFunction->Macro = mnames[m];
9149 currentFunction->Name = vtkstrcat("Get", var);
9150 currentFunction->Signature =
9151 vtkstrcat4(typeText, " *", currentFunction->Name, "();");
9152 set_return(currentFunction, (VTK_PARSE_POINTER | paramType), getTypeId(), n);
9156 /* Set a flag to ignore BTX/ETX markers in the files */
9157 void vtkParse_SetIgnoreBTX(int option)
9169 /* Set a flag to recurse into included files */
9170 void vtkParse_SetRecursive(int option)
9182 /* Parse a header file and return a FileInfo struct */
9183 FileInfo *vtkParse_ParseFile(
9184 const char *filename, FILE *ifile, FILE *errfile)
9188 FileInfo *file_info;
9191 /* "data" is a global variable used by the parser */
9192 data = (FileInfo *)malloc(sizeof(FileInfo));
9193 vtkParse_InitFile(data);
9194 data->Strings = (StringCache *)malloc(sizeof(StringCache));
9195 vtkParse_InitStringCache(data->Strings);
9197 /* "preprocessor" is a global struct used by the parser */
9198 preprocessor = (PreprocessInfo *)malloc(sizeof(PreprocessInfo));
9199 vtkParsePreprocess_Init(preprocessor, filename);
9200 vtkParsePreprocess_AddStandardMacros(preprocessor, VTK_PARSE_NATIVE);
9202 /* add include files specified on the command line */
9203 for (i = 0; i < NumberOfIncludeDirectories; i++)
9205 vtkParsePreprocess_IncludeDirectory(preprocessor, IncludeDirectories[i]);
9208 /* add macros specified on the command line */
9209 for (i = 0; i < NumberOfDefinitions; i++)
9211 const char *cp = Definitions[i];
9215 vtkParsePreprocess_RemoveMacro(preprocessor, &cp[1]);
9217 else if (*cp == 'D')
9219 const char *definition = &cp[1];
9220 while (*definition != '=' && *definition != '\0')
9224 if (*definition == '=')
9232 vtkParsePreprocess_AddMacro(preprocessor, &cp[1], definition);
9236 /* should explicitly check for vtkConfigure.h, or even explicitly load it */
9237 #ifdef VTK_USE_64BIT_IDS
9238 vtkParsePreprocess_AddMacro(preprocessor, "VTK_USE_64BIT_IDS", NULL);
9241 data->FileName = vtkstrdup(filename);
9246 currentNamespace = (NamespaceInfo *)malloc(sizeof(NamespaceInfo));
9247 vtkParse_InitNamespace(currentNamespace);
9248 data->Contents = currentNamespace;
9251 currentTemplate = NULL;
9253 currentFunction = (FunctionInfo *)malloc(sizeof(FunctionInfo));
9254 vtkParse_InitFunction(currentFunction);
9258 if (getenv("DEBUG") != NULL)
9269 print_parser_error("syntax error", NULL, 0);
9273 free(currentFunction);
9276 /* The main class name should match the file name */
9277 i = strlen(filename);
9282 if (filename[i] == '.')
9286 if (filename[i] == '/' || filename[i] == '\\')
9292 main_class = (char *)malloc(j-i+1);
9293 strncpy(main_class, &filename[i], j-i);
9294 main_class[j-i] = '\0';
9296 /* special treatment of the main class in the file */
9297 for (i = 0; i < currentNamespace->NumberOfClasses; i++)
9299 if (strcmp(currentNamespace->Classes[i]->Name, main_class) == 0)
9301 data->MainClass = currentNamespace->Classes[i];
9307 vtkParsePreprocess_Free(preprocessor);
9308 preprocessor = NULL;
9317 /* Read a hints file and update the FileInfo */
9318 int vtkParse_ReadHints(FileInfo *file_info, FILE *hfile, FILE *errfile)
9322 unsigned int h_type, type;
9324 FunctionInfo *func_info;
9325 ClassInfo *class_info;
9326 NamespaceInfo *contents;
9331 contents = file_info->Contents;
9333 /* read each hint line in succession */
9334 while ((n = fscanf(hfile,"%s %s %x %i", h_cls, h_func, &h_type, &h_value))
9340 fprintf(errfile, "Wrapping: error parsing hints file line %i\n", lineno);
9344 /* erase "ref" and qualifiers from hint type */
9345 type = ((h_type & VTK_PARSE_BASE_TYPE) |
9346 (h_type & VTK_PARSE_POINTER_LOWMASK));
9348 /* find the matching class */
9349 for (i = 0; i < contents->NumberOfClasses; i++)
9351 class_info = contents->Classes[i];
9353 if (strcmp(h_cls, class_info->Name) == 0)
9355 /* find the matching function */
9356 for (j = 0; j < class_info->NumberOfFunctions; j++)
9358 func_info = class_info->Functions[j];
9360 if ((strcmp(h_func, func_info->Name) == 0) &&
9361 func_info->ReturnValue &&
9362 (type == ((func_info->ReturnValue->Type & ~VTK_PARSE_REF) &
9363 VTK_PARSE_UNQUALIFIED_TYPE)))
9365 /* types that hints are accepted for */
9366 switch (func_info->ReturnValue->Type & VTK_PARSE_UNQUALIFIED_TYPE)
9368 case VTK_PARSE_FLOAT_PTR:
9369 case VTK_PARSE_VOID_PTR:
9370 case VTK_PARSE_DOUBLE_PTR:
9371 case VTK_PARSE_ID_TYPE_PTR:
9372 case VTK_PARSE_LONG_LONG_PTR:
9373 case VTK_PARSE_UNSIGNED_LONG_LONG_PTR:
9374 case VTK_PARSE___INT64_PTR:
9375 case VTK_PARSE_UNSIGNED___INT64_PTR:
9376 case VTK_PARSE_INT_PTR:
9377 case VTK_PARSE_UNSIGNED_INT_PTR:
9378 case VTK_PARSE_SHORT_PTR:
9379 case VTK_PARSE_UNSIGNED_SHORT_PTR:
9380 case VTK_PARSE_LONG_PTR:
9381 case VTK_PARSE_UNSIGNED_LONG_PTR:
9382 case VTK_PARSE_SIGNED_CHAR_PTR:
9383 case VTK_PARSE_UNSIGNED_CHAR_PTR:
9384 case VTK_PARSE_CHAR_PTR:
9386 if (func_info->ReturnValue->NumberOfDimensions == 0)
9389 sprintf(text, "%i", h_value);
9390 func_info->ReturnValue->Count = h_value;
9391 vtkParse_AddStringToArray(
9392 &func_info->ReturnValue->Dimensions,
9393 &func_info->ReturnValue->NumberOfDimensions,
9394 vtkParse_CacheString(
9395 file_info->Strings, text, strlen(text)));
9396 #ifndef VTK_PARSE_LEGACY_REMOVE
9397 func_info->HaveHint = 1;
9398 func_info->HintSize = h_value;
9406 "Wrapping: unhandled hint type %#x\n", h_type);
9418 /* Free the FileInfo struct returned by vtkParse_ParseFile() */
9419 void vtkParse_Free(FileInfo *file_info)
9421 vtkParse_FreeFile(file_info);
9422 vtkParse_FreeStringCache(file_info->Strings);
9423 free(file_info->Strings);
9427 /** Define a preprocessor macro. Function macros are not supported. */
9428 void vtkParse_DefineMacro(const char *name, const char *definition)
9430 size_t n = vtkidlen(name);
9434 if (definition == NULL)
9439 l = n + strlen(definition) + 3;
9440 cp = (char *)malloc(l);
9442 strncpy(&cp[1], name, n);
9444 if (definition[0] != '\0')
9447 strcpy(&cp[n+2], definition);
9451 vtkParse_AddStringToArray(&Definitions, &NumberOfDefinitions, cp);
9454 /** Undefine a preprocessor macro. */
9455 void vtkParse_UndefineMacro(const char *name)
9457 size_t n = vtkidlen(name);
9460 cp = (char *)malloc(n+2);
9462 strncpy(&cp[1], name, n);
9465 vtkParse_AddStringToArray(&Definitions, &NumberOfDefinitions, cp);
9468 /** Add an include directory, for use with the "-I" option. */
9469 void vtkParse_IncludeDirectory(const char *dirname)
9471 size_t n = strlen(dirname);
9475 for (i = 0; i < NumberOfIncludeDirectories; i++)
9477 if (strncmp(IncludeDirectories[i], dirname, n) == 0 &&
9478 IncludeDirectories[i][n] == '\0')
9484 cp = (char *)malloc(n+1);
9485 strcpy(cp, dirname);
9487 vtkParse_AddStringToArray(
9488 &IncludeDirectories, &NumberOfIncludeDirectories, cp);
9491 /** Return the full path to a header file. */
9492 const char *vtkParse_FindIncludeFile(const char *filename)
9494 static PreprocessInfo info = {0, 0, 0, 0, 0, 0, 0, 0, 0};
9498 /* add include files specified on the command line */
9499 for (i = 0; i < NumberOfIncludeDirectories; i++)
9501 vtkParsePreprocess_IncludeDirectory(&info, IncludeDirectories[i]);
9504 return vtkParsePreprocess_FindIncludeFile(&info, filename, 0, &val);