Imported Upstream version 1.58.3 upstream/1.58.3
authorDongHun Kwak <dh0128.kwak@samsung.com>
Thu, 10 Jan 2019 04:16:18 +0000 (13:16 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Thu, 10 Jan 2019 04:16:18 +0000 (13:16 +0900)
28 files changed:
NEWS
configure
configure.ac
docs/reference/html/index.html
docs/reference/version.xml
gir/gio-2.0.c
gir/glib-2.0.c
gir/gobject-2.0.c
giscanner/_version.py
giscanner/ast.py
giscanner/docwriter.py
giscanner/scannerlexer.c
giscanner/scannerlexer.l
giscanner/transformer.py
gobject-introspection-1.0.pc
gobject-introspection-no-export-1.0.pc
meson.build
tests/scanner/Regress-1.0-C-expected/Regress.TestReferenceCounters-atomicrefcount.page [new file with mode: 0644]
tests/scanner/Regress-1.0-C-expected/Regress.TestReferenceCounters-refcount.page [new file with mode: 0644]
tests/scanner/Regress-1.0-C-expected/Regress.TestReferenceCounters.page [new file with mode: 0644]
tests/scanner/Regress-1.0-Gjs-expected/Regress.TestReferenceCounters-atomicrefcount.page [new file with mode: 0644]
tests/scanner/Regress-1.0-Gjs-expected/Regress.TestReferenceCounters-refcount.page [new file with mode: 0644]
tests/scanner/Regress-1.0-Gjs-expected/Regress.TestReferenceCounters.page [new file with mode: 0644]
tests/scanner/Regress-1.0-Python-expected/Regress.TestReferenceCounters-atomicrefcount.page [new file with mode: 0644]
tests/scanner/Regress-1.0-Python-expected/Regress.TestReferenceCounters-refcount.page [new file with mode: 0644]
tests/scanner/Regress-1.0-Python-expected/Regress.TestReferenceCounters.page [new file with mode: 0644]
tests/scanner/Regress-1.0-expected.gir
tests/scanner/regress.h

diff --git a/NEWS b/NEWS
index a2de5e5..9622d72 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,13 @@
+1.58.3 - 2018-12-30
+-------------------
+
+* docwriter: Support python-markdown 3.x. issue#250
+* scanner:  Define grefcount and gatomicrefcount as aliases to gint. issue#254
+  (Tomasz Miąsko <tomasz.miasko@gmail.com>)
+* scanner: make using bool without stdbool include work again. issue#247
+* gir: Update glib annotations for glib 2.58.2
+
+
 2.58.2 - 2018-12-09
 -------------------
 
index 6958830..32ef490 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gobject-introspection 1.58.2.
+# Generated by GNU Autoconf 2.69 for gobject-introspection 1.58.3.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=gobject-introspection>.
 #
@@ -591,8 +591,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='gobject-introspection'
 PACKAGE_TARNAME='gobject-introspection'
-PACKAGE_VERSION='1.58.2'
-PACKAGE_STRING='gobject-introspection 1.58.2'
+PACKAGE_VERSION='1.58.3'
+PACKAGE_STRING='gobject-introspection 1.58.3'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=gobject-introspection'
 PACKAGE_URL=''
 
@@ -1457,7 +1457,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures gobject-introspection 1.58.2 to adapt to many kinds of systems.
+\`configure' configures gobject-introspection 1.58.3 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1529,7 +1529,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of gobject-introspection 1.58.2:";;
+     short | recursive ) echo "Configuration of gobject-introspection 1.58.3:";;
    esac
   cat <<\_ACEOF
 
@@ -1694,7 +1694,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-gobject-introspection configure 1.58.2
+gobject-introspection configure 1.58.3
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2246,7 +2246,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by gobject-introspection $as_me 1.58.2, which was
+It was created by gobject-introspection $as_me 1.58.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3114,7 +3114,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gobject-introspection'
- VERSION='1.58.2'
+ VERSION='1.58.3'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3388,7 +3388,7 @@ AM_BACKSLASH='\'
 
 
 # Used in docs/reference/version.xml
-GI_VERSION=1.58.2
+GI_VERSION=1.58.3
 
 
 # Check for Win32
@@ -17416,7 +17416,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by gobject-introspection $as_me 1.58.2, which was
+This file was extended by gobject-introspection $as_me 1.58.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -17482,7 +17482,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-gobject-introspection config.status 1.58.2
+gobject-introspection config.status 1.58.3
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
index 0c00aa5..57f3d4d 100644 (file)
@@ -4,7 +4,7 @@
 dnl the gi version number
 m4_define(gi_major_version, 1)
 m4_define(gi_minor_version, 58)
-m4_define(gi_micro_version, 2)
+m4_define(gi_micro_version, 3)
 m4_define(gi_version, gi_major_version.gi_minor_version.gi_micro_version)
 
 AC_PREREQ([2.63])
index 02e005c..729da86 100644 (file)
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GObject Introspection Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      This document is for GObject Introspection version 1.58.2
+      This document is for GObject Introspection version 1.58.3
 .
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://developer.gnome.org/gi/unstable/" target="_top">http://developer.gnome.org/gi/unstable/</a>.
index ce76cdb..766c0cd 100644 (file)
  * dispatched anywhere else - not even the standard dispatch machinery
  * (that API such as g_dbus_connection_signal_subscribe() and
  * g_dbus_connection_send_message_with_reply() relies on) will see the
- * message. Similary, if a filter consumes an outgoing message, the
+ * message. Similarly, if a filter consumes an outgoing message, the
  * message will not be sent to the other peer.
  *
  * If @user_data_free_func is non-%NULL, it will be called (in the
 
 /**
  * g_dbus_message_bytes_needed:
- * @blob: (array length=blob_len) (element-type guint8): A blob represent a binary D-Bus message.
+ * @blob: (array length=blob_len) (element-type guint8): A blob representing a binary D-Bus message.
  * @blob_len: The length of @blob (must be at least 16).
  * @error: Return location for error or %NULL.
  *
  *
  * Gets a header field on @message.
  *
- * Returns: A #GVariant with the value if the header was found, %NULL
+ * The caller is responsible for checking the type of the returned #GVariant
+ * matches what is expected.
+ *
+ * Returns: (transfer none) (nullable): A #GVariant with the value if the header was found, %NULL
  * otherwise. Do not free, it is owned by @message.
  * Since: 2.26
  */
  * order that the message was in can be retrieved using
  * g_dbus_message_get_byte_order().
  *
+ * If the @blob cannot be parsed, contains invalid fields, or contains invalid
+ * headers, %G_IO_ERROR_INVALID_ARGUMENT will be returned.
+ *
  * Returns: A new #GDBusMessage or %NULL if @error is set. Free with
  * g_object_unref().
  * Since: 2.26
  *   native, the returned string is the result of g_file_get_uri()
  *   (such as `sftp://path/to/my%20icon.png`).
  *
- * - If @icon is a #GThemedIcon with exactly one name, the encoding is
- *    simply the name (such as `network-server`).
+ * - If @icon is a #GThemedIcon with exactly one name and no fallbacks,
+ *   the encoding is simply the name (such as `network-server`).
  *
  * Returns: (nullable): An allocated NUL-terminated UTF8 string or
  * %NULL if @icon can't be serialized. Use g_free() to free.
  * the beginning of the communication, you do not need to call this
  * function explicitly unless you want clearer error reporting.
  * However, you may call g_tls_connection_handshake() later on to
- * rehandshake, if TLS 1.2 or older is in use. With TLS 1.3, this will
- * instead perform a rekey.
+ * rehandshake, if TLS 1.2 or older is in use. With TLS 1.3, the
+ * behavior is undefined but guaranteed to be reasonable and
+ * nondestructive, so most older code should be expected to continue to
+ * work without changes.
  *
  * #GTlsConnection::accept_certificate may be emitted during the
  * handshake.
  * also listen for the "removed" signal on the returned object
  * and give up its reference when handling that signal
  *
- * Similary, if implementing g_volume_monitor_adopt_orphan_mount(),
+ * Similarly, if implementing g_volume_monitor_adopt_orphan_mount(),
  * the implementor must take a reference to @mount and return it in
  * its g_volume_get_mount() implemented. Also, the implementor must
  * listen for the "unmounted" signal on @mount and give up its
index 66ab9a0..4614983 100644 (file)
  *
  * GLib is attempting to unify around the use of 64bit integers to
  * represent microsecond-precision time. As such, this type will be
- * removed from a future version of GLib.
+ * removed from a future version of GLib. A consequence of using `glong` for
+ * `tv_sec` is that on 32-bit systems `GTimeVal` is subject to the year 2038
+ * problem.
  */
 
 
  *
  * The above definition is recursive to arbitrary depth. "aaaaai" and
  * "(ui(nq((y)))s)" are both valid type strings, as is
- * "a(aa(ui)(qna{ya(yd)}))".
+ * "a(aa(ui)(qna{ya(yd)}))". In order to not hit memory limits, #GVariant
+ * imposes a limit on recursion depth of 65 nested containers. This is the
+ * limit in the D-Bus specification (64) plus one to allow a #GDBusMessage to
+ * be nested in a top-level tuple.
  *
  * The meaning of each of the characters is as follows:
  * - `b`: the type string of %G_VARIANT_TYPE_BOOLEAN; a boolean value.
  * @stamp: (out) (optional): return location for the last registration time, or %NULL
  * @error: return location for a #GError, or %NULL
  *
- * Gets the registration informations of @app_name for the bookmark for
- * @uri.  See g_bookmark_file_set_app_info() for more informations about
+ * Gets the registration information of @app_name for the bookmark for
+ * @uri.  See g_bookmark_file_set_app_info() for more information about
  * the returned data.
  *
  * The string returned in @app_exec must be freed.
  * variation of ISO 8601 format is required.
  *
  * If @time_ represents a date which is too large to fit into a `struct tm`,
- * %NULL will be returned. This is platform dependent, but it is safe to assume
- * years up to 3000 are supported. The return value of g_time_val_to_iso8601()
- * has been nullable since GLib 2.54; before then, GLib would crash under the
- * same conditions.
+ * %NULL will be returned. This is platform dependent. Note also that since
+ * `GTimeVal` stores the number of seconds as a `glong`, on 32-bit systems it
+ * is subject to the year 2038 problem.
+ *
+ * The return value of g_time_val_to_iso8601() has been nullable since GLib
+ * 2.54; before then, GLib would crash under the same conditions.
  *
  * Returns: (nullable): a newly allocated string containing an ISO 8601 date,
  *    or %NULL if @time_ was too large
  * The returned value is never floating.  You should free it with
  * g_variant_unref() when you're done with it.
  *
+ * There may be implementation specific restrictions on deeply nested values,
+ * which would result in the unit tuple being returned as the child value,
+ * instead of further nested children. #GVariant is guaranteed to handle
+ * nesting up to at least 64 levels.
+ *
  * This function is O(1).
  *
  * Returns: (transfer full): the child at the specified index
  * being trusted.  If the value was already marked as being trusted then
  * this function will immediately return %TRUE.
  *
+ * There may be implementation specific restrictions on deeply nested values.
+ * GVariant is guaranteed to handle nesting up to at least 64 levels.
+ *
  * Returns: %TRUE if @value is in normal form
  * Since: 2.24
  */
index 1a4f3bc..89091e1 100644 (file)
  *
  * Get the contents of a variant #GValue.
  *
- * Returns: (nullable): variant contents of @value (may be %NULL)
+ * Returns: (transfer none) (nullable): variant contents of @value (may be %NULL)
  * Since: 2.26
  */
 
index fbe8ae7..ab1a574 100644 (file)
@@ -1 +1 @@
-__version__ = '1.58.2'
+__version__ = '1.58.3'
index a9a6e13..75daa45 100644 (file)
@@ -322,6 +322,8 @@ type_names['gssize'] = TYPE_SSIZE
 type_names['gintptr'] = TYPE_INTPTR
 type_names['guintptr'] = TYPE_UINTPTR
 type_names['gconstpointer'] = TYPE_ANY
+type_names['grefcount'] = TYPE_INT
+type_names['gatomicrefcount'] = TYPE_INT
 
 # We used to support these; continue to do so
 type_names['any'] = TYPE_ANY
index a29ba37..dae2ca9 100644 (file)
@@ -34,7 +34,6 @@ import tempfile
 from xml.sax import saxutils
 from mako.lookup import TemplateLookup
 import markdown
-from markdown.extensions.headerid import HeaderIdExtension
 
 from . import ast, xmlwriter
 from .utils import to_underscores
@@ -66,6 +65,18 @@ language_mimes = {
 }
 
 
+def get_headerid_ext():
+    try:
+        from markdown.extensions.headerid import HeaderIdExtension
+    except ImportError:
+        # markdown 3.x
+        from markdown.extensions.toc import TocExtension
+        return TocExtension(toc_depth=0)
+    else:
+        # markdown 2.x
+        return HeaderIdExtension(forceid=False)
+
+
 def make_page_id(node, recursive=False):
     if isinstance(node, ast.Namespace):
         if recursive:
@@ -1175,7 +1186,7 @@ class DevDocsFormatterGjs(DocFormatterGjs):
             'markdown.extensions.fenced_code',
             'markdown.extensions.nl2br',
             'markdown.extensions.attr_list',
-            HeaderIdExtension(forceid=False)
+            get_headerid_ext(),
         ])
 
     def format_function_name(self, func):
@@ -1263,7 +1274,7 @@ class DevDocsFormatterGjs(DocFormatterGjs):
             'markdown.extensions.fenced_code',
             'markdown.extensions.nl2br',
             'markdown.extensions.attr_list',
-            HeaderIdExtension(forceid=False)
+            get_headerid_ext(),
         ])
 
     def format_in_parameters(self, node):
index 08393c7..610ff69 100644 (file)
@@ -351,8 +351,8 @@ static void yynoreturn yy_fatal_error ( const char* msg  );
        (yy_hold_char) = *yy_cp; \
        *yy_cp = '\0'; \
        (yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 170
-#define YY_END_OF_BUFFER 171
+#define YY_NUM_RULES 171
+#define YY_END_OF_BUFFER 172
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -360,135 +360,136 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static const flex_int16_t yy_acclist[1128] =
+static const flex_int16_t yy_acclist[1135] =
     {   0,
-      171,  169,  170,    3,  169,  170,    1,  170,   45,  169,
-      170,  169,  170,   20,  169,  170,   40,  169,  170,   42,
-      169,  170,  169,  170,   29,  169,  170,   30,  169,  170,
-       38,  169,  170,   36,  169,  170,   69,  169,  170,   37,
-      169,  170,   35,  169,  170,   39,  169,  170,  162,  169,
-      170,  162,  169,  170,   32,  169,  170,   31,  169,  170,
-       47,  169,  170,   46,  169,  170,   48,  169,  170,   34,
-      169,  170,  109,  159,  169,  170,  109,  159,  169,  170,
-      109,  159,  169,  170,  109,  159,  169,  170,  109,  159,
-      169,  170,   25,  169,  170,  169,  170,   27,  169,  170,
-
-       41,  169,  170,  109,  159,  169,  170,  109,  159,  169,
-      170,  109,  159,  169,  170,  109,  159,  169,  170,  109,
-      159,  169,  170,  109,  159,  169,  170,  109,  159,  169,
-      170,  109,  159,  169,  170,  109,  159,  169,  170,  109,
-      159,  169,  170,  109,  159,  169,  170,  109,  159,  169,
-      170,  109,  159,  169,  170,  109,  159,  169,  170,  109,
-      159,  169,  170,  109,  159,  169,  170,   21,  169,  170,
-       43,  169,  170,   23,  169,  170,   44,  169,  170,    3,
-        1,   62,  167,   53,   24,   65,   55,  165,   51,   67,
-       49,   68,   50,   70,  163,    4,    6,   52,  163,  161,
-
-      162,  162,  162,  162,   28,   22,   26,   57,   63,   61,
-       64,   58,  109,  159,  109,  159,  109,  159,  109,  159,
-        2,   54,  109,  159,  109,  159,  109,  159,  109,  159,
-      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
-      109,  159,  109,  159,  109,  159,  109,  118,  159,  109,
-      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
-      159,  109,  159,  109,  133,  159,  109,  159,  109,  159,
-      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
-      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
-      109,  159,   56,   66,   33,  163,    6,  161,  162,  161,
-
-      162,  164,  162,  162,  162,  160,   59,   60,  109,  159,
-      109,  159,  168,  166,  109,  159,  109,  159,  109,  159,
-      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
-      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
-      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
-      109,  159,  109,  110,  159,  109,  159,  109,  159,  109,
-      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
-      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
-      131,  159,  109,  159,  109,  159,  109,  135,  159,  109,
-      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
-
-      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
-      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
-      159,  109,  159,  109,  159,  163,  161,  162,  161,  162,
-      161,  162,  164,  162,  160,  160,  109,  159,  109,  159,
-      109,  159,  105,  109,  159,  109,  159,  109,  159,  109,
-      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
-      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
-      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
-      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
-      111,  159,  109,  159,  109,  113,  159,  109,  114,  159,
-
-      109,  159,  109,  159,  109,  159,  109,  159,  109,  120,
-      159,  109,  121,  159,  109,  159,  109,  159,  109,  159,
-      109,  132,  159,  109,  159,  109,  141,  159,  109,  159,
-      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
-      109,  159,  109,  159,  109,  159,  109,  159,  107,  109,
-      159,  109,  159,  109,  159,  109,  159,  109,  156,  159,
-      109,  159,  109,  159,   18,   13,  161,  162,  160,  160,
-      160,  106,  109,  159,  109,  159,  109,  159,   96,  109,
-      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
-      159,   74,  109,  159,  109,  159,  109,  159,  109,  159,
-
-      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
-      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
-      109,  159,  109,  159,  102,  109,  159,  109,  112,  159,
-      109,  115,  159,  109,  159,  109,  159,  109,  159,  109,
-      159,  108,  109,  159,  109,  123,  159,  109,  159,  109,
-      159,  109,  159,  109,  159,  109,  145,  159,  109,  159,
-      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
-      109,  159,  109,  154,  159,  109,  159,  109,  159,  109,
-      158,  159,   15,  160,  109,  159,  109,  159,  109,  159,
-      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
-
-      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
-      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
-      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
-      109,  159,  109,  159,  109,  159,  109,  159,  109,  119,
-      159,  109,  122,  159,  109,  134,  159,  109,  159,  109,
-      159,  109,  144,  159,  109,  146,  159,  109,  149,  159,
-      109,  150,  159,  109,  151,  159,  109,  152,  159,  109,
-      159,  109,  159,  109,  159,  109,  159,   14,   16,    5,
-      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
-      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
-
-       75,  109,  159,  109,  159,   98,  109,  159,   78,  109,
-      159,  109,  159,  109,  159,  109,  159,  109,  159,  109,
-      136,  159,  109,  159,  109,  159,  109,  159,  109,  159,
-      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
-      109,  117,  159,  109,  159,  109,  159,  109,  159,  109,
-      153,  159,  109,  159,  109,  159,   12,  109,  159,  109,
-      159,  109,  159,  109,  124,  159,  109,  125,  159,  109,
-      126,  159,   83,  109,  159,  109,  159,  109,  159,  109,
-      159,  109,  159,  109,  159,  109,  159,  109,  159,   81,
-      109,  159,  109,  140,  159,  109,  159,   87,  109,  159,
-
-      109,  159,  109,  147,  159,  109,  159,   93,  109,  159,
-      109,  159,  109,  159,  109,  116,  159,  109,  142,  159,
-      109,  143,  159,  109,  159,  109,  155,  159,  109,  157,
-      159,    8,   11,   19,   17,  109,  159,  109,  159,  109,
-      127,  159,  109,  128,  159,  109,  129,  159,   86,  109,
-      159,  109,  159,   84,  109,  159,  109,  159,  109,  159,
-      109,  159,  109,  159,  109,  159,  109,  159,   82,  109,
-      159,  109,  159,  109,  159,  101,  109,  159,  109,  159,
-      109,  139,  159,  109,  159,  109,  159,    7,    8,  109,
-      159,  109,  159,  109,  130,  159,  109,  159,  109,  159,
-
-      109,  159,  109,  159,  109,  159,   80,  109,  159,  109,
-      138,  159,   88,  109,  159,  109,  148,  159,   92,  109,
-      159,  109,  159,   94,  109,  159,  109,  159,  109,  159,
-      109,  159,  109,  159,  109,  159,   77,  109,  159,  109,
-      159,  109,  159,  109,  137,  159,  109,  159,  109,  159,
-      109,  159,  109,  159,  109,  159,  109,  159,  109,  159,
-      109,  159,   89,  109,  159,   95,  109,  159,   90,  109,
-      159,  109,  159,  109,  159,  109,  159,   91,  109,  159,
-       76,  109,  159,  100,   79,  109,  159,  109,  159,  109,
-      159,  109,  159,   71,  109,  159,  109,  159,  109,  159,
-
-      109,  159,  109,  159,  109,  159,   72,  103,  109,  159,
-      109,  159,   85,  109,  159,  104,  109,  159,   73,    9,
-        9,   12,   10,   10,   11,   99,   97
+      172,  170,  171,    3,  170,  171,    1,  171,   45,  170,
+      171,  170,  171,   20,  170,  171,   40,  170,  171,   42,
+      170,  171,  170,  171,   29,  170,  171,   30,  170,  171,
+       38,  170,  171,   36,  170,  171,   69,  170,  171,   37,
+      170,  171,   35,  170,  171,   39,  170,  171,  163,  170,
+      171,  163,  170,  171,   32,  170,  171,   31,  170,  171,
+       47,  170,  171,   46,  170,  171,   48,  170,  171,   34,
+      170,  171,  110,  160,  170,  171,  110,  160,  170,  171,
+      110,  160,  170,  171,  110,  160,  170,  171,  110,  160,
+      170,  171,   25,  170,  171,  170,  171,   27,  170,  171,
+
+       41,  170,  171,  110,  160,  170,  171,  110,  160,  170,
+      171,  110,  160,  170,  171,  110,  160,  170,  171,  110,
+      160,  170,  171,  110,  160,  170,  171,  110,  160,  170,
+      171,  110,  160,  170,  171,  110,  160,  170,  171,  110,
+      160,  170,  171,  110,  160,  170,  171,  110,  160,  170,
+      171,  110,  160,  170,  171,  110,  160,  170,  171,  110,
+      160,  170,  171,  110,  160,  170,  171,   21,  170,  171,
+       43,  170,  171,   23,  170,  171,   44,  170,  171,    3,
+        1,   62,  168,   53,   24,   65,   55,  166,   51,   67,
+       49,   68,   50,   70,  164,    4,    6,   52,  164,  162,
+
+      163,  163,  163,  163,   28,   22,   26,   57,   63,   61,
+       64,   58,  110,  160,  110,  160,  110,  160,  110,  160,
+        2,   54,  110,  160,  110,  160,  110,  160,  110,  160,
+      110,  160,  110,  160,  110,  160,  110,  160,  110,  160,
+      110,  160,  110,  160,  110,  160,  110,  160,  110,  119,
+      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,  110,  160,  110,  134,  160,  110,  160,
+      110,  160,  110,  160,  110,  160,  110,  160,  110,  160,
+      110,  160,  110,  160,  110,  160,  110,  160,  110,  160,
+      110,  160,  110,  160,   56,   66,   33,  164,    6,  162,
+
+      163,  162,  163,  165,  163,  163,  163,  161,   59,   60,
+      110,  160,  110,  160,  169,  167,  110,  160,  110,  160,
+      110,  160,  110,  160,  110,  160,  110,  160,  110,  160,
+      110,  160,  110,  160,  110,  160,  110,  160,  110,  160,
+      110,  160,  110,  160,  110,  160,  110,  160,  110,  160,
+      110,  160,  110,  160,  110,  111,  160,  110,  160,  110,
+      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,  110,  132,  160,  110,  160,  110,  160,
+      110,  136,  160,  110,  160,  110,  160,  110,  160,  110,
+
+      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,  110,  160,  110,  160,  110,  160,  164,
+      162,  163,  162,  163,  162,  163,  165,  163,  161,  161,
+      110,  160,  110,  160,  110,  160,  106,  110,  160,  110,
+      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,  110,  112,  160,   97,  110,  160,  110,
+
+      160,  110,  114,  160,  110,  115,  160,  110,  160,  110,
+      160,  110,  160,  110,  160,  110,  121,  160,  110,  122,
+      160,  110,  160,  110,  160,  110,  160,  110,  133,  160,
+      110,  160,  110,  142,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,  110,  160,  108,  110,  160,  110,  160,
+      110,  160,  110,  160,  110,  157,  160,  110,  160,  110,
+      160,   18,   13,  162,  163,  161,  161,  161,  107,  110,
+      160,  110,  160,  110,  160,   96,  110,  160,  110,  160,
+      110,  160,  110,  160,  110,  160,  110,  160,   74,  110,
+
+      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  103,  110,  160,  110,  113,  160,  110,  116,  160,
+      110,  160,  110,  160,  110,  160,  110,  160,  109,  110,
+      160,  110,  124,  160,  110,  160,  110,  160,  110,  160,
+      110,  160,  110,  146,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      155,  160,  110,  160,  110,  160,  110,  159,  160,   15,
+      161,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+
+      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,  110,  160,  110,  120,  160,  110,  123,
+      160,  110,  135,  160,  110,  160,  110,  160,  110,  145,
+      160,  110,  147,  160,  110,  150,  160,  110,  151,  160,
+      110,  152,  160,  110,  153,  160,  110,  160,  110,  160,
+      110,  160,  110,  160,   14,   16,    5,  110,  160,  110,
+      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+
+      160,  110,  160,  110,  160,  110,  160,   75,  110,  160,
+      110,  160,   99,  110,  160,   78,  110,  160,  110,  160,
+      110,  160,  110,  160,  110,  160,  110,  137,  160,  110,
+      160,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,  110,  160,  110,  160,  110,  118,  160,
+      110,  160,  110,  160,  110,  160,  110,  154,  160,  110,
+      160,  110,  160,   12,  110,  160,  110,  160,  110,  160,
+      110,  125,  160,  110,  126,  160,  110,  127,  160,   83,
+      110,  160,  110,  160,  110,  160,  110,  160,  110,  160,
+      110,  160,  110,  160,  110,  160,   81,  110,  160,  110,
+
+      141,  160,  110,  160,   87,  110,  160,  110,  160,  110,
+      148,  160,  110,  160,   93,  110,  160,  110,  160,  110,
+      160,  110,  117,  160,  110,  143,  160,  110,  144,  160,
+      110,  160,  110,  156,  160,  110,  158,  160,    8,   11,
+       19,   17,  110,  160,  110,  160,  110,  128,  160,  110,
+      129,  160,  110,  130,  160,   86,  110,  160,  110,  160,
+       84,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,  110,  160,   82,  110,  160,  110,  160,
+      110,  160,  102,  110,  160,  110,  160,  110,  140,  160,
+      110,  160,  110,  160,    7,    8,  110,  160,  110,  160,
+
+      110,  131,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,   80,  110,  160,  110,  139,  160,   88,
+      110,  160,  110,  149,  160,   92,  110,  160,  110,  160,
+       94,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,   77,  110,  160,  110,  160,  110,  160,
+      110,  138,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,  110,  160,  110,  160,  110,  160,   89,
+      110,  160,   95,  110,  160,   90,  110,  160,  110,  160,
+      110,  160,  110,  160,   91,  110,  160,   76,  110,  160,
+      101,   79,  110,  160,  110,  160,  110,  160,  110,  160,
+
+       71,  110,  160,  110,  160,  110,  160,  110,  160,  110,
+      160,  110,  160,   72,  104,  110,  160,  110,  160,   85,
+      110,  160,  105,  110,  160,   73,    9,    9,   12,   10,
+       10,   11,  100,   98
     } ;
 
-static const flex_int16_t yy_accept[746] =
+static const flex_int16_t yy_accept[749] =
     {   0,
         1,    1,    1,    2,    4,    7,    9,   12,   14,   17,
        20,   23,   25,   28,   31,   34,   37,   40,   43,   46,
@@ -503,75 +504,75 @@ static const flex_int16_t yy_accept[746] =
 
       211,  212,  213,  215,  217,  219,  219,  219,  221,  222,
       223,  225,  227,  229,  231,  233,  235,  237,  239,  241,
-      243,  245,  247,  250,  252,  254,  256,  258,  260,  262,
-      264,  267,  269,  271,  273,  275,  277,  279,  281,  283,
-      285,  287,  289,  291,  293,  294,  295,  295,  295,  295,
-      295,  295,  295,  295,  296,  296,  297,  297,  297,  298,
-      300,  302,  302,  303,  304,  305,  306,  307,  308,  309,
-      311,  313,  313,  314,  314,  314,  315,  315,  317,  319,
+      243,  245,  247,  249,  252,  254,  256,  258,  260,  262,
+      264,  266,  269,  271,  273,  275,  277,  279,  281,  283,
+      285,  287,  289,  291,  293,  295,  296,  297,  297,  297,
+      297,  297,  297,  297,  297,  298,  298,  299,  299,  299,
+      300,  302,  304,  304,  305,  306,  307,  308,  309,  310,
+      311,  313,  315,  315,  316,  316,  316,  317,  317,  319,
       321,  323,  325,  327,  329,  331,  333,  335,  337,  339,
-      341,  343,  345,  347,  349,  351,  353,  356,  358,  360,
+      341,  343,  345,  347,  349,  351,  353,  355,  358,  360,
 
       362,  364,  366,  368,  370,  372,  374,  376,  378,  380,
-      383,  385,  387,  390,  392,  394,  396,  398,  400,  402,
+      382,  384,  387,  389,  391,  394,  396,  398,  400,  402,
       404,  406,  408,  410,  412,  414,  416,  418,  420,  422,
-      424,  426,  426,  426,  426,  426,  426,  426,  426,  426,
-      426,  426,  426,  427,  427,  429,  431,  433,  434,  435,
-      436,  437,  439,  441,  443,  446,  448,  450,  452,  454,
+      424,  426,  428,  430,  430,  430,  430,  430,  430,  430,
+      430,  430,  430,  430,  430,  431,  431,  433,  435,  437,
+      438,  439,  440,  441,  443,  445,  447,  450,  452,  454,
       456,  458,  460,  462,  464,  466,  468,  470,  472,  474,
-      476,  478,  480,  482,  484,  486,  488,  490,  493,  495,
-      498,  501,  503,  505,  507,  509,  512,  515,  517,  519,
-      521,  524,  526,  529,  531,  533,  535,  537,  539,  541,
-
-      543,  545,  547,  549,  552,  554,  556,  558,  561,  563,
-      565,  565,  566,  566,  566,  566,  566,  566,  567,  567,
-      567,  567,  567,  567,  569,  570,  571,  572,  575,  577,
-      579,  582,  584,  586,  588,  590,  592,  595,  597,  599,
-      601,  603,  605,  607,  609,  611,  613,  615,  617,  619,
-      621,  623,  625,  628,  631,  634,  636,  638,  640,  642,
-      645,  648,  650,  652,  654,  656,  659,  661,  663,  665,
-      667,  669,  671,  673,  676,  678,  680,  683,  683,  683,
-      683,  684,  684,  684,  684,  684,  684,  684,  684,  685,
-      687,  689,  691,  693,  695,  697,  699,  701,  701,  703,
-
-      705,  707,  709,  711,  713,  715,  717,  719,  721,  723,
-      725,  727,  729,  731,  733,  735,  737,  739,  742,  745,
-      748,  750,  752,  755,  758,  761,  764,  767,  770,  772,
-      774,  776,  778,  778,  778,  779,  779,  780,  780,  780,
-      780,  780,  780,  781,  783,  785,  787,  789,  791,  793,
-      795,  797,  799,  801,  801,  804,  806,  809,  812,  814,
-      816,  818,  820,  823,  825,  827,  829,  831,  833,  835,
-      837,  839,  841,  844,  846,  848,  850,  853,  855,  857,
-      857,  857,  857,  857,  858,  858,  858,  858,  858,  858,
-      860,  862,  864,  867,  870,  873,  876,  878,  880,  882,
-
-      884,  884,  884,  886,  888,  890,  893,  896,  898,  901,
-      903,  906,  908,  911,  913,  915,  918,  921,  924,  926,
-      926,  929,  932,  933,  933,  933,  933,  933,  933,  934,
-      934,  934,  935,  935,  936,  938,  940,  943,  946,  949,
-      952,  954,  957,  959,  959,  959,  959,  961,  963,  965,
-      967,  969,  972,  974,  976,  979,  981,  984,  986,  988,
-      988,  989,  990,  990,  990,  990,  990,  992,  994,  997,
-      999, 1001, 1001, 1001, 1001, 1003, 1005, 1007, 1010, 1013,
-     1016, 1019, 1022, 1024, 1027, 1029, 1029, 1029, 1029, 1029,
-     1029, 1031, 1033, 1035, 1037, 1037, 1037, 1037, 1040, 1040,
-
-     1040, 1042, 1044, 1047, 1049, 1051, 1051, 1051, 1051, 1051,
-     1051, 1053, 1055, 1057, 1059, 1059, 1059, 1059, 1061, 1061,
-     1061, 1061, 1063, 1066, 1069, 1072, 1072, 1072, 1072, 1072,
-     1072, 1074, 1076, 1078, 1081, 1081, 1081, 1081, 1084, 1085,
-     1085, 1088, 1088, 1088, 1088, 1088, 1088, 1090, 1092, 1094,
-     1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1097,
-     1099, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101,
-     1103, 1105, 1107, 1107, 1108, 1108, 1108, 1108, 1108, 1108,
-     1108, 1111, 1113, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
-     1116, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119,
-
-     1119, 1119, 1119, 1119, 1119, 1119, 1120, 1120, 1120, 1120,
-     1120, 1120, 1120, 1120, 1120, 1120, 1120, 1121, 1121, 1121,
-     1123, 1123, 1123, 1123, 1123, 1123, 1123, 1124, 1124, 1124,
-     1126, 1126, 1126, 1126, 1127, 1127, 1127, 1127, 1127, 1127,
-     1127, 1127, 1127, 1128, 1128
+      476,  478,  480,  482,  484,  486,  488,  490,  492,  494,
+      497,  500,  502,  505,  508,  510,  512,  514,  516,  519,
+      522,  524,  526,  528,  531,  533,  536,  538,  540,  542,
+
+      544,  546,  548,  550,  552,  554,  556,  559,  561,  563,
+      565,  568,  570,  572,  572,  573,  573,  573,  573,  573,
+      573,  574,  574,  574,  574,  574,  574,  576,  577,  578,
+      579,  582,  584,  586,  589,  591,  593,  595,  597,  599,
+      602,  604,  606,  608,  610,  612,  614,  616,  618,  620,
+      622,  624,  626,  628,  630,  632,  635,  638,  641,  643,
+      645,  647,  649,  652,  655,  657,  659,  661,  663,  666,
+      668,  670,  672,  674,  676,  678,  680,  683,  685,  687,
+      690,  690,  690,  690,  691,  691,  691,  691,  691,  691,
+      691,  691,  692,  694,  696,  698,  700,  702,  704,  706,
+
+      708,  708,  710,  712,  714,  716,  718,  720,  722,  724,
+      726,  728,  730,  732,  734,  736,  738,  740,  742,  744,
+      746,  749,  752,  755,  757,  759,  762,  765,  768,  771,
+      774,  777,  779,  781,  783,  785,  785,  785,  786,  786,
+      787,  787,  787,  787,  787,  787,  788,  790,  792,  794,
+      796,  798,  800,  802,  804,  806,  808,  808,  811,  813,
+      816,  819,  821,  823,  825,  827,  830,  832,  834,  836,
+      838,  840,  842,  844,  846,  848,  851,  853,  855,  857,
+      860,  862,  864,  864,  864,  864,  864,  865,  865,  865,
+      865,  865,  865,  867,  869,  871,  874,  877,  880,  883,
+
+      885,  887,  889,  891,  891,  891,  893,  895,  897,  900,
+      903,  905,  908,  910,  913,  915,  918,  920,  922,  925,
+      928,  931,  933,  933,  936,  939,  940,  940,  940,  940,
+      940,  940,  941,  941,  941,  942,  942,  943,  945,  947,
+      950,  953,  956,  959,  961,  964,  966,  966,  966,  966,
+      968,  970,  972,  974,  976,  979,  981,  983,  986,  988,
+      991,  993,  995,  995,  996,  997,  997,  997,  997,  997,
+      999, 1001, 1004, 1006, 1008, 1008, 1008, 1008, 1010, 1012,
+     1014, 1017, 1020, 1023, 1026, 1029, 1031, 1034, 1036, 1036,
+     1036, 1036, 1036, 1036, 1038, 1040, 1042, 1044, 1044, 1044,
+
+     1044, 1047, 1047, 1047, 1049, 1051, 1054, 1056, 1058, 1058,
+     1058, 1058, 1058, 1058, 1060, 1062, 1064, 1066, 1066, 1066,
+     1066, 1068, 1068, 1068, 1068, 1070, 1073, 1076, 1079, 1079,
+     1079, 1079, 1079, 1079, 1081, 1083, 1085, 1088, 1088, 1088,
+     1088, 1091, 1092, 1092, 1095, 1095, 1095, 1095, 1095, 1095,
+     1097, 1099, 1101, 1102, 1102, 1102, 1102, 1102, 1102, 1102,
+     1102, 1102, 1104, 1106, 1108, 1108, 1108, 1108, 1108, 1108,
+     1108, 1108, 1108, 1110, 1112, 1114, 1114, 1115, 1115, 1115,
+     1115, 1115, 1115, 1115, 1118, 1120, 1123, 1123, 1123, 1123,
+     1123, 1123, 1123, 1123, 1126, 1126, 1126, 1126, 1126, 1126,
+
+     1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1127,
+     1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127,
+     1128, 1128, 1128, 1130, 1130, 1130, 1130, 1130, 1130, 1130,
+     1131, 1131, 1131, 1133, 1133, 1133, 1133, 1134, 1134, 1134,
+     1134, 1134, 1134, 1134, 1134, 1134, 1135, 1135
     } ;
 
 static const YY_CHAR yy_ec[256] =
@@ -619,185 +620,185 @@ static const YY_CHAR yy_meta[86] =
        15,    1,    1,    1,    1
     } ;
 
-static const flex_int16_t yy_base[775] =
+static const flex_int16_t yy_base[778] =
     {   0,
-        0,    0, 1409, 1410,   84,    0, 1376,   80,   85,   59,
-       83,   83, 1410, 1410, 1375,   80, 1410,   81,   79,   97,
-      140,  202, 1373, 1410,   99, 1373,   77, 1410,    0, 1369,
-     1347,  110, 1355, 1410, 1398, 1410, 1368,   98,   44, 1326,
-       68,   66,   56,   84, 1327,   78, 1326, 1335,  105,  108,
-     1325, 1323, 1329, 1410,   90, 1410, 1410,  172,    0, 1410,
-       89, 1410, 1389,  172, 1330,   81, 1328, 1324, 1315, 1410,
-     1410, 1410, 1410,  133, 1410, 1384, 1410, 1410, 1410, 1410,
-     1410, 1410, 1368,  170,  154,    0, 1410,  196,  193,    0,
-      259,  171,  134,    0, 1410, 1410, 1410, 1353, 1410, 1410,
-
-     1410, 1352,    0, 1339, 1341,  164,  192, 1331, 1410, 1410,
-     1309, 1311,  111, 1314,  231, 1308, 1301, 1314, 1300, 1316,
-     1302, 1309, 1294, 1295, 1292, 1292, 1298, 1294, 1291, 1288,
-        0,  136, 1292,  179, 1290,  126,  161, 1295, 1286, 1282,
-     1285,  185,  183, 1291, 1410, 1410,  290, 1293,  191, 1294,
-      207, 1283, 1295, 1410,  304, 1410, 1320,    0,    0,  289,
-      205,  320,  231,  218, 1410,  254,  305, 1410, 1410, 1302,
-      163,  282, 1410, 1346,  244, 1410, 1345, 1308, 1275, 1274,
-      250, 1276, 1270,  262,  290, 1281, 1262, 1270, 1268, 1265,
-     1276,  287, 1256, 1270, 1263, 1307,    0, 1261, 1274, 1269,
-
-     1256,  279, 1271, 1269, 1265, 1256, 1263, 1249, 1265,    0,
-     1250, 1255,    0, 1256, 1253, 1242, 1240, 1242, 1244, 1252,
-     1237, 1235, 1235, 1248, 1247, 1246, 1235, 1240, 1244, 1246,
-     1234, 1298, 1235, 1237, 1237, 1232, 1293, 1234, 1234, 1232,
-     1229,  362,  330, 1258,  284, 1410,  307, 1410, 1410,  327,
-      312, 1251, 1244, 1245,    0, 1219, 1229, 1215, 1223, 1215,
-     1221, 1212, 1205, 1218, 1208, 1218, 1201,  291, 1205, 1217,
-     1199, 1209, 1211, 1198, 1199, 1200, 1243,    0, 1199,    0,
-        0, 1190, 1199, 1187, 1194,    0,    0, 1188, 1199, 1184,
-        0, 1188,    0, 1183, 1183, 1182, 1179, 1192, 1181, 1186,
-
-     1191, 1190, 1191,    0, 1187, 1176, 1182,    0, 1169, 1182,
-     1239, 1410, 1171, 1235, 1236, 1176, 1234, 1410, 1174, 1174,
-     1229, 1164,  362, 1410,  318, 1410,  325,    0, 1183, 1186,
-        0, 1155, 1153, 1153,  322, 1170,  395, 1153, 1166, 1150,
-     1155, 1161, 1156,  337, 1150, 1156, 1143, 1147, 1157, 1154,
-     1139, 1156,    0,    0,    0, 1142, 1143, 1149, 1139,    0,
-        0, 1147, 1132, 1141, 1135,    0, 1144, 1141, 1143, 1126,
-     1136, 1139, 1137,    0, 1127, 1131,    0, 1134, 1191, 1190,
-     1410, 1189,  399, 1129,  385, 1133, 1175, 1169, 1410, 1161,
-     1137,  393, 1117, 1108, 1107, 1124, 1121,  413, 1124, 1114,
-
-     1110, 1102, 1102, 1105, 1104, 1151, 1148, 1095, 1101, 1096,
-     1107, 1110, 1095, 1144, 1089, 1087, 1087,    0,    0,    0,
-     1100, 1101,    0,    0,    0,    0,    0,    0, 1103, 1096,
-     1096, 1088, 1150, 1151, 1410, 1150, 1410,  418,  419,  423,
-      421, 1147, 1410, 1127, 1124,   97, 1127, 1124, 1079, 1073,
-     1075, 1076, 1087, 1071,  425, 1083,    0,    0, 1068, 1065,
-     1077, 1110,    0, 1068, 1078, 1069, 1073, 1064, 1069, 1108,
-     1064, 1067,    0, 1054, 1051, 1057, 1119, 1063, 1061,    0,
-     1065, 1117,  429, 1410,  335,  431,  435, 1116, 1115, 1061,
-     1092, 1088,    0, 1035, 1034,    0, 1042, 1037, 1049, 1041,
-
-     1040,  448, 1031, 1045, 1040, 1048, 1047, 1034,    0, 1042,
-     1044, 1031, 1042, 1070, 1028,    0,    0,    0, 1024, 1035,
-        0,    0, 1081, 1051,  259, 1035, 1087,  452, 1410,  432,
-     1086, 1410, 1085, 1410, 1050, 1030, 1006,    0,    0,    0,
-     1012,    0, 1012, 1025, 1025, 1009, 1004, 1019, 1006, 1020,
-     1000,    0,  999, 1017,    0, 1016, 1015, 1009, 1010, 1004,
-     1410, 1055, 1023,  436, 1024,  453, 1018, 1026,    0, 1001,
-     1002,  985,  982,  990,  996,  456,  986,    0,    0,  999,
-        0,    0,  979,  997,  995,  994,  994,  456, 1006,  457,
-     1003, 1001,  987,  988,  979,  972,  985,  985,  460,  980,
-
-      983,  982,    0,  981,  968,  962,  986,  461,  977,  460,
-      984,  986,  965,  961,  960,  959,  951,  969,    0, 1011,
-      453,  967,    0,    0,    0, 1017,  984,  464,  972,  467,
-      970,  970,  955,    0,  955,  958,  949,    0, 1410,  456,
-        0,  957,  977,  468,  974,  470,  975,  960,  943, 1410,
-      932,  938,  463,  949,  930,  257,  868,  475,  857,  866,
-      839,  834,  837,  468,  823,  851,  474,  850,  477,  833,
-      712,  695,  686, 1410,  471,  677,  711,  479,  704,  486,
-        0,  665,    0,  651,  470,  654,  662,  490,  668,  493,
-        0,  650,  473,  617,  635,  489,  607,  492,  597,  485,
-
-      570,  575,  494,  572,  496, 1410,  489,  567,  518,  538,
-      567,  502,  521,  509,  558,  554, 1410,  552,  548, 1410,
-      551,  557,  534,  487,  539,  535, 1410,  532,  523, 1410,
-      511,  504,  439,  498,  432,  341,  323,  297,  210,  158,
-      202,  172, 1410, 1410,  562,  578,  594,  605,  616,  632,
-      643,  657,  673,  688,  699,  715,  731,  742,  758,  774,
-      790,  806,  816,  832,  848,  864,  877,  892,  908,  924,
-      940,  956,  972,  988
+        0,    0, 1412, 1413,   84,    0, 1379,   80,   85,   59,
+       83,   83, 1413, 1413, 1378,   80, 1413,   81,   79,   97,
+      140,  202, 1376, 1413,   99, 1376,   77, 1413,    0, 1372,
+     1350,  110, 1358, 1413, 1401, 1413, 1371,   98,   44,   51,
+       68,   66,   72,   84, 1331,   86, 1330, 1339,  105,  108,
+     1329, 1327, 1333, 1413,   91, 1413, 1413,  171,    0, 1413,
+      142, 1413, 1393,  211, 1334,  117, 1332, 1328, 1319, 1413,
+     1413, 1413, 1413,  124, 1413, 1388, 1413, 1413, 1413, 1413,
+     1413, 1413, 1372,  153,  238,    0, 1413,  205,  203,    0,
+      266,  230,  134,    0, 1413, 1413, 1413, 1357, 1413, 1413,
+
+     1413, 1356,    0, 1343, 1345,  152,  133, 1335, 1413, 1413,
+     1313, 1315,  118, 1318,  250, 1312, 1305, 1308, 1317, 1303,
+     1319, 1305, 1312, 1297, 1298, 1295, 1295, 1301, 1297, 1294,
+     1291,    0,   51, 1295,  135, 1293,  119,  139, 1298, 1289,
+     1285, 1288,  139,  138, 1294, 1413, 1413,  309, 1296,  177,
+     1297,  202, 1286, 1298, 1413,  323, 1413, 1323,    0,    0,
+      308,  216,  339,  313,  200, 1413,  217,  324, 1413, 1413,
+     1305,  168,  164, 1413, 1349,  244, 1413, 1348, 1311, 1278,
+     1277,  186, 1279, 1273,  183,  204, 1284, 1265, 1273, 1271,
+     1268, 1279,  230, 1259, 1273, 1266, 1310,    0, 1264, 1266,
+
+     1276, 1271, 1258,  225, 1273, 1271, 1267, 1258, 1265, 1251,
+     1267,    0, 1252, 1257,    0, 1258, 1255, 1244, 1242, 1244,
+     1246, 1254, 1239, 1237, 1237, 1250, 1249, 1248, 1237, 1242,
+     1246, 1248, 1236, 1300, 1237, 1239, 1239, 1234, 1295, 1236,
+     1236, 1234, 1231,  381,  329, 1260,  227, 1413,  273, 1413,
+     1413,  343,  274, 1253, 1246, 1247,    0, 1221, 1231, 1217,
+     1225, 1217, 1223, 1214, 1207, 1220, 1210, 1220, 1203,  233,
+     1207, 1219, 1201, 1211, 1213, 1200, 1201, 1202, 1245,    0,
+        0, 1201,    0,    0, 1192, 1201, 1189, 1196,    0,    0,
+     1190, 1201, 1186,    0, 1190,    0, 1185, 1185, 1184, 1181,
+
+     1194, 1183, 1188, 1193, 1192, 1193,    0, 1189, 1178, 1184,
+        0, 1171, 1184, 1241, 1413, 1173, 1237, 1238, 1178, 1236,
+     1413, 1176, 1176, 1231, 1166,  375, 1413,  263, 1413,  310,
+        0, 1185, 1188,    0, 1157, 1155, 1155,  299, 1172,  381,
+     1155, 1168, 1152, 1157, 1163, 1158,  295, 1152, 1158, 1145,
+     1149, 1159, 1156, 1141, 1158,    0,    0,    0, 1144, 1145,
+     1151, 1141,    0,    0, 1149, 1134, 1143, 1137,    0, 1146,
+     1143, 1145, 1128, 1138, 1141, 1139,    0, 1129, 1133,    0,
+     1136, 1193, 1192, 1413, 1191,  263, 1131,  400, 1135, 1177,
+     1171, 1413, 1163, 1139,  373, 1119, 1110, 1109, 1126, 1123,
+
+      408, 1126, 1116, 1112, 1104, 1104, 1107, 1106, 1153, 1150,
+     1097, 1103, 1098, 1109, 1112, 1097, 1146, 1091, 1089, 1089,
+        0,    0,    0, 1102, 1103,    0,    0,    0,    0,    0,
+        0, 1105, 1098, 1098, 1090, 1152, 1153, 1413, 1152, 1413,
+      377,  412,  393,  424, 1149, 1413, 1129, 1126,  408, 1129,
+     1126, 1081, 1075, 1077, 1078, 1089, 1073,  434, 1085,    0,
+        0, 1070, 1067, 1079, 1112,    0, 1070, 1080, 1071, 1075,
+     1066, 1071, 1110, 1066, 1069,    0, 1056, 1053, 1059, 1121,
+     1065, 1063,    0, 1067, 1119,  438, 1413,  316,  430,  451,
+     1118, 1117, 1063, 1094, 1090,    0, 1037, 1036,    0, 1044,
+
+     1039, 1051, 1043, 1042,  453, 1033, 1047, 1042, 1050, 1049,
+     1036,    0, 1044, 1046, 1033, 1044, 1072, 1030,    0,    0,
+        0, 1026, 1037,    0,    0, 1083, 1053,  428, 1037, 1089,
+      457, 1413,  415, 1088, 1413, 1087, 1413, 1052, 1032, 1008,
+        0,    0,    0, 1014,    0, 1014, 1027, 1027, 1011, 1006,
+     1021, 1008, 1022, 1002,    0, 1001, 1019,    0, 1018, 1017,
+     1011, 1012, 1006, 1413, 1057, 1025,  439, 1026,  458, 1020,
+     1028,    0, 1003, 1004,  987,  984,  992,  998,  461,  988,
+        0,    0, 1001,    0,    0,  981,  999,  997,  996,  996,
+      461, 1008,  462, 1005, 1003,  989,  990,  981,  974,  987,
+
+      987,  465,  982,  985,  984,    0,  983,  970,  964,  988,
+      368,  979,  469,  986,  988,  967,  963,  962,  961,  953,
+      971,    0, 1013,  235,  969,    0,    0,    0, 1019,  986,
+      471,  974,  472,  972,  972,  957,    0,  957,  960,  951,
+        0, 1413,  463,    0,  959,  979,  475,  976,  477,  977,
+      962,  945, 1413,  934,  940,  466,  951,  961,  478,  941,
+      480,  859,  868,  841,  836,  839,  471,  825,  853,  484,
+      852,  486,  847,  838,  698,  688, 1413,  475,  680,  714,
+      487,  706,  488,    0,  701,    0,  654,  479,  656,  665,
+      490,  671,  499,    0,  652,  482,  632,  637,  493,  645,
+
+      494,  599,  485,  589,  580,  497,  576,  498, 1413,  490,
+      570,  516,  540,  571,  503,  499,  568,  563,  559, 1413,
+      549,  548, 1413,  553,  558,  535,  490,  541,  537, 1413,
+      525,  524, 1413,  511,  509,  442,  491,  316,  327,  297,
+      237,  248,  227,  196,   93, 1413, 1413,  563,  579,  595,
+      606,  617,  633,  644,  658,  674,  689,  700,  716,  732,
+      743,  759,  775,  791,  807,  817,  833,  849,  865,  878,
+      893,  909,  925,  941,  957,  973,  989
     } ;
 
-static const flex_int16_t yy_def[775] =
+static const flex_int16_t yy_def[778] =
     {   0,
-      744,    1,  744,  744,  744,  745,  744,  746,  744,  744,
-      744,  747,  744,  744,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744,  744,  744,  744,  744,  748,  748,
-      748,  748,  748,  744,  744,  744,  744,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  744,  744,  744,  744,  744,  745,  744,
-      746,  744,  746,  744,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  747,  744,  747,  744,  744,  744,  744,
-      744,  744,  744,  749,  744,  750,  744,  749,   21,   22,
-      744,  744,  744,  751,  744,  744,  744,  744,  744,  744,
-
-      744,  744,  748,  748,  748,  752,  753,  748,  744,  744,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744,  744,  744,  744,  754,  750,  744,
-      744,  744,  755,  744,  744,  744,  751,  744,  744,  748,
-      748,  752,  744,  752,  753,  744,  753,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  756,  744,  744,  744,  744,  757,  744,  744,  744,
-      744,  744,  758,  754,  744,  744,  744,  744,  744,  744,
-      744,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      756,  744,  744,  744,  759,  744,  757,  744,  744,  744,
-      744,  744,  744,  744,  744,  744,  744,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  744,  760,  759,
-      744,  761,  744,  744,  744,  744,  744,  744,  744,  748,
-      748,  748,  748,  748,  748,  748,  748,  744,  748,  748,
-
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  744,  760,  744,  761,  744,  744,  762,  744,
-      744,  744,  744,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  744,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  763,
-      744,  762,  762,  744,  762,  744,  764,  765,  766,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-
-      744,  744,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  744,
-      748,  748,  767,  744,  762,  744,  764,  764,  744,  764,
-      765,  744,  766,  744,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  744,  744,  744,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  744,
-      744,  767,  744,  762,  744,  764,  748,  748,  748,  748,
-      748,  744,  744,  744,  748,  748,  748,  748,  748,  748,
-      748,  748,  748,  748,  748,  744,  744,  762,  744,  764,
-      748,  748,  748,  748,  744,  744,  744,  748,  744,  768,
-
-      748,  748,  748,  748,  748,  744,  744,  762,  744,  764,
-      748,  748,  748,  748,  744,  744,  744,  748,  768,  768,
-      768,  748,  748,  748,  748,  744,  744,  762,  744,  764,
-      748,  748,  748,  748,  744,  744,  744,  748,  744,  768,
-      748,  744,  744,  762,  744,  764,  748,  748,  748,  744,
-      744,  744,  768,  744,  744,  762,  744,  764,  748,  748,
-      748,  744,  744,  768,  744,  744,  762,  744,  764,  748,
-      748,  748,  744,  744,  768,  744,  744,  762,  744,  764,
-      748,  748,  748,  744,  768,  744,  744,  762,  744,  764,
-      748,  744,  768,  744,  744,  762,  744,  764,  744,  768,
-
-      744,  744,  762,  744,  764,  744,  768,  744,  769,  770,
-      744,  764,  768,  744,  769,  769,  744,  770,  770,  744,
-      771,  772,  773,  744,  771,  771,  744,  772,  772,  744,
-      773,  773,  744,  773,  744,  744,  744,  744,  744,  744,
-      774,  774,  744,    0,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744
+      747,    1,  747,  747,  747,  748,  747,  749,  747,  747,
+      747,  750,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  751,  751,
+      751,  751,  751,  747,  747,  747,  747,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  751,  747,  747,  747,  747,  747,  748,  747,
+      749,  747,  749,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  750,  747,  750,  747,  747,  747,  747,
+      747,  747,  747,  752,  747,  753,  747,  752,   21,   22,
+      747,  747,  747,  754,  747,  747,  747,  747,  747,  747,
+
+      747,  747,  751,  751,  751,  755,  756,  751,  747,  747,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  751,  751,  751,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  757,  753,
+      747,  747,  747,  758,  747,  747,  747,  754,  747,  747,
+      751,  751,  755,  747,  755,  756,  747,  756,  751,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  751,  759,  747,  747,  747,  747,  760,  747,
+      747,  747,  747,  747,  761,  757,  747,  747,  747,  747,
+      747,  747,  747,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  751,  759,  747,  747,  747,  762,  747,  760,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      747,  763,  762,  747,  764,  747,  747,  747,  747,  747,
+      747,  747,  751,  751,  751,  751,  751,  751,  751,  751,
+
+      747,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  751,  751,  751,  747,  763,  747,  764,  747,
+      747,  765,  747,  747,  747,  747,  751,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  747,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  766,  747,  765,  765,  747,  765,  747,  767,
+      768,  769,  751,  751,  751,  751,  751,  751,  751,  751,
+
+      751,  751,  751,  747,  747,  751,  751,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  747,  751,  751,  770,  747,  765,  747,  767,
+      767,  747,  767,  768,  747,  769,  747,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  747,  747,  747,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  747,  747,  770,  747,  765,  747,  767,  751,
+      751,  751,  751,  751,  747,  747,  747,  751,  751,  751,
+      751,  751,  751,  751,  751,  751,  751,  751,  747,  747,
+      765,  747,  767,  751,  751,  751,  751,  747,  747,  747,
+
+      751,  747,  771,  751,  751,  751,  751,  751,  747,  747,
+      765,  747,  767,  751,  751,  751,  751,  747,  747,  747,
+      751,  771,  771,  771,  751,  751,  751,  751,  747,  747,
+      765,  747,  767,  751,  751,  751,  751,  747,  747,  747,
+      751,  747,  771,  751,  747,  747,  765,  747,  767,  751,
+      751,  751,  747,  747,  747,  771,  747,  747,  765,  747,
+      767,  751,  751,  751,  747,  747,  771,  747,  747,  765,
+      747,  767,  751,  751,  751,  747,  747,  771,  747,  747,
+      765,  747,  767,  751,  751,  751,  747,  771,  747,  747,
+      765,  747,  767,  751,  747,  771,  747,  747,  765,  747,
+
+      767,  747,  771,  747,  747,  765,  747,  767,  747,  771,
+      747,  772,  773,  747,  767,  771,  747,  772,  772,  747,
+      773,  773,  747,  774,  775,  776,  747,  774,  774,  747,
+      775,  775,  747,  776,  776,  747,  776,  747,  747,  747,
+      747,  747,  747,  777,  777,  747,    0,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747
     } ;
 
-static const flex_int16_t yy_nxt[1496] =
+static const flex_int16_t yy_nxt[1499] =
     {   0,
         4,    5,    6,    5,    5,    7,    8,    9,   10,   11,
        12,   13,   14,   15,   16,   17,   18,   19,   20,   21,
@@ -808,165 +809,165 @@ static const flex_int16_t yy_nxt[1496] =
        43,   44,   45,   29,   46,   29,   29,   47,   29,   29,
        29,   29,   48,   49,   50,   51,   52,   53,   29,   29,
        29,   54,   55,   56,   57,   58,   62,   58,   58,   64,
-       70,   71,   72,   75,   78,   62,   83,   80,   84,   84,
+       70,   71,   72,   75,   78,  746,   83,   80,   84,   84,
 
        84,   84,   84,   84,   84,   84,   84,   96,  101,  102,
-       85,   79,   81,   82,   73,   86,  106,  116,  492,  117,
-      107,  145,  493,  124,  119,  125,  122,   97,   87,   98,
-       99,  120,   63,  111,  126,   76,  123,  112,  121,  131,
-      127,   63,  113,   75,   65,   66,  114,  132,  149,   67,
-      150,  128,   68,  115,  129,  157,   69,   88,  157,   89,
-       89,   89,   89,   89,   89,   89,   90,   90,  135,  136,
-      173,  139,  146,   58,  743,   58,   58,  166,   91,  137,
-      140,  181,  138,   92,  158,   76,  182,  141,  219,   93,
-       94,  147,  147,  147,  147,  147,  147,  147,  147,  147,
-
-       91,  166,  176,  212,  743,  253,  220,   92,  155,  156,
-      213,  237,  254,  156,  164,   93,  174,  221,   94,   88,
-      165,   90,   90,   90,   90,   90,   90,   90,   90,   90,
-      155,  156,  741,  222,  155,  156,  160,  156,  164,  156,
-       91,  215,  161,  744,  177,   92,  165,  229,  247,  227,
-      230,   93,  216,  217,  176,  234,  155,  156,  228,  484,
-      160,  484,   91,  156,  235,  740,  238,  165,  161,   92,
-      248,  744,  247,  162,  248,  162,  239,   93,  163,  163,
-      163,  163,  163,  163,  163,  163,  163,  184,  173,  185,
-      186,  187,  248,  165,  232,  188,  177,  249,  248,  564,
-
-      189,  667,  190,  191,  192,  193,  194,  195,  196,  147,
-      147,  147,  147,  147,  147,  147,  147,  147,  242,  258,
-      242,  249,  259,  243,  243,  243,  243,  243,  243,  243,
-      243,  243,  245,  246,  174,  262,  263,  484,  246,  163,
-      163,  163,  163,  163,  163,  163,  163,  163,  250,  264,
-      324,  272,  282,  283,  251,  327,  245,  406,  343,  246,
-      265,  273,  407,  387,  246,  344,  387,  326,  389,  156,
-      325,  739,  250,  156,  324,  388,  326,  395,  396,  327,
-      251,  243,  243,  243,  243,  243,  243,  243,  243,  243,
-      525,  156,  389,  326,  325,  738,  398,  156,  398,  398,
-
-      438,  737,  326,  439,  441,  441,  441,  441,  441,  441,
-      441,  441,  441,  446,  398,  447,  398,  398,  448,  438,
-      483,  484,  438,  483,  486,  488,  502,  487,  502,  502,
-      483,  484,  486,  483,  529,  486,  528,  529,  484,  528,
-      441,  441,  441,  441,  441,  441,  441,  441,  441,  502,
-      399,  502,  502,  528,  529,  529,  528,  599,  484,  529,
-      599,  599,  529,  484,  599,  639,  484,  600,  639,  529,
-      484,  619,  529,  481,  485,  639,  484,  529,  588,  529,
-      639,  484,  639,  639,  485,  639,  526,  566,  529,  454,
-      530,  484,  484,  590,  529,  529,  484,  639,  529,  610,
-
-      644,  639,  656,  545,  529,  736,  658,  530,  628,  669,
-      734,  608,  735,  640,  646,  630,  734,  688,  678,  716,
-      717,  680,  716,  732,  546,  730,  693,  653,  675,  685,
-      690,  698,  723,  639,  730,  664,  696,  727,  705,  719,
-      720,  727,  719,  733,  703,  707,  732,  700,  713,  710,
-      720,  712,  726,  727,  720,  726,  717,  722,  729,  730,
-      717,  729,   59,   59,  724,   59,   59,   59,   59,   59,
-       59,   59,   59,   59,   59,   59,   59,   59,   61,   61,
+       85,   79,   81,   82,   73,   86,  106,  116,  214,  117,
+      107,  118,  146,  119,  120,  215,  123,   97,   87,   98,
+       99,  121,   63,  111,   75,   76,  124,  112,  122,  125,
+      128,  126,  113,  177,   65,   66,  114,  132,   62,   67,
+      127,  129,   68,  115,  130,  133,   69,   88,  174,   89,
+       89,   89,   89,   89,   89,   89,   90,   90,  136,  137,
+      174,  140,   58,  147,   58,   58,   76,  167,   91,  138,
+      141,  221,  139,   92,  150,  178,  151,  142,  182,   93,
+       94,  156,  157,  183,   63,  223,  157,  217,  746,  222,
+
+       91,  167,  231,  229,  175,  232,  239,   92,  218,  219,
+      255,  224,  230,  156,  157,   93,  175,  256,   94,   88,
+      157,   90,   90,   90,   90,   90,   90,   90,   90,   90,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  158,
+       91,  236,  158,  156,  157,   92,  161,  642,  157,  166,
+      237,   93,  162,  747,  177,  260,  264,  265,  261,  249,
+      251,  240,   91,  266,  441,  156,  157,  442,  159,   92,
+      161,  241,  157,  165,  267,  166,  248,   93,  162,  166,
+      163,  747,  163,  249,  251,  164,  164,  164,  164,  164,
+      164,  164,  164,  164,  274,  643,  178,  165,  285,  286,
+
+      346,  744,  248,  743,  275,  166,  185,  347,  186,  187,
+      188,  742,  329,  234,  189,  409,  327,  330,  487,  190,
+      410,  191,  192,  193,  194,  195,  196,  197,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  244,  329,  244,
+      327,  330,  245,  245,  245,  245,  245,  245,  245,  245,
+      245,  247,  250,  392,  398,  399,  250,  248,  164,  164,
+      164,  164,  164,  164,  164,  164,  164,  252,  157,  741,
+      487,  528,  157,  253,  250,  247,  390,  392,  441,  390,
+      250,  441,  401,  248,  401,  401,  328,  740,  391,  739,
+      157,  252,  329,  449,  489,  450,  157,  490,  451,  253,
+
+      245,  245,  245,  245,  245,  245,  245,  245,  245,  401,
+      328,  401,  401,  486,  487,  631,  486,  532,  329,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  491,  495,
+      487,  489,  484,  496,  489,  505,  402,  505,  505,  486,
+      487,  487,  486,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  531,  532,  505,  531,  505,  505,  531,  532,
+      532,  531,  602,  487,  532,  602,  602,  488,  567,  602,
+      569,  532,  603,  487,  532,  642,  622,  487,  642,  532,
+      487,  591,  532,  642,  457,  529,  487,  642,  532,  487,
+      532,  642,  487,  488,  642,  487,  532,  642,  593,  487,
+
+      532,  532,  642,  737,  613,  532,  533,  647,  548,  659,
+      726,  642,  533,  661,  672,  738,  611,  719,  720,  649,
+      719,  737,  670,  735,  633,  691,  733,  733,  681,  549,
+      683,  678,  693,  688,  656,  696,  699,  701,  667,  730,
+      708,  722,  723,  730,  722,  710,  736,  735,  706,  716,
+      723,  723,  713,  715,  729,  730,  703,  729,  725,  732,
+      733,  720,  732,   59,   59,  720,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   61,
        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
-       61,   61,   61,   61,   74,   74,   74,   74,   74,   74,
+       61,   61,   61,   61,   61,   74,   74,   74,   74,   74,
 
        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
-      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
-      103,   84,  721,   84,   84,  714,   84,  711,   84,   84,
-      709,   84,  159,  159,  708,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  167,  167,
-      167,  167,  706,  704,  167,  167,  167,  172,  172,  172,
-      172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
-      172,  172,  172,  175,  175,  175,  175,  175,  175,  175,
-      175,  175,  175,  175,  175,  175,  175,  175,  175,  244,
-      702,  701,  244,  244,  244,  244,  244,  244,  244,  244,
-
-      244,  244,  244,  244,  163,  699,  697,  163,  695,  163,
-      694,  692,  163,  691,  163,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  243,  689,  687,
-      243,  686,  243,  684,  683,  243,  682,  243,  380,  380,
-      380,  380,  380,  380,  380,  380,  380,  380,  380,  380,
-      380,  380,  380,  380,  434,  434,  434,  434,  434,  434,
-      434,  434,  434,  434,  434,  434,  434,  434,  434,  434,
-      436,  436,  436,  436,  436,  436,  436,  436,  436,  436,
-
-      436,  436,  436,  436,  436,  436,  482,  482,  482,  482,
-      482,  482,  482,  482,  482,  482,  482,  482,  482,  482,
-      482,  482,  523,  523,  523,  523,  523,  523,  523,  523,
-      523,  523,  527,  527,  527,  527,  527,  527,  527,  527,
-      527,  527,  527,  527,  527,  527,  527,  527,  531,  531,
-      531,  531,  531,  531,  531,  531,  531,  531,  531,  531,
-      531,  531,  531,  531,  533,  533,  533,  533,  533,  533,
-      533,  533,  533,  533,  533,  533,  533,  533,  533,  533,
-      562,  681,  562,  562,  562,  562,  562,  562,  562,  562,
-      562,  562,  562,  620,  679,  677,  676,  674,  673,  672,
-
-      671,  670,  668,  620,  620,  620,  620,  620,  715,  715,
-      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
-      715,  715,  715,  715,  718,  718,  718,  718,  718,  718,
+       74,  103,  103,  103,  103,  103,  103,  103,  103,  103,
+      103,  103,   84,  727,   84,   84,  724,   84,  717,   84,
+       84,  714,   84,  160,  160,  712,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  168,
+      168,  168,  168,  711,  709,  168,  168,  168,  173,  173,
+      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
+      173,  173,  173,  173,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      246,  707,  705,  246,  246,  246,  246,  246,  246,  246,
+
+      246,  246,  246,  246,  246,  164,  704,  702,  164,  700,
+      164,  698,  697,  164,  695,  164,  314,  314,  314,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
+      314,  314,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  245,  694,
+      692,  245,  690,  245,  689,  687,  245,  686,  245,  383,
+      383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
+      383,  383,  383,  383,  383,  437,  437,  437,  437,  437,
+      437,  437,  437,  437,  437,  437,  437,  437,  437,  437,
+      437,  439,  439,  439,  439,  439,  439,  439,  439,  439,
+
+      439,  439,  439,  439,  439,  439,  439,  485,  485,  485,
+      485,  485,  485,  485,  485,  485,  485,  485,  485,  485,
+      485,  485,  485,  526,  526,  526,  526,  526,  526,  526,
+      526,  526,  526,  530,  530,  530,  530,  530,  530,  530,
+      530,  530,  530,  530,  530,  530,  530,  530,  530,  534,
+      534,  534,  534,  534,  534,  534,  534,  534,  534,  534,
+      534,  534,  534,  534,  534,  536,  536,  536,  536,  536,
+      536,  536,  536,  536,  536,  536,  536,  536,  536,  536,
+      536,  565,  685,  565,  565,  565,  565,  565,  565,  565,
+      565,  565,  565,  565,  623,  684,  682,  680,  679,  677,
+
+      676,  675,  674,  673,  623,  623,  623,  623,  623,  718,
       718,  718,  718,  718,  718,  718,  718,  718,  718,  718,
-      725,  725,  725,  725,  725,  725,  725,  725,  725,  725,
-      725,  725,  725,  725,  725,  725,  728,  728,  728,  728,
-      728,  728,  728,  728,  728,  728,  728,  728,  728,  728,
-      728,  728,  731,  731,  666,  731,  731,  731,  731,  731,
-      731,  731,  731,  731,  731,  731,  731,  731,  742,  742,
-      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
-
-      742,  742,  742,  742,  665,  663,  662,  661,  660,  659,
-      657,  655,  654,  652,  651,  650,  649,  648,  647,  645,
-      643,  642,  641,  639,  638,  637,  636,  635,  634,  633,
-      632,  631,  629,  627,  626,  625,  624,  623,  622,  621,
-      618,  617,  616,  615,  614,  613,  612,  611,  609,  607,
-      606,  605,  604,  603,  602,  601,  598,  597,  596,  595,
-      594,  593,  592,  591,  589,  587,  561,  586,  585,  584,
-      583,  582,  581,  580,  579,  578,  577,  576,  575,  574,
-      573,  572,  571,  570,  569,  568,  567,  534,  532,  529,
-      565,  563,  561,  560,  559,  558,  557,  556,  555,  554,
-
-      553,  552,  551,  550,  549,  548,  547,  544,  543,  542,
-      541,  540,  539,  538,  537,  536,  535,  534,  532,  484,
-      524,  522,  521,  520,  519,  518,  517,  516,  515,  514,
-      513,  512,  511,  510,  509,  508,  507,  506,  505,  504,
-      503,  501,  500,  499,  498,  497,  496,  495,  494,  491,
-      490,  489,  437,  435,  480,  479,  478,  477,  476,  475,
-      474,  473,  472,  471,  470,  469,  468,  467,  466,  465,
-      464,  463,  462,  461,  460,  459,  458,  457,  456,  455,
-      453,  452,  451,  450,  449,  445,  444,  443,  388,  442,
-      440,  437,  381,  435,  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,
-      405,  404,  403,  402,  401,  400,  397,  394,  393,  392,
-      391,  390,  386,  385,  384,  383,  318,  382,  381,  379,
-      378,  312,  377,  376,  375,  374,  373,  372,  371,  370,
-      369,  368,  367,  366,  365,  364,  363,  362,  361,  360,
-      359,  358,  357,  356,  355,  354,  353,  352,  351,  350,
-      349,  348,  347,  346,  345,  342,  341,  340,  339,  338,
-      337,  336,  335,  334,  333,  332,  331,  330,  329,  328,
-      323,  322,  321,  320,  319,  318,  316,  315,  314,  313,
-
-      312,  310,  309,  308,  307,  306,  305,  304,  303,  302,
-      301,  300,  299,  298,  297,  296,  295,  294,  293,  292,
-      291,  290,  289,  288,  287,  286,  285,  284,  281,  280,
-      279,  278,  277,  276,  275,  274,  271,  270,  269,  268,
-      267,  266,  261,  260,  257,  256,  255,  744,  744,  252,
-      158,  241,  240,  236,  233,  231,  226,  225,  224,  223,
-      218,  214,  211,  210,  209,  208,  207,  206,  205,  204,
-      203,  202,  201,  200,  199,  198,  197,  183,  180,  179,
-      178,  171,  170,  169,  168,  154,  744,  153,  152,  151,
-      148,  744,  144,  143,  142,  134,  133,  130,  118,  110,
-
-      109,  108,  105,  104,  100,   95,   77,   60,  744,    3,
-      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744,  744
+      718,  718,  718,  718,  718,  721,  721,  721,  721,  721,
+      721,  721,  721,  721,  721,  721,  721,  721,  721,  721,
+      721,  728,  728,  728,  728,  728,  728,  728,  728,  728,
+      728,  728,  728,  728,  728,  728,  728,  731,  731,  731,
+      731,  731,  731,  731,  731,  731,  731,  731,  731,  731,
+      731,  731,  731,  734,  734,  671,  734,  734,  734,  734,
+      734,  734,  734,  734,  734,  734,  734,  734,  734,  745,
+      745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
+
+      745,  745,  745,  745,  745,  669,  668,  666,  665,  664,
+      663,  662,  660,  658,  657,  655,  654,  653,  652,  651,
+      650,  648,  646,  645,  644,  642,  641,  640,  639,  638,
+      637,  636,  635,  634,  632,  630,  629,  628,  627,  626,
+      625,  624,  621,  620,  619,  618,  617,  616,  615,  614,
+      612,  610,  609,  608,  607,  606,  605,  604,  601,  600,
+      599,  598,  597,  596,  595,  594,  592,  590,  564,  589,
+      588,  587,  586,  585,  584,  583,  582,  581,  580,  579,
+      578,  577,  576,  575,  574,  573,  572,  571,  570,  537,
+      535,  532,  568,  566,  564,  563,  562,  561,  560,  559,
+
+      558,  557,  556,  555,  554,  553,  552,  551,  550,  547,
+      546,  545,  544,  543,  542,  541,  540,  539,  538,  537,
+      535,  487,  527,  525,  524,  523,  522,  521,  520,  519,
+      518,  517,  516,  515,  514,  513,  512,  511,  510,  509,
+      508,  507,  506,  504,  503,  502,  501,  500,  499,  498,
+      497,  494,  493,  492,  440,  438,  483,  482,  481,  480,
+      479,  478,  477,  476,  475,  474,  473,  472,  471,  470,
+      469,  468,  467,  466,  465,  464,  463,  462,  461,  460,
+      459,  458,  456,  455,  454,  453,  452,  448,  447,  446,
+      391,  445,  443,  440,  384,  438,  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,  408,  407,  406,  405,  404,  403,  400,  397,
+      396,  395,  394,  393,  389,  388,  387,  386,  321,  385,
+      384,  382,  381,  315,  380,  379,  378,  377,  376,  375,
+      374,  373,  372,  371,  370,  369,  368,  367,  366,  365,
+      364,  363,  362,  361,  360,  359,  358,  357,  356,  355,
+      354,  353,  352,  351,  350,  349,  348,  345,  344,  343,
+      342,  341,  340,  339,  338,  337,  336,  335,  334,  333,
+      332,  331,  326,  325,  324,  323,  322,  321,  319,  318,
+
+      317,  316,  315,  313,  312,  311,  310,  309,  308,  307,
+      306,  305,  304,  303,  302,  301,  300,  299,  298,  297,
+      296,  295,  294,  293,  292,  291,  290,  289,  288,  287,
+      284,  283,  282,  281,  280,  279,  278,  277,  276,  273,
+      272,  271,  270,  269,  268,  263,  262,  259,  258,  257,
+      747,  747,  254,  159,  243,  242,  238,  235,  233,  228,
+      227,  226,  225,  220,  216,  213,  212,  211,  210,  209,
+      208,  207,  206,  205,  204,  203,  202,  201,  200,  199,
+      198,  184,  181,  180,  179,  172,  171,  170,  169,  155,
+      747,  154,  153,  152,  149,  747,  145,  144,  143,  135,
+
+      134,  131,  110,  109,  108,  105,  104,  100,   95,   77,
+       60,  747,    3,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747
 
     } ;
 
-static const flex_int16_t yy_chk[1496] =
+static const flex_int16_t yy_chk[1499] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -977,161 +978,161 @@ static const flex_int16_t yy_chk[1496] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    5,    8,    5,    5,    9,
-       10,   10,   11,   12,   16,   61,   19,   18,   19,   19,
+       10,   10,   11,   12,   16,  745,   19,   18,   19,   19,
 
        19,   19,   19,   19,   19,   19,   19,   25,   27,   27,
-       20,   16,   18,   18,   11,   20,   32,   39,  446,   39,
-       32,   55,  446,   43,   41,   43,   42,   25,   20,   25,
-       25,   41,    8,   38,   43,   12,   42,   38,   41,   46,
-       44,   61,   38,   74,    9,    9,   38,   46,   66,    9,
-       66,   44,    9,   38,   44,   85,    9,   21,   85,   21,
+       20,   16,   18,   18,   11,   20,   32,   39,  133,   39,
+       32,   40,   55,   40,   41,  133,   42,   25,   20,   25,
+       25,   41,    8,   38,   74,   12,   42,   38,   41,   43,
+       44,   43,   38,  107,    9,    9,   38,   46,   61,    9,
+       43,   44,    9,   38,   44,   46,    9,   21,  106,   21,
        21,   21,   21,   21,   21,   21,   21,   21,   49,   49,
-      106,   50,   55,   58,  742,   58,   58,   93,   21,   49,
-       50,  113,   49,   21,   85,   74,  113,   50,  136,   21,
-       21,   64,   64,   64,   64,   64,   64,   64,   64,   64,
-
-       21,   93,  107,  132,  741,  171,  136,   21,   84,   84,
-      132,  151,  171,   84,   92,   21,  106,  137,   21,   22,
-       92,   22,   22,   22,   22,   22,   22,   22,   22,   22,
-       84,   84,  740,  137,   88,   88,   89,   84,   92,   88,
-       22,  134,   89,   89,  107,   22,   92,  143,  161,  142,
-      143,   22,  134,  134,  175,  149,   88,   88,  142,  656,
-       89,  525,   22,   88,  149,  739,  151,  164,   89,   22,
-      163,   89,  161,   91,  163,   91,  151,   22,   91,   91,
-       91,   91,   91,   91,   91,   91,   91,  115,  172,  115,
-      115,  115,  163,  164,  147,  115,  175,  166,  163,  525,
-
-      115,  656,  115,  115,  115,  115,  115,  115,  115,  147,
-      147,  147,  147,  147,  147,  147,  147,  147,  155,  181,
-      155,  166,  181,  155,  155,  155,  155,  155,  155,  155,
-      155,  155,  160,  245,  172,  184,  184,  485,  160,  162,
-      162,  162,  162,  162,  162,  162,  162,  162,  167,  185,
-      247,  192,  202,  202,  167,  251,  160,  344,  268,  245,
-      185,  192,  344,  323,  160,  268,  323,  325,  327,  243,
-      250,  738,  167,  243,  247,  323,  250,  335,  335,  251,
-      167,  242,  242,  242,  242,  242,  242,  242,  242,  242,
-      485,  243,  327,  325,  250,  737,  337,  243,  337,  337,
-
-      383,  736,  250,  383,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  392,  398,  392,  398,  398,  392,  438,
-      439,  439,  438,  439,  440,  441,  455,  440,  455,  455,
-      483,  483,  486,  483,  530,  486,  487,  487,  564,  487,
-      441,  441,  441,  441,  441,  441,  441,  441,  441,  502,
-      337,  502,  502,  528,  528,  566,  528,  576,  588,  590,
-      576,  599,  610,  608,  599,  621,  628,  576,  640,  630,
-      644,  599,  646,  438,  439,  653,  667,  658,  564,  669,
-      664,  678,  685,  675,  483,  693,  486,  530,  680,  398,
-      487,  696,  688,  566,  698,  690,  703,  700,  705,  590,
-
-      628,  707,  644,  502,  712,  735,  646,  528,  608,  658,
-      734,  588,  733,  621,  630,  610,  732,  678,  667,  709,
-      709,  669,  709,  731,  502,  729,  685,  640,  664,  675,
-      680,  690,  713,  713,  728,  653,  688,  726,  698,  710,
-      710,  725,  710,  724,  696,  700,  723,  693,  707,  703,
-      719,  705,  721,  721,  718,  721,  716,  712,  722,  722,
-      715,  722,  745,  745,  714,  745,  745,  745,  745,  745,
-      745,  745,  745,  745,  745,  745,  745,  745,  746,  746,
-      746,  746,  746,  746,  746,  746,  746,  746,  746,  746,
-      746,  746,  746,  746,  747,  747,  747,  747,  747,  747,
-
-      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
-      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
-      748,  749,  711,  749,  749,  708,  749,  704,  749,  749,
-      702,  749,  750,  750,  701,  750,  750,  750,  750,  750,
-      750,  750,  750,  750,  750,  750,  750,  750,  751,  751,
-      751,  751,  699,  697,  751,  751,  751,  752,  752,  752,
-      752,  752,  752,  752,  752,  752,  752,  752,  752,  752,
-      752,  752,  752,  753,  753,  753,  753,  753,  753,  753,
+      173,   50,   58,   55,   58,   58,   74,   93,   21,   49,
+       50,  137,   49,   21,   66,  107,   66,   50,  113,   21,
+       21,   84,   84,  113,   61,  138,   84,  135,  744,  137,
+
+       21,   93,  144,  143,  106,  144,  152,   21,  135,  135,
+      172,  138,  143,   84,   84,   21,  173,  172,   21,   22,
+       84,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   85,
+       22,  150,   85,   88,   88,   22,   89,  624,   88,  165,
+      150,   22,   89,   89,  176,  182,  185,  185,  182,  162,
+      167,  152,   22,  186,  386,   88,   88,  386,   85,   22,
+       89,  152,   88,   92,  186,  165,  247,   22,   89,   92,
+       91,   89,   91,  162,  167,   91,   91,   91,   91,   91,
+       91,   91,   91,   91,  193,  624,  176,   92,  204,  204,
+
+      270,  743,  247,  742,  193,   92,  115,  270,  115,  115,
+      115,  741,  328,  148,  115,  347,  249,  253,  488,  115,
+      347,  115,  115,  115,  115,  115,  115,  115,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  156,  328,  156,
+      249,  253,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  161,  164,  330,  338,  338,  164,  161,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  168,  245,  740,
+      611,  488,  245,  168,  164,  161,  326,  330,  441,  326,
+      164,  441,  340,  161,  340,  340,  252,  739,  326,  738,
+      245,  168,  252,  395,  443,  395,  245,  443,  395,  168,
+
+      244,  244,  244,  244,  244,  244,  244,  244,  244,  401,
+      252,  401,  401,  442,  442,  611,  442,  533,  252,  388,
+      388,  388,  388,  388,  388,  388,  388,  388,  444,  449,
+      528,  489,  441,  449,  489,  458,  340,  458,  458,  486,
+      486,  567,  486,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  490,  490,  505,  490,  505,  505,  531,  531,
+      569,  531,  579,  591,  593,  579,  602,  442,  528,  602,
+      533,  613,  579,  631,  633,  643,  602,  647,  656,  649,
+      659,  567,  661,  667,  401,  489,  670,  678,  672,  681,
+      683,  688,  691,  486,  696,  699,  701,  703,  569,  706,
+
+      708,  693,  710,  737,  593,  715,  490,  631,  505,  647,
+      716,  716,  531,  649,  661,  736,  591,  712,  712,  633,
+      712,  735,  659,  734,  613,  681,  732,  731,  670,  505,
+      672,  667,  683,  678,  643,  688,  691,  693,  656,  729,
+      701,  713,  713,  728,  713,  703,  727,  726,  699,  710,
+      722,  721,  706,  708,  724,  724,  696,  724,  715,  725,
+      725,  719,  725,  748,  748,  718,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  749,
+      749,  749,  749,  749,  749,  749,  749,  749,  749,  749,
+      749,  749,  749,  749,  749,  750,  750,  750,  750,  750,
+
+      750,  750,  750,  750,  750,  750,  750,  750,  750,  750,
+      750,  751,  751,  751,  751,  751,  751,  751,  751,  751,
+      751,  751,  752,  717,  752,  752,  714,  752,  711,  752,
+      752,  707,  752,  753,  753,  705,  753,  753,  753,  753,
       753,  753,  753,  753,  753,  753,  753,  753,  753,  754,
-      695,  694,  754,  754,  754,  754,  754,  754,  754,  754,
-
-      754,  754,  754,  754,  755,  692,  689,  755,  687,  755,
-      686,  684,  755,  682,  755,  756,  756,  756,  756,  756,
+      754,  754,  754,  704,  702,  754,  754,  754,  755,  755,
+      755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
+      755,  755,  755,  755,  756,  756,  756,  756,  756,  756,
       756,  756,  756,  756,  756,  756,  756,  756,  756,  756,
-      756,  757,  757,  757,  757,  757,  757,  757,  757,  757,
-      757,  757,  757,  757,  757,  757,  757,  758,  679,  677,
-      758,  676,  758,  673,  672,  758,  671,  758,  759,  759,
-      759,  759,  759,  759,  759,  759,  759,  759,  759,  759,
-      759,  759,  759,  759,  760,  760,  760,  760,  760,  760,
-      760,  760,  760,  760,  760,  760,  760,  760,  760,  760,
-      761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
+      757,  700,  698,  757,  757,  757,  757,  757,  757,  757,
 
-      761,  761,  761,  761,  761,  761,  762,  762,  762,  762,
+      757,  757,  757,  757,  757,  758,  697,  695,  758,  692,
+      758,  690,  689,  758,  687,  758,  759,  759,  759,  759,
+      759,  759,  759,  759,  759,  759,  759,  759,  759,  759,
+      759,  759,  760,  760,  760,  760,  760,  760,  760,  760,
+      760,  760,  760,  760,  760,  760,  760,  760,  761,  685,
+      682,  761,  680,  761,  679,  676,  761,  675,  761,  762,
       762,  762,  762,  762,  762,  762,  762,  762,  762,  762,
-      762,  762,  763,  763,  763,  763,  763,  763,  763,  763,
-      763,  763,  764,  764,  764,  764,  764,  764,  764,  764,
-      764,  764,  764,  764,  764,  764,  764,  764,  765,  765,
-      765,  765,  765,  765,  765,  765,  765,  765,  765,  765,
-      765,  765,  765,  765,  766,  766,  766,  766,  766,  766,
-      766,  766,  766,  766,  766,  766,  766,  766,  766,  766,
-      767,  670,  767,  767,  767,  767,  767,  767,  767,  767,
-      767,  767,  767,  768,  668,  666,  665,  663,  662,  661,
+      762,  762,  762,  762,  762,  763,  763,  763,  763,  763,
+      763,  763,  763,  763,  763,  763,  763,  763,  763,  763,
+      763,  764,  764,  764,  764,  764,  764,  764,  764,  764,
 
-      660,  659,  657,  768,  768,  768,  768,  768,  769,  769,
+      764,  764,  764,  764,  764,  764,  764,  765,  765,  765,
+      765,  765,  765,  765,  765,  765,  765,  765,  765,  765,
+      765,  765,  765,  766,  766,  766,  766,  766,  766,  766,
+      766,  766,  766,  767,  767,  767,  767,  767,  767,  767,
+      767,  767,  767,  767,  767,  767,  767,  767,  767,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  769,  769,  769,  769,  769,
       769,  769,  769,  769,  769,  769,  769,  769,  769,  769,
-      769,  769,  769,  769,  770,  770,  770,  770,  770,  770,
-      770,  770,  770,  770,  770,  770,  770,  770,  770,  770,
-      771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
-      771,  771,  771,  771,  771,  771,  772,  772,  772,  772,
+      769,  770,  674,  770,  770,  770,  770,  770,  770,  770,
+      770,  770,  770,  770,  771,  673,  671,  669,  668,  666,
+
+      665,  664,  663,  662,  771,  771,  771,  771,  771,  772,
       772,  772,  772,  772,  772,  772,  772,  772,  772,  772,
-      772,  772,  773,  773,  655,  773,  773,  773,  773,  773,
-      773,  773,  773,  773,  773,  773,  773,  773,  774,  774,
-      774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
-
-      774,  774,  774,  774,  654,  652,  651,  649,  648,  647,
-      645,  643,  642,  637,  636,  635,  633,  632,  631,  629,
-      627,  626,  622,  620,  618,  617,  616,  615,  614,  613,
-      612,  611,  609,  607,  606,  605,  604,  602,  601,  600,
-      598,  597,  596,  595,  594,  593,  592,  591,  589,  587,
-      586,  585,  584,  583,  580,  577,  575,  574,  573,  572,
-      571,  570,  568,  567,  565,  563,  562,  560,  559,  558,
-      557,  556,  554,  553,  551,  550,  549,  548,  547,  546,
-      545,  544,  543,  541,  537,  536,  535,  533,  531,  527,
-      526,  524,  523,  520,  519,  515,  514,  513,  512,  511,
-
-      510,  508,  507,  506,  505,  504,  503,  501,  500,  499,
-      498,  497,  495,  494,  492,  491,  490,  489,  488,  482,
-      481,  479,  478,  477,  476,  475,  474,  472,  471,  470,
-      469,  468,  467,  466,  465,  464,  462,  461,  460,  459,
-      456,  454,  453,  452,  451,  450,  449,  448,  447,  445,
-      444,  442,  436,  434,  433,  432,  431,  430,  429,  422,
-      421,  417,  416,  415,  414,  413,  412,  411,  410,  409,
-      408,  407,  406,  405,  404,  403,  402,  401,  400,  399,
-      397,  396,  395,  394,  393,  391,  390,  388,  387,  386,
-      384,  382,  380,  379,  378,  376,  375,  373,  372,  371,
-
-      370,  369,  368,  367,  365,  364,  363,  362,  359,  358,
-      357,  356,  352,  351,  350,  349,  348,  347,  346,  345,
-      343,  342,  341,  340,  339,  338,  336,  334,  333,  332,
-      330,  329,  322,  321,  320,  319,  317,  316,  315,  314,
-      313,  311,  310,  309,  307,  306,  305,  303,  302,  301,
-      300,  299,  298,  297,  296,  295,  294,  292,  290,  289,
-      288,  285,  284,  283,  282,  279,  277,  276,  275,  274,
-      273,  272,  271,  270,  269,  267,  266,  265,  264,  263,
-      262,  261,  260,  259,  258,  257,  256,  254,  253,  252,
-      244,  241,  240,  239,  238,  237,  236,  235,  234,  233,
-
-      232,  231,  230,  229,  228,  227,  226,  225,  224,  223,
-      222,  221,  220,  219,  218,  217,  216,  215,  214,  212,
-      211,  209,  208,  207,  206,  205,  204,  203,  201,  200,
-      199,  198,  196,  195,  194,  193,  191,  190,  189,  188,
-      187,  186,  183,  182,  180,  179,  178,  177,  174,  170,
-      157,  153,  152,  150,  148,  144,  141,  140,  139,  138,
-      135,  133,  130,  129,  128,  127,  126,  125,  124,  123,
-      122,  121,  120,  119,  118,  117,  116,  114,  112,  111,
-      108,  105,  104,  102,   98,   83,   76,   69,   68,   67,
-       65,   63,   53,   52,   51,   48,   47,   45,   40,   37,
-
-       35,   33,   31,   30,   26,   23,   15,    7,    3,  744,
-      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
-      744,  744,  744,  744,  744
+      772,  772,  772,  772,  772,  773,  773,  773,  773,  773,
+      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
+      773,  774,  774,  774,  774,  774,  774,  774,  774,  774,
+      774,  774,  774,  774,  774,  774,  774,  775,  775,  775,
+      775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
+      775,  775,  775,  776,  776,  660,  776,  776,  776,  776,
+      776,  776,  776,  776,  776,  776,  776,  776,  776,  777,
+      777,  777,  777,  777,  777,  777,  777,  777,  777,  777,
+
+      777,  777,  777,  777,  777,  658,  657,  655,  654,  652,
+      651,  650,  648,  646,  645,  640,  639,  638,  636,  635,
+      634,  632,  630,  629,  625,  623,  621,  620,  619,  618,
+      617,  616,  615,  614,  612,  610,  609,  608,  607,  605,
+      604,  603,  601,  600,  599,  598,  597,  596,  595,  594,
+      592,  590,  589,  588,  587,  586,  583,  580,  578,  577,
+      576,  575,  574,  573,  571,  570,  568,  566,  565,  563,
+      562,  561,  560,  559,  557,  556,  554,  553,  552,  551,
+      550,  549,  548,  547,  546,  544,  540,  539,  538,  536,
+      534,  530,  529,  527,  526,  523,  522,  518,  517,  516,
+
+      515,  514,  513,  511,  510,  509,  508,  507,  506,  504,
+      503,  502,  501,  500,  498,  497,  495,  494,  493,  492,
+      491,  485,  484,  482,  481,  480,  479,  478,  477,  475,
+      474,  473,  472,  471,  470,  469,  468,  467,  465,  464,
+      463,  462,  459,  457,  456,  455,  454,  453,  452,  451,
+      450,  448,  447,  445,  439,  437,  436,  435,  434,  433,
+      432,  425,  424,  420,  419,  418,  417,  416,  415,  414,
+      413,  412,  411,  410,  409,  408,  407,  406,  405,  404,
+      403,  402,  400,  399,  398,  397,  396,  394,  393,  391,
+      390,  389,  387,  385,  383,  382,  381,  379,  378,  376,
+
+      375,  374,  373,  372,  371,  370,  368,  367,  366,  365,
+      362,  361,  360,  359,  355,  354,  353,  352,  351,  350,
+      349,  348,  346,  345,  344,  343,  342,  341,  339,  337,
+      336,  335,  333,  332,  325,  324,  323,  322,  320,  319,
+      318,  317,  316,  314,  313,  312,  310,  309,  308,  306,
+      305,  304,  303,  302,  301,  300,  299,  298,  297,  295,
+      293,  292,  291,  288,  287,  286,  285,  282,  279,  278,
+      277,  276,  275,  274,  273,  272,  271,  269,  268,  267,
+      266,  265,  264,  263,  262,  261,  260,  259,  258,  256,
+      255,  254,  246,  243,  242,  241,  240,  239,  238,  237,
+
+      236,  235,  234,  233,  232,  231,  230,  229,  228,  227,
+      226,  225,  224,  223,  222,  221,  220,  219,  218,  217,
+      216,  214,  213,  211,  210,  209,  208,  207,  206,  205,
+      203,  202,  201,  200,  199,  197,  196,  195,  194,  192,
+      191,  190,  189,  188,  187,  184,  183,  181,  180,  179,
+      178,  175,  171,  158,  154,  153,  151,  149,  145,  142,
+      141,  140,  139,  136,  134,  131,  130,  129,  128,  127,
+      126,  125,  124,  123,  122,  121,  120,  119,  118,  117,
+      116,  114,  112,  111,  108,  105,  104,  102,   98,   83,
+       76,   69,   68,   67,   65,   63,   53,   52,   51,   48,
+
+       47,   45,   37,   35,   33,   31,   30,   26,   23,   15,
+        7,    3,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747
 
     } ;
 
@@ -1219,8 +1220,8 @@ static void print_error (GISourceScanner *scanner);
 #define IS_EOF EOF
 #endif
 
-#line 1223 "giscanner/scannerlexer.c"
 #line 1224 "giscanner/scannerlexer.c"
+#line 1225 "giscanner/scannerlexer.c"
 
 #define INITIAL 0
 
@@ -1444,7 +1445,7 @@ YY_DECL
 #line 78 "giscanner/scannerlexer.l"
 
 
-#line 1448 "giscanner/scannerlexer.c"
+#line 1449 "giscanner/scannerlexer.c"
 
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
@@ -1470,14 +1471,14 @@ 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 >= 745 )
+                               if ( yy_current_state >= 748 )
                                        yy_c = yy_meta[yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
                        *(yy_state_ptr)++ = yy_current_state;
                        ++yy_cp;
                        }
-               while ( yy_base[yy_current_state] != 1410 );
+               while ( yy_base[yy_current_state] != 1413 );
 
 yy_find_action:
                yy_current_state = *--(yy_state_ptr);
@@ -2005,15 +2006,15 @@ YY_RULE_SETUP
 { return BASIC_TYPE; }
        YY_BREAK
 case 97:
-/* rule 97 can match eol */
 YY_RULE_SETUP
 #line 186 "giscanner/scannerlexer.l"
-{ ++lineno; /* Ignore */ }
+{ return BASIC_TYPE; }
        YY_BREAK
 case 98:
+/* rule 98 can match eol */
 YY_RULE_SETUP
 #line 187 "giscanner/scannerlexer.l"
-{ /* Ignore */ }
+{ ++lineno; /* Ignore */ }
        YY_BREAK
 case 99:
 YY_RULE_SETUP
@@ -2028,7 +2029,7 @@ YY_RULE_SETUP
 case 101:
 YY_RULE_SETUP
 #line 190 "giscanner/scannerlexer.l"
-{ /* ignore */ }
+{ /* Ignore */ }
        YY_BREAK
 case 102:
 YY_RULE_SETUP
@@ -2037,18 +2038,18 @@ YY_RULE_SETUP
        YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 193 "giscanner/scannerlexer.l"
-{ return INTL_CONST; }
+#line 192 "giscanner/scannerlexer.l"
+{ /* ignore */ }
        YY_BREAK
 case 104:
 YY_RULE_SETUP
 #line 194 "giscanner/scannerlexer.l"
-{ return INTUL_CONST; }
+{ return INTL_CONST; }
        YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 196 "giscanner/scannerlexer.l"
-{ return BOOLEAN; }
+#line 195 "giscanner/scannerlexer.l"
+{ return INTUL_CONST; }
        YY_BREAK
 case 106:
 YY_RULE_SETUP
@@ -2067,78 +2068,78 @@ YY_RULE_SETUP
        YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 201 "giscanner/scannerlexer.l"
-{ if (scanner->macro_scan) return check_identifier(scanner, yytext); else REJECT; }
+#line 200 "giscanner/scannerlexer.l"
+{ return BOOLEAN; }
        YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 203 "giscanner/scannerlexer.l"
-{ if (!parse_ignored_macro()) REJECT; }
+#line 202 "giscanner/scannerlexer.l"
+{ if (scanner->macro_scan) return check_identifier(scanner, yytext); else REJECT; }
        YY_BREAK
 case 111:
 YY_RULE_SETUP
 #line 204 "giscanner/scannerlexer.l"
-{ return AUTO; }
+{ if (!parse_ignored_macro()) REJECT; }
        YY_BREAK
 case 112:
 YY_RULE_SETUP
 #line 205 "giscanner/scannerlexer.l"
-{ return BREAK; }
+{ return AUTO; }
        YY_BREAK
 case 113:
 YY_RULE_SETUP
 #line 206 "giscanner/scannerlexer.l"
-{ return CASE; }
+{ return BREAK; }
        YY_BREAK
 case 114:
 YY_RULE_SETUP
 #line 207 "giscanner/scannerlexer.l"
-{ return BASIC_TYPE; }
+{ return CASE; }
        YY_BREAK
 case 115:
 YY_RULE_SETUP
 #line 208 "giscanner/scannerlexer.l"
-{ return CONST; }
+{ return BASIC_TYPE; }
        YY_BREAK
 case 116:
 YY_RULE_SETUP
 #line 209 "giscanner/scannerlexer.l"
-{ return CONTINUE; }
+{ return CONST; }
        YY_BREAK
 case 117:
 YY_RULE_SETUP
 #line 210 "giscanner/scannerlexer.l"
-{ return DEFAULT; }
+{ return CONTINUE; }
        YY_BREAK
 case 118:
 YY_RULE_SETUP
 #line 211 "giscanner/scannerlexer.l"
-{ return DO; }
+{ return DEFAULT; }
        YY_BREAK
 case 119:
 YY_RULE_SETUP
 #line 212 "giscanner/scannerlexer.l"
-{ return BASIC_TYPE; }
+{ return DO; }
        YY_BREAK
 case 120:
 YY_RULE_SETUP
 #line 213 "giscanner/scannerlexer.l"
-{ return ELSE; }
+{ return BASIC_TYPE; }
        YY_BREAK
 case 121:
 YY_RULE_SETUP
 #line 214 "giscanner/scannerlexer.l"
-{ return ENUM; }
+{ return ELSE; }
        YY_BREAK
 case 122:
 YY_RULE_SETUP
 #line 215 "giscanner/scannerlexer.l"
-{ return EXTERN; }
+{ return ENUM; }
        YY_BREAK
 case 123:
 YY_RULE_SETUP
 #line 216 "giscanner/scannerlexer.l"
-{ return BASIC_TYPE; }
+{ return EXTERN; }
        YY_BREAK
 case 124:
 YY_RULE_SETUP
@@ -2178,27 +2179,27 @@ YY_RULE_SETUP
 case 131:
 YY_RULE_SETUP
 #line 224 "giscanner/scannerlexer.l"
-{ return FOR; }
+{ return BASIC_TYPE; }
        YY_BREAK
 case 132:
 YY_RULE_SETUP
 #line 225 "giscanner/scannerlexer.l"
-{ return GOTO; }
+{ return FOR; }
        YY_BREAK
 case 133:
 YY_RULE_SETUP
 #line 226 "giscanner/scannerlexer.l"
-{ return IF; }
+{ return GOTO; }
        YY_BREAK
 case 134:
 YY_RULE_SETUP
 #line 227 "giscanner/scannerlexer.l"
-{ return INLINE; }
+{ return IF; }
        YY_BREAK
 case 135:
 YY_RULE_SETUP
 #line 228 "giscanner/scannerlexer.l"
-{ return BASIC_TYPE; }
+{ return INLINE; }
        YY_BREAK
 case 136:
 YY_RULE_SETUP
@@ -2233,27 +2234,27 @@ YY_RULE_SETUP
 case 142:
 YY_RULE_SETUP
 #line 235 "giscanner/scannerlexer.l"
-{ return REGISTER; }
+{ return BASIC_TYPE; }
        YY_BREAK
 case 143:
 YY_RULE_SETUP
 #line 236 "giscanner/scannerlexer.l"
-{ return RESTRICT; }
+{ return REGISTER; }
        YY_BREAK
 case 144:
 YY_RULE_SETUP
 #line 237 "giscanner/scannerlexer.l"
-{ return RETURN; }
+{ return RESTRICT; }
        YY_BREAK
 case 145:
 YY_RULE_SETUP
 #line 238 "giscanner/scannerlexer.l"
-{ return BASIC_TYPE; }
+{ return RETURN; }
        YY_BREAK
 case 146:
 YY_RULE_SETUP
 #line 239 "giscanner/scannerlexer.l"
-{ return SIGNED; }
+{ return BASIC_TYPE; }
        YY_BREAK
 case 147:
 YY_RULE_SETUP
@@ -2268,62 +2269,62 @@ YY_RULE_SETUP
 case 149:
 YY_RULE_SETUP
 #line 242 "giscanner/scannerlexer.l"
-{ return SIZEOF; }
+{ return SIGNED; }
        YY_BREAK
 case 150:
 YY_RULE_SETUP
 #line 243 "giscanner/scannerlexer.l"
-{ return STATIC; }
+{ return SIZEOF; }
        YY_BREAK
 case 151:
 YY_RULE_SETUP
 #line 244 "giscanner/scannerlexer.l"
-{ return STRUCT; }
+{ return STATIC; }
        YY_BREAK
 case 152:
 YY_RULE_SETUP
 #line 245 "giscanner/scannerlexer.l"
-{ return SWITCH; }
+{ return STRUCT; }
        YY_BREAK
 case 153:
 YY_RULE_SETUP
 #line 246 "giscanner/scannerlexer.l"
-{ return TYPEDEF; }
+{ return SWITCH; }
        YY_BREAK
 case 154:
 YY_RULE_SETUP
 #line 247 "giscanner/scannerlexer.l"
-{ return UNION; }
+{ return TYPEDEF; }
        YY_BREAK
 case 155:
 YY_RULE_SETUP
 #line 248 "giscanner/scannerlexer.l"
-{ return UNSIGNED; }
+{ return UNION; }
        YY_BREAK
 case 156:
 YY_RULE_SETUP
 #line 249 "giscanner/scannerlexer.l"
-{ return VOID; }
+{ return UNSIGNED; }
        YY_BREAK
 case 157:
 YY_RULE_SETUP
 #line 250 "giscanner/scannerlexer.l"
-{ return VOLATILE; }
+{ return VOID; }
        YY_BREAK
 case 158:
 YY_RULE_SETUP
 #line 251 "giscanner/scannerlexer.l"
-{ return WHILE; }
+{ return VOLATILE; }
        YY_BREAK
 case 159:
 YY_RULE_SETUP
-#line 253 "giscanner/scannerlexer.l"
-{ return check_identifier(scanner, yytext); }
+#line 252 "giscanner/scannerlexer.l"
+{ return WHILE; }
        YY_BREAK
 case 160:
 YY_RULE_SETUP
-#line 255 "giscanner/scannerlexer.l"
-{ return INTEGER; }
+#line 254 "giscanner/scannerlexer.l"
+{ return check_identifier(scanner, yytext); }
        YY_BREAK
 case 161:
 YY_RULE_SETUP
@@ -2337,8 +2338,8 @@ YY_RULE_SETUP
        YY_BREAK
 case 163:
 YY_RULE_SETUP
-#line 259 "giscanner/scannerlexer.l"
-{ return FLOATING; }
+#line 258 "giscanner/scannerlexer.l"
+{ return INTEGER; }
        YY_BREAK
 case 164:
 YY_RULE_SETUP
@@ -2346,10 +2347,9 @@ YY_RULE_SETUP
 { return FLOATING; }
        YY_BREAK
 case 165:
-/* rule 165 can match eol */
 YY_RULE_SETUP
-#line 262 "giscanner/scannerlexer.l"
-{ return CHARACTER; }
+#line 261 "giscanner/scannerlexer.l"
+{ return FLOATING; }
        YY_BREAK
 case 166:
 /* rule 166 can match eol */
@@ -2360,8 +2360,8 @@ YY_RULE_SETUP
 case 167:
 /* rule 167 can match eol */
 YY_RULE_SETUP
-#line 265 "giscanner/scannerlexer.l"
-{ return STRING; }
+#line 264 "giscanner/scannerlexer.l"
+{ return CHARACTER; }
        YY_BREAK
 case 168:
 /* rule 168 can match eol */
@@ -2370,16 +2370,22 @@ YY_RULE_SETUP
 { return STRING; }
        YY_BREAK
 case 169:
+/* rule 169 can match eol */
 YY_RULE_SETUP
-#line 268 "giscanner/scannerlexer.l"
-{ print_error(scanner); }
+#line 267 "giscanner/scannerlexer.l"
+{ return STRING; }
        YY_BREAK
 case 170:
 YY_RULE_SETUP
-#line 270 "giscanner/scannerlexer.l"
+#line 269 "giscanner/scannerlexer.l"
+{ print_error(scanner); }
+       YY_BREAK
+case 171:
+YY_RULE_SETUP
+#line 271 "giscanner/scannerlexer.l"
 ECHO;
        YY_BREAK
-#line 2383 "giscanner/scannerlexer.c"
+#line 2389 "giscanner/scannerlexer.c"
                        case YY_STATE_EOF(INITIAL):
                                yyterminate();
 
@@ -2644,7 +2650,7 @@ 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 >= 745 )
+                       if ( yy_current_state >= 748 )
                                yy_c = yy_meta[yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -2667,11 +2673,11 @@ 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 >= 745 )
+               if ( yy_current_state >= 748 )
                        yy_c = yy_meta[yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
-       yy_is_jam = (yy_current_state == 744);
+       yy_is_jam = (yy_current_state == 747);
        if ( ! yy_is_jam )
                *(yy_state_ptr)++ = yy_current_state;
 
@@ -3320,7 +3326,7 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 270 "giscanner/scannerlexer.l"
+#line 271 "giscanner/scannerlexer.l"
 
 
 static int
index 543edb3..c63b56d 100644 (file)
@@ -183,6 +183,7 @@ stringtext                          ([^\\\"])|(\\.)
 "__volatile"                           { return VOLATILE; }
 "__volatile__"                         { return VOLATILE; }
 "_Bool"                                        { return BASIC_TYPE; }
+"bool"                                 { return BASIC_TYPE; }
 "typedef char __static_assert_t".*"\n" { ++lineno; /* Ignore */ }
 "__cdecl"                              { /* Ignore */ }
 "__declspec(deprecated(".*"))"         { /* Ignore */ }
index 335e229..200470d 100644 (file)
@@ -702,7 +702,7 @@ raise ValueError."""
         # because of different ABI, but this usually works fine,
         # so for backward compatibility lets continue for now:
         # https://gitlab.gnome.org/GNOME/gobject-introspection/merge_requests/24#note_92792
-        if canonical == '_Bool':
+        if canonical in ('_Bool', 'bool'):
             canonical = 'gboolean'
             base = canonical
 
index e3bfeba..c0532f2 100644 (file)
@@ -21,4 +21,4 @@ Libs.private:
 
 Name: gobject-introspection
 Description: GObject Introspection
-Version: 1.58.2
+Version: 1.58.3
index 65914f9..bad92ec 100644 (file)
@@ -20,4 +20,4 @@ Libs.private:
 
 Name: gobject-introspection
 Description: GObject Introspection
-Version: 1.58.2
+Version: 1.58.3
index 5d8a2fa..8ac117b 100644 (file)
@@ -1,5 +1,5 @@
 project('gobject-introspection', 'c',
-  version: '1.58.2',
+  version: '1.58.3',
   meson_version: '>= 0.46.0',
   default_options: [
     'warning_level=1',
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestReferenceCounters-atomicrefcount.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestReferenceCounters-atomicrefcount.page
new file mode 100644 (file)
index 0000000..6c07402
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<page id="Regress.TestReferenceCounters-atomicrefcount"
+      type="topic"
+      style="field"
+      xmlns="http://projectmallard.org/1.0/"
+      xmlns:api="http://projectmallard.org/experimental/api/"
+      xmlns:ui="http://projectmallard.org/1.0/ui/">
+  <info>
+    <link xref="Regress.TestReferenceCounters" group="field" type="guide"/>
+  </info>
+  <title>Regress.TestReferenceCounters->atomicrefcount</title>
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestReferenceCounters-refcount.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestReferenceCounters-refcount.page
new file mode 100644 (file)
index 0000000..ed4aab5
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<page id="Regress.TestReferenceCounters-refcount"
+      type="topic"
+      style="field"
+      xmlns="http://projectmallard.org/1.0/"
+      xmlns:api="http://projectmallard.org/experimental/api/"
+      xmlns:ui="http://projectmallard.org/1.0/ui/">
+  <info>
+    <link xref="Regress.TestReferenceCounters" group="field" type="guide"/>
+  </info>
+  <title>Regress.TestReferenceCounters->refcount</title>
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestReferenceCounters.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestReferenceCounters.page
new file mode 100644 (file)
index 0000000..8176ff9
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<page id="Regress.TestReferenceCounters"
+      type="guide"
+      style="class"
+      xmlns="http://projectmallard.org/1.0/"
+      xmlns:api="http://projectmallard.org/experimental/api/"
+      xmlns:ui="http://projectmallard.org/1.0/ui/">
+  <info>
+    <link xref="index" group="class" type="guide"/>
+  </info>
+  <title>Regress.TestReferenceCounters</title>
+
+
+  <links type="topic" ui:expanded="true"
+         api:type="function" api:mime="text/x-csrc"
+         groups="constructor" style="linklist">
+    <title>Constructors</title>
+  </links>
+  <links type="topic" ui:expanded="true"
+         api:type="function" api:mime="text/x-csrc"
+         groups="method" style="linklist">
+    <title>Methods</title>
+  </links>
+  <links type="topic" ui:expanded="true"
+         api:type="function" api:mime="text/x-csrc"
+         groups="function" style="linklist">
+    <title>Static Functions</title>
+  </links>
+  <links type="topic" ui:expanded="true" groups="field" style="linklist">
+    <title>Fields</title>
+  </links>
+  <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+    <title>Other</title>
+  </links>
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestReferenceCounters-atomicrefcount.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestReferenceCounters-atomicrefcount.page
new file mode 100644 (file)
index 0000000..afd078e
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<page id="Regress.TestReferenceCounters-atomicrefcount"
+      type="topic"
+      style="field"
+      xmlns="http://projectmallard.org/1.0/"
+      xmlns:api="http://projectmallard.org/experimental/api/"
+      xmlns:ui="http://projectmallard.org/1.0/ui/">
+  <info>
+    <link xref="Regress.TestReferenceCounters" group="field" type="guide"/>
+    <title type="link" role="topic">atomicrefcount</title>
+  </info>
+  <title>Regress.TestReferenceCounters.atomicrefcount</title>
+  <synopsis><code mime="text/x-gjs">
+TestReferenceCounters.atomicrefcount: Number(gint) (Read / Write)
+  </code></synopsis>
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestReferenceCounters-refcount.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestReferenceCounters-refcount.page
new file mode 100644 (file)
index 0000000..8784e28
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<page id="Regress.TestReferenceCounters-refcount"
+      type="topic"
+      style="field"
+      xmlns="http://projectmallard.org/1.0/"
+      xmlns:api="http://projectmallard.org/experimental/api/"
+      xmlns:ui="http://projectmallard.org/1.0/ui/">
+  <info>
+    <link xref="Regress.TestReferenceCounters" group="field" type="guide"/>
+    <title type="link" role="topic">refcount</title>
+  </info>
+  <title>Regress.TestReferenceCounters.refcount</title>
+  <synopsis><code mime="text/x-gjs">
+TestReferenceCounters.refcount: Number(gint) (Read / Write)
+  </code></synopsis>
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestReferenceCounters.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestReferenceCounters.page
new file mode 100644 (file)
index 0000000..8f5b2d2
--- /dev/null
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<page id="Regress.TestReferenceCounters"
+      type="guide"
+      style="class"
+      xmlns="http://projectmallard.org/1.0/"
+      xmlns:api="http://projectmallard.org/experimental/api/"
+      xmlns:ui="http://projectmallard.org/1.0/ui/">
+  <info>
+    <link xref="index" group="class" type="guide"/>
+  </info>
+  <title>Regress.TestReferenceCounters</title>
+  <synopsis><code>
+const Regress = imports.gi.Regress;
+
+let testReferenceCounters = new Regress.TestReferenceCounters({
+    <link xref='Regress.TestReferenceCounters-refcount'>refcount</link>: value
+    <link xref='Regress.TestReferenceCounters-atomicrefcount'>atomicrefcount</link>: value
+});
+  </code></synopsis>
+
+
+  <links type="topic" ui:expanded="true"
+         api:type="function" api:mime="text/x-gjs"
+         groups="constructor" style="linklist">
+    <title>Constructors</title>
+  </links>
+  <links type="topic" ui:expanded="true"
+         api:type="function" api:mime="text/x-gjs"
+         groups="method" style="linklist">
+    <title>Methods</title>
+  </links>
+  <links type="topic" ui:expanded="true"
+         api:type="function" api:mime="text/x-gjs"
+         groups="function" style="linklist">
+    <title>Static Functions</title>
+  </links>
+  <links type="topic" ui:expanded="true" groups="field" style="linklist">
+    <title>Fields</title>
+  </links>
+  <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+    <title>Other</title>
+  </links>
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestReferenceCounters-atomicrefcount.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestReferenceCounters-atomicrefcount.page
new file mode 100644 (file)
index 0000000..6c07402
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<page id="Regress.TestReferenceCounters-atomicrefcount"
+      type="topic"
+      style="field"
+      xmlns="http://projectmallard.org/1.0/"
+      xmlns:api="http://projectmallard.org/experimental/api/"
+      xmlns:ui="http://projectmallard.org/1.0/ui/">
+  <info>
+    <link xref="Regress.TestReferenceCounters" group="field" type="guide"/>
+  </info>
+  <title>Regress.TestReferenceCounters->atomicrefcount</title>
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestReferenceCounters-refcount.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestReferenceCounters-refcount.page
new file mode 100644 (file)
index 0000000..ed4aab5
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<page id="Regress.TestReferenceCounters-refcount"
+      type="topic"
+      style="field"
+      xmlns="http://projectmallard.org/1.0/"
+      xmlns:api="http://projectmallard.org/experimental/api/"
+      xmlns:ui="http://projectmallard.org/1.0/ui/">
+  <info>
+    <link xref="Regress.TestReferenceCounters" group="field" type="guide"/>
+  </info>
+  <title>Regress.TestReferenceCounters->refcount</title>
+
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestReferenceCounters.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestReferenceCounters.page
new file mode 100644 (file)
index 0000000..bc8651a
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<page id="Regress.TestReferenceCounters"
+      type="guide"
+      style="class"
+      xmlns="http://projectmallard.org/1.0/"
+      xmlns:api="http://projectmallard.org/experimental/api/"
+      xmlns:ui="http://projectmallard.org/1.0/ui/">
+  <info>
+    <link xref="index" group="class" type="guide"/>
+  </info>
+  <title>Regress.TestReferenceCounters</title>
+  <synopsis><code>
+from gi.repository import Regress
+
+test_reference_counters = Regress.TestReferenceCounters()
+  </code></synopsis>
+
+
+  <links type="topic" ui:expanded="true"
+         api:type="function" api:mime="text/python"
+         groups="constructor" style="linklist">
+    <title>Constructors</title>
+  </links>
+  <links type="topic" ui:expanded="true"
+         api:type="function" api:mime="text/python"
+         groups="method" style="linklist">
+    <title>Methods</title>
+  </links>
+  <links type="topic" ui:expanded="true"
+         api:type="function" api:mime="text/python"
+         groups="function" style="linklist">
+    <title>Static Functions</title>
+  </links>
+  <links type="topic" ui:expanded="true" groups="field" style="linklist">
+    <title>Fields</title>
+  </links>
+  <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
+    <title>Other</title>
+  </links>
+</page>
index f69b851..1753233 100644 (file)
@@ -4022,6 +4022,14 @@ the introspection client langage.</doc>
         <type name="gint" c:type="gint"/>
       </field>
     </record>
+    <record name="TestReferenceCounters" c:type="RegressTestReferenceCounters">
+      <field name="refcount" writable="1">
+        <type name="gint" c:type="grefcount"/>
+      </field>
+      <field name="atomicrefcount" writable="1">
+        <type name="gint" c:type="gatomicrefcount"/>
+      </field>
+    </record>
     <enumeration name="TestReferenceEnum" c:type="RegressTestReferenceEnum">
       <member name="0" value="4" c:identifier="REGRESS_TEST_REFERENCE_0">
       </member>
index f0885f2..df5a0c2 100644 (file)
@@ -4,6 +4,7 @@
 #ifndef _GI_DISABLE_CAIRO
 #include <cairo-gobject.h>
 #endif
+#include <glib.h>
 #include <glib-object.h>
 #include <gio/gio.h>
 #include <time.h>
@@ -1491,4 +1492,11 @@ typedef struct {
 GVariant *
 regress_get_variant (void);
 
+typedef struct _RegressTestReferenceCounters RegressTestReferenceCounters;
+
+struct _RegressTestReferenceCounters {
+  grefcount       refcount;
+  gatomicrefcount atomicrefcount;
+};
+
 #endif /* __GITESTTYPES_H__ */