aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-devtools/sip/sip3/added-the-py_ssize_t_clean-argument-to-the-module-directive.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/recipes-devtools/sip/sip3/added-the-py_ssize_t_clean-argument-to-the-module-directive.patch')
-rw-r--r--meta-oe/recipes-devtools/sip/sip3/added-the-py_ssize_t_clean-argument-to-the-module-directive.patch17679
1 files changed, 17679 insertions, 0 deletions
diff --git a/meta-oe/recipes-devtools/sip/sip3/added-the-py_ssize_t_clean-argument-to-the-module-directive.patch b/meta-oe/recipes-devtools/sip/sip3/added-the-py_ssize_t_clean-argument-to-the-module-directive.patch
new file mode 100644
index 0000000000..d7ed0770b2
--- /dev/null
+++ b/meta-oe/recipes-devtools/sip/sip3/added-the-py_ssize_t_clean-argument-to-the-module-directive.patch
@@ -0,0 +1,17679 @@
+Added the 'py_ssize_t_clean' argument to '%Module' directive
+
+This is based on an upstream changeset to SIP. It was backported to
+sip-4.19.23 and the parser was regenerated with the following
+commands:
+
+ cd sipgen/metasrc
+ flex -o../lexer.c lexer.l
+ bison -y -d -o ../parser.c parser.y
+
+Signed-off-by: Rob Woolley <rob.woolley@windriver.com>
+
+# HG changeset patch
+# User Phil Thompson <phil@riverbankcomputing.com>
+# Date 1635086052 -3600
+# Node ID 5d67349bb5a9954590a896ab35da93b2237b99c2
+# Parent d837f2a3147fc5eb364f1c54798b668da1a83333
+Added the 'py_ssize_t_clean' argument to the '%Module' directive.
+
+Index: sip-4.19.23/sipgen/gencode.c
+===================================================================
+--- sip-4.19.23.orig/sipgen/gencode.c
++++ sip-4.19.23/sipgen/gencode.c
+@@ -1138,6 +1138,12 @@ static void generateCompositeCpp(sipSpec
+
+ declareLimitedAPI(py_debug, NULL, fp);
+
++ if (isPY_SSIZE_T_CLEAN(mod))
++ prcode(fp,
++"\n"
++"#define PY_SSIZE_T_CLEAN\n"
++ );
++
+ prcode(fp,
+ "\n"
+ "#include <Python.h>\n"
+Index: sip-4.19.23/sipgen/metasrc/lexer.l
+===================================================================
+--- sip-4.19.23.orig/sipgen/metasrc/lexer.l
++++ sip-4.19.23/sipgen/metasrc/lexer.l
+@@ -155,6 +155,7 @@ SIP_RXOBJ_DIS {return TK_S
+ SIP_SLOT_CON {return TK_SIPSLOTCON;}
+ SIP_SLOT_DIS {return TK_SIPSLOTDIS;}
+ SIP_SSIZE_T {return TK_SIPSSIZET;}
++Py_ssize_t {return TK_SIPSSIZET;}
+ SIP_QOBJECT {return TK_QOBJECT;}
+ \.\.\. {return TK_ELLIPSIS;}
+
+@@ -173,6 +174,7 @@ SIP_QOBJECT {return TK_Q
+ <directive>timestamp {return TK_TIMESTAMP;}
+ <directive>type {return TK_TYPE;}
+ <directive>use_argument_names {return TK_USEARGNAMES;}
++<directive>py_ssize_t_clean {return TK_PYSSIZETCLEAN;}
+ <directive>use_limited_api {return TK_USELIMITEDAPI;}
+ <directive>all_raise_py_exception {return TK_ALLRAISEPYEXC;}
+ <directive>call_super_init {return TK_CALLSUPERINIT;}
+Index: sip-4.19.23/sipgen/metasrc/parser.y
+===================================================================
+--- sip-4.19.23.orig/sipgen/metasrc/parser.y
++++ sip-4.19.23/sipgen/metasrc/parser.y
+@@ -182,9 +182,9 @@ static void addProperty(sipSpec *pt, mod
+ docstringDef *docstring);
+ static moduleDef *configureModule(sipSpec *pt, moduleDef *module,
+ const char *filename, const char *name, int c_module, KwArgs kwargs,
+- int use_arg_names, int use_limited_api, int call_super_init,
+- int all_raise_py_exc, const char *def_error_handler,
+- docstringDef *docstring);
++ int use_arg_names, int py_ssize_t_clean, int use_limited_api,
++ int call_super_init, int all_raise_py_exc,
++ const char *def_error_handler, docstringDef *docstring);
+ static void addAutoPyName(moduleDef *mod, const char *remove_leading);
+ static KwArgs convertKwArgs(const char *kwargs);
+ static void checkAnnos(optFlags *annos, const char *valid[]);
+@@ -389,6 +389,7 @@ static scopedNameDef *fullyQualifiedName
+ %token TK_TIMESTAMP
+ %token TK_TYPE
+ %token TK_USEARGNAMES
++%token TK_PYSSIZETCLEAN
+ %token TK_USELIMITEDAPI
+ %token TK_ALLRAISEPYEXC
+ %token TK_CALLSUPERINIT
+@@ -1908,9 +1909,10 @@ module: TK_MODULE module_args module_bod
+ if (notSkipping())
+ currentModule = configureModule(currentSpec, currentModule,
+ currentContext.filename, $2.name, $2.c_module,
+- $2.kwargs, $2.use_arg_names, $2.use_limited_api,
+- $2.call_super_init, $2.all_raise_py_exc,
+- $2.def_error_handler, $3.docstring);
++ $2.kwargs, $2.use_arg_names, $2.py_ssize_t_clean,
++ $2.use_limited_api, $2.call_super_init,
++ $2.all_raise_py_exc, $2.def_error_handler,
++ $3.docstring);
+ }
+ | TK_CMODULE dottedname optnumber {
+ deprecated("%CModule is deprecated, use %Module and the 'language' argument instead");
+@@ -1918,7 +1920,7 @@ module: TK_MODULE module_args module_bod
+ if (notSkipping())
+ currentModule = configureModule(currentSpec, currentModule,
+ currentContext.filename, $2, TRUE, defaultKwArgs,
+- FALSE, FALSE, -1, FALSE, NULL, NULL);
++ FALSE, FALSE, FALSE, -1, FALSE, NULL, NULL);
+ }
+ ;
+
+@@ -1930,6 +1932,7 @@ module_args: dottedname {resetLexerSt
+ $$.kwargs = defaultKwArgs;
+ $$.name = $1;
+ $$.use_arg_names = FALSE;
++ $$.py_ssize_t_clean = FALSE;
+ $$.use_limited_api = FALSE;
+ $$.all_raise_py_exc = FALSE;
+ $$.call_super_init = -1;
+@@ -1950,6 +1953,7 @@ module_arg_list: module_arg
+ case TK_LANGUAGE: $$.c_module = $3.c_module; break;
+ case TK_NAME: $$.name = $3.name; break;
+ case TK_USEARGNAMES: $$.use_arg_names = $3.use_arg_names; break;
++ case TK_PYSSIZETCLEAN: $$.py_ssize_t_clean = $3.py_ssize_t_clean; break;
+ case TK_USELIMITEDAPI: $$.use_limited_api = $3.use_limited_api; break;
+ case TK_ALLRAISEPYEXC: $$.all_raise_py_exc = $3.all_raise_py_exc; break;
+ case TK_CALLSUPERINIT: $$.call_super_init = $3.call_super_init; break;
+@@ -1965,6 +1969,7 @@ module_arg: TK_KWARGS '=' TK_STRING_VALU
+ $$.kwargs = convertKwArgs($3);
+ $$.name = NULL;
+ $$.use_arg_names = FALSE;
++ $$.py_ssize_t_clean = FALSE;
+ $$.use_limited_api = FALSE;
+ $$.all_raise_py_exc = FALSE;
+ $$.call_super_init = -1;
+@@ -1983,6 +1988,7 @@ module_arg: TK_KWARGS '=' TK_STRING_VALU
+ $$.kwargs = defaultKwArgs;
+ $$.name = NULL;
+ $$.use_arg_names = FALSE;
++ $$.py_ssize_t_clean = FALSE;
+ $$.use_limited_api = FALSE;
+ $$.all_raise_py_exc = FALSE;
+ $$.call_super_init = -1;
+@@ -1995,6 +2001,7 @@ module_arg: TK_KWARGS '=' TK_STRING_VALU
+ $$.kwargs = defaultKwArgs;
+ $$.name = $3;
+ $$.use_arg_names = FALSE;
++ $$.py_ssize_t_clean = FALSE;
+ $$.use_limited_api = FALSE;
+ $$.all_raise_py_exc = FALSE;
+ $$.call_super_init = -1;
+@@ -2007,6 +2014,20 @@ module_arg: TK_KWARGS '=' TK_STRING_VALU
+ $$.kwargs = defaultKwArgs;
+ $$.name = NULL;
+ $$.use_arg_names = $3;
++ $$.py_ssize_t_clean = FALSE;
++ $$.use_limited_api = FALSE;
++ $$.all_raise_py_exc = FALSE;
++ $$.call_super_init = -1;
++ $$.def_error_handler = NULL;
++ }
++ | TK_PYSSIZETCLEAN '=' bool_value {
++ $$.token = TK_PYSSIZETCLEAN;
++
++ $$.c_module = FALSE;
++ $$.kwargs = defaultKwArgs;
++ $$.name = NULL;
++ $$.use_arg_names = FALSE;
++ $$.py_ssize_t_clean = $3;
+ $$.use_limited_api = FALSE;
+ $$.all_raise_py_exc = FALSE;
+ $$.call_super_init = -1;
+@@ -2019,6 +2040,7 @@ module_arg: TK_KWARGS '=' TK_STRING_VALU
+ $$.kwargs = defaultKwArgs;
+ $$.name = NULL;
+ $$.use_arg_names = FALSE;
++ $$.py_ssize_t_clean = FALSE;
+ $$.use_limited_api = $3;
+ $$.all_raise_py_exc = FALSE;
+ $$.call_super_init = -1;
+@@ -2031,6 +2053,7 @@ module_arg: TK_KWARGS '=' TK_STRING_VALU
+ $$.kwargs = defaultKwArgs;
+ $$.name = NULL;
+ $$.use_arg_names = FALSE;
++ $$.py_ssize_t_clean = FALSE;
+ $$.use_limited_api = FALSE;
+ $$.all_raise_py_exc = $3;
+ $$.call_super_init = -1;
+@@ -2043,6 +2066,7 @@ module_arg: TK_KWARGS '=' TK_STRING_VALU
+ $$.kwargs = defaultKwArgs;
+ $$.name = NULL;
+ $$.use_arg_names = FALSE;
++ $$.py_ssize_t_clean = FALSE;
+ $$.use_limited_api = FALSE;
+ $$.all_raise_py_exc = FALSE;
+ $$.call_super_init = $3;
+@@ -2055,6 +2079,7 @@ module_arg: TK_KWARGS '=' TK_STRING_VALU
+ $$.kwargs = defaultKwArgs;
+ $$.name = NULL;
+ $$.use_arg_names = FALSE;
++ $$.py_ssize_t_clean = FALSE;
+ $$.use_limited_api = FALSE;
+ $$.all_raise_py_exc = FALSE;
+ $$.call_super_init = -1;
+@@ -2072,6 +2097,7 @@ module_arg: TK_KWARGS '=' TK_STRING_VALU
+ $$.kwargs = defaultKwArgs;
+ $$.name = NULL;
+ $$.use_arg_names = FALSE;
++ $$.py_ssize_t_clean = FALSE;
+ $$.use_limited_api = FALSE;
+ $$.all_raise_py_exc = FALSE;
+ $$.call_super_init = -1;
+@@ -9513,9 +9539,9 @@ static void addProperty(sipSpec *pt, mod
+ */
+ static moduleDef *configureModule(sipSpec *pt, moduleDef *module,
+ const char *filename, const char *name, int c_module, KwArgs kwargs,
+- int use_arg_names, int use_limited_api, int call_super_init,
+- int all_raise_py_exc, const char *def_error_handler,
+- docstringDef *docstring)
++ int use_arg_names, int py_ssize_t_clean, int use_limited_api,
++ int call_super_init, int all_raise_py_exc,
++ const char *def_error_handler, docstringDef *docstring)
+ {
+ moduleDef *mod;
+
+@@ -9549,6 +9575,9 @@ static moduleDef *configureModule(sipSpe
+ if (use_arg_names)
+ setUseArgNames(module);
+
++ if (py_ssize_t_clean)
++ setPY_SSIZE_T_CLEAN(module);
++
+ if (use_limited_api)
+ setUseLimitedAPI(module);
+
+Index: sip-4.19.23/sipgen/sip.h
+===================================================================
+--- sip-4.19.23.orig/sipgen/sip.h
++++ sip-4.19.23/sipgen/sip.h
+@@ -93,6 +93,7 @@
+ #define MOD_SUPER_INIT_UNDEF 0x0000 /* Calling super().__init__() is undefined. */
+ #define MOD_SUPER_INIT_MASK 0x0180 /* The mask for the above flags. */
+ #define MOD_SETTING_IMPORTS 0x0200 /* Imports are being set. */
++#define MOD_PY_SSIZE_T_CLEAN 0x0400 /* #define PY_SSIZE_T_CLEAN. */
+
+ #define hasDelayedDtors(m) ((m)->modflags & MOD_HAS_DELAYED_DTORS)
+ #define setHasDelayedDtors(m) ((m)->modflags |= MOD_HAS_DELAYED_DTORS)
+@@ -116,6 +117,8 @@
+ #define settingImports(m) ((m)->modflags & MOD_SETTING_IMPORTS)
+ #define setSettingImports(m) ((m)->modflags |= MOD_SETTING_IMPORTS)
+ #define resetSettingImports(m) ((m)->modflags &= ~MOD_SETTING_IMPORTS)
++#define setPY_SSIZE_T_CLEAN(m) ((m)->modflags |= MOD_PY_SSIZE_T_CLEAN)
++#define isPY_SSIZE_T_CLEAN(m) ((m)->modflags & MOD_PY_SSIZE_T_CLEAN)
+
+
+ /* Handle section flags. */
+@@ -1630,6 +1633,7 @@ typedef struct _moduleCfg {
+ KwArgs kwargs;
+ const char *name;
+ int use_arg_names;
++ int py_ssize_t_clean;
+ int use_limited_api;
+ int all_raise_py_exc;
+ int call_super_init;
+Index: sip-4.19.23/sphinx/directives.rst
+===================================================================
+--- sip-4.19.23.orig/sphinx/directives.rst
++++ sip-4.19.23/sphinx/directives.rst
+@@ -1966,6 +1966,7 @@ then the pattern should instead be::
+ [, default_VirtualErrorHandler = *name*]
+ [, keyword_arguments = ["None" | "All" | "Optional"]]
+ [, language = *string*]
++ [, py_ssize_t_clean = [True | False]]
+ [, use_argument_names = [True | False]]
+ [, use_limited_api = [True | False]]
+ [, version = *integer*])
+@@ -2004,6 +2005,9 @@ implied by the (deprecated) :option:`-k
+ ``language`` specifies the implementation language of the library being
+ wrapped. Its value is either ``"C++"`` (the default) or ``"C"``.
+
++``py_ssize_t_clean`` specifies that the generated code should include ``#define
++PY_SSIZE_T_CLEAN`` before any ``#include <Python.h>``.
++
+ When providing handwritten code as part of either the :directive:`%MethodCode`
+ or :directive:`%VirtualCatcherCode` directives the names of the arguments of
+ the function or method are based on the number of the argument, i.e. the first
+Index: sip-4.19.23/sipgen/lexer.c
+===================================================================
+--- sip-4.19.23.orig/sipgen/lexer.c
++++ sip-4.19.23/sipgen/lexer.c
+@@ -1,6 +1,6 @@
+-#line 2 "sip-4.19.23/sipgen/lexer.c"
++#line 2 "../lexer.c"
+
+-#line 4 "sip-4.19.23/sipgen/lexer.c"
++#line 4 "../lexer.c"
+
+ #define YY_INT_ALIGNED short int
+
+@@ -8,8 +8,8 @@
+
+ #define FLEX_SCANNER
+ #define YY_FLEX_MAJOR_VERSION 2
+-#define YY_FLEX_MINOR_VERSION 5
+-#define YY_FLEX_SUBMINOR_VERSION 35
++#define YY_FLEX_MINOR_VERSION 6
++#define YY_FLEX_SUBMINOR_VERSION 4
+ #if YY_FLEX_SUBMINOR_VERSION > 0
+ #define FLEX_BETA
+ #endif
+@@ -47,7 +47,6 @@ typedef int16_t flex_int16_t;
+ typedef uint16_t flex_uint16_t;
+ typedef int32_t flex_int32_t;
+ typedef uint32_t flex_uint32_t;
+-typedef uint64_t flex_uint64_t;
+ #else
+ typedef signed char flex_int8_t;
+ typedef short int flex_int16_t;
+@@ -55,7 +54,6 @@ typedef int flex_int32_t;
+ typedef unsigned char flex_uint8_t;
+ typedef unsigned short int flex_uint16_t;
+ typedef unsigned int flex_uint32_t;
+-#endif /* ! C99 */
+
+ /* Limits of integral types. */
+ #ifndef INT8_MIN
+@@ -86,63 +84,61 @@ typedef unsigned int flex_uint32_t;
+ #define UINT32_MAX (4294967295U)
+ #endif
+
+-#endif /* ! FLEXINT_H */
+-
+-#ifdef __cplusplus
+-
+-/* The "const" storage-class-modifier is valid. */
+-#define YY_USE_CONST
+-
+-#else /* ! __cplusplus */
++#ifndef SIZE_MAX
++#define SIZE_MAX (~(size_t)0)
++#endif
+
+-/* C99 requires __STDC__ to be defined as 1. */
+-#if defined (__STDC__)
++#endif /* ! C99 */
+
+-#define YY_USE_CONST
++#endif /* ! FLEXINT_H */
+
+-#endif /* defined (__STDC__) */
+-#endif /* ! __cplusplus */
++/* begin standard C++ headers. */
+
+-#ifdef YY_USE_CONST
++/* TODO: this is always defined, so inline it */
+ #define yyconst const
++
++#if defined(__GNUC__) && __GNUC__ >= 3
++#define yynoreturn __attribute__((__noreturn__))
+ #else
+-#define yyconst
++#define yynoreturn
+ #endif
+
+ /* Returned upon end-of-file. */
+ #define YY_NULL 0
+
+-/* Promotes a possibly negative, possibly signed char to an unsigned
+- * integer for use as an array index. If the signed char is negative,
+- * we want to instead treat it as an 8-bit unsigned char, hence the
+- * double cast.
++/* Promotes a possibly negative, possibly signed char to an
++ * integer in range [0..255] for use as an array index.
+ */
+-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
++#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
+
+ /* Enter a start condition. This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+ #define BEGIN (yy_start) = 1 + 2 *
+-
+ /* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state. The YYSTATE alias is for lex
+ * compatibility.
+ */
+ #define YY_START (((yy_start) - 1) / 2)
+ #define YYSTATE YY_START
+-
+ /* Action number for EOF rule of a given start state. */
+ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+-
+ /* Special action meaning "start processing a new file". */
+-#define YY_NEW_FILE yyrestart(yyin )
+-
++#define YY_NEW_FILE yyrestart( yyin )
+ #define YY_END_OF_BUFFER_CHAR 0
+
+ /* Size of default input buffer. */
+ #ifndef YY_BUF_SIZE
++#ifdef __ia64__
++/* On IA-64, the buffer size is 16k, not 8k.
++ * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
++ * Ditto for the __ia64__ case accordingly.
++ */
++#define YY_BUF_SIZE 32768
++#else
+ #define YY_BUF_SIZE 16384
++#endif /* __ia64__ */
+ #endif
+
+ /* The state buf must be large enough to hold one state per character in the main buffer.
+@@ -159,15 +155,16 @@ typedef struct yy_buffer_state *YY_BUFFE
+ typedef size_t yy_size_t;
+ #endif
+
+-extern yy_size_t yyleng;
++extern int yyleng;
+
+ extern FILE *yyin, *yyout;
+
+ #define EOB_ACT_CONTINUE_SCAN 0
+ #define EOB_ACT_END_OF_FILE 1
+ #define EOB_ACT_LAST_MATCH 2
+-
++
+ #define YY_LESS_LINENO(n)
++ #define YY_LINENO_REWIND_TO(ptr)
+
+ /* Return all but the first "n" matched characters back to the input stream. */
+ #define yyless(n) \
+@@ -182,7 +179,6 @@ extern FILE *yyin, *yyout;
+ YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+ } \
+ while ( 0 )
+-
+ #define unput(c) yyunput( c, (yytext_ptr) )
+
+ #ifndef YY_STRUCT_YY_BUFFER_STATE
+@@ -197,12 +193,12 @@ struct yy_buffer_state
+ /* Size of input buffer in bytes, not including room for EOB
+ * characters.
+ */
+- yy_size_t yy_buf_size;
++ int yy_buf_size;
+
+ /* Number of characters read into yy_ch_buf, not including EOB
+ * characters.
+ */
+- yy_size_t yy_n_chars;
++ int yy_n_chars;
+
+ /* Whether we "own" the buffer - i.e., we know we created it,
+ * and can realloc() it to grow it, and should free() it to
+@@ -225,7 +221,7 @@ struct yy_buffer_state
+
+ int yy_bs_lineno; /**< The line count. */
+ int yy_bs_column; /**< The column count. */
+-
++
+ /* Whether to try to fill the input buffer when we reach the
+ * end of it.
+ */
+@@ -253,7 +249,7 @@ struct yy_buffer_state
+ /* Stack of input buffers. */
+ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+-static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
++static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
+
+ /* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+@@ -264,7 +260,6 @@ static YY_BUFFER_STATE * yy_buffer_stack
+ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+ : NULL)
+-
+ /* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+@@ -272,11 +267,11 @@ static YY_BUFFER_STATE * yy_buffer_stack
+
+ /* yy_hold_char holds the character lost when yytext is formed. */
+ static char yy_hold_char;
+-static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
+-yy_size_t yyleng;
++static int yy_n_chars; /* number of characters read into yy_ch_buf */
++int yyleng;
+
+ /* Points to current character in buffer. */
+-static char *yy_c_buf_p = (char *) 0;
++static char *yy_c_buf_p = NULL;
+ static int yy_init = 0; /* whether we need to initialize */
+ static int yy_start = 0; /* start state number */
+
+@@ -285,84 +280,80 @@ static int yy_start = 0; /* start state
+ */
+ static int yy_did_buffer_switch_on_eof;
+
+-void yyrestart (FILE *input_file );
+-void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
+-YY_BUFFER_STATE yy_create_buffer (FILE *file,int size );
+-void yy_delete_buffer (YY_BUFFER_STATE b );
+-void yy_flush_buffer (YY_BUFFER_STATE b );
+-void yypush_buffer_state (YY_BUFFER_STATE new_buffer );
+-void yypop_buffer_state (void );
+-
+-static void yyensure_buffer_stack (void );
+-static void yy_load_buffer_state (void );
+-static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
+-
+-#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+-
+-YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
+-YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );
+-YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len );
+-
+-void *yyalloc (yy_size_t );
+-void *yyrealloc (void *,yy_size_t );
+-void yyfree (void * );
++void yyrestart ( FILE *input_file );
++void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer );
++YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size );
++void yy_delete_buffer ( YY_BUFFER_STATE b );
++void yy_flush_buffer ( YY_BUFFER_STATE b );
++void yypush_buffer_state ( YY_BUFFER_STATE new_buffer );
++void yypop_buffer_state ( void );
++
++static void yyensure_buffer_stack ( void );
++static void yy_load_buffer_state ( void );
++static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file );
++#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
++
++YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size );
++YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
++YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len );
++
++void *yyalloc ( yy_size_t );
++void *yyrealloc ( void *, yy_size_t );
++void yyfree ( void * );
+
+ #define yy_new_buffer yy_create_buffer
+-
+ #define yy_set_interactive(is_interactive) \
+ { \
+ if ( ! YY_CURRENT_BUFFER ){ \
+ yyensure_buffer_stack (); \
+ YY_CURRENT_BUFFER_LVALUE = \
+- yy_create_buffer(yyin,YY_BUF_SIZE ); \
++ yy_create_buffer( yyin, YY_BUF_SIZE ); \
+ } \
+ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+ }
+-
+ #define yy_set_bol(at_bol) \
+ { \
+ if ( ! YY_CURRENT_BUFFER ){\
+ yyensure_buffer_stack (); \
+ YY_CURRENT_BUFFER_LVALUE = \
+- yy_create_buffer(yyin,YY_BUF_SIZE ); \
++ yy_create_buffer( yyin, YY_BUF_SIZE ); \
+ } \
+ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+ }
+-
+ #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+ /* Begin user sect3 */
++typedef flex_uint8_t YY_CHAR;
+
+-typedef unsigned char YY_CHAR;
+-
+-FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
++FILE *yyin = NULL, *yyout = NULL;
+
+ typedef int yy_state_type;
+
+ extern int yylineno;
+-
+ int yylineno = 1;
+
+ extern char *yytext;
++#ifdef yytext_ptr
++#undef yytext_ptr
++#endif
+ #define yytext_ptr yytext
+
+-static yy_state_type yy_get_previous_state (void );
+-static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
+-static int yy_get_next_buffer (void );
+-static void yy_fatal_error (yyconst char msg[] );
++static yy_state_type yy_get_previous_state ( void );
++static yy_state_type yy_try_NUL_trans ( yy_state_type current_state );
++static int yy_get_next_buffer ( void );
++static void yynoreturn yy_fatal_error ( const char* msg );
+
+ /* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+ #define YY_DO_BEFORE_ACTION \
+ (yytext_ptr) = yy_bp; \
+- yyleng = (yy_size_t) (yy_cp - yy_bp); \
++ yyleng = (int) (yy_cp - yy_bp); \
+ (yy_hold_char) = *yy_cp; \
+ *yy_cp = '\0'; \
+ (yy_c_buf_p) = yy_cp;
+-
+-#define YY_NUM_RULES 168
+-#define YY_END_OF_BUFFER 169
++#define YY_NUM_RULES 170
++#define YY_END_OF_BUFFER 171
+ /* This struct is not used in this scanner,
+ but its presence is necessary. */
+ struct yy_trans_info
+@@ -370,147 +361,149 @@ struct yy_trans_info
+ flex_int32_t yy_verify;
+ flex_int32_t yy_nxt;
+ };
+-static yyconst flex_int16_t yy_accept[1235] =
++static const flex_int16_t yy_accept[1261] =
+ { 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 169, 167, 106, 109, 167, 167, 167, 167, 167, 111,
+- 111, 167, 114, 114, 114, 114, 114, 114, 114, 114,
+- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
+- 114, 167, 106, 167, 166, 165, 166, 166, 121, 119,
+- 121, 108, 114, 114, 114, 114, 114, 114, 114, 114,
+- 114, 114, 114, 114, 114, 114, 114, 114, 114, 106,
+- 167, 107, 106, 167, 0, 116, 0, 0, 117, 0,
+- 111, 0, 115, 112, 115, 118, 110, 112, 0, 112,
+- 111, 0, 64, 114, 114, 114, 114, 114, 114, 114,
+-
+- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
+- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
+- 114, 114, 114, 114, 114, 65, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 120,
+- 114, 114, 114, 114, 114, 114, 114, 86, 114, 114,
+- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
+- 114, 0, 0, 0, 0, 0, 0, 112, 83, 115,
+- 112, 110, 112, 0, 112, 113, 114, 114, 114, 114,
+- 114, 114, 114, 114, 114, 114, 114, 114, 114, 42,
+-
+- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
+- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 16, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 114, 114, 114, 114, 114, 114,
+- 85, 114, 114, 114, 114, 114, 114, 114, 94, 114,
+- 114, 114, 114, 114, 0, 0, 112, 55, 114, 114,
+- 114, 40, 38, 114, 114, 114, 48, 114, 114, 114,
+- 114, 43, 114, 114, 114, 114, 114, 114, 114, 114,
+-
+- 114, 114, 114, 114, 114, 53, 114, 114, 114, 46,
+- 114, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 157, 11, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 164, 114, 104, 114, 114, 114,
+- 114, 114, 114, 114, 90, 114, 114, 114, 114, 114,
+- 97, 114, 114, 12, 114, 114, 114, 114, 114, 114,
+- 114, 27, 51, 114, 114, 54, 62, 44, 114, 114,
+- 114, 114, 114, 41, 114, 114, 114, 35, 114, 114,
+-
+- 114, 59, 114, 114, 114, 114, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 105, 114, 114, 114, 114, 114, 114, 114, 114, 92,
+- 114, 114, 114, 114, 114, 114, 114, 37, 114, 114,
+- 114, 114, 114, 114, 114, 45, 114, 114, 114, 114,
+- 114, 29, 114, 49, 63, 52, 28, 114, 114, 114,
+- 114, 114, 0, 0, 0, 0, 0, 0, 0, 0,
+-
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 114, 114,
+- 114, 84, 114, 114, 114, 114, 114, 114, 114, 114,
+- 114, 114, 114, 36, 114, 114, 114, 114, 114, 114,
+- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
+- 31, 114, 32, 114, 56, 114, 47, 39, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-
+- 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
+- 21, 0, 0, 0, 24, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 114,
+- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
+- 114, 103, 34, 114, 114, 114, 114, 114, 114, 114,
+- 114, 114, 114, 114, 114, 75, 114, 60, 114, 58,
+- 114, 61, 50, 0, 0, 0, 0, 0, 0, 0,
+- 0, 3, 0, 0, 0, 122, 0, 0, 0, 0,
+- 127, 14, 0, 0, 0, 161, 0, 18, 0, 0,
+- 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-
+- 0, 0, 0, 0, 0, 162, 0, 0, 0, 0,
+- 0, 0, 0, 114, 114, 114, 114, 88, 89, 91,
+- 114, 114, 114, 114, 114, 33, 114, 114, 114, 114,
+- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
+- 57, 30, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 159, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 25,
+- 0, 26, 137, 0, 0, 134, 0, 0, 0, 114,
+- 114, 114, 114, 114, 95, 96, 114, 114, 114, 114,
+-
+- 114, 69, 68, 114, 114, 114, 72, 114, 114, 74,
+- 114, 114, 114, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 156,
+- 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 23, 0, 0, 0,
+- 0, 153, 0, 0, 0, 0, 0, 114, 114, 114,
+- 114, 114, 114, 114, 76, 114, 114, 114, 71, 67,
+- 82, 114, 114, 114, 114, 81, 160, 2, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-
+- 0, 0, 20, 138, 136, 0, 0, 151, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 114, 114,
+- 114, 114, 114, 114, 114, 73, 114, 66, 114, 114,
+- 79, 80, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 158, 0, 0,
+- 0, 143, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 114, 114,
+- 114, 114, 114, 114, 114, 114, 77, 78, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 150,
+-
+- 0, 0, 0, 0, 0, 0, 0, 155, 0, 0,
+- 0, 0, 114, 114, 114, 114, 114, 114, 114, 70,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
+- 0, 0, 0, 0, 0, 139, 152, 0, 0, 0,
+- 0, 0, 114, 114, 114, 114, 93, 114, 114, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 142, 0, 0,
+- 0, 0, 0, 129, 0, 0, 0, 0, 114, 101,
+- 114, 114, 114, 99, 144, 0, 0, 0, 0, 0,
+-
+- 4, 0, 0, 0, 0, 0, 8, 9, 0, 0,
+- 0, 0, 0, 0, 22, 0, 0, 0, 140, 0,
+- 0, 114, 114, 114, 114, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 10, 0, 0, 133, 0,
+- 128, 0, 0, 0, 0, 0, 114, 114, 87, 114,
+- 0, 0, 148, 0, 0, 0, 0, 0, 124, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 114,
+- 114, 98, 0, 0, 0, 0, 5, 0, 0, 0,
+- 0, 126, 0, 131, 0, 0, 0, 141, 0, 114,
+- 114, 149, 146, 0, 145, 123, 0, 0, 0, 0,
+-
+- 0, 0, 135, 163, 114, 114, 147, 0, 0, 0,
+- 154, 0, 0, 114, 114, 125, 0, 0, 0, 130,
+- 100, 114, 6, 0, 132, 114, 0, 114, 0, 114,
+- 7, 114, 102, 0
++ 171, 169, 108, 111, 169, 169, 169, 169, 169, 113,
++ 113, 169, 116, 116, 116, 116, 116, 116, 116, 116,
++ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
++ 116, 116, 169, 108, 169, 168, 167, 168, 168, 123,
++ 121, 123, 110, 116, 116, 116, 116, 116, 116, 116,
++ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
++ 116, 108, 169, 109, 108, 169, 0, 118, 0, 0,
++ 119, 0, 113, 0, 117, 114, 117, 120, 112, 114,
++ 0, 114, 113, 0, 64, 116, 116, 116, 116, 116,
++
++ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
++ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
++ 116, 116, 116, 116, 116, 116, 116, 116, 65, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 122, 116, 116, 116, 116, 116, 116, 116,
++ 87, 116, 116, 116, 116, 116, 116, 116, 116, 116,
++ 116, 116, 116, 116, 116, 0, 0, 0, 0, 0,
++ 0, 114, 84, 117, 114, 112, 114, 0, 114, 115,
++ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
++
++ 116, 116, 116, 116, 42, 116, 116, 116, 116, 116,
++ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
++ 116, 116, 116, 116, 116, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 116,
++ 116, 116, 116, 116, 116, 86, 116, 116, 116, 116,
++ 116, 116, 116, 116, 95, 116, 116, 116, 116, 116,
++ 0, 0, 114, 55, 116, 116, 116, 116, 40, 38,
++ 116, 116, 116, 48, 116, 116, 116, 116, 43, 116,
++
++ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
++ 116, 116, 53, 116, 116, 116, 46, 116, 1, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 159, 11,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 166, 116, 106, 116, 116, 116, 116, 116, 116,
++ 116, 91, 116, 116, 116, 116, 116, 116, 98, 116,
++ 116, 12, 116, 116, 116, 116, 116, 116, 116, 116,
++ 27, 51, 116, 116, 54, 62, 44, 116, 116, 116,
++
++ 116, 116, 41, 116, 116, 116, 35, 116, 116, 116,
++ 59, 116, 116, 116, 116, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 107,
++ 116, 116, 116, 116, 116, 116, 116, 116, 93, 116,
++ 116, 116, 116, 116, 116, 116, 116, 116, 37, 116,
++ 116, 116, 116, 116, 116, 116, 45, 116, 116, 116,
++ 116, 116, 29, 116, 49, 63, 52, 28, 116, 116,
++
++ 116, 116, 116, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 116,
++ 116, 116, 85, 116, 116, 116, 116, 116, 116, 116,
++ 116, 116, 116, 116, 116, 116, 36, 116, 116, 116,
++ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
++ 116, 116, 116, 31, 116, 32, 116, 56, 116, 47,
++ 39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 17, 0, 0, 0, 0,
++ 0, 0, 0, 21, 0, 0, 0, 24, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 116, 116, 116, 116, 116, 116, 116, 116,
++ 116, 116, 116, 116, 116, 105, 116, 34, 116, 116,
++ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
++ 75, 116, 60, 116, 58, 116, 61, 50, 0, 0,
++ 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
++ 124, 0, 0, 0, 0, 129, 14, 0, 0, 0,
++
++ 163, 0, 18, 0, 0, 19, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 164, 0, 0, 0, 0, 0, 0, 0, 116, 116,
++ 116, 116, 89, 90, 92, 116, 116, 116, 116, 116,
++ 116, 116, 33, 116, 116, 116, 116, 116, 116, 116,
++ 116, 116, 116, 116, 116, 116, 116, 57, 30, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 161, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 25, 0, 26, 139,
++
++ 0, 0, 136, 0, 0, 0, 116, 116, 116, 116,
++ 116, 116, 96, 97, 116, 116, 82, 116, 116, 116,
++ 69, 68, 116, 116, 116, 72, 116, 116, 74, 116,
++ 116, 116, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 158, 13,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 23, 0, 0, 0, 0,
++ 155, 0, 0, 0, 0, 0, 116, 116, 116, 116,
++ 116, 116, 116, 116, 76, 116, 116, 116, 71, 67,
++ 83, 116, 116, 116, 116, 81, 162, 2, 0, 0,
++
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 20, 140, 138, 0, 0, 153, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 116, 116,
++ 116, 116, 116, 116, 116, 116, 73, 116, 66, 116,
++ 116, 79, 80, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 160, 0,
++ 0, 0, 145, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 116,
++ 116, 116, 116, 116, 116, 116, 116, 116, 77, 78,
++
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 152, 0, 0, 0, 0, 0, 0, 0, 157,
++ 0, 0, 0, 0, 116, 116, 116, 116, 116, 116,
++ 116, 116, 70, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 15, 0, 0, 0, 0, 0, 141, 154,
++ 0, 0, 0, 0, 0, 116, 116, 116, 116, 116,
++ 94, 116, 116, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++
++ 0, 144, 0, 0, 0, 0, 0, 131, 0, 0,
++ 0, 0, 116, 103, 116, 116, 116, 116, 101, 146,
++ 0, 0, 0, 0, 0, 4, 0, 0, 0, 0,
++ 0, 8, 9, 0, 0, 0, 0, 0, 0, 22,
++ 0, 0, 0, 142, 0, 0, 116, 116, 116, 100,
++ 116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 10, 0, 0, 135, 0, 130, 0, 0, 0,
++ 0, 0, 116, 116, 88, 116, 0, 0, 150, 0,
++ 0, 0, 0, 0, 126, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 116, 116, 99, 0, 0,
++
++ 0, 0, 5, 0, 0, 0, 0, 128, 0, 133,
++ 0, 0, 0, 143, 0, 116, 116, 151, 148, 0,
++ 147, 125, 0, 0, 0, 0, 0, 0, 137, 165,
++ 116, 116, 149, 0, 0, 0, 156, 0, 0, 116,
++ 116, 127, 0, 0, 0, 132, 102, 116, 6, 0,
++ 134, 116, 0, 116, 0, 116, 7, 116, 104, 0
+ } ;
+
+-static yyconst flex_int32_t yy_ec[256] =
++static const YY_CHAR yy_ec[256] =
+ { 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
+ 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
+@@ -542,7 +535,7 @@ static yyconst flex_int32_t yy_ec[256] =
+ 1, 1, 1, 1, 1
+ } ;
+
+-static yyconst flex_int32_t yy_meta[71] =
++static const YY_CHAR yy_meta[71] =
+ { 0,
+ 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
+ 1, 3, 3, 3, 4, 4, 1, 4, 4, 4,
+@@ -553,614 +546,629 @@ static yyconst flex_int32_t yy_meta[71]
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1
+ } ;
+
+-static yyconst flex_int16_t yy_base[1243] =
++static const flex_int16_t yy_base[1269] =
+ { 0,
+- 0, 69, 2841, 70, 71, 74, 76, 76, 2835, 81,
+- 2842, 2845, 2845, 2845, 74, 83, 78, 88, 78, 129,
+- 2774, 2823, 83, 95, 98, 103, 107, 135, 141, 147,
+- 156, 150, 159, 163, 169, 185, 203, 208, 212, 218,
+- 223, 2769, 144, 260, 2845, 2845, 172, 2816, 2845, 2845,
+- 2823, 2845, 227, 230, 238, 288, 292, 299, 296, 303,
+- 306, 311, 241, 314, 317, 323, 350, 326, 369, 184,
+- 2814, 2845, 201, 2813, 121, 2845, 2831, 216, 2845, 90,
+- 2766, 175, 250, 375, 192, 2845, 0, 379, 394, 2845,
+- 2845, 0, 2845, 336, 402, 408, 420, 423, 426, 429,
+-
+- 433, 436, 442, 445, 448, 451, 454, 457, 464, 467,
+- 471, 474, 480, 483, 489, 498, 502, 505, 517, 522,
+- 525, 531, 537, 540, 547, 2845, 232, 0, 321, 2806,
+- 154, 64, 134, 253, 225, 2777, 489, 2776, 518, 2769,
+- 511, 2782, 2777, 179, 2768, 2771, 366, 2802, 2765, 2845,
+- 561, 567, 570, 576, 583, 589, 592, 595, 598, 601,
+- 606, 610, 615, 623, 626, 629, 632, 639, 635, 644,
+- 648, 390, 2800, 2754, 406, 2798, 207, 648, 366, 665,
+- 511, 0, 688, 141, 670, 0, 661, 693, 675, 700,
+- 703, 711, 714, 718, 721, 728, 731, 734, 737, 740,
+-
+- 745, 748, 754, 757, 773, 776, 782, 787, 790, 793,
+- 796, 799, 804, 807, 811, 815, 821, 825, 834, 838,
+- 2793, 2770, 2754, 297, 2757, 717, 2764, 2766, 2764, 794,
+- 2766, 2753, 191, 2747, 2760, 2845, 2748, 345, 2759, 311,
+- 2743, 2756, 2741, 2755, 34, 2740, 439, 2747, 2737, 2742,
+- 2738, 2743, 2735, 2746, 855, 858, 864, 867, 873, 877,
+- 880, 883, 886, 889, 892, 898, 901, 908, 912, 915,
+- 918, 931, 934, 923, 2745, 941, 946, 951, 958, 962,
+- 974, 977, 986, 989, 992, 1000, 1003, 1006, 1009, 1012,
+- 1015, 1018, 1021, 1024, 1027, 1030, 1033, 1036, 1040, 1049,
+-
+- 1052, 1062, 1079, 1083, 1088, 1091, 1094, 1097, 1105, 1108,
+- 1111, 2845, 2743, 2733, 2741, 2740, 2740, 2728, 362, 2719,
+- 2740, 2723, 2845, 2734, 2724, 2721, 2718, 2734, 2723, 2717,
+- 2757, 2726, 2716, 2718, 2710, 2709, 2721, 2720, 2709, 2715,
+- 2703, 2712, 2710, 2701, 2711, 2699, 1051, 2701, 2698, 2739,
+- 2708, 2707, 2693, 2692, 2845, 1116, 1119, 1122, 1128, 1132,
+- 1138, 1143, 1146, 1149, 1162, 1166, 1173, 1176, 1180, 1185,
+- 1191, 1199, 1202, 2845, 1205, 1209, 1219, 1215, 1230, 1225,
+- 1239, 1246, 1257, 1260, 1264, 1267, 1270, 1273, 1276, 1279,
+- 1282, 1285, 1289, 1292, 1295, 1301, 1304, 1307, 1310, 1313,
+-
+- 1316, 1326, 1334, 1340, 1343, 1347, 2692, 2720, 2689, 2695,
+- 2686, 2690, 2689, 2697, 2692, 2681, 2681, 2683, 2681, 2695,
+- 2676, 2683, 2688, 2691, 2677, 2704, 2673, 2669, 2678, 2685,
+- 2672, 2678, 2678, 2668, 2670, 2666, 2668, 2672, 2668, 2695,
+- 2662, 2669, 2650, 2667, 2666, 2656, 2658, 546, 536, 2649,
+- 1351, 1356, 1359, 1366, 1369, 1373, 1381, 1387, 1392, 1395,
+- 1398, 1401, 1404, 1411, 1416, 1423, 1426, 1429, 1433, 1442,
+- 1439, 1471, 1474, 1477, 1480, 1483, 1487, 1498, 1501, 1504,
+- 1507, 1510, 1513, 1516, 1519, 1522, 1525, 1533, 1536, 1539,
+- 1543, 1549, 2650, 2643, 1545, 2660, 2653, 2646, 2651, 2645,
+-
+- 2647, 2648, 2642, 2639, 2638, 2652, 2638, 2644, 2651, 2631,
+- 2646, 2648, 2630, 2643, 2645, 2632, 2627, 2634, 2638, 2637,
+- 2635, 2626, 2633, 2623, 2623, 2622, 2625, 2615, 2614, 2615,
+- 2655, 2625, 2619, 2613, 363, 2612, 2611, 2623, 1554, 1559,
+- 1564, 1570, 1579, 1588, 1591, 1597, 1601, 1604, 1607, 1612,
+- 1617, 1620, 1623, 1635, 1643, 1646, 1649, 1657, 1663, 1668,
+- 1678, 1681, 1684, 1687, 1690, 1696, 1700, 1703, 1712, 1715,
+- 1718, 1722, 1725, 1728, 1732, 1735, 1738, 1741, 2648, 2636,
+- 2602, 2612, 2614, 2613, 2601, 2615, 2610, 2605, 2604, 2594,
+- 2604, 2592, 2600, 2599, 2602, 2588, 2600, 2587, 2587, 2597,
+-
+- 2596, 2588, 2845, 2594, 2587, 2594, 2591, 2584, 2602, 2618,
+- 567, 2591, 2616, 2574, 2845, 2580, 2570, 2579, 2578, 2567,
+- 2570, 2578, 2569, 2577, 2579, 2566, 2574, 2560, 2565, 1744,
+- 1749, 1755, 1767, 1761, 1773, 1776, 1779, 1782, 1785, 1789,
+- 1801, 1804, 1808, 1812, 1815, 1833, 1836, 1845, 1851, 1854,
+- 1857, 1860, 1863, 1870, 1874, 1882, 1886, 1889, 1892, 1897,
+- 1900, 1903, 1906, 2561, 2573, 2565, 2547, 2546, 2539, 2536,
+- 2527, 2845, 2525, 2538, 593, 2845, 1313, 2528, 2526, 2535,
+- 2845, 2845, 2537, 2562, 2520, 2845, 2530, 2845, 2525, 2528,
+- 2845, 2527, 2506, 2514, 2513, 2521, 2514, 2510, 2511, 2503,
+-
+- 2511, 2505, 2504, 2493, 2511, 2845, 2509, 2508, 2508, 2493,
+- 2505, 2491, 680, 1909, 1912, 1916, 1919, 1922, 1925, 1931,
+- 1934, 1938, 1944, 1954, 1957, 1960, 1963, 1966, 1969, 1973,
+- 1978, 1987, 1993, 2004, 2009, 2012, 2015, 2022, 2025, 2028,
+- 2035, 2040, 2504, 2494, 2492, 2480, 2487, 2515, 2465, 2466,
+- 2465, 2458, 2438, 2439, 2388, 2388, 2393, 2377, 2387, 2379,
+- 837, 2373, 2373, 2368, 2367, 2362, 2399, 2845, 2334, 2340,
+- 2338, 2340, 2336, 2311, 2297, 2291, 2297, 2293, 2268, 2845,
+- 2268, 2845, 2845, 2259, 2286, 2845, 2277, 2255, 2239, 2043,
+- 2049, 2052, 2055, 2058, 2062, 2065, 2068, 2071, 2077, 2080,
+-
+- 2083, 2086, 2095, 2099, 2110, 2113, 2116, 2124, 2127, 2130,
+- 2137, 2140, 2143, 2245, 2243, 2242, 2241, 2233, 2188, 2196,
+- 2225, 2213, 2163, 2166, 231, 2175, 2174, 2157, 2145, 2845,
+- 2845, 2145, 2152, 2123, 2136, 2127, 2118, 2107, 2119, 2087,
+- 2095, 2084, 2083, 2082, 2062, 2067, 2845, 2069, 2049, 2083,
+- 2067, 2845, 2025, 2000, 2000, 673, 1989, 2146, 2150, 2158,
+- 2161, 2165, 2169, 2172, 2175, 2180, 2184, 2187, 2195, 2198,
+- 2204, 2216, 2219, 2222, 2225, 2228, 2845, 2845, 1983, 1979,
+- 1966, 1955, 1995, 1948, 1949, 1953, 1945, 1933, 1928, 1932,
+- 1934, 1918, 1913, 1913, 1914, 1894, 1894, 1891, 1920, 1861,
+-
+- 1828, 1840, 2845, 2845, 2845, 1829, 1813, 2845, 1804, 1800,
+- 1793, 1792, 1820, 1790, 1789, 1780, 1786, 1774, 2237, 2242,
+- 2245, 2250, 2253, 2256, 2259, 2262, 2265, 2268, 2271, 2274,
+- 2277, 2285, 1811, 1779, 1768, 1752, 1744, 1756, 1756, 1755,
+- 1746, 1735, 1717, 1708, 1721, 1702, 1703, 2845, 1710, 1672,
+- 1662, 2845, 1659, 1657, 1634, 1636, 1624, 1617, 1618, 1604,
+- 1616, 1605, 1592, 1600, 1589, 1624, 1589, 1578, 2299, 2303,
+- 2308, 2311, 2315, 2318, 2321, 2324, 2327, 2335, 1579, 1571,
+- 1556, 1543, 1547, 1546, 1531, 1564, 1522, 1568, 1536, 1518,
+- 1520, 1501, 1496, 1508, 1518, 1522, 1491, 1458, 1448, 2845,
+-
+- 1485, 1440, 1440, 1435, 1430, 1427, 1427, 2845, 1409, 1410,
+- 1418, 1441, 2338, 2341, 2344, 2352, 2357, 2362, 2365, 2368,
+- 1411, 1409, 1383, 1411, 1375, 1370, 1363, 1344, 1337, 1340,
+- 1371, 1336, 1330, 1317, 1307, 1313, 1312, 1285, 1291, 2845,
+- 1274, 1272, 1262, 1254, 1204, 2845, 2845, 1214, 1214, 1212,
+- 1193, 1203, 2371, 2379, 2384, 2387, 2391, 2398, 2394, 1198,
+- 1174, 1159, 1150, 1158, 1145, 1151, 1151, 1145, 1145, 1123,
+- 1123, 1125, 1121, 1110, 1148, 1109, 1116, 2845, 1144, 1104,
+- 1098, 1084, 1084, 2845, 1087, 1076, 1095, 78, 2401, 2404,
+- 2409, 2414, 2421, 2438, 2845, 175, 207, 199, 199, 268,
+-
+- 2845, 250, 302, 271, 294, 307, 2845, 2845, 310, 392,
+- 389, 423, 415, 440, 2845, 445, 448, 488, 2845, 467,
+- 483, 2441, 2444, 2447, 2450, 496, 517, 541, 579, 562,
+- 569, 574, 606, 619, 756, 2845, 633, 671, 2845, 648,
+- 2845, 649, 660, 678, 706, 707, 2453, 2456, 2459, 2462,
+- 723, 732, 2845, 723, 742, 764, 777, 810, 2845, 772,
+- 787, 794, 790, 803, 797, 840, 824, 832, 857, 2467,
+- 2470, 2473, 866, 868, 884, 890, 2845, 891, 891, 893,
+- 907, 2845, 917, 2845, 957, 919, 930, 2845, 922, 2480,
+- 2476, 2845, 2845, 934, 2845, 2845, 944, 938, 938, 961,
+-
+- 998, 1009, 2845, 2845, 2483, 2489, 2845, 1017, 1023, 1025,
+- 2845, 1023, 1029, 2494, 2498, 2845, 1019, 1022, 1038, 2845,
+- 2506, 2509, 2845, 1025, 2845, 2513, 1037, 2519, 1062, 2526,
+- 2845, 2533, 2536, 2845, 2594, 2598, 2602, 2606, 2608, 2610,
+- 2614, 1109
++ 0, 69, 2946, 70, 71, 74, 76, 76, 2940, 81,
++ 2947, 2950, 2950, 2950, 74, 83, 78, 88, 78, 129,
++ 2879, 2928, 83, 95, 98, 102, 136, 141, 151, 147,
++ 156, 159, 162, 169, 175, 178, 185, 189, 204, 212,
++ 217, 220, 2874, 115, 259, 2950, 2950, 117, 2921, 2950,
++ 2950, 2928, 2950, 223, 246, 249, 287, 261, 296, 301,
++ 290, 304, 310, 313, 316, 322, 348, 353, 358, 366,
++ 375, 206, 2919, 2950, 238, 2918, 151, 2950, 2936, 244,
++ 2950, 90, 2871, 172, 361, 421, 197, 2950, 0, 398,
++ 380, 2950, 2950, 0, 2950, 387, 418, 428, 438, 442,
++
++ 445, 448, 451, 454, 464, 467, 470, 473, 476, 479,
++ 486, 489, 493, 496, 501, 504, 507, 510, 513, 523,
++ 528, 531, 540, 545, 551, 561, 564, 568, 2950, 284,
++ 0, 273, 2911, 189, 70, 183, 291, 299, 2882, 388,
++ 2881, 335, 2874, 532, 2887, 2882, 89, 2873, 2876, 351,
++ 2907, 2870, 2950, 582, 585, 588, 594, 597, 602, 611,
++ 614, 617, 620, 623, 627, 633, 639, 642, 645, 648,
++ 652, 655, 663, 667, 677, 391, 2905, 2859, 416, 2903,
++ 197, 677, 370, 694, 390, 0, 703, 162, 699, 0,
++ 717, 720, 723, 727, 730, 743, 746, 749, 752, 755,
++
++ 761, 764, 767, 775, 771, 778, 781, 784, 788, 793,
++ 802, 806, 810, 815, 820, 823, 826, 829, 834, 837,
++ 847, 850, 857, 860, 864, 2898, 2875, 2859, 232, 2862,
++ 510, 2869, 2871, 2869, 284, 2871, 2858, 202, 2852, 2865,
++ 2950, 2853, 834, 2864, 303, 2848, 2861, 2846, 2860, 34,
++ 2845, 489, 2852, 2842, 2847, 2843, 2848, 2840, 2851, 867,
++ 886, 889, 893, 899, 902, 905, 909, 912, 918, 926,
++ 929, 934, 938, 942, 948, 953, 957, 960, 967, 973,
++ 2850, 976, 981, 1001, 1004, 1007, 1010, 1015, 1024, 1027,
++ 1031, 1040, 1043, 1046, 1050, 1055, 1058, 1061, 1064, 1067,
++
++ 1070, 1073, 1076, 1082, 1088, 1094, 1097, 1108, 1118, 1121,
++ 1125, 1133, 1136, 1140, 1143, 1146, 1149, 1152, 2950, 2848,
++ 2838, 2846, 2845, 2845, 2833, 525, 2824, 2845, 2828, 2950,
++ 2839, 2829, 2826, 2823, 2839, 2828, 2822, 2862, 2831, 2821,
++ 2823, 2815, 2814, 2826, 2825, 2814, 2820, 2808, 2817, 2815,
++ 2806, 2816, 2804, 668, 2806, 2803, 2844, 2813, 2812, 2798,
++ 2797, 2950, 1161, 1164, 1170, 1173, 1178, 1184, 1188, 1191,
++ 1194, 1202, 1207, 1210, 1213, 1220, 1223, 1226, 1231, 1236,
++ 1244, 2950, 1247, 1264, 1277, 1290, 1293, 1296, 1299, 1303,
++ 1306, 1310, 1313, 1324, 1329, 1332, 1335, 1338, 1341, 1344,
++
++ 1347, 1352, 1355, 1361, 1364, 1367, 1370, 1373, 1376, 1379,
++ 1389, 1396, 1402, 1406, 1410, 2797, 2825, 2794, 2800, 2791,
++ 2795, 2794, 2802, 2797, 2786, 2786, 2788, 2786, 2800, 2781,
++ 2788, 2793, 2796, 2782, 2809, 2778, 2774, 2783, 2790, 2777,
++ 2783, 2783, 2773, 2775, 2771, 2773, 2777, 2773, 2800, 2767,
++ 2774, 2755, 2772, 2771, 2761, 2763, 385, 233, 2754, 1414,
++ 1419, 1422, 1429, 1435, 1444, 1449, 1454, 1457, 1460, 1463,
++ 1468, 1474, 1477, 1480, 1488, 1494, 1497, 1507, 1500, 1510,
++ 1514, 1535, 1543, 1546, 1549, 1559, 1555, 1564, 1570, 1574,
++ 1577, 1580, 1583, 1586, 1589, 1592, 1595, 1598, 1601, 1607,
++
++ 1610, 1616, 1622, 2755, 2748, 1606, 2765, 2758, 2751, 2756,
++ 2750, 2752, 2753, 2747, 2744, 2743, 2757, 2743, 2749, 2756,
++ 2736, 2751, 2753, 2735, 2748, 2750, 2737, 2732, 2739, 2743,
++ 2742, 2740, 2731, 2738, 2728, 2728, 2727, 2730, 2720, 2719,
++ 2720, 2760, 2730, 2724, 2718, 373, 2717, 2716, 2728, 1625,
++ 1637, 1640, 1643, 1649, 1653, 1656, 1661, 1664, 1668, 1674,
++ 1677, 1680, 1683, 1696, 1702, 1705, 1708, 1712, 1715, 1723,
++ 1730, 1733, 1748, 1737, 1751, 1756, 1759, 1763, 1767, 1772,
++ 1778, 1783, 1786, 1789, 1793, 1796, 1799, 1804, 1807, 1810,
++ 1813, 2753, 2741, 2707, 2717, 2719, 2718, 2706, 2720, 2715,
++
++ 2710, 2709, 2699, 2709, 2697, 2705, 2704, 2707, 2693, 2705,
++ 2692, 2692, 2702, 2701, 2693, 2950, 2699, 2692, 2699, 2696,
++ 2689, 2707, 2723, 536, 2696, 2721, 2679, 2950, 2685, 2675,
++ 2682, 2659, 2648, 2651, 2659, 2650, 2658, 2660, 2647, 2655,
++ 2641, 2646, 1816, 1820, 1823, 1826, 1832, 1838, 1841, 1845,
++ 1848, 1851, 1860, 1863, 1871, 1877, 1886, 1880, 1889, 1896,
++ 1893, 1901, 1916, 1920, 1923, 1926, 1929, 1932, 1943, 1951,
++ 1954, 1959, 1962, 1965, 1970, 1973, 1976, 1979, 2641, 2652,
++ 2646, 2650, 2649, 2642, 2639, 2630, 2950, 2627, 2640, 566,
++ 2950, 1158, 2630, 2628, 2637, 2950, 2950, 2638, 2663, 2621,
++
++ 2950, 2630, 2950, 2625, 2628, 2950, 2627, 2608, 2616, 2612,
++ 2620, 2598, 2594, 2594, 2559, 2567, 2557, 2555, 2532, 2550,
++ 2950, 2547, 2546, 2545, 2529, 2541, 2507, 395, 1982, 1988,
++ 1991, 1994, 1997, 2000, 2004, 2007, 2011, 2014, 2021, 2029,
++ 2032, 2035, 2041, 2044, 2054, 2058, 2066, 2070, 2077, 2080,
++ 2092, 2096, 2099, 2102, 2110, 2113, 2116, 2061, 2123, 2520,
++ 2476, 2477, 2463, 2470, 2491, 2437, 2449, 2447, 2446, 2429,
++ 2430, 2416, 2416, 2422, 2404, 2415, 2390, 957, 2384, 2386,
++ 2357, 2349, 2347, 2387, 2950, 2334, 2344, 2342, 2338, 2335,
++ 2304, 2282, 2277, 2283, 2268, 2250, 2950, 2246, 2950, 2950,
++
++ 2244, 2273, 2950, 2253, 2222, 2206, 2128, 2131, 2136, 2139,
++ 2142, 2145, 2150, 2153, 2156, 2162, 2165, 2170, 2173, 2184,
++ 2196, 2201, 2204, 2207, 2213, 2218, 2224, 2227, 2230, 2237,
++ 2240, 2243, 2215, 2196, 2195, 2215, 2214, 2169, 2173, 2203,
++ 2181, 2141, 2144, 433, 2153, 2151, 2131, 2133, 2950, 2950,
++ 2130, 2138, 2113, 2126, 2123, 2121, 2100, 2100, 2079, 2082,
++ 2081, 2070, 2068, 2044, 2051, 2950, 2051, 2040, 2068, 2065,
++ 2950, 2008, 2006, 2005, 275, 2001, 2246, 2250, 2258, 2261,
++ 2264, 2269, 2272, 2275, 2278, 2285, 2288, 2291, 2298, 2302,
++ 2309, 2313, 2320, 2323, 2326, 2329, 2950, 2950, 1999, 1995,
++
++ 1987, 1986, 2020, 1973, 1977, 1981, 1972, 1934, 1929, 1918,
++ 1902, 1914, 1908, 1905, 1905, 1890, 1889, 1876, 1904, 1877,
++ 1857, 1862, 2950, 2950, 2950, 1846, 1839, 2950, 1830, 1827,
++ 1820, 1811, 1849, 1818, 1818, 1792, 1794, 1755, 2335, 2338,
++ 2343, 2346, 2351, 2354, 2357, 2360, 2363, 2366, 2369, 2373,
++ 2376, 2384, 2388, 1768, 1736, 1731, 1716, 1694, 1706, 1706,
++ 1690, 1694, 1683, 1652, 1648, 1655, 1639, 1639, 2950, 1650,
++ 1634, 1625, 2950, 1612, 1611, 1593, 1595, 1583, 1584, 1578,
++ 1569, 1568, 1531, 1520, 1524, 1509, 1544, 1492, 1483, 2401,
++ 2404, 2409, 2412, 2415, 2418, 2421, 2424, 2427, 2430, 2438,
++
++ 1480, 1487, 1481, 1468, 1478, 1453, 1439, 1469, 1429, 1476,
++ 1433, 1418, 1424, 1396, 1396, 1404, 1428, 1431, 1401, 1395,
++ 1385, 2950, 1420, 1374, 1375, 1383, 1362, 1361, 1357, 2950,
++ 1341, 1340, 1347, 1371, 2441, 2444, 2447, 2451, 2465, 2468,
++ 2471, 2474, 2482, 1345, 1321, 1320, 1342, 1283, 1283, 1275,
++ 1271, 1240, 1243, 1277, 1242, 1236, 1233, 1219, 1225, 1230,
++ 1224, 1231, 2950, 1221, 1215, 1223, 1224, 1205, 2950, 2950,
++ 1217, 1216, 1214, 1201, 1208, 2490, 2493, 2496, 2500, 2504,
++ 2509, 2513, 2518, 1203, 1190, 1185, 1182, 1179, 1167, 1167,
++ 1163, 1159, 1147, 1112, 1110, 1115, 1093, 1081, 1108, 1069,
++
++ 1076, 2950, 1103, 1069, 1067, 1052, 1059, 2950, 1062, 1048,
++ 1077, 68, 2523, 2526, 2529, 2532, 2535, 2541, 2548, 2950,
++ 126, 174, 178, 226, 273, 2950, 248, 348, 376, 404,
++ 443, 2950, 2950, 446, 452, 469, 483, 512, 533, 2950,
++ 558, 558, 599, 2950, 561, 593, 2551, 2554, 2561, 2564,
++ 2567, 584, 611, 622, 653, 623, 630, 636, 635, 653,
++ 684, 2950, 664, 696, 2950, 675, 2950, 686, 689, 689,
++ 702, 714, 2570, 2573, 2576, 2590, 722, 754, 2950, 750,
++ 761, 775, 795, 832, 2950, 795, 801, 807, 807, 825,
++ 826, 865, 842, 842, 844, 2593, 2596, 2599, 845, 858,
++
++ 878, 878, 2950, 883, 876, 876, 892, 2950, 904, 2950,
++ 937, 899, 913, 2950, 916, 2606, 2612, 2950, 2950, 939,
++ 2950, 2950, 949, 942, 944, 953, 946, 957, 2950, 2950,
++ 2615, 2619, 2950, 958, 963, 979, 2950, 977, 980, 2623,
++ 2626, 2950, 971, 983, 997, 2950, 2629, 2633, 2950, 997,
++ 2950, 2636, 1004, 2645, 1041, 2649, 2950, 2652, 2655, 2950,
++ 2713, 2717, 2721, 2725, 2727, 2729, 2733, 1088
+ } ;
+
+-static yyconst flex_int16_t yy_def[1243] =
++static const flex_int16_t yy_def[1269] =
+ { 0,
+- 1234, 1, 1235, 1235, 1236, 1236, 1, 7, 1, 1,
+- 1234, 1234, 1234, 1234, 1237, 1238, 1234, 1239, 1234, 1234,
+- 20, 1234, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1234,
+- 44, 1234, 1234, 44, 1237, 1234, 1237, 1238, 1234, 1234,
+- 20, 1239, 1239, 1239, 1239, 1234, 1241, 1234, 1234, 1234,
+- 1234, 1242, 1234, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+-
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1234, 1234, 44, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1234, 44, 1234, 1234, 44, 1234, 1234, 1239, 1239,
+- 1239, 1241, 1234, 1234, 1234, 1242, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+-
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1234, 1239, 1239, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+-
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1234, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+-
+- 1240, 1240, 1240, 1240, 1240, 1240, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+-
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+-
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+-
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+-
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+-
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1240, 1240, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+-
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1240, 1240,
+- 1240, 1240, 1240, 1240, 1234, 1234, 1234, 1234, 1234, 1234,
+-
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1240, 1240, 1240, 1240, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1240, 1240, 1240, 1240,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1240,
+- 1240, 1240, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1240,
+- 1240, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+-
+- 1234, 1234, 1234, 1234, 1240, 1240, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1240, 1240, 1234, 1234, 1234, 1234, 1234,
+- 1240, 1240, 1234, 1234, 1234, 1240, 1234, 1240, 1234, 1240,
+- 1234, 1240, 1240, 0, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234
++ 1260, 1, 1261, 1261, 1262, 1262, 1, 7, 1, 1,
++ 1260, 1260, 1260, 1260, 1263, 1264, 1260, 1265, 1260, 1260,
++ 20, 1260, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1260, 45, 1260, 1260, 45, 1263, 1260, 1263, 1264,
++ 1260, 1260, 20, 1265, 1265, 1265, 1265, 1260, 1267, 1260,
++ 1260, 1260, 1260, 1268, 1260, 1266, 1266, 1266, 1266, 1266,
++
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1260, 1260,
++ 45, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1260, 45, 1260, 1260, 45,
++ 1260, 1260, 1265, 1265, 1265, 1267, 1260, 1260, 1260, 1268,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1260, 1265, 1265, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1260, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++
++ 1266, 1266, 1266, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++
++ 1260, 1260, 1260, 1260, 1260, 1260, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1260, 1260, 1260, 1260,
++
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1266, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1266,
++ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
++
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1266, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1266, 1266, 1266, 1266, 1266,
++ 1266, 1266, 1266, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1266, 1266, 1266, 1266,
++ 1266, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1266, 1266, 1266, 1266, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1266, 1266, 1266, 1260, 1260,
++
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1266, 1266, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1266, 1266, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1266,
++ 1266, 1260, 1260, 1260, 1260, 1260, 1266, 1266, 1260, 1260,
++ 1260, 1266, 1260, 1266, 1260, 1266, 1260, 1266, 1266, 0,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260
+ } ;
+
+-static yyconst flex_int16_t yy_nxt[2916] =
++static const flex_int16_t yy_nxt[3021] =
+ { 0,
+ 12, 13, 14, 13, 15, 12, 16, 12, 12, 12,
+ 12, 17, 18, 19, 20, 21, 22, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+- 24, 23, 23, 25, 23, 26, 23, 23, 23, 23,
+- 23, 23, 23, 12, 23, 23, 27, 28, 29, 30,
+- 31, 23, 23, 32, 23, 33, 23, 34, 35, 36,
+- 23, 37, 38, 39, 40, 41, 23, 23, 23, 42,
+- 43, 47, 46, 50, 44, 48, 50, 70, 76, 344,
+- 51, 71, 73, 51, 52, 79, 74, 86, 72, 79,
+- 80, 87, 81, 81, 82, 85, 82, 345, 53, 82,
+-
+- 83, 82, 84, 84, 178, 178, 82, 85, 82, 82,
+- 85, 82, 54, 227, 82, 85, 82, 77, 82, 85,
+- 82, 55, 228, 56, 57, 76, 58, 59, 97, 60,
+- 61, 62, 95, 63, 64, 1121, 65, 66, 67, 68,
+- 69, 88, 96, 81, 81, 127, 82, 85, 82, 128,
+- 89, 90, 82, 85, 82, 185, 185, 91, 82, 85,
+- 82, 82, 85, 82, 77, 98, 91, 82, 85, 82,
+- 82, 85, 82, 147, 82, 85, 82, 148, 89, 90,
+- 82, 85, 82, 225, 91, 172, 82, 99, 82, 173,
+- 100, 229, 91, 101, 1126, 92, 82, 85, 82, 102,
+-
+- 230, 105, 175, 82, 103, 82, 176, 108, 110, 106,
+- 329, 107, 226, 104, 82, 85, 82, 109, 79, 82,
+- 85, 82, 79, 82, 85, 82, 1127, 330, 111, 82,
+- 85, 82, 250, 127, 82, 85, 82, 128, 82, 85,
+- 82, 82, 85, 82, 233, 112, 251, 1128, 113, 82,
+- 85, 82, 82, 85, 82, 114, 115, 118, 116, 1129,
+- 119, 82, 179, 82, 275, 117, 888, 889, 120, 122,
+- 125, 123, 151, 230, 234, 121, 124, 129, 130, 131,
+- 132, 133, 134, 135, 136, 137, 162, 1130, 138, 139,
+- 152, 140, 141, 153, 142, 143, 144, 145, 146, 82,
+-
+- 85, 82, 231, 82, 85, 82, 232, 82, 85, 82,
+- 82, 85, 82, 1131, 82, 85, 82, 82, 85, 82,
+- 315, 1132, 82, 85, 82, 82, 85, 82, 82, 85,
+- 82, 316, 1133, 154, 82, 85, 82, 82, 85, 82,
+- 99, 155, 1134, 100, 105, 157, 101, 82, 85, 82,
+- 102, 158, 106, 221, 107, 159, 160, 156, 1135, 1136,
+- 108, 82, 85, 82, 161, 338, 165, 147, 222, 109,
+- 339, 148, 166, 163, 164, 114, 167, 82, 116, 82,
+- 82, 85, 82, 122, 223, 117, 82, 170, 82, 84,
+- 84, 172, 334, 183, 183, 173, 180, 181, 335, 118,
+-
+- 89, 90, 119, 168, 184, 184, 336, 175, 185, 185,
+- 120, 176, 625, 82, 85, 82, 626, 169, 171, 82,
+- 85, 82, 123, 413, 180, 181, 414, 124, 89, 90,
+- 187, 82, 85, 82, 82, 85, 82, 82, 85, 82,
+- 82, 85, 82, 188, 82, 85, 82, 82, 85, 82,
+- 1137, 1138, 189, 82, 85, 82, 82, 85, 82, 82,
+- 85, 82, 82, 85, 82, 82, 85, 82, 82, 85,
+- 82, 191, 1139, 1140, 192, 82, 85, 82, 82, 85,
+- 82, 190, 82, 85, 82, 82, 85, 82, 347, 1141,
+- 193, 82, 85, 82, 82, 85, 82, 348, 1142, 194,
+-
+- 82, 85, 82, 197, 196, 195, 1143, 1144, 198, 82,
+- 85, 82, 199, 82, 85, 82, 82, 85, 82, 200,
+- 203, 201, 82, 202, 82, 1145, 206, 204, 82, 85,
+- 82, 1146, 205, 82, 85, 82, 82, 85, 82, 236,
+- 208, 207, 82, 85, 82, 237, 238, 211, 82, 85,
+- 82, 82, 85, 82, 1151, 536, 210, 209, 82, 85,
+- 82, 213, 212, 240, 244, 534, 245, 241, 537, 246,
+- 535, 247, 82, 85, 82, 1152, 242, 214, 82, 85,
+- 82, 82, 85, 82, 216, 215, 695, 82, 85, 82,
+- 1153, 696, 217, 219, 82, 85, 82, 218, 1154, 220,
+-
+- 82, 85, 82, 82, 85, 82, 82, 85, 82, 82,
+- 85, 82, 82, 85, 82, 753, 255, 82, 85, 82,
+- 1155, 82, 85, 82, 1156, 257, 82, 85, 82, 754,
+- 256, 258, 1157, 259, 82, 85, 82, 82, 85, 82,
+- 82, 85, 82, 82, 85, 82, 82, 85, 82, 260,
+- 82, 85, 82, 264, 261, 82, 85, 82, 263, 82,
+- 85, 82, 178, 178, 203, 262, 265, 1158, 1159, 89,
+- 90, 267, 82, 85, 82, 184, 276, 266, 82, 277,
+- 277, 1162, 268, 270, 185, 185, 82, 85, 82, 278,
+- 1163, 269, 90, 273, 272, 271, 1164, 89, 90, 788,
+-
+- 209, 789, 183, 183, 82, 85, 82, 1165, 274, 89,
+- 90, 82, 85, 82, 82, 85, 82, 1166, 279, 281,
+- 90, 280, 82, 85, 82, 82, 85, 82, 916, 82,
+- 85, 82, 82, 85, 82, 917, 1167, 89, 90, 82,
+- 85, 82, 82, 85, 82, 82, 85, 82, 82, 85,
+- 82, 82, 85, 82, 1168, 282, 82, 85, 82, 82,
+- 85, 82, 1169, 283, 286, 82, 85, 82, 82, 85,
+- 82, 1173, 284, 318, 319, 285, 320, 287, 1160, 290,
+- 1174, 1175, 291, 288, 82, 85, 82, 82, 85, 82,
+- 1176, 1161, 289, 82, 85, 82, 292, 293, 82, 85,
+-
+- 82, 82, 85, 82, 82, 85, 82, 82, 85, 82,
+- 82, 85, 82, 1177, 294, 82, 85, 82, 82, 85,
+- 82, 295, 82, 85, 82, 1178, 82, 85, 82, 1179,
+- 1180, 297, 82, 85, 82, 296, 82, 85, 82, 300,
+- 1181, 324, 298, 1182, 299, 82, 85, 82, 1183, 82,
+- 85, 82, 1184, 325, 1185, 301, 326, 832, 302, 1186,
+- 306, 833, 303, 304, 307, 305, 82, 85, 82, 82,
+- 85, 82, 1187, 834, 308, 82, 85, 82, 82, 85,
+- 82, 1188, 310, 311, 82, 85, 82, 309, 82, 85,
+- 82, 82, 85, 82, 82, 85, 82, 82, 85, 82,
+-
+- 82, 85, 82, 82, 85, 82, 1189, 357, 358, 82,
+- 85, 82, 82, 85, 82, 1192, 356, 1193, 360, 82,
+- 85, 82, 359, 82, 85, 82, 82, 85, 82, 82,
+- 85, 82, 1194, 361, 82, 85, 82, 363, 364, 1195,
+- 1196, 365, 82, 85, 82, 82, 85, 82, 362, 1197,
+- 367, 366, 82, 1198, 82, 277, 277, 82, 1199, 82,
+- 277, 277, 82, 85, 82, 1200, 368, 370, 181, 82,
+- 85, 82, 369, 82, 85, 82, 1201, 1202, 372, 1203,
+- 371, 375, 1204, 1207, 373, 82, 85, 82, 82, 85,
+- 82, 377, 1208, 376, 1209, 1210, 181, 82, 85, 82,
+-
+- 82, 85, 82, 82, 85, 82, 378, 379, 380, 381,
+- 1211, 82, 85, 82, 82, 85, 82, 82, 85, 82,
+- 82, 85, 82, 82, 85, 82, 82, 85, 82, 82,
+- 85, 82, 82, 85, 82, 82, 85, 82, 82, 85,
+- 82, 82, 85, 82, 82, 85, 82, 82, 85, 82,
+- 382, 82, 85, 82, 383, 384, 1212, 1213, 386, 385,
+- 82, 85, 82, 82, 85, 82, 1216, 387, 1217, 390,
+- 1218, 1219, 391, 82, 85, 82, 441, 388, 1220, 392,
+- 442, 1223, 389, 443, 1224, 395, 393, 1225, 1227, 396,
+- 82, 85, 82, 397, 82, 85, 82, 1229, 394, 82,
+-
+- 85, 82, 82, 85, 82, 82, 85, 82, 82, 85,
+- 82, 1231, 186, 398, 1120, 399, 82, 85, 82, 82,
+- 85, 82, 82, 85, 82, 1119, 400, 82, 85, 82,
+- 82, 85, 82, 82, 85, 82, 1118, 1117, 401, 82,
+- 85, 82, 403, 82, 85, 82, 1116, 1115, 404, 82,
+- 85, 82, 1114, 402, 82, 85, 82, 82, 85, 82,
+- 82, 85, 82, 1113, 1112, 451, 1111, 1110, 405, 1109,
+- 1108, 406, 453, 82, 85, 82, 1107, 82, 85, 82,
+- 1106, 1105, 452, 455, 82, 85, 82, 82, 85, 82,
+- 1104, 82, 85, 82, 1103, 454, 82, 85, 82, 1102,
+-
+- 1101, 456, 82, 85, 82, 1100, 458, 1099, 1098, 457,
+- 82, 85, 82, 82, 85, 82, 82, 85, 82, 1097,
+- 82, 85, 82, 389, 459, 462, 82, 85, 82, 396,
+- 82, 85, 82, 460, 1096, 467, 82, 85, 82, 403,
+- 461, 82, 85, 82, 464, 468, 463, 1095, 1088, 469,
+- 82, 85, 82, 1087, 465, 466, 470, 82, 85, 82,
+- 1086, 471, 1085, 1084, 473, 472, 1083, 474, 82, 85,
+- 82, 82, 85, 82, 475, 82, 85, 82, 82, 85,
+- 82, 82, 85, 82, 82, 85, 82, 82, 85, 82,
+- 82, 85, 82, 82, 85, 82, 82, 85, 82, 1082,
+-
+- 82, 85, 82, 82, 85, 82, 82, 85, 82, 476,
+- 1081, 477, 82, 85, 82, 82, 85, 82, 82, 85,
+- 82, 82, 85, 82, 82, 85, 82, 82, 85, 82,
+- 1080, 1079, 481, 755, 756, 478, 482, 82, 85, 82,
+- 1078, 479, 757, 1077, 480, 82, 85, 82, 758, 484,
+- 483, 82, 85, 82, 82, 85, 82, 486, 82, 85,
+- 82, 488, 82, 85, 82, 1076, 485, 82, 85, 82,
+- 82, 85, 82, 1075, 1074, 487, 1073, 82, 85, 82,
+- 82, 85, 82, 489, 82, 85, 82, 1072, 491, 1071,
+- 1070, 492, 82, 85, 82, 1069, 1068, 490, 82, 85,
+-
+- 82, 539, 1067, 82, 85, 82, 82, 85, 82, 82,
+- 85, 82, 82, 85, 82, 82, 85, 82, 1066, 1065,
+- 540, 541, 82, 85, 82, 1064, 544, 82, 85, 82,
+- 1063, 542, 1062, 543, 82, 85, 82, 82, 85, 82,
+- 82, 85, 82, 553, 82, 85, 82, 547, 545, 546,
+- 82, 85, 82, 82, 85, 82, 483, 563, 1061, 1060,
+- 556, 557, 558, 548, 554, 1052, 549, 1051, 1050, 551,
+- 559, 550, 1049, 560, 555, 1048, 1047, 561, 562, 1046,
+- 1045, 552, 82, 85, 82, 82, 85, 82, 82, 85,
+- 82, 82, 85, 82, 82, 85, 82, 565, 82, 85,
+-
+- 82, 1044, 564, 1043, 1042, 567, 1041, 1040, 566, 82,
+- 85, 82, 82, 85, 82, 82, 85, 82, 82, 85,
+- 82, 82, 85, 82, 82, 85, 82, 82, 85, 82,
+- 82, 85, 82, 82, 85, 82, 82, 85, 82, 1039,
+- 568, 1038, 1037, 569, 82, 85, 82, 82, 85, 82,
+- 82, 85, 82, 571, 82, 85, 82, 1036, 1035, 570,
+- 82, 85, 82, 581, 582, 82, 85, 82, 1034, 572,
+- 82, 85, 82, 1033, 573, 82, 85, 82, 1032, 583,
+- 584, 82, 85, 82, 585, 1031, 575, 1030, 576, 1029,
+- 82, 85, 82, 1028, 1027, 574, 1026, 1025, 577, 82,
+-
+- 85, 82, 82, 85, 82, 1024, 1023, 630, 82, 85,
+- 82, 578, 82, 85, 82, 82, 85, 82, 82, 85,
+- 82, 1022, 631, 82, 85, 82, 632, 633, 82, 85,
+- 82, 82, 85, 82, 82, 85, 82, 1021, 1012, 634,
+- 635, 1011, 636, 1010, 1009, 637, 82, 85, 82, 1008,
+- 1007, 643, 639, 1006, 82, 85, 82, 82, 85, 82,
+- 82, 85, 82, 640, 1005, 1004, 646, 638, 82, 85,
+- 82, 1003, 1002, 641, 82, 85, 82, 642, 644, 82,
+- 85, 82, 647, 645, 1001, 1000, 649, 999, 648, 82,
+- 85, 82, 82, 85, 82, 82, 85, 82, 82, 85,
+-
+- 82, 82, 85, 82, 998, 654, 650, 82, 85, 82,
+- 653, 82, 85, 82, 82, 85, 82, 997, 651, 996,
+- 655, 995, 652, 82, 85, 82, 82, 85, 82, 82,
+- 85, 82, 656, 82, 85, 82, 82, 85, 82, 82,
+- 85, 82, 657, 82, 85, 82, 82, 85, 82, 82,
+- 85, 82, 82, 85, 82, 82, 85, 82, 994, 659,
+- 82, 85, 82, 993, 992, 658, 82, 85, 82, 991,
+- 990, 661, 82, 85, 82, 660, 989, 662, 82, 85,
+- 82, 988, 987, 663, 82, 85, 82, 82, 85, 82,
+- 82, 85, 82, 82, 85, 82, 82, 85, 82, 716,
+-
+- 82, 85, 82, 986, 985, 714, 984, 983, 715, 982,
+- 718, 717, 82, 85, 82, 82, 85, 82, 981, 82,
+- 85, 82, 719, 82, 85, 82, 82, 85, 82, 980,
+- 979, 720, 968, 967, 721, 966, 965, 728, 964, 963,
+- 727, 723, 722, 726, 82, 85, 82, 82, 85, 82,
+- 962, 961, 724, 960, 725, 730, 82, 85, 82, 959,
+- 958, 729, 82, 85, 82, 82, 85, 82, 82, 85,
+- 82, 82, 85, 82, 82, 85, 82, 732, 957, 733,
+- 731, 82, 85, 82, 736, 82, 85, 82, 956, 734,
+- 955, 738, 735, 82, 85, 82, 737, 82, 85, 82,
+-
+- 82, 85, 82, 82, 85, 82, 954, 740, 82, 85,
+- 82, 82, 85, 82, 82, 85, 82, 82, 85, 82,
+- 82, 85, 82, 82, 85, 82, 739, 82, 85, 82,
+- 82, 85, 82, 82, 85, 82, 82, 85, 82, 953,
+- 952, 741, 82, 85, 82, 82, 85, 82, 742, 82,
+- 85, 82, 951, 950, 792, 82, 85, 82, 790, 949,
+- 948, 791, 947, 946, 793, 82, 85, 82, 82, 85,
+- 82, 82, 85, 82, 82, 85, 82, 82, 85, 82,
+- 82, 85, 82, 794, 82, 85, 82, 795, 800, 82,
+- 85, 82, 945, 944, 799, 943, 942, 801, 82, 85,
+-
+- 82, 941, 940, 796, 82, 85, 82, 939, 804, 802,
+- 797, 938, 805, 937, 803, 82, 85, 82, 936, 798,
+- 82, 85, 82, 82, 85, 82, 82, 85, 82, 935,
+- 807, 808, 806, 82, 85, 82, 82, 85, 82, 82,
+- 85, 82, 934, 933, 811, 812, 82, 85, 82, 918,
+- 810, 82, 85, 82, 82, 85, 82, 915, 914, 809,
+- 82, 85, 82, 82, 85, 82, 82, 85, 82, 82,
+- 85, 82, 813, 82, 85, 82, 82, 85, 82, 82,
+- 85, 82, 82, 85, 82, 913, 912, 858, 82, 85,
+- 82, 82, 85, 82, 82, 85, 82, 82, 85, 82,
+-
+- 867, 866, 911, 862, 910, 860, 82, 85, 82, 859,
+- 82, 85, 82, 865, 909, 861, 908, 863, 868, 907,
+- 864, 82, 85, 82, 82, 85, 82, 82, 85, 82,
+- 906, 869, 905, 904, 870, 82, 85, 82, 82, 85,
+- 82, 82, 85, 82, 903, 902, 872, 873, 82, 85,
+- 82, 82, 85, 82, 82, 85, 82, 82, 85, 82,
+- 871, 82, 85, 82, 901, 875, 900, 899, 874, 82,
+- 85, 82, 82, 85, 82, 898, 82, 85, 82, 876,
+- 82, 85, 82, 82, 85, 82, 82, 85, 82, 897,
+- 896, 82, 85, 82, 920, 82, 85, 82, 82, 85,
+-
+- 82, 895, 927, 894, 893, 919, 82, 85, 82, 82,
+- 85, 82, 922, 923, 926, 82, 85, 82, 921, 892,
+- 925, 891, 890, 928, 887, 886, 924, 82, 85, 82,
+- 82, 85, 82, 82, 85, 82, 82, 85, 82, 82,
+- 85, 82, 885, 884, 930, 883, 882, 929, 82, 85,
+- 82, 881, 931, 82, 85, 82, 82, 85, 82, 880,
+- 932, 82, 85, 82, 82, 85, 82, 82, 85, 82,
+- 82, 85, 82, 82, 85, 82, 82, 85, 82, 82,
+- 85, 82, 82, 85, 82, 82, 85, 82, 82, 85,
+- 82, 879, 878, 976, 877, 970, 82, 85, 82, 857,
+-
+- 856, 977, 855, 975, 969, 854, 973, 971, 853, 978,
+- 82, 85, 82, 972, 82, 85, 82, 852, 974, 82,
+- 85, 82, 82, 85, 82, 851, 82, 85, 82, 82,
+- 85, 82, 82, 85, 82, 82, 85, 82, 82, 85,
+- 82, 850, 849, 1013, 848, 1020, 82, 85, 82, 82,
+- 85, 82, 82, 85, 82, 82, 85, 82, 847, 846,
+- 1014, 845, 1018, 82, 85, 82, 1019, 1016, 82, 85,
+- 82, 1015, 1017, 82, 85, 82, 82, 85, 82, 82,
+- 85, 82, 82, 85, 82, 844, 843, 1053, 842, 1055,
+- 82, 85, 82, 841, 1054, 82, 85, 82, 82, 85,
+-
+- 82, 1056, 82, 85, 82, 82, 85, 82, 1057, 82,
+- 85, 82, 82, 85, 82, 82, 85, 82, 840, 1058,
+- 82, 85, 82, 839, 1059, 82, 85, 82, 838, 837,
+- 1123, 836, 82, 85, 82, 835, 831, 1089, 830, 1091,
+- 829, 1090, 828, 1093, 1092, 827, 826, 1094, 1122, 82,
+- 85, 82, 82, 85, 82, 82, 85, 82, 82, 85,
+- 82, 82, 85, 82, 82, 85, 82, 82, 85, 82,
+- 82, 85, 82, 82, 85, 82, 1124, 1125, 82, 85,
+- 82, 82, 85, 82, 82, 85, 82, 82, 85, 82,
+- 1147, 82, 85, 82, 82, 85, 82, 825, 824, 1150,
+-
+- 82, 85, 82, 823, 1148, 82, 85, 82, 1149, 82,
+- 85, 82, 1170, 1215, 822, 821, 1171, 82, 85, 82,
+- 82, 85, 82, 1172, 82, 85, 82, 820, 1191, 1190,
+- 82, 85, 82, 1205, 819, 818, 1206, 82, 85, 82,
+- 817, 1214, 816, 1222, 82, 85, 82, 82, 85, 82,
+- 815, 1221, 814, 787, 786, 785, 784, 783, 782, 781,
+- 780, 1228, 779, 778, 777, 776, 1226, 775, 774, 773,
+- 772, 771, 770, 769, 1230, 1232, 768, 767, 766, 765,
+- 764, 763, 762, 761, 760, 759, 752, 751, 750, 749,
+- 748, 747, 746, 1233, 45, 45, 45, 45, 49, 49,
+-
+- 49, 49, 75, 75, 75, 75, 78, 78, 78, 78,
+- 85, 85, 94, 94, 182, 745, 182, 182, 744, 743,
+- 713, 712, 711, 710, 709, 708, 707, 706, 705, 704,
+- 703, 702, 701, 700, 699, 698, 697, 694, 693, 692,
++ 24, 23, 25, 26, 23, 27, 23, 23, 23, 23,
++ 23, 23, 23, 12, 23, 23, 28, 29, 30, 31,
++ 32, 23, 23, 33, 23, 34, 23, 35, 36, 37,
++ 23, 38, 39, 40, 41, 42, 23, 23, 23, 43,
++ 44, 48, 47, 51, 45, 49, 51, 72, 78, 351,
++ 52, 73, 75, 52, 53, 81, 76, 88, 74, 81,
++ 82, 89, 83, 83, 84, 87, 84, 352, 54, 84,
++
++ 85, 84, 86, 86, 182, 182, 84, 87, 84, 84,
++ 87, 84, 55, 84, 87, 84, 130, 79, 150, 232,
++ 131, 56, 151, 57, 58, 1146, 59, 60, 233, 61,
++ 62, 63, 97, 64, 65, 66, 67, 68, 69, 70,
++ 71, 90, 255, 83, 83, 1152, 99, 84, 87, 84,
++ 91, 92, 84, 87, 84, 78, 256, 93, 84, 87,
++ 84, 100, 84, 87, 84, 98, 93, 84, 87, 84,
++ 84, 87, 84, 84, 87, 84, 189, 189, 91, 92,
++ 84, 87, 84, 84, 93, 84, 84, 87, 84, 84,
++ 87, 84, 93, 1153, 79, 94, 84, 87, 84, 101,
++
++ 84, 87, 84, 102, 108, 105, 103, 176, 84, 104,
++ 84, 177, 109, 106, 110, 84, 87, 84, 230, 111,
++ 113, 336, 107, 84, 87, 84, 1154, 112, 84, 87,
++ 84, 84, 87, 84, 84, 87, 84, 114, 337, 179,
++ 234, 117, 118, 180, 119, 115, 81, 231, 116, 235,
++ 81, 120, 547, 121, 281, 322, 122, 84, 87, 84,
++ 84, 87, 84, 235, 123, 548, 323, 128, 154, 125,
++ 126, 124, 84, 87, 84, 127, 132, 133, 134, 135,
++ 136, 137, 138, 139, 140, 130, 1155, 141, 142, 131,
++ 143, 144, 1156, 145, 146, 147, 148, 149, 84, 87,
++
++ 84, 84, 87, 84, 156, 226, 155, 84, 87, 84,
++ 158, 1157, 84, 87, 84, 84, 87, 84, 238, 105,
++ 227, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++ 936, 331, 157, 84, 87, 84, 228, 937, 161, 102,
++ 236, 108, 103, 332, 237, 104, 333, 111, 239, 109,
++ 160, 110, 150, 162, 159, 163, 151, 345, 165, 84,
++ 87, 84, 346, 164, 84, 87, 84, 1158, 112, 84,
++ 87, 84, 84, 183, 84, 166, 167, 84, 87, 84,
++ 245, 84, 115, 84, 246, 116, 84, 87, 84, 168,
++ 188, 188, 176, 247, 189, 189, 177, 169, 84, 87,
++
++ 84, 84, 170, 84, 545, 117, 171, 121, 119, 546,
++ 122, 172, 187, 187, 805, 120, 806, 179, 123, 91,
++ 92, 180, 638, 125, 175, 173, 639, 174, 126, 84,
++ 87, 84, 84, 127, 84, 86, 86, 1159, 241, 84,
++ 87, 84, 184, 185, 242, 243, 191, 91, 92, 84,
++ 87, 84, 1160, 84, 87, 84, 84, 87, 84, 84,
++ 87, 84, 84, 87, 84, 84, 87, 84, 908, 909,
++ 184, 185, 192, 193, 194, 84, 87, 84, 84, 87,
++ 84, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++ 84, 87, 84, 196, 1161, 1162, 197, 84, 87, 84,
++
++ 84, 87, 84, 195, 84, 87, 84, 84, 87, 84,
++ 1163, 198, 84, 87, 84, 84, 87, 84, 84, 87,
++ 84, 84, 87, 84, 84, 87, 84, 199, 202, 201,
++ 200, 1164, 1165, 203, 84, 87, 84, 204, 354, 84,
++ 87, 84, 84, 87, 84, 208, 206, 355, 205, 207,
++ 211, 84, 87, 84, 209, 710, 84, 87, 84, 210,
++ 711, 213, 84, 87, 84, 212, 325, 326, 216, 327,
++ 1166, 215, 84, 87, 84, 84, 87, 84, 214, 84,
++ 87, 84, 1167, 217, 218, 249, 422, 250, 770, 423,
++ 251, 219, 252, 84, 87, 84, 84, 87, 84, 84,
++
++ 87, 84, 771, 220, 221, 84, 87, 84, 84, 87,
++ 84, 1168, 222, 84, 87, 84, 1169, 224, 1170, 1171,
++ 225, 223, 84, 87, 84, 84, 87, 84, 84, 87,
++ 84, 84, 87, 84, 84, 87, 84, 260, 84, 87,
++ 84, 1172, 1177, 262, 84, 87, 84, 264, 261, 263,
++ 84, 87, 84, 84, 87, 84, 84, 87, 84, 84,
++ 87, 84, 265, 84, 87, 84, 84, 87, 84, 1178,
++ 269, 1179, 1180, 266, 84, 87, 84, 268, 84, 87,
++ 84, 1181, 208, 270, 267, 1182, 273, 272, 84, 87,
++ 84, 182, 182, 450, 1183, 271, 1184, 451, 91, 92,
++
++ 452, 274, 1185, 276, 188, 282, 1186, 84, 283, 283,
++ 275, 277, 1188, 189, 189, 1189, 279, 187, 187, 1187,
++ 214, 92, 278, 1190, 91, 92, 91, 92, 84, 87,
++ 84, 84, 87, 84, 84, 87, 84, 280, 84, 87,
++ 84, 84, 87, 84, 1191, 284, 1192, 1193, 286, 92,
++ 1194, 287, 91, 92, 84, 87, 84, 84, 87, 84,
++ 84, 87, 84, 84, 87, 84, 84, 87, 84, 1195,
++ 1199, 288, 84, 87, 84, 84, 87, 84, 84, 87,
++ 84, 285, 84, 87, 84, 289, 84, 87, 84, 84,
++ 87, 84, 84, 87, 84, 84, 87, 84, 293, 84,
++
++ 87, 84, 1200, 290, 84, 87, 84, 291, 1201, 1202,
++ 292, 294, 297, 84, 87, 84, 295, 84, 87, 84,
++ 298, 84, 87, 84, 1203, 296, 84, 87, 84, 299,
++ 300, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++ 84, 87, 84, 1204, 301, 84, 87, 84, 84, 87,
++ 84, 1205, 302, 1206, 1207, 303, 1208, 304, 84, 87,
++ 84, 84, 87, 84, 307, 1209, 305, 306, 84, 87,
++ 84, 84, 87, 84, 1210, 84, 87, 84, 84, 87,
++ 84, 341, 308, 1211, 1212, 309, 313, 342, 311, 310,
++ 1213, 1214, 312, 1215, 1218, 343, 314, 84, 87, 84,
++
++ 84, 87, 84, 315, 84, 87, 84, 1219, 317, 318,
++ 84, 87, 84, 84, 87, 84, 84, 87, 84, 316,
++ 84, 87, 84, 84, 87, 84, 1220, 1221, 363, 84,
++ 87, 84, 1222, 365, 1223, 364, 1224, 84, 87, 84,
++ 84, 87, 84, 1225, 367, 84, 87, 84, 366, 84,
++ 87, 84, 1226, 84, 87, 84, 1227, 1228, 368, 84,
++ 87, 84, 1229, 370, 84, 87, 84, 371, 84, 87,
++ 84, 84, 87, 84, 369, 372, 1230, 851, 84, 87,
++ 84, 852, 373, 374, 84, 87, 84, 84, 1233, 84,
++ 283, 283, 84, 853, 84, 283, 283, 1234, 1235, 375,
++
++ 376, 1236, 1237, 185, 1238, 1239, 378, 1242, 1243, 379,
++ 377, 380, 84, 87, 84, 84, 87, 84, 84, 87,
++ 84, 84, 87, 84, 1244, 1245, 84, 87, 84, 1246,
++ 384, 185, 386, 1249, 381, 84, 87, 84, 84, 87,
++ 84, 385, 84, 87, 84, 1250, 1251, 387, 388, 389,
++ 390, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++ 1253, 84, 87, 84, 1255, 383, 84, 87, 84, 84,
++ 87, 84, 84, 87, 84, 84, 87, 84, 84, 87,
++ 84, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++ 1257, 190, 391, 84, 87, 84, 1145, 1144, 393, 84,
++
++ 87, 84, 392, 394, 395, 84, 87, 84, 84, 87,
++ 84, 1143, 1142, 396, 1141, 399, 1140, 1139, 400, 84,
++ 87, 84, 1138, 397, 1137, 401, 1136, 1135, 398, 84,
++ 87, 84, 84, 87, 84, 402, 84, 87, 84, 404,
++ 1134, 406, 1133, 405, 84, 87, 84, 84, 87, 84,
++ 403, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++ 84, 87, 84, 84, 87, 84, 1132, 1131, 409, 407,
++ 1130, 408, 84, 87, 84, 84, 87, 84, 772, 773,
++ 410, 84, 87, 84, 84, 87, 84, 774, 412, 84,
++ 87, 84, 1129, 775, 413, 84, 87, 84, 411, 84,
++
++ 87, 84, 84, 87, 84, 84, 87, 84, 1128, 414,
++ 460, 1127, 415, 84, 87, 84, 1126, 462, 84, 87,
++ 84, 84, 87, 84, 84, 87, 84, 1125, 1124, 464,
++ 461, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++ 1123, 463, 84, 87, 84, 1122, 465, 84, 87, 84,
++ 1121, 467, 1120, 1112, 466, 84, 87, 84, 84, 87,
++ 84, 1111, 1110, 398, 1109, 468, 1108, 1107, 472, 1106,
++ 469, 1105, 405, 1104, 470, 84, 87, 84, 1103, 412,
++ 1102, 474, 1101, 1100, 471, 1099, 1098, 473, 84, 87,
++ 84, 475, 1097, 1096, 478, 1095, 1094, 476, 1093, 1092,
++
++ 477, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++ 84, 87, 84, 479, 84, 87, 84, 84, 87, 84,
++ 480, 84, 87, 84, 84, 87, 84, 482, 484, 1091,
++ 1090, 485, 1089, 1088, 481, 84, 87, 84, 486, 483,
++ 84, 87, 84, 84, 87, 84, 84, 87, 84, 84,
++ 87, 84, 84, 87, 84, 84, 87, 84, 84, 87,
++ 84, 1087, 487, 84, 87, 84, 84, 87, 84, 1086,
++ 1085, 488, 84, 87, 84, 84, 87, 84, 84, 87,
++ 84, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++ 84, 87, 84, 1084, 492, 1075, 1074, 489, 1073, 493,
++
++ 84, 87, 84, 490, 1072, 1071, 491, 84, 87, 84,
++ 1070, 1069, 495, 84, 87, 84, 494, 84, 87, 84,
++ 497, 84, 87, 84, 499, 84, 87, 84, 1068, 496,
++ 84, 87, 84, 84, 87, 84, 1067, 1066, 498, 1065,
++ 84, 87, 84, 1064, 1063, 500, 84, 87, 84, 1062,
++ 1061, 502, 1060, 1059, 503, 84, 87, 84, 1058, 501,
++ 84, 87, 84, 1057, 550, 84, 87, 84, 84, 87,
++ 84, 84, 87, 84, 84, 87, 84, 1056, 1055, 84,
++ 87, 84, 1054, 551, 552, 84, 87, 84, 84, 87,
++ 84, 84, 87, 84, 555, 1053, 1052, 553, 1051, 84,
++
++ 87, 84, 1050, 1049, 554, 84, 87, 84, 84, 87,
++ 84, 84, 87, 84, 557, 556, 558, 559, 84, 87,
++ 84, 84, 87, 84, 566, 84, 87, 84, 1048, 494,
++ 1047, 1046, 569, 570, 571, 567, 560, 1045, 1044, 561,
++ 562, 563, 572, 1034, 1033, 573, 84, 87, 84, 574,
++ 575, 568, 564, 576, 84, 87, 84, 84, 87, 84,
++ 84, 87, 84, 1032, 1031, 565, 84, 87, 84, 578,
++ 84, 87, 84, 1030, 577, 84, 87, 84, 1029, 1028,
++ 579, 84, 87, 84, 580, 84, 87, 84, 84, 87,
++ 84, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++
++ 84, 87, 84, 84, 87, 84, 84, 87, 84, 84,
++ 87, 84, 84, 87, 84, 582, 1027, 581, 84, 87,
++ 84, 84, 87, 84, 594, 595, 584, 84, 87, 84,
++ 1026, 1025, 583, 84, 87, 84, 84, 87, 84, 1024,
++ 596, 597, 585, 1023, 1022, 598, 1021, 586, 84, 87,
++ 84, 84, 87, 84, 84, 87, 84, 588, 1020, 589,
++ 84, 87, 84, 587, 84, 87, 84, 84, 87, 84,
++ 1019, 590, 84, 87, 84, 84, 87, 84, 643, 84,
++ 87, 84, 1018, 1017, 591, 84, 87, 84, 84, 87,
++ 84, 84, 87, 84, 84, 87, 84, 646, 1016, 1015,
++
++ 644, 1014, 645, 1013, 647, 648, 649, 84, 87, 84,
++ 1012, 1011, 651, 84, 87, 84, 84, 87, 84, 84,
++ 87, 84, 653, 84, 87, 84, 84, 87, 84, 1010,
++ 1009, 654, 650, 658, 84, 87, 84, 652, 1008, 655,
++ 661, 84, 87, 84, 84, 87, 84, 659, 84, 87,
++ 84, 657, 660, 656, 1007, 662, 1006, 1005, 663, 84,
++ 87, 84, 84, 87, 84, 665, 664, 84, 87, 84,
++ 84, 87, 84, 1004, 84, 87, 84, 669, 84, 87,
++ 84, 1003, 668, 84, 87, 84, 1002, 1001, 666, 84,
++ 87, 84, 667, 670, 84, 87, 84, 84, 87, 84,
++
++ 84, 87, 84, 671, 84, 87, 84, 84, 87, 84,
++ 84, 87, 84, 989, 672, 84, 87, 84, 84, 87,
++ 84, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++ 674, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++ 673, 988, 676, 84, 87, 84, 675, 987, 677, 84,
++ 87, 84, 84, 87, 84, 678, 84, 87, 84, 84,
++ 87, 84, 84, 87, 84, 986, 985, 731, 984, 983,
++ 732, 84, 87, 84, 84, 87, 84, 729, 982, 730,
++ 981, 733, 84, 87, 84, 980, 979, 734, 84, 87,
++ 84, 84, 87, 84, 736, 978, 735, 84, 87, 84,
++
++ 84, 87, 84, 737, 84, 87, 84, 84, 87, 84,
++ 977, 738, 84, 87, 84, 743, 739, 744, 745, 976,
++ 747, 746, 975, 974, 741, 973, 740, 84, 87, 84,
++ 742, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++ 84, 87, 84, 84, 87, 84, 749, 972, 750, 971,
++ 970, 748, 969, 753, 84, 87, 84, 968, 751, 967,
++ 966, 752, 84, 87, 84, 84, 87, 84, 755, 754,
++ 84, 87, 84, 84, 87, 84, 84, 87, 84, 965,
++ 757, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++ 84, 87, 84, 84, 87, 84, 964, 963, 756, 84,
++
++ 87, 84, 84, 87, 84, 84, 87, 84, 84, 87,
++ 84, 84, 87, 84, 758, 84, 87, 84, 84, 87,
++ 84, 759, 84, 87, 84, 84, 87, 84, 962, 809,
++ 961, 807, 84, 87, 84, 960, 959, 808, 958, 810,
++ 84, 87, 84, 84, 87, 84, 84, 87, 84, 957,
++ 956, 811, 84, 87, 84, 84, 87, 84, 955, 954,
++ 812, 938, 935, 813, 934, 84, 87, 84, 933, 84,
++ 87, 84, 84, 87, 84, 818, 819, 84, 87, 84,
++ 814, 84, 87, 84, 932, 815, 820, 931, 84, 87,
++ 84, 84, 87, 84, 816, 930, 929, 817, 823, 824,
++
++ 928, 927, 821, 84, 87, 84, 822, 84, 87, 84,
++ 84, 87, 84, 84, 87, 84, 926, 826, 827, 925,
++ 825, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++ 924, 923, 830, 831, 84, 87, 84, 922, 829, 84,
++ 87, 84, 84, 87, 84, 921, 828, 84, 87, 84,
++ 84, 87, 84, 84, 87, 84, 84, 87, 84, 920,
++ 832, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++ 919, 918, 877, 84, 87, 84, 84, 87, 84, 917,
++ 916, 84, 87, 84, 84, 87, 84, 915, 914, 879,
++ 882, 878, 913, 912, 886, 84, 87, 84, 911, 880,
++
++ 910, 887, 907, 906, 881, 883, 885, 84, 87, 84,
++ 905, 884, 84, 87, 84, 84, 87, 84, 84, 87,
++ 84, 904, 903, 888, 84, 87, 84, 902, 889, 84,
++ 87, 84, 901, 900, 890, 84, 87, 84, 84, 87,
++ 84, 84, 87, 84, 899, 898, 892, 893, 84, 87,
++ 84, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++ 891, 84, 87, 84, 897, 895, 876, 875, 894, 84,
++ 87, 84, 84, 87, 84, 84, 87, 84, 874, 896,
++ 84, 87, 84, 84, 87, 84, 84, 87, 84, 84,
++ 87, 84, 873, 872, 940, 871, 84, 87, 84, 84,
++
++ 87, 84, 84, 87, 84, 939, 948, 870, 943, 84,
++ 87, 84, 942, 84, 87, 84, 869, 944, 941, 947,
++ 84, 87, 84, 946, 84, 87, 84, 949, 868, 945,
++ 867, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++ 84, 87, 84, 866, 950, 951, 84, 87, 84, 84,
++ 87, 84, 865, 952, 84, 87, 84, 84, 87, 84,
++ 864, 953, 84, 87, 84, 84, 87, 84, 84, 87,
++ 84, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++ 84, 87, 84, 863, 84, 87, 84, 84, 87, 84,
++ 862, 991, 861, 860, 998, 84, 87, 84, 994, 84,
++
++ 87, 84, 990, 999, 997, 992, 859, 995, 858, 993,
++ 857, 1000, 84, 87, 84, 84, 87, 84, 856, 996,
++ 84, 87, 84, 84, 87, 84, 84, 87, 84, 84,
++ 87, 84, 84, 87, 84, 84, 87, 84, 84, 87,
++ 84, 84, 87, 84, 855, 1035, 854, 850, 1043, 84,
++ 87, 84, 84, 87, 84, 84, 87, 84, 84, 87,
++ 84, 1036, 84, 87, 84, 1041, 849, 848, 1038, 1042,
++ 1039, 847, 1037, 846, 845, 1040, 84, 87, 84, 84,
++ 87, 84, 84, 87, 84, 84, 87, 84, 844, 843,
++ 1076, 842, 1078, 84, 87, 84, 841, 1077, 840, 839,
++
++ 1079, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++ 838, 84, 87, 84, 1080, 84, 87, 84, 837, 1081,
++ 84, 87, 84, 836, 84, 87, 84, 835, 1082, 84,
++ 87, 84, 834, 1083, 84, 87, 84, 84, 87, 84,
++ 84, 87, 84, 84, 87, 84, 84, 87, 84, 1117,
++ 1148, 1115, 84, 87, 84, 1114, 1113, 1116, 1118, 84,
++ 87, 84, 84, 87, 84, 84, 87, 84, 833, 804,
++ 1147, 1119, 84, 87, 84, 84, 87, 84, 84, 87,
++ 84, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++ 803, 802, 1150, 801, 1149, 800, 799, 1151, 798, 797,
++
++ 1173, 84, 87, 84, 84, 87, 84, 84, 87, 84,
++ 84, 87, 84, 796, 1174, 795, 1176, 84, 87, 84,
++ 794, 793, 1175, 84, 87, 84, 84, 87, 84, 1196,
++ 84, 87, 84, 1197, 84, 87, 84, 84, 87, 84,
++ 84, 87, 84, 1241, 84, 87, 84, 84, 87, 84,
++ 792, 1198, 791, 790, 1217, 1216, 84, 87, 84, 1231,
++ 84, 87, 84, 84, 87, 84, 84, 87, 84, 789,
++ 788, 1248, 1232, 1240, 787, 786, 785, 784, 783, 782,
++ 1247, 781, 780, 779, 1254, 778, 777, 776, 769, 768,
++ 1252, 767, 766, 765, 764, 763, 762, 761, 1258, 760,
++
++ 1256, 728, 727, 726, 725, 724, 723, 722, 721, 720,
++ 719, 718, 1259, 46, 46, 46, 46, 50, 50, 50,
++ 50, 77, 77, 77, 77, 80, 80, 80, 80, 87,
++ 87, 96, 96, 186, 717, 186, 186, 716, 715, 714,
++ 713, 712, 709, 708, 707, 706, 705, 704, 703, 702,
++ 701, 700, 699, 698, 697, 696, 695, 694, 693, 692,
+ 691, 690, 689, 688, 687, 686, 685, 684, 683, 682,
+- 681, 680, 679, 678, 677, 676, 675, 674, 673, 672,
+- 671, 670, 669, 668, 667, 666, 665, 664, 629, 628,
+- 627, 624, 623, 622, 621, 620, 619, 618, 617, 616,
+- 615, 614, 613, 612, 611, 610, 609, 608, 607, 606,
+- 605, 604, 603, 602, 601, 600, 599, 598, 597, 596,
+-
+- 595, 594, 593, 592, 591, 590, 589, 588, 587, 586,
+- 580, 579, 538, 533, 532, 531, 530, 529, 528, 527,
+- 526, 525, 524, 523, 522, 521, 520, 519, 518, 517,
+- 516, 515, 514, 513, 512, 511, 510, 509, 508, 507,
+- 506, 505, 504, 503, 502, 501, 500, 499, 498, 497,
+- 496, 495, 494, 493, 450, 449, 448, 447, 446, 445,
+- 444, 440, 439, 438, 437, 436, 435, 434, 433, 432,
+- 431, 430, 429, 428, 427, 426, 425, 424, 423, 422,
+- 421, 420, 419, 418, 417, 416, 415, 412, 411, 410,
+- 409, 408, 407, 374, 355, 354, 353, 352, 351, 350,
+-
+- 349, 346, 343, 342, 341, 340, 337, 333, 332, 331,
+- 328, 327, 323, 322, 321, 317, 314, 313, 312, 177,
+- 230, 174, 254, 149, 253, 252, 249, 248, 243, 239,
+- 235, 224, 1234, 1234, 177, 174, 150, 149, 126, 93,
+- 1234, 1234, 72, 46, 11, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
++ 681, 680, 679, 642, 641, 640, 637, 636, 635, 634,
++ 633, 632, 631, 630, 629, 628, 627, 626, 625, 624,
++ 623, 622, 621, 620, 619, 618, 617, 616, 615, 614,
++
++ 613, 612, 611, 610, 609, 608, 607, 606, 605, 604,
++ 603, 602, 601, 600, 599, 593, 592, 549, 544, 543,
++ 542, 541, 540, 539, 538, 537, 536, 535, 534, 533,
++ 532, 531, 530, 529, 528, 527, 526, 525, 524, 523,
++ 522, 521, 520, 519, 518, 517, 516, 515, 514, 513,
++ 512, 511, 510, 509, 508, 507, 506, 505, 504, 459,
++ 458, 457, 456, 455, 454, 453, 449, 448, 447, 446,
++ 445, 444, 443, 442, 441, 440, 439, 438, 437, 436,
++ 435, 434, 433, 432, 431, 430, 429, 428, 427, 426,
++ 425, 424, 421, 420, 419, 418, 417, 416, 382, 362,
++
++ 361, 360, 359, 358, 357, 356, 353, 350, 349, 348,
++ 347, 344, 340, 339, 338, 335, 334, 330, 329, 328,
++ 324, 321, 320, 319, 181, 235, 178, 259, 152, 258,
++ 257, 254, 253, 248, 244, 240, 229, 1260, 1260, 181,
++ 178, 153, 152, 129, 95, 1260, 1260, 74, 47, 11,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
+
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260
+ } ;
+
+-static yyconst flex_int16_t yy_chk[2916] =
++static const flex_int16_t yy_chk[3021] =
+ { 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+@@ -1169,320 +1177,331 @@ static yyconst flex_int16_t yy_chk[2916]
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+- 2, 4, 4, 5, 2, 4, 6, 8, 15, 245,
++ 2, 4, 4, 5, 2, 4, 6, 8, 15, 250,
+ 5, 8, 10, 6, 7, 16, 10, 19, 10, 16,
+- 17, 19, 17, 17, 23, 23, 23, 245, 7, 18,
++ 17, 19, 17, 17, 23, 23, 23, 250, 7, 18,
+
+- 18, 18, 18, 18, 80, 80, 24, 24, 24, 25,
+- 25, 25, 7, 132, 26, 26, 26, 15, 27, 27,
+- 27, 7, 132, 7, 7, 75, 7, 7, 26, 7,
+- 7, 7, 24, 7, 7, 1088, 7, 7, 7, 7,
+- 7, 20, 25, 20, 20, 43, 28, 28, 28, 43,
+- 20, 20, 29, 29, 29, 184, 184, 20, 30, 30,
+- 30, 32, 32, 32, 75, 27, 20, 31, 31, 31,
+- 33, 33, 33, 47, 34, 34, 34, 47, 20, 20,
+- 35, 35, 35, 131, 20, 70, 82, 28, 82, 70,
+- 28, 133, 20, 28, 1096, 20, 36, 36, 36, 29,
+-
+- 133, 31, 73, 85, 30, 85, 73, 32, 34, 31,
+- 233, 31, 131, 30, 37, 37, 37, 33, 78, 38,
+- 38, 38, 78, 39, 39, 39, 1097, 233, 35, 40,
+- 40, 40, 144, 127, 41, 41, 41, 127, 53, 53,
+- 53, 54, 54, 54, 135, 36, 144, 1098, 36, 55,
+- 55, 55, 63, 63, 63, 37, 37, 38, 37, 1099,
+- 38, 83, 83, 83, 177, 37, 825, 825, 38, 39,
+- 41, 40, 53, 177, 135, 38, 40, 44, 44, 44,
+- 44, 44, 44, 44, 44, 44, 63, 1100, 44, 44,
+- 54, 44, 44, 55, 44, 44, 44, 44, 44, 56,
+-
+- 56, 56, 134, 57, 57, 57, 134, 59, 59, 59,
+- 58, 58, 58, 1102, 60, 60, 60, 61, 61, 61,
+- 224, 1103, 62, 62, 62, 64, 64, 64, 65, 65,
+- 65, 224, 1104, 56, 66, 66, 66, 68, 68, 68,
+- 56, 57, 1105, 56, 58, 59, 56, 94, 94, 94,
+- 57, 60, 58, 129, 58, 61, 62, 58, 1106, 1109,
+- 60, 67, 67, 67, 62, 240, 65, 147, 129, 62,
+- 240, 147, 66, 64, 64, 66, 66, 179, 66, 179,
+- 69, 69, 69, 68, 129, 66, 84, 68, 84, 84,
+- 84, 172, 238, 88, 88, 172, 84, 84, 238, 67,
+-
+- 88, 88, 67, 67, 89, 89, 238, 175, 89, 89,
+- 67, 175, 535, 95, 95, 95, 535, 67, 69, 96,
+- 96, 96, 69, 319, 84, 84, 319, 69, 88, 88,
+- 95, 97, 97, 97, 98, 98, 98, 99, 99, 99,
+- 100, 100, 100, 96, 101, 101, 101, 102, 102, 102,
+- 1110, 1111, 97, 103, 103, 103, 104, 104, 104, 105,
+- 105, 105, 106, 106, 106, 107, 107, 107, 108, 108,
+- 108, 99, 1112, 1113, 100, 109, 109, 109, 110, 110,
+- 110, 98, 111, 111, 111, 112, 112, 112, 247, 1114,
+- 101, 113, 113, 113, 114, 114, 114, 247, 1116, 102,
+-
+- 115, 115, 115, 105, 104, 103, 1117, 1118, 106, 116,
+- 116, 116, 107, 117, 117, 117, 118, 118, 118, 108,
+- 111, 109, 181, 110, 181, 1120, 113, 112, 119, 119,
+- 119, 1121, 112, 120, 120, 120, 121, 121, 121, 137,
+- 115, 114, 122, 122, 122, 137, 137, 117, 123, 123,
+- 123, 124, 124, 124, 1126, 449, 116, 115, 125, 125,
+- 125, 118, 117, 139, 141, 448, 141, 139, 449, 141,
+- 448, 141, 151, 151, 151, 1127, 139, 119, 152, 152,
+- 152, 153, 153, 153, 121, 120, 611, 154, 154, 154,
+- 1128, 611, 122, 124, 155, 155, 155, 123, 1129, 125,
+-
+- 156, 156, 156, 157, 157, 157, 158, 158, 158, 159,
+- 159, 159, 160, 160, 160, 675, 151, 161, 161, 161,
+- 1130, 162, 162, 162, 1131, 153, 163, 163, 163, 675,
+- 152, 154, 1132, 155, 164, 164, 164, 165, 165, 165,
+- 166, 166, 166, 167, 167, 167, 169, 169, 169, 156,
+- 168, 168, 168, 161, 157, 170, 170, 170, 160, 171,
+- 171, 171, 178, 178, 163, 159, 162, 1133, 1134, 178,
+- 178, 164, 187, 187, 187, 180, 180, 163, 180, 180,
+- 180, 1137, 165, 167, 185, 185, 189, 189, 189, 187,
+- 1138, 166, 185, 170, 169, 168, 1140, 178, 178, 713,
+-
+- 167, 713, 183, 183, 188, 188, 188, 1142, 171, 183,
+- 183, 190, 190, 190, 191, 191, 191, 1143, 188, 189,
+- 185, 188, 192, 192, 192, 193, 193, 193, 856, 194,
+- 194, 194, 195, 195, 195, 856, 1144, 183, 183, 196,
+- 196, 196, 197, 197, 197, 198, 198, 198, 199, 199,
+- 199, 200, 200, 200, 1145, 190, 201, 201, 201, 202,
+- 202, 202, 1146, 191, 194, 203, 203, 203, 204, 204,
+- 204, 1151, 192, 226, 226, 193, 226, 195, 1135, 198,
+- 1152, 1154, 199, 196, 205, 205, 205, 206, 206, 206,
+- 1155, 1135, 197, 207, 207, 207, 201, 202, 208, 208,
+-
+- 208, 209, 209, 209, 210, 210, 210, 211, 211, 211,
+- 212, 212, 212, 1156, 203, 213, 213, 213, 214, 214,
+- 214, 204, 215, 215, 215, 1157, 216, 216, 216, 1158,
+- 1160, 206, 217, 217, 217, 205, 218, 218, 218, 209,
+- 1161, 230, 207, 1162, 208, 219, 219, 219, 1163, 220,
+- 220, 220, 1164, 230, 1165, 210, 230, 761, 211, 1166,
+- 215, 761, 212, 213, 216, 214, 255, 255, 255, 256,
+- 256, 256, 1167, 761, 217, 257, 257, 257, 258, 258,
+- 258, 1168, 219, 220, 259, 259, 259, 218, 260, 260,
+- 260, 261, 261, 261, 262, 262, 262, 263, 263, 263,
+-
+- 264, 264, 264, 265, 265, 265, 1169, 256, 257, 266,
+- 266, 266, 267, 267, 267, 1173, 255, 1174, 259, 268,
+- 268, 268, 258, 269, 269, 269, 270, 270, 270, 271,
+- 271, 271, 1175, 260, 274, 274, 274, 263, 264, 1176,
+- 1178, 265, 272, 272, 272, 273, 273, 273, 262, 1179,
+- 267, 266, 276, 1180, 276, 276, 276, 277, 1181, 277,
+- 277, 277, 278, 278, 278, 1183, 268, 271, 277, 279,
+- 279, 279, 270, 280, 280, 280, 1185, 1186, 273, 1187,
+- 272, 279, 1189, 1194, 274, 281, 281, 281, 282, 282,
+- 282, 281, 1197, 280, 1198, 1199, 277, 283, 283, 283,
+-
+- 284, 284, 284, 285, 285, 285, 281, 281, 281, 281,
+- 1200, 286, 286, 286, 287, 287, 287, 288, 288, 288,
+- 289, 289, 289, 290, 290, 290, 291, 291, 291, 292,
+- 292, 292, 293, 293, 293, 294, 294, 294, 295, 295,
+- 295, 296, 296, 296, 297, 297, 297, 298, 298, 298,
+- 284, 299, 299, 299, 285, 286, 1201, 1202, 289, 288,
+- 300, 300, 300, 301, 301, 301, 1208, 290, 1209, 294,
+- 1210, 1212, 295, 302, 302, 302, 347, 291, 1213, 296,
+- 347, 1217, 293, 347, 1218, 299, 297, 1219, 1224, 299,
+- 303, 303, 303, 300, 304, 304, 304, 1227, 298, 305,
+-
+- 305, 305, 306, 306, 306, 307, 307, 307, 308, 308,
+- 308, 1229, 1242, 301, 1087, 302, 309, 309, 309, 310,
+- 310, 310, 311, 311, 311, 1086, 303, 356, 356, 356,
+- 357, 357, 357, 358, 358, 358, 1085, 1083, 304, 359,
+- 359, 359, 307, 360, 360, 360, 1082, 1081, 308, 361,
+- 361, 361, 1080, 305, 362, 362, 362, 363, 363, 363,
+- 364, 364, 364, 1079, 1077, 356, 1076, 1075, 309, 1074,
+- 1073, 311, 359, 365, 365, 365, 1072, 366, 366, 366,
+- 1071, 1070, 358, 361, 367, 367, 367, 368, 368, 368,
+- 1069, 369, 369, 369, 1068, 360, 370, 370, 370, 1067,
+-
+- 1066, 362, 371, 371, 371, 1065, 364, 1064, 1063, 363,
+- 372, 372, 372, 373, 373, 373, 375, 375, 375, 1062,
+- 376, 376, 376, 365, 366, 369, 378, 378, 378, 369,
+- 377, 377, 377, 367, 1061, 375, 380, 380, 380, 371,
+- 368, 379, 379, 379, 372, 376, 370, 1060, 1052, 377,
+- 381, 381, 381, 1051, 372, 373, 378, 382, 382, 382,
+- 1050, 379, 1049, 1048, 381, 380, 1045, 381, 383, 383,
+- 383, 384, 384, 384, 381, 385, 385, 385, 386, 386,
+- 386, 387, 387, 387, 388, 388, 388, 389, 389, 389,
+- 390, 390, 390, 391, 391, 391, 392, 392, 392, 1044,
+-
+- 393, 393, 393, 394, 394, 394, 395, 395, 395, 384,
+- 1043, 385, 396, 396, 396, 397, 397, 397, 398, 398,
+- 398, 399, 399, 399, 400, 400, 400, 401, 401, 401,
+- 1042, 1041, 392, 677, 677, 389, 393, 402, 402, 402,
+- 1039, 390, 677, 1038, 391, 403, 403, 403, 677, 396,
+- 395, 404, 404, 404, 405, 405, 405, 399, 406, 406,
+- 406, 401, 451, 451, 451, 1037, 397, 452, 452, 452,
+- 453, 453, 453, 1036, 1035, 400, 1034, 454, 454, 454,
+- 455, 455, 455, 403, 456, 456, 456, 1033, 405, 1032,
+- 1031, 406, 457, 457, 457, 1030, 1029, 404, 458, 458,
+-
+- 458, 452, 1028, 459, 459, 459, 460, 460, 460, 461,
+- 461, 461, 462, 462, 462, 463, 463, 463, 1027, 1026,
+- 453, 454, 464, 464, 464, 1025, 457, 465, 465, 465,
+- 1024, 455, 1023, 456, 466, 466, 466, 467, 467, 467,
+- 468, 468, 468, 467, 469, 469, 469, 461, 458, 459,
+- 471, 471, 471, 470, 470, 470, 462, 471, 1022, 1021,
+- 470, 470, 470, 462, 468, 1012, 463, 1011, 1010, 465,
+- 470, 464, 1009, 470, 469, 1007, 1006, 470, 470, 1005,
+- 1004, 466, 472, 472, 472, 473, 473, 473, 474, 474,
+- 474, 475, 475, 475, 476, 476, 476, 473, 477, 477,
+-
+- 477, 1003, 472, 1002, 1001, 475, 999, 998, 474, 478,
+- 478, 478, 479, 479, 479, 480, 480, 480, 481, 481,
+- 481, 482, 482, 482, 483, 483, 483, 484, 484, 484,
+- 485, 485, 485, 486, 486, 486, 487, 487, 487, 997,
+- 477, 996, 995, 478, 488, 488, 488, 489, 489, 489,
+- 490, 490, 490, 480, 491, 491, 491, 994, 993, 479,
+- 492, 492, 492, 495, 495, 539, 539, 539, 992, 481,
+- 540, 540, 540, 991, 483, 541, 541, 541, 990, 495,
+- 495, 542, 542, 542, 495, 989, 489, 988, 490, 987,
+- 543, 543, 543, 986, 985, 488, 984, 983, 491, 544,
+-
+- 544, 544, 545, 545, 545, 982, 981, 539, 546, 546,
+- 546, 492, 547, 547, 547, 548, 548, 548, 549, 549,
+- 549, 980, 540, 550, 550, 550, 541, 543, 551, 551,
+- 551, 552, 552, 552, 553, 553, 553, 979, 968, 544,
+- 545, 967, 546, 966, 965, 547, 554, 554, 554, 964,
+- 963, 553, 549, 962, 555, 555, 555, 556, 556, 556,
+- 557, 557, 557, 550, 961, 960, 557, 548, 558, 558,
+- 558, 959, 958, 551, 559, 559, 559, 552, 555, 560,
+- 560, 560, 558, 556, 957, 956, 560, 955, 559, 561,
+- 561, 561, 562, 562, 562, 563, 563, 563, 564, 564,
+-
+- 564, 565, 565, 565, 954, 564, 561, 566, 566, 566,
+- 563, 567, 567, 567, 568, 568, 568, 953, 562, 951,
+- 565, 950, 562, 569, 569, 569, 570, 570, 570, 571,
+- 571, 571, 566, 572, 572, 572, 573, 573, 573, 574,
+- 574, 574, 567, 575, 575, 575, 576, 576, 576, 577,
+- 577, 577, 578, 578, 578, 630, 630, 630, 949, 569,
+- 631, 631, 631, 947, 946, 568, 632, 632, 632, 945,
+- 944, 572, 634, 634, 634, 570, 943, 574, 633, 633,
+- 633, 942, 941, 576, 635, 635, 635, 636, 636, 636,
+- 637, 637, 637, 638, 638, 638, 639, 639, 639, 632,
+-
+- 640, 640, 640, 940, 939, 630, 938, 937, 631, 936,
+- 634, 633, 641, 641, 641, 642, 642, 642, 935, 643,
+- 643, 643, 635, 644, 644, 644, 645, 645, 645, 934,
+- 933, 636, 918, 917, 637, 916, 915, 645, 914, 913,
+- 644, 639, 638, 643, 646, 646, 646, 647, 647, 647,
+- 912, 911, 640, 910, 641, 647, 648, 648, 648, 909,
+- 907, 646, 649, 649, 649, 650, 650, 650, 651, 651,
+- 651, 652, 652, 652, 653, 653, 653, 649, 906, 650,
+- 648, 654, 654, 654, 653, 655, 655, 655, 902, 651,
+- 901, 655, 652, 656, 656, 656, 654, 657, 657, 657,
+-
+- 658, 658, 658, 659, 659, 659, 900, 657, 660, 660,
+- 660, 661, 661, 661, 662, 662, 662, 663, 663, 663,
+- 714, 714, 714, 715, 715, 715, 656, 716, 716, 716,
+- 717, 717, 717, 718, 718, 718, 719, 719, 719, 899,
+- 898, 659, 720, 720, 720, 721, 721, 721, 661, 722,
+- 722, 722, 897, 896, 716, 723, 723, 723, 714, 895,
+- 894, 715, 893, 892, 717, 724, 724, 724, 725, 725,
+- 725, 726, 726, 726, 727, 727, 727, 728, 728, 728,
+- 729, 729, 729, 721, 730, 730, 730, 722, 728, 731,
+- 731, 731, 891, 890, 727, 889, 888, 729, 732, 732,
+-
+- 732, 887, 886, 723, 733, 733, 733, 885, 732, 730,
+- 724, 884, 733, 883, 731, 734, 734, 734, 882, 725,
+- 735, 735, 735, 736, 736, 736, 737, 737, 737, 881,
+- 735, 736, 734, 738, 738, 738, 739, 739, 739, 740,
+- 740, 740, 880, 879, 739, 739, 741, 741, 741, 857,
+- 738, 742, 742, 742, 790, 790, 790, 855, 854, 737,
+- 791, 791, 791, 792, 792, 792, 793, 793, 793, 794,
+- 794, 794, 740, 795, 795, 795, 796, 796, 796, 797,
+- 797, 797, 798, 798, 798, 853, 851, 790, 799, 799,
+- 799, 800, 800, 800, 801, 801, 801, 802, 802, 802,
+-
+- 801, 800, 850, 794, 849, 792, 803, 803, 803, 791,
+- 804, 804, 804, 799, 848, 793, 846, 797, 804, 845,
+- 798, 805, 805, 805, 806, 806, 806, 807, 807, 807,
+- 844, 805, 843, 842, 806, 808, 808, 808, 809, 809,
+- 809, 810, 810, 810, 841, 840, 809, 809, 811, 811,
+- 811, 812, 812, 812, 813, 813, 813, 858, 858, 858,
+- 808, 859, 859, 859, 839, 812, 838, 837, 811, 860,
+- 860, 860, 861, 861, 861, 836, 862, 862, 862, 813,
+- 863, 863, 863, 864, 864, 864, 865, 865, 865, 835,
+- 834, 866, 866, 866, 859, 867, 867, 867, 868, 868,
+-
+- 868, 833, 867, 832, 829, 858, 869, 869, 869, 870,
+- 870, 870, 861, 862, 866, 871, 871, 871, 860, 828,
+- 864, 827, 826, 868, 824, 823, 863, 872, 872, 872,
+- 873, 873, 873, 874, 874, 874, 875, 875, 875, 876,
+- 876, 876, 822, 821, 873, 820, 819, 872, 919, 919,
+- 919, 818, 874, 920, 920, 920, 921, 921, 921, 817,
+- 875, 922, 922, 922, 923, 923, 923, 924, 924, 924,
+- 925, 925, 925, 926, 926, 926, 927, 927, 927, 928,
+- 928, 928, 929, 929, 929, 930, 930, 930, 931, 931,
+- 931, 816, 815, 927, 814, 920, 932, 932, 932, 789,
+-
+- 788, 929, 787, 925, 919, 785, 923, 921, 784, 930,
+- 969, 969, 969, 922, 970, 970, 970, 781, 924, 971,
+- 971, 971, 972, 972, 972, 779, 973, 973, 973, 974,
+- 974, 974, 975, 975, 975, 976, 976, 976, 977, 977,
+- 977, 778, 777, 969, 776, 976, 978, 978, 978, 1013,
+- 1013, 1013, 1014, 1014, 1014, 1015, 1015, 1015, 775, 774,
+- 970, 773, 974, 1016, 1016, 1016, 975, 972, 1017, 1017,
+- 1017, 971, 973, 1018, 1018, 1018, 1019, 1019, 1019, 1020,
+- 1020, 1020, 1053, 1053, 1053, 772, 771, 1013, 770, 1015,
+- 1054, 1054, 1054, 769, 1014, 1055, 1055, 1055, 1056, 1056,
+-
+- 1056, 1016, 1057, 1057, 1057, 1059, 1059, 1059, 1017, 1058,
+- 1058, 1058, 1089, 1089, 1089, 1090, 1090, 1090, 767, 1018,
+- 1091, 1091, 1091, 766, 1019, 1092, 1092, 1092, 765, 764,
+- 1091, 763, 1093, 1093, 1093, 762, 760, 1053, 759, 1055,
+- 758, 1054, 757, 1058, 1056, 756, 755, 1059, 1089, 1094,
+- 1094, 1094, 1122, 1122, 1122, 1123, 1123, 1123, 1124, 1124,
+- 1124, 1125, 1125, 1125, 1147, 1147, 1147, 1148, 1148, 1148,
+- 1149, 1149, 1149, 1150, 1150, 1150, 1092, 1093, 1170, 1170,
+- 1170, 1171, 1171, 1171, 1172, 1172, 1172, 1191, 1191, 1191,
+- 1122, 1190, 1190, 1190, 1205, 1205, 1205, 754, 753, 1125,
+-
+- 1206, 1206, 1206, 752, 1123, 1214, 1214, 1214, 1124, 1215,
+- 1215, 1215, 1147, 1206, 751, 750, 1148, 1221, 1221, 1221,
+- 1222, 1222, 1222, 1150, 1226, 1226, 1226, 749, 1171, 1170,
+- 1228, 1228, 1228, 1190, 748, 747, 1191, 1230, 1230, 1230,
+- 746, 1205, 745, 1215, 1232, 1232, 1232, 1233, 1233, 1233,
+- 744, 1214, 743, 712, 711, 710, 709, 708, 707, 705,
+- 704, 1226, 703, 702, 701, 700, 1222, 699, 698, 697,
+- 696, 695, 694, 693, 1228, 1230, 692, 690, 689, 687,
+- 685, 684, 683, 680, 679, 678, 674, 673, 671, 670,
+- 669, 668, 667, 1232, 1235, 1235, 1235, 1235, 1236, 1236,
+-
+- 1236, 1236, 1237, 1237, 1237, 1237, 1238, 1238, 1238, 1238,
+- 1239, 1239, 1240, 1240, 1241, 666, 1241, 1241, 665, 664,
+- 629, 628, 627, 626, 625, 624, 623, 622, 621, 620,
+- 619, 618, 617, 616, 614, 613, 612, 610, 609, 608,
+- 607, 606, 605, 604, 602, 601, 600, 599, 598, 597,
+- 596, 595, 594, 593, 592, 591, 590, 589, 588, 587,
+- 586, 585, 584, 583, 582, 581, 580, 579, 538, 537,
+- 536, 534, 533, 532, 531, 530, 529, 528, 527, 526,
+- 525, 524, 523, 522, 521, 520, 519, 518, 517, 516,
+- 515, 514, 513, 512, 511, 510, 509, 508, 507, 506,
+-
+- 505, 504, 503, 502, 501, 500, 499, 498, 497, 496,
+- 494, 493, 450, 447, 446, 445, 444, 443, 442, 441,
+- 440, 439, 438, 437, 436, 435, 434, 433, 432, 431,
+- 430, 429, 428, 427, 426, 425, 424, 423, 422, 421,
+- 420, 419, 418, 417, 416, 415, 414, 413, 412, 411,
+- 410, 409, 408, 407, 354, 353, 352, 351, 350, 349,
+- 348, 346, 345, 344, 343, 342, 341, 340, 339, 338,
+- 337, 336, 335, 334, 333, 332, 331, 330, 329, 328,
+- 327, 326, 325, 324, 322, 321, 320, 318, 317, 316,
+- 315, 314, 313, 275, 254, 253, 252, 251, 250, 249,
+-
+- 248, 246, 244, 243, 242, 241, 239, 237, 235, 234,
+- 232, 231, 229, 228, 227, 225, 223, 222, 221, 176,
+- 174, 173, 149, 148, 146, 145, 143, 142, 140, 138,
+- 136, 130, 81, 77, 74, 71, 51, 48, 42, 22,
+- 21, 11, 9, 3, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
++ 18, 18, 18, 18, 82, 82, 24, 24, 24, 25,
++ 25, 25, 7, 26, 26, 26, 44, 15, 48, 135,
++ 44, 7, 48, 7, 7, 1112, 7, 7, 135, 7,
++ 7, 7, 24, 7, 7, 7, 7, 7, 7, 7,
++ 7, 20, 147, 20, 20, 1121, 26, 27, 27, 27,
++ 20, 20, 28, 28, 28, 77, 147, 20, 30, 30,
++ 30, 27, 29, 29, 29, 25, 20, 31, 31, 31,
++ 32, 32, 32, 33, 33, 33, 188, 188, 20, 20,
++ 34, 34, 34, 84, 20, 84, 35, 35, 35, 36,
++ 36, 36, 20, 1122, 77, 20, 37, 37, 37, 28,
++
++ 38, 38, 38, 29, 32, 30, 29, 72, 87, 29,
++ 87, 72, 32, 31, 32, 39, 39, 39, 134, 33,
++ 35, 238, 31, 40, 40, 40, 1123, 34, 41, 41,
++ 41, 42, 42, 42, 54, 54, 54, 36, 238, 75,
++ 136, 38, 38, 75, 38, 37, 80, 134, 37, 136,
++ 80, 38, 458, 39, 181, 229, 39, 55, 55, 55,
++ 56, 56, 56, 181, 39, 458, 229, 42, 54, 40,
++ 41, 39, 58, 58, 58, 41, 45, 45, 45, 45,
++ 45, 45, 45, 45, 45, 130, 1124, 45, 45, 130,
++ 45, 45, 1125, 45, 45, 45, 45, 45, 57, 57,
++
++ 57, 61, 61, 61, 56, 132, 55, 59, 59, 59,
++ 58, 1127, 60, 60, 60, 62, 62, 62, 138, 58,
++ 132, 63, 63, 63, 64, 64, 64, 65, 65, 65,
++ 875, 235, 57, 66, 66, 66, 132, 875, 61, 57,
++ 137, 59, 57, 235, 137, 57, 235, 61, 138, 59,
++ 60, 59, 150, 62, 59, 63, 150, 245, 64, 67,
++ 67, 67, 245, 63, 68, 68, 68, 1128, 63, 69,
++ 69, 69, 85, 85, 85, 65, 65, 70, 70, 70,
++ 142, 183, 66, 183, 142, 66, 71, 71, 71, 66,
++ 91, 91, 176, 142, 91, 91, 176, 67, 96, 96,
++
++ 96, 185, 68, 185, 457, 68, 68, 69, 68, 457,
++ 69, 69, 90, 90, 728, 68, 728, 179, 69, 90,
++ 90, 179, 546, 70, 71, 69, 546, 70, 71, 97,
++ 97, 97, 86, 71, 86, 86, 86, 1129, 140, 98,
++ 98, 98, 86, 86, 140, 140, 97, 90, 90, 99,
++ 99, 99, 1130, 100, 100, 100, 101, 101, 101, 102,
++ 102, 102, 103, 103, 103, 104, 104, 104, 844, 844,
++ 86, 86, 98, 99, 100, 105, 105, 105, 106, 106,
++ 106, 107, 107, 107, 108, 108, 108, 109, 109, 109,
++ 110, 110, 110, 102, 1131, 1134, 103, 111, 111, 111,
++
++ 112, 112, 112, 101, 113, 113, 113, 114, 114, 114,
++ 1135, 104, 115, 115, 115, 116, 116, 116, 117, 117,
++ 117, 118, 118, 118, 119, 119, 119, 105, 108, 107,
++ 106, 1136, 1137, 109, 120, 120, 120, 110, 252, 121,
++ 121, 121, 122, 122, 122, 114, 112, 252, 111, 113,
++ 116, 123, 123, 123, 115, 624, 124, 124, 124, 115,
++ 624, 118, 125, 125, 125, 117, 231, 231, 120, 231,
++ 1138, 119, 126, 126, 126, 127, 127, 127, 118, 128,
++ 128, 128, 1139, 120, 121, 144, 326, 144, 690, 326,
++ 144, 122, 144, 154, 154, 154, 155, 155, 155, 156,
++
++ 156, 156, 690, 123, 124, 157, 157, 157, 158, 158,
++ 158, 1141, 125, 159, 159, 159, 1142, 127, 1143, 1145,
++ 128, 126, 160, 160, 160, 161, 161, 161, 162, 162,
++ 162, 163, 163, 163, 164, 164, 164, 154, 165, 165,
++ 165, 1146, 1152, 156, 166, 166, 166, 158, 155, 157,
++ 167, 167, 167, 168, 168, 168, 169, 169, 169, 170,
++ 170, 170, 159, 171, 171, 171, 172, 172, 172, 1153,
++ 164, 1154, 1155, 160, 173, 173, 173, 163, 174, 174,
++ 174, 1156, 166, 165, 162, 1157, 168, 167, 175, 175,
++ 175, 182, 182, 354, 1158, 166, 1159, 354, 182, 182,
++
++ 354, 169, 1160, 171, 184, 184, 1161, 184, 184, 184,
++ 170, 172, 1163, 189, 189, 1164, 174, 187, 187, 1161,
++ 171, 189, 173, 1166, 187, 187, 182, 182, 191, 191,
++ 191, 192, 192, 192, 193, 193, 193, 175, 194, 194,
++ 194, 195, 195, 195, 1168, 191, 1169, 1170, 193, 189,
++ 1171, 193, 187, 187, 196, 196, 196, 197, 197, 197,
++ 198, 198, 198, 199, 199, 199, 200, 200, 200, 1172,
++ 1177, 194, 201, 201, 201, 202, 202, 202, 203, 203,
++ 203, 192, 205, 205, 205, 195, 204, 204, 204, 206,
++ 206, 206, 207, 207, 207, 208, 208, 208, 199, 209,
++
++ 209, 209, 1178, 196, 210, 210, 210, 197, 1180, 1181,
++ 198, 200, 203, 211, 211, 211, 201, 212, 212, 212,
++ 204, 213, 213, 213, 1182, 202, 214, 214, 214, 206,
++ 207, 215, 215, 215, 216, 216, 216, 217, 217, 217,
++ 218, 218, 218, 1183, 208, 219, 219, 219, 220, 220,
++ 220, 1184, 209, 1186, 1187, 210, 1188, 211, 221, 221,
++ 221, 222, 222, 222, 214, 1189, 212, 213, 223, 223,
++ 223, 224, 224, 224, 1190, 225, 225, 225, 260, 260,
++ 260, 243, 215, 1191, 1192, 216, 220, 243, 218, 217,
++ 1193, 1194, 219, 1195, 1199, 243, 221, 261, 261, 261,
++
++ 262, 262, 262, 222, 263, 263, 263, 1200, 224, 225,
++ 264, 264, 264, 265, 265, 265, 266, 266, 266, 223,
++ 267, 267, 267, 268, 268, 268, 1201, 1202, 260, 269,
++ 269, 269, 1204, 262, 1205, 261, 1206, 270, 270, 270,
++ 271, 271, 271, 1207, 264, 272, 272, 272, 263, 273,
++ 273, 273, 1209, 274, 274, 274, 1211, 1212, 265, 275,
++ 275, 275, 1213, 268, 276, 276, 276, 269, 277, 277,
++ 277, 278, 278, 278, 267, 270, 1215, 778, 279, 279,
++ 279, 778, 271, 272, 280, 280, 280, 282, 1220, 282,
++ 282, 282, 283, 778, 283, 283, 283, 1223, 1224, 273,
++
++ 274, 1225, 1226, 283, 1227, 1228, 277, 1234, 1235, 278,
++ 276, 279, 284, 284, 284, 285, 285, 285, 286, 286,
++ 286, 287, 287, 287, 1236, 1238, 288, 288, 288, 1239,
++ 286, 283, 288, 1243, 280, 289, 289, 289, 290, 290,
++ 290, 287, 291, 291, 291, 1244, 1245, 288, 288, 288,
++ 288, 292, 292, 292, 293, 293, 293, 294, 294, 294,
++ 1250, 295, 295, 295, 1253, 285, 296, 296, 296, 297,
++ 297, 297, 298, 298, 298, 299, 299, 299, 300, 300,
++ 300, 301, 301, 301, 302, 302, 302, 303, 303, 303,
++ 1255, 1268, 291, 304, 304, 304, 1111, 1110, 293, 305,
++
++ 305, 305, 292, 295, 296, 306, 306, 306, 307, 307,
++ 307, 1109, 1107, 297, 1106, 301, 1105, 1104, 302, 308,
++ 308, 308, 1103, 298, 1101, 303, 1100, 1099, 300, 309,
++ 309, 309, 310, 310, 310, 304, 311, 311, 311, 306,
++ 1098, 307, 1097, 306, 312, 312, 312, 313, 313, 313,
++ 305, 314, 314, 314, 315, 315, 315, 316, 316, 316,
++ 317, 317, 317, 318, 318, 318, 1096, 1095, 310, 308,
++ 1094, 309, 363, 363, 363, 364, 364, 364, 692, 692,
++ 311, 365, 365, 365, 366, 366, 366, 692, 314, 367,
++ 367, 367, 1093, 692, 315, 368, 368, 368, 312, 369,
++
++ 369, 369, 370, 370, 370, 371, 371, 371, 1092, 316,
++ 363, 1091, 318, 372, 372, 372, 1090, 366, 373, 373,
++ 373, 374, 374, 374, 375, 375, 375, 1089, 1088, 368,
++ 365, 376, 376, 376, 377, 377, 377, 378, 378, 378,
++ 1087, 367, 379, 379, 379, 1086, 369, 380, 380, 380,
++ 1085, 371, 1084, 1075, 370, 381, 381, 381, 383, 383,
++ 383, 1074, 1073, 372, 1072, 373, 1071, 1068, 377, 1067,
++ 374, 1066, 377, 1065, 375, 384, 384, 384, 1064, 379,
++ 1062, 380, 1061, 1060, 376, 1059, 1058, 378, 385, 385,
++ 385, 380, 1057, 1056, 384, 1055, 1054, 381, 1053, 1052,
++
++ 383, 386, 386, 386, 387, 387, 387, 388, 388, 388,
++ 389, 389, 389, 385, 390, 390, 390, 391, 391, 391,
++ 386, 392, 392, 392, 393, 393, 393, 388, 390, 1051,
++ 1050, 390, 1049, 1048, 387, 394, 394, 394, 390, 389,
++ 395, 395, 395, 396, 396, 396, 397, 397, 397, 398,
++ 398, 398, 399, 399, 399, 400, 400, 400, 401, 401,
++ 401, 1047, 393, 402, 402, 402, 403, 403, 403, 1046,
++ 1045, 394, 404, 404, 404, 405, 405, 405, 406, 406,
++ 406, 407, 407, 407, 408, 408, 408, 409, 409, 409,
++ 410, 410, 410, 1044, 401, 1034, 1033, 398, 1032, 402,
++
++ 411, 411, 411, 399, 1031, 1029, 400, 412, 412, 412,
++ 1028, 1027, 405, 413, 413, 413, 404, 414, 414, 414,
++ 408, 415, 415, 415, 410, 460, 460, 460, 1026, 406,
++ 461, 461, 461, 462, 462, 462, 1025, 1024, 409, 1023,
++ 463, 463, 463, 1021, 1020, 412, 464, 464, 464, 1019,
++ 1018, 414, 1017, 1016, 415, 465, 465, 465, 1015, 413,
++ 466, 466, 466, 1014, 461, 467, 467, 467, 468, 468,
++ 468, 469, 469, 469, 470, 470, 470, 1013, 1012, 471,
++ 471, 471, 1011, 462, 463, 472, 472, 472, 473, 473,
++ 473, 474, 474, 474, 466, 1010, 1009, 464, 1008, 475,
++
++ 475, 475, 1007, 1006, 465, 476, 476, 476, 477, 477,
++ 477, 479, 479, 479, 468, 467, 470, 471, 478, 478,
++ 478, 480, 480, 480, 478, 481, 481, 481, 1005, 472,
++ 1004, 1003, 481, 481, 481, 479, 472, 1002, 1001, 473,
++ 474, 475, 481, 989, 988, 481, 482, 482, 482, 481,
++ 481, 480, 476, 482, 483, 483, 483, 484, 484, 484,
++ 485, 485, 485, 987, 986, 477, 487, 487, 487, 484,
++ 486, 486, 486, 985, 483, 488, 488, 488, 984, 983,
++ 485, 489, 489, 489, 486, 490, 490, 490, 491, 491,
++ 491, 492, 492, 492, 493, 493, 493, 494, 494, 494,
++
++ 495, 495, 495, 496, 496, 496, 497, 497, 497, 498,
++ 498, 498, 499, 499, 499, 489, 982, 488, 500, 500,
++ 500, 501, 501, 501, 506, 506, 491, 502, 502, 502,
++ 981, 980, 490, 503, 503, 503, 550, 550, 550, 979,
++ 506, 506, 492, 978, 977, 506, 976, 494, 551, 551,
++ 551, 552, 552, 552, 553, 553, 553, 500, 975, 501,
++ 554, 554, 554, 499, 555, 555, 555, 556, 556, 556,
++ 974, 502, 557, 557, 557, 558, 558, 558, 550, 559,
++ 559, 559, 972, 971, 503, 560, 560, 560, 561, 561,
++ 561, 562, 562, 562, 563, 563, 563, 554, 970, 968,
++
++ 551, 967, 552, 966, 555, 556, 557, 564, 564, 564,
++ 965, 964, 559, 565, 565, 565, 566, 566, 566, 567,
++ 567, 567, 561, 568, 568, 568, 569, 569, 569, 963,
++ 962, 562, 558, 566, 570, 570, 570, 560, 961, 563,
++ 570, 571, 571, 571, 572, 572, 572, 568, 574, 574,
++ 574, 565, 569, 564, 960, 571, 959, 958, 572, 573,
++ 573, 573, 575, 575, 575, 574, 573, 576, 576, 576,
++ 577, 577, 577, 957, 578, 578, 578, 577, 579, 579,
++ 579, 956, 576, 580, 580, 580, 955, 954, 575, 581,
++ 581, 581, 575, 578, 582, 582, 582, 583, 583, 583,
++
++ 584, 584, 584, 579, 585, 585, 585, 586, 586, 586,
++ 587, 587, 587, 938, 580, 588, 588, 588, 589, 589,
++ 589, 590, 590, 590, 591, 591, 591, 643, 643, 643,
++ 582, 644, 644, 644, 645, 645, 645, 646, 646, 646,
++ 581, 937, 585, 647, 647, 647, 583, 936, 587, 648,
++ 648, 648, 649, 649, 649, 589, 650, 650, 650, 651,
++ 651, 651, 652, 652, 652, 935, 934, 645, 933, 932,
++ 646, 653, 653, 653, 654, 654, 654, 643, 931, 644,
++ 930, 647, 655, 655, 655, 929, 927, 648, 656, 656,
++ 656, 658, 658, 658, 650, 926, 649, 657, 657, 657,
++
++ 659, 659, 659, 651, 661, 661, 661, 660, 660, 660,
++ 922, 652, 662, 662, 662, 658, 653, 659, 660, 921,
++ 662, 661, 920, 919, 655, 918, 654, 663, 663, 663,
++ 657, 664, 664, 664, 665, 665, 665, 666, 666, 666,
++ 667, 667, 667, 668, 668, 668, 664, 917, 665, 916,
++ 915, 663, 914, 668, 669, 669, 669, 913, 666, 912,
++ 911, 667, 670, 670, 670, 671, 671, 671, 670, 669,
++ 672, 672, 672, 673, 673, 673, 674, 674, 674, 910,
++ 672, 675, 675, 675, 676, 676, 676, 677, 677, 677,
++ 678, 678, 678, 729, 729, 729, 909, 908, 671, 730,
++
++ 730, 730, 731, 731, 731, 732, 732, 732, 733, 733,
++ 733, 734, 734, 734, 674, 735, 735, 735, 736, 736,
++ 736, 676, 737, 737, 737, 738, 738, 738, 907, 731,
++ 906, 729, 739, 739, 739, 905, 904, 730, 903, 732,
++ 740, 740, 740, 741, 741, 741, 742, 742, 742, 902,
++ 901, 736, 743, 743, 743, 744, 744, 744, 900, 899,
++ 737, 876, 874, 738, 873, 745, 745, 745, 872, 746,
++ 746, 746, 758, 758, 758, 744, 745, 747, 747, 747,
++ 739, 748, 748, 748, 870, 740, 746, 869, 749, 749,
++ 749, 750, 750, 750, 741, 868, 867, 742, 749, 750,
++
++ 865, 864, 747, 751, 751, 751, 748, 752, 752, 752,
++ 753, 753, 753, 754, 754, 754, 863, 752, 753, 862,
++ 751, 755, 755, 755, 756, 756, 756, 757, 757, 757,
++ 861, 860, 756, 756, 759, 759, 759, 859, 755, 807,
++ 807, 807, 808, 808, 808, 858, 754, 809, 809, 809,
++ 810, 810, 810, 811, 811, 811, 812, 812, 812, 857,
++ 757, 813, 813, 813, 814, 814, 814, 815, 815, 815,
++ 856, 855, 807, 816, 816, 816, 817, 817, 817, 854,
++ 853, 818, 818, 818, 819, 819, 819, 852, 851, 809,
++ 812, 808, 848, 847, 819, 820, 820, 820, 846, 810,
++
++ 845, 820, 843, 842, 811, 815, 818, 821, 821, 821,
++ 841, 816, 822, 822, 822, 823, 823, 823, 824, 824,
++ 824, 840, 839, 823, 825, 825, 825, 838, 824, 826,
++ 826, 826, 837, 836, 825, 827, 827, 827, 828, 828,
++ 828, 829, 829, 829, 835, 834, 828, 828, 830, 830,
++ 830, 831, 831, 831, 832, 832, 832, 877, 877, 877,
++ 827, 878, 878, 878, 833, 831, 806, 805, 830, 879,
++ 879, 879, 880, 880, 880, 881, 881, 881, 804, 832,
++ 882, 882, 882, 883, 883, 883, 884, 884, 884, 885,
++ 885, 885, 802, 801, 878, 798, 886, 886, 886, 887,
++
++ 887, 887, 888, 888, 888, 877, 887, 796, 881, 889,
++ 889, 889, 880, 890, 890, 890, 795, 882, 879, 886,
++ 891, 891, 891, 884, 892, 892, 892, 888, 794, 883,
++ 793, 893, 893, 893, 894, 894, 894, 895, 895, 895,
++ 896, 896, 896, 792, 892, 893, 939, 939, 939, 940,
++ 940, 940, 791, 894, 941, 941, 941, 942, 942, 942,
++ 790, 895, 943, 943, 943, 944, 944, 944, 945, 945,
++ 945, 946, 946, 946, 947, 947, 947, 948, 948, 948,
++ 949, 949, 949, 789, 950, 950, 950, 951, 951, 951,
++ 788, 940, 787, 786, 948, 952, 952, 952, 943, 953,
++
++ 953, 953, 939, 950, 946, 941, 784, 944, 783, 942,
++ 782, 951, 990, 990, 990, 991, 991, 991, 781, 945,
++ 992, 992, 992, 993, 993, 993, 994, 994, 994, 995,
++ 995, 995, 996, 996, 996, 997, 997, 997, 998, 998,
++ 998, 999, 999, 999, 780, 990, 779, 777, 998, 1000,
++ 1000, 1000, 1035, 1035, 1035, 1036, 1036, 1036, 1037, 1037,
++ 1037, 991, 1038, 1038, 1038, 996, 776, 775, 993, 997,
++ 994, 774, 992, 773, 772, 995, 1039, 1039, 1039, 1040,
++ 1040, 1040, 1041, 1041, 1041, 1042, 1042, 1042, 771, 770,
++ 1035, 769, 1037, 1043, 1043, 1043, 768, 1036, 767, 766,
++
++ 1038, 1076, 1076, 1076, 1077, 1077, 1077, 1078, 1078, 1078,
++ 765, 1079, 1079, 1079, 1039, 1080, 1080, 1080, 764, 1040,
++ 1081, 1081, 1081, 763, 1082, 1082, 1082, 762, 1041, 1083,
++ 1083, 1083, 761, 1042, 1113, 1113, 1113, 1114, 1114, 1114,
++ 1115, 1115, 1115, 1116, 1116, 1116, 1117, 1117, 1117, 1080,
++ 1115, 1078, 1118, 1118, 1118, 1077, 1076, 1079, 1082, 1119,
++ 1119, 1119, 1147, 1147, 1147, 1148, 1148, 1148, 760, 727,
++ 1113, 1083, 1149, 1149, 1149, 1150, 1150, 1150, 1151, 1151,
++ 1151, 1173, 1173, 1173, 1174, 1174, 1174, 1175, 1175, 1175,
++ 726, 725, 1117, 724, 1116, 723, 722, 1118, 720, 719,
++
++ 1147, 1176, 1176, 1176, 1196, 1196, 1196, 1197, 1197, 1197,
++ 1198, 1198, 1198, 718, 1148, 717, 1151, 1216, 1216, 1216,
++ 716, 715, 1149, 1217, 1217, 1217, 1231, 1231, 1231, 1173,
++ 1232, 1232, 1232, 1174, 1240, 1240, 1240, 1241, 1241, 1241,
++ 1247, 1247, 1247, 1232, 1248, 1248, 1248, 1252, 1252, 1252,
++ 714, 1176, 713, 712, 1197, 1196, 1254, 1254, 1254, 1216,
++ 1256, 1256, 1256, 1258, 1258, 1258, 1259, 1259, 1259, 711,
++ 710, 1241, 1217, 1231, 709, 708, 707, 705, 704, 702,
++ 1240, 700, 699, 698, 1252, 695, 694, 693, 689, 688,
++ 1248, 686, 685, 684, 683, 682, 681, 680, 1256, 679,
++
++ 1254, 642, 641, 640, 639, 638, 637, 636, 635, 634,
++ 633, 632, 1258, 1261, 1261, 1261, 1261, 1262, 1262, 1262,
++ 1262, 1263, 1263, 1263, 1263, 1264, 1264, 1264, 1264, 1265,
++ 1265, 1266, 1266, 1267, 631, 1267, 1267, 630, 629, 627,
++ 626, 625, 623, 622, 621, 620, 619, 618, 617, 615,
++ 614, 613, 612, 611, 610, 609, 608, 607, 606, 605,
++ 604, 603, 602, 601, 600, 599, 598, 597, 596, 595,
++ 594, 593, 592, 549, 548, 547, 545, 544, 543, 542,
++ 541, 540, 539, 538, 537, 536, 535, 534, 533, 532,
++ 531, 530, 529, 528, 527, 526, 525, 524, 523, 522,
++
++ 521, 520, 519, 518, 517, 516, 515, 514, 513, 512,
++ 511, 510, 509, 508, 507, 505, 504, 459, 456, 455,
++ 454, 453, 452, 451, 450, 449, 448, 447, 446, 445,
++ 444, 443, 442, 441, 440, 439, 438, 437, 436, 435,
++ 434, 433, 432, 431, 430, 429, 428, 427, 426, 425,
++ 424, 423, 422, 421, 420, 419, 418, 417, 416, 361,
++ 360, 359, 358, 357, 356, 355, 353, 352, 351, 350,
++ 349, 348, 347, 346, 345, 344, 343, 342, 341, 340,
++ 339, 338, 337, 336, 335, 334, 333, 332, 331, 329,
++ 328, 327, 325, 324, 323, 322, 321, 320, 281, 259,
++
++ 258, 257, 256, 255, 254, 253, 251, 249, 248, 247,
++ 246, 244, 242, 240, 239, 237, 236, 234, 233, 232,
++ 230, 228, 227, 226, 180, 178, 177, 152, 151, 149,
++ 148, 146, 145, 143, 141, 139, 133, 83, 79, 76,
++ 73, 52, 49, 43, 22, 21, 11, 9, 3, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
+
+- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+- 1234, 1234, 1234, 1234, 1234
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
++ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260
+ } ;
+
+ static yy_state_type yy_last_accepting_state;
+@@ -1499,7 +1518,7 @@ int yy_flex_debug = 0;
+ #define YY_MORE_ADJ 0
+ #define YY_RESTORE_YY_MORE_OFFSET
+ char *yytext;
+-#line 1 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 1 "lexer.l"
+ /*
+ * The SIP lexer.
+ *
+@@ -1517,7 +1536,7 @@ char *yytext;
+ * SIP is supplied WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+-#line 20 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 20 "lexer.l"
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -1563,11 +1582,9 @@ static int parenDepth = 0;
+
+ static FILE *openFile(const char *);
+ static void fatallex(char *);
++#line 1586 "../lexer.c"
+
+-
+-
+-
+-#line 1571 "sip-4.19.23/sipgen/lexer.c"
++#line 1588 "../lexer.c"
+
+ #define INITIAL 0
+ #define code 1
+@@ -1587,36 +1604,36 @@ static void fatallex(char *);
+ #define YY_EXTRA_TYPE void *
+ #endif
+
+-static int yy_init_globals (void );
++static int yy_init_globals ( void );
+
+ /* Accessor methods to globals.
+ These are made visible to non-reentrant scanners for convenience. */
+
+-int yylex_destroy (void );
++int yylex_destroy ( void );
+
+-int yyget_debug (void );
++int yyget_debug ( void );
+
+-void yyset_debug (int debug_flag );
++void yyset_debug ( int debug_flag );
+
+-YY_EXTRA_TYPE yyget_extra (void );
++YY_EXTRA_TYPE yyget_extra ( void );
+
+-void yyset_extra (YY_EXTRA_TYPE user_defined );
++void yyset_extra ( YY_EXTRA_TYPE user_defined );
+
+-FILE *yyget_in (void );
++FILE *yyget_in ( void );
+
+-void yyset_in (FILE * in_str );
++void yyset_in ( FILE * _in_str );
+
+-FILE *yyget_out (void );
++FILE *yyget_out ( void );
+
+-void yyset_out (FILE * out_str );
++void yyset_out ( FILE * _out_str );
+
+-yy_size_t yyget_leng (void );
++ int yyget_leng ( void );
+
+-char *yyget_text (void );
++char *yyget_text ( void );
+
+-int yyget_lineno (void );
++int yyget_lineno ( void );
+
+-void yyset_lineno (int line_number );
++void yyset_lineno ( int _line_number );
+
+ /* Macros after this point can all be overridden by user definitions in
+ * section 1.
+@@ -1624,28 +1641,31 @@ void yyset_lineno (int line_number );
+
+ #ifndef YY_SKIP_YYWRAP
+ #ifdef __cplusplus
+-extern "C" int yywrap (void );
++extern "C" int yywrap ( void );
+ #else
+-extern int yywrap (void );
++extern int yywrap ( void );
+ #endif
+ #endif
+
+- static void yyunput (int c,char *buf_ptr );
++#ifndef YY_NO_UNPUT
+
++ static void yyunput ( int c, char *buf_ptr );
++
++#endif
++
+ #ifndef yytext_ptr
+-static void yy_flex_strncpy (char *,yyconst char *,int );
++static void yy_flex_strncpy ( char *, const char *, int );
+ #endif
+
+ #ifdef YY_NEED_STRLEN
+-static int yy_flex_strlen (yyconst char * );
++static int yy_flex_strlen ( const char * );
+ #endif
+
+ #ifndef YY_NO_INPUT
+-
+ #ifdef __cplusplus
+-static int yyinput (void );
++static int yyinput ( void );
+ #else
+-static int input (void );
++static int input ( void );
+ #endif
+
+ #endif
+@@ -1654,15 +1674,20 @@ static int input (void );
+ static int yy_start_stack_depth = 0;
+ static int *yy_start_stack = NULL;
+
+- static void yy_push_state (int new_state );
++ static void yy_push_state ( int _new_state );
+
+- static void yy_pop_state (void );
++ static void yy_pop_state ( void );
+
+- static int yy_top_state (void );
++ static int yy_top_state ( void );
+
+ /* Amount of stuff to slurp up with each read. */
+ #ifndef YY_READ_BUF_SIZE
++#ifdef __ia64__
++/* On IA-64, the buffer size is 16k, not 8k */
++#define YY_READ_BUF_SIZE 16384
++#else
+ #define YY_READ_BUF_SIZE 8192
++#endif /* __ia64__ */
+ #endif
+
+ /* Copy whatever the last rule matched to the standard output. */
+@@ -1670,7 +1695,7 @@ static int input (void );
+ /* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+-#define ECHO fwrite( yytext, yyleng, 1, yyout )
++#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
+ #endif
+
+ /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
+@@ -1681,7 +1706,7 @@ static int input (void );
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
+ { \
+ int c = '*'; \
+- yy_size_t n; \
++ int n; \
+ for ( n = 0; n < max_size && \
+ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
+ buf[n] = (char) c; \
+@@ -1694,7 +1719,7 @@ static int input (void );
+ else \
+ { \
+ errno=0; \
+- while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
++ while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
+ { \
+ if( errno != EINTR) \
+ { \
+@@ -1749,7 +1774,7 @@ extern int yylex (void);
+
+ /* Code executed at the end of each rule. */
+ #ifndef YY_BREAK
+-#define YY_BREAK break;
++#define YY_BREAK /*LINTED*/break;
+ #endif
+
+ #define YY_RULE_SETUP \
+@@ -1762,15 +1787,10 @@ extern int yylex (void);
+ */
+ YY_DECL
+ {
+- register yy_state_type yy_current_state;
+- register char *yy_cp, *yy_bp;
+- register int yy_act;
++ yy_state_type yy_current_state;
++ char *yy_cp, *yy_bp;
++ int yy_act;
+
+-#line 74 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-
+-
+-#line 1773 "sip-4.19.23/sipgen/lexer.c"
+-
+ if ( !(yy_init) )
+ {
+ (yy_init) = 1;
+@@ -1791,13 +1811,19 @@ YY_DECL
+ if ( ! YY_CURRENT_BUFFER ) {
+ yyensure_buffer_stack ();
+ YY_CURRENT_BUFFER_LVALUE =
+- yy_create_buffer(yyin,YY_BUF_SIZE );
++ yy_create_buffer( yyin, YY_BUF_SIZE );
+ }
+
+- yy_load_buffer_state( );
++ yy_load_buffer_state( );
+ }
+
+- while ( 1 ) /* loops until end-of-file is reached */
++ {
++#line 74 "lexer.l"
++
++
++#line 1825 "../lexer.c"
++
++ while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
+ {
+ yy_cp = (yy_c_buf_p);
+
+@@ -1814,7 +1840,7 @@ YY_DECL
+ yy_match:
+ do
+ {
+- register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
++ YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
+ if ( yy_accept[yy_current_state] )
+ {
+ (yy_last_accepting_state) = yy_current_state;
+@@ -1823,13 +1849,13 @@ yy_match:
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+- if ( yy_current_state >= 1235 )
+- yy_c = yy_meta[(unsigned int) yy_c];
++ if ( yy_current_state >= 1261 )
++ yy_c = yy_meta[yy_c];
+ }
+- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++ yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
+ ++yy_cp;
+ }
+- while ( yy_base[yy_current_state] != 2845 );
++ while ( yy_base[yy_current_state] != 2950 );
+
+ yy_find_action:
+ yy_act = yy_accept[yy_current_state];
+@@ -1855,540 +1881,550 @@ do_action: /* This label is used only to
+
+ case 1:
+ YY_RULE_SETUP
+-#line 76 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 76 "lexer.l"
+ {BEGIN directive_start; return TK_API;}
+ YY_BREAK
+ case 2:
+ YY_RULE_SETUP
+-#line 77 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 77 "lexer.l"
+ {BEGIN directive_start; return TK_AUTOPYNAME;}
+ YY_BREAK
+ case 3:
+ YY_RULE_SETUP
+-#line 78 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 78 "lexer.l"
+ {return TK_CMODULE;}
+ YY_BREAK
+ case 4:
+ YY_RULE_SETUP
+-#line 79 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 79 "lexer.l"
+ {BEGIN directive_start; return TK_COMPOMODULE;}
+ YY_BREAK
+ case 5:
+ YY_RULE_SETUP
+-#line 80 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 80 "lexer.l"
+ {BEGIN directive_start; return TK_CONSMODULE;}
+ YY_BREAK
+ case 6:
+ YY_RULE_SETUP
+-#line 81 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 81 "lexer.l"
+ {BEGIN directive_start; return TK_DEFDOCSTRFMT;}
+ YY_BREAK
+ case 7:
+ YY_RULE_SETUP
+-#line 82 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 82 "lexer.l"
+ {BEGIN directive_start; return TK_DEFDOCSTRSIG;}
+ YY_BREAK
+ case 8:
+ YY_RULE_SETUP
+-#line 83 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 83 "lexer.l"
+ {BEGIN directive_start; return TK_DEFENCODING;}
+ YY_BREAK
+ case 9:
+ YY_RULE_SETUP
+-#line 84 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 84 "lexer.l"
+ {BEGIN directive_start; return TK_DEFMETATYPE;}
+ YY_BREAK
+ case 10:
+ YY_RULE_SETUP
+-#line 85 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 85 "lexer.l"
+ {BEGIN directive_start; return TK_DEFSUPERTYPE;}
+ YY_BREAK
+ case 11:
+ YY_RULE_SETUP
+-#line 86 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 86 "lexer.l"
+ {return TK_END;}
+ YY_BREAK
+ case 12:
+ YY_RULE_SETUP
+-#line 87 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 87 "lexer.l"
+ {BEGIN INITIAL; return TK_END;}
+ YY_BREAK
+ case 13:
+ YY_RULE_SETUP
+-#line 88 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 88 "lexer.l"
+ {return TK_EXCEPTION;}
+ YY_BREAK
+ case 14:
+ YY_RULE_SETUP
+-#line 89 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 89 "lexer.l"
+ {BEGIN directive_start; return TK_FEATURE;}
+ YY_BREAK
+ case 15:
+ YY_RULE_SETUP
+-#line 90 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 90 "lexer.l"
+ {BEGIN directive_start; return TK_HIDE_NS;}
+ YY_BREAK
+ case 16:
+ YY_RULE_SETUP
+-#line 91 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 91 "lexer.l"
+ {return TK_IF;}
+ YY_BREAK
+ case 17:
+ YY_RULE_SETUP
+-#line 92 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 92 "lexer.l"
+ {BEGIN directive_start; return TK_IMPORT;}
+ YY_BREAK
+ case 18:
+ YY_RULE_SETUP
+-#line 93 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 93 "lexer.l"
+ {BEGIN directive_start; return TK_INCLUDE;}
+ YY_BREAK
+ case 19:
+ YY_RULE_SETUP
+-#line 94 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 94 "lexer.l"
+ {BEGIN directive_start; return TK_LICENSE;}
+ YY_BREAK
+ case 20:
+ YY_RULE_SETUP
+-#line 95 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 95 "lexer.l"
+ {return TK_MAPPEDTYPE;}
+ YY_BREAK
+ case 21:
+ YY_RULE_SETUP
+-#line 96 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 96 "lexer.l"
+ {BEGIN directive_start; return TK_MODULE;}
+ YY_BREAK
+ case 22:
+ YY_RULE_SETUP
+-#line 97 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 97 "lexer.l"
+ {return TK_OPTINCLUDE;}
+ YY_BREAK
+ case 23:
+ YY_RULE_SETUP
+-#line 98 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 98 "lexer.l"
+ {return TK_PLATFORMS;}
+ YY_BREAK
+ case 24:
+ YY_RULE_SETUP
+-#line 99 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 99 "lexer.l"
+ {BEGIN directive_start; return TK_PLUGIN;}
+ YY_BREAK
+ case 25:
+ YY_RULE_SETUP
+-#line 100 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 100 "lexer.l"
+ {BEGIN directive_start; return TK_PROPERTY;}
+ YY_BREAK
+ case 26:
+ YY_RULE_SETUP
+-#line 101 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 101 "lexer.l"
+ {return TK_TIMELINE;}
+ YY_BREAK
+ case 27:
+ YY_RULE_SETUP
+-#line 103 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 103 "lexer.l"
+ {return TK_CLASS;}
+ YY_BREAK
+ case 28:
+ YY_RULE_SETUP
+-#line 104 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 104 "lexer.l"
+ {return TK_STRUCT;}
+ YY_BREAK
+ case 29:
+ YY_RULE_SETUP
+-#line 105 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 105 "lexer.l"
+ {return TK_PUBLIC;}
+ YY_BREAK
+ case 30:
+ YY_RULE_SETUP
+-#line 106 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 106 "lexer.l"
+ {return TK_PROTECTED;}
+ YY_BREAK
+ case 31:
+ YY_RULE_SETUP
+-#line 107 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 107 "lexer.l"
+ {return TK_PRIVATE;}
+ YY_BREAK
+ case 32:
+ YY_RULE_SETUP
+-#line 108 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 108 "lexer.l"
+ {return TK_SIGNALS;}
+ YY_BREAK
+ case 33:
+ YY_RULE_SETUP
+-#line 109 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 109 "lexer.l"
+ {return TK_SIGNALS;}
+ YY_BREAK
+ case 34:
+ YY_RULE_SETUP
+-#line 110 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 110 "lexer.l"
+ {return TK_SIGNAL_METHOD;}
+ YY_BREAK
+ case 35:
+ YY_RULE_SETUP
+-#line 111 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 111 "lexer.l"
+ {return TK_SLOTS;}
+ YY_BREAK
+ case 36:
+ YY_RULE_SETUP
+-#line 112 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 112 "lexer.l"
+ {return TK_SLOTS;}
+ YY_BREAK
+ case 37:
+ YY_RULE_SETUP
+-#line 113 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 113 "lexer.l"
+ {return TK_SLOT_METHOD;}
+ YY_BREAK
+ case 38:
+ YY_RULE_SETUP
+-#line 114 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 114 "lexer.l"
+ {return TK_CHAR;}
+ YY_BREAK
+ case 39:
+ YY_RULE_SETUP
+-#line 115 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 115 "lexer.l"
+ {return TK_WCHAR_T;}
+ YY_BREAK
+ case 40:
+ YY_RULE_SETUP
+-#line 116 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 116 "lexer.l"
+ {return TK_BOOL;}
+ YY_BREAK
+ case 41:
+ YY_RULE_SETUP
+-#line 117 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 117 "lexer.l"
+ {return TK_SHORT;}
+ YY_BREAK
+ case 42:
+ YY_RULE_SETUP
+-#line 118 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 118 "lexer.l"
+ {return TK_INT;}
+ YY_BREAK
+ case 43:
+ YY_RULE_SETUP
+-#line 119 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 119 "lexer.l"
+ {return TK_LONG;}
+ YY_BREAK
+ case 44:
+ YY_RULE_SETUP
+-#line 120 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 120 "lexer.l"
+ {return TK_FLOAT;}
+ YY_BREAK
+ case 45:
+ YY_RULE_SETUP
+-#line 121 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 121 "lexer.l"
+ {return TK_DOUBLE;}
+ YY_BREAK
+ case 46:
+ YY_RULE_SETUP
+-#line 122 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 122 "lexer.l"
+ {return TK_VOID;}
+ YY_BREAK
+ case 47:
+ YY_RULE_SETUP
+-#line 123 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 123 "lexer.l"
+ {return TK_VIRTUAL;}
+ YY_BREAK
+ case 48:
+ YY_RULE_SETUP
+-#line 124 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 124 "lexer.l"
+ {return TK_ENUM;}
+ YY_BREAK
+ case 49:
+ YY_RULE_SETUP
+-#line 125 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 125 "lexer.l"
+ {return TK_SIGNED;}
+ YY_BREAK
+ case 50:
+ YY_RULE_SETUP
+-#line 126 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 126 "lexer.l"
+ {return TK_UNSIGNED;}
+ YY_BREAK
+ case 51:
+ YY_RULE_SETUP
+-#line 127 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 127 "lexer.l"
+ {return TK_CONST;}
+ YY_BREAK
+ case 52:
+ YY_RULE_SETUP
+-#line 128 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 128 "lexer.l"
+ {return TK_STATIC;}
+ YY_BREAK
+ case 53:
+ YY_RULE_SETUP
+-#line 129 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 129 "lexer.l"
+ {return TK_TRUE_VALUE;}
+ YY_BREAK
+ case 54:
+ YY_RULE_SETUP
+-#line 130 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 130 "lexer.l"
+ {return TK_FALSE_VALUE;}
+ YY_BREAK
+ case 55:
+ YY_RULE_SETUP
+-#line 131 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 131 "lexer.l"
+ {return TK_NULL_VALUE;}
+ YY_BREAK
+ case 56:
+ YY_RULE_SETUP
+-#line 132 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 132 "lexer.l"
+ {return TK_TYPEDEF;}
+ YY_BREAK
+ case 57:
+ YY_RULE_SETUP
+-#line 133 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 133 "lexer.l"
+ {return TK_NAMESPACE;}
+ YY_BREAK
+ case 58:
+ YY_RULE_SETUP
+-#line 134 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 134 "lexer.l"
+ {return TK_OPERATOR;}
+ YY_BREAK
+ case 59:
+ YY_RULE_SETUP
+-#line 135 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 135 "lexer.l"
+ {return TK_THROW;}
+ YY_BREAK
+ case 60:
+ YY_RULE_SETUP
+-#line 136 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 136 "lexer.l"
+ {return TK_EXPLICIT;}
+ YY_BREAK
+ case 61:
+ YY_RULE_SETUP
+-#line 137 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 137 "lexer.l"
+ {return TK_TEMPLATE;}
+ YY_BREAK
+ case 62:
+ YY_RULE_SETUP
+-#line 138 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 138 "lexer.l"
+ {return TK_FINAL;}
+ YY_BREAK
+ case 63:
+ YY_RULE_SETUP
+-#line 139 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 139 "lexer.l"
+ {return TK_SIZET;}
+ YY_BREAK
+ case 64:
+ YY_RULE_SETUP
+-#line 140 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 140 "lexer.l"
+ {return TK_SCOPE;}
+ YY_BREAK
+ case 65:
+ YY_RULE_SETUP
+-#line 141 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 141 "lexer.l"
+ {return TK_LOGICAL_OR;}
+ YY_BREAK
+ case 66:
+ YY_RULE_SETUP
+-#line 142 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 142 "lexer.l"
+ {return TK_PYOBJECT;}
+ YY_BREAK
+ case 67:
+ YY_RULE_SETUP
+-#line 143 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 143 "lexer.l"
+ {return TK_PYTUPLE;}
+ YY_BREAK
+ case 68:
+ YY_RULE_SETUP
+-#line 144 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 144 "lexer.l"
+ {return TK_PYLIST;}
+ YY_BREAK
+ case 69:
+ YY_RULE_SETUP
+-#line 145 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 145 "lexer.l"
+ {return TK_PYDICT;}
+ YY_BREAK
+ case 70:
+ YY_RULE_SETUP
+-#line 146 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 146 "lexer.l"
+ {return TK_PYCALLABLE;}
+ YY_BREAK
+ case 71:
+ YY_RULE_SETUP
+-#line 147 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 147 "lexer.l"
+ {return TK_PYSLICE;}
+ YY_BREAK
+ case 72:
+ YY_RULE_SETUP
+-#line 148 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 148 "lexer.l"
+ {return TK_PYTYPE;}
+ YY_BREAK
+ case 73:
+ YY_RULE_SETUP
+-#line 149 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 149 "lexer.l"
+ {return TK_PYBUFFER;}
+ YY_BREAK
+ case 74:
+ YY_RULE_SETUP
+-#line 150 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 150 "lexer.l"
+ {return TK_SIPSIGNAL;}
+ YY_BREAK
+ case 75:
+ YY_RULE_SETUP
+-#line 151 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 151 "lexer.l"
+ {return TK_SIPSLOT;}
+ YY_BREAK
+ case 76:
+ YY_RULE_SETUP
+-#line 152 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 152 "lexer.l"
+ {return TK_SIPANYSLOT;}
+ YY_BREAK
+ case 77:
+ YY_RULE_SETUP
+-#line 153 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 153 "lexer.l"
+ {return TK_SIPRXCON;}
+ YY_BREAK
+ case 78:
+ YY_RULE_SETUP
+-#line 154 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 154 "lexer.l"
+ {return TK_SIPRXDIS;}
+ YY_BREAK
+ case 79:
+ YY_RULE_SETUP
+-#line 155 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 155 "lexer.l"
+ {return TK_SIPSLOTCON;}
+ YY_BREAK
+ case 80:
+ YY_RULE_SETUP
+-#line 156 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 156 "lexer.l"
+ {return TK_SIPSLOTDIS;}
+ YY_BREAK
+ case 81:
+ YY_RULE_SETUP
+-#line 157 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 157 "lexer.l"
+ {return TK_SIPSSIZET;}
+ YY_BREAK
+ case 82:
+ YY_RULE_SETUP
+-#line 158 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_QOBJECT;}
++#line 158 "lexer.l"
++{return TK_SIPSSIZET;}
+ YY_BREAK
+ case 83:
+ YY_RULE_SETUP
+-#line 159 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_ELLIPSIS;}
++#line 159 "lexer.l"
++{return TK_QOBJECT;}
+ YY_BREAK
+ case 84:
+ YY_RULE_SETUP
+-#line 161 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_FORMAT;}
++#line 160 "lexer.l"
++{return TK_ELLIPSIS;}
+ YY_BREAK
+ case 85:
+ YY_RULE_SETUP
+-#line 162 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_GET;}
++#line 162 "lexer.l"
++{return TK_FORMAT;}
+ YY_BREAK
+ case 86:
+ YY_RULE_SETUP
+-#line 163 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_ID;}
++#line 163 "lexer.l"
++{return TK_GET;}
+ YY_BREAK
+ case 87:
+ YY_RULE_SETUP
+-#line 164 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_KWARGS;}
++#line 164 "lexer.l"
++{return TK_ID;}
+ YY_BREAK
+ case 88:
+ YY_RULE_SETUP
+-#line 165 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_LANGUAGE;}
++#line 165 "lexer.l"
++{return TK_KWARGS;}
+ YY_BREAK
+ case 89:
+ YY_RULE_SETUP
+-#line 166 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_LICENSEE;}
++#line 166 "lexer.l"
++{return TK_LANGUAGE;}
+ YY_BREAK
+ case 90:
+ YY_RULE_SETUP
+-#line 167 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_NAME;}
++#line 167 "lexer.l"
++{return TK_LICENSEE;}
+ YY_BREAK
+ case 91:
+ YY_RULE_SETUP
+-#line 168 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_OPTIONAL;}
++#line 168 "lexer.l"
++{return TK_NAME;}
+ YY_BREAK
+ case 92:
+ YY_RULE_SETUP
+-#line 169 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_ORDER;}
++#line 169 "lexer.l"
++{return TK_OPTIONAL;}
+ YY_BREAK
+ case 93:
+ YY_RULE_SETUP
+-#line 170 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_REMOVELEADING;}
++#line 170 "lexer.l"
++{return TK_ORDER;}
+ YY_BREAK
+ case 94:
+ YY_RULE_SETUP
+-#line 171 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_SET;}
++#line 171 "lexer.l"
++{return TK_REMOVELEADING;}
+ YY_BREAK
+ case 95:
+ YY_RULE_SETUP
+-#line 172 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_SIGNATURE;}
++#line 172 "lexer.l"
++{return TK_SET;}
+ YY_BREAK
+ case 96:
+ YY_RULE_SETUP
+-#line 173 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_TIMESTAMP;}
++#line 173 "lexer.l"
++{return TK_SIGNATURE;}
+ YY_BREAK
+ case 97:
+ YY_RULE_SETUP
+-#line 174 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_TYPE;}
++#line 174 "lexer.l"
++{return TK_TIMESTAMP;}
+ YY_BREAK
+ case 98:
+ YY_RULE_SETUP
+-#line 175 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_USEARGNAMES;}
++#line 175 "lexer.l"
++{return TK_TYPE;}
+ YY_BREAK
+ case 99:
+ YY_RULE_SETUP
+-#line 176 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_USELIMITEDAPI;}
++#line 176 "lexer.l"
++{return TK_USEARGNAMES;}
+ YY_BREAK
+ case 100:
+ YY_RULE_SETUP
+-#line 177 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_ALLRAISEPYEXC;}
++#line 177 "lexer.l"
++{return TK_PYSSIZETCLEAN;}
+ YY_BREAK
+ case 101:
+ YY_RULE_SETUP
+-#line 178 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_CALLSUPERINIT;}
++#line 178 "lexer.l"
++{return TK_USELIMITEDAPI;}
+ YY_BREAK
+ case 102:
+ YY_RULE_SETUP
+-#line 179 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_DEFERRORHANDLER;}
++#line 179 "lexer.l"
++{return TK_ALLRAISEPYEXC;}
+ YY_BREAK
+ case 103:
+ YY_RULE_SETUP
+-#line 180 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_VERSION;}
++#line 180 "lexer.l"
++{return TK_CALLSUPERINIT;}
+ YY_BREAK
+ case 104:
+ YY_RULE_SETUP
+-#line 182 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_TRUE_VALUE;}
++#line 181 "lexer.l"
++{return TK_DEFERRORHANDLER;}
+ YY_BREAK
+ case 105:
+ YY_RULE_SETUP
+-#line 183 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-{return TK_FALSE_VALUE;}
++#line 182 "lexer.l"
++{return TK_VERSION;}
+ YY_BREAK
+ case 106:
+ YY_RULE_SETUP
+-#line 186 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 184 "lexer.l"
++{return TK_TRUE_VALUE;}
++ YY_BREAK
++case 107:
++YY_RULE_SETUP
++#line 185 "lexer.l"
++{return TK_FALSE_VALUE;}
++ YY_BREAK
++case 108:
++YY_RULE_SETUP
++#line 188 "lexer.l"
+ {
+ /* Ignore whitespace. */
+ ;
+ }
+ YY_BREAK
+-case 107:
++case 109:
+ YY_RULE_SETUP
+-#line 191 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 193 "lexer.l"
+ {
+ /*
+ * Maintain the parenthesis depth so that we don't enter the 'code' state
+@@ -2401,9 +2437,9 @@ YY_RULE_SETUP
+ return '(';
+ }
+ YY_BREAK
+-case 108:
++case 110:
+ YY_RULE_SETUP
+-#line 203 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 205 "lexer.l"
+ {
+ /* Maintain the parenthesis depth. */
+ --parenDepth;
+@@ -2413,10 +2449,10 @@ YY_RULE_SETUP
+ return ')';
+ }
+ YY_BREAK
+-case 109:
+-/* rule 109 can match eol */
++case 111:
++/* rule 111 can match eol */
+ YY_RULE_SETUP
+-#line 212 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 214 "lexer.l"
+ {
+ /* Maintain the line number. */
+ ++inputFileStack[currentFile].sloc.linenr;
+@@ -2427,63 +2463,63 @@ YY_RULE_SETUP
+ }
+ }
+ YY_BREAK
+-case 110:
++case 112:
+ YY_RULE_SETUP
+-#line 222 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 224 "lexer.l"
+ {
+ /* Ignore C++ style comments. */
+ ;
+ }
+ YY_BREAK
+-case 111:
++case 113:
+ YY_RULE_SETUP
+-#line 228 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 230 "lexer.l"
+ {
+ /* A signed decimal number. */
+ yylval.number = strtol(yytext,NULL,0);
+ return TK_NUMBER_VALUE;
+ }
+ YY_BREAK
+-case 112:
++case 114:
+ YY_RULE_SETUP
+-#line 235 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 237 "lexer.l"
+ {
+ /* A floating point number. */
+ yylval.real = strtod(yytext,NULL);
+ return TK_REAL_VALUE;
+ }
+ YY_BREAK
+-case 113:
++case 115:
+ YY_RULE_SETUP
+-#line 242 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 244 "lexer.l"
+ {
+ /* An unsigned hexadecimal number. */
+ yylval.number = strtol(yytext,NULL,16);
+ return TK_NUMBER_VALUE;
+ }
+ YY_BREAK
+-case 114:
++case 116:
+ YY_RULE_SETUP
+-#line 249 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 251 "lexer.l"
+ {
+ /* An identifier name. */
+ yylval.text = sipStrdup(yytext);
+ return TK_NAME_VALUE;
+ }
+ YY_BREAK
+-case 115:
++case 117:
+ YY_RULE_SETUP
+-#line 256 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 258 "lexer.l"
+ {
+ /* A relative pathname. */
+ yylval.text = sipStrdup(yytext);
+ return TK_PATH_VALUE;
+ }
+ YY_BREAK
+-case 116:
+-/* rule 116 can match eol */
++case 118:
++/* rule 118 can match eol */
+ YY_RULE_SETUP
+-#line 263 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 265 "lexer.l"
+ {
+ /* A double-quoted string. */
+ char ch, *dp, *sp;
+@@ -2519,10 +2555,10 @@ YY_RULE_SETUP
+ return TK_STRING_VALUE;
+ }
+ YY_BREAK
+-case 117:
+-/* rule 117 can match eol */
++case 119:
++/* rule 119 can match eol */
+ YY_RULE_SETUP
+-#line 299 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 301 "lexer.l"
+ {
+ /* A single-quoted character. */
+ if (strlen(yytext) != 3)
+@@ -2533,84 +2569,84 @@ YY_RULE_SETUP
+ return TK_QCHAR_VALUE;
+ }
+ YY_BREAK
+-case 118:
++case 120:
+ YY_RULE_SETUP
+-#line 310 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 312 "lexer.l"
+ {
+ /* Ignore C-style comments. */
+ yy_push_state(ccomment);
+ }
+ YY_BREAK
+-case 119:
+-/* rule 119 can match eol */
++case 121:
++/* rule 121 can match eol */
+ YY_RULE_SETUP
+-#line 314 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 316 "lexer.l"
+ {
+ ++inputFileStack[currentFile].sloc.linenr;
+ }
+ YY_BREAK
+-case 120:
++case 122:
+ YY_RULE_SETUP
+-#line 317 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 319 "lexer.l"
+ {
+ yy_pop_state();
+ }
+ YY_BREAK
+-case 121:
++case 123:
+ YY_RULE_SETUP
+-#line 320 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 322 "lexer.l"
+ {
+ ;
+ }
+ YY_BREAK
+-case 122:
++case 124:
+ YY_RULE_SETUP
+-#line 325 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 327 "lexer.l"
+ {
+ /* The software license. */
+ codeIdx = 0;
+ return TK_COPYING;
+ }
+ YY_BREAK
+-case 123:
++case 125:
+ YY_RULE_SETUP
+-#line 331 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 333 "lexer.l"
+ {
+ /* The start of a from-type code block. */
+ codeIdx = 0;
+ return TK_FROMTYPE;
+ }
+ YY_BREAK
+-case 124:
++case 126:
+ YY_RULE_SETUP
+-#line 337 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 339 "lexer.l"
+ {
+ /* The start of a to-type code block. */
+ codeIdx = 0;
+ return TK_TOTYPE;
+ }
+ YY_BREAK
+-case 125:
++case 127:
+ YY_RULE_SETUP
+-#line 343 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 345 "lexer.l"
+ {
+ /* The start of a to-sub-class code block. */
+ codeIdx = 0;
+ return TK_TOSUBCLASS;
+ }
+ YY_BREAK
+-case 126:
++case 128:
+ YY_RULE_SETUP
+-#line 349 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 351 "lexer.l"
+ {
+ /* The start of an exported header code block. */
+ codeIdx = 0;
+ return TK_EXPHEADERCODE;
+ }
+ YY_BREAK
+-case 127:
++case 129:
+ YY_RULE_SETUP
+-#line 355 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 357 "lexer.l"
+ {
+ /* The start of part of an extract. */
+ codeIdx = 0;
+@@ -2620,225 +2656,225 @@ YY_RULE_SETUP
+ return TK_EXTRACT;
+ }
+ YY_BREAK
+-case 128:
++case 130:
+ YY_RULE_SETUP
+-#line 364 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 366 "lexer.l"
+ {
+ /* The start of a module header code block. */
+ codeIdx = 0;
+ return TK_MODHEADERCODE;
+ }
+ YY_BREAK
+-case 129:
++case 131:
+ YY_RULE_SETUP
+-#line 370 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 372 "lexer.l"
+ {
+ /* The start of a type header code block. */
+ codeIdx = 0;
+ return TK_TYPEHEADERCODE;
+ }
+ YY_BREAK
+-case 130:
++case 132:
+ YY_RULE_SETUP
+-#line 376 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 378 "lexer.l"
+ {
+ /* The start of a pre-initialisation code block. */
+ codeIdx = 0;
+ return TK_PREINITCODE;
+ }
+ YY_BREAK
+-case 131:
++case 133:
+ YY_RULE_SETUP
+-#line 382 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 384 "lexer.l"
+ {
+ /* The start of an initialisation code block. */
+ codeIdx = 0;
+ return TK_INITCODE;
+ }
+ YY_BREAK
+-case 132:
++case 134:
+ YY_RULE_SETUP
+-#line 388 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 390 "lexer.l"
+ {
+ /* The start of a post-initialisation code block. */
+ codeIdx = 0;
+ return TK_POSTINITCODE;
+ }
+ YY_BREAK
+-case 133:
++case 135:
+ YY_RULE_SETUP
+-#line 394 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 396 "lexer.l"
+ {
+ /* The start of a class finalisation code block. */
+ codeIdx = 0;
+ return TK_FINALCODE;
+ }
+ YY_BREAK
+-case 134:
++case 136:
+ YY_RULE_SETUP
+-#line 400 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 402 "lexer.l"
+ {
+ /* The start of a unit code block. */
+ codeIdx = 0;
+ return TK_UNITCODE;
+ }
+ YY_BREAK
+-case 135:
++case 137:
+ YY_RULE_SETUP
+-#line 406 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 408 "lexer.l"
+ {
+ /* The start of a unit post-include code block. */
+ codeIdx = 0;
+ return TK_UNITPOSTINCLUDECODE;
+ }
+ YY_BREAK
+-case 136:
++case 138:
+ YY_RULE_SETUP
+-#line 412 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 414 "lexer.l"
+ {
+ /* The start of a module code block. */
+ codeIdx = 0;
+ return TK_MODCODE;
+ }
+ YY_BREAK
+-case 137:
++case 139:
+ YY_RULE_SETUP
+-#line 418 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 420 "lexer.l"
+ {
+ /* The start of a type code block. */
+ codeIdx = 0;
+ return TK_TYPECODE;
+ }
+ YY_BREAK
+-case 138:
++case 140:
+ YY_RULE_SETUP
+-#line 424 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 426 "lexer.l"
+ {
+ /* The start of a C++ method code block. */
+ codeIdx = 0;
+ return TK_METHODCODE;
+ }
+ YY_BREAK
+-case 139:
++case 141:
+ YY_RULE_SETUP
+-#line 430 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 432 "lexer.l"
+ {
+ /* The start of a C++ code block to insert before the MethodCode. */
+ codeIdx = 0;
+ return TK_PREMETHODCODE;
+ }
+ YY_BREAK
+-case 140:
++case 142:
+ YY_RULE_SETUP
+-#line 436 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 438 "lexer.l"
+ {
+ /* The start of a C++ virtual call code block. */
+ codeIdx = 0;
+ return TK_VIRTUALCALLCODE;
+ }
+ YY_BREAK
+-case 141:
++case 143:
+ YY_RULE_SETUP
+-#line 442 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 444 "lexer.l"
+ {
+ /* The start of a C++ virtual code block. */
+ codeIdx = 0;
+ return TK_VIRTUALCATCHERCODE;
+ }
+ YY_BREAK
+-case 142:
++case 144:
+ YY_RULE_SETUP
+-#line 448 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 450 "lexer.l"
+ {
+ /* The start of a traverse code block. */
+ codeIdx = 0;
+ return TK_TRAVERSECODE;
+ }
+ YY_BREAK
+-case 143:
++case 145:
+ YY_RULE_SETUP
+-#line 454 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 456 "lexer.l"
+ {
+ /* The start of a clear code block. */
+ codeIdx = 0;
+ return TK_CLEARCODE;
+ }
+ YY_BREAK
+-case 144:
++case 146:
+ YY_RULE_SETUP
+-#line 460 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 462 "lexer.l"
+ {
+ /* The start of a get buffer code block. */
+ codeIdx = 0;
+ return TK_GETBUFFERCODE;
+ }
+ YY_BREAK
+-case 145:
++case 147:
+ YY_RULE_SETUP
+-#line 466 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 468 "lexer.l"
+ {
+ /* The start of a release buffer code block. */
+ codeIdx = 0;
+ return TK_RELEASEBUFFERCODE;
+ }
+ YY_BREAK
+-case 146:
++case 148:
+ YY_RULE_SETUP
+-#line 472 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 474 "lexer.l"
+ {
+ /* The start of a read buffer code block. */
+ codeIdx = 0;
+ return TK_READBUFFERCODE;
+ }
+ YY_BREAK
+-case 147:
++case 149:
+ YY_RULE_SETUP
+-#line 478 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 480 "lexer.l"
+ {
+ /* The start of a write buffer code block. */
+ codeIdx = 0;
+ return TK_WRITEBUFFERCODE;
+ }
+ YY_BREAK
+-case 148:
++case 150:
+ YY_RULE_SETUP
+-#line 484 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 486 "lexer.l"
+ {
+ /* The start of a segment count code block. */
+ codeIdx = 0;
+ return TK_SEGCOUNTCODE;
+ }
+ YY_BREAK
+-case 149:
++case 151:
+ YY_RULE_SETUP
+-#line 490 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 492 "lexer.l"
+ {
+ /* The start of a char buffer code block. */
+ codeIdx = 0;
+ return TK_CHARBUFFERCODE;
+ }
+ YY_BREAK
+-case 150:
++case 152:
+ YY_RULE_SETUP
+-#line 496 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 498 "lexer.l"
+ {
+ /* The start of a create instance code block. */
+ codeIdx = 0;
+ return TK_INSTANCECODE;
+ }
+ YY_BREAK
+-case 151:
++case 153:
+ YY_RULE_SETUP
+-#line 502 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 504 "lexer.l"
+ {
+ /* The start of a pickle code block. */
+ codeIdx = 0;
+ return TK_PICKLECODE;
+ }
+ YY_BREAK
+-case 152:
++case 154:
+ YY_RULE_SETUP
+-#line 508 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 510 "lexer.l"
+ {
+ /* The start of a pre-Python code block. */
+ deprecated("%PrePythonCode is deprecated");
+@@ -2847,36 +2883,36 @@ YY_RULE_SETUP
+ return TK_PREPYCODE;
+ }
+ YY_BREAK
+-case 153:
++case 155:
+ YY_RULE_SETUP
+-#line 516 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 518 "lexer.l"
+ {
+ /* The start of a raise Python exception code block. */
+ codeIdx = 0;
+ return TK_RAISECODE;
+ }
+ YY_BREAK
+-case 154:
++case 156:
+ YY_RULE_SETUP
+-#line 522 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 524 "lexer.l"
+ {
+ /* The start of an exported type hint code block. */
+ codeIdx = 0;
+ return TK_EXPTYPEHINTCODE;
+ }
+ YY_BREAK
+-case 155:
++case 157:
+ YY_RULE_SETUP
+-#line 528 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 530 "lexer.l"
+ {
+ /* The start of a type hint code block. */
+ codeIdx = 0;
+ return TK_TYPEHINTCODE;
+ }
+ YY_BREAK
+-case 156:
++case 158:
+ YY_RULE_SETUP
+-#line 534 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 536 "lexer.l"
+ {
+ /* The start of a docstring block. */
+ codeIdx = 0;
+@@ -2886,9 +2922,9 @@ YY_RULE_SETUP
+ return TK_DOCSTRING;
+ }
+ YY_BREAK
+-case 157:
++case 159:
+ YY_RULE_SETUP
+-#line 543 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 545 "lexer.l"
+ {
+ /* The start of a documentation block. */
+ deprecated("%Doc is deprecated, use %Extract instead");
+@@ -2897,9 +2933,9 @@ YY_RULE_SETUP
+ return TK_DOC;
+ }
+ YY_BREAK
+-case 158:
++case 160:
+ YY_RULE_SETUP
+-#line 551 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 553 "lexer.l"
+ {
+ /* The start of an exported documentation block. */
+ deprecated("%ExportedDoc is deprecated, use %Extract instead");
+@@ -2908,9 +2944,9 @@ YY_RULE_SETUP
+ return TK_EXPORTEDDOC;
+ }
+ YY_BREAK
+-case 159:
++case 161:
+ YY_RULE_SETUP
+-#line 559 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 561 "lexer.l"
+ {
+ /* The start of a Makefile code block. */
+ deprecated("%Makefile is deprecated");
+@@ -2919,36 +2955,36 @@ YY_RULE_SETUP
+ return TK_MAKEFILE;
+ }
+ YY_BREAK
+-case 160:
++case 162:
+ YY_RULE_SETUP
+-#line 567 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 569 "lexer.l"
+ {
+ /* The start of an access code block. */
+ codeIdx = 0;
+ return TK_ACCESSCODE;
+ }
+ YY_BREAK
+-case 161:
++case 163:
+ YY_RULE_SETUP
+-#line 573 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 575 "lexer.l"
+ {
+ /* The start of a get code block. */
+ codeIdx = 0;
+ return TK_GETCODE;
+ }
+ YY_BREAK
+-case 162:
++case 164:
+ YY_RULE_SETUP
+-#line 579 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 581 "lexer.l"
+ {
+ /* The start of a set code block. */
+ codeIdx = 0;
+ return TK_SETCODE;
+ }
+ YY_BREAK
+-case 163:
++case 165:
+ YY_RULE_SETUP
+-#line 585 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 587 "lexer.l"
+ {
+ /* The start of part of a virtual error handler. */
+ codeIdx = 0;
+@@ -2958,9 +2994,9 @@ YY_RULE_SETUP
+ return TK_VIRTERRORHANDLER;
+ }
+ YY_BREAK
+-case 164:
++case 166:
+ YY_RULE_SETUP
+-#line 594 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 596 "lexer.l"
+ {
+ /* The end of a code block. */
+ BEGIN INITIAL;
+@@ -2968,10 +3004,10 @@ YY_RULE_SETUP
+ return TK_END;
+ }
+ YY_BREAK
+-case 165:
+-/* rule 165 can match eol */
++case 167:
++/* rule 167 can match eol */
+ YY_RULE_SETUP
+-#line 601 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 603 "lexer.l"
+ {
+ /* The end of a code line . */
+ struct inputFile *ifp;
+@@ -2991,9 +3027,9 @@ YY_RULE_SETUP
+ return TK_CODELINE;
+ }
+ YY_BREAK
+-case 166:
++case 168:
+ YY_RULE_SETUP
+-#line 620 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 622 "lexer.l"
+ {
+ /* The contents of a code line. */
+ if (codeIdx == MAX_CODE_LINE_LENGTH)
+@@ -3002,20 +3038,20 @@ YY_RULE_SETUP
+ codeLine[codeIdx++] = yytext[0];
+ }
+ YY_BREAK
+-case 167:
++case 169:
+ YY_RULE_SETUP
+-#line 628 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 630 "lexer.l"
+ {
+ /* Anything else is returned as is. */
+ return yytext[0];
+ }
+ YY_BREAK
+-case 168:
++case 170:
+ YY_RULE_SETUP
+-#line 633 "sip-4.19.23/sipgen/metasrc/lexer.l"
++#line 635 "lexer.l"
+ ECHO;
+ YY_BREAK
+-#line 3019 "sip-4.19.23/sipgen/lexer.c"
++#line 3055 "../lexer.c"
+ case YY_STATE_EOF(INITIAL):
+ case YY_STATE_EOF(code):
+ case YY_STATE_EOF(ccomment):
+@@ -3097,7 +3133,7 @@ case YY_STATE_EOF(directive_start):
+ {
+ (yy_did_buffer_switch_on_eof) = 0;
+
+- if ( yywrap( ) )
++ if ( yywrap( ) )
+ {
+ /* Note: because we've taken care in
+ * yy_get_next_buffer() to have set up
+@@ -3150,6 +3186,7 @@ case YY_STATE_EOF(directive_start):
+ "fatal flex scanner internal error--no action found" );
+ } /* end of action switch */
+ } /* end of scanning one token */
++ } /* end of user's declarations */
+ } /* end of yylex */
+
+ /* yy_get_next_buffer - try to read in a new buffer
+@@ -3161,9 +3198,9 @@ case YY_STATE_EOF(directive_start):
+ */
+ static int yy_get_next_buffer (void)
+ {
+- register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+- register char *source = (yytext_ptr);
+- register int number_to_move, i;
++ char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
++ char *source = (yytext_ptr);
++ int number_to_move, i;
+ int ret_val;
+
+ if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+@@ -3192,7 +3229,7 @@ static int yy_get_next_buffer (void)
+ /* Try to read more data. */
+
+ /* First move last chars to start of buffer. */
+- number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
++ number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
+
+ for ( i = 0; i < number_to_move; ++i )
+ *(dest++) = *(source++);
+@@ -3205,21 +3242,21 @@ static int yy_get_next_buffer (void)
+
+ else
+ {
+- yy_size_t num_to_read =
++ int num_to_read =
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+ while ( num_to_read <= 0 )
+ { /* Not enough room in the buffer - grow it. */
+
+ /* just a shorter name for the current buffer */
+- YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
++ YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+ int yy_c_buf_p_offset =
+ (int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+ if ( b->yy_is_our_buffer )
+ {
+- yy_size_t new_size = b->yy_buf_size * 2;
++ int new_size = b->yy_buf_size * 2;
+
+ if ( new_size <= 0 )
+ b->yy_buf_size += b->yy_buf_size / 8;
+@@ -3228,11 +3265,12 @@ static int yy_get_next_buffer (void)
+
+ b->yy_ch_buf = (char *)
+ /* Include room in for 2 EOB chars. */
+- yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
++ yyrealloc( (void *) b->yy_ch_buf,
++ (yy_size_t) (b->yy_buf_size + 2) );
+ }
+ else
+ /* Can't grow it, we don't own it. */
+- b->yy_ch_buf = 0;
++ b->yy_ch_buf = NULL;
+
+ if ( ! b->yy_ch_buf )
+ YY_FATAL_ERROR(
+@@ -3260,7 +3298,7 @@ static int yy_get_next_buffer (void)
+ if ( number_to_move == YY_MORE_ADJ )
+ {
+ ret_val = EOB_ACT_END_OF_FILE;
+- yyrestart(yyin );
++ yyrestart( yyin );
+ }
+
+ else
+@@ -3274,12 +3312,15 @@ static int yy_get_next_buffer (void)
+ else
+ ret_val = EOB_ACT_CONTINUE_SCAN;
+
+- if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
++ if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+ /* Extend the array by 50%, plus the number we really need. */
+- yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
++ int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
++ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
++ (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
+ if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
++ /* "- 2" to take care of EOB's */
++ YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
+ }
+
+ (yy_n_chars) += number_to_move;
+@@ -3295,15 +3336,15 @@ static int yy_get_next_buffer (void)
+
+ static yy_state_type yy_get_previous_state (void)
+ {
+- register yy_state_type yy_current_state;
+- register char *yy_cp;
++ yy_state_type yy_current_state;
++ char *yy_cp;
+
+ yy_current_state = (yy_start);
+ yy_current_state += YY_AT_BOL();
+
+ for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+ {
+- register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
++ YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+ if ( yy_accept[yy_current_state] )
+ {
+ (yy_last_accepting_state) = yy_current_state;
+@@ -3312,10 +3353,10 @@ static int yy_get_next_buffer (void)
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+- if ( yy_current_state >= 1235 )
+- yy_c = yy_meta[(unsigned int) yy_c];
++ if ( yy_current_state >= 1261 )
++ yy_c = yy_meta[yy_c];
+ }
+- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++ yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
+ }
+
+ return yy_current_state;
+@@ -3328,10 +3369,10 @@ static int yy_get_next_buffer (void)
+ */
+ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
+ {
+- register int yy_is_jam;
+- register char *yy_cp = (yy_c_buf_p);
++ int yy_is_jam;
++ char *yy_cp = (yy_c_buf_p);
+
+- register YY_CHAR yy_c = 1;
++ YY_CHAR yy_c = 1;
+ if ( yy_accept[yy_current_state] )
+ {
+ (yy_last_accepting_state) = yy_current_state;
+@@ -3340,18 +3381,20 @@ static int yy_get_next_buffer (void)
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+- if ( yy_current_state >= 1235 )
+- yy_c = yy_meta[(unsigned int) yy_c];
++ if ( yy_current_state >= 1261 )
++ yy_c = yy_meta[yy_c];
+ }
+- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+- yy_is_jam = (yy_current_state == 1234);
++ yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++ yy_is_jam = (yy_current_state == 1260);
+
+- return yy_is_jam ? 0 : yy_current_state;
++ return yy_is_jam ? 0 : yy_current_state;
+ }
+
+- static void yyunput (int c, register char * yy_bp )
++#ifndef YY_NO_UNPUT
++
++ static void yyunput (int c, char * yy_bp )
+ {
+- register char *yy_cp;
++ char *yy_cp;
+
+ yy_cp = (yy_c_buf_p);
+
+@@ -3361,10 +3404,10 @@ static int yy_get_next_buffer (void)
+ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+ { /* need to shift things up to make room */
+ /* +2 for EOB chars. */
+- register yy_size_t number_to_move = (yy_n_chars) + 2;
+- register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
++ int number_to_move = (yy_n_chars) + 2;
++ char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
+- register char *source =
++ char *source =
+ &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
+
+ while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+@@ -3373,7 +3416,7 @@ static int yy_get_next_buffer (void)
+ yy_cp += (int) (dest - source);
+ yy_bp += (int) (dest - source);
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
+- (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
++ (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
+
+ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+ YY_FATAL_ERROR( "flex scanner push-back overflow" );
+@@ -3386,6 +3429,8 @@ static int yy_get_next_buffer (void)
+ (yy_c_buf_p) = yy_cp;
+ }
+
++#endif
++
+ #ifndef YY_NO_INPUT
+ #ifdef __cplusplus
+ static int yyinput (void)
+@@ -3410,7 +3455,7 @@ static int yy_get_next_buffer (void)
+
+ else
+ { /* need more input */
+- yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
++ int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
+ ++(yy_c_buf_p);
+
+ switch ( yy_get_next_buffer( ) )
+@@ -3427,13 +3472,13 @@ static int yy_get_next_buffer (void)
+ */
+
+ /* Reset buffer status. */
+- yyrestart(yyin );
++ yyrestart( yyin );
+
+ /*FALLTHROUGH*/
+
+ case EOB_ACT_END_OF_FILE:
+ {
+- if ( yywrap( ) )
++ if ( yywrap( ) )
+ return 0;
+
+ if ( ! (yy_did_buffer_switch_on_eof) )
+@@ -3473,11 +3518,11 @@ static int yy_get_next_buffer (void)
+ if ( ! YY_CURRENT_BUFFER ){
+ yyensure_buffer_stack ();
+ YY_CURRENT_BUFFER_LVALUE =
+- yy_create_buffer(yyin,YY_BUF_SIZE );
++ yy_create_buffer( yyin, YY_BUF_SIZE );
+ }
+
+- yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+- yy_load_buffer_state( );
++ yy_init_buffer( YY_CURRENT_BUFFER, input_file );
++ yy_load_buffer_state( );
+ }
+
+ /** Switch to a different input buffer.
+@@ -3505,7 +3550,7 @@ static int yy_get_next_buffer (void)
+ }
+
+ YY_CURRENT_BUFFER_LVALUE = new_buffer;
+- yy_load_buffer_state( );
++ yy_load_buffer_state( );
+
+ /* We don't actually know whether we did this switch during
+ * EOF (yywrap()) processing, but the only time this flag
+@@ -3533,7 +3578,7 @@ static void yy_load_buffer_state (void)
+ {
+ YY_BUFFER_STATE b;
+
+- b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
++ b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
+ if ( ! b )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+@@ -3542,13 +3587,13 @@ static void yy_load_buffer_state (void)
+ /* yy_ch_buf has to be 2 characters longer than the size given because
+ * we need to put in 2 end-of-buffer characters.
+ */
+- b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 );
++ b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
+ if ( ! b->yy_ch_buf )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+ b->yy_is_our_buffer = 1;
+
+- yy_init_buffer(b,file );
++ yy_init_buffer( b, file );
+
+ return b;
+ }
+@@ -3567,15 +3612,11 @@ static void yy_load_buffer_state (void)
+ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+ if ( b->yy_is_our_buffer )
+- yyfree((void *) b->yy_ch_buf );
++ yyfree( (void *) b->yy_ch_buf );
+
+- yyfree((void *) b );
++ yyfree( (void *) b );
+ }
+
+-#ifndef __cplusplus
+-extern int isatty (int );
+-#endif /* __cplusplus */
+-
+ /* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+@@ -3585,7 +3626,7 @@ extern int isatty (int );
+ {
+ int oerrno = errno;
+
+- yy_flush_buffer(b );
++ yy_flush_buffer( b );
+
+ b->yy_input_file = file;
+ b->yy_fill_buffer = 1;
+@@ -3628,7 +3669,7 @@ extern int isatty (int );
+ b->yy_buffer_status = YY_BUFFER_NEW;
+
+ if ( b == YY_CURRENT_BUFFER )
+- yy_load_buffer_state( );
++ yy_load_buffer_state( );
+ }
+
+ /** Pushes the new state onto the stack. The new state becomes
+@@ -3659,7 +3700,7 @@ void yypush_buffer_state (YY_BUFFER_STAT
+ YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+ /* copied from yy_switch_to_buffer. */
+- yy_load_buffer_state( );
++ yy_load_buffer_state( );
+ (yy_did_buffer_switch_on_eof) = 1;
+ }
+
+@@ -3678,7 +3719,7 @@ void yypop_buffer_state (void)
+ --(yy_buffer_stack_top);
+
+ if (YY_CURRENT_BUFFER) {
+- yy_load_buffer_state( );
++ yy_load_buffer_state( );
+ (yy_did_buffer_switch_on_eof) = 1;
+ }
+ }
+@@ -3696,15 +3737,15 @@ static void yyensure_buffer_stack (void)
+ * scanner will even need a stack. We use 2 instead of 1 to avoid an
+ * immediate realloc on the next call.
+ */
+- num_to_alloc = 1;
++ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
+ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+ (num_to_alloc * sizeof(struct yy_buffer_state*)
+ );
+ if ( ! (yy_buffer_stack) )
+ YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+-
++
+ memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+-
++
+ (yy_buffer_stack_max) = num_to_alloc;
+ (yy_buffer_stack_top) = 0;
+ return;
+@@ -3713,7 +3754,7 @@ static void yyensure_buffer_stack (void)
+ if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+ /* Increase the buffer to prepare for a possible push. */
+- int grow_size = 8 /* arbitrary grow size */;
++ yy_size_t grow_size = 8 /* arbitrary grow size */;
+
+ num_to_alloc = (yy_buffer_stack_max) + grow_size;
+ (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+@@ -3733,7 +3774,7 @@ static void yyensure_buffer_stack (void)
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ *
+- * @return the newly allocated buffer state object.
++ * @return the newly allocated buffer state object.
+ */
+ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
+ {
+@@ -3743,23 +3784,23 @@ YY_BUFFER_STATE yy_scan_buffer (char *
+ base[size-2] != YY_END_OF_BUFFER_CHAR ||
+ base[size-1] != YY_END_OF_BUFFER_CHAR )
+ /* They forgot to leave room for the EOB's. */
+- return 0;
++ return NULL;
+
+- b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
++ b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
+ if ( ! b )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+- b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
++ b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
+ b->yy_buf_pos = b->yy_ch_buf = base;
+ b->yy_is_our_buffer = 0;
+- b->yy_input_file = 0;
++ b->yy_input_file = NULL;
+ b->yy_n_chars = b->yy_buf_size;
+ b->yy_is_interactive = 0;
+ b->yy_at_bol = 1;
+ b->yy_fill_buffer = 0;
+ b->yy_buffer_status = YY_BUFFER_NEW;
+
+- yy_switch_to_buffer(b );
++ yy_switch_to_buffer( b );
+
+ return b;
+ }
+@@ -3772,28 +3813,29 @@ YY_BUFFER_STATE yy_scan_buffer (char *
+ * @note If you want to scan bytes that may contain NUL values, then use
+ * yy_scan_bytes() instead.
+ */
+-YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
++YY_BUFFER_STATE yy_scan_string (const char * yystr )
+ {
+
+- return yy_scan_bytes(yystr,strlen(yystr) );
++ return yy_scan_bytes( yystr, (int) strlen(yystr) );
+ }
+
+ /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+- * @param bytes the byte buffer to scan
+- * @param len the number of bytes in the buffer pointed to by @a bytes.
++ * @param yybytes the byte buffer to scan
++ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ *
+ * @return the newly allocated buffer state object.
+ */
+-YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len )
++YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
+ {
+ YY_BUFFER_STATE b;
+ char *buf;
+- yy_size_t n, i;
++ yy_size_t n;
++ int i;
+
+ /* Get memory for full buffer, including space for trailing EOB's. */
+- n = _yybytes_len + 2;
+- buf = (char *) yyalloc(n );
++ n = (yy_size_t) (_yybytes_len + 2);
++ buf = (char *) yyalloc( n );
+ if ( ! buf )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+@@ -3802,7 +3844,7 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst
+
+ buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+- b = yy_scan_buffer(buf,n );
++ b = yy_scan_buffer( buf, n );
+ if ( ! b )
+ YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+@@ -3814,20 +3856,21 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst
+ return b;
+ }
+
+- static void yy_push_state (int new_state )
++ static void yy_push_state (int _new_state )
+ {
+ if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
+ {
+ yy_size_t new_size;
+
+ (yy_start_stack_depth) += YY_START_STACK_INCR;
+- new_size = (yy_start_stack_depth) * sizeof( int );
++ new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int );
+
+ if ( ! (yy_start_stack) )
+- (yy_start_stack) = (int *) yyalloc(new_size );
++ (yy_start_stack) = (int *) yyalloc( new_size );
+
+ else
+- (yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size );
++ (yy_start_stack) = (int *) yyrealloc(
++ (void *) (yy_start_stack), new_size );
+
+ if ( ! (yy_start_stack) )
+ YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
+@@ -3835,7 +3878,7 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst
+
+ (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
+
+- BEGIN(new_state);
++ BEGIN(_new_state);
+ }
+
+ static void yy_pop_state (void)
+@@ -3855,9 +3898,9 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst
+ #define YY_EXIT_FAILURE 2
+ #endif
+
+-static void yy_fatal_error (yyconst char* msg )
++static void yynoreturn yy_fatal_error (const char* msg )
+ {
+- (void) fprintf( stderr, "%s\n", msg );
++ fprintf( stderr, "%s\n", msg );
+ exit( YY_EXIT_FAILURE );
+ }
+
+@@ -3885,7 +3928,7 @@ static void yy_fatal_error (yyconst char
+ */
+ int yyget_lineno (void)
+ {
+-
++
+ return yylineno;
+ }
+
+@@ -3908,7 +3951,7 @@ FILE *yyget_out (void)
+ /** Get the length of the current token.
+ *
+ */
+-yy_size_t yyget_leng (void)
++int yyget_leng (void)
+ {
+ return yyleng;
+ }
+@@ -3923,29 +3966,29 @@ char *yyget_text (void)
+ }
+
+ /** Set the current line number.
+- * @param line_number
++ * @param _line_number line number
+ *
+ */
+-void yyset_lineno (int line_number )
++void yyset_lineno (int _line_number )
+ {
+
+- yylineno = line_number;
++ yylineno = _line_number;
+ }
+
+ /** Set the input stream. This does not discard the current
+ * input buffer.
+- * @param in_str A readable stream.
++ * @param _in_str A readable stream.
+ *
+ * @see yy_switch_to_buffer
+ */
+-void yyset_in (FILE * in_str )
++void yyset_in (FILE * _in_str )
+ {
+- yyin = in_str ;
++ yyin = _in_str ;
+ }
+
+-void yyset_out (FILE * out_str )
++void yyset_out (FILE * _out_str )
+ {
+- yyout = out_str ;
++ yyout = _out_str ;
+ }
+
+ int yyget_debug (void)
+@@ -3953,9 +3996,9 @@ int yyget_debug (void)
+ return yy_flex_debug;
+ }
+
+-void yyset_debug (int bdebug )
++void yyset_debug (int _bdebug )
+ {
+- yy_flex_debug = bdebug ;
++ yy_flex_debug = _bdebug ;
+ }
+
+ static int yy_init_globals (void)
+@@ -3964,10 +4007,10 @@ static int yy_init_globals (void)
+ * This function is called from yylex_destroy(), so don't allocate here.
+ */
+
+- (yy_buffer_stack) = 0;
++ (yy_buffer_stack) = NULL;
+ (yy_buffer_stack_top) = 0;
+ (yy_buffer_stack_max) = 0;
+- (yy_c_buf_p) = (char *) 0;
++ (yy_c_buf_p) = NULL;
+ (yy_init) = 0;
+ (yy_start) = 0;
+
+@@ -3980,8 +4023,8 @@ static int yy_init_globals (void)
+ yyin = stdin;
+ yyout = stdout;
+ #else
+- yyin = (FILE *) 0;
+- yyout = (FILE *) 0;
++ yyin = NULL;
++ yyout = NULL;
+ #endif
+
+ /* For future reference: Set errno on error, since we are called by
+@@ -3996,7 +4039,7 @@ int yylex_destroy (void)
+
+ /* Pop the buffer stack, destroying each element. */
+ while(YY_CURRENT_BUFFER){
+- yy_delete_buffer(YY_CURRENT_BUFFER );
++ yy_delete_buffer( YY_CURRENT_BUFFER );
+ YY_CURRENT_BUFFER_LVALUE = NULL;
+ yypop_buffer_state();
+ }
+@@ -4006,7 +4049,7 @@ int yylex_destroy (void)
+ (yy_buffer_stack) = NULL;
+
+ /* Destroy the start condition stack. */
+- yyfree((yy_start_stack) );
++ yyfree( (yy_start_stack) );
+ (yy_start_stack) = NULL;
+
+ /* Reset the globals. This is important in a non-reentrant scanner so the next time
+@@ -4021,18 +4064,19 @@ int yylex_destroy (void)
+ */
+
+ #ifndef yytext_ptr
+-static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
++static void yy_flex_strncpy (char* s1, const char * s2, int n )
+ {
+- register int i;
++
++ int i;
+ for ( i = 0; i < n; ++i )
+ s1[i] = s2[i];
+ }
+ #endif
+
+ #ifdef YY_NEED_STRLEN
+-static int yy_flex_strlen (yyconst char * s )
++static int yy_flex_strlen (const char * s )
+ {
+- register int n;
++ int n;
+ for ( n = 0; s[n]; ++n )
+ ;
+
+@@ -4042,11 +4086,12 @@ static int yy_flex_strlen (yyconst char
+
+ void *yyalloc (yy_size_t size )
+ {
+- return (void *) malloc( size );
++ return malloc(size);
+ }
+
+ void *yyrealloc (void * ptr, yy_size_t size )
+ {
++
+ /* The cast to (char *) in the following accommodates both
+ * implementations that use char* generic pointers, and those
+ * that use void* generic pointers. It works with the latter
+@@ -4054,18 +4099,17 @@ void *yyrealloc (void * ptr, yy_size_t
+ * any pointer type to void*, and deal with argument conversions
+ * as though doing an assignment.
+ */
+- return (void *) realloc( (char *) ptr, size );
++ return realloc(ptr, size);
+ }
+
+ void yyfree (void * ptr )
+ {
+- free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
++ free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
+ }
+
+ #define YYTABLES_NAME "yytables"
+
+-#line 633 "sip-4.19.23/sipgen/metasrc/lexer.l"
+-
++#line 635 "lexer.l"
+
+
+ /*
+Index: sip-4.19.23/sipgen/parser.c
+===================================================================
+--- sip-4.19.23.orig/sipgen/parser.c
++++ sip-4.19.23/sipgen/parser.c
+@@ -1,14 +1,14 @@
+-/* A Bison parser, made by GNU Bison 2.3. */
++/* A Bison parser, made by GNU Bison 3.8.2. */
+
+-/* Skeleton implementation for Bison's Yacc-like parsers in C
++/* Bison implementation for Yacc-like parsers in C
+
+- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+- Free Software Foundation, Inc.
++ Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
++ Inc.
+
+- This program is free software; you can redistribute it and/or modify
++ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+- the Free Software Foundation; either version 2, or (at your option)
+- any later version.
++ the Free Software Foundation, either version 3 of the License, or
++ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+@@ -16,9 +16,7 @@
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+- along with this program; if not, write to the Free Software
+- Foundation, Inc., 51 Franklin Street, Fifth Floor,
+- Boston, MA 02110-1301, USA. */
++ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+ /* As a special exception, you may create a larger work that contains
+ part or all of the Bison parser skeleton and distribute that work
+@@ -36,6 +34,10 @@
+ /* C LALR(1) parser skeleton written by Richard Stallman, by
+ simplifying the original so-called "semantic" parser. */
+
++/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
++ especially those whose name start with YY_ or yy_. They are
++ private implementation details that can be changed or removed. */
++
+ /* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+ variables, as they might otherwise be expanded by user macros.
+@@ -43,11 +45,11 @@
+ define necessary library symbols; they are noted "INFRINGES ON
+ USER NAME SPACE" below. */
+
+-/* Identify Bison output. */
+-#define YYBISON 1
++/* Identify Bison output, and Bison version. */
++#define YYBISON 30802
+
+-/* Bison version. */
+-#define YYBISON_VERSION "2.3"
++/* Bison version string. */
++#define YYBISON_VERSION "3.8.2"
+
+ /* Skeleton name. */
+ #define YYSKELETON_NAME "yacc.c"
+@@ -55,324 +57,17 @@
+ /* Pure parsers. */
+ #define YYPURE 0
+
+-/* Using locations. */
+-#define YYLSP_NEEDED 0
+-
++/* Push parsers. */
++#define YYPUSH 0
+
+-
+-/* Tokens. */
+-#ifndef YYTOKENTYPE
+-# define YYTOKENTYPE
+- /* Put the tokens into the symbol table, so that GDB and other debuggers
+- know about them. */
+- enum yytokentype {
+- TK_API = 258,
+- TK_AUTOPYNAME = 259,
+- TK_DEFDOCSTRFMT = 260,
+- TK_DEFDOCSTRSIG = 261,
+- TK_DEFENCODING = 262,
+- TK_PLUGIN = 263,
+- TK_VIRTERRORHANDLER = 264,
+- TK_EXPTYPEHINTCODE = 265,
+- TK_TYPEHINTCODE = 266,
+- TK_DOCSTRING = 267,
+- TK_DOC = 268,
+- TK_EXPORTEDDOC = 269,
+- TK_EXTRACT = 270,
+- TK_MAKEFILE = 271,
+- TK_ACCESSCODE = 272,
+- TK_GETCODE = 273,
+- TK_SETCODE = 274,
+- TK_PREINITCODE = 275,
+- TK_INITCODE = 276,
+- TK_POSTINITCODE = 277,
+- TK_FINALCODE = 278,
+- TK_UNITCODE = 279,
+- TK_UNITPOSTINCLUDECODE = 280,
+- TK_MODCODE = 281,
+- TK_TYPECODE = 282,
+- TK_PREPYCODE = 283,
+- TK_COPYING = 284,
+- TK_MAPPEDTYPE = 285,
+- TK_CODELINE = 286,
+- TK_IF = 287,
+- TK_END = 288,
+- TK_NAME_VALUE = 289,
+- TK_PATH_VALUE = 290,
+- TK_STRING_VALUE = 291,
+- TK_VIRTUALCATCHERCODE = 292,
+- TK_TRAVERSECODE = 293,
+- TK_CLEARCODE = 294,
+- TK_GETBUFFERCODE = 295,
+- TK_RELEASEBUFFERCODE = 296,
+- TK_READBUFFERCODE = 297,
+- TK_WRITEBUFFERCODE = 298,
+- TK_SEGCOUNTCODE = 299,
+- TK_CHARBUFFERCODE = 300,
+- TK_PICKLECODE = 301,
+- TK_VIRTUALCALLCODE = 302,
+- TK_METHODCODE = 303,
+- TK_PREMETHODCODE = 304,
+- TK_INSTANCECODE = 305,
+- TK_FROMTYPE = 306,
+- TK_TOTYPE = 307,
+- TK_TOSUBCLASS = 308,
+- TK_INCLUDE = 309,
+- TK_OPTINCLUDE = 310,
+- TK_IMPORT = 311,
+- TK_EXPHEADERCODE = 312,
+- TK_MODHEADERCODE = 313,
+- TK_TYPEHEADERCODE = 314,
+- TK_MODULE = 315,
+- TK_CMODULE = 316,
+- TK_CONSMODULE = 317,
+- TK_COMPOMODULE = 318,
+- TK_CLASS = 319,
+- TK_STRUCT = 320,
+- TK_PUBLIC = 321,
+- TK_PROTECTED = 322,
+- TK_PRIVATE = 323,
+- TK_SIGNALS = 324,
+- TK_SIGNAL_METHOD = 325,
+- TK_SLOTS = 326,
+- TK_SLOT_METHOD = 327,
+- TK_BOOL = 328,
+- TK_SHORT = 329,
+- TK_INT = 330,
+- TK_LONG = 331,
+- TK_FLOAT = 332,
+- TK_DOUBLE = 333,
+- TK_CHAR = 334,
+- TK_WCHAR_T = 335,
+- TK_VOID = 336,
+- TK_PYOBJECT = 337,
+- TK_PYTUPLE = 338,
+- TK_PYLIST = 339,
+- TK_PYDICT = 340,
+- TK_PYCALLABLE = 341,
+- TK_PYSLICE = 342,
+- TK_PYTYPE = 343,
+- TK_PYBUFFER = 344,
+- TK_VIRTUAL = 345,
+- TK_ENUM = 346,
+- TK_SIGNED = 347,
+- TK_UNSIGNED = 348,
+- TK_SCOPE = 349,
+- TK_LOGICAL_OR = 350,
+- TK_CONST = 351,
+- TK_STATIC = 352,
+- TK_SIPSIGNAL = 353,
+- TK_SIPSLOT = 354,
+- TK_SIPANYSLOT = 355,
+- TK_SIPRXCON = 356,
+- TK_SIPRXDIS = 357,
+- TK_SIPSLOTCON = 358,
+- TK_SIPSLOTDIS = 359,
+- TK_SIPSSIZET = 360,
+- TK_SIZET = 361,
+- TK_NUMBER_VALUE = 362,
+- TK_REAL_VALUE = 363,
+- TK_TYPEDEF = 364,
+- TK_NAMESPACE = 365,
+- TK_TIMELINE = 366,
+- TK_PLATFORMS = 367,
+- TK_FEATURE = 368,
+- TK_LICENSE = 369,
+- TK_QCHAR_VALUE = 370,
+- TK_TRUE_VALUE = 371,
+- TK_FALSE_VALUE = 372,
+- TK_NULL_VALUE = 373,
+- TK_OPERATOR = 374,
+- TK_THROW = 375,
+- TK_QOBJECT = 376,
+- TK_EXCEPTION = 377,
+- TK_RAISECODE = 378,
+- TK_EXPLICIT = 379,
+- TK_TEMPLATE = 380,
+- TK_FINAL = 381,
+- TK_ELLIPSIS = 382,
+- TK_DEFMETATYPE = 383,
+- TK_DEFSUPERTYPE = 384,
+- TK_PROPERTY = 385,
+- TK_HIDE_NS = 386,
+- TK_FORMAT = 387,
+- TK_GET = 388,
+- TK_ID = 389,
+- TK_KWARGS = 390,
+- TK_LANGUAGE = 391,
+- TK_LICENSEE = 392,
+- TK_NAME = 393,
+- TK_OPTIONAL = 394,
+- TK_ORDER = 395,
+- TK_REMOVELEADING = 396,
+- TK_SET = 397,
+- TK_SIGNATURE = 398,
+- TK_TIMESTAMP = 399,
+- TK_TYPE = 400,
+- TK_USEARGNAMES = 401,
+- TK_USELIMITEDAPI = 402,
+- TK_ALLRAISEPYEXC = 403,
+- TK_CALLSUPERINIT = 404,
+- TK_DEFERRORHANDLER = 405,
+- TK_VERSION = 406
+- };
+-#endif
+-/* Tokens. */
+-#define TK_API 258
+-#define TK_AUTOPYNAME 259
+-#define TK_DEFDOCSTRFMT 260
+-#define TK_DEFDOCSTRSIG 261
+-#define TK_DEFENCODING 262
+-#define TK_PLUGIN 263
+-#define TK_VIRTERRORHANDLER 264
+-#define TK_EXPTYPEHINTCODE 265
+-#define TK_TYPEHINTCODE 266
+-#define TK_DOCSTRING 267
+-#define TK_DOC 268
+-#define TK_EXPORTEDDOC 269
+-#define TK_EXTRACT 270
+-#define TK_MAKEFILE 271
+-#define TK_ACCESSCODE 272
+-#define TK_GETCODE 273
+-#define TK_SETCODE 274
+-#define TK_PREINITCODE 275
+-#define TK_INITCODE 276
+-#define TK_POSTINITCODE 277
+-#define TK_FINALCODE 278
+-#define TK_UNITCODE 279
+-#define TK_UNITPOSTINCLUDECODE 280
+-#define TK_MODCODE 281
+-#define TK_TYPECODE 282
+-#define TK_PREPYCODE 283
+-#define TK_COPYING 284
+-#define TK_MAPPEDTYPE 285
+-#define TK_CODELINE 286
+-#define TK_IF 287
+-#define TK_END 288
+-#define TK_NAME_VALUE 289
+-#define TK_PATH_VALUE 290
+-#define TK_STRING_VALUE 291
+-#define TK_VIRTUALCATCHERCODE 292
+-#define TK_TRAVERSECODE 293
+-#define TK_CLEARCODE 294
+-#define TK_GETBUFFERCODE 295
+-#define TK_RELEASEBUFFERCODE 296
+-#define TK_READBUFFERCODE 297
+-#define TK_WRITEBUFFERCODE 298
+-#define TK_SEGCOUNTCODE 299
+-#define TK_CHARBUFFERCODE 300
+-#define TK_PICKLECODE 301
+-#define TK_VIRTUALCALLCODE 302
+-#define TK_METHODCODE 303
+-#define TK_PREMETHODCODE 304
+-#define TK_INSTANCECODE 305
+-#define TK_FROMTYPE 306
+-#define TK_TOTYPE 307
+-#define TK_TOSUBCLASS 308
+-#define TK_INCLUDE 309
+-#define TK_OPTINCLUDE 310
+-#define TK_IMPORT 311
+-#define TK_EXPHEADERCODE 312
+-#define TK_MODHEADERCODE 313
+-#define TK_TYPEHEADERCODE 314
+-#define TK_MODULE 315
+-#define TK_CMODULE 316
+-#define TK_CONSMODULE 317
+-#define TK_COMPOMODULE 318
+-#define TK_CLASS 319
+-#define TK_STRUCT 320
+-#define TK_PUBLIC 321
+-#define TK_PROTECTED 322
+-#define TK_PRIVATE 323
+-#define TK_SIGNALS 324
+-#define TK_SIGNAL_METHOD 325
+-#define TK_SLOTS 326
+-#define TK_SLOT_METHOD 327
+-#define TK_BOOL 328
+-#define TK_SHORT 329
+-#define TK_INT 330
+-#define TK_LONG 331
+-#define TK_FLOAT 332
+-#define TK_DOUBLE 333
+-#define TK_CHAR 334
+-#define TK_WCHAR_T 335
+-#define TK_VOID 336
+-#define TK_PYOBJECT 337
+-#define TK_PYTUPLE 338
+-#define TK_PYLIST 339
+-#define TK_PYDICT 340
+-#define TK_PYCALLABLE 341
+-#define TK_PYSLICE 342
+-#define TK_PYTYPE 343
+-#define TK_PYBUFFER 344
+-#define TK_VIRTUAL 345
+-#define TK_ENUM 346
+-#define TK_SIGNED 347
+-#define TK_UNSIGNED 348
+-#define TK_SCOPE 349
+-#define TK_LOGICAL_OR 350
+-#define TK_CONST 351
+-#define TK_STATIC 352
+-#define TK_SIPSIGNAL 353
+-#define TK_SIPSLOT 354
+-#define TK_SIPANYSLOT 355
+-#define TK_SIPRXCON 356
+-#define TK_SIPRXDIS 357
+-#define TK_SIPSLOTCON 358
+-#define TK_SIPSLOTDIS 359
+-#define TK_SIPSSIZET 360
+-#define TK_SIZET 361
+-#define TK_NUMBER_VALUE 362
+-#define TK_REAL_VALUE 363
+-#define TK_TYPEDEF 364
+-#define TK_NAMESPACE 365
+-#define TK_TIMELINE 366
+-#define TK_PLATFORMS 367
+-#define TK_FEATURE 368
+-#define TK_LICENSE 369
+-#define TK_QCHAR_VALUE 370
+-#define TK_TRUE_VALUE 371
+-#define TK_FALSE_VALUE 372
+-#define TK_NULL_VALUE 373
+-#define TK_OPERATOR 374
+-#define TK_THROW 375
+-#define TK_QOBJECT 376
+-#define TK_EXCEPTION 377
+-#define TK_RAISECODE 378
+-#define TK_EXPLICIT 379
+-#define TK_TEMPLATE 380
+-#define TK_FINAL 381
+-#define TK_ELLIPSIS 382
+-#define TK_DEFMETATYPE 383
+-#define TK_DEFSUPERTYPE 384
+-#define TK_PROPERTY 385
+-#define TK_HIDE_NS 386
+-#define TK_FORMAT 387
+-#define TK_GET 388
+-#define TK_ID 389
+-#define TK_KWARGS 390
+-#define TK_LANGUAGE 391
+-#define TK_LICENSEE 392
+-#define TK_NAME 393
+-#define TK_OPTIONAL 394
+-#define TK_ORDER 395
+-#define TK_REMOVELEADING 396
+-#define TK_SET 397
+-#define TK_SIGNATURE 398
+-#define TK_TIMESTAMP 399
+-#define TK_TYPE 400
+-#define TK_USEARGNAMES 401
+-#define TK_USELIMITEDAPI 402
+-#define TK_ALLRAISEPYEXC 403
+-#define TK_CALLSUPERINIT 404
+-#define TK_DEFERRORHANDLER 405
+-#define TK_VERSION 406
++/* Pull parsers. */
++#define YYPULL 1
+
+
+
+
+-/* Copy the first part of user declarations. */
+-#line 19 "sip-4.19.23/sipgen/metasrc/parser.y"
++/* First part of user prologue. */
++#line 19 "parser.y"
+
+ #include <stdlib.h>
+ #include <string.h>
+@@ -539,9 +234,9 @@ static void addProperty(sipSpec *pt, mod
+ docstringDef *docstring);
+ static moduleDef *configureModule(sipSpec *pt, moduleDef *module,
+ const char *filename, const char *name, int c_module, KwArgs kwargs,
+- int use_arg_names, int use_limited_api, int call_super_init,
+- int all_raise_py_exc, const char *def_error_handler,
+- docstringDef *docstring);
++ int use_arg_names, int py_ssize_t_clean, int use_limited_api,
++ int call_super_init, int all_raise_py_exc,
++ const char *def_error_handler, docstringDef *docstring);
+ static void addAutoPyName(moduleDef *mod, const char *remove_leading);
+ static KwArgs convertKwArgs(const char *kwargs);
+ static void checkAnnos(optFlags *annos, const char *valid[]);
+@@ -555,117 +250,555 @@ static int isBackstop(qualDef *qd);
+ static void checkEllipsis(signatureDef *sd);
+ static scopedNameDef *fullyQualifiedName(scopedNameDef *snd);
+
++#line 254 "../parser.c"
+
+-/* Enabling traces. */
+-#ifndef YYDEBUG
+-# define YYDEBUG 0
+-#endif
+-
+-/* Enabling verbose error messages. */
+-#ifdef YYERROR_VERBOSE
+-# undef YYERROR_VERBOSE
+-# define YYERROR_VERBOSE 1
+-#else
+-# define YYERROR_VERBOSE 0
+-#endif
+-
+-/* Enabling the token table. */
+-#ifndef YYTOKEN_TABLE
+-# define YYTOKEN_TABLE 0
+-#endif
+-
+-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+-typedef union YYSTYPE
+-#line 202 "sip-4.19.23/sipgen/metasrc/parser.y"
+-{
+- char qchar;
+- char *text;
+- long number;
+- double real;
+- argDef memArg;
+- signatureDef signature;
+- signatureDef *optsignature;
+- throwArgs *throwlist;
+- codeBlock *codeb;
+- docstringDef *docstr;
+- valueDef value;
+- valueDef *valp;
+- optFlags optflags;
+- optFlag flag;
+- scopedNameDef *scpvalp;
+- fcallDef fcall;
+- int boolean;
+- exceptionDef exceptionbase;
+- classDef *klass;
+- apiCfg api;
+- autoPyNameCfg autopyname;
+- compModuleCfg compmodule;
+- consModuleCfg consmodule;
+- defDocstringFmtCfg defdocstringfmt;
+- defDocstringSigCfg defdocstringsig;
+- defEncodingCfg defencoding;
+- defMetatypeCfg defmetatype;
+- defSupertypeCfg defsupertype;
+- hiddenNsCfg hiddenns;
+- exceptionCfg exception;
+- docstringCfg docstring;
+- extractCfg extract;
+- featureCfg feature;
+- licenseCfg license;
+- importCfg import;
+- includeCfg include;
+- moduleCfg module;
+- pluginCfg plugin;
+- propertyCfg property;
+- variableCfg variable;
+- vehCfg veh;
+- int token;
+-}
+-/* Line 193 of yacc.c. */
+-#line 626 "sip-4.19.23/sipgen/parser.c"
+- YYSTYPE;
+-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+-# define YYSTYPE_IS_DECLARED 1
+-# define YYSTYPE_IS_TRIVIAL 1
+-#endif
+-
++# ifndef YY_CAST
++# ifdef __cplusplus
++# define YY_CAST(Type, Val) static_cast<Type> (Val)
++# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
++# else
++# define YY_CAST(Type, Val) ((Type) (Val))
++# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
++# endif
++# endif
++# ifndef YY_NULLPTR
++# if defined __cplusplus
++# if 201103L <= __cplusplus
++# define YY_NULLPTR nullptr
++# else
++# define YY_NULLPTR 0
++# endif
++# else
++# define YY_NULLPTR ((void*)0)
++# endif
++# endif
+
++#include "parser.h"
++/* Symbol kind. */
++enum yysymbol_kind_t
++{
++ YYSYMBOL_YYEMPTY = -2,
++ YYSYMBOL_YYEOF = 0, /* "end of file" */
++ YYSYMBOL_YYerror = 1, /* error */
++ YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
++ YYSYMBOL_TK_API = 3, /* TK_API */
++ YYSYMBOL_TK_AUTOPYNAME = 4, /* TK_AUTOPYNAME */
++ YYSYMBOL_TK_DEFDOCSTRFMT = 5, /* TK_DEFDOCSTRFMT */
++ YYSYMBOL_TK_DEFDOCSTRSIG = 6, /* TK_DEFDOCSTRSIG */
++ YYSYMBOL_TK_DEFENCODING = 7, /* TK_DEFENCODING */
++ YYSYMBOL_TK_PLUGIN = 8, /* TK_PLUGIN */
++ YYSYMBOL_TK_VIRTERRORHANDLER = 9, /* TK_VIRTERRORHANDLER */
++ YYSYMBOL_TK_EXPTYPEHINTCODE = 10, /* TK_EXPTYPEHINTCODE */
++ YYSYMBOL_TK_TYPEHINTCODE = 11, /* TK_TYPEHINTCODE */
++ YYSYMBOL_TK_DOCSTRING = 12, /* TK_DOCSTRING */
++ YYSYMBOL_TK_DOC = 13, /* TK_DOC */
++ YYSYMBOL_TK_EXPORTEDDOC = 14, /* TK_EXPORTEDDOC */
++ YYSYMBOL_TK_EXTRACT = 15, /* TK_EXTRACT */
++ YYSYMBOL_TK_MAKEFILE = 16, /* TK_MAKEFILE */
++ YYSYMBOL_TK_ACCESSCODE = 17, /* TK_ACCESSCODE */
++ YYSYMBOL_TK_GETCODE = 18, /* TK_GETCODE */
++ YYSYMBOL_TK_SETCODE = 19, /* TK_SETCODE */
++ YYSYMBOL_TK_PREINITCODE = 20, /* TK_PREINITCODE */
++ YYSYMBOL_TK_INITCODE = 21, /* TK_INITCODE */
++ YYSYMBOL_TK_POSTINITCODE = 22, /* TK_POSTINITCODE */
++ YYSYMBOL_TK_FINALCODE = 23, /* TK_FINALCODE */
++ YYSYMBOL_TK_UNITCODE = 24, /* TK_UNITCODE */
++ YYSYMBOL_TK_UNITPOSTINCLUDECODE = 25, /* TK_UNITPOSTINCLUDECODE */
++ YYSYMBOL_TK_MODCODE = 26, /* TK_MODCODE */
++ YYSYMBOL_TK_TYPECODE = 27, /* TK_TYPECODE */
++ YYSYMBOL_TK_PREPYCODE = 28, /* TK_PREPYCODE */
++ YYSYMBOL_TK_COPYING = 29, /* TK_COPYING */
++ YYSYMBOL_TK_MAPPEDTYPE = 30, /* TK_MAPPEDTYPE */
++ YYSYMBOL_TK_CODELINE = 31, /* TK_CODELINE */
++ YYSYMBOL_TK_IF = 32, /* TK_IF */
++ YYSYMBOL_TK_END = 33, /* TK_END */
++ YYSYMBOL_TK_NAME_VALUE = 34, /* TK_NAME_VALUE */
++ YYSYMBOL_TK_PATH_VALUE = 35, /* TK_PATH_VALUE */
++ YYSYMBOL_TK_STRING_VALUE = 36, /* TK_STRING_VALUE */
++ YYSYMBOL_TK_VIRTUALCATCHERCODE = 37, /* TK_VIRTUALCATCHERCODE */
++ YYSYMBOL_TK_TRAVERSECODE = 38, /* TK_TRAVERSECODE */
++ YYSYMBOL_TK_CLEARCODE = 39, /* TK_CLEARCODE */
++ YYSYMBOL_TK_GETBUFFERCODE = 40, /* TK_GETBUFFERCODE */
++ YYSYMBOL_TK_RELEASEBUFFERCODE = 41, /* TK_RELEASEBUFFERCODE */
++ YYSYMBOL_TK_READBUFFERCODE = 42, /* TK_READBUFFERCODE */
++ YYSYMBOL_TK_WRITEBUFFERCODE = 43, /* TK_WRITEBUFFERCODE */
++ YYSYMBOL_TK_SEGCOUNTCODE = 44, /* TK_SEGCOUNTCODE */
++ YYSYMBOL_TK_CHARBUFFERCODE = 45, /* TK_CHARBUFFERCODE */
++ YYSYMBOL_TK_PICKLECODE = 46, /* TK_PICKLECODE */
++ YYSYMBOL_TK_VIRTUALCALLCODE = 47, /* TK_VIRTUALCALLCODE */
++ YYSYMBOL_TK_METHODCODE = 48, /* TK_METHODCODE */
++ YYSYMBOL_TK_PREMETHODCODE = 49, /* TK_PREMETHODCODE */
++ YYSYMBOL_TK_INSTANCECODE = 50, /* TK_INSTANCECODE */
++ YYSYMBOL_TK_FROMTYPE = 51, /* TK_FROMTYPE */
++ YYSYMBOL_TK_TOTYPE = 52, /* TK_TOTYPE */
++ YYSYMBOL_TK_TOSUBCLASS = 53, /* TK_TOSUBCLASS */
++ YYSYMBOL_TK_INCLUDE = 54, /* TK_INCLUDE */
++ YYSYMBOL_TK_OPTINCLUDE = 55, /* TK_OPTINCLUDE */
++ YYSYMBOL_TK_IMPORT = 56, /* TK_IMPORT */
++ YYSYMBOL_TK_EXPHEADERCODE = 57, /* TK_EXPHEADERCODE */
++ YYSYMBOL_TK_MODHEADERCODE = 58, /* TK_MODHEADERCODE */
++ YYSYMBOL_TK_TYPEHEADERCODE = 59, /* TK_TYPEHEADERCODE */
++ YYSYMBOL_TK_MODULE = 60, /* TK_MODULE */
++ YYSYMBOL_TK_CMODULE = 61, /* TK_CMODULE */
++ YYSYMBOL_TK_CONSMODULE = 62, /* TK_CONSMODULE */
++ YYSYMBOL_TK_COMPOMODULE = 63, /* TK_COMPOMODULE */
++ YYSYMBOL_TK_CLASS = 64, /* TK_CLASS */
++ YYSYMBOL_TK_STRUCT = 65, /* TK_STRUCT */
++ YYSYMBOL_TK_PUBLIC = 66, /* TK_PUBLIC */
++ YYSYMBOL_TK_PROTECTED = 67, /* TK_PROTECTED */
++ YYSYMBOL_TK_PRIVATE = 68, /* TK_PRIVATE */
++ YYSYMBOL_TK_SIGNALS = 69, /* TK_SIGNALS */
++ YYSYMBOL_TK_SIGNAL_METHOD = 70, /* TK_SIGNAL_METHOD */
++ YYSYMBOL_TK_SLOTS = 71, /* TK_SLOTS */
++ YYSYMBOL_TK_SLOT_METHOD = 72, /* TK_SLOT_METHOD */
++ YYSYMBOL_TK_BOOL = 73, /* TK_BOOL */
++ YYSYMBOL_TK_SHORT = 74, /* TK_SHORT */
++ YYSYMBOL_TK_INT = 75, /* TK_INT */
++ YYSYMBOL_TK_LONG = 76, /* TK_LONG */
++ YYSYMBOL_TK_FLOAT = 77, /* TK_FLOAT */
++ YYSYMBOL_TK_DOUBLE = 78, /* TK_DOUBLE */
++ YYSYMBOL_TK_CHAR = 79, /* TK_CHAR */
++ YYSYMBOL_TK_WCHAR_T = 80, /* TK_WCHAR_T */
++ YYSYMBOL_TK_VOID = 81, /* TK_VOID */
++ YYSYMBOL_TK_PYOBJECT = 82, /* TK_PYOBJECT */
++ YYSYMBOL_TK_PYTUPLE = 83, /* TK_PYTUPLE */
++ YYSYMBOL_TK_PYLIST = 84, /* TK_PYLIST */
++ YYSYMBOL_TK_PYDICT = 85, /* TK_PYDICT */
++ YYSYMBOL_TK_PYCALLABLE = 86, /* TK_PYCALLABLE */
++ YYSYMBOL_TK_PYSLICE = 87, /* TK_PYSLICE */
++ YYSYMBOL_TK_PYTYPE = 88, /* TK_PYTYPE */
++ YYSYMBOL_TK_PYBUFFER = 89, /* TK_PYBUFFER */
++ YYSYMBOL_TK_VIRTUAL = 90, /* TK_VIRTUAL */
++ YYSYMBOL_TK_ENUM = 91, /* TK_ENUM */
++ YYSYMBOL_TK_SIGNED = 92, /* TK_SIGNED */
++ YYSYMBOL_TK_UNSIGNED = 93, /* TK_UNSIGNED */
++ YYSYMBOL_TK_SCOPE = 94, /* TK_SCOPE */
++ YYSYMBOL_TK_LOGICAL_OR = 95, /* TK_LOGICAL_OR */
++ YYSYMBOL_TK_CONST = 96, /* TK_CONST */
++ YYSYMBOL_TK_STATIC = 97, /* TK_STATIC */
++ YYSYMBOL_TK_SIPSIGNAL = 98, /* TK_SIPSIGNAL */
++ YYSYMBOL_TK_SIPSLOT = 99, /* TK_SIPSLOT */
++ YYSYMBOL_TK_SIPANYSLOT = 100, /* TK_SIPANYSLOT */
++ YYSYMBOL_TK_SIPRXCON = 101, /* TK_SIPRXCON */
++ YYSYMBOL_TK_SIPRXDIS = 102, /* TK_SIPRXDIS */
++ YYSYMBOL_TK_SIPSLOTCON = 103, /* TK_SIPSLOTCON */
++ YYSYMBOL_TK_SIPSLOTDIS = 104, /* TK_SIPSLOTDIS */
++ YYSYMBOL_TK_SIPSSIZET = 105, /* TK_SIPSSIZET */
++ YYSYMBOL_TK_SIZET = 106, /* TK_SIZET */
++ YYSYMBOL_TK_NUMBER_VALUE = 107, /* TK_NUMBER_VALUE */
++ YYSYMBOL_TK_REAL_VALUE = 108, /* TK_REAL_VALUE */
++ YYSYMBOL_TK_TYPEDEF = 109, /* TK_TYPEDEF */
++ YYSYMBOL_TK_NAMESPACE = 110, /* TK_NAMESPACE */
++ YYSYMBOL_TK_TIMELINE = 111, /* TK_TIMELINE */
++ YYSYMBOL_TK_PLATFORMS = 112, /* TK_PLATFORMS */
++ YYSYMBOL_TK_FEATURE = 113, /* TK_FEATURE */
++ YYSYMBOL_TK_LICENSE = 114, /* TK_LICENSE */
++ YYSYMBOL_TK_QCHAR_VALUE = 115, /* TK_QCHAR_VALUE */
++ YYSYMBOL_TK_TRUE_VALUE = 116, /* TK_TRUE_VALUE */
++ YYSYMBOL_TK_FALSE_VALUE = 117, /* TK_FALSE_VALUE */
++ YYSYMBOL_TK_NULL_VALUE = 118, /* TK_NULL_VALUE */
++ YYSYMBOL_TK_OPERATOR = 119, /* TK_OPERATOR */
++ YYSYMBOL_TK_THROW = 120, /* TK_THROW */
++ YYSYMBOL_TK_QOBJECT = 121, /* TK_QOBJECT */
++ YYSYMBOL_TK_EXCEPTION = 122, /* TK_EXCEPTION */
++ YYSYMBOL_TK_RAISECODE = 123, /* TK_RAISECODE */
++ YYSYMBOL_TK_EXPLICIT = 124, /* TK_EXPLICIT */
++ YYSYMBOL_TK_TEMPLATE = 125, /* TK_TEMPLATE */
++ YYSYMBOL_TK_FINAL = 126, /* TK_FINAL */
++ YYSYMBOL_TK_ELLIPSIS = 127, /* TK_ELLIPSIS */
++ YYSYMBOL_TK_DEFMETATYPE = 128, /* TK_DEFMETATYPE */
++ YYSYMBOL_TK_DEFSUPERTYPE = 129, /* TK_DEFSUPERTYPE */
++ YYSYMBOL_TK_PROPERTY = 130, /* TK_PROPERTY */
++ YYSYMBOL_TK_HIDE_NS = 131, /* TK_HIDE_NS */
++ YYSYMBOL_TK_FORMAT = 132, /* TK_FORMAT */
++ YYSYMBOL_TK_GET = 133, /* TK_GET */
++ YYSYMBOL_TK_ID = 134, /* TK_ID */
++ YYSYMBOL_TK_KWARGS = 135, /* TK_KWARGS */
++ YYSYMBOL_TK_LANGUAGE = 136, /* TK_LANGUAGE */
++ YYSYMBOL_TK_LICENSEE = 137, /* TK_LICENSEE */
++ YYSYMBOL_TK_NAME = 138, /* TK_NAME */
++ YYSYMBOL_TK_OPTIONAL = 139, /* TK_OPTIONAL */
++ YYSYMBOL_TK_ORDER = 140, /* TK_ORDER */
++ YYSYMBOL_TK_REMOVELEADING = 141, /* TK_REMOVELEADING */
++ YYSYMBOL_TK_SET = 142, /* TK_SET */
++ YYSYMBOL_TK_SIGNATURE = 143, /* TK_SIGNATURE */
++ YYSYMBOL_TK_TIMESTAMP = 144, /* TK_TIMESTAMP */
++ YYSYMBOL_TK_TYPE = 145, /* TK_TYPE */
++ YYSYMBOL_TK_USEARGNAMES = 146, /* TK_USEARGNAMES */
++ YYSYMBOL_TK_PYSSIZETCLEAN = 147, /* TK_PYSSIZETCLEAN */
++ YYSYMBOL_TK_USELIMITEDAPI = 148, /* TK_USELIMITEDAPI */
++ YYSYMBOL_TK_ALLRAISEPYEXC = 149, /* TK_ALLRAISEPYEXC */
++ YYSYMBOL_TK_CALLSUPERINIT = 150, /* TK_CALLSUPERINIT */
++ YYSYMBOL_TK_DEFERRORHANDLER = 151, /* TK_DEFERRORHANDLER */
++ YYSYMBOL_TK_VERSION = 152, /* TK_VERSION */
++ YYSYMBOL_153_ = 153, /* '(' */
++ YYSYMBOL_154_ = 154, /* ')' */
++ YYSYMBOL_155_ = 155, /* ',' */
++ YYSYMBOL_156_ = 156, /* '=' */
++ YYSYMBOL_157_ = 157, /* '{' */
++ YYSYMBOL_158_ = 158, /* '}' */
++ YYSYMBOL_159_ = 159, /* ';' */
++ YYSYMBOL_160_ = 160, /* '!' */
++ YYSYMBOL_161_ = 161, /* '-' */
++ YYSYMBOL_162_ = 162, /* '+' */
++ YYSYMBOL_163_ = 163, /* '*' */
++ YYSYMBOL_164_ = 164, /* '/' */
++ YYSYMBOL_165_ = 165, /* '&' */
++ YYSYMBOL_166_ = 166, /* '|' */
++ YYSYMBOL_167_ = 167, /* '~' */
++ YYSYMBOL_168_ = 168, /* '<' */
++ YYSYMBOL_169_ = 169, /* '>' */
++ YYSYMBOL_170_ = 170, /* ':' */
++ YYSYMBOL_171_ = 171, /* '[' */
++ YYSYMBOL_172_ = 172, /* ']' */
++ YYSYMBOL_173_ = 173, /* '%' */
++ YYSYMBOL_174_ = 174, /* '^' */
++ YYSYMBOL_YYACCEPT = 175, /* $accept */
++ YYSYMBOL_specification = 176, /* specification */
++ YYSYMBOL_statement = 177, /* statement */
++ YYSYMBOL_178_1 = 178, /* $@1 */
++ YYSYMBOL_modstatement = 179, /* modstatement */
++ YYSYMBOL_nsstatement = 180, /* nsstatement */
++ YYSYMBOL_defdocstringfmt = 181, /* defdocstringfmt */
++ YYSYMBOL_defdocstringfmt_args = 182, /* defdocstringfmt_args */
++ YYSYMBOL_defdocstringfmt_arg_list = 183, /* defdocstringfmt_arg_list */
++ YYSYMBOL_defdocstringfmt_arg = 184, /* defdocstringfmt_arg */
++ YYSYMBOL_defdocstringsig = 185, /* defdocstringsig */
++ YYSYMBOL_defdocstringsig_args = 186, /* defdocstringsig_args */
++ YYSYMBOL_defdocstringsig_arg_list = 187, /* defdocstringsig_arg_list */
++ YYSYMBOL_defdocstringsig_arg = 188, /* defdocstringsig_arg */
++ YYSYMBOL_defencoding = 189, /* defencoding */
++ YYSYMBOL_defencoding_args = 190, /* defencoding_args */
++ YYSYMBOL_defencoding_arg_list = 191, /* defencoding_arg_list */
++ YYSYMBOL_defencoding_arg = 192, /* defencoding_arg */
++ YYSYMBOL_plugin = 193, /* plugin */
++ YYSYMBOL_plugin_args = 194, /* plugin_args */
++ YYSYMBOL_plugin_arg_list = 195, /* plugin_arg_list */
++ YYSYMBOL_plugin_arg = 196, /* plugin_arg */
++ YYSYMBOL_virterrorhandler = 197, /* virterrorhandler */
++ YYSYMBOL_veh_args = 198, /* veh_args */
++ YYSYMBOL_veh_arg_list = 199, /* veh_arg_list */
++ YYSYMBOL_veh_arg = 200, /* veh_arg */
++ YYSYMBOL_api = 201, /* api */
++ YYSYMBOL_api_args = 202, /* api_args */
++ YYSYMBOL_api_arg_list = 203, /* api_arg_list */
++ YYSYMBOL_api_arg = 204, /* api_arg */
++ YYSYMBOL_exception = 205, /* exception */
++ YYSYMBOL_baseexception = 206, /* baseexception */
++ YYSYMBOL_exception_body = 207, /* exception_body */
++ YYSYMBOL_exception_body_directives = 208, /* exception_body_directives */
++ YYSYMBOL_exception_body_directive = 209, /* exception_body_directive */
++ YYSYMBOL_raisecode = 210, /* raisecode */
++ YYSYMBOL_mappedtype = 211, /* mappedtype */
++ YYSYMBOL_212_2 = 212, /* $@2 */
++ YYSYMBOL_mappedtypetmpl = 213, /* mappedtypetmpl */
++ YYSYMBOL_214_3 = 214, /* $@3 */
++ YYSYMBOL_mtdefinition = 215, /* mtdefinition */
++ YYSYMBOL_mtbody = 216, /* mtbody */
++ YYSYMBOL_mtline = 217, /* mtline */
++ YYSYMBOL_mtfunction = 218, /* mtfunction */
++ YYSYMBOL_namespace = 219, /* namespace */
++ YYSYMBOL_220_4 = 220, /* $@4 */
++ YYSYMBOL_optnsbody = 221, /* optnsbody */
++ YYSYMBOL_nsbody = 222, /* nsbody */
++ YYSYMBOL_platforms = 223, /* platforms */
++ YYSYMBOL_224_5 = 224, /* $@5 */
++ YYSYMBOL_platformlist = 225, /* platformlist */
++ YYSYMBOL_platform = 226, /* platform */
++ YYSYMBOL_feature = 227, /* feature */
++ YYSYMBOL_feature_args = 228, /* feature_args */
++ YYSYMBOL_feature_arg_list = 229, /* feature_arg_list */
++ YYSYMBOL_feature_arg = 230, /* feature_arg */
++ YYSYMBOL_timeline = 231, /* timeline */
++ YYSYMBOL_232_6 = 232, /* $@6 */
++ YYSYMBOL_qualifierlist = 233, /* qualifierlist */
++ YYSYMBOL_qualifiername = 234, /* qualifiername */
++ YYSYMBOL_ifstart = 235, /* ifstart */
++ YYSYMBOL_236_7 = 236, /* $@7 */
++ YYSYMBOL_oredqualifiers = 237, /* oredqualifiers */
++ YYSYMBOL_qualifiers = 238, /* qualifiers */
++ YYSYMBOL_ifend = 239, /* ifend */
++ YYSYMBOL_license = 240, /* license */
++ YYSYMBOL_license_args = 241, /* license_args */
++ YYSYMBOL_license_arg_list = 242, /* license_arg_list */
++ YYSYMBOL_license_arg = 243, /* license_arg */
++ YYSYMBOL_defmetatype = 244, /* defmetatype */
++ YYSYMBOL_defmetatype_args = 245, /* defmetatype_args */
++ YYSYMBOL_defmetatype_arg_list = 246, /* defmetatype_arg_list */
++ YYSYMBOL_defmetatype_arg = 247, /* defmetatype_arg */
++ YYSYMBOL_defsupertype = 248, /* defsupertype */
++ YYSYMBOL_defsupertype_args = 249, /* defsupertype_args */
++ YYSYMBOL_defsupertype_arg_list = 250, /* defsupertype_arg_list */
++ YYSYMBOL_defsupertype_arg = 251, /* defsupertype_arg */
++ YYSYMBOL_hiddenns = 252, /* hiddenns */
++ YYSYMBOL_hiddenns_args = 253, /* hiddenns_args */
++ YYSYMBOL_hiddenns_arg_list = 254, /* hiddenns_arg_list */
++ YYSYMBOL_hiddenns_arg = 255, /* hiddenns_arg */
++ YYSYMBOL_consmodule = 256, /* consmodule */
++ YYSYMBOL_consmodule_args = 257, /* consmodule_args */
++ YYSYMBOL_consmodule_arg_list = 258, /* consmodule_arg_list */
++ YYSYMBOL_consmodule_arg = 259, /* consmodule_arg */
++ YYSYMBOL_consmodule_body = 260, /* consmodule_body */
++ YYSYMBOL_consmodule_body_directives = 261, /* consmodule_body_directives */
++ YYSYMBOL_consmodule_body_directive = 262, /* consmodule_body_directive */
++ YYSYMBOL_compmodule = 263, /* compmodule */
++ YYSYMBOL_compmodule_args = 264, /* compmodule_args */
++ YYSYMBOL_compmodule_arg_list = 265, /* compmodule_arg_list */
++ YYSYMBOL_compmodule_arg = 266, /* compmodule_arg */
++ YYSYMBOL_compmodule_body = 267, /* compmodule_body */
++ YYSYMBOL_compmodule_body_directives = 268, /* compmodule_body_directives */
++ YYSYMBOL_compmodule_body_directive = 269, /* compmodule_body_directive */
++ YYSYMBOL_module = 270, /* module */
++ YYSYMBOL_module_args = 271, /* module_args */
++ YYSYMBOL_272_8 = 272, /* $@8 */
++ YYSYMBOL_module_arg_list = 273, /* module_arg_list */
++ YYSYMBOL_module_arg = 274, /* module_arg */
++ YYSYMBOL_module_body = 275, /* module_body */
++ YYSYMBOL_module_body_directives = 276, /* module_body_directives */
++ YYSYMBOL_module_body_directive = 277, /* module_body_directive */
++ YYSYMBOL_dottedname = 278, /* dottedname */
++ YYSYMBOL_optnumber = 279, /* optnumber */
++ YYSYMBOL_include = 280, /* include */
++ YYSYMBOL_include_args = 281, /* include_args */
++ YYSYMBOL_include_arg_list = 282, /* include_arg_list */
++ YYSYMBOL_include_arg = 283, /* include_arg */
++ YYSYMBOL_optinclude = 284, /* optinclude */
++ YYSYMBOL_import = 285, /* import */
++ YYSYMBOL_import_args = 286, /* import_args */
++ YYSYMBOL_import_arg_list = 287, /* import_arg_list */
++ YYSYMBOL_import_arg = 288, /* import_arg */
++ YYSYMBOL_optaccesscode = 289, /* optaccesscode */
++ YYSYMBOL_optgetcode = 290, /* optgetcode */
++ YYSYMBOL_optsetcode = 291, /* optsetcode */
++ YYSYMBOL_copying = 292, /* copying */
++ YYSYMBOL_exphdrcode = 293, /* exphdrcode */
++ YYSYMBOL_modhdrcode = 294, /* modhdrcode */
++ YYSYMBOL_typehdrcode = 295, /* typehdrcode */
++ YYSYMBOL_travcode = 296, /* travcode */
++ YYSYMBOL_clearcode = 297, /* clearcode */
++ YYSYMBOL_getbufcode = 298, /* getbufcode */
++ YYSYMBOL_releasebufcode = 299, /* releasebufcode */
++ YYSYMBOL_readbufcode = 300, /* readbufcode */
++ YYSYMBOL_writebufcode = 301, /* writebufcode */
++ YYSYMBOL_segcountcode = 302, /* segcountcode */
++ YYSYMBOL_charbufcode = 303, /* charbufcode */
++ YYSYMBOL_instancecode = 304, /* instancecode */
++ YYSYMBOL_picklecode = 305, /* picklecode */
++ YYSYMBOL_finalcode = 306, /* finalcode */
++ YYSYMBOL_modcode = 307, /* modcode */
++ YYSYMBOL_typecode = 308, /* typecode */
++ YYSYMBOL_preinitcode = 309, /* preinitcode */
++ YYSYMBOL_initcode = 310, /* initcode */
++ YYSYMBOL_postinitcode = 311, /* postinitcode */
++ YYSYMBOL_unitcode = 312, /* unitcode */
++ YYSYMBOL_unitpostinccode = 313, /* unitpostinccode */
++ YYSYMBOL_prepycode = 314, /* prepycode */
++ YYSYMBOL_exptypehintcode = 315, /* exptypehintcode */
++ YYSYMBOL_modtypehintcode = 316, /* modtypehintcode */
++ YYSYMBOL_classtypehintcode = 317, /* classtypehintcode */
++ YYSYMBOL_doc = 318, /* doc */
++ YYSYMBOL_exporteddoc = 319, /* exporteddoc */
++ YYSYMBOL_autopyname = 320, /* autopyname */
++ YYSYMBOL_autopyname_args = 321, /* autopyname_args */
++ YYSYMBOL_autopyname_arg_list = 322, /* autopyname_arg_list */
++ YYSYMBOL_autopyname_arg = 323, /* autopyname_arg */
++ YYSYMBOL_docstring = 324, /* docstring */
++ YYSYMBOL_docstring_args = 325, /* docstring_args */
++ YYSYMBOL_docstring_arg_list = 326, /* docstring_arg_list */
++ YYSYMBOL_docstring_arg = 327, /* docstring_arg */
++ YYSYMBOL_optdocstring = 328, /* optdocstring */
++ YYSYMBOL_extract = 329, /* extract */
++ YYSYMBOL_extract_args = 330, /* extract_args */
++ YYSYMBOL_extract_arg_list = 331, /* extract_arg_list */
++ YYSYMBOL_extract_arg = 332, /* extract_arg */
++ YYSYMBOL_makefile = 333, /* makefile */
++ YYSYMBOL_codeblock = 334, /* codeblock */
++ YYSYMBOL_codelines = 335, /* codelines */
++ YYSYMBOL_enum = 336, /* enum */
++ YYSYMBOL_337_9 = 337, /* $@9 */
++ YYSYMBOL_optenumkey = 338, /* optenumkey */
++ YYSYMBOL_optfilename = 339, /* optfilename */
++ YYSYMBOL_optname = 340, /* optname */
++ YYSYMBOL_optenumbody = 341, /* optenumbody */
++ YYSYMBOL_enumbody = 342, /* enumbody */
++ YYSYMBOL_enumline = 343, /* enumline */
++ YYSYMBOL_optcomma = 344, /* optcomma */
++ YYSYMBOL_optenumassign = 345, /* optenumassign */
++ YYSYMBOL_optassign = 346, /* optassign */
++ YYSYMBOL_expr = 347, /* expr */
++ YYSYMBOL_binop = 348, /* binop */
++ YYSYMBOL_optunop = 349, /* optunop */
++ YYSYMBOL_value = 350, /* value */
++ YYSYMBOL_optcast = 351, /* optcast */
++ YYSYMBOL_scopedname = 352, /* scopedname */
++ YYSYMBOL_scopednamehead = 353, /* scopednamehead */
++ YYSYMBOL_scopepart = 354, /* scopepart */
++ YYSYMBOL_bool_value = 355, /* bool_value */
++ YYSYMBOL_simplevalue = 356, /* simplevalue */
++ YYSYMBOL_exprlist = 357, /* exprlist */
++ YYSYMBOL_typedef = 358, /* typedef */
++ YYSYMBOL_struct = 359, /* struct */
++ YYSYMBOL_360_10 = 360, /* $@10 */
++ YYSYMBOL_361_11 = 361, /* $@11 */
++ YYSYMBOL_classtmpl = 362, /* classtmpl */
++ YYSYMBOL_363_12 = 363, /* $@12 */
++ YYSYMBOL_template = 364, /* template */
++ YYSYMBOL_class = 365, /* class */
++ YYSYMBOL_366_13 = 366, /* $@13 */
++ YYSYMBOL_367_14 = 367, /* $@14 */
++ YYSYMBOL_superclasses = 368, /* superclasses */
++ YYSYMBOL_superlist = 369, /* superlist */
++ YYSYMBOL_superclass = 370, /* superclass */
++ YYSYMBOL_class_access = 371, /* class_access */
++ YYSYMBOL_optclassbody = 372, /* optclassbody */
++ YYSYMBOL_classbody = 373, /* classbody */
++ YYSYMBOL_classline = 374, /* classline */
++ YYSYMBOL_property = 375, /* property */
++ YYSYMBOL_property_args = 376, /* property_args */
++ YYSYMBOL_property_arg_list = 377, /* property_arg_list */
++ YYSYMBOL_property_arg = 378, /* property_arg */
++ YYSYMBOL_property_body = 379, /* property_body */
++ YYSYMBOL_property_body_directives = 380, /* property_body_directives */
++ YYSYMBOL_property_body_directive = 381, /* property_body_directive */
++ YYSYMBOL_name_or_string = 382, /* name_or_string */
++ YYSYMBOL_optslot = 383, /* optslot */
++ YYSYMBOL_dtor = 384, /* dtor */
++ YYSYMBOL_385_15 = 385, /* $@15 */
++ YYSYMBOL_dtor_decl = 386, /* dtor_decl */
++ YYSYMBOL_ctor = 387, /* ctor */
++ YYSYMBOL_388_16 = 388, /* $@16 */
++ YYSYMBOL_simplector = 389, /* simplector */
++ YYSYMBOL_optctorsig = 390, /* optctorsig */
++ YYSYMBOL_391_17 = 391, /* $@17 */
++ YYSYMBOL_optsig = 392, /* optsig */
++ YYSYMBOL_393_18 = 393, /* $@18 */
++ YYSYMBOL_function = 394, /* function */
++ YYSYMBOL_operatorname = 395, /* operatorname */
++ YYSYMBOL_optconst = 396, /* optconst */
++ YYSYMBOL_optfinal = 397, /* optfinal */
++ YYSYMBOL_optabstract = 398, /* optabstract */
++ YYSYMBOL_optflags = 399, /* optflags */
++ YYSYMBOL_flaglist = 400, /* flaglist */
++ YYSYMBOL_flag = 401, /* flag */
++ YYSYMBOL_flagvalue = 402, /* flagvalue */
++ YYSYMBOL_virtualcallcode = 403, /* virtualcallcode */
++ YYSYMBOL_methodcode = 404, /* methodcode */
++ YYSYMBOL_premethodcode = 405, /* premethodcode */
++ YYSYMBOL_virtualcatchercode = 406, /* virtualcatchercode */
++ YYSYMBOL_arglist = 407, /* arglist */
++ YYSYMBOL_rawarglist = 408, /* rawarglist */
++ YYSYMBOL_argvalue = 409, /* argvalue */
++ YYSYMBOL_varmember = 410, /* varmember */
++ YYSYMBOL_411_19 = 411, /* $@19 */
++ YYSYMBOL_412_20 = 412, /* $@20 */
++ YYSYMBOL_simple_varmem = 413, /* simple_varmem */
++ YYSYMBOL_414_21 = 414, /* $@21 */
++ YYSYMBOL_varmem = 415, /* varmem */
++ YYSYMBOL_member = 416, /* member */
++ YYSYMBOL_417_22 = 417, /* $@22 */
++ YYSYMBOL_variable = 418, /* variable */
++ YYSYMBOL_variable_body = 419, /* variable_body */
++ YYSYMBOL_variable_body_directives = 420, /* variable_body_directives */
++ YYSYMBOL_variable_body_directive = 421, /* variable_body_directive */
++ YYSYMBOL_cpptype = 422, /* cpptype */
++ YYSYMBOL_argtype = 423, /* argtype */
++ YYSYMBOL_optref = 424, /* optref */
++ YYSYMBOL_deref = 425, /* deref */
++ YYSYMBOL_basetype = 426, /* basetype */
++ YYSYMBOL_cpptypelist = 427, /* cpptypelist */
++ YYSYMBOL_optexceptions = 428, /* optexceptions */
++ YYSYMBOL_exceptionlist = 429 /* exceptionlist */
++};
++typedef enum yysymbol_kind_t yysymbol_kind_t;
+
+-/* Copy the second part of user declarations. */
+
+
+-/* Line 216 of yacc.c. */
+-#line 639 "sip-4.19.23/sipgen/parser.c"
+
+ #ifdef short
+ # undef short
+ #endif
+
+-#ifdef YYTYPE_UINT8
+-typedef YYTYPE_UINT8 yytype_uint8;
+-#else
+-typedef unsigned char yytype_uint8;
++/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
++ <limits.h> and (if available) <stdint.h> are included
++ so that the code can choose integer types of a good width. */
++
++#ifndef __PTRDIFF_MAX__
++# include <limits.h> /* INFRINGES ON USER NAME SPACE */
++# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
++# include <stdint.h> /* INFRINGES ON USER NAME SPACE */
++# define YY_STDINT_H
++# endif
+ #endif
+
+-#ifdef YYTYPE_INT8
+-typedef YYTYPE_INT8 yytype_int8;
+-#elif (defined __STDC__ || defined __C99__FUNC__ \
+- || defined __cplusplus || defined _MSC_VER)
++/* Narrow types that promote to a signed type and that can represent a
++ signed or unsigned integer of at least N bits. In tables they can
++ save space and decrease cache pressure. Promoting to a signed type
++ helps avoid bugs in integer arithmetic. */
++
++#ifdef __INT_LEAST8_MAX__
++typedef __INT_LEAST8_TYPE__ yytype_int8;
++#elif defined YY_STDINT_H
++typedef int_least8_t yytype_int8;
++#else
+ typedef signed char yytype_int8;
++#endif
++
++#ifdef __INT_LEAST16_MAX__
++typedef __INT_LEAST16_TYPE__ yytype_int16;
++#elif defined YY_STDINT_H
++typedef int_least16_t yytype_int16;
+ #else
+-typedef short int yytype_int8;
++typedef short yytype_int16;
++#endif
++
++/* Work around bug in HP-UX 11.23, which defines these macros
++ incorrectly for preprocessor constants. This workaround can likely
++ be removed in 2023, as HPE has promised support for HP-UX 11.23
++ (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
++ <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */
++#ifdef __hpux
++# undef UINT_LEAST8_MAX
++# undef UINT_LEAST16_MAX
++# define UINT_LEAST8_MAX 255
++# define UINT_LEAST16_MAX 65535
+ #endif
+
+-#ifdef YYTYPE_UINT16
+-typedef YYTYPE_UINT16 yytype_uint16;
++#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
++typedef __UINT_LEAST8_TYPE__ yytype_uint8;
++#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
++ && UINT_LEAST8_MAX <= INT_MAX)
++typedef uint_least8_t yytype_uint8;
++#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
++typedef unsigned char yytype_uint8;
+ #else
+-typedef unsigned short int yytype_uint16;
++typedef short yytype_uint8;
+ #endif
+
+-#ifdef YYTYPE_INT16
+-typedef YYTYPE_INT16 yytype_int16;
++#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
++typedef __UINT_LEAST16_TYPE__ yytype_uint16;
++#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
++ && UINT_LEAST16_MAX <= INT_MAX)
++typedef uint_least16_t yytype_uint16;
++#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
++typedef unsigned short yytype_uint16;
+ #else
+-typedef short int yytype_int16;
++typedef int yytype_uint16;
++#endif
++
++#ifndef YYPTRDIFF_T
++# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
++# define YYPTRDIFF_T __PTRDIFF_TYPE__
++# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
++# elif defined PTRDIFF_MAX
++# ifndef ptrdiff_t
++# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
++# endif
++# define YYPTRDIFF_T ptrdiff_t
++# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
++# else
++# define YYPTRDIFF_T long
++# define YYPTRDIFF_MAXIMUM LONG_MAX
++# endif
+ #endif
+
+ #ifndef YYSIZE_T
+@@ -673,55 +806,106 @@ typedef short int yytype_int16;
+ # define YYSIZE_T __SIZE_TYPE__
+ # elif defined size_t
+ # define YYSIZE_T size_t
+-# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
+- || defined __cplusplus || defined _MSC_VER)
++# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
+ # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+ # define YYSIZE_T size_t
+ # else
+-# define YYSIZE_T unsigned int
++# define YYSIZE_T unsigned
+ # endif
+ #endif
+
+-#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
++#define YYSIZE_MAXIMUM \
++ YY_CAST (YYPTRDIFF_T, \
++ (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
++ ? YYPTRDIFF_MAXIMUM \
++ : YY_CAST (YYSIZE_T, -1)))
++
++#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
++
++
++/* Stored state numbers (used for stacks). */
++typedef yytype_int16 yy_state_t;
++
++/* State numbers in computations. */
++typedef int yy_state_fast_t;
+
+ #ifndef YY_
+ # if defined YYENABLE_NLS && YYENABLE_NLS
+ # if ENABLE_NLS
+ # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+-# define YY_(msgid) dgettext ("bison-runtime", msgid)
++# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
+ # endif
+ # endif
+ # ifndef YY_
+-# define YY_(msgid) msgid
++# define YY_(Msgid) Msgid
++# endif
++#endif
++
++
++#ifndef YY_ATTRIBUTE_PURE
++# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
++# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
++# else
++# define YY_ATTRIBUTE_PURE
++# endif
++#endif
++
++#ifndef YY_ATTRIBUTE_UNUSED
++# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
++# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
++# else
++# define YY_ATTRIBUTE_UNUSED
+ # endif
+ #endif
+
+ /* Suppress unused-variable warnings by "using" E. */
+ #if ! defined lint || defined __GNUC__
+-# define YYUSE(e) ((void) (e))
++# define YY_USE(E) ((void) (E))
+ #else
+-# define YYUSE(e) /* empty */
++# define YY_USE(E) /* empty */
+ #endif
+
+-/* Identity function, used to suppress warnings about constant conditions. */
+-#ifndef lint
+-# define YYID(n) (n)
+-#else
+-#if (defined __STDC__ || defined __C99__FUNC__ \
+- || defined __cplusplus || defined _MSC_VER)
+-static int
+-YYID (int i)
++/* Suppress an incorrect diagnostic about yylval being uninitialized. */
++#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
++# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
++# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
++ _Pragma ("GCC diagnostic push") \
++ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
++# else
++# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
++ _Pragma ("GCC diagnostic push") \
++ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
++ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
++# endif
++# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
++ _Pragma ("GCC diagnostic pop")
+ #else
+-static int
+-YYID (i)
+- int i;
++# define YY_INITIAL_VALUE(Value) Value
+ #endif
+-{
+- return i;
+-}
++#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
++# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
++# define YY_IGNORE_MAYBE_UNINITIALIZED_END
++#endif
++#ifndef YY_INITIAL_VALUE
++# define YY_INITIAL_VALUE(Value) /* Nothing. */
++#endif
++
++#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
++# define YY_IGNORE_USELESS_CAST_BEGIN \
++ _Pragma ("GCC diagnostic push") \
++ _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
++# define YY_IGNORE_USELESS_CAST_END \
++ _Pragma ("GCC diagnostic pop")
+ #endif
++#ifndef YY_IGNORE_USELESS_CAST_BEGIN
++# define YY_IGNORE_USELESS_CAST_BEGIN
++# define YY_IGNORE_USELESS_CAST_END
++#endif
++
++
++#define YY_ASSERT(E) ((void) (0 && (E)))
+
+-#if ! defined yyoverflow || YYERROR_VERBOSE
++#if !defined yyoverflow
+
+ /* The parser invokes alloca or malloc; define the necessary symbols. */
+
+@@ -738,11 +922,11 @@ YYID (i)
+ # define alloca _alloca
+ # else
+ # define YYSTACK_ALLOC alloca
+-# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+- || defined __cplusplus || defined _MSC_VER)
++# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
+ # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+-# ifndef _STDLIB_H
+-# define _STDLIB_H 1
++ /* Use EXIT_SUCCESS as a witness for stdlib.h. */
++# ifndef EXIT_SUCCESS
++# define EXIT_SUCCESS 0
+ # endif
+ # endif
+ # endif
+@@ -750,8 +934,8 @@ YYID (i)
+ # endif
+
+ # ifdef YYSTACK_ALLOC
+- /* Pacify GCC's `empty if-body' warning. */
+-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
++ /* Pacify GCC's 'empty if-body' warning. */
++# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+ # ifndef YYSTACK_ALLOC_MAXIMUM
+ /* The OS might guarantee only one guard page at the bottom of the stack,
+ and a page size can be as small as 4096 bytes. So we cannot safely
+@@ -765,125 +949,131 @@ YYID (i)
+ # ifndef YYSTACK_ALLOC_MAXIMUM
+ # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
+ # endif
+-# if (defined __cplusplus && ! defined _STDLIB_H \
++# if (defined __cplusplus && ! defined EXIT_SUCCESS \
+ && ! ((defined YYMALLOC || defined malloc) \
+- && (defined YYFREE || defined free)))
++ && (defined YYFREE || defined free)))
+ # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+-# ifndef _STDLIB_H
+-# define _STDLIB_H 1
++# ifndef EXIT_SUCCESS
++# define EXIT_SUCCESS 0
+ # endif
+ # endif
+ # ifndef YYMALLOC
+ # define YYMALLOC malloc
+-# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+- || defined __cplusplus || defined _MSC_VER)
++# if ! defined malloc && ! defined EXIT_SUCCESS
+ void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+ # endif
+ # endif
+ # ifndef YYFREE
+ # define YYFREE free
+-# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+- || defined __cplusplus || defined _MSC_VER)
++# if ! defined free && ! defined EXIT_SUCCESS
+ void free (void *); /* INFRINGES ON USER NAME SPACE */
+ # endif
+ # endif
+ # endif
+-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+-
++#endif /* !defined yyoverflow */
+
+ #if (! defined yyoverflow \
+ && (! defined __cplusplus \
+- || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
++ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+ /* A type that is properly aligned for any stack member. */
+ union yyalloc
+ {
+- yytype_int16 yyss;
+- YYSTYPE yyvs;
+- };
++ yy_state_t yyss_alloc;
++ YYSTYPE yyvs_alloc;
++};
+
+ /* The size of the maximum gap between one aligned stack and the next. */
+-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
++# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
+
+ /* The size of an array large to enough to hold all stacks, each with
+ N elements. */
+ # define YYSTACK_BYTES(N) \
+- ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
++ ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
+ + YYSTACK_GAP_MAXIMUM)
+
+-/* Copy COUNT objects from FROM to TO. The source and destination do
+- not overlap. */
+-# ifndef YYCOPY
+-# if defined __GNUC__ && 1 < __GNUC__
+-# define YYCOPY(To, From, Count) \
+- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+-# else
+-# define YYCOPY(To, From, Count) \
+- do \
+- { \
+- YYSIZE_T yyi; \
+- for (yyi = 0; yyi < (Count); yyi++) \
+- (To)[yyi] = (From)[yyi]; \
+- } \
+- while (YYID (0))
+-# endif
+-# endif
++# define YYCOPY_NEEDED 1
+
+ /* Relocate STACK from its old location to the new one. The
+ local variables YYSIZE and YYSTACKSIZE give the old and new number of
+ elements in the stack, and YYPTR gives the new location of the
+ stack. Advance YYPTR to a properly aligned location for the next
+ stack. */
+-# define YYSTACK_RELOCATE(Stack) \
+- do \
+- { \
+- YYSIZE_T yynewbytes; \
+- YYCOPY (&yyptr->Stack, Stack, yysize); \
+- Stack = &yyptr->Stack; \
+- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+- yyptr += yynewbytes / sizeof (*yyptr); \
+- } \
+- while (YYID (0))
++# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
++ do \
++ { \
++ YYPTRDIFF_T yynewbytes; \
++ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
++ Stack = &yyptr->Stack_alloc; \
++ yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
++ yyptr += yynewbytes / YYSIZEOF (*yyptr); \
++ } \
++ while (0)
+
+ #endif
+
++#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
++/* Copy COUNT objects from SRC to DST. The source and destination do
++ not overlap. */
++# ifndef YYCOPY
++# if defined __GNUC__ && 1 < __GNUC__
++# define YYCOPY(Dst, Src, Count) \
++ __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
++# else
++# define YYCOPY(Dst, Src, Count) \
++ do \
++ { \
++ YYPTRDIFF_T yyi; \
++ for (yyi = 0; yyi < (Count); yyi++) \
++ (Dst)[yyi] = (Src)[yyi]; \
++ } \
++ while (0)
++# endif
++# endif
++#endif /* !YYCOPY_NEEDED */
++
+ /* YYFINAL -- State number of the termination state. */
+ #define YYFINAL 4
+ /* YYLAST -- Last index in YYTABLE. */
+-#define YYLAST 1630
++#define YYLAST 1669
+
+ /* YYNTOKENS -- Number of terminals. */
+-#define YYNTOKENS 174
++#define YYNTOKENS 175
+ /* YYNNTS -- Number of nonterminals. */
+ #define YYNNTS 255
+ /* YYNRULES -- Number of rules. */
+-#define YYNRULES 597
+-/* YYNRULES -- Number of states. */
+-#define YYNSTATES 1047
+-
+-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+-#define YYUNDEFTOK 2
+-#define YYMAXUTOK 406
+-
+-#define YYTRANSLATE(YYX) \
+- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
++#define YYNRULES 598
++/* YYNSTATES -- Number of states. */
++#define YYNSTATES 1050
++
++/* YYMAXUTOK -- Last valid token kind. */
++#define YYMAXUTOK 407
++
++
++/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
++ as returned by yylex, with out-of-bounds checking. */
++#define YYTRANSLATE(YYX) \
++ (0 <= (YYX) && (YYX) <= YYMAXUTOK \
++ ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
++ : YYSYMBOL_YYUNDEF)
+
+-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
++/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
++ as returned by yylex. */
+ static const yytype_uint8 yytranslate[] =
+ {
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+- 2, 2, 2, 159, 2, 2, 2, 172, 164, 2,
+- 152, 153, 162, 161, 154, 160, 2, 163, 2, 2,
+- 2, 2, 2, 2, 2, 2, 2, 2, 169, 158,
+- 167, 155, 168, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 160, 2, 2, 2, 173, 165, 2,
++ 153, 154, 163, 162, 155, 161, 2, 164, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 170, 159,
++ 168, 156, 169, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+- 2, 170, 2, 171, 173, 2, 2, 2, 2, 2,
++ 2, 171, 2, 172, 174, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+- 2, 2, 2, 156, 165, 157, 166, 2, 2, 2,
++ 2, 2, 2, 157, 166, 158, 167, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+@@ -911,334 +1101,97 @@ static const yytype_uint8 yytranslate[]
+ 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
+- 145, 146, 147, 148, 149, 150, 151
++ 145, 146, 147, 148, 149, 150, 151, 152
+ };
+
+ #if YYDEBUG
+-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+- YYRHS. */
+-static const yytype_uint16 yyprhs[] =
+-{
+- 0, 0, 3, 5, 8, 9, 12, 14, 16, 18,
+- 20, 22, 24, 26, 28, 30, 32, 34, 36, 38,
+- 40, 42, 44, 46, 48, 50, 52, 54, 56, 58,
+- 60, 62, 64, 66, 68, 70, 72, 74, 76, 78,
+- 80, 82, 84, 86, 88, 90, 92, 94, 96, 98,
+- 100, 102, 104, 106, 108, 110, 112, 115, 117, 121,
+- 123, 127, 131, 134, 136, 140, 142, 146, 150, 153,
+- 155, 159, 161, 165, 169, 172, 174, 178, 180, 184,
+- 188, 192, 194, 198, 200, 204, 208, 211, 214, 218,
+- 220, 224, 228, 232, 238, 239, 243, 248, 250, 253,
+- 255, 257, 259, 261, 264, 265, 271, 272, 279, 284,
+- 286, 289, 291, 293, 295, 297, 300, 303, 305, 307,
+- 309, 324, 325, 331, 332, 336, 338, 341, 342, 348,
+- 350, 353, 355, 358, 360, 364, 366, 370, 374, 375,
+- 381, 383, 386, 388, 389, 395, 397, 400, 404, 409,
+- 411, 415, 417, 421, 422, 424, 428, 430, 434, 438,
+- 442, 446, 450, 453, 455, 459, 461, 465, 469, 472,
+- 474, 478, 480, 484, 488, 491, 493, 497, 499, 503,
+- 507, 511, 513, 517, 519, 523, 527, 528, 533, 535,
+- 538, 540, 542, 544, 548, 550, 554, 556, 560, 564,
+- 565, 570, 572, 575, 577, 579, 581, 585, 589, 590,
+- 594, 598, 600, 604, 608, 612, 616, 620, 624, 628,
+- 632, 636, 640, 641, 646, 648, 651, 653, 655, 657,
+- 659, 661, 663, 664, 666, 669, 671, 675, 677, 681,
+- 685, 689, 692, 695, 697, 701, 703, 707, 711, 712,
+- 715, 716, 719, 720, 723, 726, 729, 732, 735, 738,
+- 741, 744, 747, 750, 753, 756, 759, 762, 765, 768,
+- 771, 774, 777, 780, 783, 786, 789, 792, 795, 798,
+- 801, 804, 807, 810, 814, 816, 820, 824, 828, 829,
+- 831, 835, 837, 841, 845, 849, 850, 852, 856, 858,
+- 862, 864, 868, 872, 876, 881, 884, 886, 889, 890,
+- 900, 901, 903, 905, 906, 908, 909, 911, 912, 914,
+- 916, 919, 921, 923, 928, 929, 931, 932, 935, 936,
+- 939, 941, 945, 947, 949, 951, 953, 955, 957, 958,
+- 960, 962, 964, 966, 968, 970, 974, 975, 979, 982,
+- 984, 986, 990, 992, 994, 996, 998, 1003, 1006, 1008,
+- 1010, 1012, 1014, 1016, 1018, 1019, 1021, 1025, 1032, 1045,
+- 1046, 1047, 1056, 1057, 1061, 1066, 1067, 1068, 1077, 1078,
+- 1081, 1083, 1087, 1090, 1091, 1093, 1095, 1097, 1098, 1102,
+- 1103, 1105, 1108, 1110, 1112, 1114, 1116, 1118, 1120, 1122,
+- 1124, 1126, 1128, 1130, 1132, 1134, 1136, 1138, 1140, 1142,
+- 1144, 1146, 1148, 1150, 1152, 1154, 1156, 1158, 1160, 1162,
+- 1164, 1167, 1170, 1173, 1177, 1181, 1185, 1188, 1192, 1196,
+- 1198, 1202, 1206, 1210, 1214, 1215, 1220, 1222, 1225, 1227,
+- 1229, 1231, 1233, 1235, 1236, 1238, 1239, 1243, 1245, 1257,
+- 1258, 1262, 1264, 1276, 1277, 1278, 1285, 1286, 1287, 1295,
+- 1313, 1321, 1339, 1356, 1358, 1360, 1362, 1364, 1366, 1368,
+- 1370, 1372, 1375, 1378, 1381, 1384, 1387, 1390, 1393, 1396,
+- 1399, 1402, 1406, 1410, 1412, 1415, 1418, 1420, 1423, 1426,
+- 1429, 1431, 1434, 1435, 1437, 1438, 1440, 1441, 1444, 1445,
+- 1449, 1451, 1455, 1457, 1461, 1463, 1469, 1471, 1473, 1474,
+- 1477, 1478, 1481, 1482, 1485, 1486, 1489, 1491, 1492, 1494,
+- 1498, 1503, 1508, 1513, 1517, 1521, 1528, 1535, 1539, 1542,
+- 1543, 1547, 1548, 1552, 1554, 1555, 1559, 1561, 1563, 1565,
+- 1566, 1570, 1572, 1581, 1582, 1586, 1588, 1591, 1593, 1595,
+- 1598, 1601, 1604, 1609, 1613, 1617, 1618, 1620, 1621, 1625,
+- 1628, 1630, 1635, 1638, 1641, 1643, 1645, 1648, 1650, 1652,
+- 1655, 1658, 1662, 1664, 1666, 1668, 1671, 1674, 1676, 1678,
+- 1680, 1682, 1684, 1686, 1688, 1690, 1692, 1694, 1696, 1698,
+- 1700, 1702, 1704, 1708, 1709, 1714, 1715, 1717
+-};
+-
+-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+-static const yytype_int16 yyrhs[] =
+-{
+- 175, 0, -1, 176, -1, 175, 176, -1, -1, 177,
+- 178, -1, 269, -1, 255, -1, 262, -1, 192, -1,
+- 291, -1, 279, -1, 283, -1, 284, -1, 200, -1,
+- 230, -1, 222, -1, 226, -1, 239, -1, 180, -1,
+- 184, -1, 188, -1, 243, -1, 247, -1, 251, -1,
+- 292, -1, 293, -1, 306, -1, 308, -1, 309, -1,
+- 310, -1, 311, -1, 312, -1, 313, -1, 314, -1,
+- 315, -1, 317, -1, 318, -1, 328, -1, 332, -1,
+- 210, -1, 212, -1, 196, -1, 179, -1, 234, -1,
+- 238, -1, 218, -1, 358, -1, 364, -1, 361, -1,
+- 204, -1, 357, -1, 335, -1, 393, -1, 417, -1,
+- 294, -1, 5, 181, -1, 36, -1, 152, 182, 153,
+- -1, 183, -1, 182, 154, 183, -1, 138, 155, 36,
+- -1, 6, 185, -1, 36, -1, 152, 186, 153, -1,
+- 187, -1, 186, 154, 187, -1, 138, 155, 36, -1,
+- 7, 189, -1, 36, -1, 152, 190, 153, -1, 191,
+- -1, 190, 154, 191, -1, 138, 155, 36, -1, 8,
+- 193, -1, 34, -1, 152, 194, 153, -1, 195, -1,
+- 194, 154, 195, -1, 138, 155, 34, -1, 9, 197,
+- 333, -1, 34, -1, 152, 198, 153, -1, 199, -1,
+- 198, 154, 199, -1, 138, 155, 34, -1, 3, 201,
+- -1, 34, 107, -1, 152, 202, 153, -1, 203, -1,
+- 202, 154, 203, -1, 138, 155, 381, -1, 151, 155,
+- 107, -1, 122, 351, 205, 398, 206, -1, -1, 152,
+- 351, 153, -1, 156, 207, 157, 158, -1, 208, -1,
+- 207, 208, -1, 234, -1, 238, -1, 209, -1, 294,
+- -1, 123, 333, -1, -1, 30, 425, 398, 211, 214,
+- -1, -1, 363, 30, 425, 398, 213, 214, -1, 156,
+- 215, 157, 158, -1, 216, -1, 215, 216, -1, 234,
+- -1, 238, -1, 294, -1, 307, -1, 51, 333, -1,
+- 52, 333, -1, 303, -1, 335, -1, 217, -1, 97,
+- 421, 34, 152, 406, 153, 395, 427, 398, 391, 158,
+- 327, 404, 403, -1, -1, 110, 34, 219, 220, 158,
+- -1, -1, 156, 221, 157, -1, 179, -1, 221, 179,
+- -1, -1, 112, 223, 156, 224, 157, -1, 225, -1,
+- 224, 225, -1, 34, -1, 113, 227, -1, 34, -1,
+- 152, 228, 153, -1, 229, -1, 228, 154, 229, -1,
+- 138, 155, 381, -1, -1, 111, 231, 156, 232, 157,
+- -1, 233, -1, 232, 233, -1, 34, -1, -1, 32,
+- 152, 235, 237, 153, -1, 34, -1, 159, 34, -1,
+- 236, 95, 34, -1, 236, 95, 159, 34, -1, 236,
+- -1, 339, 160, 339, -1, 33, -1, 114, 240, 398,
+- -1, -1, 36, -1, 152, 241, 153, -1, 242, -1,
+- 241, 154, 242, -1, 145, 155, 36, -1, 137, 155,
+- 36, -1, 143, 155, 36, -1, 144, 155, 36, -1,
+- 128, 244, -1, 277, -1, 152, 245, 153, -1, 246,
+- -1, 245, 154, 246, -1, 138, 155, 277, -1, 129,
+- 248, -1, 277, -1, 152, 249, 153, -1, 250, -1,
+- 249, 154, 250, -1, 138, 155, 277, -1, 131, 252,
+- -1, 351, -1, 152, 253, 153, -1, 254, -1, 253,
+- 154, 254, -1, 138, 155, 351, -1, 62, 256, 259,
+- -1, 277, -1, 152, 257, 153, -1, 258, -1, 257,
+- 154, 258, -1, 138, 155, 277, -1, -1, 156, 260,
+- 157, 158, -1, 261, -1, 260, 261, -1, 234, -1,
+- 238, -1, 323, -1, 63, 263, 266, -1, 277, -1,
+- 152, 264, 153, -1, 265, -1, 264, 154, 265, -1,
+- 138, 155, 277, -1, -1, 156, 267, 157, 158, -1,
+- 268, -1, 267, 268, -1, 234, -1, 238, -1, 323,
+- -1, 60, 270, 274, -1, 61, 277, 278, -1, -1,
+- 277, 271, 278, -1, 152, 272, 153, -1, 273, -1,
+- 272, 154, 273, -1, 135, 155, 36, -1, 136, 155,
+- 36, -1, 138, 155, 277, -1, 146, 155, 354, -1,
+- 147, 155, 354, -1, 148, 155, 354, -1, 149, 155,
+- 354, -1, 150, 155, 34, -1, 151, 155, 107, -1,
+- -1, 156, 275, 157, 158, -1, 276, -1, 275, 276,
+- -1, 234, -1, 238, -1, 319, -1, 323, -1, 34,
+- -1, 35, -1, -1, 107, -1, 54, 280, -1, 35,
+- -1, 152, 281, 153, -1, 282, -1, 281, 154, 282,
+- -1, 138, 155, 35, -1, 139, 155, 354, -1, 55,
+- 35, -1, 56, 285, -1, 35, -1, 152, 286, 153,
+- -1, 287, -1, 286, 154, 287, -1, 138, 155, 35,
+- -1, -1, 17, 333, -1, -1, 18, 333, -1, -1,
+- 19, 333, -1, 29, 333, -1, 57, 333, -1, 58,
+- 333, -1, 59, 333, -1, 38, 333, -1, 39, 333,
+- -1, 40, 333, -1, 41, 333, -1, 42, 333, -1,
+- 43, 333, -1, 44, 333, -1, 45, 333, -1, 50,
+- 333, -1, 46, 333, -1, 23, 333, -1, 26, 333,
+- -1, 27, 333, -1, 20, 333, -1, 21, 333, -1,
+- 22, 333, -1, 24, 333, -1, 25, 333, -1, 28,
+- 333, -1, 10, 333, -1, 11, 333, -1, 11, 333,
+- -1, 13, 333, -1, 14, 333, -1, 4, 320, -1,
+- 152, 321, 153, -1, 322, -1, 321, 154, 322, -1,
+- 141, 155, 36, -1, 12, 324, 333, -1, -1, 36,
+- -1, 152, 325, 153, -1, 326, -1, 325, 154, 326,
+- -1, 132, 155, 36, -1, 143, 155, 36, -1, -1,
+- 323, -1, 15, 329, 333, -1, 34, -1, 152, 330,
+- 153, -1, 331, -1, 330, 154, 331, -1, 134, 155,
+- 34, -1, 140, 155, 107, -1, 16, 35, 338, 333,
+- -1, 334, 33, -1, 31, -1, 334, 31, -1, -1,
+- 91, 337, 339, 398, 336, 156, 340, 157, 158, -1,
+- -1, 64, -1, 65, -1, -1, 35, -1, -1, 34,
+- -1, -1, 341, -1, 342, -1, 341, 342, -1, 234,
+- -1, 238, -1, 34, 344, 398, 343, -1, -1, 154,
+- -1, -1, 155, 349, -1, -1, 155, 346, -1, 349,
+- -1, 346, 347, 349, -1, 160, -1, 161, -1, 162,
+- -1, 163, -1, 164, -1, 165, -1, -1, 159, -1,
+- 166, -1, 160, -1, 161, -1, 162, -1, 164, -1,
+- 350, 348, 355, -1, -1, 152, 351, 153, -1, 94,
+- 352, -1, 352, -1, 353, -1, 352, 94, 353, -1,
+- 34, -1, 116, -1, 117, -1, 351, -1, 425, 152,
+- 356, 153, -1, 156, 157, -1, 108, -1, 107, -1,
+- 354, -1, 118, -1, 36, -1, 115, -1, -1, 346,
+- -1, 356, 154, 346, -1, 109, 421, 34, 398, 158,
+- 327, -1, 109, 421, 152, 162, 34, 153, 152, 426,
+- 153, 398, 158, 327, -1, -1, -1, 65, 351, 359,
+- 367, 398, 360, 371, 158, -1, -1, 363, 362, 364,
+- -1, 125, 167, 426, 168, -1, -1, -1, 64, 351,
+- 365, 367, 398, 366, 371, 158, -1, -1, 169, 368,
+- -1, 369, -1, 368, 154, 369, -1, 370, 351, -1,
+- -1, 66, -1, 67, -1, 68, -1, -1, 156, 372,
+- 157, -1, -1, 373, -1, 372, 373, -1, 234, -1,
+- 238, -1, 218, -1, 358, -1, 364, -1, 361, -1,
+- 204, -1, 357, -1, 335, -1, 374, -1, 323, -1,
+- 307, -1, 294, -1, 295, -1, 296, -1, 297, -1,
+- 298, -1, 299, -1, 300, -1, 301, -1, 302, -1,
+- 303, -1, 304, -1, 305, -1, 316, -1, 386, -1,
+- 383, -1, 409, -1, 53, 333, -1, 52, 333, -1,
+- 51, 333, -1, 66, 382, 169, -1, 67, 382, 169,
+- -1, 68, 382, 169, -1, 69, 169, -1, 130, 375,
+- 378, -1, 152, 376, 153, -1, 377, -1, 376, 154,
+- 377, -1, 133, 155, 34, -1, 138, 155, 381, -1,
+- 142, 155, 34, -1, -1, 156, 379, 157, 158, -1,
+- 380, -1, 379, 380, -1, 234, -1, 238, -1, 323,
+- -1, 34, -1, 36, -1, -1, 71, -1, -1, 90,
+- 384, 385, -1, 385, -1, 166, 34, 152, 153, 427,
+- 397, 398, 158, 404, 403, 405, -1, -1, 124, 387,
+- 388, -1, 388, -1, 34, 152, 406, 153, 427, 398,
+- 389, 158, 327, 404, 403, -1, -1, -1, 170, 390,
+- 152, 406, 153, 171, -1, -1, -1, 170, 392, 421,
+- 152, 406, 153, 171, -1, 421, 34, 152, 406, 153,
+- 395, 396, 427, 397, 398, 391, 158, 327, 404, 403,
+- 405, 402, -1, 421, 119, 155, 152, 421, 153, 158,
+- -1, 421, 119, 394, 152, 406, 153, 395, 396, 427,
+- 397, 398, 391, 158, 404, 403, 405, 402, -1, 119,
+- 421, 152, 406, 153, 395, 396, 427, 397, 398, 391,
+- 158, 404, 403, 405, 402, -1, 161, -1, 160, -1,
+- 162, -1, 163, -1, 172, -1, 164, -1, 165, -1,
+- 173, -1, 167, 167, -1, 168, 168, -1, 161, 155,
+- -1, 160, 155, -1, 162, 155, -1, 163, 155, -1,
+- 172, 155, -1, 164, 155, -1, 165, 155, -1, 173,
+- 155, -1, 167, 167, 155, -1, 168, 168, 155, -1,
+- 166, -1, 152, 153, -1, 170, 171, -1, 167, -1,
+- 167, 155, -1, 155, 155, -1, 159, 155, -1, 168,
+- -1, 168, 155, -1, -1, 96, -1, -1, 126, -1,
+- -1, 155, 107, -1, -1, 163, 399, 163, -1, 400,
+- -1, 399, 154, 400, -1, 34, -1, 34, 155, 401,
+- -1, 277, -1, 34, 169, 278, 160, 278, -1, 36,
+- -1, 107, -1, -1, 47, 333, -1, -1, 48, 333,
+- -1, -1, 49, 333, -1, -1, 37, 333, -1, 407,
+- -1, -1, 408, -1, 407, 154, 408, -1, 98, 339,
+- 398, 345, -1, 99, 339, 398, 345, -1, 100, 339,
+- 398, 345, -1, 101, 339, 398, -1, 102, 339, 398,
+- -1, 103, 152, 406, 153, 339, 398, -1, 104, 152,
+- 406, 153, 339, 398, -1, 121, 339, 398, -1, 422,
+- 345, -1, -1, 70, 410, 412, -1, -1, 72, 411,
+- 412, -1, 412, -1, -1, 97, 413, 414, -1, 414,
+- -1, 415, -1, 417, -1, -1, 90, 416, 393, -1,
+- 393, -1, 421, 34, 398, 418, 158, 288, 289, 290,
+- -1, -1, 156, 419, 157, -1, 420, -1, 419, 420,
+- -1, 234, -1, 238, -1, 17, 333, -1, 18, 333,
+- -1, 19, 333, -1, 96, 425, 424, 423, -1, 425,
+- 424, 423, -1, 421, 339, 398, -1, -1, 164, -1,
+- -1, 424, 162, 96, -1, 424, 162, -1, 351, -1,
+- 351, 167, 426, 168, -1, 65, 351, -1, 93, 74,
+- -1, 74, -1, 93, -1, 93, 75, -1, 75, -1,
+- 76, -1, 93, 76, -1, 76, 76, -1, 93, 76,
+- 76, -1, 77, -1, 78, -1, 73, -1, 92, 79,
+- -1, 93, 79, -1, 79, -1, 80, -1, 81, -1,
+- 82, -1, 83, -1, 84, -1, 85, -1, 86, -1,
+- 87, -1, 88, -1, 89, -1, 105, -1, 106, -1,
+- 127, -1, 421, -1, 426, 154, 421, -1, -1, 120,
+- 152, 428, 153, -1, -1, 351, -1, 428, 154, 351,
+- -1
+-};
+-
+-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+-static const yytype_uint16 yyrline[] =
++/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
++static const yytype_int16 yyrline[] =
+ {
+- 0, 574, 574, 575, 578, 578, 597, 598, 599, 600,
+- 601, 602, 603, 604, 605, 606, 607, 608, 609, 610,
+- 611, 612, 613, 614, 615, 616, 617, 618, 619, 620,
+- 621, 622, 623, 624, 625, 626, 627, 628, 629, 630,
+- 631, 632, 633, 634, 637, 638, 639, 640, 641, 642,
+- 643, 644, 645, 646, 647, 648, 661, 667, 672, 677,
+- 678, 688, 695, 701, 706, 711, 712, 722, 729, 738,
+- 743, 748, 749, 759, 766, 777, 782, 787, 788, 798,
+- 805, 834, 839, 844, 845, 855, 862, 888, 896, 901,
+- 902, 913, 919, 927, 974, 978, 1085, 1090, 1091, 1102,
+- 1105, 1108, 1122, 1138, 1143, 1143, 1166, 1166, 1233, 1247,
+- 1248, 1251, 1252, 1253, 1257, 1261, 1270, 1279, 1288, 1289,
+- 1292, 1307, 1307, 1344, 1345, 1348, 1349, 1352, 1352, 1381,
+- 1382, 1385, 1391, 1397, 1402, 1407, 1408, 1418, 1425, 1425,
+- 1451, 1452, 1455, 1461, 1461, 1480, 1483, 1486, 1489, 1494,
+- 1495, 1500, 1508, 1545, 1553, 1559, 1564, 1565, 1578, 1586,
+- 1594, 1602, 1612, 1623, 1628, 1633, 1634, 1644, 1651, 1662,
+- 1667, 1672, 1673, 1683, 1690, 1702, 1707, 1712, 1713, 1723,
+- 1730, 1750, 1755, 1760, 1761, 1771, 1778, 1782, 1787, 1788,
+- 1798, 1801, 1804, 1818, 1836, 1841, 1846, 1847, 1857, 1864,
+- 1868, 1873, 1874, 1884, 1887, 1890, 1904, 1915, 1925, 1925,
+- 1938, 1943, 1944, 1961, 1973, 1991, 2003, 2015, 2027, 2039,
+- 2051, 2063, 2082, 2086, 2091, 2092, 2102, 2105, 2108, 2111,
+- 2125, 2126, 2142, 2145, 2148, 2157, 2163, 2168, 2169, 2180,
+- 2186, 2194, 2202, 2208, 2213, 2218, 2219, 2229, 2236, 2239,
+- 2244, 2247, 2252, 2255, 2260, 2266, 2272, 2278, 2283, 2288,
+- 2293, 2298, 2303, 2308, 2313, 2318, 2323, 2328, 2333, 2338,
+- 2344, 2349, 2355, 2361, 2367, 2373, 2379, 2384, 2390, 2396,
+- 2401, 2407, 2413, 2419, 2424, 2425, 2435, 2442, 2526, 2530,
+- 2536, 2541, 2542, 2553, 2559, 2567, 2570, 2573, 2582, 2588,
+- 2593, 2594, 2605, 2611, 2622, 2627, 2630, 2631, 2641, 2641,
+- 2665, 2668, 2671, 2676, 2679, 2684, 2687, 2692, 2693, 2696,
+- 2697, 2700, 2701, 2702, 2746, 2747, 2750, 2751, 2754, 2757,
+- 2762, 2763, 2781, 2784, 2787, 2790, 2793, 2796, 2801, 2804,
+- 2807, 2810, 2813, 2816, 2819, 2824, 2839, 2842, 2847, 2853,
+- 2856, 2857, 2865, 2870, 2873, 2878, 2887, 2897, 2900, 2904,
+- 2908, 2912, 2916, 2920, 2926, 2931, 2937, 2955, 2977, 3016,
+- 3022, 3016, 3066, 3066, 3092, 3097, 3103, 3097, 3143, 3144,
+- 3147, 3148, 3151, 3203, 3206, 3209, 3212, 3217, 3220, 3225,
+- 3226, 3227, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237,
+- 3238, 3239, 3240, 3251, 3255, 3259, 3270, 3281, 3292, 3303,
+- 3314, 3325, 3336, 3347, 3358, 3369, 3380, 3391, 3392, 3393,
+- 3394, 3405, 3416, 3427, 3434, 3441, 3448, 3457, 3470, 3475,
+- 3476, 3488, 3495, 3502, 3511, 3515, 3520, 3521, 3531, 3534,
+- 3537, 3551, 3552, 3555, 3558, 3564, 3564, 3565, 3568, 3634,
+- 3634, 3635, 3638, 3684, 3687, 3687, 3698, 3701, 3701, 3713,
+- 3731, 3751, 3795, 3876, 3877, 3878, 3879, 3880, 3881, 3882,
+- 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892,
+- 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902,
+- 3903, 3904, 3907, 3910, 3915, 3918, 3923, 3926, 3934, 3937,
+- 3943, 3947, 3959, 3963, 3969, 3973, 3996, 4000, 4006, 4009,
+- 4014, 4017, 4022, 4025, 4030, 4033, 4038, 4090, 4095, 4101,
+- 4124, 4136, 4148, 4160, 4179, 4190, 4207, 4224, 4233, 4240,
+- 4240, 4241, 4241, 4242, 4246, 4246, 4247, 4251, 4252, 4256,
+- 4256, 4257, 4260, 4315, 4321, 4326, 4327, 4339, 4342, 4345,
+- 4360, 4375, 4392, 4397, 4411, 4521, 4524, 4532, 4535, 4538,
+- 4543, 4551, 4562, 4577, 4581, 4585, 4589, 4593, 4597, 4601,
+- 4605, 4609, 4613, 4617, 4621, 4625, 4629, 4633, 4637, 4641,
+- 4645, 4649, 4653, 4657, 4661, 4665, 4669, 4673, 4677, 4681,
+- 4685, 4691, 4697, 4713, 4716, 4724, 4730, 4737
++ 0, 575, 575, 576, 579, 579, 598, 599, 600, 601,
++ 602, 603, 604, 605, 606, 607, 608, 609, 610, 611,
++ 612, 613, 614, 615, 616, 617, 618, 619, 620, 621,
++ 622, 623, 624, 625, 626, 627, 628, 629, 630, 631,
++ 632, 633, 634, 635, 638, 639, 640, 641, 642, 643,
++ 644, 645, 646, 647, 648, 649, 662, 668, 673, 678,
++ 679, 689, 696, 702, 707, 712, 713, 723, 730, 739,
++ 744, 749, 750, 760, 767, 778, 783, 788, 789, 799,
++ 806, 835, 840, 845, 846, 856, 863, 889, 897, 902,
++ 903, 914, 920, 928, 975, 979, 1086, 1091, 1092, 1103,
++ 1106, 1109, 1123, 1139, 1144, 1144, 1167, 1167, 1234, 1248,
++ 1249, 1252, 1253, 1254, 1258, 1262, 1271, 1280, 1289, 1290,
++ 1293, 1308, 1308, 1345, 1346, 1349, 1350, 1353, 1353, 1382,
++ 1383, 1386, 1392, 1398, 1403, 1408, 1409, 1419, 1426, 1426,
++ 1452, 1453, 1456, 1462, 1462, 1481, 1484, 1487, 1490, 1495,
++ 1496, 1501, 1509, 1546, 1554, 1560, 1565, 1566, 1579, 1587,
++ 1595, 1603, 1613, 1624, 1629, 1634, 1635, 1645, 1652, 1663,
++ 1668, 1673, 1674, 1684, 1691, 1703, 1708, 1713, 1714, 1724,
++ 1731, 1751, 1756, 1761, 1762, 1772, 1779, 1783, 1788, 1789,
++ 1799, 1802, 1805, 1819, 1837, 1842, 1847, 1848, 1858, 1865,
++ 1869, 1874, 1875, 1885, 1888, 1891, 1905, 1917, 1927, 1927,
++ 1941, 1946, 1947, 1965, 1978, 1997, 2010, 2023, 2036, 2049,
++ 2062, 2075, 2088, 2108, 2112, 2117, 2118, 2128, 2131, 2134,
++ 2137, 2151, 2152, 2168, 2171, 2174, 2183, 2189, 2194, 2195,
++ 2206, 2212, 2220, 2228, 2234, 2239, 2244, 2245, 2255, 2262,
++ 2265, 2270, 2273, 2278, 2281, 2286, 2292, 2298, 2304, 2309,
++ 2314, 2319, 2324, 2329, 2334, 2339, 2344, 2349, 2354, 2359,
++ 2364, 2370, 2375, 2381, 2387, 2393, 2399, 2405, 2410, 2416,
++ 2422, 2427, 2433, 2439, 2445, 2450, 2451, 2461, 2468, 2552,
++ 2556, 2562, 2567, 2568, 2579, 2585, 2593, 2596, 2599, 2608,
++ 2614, 2619, 2620, 2631, 2637, 2648, 2653, 2656, 2657, 2667,
++ 2667, 2691, 2694, 2697, 2702, 2705, 2710, 2713, 2718, 2719,
++ 2722, 2723, 2726, 2727, 2728, 2772, 2773, 2776, 2777, 2780,
++ 2783, 2788, 2789, 2807, 2810, 2813, 2816, 2819, 2822, 2827,
++ 2830, 2833, 2836, 2839, 2842, 2845, 2850, 2865, 2868, 2873,
++ 2879, 2882, 2883, 2891, 2896, 2899, 2904, 2913, 2923, 2926,
++ 2930, 2934, 2938, 2942, 2946, 2952, 2957, 2963, 2981, 3003,
++ 3042, 3048, 3042, 3092, 3092, 3118, 3123, 3129, 3123, 3169,
++ 3170, 3173, 3174, 3177, 3229, 3232, 3235, 3238, 3243, 3246,
++ 3251, 3252, 3253, 3256, 3257, 3258, 3259, 3260, 3261, 3262,
++ 3263, 3264, 3265, 3266, 3277, 3281, 3285, 3296, 3307, 3318,
++ 3329, 3340, 3351, 3362, 3373, 3384, 3395, 3406, 3417, 3418,
++ 3419, 3420, 3431, 3442, 3453, 3460, 3467, 3474, 3483, 3496,
++ 3501, 3502, 3514, 3521, 3528, 3537, 3541, 3546, 3547, 3557,
++ 3560, 3563, 3577, 3578, 3581, 3584, 3590, 3590, 3591, 3594,
++ 3660, 3660, 3661, 3664, 3710, 3713, 3713, 3724, 3727, 3727,
++ 3739, 3757, 3777, 3821, 3902, 3903, 3904, 3905, 3906, 3907,
++ 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917,
++ 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927,
++ 3928, 3929, 3930, 3933, 3936, 3941, 3944, 3949, 3952, 3960,
++ 3963, 3969, 3973, 3985, 3989, 3995, 3999, 4022, 4026, 4032,
++ 4035, 4040, 4043, 4048, 4051, 4056, 4059, 4064, 4116, 4121,
++ 4127, 4150, 4162, 4174, 4186, 4205, 4216, 4233, 4250, 4259,
++ 4266, 4266, 4267, 4267, 4268, 4272, 4272, 4273, 4277, 4278,
++ 4282, 4282, 4283, 4286, 4341, 4347, 4352, 4353, 4365, 4368,
++ 4371, 4386, 4401, 4418, 4423, 4437, 4547, 4550, 4558, 4561,
++ 4564, 4569, 4577, 4588, 4603, 4607, 4611, 4615, 4619, 4623,
++ 4627, 4631, 4635, 4639, 4643, 4647, 4651, 4655, 4659, 4663,
++ 4667, 4671, 4675, 4679, 4683, 4687, 4691, 4695, 4699, 4703,
++ 4707, 4711, 4717, 4723, 4739, 4742, 4750, 4756, 4763
+ };
+ #endif
+
+-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
++/** Accessing symbol of state STATE. */
++#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
++
++#if YYDEBUG || 0
++/* The user-facing name of the symbol whose (internal) number is
++ YYSYMBOL. No bounds checking. */
++static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
++
+ /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+ static const char *const yytname[] =
+ {
+- "$end", "error", "$undefined", "TK_API", "TK_AUTOPYNAME",
+- "TK_DEFDOCSTRFMT", "TK_DEFDOCSTRSIG", "TK_DEFENCODING", "TK_PLUGIN",
+- "TK_VIRTERRORHANDLER", "TK_EXPTYPEHINTCODE", "TK_TYPEHINTCODE",
+- "TK_DOCSTRING", "TK_DOC", "TK_EXPORTEDDOC", "TK_EXTRACT", "TK_MAKEFILE",
+- "TK_ACCESSCODE", "TK_GETCODE", "TK_SETCODE", "TK_PREINITCODE",
+- "TK_INITCODE", "TK_POSTINITCODE", "TK_FINALCODE", "TK_UNITCODE",
+- "TK_UNITPOSTINCLUDECODE", "TK_MODCODE", "TK_TYPECODE", "TK_PREPYCODE",
+- "TK_COPYING", "TK_MAPPEDTYPE", "TK_CODELINE", "TK_IF", "TK_END",
+- "TK_NAME_VALUE", "TK_PATH_VALUE", "TK_STRING_VALUE",
++ "\"end of file\"", "error", "\"invalid token\"", "TK_API",
++ "TK_AUTOPYNAME", "TK_DEFDOCSTRFMT", "TK_DEFDOCSTRSIG", "TK_DEFENCODING",
++ "TK_PLUGIN", "TK_VIRTERRORHANDLER", "TK_EXPTYPEHINTCODE",
++ "TK_TYPEHINTCODE", "TK_DOCSTRING", "TK_DOC", "TK_EXPORTEDDOC",
++ "TK_EXTRACT", "TK_MAKEFILE", "TK_ACCESSCODE", "TK_GETCODE", "TK_SETCODE",
++ "TK_PREINITCODE", "TK_INITCODE", "TK_POSTINITCODE", "TK_FINALCODE",
++ "TK_UNITCODE", "TK_UNITPOSTINCLUDECODE", "TK_MODCODE", "TK_TYPECODE",
++ "TK_PREPYCODE", "TK_COPYING", "TK_MAPPEDTYPE", "TK_CODELINE", "TK_IF",
++ "TK_END", "TK_NAME_VALUE", "TK_PATH_VALUE", "TK_STRING_VALUE",
+ "TK_VIRTUALCATCHERCODE", "TK_TRAVERSECODE", "TK_CLEARCODE",
+ "TK_GETBUFFERCODE", "TK_RELEASEBUFFERCODE", "TK_READBUFFERCODE",
+ "TK_WRITEBUFFERCODE", "TK_SEGCOUNTCODE", "TK_CHARBUFFERCODE",
+@@ -1264,13 +1217,13 @@ static const char *const yytname[] =
+ "TK_DEFSUPERTYPE", "TK_PROPERTY", "TK_HIDE_NS", "TK_FORMAT", "TK_GET",
+ "TK_ID", "TK_KWARGS", "TK_LANGUAGE", "TK_LICENSEE", "TK_NAME",
+ "TK_OPTIONAL", "TK_ORDER", "TK_REMOVELEADING", "TK_SET", "TK_SIGNATURE",
+- "TK_TIMESTAMP", "TK_TYPE", "TK_USEARGNAMES", "TK_USELIMITEDAPI",
+- "TK_ALLRAISEPYEXC", "TK_CALLSUPERINIT", "TK_DEFERRORHANDLER",
+- "TK_VERSION", "'('", "')'", "','", "'='", "'{'", "'}'", "';'", "'!'",
+- "'-'", "'+'", "'*'", "'/'", "'&'", "'|'", "'~'", "'<'", "'>'", "':'",
+- "'['", "']'", "'%'", "'^'", "$accept", "specification", "statement",
+- "@1", "modstatement", "nsstatement", "defdocstringfmt",
+- "defdocstringfmt_args", "defdocstringfmt_arg_list",
++ "TK_TIMESTAMP", "TK_TYPE", "TK_USEARGNAMES", "TK_PYSSIZETCLEAN",
++ "TK_USELIMITEDAPI", "TK_ALLRAISEPYEXC", "TK_CALLSUPERINIT",
++ "TK_DEFERRORHANDLER", "TK_VERSION", "'('", "')'", "','", "'='", "'{'",
++ "'}'", "';'", "'!'", "'-'", "'+'", "'*'", "'/'", "'&'", "'|'", "'~'",
++ "'<'", "'>'", "':'", "'['", "']'", "'%'", "'^'", "$accept",
++ "specification", "statement", "$@1", "modstatement", "nsstatement",
++ "defdocstringfmt", "defdocstringfmt_args", "defdocstringfmt_arg_list",
+ "defdocstringfmt_arg", "defdocstringsig", "defdocstringsig_args",
+ "defdocstringsig_arg_list", "defdocstringsig_arg", "defencoding",
+ "defencoding_args", "defencoding_arg_list", "defencoding_arg", "plugin",
+@@ -1278,13 +1231,13 @@ static const char *const yytname[] =
+ "veh_args", "veh_arg_list", "veh_arg", "api", "api_args", "api_arg_list",
+ "api_arg", "exception", "baseexception", "exception_body",
+ "exception_body_directives", "exception_body_directive", "raisecode",
+- "mappedtype", "@2", "mappedtypetmpl", "@3", "mtdefinition", "mtbody",
+- "mtline", "mtfunction", "namespace", "@4", "optnsbody", "nsbody",
+- "platforms", "@5", "platformlist", "platform", "feature", "feature_args",
+- "feature_arg_list", "feature_arg", "timeline", "@6", "qualifierlist",
+- "qualifiername", "ifstart", "@7", "oredqualifiers", "qualifiers",
+- "ifend", "license", "license_args", "license_arg_list", "license_arg",
+- "defmetatype", "defmetatype_args", "defmetatype_arg_list",
++ "mappedtype", "$@2", "mappedtypetmpl", "$@3", "mtdefinition", "mtbody",
++ "mtline", "mtfunction", "namespace", "$@4", "optnsbody", "nsbody",
++ "platforms", "$@5", "platformlist", "platform", "feature",
++ "feature_args", "feature_arg_list", "feature_arg", "timeline", "$@6",
++ "qualifierlist", "qualifiername", "ifstart", "$@7", "oredqualifiers",
++ "qualifiers", "ifend", "license", "license_args", "license_arg_list",
++ "license_arg", "defmetatype", "defmetatype_args", "defmetatype_arg_list",
+ "defmetatype_arg", "defsupertype", "defsupertype_args",
+ "defsupertype_arg_list", "defsupertype_arg", "hiddenns", "hiddenns_args",
+ "hiddenns_arg_list", "hiddenns_arg", "consmodule", "consmodule_args",
+@@ -1292,7 +1245,7 @@ static const char *const yytname[] =
+ "consmodule_body_directives", "consmodule_body_directive", "compmodule",
+ "compmodule_args", "compmodule_arg_list", "compmodule_arg",
+ "compmodule_body", "compmodule_body_directives",
+- "compmodule_body_directive", "module", "module_args", "@8",
++ "compmodule_body_directive", "module", "module_args", "$@8",
+ "module_arg_list", "module_arg", "module_body", "module_body_directives",
+ "module_body_directive", "dottedname", "optnumber", "include",
+ "include_args", "include_arg_list", "include_arg", "optinclude",
+@@ -1307,1011 +1260,950 @@ static const char *const yytname[] =
+ "autopyname_args", "autopyname_arg_list", "autopyname_arg", "docstring",
+ "docstring_args", "docstring_arg_list", "docstring_arg", "optdocstring",
+ "extract", "extract_args", "extract_arg_list", "extract_arg", "makefile",
+- "codeblock", "codelines", "enum", "@9", "optenumkey", "optfilename",
++ "codeblock", "codelines", "enum", "$@9", "optenumkey", "optfilename",
+ "optname", "optenumbody", "enumbody", "enumline", "optcomma",
+ "optenumassign", "optassign", "expr", "binop", "optunop", "value",
+ "optcast", "scopedname", "scopednamehead", "scopepart", "bool_value",
+- "simplevalue", "exprlist", "typedef", "struct", "@10", "@11",
+- "classtmpl", "@12", "template", "class", "@13", "@14", "superclasses",
++ "simplevalue", "exprlist", "typedef", "struct", "$@10", "$@11",
++ "classtmpl", "$@12", "template", "class", "$@13", "$@14", "superclasses",
+ "superlist", "superclass", "class_access", "optclassbody", "classbody",
+ "classline", "property", "property_args", "property_arg_list",
+ "property_arg", "property_body", "property_body_directives",
+- "property_body_directive", "name_or_string", "optslot", "dtor", "@15",
+- "dtor_decl", "ctor", "@16", "simplector", "optctorsig", "@17", "optsig",
+- "@18", "function", "operatorname", "optconst", "optfinal", "optabstract",
+- "optflags", "flaglist", "flag", "flagvalue", "virtualcallcode",
+- "methodcode", "premethodcode", "virtualcatchercode", "arglist",
+- "rawarglist", "argvalue", "varmember", "@19", "@20", "simple_varmem",
+- "@21", "varmem", "member", "@22", "variable", "variable_body",
+- "variable_body_directives", "variable_body_directive", "cpptype",
+- "argtype", "optref", "deref", "basetype", "cpptypelist", "optexceptions",
+- "exceptionlist", 0
++ "property_body_directive", "name_or_string", "optslot", "dtor", "$@15",
++ "dtor_decl", "ctor", "$@16", "simplector", "optctorsig", "$@17",
++ "optsig", "$@18", "function", "operatorname", "optconst", "optfinal",
++ "optabstract", "optflags", "flaglist", "flag", "flagvalue",
++ "virtualcallcode", "methodcode", "premethodcode", "virtualcatchercode",
++ "arglist", "rawarglist", "argvalue", "varmember", "$@19", "$@20",
++ "simple_varmem", "$@21", "varmem", "member", "$@22", "variable",
++ "variable_body", "variable_body_directives", "variable_body_directive",
++ "cpptype", "argtype", "optref", "deref", "basetype", "cpptypelist",
++ "optexceptions", "exceptionlist", YY_NULLPTR
+ };
++
++static const char *
++yysymbol_name (yysymbol_kind_t yysymbol)
++{
++ return yytname[yysymbol];
++}
+ #endif
+
+-# ifdef YYPRINT
+-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+- token YYLEX-NUM. */
+-static const yytype_uint16 yytoknum[] =
+-{
+- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+- 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
+- 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
+- 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+- 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
+- 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+- 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+- 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
+- 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
+- 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
+- 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
+- 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+- 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
+- 405, 406, 40, 41, 44, 61, 123, 125, 59, 33,
+- 45, 43, 42, 47, 38, 124, 126, 60, 62, 58,
+- 91, 93, 37, 94
+-};
+-# endif
++#define YYPACT_NINF (-840)
+
+-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+-static const yytype_uint16 yyr1[] =
+-{
+- 0, 174, 175, 175, 177, 176, 178, 178, 178, 178,
+- 178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
+- 178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
+- 178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
+- 178, 178, 178, 178, 179, 179, 179, 179, 179, 179,
+- 179, 179, 179, 179, 179, 179, 180, 181, 181, 182,
+- 182, 183, 184, 185, 185, 186, 186, 187, 188, 189,
+- 189, 190, 190, 191, 192, 193, 193, 194, 194, 195,
+- 196, 197, 197, 198, 198, 199, 200, 201, 201, 202,
+- 202, 203, 203, 204, 205, 205, 206, 207, 207, 208,
+- 208, 208, 208, 209, 211, 210, 213, 212, 214, 215,
+- 215, 216, 216, 216, 216, 216, 216, 216, 216, 216,
+- 217, 219, 218, 220, 220, 221, 221, 223, 222, 224,
+- 224, 225, 226, 227, 227, 228, 228, 229, 231, 230,
+- 232, 232, 233, 235, 234, 236, 236, 236, 236, 237,
+- 237, 238, 239, 240, 240, 240, 241, 241, 242, 242,
+- 242, 242, 243, 244, 244, 245, 245, 246, 247, 248,
+- 248, 249, 249, 250, 251, 252, 252, 253, 253, 254,
+- 255, 256, 256, 257, 257, 258, 259, 259, 260, 260,
+- 261, 261, 261, 262, 263, 263, 264, 264, 265, 266,
+- 266, 267, 267, 268, 268, 268, 269, 269, 271, 270,
+- 270, 272, 272, 273, 273, 273, 273, 273, 273, 273,
+- 273, 273, 274, 274, 275, 275, 276, 276, 276, 276,
+- 277, 277, 278, 278, 279, 280, 280, 281, 281, 282,
+- 282, 283, 284, 285, 285, 286, 286, 287, 288, 288,
+- 289, 289, 290, 290, 291, 292, 293, 294, 295, 296,
+- 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
+- 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
+- 317, 318, 319, 320, 321, 321, 322, 323, 324, 324,
+- 324, 325, 325, 326, 326, 327, 327, 328, 329, 329,
+- 330, 330, 331, 331, 332, 333, 334, 334, 336, 335,
+- 337, 337, 337, 338, 338, 339, 339, 340, 340, 341,
+- 341, 342, 342, 342, 343, 343, 344, 344, 345, 345,
+- 346, 346, 347, 347, 347, 347, 347, 347, 348, 348,
+- 348, 348, 348, 348, 348, 349, 350, 350, 351, 351,
+- 352, 352, 353, 354, 354, 355, 355, 355, 355, 355,
+- 355, 355, 355, 355, 356, 356, 356, 357, 357, 359,
+- 360, 358, 362, 361, 363, 365, 366, 364, 367, 367,
+- 368, 368, 369, 370, 370, 370, 370, 371, 371, 372,
+- 372, 372, 373, 373, 373, 373, 373, 373, 373, 373,
+- 373, 373, 373, 373, 373, 373, 373, 373, 373, 373,
+- 373, 373, 373, 373, 373, 373, 373, 373, 373, 373,
+- 373, 373, 373, 373, 373, 373, 373, 374, 375, 376,
+- 376, 377, 377, 377, 378, 378, 379, 379, 380, 380,
+- 380, 381, 381, 382, 382, 384, 383, 383, 385, 387,
+- 386, 386, 388, 389, 390, 389, 391, 392, 391, 393,
+- 393, 393, 393, 394, 394, 394, 394, 394, 394, 394,
+- 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
+- 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
+- 394, 394, 395, 395, 396, 396, 397, 397, 398, 398,
+- 399, 399, 400, 400, 401, 401, 401, 401, 402, 402,
+- 403, 403, 404, 404, 405, 405, 406, 407, 407, 407,
+- 408, 408, 408, 408, 408, 408, 408, 408, 408, 410,
+- 409, 411, 409, 409, 413, 412, 412, 414, 414, 416,
+- 415, 415, 417, 418, 418, 419, 419, 420, 420, 420,
+- 420, 420, 421, 421, 422, 423, 423, 424, 424, 424,
+- 425, 425, 425, 425, 425, 425, 425, 425, 425, 425,
+- 425, 425, 425, 425, 425, 425, 425, 425, 425, 425,
+- 425, 425, 425, 425, 425, 425, 425, 425, 425, 425,
+- 425, 426, 426, 427, 427, 428, 428, 428
+-};
++#define yypact_value_is_default(Yyn) \
++ ((Yyn) == YYPACT_NINF)
+
+-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+-static const yytype_uint8 yyr2[] =
++#define YYTABLE_NINF (-564)
++
++#define yytable_value_is_error(Yyn) \
++ 0
++
++/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
++ STATE-NUM. */
++static const yytype_int16 yypact[] =
+ {
+- 0, 2, 1, 2, 0, 2, 1, 1, 1, 1,
+- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+- 1, 1, 1, 1, 1, 1, 2, 1, 3, 1,
+- 3, 3, 2, 1, 3, 1, 3, 3, 2, 1,
+- 3, 1, 3, 3, 2, 1, 3, 1, 3, 3,
+- 3, 1, 3, 1, 3, 3, 2, 2, 3, 1,
+- 3, 3, 3, 5, 0, 3, 4, 1, 2, 1,
+- 1, 1, 1, 2, 0, 5, 0, 6, 4, 1,
+- 2, 1, 1, 1, 1, 2, 2, 1, 1, 1,
+- 14, 0, 5, 0, 3, 1, 2, 0, 5, 1,
+- 2, 1, 2, 1, 3, 1, 3, 3, 0, 5,
+- 1, 2, 1, 0, 5, 1, 2, 3, 4, 1,
+- 3, 1, 3, 0, 1, 3, 1, 3, 3, 3,
+- 3, 3, 2, 1, 3, 1, 3, 3, 2, 1,
+- 3, 1, 3, 3, 2, 1, 3, 1, 3, 3,
+- 3, 1, 3, 1, 3, 3, 0, 4, 1, 2,
+- 1, 1, 1, 3, 1, 3, 1, 3, 3, 0,
+- 4, 1, 2, 1, 1, 1, 3, 3, 0, 3,
+- 3, 1, 3, 3, 3, 3, 3, 3, 3, 3,
+- 3, 3, 0, 4, 1, 2, 1, 1, 1, 1,
+- 1, 1, 0, 1, 2, 1, 3, 1, 3, 3,
+- 3, 2, 2, 1, 3, 1, 3, 3, 0, 2,
+- 0, 2, 0, 2, 2, 2, 2, 2, 2, 2,
+- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+- 2, 2, 2, 3, 1, 3, 3, 3, 0, 1,
+- 3, 1, 3, 3, 3, 0, 1, 3, 1, 3,
+- 1, 3, 3, 3, 4, 2, 1, 2, 0, 9,
+- 0, 1, 1, 0, 1, 0, 1, 0, 1, 1,
+- 2, 1, 1, 4, 0, 1, 0, 2, 0, 2,
+- 1, 3, 1, 1, 1, 1, 1, 1, 0, 1,
+- 1, 1, 1, 1, 1, 3, 0, 3, 2, 1,
+- 1, 3, 1, 1, 1, 1, 4, 2, 1, 1,
+- 1, 1, 1, 1, 0, 1, 3, 6, 12, 0,
+- 0, 8, 0, 3, 4, 0, 0, 8, 0, 2,
+- 1, 3, 2, 0, 1, 1, 1, 0, 3, 0,
+- 1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
+- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+- 2, 2, 2, 3, 3, 3, 2, 3, 3, 1,
+- 3, 3, 3, 3, 0, 4, 1, 2, 1, 1,
+- 1, 1, 1, 0, 1, 0, 3, 1, 11, 0,
+- 3, 1, 11, 0, 0, 6, 0, 0, 7, 17,
+- 7, 17, 16, 1, 1, 1, 1, 1, 1, 1,
+- 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+- 2, 3, 3, 1, 2, 2, 1, 2, 2, 2,
+- 1, 2, 0, 1, 0, 1, 0, 2, 0, 3,
+- 1, 3, 1, 3, 1, 5, 1, 1, 0, 2,
+- 0, 2, 0, 2, 0, 2, 1, 0, 1, 3,
+- 4, 4, 4, 3, 3, 6, 6, 3, 2, 0,
+- 3, 0, 3, 1, 0, 3, 1, 1, 1, 0,
+- 3, 1, 8, 0, 3, 1, 2, 1, 1, 2,
+- 2, 2, 4, 3, 3, 0, 1, 0, 3, 2,
+- 1, 4, 2, 2, 1, 1, 2, 1, 1, 2,
+- 2, 3, 1, 1, 1, 2, 2, 1, 1, 1,
+- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+- 1, 1, 3, 0, 4, 0, 1, 3
++ -840, 125, -840, 1218, -840, -840, 42, -2, 54, 55,
++ 58, 74, 100, 100, 100, 100, 75, 181, 100, 100,
++ 100, 100, 100, 100, 100, 100, 1542, 51, -840, -840,
++ 23, 228, 46, 100, 100, 100, 48, 238, 62, 64,
++ 84, 84, -840, -840, -840, 190, -840, -840, -840, -840,
++ -840, -840, -840, -840, -840, -840, -840, -840, -840, 218,
++ 224, 277, 279, 1542, -840, -840, 1506, 309, -840, -840,
++ 76, 59, 1506, 84, 203, -840, 66, 68, 53, -840,
++ -840, -840, -840, -840, -840, -840, -840, -840, -840, -840,
++ -840, -840, -840, -840, -840, -840, -840, -840, -840, -840,
++ -840, -840, -840, -840, -840, -840, -840, -840, -840, -840,
++ -840, -840, -840, -840, -840, -840, -840, -840, -840, -840,
++ -840, -840, -840, -840, 206, 285, -840, -840, -840, -840,
++ 359, -840, -840, -840, 79, -840, 297, -26, -840, -840,
++ 254, -840, -840, 268, -840, -840, 271, -840, -840, 281,
++ -840, -840, 286, 100, -840, -840, 257, -840, -840, -840,
++ -840, 101, 100, 395, -840, -840, -840, -840, -840, -840,
++ -840, -840, 84, 276, -840, -840, 158, -840, -840, -840,
++ 298, -840, -840, -840, -840, -840, -840, 338, 287, -840,
++ 335, 324, 342, -840, 331, 344, -840, -840, 18, -840,
++ -840, -840, 418, -840, -840, -840, 447, -840, 285, -840,
++ 77, -840, 378, 380, -840, 400, -840, -840, 171, 276,
++ 388, 390, 1506, 404, -840, -840, 406, -840, -840, 407,
++ -840, -840, 1506, 279, 1542, 482, -49, 234, 146, -840,
++ 391, 392, 169, -840, 393, 210, -840, 396, 214, -840,
++ 399, 222, -840, 401, 295, -840, 402, 306, -840, -840,
++ -840, -840, 403, 405, 312, -840, -840, -840, 100, -840,
++ 516, -840, 4, 408, 409, 316, -840, 410, 323, -840,
++ 412, 413, 414, 416, 417, 419, 420, 421, 422, 423,
++ 326, -840, 244, -840, 335, -840, -840, 424, 337, -840,
++ 267, -840, 425, 339, -840, 267, -840, 381, 381, -840,
++ 276, -840, 146, 276, 397, 426, 528, 529, 428, 341,
++ -840, 429, 430, 431, 432, 343, -840, -840, 1279, 84,
++ 276, -840, -21, 433, 349, -840, 435, 352, -840, 436,
++ 354, -840, -9, -840, 276, -840, 1279, 437, 439, 105,
++ 440, 441, 442, 443, 444, 449, 450, -840, 34, -34,
++ 438, 451, 452, 456, 486, -840, -840, 314, 488, -840,
++ -26, 567, -840, 254, 575, -840, 268, 576, -840, 271,
++ 579, -840, 281, 580, -840, 286, 581, 513, -840, 101,
++ -840, 465, -11, -840, 466, 461, 590, 530, 472, 467,
++ 592, 394, -840, 158, 594, -840, 298, 595, 596, 238,
++ 394, 394, 394, 394, 394, 599, 523, -840, 338, 485,
++ 81, -840, -840, 36, -840, -840, -840, -840, 238, -840,
++ 324, -840, -840, 38, -840, -840, 238, -840, 331, -840,
++ -840, 45, -840, -840, 315, 276, 276, -840, -840, 480,
++ 606, 253, 483, -840, -1, -840, -840, 33, -840, 314,
++ -840, 400, 605, 607, 608, 609, -840, 171, 418, 418,
++ 418, 418, 418, 493, 494, 418, 495, 497, -840, 418,
++ 492, 496, 498, 1506, -840, 238, -840, 404, 238, -840,
++ 406, 84, -840, 407, -840, -840, 499, 288, 500, -840,
++ 1506, -840, -840, -840, -840, -840, -840, -840, -840, -840,
++ 502, -840, 504, -840, -840, -840, 1279, -840, -840, -840,
++ -840, -840, -840, -840, -840, -840, -840, -840, -840, -840,
++ -840, -840, -840, -840, -840, -840, 93, 516, -840, 334,
++ -840, -840, 11, -840, 418, -840, -840, -840, -840, -840,
++ -840, -840, -840, -840, -840, -840, -840, -840, -840, -840,
++ -840, -840, -840, 515, -840, -840, 128, 100, 505, -840,
++ -840, -840, 506, -840, -840, -840, 507, -840, -840, -840,
++ -840, 508, -840, 84, -840, -840, 510, 642, 517, -840,
++ 735, -840, -840, -840, -840, -840, -840, -840, -840, -840,
++ -840, -840, -840, -840, 276, 276, 276, 276, 276, 1279,
++ 1279, 276, 573, 1279, 276, 519, -840, -840, 232, -840,
++ -840, -840, -840, -840, -840, -840, -840, 466, 573, 100,
++ 100, 100, -840, -840, 56, -840, 656, 520, -840, -840,
++ 521, 509, -840, -840, -840, -840, -840, 100, 100, 100,
++ 100, 1506, 134, -840, -840, -840, -840, -840, -840, -840,
++ -840, -840, 643, -840, 522, 358, -840, 525, 526, 360,
++ -840, -840, -840, -840, -840, 315, -840, 527, 527, 389,
++ -840, -840, 533, -840, -840, 492, 492, 492, -840, -840,
++ 535, 536, -840, -840, 561, -840, -840, 84, 293, -840,
++ 272, 100, 47, -840, -840, -840, -840, -840, -840, 561,
++ -840, -840, -840, -840, -840, 100, 673, 534, 573, 335,
++ -840, -840, -840, -840, 658, 537, -840, -840, 659, -840,
++ 515, 661, 662, -840, 128, -840, 1092, 540, 541, 538,
++ -840, -840, 545, 389, -840, 1506, -840, -840, -840, 418,
++ 418, -840, 584, 552, -840, -840, -840, -840, -840, -840,
++ 519, -840, -840, -840, -840, -840, -840, 843, -840, 548,
++ -840, 584, -840, 100, 690, -840, 561, 549, 558, -840,
++ -840, -840, -840, -840, -840, 100, 100, 559, 100, 100,
++ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
++ 644, 644, 644, 543, -840, -840, 547, -840, -840, 563,
++ 683, -840, -840, -840, -840, -840, -840, -840, -840, -840,
++ -840, -840, -840, -840, -840, -840, -840, -840, -840, -840,
++ -840, -840, -840, -840, -840, 983, -840, -840, -840, -840,
++ -840, -840, -840, -840, -840, -840, -840, -840, -840, -840,
++ 519, 276, 562, -840, 362, 276, 276, 565, 564, -840,
++ -840, -840, -840, -840, -840, -840, 568, -30, -840, -840,
++ 569, -840, 564, -840, 100, -840, 584, 335, 1279, -840,
++ -840, 1279, -840, -840, -840, -840, -840, -840, -840, -840,
++ -840, -840, -840, -840, -840, 553, 555, 560, -840, 1336,
++ 1336, 566, 1450, 1393, 694, 156, 572, 578, -840, -840,
++ -840, 577, -840, 276, -840, -840, 84, 627, 276, -840,
++ 274, 276, -840, 564, -840, 583, 585, -840, -840, -840,
++ -840, -840, -840, -840, -840, 90, -840, 559, -840, 582,
++ 586, 587, 364, -840, 267, -840, 593, -840, -840, 589,
++ -840, 367, -840, 570, 293, 373, 570, 276, 573, 584,
++ 591, 701, 314, 712, -840, 156, -840, -840, -840, 52,
++ -840, 584, 642, -840, 84, -840, 597, -840, 519, 600,
++ 570, 584, 276, -840, -840, -840, -840, 602, -840, 564,
++ -840, -840, 1506, 700, 293, 642, 603, 276, 616, -840,
++ 276, 598, 100, 702, 700, 700, 570, -840, 611, 612,
++ 1279, -840, 100, 715, 702, 702, 615, 601, 642, 700,
++ 604, -840, 100, 706, 715, 715, 642, 1279, 700, 702,
++ 617, -840, 100, -840, 706, 706, 700, 610, 702, 715,
++ -840, -840, -840, -840, 702, 618, -840, -840, -840, -840
+ };
+
+-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
++/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
++ Performed when YYTABLE does not specify something else to do. Zero
+ means the default is an error. */
+-static const yytype_uint16 yydefact[] =
++static const yytype_int16 yydefact[] =
+ {
+ 4, 4, 2, 0, 1, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 151, 352,
++ 0, 0, 0, 0, 0, 0, 0, 0, 151, 353,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 574, 564, 567, 568, 572, 573, 577, 578,
+- 579, 580, 581, 582, 583, 584, 585, 586, 587, 310,
+- 0, 565, 0, 0, 588, 589, 0, 0, 138, 127,
+- 0, 153, 0, 0, 0, 590, 0, 0, 0, 5,
++ 0, 0, 575, 565, 568, 569, 573, 574, 578, 579,
++ 580, 581, 582, 583, 584, 585, 586, 587, 588, 311,
++ 0, 566, 0, 0, 589, 590, 0, 0, 138, 127,
++ 0, 153, 0, 0, 0, 591, 0, 0, 0, 5,
+ 43, 19, 20, 21, 9, 42, 14, 50, 40, 41,
+ 46, 16, 17, 15, 44, 45, 18, 22, 23, 24,
+ 7, 8, 6, 11, 12, 13, 10, 25, 26, 55,
+ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+- 37, 38, 39, 52, 560, 349, 350, 51, 47, 49,
+- 372, 48, 53, 54, 0, 557, 0, 0, 86, 57,
++ 37, 38, 39, 52, 561, 350, 351, 51, 47, 49,
++ 373, 48, 53, 54, 0, 558, 0, 0, 86, 57,
+ 0, 56, 63, 0, 62, 69, 0, 68, 75, 0,
+- 74, 81, 0, 0, 306, 277, 0, 278, 280, 281,
+- 298, 0, 0, 313, 271, 272, 273, 274, 275, 269,
+- 276, 254, 0, 498, 143, 235, 0, 234, 241, 243,
+- 0, 242, 255, 256, 257, 230, 231, 0, 222, 208,
+- 232, 0, 186, 181, 0, 199, 194, 375, 369, 570,
+- 311, 312, 315, 575, 563, 566, 569, 576, 348, 557,
+- 0, 121, 0, 0, 133, 0, 132, 154, 0, 498,
++ 74, 81, 0, 0, 307, 278, 0, 279, 281, 282,
++ 299, 0, 0, 314, 272, 273, 274, 275, 276, 270,
++ 277, 255, 0, 499, 143, 236, 0, 235, 242, 244,
++ 0, 243, 256, 257, 258, 231, 232, 0, 223, 208,
++ 233, 0, 186, 181, 0, 199, 194, 376, 370, 571,
++ 312, 313, 316, 576, 564, 567, 570, 577, 349, 558,
++ 0, 121, 0, 0, 133, 0, 132, 154, 0, 499,
+ 0, 94, 0, 0, 162, 163, 0, 168, 169, 0,
+- 174, 175, 0, 0, 0, 0, 498, 0, 555, 87,
++ 174, 175, 0, 0, 0, 0, 499, 0, 556, 87,
+ 0, 0, 0, 89, 0, 0, 59, 0, 0, 65,
+ 0, 0, 71, 0, 0, 77, 0, 0, 83, 80,
+- 307, 305, 0, 0, 0, 300, 297, 314, 0, 562,
+- 0, 104, 315, 0, 0, 0, 237, 0, 0, 245,
++ 308, 306, 0, 0, 0, 301, 298, 315, 0, 563,
++ 0, 104, 316, 0, 0, 0, 238, 0, 0, 246,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 211, 0, 206, 232, 233, 207, 0, 0, 183, 0,
+- 180, 0, 0, 196, 0, 193, 378, 378, 316, 498,
+- 571, 555, 498, 0, 123, 0, 0, 0, 0, 135,
+- 0, 0, 0, 0, 0, 156, 152, 517, 0, 498,
+- 591, 0, 0, 0, 165, 0, 0, 171, 0, 0,
+- 177, 0, 351, 498, 373, 517, 543, 0, 0, 0,
+- 464, 463, 465, 466, 468, 469, 483, 486, 490, 0,
+- 467, 470, 0, 559, 556, 553, 0, 0, 88, 0,
+- 0, 58, 0, 0, 64, 0, 0, 70, 0, 0,
+- 76, 0, 0, 82, 0, 0, 0, 299, 0, 304,
+- 502, 0, 500, 0, 145, 0, 149, 0, 0, 0,
+- 0, 236, 0, 0, 244, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 210, 0, 0, 288, 226,
+- 227, 0, 224, 228, 229, 209, 0, 182, 0, 190,
+- 191, 0, 188, 192, 0, 195, 0, 203, 204, 0,
+- 201, 205, 383, 498, 498, 308, 552, 0, 0, 0,
+- 0, 142, 0, 140, 131, 0, 129, 0, 134, 0,
+- 0, 0, 0, 0, 155, 0, 315, 315, 315, 315,
+- 315, 0, 0, 315, 0, 516, 518, 315, 328, 0,
+- 0, 0, 374, 0, 164, 0, 0, 170, 0, 0,
+- 176, 0, 561, 106, 0, 0, 0, 484, 0, 488,
+- 489, 474, 473, 475, 476, 478, 479, 487, 471, 491,
+- 472, 485, 477, 480, 517, 558, 441, 442, 91, 92,
+- 90, 61, 60, 67, 66, 73, 72, 79, 78, 85,
+- 84, 302, 303, 301, 0, 0, 499, 0, 105, 146,
+- 0, 144, 315, 239, 353, 354, 240, 238, 247, 246,
+- 213, 214, 215, 216, 217, 218, 219, 220, 221, 212,
+- 0, 282, 289, 0, 0, 0, 225, 185, 184, 0,
+- 189, 198, 197, 0, 202, 384, 385, 386, 379, 380,
+- 0, 376, 370, 0, 295, 0, 125, 0, 372, 122,
+- 139, 141, 128, 130, 137, 136, 159, 160, 161, 158,
+- 157, 498, 498, 498, 498, 498, 517, 517, 498, 492,
+- 0, 498, 346, 528, 95, 0, 93, 592, 167, 166,
+- 173, 172, 179, 178, 0, 492, 0, 0, 0, 547,
+- 548, 0, 545, 248, 0, 481, 482, 0, 230, 506,
+- 507, 504, 503, 501, 0, 0, 0, 0, 0, 0,
+- 109, 119, 111, 112, 113, 117, 114, 118, 147, 0,
+- 150, 0, 0, 284, 0, 0, 0, 291, 287, 223,
+- 187, 200, 383, 382, 387, 387, 317, 296, 367, 0,
+- 124, 126, 328, 328, 328, 523, 524, 0, 0, 527,
+- 493, 494, 519, 554, 0, 329, 330, 338, 0, 0,
+- 97, 101, 99, 100, 102, 107, 494, 549, 550, 551,
+- 544, 546, 0, 250, 0, 492, 232, 270, 266, 115,
+- 116, 0, 0, 110, 148, 0, 283, 0, 0, 0,
+- 290, 0, 381, 389, 0, 0, 326, 321, 322, 0,
+- 318, 319, 0, 520, 521, 522, 315, 315, 495, 593,
+- 0, 332, 333, 334, 335, 336, 337, 346, 339, 341,
+- 342, 343, 344, 340, 0, 103, 0, 98, 593, 249,
+- 0, 252, 460, 494, 0, 0, 108, 286, 285, 293,
+- 294, 292, 0, 0, 352, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 443, 443, 443,
+- 0, 529, 531, 539, 534, 449, 0, 0, 398, 394,
+- 392, 393, 404, 405, 406, 407, 408, 409, 410, 411,
+- 412, 413, 414, 415, 403, 416, 402, 400, 399, 395,
+- 397, 396, 0, 390, 401, 418, 447, 417, 451, 541,
+- 419, 533, 536, 537, 538, 377, 371, 346, 498, 0,
+- 320, 0, 498, 498, 0, 496, 347, 331, 362, 359,
+- 358, 363, 361, 0, 355, 360, 345, 0, 96, 496,
+- 251, 0, 542, 593, 232, 517, 279, 268, 517, 258,
+- 259, 260, 261, 262, 263, 264, 265, 267, 422, 421,
+- 420, 444, 0, 0, 0, 426, 0, 0, 0, 0,
+- 0, 0, 0, 434, 0, 388, 391, 327, 324, 309,
+- 498, 525, 526, 595, 0, 498, 357, 346, 498, 253,
+- 496, 505, 0, 0, 423, 424, 425, 539, 530, 532,
+- 446, 540, 0, 535, 0, 450, 0, 0, 0, 0,
+- 429, 0, 427, 0, 325, 323, 0, 596, 0, 497,
+- 456, 365, 0, 456, 498, 492, 593, 0, 0, 0,
+- 0, 428, 0, 438, 439, 440, 0, 436, 593, 295,
+- 594, 0, 457, 0, 356, 346, 0, 456, 593, 498,
+- 431, 432, 433, 430, 0, 437, 496, 368, 597, 0,
+- 512, 366, 295, 0, 498, 453, 435, 498, 0, 0,
+- 510, 512, 512, 456, 454, 0, 0, 517, 513, 0,
+- 514, 510, 510, 0, 0, 295, 512, 0, 511, 0,
+- 508, 514, 514, 295, 517, 512, 510, 0, 515, 0,
+- 462, 508, 508, 512, 0, 510, 514, 458, 509, 459,
+- 461, 510, 0, 452, 448, 120, 455
++ 0, 211, 0, 206, 233, 234, 207, 0, 0, 183,
++ 0, 180, 0, 0, 196, 0, 193, 379, 379, 317,
++ 499, 572, 556, 499, 0, 123, 0, 0, 0, 0,
++ 135, 0, 0, 0, 0, 0, 156, 152, 518, 0,
++ 499, 592, 0, 0, 0, 165, 0, 0, 171, 0,
++ 0, 177, 0, 352, 499, 374, 518, 544, 0, 0,
++ 0, 465, 464, 466, 467, 469, 470, 484, 487, 491,
++ 0, 468, 471, 0, 560, 557, 554, 0, 0, 88,
++ 0, 0, 58, 0, 0, 64, 0, 0, 70, 0,
++ 0, 76, 0, 0, 82, 0, 0, 0, 300, 0,
++ 305, 503, 0, 501, 0, 145, 0, 149, 0, 0,
++ 0, 0, 237, 0, 0, 245, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 210, 0, 0,
++ 289, 227, 228, 0, 225, 229, 230, 209, 0, 182,
++ 0, 190, 191, 0, 188, 192, 0, 195, 0, 203,
++ 204, 0, 201, 205, 384, 499, 499, 309, 553, 0,
++ 0, 0, 0, 142, 0, 140, 131, 0, 129, 0,
++ 134, 0, 0, 0, 0, 0, 155, 0, 316, 316,
++ 316, 316, 316, 0, 0, 316, 0, 517, 519, 316,
++ 329, 0, 0, 0, 375, 0, 164, 0, 0, 170,
++ 0, 0, 176, 0, 562, 106, 0, 0, 0, 485,
++ 0, 489, 490, 475, 474, 476, 477, 479, 480, 488,
++ 472, 492, 473, 486, 478, 481, 518, 559, 442, 443,
++ 91, 92, 90, 61, 60, 67, 66, 73, 72, 79,
++ 78, 85, 84, 303, 304, 302, 0, 0, 500, 0,
++ 105, 146, 0, 144, 316, 240, 354, 355, 241, 239,
++ 248, 247, 213, 214, 215, 216, 217, 218, 219, 220,
++ 221, 222, 212, 0, 283, 290, 0, 0, 0, 226,
++ 185, 184, 0, 189, 198, 197, 0, 202, 385, 386,
++ 387, 380, 381, 0, 377, 371, 0, 296, 0, 125,
++ 0, 373, 122, 139, 141, 128, 130, 137, 136, 159,
++ 160, 161, 158, 157, 499, 499, 499, 499, 499, 518,
++ 518, 499, 493, 0, 499, 347, 529, 95, 0, 93,
++ 593, 167, 166, 173, 172, 179, 178, 0, 493, 0,
++ 0, 0, 548, 549, 0, 546, 249, 0, 482, 483,
++ 0, 231, 507, 508, 505, 504, 502, 0, 0, 0,
++ 0, 0, 0, 109, 119, 111, 112, 113, 117, 114,
++ 118, 147, 0, 150, 0, 0, 285, 0, 0, 0,
++ 292, 288, 224, 187, 200, 384, 383, 388, 388, 318,
++ 297, 368, 0, 124, 126, 329, 329, 329, 524, 525,
++ 0, 0, 528, 494, 495, 520, 555, 0, 330, 331,
++ 339, 0, 0, 97, 101, 99, 100, 102, 107, 495,
++ 550, 551, 552, 545, 547, 0, 251, 0, 493, 233,
++ 271, 267, 115, 116, 0, 0, 110, 148, 0, 284,
++ 0, 0, 0, 291, 0, 382, 390, 0, 0, 327,
++ 322, 323, 0, 319, 320, 0, 521, 522, 523, 316,
++ 316, 496, 594, 0, 333, 334, 335, 336, 337, 338,
++ 347, 340, 342, 343, 344, 345, 341, 0, 103, 0,
++ 98, 594, 250, 0, 253, 461, 495, 0, 0, 108,
++ 287, 286, 294, 295, 293, 0, 0, 353, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 444, 444, 444, 0, 530, 532, 540, 535, 450, 0,
++ 0, 399, 395, 393, 394, 405, 406, 407, 408, 409,
++ 410, 411, 412, 413, 414, 415, 416, 404, 417, 403,
++ 401, 400, 396, 398, 397, 0, 391, 402, 419, 448,
++ 418, 452, 542, 420, 534, 537, 538, 539, 378, 372,
++ 347, 499, 0, 321, 0, 499, 499, 0, 497, 348,
++ 332, 363, 360, 359, 364, 362, 0, 356, 361, 346,
++ 0, 96, 497, 252, 0, 543, 594, 233, 518, 280,
++ 269, 518, 259, 260, 261, 262, 263, 264, 265, 266,
++ 268, 423, 422, 421, 445, 0, 0, 0, 427, 0,
++ 0, 0, 0, 0, 0, 0, 435, 0, 389, 392,
++ 328, 325, 310, 499, 526, 527, 596, 0, 499, 358,
++ 347, 499, 254, 497, 506, 0, 0, 424, 425, 426,
++ 540, 531, 533, 447, 541, 0, 536, 0, 451, 0,
++ 0, 0, 0, 430, 0, 428, 0, 326, 324, 0,
++ 597, 0, 498, 457, 366, 0, 457, 499, 493, 594,
++ 0, 0, 0, 0, 429, 0, 439, 440, 441, 0,
++ 437, 594, 296, 595, 0, 458, 0, 357, 347, 0,
++ 457, 594, 499, 432, 433, 434, 431, 0, 438, 497,
++ 369, 598, 0, 513, 367, 296, 0, 499, 454, 436,
++ 499, 0, 0, 511, 513, 513, 457, 455, 0, 0,
++ 518, 514, 0, 515, 511, 511, 0, 0, 296, 513,
++ 0, 512, 0, 509, 515, 515, 296, 518, 513, 511,
++ 0, 516, 0, 463, 509, 509, 513, 0, 511, 515,
++ 459, 510, 460, 462, 511, 0, 453, 449, 120, 456
++};
++
++/* YYPGOTO[NTERM-NUM]. */
++static const yytype_int16 yypgoto[] =
++{
++ -840, -840, 754, -840, -840, -408, -840, -840, -840, 434,
++ -840, -840, -840, 415, -840, -840, -840, 386, -840, -840,
++ -840, 384, -840, -840, -840, 411, -840, -840, -840, 427,
++ -622, -840, -840, -840, 91, -840, -840, -840, -840, -840,
++ 165, -840, 143, -840, -615, -840, -840, -840, -840, -840,
++ -840, 345, -840, -840, -840, 340, -840, -840, -840, 350,
++ -264, -840, -840, -840, -261, -840, -840, -840, 363, -840,
++ -840, -840, 311, -840, -840, -840, 346, -840, -840, -840,
++ 332, -840, -840, -840, 375, -840, -840, 445, -840, -840,
++ -840, 446, -840, -840, 398, -840, -840, -840, -840, 448,
++ -840, -840, 453, 17, -276, -840, -840, -840, 455, -840,
++ -840, -840, -840, 457, -840, -840, -840, -840, -840, -840,
++ -513, -840, -840, -840, -840, -840, -840, -840, -840, -595,
++ -840, -840, -840, -593, -840, -840, -840, -840, -840, -840,
++ -840, -840, -840, -840, -840, -840, -840, -840, 102, -268,
++ -840, -840, 99, -839, -840, -840, -840, 454, -840, -13,
++ -840, -510, -840, -840, -840, -225, -840, -840, 94, -840,
++ -840, -239, -790, -840, -840, -653, -840, -27, 772, 613,
++ -351, -840, -840, -578, -573, -840, -840, -561, -840, 835,
++ -216, -840, -840, 539, -840, 167, -840, 170, -840, 15,
++ -840, -840, -840, -116, -840, -840, -118, -436, -272, -840,
++ -840, -48, -840, -840, -52, -840, -840, -788, -840, 12,
++ -840, -598, -644, -837, -194, -840, 318, -840, -503, -734,
++ -735, -786, -342, -840, 243, -840, -840, -840, -366, -840,
++ -44, -840, -840, 14, -840, -840, 230, 0, -840, 556,
++ 660, -10, -205, -722, -840
+ };
+
+ /* YYDEFGOTO[NTERM-NUM]. */
+ static const yytype_int16 yydefgoto[] =
+ {
+- -1, 1, 2, 3, 79, 80, 81, 141, 245, 246,
++ 0, 1, 2, 3, 79, 80, 81, 141, 245, 246,
+ 82, 144, 248, 249, 83, 147, 251, 252, 84, 150,
+ 254, 255, 85, 153, 257, 258, 86, 138, 242, 243,
+- 87, 329, 616, 699, 700, 701, 88, 393, 89, 624,
+- 538, 649, 650, 651, 90, 314, 450, 587, 91, 213,
+- 455, 456, 92, 216, 318, 319, 93, 212, 452, 453,
+- 94, 272, 396, 397, 95, 96, 219, 324, 325, 97,
+- 224, 333, 334, 98, 227, 336, 337, 99, 230, 339,
+- 340, 100, 192, 297, 298, 300, 431, 432, 101, 195,
+- 302, 303, 305, 439, 440, 102, 188, 293, 289, 290,
+- 292, 421, 422, 189, 295, 103, 177, 275, 276, 104,
+- 105, 181, 278, 279, 713, 771, 872, 106, 107, 108,
+- 109, 813, 814, 815, 816, 817, 818, 819, 820, 655,
+- 822, 823, 110, 656, 111, 112, 113, 114, 115, 116,
+- 117, 118, 825, 119, 120, 423, 561, 662, 663, 677,
+- 564, 666, 667, 678, 121, 162, 264, 265, 122, 155,
+- 156, 123, 583, 202, 268, 309, 739, 740, 741, 945,
+- 848, 613, 695, 757, 764, 696, 697, 124, 125, 126,
+- 546, 866, 952, 127, 128, 307, 675, 129, 235, 588,
+- 131, 306, 674, 443, 578, 579, 580, 734, 832, 833,
+- 834, 903, 939, 940, 942, 966, 967, 518, 892, 835,
+- 898, 836, 837, 901, 838, 1005, 1014, 973, 989, 839,
+- 362, 691, 749, 915, 271, 391, 392, 642, 1030, 1010,
+- 1000, 1020, 474, 475, 476, 840, 896, 897, 841, 900,
+- 842, 843, 899, 844, 496, 631, 632, 477, 478, 365,
+- 238, 135, 331, 855, 948
+-};
+-
+-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+- STATE-NUM. */
+-#define YYPACT_NINF -823
+-static const yytype_int16 yypact[] =
+-{
+- -823, 143, -823, 1215, -823, -823, -1, 60, 86, 87,
+- 68, 69, 119, 119, 119, 119, 71, 24, 119, 119,
+- 119, 119, 119, 119, 119, 119, 1503, 8, -823, -823,
+- 13, 137, 34, 119, 119, 119, 46, 322, 50, 52,
+- 85, 85, -823, -823, -823, 111, -823, -823, -823, -823,
+- -823, -823, -823, -823, -823, -823, -823, -823, -823, 364,
+- 154, 296, 217, 1503, -823, -823, 497, 270, -823, -823,
+- 74, 89, 497, 85, 102, -823, 63, 65, 67, -823,
+- -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
+- -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
+- -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
+- -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
+- -823, -823, -823, -823, 140, 167, -823, -823, -823, -823,
+- 311, -823, -823, -823, 94, -823, 219, 160, -823, -823,
+- 207, -823, -823, 214, -823, -823, 216, -823, -823, 221,
+- -823, -823, 231, 119, -823, -823, 175, -823, -823, -823,
+- -823, 28, 119, 341, -823, -823, -823, -823, -823, -823,
+- -823, -823, 85, 215, -823, -823, 309, -823, -823, -823,
+- 243, -823, -823, -823, -823, -823, -823, 295, 242, -823,
+- 276, 263, 249, -823, 285, 265, -823, -823, 45, -823,
+- -823, -823, 405, -823, -823, -823, 384, -823, 167, -823,
+- 75, -823, 308, 366, -823, 406, -823, -823, 259, 215,
+- 336, 345, 497, 407, -823, -823, 408, -823, -823, 409,
+- -823, -823, 497, 217, 1503, 479, 107, 227, 138, -823,
+- 393, 394, 313, -823, 395, 320, -823, 399, 324, -823,
+- 400, 326, -823, 401, 329, -823, 402, 331, -823, -823,
+- -823, -823, 403, 410, 333, -823, -823, -823, 119, -823,
+- 518, -823, 18, 411, 414, 337, -823, 433, 340, -823,
+- 437, 439, 440, 441, 442, 443, 445, 449, 450, 342,
+- -823, 332, -823, 276, -823, -823, 451, 346, -823, 306,
+- -823, 452, 348, -823, 306, -823, 390, 390, -823, 215,
+- -823, 138, 215, 398, 453, 527, 529, 455, 350, -823,
+- 457, 462, 463, 464, 352, -823, -823, 1276, 85, 215,
+- -823, -22, 465, 354, -823, 466, 356, -823, 467, 358,
+- -823, 29, -823, 215, -823, 1276, 469, 470, 108, 471,
+- 472, 473, 474, 475, 480, 481, -823, -40, 185, 468,
+- 482, 483, 456, 544, -823, -823, 287, 534, -823, 160,
+- 606, -823, 207, 607, -823, 214, 608, -823, 216, 611,
+- -823, 221, 612, -823, 231, 613, 542, -823, 28, -823,
+- 495, -21, -823, 496, 491, 620, 560, 503, 499, 625,
+- 397, -823, 309, 626, -823, 243, 627, 628, 322, 397,
+- 397, 397, 397, 631, 555, -823, 295, 516, 90, -823,
+- -823, 38, -823, -823, -823, -823, 322, -823, 263, -823,
+- -823, 25, -823, -823, 322, -823, 285, -823, -823, 35,
+- -823, -823, 359, 215, 215, -823, -823, 511, 636, 842,
+- 513, -823, 21, -823, -823, 31, -823, 287, -823, 406,
+- 638, 639, 642, 643, -823, 259, 405, 405, 405, 405,
+- 405, 520, 528, 405, 531, 532, -823, 405, 526, 535,
+- 533, 497, -823, 322, -823, 407, 322, -823, 408, 85,
+- -823, 409, -823, -823, 537, 330, 524, -823, 497, -823,
+- -823, -823, -823, -823, -823, -823, -823, -823, 536, -823,
+- 538, -823, -823, -823, 1276, -823, -823, -823, -823, -823,
+- -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
+- -823, -823, -823, -823, 103, 518, -823, 283, -823, -823,
+- 22, -823, 405, -823, -823, -823, -823, -823, -823, -823,
+- -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
+- 546, -823, -823, 171, 119, 539, -823, -823, -823, 545,
+- -823, -823, -823, 547, -823, -823, -823, -823, 540, -823,
+- 85, -823, -823, 548, 680, 543, -823, 203, -823, -823,
+- -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
+- -823, 215, 215, 215, 215, 215, 1276, 1276, 215, 599,
+- 1276, 215, 554, -823, -823, 152, -823, -823, -823, -823,
+- -823, -823, -823, -823, 496, 599, 119, 119, 119, -823,
+- -823, 59, -823, 683, 556, -823, -823, 557, 549, -823,
+- -823, -823, -823, -823, 119, 119, 119, 119, 497, 61,
+- -823, -823, -823, -823, -823, -823, -823, -823, -823, 673,
+- -823, 553, 362, -823, 558, 559, 365, -823, -823, -823,
+- -823, -823, 359, -823, 561, 561, 404, -823, -823, 564,
+- -823, -823, 526, 526, 526, -823, -823, 566, 568, -823,
+- -823, 585, -823, -823, 85, 294, -823, 258, 119, 57,
+- -823, -823, -823, -823, -823, -823, 585, -823, -823, -823,
+- -823, -823, 119, 694, 567, 599, 276, -823, -823, -823,
+- -823, 688, 569, -823, -823, 690, -823, 546, 692, 693,
+- -823, 171, -823, 1089, 572, 573, 577, -823, -823, 578,
+- 404, -823, 497, -823, -823, -823, 405, 405, -823, 604,
+- 581, -823, -823, -823, -823, -823, -823, 554, -823, -823,
+- -823, -823, -823, -823, 732, -823, 580, -823, 604, -823,
+- 119, 717, -823, 585, 579, 588, -823, -823, -823, -823,
+- -823, -823, 119, 119, 589, 119, 119, 119, 119, 119,
+- 119, 119, 119, 119, 119, 119, 119, 672, 672, 672,
+- 575, -823, -823, 582, -823, -823, 593, 712, -823, -823,
+- -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
+- -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
+- -823, -823, 980, -823, -823, -823, -823, -823, -823, -823,
+- -823, -823, -823, -823, -823, -823, -823, 554, 215, 591,
+- -823, 367, 215, 215, 595, 596, -823, -823, -823, -823,
+- -823, -823, -823, 598, -31, -823, -823, 600, -823, 596,
+- -823, 119, -823, 604, 276, 1276, -823, -823, 1276, -823,
+- -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
+- -823, -823, 584, 587, 592, -823, 1333, 1333, 594, 1447,
+- 1390, 716, 235, 602, 610, -823, -823, -823, 609, -823,
+- 215, -823, -823, 85, 657, 215, -823, 298, 215, -823,
+- 596, -823, 614, 618, -823, -823, -823, -823, -823, -823,
+- -823, -823, 121, -823, 589, -823, 630, 632, 633, 372,
+- -823, 306, -823, 637, -823, -823, 634, -823, 376, -823,
+- 616, 294, 379, 616, 215, 599, 604, 641, 731, 287,
+- 755, -823, 235, -823, -823, -823, 42, -823, 604, 680,
+- -823, 85, -823, 640, -823, 554, 645, 616, 604, 215,
+- -823, -823, -823, -823, 646, -823, 596, -823, -823, 497,
+- 742, 294, 680, 664, 215, 624, -823, 215, 644, 119,
+- 747, 742, 742, 616, -823, 665, 669, 1276, -823, 119,
+- 763, 747, 747, 670, 649, 680, 742, 676, -823, 119,
+- 783, 763, 763, 680, 1276, 742, 747, 660, -823, 119,
+- -823, 783, 783, 742, 681, 747, 763, -823, -823, -823,
+- -823, 747, 662, -823, -823, -823, -823
++ 87, 330, 619, 702, 703, 704, 88, 394, 89, 627,
++ 540, 652, 653, 654, 90, 315, 452, 590, 91, 213,
++ 457, 458, 92, 216, 319, 320, 93, 212, 454, 455,
++ 94, 272, 397, 398, 95, 96, 219, 325, 326, 97,
++ 224, 334, 335, 98, 227, 337, 338, 99, 230, 340,
++ 341, 100, 192, 298, 299, 301, 433, 434, 101, 195,
++ 303, 304, 306, 441, 442, 102, 188, 294, 290, 291,
++ 293, 423, 424, 189, 296, 103, 177, 275, 276, 104,
++ 105, 181, 278, 279, 716, 774, 875, 106, 107, 108,
++ 109, 816, 817, 818, 819, 820, 821, 822, 823, 658,
++ 825, 826, 110, 659, 111, 112, 113, 114, 115, 116,
++ 117, 118, 828, 119, 120, 425, 564, 665, 666, 680,
++ 567, 669, 670, 681, 121, 162, 264, 265, 122, 155,
++ 156, 123, 586, 202, 268, 310, 742, 743, 744, 948,
++ 851, 616, 698, 760, 767, 699, 700, 124, 125, 126,
++ 548, 869, 955, 127, 128, 308, 678, 129, 235, 591,
++ 131, 307, 677, 445, 581, 582, 583, 737, 835, 836,
++ 837, 906, 942, 943, 945, 969, 970, 520, 895, 838,
++ 901, 839, 840, 904, 841, 1008, 1017, 976, 992, 842,
++ 363, 694, 752, 918, 271, 392, 393, 645, 1033, 1013,
++ 1003, 1023, 476, 477, 478, 843, 899, 900, 844, 903,
++ 845, 846, 902, 847, 498, 634, 635, 479, 480, 366,
++ 238, 135, 332, 858, 951
+ };
+
+-/* YYPGOTO[NTERM-NUM]. */
+-static const yytype_int16 yypgoto[] =
+-{
+- -823, -823, 834, -823, -823, -411, -823, -823, -823, 484,
+- -823, -823, -823, 461, -823, -823, -823, 476, -823, -823,
+- -823, 460, -823, -823, -823, 458, -823, -823, -823, 477,
+- -638, -823, -823, -823, 144, -823, -823, -823, -823, -823,
+- 220, -823, 196, -823, -629, -823, -823, -823, -823, -823,
+- -823, 396, -823, -823, -823, 412, -823, -823, -823, 413,
+- -265, -823, -823, -823, -264, -823, -823, -823, 387, -823,
+- -823, -823, 368, -823, -823, -823, 369, -823, -823, -823,
+- 370, -823, -823, -823, 427, -823, -823, 429, -823, -823,
+- -823, 426, -823, -823, 424, -823, -823, -823, -823, 448,
+- -823, -823, 446, 6, -263, -823, -823, -823, 478, -823,
+- -823, -823, -823, 485, -823, -823, -823, -823, -823, -823,
+- -508, -823, -823, -823, -823, -823, -823, -823, -823, -627,
+- -823, -823, -823, -603, -823, -823, -823, -823, -823, -823,
+- -823, -823, -823, -823, -823, -823, -823, -823, 139, -268,
+- -823, -823, 141, -822, -823, -823, -823, 489, -823, -13,
+- -823, -505, -823, -823, -823, -223, -823, -823, 128, -823,
+- -823, -212, -786, -823, -823, -647, -823, -27, 807, 648,
+- -349, -823, -823, -598, -579, -823, -823, -574, -823, 867,
+- -216, -823, -823, 571, -823, 201, -823, 204, -823, 51,
+- -823, -823, -823, -80, -823, -823, -82, -432, -260, -823,
+- -823, -11, -823, -823, -16, -823, -823, -660, -823, 12,
+- -823, -597, -577, -796, -195, -823, 357, -823, -496, -680,
+- -696, -765, -341, -823, 279, -823, -823, -823, -355, -823,
+- -9, -823, -823, 14, -823, -823, 262, 0, -823, 583,
+- 686, -10, -214, -704, -823
+-};
+-
+-/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
+- positive, shift that token. If negative, reduce the rule which
+- number is the opposite. If zero, do what YYDEFACT says.
+- If YYTABLE_NINF, syntax error. */
+-#define YYTABLE_NINF -563
++/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
++ positive, shift that token. If negative, reduce the rule whose
++ number is the opposite. If YYTABLE_NINF, syntax error. */
+ static const yytype_int16 yytable[] =
+ {
+- 157, 158, 159, 134, 494, 164, 165, 166, 167, 168,
+- 169, 170, 171, 197, 198, 132, 173, 133, 341, 344,
+- 182, 183, 184, 424, 326, 594, 419, 420, 706, 654,
+- 425, 433, 657, 136, 429, 430, 441, 418, 586, 437,
+- 438, 346, 417, 190, 193, 196, 221, 418, 175, 398,
+- 418, 231, 394, 209, 418, 451, 658, 27, 28, 163,
+- 553, 554, 555, 556, 869, 454, 210, 27, 28, 179,
+- 27, 28, 220, 918, 27, 28, 626, 627, 628, -562,
+- 185, 186, 225, 228, 185, 186, 185, 186, 644, 27,
+- 28, 27, 28, 27, 28, 808, 139, 185, 186, 185,
+- 186, 29, 148, 151, 809, 160, 821, 704, 214, 312,
+- 857, 645, 646, 647, 445, 507, 35, 447, 773, 29,
+- 35, -560, 142, 145, 954, 217, 562, 508, 236, 768,
+- 824, 951, 481, 535, 480, 828, 232, 638, 186, 639,
+- 259, 654, 536, 4, 657, 269, 482, 987, 493, 266,
+- 154, 137, 59, 424, 829, 957, 419, 420, 648, 830,
+- 174, 62, 262, 433, -562, 176, 429, 430, 263, 920,
+- 1001, 441, 178, 637, 437, 438, 681, 395, 590, 62,
+- 698, 659, 569, 481, 27, 28, 180, 199, 592, 991,
+- 997, 704, 573, 1025, 808, 565, 873, 492, 187, 984,
+- 907, 1033, 191, 809, 194, 821, 260, -562, 261, -562,
+- 640, 35, 140, 237, 766, 223, 710, 226, 722, 229,
+- 149, 152, 330, 161, 343, 812, 215, 313, 827, 824,
+- 629, 630, 330, 203, 828, 27, 28, 29, 143, 146,
+- 237, 218, 563, 601, 602, 603, 604, 605, 581, 582,
+- 608, 29, 979, 829, 611, 389, 1031, 1032, 830, 345,
+- 498, 233, 35, 499, 986, 687, 688, 40, 41, 222,
+- 270, 1044, 652, 653, 994, 698, 42, 43, 44, 45,
++ 157, 158, 159, 134, 496, 164, 165, 166, 167, 168,
++ 169, 170, 171, 197, 198, 132, 173, 133, 427, 345,
++ 182, 183, 184, 597, 426, 327, 657, 342, 421, 660,
++ 709, 422, 435, 453, 139, 921, 431, 443, 395, 432,
++ 419, 439, 347, 589, 440, 661, 221, 399, 420, 872,
++ 420, 231, -563, 209, 190, 193, 196, 420, 175, 555,
++ 556, 557, 558, 559, 420, 771, 210, 456, 27, 28,
++ 27, 28, 220, 629, 630, 631, 136, 27, 28, 27,
++ 28, 179, 185, 186, 27, 28, 957, 29, 27, 28,
++ 142, 145, 148, 225, 228, 217, 185, 186, 185, 186,
++ 185, 186, 185, 186, 346, 707, 35, 860, 151, 160,
++ 214, 313, 240, 236, 811, 270, 447, 565, 29, 449,
++ 776, 812, 511, -561, 960, 4, 241, 641, 186, 642,
++ 954, 154, 876, 990, 483, 512, 482, -563, 232, 657,
++ 259, 824, 660, 827, 537, 269, 483, 62, 484, 266,
++ 495, 140, 1000, 538, 923, 426, 1004, 593, 831, 421,
++ 494, 647, 422, 832, 396, 435, 27, 28, 979, 431,
++ 701, 662, 432, 443, 640, 833, 176, 439, 62, 1028,
++ 440, -563, 684, -563, 648, 649, 650, 1036, 994, 707,
++ 509, 595, 996, 35, 568, 137, 572, 910, 237, 180,
++ 643, 187, 510, 576, 174, 769, 229, 143, 146, 237,
++ 987, 149, 218, 811, 713, 191, 163, 194, 1016, 223,
++ 812, 226, 331, 815, 344, 59, 830, 152, 161, 215,
++ 314, 651, 331, 632, 566, 262, 633, 982, 1034, 1035,
++ 824, 263, 827, 604, 605, 606, 607, 608, 419, 989,
++ 611, 584, 585, 1047, 614, 390, 420, 831, 500, 997,
++ 667, 501, 832, 178, 27, 28, 199, 690, 691, 1014,
++ 1015, 668, 185, 186, 833, 655, 27, 28, 656, 420,
++ 1024, 1025, 200, 201, 1029, 27, 28, 29, 260, 939,
++ 261, 35, 725, 1038, 940, 1039, 273, 274, 941, 27,
++ 28, 1044, 481, 203, 1046, 629, 630, 631, 321, 364,
++ 1048, 365, 35, 29, 322, 323, 324, 40, 41, 663,
++ 27, 28, 815, 369, 370, 830, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+- 56, 57, 58, 976, 59, 60, 61, 62, 240, 63,
+- 363, 479, 364, 664, 211, 1011, 1012, 232, 64, 65,
+- 644, 241, 66, 67, 665, 27, 28, 993, 418, 660,
+- 1026, 516, 72, 517, 812, 73, 239, 827, 74, 1035,
+- 75, 1021, 1022, 645, 646, 647, 417, 1041, 27, 28,
+- 509, 234, 35, 1013, 418, 244, 1036, 626, 627, 628,
+- 702, 703, 247, 510, 250, 1043, 185, 186, 978, 253,
+- 680, 1045, 27, 28, 27, 28, 629, 630, 936, 256,
+- 204, 205, 206, 937, 59, 207, 267, 938, 270, 347,
+- 648, 277, 348, 294, 652, 653, 349, 350, 351, 352,
+- 353, 354, 355, 356, 357, 358, 320, 359, 291, 360,
+- 361, 296, 321, 322, 323, 299, 682, 683, 684, 685,
+- 686, 737, 738, 689, 552, 865, 693, 758, 759, 760,
+- 761, 304, 762, 301, 763, 575, 576, 577, 200, 201,
+- 280, 281, 567, 282, 702, 703, 27, 28, 736, 308,
+- 571, 283, 284, 285, 286, 287, 288, 273, 274, 134,
+- 694, -364, -364, 774, 751, 752, 753, 754, 755, 756,
+- 310, 132, 622, 133, 315, 826, 368, 369, 810, 811,
+- 743, 744, 745, 371, 372, 737, 738, 374, 375, 377,
+- 378, 617, 380, 381, 383, 384, 387, 388, 327, 618,
+- 401, 402, 620, 404, 405, 415, 416, 328, 634, 427,
+- 428, 435, 436, 458, 459, 464, 465, 484, 485, 487,
+- 488, 490, 491, 544, 545, 726, 727, 831, 730, 731,
+- 910, 481, 316, 852, 853, 961, 962, 981, 851, 970,
+- 971, 29, 974, 975, 922, 1039, 1040, 923, 893, 894,
+- 641, 928, 929, 40, 317, 332, 335, 338, 366, 367,
+- 370, 668, 390, 673, 373, 376, 379, 382, 385, 442,
+- 448, 451, 172, 454, 826, 386, 399, 810, 811, 400,
+- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
+- 52, 53, 54, 55, 56, 57, 58, 134, 403, 60,
+- 61, 62, 406, 63, 407, 408, 409, 410, 411, 132,
+- 412, 133, 64, 65, 413, 414, 426, 434, 514, 449,
+- 457, 921, 460, 707, 708, 709, 831, 461, 462, 463,
+- 483, 486, 489, 497, 75, 495, 500, 501, 502, 503,
+- 504, 717, 718, 719, 720, 505, 506, 512, 513, 511,
+- 515, 519, 521, 523, 525, 527, 529, 531, 721, 532,
+- 534, -316, 537, 908, 539, 540, 541, 911, 912, 542,
+- 543, 548, 558, 550, 551, 557, 1017, 750, 560, 584,
+- 585, 589, 606, 965, 596, 597, 963, 964, 598, 599,
+- 607, 612, 633, 1034, 609, 765, 610, 661, 614, 615,
+- 625, 635, 418, 636, 672, 690, 679, 669, 965, 769,
+- 712, 963, 964, 670, 676, 671, 694, 724, 725, 714,
+- 715, 748, 770, 728, 729, 946, 742, 733, 716, 746,
+- 950, 747, 775, 953, 854, 772, 777, 776, 779, 780,
+- 845, 846, 847, 134, 856, 849, 871, 864, 868, 874,
+- 875, 878, 330, 891, 895, 902, 904, 913, -445, 909,
+- 934, 914, 917, 924, 867, 916, 925, 870, 941, 977,
+- 807, 926, 943, 944, 949, 980, 29, 955, 858, 876,
+- 877, 956, 879, 880, 881, 882, 883, 884, 885, 886,
+- 887, 888, 889, 890, 995, 958, 972, 959, 960, 982,
+- 968, 999, 969, 345, 1004, 1009, 1007, 172, 990, 1003,
+- 1019, 1024, 1006, 992, 996, 42, 43, 44, 45, 46,
+- 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+- 57, 58, 1002, 1015, 60, 61, 62, 1016, 1023, 1027,
+- 1029, 1037, 134, 1046, 1042, 5, 524, 64, 65, 859,
+- 860, 528, 530, 767, 705, 723, 520, 861, 544, 545,
+- 862, 593, 600, 619, 526, 568, 522, 621, 919, 75,
+- 570, 623, 572, 574, 559, 591, 778, 566, 850, 208,
+- 130, 595, 781, 732, 27, 28, 29, 533, 444, 735,
+- 547, 342, 983, 906, 985, 935, 947, 930, 863, 692,
+- 549, 933, 643, 711, 446, 311, 134, 134, 0, 932,
+- 134, 35, 0, 0, 0, 0, 40, 41, 0, 0,
+- 0, 931, 0, 0, 0, 42, 43, 44, 45, 46,
++ 56, 57, 58, 211, 59, 60, 61, 62, 518, 63,
++ 519, 204, 205, 206, 705, 701, 207, 706, 64, 65,
++ 981, 647, 66, 67, 372, 373, 27, 28, 375, 376,
++ 632, 222, 72, 633, 232, 73, 378, 379, 74, 233,
++ 75, 578, 579, 580, 648, 649, 650, 348, 655, 234,
++ 349, 656, 244, 35, 350, 351, 352, 353, 354, 355,
++ 356, 357, 358, 359, 239, 360, 247, 361, 362, 250,
++ 685, 686, 687, 688, 689, 740, 868, 692, 741, 253,
++ 696, 27, 28, 739, 256, 59, 554, 697, -365, -365,
++ 267, 651, 761, 762, 763, 764, 277, 765, 705, 766,
++ 270, 706, 295, 777, 292, 570, 746, 747, 748, 381,
++ 382, 134, 309, 574, 754, 755, 756, 757, 758, 759,
++ 384, 385, 297, 132, 625, 133, 388, 389, 829, 302,
++ 402, 403, 813, 280, 281, 814, 282, 405, 406, 740,
++ 417, 418, 741, 620, 283, 284, 285, 286, 287, 288,
++ 289, 429, 430, 437, 438, 460, 461, 466, 467, 300,
++ 637, 305, 621, 486, 487, 623, 489, 490, 492, 493,
++ 546, 547, 729, 730, 733, 734, 913, 483, 964, 965,
++ 834, 973, 974, 311, 855, 856, 984, 977, 978, 896,
++ 897, 1042, 1043, 931, 932, 316, 925, 317, 318, 926,
++ 854, 328, 333, 329, 336, 339, 40, 367, 368, 371,
++ 391, 444, 374, 644, 671, 377, 676, 380, 383, 386,
++ 450, 387, 453, 456, 400, 401, 404, 829, 407, 408,
++ 409, 813, 410, 411, 814, 412, 413, 414, 415, 416,
++ 428, 436, 517, 451, 459, 462, 463, 464, 465, 485,
++ 134, 488, 491, 499, 497, 521, 502, 503, 504, 505,
++ 506, 924, 132, 523, 133, 507, 508, 514, 515, 516,
++ 513, 525, 527, 529, 531, 533, 710, 711, 712, 834,
++ 534, 536, -317, 539, 541, 542, 543, 545, 544, 550,
++ 561, 552, 553, 560, 720, 721, 722, 723, 563, 587,
++ 588, 599, 592, 600, 601, 602, 609, 610, 615, 612,
++ 617, 724, 613, 628, 420, 618, 664, 911, 638, 636,
++ 639, 914, 915, 675, 672, 673, 674, 679, 1020, 693,
++ 753, 682, 697, 715, 717, 718, 968, 727, 728, 719,
++ 966, 731, 732, 967, 736, 1037, 745, 751, 768, 749,
++ 750, 773, 778, 775, 850, 780, 779, 782, 783, 848,
++ 849, 968, 772, 852, 857, 966, 859, 871, 967, 874,
++ 877, 878, 881, 898, -446, 894, 905, 907, 916, 949,
++ 917, 912, 920, 927, 953, 928, 919, 956, 937, 944,
++ 929, 946, 947, 810, 952, 983, 134, 958, 961, 959,
++ 867, 975, 962, 963, 346, 331, 985, 971, 972, 1002,
++ 1012, 1010, 1022, 1032, 1027, 5, 993, 870, 1030, 995,
++ 873, 999, 1005, 980, 1045, 528, 530, 27, 28, 29,
++ 1018, 1019, 879, 880, 1026, 882, 883, 884, 885, 886,
++ 887, 888, 889, 890, 891, 892, 893, 1007, 998, 1040,
++ 1049, 526, 708, 770, 35, 726, 532, 522, 622, 40,
++ 41, 598, 596, 1006, 594, 571, 1009, 524, 42, 43,
++ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
++ 54, 55, 56, 57, 58, 626, 59, 60, 61, 62,
++ 603, 63, 781, 784, 208, 134, 624, 853, 130, 577,
++ 64, 65, 735, 535, 66, 67, 343, 446, 738, 986,
++ 909, 988, 938, 933, 72, 646, 695, 73, 549, 936,
++ 74, 922, 75, 551, 714, 0, 562, 0, 448, 312,
++ 0, 0, 0, 0, 0, 0, 569, 29, 573, 861,
++ 0, 0, 0, 0, 575, 0, 0, 0, 0, 950,
++ 0, 0, 0, 683, 0, 0, 0, 0, 0, 134,
++ 134, 0, 935, 134, 0, 0, 0, 0, 172, 0,
++ 0, 0, 0, 0, 934, 0, 42, 43, 44, 45,
++ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
++ 56, 57, 58, 0, 0, 60, 61, 62, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 991, 64, 65,
++ 862, 863, 0, 0, 0, 0, 0, 0, 864, 546,
++ 547, 865, 0, 0, 0, 0, 0, 0, 0, 0,
++ 75, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1011,
++ 0, 0, 1001, 0, 785, 420, 0, 0, 0, 1021,
++ 866, 0, 0, 0, 0, 0, 786, 0, 0, 1031,
++ 647, 0, 0, 0, 0, 27, 28, 787, 0, 1041,
++ 0, 788, 789, 790, 791, 792, 793, 794, 795, 796,
++ 0, 0, 0, 648, 797, 798, 799, 0, 0, 0,
++ 0, 0, 35, 0, 0, 0, 0, 40, 41, 800,
++ 801, 802, 803, 804, 0, 805, 42, 43, 44, 45,
++ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
++ 56, 57, 58, 806, 59, 60, 61, 62, 0, 63,
++ 807, 0, 0, 0, 0, 0, 0, 0, 64, 65,
++ 0, 0, 66, 67, 0, 0, 0, 0, 0, 0,
++ 0, 0, 72, 785, 420, 73, 0, 808, 74, 0,
++ 75, 0, 0, 809, 0, 786, 0, 0, 0, 647,
++ 0, 0, 0, 0, 27, 28, 787, 0, 0, 0,
++ 788, 789, 790, 791, 792, 793, 794, 795, 796, 0,
++ 0, 908, 648, 797, 798, 799, 0, 0, 0, 0,
++ 810, 35, 0, 0, 0, 0, 40, 41, 800, 801,
++ 802, 803, 804, 0, 805, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+- 57, 58, 0, 59, 60, 61, 62, 0, 63, 0,
+- 0, 0, 0, 0, 988, 0, 0, 64, 65, 0,
++ 57, 58, 806, 59, 60, 61, 62, 0, 63, 807,
++ 0, 0, 0, 0, 0, 0, 0, 64, 65, 0,
+ 0, 66, 67, 0, 0, 0, 0, 0, 0, 0,
+- 0, 72, 0, 0, 73, 0, 0, 74, 0, 75,
++ 0, 72, 0, 0, 73, 0, 808, 74, 0, 75,
++ 0, 6, 809, 7, 8, 9, 10, 11, 12, 13,
++ 0, 14, 15, 16, 17, 0, 0, 0, 18, 19,
++ 20, 0, 21, 22, 23, 0, 24, 25, 26, 0,
++ 27, 28, 29, 0, 0, 0, 0, 0, 0, 810,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 1008, 0, 0, 998,
+- 0, 782, 418, 0, 0, 0, 1018, 0, 0, 0,
+- 0, 0, 0, 783, 0, 0, 1028, 644, 0, 0,
+- 0, 0, 27, 28, 784, 0, 1038, 0, 785, 786,
+- 787, 788, 789, 790, 791, 792, 793, 0, 0, 0,
+- 645, 794, 795, 796, 0, 0, 0, 0, 0, 35,
+- 0, 0, 0, 0, 40, 41, 797, 798, 799, 800,
+- 801, 0, 802, 42, 43, 44, 45, 46, 47, 48,
+- 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
+- 803, 59, 60, 61, 62, 0, 63, 804, 0, 0,
+- 0, 0, 0, 0, 0, 64, 65, 0, 0, 66,
+- 67, 0, 0, 0, 0, 0, 0, 0, 0, 72,
+- 782, 418, 73, 0, 805, 74, 0, 75, 0, 0,
+- 806, 0, 783, 0, 0, 0, 644, 0, 0, 0,
+- 0, 27, 28, 784, 0, 0, 0, 785, 786, 787,
+- 788, 789, 790, 791, 792, 793, 0, 905, 0, 645,
+- 794, 795, 796, 0, 0, 0, 807, 0, 35, 0,
+- 0, 0, 0, 40, 41, 797, 798, 799, 800, 801,
+- 0, 802, 42, 43, 44, 45, 46, 47, 48, 49,
+- 50, 51, 52, 53, 54, 55, 56, 57, 58, 803,
+- 59, 60, 61, 62, 0, 63, 804, 0, 0, 0,
+- 0, 0, 0, 0, 64, 65, 0, 0, 66, 67,
+- 0, 0, 0, 0, 0, 0, 0, 0, 72, 0,
+- 0, 73, 0, 805, 74, 0, 75, 0, 6, 806,
+- 7, 8, 9, 10, 11, 12, 13, 0, 14, 15,
+- 16, 17, 0, 0, 0, 18, 19, 20, 0, 21,
+- 22, 23, 0, 24, 25, 26, 0, 27, 28, 29,
+- 0, 0, 0, 0, 0, 807, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 30,
+- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+- 41, 0, 0, 0, 0, 0, 0, 0, 42, 43,
+- 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+- 54, 55, 56, 57, 58, 0, 59, 60, 61, 62,
+- 29, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+- 64, 65, 0, 0, 66, 67, 68, 69, 70, 71,
+- 0, 0, 0, 0, 72, 0, 0, 73, 0, 0,
+- 74, 172, 75, 76, 77, 0, 78, 0, 0, 42,
++ 0, 0, 30, 31, 32, 33, 34, 35, 36, 37,
++ 38, 39, 40, 41, 0, 0, 0, 0, 0, 0,
++ 0, 42, 43, 44, 45, 46, 47, 48, 49, 50,
++ 51, 52, 53, 54, 55, 56, 57, 58, 0, 59,
++ 60, 61, 62, 29, 63, 0, 0, 0, 0, 0,
++ 0, 0, 0, 64, 65, 0, 0, 66, 67, 68,
++ 69, 70, 71, 0, 0, 0, 0, 72, 0, 0,
++ 73, 0, 0, 74, 172, 75, 76, 77, 0, 78,
++ 0, 0, 42, 43, 44, 45, 46, 47, 48, 49,
++ 50, 51, 52, 53, 54, 55, 56, 57, 58, 0,
++ 29, 60, 61, 62, 0, 63, 0, 468, 469, 470,
++ 471, 472, 473, 474, 64, 65, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 475, 172, 0, 0, 0, 0, 75, 0, 0, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+- 53, 54, 55, 56, 57, 58, 0, 29, 60, 61,
+- 62, 0, 63, 0, 466, 467, 468, 469, 470, 471,
+- 472, 64, 65, 0, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 473, 172, 0,
++ 53, 54, 55, 56, 57, 58, 930, 29, 60, 61,
++ 62, 0, 63, 807, 0, 0, 0, 0, 0, 0,
++ 0, 64, 65, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 72, 0, 0, 172, 0,
+ 0, 0, 0, 75, 0, 0, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+- 56, 57, 58, 927, 29, 60, 61, 62, 0, 63,
+- 804, 0, 0, 0, 0, 0, 0, 0, 64, 65,
++ 56, 57, 58, 930, 29, 60, 61, 62, 0, 63,
++ 0, 0, 0, 0, 0, 0, 0, 0, 64, 65,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 72, 0, 0, 172, 0, 0, 0, 0,
+ 75, 0, 0, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
+- 927, 29, 60, 61, 62, 0, 63, 0, 0, 0,
++ 29, 0, 60, 61, 62, 0, 63, 0, 0, 0,
+ 0, 0, 0, 0, 0, 64, 65, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,
+- 0, 0, 172, 0, 0, 0, 0, 75, 0, 0,
+- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
+- 52, 53, 54, 55, 56, 57, 58, 29, 0, 60,
+- 61, 62, 0, 63, 0, 0, 0, 0, 0, 0,
+- 0, 0, 64, 65, 0, 0, 0, 0, 0, 0,
+- 0, 0, 0, 0, 0, 0, 72, 0, 172, 0,
+- 0, 0, 0, 0, 75, 0, 42, 43, 44, 45,
+- 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+- 56, 57, 58, 0, 0, 60, 61, 62, 0, 0,
+- 0, 0, 0, 0, 0, 0, 0, 0, 64, 65,
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 172, 0, 0, 0, 0, 29, 75, 0, 42,
++ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
++ 53, 54, 55, 56, 57, 58, 0, 0, 60, 61,
++ 62, 0, 63, 0, 0, 0, 0, 172, 0, 0,
++ 0, 64, 65, 0, 0, 42, 43, 44, 45, 46,
++ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
++ 57, 58, 0, 75, 60, 61, 62, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 64, 65, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+- 75
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 75
+ };
+
+ static const yytype_int16 yycheck[] =
+ {
+- 13, 14, 15, 3, 345, 18, 19, 20, 21, 22,
+- 23, 24, 25, 40, 41, 3, 26, 3, 232, 235,
+- 33, 34, 35, 291, 219, 457, 291, 291, 625, 537,
+- 293, 299, 537, 34, 299, 299, 304, 12, 449, 304,
+- 304, 236, 4, 37, 38, 39, 73, 12, 35, 272,
+- 12, 78, 34, 63, 12, 34, 34, 32, 33, 35,
+- 409, 410, 411, 412, 768, 34, 66, 32, 33, 35,
+- 32, 33, 72, 869, 32, 33, 17, 18, 19, 34,
+- 34, 35, 76, 77, 34, 35, 34, 35, 27, 32,
+- 33, 32, 33, 32, 33, 733, 36, 34, 35, 34,
+- 35, 34, 34, 34, 733, 34, 733, 615, 34, 34,
+- 757, 50, 51, 52, 309, 155, 59, 312, 715, 34,
+- 59, 152, 36, 36, 920, 36, 36, 167, 34, 706,
+- 733, 917, 154, 154, 329, 733, 167, 34, 35, 36,
+- 153, 649, 163, 0, 649, 172, 168, 969, 343, 162,
+- 31, 152, 91, 421, 733, 34, 421, 421, 97, 733,
+- 152, 94, 134, 431, 119, 152, 431, 431, 140, 873,
+- 992, 439, 35, 514, 439, 439, 587, 159, 157, 94,
+- 123, 159, 157, 154, 32, 33, 152, 76, 157, 975,
+- 986, 699, 157, 1015, 832, 157, 773, 168, 152, 157,
+- 847, 1023, 152, 832, 152, 832, 31, 162, 33, 164,
+- 107, 59, 152, 119, 157, 152, 157, 152, 157, 152,
+- 152, 152, 222, 152, 234, 733, 152, 152, 733, 832,
+- 495, 495, 232, 79, 832, 32, 33, 34, 152, 152,
+- 119, 152, 152, 466, 467, 468, 469, 470, 443, 444,
+- 473, 34, 956, 832, 477, 268, 1021, 1022, 832, 152,
+- 152, 94, 59, 155, 968, 606, 607, 64, 65, 167,
+- 163, 1036, 537, 537, 978, 123, 73, 74, 75, 76,
++ 13, 14, 15, 3, 346, 18, 19, 20, 21, 22,
++ 23, 24, 25, 40, 41, 3, 26, 3, 294, 235,
++ 33, 34, 35, 459, 292, 219, 539, 232, 292, 539,
++ 628, 292, 300, 34, 36, 872, 300, 305, 34, 300,
++ 4, 305, 236, 451, 305, 34, 73, 272, 12, 771,
++ 12, 78, 34, 63, 37, 38, 39, 12, 35, 410,
++ 411, 412, 413, 414, 12, 709, 66, 34, 32, 33,
++ 32, 33, 72, 17, 18, 19, 34, 32, 33, 32,
++ 33, 35, 34, 35, 32, 33, 923, 34, 32, 33,
++ 36, 36, 34, 76, 77, 36, 34, 35, 34, 35,
++ 34, 35, 34, 35, 153, 618, 59, 760, 34, 34,
++ 34, 34, 138, 34, 736, 164, 310, 36, 34, 313,
++ 718, 736, 156, 153, 34, 0, 152, 34, 35, 36,
++ 920, 31, 776, 972, 155, 169, 330, 119, 168, 652,
++ 153, 736, 652, 736, 155, 172, 155, 94, 169, 162,
++ 344, 153, 989, 164, 876, 423, 995, 158, 736, 423,
++ 169, 27, 423, 736, 160, 433, 32, 33, 956, 433,
++ 123, 160, 433, 441, 516, 736, 153, 441, 94, 1018,
++ 441, 163, 590, 165, 50, 51, 52, 1026, 978, 702,
++ 156, 158, 980, 59, 158, 153, 158, 850, 119, 153,
++ 107, 153, 168, 158, 153, 158, 153, 153, 153, 119,
++ 158, 153, 153, 835, 158, 153, 35, 153, 1006, 153,
++ 835, 153, 222, 736, 234, 91, 736, 153, 153, 153,
++ 153, 97, 232, 497, 153, 134, 497, 959, 1024, 1025,
++ 835, 140, 835, 468, 469, 470, 471, 472, 4, 971,
++ 475, 445, 446, 1039, 479, 268, 12, 835, 153, 981,
++ 132, 156, 835, 35, 32, 33, 76, 609, 610, 1004,
++ 1005, 143, 34, 35, 835, 539, 32, 33, 539, 12,
++ 1014, 1015, 64, 65, 1019, 32, 33, 34, 31, 133,
++ 33, 59, 158, 1028, 138, 1029, 138, 139, 142, 32,
++ 33, 1036, 329, 79, 1038, 17, 18, 19, 137, 163,
++ 1044, 165, 59, 34, 143, 144, 145, 64, 65, 544,
++ 32, 33, 835, 154, 155, 835, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+- 87, 88, 89, 953, 91, 92, 93, 94, 138, 96,
+- 162, 328, 164, 132, 34, 1001, 1002, 167, 105, 106,
+- 27, 151, 109, 110, 143, 32, 33, 977, 12, 542,
+- 1016, 34, 119, 36, 832, 122, 107, 832, 125, 1025,
+- 127, 1011, 1012, 50, 51, 52, 4, 1033, 32, 33,
+- 155, 30, 59, 1003, 12, 138, 1026, 17, 18, 19,
+- 615, 615, 138, 168, 138, 1035, 34, 35, 955, 138,
+- 157, 1041, 32, 33, 32, 33, 631, 631, 133, 138,
+- 74, 75, 76, 138, 91, 79, 35, 142, 163, 152,
+- 97, 138, 155, 107, 649, 649, 159, 160, 161, 162,
+- 163, 164, 165, 166, 167, 168, 137, 170, 156, 172,
+- 173, 138, 143, 144, 145, 156, 601, 602, 603, 604,
+- 605, 676, 676, 608, 408, 764, 611, 159, 160, 161,
+- 162, 156, 164, 138, 166, 66, 67, 68, 64, 65,
+- 135, 136, 426, 138, 699, 699, 32, 33, 34, 34,
+- 434, 146, 147, 148, 149, 150, 151, 138, 139, 449,
+- 152, 153, 154, 716, 160, 161, 162, 163, 164, 165,
+- 76, 449, 489, 449, 156, 733, 153, 154, 733, 733,
+- 682, 683, 684, 153, 154, 740, 740, 153, 154, 153,
+- 154, 481, 153, 154, 153, 154, 153, 154, 152, 483,
+- 153, 154, 486, 153, 154, 153, 154, 152, 498, 153,
+- 154, 153, 154, 153, 154, 153, 154, 153, 154, 153,
+- 154, 153, 154, 116, 117, 153, 154, 733, 153, 154,
+- 153, 154, 156, 746, 747, 153, 154, 959, 742, 153,
+- 154, 34, 153, 154, 875, 1031, 1032, 878, 798, 799,
+- 534, 896, 897, 64, 138, 138, 138, 138, 155, 155,
+- 155, 564, 34, 580, 155, 155, 155, 155, 155, 169,
+- 162, 34, 65, 34, 832, 155, 155, 832, 832, 155,
+- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+- 83, 84, 85, 86, 87, 88, 89, 587, 155, 92,
+- 93, 94, 155, 96, 155, 155, 155, 155, 155, 587,
+- 155, 587, 105, 106, 155, 155, 155, 155, 152, 156,
+- 155, 874, 155, 626, 627, 628, 832, 155, 155, 155,
+- 155, 155, 155, 153, 127, 156, 155, 155, 155, 155,
+- 155, 644, 645, 646, 647, 155, 155, 155, 155, 171,
+- 96, 107, 36, 36, 36, 34, 34, 34, 648, 107,
+- 155, 160, 156, 848, 34, 95, 153, 852, 853, 160,
+- 35, 35, 107, 36, 36, 34, 1007, 694, 152, 158,
+- 34, 158, 152, 941, 36, 36, 941, 941, 36, 36,
+- 152, 155, 158, 1024, 153, 698, 154, 141, 153, 156,
+- 153, 155, 12, 155, 154, 96, 153, 158, 966, 712,
+- 17, 966, 966, 158, 156, 158, 152, 34, 155, 153,
+- 153, 126, 18, 155, 155, 910, 152, 156, 169, 153,
+- 915, 153, 34, 918, 120, 158, 36, 158, 36, 36,
+- 158, 158, 155, 733, 153, 157, 19, 764, 158, 160,
+- 152, 152, 742, 71, 169, 152, 34, 152, 166, 158,
+- 34, 155, 152, 169, 764, 157, 169, 770, 156, 954,
+- 166, 169, 152, 154, 107, 34, 34, 153, 36, 782,
+- 783, 153, 785, 786, 787, 788, 789, 790, 791, 792,
+- 793, 794, 795, 796, 979, 155, 170, 155, 155, 34,
+- 153, 49, 158, 152, 170, 48, 152, 65, 158, 994,
+- 37, 152, 997, 158, 158, 73, 74, 75, 76, 77,
+- 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+- 88, 89, 158, 158, 92, 93, 94, 158, 158, 153,
+- 47, 171, 832, 171, 153, 1, 375, 105, 106, 107,
+- 108, 381, 384, 699, 624, 649, 369, 115, 116, 117,
+- 118, 455, 465, 485, 378, 428, 372, 488, 871, 127,
+- 431, 491, 436, 439, 416, 452, 727, 421, 740, 62,
+- 3, 459, 731, 672, 32, 33, 34, 388, 307, 675,
+- 402, 233, 962, 832, 966, 901, 913, 898, 156, 610,
+- 405, 900, 535, 631, 311, 209, 896, 897, -1, 899,
+- 900, 59, -1, -1, -1, -1, 64, 65, -1, -1,
+- -1, 899, -1, -1, -1, 73, 74, 75, 76, 77,
++ 87, 88, 89, 34, 91, 92, 93, 94, 34, 96,
++ 36, 74, 75, 76, 618, 123, 79, 618, 105, 106,
++ 958, 27, 109, 110, 154, 155, 32, 33, 154, 155,
++ 634, 168, 119, 634, 168, 122, 154, 155, 125, 94,
++ 127, 66, 67, 68, 50, 51, 52, 153, 652, 30,
++ 156, 652, 138, 59, 160, 161, 162, 163, 164, 165,
++ 166, 167, 168, 169, 107, 171, 138, 173, 174, 138,
++ 604, 605, 606, 607, 608, 679, 767, 611, 679, 138,
++ 614, 32, 33, 34, 138, 91, 409, 153, 154, 155,
++ 35, 97, 160, 161, 162, 163, 138, 165, 702, 167,
++ 164, 702, 107, 719, 157, 428, 685, 686, 687, 154,
++ 155, 451, 34, 436, 161, 162, 163, 164, 165, 166,
++ 154, 155, 138, 451, 491, 451, 154, 155, 736, 138,
++ 154, 155, 736, 135, 136, 736, 138, 154, 155, 743,
++ 154, 155, 743, 483, 146, 147, 148, 149, 150, 151,
++ 152, 154, 155, 154, 155, 154, 155, 154, 155, 157,
++ 500, 157, 485, 154, 155, 488, 154, 155, 154, 155,
++ 116, 117, 154, 155, 154, 155, 154, 155, 154, 155,
++ 736, 154, 155, 76, 749, 750, 962, 154, 155, 801,
++ 802, 1034, 1035, 899, 900, 157, 878, 157, 138, 881,
++ 745, 153, 138, 153, 138, 138, 64, 156, 156, 156,
++ 34, 170, 156, 536, 567, 156, 583, 156, 156, 156,
++ 163, 156, 34, 34, 156, 156, 156, 835, 156, 156,
++ 156, 835, 156, 156, 835, 156, 156, 156, 156, 156,
++ 156, 156, 96, 157, 156, 156, 156, 156, 156, 156,
++ 590, 156, 156, 154, 157, 107, 156, 156, 156, 156,
++ 156, 877, 590, 36, 590, 156, 156, 156, 156, 153,
++ 172, 36, 36, 34, 34, 34, 629, 630, 631, 835,
++ 107, 156, 161, 157, 34, 95, 154, 35, 161, 35,
++ 107, 36, 36, 34, 647, 648, 649, 650, 153, 159,
++ 34, 36, 159, 36, 36, 36, 153, 153, 156, 154,
++ 154, 651, 155, 154, 12, 157, 141, 851, 156, 159,
++ 156, 855, 856, 155, 159, 159, 159, 157, 1010, 96,
++ 697, 154, 153, 17, 154, 154, 944, 34, 156, 170,
++ 944, 156, 156, 944, 157, 1027, 153, 126, 701, 154,
++ 154, 18, 34, 159, 156, 36, 159, 36, 36, 159,
++ 159, 969, 715, 158, 120, 969, 154, 159, 969, 19,
++ 161, 153, 153, 170, 167, 71, 153, 34, 153, 913,
++ 156, 159, 153, 170, 918, 170, 158, 921, 34, 157,
++ 170, 153, 155, 167, 107, 34, 736, 154, 156, 154,
++ 767, 171, 156, 156, 153, 745, 34, 154, 159, 49,
++ 48, 153, 37, 47, 153, 1, 159, 767, 154, 159,
++ 773, 159, 159, 957, 154, 379, 382, 32, 33, 34,
++ 159, 159, 785, 786, 159, 788, 789, 790, 791, 792,
++ 793, 794, 795, 796, 797, 798, 799, 171, 982, 172,
++ 172, 376, 627, 702, 59, 652, 385, 370, 487, 64,
++ 65, 461, 457, 997, 454, 430, 1000, 373, 73, 74,
++ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
++ 85, 86, 87, 88, 89, 493, 91, 92, 93, 94,
++ 467, 96, 730, 734, 62, 835, 490, 743, 3, 441,
++ 105, 106, 675, 389, 109, 110, 233, 308, 678, 965,
++ 835, 969, 904, 901, 119, 537, 613, 122, 403, 903,
++ 125, 874, 127, 406, 634, -1, 418, -1, 312, 209,
++ -1, -1, -1, -1, -1, -1, 423, 34, 433, 36,
++ -1, -1, -1, -1, 438, -1, -1, -1, -1, 916,
++ -1, -1, -1, 158, -1, -1, -1, -1, -1, 899,
++ 900, -1, 902, 903, -1, -1, -1, -1, 65, -1,
++ -1, -1, -1, -1, 902, -1, 73, 74, 75, 76,
++ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
++ 87, 88, 89, -1, -1, 92, 93, 94, -1, -1,
++ -1, -1, -1, -1, -1, -1, -1, 974, 105, 106,
++ 107, 108, -1, -1, -1, -1, -1, -1, 115, 116,
++ 117, 118, -1, -1, -1, -1, -1, -1, -1, -1,
++ 127, -1, -1, -1, -1, -1, -1, -1, -1, -1,
++ -1, -1, -1, -1, -1, -1, -1, -1, -1, 1002,
++ -1, -1, 992, -1, 11, 12, -1, -1, -1, 1012,
++ 157, -1, -1, -1, -1, -1, 23, -1, -1, 1022,
++ 27, -1, -1, -1, -1, 32, 33, 34, -1, 1032,
++ -1, 38, 39, 40, 41, 42, 43, 44, 45, 46,
++ -1, -1, -1, 50, 51, 52, 53, -1, -1, -1,
++ -1, -1, 59, -1, -1, -1, -1, 64, 65, 66,
++ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76,
++ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
++ 87, 88, 89, 90, 91, 92, 93, 94, -1, 96,
++ 97, -1, -1, -1, -1, -1, -1, -1, 105, 106,
++ -1, -1, 109, 110, -1, -1, -1, -1, -1, -1,
++ -1, -1, 119, 11, 12, 122, -1, 124, 125, -1,
++ 127, -1, -1, 130, -1, 23, -1, -1, -1, 27,
++ -1, -1, -1, -1, 32, 33, 34, -1, -1, -1,
++ 38, 39, 40, 41, 42, 43, 44, 45, 46, -1,
++ -1, 158, 50, 51, 52, 53, -1, -1, -1, -1,
++ 167, 59, -1, -1, -1, -1, 64, 65, 66, 67,
++ 68, 69, 70, -1, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+- 88, 89, -1, 91, 92, 93, 94, -1, 96, -1,
+- -1, -1, -1, -1, 971, -1, -1, 105, 106, -1,
++ 88, 89, 90, 91, 92, 93, 94, -1, 96, 97,
++ -1, -1, -1, -1, -1, -1, -1, 105, 106, -1,
+ -1, 109, 110, -1, -1, -1, -1, -1, -1, -1,
+- -1, 119, -1, -1, 122, -1, -1, 125, -1, 127,
++ -1, 119, -1, -1, 122, -1, 124, 125, -1, 127,
++ -1, 3, 130, 5, 6, 7, 8, 9, 10, 11,
++ -1, 13, 14, 15, 16, -1, -1, -1, 20, 21,
++ 22, -1, 24, 25, 26, -1, 28, 29, 30, -1,
++ 32, 33, 34, -1, -1, -1, -1, -1, -1, 167,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+- -1, -1, -1, -1, -1, -1, 999, -1, -1, 989,
+- -1, 11, 12, -1, -1, -1, 1009, -1, -1, -1,
+- -1, -1, -1, 23, -1, -1, 1019, 27, -1, -1,
+- -1, -1, 32, 33, 34, -1, 1029, -1, 38, 39,
+- 40, 41, 42, 43, 44, 45, 46, -1, -1, -1,
+- 50, 51, 52, 53, -1, -1, -1, -1, -1, 59,
+- -1, -1, -1, -1, 64, 65, 66, 67, 68, 69,
+- 70, -1, 72, 73, 74, 75, 76, 77, 78, 79,
+- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+- 90, 91, 92, 93, 94, -1, 96, 97, -1, -1,
+- -1, -1, -1, -1, -1, 105, 106, -1, -1, 109,
+- 110, -1, -1, -1, -1, -1, -1, -1, -1, 119,
+- 11, 12, 122, -1, 124, 125, -1, 127, -1, -1,
+- 130, -1, 23, -1, -1, -1, 27, -1, -1, -1,
+- -1, 32, 33, 34, -1, -1, -1, 38, 39, 40,
+- 41, 42, 43, 44, 45, 46, -1, 157, -1, 50,
+- 51, 52, 53, -1, -1, -1, 166, -1, 59, -1,
+- -1, -1, -1, 64, 65, 66, 67, 68, 69, 70,
+- -1, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+- 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
+- 91, 92, 93, 94, -1, 96, 97, -1, -1, -1,
+- -1, -1, -1, -1, 105, 106, -1, -1, 109, 110,
+- -1, -1, -1, -1, -1, -1, -1, -1, 119, -1,
+- -1, 122, -1, 124, 125, -1, 127, -1, 3, 130,
+- 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
+- 15, 16, -1, -1, -1, 20, 21, 22, -1, 24,
+- 25, 26, -1, 28, 29, 30, -1, 32, 33, 34,
+- -1, -1, -1, -1, -1, 166, -1, -1, -1, -1,
+- -1, -1, -1, -1, -1, -1, -1, -1, -1, 54,
+- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+- 65, -1, -1, -1, -1, -1, -1, -1, 73, 74,
+- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+- 85, 86, 87, 88, 89, -1, 91, 92, 93, 94,
+- 34, 96, -1, -1, -1, -1, -1, -1, -1, -1,
+- 105, 106, -1, -1, 109, 110, 111, 112, 113, 114,
+- -1, -1, -1, -1, 119, -1, -1, 122, -1, -1,
+- 125, 65, 127, 128, 129, -1, 131, -1, -1, 73,
++ -1, -1, 54, 55, 56, 57, 58, 59, 60, 61,
++ 62, 63, 64, 65, -1, -1, -1, -1, -1, -1,
++ -1, 73, 74, 75, 76, 77, 78, 79, 80, 81,
++ 82, 83, 84, 85, 86, 87, 88, 89, -1, 91,
++ 92, 93, 94, 34, 96, -1, -1, -1, -1, -1,
++ -1, -1, -1, 105, 106, -1, -1, 109, 110, 111,
++ 112, 113, 114, -1, -1, -1, -1, 119, -1, -1,
++ 122, -1, -1, 125, 65, 127, 128, 129, -1, 131,
++ -1, -1, 73, 74, 75, 76, 77, 78, 79, 80,
++ 81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
++ 34, 92, 93, 94, -1, 96, -1, 98, 99, 100,
++ 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
++ 121, 65, -1, -1, -1, -1, 127, -1, -1, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+- 84, 85, 86, 87, 88, 89, -1, 34, 92, 93,
+- 94, -1, 96, -1, 98, 99, 100, 101, 102, 103,
+- 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
+- -1, -1, -1, -1, -1, -1, -1, 121, 65, -1,
++ 84, 85, 86, 87, 88, 89, 90, 34, 92, 93,
++ 94, -1, 96, 97, -1, -1, -1, -1, -1, -1,
++ -1, 105, 106, -1, -1, -1, -1, -1, -1, -1,
++ -1, -1, -1, -1, -1, 119, -1, -1, 65, -1,
+ -1, -1, -1, 127, -1, -1, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 34, 92, 93, 94, -1, 96,
+- 97, -1, -1, -1, -1, -1, -1, -1, 105, 106,
++ -1, -1, -1, -1, -1, -1, -1, -1, 105, 106,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 119, -1, -1, 65, -1, -1, -1, -1,
+ 127, -1, -1, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+- 90, 34, 92, 93, 94, -1, 96, -1, -1, -1,
++ 34, -1, 92, 93, 94, -1, 96, -1, -1, -1,
+ -1, -1, -1, -1, -1, 105, 106, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 119,
+- -1, -1, 65, -1, -1, -1, -1, 127, -1, -1,
+- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+- 83, 84, 85, 86, 87, 88, 89, 34, -1, 92,
+- 93, 94, -1, 96, -1, -1, -1, -1, -1, -1,
+- -1, -1, 105, 106, -1, -1, -1, -1, -1, -1,
+- -1, -1, -1, -1, -1, -1, 119, -1, 65, -1,
+- -1, -1, -1, -1, 127, -1, 73, 74, 75, 76,
+- 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+- 87, 88, 89, -1, -1, 92, 93, 94, -1, -1,
+- -1, -1, -1, -1, -1, -1, -1, -1, 105, 106,
+- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
++ -1, 65, -1, -1, -1, -1, 34, 127, -1, 73,
++ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
++ 84, 85, 86, 87, 88, 89, -1, -1, 92, 93,
++ 94, -1, 96, -1, -1, -1, -1, 65, -1, -1,
++ -1, 105, 106, -1, -1, 73, 74, 75, 76, 77,
++ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
++ 88, 89, -1, 127, 92, 93, 94, -1, -1, -1,
++ -1, -1, -1, -1, -1, -1, -1, 105, 106, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+- 127
++ -1, -1, -1, -1, -1, -1, -1, -1, -1, 127
+ };
+
+-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+- symbol of state STATE-NUM. */
+-static const yytype_uint16 yystos[] =
++/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
++ state STATE-NUM. */
++static const yytype_int16 yystos[] =
+ {
+- 0, 175, 176, 177, 0, 176, 3, 5, 6, 7,
++ 0, 176, 177, 178, 0, 177, 3, 5, 6, 7,
+ 8, 9, 10, 11, 13, 14, 15, 16, 20, 21,
+ 22, 24, 25, 26, 28, 29, 30, 32, 33, 34,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 83, 84, 85, 86, 87, 88, 89, 91,
+ 92, 93, 94, 96, 105, 106, 109, 110, 111, 112,
+- 113, 114, 119, 122, 125, 127, 128, 129, 131, 178,
+- 179, 180, 184, 188, 192, 196, 200, 204, 210, 212,
+- 218, 222, 226, 230, 234, 238, 239, 243, 247, 251,
+- 255, 262, 269, 279, 283, 284, 291, 292, 293, 294,
+- 306, 308, 309, 310, 311, 312, 313, 314, 315, 317,
+- 318, 328, 332, 335, 351, 352, 353, 357, 358, 361,
+- 363, 364, 393, 417, 421, 425, 34, 152, 201, 36,
+- 152, 181, 36, 152, 185, 36, 152, 189, 34, 152,
+- 193, 34, 152, 197, 31, 333, 334, 333, 333, 333,
+- 34, 152, 329, 35, 333, 333, 333, 333, 333, 333,
+- 333, 333, 65, 425, 152, 35, 152, 280, 35, 35,
+- 152, 285, 333, 333, 333, 34, 35, 152, 270, 277,
+- 277, 152, 256, 277, 152, 263, 277, 351, 351, 76,
+- 64, 65, 337, 79, 74, 75, 76, 79, 352, 425,
+- 421, 34, 231, 223, 34, 152, 227, 36, 152, 240,
+- 421, 351, 167, 152, 244, 277, 152, 248, 277, 152,
+- 252, 351, 167, 94, 30, 362, 34, 119, 424, 107,
+- 138, 151, 202, 203, 138, 182, 183, 138, 186, 187,
+- 138, 190, 191, 138, 194, 195, 138, 198, 199, 333,
+- 31, 33, 134, 140, 330, 331, 333, 35, 338, 351,
+- 163, 398, 235, 138, 139, 281, 282, 138, 286, 287,
+- 135, 136, 138, 146, 147, 148, 149, 150, 151, 272,
+- 273, 156, 274, 271, 107, 278, 138, 257, 258, 156,
+- 259, 138, 264, 265, 156, 266, 365, 359, 34, 339,
+- 76, 424, 34, 152, 219, 156, 156, 138, 228, 229,
+- 137, 143, 144, 145, 241, 242, 398, 152, 152, 205,
+- 421, 426, 138, 245, 246, 138, 249, 250, 138, 253,
+- 254, 426, 353, 425, 364, 152, 398, 152, 155, 159,
+- 160, 161, 162, 163, 164, 165, 166, 167, 168, 170,
+- 172, 173, 394, 162, 164, 423, 155, 155, 153, 154,
+- 155, 153, 154, 155, 153, 154, 155, 153, 154, 155,
+- 153, 154, 155, 153, 154, 155, 155, 153, 154, 333,
+- 34, 399, 400, 211, 34, 159, 236, 237, 339, 155,
+- 155, 153, 154, 155, 153, 154, 155, 155, 155, 155,
+- 155, 155, 155, 155, 155, 153, 154, 4, 12, 234,
+- 238, 275, 276, 319, 323, 278, 155, 153, 154, 234,
+- 238, 260, 261, 323, 155, 153, 154, 234, 238, 267,
+- 268, 323, 169, 367, 367, 398, 423, 398, 162, 156,
+- 220, 34, 232, 233, 34, 224, 225, 155, 153, 154,
+- 155, 155, 155, 155, 153, 154, 98, 99, 100, 101,
+- 102, 103, 104, 121, 406, 407, 408, 421, 422, 351,
+- 398, 154, 168, 155, 153, 154, 155, 153, 154, 155,
+- 153, 154, 168, 398, 406, 156, 418, 153, 152, 155,
+- 155, 155, 155, 155, 155, 155, 155, 155, 167, 155,
+- 168, 171, 155, 155, 152, 96, 34, 36, 381, 107,
+- 203, 36, 183, 36, 187, 36, 191, 34, 195, 34,
+- 199, 34, 107, 331, 155, 154, 163, 156, 214, 34,
+- 95, 153, 160, 35, 116, 117, 354, 282, 35, 287,
+- 36, 36, 277, 354, 354, 354, 354, 34, 107, 273,
+- 152, 320, 36, 152, 324, 157, 276, 277, 258, 157,
+- 261, 277, 265, 157, 268, 66, 67, 68, 368, 369,
+- 370, 398, 398, 336, 158, 34, 179, 221, 363, 158,
+- 157, 233, 157, 225, 381, 229, 36, 36, 36, 36,
+- 242, 339, 339, 339, 339, 339, 152, 152, 339, 153,
+- 154, 339, 155, 345, 153, 156, 206, 421, 277, 246,
+- 277, 250, 351, 254, 213, 153, 17, 18, 19, 234,
+- 238, 419, 420, 158, 421, 155, 155, 406, 34, 36,
+- 107, 277, 401, 400, 27, 50, 51, 52, 97, 215,
+- 216, 217, 234, 238, 294, 303, 307, 335, 34, 159,
+- 339, 141, 321, 322, 132, 143, 325, 326, 333, 158,
+- 158, 158, 154, 351, 366, 360, 156, 323, 327, 153,
+- 157, 179, 398, 398, 398, 398, 398, 406, 406, 398,
+- 96, 395, 408, 398, 152, 346, 349, 350, 123, 207,
+- 208, 209, 234, 238, 294, 214, 395, 333, 333, 333,
+- 157, 420, 17, 288, 153, 153, 169, 333, 333, 333,
+- 333, 421, 157, 216, 34, 155, 153, 154, 155, 155,
+- 153, 154, 369, 156, 371, 371, 34, 234, 238, 340,
+- 341, 342, 152, 345, 345, 345, 153, 153, 126, 396,
+- 351, 160, 161, 162, 163, 164, 165, 347, 159, 160,
+- 161, 162, 164, 166, 348, 333, 157, 208, 396, 333,
+- 18, 289, 158, 395, 278, 34, 158, 36, 322, 36,
+- 36, 326, 11, 23, 34, 38, 39, 40, 41, 42,
+- 43, 44, 45, 46, 51, 52, 53, 66, 67, 68,
+- 69, 70, 72, 90, 97, 124, 130, 166, 204, 218,
+- 234, 238, 294, 295, 296, 297, 298, 299, 300, 301,
+- 302, 303, 304, 305, 307, 316, 323, 335, 357, 358,
+- 361, 364, 372, 373, 374, 383, 385, 386, 388, 393,
+- 409, 412, 414, 415, 417, 158, 158, 155, 344, 157,
+- 342, 426, 339, 339, 120, 427, 153, 349, 36, 107,
+- 108, 115, 118, 156, 351, 354, 355, 425, 158, 427,
+- 333, 19, 290, 396, 160, 152, 333, 333, 152, 333,
+- 333, 333, 333, 333, 333, 333, 333, 333, 333, 333,
+- 333, 71, 382, 382, 382, 169, 410, 411, 384, 416,
+- 413, 387, 152, 375, 34, 157, 373, 349, 398, 158,
+- 153, 398, 398, 152, 155, 397, 157, 152, 397, 333,
+- 427, 278, 406, 406, 169, 169, 169, 90, 412, 412,
+- 385, 393, 421, 414, 34, 388, 133, 138, 142, 376,
+- 377, 156, 378, 152, 154, 343, 398, 351, 428, 107,
+- 398, 346, 356, 398, 397, 153, 153, 34, 155, 155,
+- 155, 153, 154, 234, 238, 323, 379, 380, 153, 158,
+- 153, 154, 170, 391, 153, 154, 391, 398, 395, 427,
+- 34, 381, 34, 377, 157, 380, 427, 327, 351, 392,
+- 158, 346, 158, 391, 427, 398, 158, 397, 421, 49,
+- 404, 327, 158, 398, 170, 389, 398, 152, 333, 48,
+- 403, 404, 404, 391, 390, 158, 158, 406, 333, 37,
+- 405, 403, 403, 158, 152, 327, 404, 153, 333, 47,
+- 402, 405, 405, 327, 406, 404, 403, 171, 333, 402,
+- 402, 404, 153, 403, 405, 403, 171
++ 113, 114, 119, 122, 125, 127, 128, 129, 131, 179,
++ 180, 181, 185, 189, 193, 197, 201, 205, 211, 213,
++ 219, 223, 227, 231, 235, 239, 240, 244, 248, 252,
++ 256, 263, 270, 280, 284, 285, 292, 293, 294, 295,
++ 307, 309, 310, 311, 312, 313, 314, 315, 316, 318,
++ 319, 329, 333, 336, 352, 353, 354, 358, 359, 362,
++ 364, 365, 394, 418, 422, 426, 34, 153, 202, 36,
++ 153, 182, 36, 153, 186, 36, 153, 190, 34, 153,
++ 194, 34, 153, 198, 31, 334, 335, 334, 334, 334,
++ 34, 153, 330, 35, 334, 334, 334, 334, 334, 334,
++ 334, 334, 65, 426, 153, 35, 153, 281, 35, 35,
++ 153, 286, 334, 334, 334, 34, 35, 153, 271, 278,
++ 278, 153, 257, 278, 153, 264, 278, 352, 352, 76,
++ 64, 65, 338, 79, 74, 75, 76, 79, 353, 426,
++ 422, 34, 232, 224, 34, 153, 228, 36, 153, 241,
++ 422, 352, 168, 153, 245, 278, 153, 249, 278, 153,
++ 253, 352, 168, 94, 30, 363, 34, 119, 425, 107,
++ 138, 152, 203, 204, 138, 183, 184, 138, 187, 188,
++ 138, 191, 192, 138, 195, 196, 138, 199, 200, 334,
++ 31, 33, 134, 140, 331, 332, 334, 35, 339, 352,
++ 164, 399, 236, 138, 139, 282, 283, 138, 287, 288,
++ 135, 136, 138, 146, 147, 148, 149, 150, 151, 152,
++ 273, 274, 157, 275, 272, 107, 279, 138, 258, 259,
++ 157, 260, 138, 265, 266, 157, 267, 366, 360, 34,
++ 340, 76, 425, 34, 153, 220, 157, 157, 138, 229,
++ 230, 137, 143, 144, 145, 242, 243, 399, 153, 153,
++ 206, 422, 427, 138, 246, 247, 138, 250, 251, 138,
++ 254, 255, 427, 354, 426, 365, 153, 399, 153, 156,
++ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
++ 171, 173, 174, 395, 163, 165, 424, 156, 156, 154,
++ 155, 156, 154, 155, 156, 154, 155, 156, 154, 155,
++ 156, 154, 155, 156, 154, 155, 156, 156, 154, 155,
++ 334, 34, 400, 401, 212, 34, 160, 237, 238, 340,
++ 156, 156, 154, 155, 156, 154, 155, 156, 156, 156,
++ 156, 156, 156, 156, 156, 156, 156, 154, 155, 4,
++ 12, 235, 239, 276, 277, 320, 324, 279, 156, 154,
++ 155, 235, 239, 261, 262, 324, 156, 154, 155, 235,
++ 239, 268, 269, 324, 170, 368, 368, 399, 424, 399,
++ 163, 157, 221, 34, 233, 234, 34, 225, 226, 156,
++ 154, 155, 156, 156, 156, 156, 154, 155, 98, 99,
++ 100, 101, 102, 103, 104, 121, 407, 408, 409, 422,
++ 423, 352, 399, 155, 169, 156, 154, 155, 156, 154,
++ 155, 156, 154, 155, 169, 399, 407, 157, 419, 154,
++ 153, 156, 156, 156, 156, 156, 156, 156, 156, 156,
++ 168, 156, 169, 172, 156, 156, 153, 96, 34, 36,
++ 382, 107, 204, 36, 184, 36, 188, 36, 192, 34,
++ 196, 34, 200, 34, 107, 332, 156, 155, 164, 157,
++ 215, 34, 95, 154, 161, 35, 116, 117, 355, 283,
++ 35, 288, 36, 36, 278, 355, 355, 355, 355, 355,
++ 34, 107, 274, 153, 321, 36, 153, 325, 158, 277,
++ 278, 259, 158, 262, 278, 266, 158, 269, 66, 67,
++ 68, 369, 370, 371, 399, 399, 337, 159, 34, 180,
++ 222, 364, 159, 158, 234, 158, 226, 382, 230, 36,
++ 36, 36, 36, 243, 340, 340, 340, 340, 340, 153,
++ 153, 340, 154, 155, 340, 156, 346, 154, 157, 207,
++ 422, 278, 247, 278, 251, 352, 255, 214, 154, 17,
++ 18, 19, 235, 239, 420, 421, 159, 422, 156, 156,
++ 407, 34, 36, 107, 278, 402, 401, 27, 50, 51,
++ 52, 97, 216, 217, 218, 235, 239, 295, 304, 308,
++ 336, 34, 160, 340, 141, 322, 323, 132, 143, 326,
++ 327, 334, 159, 159, 159, 155, 352, 367, 361, 157,
++ 324, 328, 154, 158, 180, 399, 399, 399, 399, 399,
++ 407, 407, 399, 96, 396, 409, 399, 153, 347, 350,
++ 351, 123, 208, 209, 210, 235, 239, 295, 215, 396,
++ 334, 334, 334, 158, 421, 17, 289, 154, 154, 170,
++ 334, 334, 334, 334, 422, 158, 217, 34, 156, 154,
++ 155, 156, 156, 154, 155, 370, 157, 372, 372, 34,
++ 235, 239, 341, 342, 343, 153, 346, 346, 346, 154,
++ 154, 126, 397, 352, 161, 162, 163, 164, 165, 166,
++ 348, 160, 161, 162, 163, 165, 167, 349, 334, 158,
++ 209, 397, 334, 18, 290, 159, 396, 279, 34, 159,
++ 36, 323, 36, 36, 327, 11, 23, 34, 38, 39,
++ 40, 41, 42, 43, 44, 45, 46, 51, 52, 53,
++ 66, 67, 68, 69, 70, 72, 90, 97, 124, 130,
++ 167, 205, 219, 235, 239, 295, 296, 297, 298, 299,
++ 300, 301, 302, 303, 304, 305, 306, 308, 317, 324,
++ 336, 358, 359, 362, 365, 373, 374, 375, 384, 386,
++ 387, 389, 394, 410, 413, 415, 416, 418, 159, 159,
++ 156, 345, 158, 343, 427, 340, 340, 120, 428, 154,
++ 350, 36, 107, 108, 115, 118, 157, 352, 355, 356,
++ 426, 159, 428, 334, 19, 291, 397, 161, 153, 334,
++ 334, 153, 334, 334, 334, 334, 334, 334, 334, 334,
++ 334, 334, 334, 334, 71, 383, 383, 383, 170, 411,
++ 412, 385, 417, 414, 388, 153, 376, 34, 158, 374,
++ 350, 399, 159, 154, 399, 399, 153, 156, 398, 158,
++ 153, 398, 334, 428, 279, 407, 407, 170, 170, 170,
++ 90, 413, 413, 386, 394, 422, 415, 34, 389, 133,
++ 138, 142, 377, 378, 157, 379, 153, 155, 344, 399,
++ 352, 429, 107, 399, 347, 357, 399, 398, 154, 154,
++ 34, 156, 156, 156, 154, 155, 235, 239, 324, 380,
++ 381, 154, 159, 154, 155, 171, 392, 154, 155, 392,
++ 399, 396, 428, 34, 382, 34, 378, 158, 381, 428,
++ 328, 352, 393, 159, 347, 159, 392, 428, 399, 159,
++ 398, 422, 49, 405, 328, 159, 399, 171, 390, 399,
++ 153, 334, 48, 404, 405, 405, 392, 391, 159, 159,
++ 407, 334, 37, 406, 404, 404, 159, 153, 328, 405,
++ 154, 334, 47, 403, 406, 406, 328, 407, 405, 404,
++ 172, 334, 403, 403, 405, 154, 404, 406, 404, 172
+ };
+
+-#define yyerrok (yyerrstatus = 0)
+-#define yyclearin (yychar = YYEMPTY)
+-#define YYEMPTY (-2)
+-#define YYEOF 0
+-
+-#define YYACCEPT goto yyacceptlab
+-#define YYABORT goto yyabortlab
+-#define YYERROR goto yyerrorlab
+-
++/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
++static const yytype_int16 yyr1[] =
++{
++ 0, 175, 176, 176, 178, 177, 179, 179, 179, 179,
++ 179, 179, 179, 179, 179, 179, 179, 179, 179, 179,
++ 179, 179, 179, 179, 179, 179, 179, 179, 179, 179,
++ 179, 179, 179, 179, 179, 179, 179, 179, 179, 179,
++ 179, 179, 179, 179, 180, 180, 180, 180, 180, 180,
++ 180, 180, 180, 180, 180, 180, 181, 182, 182, 183,
++ 183, 184, 185, 186, 186, 187, 187, 188, 189, 190,
++ 190, 191, 191, 192, 193, 194, 194, 195, 195, 196,
++ 197, 198, 198, 199, 199, 200, 201, 202, 202, 203,
++ 203, 204, 204, 205, 206, 206, 207, 208, 208, 209,
++ 209, 209, 209, 210, 212, 211, 214, 213, 215, 216,
++ 216, 217, 217, 217, 217, 217, 217, 217, 217, 217,
++ 218, 220, 219, 221, 221, 222, 222, 224, 223, 225,
++ 225, 226, 227, 228, 228, 229, 229, 230, 232, 231,
++ 233, 233, 234, 236, 235, 237, 237, 237, 237, 238,
++ 238, 239, 240, 241, 241, 241, 242, 242, 243, 243,
++ 243, 243, 244, 245, 245, 246, 246, 247, 248, 249,
++ 249, 250, 250, 251, 252, 253, 253, 254, 254, 255,
++ 256, 257, 257, 258, 258, 259, 260, 260, 261, 261,
++ 262, 262, 262, 263, 264, 264, 265, 265, 266, 267,
++ 267, 268, 268, 269, 269, 269, 270, 270, 272, 271,
++ 271, 273, 273, 274, 274, 274, 274, 274, 274, 274,
++ 274, 274, 274, 275, 275, 276, 276, 277, 277, 277,
++ 277, 278, 278, 279, 279, 280, 281, 281, 282, 282,
++ 283, 283, 284, 285, 286, 286, 287, 287, 288, 289,
++ 289, 290, 290, 291, 291, 292, 293, 294, 295, 296,
++ 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
++ 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
++ 317, 318, 319, 320, 321, 322, 322, 323, 324, 325,
++ 325, 325, 326, 326, 327, 327, 328, 328, 329, 330,
++ 330, 331, 331, 332, 332, 333, 334, 335, 335, 337,
++ 336, 338, 338, 338, 339, 339, 340, 340, 341, 341,
++ 342, 342, 343, 343, 343, 344, 344, 345, 345, 346,
++ 346, 347, 347, 348, 348, 348, 348, 348, 348, 349,
++ 349, 349, 349, 349, 349, 349, 350, 351, 351, 352,
++ 352, 353, 353, 354, 355, 355, 356, 356, 356, 356,
++ 356, 356, 356, 356, 356, 357, 357, 357, 358, 358,
++ 360, 361, 359, 363, 362, 364, 366, 367, 365, 368,
++ 368, 369, 369, 370, 371, 371, 371, 371, 372, 372,
++ 373, 373, 373, 374, 374, 374, 374, 374, 374, 374,
++ 374, 374, 374, 374, 374, 374, 374, 374, 374, 374,
++ 374, 374, 374, 374, 374, 374, 374, 374, 374, 374,
++ 374, 374, 374, 374, 374, 374, 374, 374, 375, 376,
++ 377, 377, 378, 378, 378, 379, 379, 380, 380, 381,
++ 381, 381, 382, 382, 383, 383, 385, 384, 384, 386,
++ 388, 387, 387, 389, 390, 391, 390, 392, 393, 392,
++ 394, 394, 394, 394, 395, 395, 395, 395, 395, 395,
++ 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
++ 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
++ 395, 395, 395, 396, 396, 397, 397, 398, 398, 399,
++ 399, 400, 400, 401, 401, 402, 402, 402, 402, 403,
++ 403, 404, 404, 405, 405, 406, 406, 407, 408, 408,
++ 408, 409, 409, 409, 409, 409, 409, 409, 409, 409,
++ 411, 410, 412, 410, 410, 414, 413, 413, 415, 415,
++ 417, 416, 416, 418, 419, 419, 420, 420, 421, 421,
++ 421, 421, 421, 422, 422, 423, 424, 424, 425, 425,
++ 425, 426, 426, 426, 426, 426, 426, 426, 426, 426,
++ 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
++ 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
++ 426, 426, 427, 427, 428, 428, 429, 429, 429
++};
+
+-/* Like YYERROR except do call yyerror. This remains here temporarily
+- to ease the transition to the new meaning of YYERROR, for GCC.
+- Once GCC version 2 has supplanted version 1, this can go. */
++/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
++static const yytype_int8 yyr2[] =
++{
++ 0, 2, 1, 2, 0, 2, 1, 1, 1, 1,
++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++ 1, 1, 1, 1, 1, 1, 2, 1, 3, 1,
++ 3, 3, 2, 1, 3, 1, 3, 3, 2, 1,
++ 3, 1, 3, 3, 2, 1, 3, 1, 3, 3,
++ 3, 1, 3, 1, 3, 3, 2, 2, 3, 1,
++ 3, 3, 3, 5, 0, 3, 4, 1, 2, 1,
++ 1, 1, 1, 2, 0, 5, 0, 6, 4, 1,
++ 2, 1, 1, 1, 1, 2, 2, 1, 1, 1,
++ 14, 0, 5, 0, 3, 1, 2, 0, 5, 1,
++ 2, 1, 2, 1, 3, 1, 3, 3, 0, 5,
++ 1, 2, 1, 0, 5, 1, 2, 3, 4, 1,
++ 3, 1, 3, 0, 1, 3, 1, 3, 3, 3,
++ 3, 3, 2, 1, 3, 1, 3, 3, 2, 1,
++ 3, 1, 3, 3, 2, 1, 3, 1, 3, 3,
++ 3, 1, 3, 1, 3, 3, 0, 4, 1, 2,
++ 1, 1, 1, 3, 1, 3, 1, 3, 3, 0,
++ 4, 1, 2, 1, 1, 1, 3, 3, 0, 3,
++ 3, 1, 3, 3, 3, 3, 3, 3, 3, 3,
++ 3, 3, 3, 0, 4, 1, 2, 1, 1, 1,
++ 1, 1, 1, 0, 1, 2, 1, 3, 1, 3,
++ 3, 3, 2, 2, 1, 3, 1, 3, 3, 0,
++ 2, 0, 2, 0, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 3, 1, 3, 3, 3, 0,
++ 1, 3, 1, 3, 3, 3, 0, 1, 3, 1,
++ 3, 1, 3, 3, 3, 4, 2, 1, 2, 0,
++ 9, 0, 1, 1, 0, 1, 0, 1, 0, 1,
++ 1, 2, 1, 1, 4, 0, 1, 0, 2, 0,
++ 2, 1, 3, 1, 1, 1, 1, 1, 1, 0,
++ 1, 1, 1, 1, 1, 1, 3, 0, 3, 2,
++ 1, 1, 3, 1, 1, 1, 1, 4, 2, 1,
++ 1, 1, 1, 1, 1, 0, 1, 3, 6, 12,
++ 0, 0, 8, 0, 3, 4, 0, 0, 8, 0,
++ 2, 1, 3, 2, 0, 1, 1, 1, 0, 3,
++ 0, 1, 2, 1, 1, 1, 1, 1, 1, 1,
++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++ 1, 2, 2, 2, 3, 3, 3, 2, 3, 3,
++ 1, 3, 3, 3, 3, 0, 4, 1, 2, 1,
++ 1, 1, 1, 1, 0, 1, 0, 3, 1, 11,
++ 0, 3, 1, 11, 0, 0, 6, 0, 0, 7,
++ 17, 7, 17, 16, 1, 1, 1, 1, 1, 1,
++ 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
++ 2, 2, 3, 3, 1, 2, 2, 1, 2, 2,
++ 2, 1, 2, 0, 1, 0, 1, 0, 2, 0,
++ 3, 1, 3, 1, 3, 1, 5, 1, 1, 0,
++ 2, 0, 2, 0, 2, 0, 2, 1, 0, 1,
++ 3, 4, 4, 4, 3, 3, 6, 6, 3, 2,
++ 0, 3, 0, 3, 1, 0, 3, 1, 1, 1,
++ 0, 3, 1, 8, 0, 3, 1, 2, 1, 1,
++ 2, 2, 2, 4, 3, 3, 0, 1, 0, 3,
++ 2, 1, 4, 2, 2, 1, 1, 2, 1, 1,
++ 2, 2, 3, 1, 1, 1, 2, 2, 1, 1,
++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++ 1, 1, 1, 3, 0, 4, 0, 1, 3
++};
+
+-#define YYFAIL goto yyerrlab
+
+-#define YYRECOVERING() (!!yyerrstatus)
++enum { YYENOMEM = -2 };
+
+-#define YYBACKUP(Token, Value) \
+-do \
+- if (yychar == YYEMPTY && yylen == 1) \
+- { \
+- yychar = (Token); \
+- yylval = (Value); \
+- yytoken = YYTRANSLATE (yychar); \
+- YYPOPSTACK (1); \
+- goto yybackup; \
+- } \
+- else \
+- { \
+- yyerror (YY_("syntax error: cannot back up")); \
+- YYERROR; \
+- } \
+-while (YYID (0))
+-
+-
+-#define YYTERROR 1
+-#define YYERRCODE 256
+-
+-
+-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+- If N is 0, then set CURRENT to the empty location which ends
+- the previous symbol: RHS[0] (always defined). */
+-
+-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+-#ifndef YYLLOC_DEFAULT
+-# define YYLLOC_DEFAULT(Current, Rhs, N) \
+- do \
+- if (YYID (N)) \
+- { \
+- (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
+- (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
+- (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
+- (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
+- } \
+- else \
+- { \
+- (Current).first_line = (Current).last_line = \
+- YYRHSLOC (Rhs, 0).last_line; \
+- (Current).first_column = (Current).last_column = \
+- YYRHSLOC (Rhs, 0).last_column; \
+- } \
+- while (YYID (0))
+-#endif
++#define yyerrok (yyerrstatus = 0)
++#define yyclearin (yychar = YYEMPTY)
+
++#define YYACCEPT goto yyacceptlab
++#define YYABORT goto yyabortlab
++#define YYERROR goto yyerrorlab
++#define YYNOMEM goto yyexhaustedlab
+
+-/* YY_LOCATION_PRINT -- Print the location on the stream.
+- This macro was not mandated originally: define only if we know
+- we won't break user code: when these are the locations we know. */
+-
+-#ifndef YY_LOCATION_PRINT
+-# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
+-# define YY_LOCATION_PRINT(File, Loc) \
+- fprintf (File, "%d.%d-%d.%d", \
+- (Loc).first_line, (Loc).first_column, \
+- (Loc).last_line, (Loc).last_column)
+-# else
+-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+-# endif
+-#endif
+
++#define YYRECOVERING() (!!yyerrstatus)
+
+-/* YYLEX -- calling `yylex' with the right arguments. */
++#define YYBACKUP(Token, Value) \
++ do \
++ if (yychar == YYEMPTY) \
++ { \
++ yychar = (Token); \
++ yylval = (Value); \
++ YYPOPSTACK (yylen); \
++ yystate = *yyssp; \
++ goto yybackup; \
++ } \
++ else \
++ { \
++ yyerror (YY_("syntax error: cannot back up")); \
++ YYERROR; \
++ } \
++ while (0)
++
++/* Backward compatibility with an undocumented macro.
++ Use YYerror or YYUNDEF. */
++#define YYERRCODE YYUNDEF
+
+-#ifdef YYLEX_PARAM
+-# define YYLEX yylex (YYLEX_PARAM)
+-#else
+-# define YYLEX yylex ()
+-#endif
+
+ /* Enable debugging if requested. */
+ #if YYDEBUG
+@@ -2321,80 +2213,58 @@ while (YYID (0))
+ # define YYFPRINTF fprintf
+ # endif
+
+-# define YYDPRINTF(Args) \
+-do { \
+- if (yydebug) \
+- YYFPRINTF Args; \
+-} while (YYID (0))
+-
+-# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
+-do { \
+- if (yydebug) \
+- { \
+- YYFPRINTF (stderr, "%s ", Title); \
+- yy_symbol_print (stderr, \
+- Type, Value); \
+- YYFPRINTF (stderr, "\n"); \
+- } \
+-} while (YYID (0))
+-
+-
+-/*--------------------------------.
+-| Print this symbol on YYOUTPUT. |
+-`--------------------------------*/
+-
+-/*ARGSUSED*/
+-#if (defined __STDC__ || defined __C99__FUNC__ \
+- || defined __cplusplus || defined _MSC_VER)
+-static void
+-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+-#else
++# define YYDPRINTF(Args) \
++do { \
++ if (yydebug) \
++ YYFPRINTF Args; \
++} while (0)
++
++
++
++
++# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
++do { \
++ if (yydebug) \
++ { \
++ YYFPRINTF (stderr, "%s ", Title); \
++ yy_symbol_print (stderr, \
++ Kind, Value); \
++ YYFPRINTF (stderr, "\n"); \
++ } \
++} while (0)
++
++
++/*-----------------------------------.
++| Print this symbol's value on YYO. |
++`-----------------------------------*/
++
+ static void
+-yy_symbol_value_print (yyoutput, yytype, yyvaluep)
+- FILE *yyoutput;
+- int yytype;
+- YYSTYPE const * const yyvaluep;
+-#endif
++yy_symbol_value_print (FILE *yyo,
++ yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
+ {
++ FILE *yyoutput = yyo;
++ YY_USE (yyoutput);
+ if (!yyvaluep)
+ return;
+-# ifdef YYPRINT
+- if (yytype < YYNTOKENS)
+- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+-# else
+- YYUSE (yyoutput);
+-# endif
+- switch (yytype)
+- {
+- default:
+- break;
+- }
++ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
++ YY_USE (yykind);
++ YY_IGNORE_MAYBE_UNINITIALIZED_END
+ }
+
+
+-/*--------------------------------.
+-| Print this symbol on YYOUTPUT. |
+-`--------------------------------*/
++/*---------------------------.
++| Print this symbol on YYO. |
++`---------------------------*/
+
+-#if (defined __STDC__ || defined __C99__FUNC__ \
+- || defined __cplusplus || defined _MSC_VER)
+-static void
+-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+-#else
+ static void
+-yy_symbol_print (yyoutput, yytype, yyvaluep)
+- FILE *yyoutput;
+- int yytype;
+- YYSTYPE const * const yyvaluep;
+-#endif
++yy_symbol_print (FILE *yyo,
++ yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
+ {
+- if (yytype < YYNTOKENS)
+- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+- else
+- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
++ YYFPRINTF (yyo, "%s %s (",
++ yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
+
+- yy_symbol_value_print (yyoutput, yytype, yyvaluep);
+- YYFPRINTF (yyoutput, ")");
++ yy_symbol_value_print (yyo, yykind, yyvaluep);
++ YYFPRINTF (yyo, ")");
+ }
+
+ /*------------------------------------------------------------------.
+@@ -2402,80 +2272,68 @@ yy_symbol_print (yyoutput, yytype, yyval
+ | TOP (included). |
+ `------------------------------------------------------------------*/
+
+-#if (defined __STDC__ || defined __C99__FUNC__ \
+- || defined __cplusplus || defined _MSC_VER)
+-static void
+-yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+-#else
+ static void
+-yy_stack_print (bottom, top)
+- yytype_int16 *bottom;
+- yytype_int16 *top;
+-#endif
++yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
+ {
+ YYFPRINTF (stderr, "Stack now");
+- for (; bottom <= top; ++bottom)
+- YYFPRINTF (stderr, " %d", *bottom);
++ for (; yybottom <= yytop; yybottom++)
++ {
++ int yybot = *yybottom;
++ YYFPRINTF (stderr, " %d", yybot);
++ }
+ YYFPRINTF (stderr, "\n");
+ }
+
+-# define YY_STACK_PRINT(Bottom, Top) \
+-do { \
+- if (yydebug) \
+- yy_stack_print ((Bottom), (Top)); \
+-} while (YYID (0))
++# define YY_STACK_PRINT(Bottom, Top) \
++do { \
++ if (yydebug) \
++ yy_stack_print ((Bottom), (Top)); \
++} while (0)
+
+
+ /*------------------------------------------------.
+ | Report that the YYRULE is going to be reduced. |
+ `------------------------------------------------*/
+
+-#if (defined __STDC__ || defined __C99__FUNC__ \
+- || defined __cplusplus || defined _MSC_VER)
+ static void
+-yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
+-#else
+-static void
+-yy_reduce_print (yyvsp, yyrule)
+- YYSTYPE *yyvsp;
+- int yyrule;
+-#endif
++yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
++ int yyrule)
+ {
++ int yylno = yyrline[yyrule];
+ int yynrhs = yyr2[yyrule];
+ int yyi;
+- unsigned long int yylno = yyrline[yyrule];
+- YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+- yyrule - 1, yylno);
++ YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
++ yyrule - 1, yylno);
+ /* The symbols being reduced. */
+ for (yyi = 0; yyi < yynrhs; yyi++)
+ {
+- fprintf (stderr, " $%d = ", yyi + 1);
+- yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
+- &(yyvsp[(yyi + 1) - (yynrhs)])
+- );
+- fprintf (stderr, "\n");
++ YYFPRINTF (stderr, " $%d = ", yyi + 1);
++ yy_symbol_print (stderr,
++ YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
++ &yyvsp[(yyi + 1) - (yynrhs)]);
++ YYFPRINTF (stderr, "\n");
+ }
+ }
+
+-# define YY_REDUCE_PRINT(Rule) \
+-do { \
+- if (yydebug) \
+- yy_reduce_print (yyvsp, Rule); \
+-} while (YYID (0))
++# define YY_REDUCE_PRINT(Rule) \
++do { \
++ if (yydebug) \
++ yy_reduce_print (yyssp, yyvsp, Rule); \
++} while (0)
+
+ /* Nonzero means print parse trace. It is left uninitialized so that
+ multiple parsers can coexist. */
+ int yydebug;
+ #else /* !YYDEBUG */
+-# define YYDPRINTF(Args)
+-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
++# define YYDPRINTF(Args) ((void) 0)
++# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
+ # define YY_STACK_PRINT(Bottom, Top)
+ # define YY_REDUCE_PRINT(Rule)
+ #endif /* !YYDEBUG */
+
+
+ /* YYINITDEPTH -- initial size of the parser's stacks. */
+-#ifndef YYINITDEPTH
++#ifndef YYINITDEPTH
+ # define YYINITDEPTH 200
+ #endif
+
+@@ -2490,478 +2348,219 @@ int yydebug;
+ # define YYMAXDEPTH 10000
+ #endif
+
+-
+
+-#if YYERROR_VERBOSE
+
+-# ifndef yystrlen
+-# if defined __GLIBC__ && defined _STRING_H
+-# define yystrlen strlen
+-# else
+-/* Return the length of YYSTR. */
+-#if (defined __STDC__ || defined __C99__FUNC__ \
+- || defined __cplusplus || defined _MSC_VER)
+-static YYSIZE_T
+-yystrlen (const char *yystr)
+-#else
+-static YYSIZE_T
+-yystrlen (yystr)
+- const char *yystr;
+-#endif
+-{
+- YYSIZE_T yylen;
+- for (yylen = 0; yystr[yylen]; yylen++)
+- continue;
+- return yylen;
+-}
+-# endif
+-# endif
+
+-# ifndef yystpcpy
+-# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+-# define yystpcpy stpcpy
+-# else
+-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+- YYDEST. */
+-#if (defined __STDC__ || defined __C99__FUNC__ \
+- || defined __cplusplus || defined _MSC_VER)
+-static char *
+-yystpcpy (char *yydest, const char *yysrc)
+-#else
+-static char *
+-yystpcpy (yydest, yysrc)
+- char *yydest;
+- const char *yysrc;
+-#endif
+-{
+- char *yyd = yydest;
+- const char *yys = yysrc;
+
+- while ((*yyd++ = *yys++) != '\0')
+- continue;
+-
+- return yyd - 1;
+-}
+-# endif
+-# endif
+-
+-# ifndef yytnamerr
+-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
+- quotes and backslashes, so that it's suitable for yyerror. The
+- heuristic is that double-quoting is unnecessary unless the string
+- contains an apostrophe, a comma, or backslash (other than
+- backslash-backslash). YYSTR is taken from yytname. If YYRES is
+- null, do not copy; instead, return the length of what the result
+- would have been. */
+-static YYSIZE_T
+-yytnamerr (char *yyres, const char *yystr)
+-{
+- if (*yystr == '"')
+- {
+- YYSIZE_T yyn = 0;
+- char const *yyp = yystr;
+-
+- for (;;)
+- switch (*++yyp)
+- {
+- case '\'':
+- case ',':
+- goto do_not_strip_quotes;
+-
+- case '\\':
+- if (*++yyp != '\\')
+- goto do_not_strip_quotes;
+- /* Fall through. */
+- default:
+- if (yyres)
+- yyres[yyn] = *yyp;
+- yyn++;
+- break;
+-
+- case '"':
+- if (yyres)
+- yyres[yyn] = '\0';
+- return yyn;
+- }
+- do_not_strip_quotes: ;
+- }
+-
+- if (! yyres)
+- return yystrlen (yystr);
+-
+- return yystpcpy (yyres, yystr) - yyres;
+-}
+-# endif
+-
+-/* Copy into YYRESULT an error message about the unexpected token
+- YYCHAR while in state YYSTATE. Return the number of bytes copied,
+- including the terminating null byte. If YYRESULT is null, do not
+- copy anything; just return the number of bytes that would be
+- copied. As a special case, return 0 if an ordinary "syntax error"
+- message will do. Return YYSIZE_MAXIMUM if overflow occurs during
+- size calculation. */
+-static YYSIZE_T
+-yysyntax_error (char *yyresult, int yystate, int yychar)
+-{
+- int yyn = yypact[yystate];
+-
+- if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
+- return 0;
+- else
+- {
+- int yytype = YYTRANSLATE (yychar);
+- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
+- YYSIZE_T yysize = yysize0;
+- YYSIZE_T yysize1;
+- int yysize_overflow = 0;
+- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+- int yyx;
+-
+-# if 0
+- /* This is so xgettext sees the translatable formats that are
+- constructed on the fly. */
+- YY_("syntax error, unexpected %s");
+- YY_("syntax error, unexpected %s, expecting %s");
+- YY_("syntax error, unexpected %s, expecting %s or %s");
+- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
+- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+-# endif
+- char *yyfmt;
+- char const *yyf;
+- static char const yyunexpected[] = "syntax error, unexpected %s";
+- static char const yyexpecting[] = ", expecting %s";
+- static char const yyor[] = " or %s";
+- char yyformat[sizeof yyunexpected
+- + sizeof yyexpecting - 1
+- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
+- * (sizeof yyor - 1))];
+- char const *yyprefix = yyexpecting;
+-
+- /* Start YYX at -YYN if negative to avoid negative indexes in
+- YYCHECK. */
+- int yyxbegin = yyn < 0 ? -yyn : 0;
+-
+- /* Stay within bounds of both yycheck and yytname. */
+- int yychecklim = YYLAST - yyn + 1;
+- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+- int yycount = 1;
+-
+- yyarg[0] = yytname[yytype];
+- yyfmt = yystpcpy (yyformat, yyunexpected);
+-
+- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+- {
+- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+- {
+- yycount = 1;
+- yysize = yysize0;
+- yyformat[sizeof yyunexpected - 1] = '\0';
+- break;
+- }
+- yyarg[yycount++] = yytname[yyx];
+- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+- yysize_overflow |= (yysize1 < yysize);
+- yysize = yysize1;
+- yyfmt = yystpcpy (yyfmt, yyprefix);
+- yyprefix = yyor;
+- }
+-
+- yyf = YY_(yyformat);
+- yysize1 = yysize + yystrlen (yyf);
+- yysize_overflow |= (yysize1 < yysize);
+- yysize = yysize1;
+-
+- if (yysize_overflow)
+- return YYSIZE_MAXIMUM;
+-
+- if (yyresult)
+- {
+- /* Avoid sprintf, as that infringes on the user's name space.
+- Don't have undefined behavior even if the translation
+- produced a string with the wrong number of "%s"s. */
+- char *yyp = yyresult;
+- int yyi = 0;
+- while ((*yyp = *yyf) != '\0')
+- {
+- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
+- {
+- yyp += yytnamerr (yyp, yyarg[yyi++]);
+- yyf += 2;
+- }
+- else
+- {
+- yyp++;
+- yyf++;
+- }
+- }
+- }
+- return yysize;
+- }
+-}
+-#endif /* YYERROR_VERBOSE */
+-
+
+ /*-----------------------------------------------.
+ | Release the memory associated to this symbol. |
+ `-----------------------------------------------*/
+
+-/*ARGSUSED*/
+-#if (defined __STDC__ || defined __C99__FUNC__ \
+- || defined __cplusplus || defined _MSC_VER)
+-static void
+-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+-#else
+ static void
+-yydestruct (yymsg, yytype, yyvaluep)
+- const char *yymsg;
+- int yytype;
+- YYSTYPE *yyvaluep;
+-#endif
++yydestruct (const char *yymsg,
++ yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
+ {
+- YYUSE (yyvaluep);
+-
++ YY_USE (yyvaluep);
+ if (!yymsg)
+ yymsg = "Deleting";
+- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+-
+- switch (yytype)
+- {
++ YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
+
+- default:
+- break;
+- }
++ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
++ YY_USE (yykind);
++ YY_IGNORE_MAYBE_UNINITIALIZED_END
+ }
+-
+-
+-/* Prevent warnings from -Wmissing-prototypes. */
+-
+-#ifdef YYPARSE_PARAM
+-#if defined __STDC__ || defined __cplusplus
+-int yyparse (void *YYPARSE_PARAM);
+-#else
+-int yyparse ();
+-#endif
+-#else /* ! YYPARSE_PARAM */
+-#if defined __STDC__ || defined __cplusplus
+-int yyparse (void);
+-#else
+-int yyparse ();
+-#endif
+-#endif /* ! YYPARSE_PARAM */
+-
+
+
+-/* The look-ahead symbol. */
++/* Lookahead token kind. */
+ int yychar;
+
+-/* The semantic value of the look-ahead symbol. */
++/* The semantic value of the lookahead symbol. */
+ YYSTYPE yylval;
+-
+ /* Number of syntax errors so far. */
+ int yynerrs;
+
+
+
++
+ /*----------.
+ | yyparse. |
+ `----------*/
+
+-#ifdef YYPARSE_PARAM
+-#if (defined __STDC__ || defined __C99__FUNC__ \
+- || defined __cplusplus || defined _MSC_VER)
+-int
+-yyparse (void *YYPARSE_PARAM)
+-#else
+-int
+-yyparse (YYPARSE_PARAM)
+- void *YYPARSE_PARAM;
+-#endif
+-#else /* ! YYPARSE_PARAM */
+-#if (defined __STDC__ || defined __C99__FUNC__ \
+- || defined __cplusplus || defined _MSC_VER)
+ int
+ yyparse (void)
+-#else
+-int
+-yyparse ()
+-
+-#endif
+-#endif
+ {
+-
+- int yystate;
++ yy_state_fast_t yystate = 0;
++ /* Number of tokens to shift before error messages enabled. */
++ int yyerrstatus = 0;
++
++ /* Refer to the stacks through separate pointers, to allow yyoverflow
++ to reallocate them elsewhere. */
++
++ /* Their size. */
++ YYPTRDIFF_T yystacksize = YYINITDEPTH;
++
++ /* The state stack: array, bottom, top. */
++ yy_state_t yyssa[YYINITDEPTH];
++ yy_state_t *yyss = yyssa;
++ yy_state_t *yyssp = yyss;
++
++ /* The semantic value stack: array, bottom, top. */
++ YYSTYPE yyvsa[YYINITDEPTH];
++ YYSTYPE *yyvs = yyvsa;
++ YYSTYPE *yyvsp = yyvs;
++
+ int yyn;
++ /* The return value of yyparse. */
+ int yyresult;
+- /* Number of tokens to shift before error messages enabled. */
+- int yyerrstatus;
+- /* Look-ahead token as an internal (translated) token number. */
+- int yytoken = 0;
+-#if YYERROR_VERBOSE
+- /* Buffer for error messages, and its allocated size. */
+- char yymsgbuf[128];
+- char *yymsg = yymsgbuf;
+- YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+-#endif
+-
+- /* Three stacks and their tools:
+- `yyss': related to states,
+- `yyvs': related to semantic values,
+- `yyls': related to locations.
+-
+- Refer to the stacks thru separate pointers, to allow yyoverflow
+- to reallocate them elsewhere. */
+-
+- /* The state stack. */
+- yytype_int16 yyssa[YYINITDEPTH];
+- yytype_int16 *yyss = yyssa;
+- yytype_int16 *yyssp;
+-
+- /* The semantic value stack. */
+- YYSTYPE yyvsa[YYINITDEPTH];
+- YYSTYPE *yyvs = yyvsa;
+- YYSTYPE *yyvsp;
+-
+-
+-
+-#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
+-
+- YYSIZE_T yystacksize = YYINITDEPTH;
+-
++ /* Lookahead symbol kind. */
++ yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
+ /* The variables used to return semantic value and location from the
+ action routines. */
+ YYSTYPE yyval;
+
+
++
++#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
++
+ /* The number of symbols on the RHS of the reduced rule.
+ Keep to zero when no symbol should be popped. */
+ int yylen = 0;
+
+ YYDPRINTF ((stderr, "Starting parse\n"));
+
+- yystate = 0;
+- yyerrstatus = 0;
+- yynerrs = 0;
+- yychar = YYEMPTY; /* Cause a token to be read. */
+-
+- /* Initialize stack pointers.
+- Waste one element of value and location stack
+- so that they stay on the same level as the state stack.
+- The wasted elements are never initialized. */
+-
+- yyssp = yyss;
+- yyvsp = yyvs;
++ yychar = YYEMPTY; /* Cause a token to be read. */
+
+ goto yysetstate;
+
++
+ /*------------------------------------------------------------.
+-| yynewstate -- Push a new state, which is found in yystate. |
++| yynewstate -- push a new state, which is found in yystate. |
+ `------------------------------------------------------------*/
+- yynewstate:
++yynewstate:
+ /* In all cases, when you get here, the value and location stacks
+ have just been pushed. So pushing a state here evens the stacks. */
+ yyssp++;
+
+- yysetstate:
+- *yyssp = yystate;
++
++/*--------------------------------------------------------------------.
++| yysetstate -- set current state (the top of the stack) to yystate. |
++`--------------------------------------------------------------------*/
++yysetstate:
++ YYDPRINTF ((stderr, "Entering state %d\n", yystate));
++ YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
++ YY_IGNORE_USELESS_CAST_BEGIN
++ *yyssp = YY_CAST (yy_state_t, yystate);
++ YY_IGNORE_USELESS_CAST_END
++ YY_STACK_PRINT (yyss, yyssp);
+
+ if (yyss + yystacksize - 1 <= yyssp)
++#if !defined yyoverflow && !defined YYSTACK_RELOCATE
++ YYNOMEM;
++#else
+ {
+ /* Get the current used size of the three stacks, in elements. */
+- YYSIZE_T yysize = yyssp - yyss + 1;
++ YYPTRDIFF_T yysize = yyssp - yyss + 1;
+
+-#ifdef yyoverflow
++# if defined yyoverflow
+ {
+- /* Give user a chance to reallocate the stack. Use copies of
+- these so that the &'s don't force the real ones into
+- memory. */
+- YYSTYPE *yyvs1 = yyvs;
+- yytype_int16 *yyss1 = yyss;
+-
+-
+- /* Each stack pointer address is followed by the size of the
+- data in use in that stack, in bytes. This used to be a
+- conditional around just the two extra args, but that might
+- be undefined if yyoverflow is a macro. */
+- yyoverflow (YY_("memory exhausted"),
+- &yyss1, yysize * sizeof (*yyssp),
+- &yyvs1, yysize * sizeof (*yyvsp),
+-
+- &yystacksize);
+-
+- yyss = yyss1;
+- yyvs = yyvs1;
++ /* Give user a chance to reallocate the stack. Use copies of
++ these so that the &'s don't force the real ones into
++ memory. */
++ yy_state_t *yyss1 = yyss;
++ YYSTYPE *yyvs1 = yyvs;
++
++ /* Each stack pointer address is followed by the size of the
++ data in use in that stack, in bytes. This used to be a
++ conditional around just the two extra args, but that might
++ be undefined if yyoverflow is a macro. */
++ yyoverflow (YY_("memory exhausted"),
++ &yyss1, yysize * YYSIZEOF (*yyssp),
++ &yyvs1, yysize * YYSIZEOF (*yyvsp),
++ &yystacksize);
++ yyss = yyss1;
++ yyvs = yyvs1;
+ }
+-#else /* no yyoverflow */
+-# ifndef YYSTACK_RELOCATE
+- goto yyexhaustedlab;
+-# else
++# else /* defined YYSTACK_RELOCATE */
+ /* Extend the stack our own way. */
+ if (YYMAXDEPTH <= yystacksize)
+- goto yyexhaustedlab;
++ YYNOMEM;
+ yystacksize *= 2;
+ if (YYMAXDEPTH < yystacksize)
+- yystacksize = YYMAXDEPTH;
++ yystacksize = YYMAXDEPTH;
+
+ {
+- yytype_int16 *yyss1 = yyss;
+- union yyalloc *yyptr =
+- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+- if (! yyptr)
+- goto yyexhaustedlab;
+- YYSTACK_RELOCATE (yyss);
+- YYSTACK_RELOCATE (yyvs);
+-
++ yy_state_t *yyss1 = yyss;
++ union yyalloc *yyptr =
++ YY_CAST (union yyalloc *,
++ YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
++ if (! yyptr)
++ YYNOMEM;
++ YYSTACK_RELOCATE (yyss_alloc, yyss);
++ YYSTACK_RELOCATE (yyvs_alloc, yyvs);
+ # undef YYSTACK_RELOCATE
+- if (yyss1 != yyssa)
+- YYSTACK_FREE (yyss1);
++ if (yyss1 != yyssa)
++ YYSTACK_FREE (yyss1);
+ }
+ # endif
+-#endif /* no yyoverflow */
+
+ yyssp = yyss + yysize - 1;
+ yyvsp = yyvs + yysize - 1;
+
+-
+- YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+- (unsigned long int) yystacksize));
++ YY_IGNORE_USELESS_CAST_BEGIN
++ YYDPRINTF ((stderr, "Stack size increased to %ld\n",
++ YY_CAST (long, yystacksize)));
++ YY_IGNORE_USELESS_CAST_END
+
+ if (yyss + yystacksize - 1 <= yyssp)
+- YYABORT;
++ YYABORT;
+ }
++#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
+
+- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
++
++ if (yystate == YYFINAL)
++ YYACCEPT;
+
+ goto yybackup;
+
++
+ /*-----------.
+ | yybackup. |
+ `-----------*/
+ yybackup:
+-
+ /* Do appropriate processing given the current state. Read a
+- look-ahead token if we need one and don't already have one. */
++ lookahead token if we need one and don't already have one. */
+
+- /* First try to decide what to do without reference to look-ahead token. */
++ /* First try to decide what to do without reference to lookahead token. */
+ yyn = yypact[yystate];
+- if (yyn == YYPACT_NINF)
++ if (yypact_value_is_default (yyn))
+ goto yydefault;
+
+- /* Not known => get a look-ahead token if don't already have one. */
++ /* Not known => get a lookahead token if don't already have one. */
+
+- /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
++ /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
+ if (yychar == YYEMPTY)
+ {
+- YYDPRINTF ((stderr, "Reading a token: "));
+- yychar = YYLEX;
++ YYDPRINTF ((stderr, "Reading a token\n"));
++ yychar = yylex ();
+ }
+
+ if (yychar <= YYEOF)
+ {
+- yychar = yytoken = YYEOF;
++ yychar = YYEOF;
++ yytoken = YYSYMBOL_YYEOF;
+ YYDPRINTF ((stderr, "Now at end of input.\n"));
+ }
++ else if (yychar == YYerror)
++ {
++ /* The scanner already issued an error message, process directly
++ to error recovery. But do not keep the error token as
++ lookahead, it is too special and may lead us to an endless
++ loop in error recovery. */
++ yychar = YYUNDEF;
++ yytoken = YYSYMBOL_YYerror;
++ goto yyerrlab1;
++ }
+ else
+ {
+ yytoken = YYTRANSLATE (yychar);
+@@ -2976,30 +2575,26 @@ yybackup:
+ yyn = yytable[yyn];
+ if (yyn <= 0)
+ {
+- if (yyn == 0 || yyn == YYTABLE_NINF)
+- goto yyerrlab;
++ if (yytable_value_is_error (yyn))
++ goto yyerrlab;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+
+- if (yyn == YYFINAL)
+- YYACCEPT;
+-
+ /* Count tokens shifted since error; after three, turn off error
+ status. */
+ if (yyerrstatus)
+ yyerrstatus--;
+
+- /* Shift the look-ahead token. */
++ /* Shift the lookahead token. */
+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
+-
+- /* Discard the shifted token unless it is eof. */
+- if (yychar != YYEOF)
+- yychar = YYEMPTY;
+-
+ yystate = yyn;
++ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+ *++yyvsp = yylval;
++ YY_IGNORE_MAYBE_UNINITIALIZED_END
+
++ /* Discard the shifted token. */
++ yychar = YYEMPTY;
+ goto yynewstate;
+
+
+@@ -3014,14 +2609,14 @@ yydefault:
+
+
+ /*-----------------------------.
+-| yyreduce -- Do a reduction. |
++| yyreduce -- do a reduction. |
+ `-----------------------------*/
+ yyreduce:
+ /* yyn is the number of a rule to reduce with. */
+ yylen = yyr2[yyn];
+
+ /* If YYLEN is nonzero, implement the default value of the action:
+- `$$ = $1'.
++ '$$ = $1'.
+
+ Otherwise, the following line sets YYVAL to garbage.
+ This behavior is undocumented and Bison
+@@ -3034,9 +2629,9 @@ yyreduce:
+ YY_REDUCE_PRINT (yyn);
+ switch (yyn)
+ {
+- case 4:
+-#line 578 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 4: /* $@1: %empty */
++#line 579 "parser.y"
++ {
+ /*
+ * We don't do these in parserEOF() because the parser is reading
+ * ahead and that would be too early.
+@@ -3053,11 +2648,12 @@ yyreduce:
+ previousFile = NULL;
+ }
+ }
++#line 2652 "../parser.c"
+ break;
+
+- case 55:
+-#line 648 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 55: /* nsstatement: typehdrcode */
++#line 649 "parser.y"
++ {
+ if (notSkipping())
+ {
+ classDef *scope = currentScope();
+@@ -3065,203 +2661,224 @@ yyreduce:
+ if (scope == NULL)
+ yyerror("%TypeHeaderCode can only be used in a namespace, class or mapped type");
+
+- appendCodeBlock(&scope->iff->hdrcode, (yyvsp[(1) - (1)].codeb));
++ appendCodeBlock(&scope->iff->hdrcode, (yyvsp[0].codeb));
+ }
+ }
++#line 2668 "../parser.c"
+ break;
+
+- case 56:
+-#line 661 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 56: /* defdocstringfmt: TK_DEFDOCSTRFMT defdocstringfmt_args */
++#line 662 "parser.y"
++ {
+ if (notSkipping())
+- currentModule->defdocstringfmt = convertFormat((yyvsp[(2) - (2)].defdocstringfmt).name);
++ currentModule->defdocstringfmt = convertFormat((yyvsp[0].defdocstringfmt).name);
+ }
++#line 2677 "../parser.c"
+ break;
+
+- case 57:
+-#line 667 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 57: /* defdocstringfmt_args: TK_STRING_VALUE */
++#line 668 "parser.y"
++ {
+ resetLexerState();
+
+- (yyval.defdocstringfmt).name = (yyvsp[(1) - (1)].text);
++ (yyval.defdocstringfmt).name = (yyvsp[0].text);
+ }
++#line 2687 "../parser.c"
+ break;
+
+- case 58:
+-#line 672 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.defdocstringfmt) = (yyvsp[(2) - (3)].defdocstringfmt);
++ case 58: /* defdocstringfmt_args: '(' defdocstringfmt_arg_list ')' */
++#line 673 "parser.y"
++ {
++ (yyval.defdocstringfmt) = (yyvsp[-1].defdocstringfmt);
+ }
++#line 2695 "../parser.c"
+ break;
+
+- case 60:
+-#line 678 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.defdocstringfmt) = (yyvsp[(1) - (3)].defdocstringfmt);
++ case 60: /* defdocstringfmt_arg_list: defdocstringfmt_arg_list ',' defdocstringfmt_arg */
++#line 679 "parser.y"
++ {
++ (yyval.defdocstringfmt) = (yyvsp[-2].defdocstringfmt);
+
+- switch ((yyvsp[(3) - (3)].defdocstringfmt).token)
++ switch ((yyvsp[0].defdocstringfmt).token)
+ {
+- case TK_NAME: (yyval.defdocstringfmt).name = (yyvsp[(3) - (3)].defdocstringfmt).name; break;
++ case TK_NAME: (yyval.defdocstringfmt).name = (yyvsp[0].defdocstringfmt).name; break;
+ }
+ }
++#line 2708 "../parser.c"
+ break;
+
+- case 61:
+-#line 688 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 61: /* defdocstringfmt_arg: TK_NAME '=' TK_STRING_VALUE */
++#line 689 "parser.y"
++ {
+ (yyval.defdocstringfmt).token = TK_NAME;
+
+- (yyval.defdocstringfmt).name = (yyvsp[(3) - (3)].text);
++ (yyval.defdocstringfmt).name = (yyvsp[0].text);
+ }
++#line 2718 "../parser.c"
+ break;
+
+- case 62:
+-#line 695 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 62: /* defdocstringsig: TK_DEFDOCSTRSIG defdocstringsig_args */
++#line 696 "parser.y"
++ {
+ if (notSkipping())
+- currentModule->defdocstringsig = convertSignature((yyvsp[(2) - (2)].defdocstringsig).name);
++ currentModule->defdocstringsig = convertSignature((yyvsp[0].defdocstringsig).name);
+ }
++#line 2727 "../parser.c"
+ break;
+
+- case 63:
+-#line 701 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 63: /* defdocstringsig_args: TK_STRING_VALUE */
++#line 702 "parser.y"
++ {
+ resetLexerState();
+
+- (yyval.defdocstringsig).name = (yyvsp[(1) - (1)].text);
++ (yyval.defdocstringsig).name = (yyvsp[0].text);
+ }
++#line 2737 "../parser.c"
+ break;
+
+- case 64:
+-#line 706 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.defdocstringsig) = (yyvsp[(2) - (3)].defdocstringsig);
++ case 64: /* defdocstringsig_args: '(' defdocstringsig_arg_list ')' */
++#line 707 "parser.y"
++ {
++ (yyval.defdocstringsig) = (yyvsp[-1].defdocstringsig);
+ }
++#line 2745 "../parser.c"
+ break;
+
+- case 66:
+-#line 712 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.defdocstringsig) = (yyvsp[(1) - (3)].defdocstringsig);
++ case 66: /* defdocstringsig_arg_list: defdocstringsig_arg_list ',' defdocstringsig_arg */
++#line 713 "parser.y"
++ {
++ (yyval.defdocstringsig) = (yyvsp[-2].defdocstringsig);
+
+- switch ((yyvsp[(3) - (3)].defdocstringsig).token)
++ switch ((yyvsp[0].defdocstringsig).token)
+ {
+- case TK_NAME: (yyval.defdocstringsig).name = (yyvsp[(3) - (3)].defdocstringsig).name; break;
++ case TK_NAME: (yyval.defdocstringsig).name = (yyvsp[0].defdocstringsig).name; break;
+ }
+ }
++#line 2758 "../parser.c"
+ break;
+
+- case 67:
+-#line 722 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 67: /* defdocstringsig_arg: TK_NAME '=' TK_STRING_VALUE */
++#line 723 "parser.y"
++ {
+ (yyval.defdocstringsig).token = TK_NAME;
+
+- (yyval.defdocstringsig).name = (yyvsp[(3) - (3)].text);
++ (yyval.defdocstringsig).name = (yyvsp[0].text);
+ }
++#line 2768 "../parser.c"
+ break;
+
+- case 68:
+-#line 729 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 68: /* defencoding: TK_DEFENCODING defencoding_args */
++#line 730 "parser.y"
++ {
+ if (notSkipping())
+ {
+- if ((currentModule->encoding = convertEncoding((yyvsp[(2) - (2)].defencoding).name)) == no_type)
++ if ((currentModule->encoding = convertEncoding((yyvsp[0].defencoding).name)) == no_type)
+ yyerror("The %DefaultEncoding name must be one of \"ASCII\", \"Latin-1\", \"UTF-8\" or \"None\"");
+ }
+ }
++#line 2780 "../parser.c"
+ break;
+
+- case 69:
+-#line 738 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 69: /* defencoding_args: TK_STRING_VALUE */
++#line 739 "parser.y"
++ {
+ resetLexerState();
+
+- (yyval.defencoding).name = (yyvsp[(1) - (1)].text);
++ (yyval.defencoding).name = (yyvsp[0].text);
+ }
++#line 2790 "../parser.c"
+ break;
+
+- case 70:
+-#line 743 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.defencoding) = (yyvsp[(2) - (3)].defencoding);
++ case 70: /* defencoding_args: '(' defencoding_arg_list ')' */
++#line 744 "parser.y"
++ {
++ (yyval.defencoding) = (yyvsp[-1].defencoding);
+ }
++#line 2798 "../parser.c"
+ break;
+
+- case 72:
+-#line 749 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.defencoding) = (yyvsp[(1) - (3)].defencoding);
++ case 72: /* defencoding_arg_list: defencoding_arg_list ',' defencoding_arg */
++#line 750 "parser.y"
++ {
++ (yyval.defencoding) = (yyvsp[-2].defencoding);
+
+- switch ((yyvsp[(3) - (3)].defencoding).token)
++ switch ((yyvsp[0].defencoding).token)
+ {
+- case TK_NAME: (yyval.defencoding).name = (yyvsp[(3) - (3)].defencoding).name; break;
++ case TK_NAME: (yyval.defencoding).name = (yyvsp[0].defencoding).name; break;
+ }
+ }
++#line 2811 "../parser.c"
+ break;
+
+- case 73:
+-#line 759 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 73: /* defencoding_arg: TK_NAME '=' TK_STRING_VALUE */
++#line 760 "parser.y"
++ {
+ (yyval.defencoding).token = TK_NAME;
+
+- (yyval.defencoding).name = (yyvsp[(3) - (3)].text);
++ (yyval.defencoding).name = (yyvsp[0].text);
+ }
++#line 2821 "../parser.c"
+ break;
+
+- case 74:
+-#line 766 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 74: /* plugin: TK_PLUGIN plugin_args */
++#line 767 "parser.y"
++ {
+ /*
+ * Note that %Plugin is internal in SIP v4. The current thinking
+ * is that it won't be needed for SIP v5.
+ */
+
+ if (notSkipping())
+- appendString(&currentSpec->plugins, (yyvsp[(2) - (2)].plugin).name);
++ appendString(&currentSpec->plugins, (yyvsp[0].plugin).name);
+ }
++#line 2835 "../parser.c"
+ break;
+
+- case 75:
+-#line 777 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 75: /* plugin_args: TK_NAME_VALUE */
++#line 778 "parser.y"
++ {
+ resetLexerState();
+
+- (yyval.plugin).name = (yyvsp[(1) - (1)].text);
++ (yyval.plugin).name = (yyvsp[0].text);
+ }
++#line 2845 "../parser.c"
+ break;
+
+- case 76:
+-#line 782 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.plugin) = (yyvsp[(2) - (3)].plugin);
++ case 76: /* plugin_args: '(' plugin_arg_list ')' */
++#line 783 "parser.y"
++ {
++ (yyval.plugin) = (yyvsp[-1].plugin);
+ }
++#line 2853 "../parser.c"
+ break;
+
+- case 78:
+-#line 788 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.plugin) = (yyvsp[(1) - (3)].plugin);
++ case 78: /* plugin_arg_list: plugin_arg_list ',' plugin_arg */
++#line 789 "parser.y"
++ {
++ (yyval.plugin) = (yyvsp[-2].plugin);
+
+- switch ((yyvsp[(3) - (3)].plugin).token)
++ switch ((yyvsp[0].plugin).token)
+ {
+- case TK_NAME: (yyval.plugin).name = (yyvsp[(3) - (3)].plugin).name; break;
++ case TK_NAME: (yyval.plugin).name = (yyvsp[0].plugin).name; break;
+ }
+ }
++#line 2866 "../parser.c"
+ break;
+
+- case 79:
+-#line 798 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 79: /* plugin_arg: TK_NAME '=' TK_NAME_VALUE */
++#line 799 "parser.y"
++ {
+ (yyval.plugin).token = TK_NAME;
+
+- (yyval.plugin).name = (yyvsp[(3) - (3)].text);
++ (yyval.plugin).name = (yyvsp[0].text);
+ }
++#line 2876 "../parser.c"
+ break;
+
+- case 80:
+-#line 805 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- if ((yyvsp[(2) - (3)].veh).name == NULL)
++ case 80: /* virterrorhandler: TK_VIRTERRORHANDLER veh_args codeblock */
++#line 806 "parser.y"
++ {
++ if ((yyvsp[-1].veh).name == NULL)
+ yyerror("%VirtualErrorHandler must have a 'name' argument");
+
+ if (notSkipping())
+@@ -3270,7 +2887,7 @@ yyreduce:
+
+ /* Check there isn't already a handler with the same name. */
+ for (tailp = &currentSpec->errorhandlers; (veh = *tailp) != NULL; tailp = &veh->next)
+- if (strcmp(veh->name, (yyvsp[(2) - (3)].veh).name) == 0)
++ if (strcmp(veh->name, (yyvsp[-1].veh).name) == 0)
+ break;
+
+ if (veh != NULL)
+@@ -3278,8 +2895,8 @@ yyreduce:
+
+ veh = sipMalloc(sizeof (virtErrorHandler));
+
+- veh->name = (yyvsp[(2) - (3)].veh).name;
+- appendCodeBlock(&veh->code, (yyvsp[(3) - (3)].codeb));
++ veh->name = (yyvsp[-1].veh).name;
++ appendCodeBlock(&veh->code, (yyvsp[0].codeb));
+ veh->mod = currentModule;
+ veh->index = -1;
+ veh->next = NULL;
+@@ -3287,62 +2904,67 @@ yyreduce:
+ *tailp = veh;
+ }
+ }
++#line 2908 "../parser.c"
+ break;
+
+- case 81:
+-#line 834 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 81: /* veh_args: TK_NAME_VALUE */
++#line 835 "parser.y"
++ {
+ resetLexerState();
+
+- (yyval.veh).name = (yyvsp[(1) - (1)].text);
++ (yyval.veh).name = (yyvsp[0].text);
+ }
++#line 2918 "../parser.c"
+ break;
+
+- case 82:
+-#line 839 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.veh) = (yyvsp[(2) - (3)].veh);
++ case 82: /* veh_args: '(' veh_arg_list ')' */
++#line 840 "parser.y"
++ {
++ (yyval.veh) = (yyvsp[-1].veh);
+ }
++#line 2926 "../parser.c"
+ break;
+
+- case 84:
+-#line 845 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.veh) = (yyvsp[(1) - (3)].veh);
++ case 84: /* veh_arg_list: veh_arg_list ',' veh_arg */
++#line 846 "parser.y"
++ {
++ (yyval.veh) = (yyvsp[-2].veh);
+
+- switch ((yyvsp[(3) - (3)].veh).token)
++ switch ((yyvsp[0].veh).token)
+ {
+- case TK_NAME: (yyval.veh).name = (yyvsp[(3) - (3)].veh).name; break;
++ case TK_NAME: (yyval.veh).name = (yyvsp[0].veh).name; break;
+ }
+ }
++#line 2939 "../parser.c"
+ break;
+
+- case 85:
+-#line 855 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 85: /* veh_arg: TK_NAME '=' TK_NAME_VALUE */
++#line 856 "parser.y"
++ {
+ (yyval.veh).token = TK_NAME;
+
+- (yyval.veh).name = (yyvsp[(3) - (3)].text);
++ (yyval.veh).name = (yyvsp[0].text);
+ }
++#line 2949 "../parser.c"
+ break;
+
+- case 86:
+-#line 862 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 86: /* api: TK_API api_args */
++#line 863 "parser.y"
++ {
+ if (notSkipping())
+ {
+ apiVersionRangeDef *avd;
+
+- if (findAPI(currentSpec, (yyvsp[(2) - (2)].api).name) != NULL)
++ if (findAPI(currentSpec, (yyvsp[0].api).name) != NULL)
+ yyerror("The API name in the %API directive has already been defined");
+
+- if ((yyvsp[(2) - (2)].api).version < 1)
++ if ((yyvsp[0].api).version < 1)
+ yyerror("The version number in the %API directive must be greater than or equal to 1");
+
+ avd = sipMalloc(sizeof (apiVersionRangeDef));
+
+- avd->api_name = cacheName(currentSpec, (yyvsp[(2) - (2)].api).name);
+- avd->from = (yyvsp[(2) - (2)].api).version;
++ avd->api_name = cacheName(currentSpec, (yyvsp[0].api).name);
++ avd->from = (yyvsp[0].api).version;
+ avd->to = -1;
+
+ avd->next = currentModule->api_versions;
+@@ -3352,63 +2974,69 @@ yyreduce:
+ setIsUsedName(avd->api_name);
+ }
+ }
++#line 2978 "../parser.c"
+ break;
+
+- case 87:
+-#line 888 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 87: /* api_args: TK_NAME_VALUE TK_NUMBER_VALUE */
++#line 889 "parser.y"
++ {
+ resetLexerState();
+
+ deprecated("%API name and version number should be specified using the 'name' and 'version' arguments");
+
+- (yyval.api).name = (yyvsp[(1) - (2)].text);
+- (yyval.api).version = (yyvsp[(2) - (2)].number);
++ (yyval.api).name = (yyvsp[-1].text);
++ (yyval.api).version = (yyvsp[0].number);
+ }
++#line 2991 "../parser.c"
+ break;
+
+- case 88:
+-#line 896 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.api) = (yyvsp[(2) - (3)].api);
++ case 88: /* api_args: '(' api_arg_list ')' */
++#line 897 "parser.y"
++ {
++ (yyval.api) = (yyvsp[-1].api);
+ }
++#line 2999 "../parser.c"
+ break;
+
+- case 90:
+-#line 902 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.api) = (yyvsp[(1) - (3)].api);
++ case 90: /* api_arg_list: api_arg_list ',' api_arg */
++#line 903 "parser.y"
++ {
++ (yyval.api) = (yyvsp[-2].api);
+
+- switch ((yyvsp[(3) - (3)].api).token)
++ switch ((yyvsp[0].api).token)
+ {
+- case TK_NAME: (yyval.api).name = (yyvsp[(3) - (3)].api).name; break;
+- case TK_VERSION: (yyval.api).version = (yyvsp[(3) - (3)].api).version; break;
++ case TK_NAME: (yyval.api).name = (yyvsp[0].api).name; break;
++ case TK_VERSION: (yyval.api).version = (yyvsp[0].api).version; break;
+ }
+ }
++#line 3013 "../parser.c"
+ break;
+
+- case 91:
+-#line 913 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 91: /* api_arg: TK_NAME '=' name_or_string */
++#line 914 "parser.y"
++ {
+ (yyval.api).token = TK_NAME;
+
+- (yyval.api).name = (yyvsp[(3) - (3)].text);
++ (yyval.api).name = (yyvsp[0].text);
+ (yyval.api).version = 0;
+ }
++#line 3024 "../parser.c"
+ break;
+
+- case 92:
+-#line 919 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 92: /* api_arg: TK_VERSION '=' TK_NUMBER_VALUE */
++#line 920 "parser.y"
++ {
+ (yyval.api).token = TK_VERSION;
+
+ (yyval.api).name = NULL;
+- (yyval.api).version = (yyvsp[(3) - (3)].number);
++ (yyval.api).version = (yyvsp[0].number);
+ }
++#line 3035 "../parser.c"
+ break;
+
+- case 93:
+-#line 927 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 93: /* exception: TK_EXCEPTION scopedname baseexception optflags exception_body */
++#line 928 "parser.y"
++ {
+ if (notSkipping())
+ {
+ static const char *annos[] = {
+@@ -3420,20 +3048,20 @@ yyreduce:
+ exceptionDef *xd;
+ const char *pyname;
+
+- checkAnnos(&(yyvsp[(4) - (5)].optflags), annos);
++ checkAnnos(&(yyvsp[-1].optflags), annos);
+
+ if (currentSpec->genc)
+ yyerror("%Exception not allowed in a C module");
+
+- if ((yyvsp[(5) - (5)].exception).raise_code == NULL)
++ if ((yyvsp[0].exception).raise_code == NULL)
+ yyerror("%Exception must have a %RaiseCode sub-directive");
+
+- pyname = getPythonName(currentModule, &(yyvsp[(4) - (5)].optflags), scopedNameTail((yyvsp[(2) - (5)].scpvalp)));
++ pyname = getPythonName(currentModule, &(yyvsp[-1].optflags), scopedNameTail((yyvsp[-3].scpvalp)));
+
+ checkAttributes(currentSpec, currentModule, NULL, NULL,
+ pyname, FALSE);
+
+- xd = findException(currentSpec, (yyvsp[(2) - (5)].scpvalp), TRUE);
++ xd = findException(currentSpec, (yyvsp[-3].scpvalp), TRUE);
+
+ if (xd->cd != NULL)
+ yyerror("%Exception name has already been seen as a class name - it must be defined before being used");
+@@ -3443,29 +3071,31 @@ yyreduce:
+
+ /* Complete the definition. */
+ xd->iff->module = currentModule;
+- appendCodeBlock(&xd->iff->hdrcode, (yyvsp[(5) - (5)].exception).type_header_code);
++ appendCodeBlock(&xd->iff->hdrcode, (yyvsp[0].exception).type_header_code);
+ xd->pyname = pyname;
+- xd->bibase = (yyvsp[(3) - (5)].exceptionbase).bibase;
+- xd->base = (yyvsp[(3) - (5)].exceptionbase).base;
+- appendCodeBlock(&xd->raisecode, (yyvsp[(5) - (5)].exception).raise_code);
++ xd->bibase = (yyvsp[-2].exceptionbase).bibase;
++ xd->base = (yyvsp[-2].exceptionbase).base;
++ appendCodeBlock(&xd->raisecode, (yyvsp[0].exception).raise_code);
+
+- if (getOptFlag(&(yyvsp[(4) - (5)].optflags), "Default", bool_flag) != NULL)
++ if (getOptFlag(&(yyvsp[-1].optflags), "Default", bool_flag) != NULL)
+ currentModule->defexception = xd;
+ }
+ }
++#line 3085 "../parser.c"
+ break;
+
+- case 94:
+-#line 974 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 94: /* baseexception: %empty */
++#line 975 "parser.y"
++ {
+ (yyval.exceptionbase).bibase = NULL;
+ (yyval.exceptionbase).base = NULL;
+ }
++#line 3094 "../parser.c"
+ break;
+
+- case 95:
+-#line 978 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 95: /* baseexception: '(' scopedname ')' */
++#line 979 "parser.y"
++ {
+ exceptionDef *xd;
+
+ (yyval.exceptionbase).bibase = NULL;
+@@ -3473,13 +3103,13 @@ yyreduce:
+
+ /* See if it is a defined exception. */
+ for (xd = currentSpec->exceptions; xd != NULL; xd = xd->next)
+- if (compareScopedNames(xd->iff->fqcname, (yyvsp[(2) - (3)].scpvalp)) == 0)
++ if (compareScopedNames(xd->iff->fqcname, (yyvsp[-1].scpvalp)) == 0)
+ {
+ (yyval.exceptionbase).base = xd;
+ break;
+ }
+
+- if (xd == NULL && (yyvsp[(2) - (3)].scpvalp)->next == NULL && strncmp((yyvsp[(2) - (3)].scpvalp)->name, "SIP_", 4) == 0)
++ if (xd == NULL && (yyvsp[-1].scpvalp)->next == NULL && strncmp((yyvsp[-1].scpvalp)->name, "SIP_", 4) == 0)
+ {
+ /* See if it is a builtin exception. */
+
+@@ -3560,7 +3190,7 @@ yyreduce:
+ char **cp;
+
+ for (cp = builtins; *cp != NULL; ++cp)
+- if (strcmp((yyvsp[(2) - (3)].scpvalp)->name + 4, *cp) == 0)
++ if (strcmp((yyvsp[-1].scpvalp)->name + 4, *cp) == 0)
+ {
+ (yyval.exceptionbase).bibase = *cp;
+ break;
+@@ -3570,49 +3200,54 @@ yyreduce:
+ if ((yyval.exceptionbase).bibase == NULL && (yyval.exceptionbase).base == NULL)
+ yyerror("Unknown exception base type");
+ }
++#line 3204 "../parser.c"
+ break;
+
+- case 96:
+-#line 1085 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.exception) = (yyvsp[(2) - (4)].exception);
++ case 96: /* exception_body: '{' exception_body_directives '}' ';' */
++#line 1086 "parser.y"
++ {
++ (yyval.exception) = (yyvsp[-2].exception);
+ }
++#line 3212 "../parser.c"
+ break;
+
+- case 98:
+-#line 1091 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.exception) = (yyvsp[(1) - (2)].exception);
++ case 98: /* exception_body_directives: exception_body_directives exception_body_directive */
++#line 1092 "parser.y"
++ {
++ (yyval.exception) = (yyvsp[-1].exception);
+
+- switch ((yyvsp[(2) - (2)].exception).token)
++ switch ((yyvsp[0].exception).token)
+ {
+- case TK_RAISECODE: (yyval.exception).raise_code = (yyvsp[(2) - (2)].exception).raise_code; break;
+- case TK_TYPEHEADERCODE: (yyval.exception).type_header_code = (yyvsp[(2) - (2)].exception).type_header_code; break;
++ case TK_RAISECODE: (yyval.exception).raise_code = (yyvsp[0].exception).raise_code; break;
++ case TK_TYPEHEADERCODE: (yyval.exception).type_header_code = (yyvsp[0].exception).type_header_code; break;
+ }
+ }
++#line 3226 "../parser.c"
+ break;
+
+- case 99:
+-#line 1102 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 99: /* exception_body_directive: ifstart */
++#line 1103 "parser.y"
++ {
+ (yyval.exception).token = TK_IF;
+ }
++#line 3234 "../parser.c"
+ break;
+
+- case 100:
+-#line 1105 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 100: /* exception_body_directive: ifend */
++#line 1106 "parser.y"
++ {
+ (yyval.exception).token = TK_END;
+ }
++#line 3242 "../parser.c"
+ break;
+
+- case 101:
+-#line 1108 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 101: /* exception_body_directive: raisecode */
++#line 1109 "parser.y"
++ {
+ if (notSkipping())
+ {
+ (yyval.exception).token = TK_RAISECODE;
+- (yyval.exception).raise_code = (yyvsp[(1) - (1)].codeb);
++ (yyval.exception).raise_code = (yyvsp[0].codeb);
+ }
+ else
+ {
+@@ -3622,15 +3257,16 @@ yyreduce:
+
+ (yyval.exception).type_header_code = NULL;
+ }
++#line 3261 "../parser.c"
+ break;
+
+- case 102:
+-#line 1122 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 102: /* exception_body_directive: typehdrcode */
++#line 1123 "parser.y"
++ {
+ if (notSkipping())
+ {
+ (yyval.exception).token = TK_TYPEHEADERCODE;
+- (yyval.exception).type_header_code = (yyvsp[(1) - (1)].codeb);
++ (yyval.exception).type_header_code = (yyvsp[0].codeb);
+ }
+ else
+ {
+@@ -3640,18 +3276,20 @@ yyreduce:
+
+ (yyval.exception).raise_code = NULL;
+ }
++#line 3280 "../parser.c"
+ break;
+
+- case 103:
+-#line 1138 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 103: /* raisecode: TK_RAISECODE codeblock */
++#line 1139 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 3288 "../parser.c"
+ break;
+
+- case 104:
+-#line 1143 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 104: /* $@2: %empty */
++#line 1144 "parser.y"
++ {
+ if (notSkipping())
+ {
+ static const char *annos[] = {
+@@ -3667,16 +3305,17 @@ yyreduce:
+ NULL
+ };
+
+- checkAnnos(&(yyvsp[(3) - (3)].optflags), annos);
++ checkAnnos(&(yyvsp[0].optflags), annos);
+
+- currentMappedType = newMappedType(currentSpec, &(yyvsp[(2) - (3)].memArg), &(yyvsp[(3) - (3)].optflags));
++ currentMappedType = newMappedType(currentSpec, &(yyvsp[-1].memArg), &(yyvsp[0].optflags));
+ }
+ }
++#line 3314 "../parser.c"
+ break;
+
+- case 106:
+-#line 1166 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 106: /* $@3: %empty */
++#line 1167 "parser.y"
++ {
+ if (notSkipping())
+ {
+ static const char *annos[] = {
+@@ -3694,7 +3333,7 @@ yyreduce:
+ mappedTypeTmplDef *mtt;
+ ifaceFileDef *iff;
+
+- checkAnnos(&(yyvsp[(4) - (4)].optflags), annos);
++ checkAnnos(&(yyvsp[0].optflags), annos);
+
+ if (currentSpec->genc)
+ yyerror("%MappedType templates not allowed in a C module");
+@@ -3703,32 +3342,32 @@ yyreduce:
+ * Check the template arguments are basic types or simple
+ * names.
+ */
+- for (a = 0; a < (yyvsp[(1) - (4)].signature).nrArgs; ++a)
++ for (a = 0; a < (yyvsp[-3].signature).nrArgs; ++a)
+ {
+- argDef *ad = &(yyvsp[(1) - (4)].signature).args[a];
++ argDef *ad = &(yyvsp[-3].signature).args[a];
+
+ if (ad->atype == defined_type && ad->u.snd->next != NULL)
+ yyerror("%MappedType template arguments must be simple names");
+ }
+
+- if ((yyvsp[(3) - (4)].memArg).atype != template_type)
++ if ((yyvsp[-1].memArg).atype != template_type)
+ yyerror("%MappedType template must map a template type");
+
+- (yyvsp[(3) - (4)].memArg).u.td->fqname = fullyQualifiedName((yyvsp[(3) - (4)].memArg).u.td->fqname);
++ (yyvsp[-1].memArg).u.td->fqname = fullyQualifiedName((yyvsp[-1].memArg).u.td->fqname);
+
+ /* Check a template hasn't already been provided. */
+ for (mtt = currentSpec->mappedtypetemplates; mtt != NULL; mtt = mtt->next)
+- if (compareScopedNames(mtt->mt->type.u.td->fqname, (yyvsp[(3) - (4)].memArg).u.td->fqname ) == 0 && sameTemplateSignature(&mtt->mt->type.u.td->types, &(yyvsp[(3) - (4)].memArg).u.td->types, TRUE))
++ if (compareScopedNames(mtt->mt->type.u.td->fqname, (yyvsp[-1].memArg).u.td->fqname ) == 0 && sameTemplateSignature(&mtt->mt->type.u.td->types, &(yyvsp[-1].memArg).u.td->types, TRUE))
+ yyerror("%MappedType template for this type has already been defined");
+
+- (yyvsp[(3) - (4)].memArg).nrderefs = 0;
+- (yyvsp[(3) - (4)].memArg).argflags = 0;
++ (yyvsp[-1].memArg).nrderefs = 0;
++ (yyvsp[-1].memArg).argflags = 0;
+
+ mtt = sipMalloc(sizeof (mappedTypeTmplDef));
+
+- mtt->sig = (yyvsp[(1) - (4)].signature);
+- mtt->mt = allocMappedType(currentSpec, &(yyvsp[(3) - (4)].memArg));
+- mappedTypeAnnos(mtt->mt, &(yyvsp[(4) - (4)].optflags));
++ mtt->sig = (yyvsp[-3].signature);
++ mtt->mt = allocMappedType(currentSpec, &(yyvsp[-1].memArg));
++ mappedTypeAnnos(mtt->mt, &(yyvsp[0].optflags));
+ mtt->next = currentSpec->mappedtypetemplates;
+
+ currentSpec->mappedtypetemplates = mtt;
+@@ -3741,11 +3380,12 @@ yyreduce:
+ mtt->mt->iff = iff;
+ }
+ }
++#line 3384 "../parser.c"
+ break;
+
+- case 108:
+-#line 1233 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 108: /* mtdefinition: '{' mtbody '}' ';' */
++#line 1234 "parser.y"
++ {
+ if (notSkipping())
+ {
+ if (currentMappedType->convfromcode == NULL)
+@@ -3757,83 +3397,90 @@ yyreduce:
+ currentMappedType = NULL;
+ }
+ }
++#line 3401 "../parser.c"
+ break;
+
+- case 113:
+-#line 1253 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 113: /* mtline: typehdrcode */
++#line 1254 "parser.y"
++ {
+ if (notSkipping())
+- appendCodeBlock(&currentMappedType->iff->hdrcode, (yyvsp[(1) - (1)].codeb));
++ appendCodeBlock(&currentMappedType->iff->hdrcode, (yyvsp[0].codeb));
+ }
++#line 3410 "../parser.c"
+ break;
+
+- case 114:
+-#line 1257 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 114: /* mtline: typecode */
++#line 1258 "parser.y"
++ {
+ if (notSkipping())
+- appendCodeBlock(&currentMappedType->typecode, (yyvsp[(1) - (1)].codeb));
++ appendCodeBlock(&currentMappedType->typecode, (yyvsp[0].codeb));
+ }
++#line 3419 "../parser.c"
+ break;
+
+- case 115:
+-#line 1261 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 115: /* mtline: TK_FROMTYPE codeblock */
++#line 1262 "parser.y"
++ {
+ if (notSkipping())
+ {
+ if (currentMappedType->convfromcode != NULL)
+ yyerror("%MappedType has more than one %ConvertFromTypeCode directive");
+
+- appendCodeBlock(&currentMappedType->convfromcode, (yyvsp[(2) - (2)].codeb));
++ appendCodeBlock(&currentMappedType->convfromcode, (yyvsp[0].codeb));
+ }
+ }
++#line 3433 "../parser.c"
+ break;
+
+- case 116:
+-#line 1270 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 116: /* mtline: TK_TOTYPE codeblock */
++#line 1271 "parser.y"
++ {
+ if (notSkipping())
+ {
+ if (currentMappedType->convtocode != NULL)
+ yyerror("%MappedType has more than one %ConvertToTypeCode directive");
+
+- appendCodeBlock(&currentMappedType->convtocode, (yyvsp[(2) - (2)].codeb));
++ appendCodeBlock(&currentMappedType->convtocode, (yyvsp[0].codeb));
+ }
+ }
++#line 3447 "../parser.c"
+ break;
+
+- case 117:
+-#line 1279 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 117: /* mtline: instancecode */
++#line 1280 "parser.y"
++ {
+ if (notSkipping())
+ {
+ if (currentMappedType->instancecode != NULL)
+ yyerror("%MappedType has more than one %InstanceCode directive");
+
+- appendCodeBlock(&currentMappedType->instancecode, (yyvsp[(1) - (1)].codeb));
++ appendCodeBlock(&currentMappedType->instancecode, (yyvsp[0].codeb));
+ }
+ }
++#line 3461 "../parser.c"
+ break;
+
+- case 120:
+-#line 1292 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 120: /* mtfunction: TK_STATIC cpptype TK_NAME_VALUE '(' arglist ')' optconst optexceptions optflags optsig ';' optdocstring premethodcode methodcode */
++#line 1293 "parser.y"
++ {
+ if (notSkipping())
+ {
+- applyTypeFlags(currentModule, &(yyvsp[(2) - (14)].memArg), &(yyvsp[(9) - (14)].optflags));
++ applyTypeFlags(currentModule, &(yyvsp[-12].memArg), &(yyvsp[-5].optflags));
+
+- (yyvsp[(5) - (14)].signature).result = (yyvsp[(2) - (14)].memArg);
++ (yyvsp[-9].signature).result = (yyvsp[-12].memArg);
+
+ newFunction(currentSpec, currentModule, NULL, NULL,
+- currentMappedType, 0, TRUE, FALSE, FALSE, FALSE, (yyvsp[(3) - (14)].text),
+- &(yyvsp[(5) - (14)].signature), (yyvsp[(7) - (14)].number), FALSE, &(yyvsp[(9) - (14)].optflags), (yyvsp[(14) - (14)].codeb), NULL, NULL, (yyvsp[(8) - (14)].throwlist), (yyvsp[(10) - (14)].optsignature), (yyvsp[(12) - (14)].docstr),
+- FALSE, (yyvsp[(13) - (14)].codeb));
++ currentMappedType, 0, TRUE, FALSE, FALSE, FALSE, (yyvsp[-11].text),
++ &(yyvsp[-9].signature), (yyvsp[-7].number), FALSE, &(yyvsp[-5].optflags), (yyvsp[0].codeb), NULL, NULL, (yyvsp[-6].throwlist), (yyvsp[-4].optsignature), (yyvsp[-2].docstr),
++ FALSE, (yyvsp[-1].codeb));
+ }
+ }
++#line 3479 "../parser.c"
+ break;
+
+- case 121:
+-#line 1307 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 121: /* $@4: %empty */
++#line 1308 "parser.y"
++ {
+ if (currentSpec -> genc)
+ yyerror("namespace definition not allowed in a C module");
+
+@@ -3848,18 +3495,19 @@ yyreduce:
+ scope = NULL;
+
+ ns = newClass(currentSpec, namespace_iface, NULL,
+- text2scopedName(scope, (yyvsp[(2) - (2)].text)), NULL, NULL, NULL, NULL);
++ text2scopedName(scope, (yyvsp[0].text)), NULL, NULL, NULL, NULL);
+
+ pushScope(ns);
+
+ sectionFlags = 0;
+ }
+ }
++#line 3506 "../parser.c"
+ break;
+
+- case 122:
+-#line 1328 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 122: /* namespace: TK_NAMESPACE TK_NAME_VALUE $@4 optnsbody ';' */
++#line 1329 "parser.y"
++ {
+ if (notSkipping())
+ {
+ if (inMainModule())
+@@ -3873,11 +3521,12 @@ yyreduce:
+ popScope();
+ }
+ }
++#line 3525 "../parser.c"
+ break;
+
+- case 127:
+-#line 1352 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 127: /* $@5: %empty */
++#line 1353 "parser.y"
++ {
+ if (notSkipping())
+ {
+ qualDef *qd;
+@@ -3887,11 +3536,12 @@ yyreduce:
+ yyerror("%Platforms has already been defined for this module");
+ }
+ }
++#line 3540 "../parser.c"
+ break;
+
+- case 128:
+-#line 1362 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 128: /* platforms: TK_PLATFORMS $@5 '{' platformlist '}' */
++#line 1363 "parser.y"
++ {
+ if (notSkipping())
+ {
+ qualDef *qd;
+@@ -3908,71 +3558,79 @@ yyreduce:
+ yyerror("No more than one of these %Platforms must be specified with the -t flag");
+ }
+ }
++#line 3562 "../parser.c"
+ break;
+
+- case 131:
+-#line 1385 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- newQualifier(currentModule, -1, -1, notSkipping(), (yyvsp[(1) - (1)].text),
++ case 131: /* platform: TK_NAME_VALUE */
++#line 1386 "parser.y"
++ {
++ newQualifier(currentModule, -1, -1, notSkipping(), (yyvsp[0].text),
+ platform_qualifier);
+ }
++#line 3571 "../parser.c"
+ break;
+
+- case 132:
+-#line 1391 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- newQualifier(currentModule, -1, -1, notSkipping(), (yyvsp[(2) - (2)].feature).name,
++ case 132: /* feature: TK_FEATURE feature_args */
++#line 1392 "parser.y"
++ {
++ newQualifier(currentModule, -1, -1, notSkipping(), (yyvsp[0].feature).name,
+ feature_qualifier);
+ }
++#line 3580 "../parser.c"
+ break;
+
+- case 133:
+-#line 1397 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 133: /* feature_args: TK_NAME_VALUE */
++#line 1398 "parser.y"
++ {
+ resetLexerState();
+
+- (yyval.feature).name = (yyvsp[(1) - (1)].text);
++ (yyval.feature).name = (yyvsp[0].text);
+ }
++#line 3590 "../parser.c"
+ break;
+
+- case 134:
+-#line 1402 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.feature) = (yyvsp[(2) - (3)].feature);
++ case 134: /* feature_args: '(' feature_arg_list ')' */
++#line 1403 "parser.y"
++ {
++ (yyval.feature) = (yyvsp[-1].feature);
+ }
++#line 3598 "../parser.c"
+ break;
+
+- case 136:
+-#line 1408 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.feature) = (yyvsp[(1) - (3)].feature);
++ case 136: /* feature_arg_list: feature_arg_list ',' feature_arg */
++#line 1409 "parser.y"
++ {
++ (yyval.feature) = (yyvsp[-2].feature);
+
+- switch ((yyvsp[(3) - (3)].feature).token)
++ switch ((yyvsp[0].feature).token)
+ {
+- case TK_NAME: (yyval.feature).name = (yyvsp[(3) - (3)].feature).name; break;
++ case TK_NAME: (yyval.feature).name = (yyvsp[0].feature).name; break;
+ }
+ }
++#line 3611 "../parser.c"
+ break;
+
+- case 137:
+-#line 1418 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 137: /* feature_arg: TK_NAME '=' name_or_string */
++#line 1419 "parser.y"
++ {
+ (yyval.feature).token = TK_NAME;
+
+- (yyval.feature).name = (yyvsp[(3) - (3)].text);
++ (yyval.feature).name = (yyvsp[0].text);
+ }
++#line 3621 "../parser.c"
+ break;
+
+- case 138:
+-#line 1425 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 138: /* $@6: %empty */
++#line 1426 "parser.y"
++ {
+ currentTimelineOrder = 0;
+ }
++#line 3629 "../parser.c"
+ break;
+
+- case 139:
+-#line 1428 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 139: /* timeline: TK_TIMELINE $@6 '{' qualifierlist '}' */
++#line 1429 "parser.y"
++ {
+ if (notSkipping())
+ {
+ qualDef *qd;
+@@ -3993,129 +3651,140 @@ yyreduce:
+ currentModule->nrtimelines++;
+ }
+ }
++#line 3655 "../parser.c"
+ break;
+
+- case 142:
+-#line 1455 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 142: /* qualifiername: TK_NAME_VALUE */
++#line 1456 "parser.y"
++ {
+ newQualifier(currentModule, currentModule->nrtimelines,
+- currentTimelineOrder++, TRUE, (yyvsp[(1) - (1)].text), time_qualifier);
++ currentTimelineOrder++, TRUE, (yyvsp[0].text), time_qualifier);
+ }
++#line 3664 "../parser.c"
+ break;
+
+- case 143:
+-#line 1461 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 143: /* $@7: %empty */
++#line 1462 "parser.y"
++ {
+ currentPlatforms = NULL;
+ }
++#line 3672 "../parser.c"
+ break;
+
+- case 144:
+-#line 1463 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 144: /* ifstart: TK_IF '(' $@7 qualifiers ')' */
++#line 1464 "parser.y"
++ {
+ if (stackPtr >= MAX_NESTED_IF)
+ yyerror("Internal error: increase the value of MAX_NESTED_IF");
+
+ /* Nested %Ifs are implicit logical ands. */
+
+ if (stackPtr > 0)
+- (yyvsp[(4) - (5)].boolean) = ((yyvsp[(4) - (5)].boolean) && skipStack[stackPtr - 1]);
++ (yyvsp[-1].boolean) = ((yyvsp[-1].boolean) && skipStack[stackPtr - 1]);
+
+- skipStack[stackPtr] = (yyvsp[(4) - (5)].boolean);
++ skipStack[stackPtr] = (yyvsp[-1].boolean);
+
+ platformStack[stackPtr] = currentPlatforms;
+
+ ++stackPtr;
+ }
++#line 3692 "../parser.c"
+ break;
+
+- case 145:
+-#line 1480 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.boolean) = platOrFeature((yyvsp[(1) - (1)].text), FALSE);
++ case 145: /* oredqualifiers: TK_NAME_VALUE */
++#line 1481 "parser.y"
++ {
++ (yyval.boolean) = platOrFeature((yyvsp[0].text), FALSE);
+ }
++#line 3700 "../parser.c"
+ break;
+
+- case 146:
+-#line 1483 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.boolean) = platOrFeature((yyvsp[(2) - (2)].text), TRUE);
++ case 146: /* oredqualifiers: '!' TK_NAME_VALUE */
++#line 1484 "parser.y"
++ {
++ (yyval.boolean) = platOrFeature((yyvsp[0].text), TRUE);
+ }
++#line 3708 "../parser.c"
+ break;
+
+- case 147:
+-#line 1486 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.boolean) = (platOrFeature((yyvsp[(3) - (3)].text), FALSE) || (yyvsp[(1) - (3)].boolean));
++ case 147: /* oredqualifiers: oredqualifiers TK_LOGICAL_OR TK_NAME_VALUE */
++#line 1487 "parser.y"
++ {
++ (yyval.boolean) = (platOrFeature((yyvsp[0].text), FALSE) || (yyvsp[-2].boolean));
+ }
++#line 3716 "../parser.c"
+ break;
+
+- case 148:
+-#line 1489 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.boolean) = (platOrFeature((yyvsp[(4) - (4)].text), TRUE) || (yyvsp[(1) - (4)].boolean));
++ case 148: /* oredqualifiers: oredqualifiers TK_LOGICAL_OR '!' TK_NAME_VALUE */
++#line 1490 "parser.y"
++ {
++ (yyval.boolean) = (platOrFeature((yyvsp[0].text), TRUE) || (yyvsp[-3].boolean));
+ }
++#line 3724 "../parser.c"
+ break;
+
+- case 150:
+-#line 1495 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.boolean) = timePeriod((yyvsp[(1) - (3)].text), (yyvsp[(3) - (3)].text));
++ case 150: /* qualifiers: optname '-' optname */
++#line 1496 "parser.y"
++ {
++ (yyval.boolean) = timePeriod((yyvsp[-2].text), (yyvsp[0].text));
+ }
++#line 3732 "../parser.c"
+ break;
+
+- case 151:
+-#line 1500 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 151: /* ifend: TK_END */
++#line 1501 "parser.y"
++ {
+ if (stackPtr-- <= 0)
+ yyerror("Too many %End directives");
+
+ currentPlatforms = (stackPtr == 0 ? NULL : platformStack[stackPtr - 1]);
+ }
++#line 3743 "../parser.c"
+ break;
+
+- case 152:
+-#line 1508 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 152: /* license: TK_LICENSE license_args optflags */
++#line 1509 "parser.y"
++ {
+ optFlag *of;
+
+- if ((yyvsp[(3) - (3)].optflags).nrFlags != 0)
++ if ((yyvsp[0].optflags).nrFlags != 0)
+ deprecated("%License annotations are deprecated, use arguments instead");
+
+- if ((yyvsp[(2) - (3)].license).type == NULL)
+- if ((of = getOptFlag(&(yyvsp[(3) - (3)].optflags), "Type", string_flag)) != NULL)
+- (yyvsp[(2) - (3)].license).type = of->fvalue.sval;
+-
+- if ((yyvsp[(2) - (3)].license).licensee == NULL)
+- if ((of = getOptFlag(&(yyvsp[(3) - (3)].optflags), "Licensee", string_flag)) != NULL)
+- (yyvsp[(2) - (3)].license).licensee = of->fvalue.sval;
+-
+- if ((yyvsp[(2) - (3)].license).signature == NULL)
+- if ((of = getOptFlag(&(yyvsp[(3) - (3)].optflags), "Signature", string_flag)) != NULL)
+- (yyvsp[(2) - (3)].license).signature = of->fvalue.sval;
+-
+- if ((yyvsp[(2) - (3)].license).timestamp == NULL)
+- if ((of = getOptFlag(&(yyvsp[(3) - (3)].optflags), "Timestamp", string_flag)) != NULL)
+- (yyvsp[(2) - (3)].license).timestamp = of->fvalue.sval;
++ if ((yyvsp[-1].license).type == NULL)
++ if ((of = getOptFlag(&(yyvsp[0].optflags), "Type", string_flag)) != NULL)
++ (yyvsp[-1].license).type = of->fvalue.sval;
++
++ if ((yyvsp[-1].license).licensee == NULL)
++ if ((of = getOptFlag(&(yyvsp[0].optflags), "Licensee", string_flag)) != NULL)
++ (yyvsp[-1].license).licensee = of->fvalue.sval;
++
++ if ((yyvsp[-1].license).signature == NULL)
++ if ((of = getOptFlag(&(yyvsp[0].optflags), "Signature", string_flag)) != NULL)
++ (yyvsp[-1].license).signature = of->fvalue.sval;
++
++ if ((yyvsp[-1].license).timestamp == NULL)
++ if ((of = getOptFlag(&(yyvsp[0].optflags), "Timestamp", string_flag)) != NULL)
++ (yyvsp[-1].license).timestamp = of->fvalue.sval;
+
+- if ((yyvsp[(2) - (3)].license).type == NULL)
++ if ((yyvsp[-1].license).type == NULL)
+ yyerror("%License must have a 'type' argument");
+
+ if (notSkipping())
+ {
+ currentModule->license = sipMalloc(sizeof (licenseDef));
+
+- currentModule->license->type = (yyvsp[(2) - (3)].license).type;
+- currentModule->license->licensee = (yyvsp[(2) - (3)].license).licensee;
+- currentModule->license->sig = (yyvsp[(2) - (3)].license).signature;
+- currentModule->license->timestamp = (yyvsp[(2) - (3)].license).timestamp;
++ currentModule->license->type = (yyvsp[-1].license).type;
++ currentModule->license->licensee = (yyvsp[-1].license).licensee;
++ currentModule->license->sig = (yyvsp[-1].license).signature;
++ currentModule->license->timestamp = (yyvsp[-1].license).timestamp;
+ }
+ }
++#line 3783 "../parser.c"
+ break;
+
+- case 153:
+-#line 1545 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 153: /* license_args: %empty */
++#line 1546 "parser.y"
++ {
+ resetLexerState();
+
+ (yyval.license).type = NULL;
+@@ -4123,242 +3792,265 @@ yyreduce:
+ (yyval.license).signature = NULL;
+ (yyval.license).timestamp = NULL;
+ }
++#line 3796 "../parser.c"
+ break;
+
+- case 154:
+-#line 1553 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.license).type = (yyvsp[(1) - (1)].text);
++ case 154: /* license_args: TK_STRING_VALUE */
++#line 1554 "parser.y"
++ {
++ (yyval.license).type = (yyvsp[0].text);
+ (yyval.license).licensee = NULL;
+ (yyval.license).signature = NULL;
+ (yyval.license).timestamp = NULL;
+ }
++#line 3807 "../parser.c"
+ break;
+
+- case 155:
+-#line 1559 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.license) = (yyvsp[(2) - (3)].license);
++ case 155: /* license_args: '(' license_arg_list ')' */
++#line 1560 "parser.y"
++ {
++ (yyval.license) = (yyvsp[-1].license);
+ }
++#line 3815 "../parser.c"
+ break;
+
+- case 157:
+-#line 1565 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.license) = (yyvsp[(1) - (3)].license);
++ case 157: /* license_arg_list: license_arg_list ',' license_arg */
++#line 1566 "parser.y"
++ {
++ (yyval.license) = (yyvsp[-2].license);
+
+- switch ((yyvsp[(3) - (3)].license).token)
++ switch ((yyvsp[0].license).token)
+ {
+- case TK_TYPE: (yyval.license).type = (yyvsp[(3) - (3)].license).type; break;
+- case TK_LICENSEE: (yyval.license).licensee = (yyvsp[(3) - (3)].license).licensee; break;
+- case TK_SIGNATURE: (yyval.license).signature = (yyvsp[(3) - (3)].license).signature; break;
+- case TK_TIMESTAMP: (yyval.license).timestamp = (yyvsp[(3) - (3)].license).timestamp; break;
++ case TK_TYPE: (yyval.license).type = (yyvsp[0].license).type; break;
++ case TK_LICENSEE: (yyval.license).licensee = (yyvsp[0].license).licensee; break;
++ case TK_SIGNATURE: (yyval.license).signature = (yyvsp[0].license).signature; break;
++ case TK_TIMESTAMP: (yyval.license).timestamp = (yyvsp[0].license).timestamp; break;
+ }
+ }
++#line 3831 "../parser.c"
+ break;
+
+- case 158:
+-#line 1578 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 158: /* license_arg: TK_TYPE '=' TK_STRING_VALUE */
++#line 1579 "parser.y"
++ {
+ (yyval.license).token = TK_NAME;
+
+- (yyval.license).type = (yyvsp[(3) - (3)].text);
++ (yyval.license).type = (yyvsp[0].text);
+ (yyval.license).licensee = NULL;
+ (yyval.license).signature = NULL;
+ (yyval.license).timestamp = NULL;
+ }
++#line 3844 "../parser.c"
+ break;
+
+- case 159:
+-#line 1586 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 159: /* license_arg: TK_LICENSEE '=' TK_STRING_VALUE */
++#line 1587 "parser.y"
++ {
+ (yyval.license).token = TK_LICENSEE;
+
+ (yyval.license).type = NULL;
+- (yyval.license).licensee = (yyvsp[(3) - (3)].text);
++ (yyval.license).licensee = (yyvsp[0].text);
+ (yyval.license).signature = NULL;
+ (yyval.license).timestamp = NULL;
+ }
++#line 3857 "../parser.c"
+ break;
+
+- case 160:
+-#line 1594 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 160: /* license_arg: TK_SIGNATURE '=' TK_STRING_VALUE */
++#line 1595 "parser.y"
++ {
+ (yyval.license).token = TK_SIGNATURE;
+
+ (yyval.license).type = NULL;
+ (yyval.license).licensee = NULL;
+- (yyval.license).signature = (yyvsp[(3) - (3)].text);
++ (yyval.license).signature = (yyvsp[0].text);
+ (yyval.license).timestamp = NULL;
+ }
++#line 3870 "../parser.c"
+ break;
+
+- case 161:
+-#line 1602 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 161: /* license_arg: TK_TIMESTAMP '=' TK_STRING_VALUE */
++#line 1603 "parser.y"
++ {
+ (yyval.license).token = TK_TIMESTAMP;
+
+ (yyval.license).type = NULL;
+ (yyval.license).licensee = NULL;
+ (yyval.license).signature = NULL;
+- (yyval.license).timestamp = (yyvsp[(3) - (3)].text);
++ (yyval.license).timestamp = (yyvsp[0].text);
+ }
++#line 3883 "../parser.c"
+ break;
+
+- case 162:
+-#line 1612 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 162: /* defmetatype: TK_DEFMETATYPE defmetatype_args */
++#line 1613 "parser.y"
++ {
+ if (notSkipping())
+ {
+ if (currentModule->defmetatype != NULL)
+ yyerror("%DefaultMetatype has already been defined for this module");
+
+- currentModule->defmetatype = cacheName(currentSpec, (yyvsp[(2) - (2)].defmetatype).name);
++ currentModule->defmetatype = cacheName(currentSpec, (yyvsp[0].defmetatype).name);
+ }
+ }
++#line 3897 "../parser.c"
+ break;
+
+- case 163:
+-#line 1623 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 163: /* defmetatype_args: dottedname */
++#line 1624 "parser.y"
++ {
+ resetLexerState();
+
+- (yyval.defmetatype).name = (yyvsp[(1) - (1)].text);
++ (yyval.defmetatype).name = (yyvsp[0].text);
+ }
++#line 3907 "../parser.c"
+ break;
+
+- case 164:
+-#line 1628 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.defmetatype) = (yyvsp[(2) - (3)].defmetatype);
++ case 164: /* defmetatype_args: '(' defmetatype_arg_list ')' */
++#line 1629 "parser.y"
++ {
++ (yyval.defmetatype) = (yyvsp[-1].defmetatype);
+ }
++#line 3915 "../parser.c"
+ break;
+
+- case 166:
+-#line 1634 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.defmetatype) = (yyvsp[(1) - (3)].defmetatype);
++ case 166: /* defmetatype_arg_list: defmetatype_arg_list ',' defmetatype_arg */
++#line 1635 "parser.y"
++ {
++ (yyval.defmetatype) = (yyvsp[-2].defmetatype);
+
+- switch ((yyvsp[(3) - (3)].defmetatype).token)
++ switch ((yyvsp[0].defmetatype).token)
+ {
+- case TK_NAME: (yyval.defmetatype).name = (yyvsp[(3) - (3)].defmetatype).name; break;
++ case TK_NAME: (yyval.defmetatype).name = (yyvsp[0].defmetatype).name; break;
+ }
+ }
++#line 3928 "../parser.c"
+ break;
+
+- case 167:
+-#line 1644 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 167: /* defmetatype_arg: TK_NAME '=' dottedname */
++#line 1645 "parser.y"
++ {
+ (yyval.defmetatype).token = TK_NAME;
+
+- (yyval.defmetatype).name = (yyvsp[(3) - (3)].text);
++ (yyval.defmetatype).name = (yyvsp[0].text);
+ }
++#line 3938 "../parser.c"
+ break;
+
+- case 168:
+-#line 1651 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 168: /* defsupertype: TK_DEFSUPERTYPE defsupertype_args */
++#line 1652 "parser.y"
++ {
+ if (notSkipping())
+ {
+ if (currentModule->defsupertype != NULL)
+ yyerror("%DefaultSupertype has already been defined for this module");
+
+- currentModule->defsupertype = cacheName(currentSpec, (yyvsp[(2) - (2)].defsupertype).name);
++ currentModule->defsupertype = cacheName(currentSpec, (yyvsp[0].defsupertype).name);
+ }
+ }
++#line 3952 "../parser.c"
+ break;
+
+- case 169:
+-#line 1662 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 169: /* defsupertype_args: dottedname */
++#line 1663 "parser.y"
++ {
+ resetLexerState();
+
+- (yyval.defsupertype).name = (yyvsp[(1) - (1)].text);
++ (yyval.defsupertype).name = (yyvsp[0].text);
+ }
++#line 3962 "../parser.c"
+ break;
+
+- case 170:
+-#line 1667 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.defsupertype) = (yyvsp[(2) - (3)].defsupertype);
++ case 170: /* defsupertype_args: '(' defsupertype_arg_list ')' */
++#line 1668 "parser.y"
++ {
++ (yyval.defsupertype) = (yyvsp[-1].defsupertype);
+ }
++#line 3970 "../parser.c"
+ break;
+
+- case 172:
+-#line 1673 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.defsupertype) = (yyvsp[(1) - (3)].defsupertype);
++ case 172: /* defsupertype_arg_list: defsupertype_arg_list ',' defsupertype_arg */
++#line 1674 "parser.y"
++ {
++ (yyval.defsupertype) = (yyvsp[-2].defsupertype);
+
+- switch ((yyvsp[(3) - (3)].defsupertype).token)
++ switch ((yyvsp[0].defsupertype).token)
+ {
+- case TK_NAME: (yyval.defsupertype).name = (yyvsp[(3) - (3)].defsupertype).name; break;
++ case TK_NAME: (yyval.defsupertype).name = (yyvsp[0].defsupertype).name; break;
+ }
+ }
++#line 3983 "../parser.c"
+ break;
+
+- case 173:
+-#line 1683 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 173: /* defsupertype_arg: TK_NAME '=' dottedname */
++#line 1684 "parser.y"
++ {
+ (yyval.defsupertype).token = TK_NAME;
+
+- (yyval.defsupertype).name = (yyvsp[(3) - (3)].text);
++ (yyval.defsupertype).name = (yyvsp[0].text);
+ }
++#line 3993 "../parser.c"
+ break;
+
+- case 174:
+-#line 1690 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 174: /* hiddenns: TK_HIDE_NS hiddenns_args */
++#line 1691 "parser.y"
++ {
+ if (notSkipping())
+ {
+ classDef *ns;
+
+ ns = newClass(currentSpec, namespace_iface, NULL,
+- fullyQualifiedName((yyvsp[(2) - (2)].hiddenns).name), NULL, NULL, NULL, NULL);
++ fullyQualifiedName((yyvsp[0].hiddenns).name), NULL, NULL, NULL, NULL);
+ setHiddenNamespace(ns);
+ }
+ }
++#line 4008 "../parser.c"
+ break;
+
+- case 175:
+-#line 1702 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 175: /* hiddenns_args: scopedname */
++#line 1703 "parser.y"
++ {
+ resetLexerState();
+
+- (yyval.hiddenns).name = (yyvsp[(1) - (1)].scpvalp);
++ (yyval.hiddenns).name = (yyvsp[0].scpvalp);
+ }
++#line 4018 "../parser.c"
+ break;
+
+- case 176:
+-#line 1707 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.hiddenns) = (yyvsp[(2) - (3)].hiddenns);
++ case 176: /* hiddenns_args: '(' hiddenns_arg_list ')' */
++#line 1708 "parser.y"
++ {
++ (yyval.hiddenns) = (yyvsp[-1].hiddenns);
+ }
++#line 4026 "../parser.c"
+ break;
+
+- case 178:
+-#line 1713 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.hiddenns) = (yyvsp[(1) - (3)].hiddenns);
++ case 178: /* hiddenns_arg_list: hiddenns_arg_list ',' hiddenns_arg */
++#line 1714 "parser.y"
++ {
++ (yyval.hiddenns) = (yyvsp[-2].hiddenns);
+
+- switch ((yyvsp[(3) - (3)].hiddenns).token)
++ switch ((yyvsp[0].hiddenns).token)
+ {
+- case TK_NAME: (yyval.hiddenns).name = (yyvsp[(3) - (3)].hiddenns).name; break;
++ case TK_NAME: (yyval.hiddenns).name = (yyvsp[0].hiddenns).name; break;
+ }
+ }
++#line 4039 "../parser.c"
+ break;
+
+- case 179:
+-#line 1723 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 179: /* hiddenns_arg: TK_NAME '=' scopedname */
++#line 1724 "parser.y"
++ {
+ (yyval.hiddenns).token = TK_NAME;
+
+- (yyval.hiddenns).name = (yyvsp[(3) - (3)].scpvalp);
++ (yyval.hiddenns).name = (yyvsp[0].scpvalp);
+ }
++#line 4049 "../parser.c"
+ break;
+
+- case 180:
+-#line 1730 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 180: /* consmodule: TK_CONSMODULE consmodule_args consmodule_body */
++#line 1731 "parser.y"
++ {
+ deprecated("%ConsolidatedModule is deprecated and will not be supported by SIP v5");
+
+ if (notSkipping())
+@@ -4370,99 +4062,109 @@ yyreduce:
+ if (currentModule->fullname != NULL)
+ yyerror("%ConsolidatedModule must appear before any %Module or %CModule directive");
+
+- setModuleName(currentSpec, currentModule, (yyvsp[(2) - (3)].consmodule).name);
+- currentModule->docstring = (yyvsp[(3) - (3)].consmodule).docstring;
++ setModuleName(currentSpec, currentModule, (yyvsp[-1].consmodule).name);
++ currentModule->docstring = (yyvsp[0].consmodule).docstring;
+
+ setIsConsolidated(currentModule);
+ }
+ }
++#line 4072 "../parser.c"
+ break;
+
+- case 181:
+-#line 1750 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 181: /* consmodule_args: dottedname */
++#line 1751 "parser.y"
++ {
+ resetLexerState();
+
+- (yyval.consmodule).name = (yyvsp[(1) - (1)].text);
++ (yyval.consmodule).name = (yyvsp[0].text);
+ }
++#line 4082 "../parser.c"
+ break;
+
+- case 182:
+-#line 1755 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.consmodule) = (yyvsp[(2) - (3)].consmodule);
++ case 182: /* consmodule_args: '(' consmodule_arg_list ')' */
++#line 1756 "parser.y"
++ {
++ (yyval.consmodule) = (yyvsp[-1].consmodule);
+ }
++#line 4090 "../parser.c"
+ break;
+
+- case 184:
+-#line 1761 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.consmodule) = (yyvsp[(1) - (3)].consmodule);
++ case 184: /* consmodule_arg_list: consmodule_arg_list ',' consmodule_arg */
++#line 1762 "parser.y"
++ {
++ (yyval.consmodule) = (yyvsp[-2].consmodule);
+
+- switch ((yyvsp[(3) - (3)].consmodule).token)
++ switch ((yyvsp[0].consmodule).token)
+ {
+- case TK_NAME: (yyval.consmodule).name = (yyvsp[(3) - (3)].consmodule).name; break;
++ case TK_NAME: (yyval.consmodule).name = (yyvsp[0].consmodule).name; break;
+ }
+ }
++#line 4103 "../parser.c"
+ break;
+
+- case 185:
+-#line 1771 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 185: /* consmodule_arg: TK_NAME '=' dottedname */
++#line 1772 "parser.y"
++ {
+ (yyval.consmodule).token = TK_NAME;
+
+- (yyval.consmodule).name = (yyvsp[(3) - (3)].text);
++ (yyval.consmodule).name = (yyvsp[0].text);
+ }
++#line 4113 "../parser.c"
+ break;
+
+- case 186:
+-#line 1778 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 186: /* consmodule_body: %empty */
++#line 1779 "parser.y"
++ {
+ (yyval.consmodule).token = 0;
+ (yyval.consmodule).docstring = NULL;
+ }
++#line 4122 "../parser.c"
+ break;
+
+- case 187:
+-#line 1782 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.consmodule) = (yyvsp[(2) - (4)].consmodule);
++ case 187: /* consmodule_body: '{' consmodule_body_directives '}' ';' */
++#line 1783 "parser.y"
++ {
++ (yyval.consmodule) = (yyvsp[-2].consmodule);
+ }
++#line 4130 "../parser.c"
+ break;
+
+- case 189:
+-#line 1788 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.consmodule) = (yyvsp[(1) - (2)].consmodule);
++ case 189: /* consmodule_body_directives: consmodule_body_directives consmodule_body_directive */
++#line 1789 "parser.y"
++ {
++ (yyval.consmodule) = (yyvsp[-1].consmodule);
+
+- switch ((yyvsp[(2) - (2)].consmodule).token)
++ switch ((yyvsp[0].consmodule).token)
+ {
+- case TK_DOCSTRING: (yyval.consmodule).docstring = (yyvsp[(2) - (2)].consmodule).docstring; break;
++ case TK_DOCSTRING: (yyval.consmodule).docstring = (yyvsp[0].consmodule).docstring; break;
+ }
+ }
++#line 4143 "../parser.c"
+ break;
+
+- case 190:
+-#line 1798 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 190: /* consmodule_body_directive: ifstart */
++#line 1799 "parser.y"
++ {
+ (yyval.consmodule).token = TK_IF;
+ }
++#line 4151 "../parser.c"
+ break;
+
+- case 191:
+-#line 1801 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 191: /* consmodule_body_directive: ifend */
++#line 1802 "parser.y"
++ {
+ (yyval.consmodule).token = TK_END;
+ }
++#line 4159 "../parser.c"
+ break;
+
+- case 192:
+-#line 1804 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 192: /* consmodule_body_directive: docstring */
++#line 1805 "parser.y"
++ {
+ if (notSkipping())
+ {
+ (yyval.consmodule).token = TK_DOCSTRING;
+- (yyval.consmodule).docstring = (yyvsp[(1) - (1)].docstr);
++ (yyval.consmodule).docstring = (yyvsp[0].docstr);
+ }
+ else
+ {
+@@ -4470,11 +4172,12 @@ yyreduce:
+ (yyval.consmodule).docstring = NULL;
+ }
+ }
++#line 4176 "../parser.c"
+ break;
+
+- case 193:
+-#line 1818 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 193: /* compmodule: TK_COMPOMODULE compmodule_args compmodule_body */
++#line 1819 "parser.y"
++ {
+ if (notSkipping())
+ {
+ /* Make sure this is the first mention of a module. */
+@@ -4484,99 +4187,109 @@ yyreduce:
+ if (currentModule->fullname != NULL)
+ yyerror("%CompositeModule must appear before any %Module directive");
+
+- setModuleName(currentSpec, currentModule, (yyvsp[(2) - (3)].compmodule).name);
+- currentModule->docstring = (yyvsp[(3) - (3)].compmodule).docstring;
++ setModuleName(currentSpec, currentModule, (yyvsp[-1].compmodule).name);
++ currentModule->docstring = (yyvsp[0].compmodule).docstring;
+
+ setIsComposite(currentModule);
+ }
+ }
++#line 4197 "../parser.c"
+ break;
+
+- case 194:
+-#line 1836 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 194: /* compmodule_args: dottedname */
++#line 1837 "parser.y"
++ {
+ resetLexerState();
+
+- (yyval.compmodule).name = (yyvsp[(1) - (1)].text);
++ (yyval.compmodule).name = (yyvsp[0].text);
+ }
++#line 4207 "../parser.c"
+ break;
+
+- case 195:
+-#line 1841 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.compmodule) = (yyvsp[(2) - (3)].compmodule);
++ case 195: /* compmodule_args: '(' compmodule_arg_list ')' */
++#line 1842 "parser.y"
++ {
++ (yyval.compmodule) = (yyvsp[-1].compmodule);
+ }
++#line 4215 "../parser.c"
+ break;
+
+- case 197:
+-#line 1847 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.compmodule) = (yyvsp[(1) - (3)].compmodule);
++ case 197: /* compmodule_arg_list: compmodule_arg_list ',' compmodule_arg */
++#line 1848 "parser.y"
++ {
++ (yyval.compmodule) = (yyvsp[-2].compmodule);
+
+- switch ((yyvsp[(3) - (3)].compmodule).token)
++ switch ((yyvsp[0].compmodule).token)
+ {
+- case TK_NAME: (yyval.compmodule).name = (yyvsp[(3) - (3)].compmodule).name; break;
++ case TK_NAME: (yyval.compmodule).name = (yyvsp[0].compmodule).name; break;
+ }
+ }
++#line 4228 "../parser.c"
+ break;
+
+- case 198:
+-#line 1857 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 198: /* compmodule_arg: TK_NAME '=' dottedname */
++#line 1858 "parser.y"
++ {
+ (yyval.compmodule).token = TK_NAME;
+
+- (yyval.compmodule).name = (yyvsp[(3) - (3)].text);
++ (yyval.compmodule).name = (yyvsp[0].text);
+ }
++#line 4238 "../parser.c"
+ break;
+
+- case 199:
+-#line 1864 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 199: /* compmodule_body: %empty */
++#line 1865 "parser.y"
++ {
+ (yyval.compmodule).token = 0;
+ (yyval.compmodule).docstring = NULL;
+ }
++#line 4247 "../parser.c"
+ break;
+
+- case 200:
+-#line 1868 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.compmodule) = (yyvsp[(2) - (4)].compmodule);
++ case 200: /* compmodule_body: '{' compmodule_body_directives '}' ';' */
++#line 1869 "parser.y"
++ {
++ (yyval.compmodule) = (yyvsp[-2].compmodule);
+ }
++#line 4255 "../parser.c"
+ break;
+
+- case 202:
+-#line 1874 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.compmodule) = (yyvsp[(1) - (2)].compmodule);
++ case 202: /* compmodule_body_directives: compmodule_body_directives compmodule_body_directive */
++#line 1875 "parser.y"
++ {
++ (yyval.compmodule) = (yyvsp[-1].compmodule);
+
+- switch ((yyvsp[(2) - (2)].compmodule).token)
++ switch ((yyvsp[0].compmodule).token)
+ {
+- case TK_DOCSTRING: (yyval.compmodule).docstring = (yyvsp[(2) - (2)].compmodule).docstring; break;
++ case TK_DOCSTRING: (yyval.compmodule).docstring = (yyvsp[0].compmodule).docstring; break;
+ }
+ }
++#line 4268 "../parser.c"
+ break;
+
+- case 203:
+-#line 1884 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 203: /* compmodule_body_directive: ifstart */
++#line 1885 "parser.y"
++ {
+ (yyval.compmodule).token = TK_IF;
+ }
++#line 4276 "../parser.c"
+ break;
+
+- case 204:
+-#line 1887 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 204: /* compmodule_body_directive: ifend */
++#line 1888 "parser.y"
++ {
+ (yyval.compmodule).token = TK_END;
+ }
++#line 4284 "../parser.c"
+ break;
+
+- case 205:
+-#line 1890 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 205: /* compmodule_body_directive: docstring */
++#line 1891 "parser.y"
++ {
+ if (notSkipping())
+ {
+ (yyval.compmodule).token = TK_DOCSTRING;
+- (yyval.compmodule).docstring = (yyvsp[(1) - (1)].docstr);
++ (yyval.compmodule).docstring = (yyvsp[0].docstr);
+ }
+ else
+ {
+@@ -4584,107 +4297,119 @@ yyreduce:
+ (yyval.compmodule).docstring = NULL;
+ }
+ }
++#line 4301 "../parser.c"
+ break;
+
+- case 206:
+-#line 1904 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- if ((yyvsp[(2) - (3)].module).name == NULL)
++ case 206: /* module: TK_MODULE module_args module_body */
++#line 1905 "parser.y"
++ {
++ if ((yyvsp[-1].module).name == NULL)
+ yyerror("%Module must have a 'name' argument");
+
+ if (notSkipping())
+ currentModule = configureModule(currentSpec, currentModule,
+- currentContext.filename, (yyvsp[(2) - (3)].module).name, (yyvsp[(2) - (3)].module).c_module,
+- (yyvsp[(2) - (3)].module).kwargs, (yyvsp[(2) - (3)].module).use_arg_names, (yyvsp[(2) - (3)].module).use_limited_api,
+- (yyvsp[(2) - (3)].module).call_super_init, (yyvsp[(2) - (3)].module).all_raise_py_exc,
+- (yyvsp[(2) - (3)].module).def_error_handler, (yyvsp[(3) - (3)].module).docstring);
+- }
++ currentContext.filename, (yyvsp[-1].module).name, (yyvsp[-1].module).c_module,
++ (yyvsp[-1].module).kwargs, (yyvsp[-1].module).use_arg_names, (yyvsp[-1].module).py_ssize_t_clean,
++ (yyvsp[-1].module).use_limited_api, (yyvsp[-1].module).call_super_init,
++ (yyvsp[-1].module).all_raise_py_exc, (yyvsp[-1].module).def_error_handler,
++ (yyvsp[0].module).docstring);
++ }
++#line 4318 "../parser.c"
+ break;
+
+- case 207:
+-#line 1915 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 207: /* module: TK_CMODULE dottedname optnumber */
++#line 1917 "parser.y"
++ {
+ deprecated("%CModule is deprecated, use %Module and the 'language' argument instead");
+
+ if (notSkipping())
+ currentModule = configureModule(currentSpec, currentModule,
+- currentContext.filename, (yyvsp[(2) - (3)].text), TRUE, defaultKwArgs,
+- FALSE, FALSE, -1, FALSE, NULL, NULL);
++ currentContext.filename, (yyvsp[-1].text), TRUE, defaultKwArgs,
++ FALSE, FALSE, FALSE, -1, FALSE, NULL, NULL);
+ }
++#line 4331 "../parser.c"
+ break;
+
+- case 208:
+-#line 1925 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {resetLexerState();}
++ case 208: /* $@8: %empty */
++#line 1927 "parser.y"
++ {resetLexerState();}
++#line 4337 "../parser.c"
+ break;
+
+- case 209:
+-#line 1925 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- if ((yyvsp[(3) - (3)].number) >= 0)
++ case 209: /* module_args: dottedname $@8 optnumber */
++#line 1927 "parser.y"
++ {
++ if ((yyvsp[0].number) >= 0)
+ deprecated("%Module version number should be specified using the 'version' argument");
+
+ (yyval.module).c_module = FALSE;
+ (yyval.module).kwargs = defaultKwArgs;
+- (yyval.module).name = (yyvsp[(1) - (3)].text);
++ (yyval.module).name = (yyvsp[-2].text);
+ (yyval.module).use_arg_names = FALSE;
++ (yyval.module).py_ssize_t_clean = FALSE;
+ (yyval.module).use_limited_api = FALSE;
+ (yyval.module).all_raise_py_exc = FALSE;
+ (yyval.module).call_super_init = -1;
+ (yyval.module).def_error_handler = NULL;
+ }
++#line 4356 "../parser.c"
+ break;
+
+- case 210:
+-#line 1938 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.module) = (yyvsp[(2) - (3)].module);
++ case 210: /* module_args: '(' module_arg_list ')' */
++#line 1941 "parser.y"
++ {
++ (yyval.module) = (yyvsp[-1].module);
+ }
++#line 4364 "../parser.c"
+ break;
+
+- case 212:
+-#line 1944 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.module) = (yyvsp[(1) - (3)].module);
++ case 212: /* module_arg_list: module_arg_list ',' module_arg */
++#line 1947 "parser.y"
++ {
++ (yyval.module) = (yyvsp[-2].module);
+
+- switch ((yyvsp[(3) - (3)].module).token)
++ switch ((yyvsp[0].module).token)
+ {
+- case TK_KWARGS: (yyval.module).kwargs = (yyvsp[(3) - (3)].module).kwargs; break;
+- case TK_LANGUAGE: (yyval.module).c_module = (yyvsp[(3) - (3)].module).c_module; break;
+- case TK_NAME: (yyval.module).name = (yyvsp[(3) - (3)].module).name; break;
+- case TK_USEARGNAMES: (yyval.module).use_arg_names = (yyvsp[(3) - (3)].module).use_arg_names; break;
+- case TK_USELIMITEDAPI: (yyval.module).use_limited_api = (yyvsp[(3) - (3)].module).use_limited_api; break;
+- case TK_ALLRAISEPYEXC: (yyval.module).all_raise_py_exc = (yyvsp[(3) - (3)].module).all_raise_py_exc; break;
+- case TK_CALLSUPERINIT: (yyval.module).call_super_init = (yyvsp[(3) - (3)].module).call_super_init; break;
+- case TK_DEFERRORHANDLER: (yyval.module).def_error_handler = (yyvsp[(3) - (3)].module).def_error_handler; break;
++ case TK_KWARGS: (yyval.module).kwargs = (yyvsp[0].module).kwargs; break;
++ case TK_LANGUAGE: (yyval.module).c_module = (yyvsp[0].module).c_module; break;
++ case TK_NAME: (yyval.module).name = (yyvsp[0].module).name; break;
++ case TK_USEARGNAMES: (yyval.module).use_arg_names = (yyvsp[0].module).use_arg_names; break;
++ case TK_PYSSIZETCLEAN: (yyval.module).py_ssize_t_clean = (yyvsp[0].module).py_ssize_t_clean; break;
++ case TK_USELIMITEDAPI: (yyval.module).use_limited_api = (yyvsp[0].module).use_limited_api; break;
++ case TK_ALLRAISEPYEXC: (yyval.module).all_raise_py_exc = (yyvsp[0].module).all_raise_py_exc; break;
++ case TK_CALLSUPERINIT: (yyval.module).call_super_init = (yyvsp[0].module).call_super_init; break;
++ case TK_DEFERRORHANDLER: (yyval.module).def_error_handler = (yyvsp[0].module).def_error_handler; break;
+ }
+ }
++#line 4385 "../parser.c"
+ break;
+
+- case 213:
+-#line 1961 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 213: /* module_arg: TK_KWARGS '=' TK_STRING_VALUE */
++#line 1965 "parser.y"
++ {
+ (yyval.module).token = TK_KWARGS;
+
+ (yyval.module).c_module = FALSE;
+- (yyval.module).kwargs = convertKwArgs((yyvsp[(3) - (3)].text));
++ (yyval.module).kwargs = convertKwArgs((yyvsp[0].text));
+ (yyval.module).name = NULL;
+ (yyval.module).use_arg_names = FALSE;
++ (yyval.module).py_ssize_t_clean = FALSE;
+ (yyval.module).use_limited_api = FALSE;
+ (yyval.module).all_raise_py_exc = FALSE;
+ (yyval.module).call_super_init = -1;
+ (yyval.module).def_error_handler = NULL;
+ }
++#line 4403 "../parser.c"
+ break;
+
+- case 214:
+-#line 1973 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 214: /* module_arg: TK_LANGUAGE '=' TK_STRING_VALUE */
++#line 1978 "parser.y"
++ {
+ (yyval.module).token = TK_LANGUAGE;
+
+- if (strcmp((yyvsp[(3) - (3)].text), "C++") == 0)
++ if (strcmp((yyvsp[0].text), "C++") == 0)
+ (yyval.module).c_module = FALSE;
+- else if (strcmp((yyvsp[(3) - (3)].text), "C") == 0)
++ else if (strcmp((yyvsp[0].text), "C") == 0)
+ (yyval.module).c_module = TRUE;
+ else
+ yyerror("%Module 'language' argument must be either \"C++\" or \"C\"");
+@@ -4692,115 +4417,147 @@ yyreduce:
+ (yyval.module).kwargs = defaultKwArgs;
+ (yyval.module).name = NULL;
+ (yyval.module).use_arg_names = FALSE;
++ (yyval.module).py_ssize_t_clean = FALSE;
+ (yyval.module).use_limited_api = FALSE;
+ (yyval.module).all_raise_py_exc = FALSE;
+ (yyval.module).call_super_init = -1;
+ (yyval.module).def_error_handler = NULL;
+ }
++#line 4427 "../parser.c"
+ break;
+
+- case 215:
+-#line 1991 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 215: /* module_arg: TK_NAME '=' dottedname */
++#line 1997 "parser.y"
++ {
+ (yyval.module).token = TK_NAME;
+
+ (yyval.module).c_module = FALSE;
+ (yyval.module).kwargs = defaultKwArgs;
+- (yyval.module).name = (yyvsp[(3) - (3)].text);
++ (yyval.module).name = (yyvsp[0].text);
+ (yyval.module).use_arg_names = FALSE;
++ (yyval.module).py_ssize_t_clean = FALSE;
+ (yyval.module).use_limited_api = FALSE;
+ (yyval.module).all_raise_py_exc = FALSE;
+ (yyval.module).call_super_init = -1;
+ (yyval.module).def_error_handler = NULL;
+ }
++#line 4445 "../parser.c"
+ break;
+
+- case 216:
+-#line 2003 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 216: /* module_arg: TK_USEARGNAMES '=' bool_value */
++#line 2010 "parser.y"
++ {
+ (yyval.module).token = TK_USEARGNAMES;
+
+ (yyval.module).c_module = FALSE;
+ (yyval.module).kwargs = defaultKwArgs;
+ (yyval.module).name = NULL;
+- (yyval.module).use_arg_names = (yyvsp[(3) - (3)].boolean);
++ (yyval.module).use_arg_names = (yyvsp[0].boolean);
++ (yyval.module).py_ssize_t_clean = FALSE;
+ (yyval.module).use_limited_api = FALSE;
+ (yyval.module).all_raise_py_exc = FALSE;
+ (yyval.module).call_super_init = -1;
+ (yyval.module).def_error_handler = NULL;
+ }
++#line 4463 "../parser.c"
+ break;
+
+- case 217:
+-#line 2015 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 217: /* module_arg: TK_PYSSIZETCLEAN '=' bool_value */
++#line 2023 "parser.y"
++ {
++ (yyval.module).token = TK_PYSSIZETCLEAN;
++
++ (yyval.module).c_module = FALSE;
++ (yyval.module).kwargs = defaultKwArgs;
++ (yyval.module).name = NULL;
++ (yyval.module).use_arg_names = FALSE;
++ (yyval.module).py_ssize_t_clean = (yyvsp[0].boolean);
++ (yyval.module).use_limited_api = FALSE;
++ (yyval.module).all_raise_py_exc = FALSE;
++ (yyval.module).call_super_init = -1;
++ (yyval.module).def_error_handler = NULL;
++ }
++#line 4481 "../parser.c"
++ break;
++
++ case 218: /* module_arg: TK_USELIMITEDAPI '=' bool_value */
++#line 2036 "parser.y"
++ {
+ (yyval.module).token = TK_USELIMITEDAPI;
+
+ (yyval.module).c_module = FALSE;
+ (yyval.module).kwargs = defaultKwArgs;
+ (yyval.module).name = NULL;
+ (yyval.module).use_arg_names = FALSE;
+- (yyval.module).use_limited_api = (yyvsp[(3) - (3)].boolean);
++ (yyval.module).py_ssize_t_clean = FALSE;
++ (yyval.module).use_limited_api = (yyvsp[0].boolean);
+ (yyval.module).all_raise_py_exc = FALSE;
+ (yyval.module).call_super_init = -1;
+ (yyval.module).def_error_handler = NULL;
+ }
++#line 4499 "../parser.c"
+ break;
+
+- case 218:
+-#line 2027 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 219: /* module_arg: TK_ALLRAISEPYEXC '=' bool_value */
++#line 2049 "parser.y"
++ {
+ (yyval.module).token = TK_ALLRAISEPYEXC;
+
+ (yyval.module).c_module = FALSE;
+ (yyval.module).kwargs = defaultKwArgs;
+ (yyval.module).name = NULL;
+ (yyval.module).use_arg_names = FALSE;
++ (yyval.module).py_ssize_t_clean = FALSE;
+ (yyval.module).use_limited_api = FALSE;
+- (yyval.module).all_raise_py_exc = (yyvsp[(3) - (3)].boolean);
++ (yyval.module).all_raise_py_exc = (yyvsp[0].boolean);
+ (yyval.module).call_super_init = -1;
+ (yyval.module).def_error_handler = NULL;
+ }
++#line 4517 "../parser.c"
+ break;
+
+- case 219:
+-#line 2039 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 220: /* module_arg: TK_CALLSUPERINIT '=' bool_value */
++#line 2062 "parser.y"
++ {
+ (yyval.module).token = TK_CALLSUPERINIT;
+
+ (yyval.module).c_module = FALSE;
+ (yyval.module).kwargs = defaultKwArgs;
+ (yyval.module).name = NULL;
+ (yyval.module).use_arg_names = FALSE;
++ (yyval.module).py_ssize_t_clean = FALSE;
+ (yyval.module).use_limited_api = FALSE;
+ (yyval.module).all_raise_py_exc = FALSE;
+- (yyval.module).call_super_init = (yyvsp[(3) - (3)].boolean);
++ (yyval.module).call_super_init = (yyvsp[0].boolean);
+ (yyval.module).def_error_handler = NULL;
+ }
++#line 4535 "../parser.c"
+ break;
+
+- case 220:
+-#line 2051 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 221: /* module_arg: TK_DEFERRORHANDLER '=' TK_NAME_VALUE */
++#line 2075 "parser.y"
++ {
+ (yyval.module).token = TK_DEFERRORHANDLER;
+
+ (yyval.module).c_module = FALSE;
+ (yyval.module).kwargs = defaultKwArgs;
+ (yyval.module).name = NULL;
+ (yyval.module).use_arg_names = FALSE;
++ (yyval.module).py_ssize_t_clean = FALSE;
+ (yyval.module).use_limited_api = FALSE;
+ (yyval.module).all_raise_py_exc = FALSE;
+ (yyval.module).call_super_init = -1;
+- (yyval.module).def_error_handler = (yyvsp[(3) - (3)].text);
++ (yyval.module).def_error_handler = (yyvsp[0].text);
+ }
++#line 4553 "../parser.c"
+ break;
+
+- case 221:
+-#line 2063 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 222: /* module_arg: TK_VERSION '=' TK_NUMBER_VALUE */
++#line 2088 "parser.y"
++ {
+ deprecated("%Module version numbers are deprecated and ignored");
+
+- if ((yyvsp[(3) - (3)].number) < 0)
++ if ((yyvsp[0].number) < 0)
+ yyerror("%Module 'version' argument cannot be negative");
+
+ (yyval.module).token = TK_VERSION;
+@@ -4809,68 +4566,76 @@ yyreduce:
+ (yyval.module).kwargs = defaultKwArgs;
+ (yyval.module).name = NULL;
+ (yyval.module).use_arg_names = FALSE;
++ (yyval.module).py_ssize_t_clean = FALSE;
+ (yyval.module).use_limited_api = FALSE;
+ (yyval.module).all_raise_py_exc = FALSE;
+ (yyval.module).call_super_init = -1;
+ (yyval.module).def_error_handler = NULL;
+ }
++#line 4576 "../parser.c"
+ break;
+
+- case 222:
+-#line 2082 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 223: /* module_body: %empty */
++#line 2108 "parser.y"
++ {
+ (yyval.module).token = 0;
+ (yyval.module).docstring = NULL;
+ }
++#line 4585 "../parser.c"
+ break;
+
+- case 223:
+-#line 2086 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.module) = (yyvsp[(2) - (4)].module);
++ case 224: /* module_body: '{' module_body_directives '}' ';' */
++#line 2112 "parser.y"
++ {
++ (yyval.module) = (yyvsp[-2].module);
+ }
++#line 4593 "../parser.c"
+ break;
+
+- case 225:
+-#line 2092 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.module) = (yyvsp[(1) - (2)].module);
++ case 226: /* module_body_directives: module_body_directives module_body_directive */
++#line 2118 "parser.y"
++ {
++ (yyval.module) = (yyvsp[-1].module);
+
+- switch ((yyvsp[(2) - (2)].module).token)
++ switch ((yyvsp[0].module).token)
+ {
+- case TK_DOCSTRING: (yyval.module).docstring = (yyvsp[(2) - (2)].module).docstring; break;
++ case TK_DOCSTRING: (yyval.module).docstring = (yyvsp[0].module).docstring; break;
+ }
+ }
++#line 4606 "../parser.c"
+ break;
+
+- case 226:
+-#line 2102 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 227: /* module_body_directive: ifstart */
++#line 2128 "parser.y"
++ {
+ (yyval.module).token = TK_IF;
+ }
++#line 4614 "../parser.c"
+ break;
+
+- case 227:
+-#line 2105 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 228: /* module_body_directive: ifend */
++#line 2131 "parser.y"
++ {
+ (yyval.module).token = TK_END;
+ }
++#line 4622 "../parser.c"
+ break;
+
+- case 228:
+-#line 2108 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 229: /* module_body_directive: autopyname */
++#line 2134 "parser.y"
++ {
+ (yyval.module).token = TK_AUTOPYNAME;
+ }
++#line 4630 "../parser.c"
+ break;
+
+- case 229:
+-#line 2111 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 230: /* module_body_directive: docstring */
++#line 2137 "parser.y"
++ {
+ if (notSkipping())
+ {
+ (yyval.module).token = TK_DOCSTRING;
+- (yyval.module).docstring = (yyvsp[(1) - (1)].docstr);
++ (yyval.module).docstring = (yyvsp[0].docstr);
+ }
+ else
+ {
+@@ -4878,11 +4643,12 @@ yyreduce:
+ (yyval.module).docstring = NULL;
+ }
+ }
++#line 4647 "../parser.c"
+ break;
+
+- case 231:
+-#line 2126 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 232: /* dottedname: TK_PATH_VALUE */
++#line 2152 "parser.y"
++ {
+ /*
+ * The grammar design is a bit broken and this is the easiest way
+ * to allow periods in names.
+@@ -4890,435 +4656,487 @@ yyreduce:
+
+ char *cp;
+
+- for (cp = (yyvsp[(1) - (1)].text); *cp != '\0'; ++cp)
++ for (cp = (yyvsp[0].text); *cp != '\0'; ++cp)
+ if (*cp != '.' && *cp != '_' && !isalnum(*cp))
+ yyerror("Invalid character in name");
+
+- (yyval.text) = (yyvsp[(1) - (1)].text);
++ (yyval.text) = (yyvsp[0].text);
+ }
++#line 4666 "../parser.c"
+ break;
+
+- case 232:
+-#line 2142 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 233: /* optnumber: %empty */
++#line 2168 "parser.y"
++ {
+ (yyval.number) = -1;
+ }
++#line 4674 "../parser.c"
+ break;
+
+- case 234:
+-#line 2148 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- if ((yyvsp[(2) - (2)].include).name == NULL)
++ case 235: /* include: TK_INCLUDE include_args */
++#line 2174 "parser.y"
++ {
++ if ((yyvsp[0].include).name == NULL)
+ yyerror("%Include must have a 'name' argument");
+
+ if (notSkipping())
+- parseFile(NULL, (yyvsp[(2) - (2)].include).name, NULL, (yyvsp[(2) - (2)].include).optional);
++ parseFile(NULL, (yyvsp[0].include).name, NULL, (yyvsp[0].include).optional);
+ }
++#line 4686 "../parser.c"
+ break;
+
+- case 235:
+-#line 2157 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 236: /* include_args: TK_PATH_VALUE */
++#line 2183 "parser.y"
++ {
+ resetLexerState();
+
+- (yyval.include).name = (yyvsp[(1) - (1)].text);
++ (yyval.include).name = (yyvsp[0].text);
+ (yyval.include).optional = FALSE;
+ }
++#line 4697 "../parser.c"
+ break;
+
+- case 236:
+-#line 2163 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.include) = (yyvsp[(2) - (3)].include);
++ case 237: /* include_args: '(' include_arg_list ')' */
++#line 2189 "parser.y"
++ {
++ (yyval.include) = (yyvsp[-1].include);
+ }
++#line 4705 "../parser.c"
+ break;
+
+- case 238:
+-#line 2169 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.include) = (yyvsp[(1) - (3)].include);
++ case 239: /* include_arg_list: include_arg_list ',' include_arg */
++#line 2195 "parser.y"
++ {
++ (yyval.include) = (yyvsp[-2].include);
+
+- switch ((yyvsp[(3) - (3)].include).token)
++ switch ((yyvsp[0].include).token)
+ {
+- case TK_NAME: (yyval.include).name = (yyvsp[(3) - (3)].include).name; break;
+- case TK_OPTIONAL: (yyval.include).optional = (yyvsp[(3) - (3)].include).optional; break;
++ case TK_NAME: (yyval.include).name = (yyvsp[0].include).name; break;
++ case TK_OPTIONAL: (yyval.include).optional = (yyvsp[0].include).optional; break;
+ }
+ }
++#line 4719 "../parser.c"
+ break;
+
+- case 239:
+-#line 2180 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 240: /* include_arg: TK_NAME '=' TK_PATH_VALUE */
++#line 2206 "parser.y"
++ {
+ (yyval.include).token = TK_NAME;
+
+- (yyval.include).name = (yyvsp[(3) - (3)].text);
++ (yyval.include).name = (yyvsp[0].text);
+ (yyval.include).optional = FALSE;
+ }
++#line 4730 "../parser.c"
+ break;
+
+- case 240:
+-#line 2186 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 241: /* include_arg: TK_OPTIONAL '=' bool_value */
++#line 2212 "parser.y"
++ {
+ (yyval.include).token = TK_OPTIONAL;
+
+ (yyval.include).name = NULL;
+- (yyval.include).optional = (yyvsp[(3) - (3)].boolean);
++ (yyval.include).optional = (yyvsp[0].boolean);
+ }
++#line 4741 "../parser.c"
+ break;
+
+- case 241:
+-#line 2194 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 242: /* optinclude: TK_OPTINCLUDE TK_PATH_VALUE */
++#line 2220 "parser.y"
++ {
+ deprecated("%OptionalInclude is deprecated, use %Include and the 'optional' argument instead");
+
+ if (notSkipping())
+- parseFile(NULL, (yyvsp[(2) - (2)].text), NULL, TRUE);
++ parseFile(NULL, (yyvsp[0].text), NULL, TRUE);
+ }
++#line 4752 "../parser.c"
+ break;
+
+- case 242:
+-#line 2202 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 243: /* import: TK_IMPORT import_args */
++#line 2228 "parser.y"
++ {
+ if (notSkipping())
+- newImport((yyvsp[(2) - (2)].import).name);
++ newImport((yyvsp[0].import).name);
+ }
++#line 4761 "../parser.c"
+ break;
+
+- case 243:
+-#line 2208 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 244: /* import_args: TK_PATH_VALUE */
++#line 2234 "parser.y"
++ {
+ resetLexerState();
+
+- (yyval.import).name = (yyvsp[(1) - (1)].text);
++ (yyval.import).name = (yyvsp[0].text);
+ }
++#line 4771 "../parser.c"
+ break;
+
+- case 244:
+-#line 2213 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.import) = (yyvsp[(2) - (3)].import);
++ case 245: /* import_args: '(' import_arg_list ')' */
++#line 2239 "parser.y"
++ {
++ (yyval.import) = (yyvsp[-1].import);
+ }
++#line 4779 "../parser.c"
+ break;
+
+- case 246:
+-#line 2219 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.import) = (yyvsp[(1) - (3)].import);
++ case 247: /* import_arg_list: import_arg_list ',' import_arg */
++#line 2245 "parser.y"
++ {
++ (yyval.import) = (yyvsp[-2].import);
+
+- switch ((yyvsp[(3) - (3)].import).token)
++ switch ((yyvsp[0].import).token)
+ {
+- case TK_NAME: (yyval.import).name = (yyvsp[(3) - (3)].import).name; break;
++ case TK_NAME: (yyval.import).name = (yyvsp[0].import).name; break;
+ }
+ }
++#line 4792 "../parser.c"
+ break;
+
+- case 247:
+-#line 2229 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 248: /* import_arg: TK_NAME '=' TK_PATH_VALUE */
++#line 2255 "parser.y"
++ {
+ (yyval.import).token = TK_NAME;
+
+- (yyval.import).name = (yyvsp[(3) - (3)].text);
++ (yyval.import).name = (yyvsp[0].text);
+ }
++#line 4802 "../parser.c"
+ break;
+
+- case 248:
+-#line 2236 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 249: /* optaccesscode: %empty */
++#line 2262 "parser.y"
++ {
+ (yyval.codeb) = NULL;
+ }
++#line 4810 "../parser.c"
+ break;
+
+- case 249:
+-#line 2239 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 250: /* optaccesscode: TK_ACCESSCODE codeblock */
++#line 2265 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 4818 "../parser.c"
+ break;
+
+- case 250:
+-#line 2244 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 251: /* optgetcode: %empty */
++#line 2270 "parser.y"
++ {
+ (yyval.codeb) = NULL;
+ }
++#line 4826 "../parser.c"
+ break;
+
+- case 251:
+-#line 2247 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 252: /* optgetcode: TK_GETCODE codeblock */
++#line 2273 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 4834 "../parser.c"
+ break;
+
+- case 252:
+-#line 2252 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 253: /* optsetcode: %empty */
++#line 2278 "parser.y"
++ {
+ (yyval.codeb) = NULL;
+ }
++#line 4842 "../parser.c"
+ break;
+
+- case 253:
+-#line 2255 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 254: /* optsetcode: TK_SETCODE codeblock */
++#line 2281 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 4850 "../parser.c"
+ break;
+
+- case 254:
+-#line 2260 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 255: /* copying: TK_COPYING codeblock */
++#line 2286 "parser.y"
++ {
+ if (notSkipping())
+- appendCodeBlock(&currentModule->copying, (yyvsp[(2) - (2)].codeb));
++ appendCodeBlock(&currentModule->copying, (yyvsp[0].codeb));
+ }
++#line 4859 "../parser.c"
+ break;
+
+- case 255:
+-#line 2266 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 256: /* exphdrcode: TK_EXPHEADERCODE codeblock */
++#line 2292 "parser.y"
++ {
+ if (notSkipping())
+- appendCodeBlock(&currentSpec->exphdrcode, (yyvsp[(2) - (2)].codeb));
++ appendCodeBlock(&currentSpec->exphdrcode, (yyvsp[0].codeb));
+ }
++#line 4868 "../parser.c"
+ break;
+
+- case 256:
+-#line 2272 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 257: /* modhdrcode: TK_MODHEADERCODE codeblock */
++#line 2298 "parser.y"
++ {
+ if (notSkipping())
+- appendCodeBlock(&currentModule->hdrcode, (yyvsp[(2) - (2)].codeb));
++ appendCodeBlock(&currentModule->hdrcode, (yyvsp[0].codeb));
+ }
++#line 4877 "../parser.c"
+ break;
+
+- case 257:
+-#line 2278 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 258: /* typehdrcode: TK_TYPEHEADERCODE codeblock */
++#line 2304 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 4885 "../parser.c"
+ break;
+
+- case 258:
+-#line 2283 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 259: /* travcode: TK_TRAVERSECODE codeblock */
++#line 2309 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 4893 "../parser.c"
+ break;
+
+- case 259:
+-#line 2288 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 260: /* clearcode: TK_CLEARCODE codeblock */
++#line 2314 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 4901 "../parser.c"
+ break;
+
+- case 260:
+-#line 2293 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 261: /* getbufcode: TK_GETBUFFERCODE codeblock */
++#line 2319 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 4909 "../parser.c"
+ break;
+
+- case 261:
+-#line 2298 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 262: /* releasebufcode: TK_RELEASEBUFFERCODE codeblock */
++#line 2324 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 4917 "../parser.c"
+ break;
+
+- case 262:
+-#line 2303 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 263: /* readbufcode: TK_READBUFFERCODE codeblock */
++#line 2329 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 4925 "../parser.c"
+ break;
+
+- case 263:
+-#line 2308 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 264: /* writebufcode: TK_WRITEBUFFERCODE codeblock */
++#line 2334 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 4933 "../parser.c"
+ break;
+
+- case 264:
+-#line 2313 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 265: /* segcountcode: TK_SEGCOUNTCODE codeblock */
++#line 2339 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 4941 "../parser.c"
+ break;
+
+- case 265:
+-#line 2318 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 266: /* charbufcode: TK_CHARBUFFERCODE codeblock */
++#line 2344 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 4949 "../parser.c"
+ break;
+
+- case 266:
+-#line 2323 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 267: /* instancecode: TK_INSTANCECODE codeblock */
++#line 2349 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 4957 "../parser.c"
+ break;
+
+- case 267:
+-#line 2328 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 268: /* picklecode: TK_PICKLECODE codeblock */
++#line 2354 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 4965 "../parser.c"
+ break;
+
+- case 268:
+-#line 2333 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 269: /* finalcode: TK_FINALCODE codeblock */
++#line 2359 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 4973 "../parser.c"
+ break;
+
+- case 269:
+-#line 2338 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 270: /* modcode: TK_MODCODE codeblock */
++#line 2364 "parser.y"
++ {
+ if (notSkipping())
+- appendCodeBlock(&currentModule->cppcode, (yyvsp[(2) - (2)].codeb));
++ appendCodeBlock(&currentModule->cppcode, (yyvsp[0].codeb));
+ }
++#line 4982 "../parser.c"
+ break;
+
+- case 270:
+-#line 2344 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 271: /* typecode: TK_TYPECODE codeblock */
++#line 2370 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 4990 "../parser.c"
+ break;
+
+- case 271:
+-#line 2349 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 272: /* preinitcode: TK_PREINITCODE codeblock */
++#line 2375 "parser.y"
++ {
+ if (notSkipping())
+- appendCodeBlock(&currentModule->preinitcode, (yyvsp[(2) - (2)].codeb));
++ appendCodeBlock(&currentModule->preinitcode, (yyvsp[0].codeb));
+ }
++#line 4999 "../parser.c"
+ break;
+
+- case 272:
+-#line 2355 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 273: /* initcode: TK_INITCODE codeblock */
++#line 2381 "parser.y"
++ {
+ if (notSkipping())
+- appendCodeBlock(&currentModule->initcode, (yyvsp[(2) - (2)].codeb));
++ appendCodeBlock(&currentModule->initcode, (yyvsp[0].codeb));
+ }
++#line 5008 "../parser.c"
+ break;
+
+- case 273:
+-#line 2361 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 274: /* postinitcode: TK_POSTINITCODE codeblock */
++#line 2387 "parser.y"
++ {
+ if (notSkipping())
+- appendCodeBlock(&currentModule->postinitcode, (yyvsp[(2) - (2)].codeb));
++ appendCodeBlock(&currentModule->postinitcode, (yyvsp[0].codeb));
+ }
++#line 5017 "../parser.c"
+ break;
+
+- case 274:
+-#line 2367 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 275: /* unitcode: TK_UNITCODE codeblock */
++#line 2393 "parser.y"
++ {
+ if (notSkipping())
+- appendCodeBlock(&currentModule->unitcode, (yyvsp[(2) - (2)].codeb));
++ appendCodeBlock(&currentModule->unitcode, (yyvsp[0].codeb));
+ }
++#line 5026 "../parser.c"
+ break;
+
+- case 275:
+-#line 2373 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 276: /* unitpostinccode: TK_UNITPOSTINCLUDECODE codeblock */
++#line 2399 "parser.y"
++ {
+ if (notSkipping())
+- appendCodeBlock(&currentModule->unitpostinccode, (yyvsp[(2) - (2)].codeb));
++ appendCodeBlock(&currentModule->unitpostinccode, (yyvsp[0].codeb));
+ }
++#line 5035 "../parser.c"
+ break;
+
+- case 276:
+-#line 2379 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 277: /* prepycode: TK_PREPYCODE codeblock */
++#line 2405 "parser.y"
++ {
+ /* Deprecated. */
+ }
++#line 5043 "../parser.c"
+ break;
+
+- case 277:
+-#line 2384 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 278: /* exptypehintcode: TK_EXPTYPEHINTCODE codeblock */
++#line 2410 "parser.y"
++ {
+ if (notSkipping() && !inMainModule())
+- appendCodeBlock(&currentSpec->exptypehintcode, (yyvsp[(2) - (2)].codeb));
++ appendCodeBlock(&currentSpec->exptypehintcode, (yyvsp[0].codeb));
+ }
++#line 5052 "../parser.c"
+ break;
+
+- case 278:
+-#line 2390 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 279: /* modtypehintcode: TK_TYPEHINTCODE codeblock */
++#line 2416 "parser.y"
++ {
+ if (notSkipping())
+- appendCodeBlock(&currentModule->typehintcode, (yyvsp[(2) - (2)].codeb));
++ appendCodeBlock(&currentModule->typehintcode, (yyvsp[0].codeb));
+ }
++#line 5061 "../parser.c"
+ break;
+
+- case 279:
+-#line 2396 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 280: /* classtypehintcode: TK_TYPEHINTCODE codeblock */
++#line 2422 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 5069 "../parser.c"
+ break;
+
+- case 280:
+-#line 2401 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 281: /* doc: TK_DOC codeblock */
++#line 2427 "parser.y"
++ {
+ if (notSkipping() && inMainModule())
+- appendCodeBlock(&currentSpec->docs, (yyvsp[(2) - (2)].codeb));
++ appendCodeBlock(&currentSpec->docs, (yyvsp[0].codeb));
+ }
++#line 5078 "../parser.c"
+ break;
+
+- case 281:
+-#line 2407 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 282: /* exporteddoc: TK_EXPORTEDDOC codeblock */
++#line 2433 "parser.y"
++ {
+ if (notSkipping())
+- appendCodeBlock(&currentSpec->docs, (yyvsp[(2) - (2)].codeb));
++ appendCodeBlock(&currentSpec->docs, (yyvsp[0].codeb));
+ }
++#line 5087 "../parser.c"
+ break;
+
+- case 282:
+-#line 2413 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 283: /* autopyname: TK_AUTOPYNAME autopyname_args */
++#line 2439 "parser.y"
++ {
+ if (notSkipping())
+- addAutoPyName(currentModule, (yyvsp[(2) - (2)].autopyname).remove_leading);
++ addAutoPyName(currentModule, (yyvsp[0].autopyname).remove_leading);
+ }
++#line 5096 "../parser.c"
+ break;
+
+- case 283:
+-#line 2419 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.autopyname) = (yyvsp[(2) - (3)].autopyname);
++ case 284: /* autopyname_args: '(' autopyname_arg_list ')' */
++#line 2445 "parser.y"
++ {
++ (yyval.autopyname) = (yyvsp[-1].autopyname);
+ }
++#line 5104 "../parser.c"
+ break;
+
+- case 285:
+-#line 2425 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.autopyname) = (yyvsp[(1) - (3)].autopyname);
++ case 286: /* autopyname_arg_list: autopyname_arg_list ',' autopyname_arg */
++#line 2451 "parser.y"
++ {
++ (yyval.autopyname) = (yyvsp[-2].autopyname);
+
+- switch ((yyvsp[(3) - (3)].autopyname).token)
++ switch ((yyvsp[0].autopyname).token)
+ {
+- case TK_REMOVELEADING: (yyval.autopyname).remove_leading = (yyvsp[(3) - (3)].autopyname).remove_leading; break;
++ case TK_REMOVELEADING: (yyval.autopyname).remove_leading = (yyvsp[0].autopyname).remove_leading; break;
+ }
+ }
++#line 5117 "../parser.c"
+ break;
+
+- case 286:
+-#line 2435 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 287: /* autopyname_arg: TK_REMOVELEADING '=' TK_STRING_VALUE */
++#line 2461 "parser.y"
++ {
+ (yyval.autopyname).token = TK_REMOVELEADING;
+
+- (yyval.autopyname).remove_leading = (yyvsp[(3) - (3)].text);
++ (yyval.autopyname).remove_leading = (yyvsp[0].text);
+ }
++#line 5127 "../parser.c"
+ break;
+
+- case 287:
+-#line 2442 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 288: /* docstring: TK_DOCSTRING docstring_args codeblock */
++#line 2468 "parser.y"
++ {
+ (yyval.docstr) = sipMalloc(sizeof(docstringDef));
+
+- (yyval.docstr)->signature = (yyvsp[(2) - (3)].docstring).signature;
+- (yyval.docstr)->text = (yyvsp[(3) - (3)].codeb)->frag;
+- free((yyvsp[(3) - (3)].codeb));
++ (yyval.docstr)->signature = (yyvsp[-1].docstring).signature;
++ (yyval.docstr)->text = (yyvsp[0].codeb)->frag;
++ free((yyvsp[0].codeb));
+
+ /* Format the docstring. */
+- if ((yyvsp[(2) - (3)].docstring).format == deindented)
++ if ((yyvsp[-1].docstring).format == deindented)
+ {
+ const char *cp;
+ char *dp;
+@@ -5392,159 +5210,175 @@ yyreduce:
+ *dp = '\0';
+ }
+ }
++#line 5214 "../parser.c"
+ break;
+
+- case 288:
+-#line 2526 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 289: /* docstring_args: %empty */
++#line 2552 "parser.y"
++ {
+ (yyval.docstring).format = currentModule->defdocstringfmt;
+ (yyval.docstring).signature = currentModule->defdocstringsig;
+ }
++#line 5223 "../parser.c"
+ break;
+
+- case 289:
+-#line 2530 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 290: /* docstring_args: TK_STRING_VALUE */
++#line 2556 "parser.y"
++ {
+ resetLexerState();
+
+- (yyval.docstring).format = convertFormat((yyvsp[(1) - (1)].text));
++ (yyval.docstring).format = convertFormat((yyvsp[0].text));
+ (yyval.docstring).signature = currentModule->defdocstringsig;
+ }
++#line 5234 "../parser.c"
+ break;
+
+- case 290:
+-#line 2536 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.docstring) = (yyvsp[(2) - (3)].docstring);
++ case 291: /* docstring_args: '(' docstring_arg_list ')' */
++#line 2562 "parser.y"
++ {
++ (yyval.docstring) = (yyvsp[-1].docstring);
+ }
++#line 5242 "../parser.c"
+ break;
+
+- case 292:
+-#line 2542 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.docstring) = (yyvsp[(1) - (3)].docstring);
++ case 293: /* docstring_arg_list: docstring_arg_list ',' docstring_arg */
++#line 2568 "parser.y"
++ {
++ (yyval.docstring) = (yyvsp[-2].docstring);
+
+- switch ((yyvsp[(3) - (3)].docstring).token)
++ switch ((yyvsp[0].docstring).token)
+ {
+- case TK_FORMAT: (yyval.docstring).format = (yyvsp[(3) - (3)].docstring).format; break;
+- case TK_SIGNATURE: (yyval.docstring).signature = (yyvsp[(3) - (3)].docstring).signature; break;
++ case TK_FORMAT: (yyval.docstring).format = (yyvsp[0].docstring).format; break;
++ case TK_SIGNATURE: (yyval.docstring).signature = (yyvsp[0].docstring).signature; break;
+ }
+ }
++#line 5256 "../parser.c"
+ break;
+
+- case 293:
+-#line 2553 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 294: /* docstring_arg: TK_FORMAT '=' TK_STRING_VALUE */
++#line 2579 "parser.y"
++ {
+ (yyval.docstring).token = TK_FORMAT;
+
+- (yyval.docstring).format = convertFormat((yyvsp[(3) - (3)].text));
++ (yyval.docstring).format = convertFormat((yyvsp[0].text));
+ (yyval.docstring).signature = currentModule->defdocstringsig;
+ }
++#line 5267 "../parser.c"
+ break;
+
+- case 294:
+-#line 2559 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 295: /* docstring_arg: TK_SIGNATURE '=' TK_STRING_VALUE */
++#line 2585 "parser.y"
++ {
+ (yyval.docstring).token = TK_SIGNATURE;
+
+ (yyval.docstring).format = currentModule->defdocstringfmt;
+- (yyval.docstring).signature = convertSignature((yyvsp[(3) - (3)].text));
++ (yyval.docstring).signature = convertSignature((yyvsp[0].text));
+ }
++#line 5278 "../parser.c"
+ break;
+
+- case 295:
+-#line 2567 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 296: /* optdocstring: %empty */
++#line 2593 "parser.y"
++ {
+ (yyval.docstr) = NULL;
+ }
++#line 5286 "../parser.c"
+ break;
+
+- case 297:
+-#line 2573 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- if ((yyvsp[(2) - (3)].extract).id == NULL)
++ case 298: /* extract: TK_EXTRACT extract_args codeblock */
++#line 2599 "parser.y"
++ {
++ if ((yyvsp[-1].extract).id == NULL)
+ yyerror("%Extract must have an 'id' argument");
+
+ if (notSkipping())
+- addExtractPart(currentSpec, (yyvsp[(2) - (3)].extract).id, (yyvsp[(2) - (3)].extract).order, (yyvsp[(3) - (3)].codeb));
++ addExtractPart(currentSpec, (yyvsp[-1].extract).id, (yyvsp[-1].extract).order, (yyvsp[0].codeb));
+ }
++#line 5298 "../parser.c"
+ break;
+
+- case 298:
+-#line 2582 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 299: /* extract_args: TK_NAME_VALUE */
++#line 2608 "parser.y"
++ {
+ resetLexerState();
+
+- (yyval.extract).id = (yyvsp[(1) - (1)].text);
++ (yyval.extract).id = (yyvsp[0].text);
+ (yyval.extract).order = -1;
+ }
++#line 5309 "../parser.c"
+ break;
+
+- case 299:
+-#line 2588 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.extract) = (yyvsp[(2) - (3)].extract);
++ case 300: /* extract_args: '(' extract_arg_list ')' */
++#line 2614 "parser.y"
++ {
++ (yyval.extract) = (yyvsp[-1].extract);
+ }
++#line 5317 "../parser.c"
+ break;
+
+- case 301:
+-#line 2594 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.extract) = (yyvsp[(1) - (3)].extract);
++ case 302: /* extract_arg_list: extract_arg_list ',' extract_arg */
++#line 2620 "parser.y"
++ {
++ (yyval.extract) = (yyvsp[-2].extract);
+
+- switch ((yyvsp[(3) - (3)].extract).token)
++ switch ((yyvsp[0].extract).token)
+ {
+- case TK_ID: (yyval.extract).id = (yyvsp[(3) - (3)].extract).id; break;
+- case TK_ORDER: (yyval.extract).order = (yyvsp[(3) - (3)].extract).order; break;
++ case TK_ID: (yyval.extract).id = (yyvsp[0].extract).id; break;
++ case TK_ORDER: (yyval.extract).order = (yyvsp[0].extract).order; break;
+ }
+ }
++#line 5331 "../parser.c"
+ break;
+
+- case 302:
+-#line 2605 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 303: /* extract_arg: TK_ID '=' TK_NAME_VALUE */
++#line 2631 "parser.y"
++ {
+ (yyval.extract).token = TK_ID;
+
+- (yyval.extract).id = (yyvsp[(3) - (3)].text);
++ (yyval.extract).id = (yyvsp[0].text);
+ (yyval.extract).order = -1;
+ }
++#line 5342 "../parser.c"
+ break;
+
+- case 303:
+-#line 2611 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 304: /* extract_arg: TK_ORDER '=' TK_NUMBER_VALUE */
++#line 2637 "parser.y"
++ {
+ (yyval.extract).token = TK_ORDER;
+
+- if ((yyvsp[(3) - (3)].number) < 0)
++ if ((yyvsp[0].number) < 0)
+ yyerror("The 'order' of an %Extract directive must not be negative");
+
+ (yyval.extract).id = NULL;
+- (yyval.extract).order = (yyvsp[(3) - (3)].number);
++ (yyval.extract).order = (yyvsp[0].number);
+ }
++#line 5356 "../parser.c"
+ break;
+
+- case 304:
+-#line 2622 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 305: /* makefile: TK_MAKEFILE TK_PATH_VALUE optfilename codeblock */
++#line 2648 "parser.y"
++ {
+ /* Deprecated. */
+ }
++#line 5364 "../parser.c"
+ break;
+
+- case 307:
+-#line 2631 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(1) - (2)].codeb);
++ case 308: /* codelines: codelines TK_CODELINE */
++#line 2657 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[-1].codeb);
+
+- append(&(yyval.codeb)->frag, (yyvsp[(2) - (2)].codeb)->frag);
++ append(&(yyval.codeb)->frag, (yyvsp[0].codeb)->frag);
+
+- free((yyvsp[(2) - (2)].codeb)->frag);
+- free((yyvsp[(2) - (2)].codeb));
++ free((yyvsp[0].codeb)->frag);
++ free((yyvsp[0].codeb));
+ }
++#line 5377 "../parser.c"
+ break;
+
+- case 308:
+-#line 2641 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 309: /* $@9: %empty */
++#line 2667 "parser.y"
++ {
+ if (notSkipping())
+ {
+ const char *annos[] = {
+@@ -5554,72 +5388,80 @@ yyreduce:
+ NULL
+ };
+
+- checkAnnos(&(yyvsp[(4) - (4)].optflags), annos);
++ checkAnnos(&(yyvsp[0].optflags), annos);
+
+ if (sectionFlags != 0 && (sectionFlags & ~(SECT_IS_PUBLIC | SECT_IS_PROT)) != 0)
+ yyerror("Class enums must be in the public or protected sections");
+
+- if (currentSpec->genc && (yyvsp[(2) - (4)].boolean))
++ if (currentSpec->genc && (yyvsp[-2].boolean))
+ yyerror("Scoped enums not allowed in a C module");
+
+ currentEnum = newEnum(currentSpec, currentModule,
+- currentMappedType, (yyvsp[(3) - (4)].text), &(yyvsp[(4) - (4)].optflags), sectionFlags, (yyvsp[(2) - (4)].boolean));
++ currentMappedType, (yyvsp[-1].text), &(yyvsp[0].optflags), sectionFlags, (yyvsp[-2].boolean));
+ }
+ }
++#line 5404 "../parser.c"
+ break;
+
+- case 310:
+-#line 2665 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 311: /* optenumkey: %empty */
++#line 2691 "parser.y"
++ {
+ (yyval.boolean) = FALSE;
+ }
++#line 5412 "../parser.c"
+ break;
+
+- case 311:
+-#line 2668 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 312: /* optenumkey: TK_CLASS */
++#line 2694 "parser.y"
++ {
+ (yyval.boolean) = TRUE;
+ }
++#line 5420 "../parser.c"
+ break;
+
+- case 312:
+-#line 2671 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 313: /* optenumkey: TK_STRUCT */
++#line 2697 "parser.y"
++ {
+ (yyval.boolean) = TRUE;
+ }
++#line 5428 "../parser.c"
+ break;
+
+- case 313:
+-#line 2676 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 314: /* optfilename: %empty */
++#line 2702 "parser.y"
++ {
+ (yyval.text) = NULL;
+ }
++#line 5436 "../parser.c"
+ break;
+
+- case 314:
+-#line 2679 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.text) = (yyvsp[(1) - (1)].text);
++ case 315: /* optfilename: TK_PATH_VALUE */
++#line 2705 "parser.y"
++ {
++ (yyval.text) = (yyvsp[0].text);
+ }
++#line 5444 "../parser.c"
+ break;
+
+- case 315:
+-#line 2684 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 316: /* optname: %empty */
++#line 2710 "parser.y"
++ {
+ (yyval.text) = NULL;
+ }
++#line 5452 "../parser.c"
+ break;
+
+- case 316:
+-#line 2687 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.text) = (yyvsp[(1) - (1)].text);
++ case 317: /* optname: TK_NAME_VALUE */
++#line 2713 "parser.y"
++ {
++ (yyval.text) = (yyvsp[0].text);
+ }
++#line 5460 "../parser.c"
+ break;
+
+- case 323:
+-#line 2702 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 324: /* enumline: TK_NAME_VALUE optenumassign optflags optcomma */
++#line 2728 "parser.y"
++ {
+ if (notSkipping())
+ {
+ const char *annos[] = {
+@@ -5630,15 +5472,15 @@ yyreduce:
+
+ enumMemberDef *emd, **tail;
+
+- checkAnnos(&(yyvsp[(3) - (4)].optflags), annos);
++ checkAnnos(&(yyvsp[-1].optflags), annos);
+
+ /* Note that we don't use the assigned value. */
+ emd = sipMalloc(sizeof (enumMemberDef));
+
+ emd->pyname = cacheName(currentSpec,
+- getPythonName(currentModule, &(yyvsp[(3) - (4)].optflags), (yyvsp[(1) - (4)].text)));
+- emd->cname = (yyvsp[(1) - (4)].text);
+- emd->no_typehint = getNoTypeHint(&(yyvsp[(3) - (4)].optflags));
++ getPythonName(currentModule, &(yyvsp[-1].optflags), (yyvsp[-3].text)));
++ emd->cname = (yyvsp[-3].text);
++ emd->no_typehint = getNoTypeHint(&(yyvsp[-1].optflags));
+ emd->ed = currentEnum;
+ emd->platforms = currentPlatforms;
+ emd->next = NULL;
+@@ -5661,309 +5503,345 @@ yyreduce:
+ setIsUsedName(emd->pyname);
+ }
+ }
++#line 5507 "../parser.c"
+ break;
+
+- case 328:
+-#line 2754 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 329: /* optassign: %empty */
++#line 2780 "parser.y"
++ {
+ (yyval.valp) = NULL;
+ }
++#line 5515 "../parser.c"
+ break;
+
+- case 329:
+-#line 2757 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.valp) = (yyvsp[(2) - (2)].valp);
++ case 330: /* optassign: '=' expr */
++#line 2783 "parser.y"
++ {
++ (yyval.valp) = (yyvsp[0].valp);
+ }
++#line 5523 "../parser.c"
+ break;
+
+- case 331:
+-#line 2763 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 332: /* expr: expr binop value */
++#line 2789 "parser.y"
++ {
+ valueDef *vd;
+
+- if ((yyvsp[(1) - (3)].valp) -> vtype == string_value || (yyvsp[(3) - (3)].valp) -> vtype == string_value)
++ if ((yyvsp[-2].valp) -> vtype == string_value || (yyvsp[0].valp) -> vtype == string_value)
+ yyerror("Invalid binary operator for string");
+
+ /* Find the last value in the existing expression. */
+
+- for (vd = (yyvsp[(1) - (3)].valp); vd -> next != NULL; vd = vd -> next)
++ for (vd = (yyvsp[-2].valp); vd -> next != NULL; vd = vd -> next)
+ ;
+
+- vd -> vbinop = (yyvsp[(2) - (3)].qchar);
+- vd -> next = (yyvsp[(3) - (3)].valp);
++ vd -> vbinop = (yyvsp[-1].qchar);
++ vd -> next = (yyvsp[0].valp);
+
+- (yyval.valp) = (yyvsp[(1) - (3)].valp);
++ (yyval.valp) = (yyvsp[-2].valp);
+ }
++#line 5544 "../parser.c"
+ break;
+
+- case 332:
+-#line 2781 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 333: /* binop: '-' */
++#line 2807 "parser.y"
++ {
+ (yyval.qchar) = '-';
+ }
++#line 5552 "../parser.c"
+ break;
+
+- case 333:
+-#line 2784 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 334: /* binop: '+' */
++#line 2810 "parser.y"
++ {
+ (yyval.qchar) = '+';
+ }
++#line 5560 "../parser.c"
+ break;
+
+- case 334:
+-#line 2787 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 335: /* binop: '*' */
++#line 2813 "parser.y"
++ {
+ (yyval.qchar) = '*';
+ }
++#line 5568 "../parser.c"
+ break;
+
+- case 335:
+-#line 2790 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 336: /* binop: '/' */
++#line 2816 "parser.y"
++ {
+ (yyval.qchar) = '/';
+ }
++#line 5576 "../parser.c"
+ break;
+
+- case 336:
+-#line 2793 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 337: /* binop: '&' */
++#line 2819 "parser.y"
++ {
+ (yyval.qchar) = '&';
+ }
++#line 5584 "../parser.c"
+ break;
+
+- case 337:
+-#line 2796 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 338: /* binop: '|' */
++#line 2822 "parser.y"
++ {
+ (yyval.qchar) = '|';
+ }
++#line 5592 "../parser.c"
+ break;
+
+- case 338:
+-#line 2801 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 339: /* optunop: %empty */
++#line 2827 "parser.y"
++ {
+ (yyval.qchar) = '\0';
+ }
++#line 5600 "../parser.c"
+ break;
+
+- case 339:
+-#line 2804 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 340: /* optunop: '!' */
++#line 2830 "parser.y"
++ {
+ (yyval.qchar) = '!';
+ }
++#line 5608 "../parser.c"
+ break;
+
+- case 340:
+-#line 2807 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 341: /* optunop: '~' */
++#line 2833 "parser.y"
++ {
+ (yyval.qchar) = '~';
+ }
++#line 5616 "../parser.c"
+ break;
+
+- case 341:
+-#line 2810 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 342: /* optunop: '-' */
++#line 2836 "parser.y"
++ {
+ (yyval.qchar) = '-';
+ }
++#line 5624 "../parser.c"
+ break;
+
+- case 342:
+-#line 2813 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 343: /* optunop: '+' */
++#line 2839 "parser.y"
++ {
+ (yyval.qchar) = '+';
+ }
++#line 5632 "../parser.c"
+ break;
+
+- case 343:
+-#line 2816 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 344: /* optunop: '*' */
++#line 2842 "parser.y"
++ {
+ (yyval.qchar) = '*';
+ }
++#line 5640 "../parser.c"
+ break;
+
+- case 344:
+-#line 2819 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 345: /* optunop: '&' */
++#line 2845 "parser.y"
++ {
+ (yyval.qchar) = '&';
+ }
++#line 5648 "../parser.c"
+ break;
+
+- case 345:
+-#line 2824 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- if ((yyvsp[(2) - (3)].qchar) != '\0' && (yyvsp[(3) - (3)].value).vtype == string_value)
++ case 346: /* value: optcast optunop simplevalue */
++#line 2850 "parser.y"
++ {
++ if ((yyvsp[-1].qchar) != '\0' && (yyvsp[0].value).vtype == string_value)
+ yyerror("Invalid unary operator for string");
+
+ /* Convert the value to a simple expression on the heap. */
+ (yyval.valp) = sipMalloc(sizeof (valueDef));
+
+- *(yyval.valp) = (yyvsp[(3) - (3)].value);
+- (yyval.valp)->vunop = (yyvsp[(2) - (3)].qchar);
++ *(yyval.valp) = (yyvsp[0].value);
++ (yyval.valp)->vunop = (yyvsp[-1].qchar);
+ (yyval.valp)->vbinop = '\0';
+- (yyval.valp)->cast = (yyvsp[(1) - (3)].scpvalp);
++ (yyval.valp)->cast = (yyvsp[-2].scpvalp);
+ (yyval.valp)->next = NULL;
+ }
++#line 5666 "../parser.c"
+ break;
+
+- case 346:
+-#line 2839 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 347: /* optcast: %empty */
++#line 2865 "parser.y"
++ {
+ (yyval.scpvalp) = NULL;
+ }
++#line 5674 "../parser.c"
+ break;
+
+- case 347:
+-#line 2842 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.scpvalp) = (yyvsp[(2) - (3)].scpvalp);
++ case 348: /* optcast: '(' scopedname ')' */
++#line 2868 "parser.y"
++ {
++ (yyval.scpvalp) = (yyvsp[-1].scpvalp);
+ }
++#line 5682 "../parser.c"
+ break;
+
+- case 348:
+-#line 2847 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 349: /* scopedname: TK_SCOPE scopednamehead */
++#line 2873 "parser.y"
++ {
+ if (currentSpec->genc)
+ yyerror("Scoped names are not allowed in a C module");
+
+- (yyval.scpvalp) = scopeScopedName(NULL, (yyvsp[(2) - (2)].scpvalp));
++ (yyval.scpvalp) = scopeScopedName(NULL, (yyvsp[0].scpvalp));
+ }
++#line 5693 "../parser.c"
+ break;
+
+- case 351:
+-#line 2857 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 352: /* scopednamehead: scopednamehead TK_SCOPE scopepart */
++#line 2883 "parser.y"
++ {
+ if (currentSpec->genc)
+ yyerror("Scoped names are not allowed in a C module");
+
+- appendScopedName(&(yyvsp[(1) - (3)].scpvalp), (yyvsp[(3) - (3)].scpvalp));
++ appendScopedName(&(yyvsp[-2].scpvalp), (yyvsp[0].scpvalp));
+ }
++#line 5704 "../parser.c"
+ break;
+
+- case 352:
+-#line 2865 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.scpvalp) = text2scopePart((yyvsp[(1) - (1)].text));
++ case 353: /* scopepart: TK_NAME_VALUE */
++#line 2891 "parser.y"
++ {
++ (yyval.scpvalp) = text2scopePart((yyvsp[0].text));
+ }
++#line 5712 "../parser.c"
+ break;
+
+- case 353:
+-#line 2870 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 354: /* bool_value: TK_TRUE_VALUE */
++#line 2896 "parser.y"
++ {
+ (yyval.boolean) = TRUE;
+ }
++#line 5720 "../parser.c"
+ break;
+
+- case 354:
+-#line 2873 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 355: /* bool_value: TK_FALSE_VALUE */
++#line 2899 "parser.y"
++ {
+ (yyval.boolean) = FALSE;
+ }
++#line 5728 "../parser.c"
+ break;
+
+- case 355:
+-#line 2878 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 356: /* simplevalue: scopedname */
++#line 2904 "parser.y"
++ {
+ /*
+ * We let the C++ compiler decide if the value is a valid one - no
+ * point in building a full C++ parser here.
+ */
+
+ (yyval.value).vtype = scoped_value;
+- (yyval.value).u.vscp = (yyvsp[(1) - (1)].scpvalp);
++ (yyval.value).u.vscp = (yyvsp[0].scpvalp);
+ }
++#line 5742 "../parser.c"
+ break;
+
+- case 356:
+-#line 2887 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 357: /* simplevalue: basetype '(' exprlist ')' */
++#line 2913 "parser.y"
++ {
+ fcallDef *fcd;
+
+ fcd = sipMalloc(sizeof (fcallDef));
+- *fcd = (yyvsp[(3) - (4)].fcall);
+- fcd -> type = (yyvsp[(1) - (4)].memArg);
++ *fcd = (yyvsp[-1].fcall);
++ fcd -> type = (yyvsp[-3].memArg);
+
+ (yyval.value).vtype = fcall_value;
+ (yyval.value).u.fcd = fcd;
+ }
++#line 5757 "../parser.c"
+ break;
+
+- case 357:
+-#line 2897 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 358: /* simplevalue: '{' '}' */
++#line 2923 "parser.y"
++ {
+ (yyval.value).vtype = empty_value;
+ }
++#line 5765 "../parser.c"
+ break;
+
+- case 358:
+-#line 2900 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 359: /* simplevalue: TK_REAL_VALUE */
++#line 2926 "parser.y"
++ {
+ (yyval.value).vtype = real_value;
+- (yyval.value).u.vreal = (yyvsp[(1) - (1)].real);
++ (yyval.value).u.vreal = (yyvsp[0].real);
+ }
++#line 5774 "../parser.c"
+ break;
+
+- case 359:
+-#line 2904 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 360: /* simplevalue: TK_NUMBER_VALUE */
++#line 2930 "parser.y"
++ {
+ (yyval.value).vtype = numeric_value;
+- (yyval.value).u.vnum = (yyvsp[(1) - (1)].number);
++ (yyval.value).u.vnum = (yyvsp[0].number);
+ }
++#line 5783 "../parser.c"
+ break;
+
+- case 360:
+-#line 2908 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 361: /* simplevalue: bool_value */
++#line 2934 "parser.y"
++ {
+ (yyval.value).vtype = numeric_value;
+- (yyval.value).u.vnum = (yyvsp[(1) - (1)].boolean);
++ (yyval.value).u.vnum = (yyvsp[0].boolean);
+ }
++#line 5792 "../parser.c"
+ break;
+
+- case 361:
+-#line 2912 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 362: /* simplevalue: TK_NULL_VALUE */
++#line 2938 "parser.y"
++ {
+ (yyval.value).vtype = numeric_value;
+ (yyval.value).u.vnum = 0;
+ }
++#line 5801 "../parser.c"
+ break;
+
+- case 362:
+-#line 2916 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 363: /* simplevalue: TK_STRING_VALUE */
++#line 2942 "parser.y"
++ {
+ (yyval.value).vtype = string_value;
+- (yyval.value).u.vstr = (yyvsp[(1) - (1)].text);
++ (yyval.value).u.vstr = (yyvsp[0].text);
+ }
++#line 5810 "../parser.c"
+ break;
+
+- case 363:
+-#line 2920 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 364: /* simplevalue: TK_QCHAR_VALUE */
++#line 2946 "parser.y"
++ {
+ (yyval.value).vtype = qchar_value;
+- (yyval.value).u.vqchar = (yyvsp[(1) - (1)].qchar);
++ (yyval.value).u.vqchar = (yyvsp[0].qchar);
+ }
++#line 5819 "../parser.c"
+ break;
+
+- case 364:
+-#line 2926 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 365: /* exprlist: %empty */
++#line 2952 "parser.y"
++ {
+ /* No values. */
+
+ (yyval.fcall).nrArgs = 0;
+ }
++#line 5829 "../parser.c"
+ break;
+
+- case 365:
+-#line 2931 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 366: /* exprlist: expr */
++#line 2957 "parser.y"
++ {
+ /* The single or first expression. */
+
+- (yyval.fcall).args[0] = (yyvsp[(1) - (1)].valp);
++ (yyval.fcall).args[0] = (yyvsp[0].valp);
+ (yyval.fcall).nrArgs = 1;
+ }
++#line 5840 "../parser.c"
+ break;
+
+- case 366:
+-#line 2937 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 367: /* exprlist: exprlist ',' expr */
++#line 2963 "parser.y"
++ {
+ /* Check that it wasn't ...(,expression...). */
+
+ if ((yyval.fcall).nrArgs == 0)
+@@ -5971,19 +5849,20 @@ yyreduce:
+
+ /* Check there is room. */
+
+- if ((yyvsp[(1) - (3)].fcall).nrArgs == MAX_NR_ARGS)
++ if ((yyvsp[-2].fcall).nrArgs == MAX_NR_ARGS)
+ yyerror("Internal error - increase the value of MAX_NR_ARGS");
+
+- (yyval.fcall) = (yyvsp[(1) - (3)].fcall);
++ (yyval.fcall) = (yyvsp[-2].fcall);
+
+- (yyval.fcall).args[(yyval.fcall).nrArgs] = (yyvsp[(3) - (3)].valp);
++ (yyval.fcall).args[(yyval.fcall).nrArgs] = (yyvsp[0].valp);
+ (yyval.fcall).nrArgs++;
+ }
++#line 5861 "../parser.c"
+ break;
+
+- case 367:
+-#line 2955 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 368: /* typedef: TK_TYPEDEF cpptype TK_NAME_VALUE optflags ';' optdocstring */
++#line 2981 "parser.y"
++ {
+ if (notSkipping())
+ {
+ const char *annos[] = {
+@@ -5999,17 +5878,18 @@ yyreduce:
+ NULL
+ };
+
+- checkAnnos(&(yyvsp[(4) - (6)].optflags), annos);
++ checkAnnos(&(yyvsp[-2].optflags), annos);
+
+- applyTypeFlags(currentModule, &(yyvsp[(2) - (6)].memArg), &(yyvsp[(4) - (6)].optflags));
+- newTypedef(currentSpec, currentModule, (yyvsp[(3) - (6)].text), &(yyvsp[(2) - (6)].memArg), &(yyvsp[(4) - (6)].optflags), (yyvsp[(6) - (6)].docstr));
++ applyTypeFlags(currentModule, &(yyvsp[-4].memArg), &(yyvsp[-2].optflags));
++ newTypedef(currentSpec, currentModule, (yyvsp[-3].text), &(yyvsp[-4].memArg), &(yyvsp[-2].optflags), (yyvsp[0].docstr));
+ }
+ }
++#line 5888 "../parser.c"
+ break;
+
+- case 368:
+-#line 2977 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 369: /* typedef: TK_TYPEDEF cpptype '(' '*' TK_NAME_VALUE ')' '(' cpptypelist ')' optflags ';' optdocstring */
++#line 3003 "parser.y"
++ {
+ if (notSkipping())
+ {
+ const char *annos[] = {
+@@ -6027,41 +5907,43 @@ yyreduce:
+ signatureDef *sig;
+ argDef ftype;
+
+- checkAnnos(&(yyvsp[(10) - (12)].optflags), annos);
++ checkAnnos(&(yyvsp[-2].optflags), annos);
+
+- applyTypeFlags(currentModule, &(yyvsp[(2) - (12)].memArg), &(yyvsp[(10) - (12)].optflags));
++ applyTypeFlags(currentModule, &(yyvsp[-10].memArg), &(yyvsp[-2].optflags));
+
+ memset(&ftype, 0, sizeof (argDef));
+
+ /* Create the full signature on the heap. */
+ sig = sipMalloc(sizeof (signatureDef));
+- *sig = (yyvsp[(8) - (12)].signature);
+- sig->result = (yyvsp[(2) - (12)].memArg);
++ *sig = (yyvsp[-4].signature);
++ sig->result = (yyvsp[-10].memArg);
+
+ /* Create the full type. */
+ ftype.atype = function_type;
+ ftype.nrderefs = 1;
+ ftype.u.sa = sig;
+
+- newTypedef(currentSpec, currentModule, (yyvsp[(5) - (12)].text), &ftype, &(yyvsp[(10) - (12)].optflags), (yyvsp[(12) - (12)].docstr));
++ newTypedef(currentSpec, currentModule, (yyvsp[-7].text), &ftype, &(yyvsp[-2].optflags), (yyvsp[0].docstr));
+ }
+ }
++#line 5930 "../parser.c"
+ break;
+
+- case 369:
+-#line 3016 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- if (currentSpec -> genc && (yyvsp[(2) - (2)].scpvalp)->next != NULL)
++ case 370: /* $@10: %empty */
++#line 3042 "parser.y"
++ {
++ if (currentSpec -> genc && (yyvsp[0].scpvalp)->next != NULL)
+ yyerror("Namespaces not allowed in a C module");
+
+ if (notSkipping())
+ currentSupers = NULL;
+ }
++#line 5942 "../parser.c"
+ break;
+
+- case 370:
+-#line 3022 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 371: /* $@11: %empty */
++#line 3048 "parser.y"
++ {
+ if (notSkipping())
+ {
+ const char *annos[] = {
+@@ -6091,33 +5973,36 @@ yyreduce:
+ NULL
+ };
+
+- checkAnnos(&(yyvsp[(5) - (5)].optflags), annos);
++ checkAnnos(&(yyvsp[0].optflags), annos);
+
+ if (currentSpec->genc && currentSupers != NULL)
+ yyerror("Super-classes not allowed in a C module struct");
+
+- defineClass((yyvsp[(2) - (5)].scpvalp), currentSupers, &(yyvsp[(5) - (5)].optflags));
++ defineClass((yyvsp[-3].scpvalp), currentSupers, &(yyvsp[0].optflags));
+ sectionFlags = SECT_IS_PUBLIC;
+ }
+ }
++#line 5986 "../parser.c"
+ break;
+
+- case 371:
+-#line 3060 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 372: /* struct: TK_STRUCT scopedname $@10 superclasses optflags $@11 optclassbody ';' */
++#line 3086 "parser.y"
++ {
+ if (notSkipping())
+- completeClass((yyvsp[(2) - (8)].scpvalp), &(yyvsp[(5) - (8)].optflags), (yyvsp[(7) - (8)].boolean));
++ completeClass((yyvsp[-6].scpvalp), &(yyvsp[-3].optflags), (yyvsp[-1].boolean));
+ }
++#line 5995 "../parser.c"
+ break;
+
+- case 372:
+-#line 3066 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {currentIsTemplate = TRUE;}
++ case 373: /* $@12: %empty */
++#line 3092 "parser.y"
++ {currentIsTemplate = TRUE;}
++#line 6001 "../parser.c"
+ break;
+
+- case 373:
+-#line 3066 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 374: /* classtmpl: template $@12 class */
++#line 3092 "parser.y"
++ {
+ if (currentSpec->genc)
+ yyerror("Class templates not allowed in a C module");
+
+@@ -6128,12 +6013,12 @@ yyreduce:
+ /*
+ * Make sure there is room for the extra class name argument.
+ */
+- if ((yyvsp[(1) - (3)].signature).nrArgs == MAX_NR_ARGS)
++ if ((yyvsp[-2].signature).nrArgs == MAX_NR_ARGS)
+ yyerror("Internal error - increase the value of MAX_NR_ARGS");
+
+ tcd = sipMalloc(sizeof (classTmplDef));
+- tcd->sig = (yyvsp[(1) - (3)].signature);
+- tcd->cd = (yyvsp[(3) - (3)].klass);
++ tcd->sig = (yyvsp[-2].signature);
++ tcd->cd = (yyvsp[0].klass);
+ tcd->next = currentSpec->classtemplates;
+
+ currentSpec->classtemplates = tcd;
+@@ -6141,29 +6026,32 @@ yyreduce:
+
+ currentIsTemplate = FALSE;
+ }
++#line 6030 "../parser.c"
+ break;
+
+- case 374:
+-#line 3092 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.signature) = (yyvsp[(3) - (4)].signature);
++ case 375: /* template: TK_TEMPLATE '<' cpptypelist '>' */
++#line 3118 "parser.y"
++ {
++ (yyval.signature) = (yyvsp[-1].signature);
+ }
++#line 6038 "../parser.c"
+ break;
+
+- case 375:
+-#line 3097 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 376: /* $@13: %empty */
++#line 3123 "parser.y"
++ {
+ if (currentSpec->genc)
+ yyerror("Class definition not allowed in a C module");
+
+ if (notSkipping())
+ currentSupers = NULL;
+ }
++#line 6050 "../parser.c"
+ break;
+
+- case 376:
+-#line 3103 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 377: /* $@14: %empty */
++#line 3129 "parser.y"
++ {
+ if (notSkipping())
+ {
+ const char *annos[] = {
+@@ -6192,30 +6080,32 @@ yyreduce:
+ NULL
+ };
+
+- checkAnnos(&(yyvsp[(5) - (5)].optflags), annos);
++ checkAnnos(&(yyvsp[0].optflags), annos);
+
+- defineClass((yyvsp[(2) - (5)].scpvalp), currentSupers, &(yyvsp[(5) - (5)].optflags));
++ defineClass((yyvsp[-3].scpvalp), currentSupers, &(yyvsp[0].optflags));
+ sectionFlags = SECT_IS_PRIVATE;
+ }
+ }
++#line 6090 "../parser.c"
+ break;
+
+- case 377:
+-#line 3137 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 378: /* class: TK_CLASS scopedname $@13 superclasses optflags $@14 optclassbody ';' */
++#line 3163 "parser.y"
++ {
+ if (notSkipping())
+- (yyval.klass) = completeClass((yyvsp[(2) - (8)].scpvalp), &(yyvsp[(5) - (8)].optflags), (yyvsp[(7) - (8)].boolean));
++ (yyval.klass) = completeClass((yyvsp[-6].scpvalp), &(yyvsp[-3].optflags), (yyvsp[-1].boolean));
+ }
++#line 6099 "../parser.c"
+ break;
+
+- case 382:
+-#line 3151 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- if (notSkipping() && (yyvsp[(1) - (2)].token) == TK_PUBLIC)
++ case 383: /* superclass: class_access scopedname */
++#line 3177 "parser.y"
++ {
++ if (notSkipping() && (yyvsp[-1].token) == TK_PUBLIC)
+ {
+ argDef ad;
+ classDef *super;
+- scopedNameDef *snd = (yyvsp[(2) - (2)].scpvalp);
++ scopedNameDef *snd = (yyvsp[0].scpvalp);
+
+ /*
+ * This is a hack to allow typedef'ed classes to be used before
+@@ -6260,53 +6150,60 @@ yyreduce:
+ appendToClassList(&currentSupers, super);
+ }
+ }
++#line 6154 "../parser.c"
+ break;
+
+- case 383:
+-#line 3203 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 384: /* class_access: %empty */
++#line 3229 "parser.y"
++ {
+ (yyval.token) = TK_PUBLIC;
+ }
++#line 6162 "../parser.c"
+ break;
+
+- case 384:
+-#line 3206 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 385: /* class_access: TK_PUBLIC */
++#line 3232 "parser.y"
++ {
+ (yyval.token) = TK_PUBLIC;
+ }
++#line 6170 "../parser.c"
+ break;
+
+- case 385:
+-#line 3209 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 386: /* class_access: TK_PROTECTED */
++#line 3235 "parser.y"
++ {
+ (yyval.token) = TK_PROTECTED;
+ }
++#line 6178 "../parser.c"
+ break;
+
+- case 386:
+-#line 3212 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 387: /* class_access: TK_PRIVATE */
++#line 3238 "parser.y"
++ {
+ (yyval.token) = TK_PRIVATE;
+ }
++#line 6186 "../parser.c"
+ break;
+
+- case 387:
+-#line 3217 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 388: /* optclassbody: %empty */
++#line 3243 "parser.y"
++ {
+ (yyval.boolean) = FALSE;
+ }
++#line 6194 "../parser.c"
+ break;
+
+- case 388:
+-#line 3220 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 389: /* optclassbody: '{' classbody '}' */
++#line 3246 "parser.y"
++ {
+ (yyval.boolean) = TRUE;
+ }
++#line 6202 "../parser.c"
+ break;
+
+- case 402:
+-#line 3240 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 403: /* classline: docstring */
++#line 3266 "parser.y"
++ {
+ if (notSkipping())
+ {
+ classDef *scope = currentScope();
+@@ -6314,30 +6211,33 @@ yyreduce:
+ if (scope->docstring != NULL)
+ yyerror("%Docstring already given for class");
+
+- scope->docstring = (yyvsp[(1) - (1)].docstr);
++ scope->docstring = (yyvsp[0].docstr);
+ }
+ }
++#line 6218 "../parser.c"
+ break;
+
+- case 403:
+-#line 3251 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 404: /* classline: typecode */
++#line 3277 "parser.y"
++ {
+ if (notSkipping())
+- appendCodeBlock(&currentScope()->cppcode, (yyvsp[(1) - (1)].codeb));
++ appendCodeBlock(&currentScope()->cppcode, (yyvsp[0].codeb));
+ }
++#line 6227 "../parser.c"
+ break;
+
+- case 404:
+-#line 3255 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 405: /* classline: typehdrcode */
++#line 3281 "parser.y"
++ {
+ if (notSkipping())
+- appendCodeBlock(&currentScope()->iff->hdrcode, (yyvsp[(1) - (1)].codeb));
++ appendCodeBlock(&currentScope()->iff->hdrcode, (yyvsp[0].codeb));
+ }
++#line 6236 "../parser.c"
+ break;
+
+- case 405:
+-#line 3259 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 406: /* classline: travcode */
++#line 3285 "parser.y"
++ {
+ if (notSkipping())
+ {
+ classDef *scope = currentScope();
+@@ -6345,14 +6245,15 @@ yyreduce:
+ if (scope->travcode != NULL)
+ yyerror("%GCTraverseCode already given for class");
+
+- appendCodeBlock(&scope->travcode, (yyvsp[(1) - (1)].codeb));
++ appendCodeBlock(&scope->travcode, (yyvsp[0].codeb));
+ }
+ }
++#line 6252 "../parser.c"
+ break;
+
+- case 406:
+-#line 3270 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 407: /* classline: clearcode */
++#line 3296 "parser.y"
++ {
+ if (notSkipping())
+ {
+ classDef *scope = currentScope();
+@@ -6360,14 +6261,15 @@ yyreduce:
+ if (scope->clearcode != NULL)
+ yyerror("%GCClearCode already given for class");
+
+- appendCodeBlock(&scope->clearcode, (yyvsp[(1) - (1)].codeb));
++ appendCodeBlock(&scope->clearcode, (yyvsp[0].codeb));
+ }
+ }
++#line 6268 "../parser.c"
+ break;
+
+- case 407:
+-#line 3281 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 408: /* classline: getbufcode */
++#line 3307 "parser.y"
++ {
+ if (notSkipping())
+ {
+ classDef *scope = currentScope();
+@@ -6375,14 +6277,15 @@ yyreduce:
+ if (scope->getbufcode != NULL)
+ yyerror("%BIGetBufferCode already given for class");
+
+- appendCodeBlock(&scope->getbufcode, (yyvsp[(1) - (1)].codeb));
++ appendCodeBlock(&scope->getbufcode, (yyvsp[0].codeb));
+ }
+ }
++#line 6284 "../parser.c"
+ break;
+
+- case 408:
+-#line 3292 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 409: /* classline: releasebufcode */
++#line 3318 "parser.y"
++ {
+ if (notSkipping())
+ {
+ classDef *scope = currentScope();
+@@ -6390,14 +6293,15 @@ yyreduce:
+ if (scope->releasebufcode != NULL)
+ yyerror("%BIReleaseBufferCode already given for class");
+
+- appendCodeBlock(&scope->releasebufcode, (yyvsp[(1) - (1)].codeb));
++ appendCodeBlock(&scope->releasebufcode, (yyvsp[0].codeb));
+ }
+ }
++#line 6300 "../parser.c"
+ break;
+
+- case 409:
+-#line 3303 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 410: /* classline: readbufcode */
++#line 3329 "parser.y"
++ {
+ if (notSkipping())
+ {
+ classDef *scope = currentScope();
+@@ -6405,14 +6309,15 @@ yyreduce:
+ if (scope->readbufcode != NULL)
+ yyerror("%BIGetReadBufferCode already given for class");
+
+- appendCodeBlock(&scope->readbufcode, (yyvsp[(1) - (1)].codeb));
++ appendCodeBlock(&scope->readbufcode, (yyvsp[0].codeb));
+ }
+ }
++#line 6316 "../parser.c"
+ break;
+
+- case 410:
+-#line 3314 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 411: /* classline: writebufcode */
++#line 3340 "parser.y"
++ {
+ if (notSkipping())
+ {
+ classDef *scope = currentScope();
+@@ -6420,14 +6325,15 @@ yyreduce:
+ if (scope->writebufcode != NULL)
+ yyerror("%BIGetWriteBufferCode already given for class");
+
+- appendCodeBlock(&scope->writebufcode, (yyvsp[(1) - (1)].codeb));
++ appendCodeBlock(&scope->writebufcode, (yyvsp[0].codeb));
+ }
+ }
++#line 6332 "../parser.c"
+ break;
+
+- case 411:
+-#line 3325 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 412: /* classline: segcountcode */
++#line 3351 "parser.y"
++ {
+ if (notSkipping())
+ {
+ classDef *scope = currentScope();
+@@ -6435,14 +6341,15 @@ yyreduce:
+ if (scope->segcountcode != NULL)
+ yyerror("%BIGetSegCountCode already given for class");
+
+- appendCodeBlock(&scope->segcountcode, (yyvsp[(1) - (1)].codeb));
++ appendCodeBlock(&scope->segcountcode, (yyvsp[0].codeb));
+ }
+ }
++#line 6348 "../parser.c"
+ break;
+
+- case 412:
+-#line 3336 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 413: /* classline: charbufcode */
++#line 3362 "parser.y"
++ {
+ if (notSkipping())
+ {
+ classDef *scope = currentScope();
+@@ -6450,14 +6357,15 @@ yyreduce:
+ if (scope->charbufcode != NULL)
+ yyerror("%BIGetCharBufferCode already given for class");
+
+- appendCodeBlock(&scope->charbufcode, (yyvsp[(1) - (1)].codeb));
++ appendCodeBlock(&scope->charbufcode, (yyvsp[0].codeb));
+ }
+ }
++#line 6364 "../parser.c"
+ break;
+
+- case 413:
+-#line 3347 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 414: /* classline: instancecode */
++#line 3373 "parser.y"
++ {
+ if (notSkipping())
+ {
+ classDef *scope = currentScope();
+@@ -6465,14 +6373,15 @@ yyreduce:
+ if (scope->instancecode != NULL)
+ yyerror("%InstanceCode already given for class");
+
+- appendCodeBlock(&scope->instancecode, (yyvsp[(1) - (1)].codeb));
++ appendCodeBlock(&scope->instancecode, (yyvsp[0].codeb));
+ }
+ }
++#line 6380 "../parser.c"
+ break;
+
+- case 414:
+-#line 3358 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 415: /* classline: picklecode */
++#line 3384 "parser.y"
++ {
+ if (notSkipping())
+ {
+ classDef *scope = currentScope();
+@@ -6480,14 +6389,15 @@ yyreduce:
+ if (scope->picklecode != NULL)
+ yyerror("%PickleCode already given for class");
+
+- appendCodeBlock(&scope->picklecode, (yyvsp[(1) - (1)].codeb));
++ appendCodeBlock(&scope->picklecode, (yyvsp[0].codeb));
+ }
+ }
++#line 6396 "../parser.c"
+ break;
+
+- case 415:
+-#line 3369 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 416: /* classline: finalcode */
++#line 3395 "parser.y"
++ {
+ if (notSkipping())
+ {
+ classDef *scope = currentScope();
+@@ -6495,14 +6405,15 @@ yyreduce:
+ if (scope->finalcode != NULL)
+ yyerror("%FinalisationCode already given for class");
+
+- appendCodeBlock(&scope->finalcode, (yyvsp[(1) - (1)].codeb));
++ appendCodeBlock(&scope->finalcode, (yyvsp[0].codeb));
+ }
+ }
++#line 6412 "../parser.c"
+ break;
+
+- case 416:
+-#line 3380 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 417: /* classline: classtypehintcode */
++#line 3406 "parser.y"
++ {
+ if (notSkipping())
+ {
+ classDef *scope = currentScope();
+@@ -6510,14 +6421,15 @@ yyreduce:
+ if (scope->typehintcode != NULL)
+ yyerror("%TypeHintCode already given for class");
+
+- appendCodeBlock(&scope->typehintcode, (yyvsp[(1) - (1)].codeb));
++ appendCodeBlock(&scope->typehintcode, (yyvsp[0].codeb));
+ }
+ }
++#line 6428 "../parser.c"
+ break;
+
+- case 420:
+-#line 3394 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 421: /* classline: TK_TOSUBCLASS codeblock */
++#line 3420 "parser.y"
++ {
+ if (notSkipping())
+ {
+ classDef *scope = currentScope();
+@@ -6525,14 +6437,15 @@ yyreduce:
+ if (scope->convtosubcode != NULL)
+ yyerror("Class has more than one %ConvertToSubClassCode directive");
+
+- appendCodeBlock(&scope->convtosubcode, (yyvsp[(2) - (2)].codeb));
++ appendCodeBlock(&scope->convtosubcode, (yyvsp[0].codeb));
+ }
+ }
++#line 6444 "../parser.c"
+ break;
+
+- case 421:
+-#line 3405 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 422: /* classline: TK_TOTYPE codeblock */
++#line 3431 "parser.y"
++ {
+ if (notSkipping())
+ {
+ classDef *scope = currentScope();
+@@ -6540,14 +6453,15 @@ yyreduce:
+ if (scope->convtocode != NULL)
+ yyerror("Class has more than one %ConvertToTypeCode directive");
+
+- appendCodeBlock(&scope->convtocode, (yyvsp[(2) - (2)].codeb));
++ appendCodeBlock(&scope->convtocode, (yyvsp[0].codeb));
+ }
+ }
++#line 6460 "../parser.c"
+ break;
+
+- case 422:
+-#line 3416 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 423: /* classline: TK_FROMTYPE codeblock */
++#line 3442 "parser.y"
++ {
+ if (notSkipping())
+ {
+ classDef *scope = currentScope();
+@@ -6555,172 +6469,188 @@ yyreduce:
+ if (scope->convfromcode != NULL)
+ yyerror("Class has more than one %ConvertFromTypeCode directive");
+
+- appendCodeBlock(&scope->convfromcode, (yyvsp[(2) - (2)].codeb));
++ appendCodeBlock(&scope->convfromcode, (yyvsp[0].codeb));
+ }
+ }
++#line 6476 "../parser.c"
+ break;
+
+- case 423:
+-#line 3427 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 424: /* classline: TK_PUBLIC optslot ':' */
++#line 3453 "parser.y"
++ {
+ if (currentSpec -> genc)
+ yyerror("public section not allowed in a C module");
+
+ if (notSkipping())
+- sectionFlags = SECT_IS_PUBLIC | (yyvsp[(2) - (3)].number);
++ sectionFlags = SECT_IS_PUBLIC | (yyvsp[-1].number);
+ }
++#line 6488 "../parser.c"
+ break;
+
+- case 424:
+-#line 3434 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 425: /* classline: TK_PROTECTED optslot ':' */
++#line 3460 "parser.y"
++ {
+ if (currentSpec -> genc)
+ yyerror("protected section not allowed in a C module");
+
+ if (notSkipping())
+- sectionFlags = SECT_IS_PROT | (yyvsp[(2) - (3)].number);
++ sectionFlags = SECT_IS_PROT | (yyvsp[-1].number);
+ }
++#line 6500 "../parser.c"
+ break;
+
+- case 425:
+-#line 3441 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 426: /* classline: TK_PRIVATE optslot ':' */
++#line 3467 "parser.y"
++ {
+ if (currentSpec -> genc)
+ yyerror("private section not allowed in a C module");
+
+ if (notSkipping())
+- sectionFlags = SECT_IS_PRIVATE | (yyvsp[(2) - (3)].number);
++ sectionFlags = SECT_IS_PRIVATE | (yyvsp[-1].number);
+ }
++#line 6512 "../parser.c"
+ break;
+
+- case 426:
+-#line 3448 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 427: /* classline: TK_SIGNALS ':' */
++#line 3474 "parser.y"
++ {
+ if (currentSpec -> genc)
+ yyerror("signals section not allowed in a C module");
+
+ if (notSkipping())
+ sectionFlags = SECT_IS_SIGNAL;
+ }
++#line 6524 "../parser.c"
+ break;
+
+- case 427:
+-#line 3457 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- if ((yyvsp[(2) - (3)].property).name == NULL)
++ case 428: /* property: TK_PROPERTY property_args property_body */
++#line 3483 "parser.y"
++ {
++ if ((yyvsp[-1].property).name == NULL)
+ yyerror("A %Property directive must have a 'name' argument");
+
+- if ((yyvsp[(2) - (3)].property).get == NULL)
++ if ((yyvsp[-1].property).get == NULL)
+ yyerror("A %Property directive must have a 'get' argument");
+
+ if (notSkipping())
+ addProperty(currentSpec, currentModule, currentScope(),
+- (yyvsp[(2) - (3)].property).name, (yyvsp[(2) - (3)].property).get, (yyvsp[(2) - (3)].property).set, (yyvsp[(3) - (3)].property).docstring);
++ (yyvsp[-1].property).name, (yyvsp[-1].property).get, (yyvsp[-1].property).set, (yyvsp[0].property).docstring);
+ }
++#line 6540 "../parser.c"
+ break;
+
+- case 428:
+-#line 3470 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.property) = (yyvsp[(2) - (3)].property);
++ case 429: /* property_args: '(' property_arg_list ')' */
++#line 3496 "parser.y"
++ {
++ (yyval.property) = (yyvsp[-1].property);
+ }
++#line 6548 "../parser.c"
+ break;
+
+- case 430:
+-#line 3476 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.property) = (yyvsp[(1) - (3)].property);
++ case 431: /* property_arg_list: property_arg_list ',' property_arg */
++#line 3502 "parser.y"
++ {
++ (yyval.property) = (yyvsp[-2].property);
+
+- switch ((yyvsp[(3) - (3)].property).token)
++ switch ((yyvsp[0].property).token)
+ {
+- case TK_GET: (yyval.property).get = (yyvsp[(3) - (3)].property).get; break;
+- case TK_NAME: (yyval.property).name = (yyvsp[(3) - (3)].property).name; break;
+- case TK_SET: (yyval.property).set = (yyvsp[(3) - (3)].property).set; break;
++ case TK_GET: (yyval.property).get = (yyvsp[0].property).get; break;
++ case TK_NAME: (yyval.property).name = (yyvsp[0].property).name; break;
++ case TK_SET: (yyval.property).set = (yyvsp[0].property).set; break;
+ }
+ }
++#line 6563 "../parser.c"
+ break;
+
+- case 431:
+-#line 3488 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 432: /* property_arg: TK_GET '=' TK_NAME_VALUE */
++#line 3514 "parser.y"
++ {
+ (yyval.property).token = TK_GET;
+
+- (yyval.property).get = (yyvsp[(3) - (3)].text);
++ (yyval.property).get = (yyvsp[0].text);
+ (yyval.property).name = NULL;
+ (yyval.property).set = NULL;
+ }
++#line 6575 "../parser.c"
+ break;
+
+- case 432:
+-#line 3495 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 433: /* property_arg: TK_NAME '=' name_or_string */
++#line 3521 "parser.y"
++ {
+ (yyval.property).token = TK_NAME;
+
+ (yyval.property).get = NULL;
+- (yyval.property).name = (yyvsp[(3) - (3)].text);
++ (yyval.property).name = (yyvsp[0].text);
+ (yyval.property).set = NULL;
+ }
++#line 6587 "../parser.c"
+ break;
+
+- case 433:
+-#line 3502 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 434: /* property_arg: TK_SET '=' TK_NAME_VALUE */
++#line 3528 "parser.y"
++ {
+ (yyval.property).token = TK_SET;
+
+ (yyval.property).get = NULL;
+ (yyval.property).name = NULL;
+- (yyval.property).set = (yyvsp[(3) - (3)].text);
++ (yyval.property).set = (yyvsp[0].text);
+ }
++#line 6599 "../parser.c"
+ break;
+
+- case 434:
+-#line 3511 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 435: /* property_body: %empty */
++#line 3537 "parser.y"
++ {
+ (yyval.property).token = 0;
+ (yyval.property).docstring = NULL;
+ }
++#line 6608 "../parser.c"
+ break;
+
+- case 435:
+-#line 3515 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.property) = (yyvsp[(2) - (4)].property);
++ case 436: /* property_body: '{' property_body_directives '}' ';' */
++#line 3541 "parser.y"
++ {
++ (yyval.property) = (yyvsp[-2].property);
+ }
++#line 6616 "../parser.c"
+ break;
+
+- case 437:
+-#line 3521 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.property) = (yyvsp[(1) - (2)].property);
++ case 438: /* property_body_directives: property_body_directives property_body_directive */
++#line 3547 "parser.y"
++ {
++ (yyval.property) = (yyvsp[-1].property);
+
+- switch ((yyvsp[(2) - (2)].property).token)
++ switch ((yyvsp[0].property).token)
+ {
+- case TK_DOCSTRING: (yyval.property).docstring = (yyvsp[(2) - (2)].property).docstring; break;
++ case TK_DOCSTRING: (yyval.property).docstring = (yyvsp[0].property).docstring; break;
+ }
+ }
++#line 6629 "../parser.c"
+ break;
+
+- case 438:
+-#line 3531 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 439: /* property_body_directive: ifstart */
++#line 3557 "parser.y"
++ {
+ (yyval.property).token = TK_IF;
+ }
++#line 6637 "../parser.c"
+ break;
+
+- case 439:
+-#line 3534 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 440: /* property_body_directive: ifend */
++#line 3560 "parser.y"
++ {
+ (yyval.property).token = TK_END;
+ }
++#line 6645 "../parser.c"
+ break;
+
+- case 440:
+-#line 3537 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 441: /* property_body_directive: docstring */
++#line 3563 "parser.y"
++ {
+ if (notSkipping())
+ {
+ (yyval.property).token = TK_DOCSTRING;
+- (yyval.property).docstring = (yyvsp[(1) - (1)].docstr);
++ (yyval.property).docstring = (yyvsp[0].docstr);
+ }
+ else
+ {
+@@ -6728,30 +6658,34 @@ yyreduce:
+ (yyval.property).docstring = NULL;
+ }
+ }
++#line 6662 "../parser.c"
+ break;
+
+- case 443:
+-#line 3555 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 444: /* optslot: %empty */
++#line 3581 "parser.y"
++ {
+ (yyval.number) = 0;
+ }
++#line 6670 "../parser.c"
+ break;
+
+- case 444:
+-#line 3558 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 445: /* optslot: TK_SLOTS */
++#line 3584 "parser.y"
++ {
+ (yyval.number) = SECT_IS_SLOT;
+ }
++#line 6678 "../parser.c"
+ break;
+
+- case 445:
+-#line 3564 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {currentIsVirt = TRUE;}
++ case 446: /* $@15: %empty */
++#line 3590 "parser.y"
++ {currentIsVirt = TRUE;}
++#line 6684 "../parser.c"
+ break;
+
+- case 448:
+-#line 3568 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 449: /* dtor_decl: '~' TK_NAME_VALUE '(' ')' optexceptions optabstract optflags ';' premethodcode methodcode virtualcatchercode */
++#line 3594 "parser.y"
++ {
+ /* Note that we allow non-virtual dtors in C modules. */
+
+ if (notSkipping())
+@@ -6764,22 +6698,22 @@ yyreduce:
+
+ classDef *cd = currentScope();
+
+- checkAnnos(&(yyvsp[(7) - (11)].optflags), annos);
++ checkAnnos(&(yyvsp[-4].optflags), annos);
+
+- if (strcmp(classBaseName(cd),(yyvsp[(2) - (11)].text)) != 0)
++ if (strcmp(classBaseName(cd),(yyvsp[-9].text)) != 0)
+ yyerror("Destructor doesn't have the same name as its class");
+
+ if (isDtor(cd))
+ yyerror("Destructor has already been defined");
+
+- if (currentSpec -> genc && (yyvsp[(9) - (11)].codeb) == NULL)
++ if (currentSpec -> genc && (yyvsp[-2].codeb) == NULL)
+ yyerror("Destructor in C modules must include %MethodCode");
+
+
+- appendCodeBlock(&cd->dealloccode, (yyvsp[(9) - (11)].codeb)); /* premethodcode */
+- appendCodeBlock(&cd->dealloccode, (yyvsp[(10) - (11)].codeb)); /* methodcode */
+- appendCodeBlock(&cd->dtorcode, (yyvsp[(11) - (11)].codeb));
+- cd -> dtorexceptions = (yyvsp[(5) - (11)].throwlist);
++ appendCodeBlock(&cd->dealloccode, (yyvsp[-2].codeb)); /* premethodcode */
++ appendCodeBlock(&cd->dealloccode, (yyvsp[-1].codeb)); /* methodcode */
++ appendCodeBlock(&cd->dtorcode, (yyvsp[0].codeb));
++ cd -> dtorexceptions = (yyvsp[-6].throwlist);
+
+ /*
+ * Note that we don't apply the protected/public hack to dtors
+@@ -6787,7 +6721,7 @@ yyreduce:
+ */
+ cd->classflags |= sectionFlags;
+
+- if ((yyvsp[(6) - (11)].number))
++ if ((yyvsp[-5].number))
+ {
+ if (!currentIsVirt)
+ yyerror("Abstract destructor must be virtual");
+@@ -6799,7 +6733,7 @@ yyreduce:
+ * The class has a shadow if we have a virtual dtor or some
+ * dtor code.
+ */
+- if (currentIsVirt || (yyvsp[(10) - (11)].codeb) != NULL)
++ if (currentIsVirt || (yyvsp[-1].codeb) != NULL)
+ {
+ if (currentSpec -> genc)
+ yyerror("Virtual destructor or %VirtualCatcherCode not allowed in a C module");
+@@ -6807,24 +6741,26 @@ yyreduce:
+ setNeedsShadow(cd);
+ }
+
+- if (getReleaseGIL(&(yyvsp[(7) - (11)].optflags)))
++ if (getReleaseGIL(&(yyvsp[-4].optflags)))
+ setIsReleaseGILDtor(cd);
+- else if (getHoldGIL(&(yyvsp[(7) - (11)].optflags)))
++ else if (getHoldGIL(&(yyvsp[-4].optflags)))
+ setIsHoldGILDtor(cd);
+ }
+
+ currentIsVirt = FALSE;
+ }
++#line 6753 "../parser.c"
+ break;
+
+- case 449:
+-#line 3634 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {currentCtorIsExplicit = TRUE;}
++ case 450: /* $@16: %empty */
++#line 3660 "parser.y"
++ {currentCtorIsExplicit = TRUE;}
++#line 6759 "../parser.c"
+ break;
+
+- case 452:
+-#line 3638 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 453: /* simplector: TK_NAME_VALUE '(' arglist ')' optexceptions optflags optctorsig ';' optdocstring premethodcode methodcode */
++#line 3664 "parser.y"
++ {
+ /* Note that we allow ctors in C modules. */
+
+ if (notSkipping())
+@@ -6846,11 +6782,11 @@ yyreduce:
+ NULL
+ };
+
+- checkAnnos(&(yyvsp[(6) - (11)].optflags), annos);
++ checkAnnos(&(yyvsp[-5].optflags), annos);
+
+ if (currentSpec -> genc)
+ {
+- if ((yyvsp[(10) - (11)].codeb) == NULL && (yyvsp[(3) - (11)].signature).nrArgs != 0)
++ if ((yyvsp[-1].codeb) == NULL && (yyvsp[-8].signature).nrArgs != 0)
+ yyerror("Constructors with arguments in C modules must include %MethodCode");
+
+ if (currentCtorIsExplicit)
+@@ -6860,80 +6796,87 @@ yyreduce:
+ if ((sectionFlags & (SECT_IS_PUBLIC | SECT_IS_PROT | SECT_IS_PRIVATE)) == 0)
+ yyerror("Constructor must be in the public, private or protected sections");
+
+- newCtor(currentModule, (yyvsp[(1) - (11)].text), sectionFlags, &(yyvsp[(3) - (11)].signature), &(yyvsp[(6) - (11)].optflags), (yyvsp[(11) - (11)].codeb), (yyvsp[(5) - (11)].throwlist), (yyvsp[(7) - (11)].optsignature),
+- currentCtorIsExplicit, (yyvsp[(9) - (11)].docstr), (yyvsp[(10) - (11)].codeb));
++ newCtor(currentModule, (yyvsp[-10].text), sectionFlags, &(yyvsp[-8].signature), &(yyvsp[-5].optflags), (yyvsp[0].codeb), (yyvsp[-6].throwlist), (yyvsp[-4].optsignature),
++ currentCtorIsExplicit, (yyvsp[-2].docstr), (yyvsp[-1].codeb));
+ }
+
+- free((yyvsp[(1) - (11)].text));
++ free((yyvsp[-10].text));
+
+ currentCtorIsExplicit = FALSE;
+ }
++#line 6808 "../parser.c"
+ break;
+
+- case 453:
+-#line 3684 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 454: /* optctorsig: %empty */
++#line 3710 "parser.y"
++ {
+ (yyval.optsignature) = NULL;
+ }
++#line 6816 "../parser.c"
+ break;
+
+- case 454:
+-#line 3687 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 455: /* $@17: %empty */
++#line 3713 "parser.y"
++ {
+ parsingCSignature = TRUE;
+ }
++#line 6824 "../parser.c"
+ break;
+
+- case 455:
+-#line 3689 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 456: /* optctorsig: '[' $@17 '(' arglist ')' ']' */
++#line 3715 "parser.y"
++ {
+ (yyval.optsignature) = sipMalloc(sizeof (signatureDef));
+
+- *(yyval.optsignature) = (yyvsp[(4) - (6)].signature);
++ *(yyval.optsignature) = (yyvsp[-2].signature);
+
+ parsingCSignature = FALSE;
+ }
++#line 6836 "../parser.c"
+ break;
+
+- case 456:
+-#line 3698 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 457: /* optsig: %empty */
++#line 3724 "parser.y"
++ {
+ (yyval.optsignature) = NULL;
+ }
++#line 6844 "../parser.c"
+ break;
+
+- case 457:
+-#line 3701 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 458: /* $@18: %empty */
++#line 3727 "parser.y"
++ {
+ parsingCSignature = TRUE;
+ }
++#line 6852 "../parser.c"
+ break;
+
+- case 458:
+-#line 3703 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 459: /* optsig: '[' $@18 cpptype '(' arglist ')' ']' */
++#line 3729 "parser.y"
++ {
+ (yyval.optsignature) = sipMalloc(sizeof (signatureDef));
+
+- *(yyval.optsignature) = (yyvsp[(5) - (7)].signature);
+- (yyval.optsignature)->result = (yyvsp[(3) - (7)].memArg);
++ *(yyval.optsignature) = (yyvsp[-2].signature);
++ (yyval.optsignature)->result = (yyvsp[-4].memArg);
+
+ parsingCSignature = FALSE;
+ }
++#line 6865 "../parser.c"
+ break;
+
+- case 459:
+-#line 3713 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 460: /* function: cpptype TK_NAME_VALUE '(' arglist ')' optconst optfinal optexceptions optabstract optflags optsig ';' optdocstring premethodcode methodcode virtualcatchercode virtualcallcode */
++#line 3739 "parser.y"
++ {
+ if (notSkipping())
+ {
+- applyTypeFlags(currentModule, &(yyvsp[(1) - (17)].memArg), &(yyvsp[(10) - (17)].optflags));
++ applyTypeFlags(currentModule, &(yyvsp[-16].memArg), &(yyvsp[-7].optflags));
+
+- (yyvsp[(4) - (17)].signature).result = (yyvsp[(1) - (17)].memArg);
++ (yyvsp[-13].signature).result = (yyvsp[-16].memArg);
+
+ newFunction(currentSpec, currentModule, currentScope(), NULL,
+ NULL, sectionFlags, currentIsStatic, currentIsSignal,
+- currentIsSlot, currentIsVirt, (yyvsp[(2) - (17)].text), &(yyvsp[(4) - (17)].signature), (yyvsp[(6) - (17)].number), (yyvsp[(9) - (17)].number), &(yyvsp[(10) - (17)].optflags),
+- (yyvsp[(15) - (17)].codeb), (yyvsp[(16) - (17)].codeb), (yyvsp[(17) - (17)].codeb), (yyvsp[(8) - (17)].throwlist), (yyvsp[(11) - (17)].optsignature), (yyvsp[(13) - (17)].docstr), (yyvsp[(7) - (17)].number), (yyvsp[(14) - (17)].codeb));
++ currentIsSlot, currentIsVirt, (yyvsp[-15].text), &(yyvsp[-13].signature), (yyvsp[-11].number), (yyvsp[-8].number), &(yyvsp[-7].optflags),
++ (yyvsp[-2].codeb), (yyvsp[-1].codeb), (yyvsp[0].codeb), (yyvsp[-9].throwlist), (yyvsp[-6].optsignature), (yyvsp[-4].docstr), (yyvsp[-10].number), (yyvsp[-3].codeb));
+ }
+
+ currentIsStatic = FALSE;
+@@ -6941,11 +6884,12 @@ yyreduce:
+ currentIsSlot = FALSE;
+ currentIsVirt = FALSE;
+ }
++#line 6888 "../parser.c"
+ break;
+
+- case 460:
+-#line 3731 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 461: /* function: cpptype TK_OPERATOR '=' '(' cpptype ')' ';' */
++#line 3757 "parser.y"
++ {
+ /*
+ * It looks like an assignment operator (though we don't bother to
+ * check the types) so make sure it is private.
+@@ -6965,11 +6909,12 @@ yyreduce:
+ currentIsSlot = FALSE;
+ currentIsVirt = FALSE;
+ }
++#line 6913 "../parser.c"
+ break;
+
+- case 461:
+-#line 3751 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 462: /* function: cpptype TK_OPERATOR operatorname '(' arglist ')' optconst optfinal optexceptions optabstract optflags optsig ';' premethodcode methodcode virtualcatchercode virtualcallcode */
++#line 3777 "parser.y"
++ {
+ if (notSkipping())
+ {
+ classDef *cd = currentScope();
+@@ -6989,23 +6934,23 @@ yyreduce:
+ ns_scope = NULL;
+ }
+
+- applyTypeFlags(currentModule, &(yyvsp[(1) - (17)].memArg), &(yyvsp[(11) - (17)].optflags));
++ applyTypeFlags(currentModule, &(yyvsp[-16].memArg), &(yyvsp[-6].optflags));
+
+ /* Handle the unary '+' and '-' operators. */
+- if ((cd != NULL && (yyvsp[(5) - (17)].signature).nrArgs == 0) || (cd == NULL && (yyvsp[(5) - (17)].signature).nrArgs == 1))
++ if ((cd != NULL && (yyvsp[-12].signature).nrArgs == 0) || (cd == NULL && (yyvsp[-12].signature).nrArgs == 1))
+ {
+- if (strcmp((yyvsp[(3) - (17)].text), "__add__") == 0)
+- (yyvsp[(3) - (17)].text) = "__pos__";
+- else if (strcmp((yyvsp[(3) - (17)].text), "__sub__") == 0)
+- (yyvsp[(3) - (17)].text) = "__neg__";
++ if (strcmp((yyvsp[-14].text), "__add__") == 0)
++ (yyvsp[-14].text) = "__pos__";
++ else if (strcmp((yyvsp[-14].text), "__sub__") == 0)
++ (yyvsp[-14].text) = "__neg__";
+ }
+
+- (yyvsp[(5) - (17)].signature).result = (yyvsp[(1) - (17)].memArg);
++ (yyvsp[-12].signature).result = (yyvsp[-16].memArg);
+
+ newFunction(currentSpec, currentModule, cd, ns_scope, NULL,
+ sectionFlags, currentIsStatic, currentIsSignal,
+- currentIsSlot, currentIsVirt, (yyvsp[(3) - (17)].text), &(yyvsp[(5) - (17)].signature), (yyvsp[(7) - (17)].number), (yyvsp[(10) - (17)].number), &(yyvsp[(11) - (17)].optflags),
+- (yyvsp[(15) - (17)].codeb), (yyvsp[(16) - (17)].codeb), (yyvsp[(17) - (17)].codeb), (yyvsp[(9) - (17)].throwlist), (yyvsp[(12) - (17)].optsignature), NULL, (yyvsp[(8) - (17)].number), (yyvsp[(14) - (17)].codeb));
++ currentIsSlot, currentIsVirt, (yyvsp[-14].text), &(yyvsp[-12].signature), (yyvsp[-10].number), (yyvsp[-7].number), &(yyvsp[-6].optflags),
++ (yyvsp[-2].codeb), (yyvsp[-1].codeb), (yyvsp[0].codeb), (yyvsp[-8].throwlist), (yyvsp[-5].optsignature), NULL, (yyvsp[-9].number), (yyvsp[-3].codeb));
+ }
+
+ currentIsStatic = FALSE;
+@@ -7013,22 +6958,23 @@ yyreduce:
+ currentIsSlot = FALSE;
+ currentIsVirt = FALSE;
+ }
++#line 6962 "../parser.c"
+ break;
+
+- case 462:
+-#line 3795 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 463: /* function: TK_OPERATOR cpptype '(' arglist ')' optconst optfinal optexceptions optabstract optflags optsig ';' premethodcode methodcode virtualcatchercode virtualcallcode */
++#line 3821 "parser.y"
++ {
+ if (notSkipping())
+ {
+ char *sname;
+ classDef *scope = currentScope();
+
+- if (scope == NULL || (yyvsp[(4) - (16)].signature).nrArgs != 0)
++ if (scope == NULL || (yyvsp[-12].signature).nrArgs != 0)
+ yyerror("Operator casts must be specified in a class and have no arguments");
+
+- applyTypeFlags(currentModule, &(yyvsp[(2) - (16)].memArg), &(yyvsp[(10) - (16)].optflags));
++ applyTypeFlags(currentModule, &(yyvsp[-14].memArg), &(yyvsp[-6].optflags));
+
+- switch ((yyvsp[(2) - (16)].memArg).atype)
++ switch ((yyvsp[-14].memArg).atype)
+ {
+ case defined_type:
+ sname = NULL;
+@@ -7067,12 +7013,12 @@ yyreduce:
+
+ if (sname != NULL)
+ {
+- (yyvsp[(4) - (16)].signature).result = (yyvsp[(2) - (16)].memArg);
++ (yyvsp[-12].signature).result = (yyvsp[-14].memArg);
+
+ newFunction(currentSpec, currentModule, scope, NULL, NULL,
+ sectionFlags, currentIsStatic, currentIsSignal,
+- currentIsSlot, currentIsVirt, sname, &(yyvsp[(4) - (16)].signature), (yyvsp[(6) - (16)].number), (yyvsp[(9) - (16)].number),
+- &(yyvsp[(10) - (16)].optflags), (yyvsp[(14) - (16)].codeb), (yyvsp[(15) - (16)].codeb), (yyvsp[(16) - (16)].codeb), (yyvsp[(8) - (16)].throwlist), (yyvsp[(11) - (16)].optsignature), NULL, (yyvsp[(7) - (16)].number), (yyvsp[(13) - (16)].codeb));
++ currentIsSlot, currentIsVirt, sname, &(yyvsp[-12].signature), (yyvsp[-10].number), (yyvsp[-7].number),
++ &(yyvsp[-6].optflags), (yyvsp[-2].codeb), (yyvsp[-1].codeb), (yyvsp[0].codeb), (yyvsp[-8].throwlist), (yyvsp[-5].optsignature), NULL, (yyvsp[-9].number), (yyvsp[-3].codeb));
+ }
+ else
+ {
+@@ -7080,11 +7026,11 @@ yyreduce:
+
+ /* Check it doesn't already exist. */
+ for (al = scope->casts; al != NULL; al = al->next)
+- if (compareScopedNames((yyvsp[(2) - (16)].memArg).u.snd, al->arg.u.snd) == 0)
++ if (compareScopedNames((yyvsp[-14].memArg).u.snd, al->arg.u.snd) == 0)
+ yyerror("This operator cast has already been specified in this class");
+
+ al = sipMalloc(sizeof (argList));
+- al->arg = (yyvsp[(2) - (16)].memArg);
++ al->arg = (yyvsp[-14].memArg);
+ al->next = scope->casts;
+
+ scope->casts = al;
+@@ -7096,367 +7042,421 @@ yyreduce:
+ currentIsSlot = FALSE;
+ currentIsVirt = FALSE;
+ }
++#line 7046 "../parser.c"
+ break;
+
+- case 463:
+-#line 3876 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__add__";}
++ case 464: /* operatorname: '+' */
++#line 3902 "parser.y"
++ {(yyval.text) = "__add__";}
++#line 7052 "../parser.c"
+ break;
+
+- case 464:
+-#line 3877 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__sub__";}
++ case 465: /* operatorname: '-' */
++#line 3903 "parser.y"
++ {(yyval.text) = "__sub__";}
++#line 7058 "../parser.c"
+ break;
+
+- case 465:
+-#line 3878 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__mul__";}
++ case 466: /* operatorname: '*' */
++#line 3904 "parser.y"
++ {(yyval.text) = "__mul__";}
++#line 7064 "../parser.c"
+ break;
+
+- case 466:
+-#line 3879 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__div__";}
++ case 467: /* operatorname: '/' */
++#line 3905 "parser.y"
++ {(yyval.text) = "__div__";}
++#line 7070 "../parser.c"
+ break;
+
+- case 467:
+-#line 3880 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__mod__";}
++ case 468: /* operatorname: '%' */
++#line 3906 "parser.y"
++ {(yyval.text) = "__mod__";}
++#line 7076 "../parser.c"
+ break;
+
+- case 468:
+-#line 3881 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__and__";}
++ case 469: /* operatorname: '&' */
++#line 3907 "parser.y"
++ {(yyval.text) = "__and__";}
++#line 7082 "../parser.c"
+ break;
+
+- case 469:
+-#line 3882 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__or__";}
++ case 470: /* operatorname: '|' */
++#line 3908 "parser.y"
++ {(yyval.text) = "__or__";}
++#line 7088 "../parser.c"
+ break;
+
+- case 470:
+-#line 3883 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__xor__";}
++ case 471: /* operatorname: '^' */
++#line 3909 "parser.y"
++ {(yyval.text) = "__xor__";}
++#line 7094 "../parser.c"
+ break;
+
+- case 471:
+-#line 3884 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__lshift__";}
++ case 472: /* operatorname: '<' '<' */
++#line 3910 "parser.y"
++ {(yyval.text) = "__lshift__";}
++#line 7100 "../parser.c"
+ break;
+
+- case 472:
+-#line 3885 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__rshift__";}
++ case 473: /* operatorname: '>' '>' */
++#line 3911 "parser.y"
++ {(yyval.text) = "__rshift__";}
++#line 7106 "../parser.c"
+ break;
+
+- case 473:
+-#line 3886 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__iadd__";}
++ case 474: /* operatorname: '+' '=' */
++#line 3912 "parser.y"
++ {(yyval.text) = "__iadd__";}
++#line 7112 "../parser.c"
+ break;
+
+- case 474:
+-#line 3887 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__isub__";}
++ case 475: /* operatorname: '-' '=' */
++#line 3913 "parser.y"
++ {(yyval.text) = "__isub__";}
++#line 7118 "../parser.c"
+ break;
+
+- case 475:
+-#line 3888 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__imul__";}
++ case 476: /* operatorname: '*' '=' */
++#line 3914 "parser.y"
++ {(yyval.text) = "__imul__";}
++#line 7124 "../parser.c"
+ break;
+
+- case 476:
+-#line 3889 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__idiv__";}
++ case 477: /* operatorname: '/' '=' */
++#line 3915 "parser.y"
++ {(yyval.text) = "__idiv__";}
++#line 7130 "../parser.c"
+ break;
+
+- case 477:
+-#line 3890 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__imod__";}
++ case 478: /* operatorname: '%' '=' */
++#line 3916 "parser.y"
++ {(yyval.text) = "__imod__";}
++#line 7136 "../parser.c"
+ break;
+
+- case 478:
+-#line 3891 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__iand__";}
++ case 479: /* operatorname: '&' '=' */
++#line 3917 "parser.y"
++ {(yyval.text) = "__iand__";}
++#line 7142 "../parser.c"
+ break;
+
+- case 479:
+-#line 3892 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__ior__";}
++ case 480: /* operatorname: '|' '=' */
++#line 3918 "parser.y"
++ {(yyval.text) = "__ior__";}
++#line 7148 "../parser.c"
+ break;
+
+- case 480:
+-#line 3893 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__ixor__";}
++ case 481: /* operatorname: '^' '=' */
++#line 3919 "parser.y"
++ {(yyval.text) = "__ixor__";}
++#line 7154 "../parser.c"
+ break;
+
+- case 481:
+-#line 3894 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__ilshift__";}
++ case 482: /* operatorname: '<' '<' '=' */
++#line 3920 "parser.y"
++ {(yyval.text) = "__ilshift__";}
++#line 7160 "../parser.c"
+ break;
+
+- case 482:
+-#line 3895 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__irshift__";}
++ case 483: /* operatorname: '>' '>' '=' */
++#line 3921 "parser.y"
++ {(yyval.text) = "__irshift__";}
++#line 7166 "../parser.c"
+ break;
+
+- case 483:
+-#line 3896 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__invert__";}
++ case 484: /* operatorname: '~' */
++#line 3922 "parser.y"
++ {(yyval.text) = "__invert__";}
++#line 7172 "../parser.c"
+ break;
+
+- case 484:
+-#line 3897 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__call__";}
++ case 485: /* operatorname: '(' ')' */
++#line 3923 "parser.y"
++ {(yyval.text) = "__call__";}
++#line 7178 "../parser.c"
+ break;
+
+- case 485:
+-#line 3898 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__getitem__";}
++ case 486: /* operatorname: '[' ']' */
++#line 3924 "parser.y"
++ {(yyval.text) = "__getitem__";}
++#line 7184 "../parser.c"
+ break;
+
+- case 486:
+-#line 3899 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__lt__";}
++ case 487: /* operatorname: '<' */
++#line 3925 "parser.y"
++ {(yyval.text) = "__lt__";}
++#line 7190 "../parser.c"
+ break;
+
+- case 487:
+-#line 3900 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__le__";}
++ case 488: /* operatorname: '<' '=' */
++#line 3926 "parser.y"
++ {(yyval.text) = "__le__";}
++#line 7196 "../parser.c"
+ break;
+
+- case 488:
+-#line 3901 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__eq__";}
++ case 489: /* operatorname: '=' '=' */
++#line 3927 "parser.y"
++ {(yyval.text) = "__eq__";}
++#line 7202 "../parser.c"
+ break;
+
+- case 489:
+-#line 3902 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__ne__";}
++ case 490: /* operatorname: '!' '=' */
++#line 3928 "parser.y"
++ {(yyval.text) = "__ne__";}
++#line 7208 "../parser.c"
+ break;
+
+- case 490:
+-#line 3903 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__gt__";}
++ case 491: /* operatorname: '>' */
++#line 3929 "parser.y"
++ {(yyval.text) = "__gt__";}
++#line 7214 "../parser.c"
+ break;
+
+- case 491:
+-#line 3904 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {(yyval.text) = "__ge__";}
++ case 492: /* operatorname: '>' '=' */
++#line 3930 "parser.y"
++ {(yyval.text) = "__ge__";}
++#line 7220 "../parser.c"
+ break;
+
+- case 492:
+-#line 3907 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 493: /* optconst: %empty */
++#line 3933 "parser.y"
++ {
+ (yyval.number) = FALSE;
+ }
++#line 7228 "../parser.c"
+ break;
+
+- case 493:
+-#line 3910 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 494: /* optconst: TK_CONST */
++#line 3936 "parser.y"
++ {
+ (yyval.number) = TRUE;
+ }
++#line 7236 "../parser.c"
+ break;
+
+- case 494:
+-#line 3915 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 495: /* optfinal: %empty */
++#line 3941 "parser.y"
++ {
+ (yyval.number) = FALSE;
+ }
++#line 7244 "../parser.c"
+ break;
+
+- case 495:
+-#line 3918 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 496: /* optfinal: TK_FINAL */
++#line 3944 "parser.y"
++ {
+ (yyval.number) = TRUE;
+ }
++#line 7252 "../parser.c"
+ break;
+
+- case 496:
+-#line 3923 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 497: /* optabstract: %empty */
++#line 3949 "parser.y"
++ {
+ (yyval.number) = 0;
+ }
++#line 7260 "../parser.c"
+ break;
+
+- case 497:
+-#line 3926 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- if ((yyvsp[(2) - (2)].number) != 0)
++ case 498: /* optabstract: '=' TK_NUMBER_VALUE */
++#line 3952 "parser.y"
++ {
++ if ((yyvsp[0].number) != 0)
+ yyerror("Abstract virtual function '= 0' expected");
+
+ (yyval.number) = TRUE;
+ }
++#line 7271 "../parser.c"
+ break;
+
+- case 498:
+-#line 3934 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 499: /* optflags: %empty */
++#line 3960 "parser.y"
++ {
+ (yyval.optflags).nrFlags = 0;
+ }
++#line 7279 "../parser.c"
+ break;
+
+- case 499:
+-#line 3937 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.optflags) = (yyvsp[(2) - (3)].optflags);
++ case 500: /* optflags: '/' flaglist '/' */
++#line 3963 "parser.y"
++ {
++ (yyval.optflags) = (yyvsp[-1].optflags);
+ }
++#line 7287 "../parser.c"
+ break;
+
+- case 500:
+-#line 3943 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.optflags).flags[0] = (yyvsp[(1) - (1)].flag);
++ case 501: /* flaglist: flag */
++#line 3969 "parser.y"
++ {
++ (yyval.optflags).flags[0] = (yyvsp[0].flag);
+ (yyval.optflags).nrFlags = 1;
+ }
++#line 7296 "../parser.c"
+ break;
+
+- case 501:
+-#line 3947 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 502: /* flaglist: flaglist ',' flag */
++#line 3973 "parser.y"
++ {
+ /* Check there is room. */
+
+- if ((yyvsp[(1) - (3)].optflags).nrFlags == MAX_NR_FLAGS)
++ if ((yyvsp[-2].optflags).nrFlags == MAX_NR_FLAGS)
+ yyerror("Too many optional flags");
+
+- (yyval.optflags) = (yyvsp[(1) - (3)].optflags);
++ (yyval.optflags) = (yyvsp[-2].optflags);
+
+- (yyval.optflags).flags[(yyval.optflags).nrFlags++] = (yyvsp[(3) - (3)].flag);
++ (yyval.optflags).flags[(yyval.optflags).nrFlags++] = (yyvsp[0].flag);
+ }
++#line 7311 "../parser.c"
+ break;
+
+- case 502:
+-#line 3959 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 503: /* flag: TK_NAME_VALUE */
++#line 3985 "parser.y"
++ {
+ (yyval.flag).ftype = bool_flag;
+- (yyval.flag).fname = (yyvsp[(1) - (1)].text);
++ (yyval.flag).fname = (yyvsp[0].text);
+ }
++#line 7320 "../parser.c"
+ break;
+
+- case 503:
+-#line 3963 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.flag) = (yyvsp[(3) - (3)].flag);
+- (yyval.flag).fname = (yyvsp[(1) - (3)].text);
++ case 504: /* flag: TK_NAME_VALUE '=' flagvalue */
++#line 3989 "parser.y"
++ {
++ (yyval.flag) = (yyvsp[0].flag);
++ (yyval.flag).fname = (yyvsp[-2].text);
+ }
++#line 7329 "../parser.c"
+ break;
+
+- case 504:
+-#line 3969 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.flag).ftype = (strchr((yyvsp[(1) - (1)].text), '.') != NULL) ? dotted_name_flag : name_flag;
+- (yyval.flag).fvalue.sval = (yyvsp[(1) - (1)].text);
++ case 505: /* flagvalue: dottedname */
++#line 3995 "parser.y"
++ {
++ (yyval.flag).ftype = (strchr((yyvsp[0].text), '.') != NULL) ? dotted_name_flag : name_flag;
++ (yyval.flag).fvalue.sval = (yyvsp[0].text);
+ }
++#line 7338 "../parser.c"
+ break;
+
+- case 505:
+-#line 3973 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 506: /* flagvalue: TK_NAME_VALUE ':' optnumber '-' optnumber */
++#line 3999 "parser.y"
++ {
+ apiVersionRangeDef *avd;
+ int from, to;
+
+ (yyval.flag).ftype = api_range_flag;
+
+ /* Check that the API is known. */
+- if ((avd = findAPI(currentSpec, (yyvsp[(1) - (5)].text))) == NULL)
++ if ((avd = findAPI(currentSpec, (yyvsp[-4].text))) == NULL)
+ yyerror("unknown API name in API annotation");
+
+ if (inMainModule())
+ setIsUsedName(avd->api_name);
+
+ /* Unbounded values are represented by 0. */
+- if ((from = (yyvsp[(3) - (5)].number)) < 0)
++ if ((from = (yyvsp[-2].number)) < 0)
+ from = 0;
+
+- if ((to = (yyvsp[(5) - (5)].number)) < 0)
++ if ((to = (yyvsp[0].number)) < 0)
+ to = 0;
+
+ (yyval.flag).fvalue.aval = convertAPIRange(currentModule, avd->api_name,
+ from, to);
+ }
++#line 7366 "../parser.c"
+ break;
+
+- case 506:
+-#line 3996 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 507: /* flagvalue: TK_STRING_VALUE */
++#line 4022 "parser.y"
++ {
+ (yyval.flag).ftype = string_flag;
+- (yyval.flag).fvalue.sval = convertFeaturedString((yyvsp[(1) - (1)].text));
++ (yyval.flag).fvalue.sval = convertFeaturedString((yyvsp[0].text));
+ }
++#line 7375 "../parser.c"
+ break;
+
+- case 507:
+-#line 4000 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 508: /* flagvalue: TK_NUMBER_VALUE */
++#line 4026 "parser.y"
++ {
+ (yyval.flag).ftype = integer_flag;
+- (yyval.flag).fvalue.ival = (yyvsp[(1) - (1)].number);
++ (yyval.flag).fvalue.ival = (yyvsp[0].number);
+ }
++#line 7384 "../parser.c"
+ break;
+
+- case 508:
+-#line 4006 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 509: /* virtualcallcode: %empty */
++#line 4032 "parser.y"
++ {
+ (yyval.codeb) = NULL;
+ }
++#line 7392 "../parser.c"
+ break;
+
+- case 509:
+-#line 4009 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 510: /* virtualcallcode: TK_VIRTUALCALLCODE codeblock */
++#line 4035 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 7400 "../parser.c"
+ break;
+
+- case 510:
+-#line 4014 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 511: /* methodcode: %empty */
++#line 4040 "parser.y"
++ {
+ (yyval.codeb) = NULL;
+ }
++#line 7408 "../parser.c"
+ break;
+
+- case 511:
+-#line 4017 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 512: /* methodcode: TK_METHODCODE codeblock */
++#line 4043 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 7416 "../parser.c"
+ break;
+
+- case 512:
+-#line 4022 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 513: /* premethodcode: %empty */
++#line 4048 "parser.y"
++ {
+ (yyval.codeb) = NULL;
+ }
++#line 7424 "../parser.c"
+ break;
+
+- case 513:
+-#line 4025 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 514: /* premethodcode: TK_PREMETHODCODE codeblock */
++#line 4051 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 7432 "../parser.c"
+ break;
+
+- case 514:
+-#line 4030 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 515: /* virtualcatchercode: %empty */
++#line 4056 "parser.y"
++ {
+ (yyval.codeb) = NULL;
+ }
++#line 7440 "../parser.c"
+ break;
+
+- case 515:
+-#line 4033 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.codeb) = (yyvsp[(2) - (2)].codeb);
++ case 516: /* virtualcatchercode: TK_VIRTUALCATCHERCODE codeblock */
++#line 4059 "parser.y"
++ {
++ (yyval.codeb) = (yyvsp[0].codeb);
+ }
++#line 7448 "../parser.c"
+ break;
+
+- case 516:
+-#line 4038 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 517: /* arglist: rawarglist */
++#line 4064 "parser.y"
++ {
+ int a, nrrxcon, nrrxdis, nrslotcon, nrslotdis, nrarray, nrarraysize;
+
+ nrrxcon = nrrxdis = nrslotcon = nrslotdis = nrarray = nrarraysize = 0;
+
+- for (a = 0; a < (yyvsp[(1) - (1)].signature).nrArgs; ++a)
++ for (a = 0; a < (yyvsp[0].signature).nrArgs; ++a)
+ {
+- argDef *ad = &(yyvsp[(1) - (1)].signature).args[a];
++ argDef *ad = &(yyvsp[0].signature).args[a];
+
+ switch (ad -> atype)
+ {
+@@ -7497,226 +7497,243 @@ yyreduce:
+ if (nrarray != nrarraysize || nrarray > 1)
+ yyerror("/Array/ and /ArraySize/ must both be given and at most once");
+
+- (yyval.signature) = (yyvsp[(1) - (1)].signature);
++ (yyval.signature) = (yyvsp[0].signature);
+ }
++#line 7503 "../parser.c"
+ break;
+
+- case 517:
+-#line 4090 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 518: /* rawarglist: %empty */
++#line 4116 "parser.y"
++ {
+ /* No arguments. */
+
+ (yyval.signature).nrArgs = 0;
+ }
++#line 7513 "../parser.c"
+ break;
+
+- case 518:
+-#line 4095 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 519: /* rawarglist: argvalue */
++#line 4121 "parser.y"
++ {
+ /* The single or first argument. */
+
+- (yyval.signature).args[0] = (yyvsp[(1) - (1)].memArg);
++ (yyval.signature).args[0] = (yyvsp[0].memArg);
+ (yyval.signature).nrArgs = 1;
+ }
++#line 7524 "../parser.c"
+ break;
+
+- case 519:
+-#line 4101 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 520: /* rawarglist: rawarglist ',' argvalue */
++#line 4127 "parser.y"
++ {
+ /* Check that it wasn't ...(,arg...). */
+- if ((yyvsp[(1) - (3)].signature).nrArgs == 0)
++ if ((yyvsp[-2].signature).nrArgs == 0)
+ yyerror("First argument of the list is missing");
+
+ /*
+ * If this argument has no default value, then the
+ * previous one mustn't either.
+ */
+- if ((yyvsp[(3) - (3)].memArg).defval == NULL && (yyvsp[(1) - (3)].signature).args[(yyvsp[(1) - (3)].signature).nrArgs - 1].defval != NULL)
++ if ((yyvsp[0].memArg).defval == NULL && (yyvsp[-2].signature).args[(yyvsp[-2].signature).nrArgs - 1].defval != NULL)
+ yyerror("Compulsory argument given after optional argument");
+
+ /* Check there is room. */
+- if ((yyvsp[(1) - (3)].signature).nrArgs == MAX_NR_ARGS)
++ if ((yyvsp[-2].signature).nrArgs == MAX_NR_ARGS)
+ yyerror("Internal error - increase the value of MAX_NR_ARGS");
+
+- (yyval.signature) = (yyvsp[(1) - (3)].signature);
++ (yyval.signature) = (yyvsp[-2].signature);
+
+- (yyval.signature).args[(yyval.signature).nrArgs] = (yyvsp[(3) - (3)].memArg);
++ (yyval.signature).args[(yyval.signature).nrArgs] = (yyvsp[0].memArg);
+ (yyval.signature).nrArgs++;
+ }
++#line 7550 "../parser.c"
+ break;
+
+- case 520:
+-#line 4124 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 521: /* argvalue: TK_SIPSIGNAL optname optflags optassign */
++#line 4150 "parser.y"
++ {
+ deprecated("SIP_SIGNAL is deprecated\n");
+- checkNoAnnos(&(yyvsp[(3) - (4)].optflags), "SIP_SIGNAL has no annotations");
++ checkNoAnnos(&(yyvsp[-1].optflags), "SIP_SIGNAL has no annotations");
+
+ (yyval.memArg).atype = signal_type;
+ (yyval.memArg).argflags = ARG_IS_CONST;
+ (yyval.memArg).nrderefs = 0;
+- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (4)].text));
+- (yyval.memArg).defval = (yyvsp[(4) - (4)].valp);
++ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-2].text));
++ (yyval.memArg).defval = (yyvsp[0].valp);
+
+ currentSpec -> sigslots = TRUE;
+ }
++#line 7567 "../parser.c"
+ break;
+
+- case 521:
+-#line 4136 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 522: /* argvalue: TK_SIPSLOT optname optflags optassign */
++#line 4162 "parser.y"
++ {
+ deprecated("SIP_SLOT is deprecated\n");
+- checkNoAnnos(&(yyvsp[(3) - (4)].optflags), "SIP_SLOT has no annotations");
++ checkNoAnnos(&(yyvsp[-1].optflags), "SIP_SLOT has no annotations");
+
+ (yyval.memArg).atype = slot_type;
+ (yyval.memArg).argflags = ARG_IS_CONST;
+ (yyval.memArg).nrderefs = 0;
+- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (4)].text));
+- (yyval.memArg).defval = (yyvsp[(4) - (4)].valp);
++ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-2].text));
++ (yyval.memArg).defval = (yyvsp[0].valp);
+
+ currentSpec -> sigslots = TRUE;
+ }
++#line 7584 "../parser.c"
+ break;
+
+- case 522:
+-#line 4148 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 523: /* argvalue: TK_SIPANYSLOT optname optflags optassign */
++#line 4174 "parser.y"
++ {
+ deprecated("SIP_ANYSLOT is deprecated\n");
+- checkNoAnnos(&(yyvsp[(3) - (4)].optflags), "SIP_ANYSLOT has no annotations");
++ checkNoAnnos(&(yyvsp[-1].optflags), "SIP_ANYSLOT has no annotations");
+
+ (yyval.memArg).atype = anyslot_type;
+ (yyval.memArg).argflags = ARG_IS_CONST;
+ (yyval.memArg).nrderefs = 0;
+- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (4)].text));
+- (yyval.memArg).defval = (yyvsp[(4) - (4)].valp);
++ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-2].text));
++ (yyval.memArg).defval = (yyvsp[0].valp);
+
+ currentSpec -> sigslots = TRUE;
+ }
++#line 7601 "../parser.c"
+ break;
+
+- case 523:
+-#line 4160 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 524: /* argvalue: TK_SIPRXCON optname optflags */
++#line 4186 "parser.y"
++ {
+ const char *annos[] = {
+ "SingleShot",
+ NULL
+ };
+
+ deprecated("SIP_RXOBJ_CON is deprecated\n");
+- checkAnnos(&(yyvsp[(3) - (3)].optflags), annos);
++ checkAnnos(&(yyvsp[0].optflags), annos);
+
+ (yyval.memArg).atype = rxcon_type;
+ (yyval.memArg).argflags = 0;
+ (yyval.memArg).nrderefs = 0;
+- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (3)].text));
++ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text));
+
+- if (getOptFlag(&(yyvsp[(3) - (3)].optflags), "SingleShot", bool_flag) != NULL)
++ if (getOptFlag(&(yyvsp[0].optflags), "SingleShot", bool_flag) != NULL)
+ (yyval.memArg).argflags |= ARG_SINGLE_SHOT;
+
+ currentSpec -> sigslots = TRUE;
+ }
++#line 7625 "../parser.c"
+ break;
+
+- case 524:
+-#line 4179 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 525: /* argvalue: TK_SIPRXDIS optname optflags */
++#line 4205 "parser.y"
++ {
+ deprecated("SIP_RXOBJ_DIS is deprecated\n");
+- checkNoAnnos(&(yyvsp[(3) - (3)].optflags), "SIP_RXOBJ_DIS has no annotations");
++ checkNoAnnos(&(yyvsp[0].optflags), "SIP_RXOBJ_DIS has no annotations");
+
+ (yyval.memArg).atype = rxdis_type;
+ (yyval.memArg).argflags = 0;
+ (yyval.memArg).nrderefs = 0;
+- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (3)].text));
++ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text));
+
+ currentSpec -> sigslots = TRUE;
+ }
++#line 7641 "../parser.c"
+ break;
+
+- case 525:
+-#line 4190 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 526: /* argvalue: TK_SIPSLOTCON '(' arglist ')' optname optflags */
++#line 4216 "parser.y"
++ {
+ deprecated("SIP_SLOT_CON is deprecated\n");
+- checkNoAnnos(&(yyvsp[(6) - (6)].optflags), "SIP_SLOT_CON has no annotations");
++ checkNoAnnos(&(yyvsp[0].optflags), "SIP_SLOT_CON has no annotations");
+
+ (yyval.memArg).atype = slotcon_type;
+ (yyval.memArg).argflags = ARG_IS_CONST;
+ (yyval.memArg).nrderefs = 0;
+- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(5) - (6)].text));
++ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text));
+
+- memset(&(yyvsp[(3) - (6)].signature).result, 0, sizeof (argDef));
+- (yyvsp[(3) - (6)].signature).result.atype = void_type;
++ memset(&(yyvsp[-3].signature).result, 0, sizeof (argDef));
++ (yyvsp[-3].signature).result.atype = void_type;
+
+ (yyval.memArg).u.sa = sipMalloc(sizeof (signatureDef));
+- *(yyval.memArg).u.sa = (yyvsp[(3) - (6)].signature);
++ *(yyval.memArg).u.sa = (yyvsp[-3].signature);
+
+ currentSpec -> sigslots = TRUE;
+ }
++#line 7663 "../parser.c"
+ break;
+
+- case 526:
+-#line 4207 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 527: /* argvalue: TK_SIPSLOTDIS '(' arglist ')' optname optflags */
++#line 4233 "parser.y"
++ {
+ deprecated("SIP_SLOT_DIS is deprecated\n");
+- checkNoAnnos(&(yyvsp[(6) - (6)].optflags), "SIP_SLOT_DIS has no annotations");
++ checkNoAnnos(&(yyvsp[0].optflags), "SIP_SLOT_DIS has no annotations");
+
+ (yyval.memArg).atype = slotdis_type;
+ (yyval.memArg).argflags = ARG_IS_CONST;
+ (yyval.memArg).nrderefs = 0;
+- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(5) - (6)].text));
++ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text));
+
+- memset(&(yyvsp[(3) - (6)].signature).result, 0, sizeof (argDef));
+- (yyvsp[(3) - (6)].signature).result.atype = void_type;
++ memset(&(yyvsp[-3].signature).result, 0, sizeof (argDef));
++ (yyvsp[-3].signature).result.atype = void_type;
+
+ (yyval.memArg).u.sa = sipMalloc(sizeof (signatureDef));
+- *(yyval.memArg).u.sa = (yyvsp[(3) - (6)].signature);
++ *(yyval.memArg).u.sa = (yyvsp[-3].signature);
+
+ currentSpec -> sigslots = TRUE;
+ }
++#line 7685 "../parser.c"
+ break;
+
+- case 527:
+-#line 4224 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 528: /* argvalue: TK_QOBJECT optname optflags */
++#line 4250 "parser.y"
++ {
+ deprecated("SIP_QOBJECT is deprecated\n");
+- checkNoAnnos(&(yyvsp[(3) - (3)].optflags), "SIP_QOBJECT has no annotations");
++ checkNoAnnos(&(yyvsp[0].optflags), "SIP_QOBJECT has no annotations");
+
+ (yyval.memArg).atype = qobject_type;
+ (yyval.memArg).argflags = 0;
+ (yyval.memArg).nrderefs = 0;
+- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (3)].text));
++ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text));
+ }
++#line 7699 "../parser.c"
+ break;
+
+- case 528:
+-#line 4233 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.memArg) = (yyvsp[(1) - (2)].memArg);
+- (yyval.memArg).defval = (yyvsp[(2) - (2)].valp);
++ case 529: /* argvalue: argtype optassign */
++#line 4259 "parser.y"
++ {
++ (yyval.memArg) = (yyvsp[-1].memArg);
++ (yyval.memArg).defval = (yyvsp[0].valp);
+ }
++#line 7708 "../parser.c"
+ break;
+
+- case 529:
+-#line 4240 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {currentIsSignal = TRUE;}
++ case 530: /* $@19: %empty */
++#line 4266 "parser.y"
++ {currentIsSignal = TRUE;}
++#line 7714 "../parser.c"
+ break;
+
+- case 531:
+-#line 4241 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {currentIsSlot = TRUE;}
++ case 532: /* $@20: %empty */
++#line 4267 "parser.y"
++ {currentIsSlot = TRUE;}
++#line 7720 "../parser.c"
+ break;
+
+- case 534:
+-#line 4246 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {currentIsStatic = TRUE;}
++ case 535: /* $@21: %empty */
++#line 4272 "parser.y"
++ {currentIsStatic = TRUE;}
++#line 7726 "../parser.c"
+ break;
+
+- case 539:
+-#line 4256 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {currentIsVirt = TRUE;}
++ case 540: /* $@22: %empty */
++#line 4282 "parser.y"
++ {currentIsVirt = TRUE;}
++#line 7732 "../parser.c"
+ break;
+
+- case 542:
+-#line 4260 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 543: /* variable: cpptype TK_NAME_VALUE optflags variable_body ';' optaccesscode optgetcode optsetcode */
++#line 4286 "parser.y"
++ {
+ if (notSkipping())
+ {
+ const char *annos[] = {
+@@ -7730,99 +7747,105 @@ yyreduce:
+ NULL
+ };
+
+- checkAnnos(&(yyvsp[(3) - (8)].optflags), annos);
++ checkAnnos(&(yyvsp[-5].optflags), annos);
+
+- if ((yyvsp[(6) - (8)].codeb) != NULL)
++ if ((yyvsp[-2].codeb) != NULL)
+ {
+- if ((yyvsp[(4) - (8)].variable).access_code != NULL)
++ if ((yyvsp[-4].variable).access_code != NULL)
+ yyerror("%AccessCode already defined");
+
+- (yyvsp[(4) - (8)].variable).access_code = (yyvsp[(6) - (8)].codeb);
++ (yyvsp[-4].variable).access_code = (yyvsp[-2].codeb);
+
+ deprecated("%AccessCode should be used as a sub-directive");
+ }
+
+- if ((yyvsp[(7) - (8)].codeb) != NULL)
++ if ((yyvsp[-1].codeb) != NULL)
+ {
+- if ((yyvsp[(4) - (8)].variable).get_code != NULL)
++ if ((yyvsp[-4].variable).get_code != NULL)
+ yyerror("%GetCode already defined");
+
+- (yyvsp[(4) - (8)].variable).get_code = (yyvsp[(7) - (8)].codeb);
++ (yyvsp[-4].variable).get_code = (yyvsp[-1].codeb);
+
+ deprecated("%GetCode should be used as a sub-directive");
+ }
+
+- if ((yyvsp[(8) - (8)].codeb) != NULL)
++ if ((yyvsp[0].codeb) != NULL)
+ {
+- if ((yyvsp[(4) - (8)].variable).set_code != NULL)
++ if ((yyvsp[-4].variable).set_code != NULL)
+ yyerror("%SetCode already defined");
+
+- (yyvsp[(4) - (8)].variable).set_code = (yyvsp[(8) - (8)].codeb);
++ (yyvsp[-4].variable).set_code = (yyvsp[0].codeb);
+
+ deprecated("%SetCode should be used as a sub-directive");
+ }
+
+- newVar(currentSpec, currentModule, (yyvsp[(2) - (8)].text), currentIsStatic, &(yyvsp[(1) - (8)].memArg),
+- &(yyvsp[(3) - (8)].optflags), (yyvsp[(4) - (8)].variable).access_code, (yyvsp[(4) - (8)].variable).get_code, (yyvsp[(4) - (8)].variable).set_code,
++ newVar(currentSpec, currentModule, (yyvsp[-6].text), currentIsStatic, &(yyvsp[-7].memArg),
++ &(yyvsp[-5].optflags), (yyvsp[-4].variable).access_code, (yyvsp[-4].variable).get_code, (yyvsp[-4].variable).set_code,
+ sectionFlags);
+ }
+
+ currentIsStatic = FALSE;
+ }
++#line 7790 "../parser.c"
+ break;
+
+- case 543:
+-#line 4315 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 544: /* variable_body: %empty */
++#line 4341 "parser.y"
++ {
+ (yyval.variable).token = 0;
+ (yyval.variable).access_code = NULL;
+ (yyval.variable).get_code = NULL;
+ (yyval.variable).set_code = NULL;
+ }
++#line 7801 "../parser.c"
+ break;
+
+- case 544:
+-#line 4321 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.variable) = (yyvsp[(2) - (3)].variable);
++ case 545: /* variable_body: '{' variable_body_directives '}' */
++#line 4347 "parser.y"
++ {
++ (yyval.variable) = (yyvsp[-1].variable);
+ }
++#line 7809 "../parser.c"
+ break;
+
+- case 546:
+-#line 4327 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.variable) = (yyvsp[(1) - (2)].variable);
++ case 547: /* variable_body_directives: variable_body_directives variable_body_directive */
++#line 4353 "parser.y"
++ {
++ (yyval.variable) = (yyvsp[-1].variable);
+
+- switch ((yyvsp[(2) - (2)].variable).token)
++ switch ((yyvsp[0].variable).token)
+ {
+- case TK_ACCESSCODE: (yyval.variable).access_code = (yyvsp[(2) - (2)].variable).access_code; break;
+- case TK_GETCODE: (yyval.variable).get_code = (yyvsp[(2) - (2)].variable).get_code; break;
+- case TK_SETCODE: (yyval.variable).set_code = (yyvsp[(2) - (2)].variable).set_code; break;
++ case TK_ACCESSCODE: (yyval.variable).access_code = (yyvsp[0].variable).access_code; break;
++ case TK_GETCODE: (yyval.variable).get_code = (yyvsp[0].variable).get_code; break;
++ case TK_SETCODE: (yyval.variable).set_code = (yyvsp[0].variable).set_code; break;
+ }
+ }
++#line 7824 "../parser.c"
+ break;
+
+- case 547:
+-#line 4339 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 548: /* variable_body_directive: ifstart */
++#line 4365 "parser.y"
++ {
+ (yyval.variable).token = TK_IF;
+ }
++#line 7832 "../parser.c"
+ break;
+
+- case 548:
+-#line 4342 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 549: /* variable_body_directive: ifend */
++#line 4368 "parser.y"
++ {
+ (yyval.variable).token = TK_END;
+ }
++#line 7840 "../parser.c"
+ break;
+
+- case 549:
+-#line 4345 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 550: /* variable_body_directive: TK_ACCESSCODE codeblock */
++#line 4371 "parser.y"
++ {
+ if (notSkipping())
+ {
+ (yyval.variable).token = TK_ACCESSCODE;
+- (yyval.variable).access_code = (yyvsp[(2) - (2)].codeb);
++ (yyval.variable).access_code = (yyvsp[0].codeb);
+ }
+ else
+ {
+@@ -7833,15 +7856,16 @@ yyreduce:
+ (yyval.variable).get_code = NULL;
+ (yyval.variable).set_code = NULL;
+ }
++#line 7860 "../parser.c"
+ break;
+
+- case 550:
+-#line 4360 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 551: /* variable_body_directive: TK_GETCODE codeblock */
++#line 4386 "parser.y"
++ {
+ if (notSkipping())
+ {
+ (yyval.variable).token = TK_GETCODE;
+- (yyval.variable).get_code = (yyvsp[(2) - (2)].codeb);
++ (yyval.variable).get_code = (yyvsp[0].codeb);
+ }
+ else
+ {
+@@ -7852,15 +7876,16 @@ yyreduce:
+ (yyval.variable).access_code = NULL;
+ (yyval.variable).set_code = NULL;
+ }
++#line 7880 "../parser.c"
+ break;
+
+- case 551:
+-#line 4375 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 552: /* variable_body_directive: TK_SETCODE codeblock */
++#line 4401 "parser.y"
++ {
+ if (notSkipping())
+ {
+ (yyval.variable).token = TK_SETCODE;
+- (yyval.variable).set_code = (yyvsp[(2) - (2)].codeb);
++ (yyval.variable).set_code = (yyvsp[0].codeb);
+ }
+ else
+ {
+@@ -7871,36 +7896,39 @@ yyreduce:
+ (yyval.variable).access_code = NULL;
+ (yyval.variable).get_code = NULL;
+ }
++#line 7900 "../parser.c"
+ break;
+
+- case 552:
+-#line 4392 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.memArg) = (yyvsp[(2) - (4)].memArg);
+- add_derefs(&(yyval.memArg), &(yyvsp[(3) - (4)].memArg));
+- (yyval.memArg).argflags |= ARG_IS_CONST | (yyvsp[(4) - (4)].number);
++ case 553: /* cpptype: TK_CONST basetype deref optref */
++#line 4418 "parser.y"
++ {
++ (yyval.memArg) = (yyvsp[-2].memArg);
++ add_derefs(&(yyval.memArg), &(yyvsp[-1].memArg));
++ (yyval.memArg).argflags |= ARG_IS_CONST | (yyvsp[0].number);
+ }
++#line 7910 "../parser.c"
+ break;
+
+- case 553:
+-#line 4397 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- (yyval.memArg) = (yyvsp[(1) - (3)].memArg);
+- add_derefs(&(yyval.memArg), &(yyvsp[(2) - (3)].memArg));
+- (yyval.memArg).argflags |= (yyvsp[(3) - (3)].number);
++ case 554: /* cpptype: basetype deref optref */
++#line 4423 "parser.y"
++ {
++ (yyval.memArg) = (yyvsp[-2].memArg);
++ add_derefs(&(yyval.memArg), &(yyvsp[-1].memArg));
++ (yyval.memArg).argflags |= (yyvsp[0].number);
+
+ /* PyObject * is a synonym for SIP_PYOBJECT. */
+- if ((yyvsp[(1) - (3)].memArg).atype == defined_type && strcmp((yyvsp[(1) - (3)].memArg).u.snd->name, "PyObject") == 0 && (yyvsp[(1) - (3)].memArg).u.snd->next == NULL && (yyvsp[(2) - (3)].memArg).nrderefs == 1 && (yyvsp[(3) - (3)].number) == 0)
++ if ((yyvsp[-2].memArg).atype == defined_type && strcmp((yyvsp[-2].memArg).u.snd->name, "PyObject") == 0 && (yyvsp[-2].memArg).u.snd->next == NULL && (yyvsp[-1].memArg).nrderefs == 1 && (yyvsp[0].number) == 0)
+ {
+ (yyval.memArg).atype = pyobject_type;
+ (yyval.memArg).nrderefs = 0;
+ }
+ }
++#line 7927 "../parser.c"
+ break;
+
+- case 554:
+-#line 4411 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 555: /* argtype: cpptype optname optflags */
++#line 4437 "parser.y"
++ {
+ const char *annos[] = {
+ "AllowNone",
+ "Array",
+@@ -7930,54 +7958,54 @@ yyreduce:
+
+ optFlag *of;
+
+- checkAnnos(&(yyvsp[(3) - (3)].optflags), annos);
++ checkAnnos(&(yyvsp[0].optflags), annos);
+
+- (yyval.memArg) = (yyvsp[(1) - (3)].memArg);
+- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (3)].text));
++ (yyval.memArg) = (yyvsp[-2].memArg);
++ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text));
+
+- handleKeepReference(&(yyvsp[(3) - (3)].optflags), &(yyval.memArg), currentModule);
++ handleKeepReference(&(yyvsp[0].optflags), &(yyval.memArg), currentModule);
+
+- if ((of = getOptFlag(&(yyvsp[(3) - (3)].optflags), "ScopesStripped", opt_integer_flag)) != NULL)
++ if ((of = getOptFlag(&(yyvsp[0].optflags), "ScopesStripped", opt_integer_flag)) != NULL)
+ if (((yyval.memArg).scopes_stripped = of->fvalue.ival) <= 0)
+ yyerror("/ScopesStripped/ must be greater than 0");
+
+- if (getAllowNone(&(yyvsp[(3) - (3)].optflags)))
++ if (getAllowNone(&(yyvsp[0].optflags)))
+ (yyval.memArg).argflags |= ARG_ALLOW_NONE;
+
+- if (getDisallowNone(&(yyvsp[(3) - (3)].optflags)))
++ if (getDisallowNone(&(yyvsp[0].optflags)))
+ (yyval.memArg).argflags |= ARG_DISALLOW_NONE;
+
+- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"GetWrapper",bool_flag) != NULL)
++ if (getOptFlag(&(yyvsp[0].optflags),"GetWrapper",bool_flag) != NULL)
+ (yyval.memArg).argflags |= ARG_GET_WRAPPER;
+
+- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"Array",bool_flag) != NULL)
++ if (getOptFlag(&(yyvsp[0].optflags),"Array",bool_flag) != NULL)
+ (yyval.memArg).argflags |= ARG_ARRAY;
+
+- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"ArraySize",bool_flag) != NULL)
++ if (getOptFlag(&(yyvsp[0].optflags),"ArraySize",bool_flag) != NULL)
+ (yyval.memArg).argflags |= ARG_ARRAY_SIZE;
+
+- if (getTransfer(&(yyvsp[(3) - (3)].optflags)))
++ if (getTransfer(&(yyvsp[0].optflags)))
+ (yyval.memArg).argflags |= ARG_XFERRED;
+
+- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"TransferThis",bool_flag) != NULL)
++ if (getOptFlag(&(yyvsp[0].optflags),"TransferThis",bool_flag) != NULL)
+ (yyval.memArg).argflags |= ARG_THIS_XFERRED;
+
+- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"TransferBack",bool_flag) != NULL)
++ if (getOptFlag(&(yyvsp[0].optflags),"TransferBack",bool_flag) != NULL)
+ (yyval.memArg).argflags |= ARG_XFERRED_BACK;
+
+- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"In",bool_flag) != NULL)
++ if (getOptFlag(&(yyvsp[0].optflags),"In",bool_flag) != NULL)
+ (yyval.memArg).argflags |= ARG_IN;
+
+- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"Out",bool_flag) != NULL)
++ if (getOptFlag(&(yyvsp[0].optflags),"Out",bool_flag) != NULL)
+ (yyval.memArg).argflags |= ARG_OUT;
+
+- if (getOptFlag(&(yyvsp[(3) - (3)].optflags), "ResultSize", bool_flag) != NULL)
++ if (getOptFlag(&(yyvsp[0].optflags), "ResultSize", bool_flag) != NULL)
+ (yyval.memArg).argflags |= ARG_RESULT_SIZE;
+
+- if (getOptFlag(&(yyvsp[(3) - (3)].optflags), "NoCopy", bool_flag) != NULL)
++ if (getOptFlag(&(yyvsp[0].optflags), "NoCopy", bool_flag) != NULL)
+ (yyval.memArg).argflags |= ARG_NO_COPY;
+
+- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"Constrained",bool_flag) != NULL)
++ if (getOptFlag(&(yyvsp[0].optflags),"Constrained",bool_flag) != NULL)
+ {
+ (yyval.memArg).argflags |= ARG_CONSTRAINED;
+
+@@ -8005,499 +8033,518 @@ yyreduce:
+ }
+ }
+
+- applyTypeFlags(currentModule, &(yyval.memArg), &(yyvsp[(3) - (3)].optflags));
+- (yyval.memArg).typehint_value = getTypeHintValue(&(yyvsp[(3) - (3)].optflags));
++ applyTypeFlags(currentModule, &(yyval.memArg), &(yyvsp[0].optflags));
++ (yyval.memArg).typehint_value = getTypeHintValue(&(yyvsp[0].optflags));
+ }
++#line 8040 "../parser.c"
+ break;
+
+- case 555:
+-#line 4521 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 556: /* optref: %empty */
++#line 4547 "parser.y"
++ {
+ (yyval.number) = 0;
+ }
++#line 8048 "../parser.c"
+ break;
+
+- case 556:
+-#line 4524 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 557: /* optref: '&' */
++#line 4550 "parser.y"
++ {
+ if (currentSpec -> genc)
+ yyerror("References not allowed in a C module");
+
+ (yyval.number) = ARG_IS_REF;
+ }
++#line 8059 "../parser.c"
+ break;
+
+- case 557:
+-#line 4532 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 558: /* deref: %empty */
++#line 4558 "parser.y"
++ {
+ (yyval.memArg).nrderefs = 0;
+ }
++#line 8067 "../parser.c"
+ break;
+
+- case 558:
+-#line 4535 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- add_new_deref(&(yyval.memArg), &(yyvsp[(1) - (3)].memArg), TRUE);
++ case 559: /* deref: deref '*' TK_CONST */
++#line 4561 "parser.y"
++ {
++ add_new_deref(&(yyval.memArg), &(yyvsp[-2].memArg), TRUE);
+ }
++#line 8075 "../parser.c"
+ break;
+
+- case 559:
+-#line 4538 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
+- add_new_deref(&(yyval.memArg), &(yyvsp[(1) - (2)].memArg), FALSE);
++ case 560: /* deref: deref '*' */
++#line 4564 "parser.y"
++ {
++ add_new_deref(&(yyval.memArg), &(yyvsp[-1].memArg), FALSE);
+ }
++#line 8083 "../parser.c"
+ break;
+
+- case 560:
+-#line 4543 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 561: /* basetype: scopedname */
++#line 4569 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = defined_type;
+- (yyval.memArg).u.snd = (yyvsp[(1) - (1)].scpvalp);
++ (yyval.memArg).u.snd = (yyvsp[0].scpvalp);
+
+ /* Try and resolve typedefs as early as possible. */
+ resolveAnyTypedef(currentSpec, &(yyval.memArg));
+ }
++#line 8096 "../parser.c"
+ break;
+
+- case 561:
+-#line 4551 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 562: /* basetype: scopedname '<' cpptypelist '>' */
++#line 4577 "parser.y"
++ {
+ templateDef *td;
+
+ td = sipMalloc(sizeof(templateDef));
+- td->fqname = (yyvsp[(1) - (4)].scpvalp);
+- td->types = (yyvsp[(3) - (4)].signature);
++ td->fqname = (yyvsp[-3].scpvalp);
++ td->types = (yyvsp[-1].signature);
+
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = template_type;
+ (yyval.memArg).u.td = td;
+ }
++#line 8112 "../parser.c"
+ break;
+
+- case 562:
+-#line 4562 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 563: /* basetype: TK_STRUCT scopedname */
++#line 4588 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+
+ /* In a C module all structures must be defined. */
+ if (currentSpec -> genc)
+ {
+ (yyval.memArg).atype = defined_type;
+- (yyval.memArg).u.snd = (yyvsp[(2) - (2)].scpvalp);
++ (yyval.memArg).u.snd = (yyvsp[0].scpvalp);
+ }
+ else
+ {
+ (yyval.memArg).atype = struct_type;
+- (yyval.memArg).u.sname = (yyvsp[(2) - (2)].scpvalp);
++ (yyval.memArg).u.sname = (yyvsp[0].scpvalp);
+ }
+ }
++#line 8132 "../parser.c"
+ break;
+
+- case 563:
+-#line 4577 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 564: /* basetype: TK_UNSIGNED TK_SHORT */
++#line 4603 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = ushort_type;
+ }
++#line 8141 "../parser.c"
+ break;
+
+- case 564:
+-#line 4581 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 565: /* basetype: TK_SHORT */
++#line 4607 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = short_type;
+ }
++#line 8150 "../parser.c"
+ break;
+
+- case 565:
+-#line 4585 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 566: /* basetype: TK_UNSIGNED */
++#line 4611 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = uint_type;
+ }
++#line 8159 "../parser.c"
+ break;
+
+- case 566:
+-#line 4589 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 567: /* basetype: TK_UNSIGNED TK_INT */
++#line 4615 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = uint_type;
+ }
++#line 8168 "../parser.c"
+ break;
+
+- case 567:
+-#line 4593 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 568: /* basetype: TK_INT */
++#line 4619 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = int_type;
+ }
++#line 8177 "../parser.c"
+ break;
+
+- case 568:
+-#line 4597 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 569: /* basetype: TK_LONG */
++#line 4623 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = long_type;
+ }
++#line 8186 "../parser.c"
+ break;
+
+- case 569:
+-#line 4601 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 570: /* basetype: TK_UNSIGNED TK_LONG */
++#line 4627 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = ulong_type;
+ }
++#line 8195 "../parser.c"
+ break;
+
+- case 570:
+-#line 4605 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 571: /* basetype: TK_LONG TK_LONG */
++#line 4631 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = longlong_type;
+ }
++#line 8204 "../parser.c"
+ break;
+
+- case 571:
+-#line 4609 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 572: /* basetype: TK_UNSIGNED TK_LONG TK_LONG */
++#line 4635 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = ulonglong_type;
+ }
++#line 8213 "../parser.c"
+ break;
+
+- case 572:
+-#line 4613 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 573: /* basetype: TK_FLOAT */
++#line 4639 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = float_type;
+ }
++#line 8222 "../parser.c"
+ break;
+
+- case 573:
+-#line 4617 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 574: /* basetype: TK_DOUBLE */
++#line 4643 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = double_type;
+ }
++#line 8231 "../parser.c"
+ break;
+
+- case 574:
+-#line 4621 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 575: /* basetype: TK_BOOL */
++#line 4647 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = bool_type;
+ }
++#line 8240 "../parser.c"
+ break;
+
+- case 575:
+-#line 4625 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 576: /* basetype: TK_SIGNED TK_CHAR */
++#line 4651 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = sstring_type;
+ }
++#line 8249 "../parser.c"
+ break;
+
+- case 576:
+-#line 4629 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 577: /* basetype: TK_UNSIGNED TK_CHAR */
++#line 4655 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = ustring_type;
+ }
++#line 8258 "../parser.c"
+ break;
+
+- case 577:
+-#line 4633 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 578: /* basetype: TK_CHAR */
++#line 4659 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = string_type;
+ }
++#line 8267 "../parser.c"
+ break;
+
+- case 578:
+-#line 4637 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 579: /* basetype: TK_WCHAR_T */
++#line 4663 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = wstring_type;
+ }
++#line 8276 "../parser.c"
+ break;
+
+- case 579:
+-#line 4641 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 580: /* basetype: TK_VOID */
++#line 4667 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = void_type;
+ }
++#line 8285 "../parser.c"
+ break;
+
+- case 580:
+-#line 4645 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 581: /* basetype: TK_PYOBJECT */
++#line 4671 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = pyobject_type;
+ }
++#line 8294 "../parser.c"
+ break;
+
+- case 581:
+-#line 4649 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 582: /* basetype: TK_PYTUPLE */
++#line 4675 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = pytuple_type;
+ }
++#line 8303 "../parser.c"
+ break;
+
+- case 582:
+-#line 4653 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 583: /* basetype: TK_PYLIST */
++#line 4679 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = pylist_type;
+ }
++#line 8312 "../parser.c"
+ break;
+
+- case 583:
+-#line 4657 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 584: /* basetype: TK_PYDICT */
++#line 4683 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = pydict_type;
+ }
++#line 8321 "../parser.c"
+ break;
+
+- case 584:
+-#line 4661 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 585: /* basetype: TK_PYCALLABLE */
++#line 4687 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = pycallable_type;
+ }
++#line 8330 "../parser.c"
+ break;
+
+- case 585:
+-#line 4665 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 586: /* basetype: TK_PYSLICE */
++#line 4691 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = pyslice_type;
+ }
++#line 8339 "../parser.c"
+ break;
+
+- case 586:
+-#line 4669 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 587: /* basetype: TK_PYTYPE */
++#line 4695 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = pytype_type;
+ }
++#line 8348 "../parser.c"
+ break;
+
+- case 587:
+-#line 4673 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 588: /* basetype: TK_PYBUFFER */
++#line 4699 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = pybuffer_type;
+ }
++#line 8357 "../parser.c"
+ break;
+
+- case 588:
+-#line 4677 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 589: /* basetype: TK_SIPSSIZET */
++#line 4703 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = ssize_type;
+ }
++#line 8366 "../parser.c"
+ break;
+
+- case 589:
+-#line 4681 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 590: /* basetype: TK_SIZET */
++#line 4707 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = size_type;
+ }
++#line 8375 "../parser.c"
+ break;
+
+- case 590:
+-#line 4685 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 591: /* basetype: TK_ELLIPSIS */
++#line 4711 "parser.y"
++ {
+ memset(&(yyval.memArg), 0, sizeof (argDef));
+ (yyval.memArg).atype = ellipsis_type;
+ }
++#line 8384 "../parser.c"
+ break;
+
+- case 591:
+-#line 4691 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 592: /* cpptypelist: cpptype */
++#line 4717 "parser.y"
++ {
+ /* The single or first type. */
+
+- (yyval.signature).args[0] = (yyvsp[(1) - (1)].memArg);
++ (yyval.signature).args[0] = (yyvsp[0].memArg);
+ (yyval.signature).nrArgs = 1;
+ }
++#line 8395 "../parser.c"
+ break;
+
+- case 592:
+-#line 4697 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 593: /* cpptypelist: cpptypelist ',' cpptype */
++#line 4723 "parser.y"
++ {
+ /* Check there is nothing after an ellipsis. */
+- if ((yyvsp[(1) - (3)].signature).args[(yyvsp[(1) - (3)].signature).nrArgs - 1].atype == ellipsis_type)
++ if ((yyvsp[-2].signature).args[(yyvsp[-2].signature).nrArgs - 1].atype == ellipsis_type)
+ yyerror("An ellipsis must be at the end of the argument list");
+
+ /* Check there is room. */
+- if ((yyvsp[(1) - (3)].signature).nrArgs == MAX_NR_ARGS)
++ if ((yyvsp[-2].signature).nrArgs == MAX_NR_ARGS)
+ yyerror("Internal error - increase the value of MAX_NR_ARGS");
+
+- (yyval.signature) = (yyvsp[(1) - (3)].signature);
++ (yyval.signature) = (yyvsp[-2].signature);
+
+- (yyval.signature).args[(yyval.signature).nrArgs] = (yyvsp[(3) - (3)].memArg);
++ (yyval.signature).args[(yyval.signature).nrArgs] = (yyvsp[0].memArg);
+ (yyval.signature).nrArgs++;
+ }
++#line 8414 "../parser.c"
+ break;
+
+- case 593:
+-#line 4713 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 594: /* optexceptions: %empty */
++#line 4739 "parser.y"
++ {
+ (yyval.throwlist) = NULL;
+ }
++#line 8422 "../parser.c"
+ break;
+
+- case 594:
+-#line 4716 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 595: /* optexceptions: TK_THROW '(' exceptionlist ')' */
++#line 4742 "parser.y"
++ {
+ if (currentSpec->genc)
+ yyerror("Exceptions not allowed in a C module");
+
+- (yyval.throwlist) = (yyvsp[(3) - (4)].throwlist);
++ (yyval.throwlist) = (yyvsp[-1].throwlist);
+ }
++#line 8433 "../parser.c"
+ break;
+
+- case 595:
+-#line 4724 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 596: /* exceptionlist: %empty */
++#line 4750 "parser.y"
++ {
+ /* Empty list so use a blank. */
+
+ (yyval.throwlist) = sipMalloc(sizeof (throwArgs));
+ (yyval.throwlist) -> nrArgs = 0;
+ }
++#line 8444 "../parser.c"
+ break;
+
+- case 596:
+-#line 4730 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 597: /* exceptionlist: scopedname */
++#line 4756 "parser.y"
++ {
+ /* The only or first exception. */
+
+ (yyval.throwlist) = sipMalloc(sizeof (throwArgs));
+ (yyval.throwlist) -> nrArgs = 1;
+- (yyval.throwlist) -> args[0] = findException(currentSpec, (yyvsp[(1) - (1)].scpvalp), FALSE);
++ (yyval.throwlist) -> args[0] = findException(currentSpec, (yyvsp[0].scpvalp), FALSE);
+ }
++#line 8456 "../parser.c"
+ break;
+
+- case 597:
+-#line 4737 "sip-4.19.23/sipgen/metasrc/parser.y"
+- {
++ case 598: /* exceptionlist: exceptionlist ',' scopedname */
++#line 4763 "parser.y"
++ {
+ /* Check that it wasn't ...(,arg...). */
+
+- if ((yyvsp[(1) - (3)].throwlist) -> nrArgs == 0)
++ if ((yyvsp[-2].throwlist) -> nrArgs == 0)
+ yyerror("First exception of throw specifier is missing");
+
+ /* Check there is room. */
+
+- if ((yyvsp[(1) - (3)].throwlist) -> nrArgs == MAX_NR_ARGS)
++ if ((yyvsp[-2].throwlist) -> nrArgs == MAX_NR_ARGS)
+ yyerror("Internal error - increase the value of MAX_NR_ARGS");
+
+- (yyval.throwlist) = (yyvsp[(1) - (3)].throwlist);
+- (yyval.throwlist) -> args[(yyval.throwlist) -> nrArgs++] = findException(currentSpec, (yyvsp[(3) - (3)].scpvalp), FALSE);
++ (yyval.throwlist) = (yyvsp[-2].throwlist);
++ (yyval.throwlist) -> args[(yyval.throwlist) -> nrArgs++] = findException(currentSpec, (yyvsp[0].scpvalp), FALSE);
+ }
++#line 8475 "../parser.c"
+ break;
+
+
+-/* Line 1267 of yacc.c. */
+-#line 8408 "sip-4.19.23/sipgen/parser.c"
++#line 8479 "../parser.c"
++
+ default: break;
+ }
+- YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
++ /* User semantic actions sometimes alter yychar, and that requires
++ that yytoken be updated with the new translation. We take the
++ approach of translating immediately before every use of yytoken.
++ One alternative is translating here after every semantic action,
++ but that translation would be missed if the semantic action invokes
++ YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
++ if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
++ incorrect destructor might then be invoked immediately. In the
++ case of YYERROR or YYBACKUP, subsequent parser actions might lead
++ to an incorrect destructor call or verbose syntax error message
++ before the lookahead is translated. */
++ YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
+
+ YYPOPSTACK (yylen);
+ yylen = 0;
+- YY_STACK_PRINT (yyss, yyssp);
+
+ *++yyvsp = yyval;
+
+-
+- /* Now `shift' the result of the reduction. Determine what state
++ /* Now 'shift' the result of the reduction. Determine what state
+ that goes to, based on the state we popped back to and the rule
+ number reduced by. */
+-
+- yyn = yyr1[yyn];
+-
+- yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+- if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+- yystate = yytable[yystate];
+- else
+- yystate = yydefgoto[yyn - YYNTOKENS];
++ {
++ const int yylhs = yyr1[yyn] - YYNTOKENS;
++ const int yyi = yypgoto[yylhs] + *yyssp;
++ yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
++ ? yytable[yyi]
++ : yydefgoto[yylhs]);
++ }
+
+ goto yynewstate;
+
+
+-/*------------------------------------.
+-| yyerrlab -- here on detecting error |
+-`------------------------------------*/
++/*--------------------------------------.
++| yyerrlab -- here on detecting error. |
++`--------------------------------------*/
+ yyerrlab:
++ /* Make sure we have latest lookahead translation. See comments at
++ user semantic actions for why this is necessary. */
++ yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
+ /* If not already recovering from an error, report this error. */
+ if (!yyerrstatus)
+ {
+ ++yynerrs;
+-#if ! YYERROR_VERBOSE
+ yyerror (YY_("syntax error"));
+-#else
+- {
+- YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
+- if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
+- {
+- YYSIZE_T yyalloc = 2 * yysize;
+- if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
+- yyalloc = YYSTACK_ALLOC_MAXIMUM;
+- if (yymsg != yymsgbuf)
+- YYSTACK_FREE (yymsg);
+- yymsg = (char *) YYSTACK_ALLOC (yyalloc);
+- if (yymsg)
+- yymsg_alloc = yyalloc;
+- else
+- {
+- yymsg = yymsgbuf;
+- yymsg_alloc = sizeof yymsgbuf;
+- }
+- }
+-
+- if (0 < yysize && yysize <= yymsg_alloc)
+- {
+- (void) yysyntax_error (yymsg, yystate, yychar);
+- yyerror (yymsg);
+- }
+- else
+- {
+- yyerror (YY_("syntax error"));
+- if (yysize != 0)
+- goto yyexhaustedlab;
+- }
+- }
+-#endif
+ }
+
+-
+-
+ if (yyerrstatus == 3)
+ {
+- /* If just tried and failed to reuse look-ahead token after an
+- error, discard it. */
++ /* If just tried and failed to reuse lookahead token after an
++ error, discard it. */
+
+ if (yychar <= YYEOF)
+- {
+- /* Return failure if at end of input. */
+- if (yychar == YYEOF)
+- YYABORT;
+- }
++ {
++ /* Return failure if at end of input. */
++ if (yychar == YYEOF)
++ YYABORT;
++ }
+ else
+- {
+- yydestruct ("Error: discarding",
+- yytoken, &yylval);
+- yychar = YYEMPTY;
+- }
++ {
++ yydestruct ("Error: discarding",
++ yytoken, &yylval);
++ yychar = YYEMPTY;
++ }
+ }
+
+- /* Else will try to reuse look-ahead token after shifting the error
++ /* Else will try to reuse lookahead token after shifting the error
+ token. */
+ goto yyerrlab1;
+
+@@ -8506,14 +8553,13 @@ yyerrlab:
+ | yyerrorlab -- error raised explicitly by YYERROR. |
+ `---------------------------------------------------*/
+ yyerrorlab:
++ /* Pacify compilers when the user code never invokes YYERROR and the
++ label yyerrorlab therefore never appears in user code. */
++ if (0)
++ YYERROR;
++ ++yynerrs;
+
+- /* Pacify compilers like GCC when the user code never invokes
+- YYERROR and the label yyerrorlab therefore never appears in user
+- code. */
+- if (/*CONSTCOND*/ 0)
+- goto yyerrorlab;
+-
+- /* Do not reclaim the symbols of the rule which action triggered
++ /* Do not reclaim the symbols of the rule whose action triggered
+ this YYERROR. */
+ YYPOPSTACK (yylen);
+ yylen = 0;
+@@ -8526,42 +8572,42 @@ yyerrorlab:
+ | yyerrlab1 -- common code for both syntax error and YYERROR. |
+ `-------------------------------------------------------------*/
+ yyerrlab1:
+- yyerrstatus = 3; /* Each real token shifted decrements this. */
++ yyerrstatus = 3; /* Each real token shifted decrements this. */
+
++ /* Pop stack until we find a state that shifts the error token. */
+ for (;;)
+ {
+ yyn = yypact[yystate];
+- if (yyn != YYPACT_NINF)
+- {
+- yyn += YYTERROR;
+- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+- {
+- yyn = yytable[yyn];
+- if (0 < yyn)
+- break;
+- }
+- }
++ if (!yypact_value_is_default (yyn))
++ {
++ yyn += YYSYMBOL_YYerror;
++ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
++ {
++ yyn = yytable[yyn];
++ if (0 < yyn)
++ break;
++ }
++ }
+
+ /* Pop the current state because it cannot handle the error token. */
+ if (yyssp == yyss)
+- YYABORT;
++ YYABORT;
+
+
+ yydestruct ("Error: popping",
+- yystos[yystate], yyvsp);
++ YY_ACCESSING_SYMBOL (yystate), yyvsp);
+ YYPOPSTACK (1);
+ yystate = *yyssp;
+ YY_STACK_PRINT (yyss, yyssp);
+ }
+
+- if (yyn == YYFINAL)
+- YYACCEPT;
+-
++ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+ *++yyvsp = yylval;
++ YY_IGNORE_MAYBE_UNINITIALIZED_END
+
+
+ /* Shift the error token. */
+- YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
++ YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
+
+ yystate = yyn;
+ goto yynewstate;
+@@ -8572,53 +8618,57 @@ yyerrlab1:
+ `-------------------------------------*/
+ yyacceptlab:
+ yyresult = 0;
+- goto yyreturn;
++ goto yyreturnlab;
++
+
+ /*-----------------------------------.
+ | yyabortlab -- YYABORT comes here. |
+ `-----------------------------------*/
+ yyabortlab:
+ yyresult = 1;
+- goto yyreturn;
++ goto yyreturnlab;
+
+-#ifndef yyoverflow
+-/*-------------------------------------------------.
+-| yyexhaustedlab -- memory exhaustion comes here. |
+-`-------------------------------------------------*/
++
++/*-----------------------------------------------------------.
++| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. |
++`-----------------------------------------------------------*/
+ yyexhaustedlab:
+ yyerror (YY_("memory exhausted"));
+ yyresult = 2;
+- /* Fall through. */
+-#endif
++ goto yyreturnlab;
++
+
+-yyreturn:
+- if (yychar != YYEOF && yychar != YYEMPTY)
+- yydestruct ("Cleanup: discarding lookahead",
+- yytoken, &yylval);
+- /* Do not reclaim the symbols of the rule which action triggered
++/*----------------------------------------------------------.
++| yyreturnlab -- parsing is finished, clean up and return. |
++`----------------------------------------------------------*/
++yyreturnlab:
++ if (yychar != YYEMPTY)
++ {
++ /* Make sure we have latest lookahead translation. See comments at
++ user semantic actions for why this is necessary. */
++ yytoken = YYTRANSLATE (yychar);
++ yydestruct ("Cleanup: discarding lookahead",
++ yytoken, &yylval);
++ }
++ /* Do not reclaim the symbols of the rule whose action triggered
+ this YYABORT or YYACCEPT. */
+ YYPOPSTACK (yylen);
+ YY_STACK_PRINT (yyss, yyssp);
+ while (yyssp != yyss)
+ {
+ yydestruct ("Cleanup: popping",
+- yystos[*yyssp], yyvsp);
++ YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
+ YYPOPSTACK (1);
+ }
+ #ifndef yyoverflow
+ if (yyss != yyssa)
+ YYSTACK_FREE (yyss);
+ #endif
+-#if YYERROR_VERBOSE
+- if (yymsg != yymsgbuf)
+- YYSTACK_FREE (yymsg);
+-#endif
+- /* Make sure YYID is used. */
+- return YYID (yyresult);
+-}
+
++ return yyresult;
++}
+
+-#line 4753 "sip-4.19.23/sipgen/metasrc/parser.y"
++#line 4779 "parser.y"
+
+
+
+@@ -13382,9 +13432,9 @@ static void addProperty(sipSpec *pt, mod
+ */
+ static moduleDef *configureModule(sipSpec *pt, moduleDef *module,
+ const char *filename, const char *name, int c_module, KwArgs kwargs,
+- int use_arg_names, int use_limited_api, int call_super_init,
+- int all_raise_py_exc, const char *def_error_handler,
+- docstringDef *docstring)
++ int use_arg_names, int py_ssize_t_clean, int use_limited_api,
++ int call_super_init, int all_raise_py_exc,
++ const char *def_error_handler, docstringDef *docstring)
+ {
+ moduleDef *mod;
+
+@@ -13418,6 +13468,9 @@ static moduleDef *configureModule(sipSpe
+ if (use_arg_names)
+ setUseArgNames(module);
+
++ if (py_ssize_t_clean)
++ setPY_SSIZE_T_CLEAN(module);
++
+ if (use_limited_api)
+ setUseLimitedAPI(module);
+
+@@ -13597,4 +13650,3 @@ static void checkEllipsis(signatureDef *
+ if (sd->args[a].atype == ellipsis_type && a < sd->nrArgs - 1)
+ yyerror("An ellipsis must be at the end of the argument list if /NoArgParser/ is not specified");
+ }
+-
+Index: sip-4.19.23/sipgen/parser.h
+===================================================================
+--- sip-4.19.23.orig/sipgen/parser.h
++++ sip-4.19.23/sipgen/parser.h
+@@ -1,14 +1,14 @@
+-/* A Bison parser, made by GNU Bison 2.3. */
++/* A Bison parser, made by GNU Bison 3.8.2. */
+
+-/* Skeleton interface for Bison's Yacc-like parsers in C
++/* Bison interface for Yacc-like parsers in C
+
+- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+- Free Software Foundation, Inc.
++ Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
++ Inc.
+
+- This program is free software; you can redistribute it and/or modify
++ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+- the Free Software Foundation; either version 2, or (at your option)
+- any later version.
++ the Free Software Foundation, either version 3 of the License, or
++ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+@@ -16,9 +16,7 @@
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+- along with this program; if not, write to the Free Software
+- Foundation, Inc., 51 Franklin Street, Fifth Floor,
+- Boston, MA 02110-1301, USA. */
++ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+ /* As a special exception, you may create a larger work that contains
+ part or all of the Bison parser skeleton and distribute that work
+@@ -33,164 +31,187 @@
+ This special exception was added by the Free Software Foundation in
+ version 2.2 of Bison. */
+
+-/* Tokens. */
++/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
++ especially those whose name start with YY_ or yy_. They are
++ private implementation details that can be changed or removed. */
++
++#ifndef YY_YY_PARSER_H_INCLUDED
++# define YY_YY_PARSER_H_INCLUDED
++/* Debug traces. */
++#ifndef YYDEBUG
++# define YYDEBUG 0
++#endif
++#if YYDEBUG
++extern int yydebug;
++#endif
++
++/* Token kinds. */
+ #ifndef YYTOKENTYPE
+ # define YYTOKENTYPE
+- /* Put the tokens into the symbol table, so that GDB and other debuggers
+- know about them. */
+- enum yytokentype {
+- TK_API = 258,
+- TK_AUTOPYNAME = 259,
+- TK_DEFDOCSTRFMT = 260,
+- TK_DEFDOCSTRSIG = 261,
+- TK_DEFENCODING = 262,
+- TK_PLUGIN = 263,
+- TK_VIRTERRORHANDLER = 264,
+- TK_EXPTYPEHINTCODE = 265,
+- TK_TYPEHINTCODE = 266,
+- TK_DOCSTRING = 267,
+- TK_DOC = 268,
+- TK_EXPORTEDDOC = 269,
+- TK_EXTRACT = 270,
+- TK_MAKEFILE = 271,
+- TK_ACCESSCODE = 272,
+- TK_GETCODE = 273,
+- TK_SETCODE = 274,
+- TK_PREINITCODE = 275,
+- TK_INITCODE = 276,
+- TK_POSTINITCODE = 277,
+- TK_FINALCODE = 278,
+- TK_UNITCODE = 279,
+- TK_UNITPOSTINCLUDECODE = 280,
+- TK_MODCODE = 281,
+- TK_TYPECODE = 282,
+- TK_PREPYCODE = 283,
+- TK_COPYING = 284,
+- TK_MAPPEDTYPE = 285,
+- TK_CODELINE = 286,
+- TK_IF = 287,
+- TK_END = 288,
+- TK_NAME_VALUE = 289,
+- TK_PATH_VALUE = 290,
+- TK_STRING_VALUE = 291,
+- TK_VIRTUALCATCHERCODE = 292,
+- TK_TRAVERSECODE = 293,
+- TK_CLEARCODE = 294,
+- TK_GETBUFFERCODE = 295,
+- TK_RELEASEBUFFERCODE = 296,
+- TK_READBUFFERCODE = 297,
+- TK_WRITEBUFFERCODE = 298,
+- TK_SEGCOUNTCODE = 299,
+- TK_CHARBUFFERCODE = 300,
+- TK_PICKLECODE = 301,
+- TK_VIRTUALCALLCODE = 302,
+- TK_METHODCODE = 303,
+- TK_PREMETHODCODE = 304,
+- TK_INSTANCECODE = 305,
+- TK_FROMTYPE = 306,
+- TK_TOTYPE = 307,
+- TK_TOSUBCLASS = 308,
+- TK_INCLUDE = 309,
+- TK_OPTINCLUDE = 310,
+- TK_IMPORT = 311,
+- TK_EXPHEADERCODE = 312,
+- TK_MODHEADERCODE = 313,
+- TK_TYPEHEADERCODE = 314,
+- TK_MODULE = 315,
+- TK_CMODULE = 316,
+- TK_CONSMODULE = 317,
+- TK_COMPOMODULE = 318,
+- TK_CLASS = 319,
+- TK_STRUCT = 320,
+- TK_PUBLIC = 321,
+- TK_PROTECTED = 322,
+- TK_PRIVATE = 323,
+- TK_SIGNALS = 324,
+- TK_SIGNAL_METHOD = 325,
+- TK_SLOTS = 326,
+- TK_SLOT_METHOD = 327,
+- TK_BOOL = 328,
+- TK_SHORT = 329,
+- TK_INT = 330,
+- TK_LONG = 331,
+- TK_FLOAT = 332,
+- TK_DOUBLE = 333,
+- TK_CHAR = 334,
+- TK_WCHAR_T = 335,
+- TK_VOID = 336,
+- TK_PYOBJECT = 337,
+- TK_PYTUPLE = 338,
+- TK_PYLIST = 339,
+- TK_PYDICT = 340,
+- TK_PYCALLABLE = 341,
+- TK_PYSLICE = 342,
+- TK_PYTYPE = 343,
+- TK_PYBUFFER = 344,
+- TK_VIRTUAL = 345,
+- TK_ENUM = 346,
+- TK_SIGNED = 347,
+- TK_UNSIGNED = 348,
+- TK_SCOPE = 349,
+- TK_LOGICAL_OR = 350,
+- TK_CONST = 351,
+- TK_STATIC = 352,
+- TK_SIPSIGNAL = 353,
+- TK_SIPSLOT = 354,
+- TK_SIPANYSLOT = 355,
+- TK_SIPRXCON = 356,
+- TK_SIPRXDIS = 357,
+- TK_SIPSLOTCON = 358,
+- TK_SIPSLOTDIS = 359,
+- TK_SIPSSIZET = 360,
+- TK_SIZET = 361,
+- TK_NUMBER_VALUE = 362,
+- TK_REAL_VALUE = 363,
+- TK_TYPEDEF = 364,
+- TK_NAMESPACE = 365,
+- TK_TIMELINE = 366,
+- TK_PLATFORMS = 367,
+- TK_FEATURE = 368,
+- TK_LICENSE = 369,
+- TK_QCHAR_VALUE = 370,
+- TK_TRUE_VALUE = 371,
+- TK_FALSE_VALUE = 372,
+- TK_NULL_VALUE = 373,
+- TK_OPERATOR = 374,
+- TK_THROW = 375,
+- TK_QOBJECT = 376,
+- TK_EXCEPTION = 377,
+- TK_RAISECODE = 378,
+- TK_EXPLICIT = 379,
+- TK_TEMPLATE = 380,
+- TK_FINAL = 381,
+- TK_ELLIPSIS = 382,
+- TK_DEFMETATYPE = 383,
+- TK_DEFSUPERTYPE = 384,
+- TK_PROPERTY = 385,
+- TK_HIDE_NS = 386,
+- TK_FORMAT = 387,
+- TK_GET = 388,
+- TK_ID = 389,
+- TK_KWARGS = 390,
+- TK_LANGUAGE = 391,
+- TK_LICENSEE = 392,
+- TK_NAME = 393,
+- TK_OPTIONAL = 394,
+- TK_ORDER = 395,
+- TK_REMOVELEADING = 396,
+- TK_SET = 397,
+- TK_SIGNATURE = 398,
+- TK_TIMESTAMP = 399,
+- TK_TYPE = 400,
+- TK_USEARGNAMES = 401,
+- TK_USELIMITEDAPI = 402,
+- TK_ALLRAISEPYEXC = 403,
+- TK_CALLSUPERINIT = 404,
+- TK_DEFERRORHANDLER = 405,
+- TK_VERSION = 406
+- };
++ enum yytokentype
++ {
++ YYEMPTY = -2,
++ YYEOF = 0, /* "end of file" */
++ YYerror = 256, /* error */
++ YYUNDEF = 257, /* "invalid token" */
++ TK_API = 258, /* TK_API */
++ TK_AUTOPYNAME = 259, /* TK_AUTOPYNAME */
++ TK_DEFDOCSTRFMT = 260, /* TK_DEFDOCSTRFMT */
++ TK_DEFDOCSTRSIG = 261, /* TK_DEFDOCSTRSIG */
++ TK_DEFENCODING = 262, /* TK_DEFENCODING */
++ TK_PLUGIN = 263, /* TK_PLUGIN */
++ TK_VIRTERRORHANDLER = 264, /* TK_VIRTERRORHANDLER */
++ TK_EXPTYPEHINTCODE = 265, /* TK_EXPTYPEHINTCODE */
++ TK_TYPEHINTCODE = 266, /* TK_TYPEHINTCODE */
++ TK_DOCSTRING = 267, /* TK_DOCSTRING */
++ TK_DOC = 268, /* TK_DOC */
++ TK_EXPORTEDDOC = 269, /* TK_EXPORTEDDOC */
++ TK_EXTRACT = 270, /* TK_EXTRACT */
++ TK_MAKEFILE = 271, /* TK_MAKEFILE */
++ TK_ACCESSCODE = 272, /* TK_ACCESSCODE */
++ TK_GETCODE = 273, /* TK_GETCODE */
++ TK_SETCODE = 274, /* TK_SETCODE */
++ TK_PREINITCODE = 275, /* TK_PREINITCODE */
++ TK_INITCODE = 276, /* TK_INITCODE */
++ TK_POSTINITCODE = 277, /* TK_POSTINITCODE */
++ TK_FINALCODE = 278, /* TK_FINALCODE */
++ TK_UNITCODE = 279, /* TK_UNITCODE */
++ TK_UNITPOSTINCLUDECODE = 280, /* TK_UNITPOSTINCLUDECODE */
++ TK_MODCODE = 281, /* TK_MODCODE */
++ TK_TYPECODE = 282, /* TK_TYPECODE */
++ TK_PREPYCODE = 283, /* TK_PREPYCODE */
++ TK_COPYING = 284, /* TK_COPYING */
++ TK_MAPPEDTYPE = 285, /* TK_MAPPEDTYPE */
++ TK_CODELINE = 286, /* TK_CODELINE */
++ TK_IF = 287, /* TK_IF */
++ TK_END = 288, /* TK_END */
++ TK_NAME_VALUE = 289, /* TK_NAME_VALUE */
++ TK_PATH_VALUE = 290, /* TK_PATH_VALUE */
++ TK_STRING_VALUE = 291, /* TK_STRING_VALUE */
++ TK_VIRTUALCATCHERCODE = 292, /* TK_VIRTUALCATCHERCODE */
++ TK_TRAVERSECODE = 293, /* TK_TRAVERSECODE */
++ TK_CLEARCODE = 294, /* TK_CLEARCODE */
++ TK_GETBUFFERCODE = 295, /* TK_GETBUFFERCODE */
++ TK_RELEASEBUFFERCODE = 296, /* TK_RELEASEBUFFERCODE */
++ TK_READBUFFERCODE = 297, /* TK_READBUFFERCODE */
++ TK_WRITEBUFFERCODE = 298, /* TK_WRITEBUFFERCODE */
++ TK_SEGCOUNTCODE = 299, /* TK_SEGCOUNTCODE */
++ TK_CHARBUFFERCODE = 300, /* TK_CHARBUFFERCODE */
++ TK_PICKLECODE = 301, /* TK_PICKLECODE */
++ TK_VIRTUALCALLCODE = 302, /* TK_VIRTUALCALLCODE */
++ TK_METHODCODE = 303, /* TK_METHODCODE */
++ TK_PREMETHODCODE = 304, /* TK_PREMETHODCODE */
++ TK_INSTANCECODE = 305, /* TK_INSTANCECODE */
++ TK_FROMTYPE = 306, /* TK_FROMTYPE */
++ TK_TOTYPE = 307, /* TK_TOTYPE */
++ TK_TOSUBCLASS = 308, /* TK_TOSUBCLASS */
++ TK_INCLUDE = 309, /* TK_INCLUDE */
++ TK_OPTINCLUDE = 310, /* TK_OPTINCLUDE */
++ TK_IMPORT = 311, /* TK_IMPORT */
++ TK_EXPHEADERCODE = 312, /* TK_EXPHEADERCODE */
++ TK_MODHEADERCODE = 313, /* TK_MODHEADERCODE */
++ TK_TYPEHEADERCODE = 314, /* TK_TYPEHEADERCODE */
++ TK_MODULE = 315, /* TK_MODULE */
++ TK_CMODULE = 316, /* TK_CMODULE */
++ TK_CONSMODULE = 317, /* TK_CONSMODULE */
++ TK_COMPOMODULE = 318, /* TK_COMPOMODULE */
++ TK_CLASS = 319, /* TK_CLASS */
++ TK_STRUCT = 320, /* TK_STRUCT */
++ TK_PUBLIC = 321, /* TK_PUBLIC */
++ TK_PROTECTED = 322, /* TK_PROTECTED */
++ TK_PRIVATE = 323, /* TK_PRIVATE */
++ TK_SIGNALS = 324, /* TK_SIGNALS */
++ TK_SIGNAL_METHOD = 325, /* TK_SIGNAL_METHOD */
++ TK_SLOTS = 326, /* TK_SLOTS */
++ TK_SLOT_METHOD = 327, /* TK_SLOT_METHOD */
++ TK_BOOL = 328, /* TK_BOOL */
++ TK_SHORT = 329, /* TK_SHORT */
++ TK_INT = 330, /* TK_INT */
++ TK_LONG = 331, /* TK_LONG */
++ TK_FLOAT = 332, /* TK_FLOAT */
++ TK_DOUBLE = 333, /* TK_DOUBLE */
++ TK_CHAR = 334, /* TK_CHAR */
++ TK_WCHAR_T = 335, /* TK_WCHAR_T */
++ TK_VOID = 336, /* TK_VOID */
++ TK_PYOBJECT = 337, /* TK_PYOBJECT */
++ TK_PYTUPLE = 338, /* TK_PYTUPLE */
++ TK_PYLIST = 339, /* TK_PYLIST */
++ TK_PYDICT = 340, /* TK_PYDICT */
++ TK_PYCALLABLE = 341, /* TK_PYCALLABLE */
++ TK_PYSLICE = 342, /* TK_PYSLICE */
++ TK_PYTYPE = 343, /* TK_PYTYPE */
++ TK_PYBUFFER = 344, /* TK_PYBUFFER */
++ TK_VIRTUAL = 345, /* TK_VIRTUAL */
++ TK_ENUM = 346, /* TK_ENUM */
++ TK_SIGNED = 347, /* TK_SIGNED */
++ TK_UNSIGNED = 348, /* TK_UNSIGNED */
++ TK_SCOPE = 349, /* TK_SCOPE */
++ TK_LOGICAL_OR = 350, /* TK_LOGICAL_OR */
++ TK_CONST = 351, /* TK_CONST */
++ TK_STATIC = 352, /* TK_STATIC */
++ TK_SIPSIGNAL = 353, /* TK_SIPSIGNAL */
++ TK_SIPSLOT = 354, /* TK_SIPSLOT */
++ TK_SIPANYSLOT = 355, /* TK_SIPANYSLOT */
++ TK_SIPRXCON = 356, /* TK_SIPRXCON */
++ TK_SIPRXDIS = 357, /* TK_SIPRXDIS */
++ TK_SIPSLOTCON = 358, /* TK_SIPSLOTCON */
++ TK_SIPSLOTDIS = 359, /* TK_SIPSLOTDIS */
++ TK_SIPSSIZET = 360, /* TK_SIPSSIZET */
++ TK_SIZET = 361, /* TK_SIZET */
++ TK_NUMBER_VALUE = 362, /* TK_NUMBER_VALUE */
++ TK_REAL_VALUE = 363, /* TK_REAL_VALUE */
++ TK_TYPEDEF = 364, /* TK_TYPEDEF */
++ TK_NAMESPACE = 365, /* TK_NAMESPACE */
++ TK_TIMELINE = 366, /* TK_TIMELINE */
++ TK_PLATFORMS = 367, /* TK_PLATFORMS */
++ TK_FEATURE = 368, /* TK_FEATURE */
++ TK_LICENSE = 369, /* TK_LICENSE */
++ TK_QCHAR_VALUE = 370, /* TK_QCHAR_VALUE */
++ TK_TRUE_VALUE = 371, /* TK_TRUE_VALUE */
++ TK_FALSE_VALUE = 372, /* TK_FALSE_VALUE */
++ TK_NULL_VALUE = 373, /* TK_NULL_VALUE */
++ TK_OPERATOR = 374, /* TK_OPERATOR */
++ TK_THROW = 375, /* TK_THROW */
++ TK_QOBJECT = 376, /* TK_QOBJECT */
++ TK_EXCEPTION = 377, /* TK_EXCEPTION */
++ TK_RAISECODE = 378, /* TK_RAISECODE */
++ TK_EXPLICIT = 379, /* TK_EXPLICIT */
++ TK_TEMPLATE = 380, /* TK_TEMPLATE */
++ TK_FINAL = 381, /* TK_FINAL */
++ TK_ELLIPSIS = 382, /* TK_ELLIPSIS */
++ TK_DEFMETATYPE = 383, /* TK_DEFMETATYPE */
++ TK_DEFSUPERTYPE = 384, /* TK_DEFSUPERTYPE */
++ TK_PROPERTY = 385, /* TK_PROPERTY */
++ TK_HIDE_NS = 386, /* TK_HIDE_NS */
++ TK_FORMAT = 387, /* TK_FORMAT */
++ TK_GET = 388, /* TK_GET */
++ TK_ID = 389, /* TK_ID */
++ TK_KWARGS = 390, /* TK_KWARGS */
++ TK_LANGUAGE = 391, /* TK_LANGUAGE */
++ TK_LICENSEE = 392, /* TK_LICENSEE */
++ TK_NAME = 393, /* TK_NAME */
++ TK_OPTIONAL = 394, /* TK_OPTIONAL */
++ TK_ORDER = 395, /* TK_ORDER */
++ TK_REMOVELEADING = 396, /* TK_REMOVELEADING */
++ TK_SET = 397, /* TK_SET */
++ TK_SIGNATURE = 398, /* TK_SIGNATURE */
++ TK_TIMESTAMP = 399, /* TK_TIMESTAMP */
++ TK_TYPE = 400, /* TK_TYPE */
++ TK_USEARGNAMES = 401, /* TK_USEARGNAMES */
++ TK_PYSSIZETCLEAN = 402, /* TK_PYSSIZETCLEAN */
++ TK_USELIMITEDAPI = 403, /* TK_USELIMITEDAPI */
++ TK_ALLRAISEPYEXC = 404, /* TK_ALLRAISEPYEXC */
++ TK_CALLSUPERINIT = 405, /* TK_CALLSUPERINIT */
++ TK_DEFERRORHANDLER = 406, /* TK_DEFERRORHANDLER */
++ TK_VERSION = 407 /* TK_VERSION */
++ };
++ typedef enum yytokentype yytoken_kind_t;
+ #endif
+-/* Tokens. */
++/* Token kinds. */
++#define YYEMPTY -2
++#define YYEOF 0
++#define YYerror 256
++#define YYUNDEF 257
+ #define TK_API 258
+ #define TK_AUTOPYNAME 259
+ #define TK_DEFDOCSTRFMT 260
+@@ -335,19 +356,19 @@
+ #define TK_TIMESTAMP 399
+ #define TK_TYPE 400
+ #define TK_USEARGNAMES 401
+-#define TK_USELIMITEDAPI 402
+-#define TK_ALLRAISEPYEXC 403
+-#define TK_CALLSUPERINIT 404
+-#define TK_DEFERRORHANDLER 405
+-#define TK_VERSION 406
+-
+-
+-
++#define TK_PYSSIZETCLEAN 402
++#define TK_USELIMITEDAPI 403
++#define TK_ALLRAISEPYEXC 404
++#define TK_CALLSUPERINIT 405
++#define TK_DEFERRORHANDLER 406
++#define TK_VERSION 407
+
++/* Value type. */
+ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+-typedef union YYSTYPE
+-#line 202 "sip-4.19.23/sipgen/metasrc/parser.y"
++union YYSTYPE
+ {
++#line 202 "parser.y"
++
+ char qchar;
+ char *text;
+ long number;
+@@ -390,14 +411,20 @@ typedef union YYSTYPE
+ variableCfg variable;
+ vehCfg veh;
+ int token;
+-}
+-/* Line 1529 of yacc.c. */
+-#line 396 "sip-4.19.23/sipgen/parser.h"
+- YYSTYPE;
+-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+-# define YYSTYPE_IS_DECLARED 1
++
++#line 416 "../parser.h"
++
++};
++typedef union YYSTYPE YYSTYPE;
+ # define YYSTYPE_IS_TRIVIAL 1
++# define YYSTYPE_IS_DECLARED 1
+ #endif
+
++
+ extern YYSTYPE yylval;
+
++
++int yyparse (void);
++
++
++#endif /* !YY_YY_PARSER_H_INCLUDED */