diff mbox series

[kirkstone,2/2] sip3: Add py_ssize_t_clean argument

Message ID 20231202030950.3357721-3-rob.woolley@windriver.com
State New
Headers show
Series Add sipconfig.py support to sip3 | expand

Commit Message

Rob Woolley Dec. 2, 2023, 3:09 a.m. UTC
An unintentional breakage was made upstream in sip4 which results
in builds reporting: QtCoremod.sip:23: syntax error

This was reported in Debian, but not resolved:
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=998605

A backport of a fix from the upstream project fixes the parser to
prevent it from complaining about the syntax error.

Signed-off-by: Rob Woolley <rob.woolley@windriver.com>
---
 ...ean-argument-to-the-module-directive.patch | 17679 ++++++++++++++++
 meta-oe/recipes-devtools/sip/sip3_4.19.23.bb  |     2 +
 2 files changed, 17681 insertions(+)
 create mode 100644 meta-oe/recipes-devtools/sip/sip3/added-the-py_ssize_t_clean-argument-to-the-module-directive.patch

Comments

akuster808 Dec. 6, 2023, 12:29 p.m. UTC | #1
On 12/1/23 10:09 PM, Rob Woolley via lists.openembedded.org wrote:
> An unintentional breakage was made upstream in sip4 which results
> in builds reporting: QtCoremod.sip:23: syntax error

Does Master need a similar fix?


>
> This was reported in Debian, but not resolved:
>    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=998605
>
> A backport of a fix from the upstream project fixes the parser to
> prevent it from complaining about the syntax error.
>
> Signed-off-by: Rob Woolley <rob.woolley@windriver.com>
> ---
>   ...ean-argument-to-the-module-directive.patch | 17679 ++++++++++++++++
>   meta-oe/recipes-devtools/sip/sip3_4.19.23.bb  |     2 +
>   2 files changed, 17681 insertions(+)
>   create mode 100644 meta-oe/recipes-devtools/sip/sip3/added-the-py_ssize_t_clean-argument-to-the-module-directive.patch
>
> 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 000000000..d7ed0770b
> --- /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  */
> diff --git a/meta-oe/recipes-devtools/sip/sip3_4.19.23.bb b/meta-oe/recipes-devtools/sip/sip3_4.19.23.bb
> index 064ab0a0c..dc3db1fcd 100644
> --- a/meta-oe/recipes-devtools/sip/sip3_4.19.23.bb
> +++ b/meta-oe/recipes-devtools/sip/sip3_4.19.23.bb
> @@ -5,7 +5,9 @@ LICENSE = "GPL-2.0-or-later"
>   LIC_FILES_CHKSUM = "file://LICENSE-GPL2;md5=e91355d8a6f8bd8f7c699d62863c7303"
>   
>   SRC_URI = "https://www.riverbankcomputing.com/static/Downloads/sip/${PV}/sip-${PV}.tar.gz \
> +    file://added-the-py_ssize_t_clean-argument-to-the-module-directive.patch \
>   "
> +
>   SRC_URI[md5sum] = "70adc0c9734e2d9dcd241d3f931dfc74"
>   SRC_URI[sha256sum] = "22ca9bcec5388114e40d4aafd7ccd0c4fe072297b628d0c5cdfa2f010c0bc7e7"
>   
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#107195): https://lists.openembedded.org/g/openembedded-devel/message/107195
> Mute This Topic: https://lists.openembedded.org/mt/102930499/3616698
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [akuster808@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
diff mbox series

Patch

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 000000000..d7ed0770b
--- /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  */
diff --git a/meta-oe/recipes-devtools/sip/sip3_4.19.23.bb b/meta-oe/recipes-devtools/sip/sip3_4.19.23.bb
index 064ab0a0c..dc3db1fcd 100644
--- a/meta-oe/recipes-devtools/sip/sip3_4.19.23.bb
+++ b/meta-oe/recipes-devtools/sip/sip3_4.19.23.bb
@@ -5,7 +5,9 @@  LICENSE = "GPL-2.0-or-later"
 LIC_FILES_CHKSUM = "file://LICENSE-GPL2;md5=e91355d8a6f8bd8f7c699d62863c7303"
 
 SRC_URI = "https://www.riverbankcomputing.com/static/Downloads/sip/${PV}/sip-${PV}.tar.gz \
+    file://added-the-py_ssize_t_clean-argument-to-the-module-directive.patch \
 "
+
 SRC_URI[md5sum] = "70adc0c9734e2d9dcd241d3f931dfc74"
 SRC_URI[sha256sum] = "22ca9bcec5388114e40d4aafd7ccd0c4fe072297b628d0c5cdfa2f010c0bc7e7"