diff options
54 files changed, 17208 insertions, 14321 deletions
diff --git a/.gitattributes b/.gitattributes index 9ed6e5f4b..a44aa5d2c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -22,6 +22,10 @@ sapi/nsapi/nsapi.c ident sapi/continuity/capi.c ident Zend/RFCs/002.txt ident Zend/RFCs/003.txt ident +ext/exif/exif.c ident +ext/ldap/ldap.c ident +ext/pdo_pgsql/pdo_pgsql.c ident +ext/tidy/tidy.c ident NEWS merge=NEWS /ext/bz2/tests/with_strings.phpt -crlf /ext/dom/tests/bug40836.phpt -crlf @@ -1,5 +1,55 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +07 Aug 2014, PHP 5.4.32 + +- Core: + . Fixed bug #67717 (segfault in dns_get_record). (CVE-2014-3597) (Remi) + +- COM: + . Fixed missing type checks in com_event_sink. (Yussuf Khalil, Stas) + +- Fileinfo: + . Fixed bug #67705 (extensive backtracking in rule regular expression). + (CVE-2014-3538) (Remi) + . Fixed bug #67716 (Segfault in cdf.c). (CVE-2014-3587) (Remi) + +- GD: + . Fixed bug #66901 (php-gd 'c_color' NULL pointer dereference). + (CVE-2014-2497) (Remi) + . Fixed bug #67730 (Null byte injection possible with imagexxx functions). + (CVE-2014-5120) (Ryan Mauger) + +- Milter: + . Fixed bug #67715 (php-milter does not build and crashes randomly). (Mike) + +- OpenSSL: + . Fixed missing type checks in OpenSSL options (Yussuf Khalil, Stas). + +- Readline: + . Fixed bug #55496 (Interactive mode doesn't force a newline before the + prompt). (Bob, Johannes) + . Fixed bug #67496 (Save command history when exiting interactive shell + with control-c). (Dmitry Saprykin, Johannes) + +- Sessions: + . Fixed missing type checks in php_session_create_id (Yussuf Khalil, Stas). + +- SPL: + . Fixed bug #67539 (ArrayIterator use-after-free due to object change during + sorting). (research at insighti dot org, Laruence) + . Fixed bug #67538 (SPL Iterators use-after-free). (CVE-2014-4670) (Laruence) + +- Core: + . Fixed bug #67693 (incorrect push to the empty array) (Tjerk) + +- ODBC: + . Fixed bug #60616 (odbc_fetch_into returns junk data at end of multi-byte + char fields). (Keyur) + +- Zlib: + . Fixed bug #67724 (chained zlib filters silently fail with large amounts of + data). (Mike) + 24 Jul 2014, PHP 5.4.31 - Core: @@ -12,6 +62,7 @@ PHP NEWS . Fixed bug #67151 (strtr with empty array crashes). (Nikita) . Fixed bug #67407 (Windows 8.1/Server 2012 R2 reported as Windows 8/Server 2012). (Christian Wenz) + . Implemented FR #34407 (ucwords and Title Case). (Tjerk) - CLI server: . Implemented FR #67429 (CLI server is missing some new HTTP response codes). @@ -37,6 +88,10 @@ PHP NEWS - Streams: . Fixed bug #67430 (http:// wrapper doesn't follow 308 redirects). (Adam) +- Session: + . Fixed bug #66827 (Session raises E_NOTICE when session name variable is array). + (Yasuo) + 26 Jun 2014, PHP 5.4.30 - Core: @@ -3686,7 +3686,7 @@ ac_config_headers="$ac_config_headers main/php_config.h" PHP_MAJOR_VERSION=5 PHP_MINOR_VERSION=4 -PHP_RELEASE_VERSION=31 +PHP_RELEASE_VERSION=32 PHP_EXTRA_VERSION="" PHP_VERSION="$PHP_MAJOR_VERSION.$PHP_MINOR_VERSION.$PHP_RELEASE_VERSION$PHP_EXTRA_VERSION" PHP_VERSION_ID=`expr $PHP_MAJOR_VERSION \* 10000 + $PHP_MINOR_VERSION \* 100 + $PHP_RELEASE_VERSION` @@ -13411,8 +13411,8 @@ if test "$PHP_MILTER" != "no"; then src=$abs_srcdir/sapi/milter/Makefile.frag - ac_srcdir=$ext_srcdir - ac_builddir=$ext_builddir + ac_srcdir=$abs_srcdir/sapi/milter + ac_builddir=sapi/milter test -f "$src" && $SED -e "s#\$(srcdir)#$ac_srcdir#g" -e "s#\$(builddir)#$ac_builddir#g" $src >> Makefile.fragments @@ -13559,7 +13559,7 @@ EOF - BUILD_MILTER="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_MILTER_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_MILTER_PATH)" + BUILD_MILTER="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_MILTER_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_MILTER_PATH)" PHP_VAR_SUBST="$PHP_VAR_SUBST SAPI_MILTER_PATH" diff --git a/configure.in b/configure.in index 6c5efe29a..1ccfd9488 100644 --- a/configure.in +++ b/configure.in @@ -119,7 +119,7 @@ int zend_sprintf(char *buffer, const char *format, ...); PHP_MAJOR_VERSION=5 PHP_MINOR_VERSION=4 -PHP_RELEASE_VERSION=31 +PHP_RELEASE_VERSION=32 PHP_EXTRA_VERSION="" PHP_VERSION="$PHP_MAJOR_VERSION.$PHP_MINOR_VERSION.$PHP_RELEASE_VERSION$PHP_EXTRA_VERSION" PHP_VERSION_ID=`expr [$]PHP_MAJOR_VERSION \* 10000 + [$]PHP_MINOR_VERSION \* 100 + [$]PHP_RELEASE_VERSION` diff --git a/ext/com_dotnet/com_com.c b/ext/com_dotnet/com_com.c index f77779d69..500cabd41 100644 --- a/ext/com_dotnet/com_com.c +++ b/ext/com_dotnet/com_com.c @@ -698,9 +698,9 @@ PHP_FUNCTION(com_event_sink) /* 0 => typelibname, 1 => dispname */ zval **tmp; - if (zend_hash_index_find(Z_ARRVAL_P(sink), 0, (void**)&tmp) == SUCCESS) + if (zend_hash_index_find(Z_ARRVAL_P(sink), 0, (void**)&tmp) == SUCCESS && Z_TYPE_PP(tmp) == IS_STRING) typelibname = Z_STRVAL_PP(tmp); - if (zend_hash_index_find(Z_ARRVAL_P(sink), 1, (void**)&tmp) == SUCCESS) + if (zend_hash_index_find(Z_ARRVAL_P(sink), 1, (void**)&tmp) == SUCCESS && Z_TYPE_PP(tmp) == IS_STRING) dispname = Z_STRVAL_PP(tmp); } else if (sink != NULL) { convert_to_string(sink); diff --git a/ext/date/lib/parse_date.c b/ext/date/lib/parse_date.c index bd199f22a..9bb3e6aca 100644 --- a/ext/date/lib/parse_date.c +++ b/ext/date/lib/parse_date.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Tue May 13 16:52:44 2014 */ +/* Generated by re2c 0.13.5 on Thu Jul 31 14:20:45 2014 */ /* +----------------------------------------------------------------------+ | PHP Version 5 | @@ -921,53 +921,53 @@ std: YYDEBUG(-1, yych); switch (yych) { case 0x00: - case '\n': goto yy52; + case '\n': goto yy51; case '\t': - case ' ': goto yy49; - case '(': goto yy46; + case ' ': goto yy48; + case '(': goto yy45; case '+': - case '-': goto yy31; + case '-': goto yy30; case ',': - case '.': goto yy51; - case '0': goto yy26; - case '1': goto yy27; - case '2': goto yy28; - case '3': goto yy29; + case '.': goto yy50; + case '0': goto yy25; + case '1': goto yy26; + case '2': goto yy27; + case '3': goto yy28; case '4': case '5': case '6': case '7': case '8': - case '9': goto yy30; - case '@': goto yy12; - case 'A': goto yy37; - case 'B': goto yy18; + case '9': goto yy29; + case '@': goto yy11; + case 'A': goto yy36; + case 'B': goto yy17; case 'C': case 'H': case 'K': case 'Q': case 'R': case 'U': - case 'Z': goto yy47; - case 'D': goto yy41; - case 'E': goto yy22; - case 'F': goto yy14; - case 'G': goto yy45; - case 'I': goto yy32; - case 'J': goto yy35; - case 'L': goto yy16; - case 'M': goto yy8; - case 'N': goto yy6; - case 'O': goto yy39; - case 'P': goto yy24; - case 'S': goto yy20; - case 'T': goto yy10; - case 'V': goto yy33; - case 'W': goto yy43; - case 'X': goto yy34; - case 'Y': goto yy3; - case 'a': goto yy38; - case 'b': goto yy19; + case 'Z': goto yy46; + case 'D': goto yy40; + case 'E': goto yy21; + case 'F': goto yy13; + case 'G': goto yy44; + case 'I': goto yy31; + case 'J': goto yy34; + case 'L': goto yy15; + case 'M': goto yy7; + case 'N': goto yy5; + case 'O': goto yy38; + case 'P': goto yy23; + case 'S': goto yy19; + case 'T': goto yy9; + case 'V': goto yy32; + case 'W': goto yy42; + case 'X': goto yy33; + case 'Y': goto yy2; + case 'a': goto yy37; + case 'b': goto yy18; case 'c': case 'g': case 'h': @@ -978,61 +978,44 @@ std: case 'u': case 'v': case 'x': - case 'z': goto yy48; - case 'd': goto yy42; - case 'e': goto yy23; - case 'f': goto yy15; - case 'j': goto yy36; - case 'l': goto yy17; - case 'm': goto yy9; - case 'n': goto yy7; - case 'o': goto yy40; - case 'p': goto yy25; - case 's': goto yy21; - case 't': goto yy11; - case 'w': goto yy44; - case 'y': goto yy5; - default: goto yy54; + case 'z': goto yy47; + case 'd': goto yy41; + case 'e': goto yy22; + case 'f': goto yy14; + case 'j': goto yy35; + case 'l': goto yy16; + case 'm': goto yy8; + case 'n': goto yy6; + case 'o': goto yy39; + case 'p': goto yy24; + case 's': goto yy20; + case 't': goto yy10; + case 'w': goto yy43; + case 'y': goto yy4; + default: goto yy53; } yy2: YYDEBUG(2, *YYCURSOR); - { - DEBUG_OUTPUT("firstdayof | lastdayof"); - TIMELIB_INIT; - TIMELIB_HAVE_RELATIVE(); - - /* skip "last day of" or "first day of" */ - if (*ptr == 'l') { - s->time->relative.first_last_day_of = 2; - } else { - s->time->relative.first_last_day_of = 1; - } - - TIMELIB_DEINIT; - return TIMELIB_LF_DAY_OF_MONTH; - } -yy3: - YYDEBUG(3, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= 'E') { if (yych <= ')') { - if (yych >= ')') goto yy140; + if (yych >= ')') goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'D') goto yy141; + if (yych <= '@') goto yy3; + if (yych <= 'D') goto yy140; goto yy1523; } } else { if (yych <= 'd') { - if (yych <= 'Z') goto yy141; - if (yych >= 'a') goto yy146; + if (yych <= 'Z') goto yy140; + if (yych >= 'a') goto yy145; } else { if (yych <= 'e') goto yy1532; - if (yych <= 'z') goto yy146; + if (yych <= 'z') goto yy145; } } -yy4: - YYDEBUG(4, *YYCURSOR); +yy3: + YYDEBUG(3, *YYCURSOR); { int tz_not_found; DEBUG_OUTPUT("tzcorrection | tz"); @@ -1045,172 +1028,172 @@ yy4: TIMELIB_DEINIT; return TIMELIB_TIMEZONE; } -yy5: - YYDEBUG(5, *YYCURSOR); +yy4: + YYDEBUG(4, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'D') goto yy141; + if (yych <= '@') goto yy3; + if (yych <= 'D') goto yy140; goto yy1523; } } else { if (yych <= 'd') { - if (yych <= 'Z') goto yy141; - if (yych <= '`') goto yy4; - goto yy141; + if (yych <= 'Z') goto yy140; + if (yych <= '`') goto yy3; + goto yy140; } else { if (yych <= 'e') goto yy1523; - if (yych <= 'z') goto yy141; - goto yy4; + if (yych <= 'z') goto yy140; + goto yy3; } } -yy6: - YYDEBUG(6, *YYCURSOR); +yy5: + YYDEBUG(5, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { if (yych <= 'D') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; - goto yy141; + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; + goto yy140; } else { if (yych <= 'H') { if (yych <= 'E') goto yy1494; - goto yy141; + goto yy140; } else { if (yych <= 'I') goto yy1495; - if (yych <= 'N') goto yy141; + if (yych <= 'N') goto yy140; goto yy1493; } } } else { if (yych <= 'h') { if (yych <= '`') { - if (yych <= 'Z') goto yy141; - goto yy4; + if (yych <= 'Z') goto yy140; + goto yy3; } else { if (yych == 'e') goto yy1510; - goto yy146; + goto yy145; } } else { if (yych <= 'n') { if (yych <= 'i') goto yy1511; - goto yy146; + goto yy145; } else { if (yych <= 'o') goto yy1509; - if (yych <= 'z') goto yy146; - goto yy4; + if (yych <= 'z') goto yy145; + goto yy3; } } } -yy7: - YYDEBUG(7, *YYCURSOR); +yy6: + YYDEBUG(6, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { if (yych <= 'D') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; - goto yy141; + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; + goto yy140; } else { if (yych <= 'H') { if (yych <= 'E') goto yy1494; - goto yy141; + goto yy140; } else { if (yych <= 'I') goto yy1495; - if (yych <= 'N') goto yy141; + if (yych <= 'N') goto yy140; goto yy1493; } } } else { if (yych <= 'h') { if (yych <= '`') { - if (yych <= 'Z') goto yy141; - goto yy4; + if (yych <= 'Z') goto yy140; + goto yy3; } else { if (yych == 'e') goto yy1494; - goto yy141; + goto yy140; } } else { if (yych <= 'n') { if (yych <= 'i') goto yy1495; - goto yy141; + goto yy140; } else { if (yych <= 'o') goto yy1493; - if (yych <= 'z') goto yy141; - goto yy4; + if (yych <= 'z') goto yy140; + goto yy3; } } } -yy8: - YYDEBUG(8, *YYCURSOR); +yy7: + YYDEBUG(7, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { if (yych <= 'A') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; goto yy1463; } else { if (yych == 'I') goto yy1464; - if (yych <= 'N') goto yy141; + if (yych <= 'N') goto yy140; goto yy1465; } } else { if (yych <= 'h') { - if (yych <= 'Z') goto yy141; - if (yych <= '`') goto yy4; + if (yych <= 'Z') goto yy140; + if (yych <= '`') goto yy3; if (yych <= 'a') goto yy1478; - goto yy146; + goto yy145; } else { if (yych <= 'n') { if (yych <= 'i') goto yy1479; - goto yy146; + goto yy145; } else { if (yych <= 'o') goto yy1480; - if (yych <= 'z') goto yy146; - goto yy4; + if (yych <= 'z') goto yy145; + goto yy3; } } } -yy9: - YYDEBUG(9, *YYCURSOR); +yy8: + YYDEBUG(8, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { if (yych <= 'A') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; goto yy1463; } else { if (yych == 'I') goto yy1464; - if (yych <= 'N') goto yy141; + if (yych <= 'N') goto yy140; goto yy1465; } } else { if (yych <= 'h') { - if (yych <= 'Z') goto yy141; - if (yych <= '`') goto yy4; + if (yych <= 'Z') goto yy140; + if (yych <= '`') goto yy3; if (yych <= 'a') goto yy1463; - goto yy141; + goto yy140; } else { if (yych <= 'n') { if (yych <= 'i') goto yy1464; - goto yy141; + goto yy140; } else { if (yych <= 'o') goto yy1465; - if (yych <= 'z') goto yy141; - goto yy4; + if (yych <= 'z') goto yy140; + goto yy3; } } } -yy10: - YYDEBUG(10, *YYCURSOR); +yy9: + YYDEBUG(9, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); switch (yych) { - case ')': goto yy140; + case ')': goto yy139; case '0': case '1': goto yy1393; case '2': goto yy1394; @@ -1241,7 +1224,7 @@ yy10: case 'V': case 'X': case 'Y': - case 'Z': goto yy141; + case 'Z': goto yy140; case 'E': goto yy1388; case 'H': goto yy1389; case 'O': goto yy1390; @@ -1267,21 +1250,21 @@ yy10: case 'v': case 'x': case 'y': - case 'z': goto yy146; + case 'z': goto yy145; case 'e': goto yy1431; case 'h': goto yy1432; case 'o': goto yy1433; case 'u': goto yy1434; case 'w': goto yy1435; - default: goto yy4; + default: goto yy3; } -yy11: - YYDEBUG(11, *YYCURSOR); +yy10: + YYDEBUG(10, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); switch (yych) { - case ')': goto yy140; + case ')': goto yy139; case '0': case '1': goto yy1393; case '2': goto yy1394; @@ -1333,7 +1316,7 @@ yy11: case 'v': case 'x': case 'y': - case 'z': goto yy141; + case 'z': goto yy140; case 'E': case 'e': goto yy1388; case 'H': @@ -1344,368 +1327,368 @@ yy11: case 'u': goto yy1391; case 'W': case 'w': goto yy1392; - default: goto yy4; + default: goto yy3; } -yy12: - YYDEBUG(12, *YYCURSOR); +yy11: + YYDEBUG(11, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if (yych == '-') goto yy1384; - if (yych <= '/') goto yy13; + if (yych <= '/') goto yy12; if (yych <= '9') goto yy1385; -yy13: - YYDEBUG(13, *YYCURSOR); +yy12: + YYDEBUG(12, *YYCURSOR); { add_error(s, "Unexpected character"); goto std; } -yy14: - YYDEBUG(14, *YYCURSOR); +yy13: + YYDEBUG(13, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'R') { if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'D') goto yy141; + if (yych <= '@') goto yy3; + if (yych <= 'D') goto yy140; goto yy1320; } } else { if (yych <= 'N') { if (yych == 'I') goto yy1321; - goto yy141; + goto yy140; } else { if (yych <= 'O') goto yy1322; - if (yych <= 'Q') goto yy141; + if (yych <= 'Q') goto yy140; goto yy1323; } } } else { if (yych <= 'i') { if (yych <= 'd') { - if (yych <= 'Z') goto yy141; - if (yych <= '`') goto yy4; - goto yy146; + if (yych <= 'Z') goto yy140; + if (yych <= '`') goto yy3; + goto yy145; } else { if (yych <= 'e') goto yy1361; - if (yych <= 'h') goto yy146; + if (yych <= 'h') goto yy145; goto yy1362; } } else { if (yych <= 'q') { if (yych == 'o') goto yy1363; - goto yy146; + goto yy145; } else { if (yych <= 'r') goto yy1364; - if (yych <= 'z') goto yy146; - goto yy4; + if (yych <= 'z') goto yy145; + goto yy3; } } } -yy15: - YYDEBUG(15, *YYCURSOR); +yy14: + YYDEBUG(14, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'R') { if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'D') goto yy141; + if (yych <= '@') goto yy3; + if (yych <= 'D') goto yy140; goto yy1320; } } else { if (yych <= 'N') { if (yych == 'I') goto yy1321; - goto yy141; + goto yy140; } else { if (yych <= 'O') goto yy1322; - if (yych <= 'Q') goto yy141; + if (yych <= 'Q') goto yy140; goto yy1323; } } } else { if (yych <= 'i') { if (yych <= 'd') { - if (yych <= 'Z') goto yy141; - if (yych <= '`') goto yy4; - goto yy141; + if (yych <= 'Z') goto yy140; + if (yych <= '`') goto yy3; + goto yy140; } else { if (yych <= 'e') goto yy1320; - if (yych <= 'h') goto yy141; + if (yych <= 'h') goto yy140; goto yy1321; } } else { if (yych <= 'q') { if (yych == 'o') goto yy1322; - goto yy141; + goto yy140; } else { if (yych <= 'r') goto yy1323; - if (yych <= 'z') goto yy141; - goto yy4; + if (yych <= 'z') goto yy140; + goto yy3; } } } -yy16: - YYDEBUG(16, *YYCURSOR); +yy15: + YYDEBUG(15, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'A') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; - goto yy1307; + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; + goto yy1306; } else { if (yych <= '`') { - if (yych <= 'Z') goto yy141; - goto yy4; + if (yych <= 'Z') goto yy140; + goto yy3; } else { if (yych <= 'a') goto yy1317; - if (yych <= 'z') goto yy146; - goto yy4; + if (yych <= 'z') goto yy145; + goto yy3; } } -yy17: - YYDEBUG(17, *YYCURSOR); +yy16: + YYDEBUG(16, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'A') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; - goto yy1307; + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; + goto yy1306; } else { if (yych <= '`') { - if (yych <= 'Z') goto yy141; - goto yy4; + if (yych <= 'Z') goto yy140; + goto yy3; } else { - if (yych <= 'a') goto yy1307; - if (yych <= 'z') goto yy141; - goto yy4; + if (yych <= 'a') goto yy1306; + if (yych <= 'z') goto yy140; + goto yy3; } } -yy18: - YYDEBUG(18, *YYCURSOR); +yy17: + YYDEBUG(17, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'A') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; - goto yy1287; + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; + goto yy1286; } else { if (yych <= '`') { - if (yych <= 'Z') goto yy141; - goto yy4; + if (yych <= 'Z') goto yy140; + goto yy3; } else { - if (yych <= 'a') goto yy1304; - if (yych <= 'z') goto yy146; - goto yy4; + if (yych <= 'a') goto yy1303; + if (yych <= 'z') goto yy145; + goto yy3; } } -yy19: - YYDEBUG(19, *YYCURSOR); +yy18: + YYDEBUG(18, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'A') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; - goto yy1287; + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; + goto yy1286; } else { if (yych <= '`') { - if (yych <= 'Z') goto yy141; - goto yy4; + if (yych <= 'Z') goto yy140; + goto yy3; } else { - if (yych <= 'a') goto yy1287; - if (yych <= 'z') goto yy141; - goto yy4; + if (yych <= 'a') goto yy1286; + if (yych <= 'z') goto yy140; + goto yy3; } } -yy20: - YYDEBUG(20, *YYCURSOR); +yy19: + YYDEBUG(19, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { if (yych <= 'D') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'A') goto yy1230; - goto yy141; + if (yych <= '@') goto yy3; + if (yych <= 'A') goto yy1229; + goto yy140; } } else { if (yych <= 'H') { - if (yych <= 'E') goto yy1229; - goto yy141; + if (yych <= 'E') goto yy1228; + goto yy140; } else { - if (yych <= 'I') goto yy1231; - if (yych <= 'T') goto yy141; - goto yy1232; + if (yych <= 'I') goto yy1230; + if (yych <= 'T') goto yy140; + goto yy1231; } } } else { if (yych <= 'e') { if (yych <= '`') { - if (yych <= 'Z') goto yy141; - goto yy4; + if (yych <= 'Z') goto yy140; + goto yy3; } else { - if (yych <= 'a') goto yy1259; - if (yych <= 'd') goto yy146; - goto yy1258; + if (yych <= 'a') goto yy1258; + if (yych <= 'd') goto yy145; + goto yy1257; } } else { if (yych <= 't') { - if (yych == 'i') goto yy1260; - goto yy146; + if (yych == 'i') goto yy1259; + goto yy145; } else { - if (yych <= 'u') goto yy1261; - if (yych <= 'z') goto yy146; - goto yy4; + if (yych <= 'u') goto yy1260; + if (yych <= 'z') goto yy145; + goto yy3; } } } -yy21: - YYDEBUG(21, *YYCURSOR); +yy20: + YYDEBUG(20, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { if (yych <= 'D') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'A') goto yy1230; - goto yy141; + if (yych <= '@') goto yy3; + if (yych <= 'A') goto yy1229; + goto yy140; } } else { if (yych <= 'H') { - if (yych <= 'E') goto yy1229; - goto yy141; + if (yych <= 'E') goto yy1228; + goto yy140; } else { - if (yych <= 'I') goto yy1231; - if (yych <= 'T') goto yy141; - goto yy1232; + if (yych <= 'I') goto yy1230; + if (yych <= 'T') goto yy140; + goto yy1231; } } } else { if (yych <= 'e') { if (yych <= '`') { - if (yych <= 'Z') goto yy141; - goto yy4; + if (yych <= 'Z') goto yy140; + goto yy3; } else { - if (yych <= 'a') goto yy1230; - if (yych <= 'd') goto yy141; - goto yy1229; + if (yych <= 'a') goto yy1229; + if (yych <= 'd') goto yy140; + goto yy1228; } } else { if (yych <= 't') { - if (yych == 'i') goto yy1231; - goto yy141; + if (yych == 'i') goto yy1230; + goto yy140; } else { - if (yych <= 'u') goto yy1232; - if (yych <= 'z') goto yy141; - goto yy4; + if (yych <= 'u') goto yy1231; + if (yych <= 'z') goto yy140; + goto yy3; } } } -yy22: - YYDEBUG(22, *YYCURSOR); +yy21: + YYDEBUG(21, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'L') { if (yych <= '@') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == 'I') goto yy1199; - if (yych <= 'K') goto yy141; - goto yy1200; + if (yych == 'I') goto yy1198; + if (yych <= 'K') goto yy140; + goto yy1199; } } else { if (yych <= 'i') { - if (yych <= 'Z') goto yy141; - if (yych <= '`') goto yy4; - if (yych <= 'h') goto yy146; - goto yy1217; + if (yych <= 'Z') goto yy140; + if (yych <= '`') goto yy3; + if (yych <= 'h') goto yy145; + goto yy1216; } else { - if (yych == 'l') goto yy1218; - if (yych <= 'z') goto yy146; - goto yy4; + if (yych == 'l') goto yy1217; + if (yych <= 'z') goto yy145; + goto yy3; } } -yy23: - YYDEBUG(23, *YYCURSOR); +yy22: + YYDEBUG(22, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'L') { if (yych <= '@') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == 'I') goto yy1199; - if (yych <= 'K') goto yy141; - goto yy1200; + if (yych == 'I') goto yy1198; + if (yych <= 'K') goto yy140; + goto yy1199; } } else { if (yych <= 'i') { - if (yych <= 'Z') goto yy141; - if (yych <= '`') goto yy4; - if (yych <= 'h') goto yy141; - goto yy1199; + if (yych <= 'Z') goto yy140; + if (yych <= '`') goto yy3; + if (yych <= 'h') goto yy140; + goto yy1198; } else { - if (yych == 'l') goto yy1200; - if (yych <= 'z') goto yy141; - goto yy4; + if (yych == 'l') goto yy1199; + if (yych <= 'z') goto yy140; + goto yy3; } } -yy24: - YYDEBUG(24, *YYCURSOR); +yy23: + YYDEBUG(23, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'R') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'Q') goto yy141; - goto yy1098; + if (yych <= '@') goto yy3; + if (yych <= 'Q') goto yy140; + goto yy1097; } } else { if (yych <= 'q') { - if (yych <= 'Z') goto yy141; - if (yych <= '`') goto yy4; - goto yy146; + if (yych <= 'Z') goto yy140; + if (yych <= '`') goto yy3; + goto yy145; } else { - if (yych <= 'r') goto yy1192; - if (yych <= 'z') goto yy146; - goto yy4; + if (yych <= 'r') goto yy1191; + if (yych <= 'z') goto yy145; + goto yy3; } } -yy25: - YYDEBUG(25, *YYCURSOR); +yy24: + YYDEBUG(24, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'R') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'Q') goto yy141; - goto yy1098; + if (yych <= '@') goto yy3; + if (yych <= 'Q') goto yy140; + goto yy1097; } } else { if (yych <= 'q') { - if (yych <= 'Z') goto yy141; - if (yych <= '`') goto yy4; - goto yy141; + if (yych <= 'Z') goto yy140; + if (yych <= '`') goto yy3; + goto yy140; } else { - if (yych <= 'r') goto yy1098; - if (yych <= 'z') goto yy141; - goto yy4; + if (yych <= 'r') goto yy1097; + if (yych <= 'z') goto yy140; + goto yy3; } } -yy26: - YYDEBUG(26, *YYCURSOR); +yy25: + YYDEBUG(25, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); switch (yych) { - case '\t': goto yy1052; + case '\t': goto yy1051; case ' ': case 'A': case 'D': @@ -1730,11 +1713,11 @@ yy26: case 'm': case 'o': case 'w': - case 'y': goto yy1054; - case '-': goto yy473; - case '.': goto yy1064; - case '/': goto yy472; - case '0': goto yy1097; + case 'y': goto yy1053; + case '-': goto yy472; + case '.': goto yy1063; + case '/': goto yy471; + case '0': goto yy1096; case '1': case '2': case '3': @@ -1743,21 +1726,21 @@ yy26: case '6': case '7': case '8': - case '9': goto yy1096; - case ':': goto yy1065; - case 'n': goto yy470; - case 'r': goto yy471; - case 's': goto yy464; - case 't': goto yy468; - default: goto yy13; + case '9': goto yy1095; + case ':': goto yy1064; + case 'n': goto yy469; + case 'r': goto yy470; + case 's': goto yy463; + case 't': goto yy467; + default: goto yy12; } -yy27: - YYDEBUG(27, *YYCURSOR); +yy26: + YYDEBUG(26, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); switch (yych) { - case '\t': goto yy460; + case '\t': goto yy459; case ' ': case 'A': case 'D': @@ -1784,34 +1767,34 @@ yy27: case 'o': case 'p': case 'w': - case 'y': goto yy462; - case '-': goto yy473; - case '.': goto yy474; - case '/': goto yy472; + case 'y': goto yy461; + case '-': goto yy472; + case '.': goto yy473; + case '/': goto yy471; case '0': case '1': - case '2': goto yy1096; + case '2': goto yy1095; case '3': case '4': case '5': case '6': case '7': case '8': - case '9': goto yy1063; - case ':': goto yy483; - case 'n': goto yy470; - case 'r': goto yy471; - case 's': goto yy464; - case 't': goto yy468; - default: goto yy13; + case '9': goto yy1062; + case ':': goto yy482; + case 'n': goto yy469; + case 'r': goto yy470; + case 's': goto yy463; + case 't': goto yy467; + default: goto yy12; } -yy28: - YYDEBUG(28, *YYCURSOR); +yy27: + YYDEBUG(27, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); switch (yych) { - case '\t': goto yy460; + case '\t': goto yy459; case ' ': case 'A': case 'D': @@ -1838,34 +1821,34 @@ yy28: case 'o': case 'p': case 'w': - case 'y': goto yy462; - case '-': goto yy473; - case '.': goto yy474; - case '/': goto yy472; + case 'y': goto yy461; + case '-': goto yy472; + case '.': goto yy473; + case '/': goto yy471; case '0': case '1': case '2': case '3': - case '4': goto yy1063; + case '4': goto yy1062; case '5': case '6': case '7': case '8': - case '9': goto yy1050; - case ':': goto yy483; - case 'n': goto yy470; - case 'r': goto yy471; - case 's': goto yy464; - case 't': goto yy468; - default: goto yy13; + case '9': goto yy1049; + case ':': goto yy482; + case 'n': goto yy469; + case 'r': goto yy470; + case 's': goto yy463; + case 't': goto yy467; + default: goto yy12; } -yy29: - YYDEBUG(29, *YYCURSOR); +yy28: + YYDEBUG(28, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); switch (yych) { - case '\t': goto yy460; + case '\t': goto yy459; case ' ': case 'A': case 'D': @@ -1892,12 +1875,12 @@ yy29: case 'o': case 'p': case 'w': - case 'y': goto yy462; - case '-': goto yy473; - case '.': goto yy474; - case '/': goto yy472; + case 'y': goto yy461; + case '-': goto yy472; + case '.': goto yy473; + case '/': goto yy471; case '0': - case '1': goto yy1050; + case '1': goto yy1049; case '2': case '3': case '4': @@ -1905,21 +1888,21 @@ yy29: case '6': case '7': case '8': - case '9': goto yy469; - case ':': goto yy483; - case 'n': goto yy470; - case 'r': goto yy471; - case 's': goto yy464; - case 't': goto yy468; - default: goto yy13; + case '9': goto yy468; + case ':': goto yy482; + case 'n': goto yy469; + case 'r': goto yy470; + case 's': goto yy463; + case 't': goto yy467; + default: goto yy12; } -yy30: - YYDEBUG(30, *YYCURSOR); +yy29: + YYDEBUG(29, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); switch (yych) { - case '\t': goto yy460; + case '\t': goto yy459; case ' ': case 'A': case 'D': @@ -1946,10 +1929,10 @@ yy30: case 'o': case 'p': case 'w': - case 'y': goto yy462; - case '-': goto yy473; - case '.': goto yy474; - case '/': goto yy472; + case 'y': goto yy461; + case '-': goto yy472; + case '.': goto yy473; + case '/': goto yy471; case '0': case '1': case '2': @@ -1959,308 +1942,331 @@ yy30: case '6': case '7': case '8': - case '9': goto yy469; - case ':': goto yy483; - case 'n': goto yy470; - case 'r': goto yy471; - case 's': goto yy464; - case 't': goto yy468; - default: goto yy13; + case '9': goto yy468; + case ':': goto yy482; + case 'n': goto yy469; + case 'r': goto yy470; + case 's': goto yy463; + case 't': goto yy467; + default: goto yy12; } -yy31: - YYDEBUG(31, *YYCURSOR); +yy30: + YYDEBUG(30, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 4) { - goto yy58; + goto yy57; } YYDEBUG(-1, yych); switch (yych) { case '+': - case '-': goto yy440; + case '-': goto yy439; case '0': - case '1': goto yy437; - case '2': goto yy438; + case '1': goto yy436; + case '2': goto yy437; case '3': case '4': case '5': case '6': case '7': case '8': - case '9': goto yy439; - default: goto yy13; + case '9': goto yy438; + default: goto yy12; } -yy32: - YYDEBUG(32, *YYCURSOR); +yy31: + YYDEBUG(31, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy4; - goto yy196; + if (yych <= 0x08) goto yy3; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy4; + if (yych == ' ') goto yy195; + goto yy3; } } else { if (yych <= ',') { - if (yych <= ')') goto yy140; - goto yy4; + if (yych <= ')') goto yy139; + goto yy3; } else { - if (yych == '/') goto yy4; - goto yy196; + if (yych == '/') goto yy3; + goto yy195; } } } else { if (yych <= 'V') { if (yych <= 'H') { - if (yych <= '@') goto yy4; - goto yy141; + if (yych <= '@') goto yy3; + goto yy140; } else { - if (yych <= 'I') goto yy436; - if (yych <= 'U') goto yy141; - goto yy435; + if (yych <= 'I') goto yy435; + if (yych <= 'U') goto yy140; + goto yy434; } } else { if (yych <= 'Z') { - if (yych == 'X') goto yy435; - goto yy141; + if (yych == 'X') goto yy434; + goto yy140; } else { - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy146; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy145; + goto yy3; } } } -yy33: - YYDEBUG(33, *YYCURSOR); +yy32: + YYDEBUG(32, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= ' ') { - if (yych == '\t') goto yy196; - if (yych <= 0x1F) goto yy4; - goto yy196; + if (yych == '\t') goto yy195; + if (yych <= 0x1F) goto yy3; + goto yy195; } else { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy196; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy195; } } else { if (yych <= 'H') { - if (yych <= '/') goto yy4; - if (yych <= '9') goto yy196; - if (yych <= '@') goto yy4; - goto yy141; + if (yych <= '/') goto yy3; + if (yych <= '9') goto yy195; + if (yych <= '@') goto yy3; + goto yy140; } else { if (yych <= 'Z') { - if (yych <= 'I') goto yy432; - goto yy141; + if (yych <= 'I') goto yy431; + goto yy140; } else { - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy146; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy145; + goto yy3; } } } -yy34: - YYDEBUG(34, *YYCURSOR); +yy33: + YYDEBUG(33, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= ' ') { - if (yych == '\t') goto yy196; - if (yych <= 0x1F) goto yy4; - goto yy196; + if (yych == '\t') goto yy195; + if (yych <= 0x1F) goto yy3; + goto yy195; } else { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy196; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy195; } } else { if (yych <= 'H') { - if (yych <= '/') goto yy4; - if (yych <= '9') goto yy196; - if (yych <= '@') goto yy4; - goto yy141; + if (yych <= '/') goto yy3; + if (yych <= '9') goto yy195; + if (yych <= '@') goto yy3; + goto yy140; } else { if (yych <= 'Z') { - if (yych <= 'I') goto yy430; - goto yy141; + if (yych <= 'I') goto yy429; + goto yy140; } else { - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy146; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy145; + goto yy3; } } } -yy35: - YYDEBUG(35, *YYCURSOR); +yy34: + YYDEBUG(34, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { if (yych <= '@') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych <= 'A') goto yy413; - if (yych <= 'T') goto yy141; - goto yy412; + if (yych <= 'A') goto yy412; + if (yych <= 'T') goto yy140; + goto yy411; } } else { if (yych <= 'a') { - if (yych <= 'Z') goto yy141; - if (yych <= '`') goto yy4; - goto yy422; + if (yych <= 'Z') goto yy140; + if (yych <= '`') goto yy3; + goto yy421; } else { - if (yych == 'u') goto yy421; - if (yych <= 'z') goto yy146; - goto yy4; + if (yych == 'u') goto yy420; + if (yych <= 'z') goto yy145; + goto yy3; } } -yy36: - YYDEBUG(36, *YYCURSOR); +yy35: + YYDEBUG(35, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { if (yych <= '@') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych <= 'A') goto yy413; - if (yych <= 'T') goto yy141; - goto yy412; + if (yych <= 'A') goto yy412; + if (yych <= 'T') goto yy140; + goto yy411; } } else { if (yych <= 'a') { - if (yych <= 'Z') goto yy141; - if (yych <= '`') goto yy4; - goto yy413; + if (yych <= 'Z') goto yy140; + if (yych <= '`') goto yy3; + goto yy412; } else { - if (yych == 'u') goto yy412; - if (yych <= 'z') goto yy141; - goto yy4; + if (yych == 'u') goto yy411; + if (yych <= 'z') goto yy140; + goto yy3; } } -yy37: - YYDEBUG(37, *YYCURSOR); +yy36: + YYDEBUG(36, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { if (yych <= 'F') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; - goto yy141; + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; + goto yy140; } else { if (yych <= 'O') { - if (yych <= 'G') goto yy391; - goto yy141; + if (yych <= 'G') goto yy390; + goto yy140; } else { - if (yych <= 'P') goto yy390; - if (yych <= 'T') goto yy141; - goto yy389; + if (yych <= 'P') goto yy389; + if (yych <= 'T') goto yy140; + goto yy388; } } } else { if (yych <= 'o') { if (yych <= '`') { - if (yych <= 'Z') goto yy141; - goto yy4; + if (yych <= 'Z') goto yy140; + goto yy3; } else { - if (yych == 'g') goto yy403; - goto yy146; + if (yych == 'g') goto yy402; + goto yy145; } } else { if (yych <= 't') { - if (yych <= 'p') goto yy402; - goto yy146; + if (yych <= 'p') goto yy401; + goto yy145; } else { - if (yych <= 'u') goto yy401; - if (yych <= 'z') goto yy146; - goto yy4; + if (yych <= 'u') goto yy400; + if (yych <= 'z') goto yy145; + goto yy3; } } } -yy38: - YYDEBUG(38, *YYCURSOR); +yy37: + YYDEBUG(37, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { if (yych <= 'F') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; - goto yy141; + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; + goto yy140; } else { if (yych <= 'O') { - if (yych <= 'G') goto yy391; - goto yy141; + if (yych <= 'G') goto yy390; + goto yy140; } else { - if (yych <= 'P') goto yy390; - if (yych <= 'T') goto yy141; - goto yy389; + if (yych <= 'P') goto yy389; + if (yych <= 'T') goto yy140; + goto yy388; } } } else { if (yych <= 'o') { if (yych <= '`') { - if (yych <= 'Z') goto yy141; - goto yy4; + if (yych <= 'Z') goto yy140; + goto yy3; } else { - if (yych == 'g') goto yy391; - goto yy141; + if (yych == 'g') goto yy390; + goto yy140; } } else { if (yych <= 't') { - if (yych <= 'p') goto yy390; - goto yy141; + if (yych <= 'p') goto yy389; + goto yy140; } else { - if (yych <= 'u') goto yy389; - if (yych <= 'z') goto yy141; - goto yy4; + if (yych <= 'u') goto yy388; + if (yych <= 'z') goto yy140; + goto yy3; } } } +yy38: + YYDEBUG(38, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'C') { + if (yych <= ')') { + if (yych <= '(') goto yy3; + goto yy139; + } else { + if (yych <= '@') goto yy3; + if (yych <= 'B') goto yy140; + goto yy378; + } + } else { + if (yych <= 'b') { + if (yych <= 'Z') goto yy140; + if (yych <= '`') goto yy3; + goto yy145; + } else { + if (yych <= 'c') goto yy383; + if (yych <= 'z') goto yy145; + goto yy3; + } + } yy39: YYDEBUG(39, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'C') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'B') goto yy141; - goto yy379; + if (yych <= '@') goto yy3; + if (yych <= 'B') goto yy140; + goto yy378; } } else { if (yych <= 'b') { - if (yych <= 'Z') goto yy141; - if (yych <= '`') goto yy4; - goto yy146; + if (yych <= 'Z') goto yy140; + if (yych <= '`') goto yy3; + goto yy140; } else { - if (yych <= 'c') goto yy384; - if (yych <= 'z') goto yy146; - goto yy4; + if (yych <= 'c') goto yy378; + if (yych <= 'z') goto yy140; + goto yy3; } } yy40: YYDEBUG(40, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'C') { + if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'B') goto yy141; - goto yy379; + if (yych <= '@') goto yy3; + if (yych <= 'D') goto yy140; + goto yy191; } } else { - if (yych <= 'b') { - if (yych <= 'Z') goto yy141; - if (yych <= '`') goto yy4; - goto yy141; + if (yych <= 'd') { + if (yych <= 'Z') goto yy140; + if (yych <= '`') goto yy3; + goto yy145; } else { - if (yych <= 'c') goto yy379; - if (yych <= 'z') goto yy141; - goto yy4; + if (yych <= 'e') goto yy369; + if (yych <= 'z') goto yy145; + goto yy3; } } yy41: @@ -2268,22 +2274,22 @@ yy41: yych = *++YYCURSOR; if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'D') goto yy141; - goto yy192; + if (yych <= '@') goto yy3; + if (yych <= 'D') goto yy140; + goto yy191; } } else { if (yych <= 'd') { - if (yych <= 'Z') goto yy141; - if (yych <= '`') goto yy4; - goto yy146; + if (yych <= 'Z') goto yy140; + if (yych <= '`') goto yy3; + goto yy140; } else { - if (yych <= 'e') goto yy370; - if (yych <= 'z') goto yy146; - goto yy4; + if (yych <= 'e') goto yy191; + if (yych <= 'z') goto yy140; + goto yy3; } } yy42: @@ -2291,22 +2297,22 @@ yy42: yych = *++YYCURSOR; if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'D') goto yy141; - goto yy192; + if (yych <= '@') goto yy3; + if (yych <= 'D') goto yy140; + goto yy164; } } else { if (yych <= 'd') { - if (yych <= 'Z') goto yy141; - if (yych <= '`') goto yy4; - goto yy141; + if (yych <= 'Z') goto yy140; + if (yych <= '`') goto yy3; + goto yy145; } else { - if (yych <= 'e') goto yy192; - if (yych <= 'z') goto yy141; - goto yy4; + if (yych <= 'e') goto yy178; + if (yych <= 'z') goto yy145; + goto yy3; } } yy43: @@ -2314,186 +2320,163 @@ yy43: yych = *++YYCURSOR; if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'D') goto yy141; - goto yy165; + if (yych <= '@') goto yy3; + if (yych <= 'D') goto yy140; + goto yy164; } } else { if (yych <= 'd') { - if (yych <= 'Z') goto yy141; - if (yych <= '`') goto yy4; - goto yy146; + if (yych <= 'Z') goto yy140; + if (yych <= '`') goto yy3; + goto yy140; } else { - if (yych <= 'e') goto yy179; - if (yych <= 'z') goto yy146; - goto yy4; + if (yych <= 'e') goto yy164; + if (yych <= 'z') goto yy140; + goto yy3; } } yy44: YYDEBUG(44, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; - } else { - if (yych <= '@') goto yy4; - if (yych <= 'D') goto yy141; - goto yy165; - } + if (yych <= 'L') { + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; + goto yy140; } else { - if (yych <= 'd') { - if (yych <= 'Z') goto yy141; - if (yych <= '`') goto yy4; - goto yy141; + if (yych <= 'Z') { + if (yych <= 'M') goto yy156; + goto yy140; } else { - if (yych <= 'e') goto yy165; - if (yych <= 'z') goto yy141; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy145; + goto yy3; } } yy45: YYDEBUG(45, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'L') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; - goto yy141; - } else { - if (yych <= 'Z') { - if (yych <= 'M') goto yy157; - goto yy141; - } else { - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy146; - goto yy4; - } - } + if (yych <= '@') goto yy12; + if (yych <= 'Z') goto yy155; + if (yych <= '`') goto yy12; + if (yych <= 'z') goto yy155; + goto yy12; yy46: YYDEBUG(46, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '@') goto yy13; - if (yych <= 'Z') goto yy156; - if (yych <= '`') goto yy13; - if (yych <= 'z') goto yy156; - goto yy13; + if (yych <= '@') { + if (yych == ')') goto yy139; + goto yy3; + } else { + if (yych <= 'Z') goto yy140; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy145; + goto yy3; + } yy47: YYDEBUG(47, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '@') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych <= 'Z') goto yy141; - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy146; - goto yy4; + if (yych <= 'Z') goto yy140; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy140; + goto yy3; } yy48: YYDEBUG(48, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '@') { - if (yych == ')') goto yy140; - goto yy4; - } else { - if (yych <= 'Z') goto yy141; - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy141; - goto yy4; - } -yy49: - YYDEBUG(49, *YYCURSOR); yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 4) { - goto yy58; + goto yy57; } - if (yych <= '/') goto yy50; - if (yych <= '9') goto yy55; -yy50: - YYDEBUG(50, *YYCURSOR); + if (yych <= '/') goto yy49; + if (yych <= '9') goto yy54; +yy49: + YYDEBUG(49, *YYCURSOR); { goto std; } +yy50: + YYDEBUG(50, *YYCURSOR); + yych = *++YYCURSOR; + goto yy49; yy51: YYDEBUG(51, *YYCURSOR); - yych = *++YYCURSOR; - goto yy50; -yy52: - YYDEBUG(52, *YYCURSOR); ++YYCURSOR; - YYDEBUG(53, *YYCURSOR); + YYDEBUG(52, *YYCURSOR); { s->pos = cursor; s->line++; goto std; } +yy53: + YYDEBUG(53, *YYCURSOR); + yych = *++YYCURSOR; + goto yy12; yy54: YYDEBUG(54, *YYCURSOR); - yych = *++YYCURSOR; - goto yy13; -yy55: - YYDEBUG(55, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11); yych = *YYCURSOR; - YYDEBUG(56, *YYCURSOR); + YYDEBUG(55, *YYCURSOR); if (yybm[0+yych] & 2) { - goto yy55; + goto yy54; } if (yych <= 'W') { if (yych <= 'F') { if (yych <= ' ') { - if (yych == '\t') goto yy60; - if (yych >= ' ') goto yy60; + if (yych == '\t') goto yy59; + if (yych >= ' ') goto yy59; } else { - if (yych == 'D') goto yy65; - if (yych >= 'F') goto yy66; + if (yych == 'D') goto yy64; + if (yych >= 'F') goto yy65; } } else { if (yych <= 'M') { - if (yych == 'H') goto yy64; - if (yych >= 'M') goto yy63; + if (yych == 'H') goto yy63; + if (yych >= 'M') goto yy62; } else { if (yych <= 'S') { - if (yych >= 'S') goto yy62; + if (yych >= 'S') goto yy61; } else { - if (yych <= 'T') goto yy69; - if (yych >= 'W') goto yy68; + if (yych <= 'T') goto yy68; + if (yych >= 'W') goto yy67; } } } } else { if (yych <= 'l') { if (yych <= 'd') { - if (yych == 'Y') goto yy67; - if (yych >= 'd') goto yy65; + if (yych == 'Y') goto yy66; + if (yych >= 'd') goto yy64; } else { if (yych <= 'f') { - if (yych >= 'f') goto yy66; + if (yych >= 'f') goto yy65; } else { - if (yych == 'h') goto yy64; + if (yych == 'h') goto yy63; } } } else { if (yych <= 't') { - if (yych <= 'm') goto yy63; - if (yych <= 'r') goto yy57; - if (yych <= 's') goto yy62; - goto yy69; + if (yych <= 'm') goto yy62; + if (yych <= 'r') goto yy56; + if (yych <= 's') goto yy61; + goto yy68; } else { if (yych <= 'w') { - if (yych >= 'w') goto yy68; + if (yych >= 'w') goto yy67; } else { - if (yych == 'y') goto yy67; + if (yych == 'y') goto yy66; } } } } -yy57: - YYDEBUG(57, *YYCURSOR); +yy56: + YYDEBUG(56, *YYCURSOR); YYCURSOR = YYMARKER; if (yyaccept <= 16) { if (yyaccept <= 8) { @@ -2501,32 +2484,32 @@ yy57: if (yyaccept <= 2) { if (yyaccept <= 1) { if (yyaccept <= 0) { - goto yy4; + goto yy3; } else { - goto yy13; + goto yy12; } } else { - goto yy50; + goto yy49; } } else { if (yyaccept <= 3) { - goto yy73; + goto yy72; } else { - goto yy167; + goto yy166; } } } else { if (yyaccept <= 6) { if (yyaccept <= 5) { - goto yy194; + goto yy193; } else { - goto yy199; + goto yy198; } } else { if (yyaccept <= 7) { - goto yy223; + goto yy222; } else { - goto yy295; + goto yy294; } } } @@ -2534,29 +2517,29 @@ yy57: if (yyaccept <= 12) { if (yyaccept <= 10) { if (yyaccept <= 9) { - goto yy393; + goto yy392; } else { - goto yy476; + goto yy475; } } else { if (yyaccept <= 11) { - goto yy491; + goto yy490; } else { - goto yy612; + goto yy611; } } } else { if (yyaccept <= 14) { if (yyaccept <= 13) { - goto yy657; + goto yy656; } else { - goto yy667; + goto yy666; } } else { if (yyaccept <= 15) { - goto yy764; + goto yy763; } else { - goto yy784; + goto yy783; } } } @@ -2567,32 +2550,32 @@ yy57: if (yyaccept <= 19) { if (yyaccept <= 18) { if (yyaccept <= 17) { - goto yy815; + goto yy814; } else { - goto yy822; + goto yy821; } } else { - goto yy849; + goto yy848; } } else { if (yyaccept <= 20) { - goto yy794; + goto yy793; } else { - goto yy455; + goto yy454; } } } else { if (yyaccept <= 23) { if (yyaccept <= 22) { - goto yy974; + goto yy973; } else { - goto yy843; + goto yy842; } } else { if (yyaccept <= 24) { - goto yy1068; + goto yy1067; } else { - goto yy1076; + goto yy1075; } } } @@ -2600,13 +2583,13 @@ yy57: if (yyaccept <= 29) { if (yyaccept <= 27) { if (yyaccept <= 26) { - goto yy1118; + goto yy1117; } else { - goto yy1142; + goto yy1141; } } else { if (yyaccept <= 28) { - goto yy1295; + goto yy1294; } else { goto yy1417; } @@ -2628,194 +2611,194 @@ yy57: } } } -yy58: - YYDEBUG(58, *YYCURSOR); +yy57: + YYDEBUG(57, *YYCURSOR); ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - YYDEBUG(59, *YYCURSOR); + YYDEBUG(58, *YYCURSOR); if (yybm[0+yych] & 4) { - goto yy58; + goto yy57; } - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy55; - goto yy57; -yy60: - YYDEBUG(60, *YYCURSOR); + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy54; + goto yy56; +yy59: + YYDEBUG(59, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11); yych = *YYCURSOR; -yy61: - YYDEBUG(61, *YYCURSOR); +yy60: + YYDEBUG(60, *YYCURSOR); if (yych <= 'W') { if (yych <= 'F') { if (yych <= ' ') { - if (yych == '\t') goto yy60; - if (yych <= 0x1F) goto yy57; - goto yy60; + if (yych == '\t') goto yy59; + if (yych <= 0x1F) goto yy56; + goto yy59; } else { - if (yych == 'D') goto yy65; - if (yych <= 'E') goto yy57; - goto yy66; + if (yych == 'D') goto yy64; + if (yych <= 'E') goto yy56; + goto yy65; } } else { if (yych <= 'M') { - if (yych == 'H') goto yy64; - if (yych <= 'L') goto yy57; - goto yy63; + if (yych == 'H') goto yy63; + if (yych <= 'L') goto yy56; + goto yy62; } else { if (yych <= 'S') { - if (yych <= 'R') goto yy57; + if (yych <= 'R') goto yy56; } else { - if (yych <= 'T') goto yy69; - if (yych <= 'V') goto yy57; - goto yy68; + if (yych <= 'T') goto yy68; + if (yych <= 'V') goto yy56; + goto yy67; } } } } else { if (yych <= 'l') { if (yych <= 'd') { - if (yych == 'Y') goto yy67; - if (yych <= 'c') goto yy57; - goto yy65; + if (yych == 'Y') goto yy66; + if (yych <= 'c') goto yy56; + goto yy64; } else { if (yych <= 'f') { - if (yych <= 'e') goto yy57; - goto yy66; + if (yych <= 'e') goto yy56; + goto yy65; } else { - if (yych == 'h') goto yy64; - goto yy57; + if (yych == 'h') goto yy63; + goto yy56; } } } else { if (yych <= 't') { - if (yych <= 'm') goto yy63; - if (yych <= 'r') goto yy57; - if (yych >= 't') goto yy69; + if (yych <= 'm') goto yy62; + if (yych <= 'r') goto yy56; + if (yych >= 't') goto yy68; } else { if (yych <= 'w') { - if (yych <= 'v') goto yy57; - goto yy68; + if (yych <= 'v') goto yy56; + goto yy67; } else { - if (yych == 'y') goto yy67; - goto yy57; + if (yych == 'y') goto yy66; + goto yy56; } } } } -yy62: - YYDEBUG(62, *YYCURSOR); +yy61: + YYDEBUG(61, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { if (yych <= 'D') { - if (yych == 'A') goto yy127; - goto yy57; + if (yych == 'A') goto yy126; + goto yy56; } else { - if (yych <= 'E') goto yy128; - if (yych <= 'T') goto yy57; - goto yy126; + if (yych <= 'E') goto yy127; + if (yych <= 'T') goto yy56; + goto yy125; } } else { if (yych <= 'd') { - if (yych == 'a') goto yy127; - goto yy57; + if (yych == 'a') goto yy126; + goto yy56; } else { - if (yych <= 'e') goto yy128; - if (yych == 'u') goto yy126; - goto yy57; + if (yych <= 'e') goto yy127; + if (yych == 'u') goto yy125; + goto yy56; } } -yy63: - YYDEBUG(63, *YYCURSOR); +yy62: + YYDEBUG(62, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { - if (yych == 'I') goto yy118; - if (yych <= 'N') goto yy57; - goto yy117; + if (yych == 'I') goto yy117; + if (yych <= 'N') goto yy56; + goto yy116; } else { if (yych <= 'i') { - if (yych <= 'h') goto yy57; - goto yy118; + if (yych <= 'h') goto yy56; + goto yy117; } else { - if (yych == 'o') goto yy117; - goto yy57; + if (yych == 'o') goto yy116; + goto yy56; } } +yy63: + YYDEBUG(63, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy114; + if (yych == 'o') goto yy114; + goto yy56; yy64: YYDEBUG(64, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy115; - if (yych == 'o') goto yy115; - goto yy57; + if (yych == 'A') goto yy113; + if (yych == 'a') goto yy113; + goto yy56; yy65: YYDEBUG(65, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy114; - if (yych == 'a') goto yy114; - goto yy57; -yy66: - YYDEBUG(66, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'R') { - if (yych == 'O') goto yy99; - if (yych <= 'Q') goto yy57; - goto yy98; + if (yych == 'O') goto yy98; + if (yych <= 'Q') goto yy56; + goto yy97; } else { if (yych <= 'o') { - if (yych <= 'n') goto yy57; - goto yy99; + if (yych <= 'n') goto yy56; + goto yy98; } else { - if (yych == 'r') goto yy98; - goto yy57; + if (yych == 'r') goto yy97; + goto yy56; } } +yy66: + YYDEBUG(66, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy94; + if (yych == 'e') goto yy94; + goto yy56; yy67: YYDEBUG(67, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy95; - if (yych == 'e') goto yy95; - goto yy57; + if (yych == 'E') goto yy82; + if (yych == 'e') goto yy82; + goto yy56; yy68: YYDEBUG(68, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy83; - if (yych == 'e') goto yy83; - goto yy57; -yy69: - YYDEBUG(69, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'H') goto yy70; - if (yych <= 'T') goto yy57; - goto yy71; + if (yych == 'H') goto yy69; + if (yych <= 'T') goto yy56; + goto yy70; } else { if (yych <= 'h') { - if (yych <= 'g') goto yy57; + if (yych <= 'g') goto yy56; } else { - if (yych == 'u') goto yy71; - goto yy57; + if (yych == 'u') goto yy70; + goto yy56; } } +yy69: + YYDEBUG(69, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy77; + if (yych == 'u') goto yy77; + goto yy56; yy70: YYDEBUG(70, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy78; - if (yych == 'u') goto yy78; - goto yy57; + if (yych == 'E') goto yy71; + if (yych != 'e') goto yy56; yy71: YYDEBUG(71, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy72; - if (yych != 'e') goto yy57; -yy72: - YYDEBUG(72, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'S') goto yy74; - if (yych == 's') goto yy74; -yy73: - YYDEBUG(73, *YYCURSOR); + if (yych == 'S') goto yy73; + if (yych == 's') goto yy73; +yy72: + YYDEBUG(72, *YYCURSOR); { timelib_ull i; DEBUG_OUTPUT("relative"); @@ -2830,767 +2813,767 @@ yy73: TIMELIB_DEINIT; return TIMELIB_RELATIVE; } +yy73: + YYDEBUG(73, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy74; + if (yych != 'd') goto yy56; yy74: YYDEBUG(74, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy75; - if (yych != 'd') goto yy57; + if (yych == 'A') goto yy75; + if (yych != 'a') goto yy56; yy75: YYDEBUG(75, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy76; - if (yych != 'a') goto yy57; + if (yych == 'Y') goto yy76; + if (yych != 'y') goto yy56; yy76: YYDEBUG(76, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy77; - if (yych != 'y') goto yy57; + goto yy72; yy77: YYDEBUG(77, *YYCURSOR); - yych = *++YYCURSOR; - goto yy73; -yy78: - YYDEBUG(78, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'R') goto yy79; - if (yych != 'r') goto yy73; + if (yych == 'R') goto yy78; + if (yych != 'r') goto yy72; +yy78: + YYDEBUG(78, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy79; + if (yych != 's') goto yy56; yy79: YYDEBUG(79, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy80; - if (yych != 's') goto yy57; + if (yych == 'D') goto yy80; + if (yych != 'd') goto yy56; yy80: YYDEBUG(80, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy81; - if (yych != 'd') goto yy57; + if (yych == 'A') goto yy81; + if (yych != 'a') goto yy56; yy81: YYDEBUG(81, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy82; - if (yych != 'a') goto yy57; + if (yych == 'Y') goto yy76; + if (yych == 'y') goto yy76; + goto yy56; yy82: YYDEBUG(82, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy77; - if (yych == 'y') goto yy77; - goto yy57; -yy83: - YYDEBUG(83, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'E') { - if (yych <= 'C') goto yy57; - if (yych <= 'D') goto yy85; + if (yych <= 'C') goto yy56; + if (yych <= 'D') goto yy84; } else { - if (yych <= 'c') goto yy57; - if (yych <= 'd') goto yy85; - if (yych >= 'f') goto yy57; + if (yych <= 'c') goto yy56; + if (yych <= 'd') goto yy84; + if (yych >= 'f') goto yy56; } - YYDEBUG(84, *YYCURSOR); + YYDEBUG(83, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'K') goto yy91; - if (yych == 'k') goto yy91; - goto yy57; -yy85: - YYDEBUG(85, *YYCURSOR); + if (yych == 'K') goto yy90; + if (yych == 'k') goto yy90; + goto yy56; +yy84: + YYDEBUG(84, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'N') goto yy86; - if (yych != 'n') goto yy73; + if (yych == 'N') goto yy85; + if (yych != 'n') goto yy72; +yy85: + YYDEBUG(85, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy86; + if (yych != 'e') goto yy56; yy86: YYDEBUG(86, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy87; - if (yych != 'e') goto yy57; + if (yych == 'S') goto yy87; + if (yych != 's') goto yy56; yy87: YYDEBUG(87, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy88; - if (yych != 's') goto yy57; + if (yych == 'D') goto yy88; + if (yych != 'd') goto yy56; yy88: YYDEBUG(88, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy89; - if (yych != 'd') goto yy57; + if (yych == 'A') goto yy89; + if (yych != 'a') goto yy56; yy89: YYDEBUG(89, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy90; - if (yych != 'a') goto yy57; + if (yych == 'Y') goto yy76; + if (yych == 'y') goto yy76; + goto yy56; yy90: YYDEBUG(90, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy77; - if (yych == 'y') goto yy77; - goto yy57; -yy91: - YYDEBUG(91, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { - if (yych == 'D') goto yy92; - if (yych <= 'R') goto yy73; - goto yy77; + if (yych == 'D') goto yy91; + if (yych <= 'R') goto yy72; + goto yy76; } else { if (yych <= 'd') { - if (yych <= 'c') goto yy73; + if (yych <= 'c') goto yy72; } else { - if (yych == 's') goto yy77; - goto yy73; + if (yych == 's') goto yy76; + goto yy72; } } +yy91: + YYDEBUG(91, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy92; + if (yych != 'a') goto yy56; yy92: YYDEBUG(92, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy93; - if (yych != 'a') goto yy57; + if (yych == 'Y') goto yy93; + if (yych != 'y') goto yy56; yy93: YYDEBUG(93, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy94; - if (yych != 'y') goto yy57; + if (yych == 'S') goto yy76; + if (yych == 's') goto yy76; + goto yy72; yy94: YYDEBUG(94, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy77; - if (yych == 's') goto yy77; - goto yy73; + if (yych == 'A') goto yy95; + if (yych != 'a') goto yy56; yy95: YYDEBUG(95, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy96; - if (yych != 'a') goto yy57; + if (yych == 'R') goto yy96; + if (yych != 'r') goto yy56; yy96: YYDEBUG(96, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy97; - if (yych != 'r') goto yy57; + if (yych == 'S') goto yy76; + if (yych == 's') goto yy76; + goto yy72; yy97: YYDEBUG(97, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy77; - if (yych == 's') goto yy77; - goto yy73; + if (yych == 'I') goto yy110; + if (yych == 'i') goto yy110; + goto yy56; yy98: YYDEBUG(98, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy111; - if (yych == 'i') goto yy111; - goto yy57; + if (yych == 'R') goto yy99; + if (yych != 'r') goto yy56; yy99: YYDEBUG(99, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy100; - if (yych != 'r') goto yy57; + if (yych == 'T') goto yy100; + if (yych != 't') goto yy56; yy100: YYDEBUG(100, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy101; - if (yych != 't') goto yy57; -yy101: - YYDEBUG(101, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'N') { - if (yych == 'H') goto yy103; - if (yych <= 'M') goto yy57; + if (yych == 'H') goto yy102; + if (yych <= 'M') goto yy56; } else { if (yych <= 'h') { - if (yych <= 'g') goto yy57; - goto yy103; + if (yych <= 'g') goto yy56; + goto yy102; } else { - if (yych != 'n') goto yy57; + if (yych != 'n') goto yy56; } } + YYDEBUG(101, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy107; + if (yych == 'i') goto yy107; + goto yy56; +yy102: YYDEBUG(102, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy108; - if (yych == 'i') goto yy108; - goto yy57; + if (yych == 'N') goto yy103; + if (yych != 'n') goto yy56; yy103: YYDEBUG(103, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy104; - if (yych != 'n') goto yy57; + if (yych == 'I') goto yy104; + if (yych != 'i') goto yy56; yy104: YYDEBUG(104, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy105; - if (yych != 'i') goto yy57; + if (yych == 'G') goto yy105; + if (yych != 'g') goto yy56; yy105: YYDEBUG(105, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'G') goto yy106; - if (yych != 'g') goto yy57; + if (yych == 'H') goto yy106; + if (yych != 'h') goto yy56; yy106: YYDEBUG(106, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy107; - if (yych != 'h') goto yy57; + if (yych == 'T') goto yy96; + if (yych == 't') goto yy96; + goto yy56; yy107: YYDEBUG(107, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy97; - if (yych == 't') goto yy97; - goto yy57; + if (yych == 'G') goto yy108; + if (yych != 'g') goto yy56; yy108: YYDEBUG(108, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'G') goto yy109; - if (yych != 'g') goto yy57; + if (yych == 'H') goto yy109; + if (yych != 'h') goto yy56; yy109: YYDEBUG(109, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy110; - if (yych != 'h') goto yy57; + if (yych == 'T') goto yy96; + if (yych == 't') goto yy96; + goto yy56; yy110: YYDEBUG(110, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy97; - if (yych == 't') goto yy97; - goto yy57; -yy111: - YYDEBUG(111, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'D') goto yy112; - if (yych != 'd') goto yy73; + if (yych == 'D') goto yy111; + if (yych != 'd') goto yy72; +yy111: + YYDEBUG(111, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy112; + if (yych != 'a') goto yy56; yy112: YYDEBUG(112, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy113; - if (yych != 'a') goto yy57; + if (yych == 'Y') goto yy76; + if (yych == 'y') goto yy76; + goto yy56; yy113: YYDEBUG(113, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy77; - if (yych == 'y') goto yy77; - goto yy57; + if (yych == 'Y') goto yy96; + if (yych == 'y') goto yy96; + goto yy56; yy114: YYDEBUG(114, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy97; - if (yych == 'y') goto yy97; - goto yy57; + if (yych == 'U') goto yy115; + if (yych != 'u') goto yy56; yy115: YYDEBUG(115, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy116; - if (yych != 'u') goto yy57; + if (yych == 'R') goto yy96; + if (yych == 'r') goto yy96; + goto yy56; yy116: YYDEBUG(116, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy97; - if (yych == 'r') goto yy97; - goto yy57; + if (yych == 'N') goto yy121; + if (yych == 'n') goto yy121; + goto yy56; yy117: YYDEBUG(117, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy122; - if (yych == 'n') goto yy122; - goto yy57; + if (yych == 'N') goto yy118; + if (yych != 'n') goto yy56; yy118: YYDEBUG(118, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy119; - if (yych != 'n') goto yy57; -yy119: - YYDEBUG(119, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'U') { - if (yych == 'S') goto yy77; - if (yych <= 'T') goto yy73; + if (yych == 'S') goto yy76; + if (yych <= 'T') goto yy72; } else { if (yych <= 's') { - if (yych <= 'r') goto yy73; - goto yy77; + if (yych <= 'r') goto yy72; + goto yy76; } else { - if (yych != 'u') goto yy73; + if (yych != 'u') goto yy72; } } + YYDEBUG(119, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy120; + if (yych != 't') goto yy56; +yy120: YYDEBUG(120, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy121; - if (yych != 't') goto yy57; + if (yych == 'E') goto yy96; + if (yych == 'e') goto yy96; + goto yy56; yy121: YYDEBUG(121, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy97; - if (yych == 'e') goto yy97; - goto yy57; -yy122: - YYDEBUG(122, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'T') { - if (yych == 'D') goto yy123; - if (yych <= 'S') goto yy73; - goto yy124; + if (yych == 'D') goto yy122; + if (yych <= 'S') goto yy72; + goto yy123; } else { if (yych <= 'd') { - if (yych <= 'c') goto yy73; + if (yych <= 'c') goto yy72; } else { - if (yych == 't') goto yy124; - goto yy73; + if (yych == 't') goto yy123; + goto yy72; } } +yy122: + YYDEBUG(122, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy124; + if (yych == 'a') goto yy124; + goto yy56; yy123: YYDEBUG(123, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy125; - if (yych == 'a') goto yy125; - goto yy57; + if (yych == 'H') goto yy96; + if (yych == 'h') goto yy96; + goto yy56; yy124: YYDEBUG(124, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy97; - if (yych == 'h') goto yy97; - goto yy57; + if (yych == 'Y') goto yy76; + if (yych == 'y') goto yy76; + goto yy56; yy125: YYDEBUG(125, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy77; - if (yych == 'y') goto yy77; - goto yy57; + if (yych == 'N') goto yy136; + if (yych == 'n') goto yy136; + goto yy56; yy126: YYDEBUG(126, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy137; - if (yych == 'n') goto yy137; - goto yy57; + if (yych == 'T') goto yy131; + if (yych == 't') goto yy131; + goto yy56; yy127: YYDEBUG(127, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy132; - if (yych == 't') goto yy132; - goto yy57; + if (yych == 'C') goto yy128; + if (yych != 'c') goto yy56; yy128: YYDEBUG(128, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy129; - if (yych != 'c') goto yy57; -yy129: - YYDEBUG(129, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { - if (yych == 'O') goto yy130; - if (yych <= 'R') goto yy73; - goto yy77; + if (yych == 'O') goto yy129; + if (yych <= 'R') goto yy72; + goto yy76; } else { if (yych <= 'o') { - if (yych <= 'n') goto yy73; + if (yych <= 'n') goto yy72; } else { - if (yych == 's') goto yy77; - goto yy73; + if (yych == 's') goto yy76; + goto yy72; } } +yy129: + YYDEBUG(129, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy130; + if (yych != 'n') goto yy56; yy130: YYDEBUG(130, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy131; - if (yych != 'n') goto yy57; + if (yych == 'D') goto yy96; + if (yych == 'd') goto yy96; + goto yy56; yy131: YYDEBUG(131, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy97; - if (yych == 'd') goto yy97; - goto yy57; -yy132: - YYDEBUG(132, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'U') goto yy133; - if (yych != 'u') goto yy73; + if (yych == 'U') goto yy132; + if (yych != 'u') goto yy72; +yy132: + YYDEBUG(132, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy133; + if (yych != 'r') goto yy56; yy133: YYDEBUG(133, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy134; - if (yych != 'r') goto yy57; + if (yych == 'D') goto yy134; + if (yych != 'd') goto yy56; yy134: YYDEBUG(134, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy135; - if (yych != 'd') goto yy57; + if (yych == 'A') goto yy135; + if (yych != 'a') goto yy56; yy135: YYDEBUG(135, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy136; - if (yych != 'a') goto yy57; + if (yych == 'Y') goto yy76; + if (yych == 'y') goto yy76; + goto yy56; yy136: YYDEBUG(136, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy77; - if (yych == 'y') goto yy77; - goto yy57; -yy137: - YYDEBUG(137, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'D') goto yy138; - if (yych != 'd') goto yy73; + if (yych == 'D') goto yy137; + if (yych != 'd') goto yy72; +yy137: + YYDEBUG(137, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy138; + if (yych != 'a') goto yy56; yy138: YYDEBUG(138, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy139; - if (yych != 'a') goto yy57; + if (yych == 'Y') goto yy76; + if (yych == 'y') goto yy76; + goto yy56; yy139: YYDEBUG(139, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy77; - if (yych == 'y') goto yy77; - goto yy57; + goto yy3; yy140: YYDEBUG(140, *YYCURSOR); yych = *++YYCURSOR; - goto yy4; + if (yych <= '@') { + if (yych == ')') goto yy139; + goto yy3; + } else { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + if (yych >= '{') goto yy3; + } yy141: YYDEBUG(141, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '@') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - if (yych >= '{') goto yy4; + if (yych <= '`') goto yy3; + if (yych >= '{') goto yy3; } yy142: YYDEBUG(142, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '@') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - if (yych >= '{') goto yy4; + if (yych <= '`') goto yy3; + if (yych >= '{') goto yy3; } yy143: YYDEBUG(143, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '@') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - if (yych >= '{') goto yy4; + if (yych <= '`') goto yy3; + if (yych >= '{') goto yy3; } yy144: YYDEBUG(144, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '@') { - if (yych == ')') goto yy140; - goto yy4; - } else { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - if (yych >= '{') goto yy4; - } + if (yych == ')') goto yy139; + goto yy3; yy145: YYDEBUG(145, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == ')') goto yy140; - goto yy4; -yy146: - YYDEBUG(146, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - goto yy148; + if (yych == '.') goto yy3; + goto yy147; } } else { if (yych <= '^') { - if (yych <= '@') goto yy4; - if (yych <= 'Z') goto yy142; - goto yy4; + if (yych <= '@') goto yy3; + if (yych <= 'Z') goto yy141; + goto yy3; } else { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy4; - if (yych >= '{') goto yy4; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy3; + if (yych >= '{') goto yy3; } } -yy147: - YYDEBUG(147, *YYCURSOR); +yy146: + YYDEBUG(146, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; + if (yych == '.') goto yy3; } } else { if (yych <= '^') { - if (yych <= '@') goto yy4; - if (yych <= 'Z') goto yy143; - goto yy4; + if (yych <= '@') goto yy3; + if (yych <= 'Z') goto yy142; + goto yy3; } else { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy150; + goto yy3; } } -yy148: - YYDEBUG(148, *YYCURSOR); +yy147: + YYDEBUG(147, *YYCURSOR); ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 8) { - goto yy149; + goto yy148; } - goto yy57; -yy149: - YYDEBUG(149, *YYCURSOR); + goto yy56; +yy148: + YYDEBUG(148, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - YYDEBUG(150, *YYCURSOR); + YYDEBUG(149, *YYCURSOR); if (yybm[0+yych] & 8) { - goto yy149; + goto yy148; } if (yych <= '.') { - if (yych == '-') goto yy148; - goto yy4; + if (yych == '-') goto yy147; + goto yy3; } else { - if (yych <= '/') goto yy148; - if (yych == '_') goto yy148; - goto yy4; + if (yych <= '/') goto yy147; + if (yych == '_') goto yy147; + goto yy3; } -yy151: - YYDEBUG(151, *YYCURSOR); +yy150: + YYDEBUG(150, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - goto yy148; + if (yych == '.') goto yy3; + goto yy147; } } else { if (yych <= '^') { - if (yych <= '@') goto yy4; - if (yych <= 'Z') goto yy144; - goto yy4; + if (yych <= '@') goto yy3; + if (yych <= 'Z') goto yy143; + goto yy3; } else { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy4; - if (yych >= '{') goto yy4; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy3; + if (yych >= '{') goto yy3; } } -yy152: - YYDEBUG(152, *YYCURSOR); +yy151: + YYDEBUG(151, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - goto yy148; + if (yych == '.') goto yy3; + goto yy147; } } else { if (yych <= '^') { - if (yych <= '@') goto yy4; - if (yych <= 'Z') goto yy145; - goto yy4; + if (yych <= '@') goto yy3; + if (yych <= 'Z') goto yy144; + goto yy3; } else { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy4; - if (yych >= '{') goto yy4; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy3; + if (yych >= '{') goto yy3; } } -yy153: - YYDEBUG(153, *YYCURSOR); +yy152: + YYDEBUG(152, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 16) { - goto yy154; + goto yy153; } if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { if (yych <= '/') { - if (yych <= '.') goto yy4; - goto yy148; + if (yych <= '.') goto yy3; + goto yy147; } else { - if (yych == '_') goto yy148; - goto yy4; + if (yych == '_') goto yy147; + goto yy3; } } -yy154: - YYDEBUG(154, *YYCURSOR); +yy153: + YYDEBUG(153, *YYCURSOR); ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy155: - YYDEBUG(155, *YYCURSOR); +yy154: + YYDEBUG(154, *YYCURSOR); if (yybm[0+yych] & 16) { - goto yy154; + goto yy153; } if (yych <= '.') { - if (yych == '-') goto yy148; - goto yy57; + if (yych == '-') goto yy147; + goto yy56; } else { - if (yych <= '/') goto yy148; - if (yych == '_') goto yy148; - goto yy57; + if (yych <= '/') goto yy147; + if (yych == '_') goto yy147; + goto yy56; } -yy156: - YYDEBUG(156, *YYCURSOR); +yy155: + YYDEBUG(155, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '@') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych <= 'Z') goto yy141; - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy141; - goto yy4; + if (yych <= 'Z') goto yy140; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy140; + goto yy3; } -yy157: - YYDEBUG(157, *YYCURSOR); +yy156: + YYDEBUG(156, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'S') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; + goto yy141; } else { if (yych <= 'Z') { - if (yych >= 'U') goto yy142; + if (yych >= 'U') goto yy141; } else { - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy141; + goto yy3; } } - YYDEBUG(158, *YYCURSOR); + YYDEBUG(157, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych != '+') goto yy4; + if (yych != '+') goto yy3; } } else { if (yych <= 'Z') { - if (yych <= '-') goto yy159; - if (yych <= '@') goto yy4; - goto yy143; + if (yych <= '-') goto yy158; + if (yych <= '@') goto yy3; + goto yy142; } else { - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy142; + goto yy3; } } +yy158: + YYDEBUG(158, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych <= '1') goto yy159; + if (yych <= '2') goto yy160; + if (yych <= '9') goto yy161; + goto yy56; yy159: YYDEBUG(159, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '1') goto yy160; - if (yych <= '2') goto yy161; - if (yych <= '9') goto yy162; - goto yy57; + if (yych <= '/') goto yy3; + if (yych <= '9') goto yy161; + if (yych <= ':') goto yy162; + goto yy3; yy160: YYDEBUG(160, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy4; - if (yych <= '9') goto yy162; - if (yych <= ':') goto yy163; - goto yy4; -yy161: - YYDEBUG(161, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= '5') { - if (yych <= '/') goto yy4; - if (yych >= '5') goto yy164; + if (yych <= '/') goto yy3; + if (yych >= '5') goto yy163; } else { - if (yych <= '9') goto yy140; - if (yych <= ':') goto yy163; - goto yy4; + if (yych <= '9') goto yy139; + if (yych <= ':') goto yy162; + goto yy3; } +yy161: + YYDEBUG(161, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy3; + if (yych <= '5') goto yy163; + if (yych <= '9') goto yy139; + if (yych >= ';') goto yy3; yy162: YYDEBUG(162, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy4; - if (yych <= '5') goto yy164; - if (yych <= '9') goto yy140; - if (yych >= ';') goto yy4; + if (yych <= '/') goto yy3; + if (yych <= '5') goto yy163; + if (yych <= '9') goto yy139; + goto yy3; yy163: YYDEBUG(163, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy4; - if (yych <= '5') goto yy164; - if (yych <= '9') goto yy140; - goto yy4; + if (yych <= '/') goto yy3; + if (yych <= '9') goto yy139; + goto yy3; yy164: YYDEBUG(164, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy4; - if (yych <= '9') goto yy140; - goto yy4; -yy165: - YYDEBUG(165, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'E') { if (yych <= '@') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych <= 'C') goto yy142; - if (yych >= 'E') goto yy168; + if (yych <= 'C') goto yy141; + if (yych >= 'E') goto yy167; } } else { if (yych <= 'c') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { - if (yych <= 'd') goto yy166; - if (yych <= 'e') goto yy168; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'd') goto yy165; + if (yych <= 'e') goto yy167; + if (yych <= 'z') goto yy141; + goto yy3; } } -yy166: - YYDEBUG(166, *YYCURSOR); +yy165: + YYDEBUG(165, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= 'N') { if (yych <= ')') { - if (yych >= ')') goto yy140; + if (yych >= ')') goto yy139; } else { - if (yych <= '@') goto yy167; - if (yych <= 'M') goto yy143; - goto yy174; + if (yych <= '@') goto yy166; + if (yych <= 'M') goto yy142; + goto yy173; } } else { if (yych <= 'm') { - if (yych <= 'Z') goto yy143; - if (yych >= 'a') goto yy143; + if (yych <= 'Z') goto yy142; + if (yych >= 'a') goto yy142; } else { - if (yych <= 'n') goto yy174; - if (yych <= 'z') goto yy143; + if (yych <= 'n') goto yy173; + if (yych <= 'z') goto yy142; } } -yy167: - YYDEBUG(167, *YYCURSOR); +yy166: + YYDEBUG(166, *YYCURSOR); { const timelib_relunit* relunit; DEBUG_OUTPUT("daytext"); @@ -3607,525 +3590,525 @@ yy167: TIMELIB_DEINIT; return TIMELIB_WEEKDAY; } -yy168: - YYDEBUG(168, *YYCURSOR); +yy167: + YYDEBUG(167, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'K') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'J') goto yy143; + if (yych <= '@') goto yy3; + if (yych <= 'J') goto yy142; } } else { if (yych <= 'j') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy3; + goto yy142; } else { - if (yych <= 'k') goto yy169; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 'k') goto yy168; + if (yych <= 'z') goto yy142; + goto yy3; } } -yy169: - YYDEBUG(169, *YYCURSOR); +yy168: + YYDEBUG(168, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'D') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'C') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'C') goto yy143; } } else { if (yych <= 'c') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { - if (yych <= 'd') goto yy170; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'd') goto yy169; + if (yych <= 'z') goto yy143; + goto yy3; } } -yy170: - YYDEBUG(170, *YYCURSOR); +yy169: + YYDEBUG(169, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'A') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; } else { if (yych <= '`') { - if (yych <= 'Z') goto yy145; - goto yy4; + if (yych <= 'Z') goto yy144; + goto yy3; } else { - if (yych <= 'a') goto yy171; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 'a') goto yy170; + if (yych <= 'z') goto yy144; + goto yy3; } } -yy171: - YYDEBUG(171, *YYCURSOR); +yy170: + YYDEBUG(170, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'X') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych <= 'Y') goto yy172; - if (yych != 'y') goto yy4; + if (yych <= 'Y') goto yy171; + if (yych != 'y') goto yy3; } +yy171: + YYDEBUG(171, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy172; + if (yych != 's') goto yy166; yy172: YYDEBUG(172, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy173; - if (yych != 's') goto yy167; + goto yy166; yy173: YYDEBUG(173, *YYCURSOR); yych = *++YYCURSOR; - goto yy167; -yy174: - YYDEBUG(174, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'D') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'D') goto yy143; } } else { if (yych <= 'd') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { - if (yych <= 'e') goto yy175; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'e') goto yy174; + if (yych <= 'z') goto yy143; + goto yy3; } } -yy175: - YYDEBUG(175, *YYCURSOR); +yy174: + YYDEBUG(174, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'S') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'R') goto yy145; + if (yych <= '@') goto yy3; + if (yych <= 'R') goto yy144; } } else { if (yych <= 'r') { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - goto yy145; + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy3; + goto yy144; } else { - if (yych <= 's') goto yy176; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 's') goto yy175; + if (yych <= 'z') goto yy144; + goto yy3; } } -yy176: - YYDEBUG(176, *YYCURSOR); +yy175: + YYDEBUG(175, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'C') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych <= 'D') goto yy177; - if (yych != 'd') goto yy4; + if (yych <= 'D') goto yy176; + if (yych != 'd') goto yy3; } +yy176: + YYDEBUG(176, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy177; + if (yych != 'a') goto yy56; yy177: YYDEBUG(177, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy178; - if (yych != 'a') goto yy57; + if (yych == 'Y') goto yy172; + if (yych == 'y') goto yy172; + goto yy56; yy178: YYDEBUG(178, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy173; - if (yych == 'y') goto yy173; - goto yy57; -yy179: - YYDEBUG(179, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { if (yych <= '/') { - if (yych <= '.') goto yy4; - goto yy148; + if (yych <= '.') goto yy3; + goto yy147; } else { - if (yych <= '@') goto yy4; - if (yych <= 'C') goto yy142; - goto yy166; + if (yych <= '@') goto yy3; + if (yych <= 'C') goto yy141; + goto yy165; } } } else { if (yych <= '`') { if (yych <= 'Z') { - if (yych <= 'E') goto yy168; - goto yy142; + if (yych <= 'E') goto yy167; + goto yy141; } else { - if (yych == '_') goto yy148; - goto yy4; + if (yych == '_') goto yy147; + goto yy3; } } else { if (yych <= 'd') { - if (yych <= 'c') goto yy147; + if (yych <= 'c') goto yy146; } else { - if (yych <= 'e') goto yy181; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'e') goto yy180; + if (yych <= 'z') goto yy146; + goto yy3; } } } - YYDEBUG(180, *YYCURSOR); + YYDEBUG(179, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'M') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy167; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy166; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy167; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy166; + goto yy142; } } else { if (yych <= '_') { - if (yych <= 'N') goto yy174; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy167; - goto yy148; + if (yych <= 'N') goto yy173; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy166; + goto yy147; } else { if (yych <= 'm') { - if (yych <= '`') goto yy167; - goto yy151; + if (yych <= '`') goto yy166; + goto yy150; } else { - if (yych <= 'n') goto yy187; - if (yych <= 'z') goto yy151; - goto yy167; + if (yych <= 'n') goto yy186; + if (yych <= 'z') goto yy150; + goto yy166; } } } -yy181: - YYDEBUG(181, *YYCURSOR); +yy180: + YYDEBUG(180, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'J') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy142; } } else { if (yych <= '_') { - if (yych <= 'K') goto yy169; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'K') goto yy168; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'j') { - if (yych <= '`') goto yy4; - goto yy151; + if (yych <= '`') goto yy3; + goto yy150; } else { - if (yych <= 'k') goto yy182; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'k') goto yy181; + if (yych <= 'z') goto yy150; + goto yy3; } } } -yy182: - YYDEBUG(182, *YYCURSOR); +yy181: + YYDEBUG(181, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'C') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { - if (yych <= 'D') goto yy170; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'D') goto yy169; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'c') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { - if (yych <= 'd') goto yy183; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'd') goto yy182; + if (yych <= 'z') goto yy151; + goto yy3; } } } -yy183: - YYDEBUG(183, *YYCURSOR); +yy182: + YYDEBUG(182, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '@') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '_') { - if (yych <= 'A') goto yy171; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'A') goto yy170; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { - if (yych <= '`') goto yy4; - if (yych <= 'a') goto yy184; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'a') goto yy183; + if (yych <= 'z') goto yy152; + goto yy3; } } -yy184: - YYDEBUG(184, *YYCURSOR); +yy183: + YYDEBUG(183, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'X') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '`') { - if (yych <= 'Y') goto yy172; - if (yych == '_') goto yy148; - goto yy4; + if (yych <= 'Y') goto yy171; + if (yych == '_') goto yy147; + goto yy3; } else { - if (yych == 'y') goto yy185; - if (yych <= 'z') goto yy154; - goto yy4; + if (yych == 'y') goto yy184; + if (yych <= 'z') goto yy153; + goto yy3; } } -yy185: - YYDEBUG(185, *YYCURSOR); +yy184: + YYDEBUG(184, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { if (yych <= '.') { - if (yych == '-') goto yy148; - goto yy167; + if (yych == '-') goto yy147; + goto yy166; } else { - if (yych <= '/') goto yy148; - if (yych <= 'R') goto yy167; - goto yy173; + if (yych <= '/') goto yy147; + if (yych <= 'R') goto yy166; + goto yy172; } } else { if (yych <= '`') { - if (yych == '_') goto yy148; - goto yy167; + if (yych == '_') goto yy147; + goto yy166; } else { - if (yych == 's') goto yy186; - if (yych <= 'z') goto yy154; - goto yy167; + if (yych == 's') goto yy185; + if (yych <= 'z') goto yy153; + goto yy166; } } -yy186: - YYDEBUG(186, *YYCURSOR); +yy185: + YYDEBUG(185, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 16) { - goto yy154; + goto yy153; } if (yych <= '.') { - if (yych == '-') goto yy148; - goto yy167; + if (yych == '-') goto yy147; + goto yy166; } else { - if (yych <= '/') goto yy148; - if (yych == '_') goto yy148; - goto yy167; + if (yych <= '/') goto yy147; + if (yych == '_') goto yy147; + goto yy166; } -yy187: - YYDEBUG(187, *YYCURSOR); +yy186: + YYDEBUG(186, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { - if (yych <= 'E') goto yy175; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'E') goto yy174; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'd') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { - if (yych <= 'e') goto yy188; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'e') goto yy187; + if (yych <= 'z') goto yy151; + goto yy3; } } } -yy188: - YYDEBUG(188, *YYCURSOR); +yy187: + YYDEBUG(187, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'R') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } } else { if (yych <= '_') { - if (yych <= 'S') goto yy176; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'S') goto yy175; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'r') { - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '`') goto yy3; + goto yy152; } else { - if (yych <= 's') goto yy189; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 's') goto yy188; + if (yych <= 'z') goto yy152; + goto yy3; } } } -yy189: - YYDEBUG(189, *YYCURSOR); +yy188: + YYDEBUG(188, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'C') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '`') { - if (yych <= 'D') goto yy177; - if (yych == '_') goto yy148; - goto yy4; + if (yych <= 'D') goto yy176; + if (yych == '_') goto yy147; + goto yy3; } else { - if (yych == 'd') goto yy190; - if (yych <= 'z') goto yy154; - goto yy4; + if (yych == 'd') goto yy189; + if (yych <= 'z') goto yy153; + goto yy3; } } -yy190: +yy189: + YYDEBUG(189, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy177; + if (yych != 'a') goto yy154; YYDEBUG(190, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy178; - if (yych != 'a') goto yy155; + if (yych == 'Y') goto yy172; + if (yych == 'y') goto yy185; + goto yy154; +yy191: YYDEBUG(191, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy173; - if (yych == 'y') goto yy186; - goto yy155; -yy192: - YYDEBUG(192, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'C') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'B') goto yy142; + if (yych <= '@') goto yy3; + if (yych <= 'B') goto yy141; } } else { if (yych <= 'b') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { - if (yych <= 'c') goto yy193; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'c') goto yy192; + if (yych <= 'z') goto yy141; + goto yy3; } } -yy193: - YYDEBUG(193, *YYCURSOR); +yy192: + YYDEBUG(192, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { if (yych <= '\t') { - if (yych >= '\t') goto yy196; + if (yych >= '\t') goto yy195; } else { - if (yych == ' ') goto yy196; + if (yych == ' ') goto yy195; } } else { if (yych <= ',') { - if (yych <= ')') goto yy140; + if (yych <= ')') goto yy139; } else { - if (yych <= '-') goto yy197; - if (yych <= '.') goto yy196; + if (yych <= '-') goto yy196; + if (yych <= '.') goto yy195; } } } else { if (yych <= 'Z') { if (yych <= '@') { - if (yych <= '9') goto yy196; + if (yych <= '9') goto yy195; } else { - if (yych == 'E') goto yy202; - goto yy143; + if (yych == 'E') goto yy201; + goto yy142; } } else { if (yych <= 'd') { - if (yych >= 'a') goto yy143; + if (yych >= 'a') goto yy142; } else { - if (yych <= 'e') goto yy202; - if (yych <= 'z') goto yy143; + if (yych <= 'e') goto yy201; + if (yych <= 'z') goto yy142; } } } -yy194: - YYDEBUG(194, *YYCURSOR); +yy193: + YYDEBUG(193, *YYCURSOR); { DEBUG_OUTPUT("monthtext"); TIMELIB_INIT; @@ -4134,56 +4117,56 @@ yy194: TIMELIB_DEINIT; return TIMELIB_DATE_TEXT; } -yy195: - YYDEBUG(195, *YYCURSOR); +yy194: + YYDEBUG(194, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 21) YYFILL(21); yych = *YYCURSOR; -yy196: - YYDEBUG(196, *YYCURSOR); +yy195: + YYDEBUG(195, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy195; + goto yy194; } - if (yych <= '/') goto yy57; - if (yych <= '2') goto yy198; - if (yych <= '3') goto yy200; - if (yych <= '9') goto yy201; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '2') goto yy197; + if (yych <= '3') goto yy199; + if (yych <= '9') goto yy200; + goto yy56; +yy196: + YYDEBUG(196, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy195; + if (yych <= '0') goto yy356; + if (yych <= '2') goto yy357; + if (yych <= '3') goto yy358; + goto yy195; yy197: YYDEBUG(197, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy196; - if (yych <= '0') goto yy357; - if (yych <= '2') goto yy358; - if (yych <= '3') goto yy359; - goto yy196; -yy198: - YYDEBUG(198, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'm') { if (yych <= '1') { - if (yych <= '/') goto yy216; - if (yych <= '0') goto yy298; - goto yy299; + if (yych <= '/') goto yy215; + if (yych <= '0') goto yy297; + goto yy298; } else { - if (yych <= '2') goto yy355; - if (yych <= '9') goto yy356; - goto yy216; + if (yych <= '2') goto yy354; + if (yych <= '9') goto yy355; + goto yy215; } } else { if (yych <= 'r') { - if (yych <= 'n') goto yy212; - if (yych <= 'q') goto yy216; - goto yy213; + if (yych <= 'n') goto yy211; + if (yych <= 'q') goto yy215; + goto yy212; } else { - if (yych <= 's') goto yy211; - if (yych <= 't') goto yy214; - goto yy216; + if (yych <= 's') goto yy210; + if (yych <= 't') goto yy213; + goto yy215; } } -yy199: - YYDEBUG(199, *YYCURSOR); +yy198: + YYDEBUG(198, *YYCURSOR); { int length = 0; DEBUG_OUTPUT("datetextual | datenoyear"); @@ -4196,274 +4179,274 @@ yy199: TIMELIB_DEINIT; return TIMELIB_DATE_TEXT; } -yy200: - YYDEBUG(200, *YYCURSOR); +yy199: + YYDEBUG(199, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'm') { if (yych <= '1') { - if (yych <= '/') goto yy216; - if (yych <= '0') goto yy298; - goto yy299; + if (yych <= '/') goto yy215; + if (yych <= '0') goto yy297; + goto yy298; } else { - if (yych <= '2') goto yy209; - if (yych <= '9') goto yy210; - goto yy216; + if (yych <= '2') goto yy208; + if (yych <= '9') goto yy209; + goto yy215; } } else { if (yych <= 'r') { - if (yych <= 'n') goto yy212; - if (yych <= 'q') goto yy216; - goto yy213; + if (yych <= 'n') goto yy211; + if (yych <= 'q') goto yy215; + goto yy212; } else { - if (yych <= 's') goto yy211; - if (yych <= 't') goto yy214; - goto yy216; + if (yych <= 's') goto yy210; + if (yych <= 't') goto yy213; + goto yy215; } } -yy201: - YYDEBUG(201, *YYCURSOR); +yy200: + YYDEBUG(200, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'm') { if (yych <= '1') { - if (yych <= '/') goto yy216; - if (yych <= '0') goto yy207; - goto yy208; + if (yych <= '/') goto yy215; + if (yych <= '0') goto yy206; + goto yy207; } else { - if (yych <= '2') goto yy209; - if (yych <= '9') goto yy210; - goto yy216; + if (yych <= '2') goto yy208; + if (yych <= '9') goto yy209; + goto yy215; } } else { if (yych <= 'r') { - if (yych <= 'n') goto yy212; - if (yych <= 'q') goto yy216; - goto yy213; + if (yych <= 'n') goto yy211; + if (yych <= 'q') goto yy215; + goto yy212; } else { - if (yych <= 's') goto yy211; - if (yych <= 't') goto yy214; - goto yy216; + if (yych <= 's') goto yy210; + if (yych <= 't') goto yy213; + goto yy215; } } -yy202: - YYDEBUG(202, *YYCURSOR); +yy201: + YYDEBUG(201, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'M') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'L') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'L') goto yy143; } } else { if (yych <= 'l') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { - if (yych <= 'm') goto yy203; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'm') goto yy202; + if (yych <= 'z') goto yy143; + goto yy3; } } -yy203: - YYDEBUG(203, *YYCURSOR); +yy202: + YYDEBUG(202, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'B') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'A') goto yy145; + if (yych <= '@') goto yy3; + if (yych <= 'A') goto yy144; } } else { if (yych <= 'a') { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - goto yy145; + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy3; + goto yy144; } else { - if (yych <= 'b') goto yy204; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 'b') goto yy203; + if (yych <= 'z') goto yy144; + goto yy3; } } -yy204: - YYDEBUG(204, *YYCURSOR); +yy203: + YYDEBUG(203, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych <= 'E') goto yy205; - if (yych != 'e') goto yy4; + if (yych <= 'E') goto yy204; + if (yych != 'e') goto yy3; } +yy204: + YYDEBUG(204, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy205; + if (yych != 'r') goto yy56; yy205: YYDEBUG(205, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy206; - if (yych != 'r') goto yy57; -yy206: - YYDEBUG(206, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ' ') { - if (yych == '\t') goto yy196; - if (yych <= 0x1F) goto yy194; - goto yy196; + if (yych == '\t') goto yy195; + if (yych <= 0x1F) goto yy193; + goto yy195; } else { if (yych <= '.') { - if (yych <= ',') goto yy194; - goto yy196; + if (yych <= ',') goto yy193; + goto yy195; } else { - if (yych <= '/') goto yy194; - if (yych <= '9') goto yy196; - goto yy194; + if (yych <= '/') goto yy193; + if (yych <= '9') goto yy195; + goto yy193; } } +yy206: + YYDEBUG(206, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') { + if (yych == '.') goto yy220; + goto yy56; + } else { + if (yych <= '0') goto yy295; + if (yych <= '9') goto yy296; + if (yych <= ':') goto yy220; + goto yy56; + } yy207: YYDEBUG(207, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '/') { - if (yych == '.') goto yy221; - goto yy57; + if (yych == '.') goto yy263; + goto yy56; } else { - if (yych <= '0') goto yy296; - if (yych <= '9') goto yy297; - if (yych <= ':') goto yy221; - goto yy57; + if (yych <= '2') goto yy296; + if (yych <= '9') goto yy295; + if (yych <= ':') goto yy263; + goto yy56; } yy208: YYDEBUG(208, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '/') { - if (yych == '.') goto yy264; - goto yy57; + if (yych == '.') goto yy263; + goto yy56; } else { - if (yych <= '2') goto yy297; - if (yych <= '9') goto yy296; - if (yych <= ':') goto yy264; - goto yy57; + if (yych <= '4') goto yy295; + if (yych <= '9') goto yy292; + if (yych <= ':') goto yy263; + goto yy56; } yy209: YYDEBUG(209, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '/') { - if (yych == '.') goto yy264; - goto yy57; + if (yych == '.') goto yy263; + goto yy56; } else { - if (yych <= '4') goto yy296; - if (yych <= '9') goto yy293; - if (yych <= ':') goto yy264; - goto yy57; + if (yych <= '9') goto yy292; + if (yych <= ':') goto yy263; + goto yy56; } yy210: YYDEBUG(210, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') { - if (yych == '.') goto yy264; - goto yy57; - } else { - if (yych <= '9') goto yy293; - if (yych <= ':') goto yy264; - goto yy57; - } + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + goto yy215; yy211: YYDEBUG(211, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); - goto yy216; + goto yy215; yy212: YYDEBUG(212, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); - goto yy216; + goto yy215; yy213: YYDEBUG(213, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); - goto yy216; + goto yy215; yy214: YYDEBUG(214, *YYCURSOR); yyaccept = 6; - yych = *(YYMARKER = ++YYCURSOR); - goto yy216; -yy215: - YYDEBUG(215, *YYCURSOR); - yyaccept = 6; YYMARKER = ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 18) YYFILL(18); yych = *YYCURSOR; -yy216: - YYDEBUG(216, *YYCURSOR); +yy215: + YYDEBUG(215, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy215; + goto yy214; } if (yych <= '2') { - if (yych <= '/') goto yy199; - if (yych <= '0') goto yy259; - if (yych <= '1') goto yy260; - goto yy261; + if (yych <= '/') goto yy198; + if (yych <= '0') goto yy258; + if (yych <= '1') goto yy259; + goto yy260; } else { - if (yych <= '9') goto yy262; - if (yych != 'T') goto yy199; + if (yych <= '9') goto yy261; + if (yych != 'T') goto yy198; } + YYDEBUG(216, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych <= '1') goto yy217; + if (yych <= '2') goto yy218; + if (yych <= '9') goto yy219; + goto yy56; +yy217: YYDEBUG(217, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '1') goto yy218; - if (yych <= '2') goto yy219; - if (yych <= '9') goto yy220; - goto yy57; + if (yych <= '/') { + if (yych == '.') goto yy220; + goto yy56; + } else { + if (yych <= '9') goto yy219; + if (yych <= ':') goto yy220; + goto yy56; + } yy218: YYDEBUG(218, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '/') { - if (yych == '.') goto yy221; - goto yy57; + if (yych == '.') goto yy220; + goto yy56; } else { - if (yych <= '9') goto yy220; - if (yych <= ':') goto yy221; - goto yy57; + if (yych <= '4') goto yy219; + if (yych == ':') goto yy220; + goto yy56; } yy219: YYDEBUG(219, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') { - if (yych == '.') goto yy221; - goto yy57; - } else { - if (yych <= '4') goto yy220; - if (yych == ':') goto yy221; - goto yy57; - } + if (yych == '.') goto yy220; + if (yych != ':') goto yy56; yy220: YYDEBUG(220, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '.') goto yy221; - if (yych != ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy221; + if (yych <= '9') goto yy223; + goto yy56; yy221: YYDEBUG(221, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy222; - if (yych <= '9') goto yy224; - goto yy57; -yy222: - YYDEBUG(222, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy225; + if (yych == '.') goto yy224; } else { - if (yych <= '9') goto yy224; - if (yych <= ':') goto yy225; + if (yych <= '9') goto yy223; + if (yych <= ':') goto yy224; } -yy223: - YYDEBUG(223, *YYCURSOR); +yy222: + YYDEBUG(222, *YYCURSOR); { int tz_not_found; DEBUG_OUTPUT("dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz"); @@ -4492,703 +4475,703 @@ yy223: TIMELIB_DEINIT; return TIMELIB_SHORTDATE_WITH_TIME; } -yy224: - YYDEBUG(224, *YYCURSOR); +yy223: + YYDEBUG(223, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy225; - if (yych != ':') goto yy223; + if (yych == '.') goto yy224; + if (yych != ':') goto yy222; +yy224: + YYDEBUG(224, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy225; + if (yych <= '6') goto yy226; + if (yych <= '9') goto yy227; + goto yy56; yy225: YYDEBUG(225, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy226; - if (yych <= '6') goto yy227; + if (yych <= '/') goto yy222; if (yych <= '9') goto yy228; - goto yy57; + goto yy222; yy226: YYDEBUG(226, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy223; - if (yych <= '9') goto yy229; - goto yy223; + if (yych == '0') goto yy228; + goto yy222; yy227: YYDEBUG(227, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '0') goto yy229; - goto yy223; + goto yy222; yy228: YYDEBUG(228, *YYCURSOR); - yych = *++YYCURSOR; - goto yy223; -yy229: - YYDEBUG(229, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '*') { if (yych <= 0x1F) { - if (yych == '\t') goto yy231; - goto yy223; + if (yych == '\t') goto yy230; + goto yy222; } else { - if (yych <= ' ') goto yy231; - if (yych == '(') goto yy231; - goto yy223; + if (yych <= ' ') goto yy230; + if (yych == '(') goto yy230; + goto yy222; } } else { if (yych <= '@') { - if (yych == ',') goto yy223; - if (yych <= '-') goto yy231; - goto yy223; + if (yych == ',') goto yy222; + if (yych <= '-') goto yy230; + goto yy222; } else { - if (yych <= 'Z') goto yy231; - if (yych <= '`') goto yy223; - if (yych <= 'z') goto yy231; - goto yy223; + if (yych <= 'Z') goto yy230; + if (yych <= '`') goto yy222; + if (yych <= 'z') goto yy230; + goto yy222; } } -yy230: - YYDEBUG(230, *YYCURSOR); +yy229: + YYDEBUG(229, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 9) YYFILL(9); yych = *YYCURSOR; -yy231: - YYDEBUG(231, *YYCURSOR); +yy230: + YYDEBUG(230, *YYCURSOR); if (yych <= '+') { if (yych <= ' ') { - if (yych == '\t') goto yy230; - if (yych <= 0x1F) goto yy57; - goto yy230; + if (yych == '\t') goto yy229; + if (yych <= 0x1F) goto yy56; + goto yy229; } else { - if (yych == '(') goto yy234; - if (yych <= '*') goto yy57; - goto yy233; + if (yych == '(') goto yy233; + if (yych <= '*') goto yy56; + goto yy232; } } else { if (yych <= 'F') { - if (yych == '-') goto yy233; - if (yych <= '@') goto yy57; - goto yy235; + if (yych == '-') goto yy232; + if (yych <= '@') goto yy56; + goto yy234; } else { if (yych <= 'Z') { - if (yych >= 'H') goto yy235; + if (yych >= 'H') goto yy234; } else { - if (yych <= '`') goto yy57; - if (yych <= 'z') goto yy236; - goto yy57; + if (yych <= '`') goto yy56; + if (yych <= 'z') goto yy235; + goto yy56; } } } -yy232: - YYDEBUG(232, *YYCURSOR); +yy231: + YYDEBUG(231, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'L') { - if (yych == ')') goto yy228; - if (yych <= '@') goto yy223; - goto yy237; + if (yych == ')') goto yy227; + if (yych <= '@') goto yy222; + goto yy236; } else { if (yych <= 'Z') { - if (yych <= 'M') goto yy257; - goto yy237; + if (yych <= 'M') goto yy256; + goto yy236; } else { - if (yych <= '`') goto yy223; - if (yych <= 'z') goto yy242; - goto yy223; + if (yych <= '`') goto yy222; + if (yych <= 'z') goto yy241; + goto yy222; } } +yy232: + YYDEBUG(232, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych <= '1') goto yy251; + if (yych <= '2') goto yy252; + if (yych <= '9') goto yy253; + goto yy56; yy233: YYDEBUG(233, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '1') goto yy252; - if (yych <= '2') goto yy253; - if (yych <= '9') goto yy254; - goto yy57; + if (yych <= '@') goto yy56; + if (yych <= 'Z') goto yy235; + if (yych <= '`') goto yy56; + if (yych <= 'z') goto yy235; + goto yy56; yy234: YYDEBUG(234, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '@') goto yy57; - if (yych <= 'Z') goto yy236; - if (yych <= '`') goto yy57; - if (yych <= 'z') goto yy236; - goto yy57; + if (yych <= '@') { + if (yych == ')') goto yy227; + goto yy222; + } else { + if (yych <= 'Z') goto yy236; + if (yych <= '`') goto yy222; + if (yych <= 'z') goto yy241; + goto yy222; + } yy235: YYDEBUG(235, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '@') { - if (yych == ')') goto yy228; - goto yy223; + if (yych == ')') goto yy227; + goto yy222; } else { - if (yych <= 'Z') goto yy237; - if (yych <= '`') goto yy223; - if (yych <= 'z') goto yy242; - goto yy223; + if (yych <= 'Z') goto yy236; + if (yych <= '`') goto yy222; + if (yych >= '{') goto yy222; } yy236: YYDEBUG(236, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '@') { - if (yych == ')') goto yy228; - goto yy223; + if (yych == ')') goto yy227; + goto yy222; } else { if (yych <= 'Z') goto yy237; - if (yych <= '`') goto yy223; - if (yych >= '{') goto yy223; + if (yych <= '`') goto yy222; + if (yych >= '{') goto yy222; } yy237: YYDEBUG(237, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '@') { - if (yych == ')') goto yy228; - goto yy223; + if (yych == ')') goto yy227; + goto yy222; } else { if (yych <= 'Z') goto yy238; - if (yych <= '`') goto yy223; - if (yych >= '{') goto yy223; + if (yych <= '`') goto yy222; + if (yych >= '{') goto yy222; } yy238: YYDEBUG(238, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '@') { - if (yych == ')') goto yy228; - goto yy223; + if (yych == ')') goto yy227; + goto yy222; } else { if (yych <= 'Z') goto yy239; - if (yych <= '`') goto yy223; - if (yych >= '{') goto yy223; + if (yych <= '`') goto yy222; + if (yych >= '{') goto yy222; } yy239: YYDEBUG(239, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '@') { - if (yych == ')') goto yy228; - goto yy223; + if (yych == ')') goto yy227; + goto yy222; } else { if (yych <= 'Z') goto yy240; - if (yych <= '`') goto yy223; - if (yych >= '{') goto yy223; + if (yych <= '`') goto yy222; + if (yych >= '{') goto yy222; } yy240: YYDEBUG(240, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '@') { - if (yych == ')') goto yy228; - goto yy223; - } else { - if (yych <= 'Z') goto yy241; - if (yych <= '`') goto yy223; - if (yych >= '{') goto yy223; - } + if (yych == ')') goto yy227; + goto yy222; yy241: YYDEBUG(241, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == ')') goto yy228; - goto yy223; -yy242: - YYDEBUG(242, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= ',') { - if (yych == ')') goto yy228; - goto yy223; + if (yych == ')') goto yy227; + goto yy222; } else { - if (yych == '.') goto yy223; - goto yy244; + if (yych == '.') goto yy222; + goto yy243; } } else { if (yych <= '^') { - if (yych <= '@') goto yy223; - if (yych <= 'Z') goto yy238; - goto yy223; + if (yych <= '@') goto yy222; + if (yych <= 'Z') goto yy237; + goto yy222; } else { - if (yych <= '_') goto yy244; - if (yych <= '`') goto yy223; - if (yych >= '{') goto yy223; + if (yych <= '_') goto yy243; + if (yych <= '`') goto yy222; + if (yych >= '{') goto yy222; } } -yy243: - YYDEBUG(243, *YYCURSOR); +yy242: + YYDEBUG(242, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= ',') { - if (yych == ')') goto yy228; - goto yy223; + if (yych == ')') goto yy227; + goto yy222; } else { - if (yych == '.') goto yy223; + if (yych == '.') goto yy222; } } else { if (yych <= '^') { - if (yych <= '@') goto yy223; - if (yych <= 'Z') goto yy239; - goto yy223; + if (yych <= '@') goto yy222; + if (yych <= 'Z') goto yy238; + goto yy222; } else { - if (yych <= '_') goto yy244; - if (yych <= '`') goto yy223; - if (yych <= 'z') goto yy247; - goto yy223; + if (yych <= '_') goto yy243; + if (yych <= '`') goto yy222; + if (yych <= 'z') goto yy246; + goto yy222; } } -yy244: - YYDEBUG(244, *YYCURSOR); +yy243: + YYDEBUG(243, *YYCURSOR); ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if (yych <= '@') goto yy57; - if (yych <= 'Z') goto yy245; - if (yych <= '`') goto yy57; - if (yych >= '{') goto yy57; -yy245: - YYDEBUG(245, *YYCURSOR); + if (yych <= '@') goto yy56; + if (yych <= 'Z') goto yy244; + if (yych <= '`') goto yy56; + if (yych >= '{') goto yy56; +yy244: + YYDEBUG(244, *YYCURSOR); yyaccept = 7; YYMARKER = ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - YYDEBUG(246, *YYCURSOR); + YYDEBUG(245, *YYCURSOR); if (yych <= '@') { if (yych <= '-') { - if (yych <= ',') goto yy223; - goto yy244; + if (yych <= ',') goto yy222; + goto yy243; } else { - if (yych == '/') goto yy244; - goto yy223; + if (yych == '/') goto yy243; + goto yy222; } } else { if (yych <= '_') { - if (yych <= 'Z') goto yy245; - if (yych <= '^') goto yy223; - goto yy244; + if (yych <= 'Z') goto yy244; + if (yych <= '^') goto yy222; + goto yy243; } else { - if (yych <= '`') goto yy223; - if (yych <= 'z') goto yy245; - goto yy223; + if (yych <= '`') goto yy222; + if (yych <= 'z') goto yy244; + goto yy222; } } -yy247: - YYDEBUG(247, *YYCURSOR); +yy246: + YYDEBUG(246, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= ',') { - if (yych == ')') goto yy228; - goto yy223; + if (yych == ')') goto yy227; + goto yy222; } else { - if (yych == '.') goto yy223; - goto yy244; + if (yych == '.') goto yy222; + goto yy243; } } else { if (yych <= '^') { - if (yych <= '@') goto yy223; - if (yych <= 'Z') goto yy240; - goto yy223; + if (yych <= '@') goto yy222; + if (yych <= 'Z') goto yy239; + goto yy222; } else { - if (yych <= '_') goto yy244; - if (yych <= '`') goto yy223; - if (yych >= '{') goto yy223; + if (yych <= '_') goto yy243; + if (yych <= '`') goto yy222; + if (yych >= '{') goto yy222; } } - YYDEBUG(248, *YYCURSOR); + YYDEBUG(247, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= ',') { - if (yych == ')') goto yy228; - goto yy223; + if (yych == ')') goto yy227; + goto yy222; } else { - if (yych == '.') goto yy223; - goto yy244; + if (yych == '.') goto yy222; + goto yy243; } } else { if (yych <= '^') { - if (yych <= '@') goto yy223; - if (yych <= 'Z') goto yy241; - goto yy223; + if (yych <= '@') goto yy222; + if (yych <= 'Z') goto yy240; + goto yy222; } else { - if (yych <= '_') goto yy244; - if (yych <= '`') goto yy223; - if (yych >= '{') goto yy223; + if (yych <= '_') goto yy243; + if (yych <= '`') goto yy222; + if (yych >= '{') goto yy222; } } - YYDEBUG(249, *YYCURSOR); + YYDEBUG(248, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= ')') { - if (yych <= '(') goto yy223; - goto yy228; + if (yych <= '(') goto yy222; + goto yy227; } else { - if (yych == '-') goto yy244; - goto yy223; + if (yych == '-') goto yy243; + goto yy222; } } else { if (yych <= '_') { - if (yych <= '/') goto yy244; - if (yych <= '^') goto yy223; - goto yy244; + if (yych <= '/') goto yy243; + if (yych <= '^') goto yy222; + goto yy243; } else { - if (yych <= '`') goto yy223; - if (yych >= '{') goto yy223; + if (yych <= '`') goto yy222; + if (yych >= '{') goto yy222; } } -yy250: - YYDEBUG(250, *YYCURSOR); +yy249: + YYDEBUG(249, *YYCURSOR); ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - YYDEBUG(251, *YYCURSOR); + YYDEBUG(250, *YYCURSOR); if (yych <= '/') { - if (yych == '-') goto yy244; - if (yych <= '.') goto yy57; - goto yy244; + if (yych == '-') goto yy243; + if (yych <= '.') goto yy56; + goto yy243; } else { if (yych <= '_') { - if (yych <= '^') goto yy57; - goto yy244; + if (yych <= '^') goto yy56; + goto yy243; } else { - if (yych <= '`') goto yy57; - if (yych <= 'z') goto yy250; - goto yy57; + if (yych <= '`') goto yy56; + if (yych <= 'z') goto yy249; + goto yy56; } } +yy251: + YYDEBUG(251, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy222; + if (yych <= '9') goto yy253; + if (yych <= ':') goto yy254; + goto yy222; yy252: YYDEBUG(252, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy223; - if (yych <= '9') goto yy254; - if (yych <= ':') goto yy255; - goto yy223; -yy253: - YYDEBUG(253, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= '5') { - if (yych <= '/') goto yy223; - if (yych >= '5') goto yy256; + if (yych <= '/') goto yy222; + if (yych >= '5') goto yy255; } else { - if (yych <= '9') goto yy228; - if (yych <= ':') goto yy255; - goto yy223; + if (yych <= '9') goto yy227; + if (yych <= ':') goto yy254; + goto yy222; } +yy253: + YYDEBUG(253, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy222; + if (yych <= '5') goto yy255; + if (yych <= '9') goto yy227; + if (yych >= ';') goto yy222; yy254: YYDEBUG(254, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy223; - if (yych <= '5') goto yy256; - if (yych <= '9') goto yy228; - if (yych >= ';') goto yy223; + if (yych <= '/') goto yy222; + if (yych <= '5') goto yy255; + if (yych <= '9') goto yy227; + goto yy222; yy255: YYDEBUG(255, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy223; - if (yych <= '5') goto yy256; - if (yych <= '9') goto yy228; - goto yy223; + if (yych <= '/') goto yy222; + if (yych <= '9') goto yy227; + goto yy222; yy256: YYDEBUG(256, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy223; - if (yych <= '9') goto yy228; - goto yy223; -yy257: - YYDEBUG(257, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'S') { - if (yych == ')') goto yy228; - if (yych <= '@') goto yy223; - goto yy238; + if (yych == ')') goto yy227; + if (yych <= '@') goto yy222; + goto yy237; } else { if (yych <= 'Z') { - if (yych >= 'U') goto yy238; + if (yych >= 'U') goto yy237; } else { - if (yych <= '`') goto yy223; - if (yych <= 'z') goto yy238; - goto yy223; + if (yych <= '`') goto yy222; + if (yych <= 'z') goto yy237; + goto yy222; } } - YYDEBUG(258, *YYCURSOR); + YYDEBUG(257, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= ')') { - if (yych <= '(') goto yy223; - goto yy228; + if (yych <= '(') goto yy222; + goto yy227; } else { - if (yych == '+') goto yy233; - goto yy223; + if (yych == '+') goto yy232; + goto yy222; } } else { if (yych <= 'Z') { - if (yych <= '-') goto yy233; - if (yych <= '@') goto yy223; - goto yy239; + if (yych <= '-') goto yy232; + if (yych <= '@') goto yy222; + goto yy238; } else { - if (yych <= '`') goto yy223; - if (yych <= 'z') goto yy239; - goto yy223; + if (yych <= '`') goto yy222; + if (yych <= 'z') goto yy238; + goto yy222; } } +yy258: + YYDEBUG(258, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy220; + goto yy198; + } else { + if (yych <= '0') goto yy290; + if (yych <= '9') goto yy291; + if (yych <= ':') goto yy220; + goto yy198; + } yy259: YYDEBUG(259, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy221; - goto yy199; + if (yych == '.') goto yy263; + goto yy198; } else { - if (yych <= '0') goto yy291; - if (yych <= '9') goto yy292; - if (yych <= ':') goto yy221; - goto yy199; + if (yych <= '2') goto yy291; + if (yych <= '9') goto yy290; + if (yych <= ':') goto yy263; + goto yy198; } yy260: YYDEBUG(260, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy264; - goto yy199; + if (yych == '.') goto yy263; + goto yy198; } else { - if (yych <= '2') goto yy292; - if (yych <= '9') goto yy291; - if (yych <= ':') goto yy264; - goto yy199; + if (yych <= '4') goto yy290; + if (yych <= '9') goto yy262; + if (yych <= ':') goto yy263; + goto yy198; } yy261: YYDEBUG(261, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy264; - goto yy199; + if (yych == '.') goto yy263; + goto yy198; } else { - if (yych <= '4') goto yy291; - if (yych <= '9') goto yy263; - if (yych <= ':') goto yy264; - goto yy199; + if (yych <= '9') goto yy262; + if (yych <= ':') goto yy263; + goto yy198; } yy262: YYDEBUG(262, *YYCURSOR); - yyaccept = 6; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '.') goto yy264; - goto yy199; - } else { - if (yych <= '9') goto yy263; - if (yych <= ':') goto yy264; - goto yy199; - } + yych = *++YYCURSOR; + if (yych <= '/') goto yy198; + if (yych <= '9') goto yy288; + goto yy198; yy263: YYDEBUG(263, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy199; - if (yych <= '9') goto yy289; - goto yy199; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy264; + if (yych <= '9') goto yy265; + goto yy56; yy264: YYDEBUG(264, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy265; - if (yych <= '9') goto yy266; - goto yy57; -yy265: - YYDEBUG(265, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy267; - goto yy223; + if (yych == '.') goto yy266; + goto yy222; } else { - if (yych <= '9') goto yy282; - if (yych <= ':') goto yy267; - goto yy223; + if (yych <= '9') goto yy281; + if (yych <= ':') goto yy266; + goto yy222; } -yy266: - YYDEBUG(266, *YYCURSOR); +yy265: + YYDEBUG(265, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy267; - if (yych != ':') goto yy223; + if (yych == '.') goto yy266; + if (yych != ':') goto yy222; +yy266: + YYDEBUG(266, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy267; + if (yych <= '6') goto yy268; + if (yych <= '9') goto yy227; + goto yy56; yy267: YYDEBUG(267, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy268; - if (yych <= '6') goto yy269; - if (yych <= '9') goto yy228; - goto yy57; + if (yych <= '/') goto yy222; + if (yych <= '9') goto yy269; + goto yy222; yy268: YYDEBUG(268, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy223; - if (yych <= '9') goto yy270; - goto yy223; + if (yych != '0') goto yy222; yy269: YYDEBUG(269, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '0') goto yy223; -yy270: - YYDEBUG(270, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '*') { if (yych <= 0x1F) { - if (yych == '\t') goto yy272; - goto yy223; + if (yych == '\t') goto yy271; + goto yy222; } else { - if (yych <= ' ') goto yy272; - if (yych == '(') goto yy272; - goto yy223; + if (yych <= ' ') goto yy271; + if (yych == '(') goto yy271; + goto yy222; } } else { if (yych <= '@') { - if (yych == ',') goto yy223; - if (yych <= '-') goto yy272; - goto yy223; + if (yych == ',') goto yy222; + if (yych <= '-') goto yy271; + goto yy222; } else { - if (yych <= 'Z') goto yy272; - if (yych <= '`') goto yy223; - if (yych <= 'z') goto yy272; - goto yy223; + if (yych <= 'Z') goto yy271; + if (yych <= '`') goto yy222; + if (yych <= 'z') goto yy271; + goto yy222; } } -yy271: - YYDEBUG(271, *YYCURSOR); +yy270: + YYDEBUG(270, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 9) YYFILL(9); yych = *YYCURSOR; -yy272: - YYDEBUG(272, *YYCURSOR); +yy271: + YYDEBUG(271, *YYCURSOR); if (yych <= '@') { if (yych <= '\'') { if (yych <= '\t') { - if (yych <= 0x08) goto yy57; - goto yy271; + if (yych <= 0x08) goto yy56; + goto yy270; } else { - if (yych == ' ') goto yy271; - goto yy57; + if (yych == ' ') goto yy270; + goto yy56; } } else { if (yych <= '+') { - if (yych <= '(') goto yy234; - if (yych <= '*') goto yy57; - goto yy233; + if (yych <= '(') goto yy233; + if (yych <= '*') goto yy56; + goto yy232; } else { - if (yych == '-') goto yy233; - goto yy57; + if (yych == '-') goto yy232; + goto yy56; } } } else { if (yych <= 'Z') { if (yych <= 'G') { - if (yych <= 'A') goto yy273; - if (yych <= 'F') goto yy235; - goto yy232; + if (yych <= 'A') goto yy272; + if (yych <= 'F') goto yy234; + goto yy231; } else { - if (yych != 'P') goto yy235; + if (yych != 'P') goto yy234; } } else { if (yych <= 'o') { - if (yych <= '`') goto yy57; - if (yych <= 'a') goto yy274; - goto yy236; + if (yych <= '`') goto yy56; + if (yych <= 'a') goto yy273; + goto yy235; } else { - if (yych <= 'p') goto yy274; - if (yych <= 'z') goto yy236; - goto yy57; + if (yych <= 'p') goto yy273; + if (yych <= 'z') goto yy235; + goto yy56; } } } -yy273: - YYDEBUG(273, *YYCURSOR); +yy272: + YYDEBUG(272, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'L') { if (yych <= '-') { - if (yych == ')') goto yy228; - goto yy223; + if (yych == ')') goto yy227; + goto yy222; } else { - if (yych <= '.') goto yy275; - if (yych <= '@') goto yy223; - goto yy237; + if (yych <= '.') goto yy274; + if (yych <= '@') goto yy222; + goto yy236; } } else { if (yych <= '`') { - if (yych <= 'M') goto yy276; - if (yych <= 'Z') goto yy237; - goto yy223; + if (yych <= 'M') goto yy275; + if (yych <= 'Z') goto yy236; + goto yy222; } else { - if (yych == 'm') goto yy281; - if (yych <= 'z') goto yy242; - goto yy223; + if (yych == 'm') goto yy280; + if (yych <= 'z') goto yy241; + goto yy222; } } -yy274: - YYDEBUG(274, *YYCURSOR); +yy273: + YYDEBUG(273, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'L') { if (yych <= '-') { - if (yych == ')') goto yy228; - goto yy223; + if (yych == ')') goto yy227; + goto yy222; } else { - if (yych <= '.') goto yy275; - if (yych <= '@') goto yy223; - goto yy237; + if (yych <= '.') goto yy274; + if (yych <= '@') goto yy222; + goto yy236; } } else { if (yych <= '`') { - if (yych <= 'M') goto yy276; - if (yych <= 'Z') goto yy237; - goto yy223; + if (yych <= 'M') goto yy275; + if (yych <= 'Z') goto yy236; + goto yy222; } else { - if (yych == 'm') goto yy276; - if (yych <= 'z') goto yy237; - goto yy223; + if (yych == 'm') goto yy275; + if (yych <= 'z') goto yy236; + goto yy222; } } +yy274: + YYDEBUG(274, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy279; + if (yych == 'm') goto yy279; + goto yy56; yy275: YYDEBUG(275, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy280; - if (yych == 'm') goto yy280; - goto yy57; -yy276: - YYDEBUG(276, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ')') { if (yych <= '\t') { - if (yych <= 0x00) goto yy278; - if (yych <= 0x08) goto yy223; - goto yy278; + if (yych <= 0x00) goto yy277; + if (yych <= 0x08) goto yy222; + goto yy277; } else { - if (yych == ' ') goto yy278; - if (yych <= '(') goto yy223; - goto yy228; + if (yych == ' ') goto yy277; + if (yych <= '(') goto yy222; + goto yy227; } } else { if (yych <= '@') { - if (yych != '.') goto yy223; + if (yych != '.') goto yy222; } else { - if (yych <= 'Z') goto yy238; - if (yych <= '`') goto yy223; - if (yych <= 'z') goto yy238; - goto yy223; + if (yych <= 'Z') goto yy237; + if (yych <= '`') goto yy222; + if (yych <= 'z') goto yy237; + goto yy222; } } -yy277: - YYDEBUG(277, *YYCURSOR); +yy276: + YYDEBUG(276, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '\t') { - if (yych <= 0x00) goto yy278; - if (yych <= 0x08) goto yy57; + if (yych <= 0x00) goto yy277; + if (yych <= 0x08) goto yy56; } else { - if (yych != ' ') goto yy57; + if (yych != ' ') goto yy56; } -yy278: - YYDEBUG(278, *YYCURSOR); +yy277: + YYDEBUG(277, *YYCURSOR); ++YYCURSOR; - YYDEBUG(279, *YYCURSOR); + YYDEBUG(278, *YYCURSOR); { DEBUG_OUTPUT("dateshortwithtimeshort12 | dateshortwithtimelong12"); TIMELIB_INIT; @@ -5211,183 +5194,183 @@ yy278: TIMELIB_DEINIT; return TIMELIB_SHORTDATE_WITH_TIME; } -yy280: - YYDEBUG(280, *YYCURSOR); +yy279: + YYDEBUG(279, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 0x1F) { - if (yych <= 0x00) goto yy278; - if (yych == '\t') goto yy278; - goto yy57; + if (yych <= 0x00) goto yy277; + if (yych == '\t') goto yy277; + goto yy56; } else { - if (yych <= ' ') goto yy278; - if (yych == '.') goto yy277; - goto yy57; + if (yych <= ' ') goto yy277; + if (yych == '.') goto yy276; + goto yy56; } -yy281: - YYDEBUG(281, *YYCURSOR); +yy280: + YYDEBUG(280, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '-') { if (yych <= 0x1F) { - if (yych <= 0x00) goto yy278; - if (yych == '\t') goto yy278; - goto yy223; + if (yych <= 0x00) goto yy277; + if (yych == '\t') goto yy277; + goto yy222; } else { if (yych <= '(') { - if (yych <= ' ') goto yy278; - goto yy223; + if (yych <= ' ') goto yy277; + goto yy222; } else { - if (yych <= ')') goto yy228; - if (yych <= ',') goto yy223; - goto yy244; + if (yych <= ')') goto yy227; + if (yych <= ',') goto yy222; + goto yy243; } } } else { if (yych <= 'Z') { - if (yych <= '.') goto yy277; - if (yych <= '/') goto yy244; - if (yych <= '@') goto yy223; - goto yy238; + if (yych <= '.') goto yy276; + if (yych <= '/') goto yy243; + if (yych <= '@') goto yy222; + goto yy237; } else { if (yych <= '_') { - if (yych <= '^') goto yy223; - goto yy244; + if (yych <= '^') goto yy222; + goto yy243; } else { - if (yych <= '`') goto yy223; - if (yych <= 'z') goto yy243; - goto yy223; + if (yych <= '`') goto yy222; + if (yych <= 'z') goto yy242; + goto yy222; } } } -yy282: - YYDEBUG(282, *YYCURSOR); +yy281: + YYDEBUG(281, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ':') { if (yych <= ' ') { - if (yych == '\t') goto yy283; - if (yych <= 0x1F) goto yy223; + if (yych == '\t') goto yy282; + if (yych <= 0x1F) goto yy222; } else { - if (yych == '.') goto yy267; - if (yych <= '9') goto yy223; - goto yy267; + if (yych == '.') goto yy266; + if (yych <= '9') goto yy222; + goto yy266; } } else { if (yych <= 'P') { - if (yych == 'A') goto yy285; - if (yych <= 'O') goto yy223; - goto yy285; + if (yych == 'A') goto yy284; + if (yych <= 'O') goto yy222; + goto yy284; } else { if (yych <= 'a') { - if (yych <= '`') goto yy223; - goto yy285; + if (yych <= '`') goto yy222; + goto yy284; } else { - if (yych == 'p') goto yy285; - goto yy223; + if (yych == 'p') goto yy284; + goto yy222; } } } -yy283: - YYDEBUG(283, *YYCURSOR); +yy282: + YYDEBUG(282, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); yych = *YYCURSOR; - YYDEBUG(284, *YYCURSOR); + YYDEBUG(283, *YYCURSOR); if (yych <= 'A') { if (yych <= 0x1F) { - if (yych == '\t') goto yy283; - goto yy57; + if (yych == '\t') goto yy282; + goto yy56; } else { - if (yych <= ' ') goto yy283; - if (yych <= '@') goto yy57; + if (yych <= ' ') goto yy282; + if (yych <= '@') goto yy56; } } else { if (yych <= '`') { - if (yych != 'P') goto yy57; + if (yych != 'P') goto yy56; } else { - if (yych <= 'a') goto yy285; - if (yych != 'p') goto yy57; + if (yych <= 'a') goto yy284; + if (yych != 'p') goto yy56; } } -yy285: - YYDEBUG(285, *YYCURSOR); +yy284: + YYDEBUG(284, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'L') { - if (yych != '.') goto yy57; + if (yych != '.') goto yy56; } else { - if (yych <= 'M') goto yy287; - if (yych == 'm') goto yy287; - goto yy57; + if (yych <= 'M') goto yy286; + if (yych == 'm') goto yy286; + goto yy56; } +yy285: + YYDEBUG(285, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy286; + if (yych != 'm') goto yy56; yy286: YYDEBUG(286, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy287; - if (yych != 'm') goto yy57; + if (yych <= 0x1F) { + if (yych <= 0x00) goto yy277; + if (yych == '\t') goto yy277; + goto yy56; + } else { + if (yych <= ' ') goto yy277; + if (yych != '.') goto yy56; + } yy287: YYDEBUG(287, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 0x1F) { - if (yych <= 0x00) goto yy278; - if (yych == '\t') goto yy278; - goto yy57; + if (yych <= '\t') { + if (yych <= 0x00) goto yy277; + if (yych <= 0x08) goto yy56; + goto yy277; } else { - if (yych <= ' ') goto yy278; - if (yych != '.') goto yy57; + if (yych == ' ') goto yy277; + goto yy56; } yy288: YYDEBUG(288, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '\t') { - if (yych <= 0x00) goto yy278; - if (yych <= 0x08) goto yy57; - goto yy278; - } else { - if (yych == ' ') goto yy278; - goto yy57; - } -yy289: + if (yych <= '/') goto yy198; + if (yych >= ':') goto yy198; YYDEBUG(289, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy199; - if (yych >= ':') goto yy199; + goto yy198; +yy290: YYDEBUG(290, *YYCURSOR); - yych = *++YYCURSOR; - goto yy199; -yy291: - YYDEBUG(291, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy221; - goto yy199; + if (yych == '.') goto yy220; + goto yy198; } else { - if (yych <= '9') goto yy289; - if (yych <= ':') goto yy221; - goto yy199; + if (yych <= '9') goto yy288; + if (yych <= ':') goto yy220; + goto yy198; } -yy292: - YYDEBUG(292, *YYCURSOR); +yy291: + YYDEBUG(291, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy264; - goto yy199; + if (yych == '.') goto yy263; + goto yy198; } else { - if (yych <= '9') goto yy289; - if (yych <= ':') goto yy264; - goto yy199; + if (yych <= '9') goto yy288; + if (yych <= ':') goto yy263; + goto yy198; } +yy292: + YYDEBUG(292, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; yy293: YYDEBUG(293, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; + ++YYCURSOR; yy294: YYDEBUG(294, *YYCURSOR); - ++YYCURSOR; -yy295: - YYDEBUG(295, *YYCURSOR); { int length = 0; DEBUG_OUTPUT("datenoday"); @@ -5400,1225 +5383,1225 @@ yy295: TIMELIB_DEINIT; return TIMELIB_DATE_NO_DAY; } -yy296: - YYDEBUG(296, *YYCURSOR); +yy295: + YYDEBUG(295, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '/') { - if (yych == '.') goto yy221; - goto yy57; + if (yych == '.') goto yy220; + goto yy56; } else { - if (yych <= '9') goto yy294; - if (yych <= ':') goto yy221; - goto yy57; + if (yych <= '9') goto yy293; + if (yych <= ':') goto yy220; + goto yy56; } -yy297: - YYDEBUG(297, *YYCURSOR); +yy296: + YYDEBUG(296, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '/') { - if (yych == '.') goto yy264; - goto yy57; + if (yych == '.') goto yy263; + goto yy56; } else { - if (yych <= '9') goto yy294; - if (yych <= ':') goto yy264; - goto yy57; + if (yych <= '9') goto yy293; + if (yych <= ':') goto yy263; + goto yy56; } -yy298: - YYDEBUG(298, *YYCURSOR); +yy297: + YYDEBUG(297, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '/') { - if (yych == '.') goto yy331; - goto yy216; + if (yych == '.') goto yy330; + goto yy215; } else { - if (yych <= '0') goto yy332; - if (yych <= '1') goto yy302; - if (yych <= '2') goto yy303; - goto yy297; + if (yych <= '0') goto yy331; + if (yych <= '1') goto yy301; + if (yych <= '2') goto yy302; + goto yy296; } } else { if (yych <= 'q') { - if (yych <= ':') goto yy221; - if (yych == 'n') goto yy212; - goto yy216; + if (yych <= ':') goto yy220; + if (yych == 'n') goto yy211; + goto yy215; } else { - if (yych <= 'r') goto yy213; - if (yych <= 's') goto yy211; - if (yych <= 't') goto yy214; - goto yy216; + if (yych <= 'r') goto yy212; + if (yych <= 's') goto yy210; + if (yych <= 't') goto yy213; + goto yy215; } } -yy299: - YYDEBUG(299, *YYCURSOR); +yy298: + YYDEBUG(298, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '/') { - if (yych != '.') goto yy216; + if (yych != '.') goto yy215; } else { - if (yych <= '0') goto yy301; - if (yych <= '1') goto yy302; - if (yych <= '2') goto yy303; - goto yy297; + if (yych <= '0') goto yy300; + if (yych <= '1') goto yy301; + if (yych <= '2') goto yy302; + goto yy296; } } else { if (yych <= 'q') { - if (yych <= ':') goto yy264; - if (yych == 'n') goto yy212; - goto yy216; + if (yych <= ':') goto yy263; + if (yych == 'n') goto yy211; + goto yy215; } else { - if (yych <= 'r') goto yy213; - if (yych <= 's') goto yy211; - if (yych <= 't') goto yy214; - goto yy216; + if (yych <= 'r') goto yy212; + if (yych <= 's') goto yy210; + if (yych <= 't') goto yy213; + goto yy215; } } -yy300: - YYDEBUG(300, *YYCURSOR); +yy299: + YYDEBUG(299, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '1') { - if (yych <= '/') goto yy216; - if (yych <= '0') goto yy306; - goto yy307; + if (yych <= '/') goto yy215; + if (yych <= '0') goto yy305; + goto yy306; } else { - if (yych <= '2') goto yy308; - if (yych <= '5') goto yy309; - if (yych <= '9') goto yy310; - goto yy216; + if (yych <= '2') goto yy307; + if (yych <= '5') goto yy308; + if (yych <= '9') goto yy309; + goto yy215; + } +yy300: + YYDEBUG(300, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') { + if (yych == '.') goto yy263; + goto yy56; + } else { + if (yych <= '0') goto yy303; + if (yych <= '9') goto yy304; + if (yych <= ':') goto yy263; + goto yy56; } yy301: YYDEBUG(301, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '/') { - if (yych == '.') goto yy264; - goto yy57; + if (yych == '.') goto yy263; + goto yy56; } else { - if (yych <= '0') goto yy304; - if (yych <= '9') goto yy305; - if (yych <= ':') goto yy264; - goto yy57; + if (yych <= '2') goto yy304; + if (yych <= '9') goto yy303; + if (yych <= ':') goto yy263; + goto yy56; } yy302: YYDEBUG(302, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '/') { - if (yych == '.') goto yy264; - goto yy57; + if (yych == '.') goto yy263; + goto yy56; } else { - if (yych <= '2') goto yy305; - if (yych <= '9') goto yy304; - if (yych <= ':') goto yy264; - goto yy57; + if (yych <= '4') goto yy303; + if (yych <= '9') goto yy293; + if (yych <= ':') goto yy263; + goto yy56; } yy303: YYDEBUG(303, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') { - if (yych == '.') goto yy264; - goto yy57; - } else { - if (yych <= '4') goto yy304; - if (yych <= '9') goto yy294; - if (yych <= ':') goto yy264; - goto yy57; - } + yyaccept = 8; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy220; + if (yych == ':') goto yy220; + goto yy294; yy304: YYDEBUG(304, *YYCURSOR); yyaccept = 8; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy221; - if (yych == ':') goto yy221; - goto yy295; + if (yych == '.') goto yy263; + if (yych == ':') goto yy263; + goto yy294; yy305: YYDEBUG(305, *YYCURSOR); - yyaccept = 8; + yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy264; - if (yych == ':') goto yy264; - goto yy295; + if (yych <= '/') { + if (yych == '.') goto yy325; + goto yy198; + } else { + if (yych <= '0') goto yy324; + if (yych <= '9') goto yy329; + if (yych <= ':') goto yy325; + goto yy198; + } yy306: YYDEBUG(306, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy326; - goto yy199; + if (yych == '.') goto yy310; + goto yy198; } else { - if (yych <= '0') goto yy325; - if (yych <= '9') goto yy330; - if (yych <= ':') goto yy326; - goto yy199; + if (yych <= '2') goto yy329; + if (yych <= '9') goto yy324; + if (yych <= ':') goto yy310; + goto yy198; } yy307: YYDEBUG(307, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy311; - goto yy199; + if (yych == '.') goto yy310; + goto yy198; } else { - if (yych <= '2') goto yy330; - if (yych <= '9') goto yy325; - if (yych <= ':') goto yy311; - goto yy199; + if (yych <= '4') goto yy324; + if (yych <= '9') goto yy323; + if (yych <= ':') goto yy310; + goto yy198; } yy308: YYDEBUG(308, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy311; - goto yy199; + if (yych == '.') goto yy310; + goto yy198; } else { - if (yych <= '4') goto yy325; - if (yych <= '9') goto yy324; - if (yych <= ':') goto yy311; - goto yy199; + if (yych <= '9') goto yy323; + if (yych <= ':') goto yy310; + goto yy198; } yy309: YYDEBUG(309, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy311; - goto yy199; + if (yych != '.') goto yy198; } else { - if (yych <= '9') goto yy324; - if (yych <= ':') goto yy311; - goto yy199; + if (yych <= '9') goto yy262; + if (yych >= ';') goto yy198; } yy310: YYDEBUG(310, *YYCURSOR); - yyaccept = 6; + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy311; + if (yych <= '6') goto yy312; + if (yych <= '9') goto yy265; + goto yy56; +yy311: + YYDEBUG(311, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych != '.') goto yy199; + if (yych == '.') goto yy266; + goto yy222; } else { - if (yych <= '9') goto yy263; - if (yych >= ';') goto yy199; + if (yych <= '9') goto yy313; + if (yych <= ':') goto yy266; + goto yy222; } -yy311: - YYDEBUG(311, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy312; - if (yych <= '6') goto yy313; - if (yych <= '9') goto yy266; - goto yy57; yy312: YYDEBUG(312, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy267; - goto yy223; + if (yych == '.') goto yy266; + goto yy222; } else { - if (yych <= '9') goto yy314; - if (yych <= ':') goto yy267; - goto yy223; + if (yych <= '0') goto yy269; + if (yych == ':') goto yy266; + goto yy222; } yy313: YYDEBUG(313, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '.') goto yy267; - goto yy223; - } else { - if (yych <= '0') goto yy270; - if (yych == ':') goto yy267; - goto yy223; - } -yy314: - YYDEBUG(314, *YYCURSOR); - yyaccept = 7; - yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= ' ') { - if (yych == '\t') goto yy316; - if (yych <= 0x1F) goto yy223; - goto yy316; + if (yych == '\t') goto yy315; + if (yych <= 0x1F) goto yy222; + goto yy315; } else { if (yych <= '(') { - if (yych <= '\'') goto yy223; - goto yy316; + if (yych <= '\'') goto yy222; + goto yy315; } else { - if (yych == '+') goto yy316; - goto yy223; + if (yych == '+') goto yy315; + goto yy222; } } } else { if (yych <= ':') { - if (yych <= '-') goto yy316; - if (yych <= '.') goto yy267; - if (yych <= '9') goto yy223; - goto yy267; + if (yych <= '-') goto yy315; + if (yych <= '.') goto yy266; + if (yych <= '9') goto yy222; + goto yy266; } else { if (yych <= 'Z') { - if (yych <= '@') goto yy223; - goto yy316; + if (yych <= '@') goto yy222; + goto yy315; } else { - if (yych <= '`') goto yy223; - if (yych <= 'z') goto yy316; - goto yy223; + if (yych <= '`') goto yy222; + if (yych <= 'z') goto yy315; + goto yy222; } } } -yy315: - YYDEBUG(315, *YYCURSOR); +yy314: + YYDEBUG(314, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 9) YYFILL(9); yych = *YYCURSOR; -yy316: - YYDEBUG(316, *YYCURSOR); +yy315: + YYDEBUG(315, *YYCURSOR); if (yych <= '@') { if (yych <= '\'') { if (yych <= '\t') { - if (yych <= 0x08) goto yy57; - goto yy315; + if (yych <= 0x08) goto yy56; + goto yy314; } else { - if (yych == ' ') goto yy315; - goto yy57; + if (yych == ' ') goto yy314; + goto yy56; } } else { if (yych <= '+') { - if (yych <= '(') goto yy234; - if (yych <= '*') goto yy57; - goto yy233; + if (yych <= '(') goto yy233; + if (yych <= '*') goto yy56; + goto yy232; } else { - if (yych == '-') goto yy233; - goto yy57; + if (yych == '-') goto yy232; + goto yy56; } } } else { if (yych <= 'Z') { if (yych <= 'G') { - if (yych <= 'A') goto yy317; - if (yych <= 'F') goto yy235; - goto yy232; + if (yych <= 'A') goto yy316; + if (yych <= 'F') goto yy234; + goto yy231; } else { - if (yych != 'P') goto yy235; + if (yych != 'P') goto yy234; } } else { if (yych <= 'o') { - if (yych <= '`') goto yy57; - if (yych <= 'a') goto yy318; - goto yy236; + if (yych <= '`') goto yy56; + if (yych <= 'a') goto yy317; + goto yy235; } else { - if (yych <= 'p') goto yy318; - if (yych <= 'z') goto yy236; - goto yy57; + if (yych <= 'p') goto yy317; + if (yych <= 'z') goto yy235; + goto yy56; } } } -yy317: - YYDEBUG(317, *YYCURSOR); +yy316: + YYDEBUG(316, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'L') { if (yych <= '-') { - if (yych == ')') goto yy228; - goto yy223; + if (yych == ')') goto yy227; + goto yy222; } else { - if (yych <= '.') goto yy320; - if (yych <= '@') goto yy223; - goto yy237; + if (yych <= '.') goto yy319; + if (yych <= '@') goto yy222; + goto yy236; } } else { if (yych <= '`') { - if (yych <= 'M') goto yy319; - if (yych <= 'Z') goto yy237; - goto yy223; + if (yych <= 'M') goto yy318; + if (yych <= 'Z') goto yy236; + goto yy222; } else { - if (yych == 'm') goto yy323; - if (yych <= 'z') goto yy242; - goto yy223; + if (yych == 'm') goto yy322; + if (yych <= 'z') goto yy241; + goto yy222; } } -yy318: - YYDEBUG(318, *YYCURSOR); +yy317: + YYDEBUG(317, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'L') { if (yych <= '-') { - if (yych == ')') goto yy228; - goto yy223; + if (yych == ')') goto yy227; + goto yy222; } else { - if (yych <= '.') goto yy320; - if (yych <= '@') goto yy223; - goto yy237; + if (yych <= '.') goto yy319; + if (yych <= '@') goto yy222; + goto yy236; } } else { if (yych <= '`') { - if (yych <= 'M') goto yy319; - if (yych <= 'Z') goto yy237; - goto yy223; + if (yych <= 'M') goto yy318; + if (yych <= 'Z') goto yy236; + goto yy222; } else { - if (yych == 'm') goto yy319; - if (yych <= 'z') goto yy237; - goto yy223; + if (yych == 'm') goto yy318; + if (yych <= 'z') goto yy236; + goto yy222; } } -yy319: - YYDEBUG(319, *YYCURSOR); +yy318: + YYDEBUG(318, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ')') { if (yych <= '\t') { - if (yych <= 0x00) goto yy278; - if (yych <= 0x08) goto yy223; - goto yy278; + if (yych <= 0x00) goto yy277; + if (yych <= 0x08) goto yy222; + goto yy277; } else { - if (yych == ' ') goto yy278; - if (yych <= '(') goto yy223; - goto yy228; + if (yych == ' ') goto yy277; + if (yych <= '(') goto yy222; + goto yy227; } } else { if (yych <= '@') { - if (yych == '.') goto yy322; - goto yy223; + if (yych == '.') goto yy321; + goto yy222; } else { - if (yych <= 'Z') goto yy238; - if (yych <= '`') goto yy223; - if (yych <= 'z') goto yy238; - goto yy223; + if (yych <= 'Z') goto yy237; + if (yych <= '`') goto yy222; + if (yych <= 'z') goto yy237; + goto yy222; } } +yy319: + YYDEBUG(319, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy320; + if (yych != 'm') goto yy56; yy320: YYDEBUG(320, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy321; - if (yych != 'm') goto yy57; -yy321: - YYDEBUG(321, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 0x1F) { - if (yych <= 0x00) goto yy278; - if (yych == '\t') goto yy278; - goto yy57; + if (yych <= 0x00) goto yy277; + if (yych == '\t') goto yy277; + goto yy56; } else { - if (yych <= ' ') goto yy278; - if (yych != '.') goto yy57; + if (yych <= ' ') goto yy277; + if (yych != '.') goto yy56; } -yy322: - YYDEBUG(322, *YYCURSOR); +yy321: + YYDEBUG(321, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '\t') { - if (yych <= 0x00) goto yy278; - if (yych <= 0x08) goto yy57; - goto yy278; + if (yych <= 0x00) goto yy277; + if (yych <= 0x08) goto yy56; + goto yy277; } else { - if (yych == ' ') goto yy278; - goto yy57; + if (yych == ' ') goto yy277; + goto yy56; } -yy323: - YYDEBUG(323, *YYCURSOR); +yy322: + YYDEBUG(322, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '-') { if (yych <= 0x1F) { - if (yych <= 0x00) goto yy278; - if (yych == '\t') goto yy278; - goto yy223; + if (yych <= 0x00) goto yy277; + if (yych == '\t') goto yy277; + goto yy222; } else { if (yych <= '(') { - if (yych <= ' ') goto yy278; - goto yy223; + if (yych <= ' ') goto yy277; + goto yy222; } else { - if (yych <= ')') goto yy228; - if (yych <= ',') goto yy223; - goto yy244; + if (yych <= ')') goto yy227; + if (yych <= ',') goto yy222; + goto yy243; } } } else { if (yych <= 'Z') { - if (yych <= '.') goto yy322; - if (yych <= '/') goto yy244; - if (yych <= '@') goto yy223; - goto yy238; + if (yych <= '.') goto yy321; + if (yych <= '/') goto yy243; + if (yych <= '@') goto yy222; + goto yy237; } else { if (yych <= '_') { - if (yych <= '^') goto yy223; - goto yy244; + if (yych <= '^') goto yy222; + goto yy243; } else { - if (yych <= '`') goto yy223; - if (yych <= 'z') goto yy243; - goto yy223; + if (yych <= '`') goto yy222; + if (yych <= 'z') goto yy242; + goto yy222; } } } -yy324: - YYDEBUG(324, *YYCURSOR); +yy323: + YYDEBUG(323, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ':') { if (yych <= ' ') { - if (yych == '\t') goto yy283; - if (yych <= 0x1F) goto yy199; - goto yy283; + if (yych == '\t') goto yy282; + if (yych <= 0x1F) goto yy198; + goto yy282; } else { if (yych <= '.') { - if (yych <= '-') goto yy199; - goto yy267; + if (yych <= '-') goto yy198; + goto yy266; } else { - if (yych <= '/') goto yy199; - if (yych <= '9') goto yy289; - goto yy267; + if (yych <= '/') goto yy198; + if (yych <= '9') goto yy288; + goto yy266; } } } else { if (yych <= 'P') { - if (yych == 'A') goto yy285; - if (yych <= 'O') goto yy199; - goto yy285; + if (yych == 'A') goto yy284; + if (yych <= 'O') goto yy198; + goto yy284; } else { if (yych <= 'a') { - if (yych <= '`') goto yy199; - goto yy285; + if (yych <= '`') goto yy198; + goto yy284; } else { - if (yych == 'p') goto yy285; - goto yy199; + if (yych == 'p') goto yy284; + goto yy198; } } } -yy325: - YYDEBUG(325, *YYCURSOR); +yy324: + YYDEBUG(324, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ':') { if (yych <= ' ') { - if (yych == '\t') goto yy283; - if (yych <= 0x1F) goto yy199; - goto yy283; + if (yych == '\t') goto yy282; + if (yych <= 0x1F) goto yy198; + goto yy282; } else { if (yych <= '.') { - if (yych <= '-') goto yy199; + if (yych <= '-') goto yy198; } else { - if (yych <= '/') goto yy199; - if (yych <= '9') goto yy289; + if (yych <= '/') goto yy198; + if (yych <= '9') goto yy288; } } } else { if (yych <= 'P') { - if (yych == 'A') goto yy285; - if (yych <= 'O') goto yy199; - goto yy285; + if (yych == 'A') goto yy284; + if (yych <= 'O') goto yy198; + goto yy284; } else { if (yych <= 'a') { - if (yych <= '`') goto yy199; - goto yy285; + if (yych <= '`') goto yy198; + goto yy284; } else { - if (yych == 'p') goto yy285; - goto yy199; + if (yych == 'p') goto yy284; + goto yy198; } } } +yy325: + YYDEBUG(325, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy326; + if (yych <= '6') goto yy327; + if (yych <= '9') goto yy223; + goto yy56; yy326: YYDEBUG(326, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy327; - if (yych <= '6') goto yy328; - if (yych <= '9') goto yy224; - goto yy57; -yy327: - YYDEBUG(327, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy225; - goto yy223; + if (yych == '.') goto yy224; + goto yy222; } else { - if (yych <= '9') goto yy329; - if (yych <= ':') goto yy225; - goto yy223; + if (yych <= '9') goto yy328; + if (yych <= ':') goto yy224; + goto yy222; } -yy328: - YYDEBUG(328, *YYCURSOR); +yy327: + YYDEBUG(327, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy225; - goto yy223; + if (yych == '.') goto yy224; + goto yy222; } else { - if (yych <= '0') goto yy270; - if (yych == ':') goto yy225; - goto yy223; + if (yych <= '0') goto yy269; + if (yych == ':') goto yy224; + goto yy222; } -yy329: - YYDEBUG(329, *YYCURSOR); +yy328: + YYDEBUG(328, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= ' ') { - if (yych == '\t') goto yy272; - if (yych <= 0x1F) goto yy223; - goto yy272; + if (yych == '\t') goto yy271; + if (yych <= 0x1F) goto yy222; + goto yy271; } else { if (yych <= '(') { - if (yych <= '\'') goto yy223; - goto yy272; + if (yych <= '\'') goto yy222; + goto yy271; } else { - if (yych == '+') goto yy272; - goto yy223; + if (yych == '+') goto yy271; + goto yy222; } } } else { if (yych <= ':') { - if (yych <= '-') goto yy272; - if (yych <= '.') goto yy225; - if (yych <= '9') goto yy223; - goto yy225; + if (yych <= '-') goto yy271; + if (yych <= '.') goto yy224; + if (yych <= '9') goto yy222; + goto yy224; } else { if (yych <= 'Z') { - if (yych <= '@') goto yy223; - goto yy272; + if (yych <= '@') goto yy222; + goto yy271; } else { - if (yych <= '`') goto yy223; - if (yych <= 'z') goto yy272; - goto yy223; + if (yych <= '`') goto yy222; + if (yych <= 'z') goto yy271; + goto yy222; } } } -yy330: - YYDEBUG(330, *YYCURSOR); +yy329: + YYDEBUG(329, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ':') { if (yych <= ' ') { - if (yych == '\t') goto yy283; - if (yych <= 0x1F) goto yy199; - goto yy283; + if (yych == '\t') goto yy282; + if (yych <= 0x1F) goto yy198; + goto yy282; } else { if (yych <= '.') { - if (yych <= '-') goto yy199; - goto yy311; + if (yych <= '-') goto yy198; + goto yy310; } else { - if (yych <= '/') goto yy199; - if (yych <= '9') goto yy289; - goto yy311; + if (yych <= '/') goto yy198; + if (yych <= '9') goto yy288; + goto yy310; } } } else { if (yych <= 'P') { - if (yych == 'A') goto yy285; - if (yych <= 'O') goto yy199; - goto yy285; + if (yych == 'A') goto yy284; + if (yych <= 'O') goto yy198; + goto yy284; } else { if (yych <= 'a') { - if (yych <= '`') goto yy199; - goto yy285; + if (yych <= '`') goto yy198; + goto yy284; } else { - if (yych == 'p') goto yy285; - goto yy199; + if (yych == 'p') goto yy284; + goto yy198; } } } -yy331: - YYDEBUG(331, *YYCURSOR); +yy330: + YYDEBUG(330, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '1') { - if (yych <= '/') goto yy216; - if (yych <= '0') goto yy333; - goto yy334; + if (yych <= '/') goto yy215; + if (yych <= '0') goto yy332; + goto yy333; } else { - if (yych <= '2') goto yy335; - if (yych <= '5') goto yy336; - if (yych <= '9') goto yy337; - goto yy216; + if (yych <= '2') goto yy334; + if (yych <= '5') goto yy335; + if (yych <= '9') goto yy336; + goto yy215; + } +yy331: + YYDEBUG(331, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') { + if (yych == '.') goto yy220; + goto yy56; + } else { + if (yych <= '0') goto yy303; + if (yych <= '9') goto yy304; + if (yych <= ':') goto yy220; + goto yy56; } yy332: YYDEBUG(332, *YYCURSOR); - yych = *++YYCURSOR; + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy221; - goto yy57; + if (yych == '.') goto yy349; + goto yy198; } else { - if (yych <= '0') goto yy304; - if (yych <= '9') goto yy305; - if (yych <= ':') goto yy221; - goto yy57; + if (yych <= '0') goto yy348; + if (yych <= '9') goto yy353; + if (yych <= ':') goto yy349; + goto yy198; } yy333: YYDEBUG(333, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy350; - goto yy199; + if (yych == '.') goto yy337; + goto yy198; } else { - if (yych <= '0') goto yy349; - if (yych <= '9') goto yy354; - if (yych <= ':') goto yy350; - goto yy199; + if (yych <= '2') goto yy353; + if (yych <= '9') goto yy348; + if (yych <= ':') goto yy337; + goto yy198; } yy334: YYDEBUG(334, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy338; - goto yy199; + if (yych == '.') goto yy337; + goto yy198; } else { - if (yych <= '2') goto yy354; - if (yych <= '9') goto yy349; - if (yych <= ':') goto yy338; - goto yy199; + if (yych <= '4') goto yy348; + if (yych <= '9') goto yy347; + if (yych <= ':') goto yy337; + goto yy198; } yy335: YYDEBUG(335, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy338; - goto yy199; + if (yych == '.') goto yy337; + goto yy198; } else { - if (yych <= '4') goto yy349; - if (yych <= '9') goto yy348; - if (yych <= ':') goto yy338; - goto yy199; + if (yych <= '9') goto yy347; + if (yych <= ':') goto yy337; + goto yy198; } yy336: YYDEBUG(336, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy338; - goto yy199; + if (yych != '.') goto yy198; } else { - if (yych <= '9') goto yy348; - if (yych <= ':') goto yy338; - goto yy199; + if (yych <= '9') goto yy262; + if (yych >= ';') goto yy198; } yy337: YYDEBUG(337, *YYCURSOR); - yyaccept = 6; + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy338; + if (yych <= '6') goto yy339; + if (yych <= '9') goto yy265; + goto yy56; +yy338: + YYDEBUG(338, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych != '.') goto yy199; + if (yych == '.') goto yy266; + goto yy222; } else { - if (yych <= '9') goto yy263; - if (yych >= ';') goto yy199; + if (yych <= '9') goto yy340; + if (yych <= ':') goto yy266; + goto yy222; } -yy338: - YYDEBUG(338, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy339; - if (yych <= '6') goto yy340; - if (yych <= '9') goto yy266; - goto yy57; yy339: YYDEBUG(339, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy267; - goto yy223; + if (yych == '.') goto yy266; + goto yy222; } else { - if (yych <= '9') goto yy341; - if (yych <= ':') goto yy267; - goto yy223; + if (yych <= '0') goto yy228; + if (yych == ':') goto yy266; + goto yy222; } yy340: YYDEBUG(340, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '.') goto yy267; - goto yy223; - } else { - if (yych <= '0') goto yy229; - if (yych == ':') goto yy267; - goto yy223; - } -yy341: - YYDEBUG(341, *YYCURSOR); - yyaccept = 7; - yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= ' ') { - if (yych == '\t') goto yy343; - if (yych <= 0x1F) goto yy223; - goto yy343; + if (yych == '\t') goto yy342; + if (yych <= 0x1F) goto yy222; + goto yy342; } else { if (yych <= '(') { - if (yych <= '\'') goto yy223; - goto yy343; + if (yych <= '\'') goto yy222; + goto yy342; } else { - if (yych == '+') goto yy343; - goto yy223; + if (yych == '+') goto yy342; + goto yy222; } } } else { if (yych <= ':') { - if (yych <= '-') goto yy343; - if (yych <= '.') goto yy267; - if (yych <= '9') goto yy223; - goto yy267; + if (yych <= '-') goto yy342; + if (yych <= '.') goto yy266; + if (yych <= '9') goto yy222; + goto yy266; } else { if (yych <= 'Z') { - if (yych <= '@') goto yy223; - goto yy343; + if (yych <= '@') goto yy222; + goto yy342; } else { - if (yych <= '`') goto yy223; - if (yych <= 'z') goto yy343; - goto yy223; + if (yych <= '`') goto yy222; + if (yych <= 'z') goto yy342; + goto yy222; } } } -yy342: - YYDEBUG(342, *YYCURSOR); +yy341: + YYDEBUG(341, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 9) YYFILL(9); yych = *YYCURSOR; -yy343: - YYDEBUG(343, *YYCURSOR); +yy342: + YYDEBUG(342, *YYCURSOR); if (yych <= '@') { if (yych <= '\'') { if (yych <= '\t') { - if (yych <= 0x08) goto yy57; - goto yy342; + if (yych <= 0x08) goto yy56; + goto yy341; } else { - if (yych == ' ') goto yy342; - goto yy57; + if (yych == ' ') goto yy341; + goto yy56; } } else { if (yych <= '+') { - if (yych <= '(') goto yy234; - if (yych <= '*') goto yy57; - goto yy233; + if (yych <= '(') goto yy233; + if (yych <= '*') goto yy56; + goto yy232; } else { - if (yych == '-') goto yy233; - goto yy57; + if (yych == '-') goto yy232; + goto yy56; } } } else { if (yych <= 'Z') { if (yych <= 'G') { - if (yych <= 'A') goto yy344; - if (yych <= 'F') goto yy235; - goto yy232; + if (yych <= 'A') goto yy343; + if (yych <= 'F') goto yy234; + goto yy231; } else { - if (yych != 'P') goto yy235; + if (yych != 'P') goto yy234; } } else { if (yych <= 'o') { - if (yych <= '`') goto yy57; - if (yych <= 'a') goto yy345; - goto yy236; + if (yych <= '`') goto yy56; + if (yych <= 'a') goto yy344; + goto yy235; } else { - if (yych <= 'p') goto yy345; - if (yych <= 'z') goto yy236; - goto yy57; + if (yych <= 'p') goto yy344; + if (yych <= 'z') goto yy235; + goto yy56; } } } -yy344: - YYDEBUG(344, *YYCURSOR); +yy343: + YYDEBUG(343, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'L') { if (yych <= '-') { - if (yych == ')') goto yy228; - goto yy223; + if (yych == ')') goto yy227; + goto yy222; } else { - if (yych <= '.') goto yy286; - if (yych <= '@') goto yy223; - goto yy237; + if (yych <= '.') goto yy285; + if (yych <= '@') goto yy222; + goto yy236; } } else { if (yych <= '`') { - if (yych <= 'M') goto yy346; - if (yych <= 'Z') goto yy237; - goto yy223; + if (yych <= 'M') goto yy345; + if (yych <= 'Z') goto yy236; + goto yy222; } else { - if (yych == 'm') goto yy347; - if (yych <= 'z') goto yy242; - goto yy223; + if (yych == 'm') goto yy346; + if (yych <= 'z') goto yy241; + goto yy222; } } -yy345: - YYDEBUG(345, *YYCURSOR); +yy344: + YYDEBUG(344, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'L') { if (yych <= '-') { - if (yych == ')') goto yy228; - goto yy223; + if (yych == ')') goto yy227; + goto yy222; } else { - if (yych <= '.') goto yy286; - if (yych <= '@') goto yy223; - goto yy237; + if (yych <= '.') goto yy285; + if (yych <= '@') goto yy222; + goto yy236; } } else { if (yych <= '`') { - if (yych <= 'M') goto yy346; - if (yych <= 'Z') goto yy237; - goto yy223; + if (yych <= 'M') goto yy345; + if (yych <= 'Z') goto yy236; + goto yy222; } else { - if (yych == 'm') goto yy346; - if (yych <= 'z') goto yy237; - goto yy223; + if (yych == 'm') goto yy345; + if (yych <= 'z') goto yy236; + goto yy222; } } -yy346: - YYDEBUG(346, *YYCURSOR); +yy345: + YYDEBUG(345, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ')') { if (yych <= '\t') { - if (yych <= 0x00) goto yy278; - if (yych <= 0x08) goto yy223; - goto yy278; + if (yych <= 0x00) goto yy277; + if (yych <= 0x08) goto yy222; + goto yy277; } else { - if (yych == ' ') goto yy278; - if (yych <= '(') goto yy223; - goto yy228; + if (yych == ' ') goto yy277; + if (yych <= '(') goto yy222; + goto yy227; } } else { if (yych <= '@') { - if (yych == '.') goto yy288; - goto yy223; + if (yych == '.') goto yy287; + goto yy222; } else { - if (yych <= 'Z') goto yy238; - if (yych <= '`') goto yy223; - if (yych <= 'z') goto yy238; - goto yy223; + if (yych <= 'Z') goto yy237; + if (yych <= '`') goto yy222; + if (yych <= 'z') goto yy237; + goto yy222; } } -yy347: - YYDEBUG(347, *YYCURSOR); +yy346: + YYDEBUG(346, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '-') { if (yych <= 0x1F) { - if (yych <= 0x00) goto yy278; - if (yych == '\t') goto yy278; - goto yy223; + if (yych <= 0x00) goto yy277; + if (yych == '\t') goto yy277; + goto yy222; } else { if (yych <= '(') { - if (yych <= ' ') goto yy278; - goto yy223; + if (yych <= ' ') goto yy277; + goto yy222; } else { - if (yych <= ')') goto yy228; - if (yych <= ',') goto yy223; - goto yy244; + if (yych <= ')') goto yy227; + if (yych <= ',') goto yy222; + goto yy243; } } } else { if (yych <= 'Z') { - if (yych <= '.') goto yy288; - if (yych <= '/') goto yy244; - if (yych <= '@') goto yy223; - goto yy238; + if (yych <= '.') goto yy287; + if (yych <= '/') goto yy243; + if (yych <= '@') goto yy222; + goto yy237; } else { if (yych <= '_') { - if (yych <= '^') goto yy223; - goto yy244; + if (yych <= '^') goto yy222; + goto yy243; } else { - if (yych <= '`') goto yy223; - if (yych <= 'z') goto yy243; - goto yy223; + if (yych <= '`') goto yy222; + if (yych <= 'z') goto yy242; + goto yy222; } } } -yy348: - YYDEBUG(348, *YYCURSOR); +yy347: + YYDEBUG(347, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy225; - goto yy199; + if (yych == '.') goto yy224; + goto yy198; } else { - if (yych <= '9') goto yy289; - if (yych <= ':') goto yy225; - goto yy199; + if (yych <= '9') goto yy288; + if (yych <= ':') goto yy224; + goto yy198; } -yy349: - YYDEBUG(349, *YYCURSOR); +yy348: + YYDEBUG(348, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych != '.') goto yy199; + if (yych != '.') goto yy198; } else { - if (yych <= '9') goto yy289; - if (yych >= ';') goto yy199; + if (yych <= '9') goto yy288; + if (yych >= ';') goto yy198; } +yy349: + YYDEBUG(349, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy350; + if (yych <= '6') goto yy351; + if (yych <= '9') goto yy223; + goto yy56; yy350: YYDEBUG(350, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy351; - if (yych <= '6') goto yy352; - if (yych <= '9') goto yy224; - goto yy57; -yy351: - YYDEBUG(351, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy225; - goto yy223; + if (yych == '.') goto yy224; + goto yy222; } else { - if (yych <= '9') goto yy353; - if (yych <= ':') goto yy225; - goto yy223; + if (yych <= '9') goto yy352; + if (yych <= ':') goto yy224; + goto yy222; } -yy352: - YYDEBUG(352, *YYCURSOR); +yy351: + YYDEBUG(351, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy225; - goto yy223; + if (yych == '.') goto yy224; + goto yy222; } else { - if (yych <= '0') goto yy229; - if (yych == ':') goto yy225; - goto yy223; + if (yych <= '0') goto yy228; + if (yych == ':') goto yy224; + goto yy222; } -yy353: - YYDEBUG(353, *YYCURSOR); +yy352: + YYDEBUG(352, *YYCURSOR); yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= ' ') { - if (yych == '\t') goto yy231; - if (yych <= 0x1F) goto yy223; - goto yy231; + if (yych == '\t') goto yy230; + if (yych <= 0x1F) goto yy222; + goto yy230; } else { if (yych <= '(') { - if (yych <= '\'') goto yy223; - goto yy231; + if (yych <= '\'') goto yy222; + goto yy230; } else { - if (yych == '+') goto yy231; - goto yy223; + if (yych == '+') goto yy230; + goto yy222; } } } else { if (yych <= ':') { - if (yych <= '-') goto yy231; - if (yych <= '.') goto yy225; - if (yych <= '9') goto yy223; - goto yy225; + if (yych <= '-') goto yy230; + if (yych <= '.') goto yy224; + if (yych <= '9') goto yy222; + goto yy224; } else { if (yych <= 'Z') { - if (yych <= '@') goto yy223; - goto yy231; + if (yych <= '@') goto yy222; + goto yy230; } else { - if (yych <= '`') goto yy223; - if (yych <= 'z') goto yy231; - goto yy223; + if (yych <= '`') goto yy222; + if (yych <= 'z') goto yy230; + goto yy222; } } } -yy354: - YYDEBUG(354, *YYCURSOR); +yy353: + YYDEBUG(353, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy338; - goto yy199; + if (yych == '.') goto yy337; + goto yy198; } else { - if (yych <= '9') goto yy289; - if (yych <= ':') goto yy338; - goto yy199; + if (yych <= '9') goto yy288; + if (yych <= ':') goto yy337; + goto yy198; } -yy355: - YYDEBUG(355, *YYCURSOR); +yy354: + YYDEBUG(354, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '/') { - if (yych == '.') goto yy300; - goto yy216; + if (yych == '.') goto yy299; + goto yy215; } else { - if (yych <= '0') goto yy332; - if (yych <= '1') goto yy302; - if (yych <= '2') goto yy303; - goto yy297; + if (yych <= '0') goto yy331; + if (yych <= '1') goto yy301; + if (yych <= '2') goto yy302; + goto yy296; } } else { if (yych <= 'q') { - if (yych <= ':') goto yy264; - if (yych == 'n') goto yy212; - goto yy216; + if (yych <= ':') goto yy263; + if (yych == 'n') goto yy211; + goto yy215; } else { - if (yych <= 'r') goto yy213; - if (yych <= 's') goto yy211; - if (yych <= 't') goto yy214; - goto yy216; + if (yych <= 'r') goto yy212; + if (yych <= 's') goto yy210; + if (yych <= 't') goto yy213; + goto yy215; } } -yy356: - YYDEBUG(356, *YYCURSOR); +yy355: + YYDEBUG(355, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '/') { - if (yych == '.') goto yy300; - goto yy216; + if (yych == '.') goto yy299; + goto yy215; } else { - if (yych <= '0') goto yy332; - if (yych <= '1') goto yy302; - if (yych <= '2') goto yy303; - goto yy297; + if (yych <= '0') goto yy331; + if (yych <= '1') goto yy301; + if (yych <= '2') goto yy302; + goto yy296; } } else { if (yych <= 'q') { - if (yych <= ':') goto yy264; - if (yych == 'n') goto yy212; - goto yy216; + if (yych <= ':') goto yy263; + if (yych == 'n') goto yy211; + goto yy215; } else { - if (yych <= 'r') goto yy213; - if (yych <= 's') goto yy211; - if (yych <= 't') goto yy214; - goto yy216; + if (yych <= 'r') goto yy212; + if (yych <= 's') goto yy210; + if (yych <= 't') goto yy213; + goto yy215; } } -yy357: - YYDEBUG(357, *YYCURSOR); +yy356: + YYDEBUG(356, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'm') { if (yych <= '1') { - if (yych <= '/') goto yy216; - if (yych <= '0') goto yy360; - goto yy361; + if (yych <= '/') goto yy215; + if (yych <= '0') goto yy359; + goto yy360; } else { - if (yych <= '2') goto yy368; - if (yych <= '9') goto yy369; - goto yy216; + if (yych <= '2') goto yy367; + if (yych <= '9') goto yy368; + goto yy215; } } else { if (yych <= 'r') { - if (yych <= 'n') goto yy212; - if (yych <= 'q') goto yy216; - goto yy213; + if (yych <= 'n') goto yy211; + if (yych <= 'q') goto yy215; + goto yy212; } else { - if (yych <= 's') goto yy211; - if (yych <= 't') goto yy214; - goto yy216; + if (yych <= 's') goto yy210; + if (yych <= 't') goto yy213; + goto yy215; } } -yy358: - YYDEBUG(358, *YYCURSOR); +yy357: + YYDEBUG(357, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'm') { if (yych <= '1') { - if (yych <= '/') goto yy216; - if (yych <= '0') goto yy360; - goto yy361; + if (yych <= '/') goto yy215; + if (yych <= '0') goto yy359; + goto yy360; } else { - if (yych <= '2') goto yy368; - if (yych <= '9') goto yy369; - goto yy216; + if (yych <= '2') goto yy367; + if (yych <= '9') goto yy368; + goto yy215; } } else { if (yych <= 'r') { - if (yych <= 'n') goto yy212; - if (yych <= 'q') goto yy216; - goto yy213; + if (yych <= 'n') goto yy211; + if (yych <= 'q') goto yy215; + goto yy212; } else { - if (yych <= 's') goto yy211; - if (yych <= 't') goto yy214; - goto yy216; + if (yych <= 's') goto yy210; + if (yych <= 't') goto yy213; + goto yy215; } } -yy359: - YYDEBUG(359, *YYCURSOR); +yy358: + YYDEBUG(358, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'm') { if (yych <= '1') { - if (yych <= '/') goto yy216; - if (yych >= '1') goto yy361; + if (yych <= '/') goto yy215; + if (yych >= '1') goto yy360; } else { - if (yych <= '2') goto yy209; - if (yych <= '9') goto yy210; - goto yy216; + if (yych <= '2') goto yy208; + if (yych <= '9') goto yy209; + goto yy215; } } else { if (yych <= 'r') { - if (yych <= 'n') goto yy212; - if (yych <= 'q') goto yy216; - goto yy213; + if (yych <= 'n') goto yy211; + if (yych <= 'q') goto yy215; + goto yy212; } else { - if (yych <= 's') goto yy211; - if (yych <= 't') goto yy214; - goto yy216; + if (yych <= 's') goto yy210; + if (yych <= 't') goto yy213; + goto yy215; } } -yy360: - YYDEBUG(360, *YYCURSOR); +yy359: + YYDEBUG(359, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '/') { - if (yych <= ',') goto yy216; - if (yych <= '-') goto yy362; - if (yych <= '.') goto yy331; - goto yy216; + if (yych <= ',') goto yy215; + if (yych <= '-') goto yy361; + if (yych <= '.') goto yy330; + goto yy215; } else { - if (yych <= '0') goto yy332; - if (yych <= '1') goto yy302; - if (yych <= '2') goto yy303; - goto yy297; + if (yych <= '0') goto yy331; + if (yych <= '1') goto yy301; + if (yych <= '2') goto yy302; + goto yy296; } } else { if (yych <= 'q') { - if (yych <= ':') goto yy221; - if (yych == 'n') goto yy212; - goto yy216; + if (yych <= ':') goto yy220; + if (yych == 'n') goto yy211; + goto yy215; } else { - if (yych <= 'r') goto yy213; - if (yych <= 's') goto yy211; - if (yych <= 't') goto yy214; - goto yy216; + if (yych <= 'r') goto yy212; + if (yych <= 's') goto yy210; + if (yych <= 't') goto yy213; + goto yy215; } } -yy361: - YYDEBUG(361, *YYCURSOR); +yy360: + YYDEBUG(360, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '/') { - if (yych <= ',') goto yy216; - if (yych <= '-') goto yy362; - if (yych <= '.') goto yy300; - goto yy216; + if (yych <= ',') goto yy215; + if (yych <= '-') goto yy361; + if (yych <= '.') goto yy299; + goto yy215; } else { - if (yych <= '0') goto yy301; - if (yych <= '1') goto yy302; - if (yych <= '2') goto yy303; - goto yy297; + if (yych <= '0') goto yy300; + if (yych <= '1') goto yy301; + if (yych <= '2') goto yy302; + goto yy296; } } else { if (yych <= 'q') { - if (yych <= ':') goto yy264; - if (yych == 'n') goto yy212; - goto yy216; + if (yych <= ':') goto yy263; + if (yych == 'n') goto yy211; + goto yy215; } else { - if (yych <= 'r') goto yy213; - if (yych <= 's') goto yy211; - if (yych <= 't') goto yy214; - goto yy216; + if (yych <= 'r') goto yy212; + if (yych <= 's') goto yy210; + if (yych <= 't') goto yy213; + goto yy215; } } -yy362: - YYDEBUG(362, *YYCURSOR); +yy361: + YYDEBUG(361, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; - YYDEBUG(363, *YYCURSOR); + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; + YYDEBUG(362, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) <= '/') goto yy364; - if (yych <= '9') goto yy365; -yy364: - YYDEBUG(364, *YYCURSOR); + if ((yych = *YYCURSOR) <= '/') goto yy363; + if (yych <= '9') goto yy364; +yy363: + YYDEBUG(363, *YYCURSOR); { int length = 0; DEBUG_OUTPUT("pgtextshort"); @@ -6631,643 +6614,643 @@ yy364: TIMELIB_DEINIT; return TIMELIB_PG_TEXT; } -yy365: +yy364: + YYDEBUG(364, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy363; + if (yych >= ':') goto yy363; YYDEBUG(365, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy364; - if (yych >= ':') goto yy364; + if (yych <= '/') goto yy363; + if (yych >= ':') goto yy363; YYDEBUG(366, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy364; - if (yych >= ':') goto yy364; + goto yy363; +yy367: YYDEBUG(367, *YYCURSOR); - yych = *++YYCURSOR; - goto yy364; -yy368: - YYDEBUG(368, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '/') { - if (yych <= ',') goto yy216; - if (yych <= '-') goto yy362; - if (yych <= '.') goto yy300; - goto yy216; + if (yych <= ',') goto yy215; + if (yych <= '-') goto yy361; + if (yych <= '.') goto yy299; + goto yy215; } else { - if (yych <= '0') goto yy332; - if (yych <= '1') goto yy302; - if (yych <= '2') goto yy303; - goto yy297; + if (yych <= '0') goto yy331; + if (yych <= '1') goto yy301; + if (yych <= '2') goto yy302; + goto yy296; } } else { if (yych <= 'q') { - if (yych <= ':') goto yy264; - if (yych == 'n') goto yy212; - goto yy216; + if (yych <= ':') goto yy263; + if (yych == 'n') goto yy211; + goto yy215; } else { - if (yych <= 'r') goto yy213; - if (yych <= 's') goto yy211; - if (yych <= 't') goto yy214; - goto yy216; + if (yych <= 'r') goto yy212; + if (yych <= 's') goto yy210; + if (yych <= 't') goto yy213; + goto yy215; } } -yy369: - YYDEBUG(369, *YYCURSOR); +yy368: + YYDEBUG(368, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '/') { - if (yych <= ',') goto yy216; - if (yych <= '-') goto yy362; - if (yych <= '.') goto yy300; - goto yy216; + if (yych <= ',') goto yy215; + if (yych <= '-') goto yy361; + if (yych <= '.') goto yy299; + goto yy215; } else { - if (yych <= '0') goto yy332; - if (yych <= '1') goto yy302; - if (yych <= '2') goto yy303; - goto yy297; + if (yych <= '0') goto yy331; + if (yych <= '1') goto yy301; + if (yych <= '2') goto yy302; + goto yy296; } } else { if (yych <= 'q') { - if (yych <= ':') goto yy264; - if (yych == 'n') goto yy212; - goto yy216; + if (yych <= ':') goto yy263; + if (yych == 'n') goto yy211; + goto yy215; } else { - if (yych <= 'r') goto yy213; - if (yych <= 's') goto yy211; - if (yych <= 't') goto yy214; - goto yy216; + if (yych <= 'r') goto yy212; + if (yych <= 's') goto yy210; + if (yych <= 't') goto yy213; + goto yy215; } } -yy370: - YYDEBUG(370, *YYCURSOR); +yy369: + YYDEBUG(369, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'B') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { - if (yych <= 'C') goto yy193; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'C') goto yy192; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'b') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { - if (yych <= 'c') goto yy371; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'c') goto yy370; + if (yych <= 'z') goto yy146; + goto yy3; } } } -yy371: - YYDEBUG(371, *YYCURSOR); +yy370: + YYDEBUG(370, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= '-') { - if (yych <= ')') goto yy140; - if (yych <= ',') goto yy194; + if (yych <= ')') goto yy139; + if (yych <= ',') goto yy193; } else { - if (yych == '/') goto yy148; - goto yy196; + if (yych == '/') goto yy147; + goto yy195; } } } else { if (yych <= '^') { if (yych <= 'D') { - if (yych <= '@') goto yy194; - goto yy143; + if (yych <= '@') goto yy193; + goto yy142; } else { - if (yych <= 'E') goto yy202; - if (yych <= 'Z') goto yy143; - goto yy194; + if (yych <= 'E') goto yy201; + if (yych <= 'Z') goto yy142; + goto yy193; } } else { if (yych <= 'd') { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy194; - goto yy151; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy193; + goto yy150; } else { - if (yych <= 'e') goto yy373; - if (yych <= 'z') goto yy151; - goto yy194; + if (yych <= 'e') goto yy372; + if (yych <= 'z') goto yy150; + goto yy193; } } } -yy372: - YYDEBUG(372, *YYCURSOR); +yy371: + YYDEBUG(371, *YYCURSOR); yych = *++YYCURSOR; if (yybm[0+yych] & 8) { - goto yy149; + goto yy148; } - if (yych <= '/') goto yy196; - if (yych <= '0') goto yy357; - if (yych <= '2') goto yy358; - if (yych <= '3') goto yy359; - goto yy196; -yy373: - YYDEBUG(373, *YYCURSOR); + if (yych <= '/') goto yy195; + if (yych <= '0') goto yy356; + if (yych <= '2') goto yy357; + if (yych <= '3') goto yy358; + goto yy195; +yy372: + YYDEBUG(372, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'L') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { - if (yych <= 'M') goto yy203; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'M') goto yy202; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'l') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { - if (yych <= 'm') goto yy374; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'm') goto yy373; + if (yych <= 'z') goto yy151; + goto yy3; } } } -yy374: - YYDEBUG(374, *YYCURSOR); +yy373: + YYDEBUG(373, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'A') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } } else { if (yych <= '_') { - if (yych <= 'B') goto yy204; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'B') goto yy203; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'a') { - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '`') goto yy3; + goto yy152; } else { - if (yych <= 'b') goto yy375; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 'b') goto yy374; + if (yych <= 'z') goto yy152; + goto yy3; } } } -yy375: - YYDEBUG(375, *YYCURSOR); +yy374: + YYDEBUG(374, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '`') { - if (yych <= 'E') goto yy205; - if (yych == '_') goto yy148; - goto yy4; + if (yych <= 'E') goto yy204; + if (yych == '_') goto yy147; + goto yy3; } else { - if (yych == 'e') goto yy376; - if (yych <= 'z') goto yy154; - goto yy4; + if (yych == 'e') goto yy375; + if (yych <= 'z') goto yy153; + goto yy3; } } +yy375: + YYDEBUG(375, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy205; + if (yych != 'r') goto yy154; yy376: YYDEBUG(376, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy206; - if (yych != 'r') goto yy155; -yy377: - YYDEBUG(377, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 16) { - goto yy154; + goto yy153; } if (yych <= '-') { if (yych <= 0x1F) { - if (yych == '\t') goto yy196; - goto yy194; + if (yych == '\t') goto yy195; + goto yy193; } else { - if (yych <= ' ') goto yy196; - if (yych <= ',') goto yy194; + if (yych <= ' ') goto yy195; + if (yych <= ',') goto yy193; } } else { if (yych <= '9') { - if (yych == '/') goto yy148; - goto yy196; + if (yych == '/') goto yy147; + goto yy195; } else { - if (yych == '_') goto yy148; - goto yy194; + if (yych == '_') goto yy147; + goto yy193; } } -yy378: - YYDEBUG(378, *YYCURSOR); +yy377: + YYDEBUG(377, *YYCURSOR); yych = *++YYCURSOR; if (yybm[0+yych] & 8) { - goto yy149; + goto yy148; } - goto yy196; -yy379: - YYDEBUG(379, *YYCURSOR); + goto yy195; +yy378: + YYDEBUG(378, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'T') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'S') goto yy142; + if (yych <= '@') goto yy3; + if (yych <= 'S') goto yy141; } } else { if (yych <= 's') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { - if (yych <= 't') goto yy380; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 't') goto yy379; + if (yych <= 'z') goto yy141; + goto yy3; } } -yy380: - YYDEBUG(380, *YYCURSOR); +yy379: + YYDEBUG(379, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= ',') { - if (yych <= ')') goto yy140; - goto yy194; + if (yych <= ')') goto yy139; + goto yy193; } else { - if (yych <= '-') goto yy197; - if (yych <= '.') goto yy196; - goto yy194; + if (yych <= '-') goto yy196; + if (yych <= '.') goto yy195; + goto yy193; } } } else { if (yych <= 'Z') { if (yych <= '@') { - if (yych <= '9') goto yy196; - goto yy194; + if (yych <= '9') goto yy195; + goto yy193; } else { - if (yych != 'O') goto yy143; + if (yych != 'O') goto yy142; } } else { if (yych <= 'n') { - if (yych <= '`') goto yy194; - goto yy143; + if (yych <= '`') goto yy193; + goto yy142; } else { - if (yych <= 'o') goto yy381; - if (yych <= 'z') goto yy143; - goto yy194; + if (yych <= 'o') goto yy380; + if (yych <= 'z') goto yy142; + goto yy193; } } } -yy381: - YYDEBUG(381, *YYCURSOR); +yy380: + YYDEBUG(380, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'B') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'A') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'A') goto yy143; } } else { if (yych <= 'a') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { - if (yych <= 'b') goto yy382; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'b') goto yy381; + if (yych <= 'z') goto yy143; + goto yy3; } } -yy382: - YYDEBUG(382, *YYCURSOR); +yy381: + YYDEBUG(381, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'D') goto yy145; + if (yych <= '@') goto yy3; + if (yych <= 'D') goto yy144; } } else { if (yych <= 'd') { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - goto yy145; + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy3; + goto yy144; } else { - if (yych <= 'e') goto yy383; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 'e') goto yy382; + if (yych <= 'z') goto yy144; + goto yy3; } } -yy383: - YYDEBUG(383, *YYCURSOR); +yy382: + YYDEBUG(382, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'Q') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych <= 'R') goto yy206; - if (yych == 'r') goto yy206; - goto yy4; + if (yych <= 'R') goto yy205; + if (yych == 'r') goto yy205; + goto yy3; } -yy384: - YYDEBUG(384, *YYCURSOR); +yy383: + YYDEBUG(383, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { - if (yych <= 'T') goto yy380; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'T') goto yy379; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 's') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { - if (yych <= 't') goto yy385; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 't') goto yy384; + if (yych <= 'z') goto yy146; + goto yy3; } } } -yy385: - YYDEBUG(385, *YYCURSOR); +yy384: + YYDEBUG(384, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= '-') { - if (yych <= ')') goto yy140; - if (yych <= ',') goto yy194; - goto yy372; + if (yych <= ')') goto yy139; + if (yych <= ',') goto yy193; + goto yy371; } else { - if (yych == '/') goto yy148; - goto yy196; + if (yych == '/') goto yy147; + goto yy195; } } } else { if (yych <= '^') { if (yych <= 'N') { - if (yych <= '@') goto yy194; - goto yy143; + if (yych <= '@') goto yy193; + goto yy142; } else { - if (yych <= 'O') goto yy381; - if (yych <= 'Z') goto yy143; - goto yy194; + if (yych <= 'O') goto yy380; + if (yych <= 'Z') goto yy142; + goto yy193; } } else { if (yych <= 'n') { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy194; - goto yy151; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy193; + goto yy150; } else { - if (yych <= 'o') goto yy386; - if (yych <= 'z') goto yy151; - goto yy194; + if (yych <= 'o') goto yy385; + if (yych <= 'z') goto yy150; + goto yy193; } } } -yy386: - YYDEBUG(386, *YYCURSOR); +yy385: + YYDEBUG(385, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'A') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { - if (yych <= 'B') goto yy382; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'B') goto yy381; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'a') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { - if (yych <= 'b') goto yy387; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'b') goto yy386; + if (yych <= 'z') goto yy151; + goto yy3; } } } -yy387: - YYDEBUG(387, *YYCURSOR); +yy386: + YYDEBUG(386, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } } else { if (yych <= '_') { - if (yych <= 'E') goto yy383; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'E') goto yy382; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'd') { - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '`') goto yy3; + goto yy152; } else { - if (yych <= 'e') goto yy388; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 'e') goto yy387; + if (yych <= 'z') goto yy152; + goto yy3; } } } -yy388: - YYDEBUG(388, *YYCURSOR); +yy387: + YYDEBUG(387, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'Q') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '`') { - if (yych <= 'R') goto yy206; - if (yych == '_') goto yy148; - goto yy4; + if (yych <= 'R') goto yy205; + if (yych == '_') goto yy147; + goto yy3; } else { - if (yych == 'r') goto yy377; - if (yych <= 'z') goto yy154; - goto yy4; + if (yych == 'r') goto yy376; + if (yych <= 'z') goto yy153; + goto yy3; } } -yy389: - YYDEBUG(389, *YYCURSOR); +yy388: + YYDEBUG(388, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'G') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'F') goto yy142; - goto yy397; + if (yych <= '@') goto yy3; + if (yych <= 'F') goto yy141; + goto yy396; } } else { if (yych <= 'f') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { - if (yych <= 'g') goto yy397; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'g') goto yy396; + if (yych <= 'z') goto yy141; + goto yy3; } } -yy390: - YYDEBUG(390, *YYCURSOR); +yy389: + YYDEBUG(389, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'R') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'Q') goto yy142; - goto yy394; + if (yych <= '@') goto yy3; + if (yych <= 'Q') goto yy141; + goto yy393; } } else { if (yych <= 'q') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { - if (yych <= 'r') goto yy394; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'r') goto yy393; + if (yych <= 'z') goto yy141; + goto yy3; } } -yy391: - YYDEBUG(391, *YYCURSOR); +yy390: + YYDEBUG(390, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'N') goto yy142; + if (yych <= '@') goto yy3; + if (yych <= 'N') goto yy141; } } else { if (yych <= 'n') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { - if (yych <= 'o') goto yy392; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'o') goto yy391; + if (yych <= 'z') goto yy141; + goto yy3; } } -yy392: - YYDEBUG(392, *YYCURSOR); +yy391: + YYDEBUG(391, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '@') { - if (yych == ')') goto yy140; + if (yych == ')') goto yy139; } else { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy393; - if (yych <= 'z') goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy392; + if (yych <= 'z') goto yy142; } -yy393: - YYDEBUG(393, *YYCURSOR); +yy392: + YYDEBUG(392, *YYCURSOR); { DEBUG_OUTPUT("ago"); TIMELIB_INIT; @@ -7287,1755 +7270,1755 @@ yy393: TIMELIB_DEINIT; return TIMELIB_AGO; } -yy394: - YYDEBUG(394, *YYCURSOR); +yy393: + YYDEBUG(393, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= ',') { - if (yych <= ')') goto yy140; - goto yy194; + if (yych <= ')') goto yy139; + goto yy193; } else { - if (yych <= '-') goto yy197; - if (yych <= '.') goto yy196; - goto yy194; + if (yych <= '-') goto yy196; + if (yych <= '.') goto yy195; + goto yy193; } } } else { if (yych <= 'Z') { if (yych <= '@') { - if (yych <= '9') goto yy196; - goto yy194; + if (yych <= '9') goto yy195; + goto yy193; } else { - if (yych != 'I') goto yy143; + if (yych != 'I') goto yy142; } } else { if (yych <= 'h') { - if (yych <= '`') goto yy194; - goto yy143; + if (yych <= '`') goto yy193; + goto yy142; } else { - if (yych <= 'i') goto yy395; - if (yych <= 'z') goto yy143; - goto yy194; + if (yych <= 'i') goto yy394; + if (yych <= 'z') goto yy142; + goto yy193; } } } -yy395: - YYDEBUG(395, *YYCURSOR); +yy394: + YYDEBUG(394, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'L') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'K') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'K') goto yy143; } } else { if (yych <= 'k') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { - if (yych <= 'l') goto yy396; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'l') goto yy395; + if (yych <= 'z') goto yy143; + goto yy3; } } -yy396: - YYDEBUG(396, *YYCURSOR); +yy395: + YYDEBUG(395, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= 0x1F) { - if (yych == '\t') goto yy196; - goto yy194; + if (yych == '\t') goto yy195; + goto yy193; } else { - if (yych <= ' ') goto yy196; - if (yych == ')') goto yy140; - goto yy194; + if (yych <= ' ') goto yy195; + if (yych == ')') goto yy139; + goto yy193; } } else { if (yych <= '@') { - if (yych == '/') goto yy194; - if (yych <= '9') goto yy196; - goto yy194; + if (yych == '/') goto yy193; + if (yych <= '9') goto yy195; + goto yy193; } else { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy194; - if (yych <= 'z') goto yy145; - goto yy194; + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy193; + if (yych <= 'z') goto yy144; + goto yy193; } } -yy397: - YYDEBUG(397, *YYCURSOR); +yy396: + YYDEBUG(396, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= ',') { - if (yych <= ')') goto yy140; - goto yy194; + if (yych <= ')') goto yy139; + goto yy193; } else { - if (yych <= '-') goto yy197; - if (yych <= '.') goto yy196; - goto yy194; + if (yych <= '-') goto yy196; + if (yych <= '.') goto yy195; + goto yy193; } } } else { if (yych <= 'Z') { if (yych <= '@') { - if (yych <= '9') goto yy196; - goto yy194; + if (yych <= '9') goto yy195; + goto yy193; } else { - if (yych != 'U') goto yy143; + if (yych != 'U') goto yy142; } } else { if (yych <= 't') { - if (yych <= '`') goto yy194; - goto yy143; + if (yych <= '`') goto yy193; + goto yy142; } else { - if (yych <= 'u') goto yy398; - if (yych <= 'z') goto yy143; - goto yy194; + if (yych <= 'u') goto yy397; + if (yych <= 'z') goto yy142; + goto yy193; } } } -yy398: - YYDEBUG(398, *YYCURSOR); +yy397: + YYDEBUG(397, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'S') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'R') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'R') goto yy143; } } else { if (yych <= 'r') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { - if (yych <= 's') goto yy399; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 's') goto yy398; + if (yych <= 'z') goto yy143; + goto yy3; } } -yy399: - YYDEBUG(399, *YYCURSOR); +yy398: + YYDEBUG(398, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'T') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'S') goto yy145; + if (yych <= '@') goto yy3; + if (yych <= 'S') goto yy144; } } else { if (yych <= 's') { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - goto yy145; + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy3; + goto yy144; } else { - if (yych <= 't') goto yy400; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 't') goto yy399; + if (yych <= 'z') goto yy144; + goto yy3; } } -yy400: - YYDEBUG(400, *YYCURSOR); +yy399: + YYDEBUG(399, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= '.') { - if (yych <= ')') goto yy140; - if (yych <= ',') goto yy194; - goto yy196; + if (yych <= ')') goto yy139; + if (yych <= ',') goto yy193; + goto yy195; } else { - if (yych <= '/') goto yy194; - if (yych <= '9') goto yy196; - goto yy194; + if (yych <= '/') goto yy193; + if (yych <= '9') goto yy195; + goto yy193; } } -yy401: - YYDEBUG(401, *YYCURSOR); +yy400: + YYDEBUG(400, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'F') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { - if (yych <= 'G') goto yy397; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'G') goto yy396; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'f') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { - if (yych <= 'g') goto yy408; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'g') goto yy407; + if (yych <= 'z') goto yy146; + goto yy3; } } } -yy402: - YYDEBUG(402, *YYCURSOR); +yy401: + YYDEBUG(401, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'Q') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { - if (yych <= 'R') goto yy394; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'R') goto yy393; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'q') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { - if (yych <= 'r') goto yy405; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'r') goto yy404; + if (yych <= 'z') goto yy146; + goto yy3; } } } -yy403: - YYDEBUG(403, *YYCURSOR); +yy402: + YYDEBUG(402, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'N') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { - if (yych <= 'O') goto yy392; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'O') goto yy391; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'n') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { - if (yych <= 'o') goto yy404; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'o') goto yy403; + if (yych <= 'z') goto yy146; + goto yy3; } } } -yy404: - YYDEBUG(404, *YYCURSOR); +yy403: + YYDEBUG(403, *YYCURSOR); yyaccept = 9; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy393; + if (yych == ')') goto yy139; + goto yy392; } else { - if (yych == '.') goto yy393; - goto yy148; + if (yych == '.') goto yy392; + goto yy147; } } else { if (yych <= '^') { - if (yych <= '@') goto yy393; - if (yych <= 'Z') goto yy143; - goto yy393; + if (yych <= '@') goto yy392; + if (yych <= 'Z') goto yy142; + goto yy392; } else { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy393; - if (yych <= 'z') goto yy151; - goto yy393; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy392; + if (yych <= 'z') goto yy150; + goto yy392; } } -yy405: - YYDEBUG(405, *YYCURSOR); +yy404: + YYDEBUG(404, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= '-') { - if (yych <= ')') goto yy140; - if (yych <= ',') goto yy194; - goto yy372; + if (yych <= ')') goto yy139; + if (yych <= ',') goto yy193; + goto yy371; } else { - if (yych == '/') goto yy148; - goto yy196; + if (yych == '/') goto yy147; + goto yy195; } } } else { if (yych <= '^') { if (yych <= 'H') { - if (yych <= '@') goto yy194; - goto yy143; + if (yych <= '@') goto yy193; + goto yy142; } else { - if (yych <= 'I') goto yy395; - if (yych <= 'Z') goto yy143; - goto yy194; + if (yych <= 'I') goto yy394; + if (yych <= 'Z') goto yy142; + goto yy193; } } else { if (yych <= 'h') { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy194; - goto yy151; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy193; + goto yy150; } else { - if (yych <= 'i') goto yy406; - if (yych <= 'z') goto yy151; - goto yy194; + if (yych <= 'i') goto yy405; + if (yych <= 'z') goto yy150; + goto yy193; } } } -yy406: - YYDEBUG(406, *YYCURSOR); +yy405: + YYDEBUG(405, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'K') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { - if (yych <= 'L') goto yy396; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'L') goto yy395; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'k') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { - if (yych <= 'l') goto yy407; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'l') goto yy406; + if (yych <= 'z') goto yy151; + goto yy3; } } } -yy407: - YYDEBUG(407, *YYCURSOR); +yy406: + YYDEBUG(406, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= ' ') { - if (yych == '\t') goto yy196; - if (yych <= 0x1F) goto yy194; - goto yy196; + if (yych == '\t') goto yy195; + if (yych <= 0x1F) goto yy193; + goto yy195; } else { if (yych <= ')') { - if (yych <= '(') goto yy194; - goto yy140; + if (yych <= '(') goto yy193; + goto yy139; } else { - if (yych <= ',') goto yy194; - if (yych <= '-') goto yy378; - goto yy196; + if (yych <= ',') goto yy193; + if (yych <= '-') goto yy377; + goto yy195; } } } else { if (yych <= 'Z') { - if (yych <= '/') goto yy148; - if (yych <= '9') goto yy196; - if (yych <= '@') goto yy194; - goto yy145; + if (yych <= '/') goto yy147; + if (yych <= '9') goto yy195; + if (yych <= '@') goto yy193; + goto yy144; } else { if (yych <= '_') { - if (yych <= '^') goto yy194; - goto yy148; + if (yych <= '^') goto yy193; + goto yy147; } else { - if (yych <= '`') goto yy194; - if (yych <= 'z') goto yy153; - goto yy194; + if (yych <= '`') goto yy193; + if (yych <= 'z') goto yy152; + goto yy193; } } } -yy408: - YYDEBUG(408, *YYCURSOR); +yy407: + YYDEBUG(407, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= '-') { - if (yych <= ')') goto yy140; - if (yych <= ',') goto yy194; - goto yy372; + if (yych <= ')') goto yy139; + if (yych <= ',') goto yy193; + goto yy371; } else { - if (yych == '/') goto yy148; - goto yy196; + if (yych == '/') goto yy147; + goto yy195; } } } else { if (yych <= '^') { if (yych <= 'T') { - if (yych <= '@') goto yy194; - goto yy143; + if (yych <= '@') goto yy193; + goto yy142; } else { - if (yych <= 'U') goto yy398; - if (yych <= 'Z') goto yy143; - goto yy194; + if (yych <= 'U') goto yy397; + if (yych <= 'Z') goto yy142; + goto yy193; } } else { if (yych <= 't') { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy194; - goto yy151; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy193; + goto yy150; } else { - if (yych <= 'u') goto yy409; - if (yych <= 'z') goto yy151; - goto yy194; + if (yych <= 'u') goto yy408; + if (yych <= 'z') goto yy150; + goto yy193; } } } -yy409: - YYDEBUG(409, *YYCURSOR); +yy408: + YYDEBUG(408, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'R') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { - if (yych <= 'S') goto yy399; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'S') goto yy398; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'r') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { - if (yych <= 's') goto yy410; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 's') goto yy409; + if (yych <= 'z') goto yy151; + goto yy3; } } } -yy410: - YYDEBUG(410, *YYCURSOR); +yy409: + YYDEBUG(409, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } } else { if (yych <= '_') { - if (yych <= 'T') goto yy400; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'T') goto yy399; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 's') { - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '`') goto yy3; + goto yy152; } else { - if (yych <= 't') goto yy411; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 't') goto yy410; + if (yych <= 'z') goto yy152; + goto yy3; } } } -yy411: - YYDEBUG(411, *YYCURSOR); +yy410: + YYDEBUG(410, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 16) { - goto yy154; + goto yy153; } if (yych <= ',') { if (yych <= 0x1F) { - if (yych == '\t') goto yy196; - goto yy194; + if (yych == '\t') goto yy195; + goto yy193; } else { - if (yych <= ' ') goto yy196; - if (yych == ')') goto yy140; - goto yy194; + if (yych <= ' ') goto yy195; + if (yych == ')') goto yy139; + goto yy193; } } else { if (yych <= '/') { - if (yych <= '-') goto yy378; - if (yych <= '.') goto yy196; - goto yy148; + if (yych <= '-') goto yy377; + if (yych <= '.') goto yy195; + goto yy147; } else { - if (yych <= '9') goto yy196; - if (yych == '_') goto yy148; - goto yy194; + if (yych <= '9') goto yy195; + if (yych == '_') goto yy147; + goto yy193; } } -yy412: - YYDEBUG(412, *YYCURSOR); +yy411: + YYDEBUG(411, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'N') { if (yych <= '@') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == 'L') goto yy419; - if (yych <= 'M') goto yy142; - goto yy418; + if (yych == 'L') goto yy418; + if (yych <= 'M') goto yy141; + goto yy417; } } else { if (yych <= 'l') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - if (yych <= 'k') goto yy142; - goto yy419; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + if (yych <= 'k') goto yy141; + goto yy418; } else { - if (yych == 'n') goto yy418; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych == 'n') goto yy417; + if (yych <= 'z') goto yy141; + goto yy3; } } -yy413: - YYDEBUG(413, *YYCURSOR); +yy412: + YYDEBUG(412, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'N') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'M') goto yy142; + if (yych <= '@') goto yy3; + if (yych <= 'M') goto yy141; } } else { if (yych <= 'm') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { - if (yych <= 'n') goto yy414; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'n') goto yy413; + if (yych <= 'z') goto yy141; + goto yy3; } } -yy414: - YYDEBUG(414, *YYCURSOR); +yy413: + YYDEBUG(413, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= ',') { - if (yych <= ')') goto yy140; - goto yy194; + if (yych <= ')') goto yy139; + goto yy193; } else { - if (yych <= '-') goto yy197; - if (yych <= '.') goto yy196; - goto yy194; + if (yych <= '-') goto yy196; + if (yych <= '.') goto yy195; + goto yy193; } } } else { if (yych <= 'Z') { if (yych <= '@') { - if (yych <= '9') goto yy196; - goto yy194; + if (yych <= '9') goto yy195; + goto yy193; } else { - if (yych != 'U') goto yy143; + if (yych != 'U') goto yy142; } } else { if (yych <= 't') { - if (yych <= '`') goto yy194; - goto yy143; + if (yych <= '`') goto yy193; + goto yy142; } else { - if (yych <= 'u') goto yy415; - if (yych <= 'z') goto yy143; - goto yy194; + if (yych <= 'u') goto yy414; + if (yych <= 'z') goto yy142; + goto yy193; } } } -yy415: - YYDEBUG(415, *YYCURSOR); +yy414: + YYDEBUG(414, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'A') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; } else { if (yych <= '`') { - if (yych <= 'Z') goto yy144; - goto yy4; + if (yych <= 'Z') goto yy143; + goto yy3; } else { - if (yych <= 'a') goto yy416; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'a') goto yy415; + if (yych <= 'z') goto yy143; + goto yy3; } } -yy416: - YYDEBUG(416, *YYCURSOR); +yy415: + YYDEBUG(415, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'R') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'Q') goto yy145; + if (yych <= '@') goto yy3; + if (yych <= 'Q') goto yy144; } } else { if (yych <= 'q') { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - goto yy145; + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy3; + goto yy144; } else { - if (yych <= 'r') goto yy417; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 'r') goto yy416; + if (yych <= 'z') goto yy144; + goto yy3; } } -yy417: - YYDEBUG(417, *YYCURSOR); +yy416: + YYDEBUG(416, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'X') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych <= 'Y') goto yy206; - if (yych == 'y') goto yy206; - goto yy4; + if (yych <= 'Y') goto yy205; + if (yych == 'y') goto yy205; + goto yy3; } -yy418: - YYDEBUG(418, *YYCURSOR); +yy417: + YYDEBUG(417, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= ',') { - if (yych <= ')') goto yy140; - goto yy194; + if (yych <= ')') goto yy139; + goto yy193; } else { - if (yych <= '-') goto yy197; - if (yych <= '.') goto yy196; - goto yy194; + if (yych <= '-') goto yy196; + if (yych <= '.') goto yy195; + goto yy193; } } } else { if (yych <= 'Z') { if (yych <= '@') { - if (yych <= '9') goto yy196; - goto yy194; + if (yych <= '9') goto yy195; + goto yy193; } else { - if (yych == 'E') goto yy420; - goto yy143; + if (yych == 'E') goto yy419; + goto yy142; } } else { if (yych <= 'd') { - if (yych <= '`') goto yy194; - goto yy143; + if (yych <= '`') goto yy193; + goto yy142; } else { - if (yych <= 'e') goto yy420; - if (yych <= 'z') goto yy143; - goto yy194; + if (yych <= 'e') goto yy419; + if (yych <= 'z') goto yy142; + goto yy193; } } } -yy419: - YYDEBUG(419, *YYCURSOR); +yy418: + YYDEBUG(418, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= ',') { - if (yych <= ')') goto yy140; - goto yy194; + if (yych <= ')') goto yy139; + goto yy193; } else { - if (yych <= '-') goto yy197; - if (yych <= '.') goto yy196; - goto yy194; + if (yych <= '-') goto yy196; + if (yych <= '.') goto yy195; + goto yy193; } } } else { if (yych <= 'Z') { if (yych <= '@') { - if (yych <= '9') goto yy196; - goto yy194; + if (yych <= '9') goto yy195; + goto yy193; } else { - if (yych != 'Y') goto yy143; + if (yych != 'Y') goto yy142; } } else { if (yych <= 'x') { - if (yych <= '`') goto yy194; - goto yy143; + if (yych <= '`') goto yy193; + goto yy142; } else { - if (yych <= 'y') goto yy420; - if (yych <= 'z') goto yy143; - goto yy194; + if (yych <= 'y') goto yy419; + if (yych <= 'z') goto yy142; + goto yy193; } } } -yy420: - YYDEBUG(420, *YYCURSOR); +yy419: + YYDEBUG(419, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= 0x1F) { - if (yych == '\t') goto yy196; - goto yy194; + if (yych == '\t') goto yy195; + goto yy193; } else { - if (yych <= ' ') goto yy196; - if (yych == ')') goto yy140; - goto yy194; + if (yych <= ' ') goto yy195; + if (yych == ')') goto yy139; + goto yy193; } } else { if (yych <= '@') { - if (yych == '/') goto yy194; - if (yych <= '9') goto yy196; - goto yy194; + if (yych == '/') goto yy193; + if (yych <= '9') goto yy195; + goto yy193; } else { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy194; - if (yych <= 'z') goto yy144; - goto yy194; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy193; + if (yych <= 'z') goto yy143; + goto yy193; } } -yy421: - YYDEBUG(421, *YYCURSOR); +yy420: + YYDEBUG(420, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'M') { if (yych <= '.') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych == '-') goto yy148; - goto yy4; + if (yych == '-') goto yy147; + goto yy3; } } else { if (yych <= '@') { - if (yych <= '/') goto yy148; - goto yy4; + if (yych <= '/') goto yy147; + goto yy3; } else { - if (yych == 'L') goto yy419; - goto yy142; + if (yych == 'L') goto yy418; + goto yy141; } } } else { if (yych <= '`') { if (yych <= 'Z') { - if (yych <= 'N') goto yy418; - goto yy142; + if (yych <= 'N') goto yy417; + goto yy141; } else { - if (yych == '_') goto yy148; - goto yy4; + if (yych == '_') goto yy147; + goto yy3; } } else { if (yych <= 'm') { - if (yych == 'l') goto yy428; - goto yy147; + if (yych == 'l') goto yy427; + goto yy146; } else { - if (yych <= 'n') goto yy427; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'n') goto yy426; + if (yych <= 'z') goto yy146; + goto yy3; } } } -yy422: - YYDEBUG(422, *YYCURSOR); +yy421: + YYDEBUG(421, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'M') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { - if (yych <= 'N') goto yy414; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'N') goto yy413; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'm') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { - if (yych <= 'n') goto yy423; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'n') goto yy422; + if (yych <= 'z') goto yy146; + goto yy3; } } } -yy423: - YYDEBUG(423, *YYCURSOR); +yy422: + YYDEBUG(422, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= '-') { - if (yych <= ')') goto yy140; - if (yych <= ',') goto yy194; - goto yy372; + if (yych <= ')') goto yy139; + if (yych <= ',') goto yy193; + goto yy371; } else { - if (yych == '/') goto yy148; - goto yy196; + if (yych == '/') goto yy147; + goto yy195; } } } else { if (yych <= '^') { if (yych <= 'T') { - if (yych <= '@') goto yy194; - goto yy143; + if (yych <= '@') goto yy193; + goto yy142; } else { - if (yych <= 'U') goto yy415; - if (yych <= 'Z') goto yy143; - goto yy194; + if (yych <= 'U') goto yy414; + if (yych <= 'Z') goto yy142; + goto yy193; } } else { if (yych <= 't') { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy194; - goto yy151; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy193; + goto yy150; } else { - if (yych <= 'u') goto yy424; - if (yych <= 'z') goto yy151; - goto yy194; + if (yych <= 'u') goto yy423; + if (yych <= 'z') goto yy150; + goto yy193; } } } -yy424: - YYDEBUG(424, *YYCURSOR); +yy423: + YYDEBUG(423, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '@') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '_') { - if (yych <= 'A') goto yy416; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'A') goto yy415; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { - if (yych <= '`') goto yy4; - if (yych <= 'a') goto yy425; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'a') goto yy424; + if (yych <= 'z') goto yy151; + goto yy3; } } -yy425: - YYDEBUG(425, *YYCURSOR); +yy424: + YYDEBUG(424, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'Q') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } } else { if (yych <= '_') { - if (yych <= 'R') goto yy417; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'R') goto yy416; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'q') { - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '`') goto yy3; + goto yy152; } else { - if (yych <= 'r') goto yy426; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 'r') goto yy425; + if (yych <= 'z') goto yy152; + goto yy3; } } } -yy426: - YYDEBUG(426, *YYCURSOR); +yy425: + YYDEBUG(425, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'X') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '`') { - if (yych <= 'Y') goto yy206; - if (yych == '_') goto yy148; - goto yy4; + if (yych <= 'Y') goto yy205; + if (yych == '_') goto yy147; + goto yy3; } else { - if (yych == 'y') goto yy377; - if (yych <= 'z') goto yy154; - goto yy4; + if (yych == 'y') goto yy376; + if (yych <= 'z') goto yy153; + goto yy3; } } -yy427: - YYDEBUG(427, *YYCURSOR); +yy426: + YYDEBUG(426, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= '-') { - if (yych <= ')') goto yy140; - if (yych <= ',') goto yy194; - goto yy372; + if (yych <= ')') goto yy139; + if (yych <= ',') goto yy193; + goto yy371; } else { - if (yych == '/') goto yy148; - goto yy196; + if (yych == '/') goto yy147; + goto yy195; } } } else { if (yych <= '^') { if (yych <= 'D') { - if (yych <= '@') goto yy194; - goto yy143; + if (yych <= '@') goto yy193; + goto yy142; } else { - if (yych <= 'E') goto yy420; - if (yych <= 'Z') goto yy143; - goto yy194; + if (yych <= 'E') goto yy419; + if (yych <= 'Z') goto yy142; + goto yy193; } } else { if (yych <= 'd') { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy194; - goto yy151; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy193; + goto yy150; } else { - if (yych <= 'e') goto yy429; - if (yych <= 'z') goto yy151; - goto yy194; + if (yych <= 'e') goto yy428; + if (yych <= 'z') goto yy150; + goto yy193; } } } -yy428: - YYDEBUG(428, *YYCURSOR); +yy427: + YYDEBUG(427, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= '-') { - if (yych <= ')') goto yy140; - if (yych <= ',') goto yy194; - goto yy372; + if (yych <= ')') goto yy139; + if (yych <= ',') goto yy193; + goto yy371; } else { - if (yych == '/') goto yy148; - goto yy196; + if (yych == '/') goto yy147; + goto yy195; } } } else { if (yych <= '^') { if (yych <= 'X') { - if (yych <= '@') goto yy194; - goto yy143; + if (yych <= '@') goto yy193; + goto yy142; } else { - if (yych <= 'Y') goto yy420; - if (yych <= 'Z') goto yy143; - goto yy194; + if (yych <= 'Y') goto yy419; + if (yych <= 'Z') goto yy142; + goto yy193; } } else { if (yych <= 'x') { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy194; - goto yy151; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy193; + goto yy150; } else { - if (yych <= 'y') goto yy429; - if (yych <= 'z') goto yy151; - goto yy194; + if (yych <= 'y') goto yy428; + if (yych <= 'z') goto yy150; + goto yy193; } } } -yy429: - YYDEBUG(429, *YYCURSOR); +yy428: + YYDEBUG(428, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= ' ') { - if (yych == '\t') goto yy196; - if (yych <= 0x1F) goto yy194; - goto yy196; + if (yych == '\t') goto yy195; + if (yych <= 0x1F) goto yy193; + goto yy195; } else { if (yych <= ')') { - if (yych <= '(') goto yy194; - goto yy140; + if (yych <= '(') goto yy193; + goto yy139; } else { - if (yych <= ',') goto yy194; - if (yych <= '-') goto yy378; - goto yy196; + if (yych <= ',') goto yy193; + if (yych <= '-') goto yy377; + goto yy195; } } } else { if (yych <= 'Z') { - if (yych <= '/') goto yy148; - if (yych <= '9') goto yy196; - if (yych <= '@') goto yy194; - goto yy144; + if (yych <= '/') goto yy147; + if (yych <= '9') goto yy195; + if (yych <= '@') goto yy193; + goto yy143; } else { if (yych <= '_') { - if (yych <= '^') goto yy194; - goto yy148; + if (yych <= '^') goto yy193; + goto yy147; } else { - if (yych <= '`') goto yy194; - if (yych <= 'z') goto yy152; - goto yy194; + if (yych <= '`') goto yy193; + if (yych <= 'z') goto yy151; + goto yy193; } } } -yy430: - YYDEBUG(430, *YYCURSOR); +yy429: + YYDEBUG(429, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= ' ') { - if (yych == '\t') goto yy196; - if (yych <= 0x1F) goto yy4; - goto yy196; + if (yych == '\t') goto yy195; + if (yych <= 0x1F) goto yy3; + goto yy195; } else { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy196; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy195; } } else { if (yych <= 'H') { - if (yych <= '/') goto yy4; - if (yych <= '9') goto yy196; - if (yych <= '@') goto yy4; - goto yy142; + if (yych <= '/') goto yy3; + if (yych <= '9') goto yy195; + if (yych <= '@') goto yy3; + goto yy141; } else { if (yych <= 'Z') { - if (yych >= 'J') goto yy142; + if (yych >= 'J') goto yy141; } else { - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy141; + goto yy3; } } } -yy431: - YYDEBUG(431, *YYCURSOR); +yy430: + YYDEBUG(430, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= 0x1F) { - if (yych == '\t') goto yy196; - goto yy4; + if (yych == '\t') goto yy195; + goto yy3; } else { - if (yych <= ' ') goto yy196; - if (yych == ')') goto yy140; - goto yy4; + if (yych <= ' ') goto yy195; + if (yych == ')') goto yy139; + goto yy3; } } else { if (yych <= '@') { - if (yych == '/') goto yy4; - if (yych <= '9') goto yy196; - goto yy4; + if (yych == '/') goto yy3; + if (yych <= '9') goto yy195; + goto yy3; } else { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy142; + goto yy3; } } -yy432: - YYDEBUG(432, *YYCURSOR); +yy431: + YYDEBUG(431, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= ' ') { - if (yych == '\t') goto yy196; - if (yych <= 0x1F) goto yy4; - goto yy196; + if (yych == '\t') goto yy195; + if (yych <= 0x1F) goto yy3; + goto yy195; } else { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy196; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy195; } } else { if (yych <= 'H') { - if (yych <= '/') goto yy4; - if (yych <= '9') goto yy196; - if (yych <= '@') goto yy4; - goto yy142; + if (yych <= '/') goto yy3; + if (yych <= '9') goto yy195; + if (yych <= '@') goto yy3; + goto yy141; } else { if (yych <= 'Z') { - if (yych >= 'J') goto yy142; + if (yych >= 'J') goto yy141; } else { - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy141; + goto yy3; } } } - YYDEBUG(433, *YYCURSOR); + YYDEBUG(432, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= ' ') { - if (yych == '\t') goto yy196; - if (yych <= 0x1F) goto yy4; - goto yy196; + if (yych == '\t') goto yy195; + if (yych <= 0x1F) goto yy3; + goto yy195; } else { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy196; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy195; } } else { if (yych <= 'H') { - if (yych <= '/') goto yy4; - if (yych <= '9') goto yy196; - if (yych <= '@') goto yy4; - goto yy143; + if (yych <= '/') goto yy3; + if (yych <= '9') goto yy195; + if (yych <= '@') goto yy3; + goto yy142; } else { if (yych <= 'Z') { - if (yych >= 'J') goto yy143; + if (yych >= 'J') goto yy142; } else { - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy142; + goto yy3; } } } - YYDEBUG(434, *YYCURSOR); + YYDEBUG(433, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= 0x1F) { - if (yych == '\t') goto yy196; - goto yy4; + if (yych == '\t') goto yy195; + goto yy3; } else { - if (yych <= ' ') goto yy196; - if (yych == ')') goto yy140; - goto yy4; + if (yych <= ' ') goto yy195; + if (yych == ')') goto yy139; + goto yy3; } } else { if (yych <= '@') { - if (yych == '/') goto yy4; - if (yych <= '9') goto yy196; - goto yy4; + if (yych == '/') goto yy3; + if (yych <= '9') goto yy195; + goto yy3; } else { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy143; + goto yy3; } } -yy435: - YYDEBUG(435, *YYCURSOR); +yy434: + YYDEBUG(434, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= 0x1F) { - if (yych == '\t') goto yy196; - goto yy4; + if (yych == '\t') goto yy195; + goto yy3; } else { - if (yych <= ' ') goto yy196; - if (yych == ')') goto yy140; - goto yy4; + if (yych <= ' ') goto yy195; + if (yych == ')') goto yy139; + goto yy3; } } else { if (yych <= '@') { - if (yych == '/') goto yy4; - if (yych <= '9') goto yy196; - goto yy4; + if (yych == '/') goto yy3; + if (yych <= '9') goto yy195; + goto yy3; } else { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy141; + goto yy3; } } -yy436: - YYDEBUG(436, *YYCURSOR); +yy435: + YYDEBUG(435, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= ' ') { - if (yych == '\t') goto yy196; - if (yych <= 0x1F) goto yy4; - goto yy196; + if (yych == '\t') goto yy195; + if (yych <= 0x1F) goto yy3; + goto yy195; } else { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy196; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy195; } } else { if (yych <= 'H') { - if (yych <= '/') goto yy4; - if (yych <= '9') goto yy196; - if (yych <= '@') goto yy4; - goto yy142; + if (yych <= '/') goto yy3; + if (yych <= '9') goto yy195; + if (yych <= '@') goto yy3; + goto yy141; } else { if (yych <= 'Z') { - if (yych <= 'I') goto yy431; - goto yy142; + if (yych <= 'I') goto yy430; + goto yy141; } else { - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy141; + goto yy3; } } } -yy437: - YYDEBUG(437, *YYCURSOR); +yy436: + YYDEBUG(436, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == '\t') goto yy61; - if (yych <= 0x1F) goto yy4; - goto yy61; + if (yych == '\t') goto yy60; + if (yych <= 0x1F) goto yy3; + goto yy60; } else { if (yych <= '9') { - if (yych <= '/') goto yy4; - goto yy457; + if (yych <= '/') goto yy3; + goto yy456; } else { - if (yych <= ':') goto yy163; - if (yych <= 'C') goto yy4; - goto yy61; + if (yych <= ':') goto yy162; + if (yych <= 'C') goto yy3; + goto yy60; } } } else { if (yych <= 'H') { - if (yych == 'F') goto yy61; - if (yych <= 'G') goto yy4; - goto yy61; + if (yych == 'F') goto yy60; + if (yych <= 'G') goto yy3; + goto yy60; } else { if (yych <= 'M') { - if (yych <= 'L') goto yy4; - goto yy61; + if (yych <= 'L') goto yy3; + goto yy60; } else { - if (yych <= 'R') goto yy4; - if (yych <= 'T') goto yy61; - goto yy4; + if (yych <= 'R') goto yy3; + if (yych <= 'T') goto yy60; + goto yy3; } } } } else { if (yych <= 'h') { if (yych <= 'c') { - if (yych == 'X') goto yy4; - if (yych <= 'Y') goto yy61; - goto yy4; + if (yych == 'X') goto yy3; + if (yych <= 'Y') goto yy60; + goto yy3; } else { if (yych <= 'e') { - if (yych <= 'd') goto yy61; - goto yy4; + if (yych <= 'd') goto yy60; + goto yy3; } else { - if (yych == 'g') goto yy4; - goto yy61; + if (yych == 'g') goto yy3; + goto yy60; } } } else { if (yych <= 't') { - if (yych == 'm') goto yy61; - if (yych <= 'r') goto yy4; - goto yy61; + if (yych == 'm') goto yy60; + if (yych <= 'r') goto yy3; + goto yy60; } else { if (yych <= 'w') { - if (yych <= 'v') goto yy4; - goto yy61; + if (yych <= 'v') goto yy3; + goto yy60; } else { - if (yych == 'y') goto yy61; - goto yy4; + if (yych == 'y') goto yy60; + goto yy3; } } } } -yy438: - YYDEBUG(438, *YYCURSOR); +yy437: + YYDEBUG(437, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'T') { if (yych <= ':') { if (yych <= ' ') { - if (yych == '\t') goto yy61; - if (yych <= 0x1F) goto yy4; - goto yy61; + if (yych == '\t') goto yy60; + if (yych <= 0x1F) goto yy3; + goto yy60; } else { if (yych <= '4') { - if (yych <= '/') goto yy4; - goto yy457; + if (yych <= '/') goto yy3; + goto yy456; } else { - if (yych <= '5') goto yy442; - if (yych <= '9') goto yy443; - goto yy163; + if (yych <= '5') goto yy441; + if (yych <= '9') goto yy442; + goto yy162; } } } else { if (yych <= 'G') { if (yych <= 'D') { - if (yych <= 'C') goto yy4; - goto yy61; + if (yych <= 'C') goto yy3; + goto yy60; } else { - if (yych == 'F') goto yy61; - goto yy4; + if (yych == 'F') goto yy60; + goto yy3; } } else { if (yych <= 'L') { - if (yych <= 'H') goto yy61; - goto yy4; + if (yych <= 'H') goto yy60; + goto yy3; } else { - if (yych <= 'M') goto yy61; - if (yych <= 'R') goto yy4; - goto yy61; + if (yych <= 'M') goto yy60; + if (yych <= 'R') goto yy3; + goto yy60; } } } } else { if (yych <= 'g') { if (yych <= 'Y') { - if (yych == 'W') goto yy61; - if (yych <= 'X') goto yy4; - goto yy61; + if (yych == 'W') goto yy60; + if (yych <= 'X') goto yy3; + goto yy60; } else { if (yych <= 'd') { - if (yych <= 'c') goto yy4; - goto yy61; + if (yych <= 'c') goto yy3; + goto yy60; } else { - if (yych == 'f') goto yy61; - goto yy4; + if (yych == 'f') goto yy60; + goto yy3; } } } else { if (yych <= 't') { if (yych <= 'l') { - if (yych <= 'h') goto yy61; - goto yy4; + if (yych <= 'h') goto yy60; + goto yy3; } else { - if (yych <= 'm') goto yy61; - if (yych <= 'r') goto yy4; - goto yy61; + if (yych <= 'm') goto yy60; + if (yych <= 'r') goto yy3; + goto yy60; } } else { if (yych <= 'w') { - if (yych <= 'v') goto yy4; - goto yy61; + if (yych <= 'v') goto yy3; + goto yy60; } else { - if (yych == 'y') goto yy61; - goto yy4; + if (yych == 'y') goto yy60; + goto yy3; } } } } -yy439: - YYDEBUG(439, *YYCURSOR); +yy438: + YYDEBUG(438, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'T') { if (yych <= 'C') { if (yych <= ' ') { - if (yych == '\t') goto yy61; - if (yych <= 0x1F) goto yy4; - goto yy61; + if (yych == '\t') goto yy60; + if (yych <= 0x1F) goto yy3; + goto yy60; } else { if (yych <= '5') { - if (yych <= '/') goto yy4; - goto yy442; + if (yych <= '/') goto yy3; + goto yy441; } else { - if (yych <= '9') goto yy443; - if (yych <= ':') goto yy163; - goto yy4; + if (yych <= '9') goto yy442; + if (yych <= ':') goto yy162; + goto yy3; } } } else { if (yych <= 'G') { - if (yych == 'E') goto yy4; - if (yych <= 'F') goto yy61; - goto yy4; + if (yych == 'E') goto yy3; + if (yych <= 'F') goto yy60; + goto yy3; } else { if (yych <= 'L') { - if (yych <= 'H') goto yy61; - goto yy4; + if (yych <= 'H') goto yy60; + goto yy3; } else { - if (yych <= 'M') goto yy61; - if (yych <= 'R') goto yy4; - goto yy61; + if (yych <= 'M') goto yy60; + if (yych <= 'R') goto yy3; + goto yy60; } } } } else { if (yych <= 'g') { if (yych <= 'Y') { - if (yych == 'W') goto yy61; - if (yych <= 'X') goto yy4; - goto yy61; + if (yych == 'W') goto yy60; + if (yych <= 'X') goto yy3; + goto yy60; } else { if (yych <= 'd') { - if (yych <= 'c') goto yy4; - goto yy61; + if (yych <= 'c') goto yy3; + goto yy60; } else { - if (yych == 'f') goto yy61; - goto yy4; + if (yych == 'f') goto yy60; + goto yy3; } } } else { if (yych <= 't') { if (yych <= 'l') { - if (yych <= 'h') goto yy61; - goto yy4; + if (yych <= 'h') goto yy60; + goto yy3; } else { - if (yych <= 'm') goto yy61; - if (yych <= 'r') goto yy4; - goto yy61; + if (yych <= 'm') goto yy60; + if (yych <= 'r') goto yy3; + goto yy60; } } else { if (yych <= 'w') { - if (yych <= 'v') goto yy4; - goto yy61; + if (yych <= 'v') goto yy3; + goto yy60; } else { - if (yych == 'y') goto yy61; - goto yy4; + if (yych == 'y') goto yy60; + goto yy3; } } } } -yy440: - YYDEBUG(440, *YYCURSOR); +yy439: + YYDEBUG(439, *YYCURSOR); ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - YYDEBUG(441, *YYCURSOR); + YYDEBUG(440, *YYCURSOR); if (yybm[0+yych] & 4) { - goto yy58; + goto yy57; } if (yych <= ',') { - if (yych == '+') goto yy440; - goto yy57; + if (yych == '+') goto yy439; + goto yy56; } else { - if (yych <= '-') goto yy440; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy55; - goto yy57; + if (yych <= '-') goto yy439; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy54; + goto yy56; } -yy442: - YYDEBUG(442, *YYCURSOR); +yy441: + YYDEBUG(441, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == '\t') goto yy61; - if (yych <= 0x1F) goto yy4; - goto yy61; + if (yych == '\t') goto yy60; + if (yych <= 0x1F) goto yy3; + goto yy60; } else { - if (yych <= '/') goto yy4; - if (yych <= '9') goto yy456; - if (yych <= 'C') goto yy4; - goto yy61; + if (yych <= '/') goto yy3; + if (yych <= '9') goto yy455; + if (yych <= 'C') goto yy3; + goto yy60; } } else { if (yych <= 'H') { - if (yych == 'F') goto yy61; - if (yych <= 'G') goto yy4; - goto yy61; + if (yych == 'F') goto yy60; + if (yych <= 'G') goto yy3; + goto yy60; } else { if (yych <= 'M') { - if (yych <= 'L') goto yy4; - goto yy61; + if (yych <= 'L') goto yy3; + goto yy60; } else { - if (yych <= 'R') goto yy4; - if (yych <= 'T') goto yy61; - goto yy4; + if (yych <= 'R') goto yy3; + if (yych <= 'T') goto yy60; + goto yy3; } } } } else { if (yych <= 'h') { if (yych <= 'c') { - if (yych == 'X') goto yy4; - if (yych <= 'Y') goto yy61; - goto yy4; + if (yych == 'X') goto yy3; + if (yych <= 'Y') goto yy60; + goto yy3; } else { if (yych <= 'e') { - if (yych <= 'd') goto yy61; - goto yy4; + if (yych <= 'd') goto yy60; + goto yy3; } else { - if (yych == 'g') goto yy4; - goto yy61; + if (yych == 'g') goto yy3; + goto yy60; } } } else { if (yych <= 't') { - if (yych == 'm') goto yy61; - if (yych <= 'r') goto yy4; - goto yy61; + if (yych == 'm') goto yy60; + if (yych <= 'r') goto yy3; + goto yy60; } else { if (yych <= 'w') { - if (yych <= 'v') goto yy4; - goto yy61; + if (yych <= 'v') goto yy3; + goto yy60; } else { - if (yych == 'y') goto yy61; - goto yy4; + if (yych == 'y') goto yy60; + goto yy3; } } } } -yy443: - YYDEBUG(443, *YYCURSOR); +yy442: + YYDEBUG(442, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == '\t') goto yy61; - if (yych <= 0x1F) goto yy4; - goto yy61; + if (yych == '\t') goto yy60; + if (yych <= 0x1F) goto yy3; + goto yy60; } else { - if (yych <= '/') goto yy4; - if (yych <= '9') goto yy444; - if (yych <= 'C') goto yy4; - goto yy61; + if (yych <= '/') goto yy3; + if (yych <= '9') goto yy443; + if (yych <= 'C') goto yy3; + goto yy60; } } else { if (yych <= 'H') { - if (yych == 'F') goto yy61; - if (yych <= 'G') goto yy4; - goto yy61; + if (yych == 'F') goto yy60; + if (yych <= 'G') goto yy3; + goto yy60; } else { if (yych <= 'M') { - if (yych <= 'L') goto yy4; - goto yy61; + if (yych <= 'L') goto yy3; + goto yy60; } else { - if (yych <= 'R') goto yy4; - if (yych <= 'T') goto yy61; - goto yy4; + if (yych <= 'R') goto yy3; + if (yych <= 'T') goto yy60; + goto yy3; } } } } else { if (yych <= 'h') { if (yych <= 'c') { - if (yych == 'X') goto yy4; - if (yych <= 'Y') goto yy61; - goto yy4; + if (yych == 'X') goto yy3; + if (yych <= 'Y') goto yy60; + goto yy3; } else { if (yych <= 'e') { - if (yych <= 'd') goto yy61; - goto yy4; + if (yych <= 'd') goto yy60; + goto yy3; } else { - if (yych == 'g') goto yy4; - goto yy61; + if (yych == 'g') goto yy3; + goto yy60; } } } else { if (yych <= 't') { - if (yych == 'm') goto yy61; - if (yych <= 'r') goto yy4; - goto yy61; + if (yych == 'm') goto yy60; + if (yych <= 'r') goto yy3; + goto yy60; } else { if (yych <= 'w') { - if (yych <= 'v') goto yy4; - goto yy61; + if (yych <= 'v') goto yy3; + goto yy60; } else { - if (yych == 'y') goto yy61; - goto yy4; + if (yych == 'y') goto yy60; + goto yy3; } } } } +yy443: + YYDEBUG(443, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy60; + if (yych >= ':') goto yy60; yy444: YYDEBUG(444, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy61; - if (yych >= ':') goto yy61; + if (yybm[0+yych] & 2) { + goto yy54; + } + if (yych != '-') goto yy60; yy445: YYDEBUG(445, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 2) { - goto yy55; - } - if (yych != '-') goto yy61; + if (yych <= '/') goto yy56; + if (yych <= '0') goto yy446; + if (yych <= '1') goto yy447; + goto yy56; yy446: YYDEBUG(446, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '0') goto yy447; - if (yych <= '1') goto yy448; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy448; + goto yy56; yy447: YYDEBUG(447, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy449; - goto yy57; + if (yych <= '/') goto yy56; + if (yych >= '3') goto yy56; yy448: YYDEBUG(448, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= '3') goto yy57; -yy449: + if (yych != '-') goto yy56; YYDEBUG(449, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '-') goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '0') goto yy450; + if (yych <= '2') goto yy451; + if (yych <= '3') goto yy452; + goto yy56; +yy450: YYDEBUG(450, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '0') goto yy451; - if (yych <= '2') goto yy452; - if (yych <= '3') goto yy453; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy453; + goto yy56; yy451: YYDEBUG(451, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy454; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy453; + goto yy56; yy452: YYDEBUG(452, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy454; - goto yy57; + if (yych <= '/') goto yy56; + if (yych >= '2') goto yy56; yy453: YYDEBUG(453, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= '2') goto yy57; + ++YYCURSOR; yy454: YYDEBUG(454, *YYCURSOR); - ++YYCURSOR; -yy455: - YYDEBUG(455, *YYCURSOR); { DEBUG_OUTPUT("iso8601date4 | iso8601date2 | iso8601dateslash | dateslash"); TIMELIB_INIT; @@ -9046,504 +9029,504 @@ yy455: TIMELIB_DEINIT; return TIMELIB_ISO_DATE; } -yy456: - YYDEBUG(456, *YYCURSOR); +yy455: + YYDEBUG(455, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == '\t') goto yy61; - if (yych <= 0x1F) goto yy4; - goto yy61; + if (yych == '\t') goto yy60; + if (yych <= 0x1F) goto yy3; + goto yy60; } else { - if (yych <= '/') goto yy4; - if (yych <= '9') goto yy445; - if (yych <= 'C') goto yy4; - goto yy61; + if (yych <= '/') goto yy3; + if (yych <= '9') goto yy444; + if (yych <= 'C') goto yy3; + goto yy60; } } else { if (yych <= 'H') { - if (yych == 'F') goto yy61; - if (yych <= 'G') goto yy4; - goto yy61; + if (yych == 'F') goto yy60; + if (yych <= 'G') goto yy3; + goto yy60; } else { if (yych <= 'M') { - if (yych <= 'L') goto yy4; - goto yy61; + if (yych <= 'L') goto yy3; + goto yy60; } else { - if (yych <= 'R') goto yy4; - if (yych <= 'T') goto yy61; - goto yy4; + if (yych <= 'R') goto yy3; + if (yych <= 'T') goto yy60; + goto yy3; } } } } else { if (yych <= 'h') { if (yych <= 'c') { - if (yych == 'X') goto yy4; - if (yych <= 'Y') goto yy61; - goto yy4; + if (yych == 'X') goto yy3; + if (yych <= 'Y') goto yy60; + goto yy3; } else { if (yych <= 'e') { - if (yych <= 'd') goto yy61; - goto yy4; + if (yych <= 'd') goto yy60; + goto yy3; } else { - if (yych == 'g') goto yy4; - goto yy61; + if (yych == 'g') goto yy3; + goto yy60; } } } else { if (yych <= 't') { - if (yych == 'm') goto yy61; - if (yych <= 'r') goto yy4; - goto yy61; + if (yych == 'm') goto yy60; + if (yych <= 'r') goto yy3; + goto yy60; } else { if (yych <= 'w') { - if (yych <= 'v') goto yy4; - goto yy61; + if (yych <= 'v') goto yy3; + goto yy60; } else { - if (yych == 'y') goto yy61; - goto yy4; + if (yych == 'y') goto yy60; + goto yy3; } } } } -yy457: - YYDEBUG(457, *YYCURSOR); +yy456: + YYDEBUG(456, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'T') { if (yych <= 'C') { if (yych <= ' ') { - if (yych == '\t') goto yy61; - if (yych <= 0x1F) goto yy4; - goto yy61; + if (yych == '\t') goto yy60; + if (yych <= 0x1F) goto yy3; + goto yy60; } else { if (yych <= '5') { - if (yych <= '/') goto yy4; + if (yych <= '/') goto yy3; } else { - if (yych <= '9') goto yy456; - if (yych <= ':') goto yy163; - goto yy4; + if (yych <= '9') goto yy455; + if (yych <= ':') goto yy162; + goto yy3; } } } else { if (yych <= 'G') { - if (yych == 'E') goto yy4; - if (yych <= 'F') goto yy61; - goto yy4; + if (yych == 'E') goto yy3; + if (yych <= 'F') goto yy60; + goto yy3; } else { if (yych <= 'L') { - if (yych <= 'H') goto yy61; - goto yy4; + if (yych <= 'H') goto yy60; + goto yy3; } else { - if (yych <= 'M') goto yy61; - if (yych <= 'R') goto yy4; - goto yy61; + if (yych <= 'M') goto yy60; + if (yych <= 'R') goto yy3; + goto yy60; } } } } else { if (yych <= 'g') { if (yych <= 'Y') { - if (yych == 'W') goto yy61; - if (yych <= 'X') goto yy4; - goto yy61; + if (yych == 'W') goto yy60; + if (yych <= 'X') goto yy3; + goto yy60; } else { if (yych <= 'd') { - if (yych <= 'c') goto yy4; - goto yy61; + if (yych <= 'c') goto yy3; + goto yy60; } else { - if (yych == 'f') goto yy61; - goto yy4; + if (yych == 'f') goto yy60; + goto yy3; } } } else { if (yych <= 't') { if (yych <= 'l') { - if (yych <= 'h') goto yy61; - goto yy4; + if (yych <= 'h') goto yy60; + goto yy3; } else { - if (yych <= 'm') goto yy61; - if (yych <= 'r') goto yy4; - goto yy61; + if (yych <= 'm') goto yy60; + if (yych <= 'r') goto yy3; + goto yy60; } } else { if (yych <= 'w') { - if (yych <= 'v') goto yy4; - goto yy61; + if (yych <= 'v') goto yy3; + goto yy60; } else { - if (yych == 'y') goto yy61; - goto yy4; + if (yych == 'y') goto yy60; + goto yy3; } } } } - YYDEBUG(458, *YYCURSOR); + YYDEBUG(457, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == '\t') goto yy61; - if (yych <= 0x1F) goto yy4; - goto yy61; + if (yych == '\t') goto yy60; + if (yych <= 0x1F) goto yy3; + goto yy60; } else { - if (yych <= '/') goto yy4; - if (yych <= '9') goto yy459; - if (yych <= 'C') goto yy4; - goto yy61; + if (yych <= '/') goto yy3; + if (yych <= '9') goto yy458; + if (yych <= 'C') goto yy3; + goto yy60; } } else { if (yych <= 'H') { - if (yych == 'F') goto yy61; - if (yych <= 'G') goto yy4; - goto yy61; + if (yych == 'F') goto yy60; + if (yych <= 'G') goto yy3; + goto yy60; } else { if (yych <= 'M') { - if (yych <= 'L') goto yy4; - goto yy61; + if (yych <= 'L') goto yy3; + goto yy60; } else { - if (yych <= 'R') goto yy4; - if (yych <= 'T') goto yy61; - goto yy4; + if (yych <= 'R') goto yy3; + if (yych <= 'T') goto yy60; + goto yy3; } } } } else { if (yych <= 'h') { if (yych <= 'c') { - if (yych == 'X') goto yy4; - if (yych <= 'Y') goto yy61; - goto yy4; + if (yych == 'X') goto yy3; + if (yych <= 'Y') goto yy60; + goto yy3; } else { if (yych <= 'e') { - if (yych <= 'd') goto yy61; - goto yy4; + if (yych <= 'd') goto yy60; + goto yy3; } else { - if (yych == 'g') goto yy4; - goto yy61; + if (yych == 'g') goto yy3; + goto yy60; } } } else { if (yych <= 't') { - if (yych == 'm') goto yy61; - if (yych <= 'r') goto yy4; - goto yy61; + if (yych == 'm') goto yy60; + if (yych <= 'r') goto yy3; + goto yy60; } else { if (yych <= 'w') { - if (yych <= 'v') goto yy4; - goto yy61; + if (yych <= 'v') goto yy3; + goto yy60; } else { - if (yych == 'y') goto yy61; - goto yy4; + if (yych == 'y') goto yy60; + goto yy3; } } } } -yy459: - YYDEBUG(459, *YYCURSOR); +yy458: + YYDEBUG(458, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 2) { - goto yy55; + goto yy54; } if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == '\t') goto yy61; - if (yych <= 0x1F) goto yy4; - goto yy61; + if (yych == '\t') goto yy60; + if (yych <= 0x1F) goto yy3; + goto yy60; } else { - if (yych == '-') goto yy446; - if (yych <= 'C') goto yy4; - goto yy61; + if (yych == '-') goto yy445; + if (yych <= 'C') goto yy3; + goto yy60; } } else { if (yych <= 'H') { - if (yych == 'F') goto yy61; - if (yych <= 'G') goto yy4; - goto yy61; + if (yych == 'F') goto yy60; + if (yych <= 'G') goto yy3; + goto yy60; } else { if (yych <= 'M') { - if (yych <= 'L') goto yy4; - goto yy61; + if (yych <= 'L') goto yy3; + goto yy60; } else { - if (yych <= 'R') goto yy4; - if (yych <= 'T') goto yy61; - goto yy4; + if (yych <= 'R') goto yy3; + if (yych <= 'T') goto yy60; + goto yy3; } } } } else { if (yych <= 'h') { if (yych <= 'c') { - if (yych == 'X') goto yy4; - if (yych <= 'Y') goto yy61; - goto yy4; + if (yych == 'X') goto yy3; + if (yych <= 'Y') goto yy60; + goto yy3; } else { if (yych <= 'e') { - if (yych <= 'd') goto yy61; - goto yy4; + if (yych <= 'd') goto yy60; + goto yy3; } else { - if (yych == 'g') goto yy4; - goto yy61; + if (yych == 'g') goto yy3; + goto yy60; } } } else { if (yych <= 't') { - if (yych == 'm') goto yy61; - if (yych <= 'r') goto yy4; - goto yy61; + if (yych == 'm') goto yy60; + if (yych <= 'r') goto yy3; + goto yy60; } else { if (yych <= 'w') { - if (yych <= 'v') goto yy4; - goto yy61; + if (yych <= 'v') goto yy3; + goto yy60; } else { - if (yych == 'y') goto yy61; - goto yy4; + if (yych == 'y') goto yy60; + goto yy3; } } } } +yy459: + YYDEBUG(459, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy461; + if (yych <= '0') goto yy735; + if (yych <= '1') goto yy736; + if (yych <= '9') goto yy737; + goto yy461; yy460: YYDEBUG(460, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy462; - if (yych <= '0') goto yy736; - if (yych <= '1') goto yy737; - if (yych <= '9') goto yy738; - goto yy462; -yy461: - YYDEBUG(461, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13); yych = *YYCURSOR; -yy462: - YYDEBUG(462, *YYCURSOR); +yy461: + YYDEBUG(461, *YYCURSOR); YYDEBUG(-1, yych); switch (yych) { case '\t': - case ' ': goto yy461; + case ' ': goto yy460; case '-': - case '.': goto yy577; + case '.': goto yy576; case 'A': - case 'a': goto yy480; + case 'a': goto yy479; case 'D': - case 'd': goto yy466; + case 'd': goto yy465; case 'F': - case 'f': goto yy467; + case 'f': goto yy466; case 'H': - case 'h': goto yy64; - case 'I': goto yy475; + case 'h': goto yy63; + case 'I': goto yy474; case 'J': - case 'j': goto yy479; + case 'j': goto yy478; case 'M': - case 'm': goto yy465; + case 'm': goto yy464; case 'N': - case 'n': goto yy482; + case 'n': goto yy481; case 'O': - case 'o': goto yy481; + case 'o': goto yy480; case 'P': - case 'p': goto yy484; + case 'p': goto yy483; case 'S': - case 's': goto yy463; + case 's': goto yy462; case 'T': - case 't': goto yy69; - case 'V': goto yy477; + case 't': goto yy68; + case 'V': goto yy476; case 'W': - case 'w': goto yy68; - case 'X': goto yy478; + case 'w': goto yy67; + case 'X': goto yy477; case 'Y': - case 'y': goto yy67; - default: goto yy57; + case 'y': goto yy66; + default: goto yy56; } -yy463: - YYDEBUG(463, *YYCURSOR); +yy462: + YYDEBUG(462, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { if (yych <= 'D') { - if (yych == 'A') goto yy127; - goto yy57; + if (yych == 'A') goto yy126; + goto yy56; } else { - if (yych <= 'E') goto yy1049; - if (yych <= 'T') goto yy57; - goto yy126; + if (yych <= 'E') goto yy1048; + if (yych <= 'T') goto yy56; + goto yy125; } } else { if (yych <= 'd') { - if (yych == 'a') goto yy127; - goto yy57; + if (yych == 'a') goto yy126; + goto yy56; } else { - if (yych <= 'e') goto yy1049; - if (yych == 'u') goto yy126; - goto yy57; + if (yych <= 'e') goto yy1048; + if (yych == 'u') goto yy125; + goto yy56; } } -yy464: - YYDEBUG(464, *YYCURSOR); +yy463: + YYDEBUG(463, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '`') { if (yych <= 'D') { - if (yych == 'A') goto yy127; - goto yy57; + if (yych == 'A') goto yy126; + goto yy56; } else { - if (yych <= 'E') goto yy1049; - if (yych == 'U') goto yy126; - goto yy57; + if (yych <= 'E') goto yy1048; + if (yych == 'U') goto yy125; + goto yy56; } } else { if (yych <= 'e') { - if (yych <= 'a') goto yy127; - if (yych <= 'd') goto yy57; - goto yy1049; + if (yych <= 'a') goto yy126; + if (yych <= 'd') goto yy56; + goto yy1048; } else { - if (yych <= 's') goto yy57; - if (yych <= 't') goto yy729; - if (yych <= 'u') goto yy126; - goto yy57; + if (yych <= 's') goto yy56; + if (yych <= 't') goto yy728; + if (yych <= 'u') goto yy125; + goto yy56; } } -yy465: - YYDEBUG(465, *YYCURSOR); +yy464: + YYDEBUG(464, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { if (yych <= 'H') { - if (yych == 'A') goto yy592; - goto yy57; + if (yych == 'A') goto yy591; + goto yy56; } else { - if (yych <= 'I') goto yy118; - if (yych <= 'N') goto yy57; - goto yy117; + if (yych <= 'I') goto yy117; + if (yych <= 'N') goto yy56; + goto yy116; } } else { if (yych <= 'h') { - if (yych == 'a') goto yy592; - goto yy57; + if (yych == 'a') goto yy591; + goto yy56; } else { - if (yych <= 'i') goto yy118; - if (yych == 'o') goto yy117; - goto yy57; + if (yych <= 'i') goto yy117; + if (yych == 'o') goto yy116; + goto yy56; } } -yy466: - YYDEBUG(466, *YYCURSOR); +yy465: + YYDEBUG(465, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'E') { - if (yych == 'A') goto yy114; - if (yych <= 'D') goto yy57; - goto yy579; + if (yych == 'A') goto yy113; + if (yych <= 'D') goto yy56; + goto yy578; } else { if (yych <= 'a') { - if (yych <= '`') goto yy57; - goto yy114; + if (yych <= '`') goto yy56; + goto yy113; } else { - if (yych == 'e') goto yy579; - goto yy57; + if (yych == 'e') goto yy578; + goto yy56; } } -yy467: - YYDEBUG(467, *YYCURSOR); +yy466: + YYDEBUG(466, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'R') { if (yych <= 'N') { - if (yych == 'E') goto yy595; - goto yy57; + if (yych == 'E') goto yy594; + goto yy56; } else { - if (yych <= 'O') goto yy99; - if (yych <= 'Q') goto yy57; - goto yy98; + if (yych <= 'O') goto yy98; + if (yych <= 'Q') goto yy56; + goto yy97; } } else { if (yych <= 'n') { - if (yych == 'e') goto yy595; - goto yy57; + if (yych == 'e') goto yy594; + goto yy56; } else { - if (yych <= 'o') goto yy99; - if (yych == 'r') goto yy98; - goto yy57; + if (yych <= 'o') goto yy98; + if (yych == 'r') goto yy97; + goto yy56; } } -yy468: - YYDEBUG(468, *YYCURSOR); +yy467: + YYDEBUG(467, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'H') goto yy70; - if (yych <= 'T') goto yy57; - goto yy71; + if (yych == 'H') goto yy69; + if (yych <= 'T') goto yy56; + goto yy70; } else { if (yych <= 'h') { - if (yych <= 'g') goto yy57; - goto yy1048; + if (yych <= 'g') goto yy56; + goto yy1047; } else { - if (yych == 'u') goto yy71; - goto yy57; + if (yych == 'u') goto yy70; + goto yy56; } } +yy468: + YYDEBUG(468, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '-') goto yy741; + if (yych <= '/') goto yy60; + if (yych <= '9') goto yy740; + goto yy60; yy469: YYDEBUG(469, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '-') goto yy742; - if (yych <= '/') goto yy61; - if (yych <= '9') goto yy741; - goto yy61; -yy470: - YYDEBUG(470, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'c') { - if (yych == 'O') goto yy530; - goto yy57; + if (yych == 'O') goto yy529; + goto yy56; } else { - if (yych <= 'd') goto yy729; - if (yych == 'o') goto yy530; - goto yy57; + if (yych <= 'd') goto yy728; + if (yych == 'o') goto yy529; + goto yy56; } +yy470: + YYDEBUG(470, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'd') goto yy728; + goto yy56; yy471: YYDEBUG(471, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'd') goto yy729; - goto yy57; -yy472: - YYDEBUG(472, *YYCURSOR); - yych = *++YYCURSOR; YYDEBUG(-1, yych); switch (yych) { case '0': case '1': - case '2': goto yy666; - case '3': goto yy668; + case '2': goto yy665; + case '3': goto yy667; case '4': case '5': case '6': case '7': case '8': - case '9': goto yy669; + case '9': goto yy668; case 'A': - case 'a': goto yy673; + case 'a': goto yy672; case 'D': - case 'd': goto yy677; + case 'd': goto yy676; case 'F': - case 'f': goto yy671; + case 'f': goto yy670; case 'J': - case 'j': goto yy670; + case 'j': goto yy669; case 'M': - case 'm': goto yy672; + case 'm': goto yy671; case 'N': - case 'n': goto yy676; + case 'n': goto yy675; case 'O': - case 'o': goto yy675; + case 'o': goto yy674; case 'S': - case 's': goto yy674; - default: goto yy57; + case 's': goto yy673; + default: goto yy56; } -yy473: - YYDEBUG(473, *YYCURSOR); +yy472: + YYDEBUG(472, *YYCURSOR); yych = *++YYCURSOR; YYDEBUG(-1, yych); switch (yych) { - case '0': goto yy616; - case '1': goto yy617; + case '0': goto yy615; + case '1': goto yy616; case '2': case '3': case '4': @@ -9551,60 +9534,60 @@ yy473: case '6': case '7': case '8': - case '9': goto yy618; + case '9': goto yy617; case 'A': - case 'a': goto yy622; + case 'a': goto yy621; case 'D': - case 'd': goto yy626; + case 'd': goto yy625; case 'F': - case 'f': goto yy620; + case 'f': goto yy619; case 'J': - case 'j': goto yy619; + case 'j': goto yy618; case 'M': - case 'm': goto yy621; + case 'm': goto yy620; case 'N': - case 'n': goto yy625; + case 'n': goto yy624; case 'O': - case 'o': goto yy624; + case 'o': goto yy623; case 'S': - case 's': goto yy623; - default: goto yy578; + case 's': goto yy622; + default: goto yy577; } -yy474: - YYDEBUG(474, *YYCURSOR); +yy473: + YYDEBUG(473, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '1') { - if (yych <= '/') goto yy578; - if (yych <= '0') goto yy568; - goto yy569; + if (yych <= '/') goto yy577; + if (yych <= '0') goto yy567; + goto yy568; } else { - if (yych <= '5') goto yy570; - if (yych <= '9') goto yy571; - goto yy578; + if (yych <= '5') goto yy569; + if (yych <= '9') goto yy570; + goto yy577; } -yy475: - YYDEBUG(475, *YYCURSOR); +yy474: + YYDEBUG(474, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; + if (yych == '\t') goto yy531; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - if (yych <= '.') goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + if (yych <= '.') goto yy531; } } else { if (yych <= 'U') { - if (yych <= '9') goto yy534; - if (yych == 'I') goto yy567; + if (yych <= '9') goto yy533; + if (yych == 'I') goto yy566; } else { - if (yych == 'W') goto yy476; - if (yych <= 'X') goto yy540; + if (yych == 'W') goto yy475; + if (yych <= 'X') goto yy539; } } -yy476: - YYDEBUG(476, *YYCURSOR); +yy475: + YYDEBUG(475, *YYCURSOR); { DEBUG_OUTPUT("datenoyearrev"); TIMELIB_INIT; @@ -9615,146 +9598,146 @@ yy476: TIMELIB_DEINIT; return TIMELIB_DATE_TEXT; } -yy477: - YYDEBUG(477, *YYCURSOR); +yy476: + YYDEBUG(476, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= '\t') { - if (yych <= 0x08) goto yy476; - goto yy532; + if (yych <= 0x08) goto yy475; + goto yy531; } else { - if (yych == ' ') goto yy532; - goto yy476; + if (yych == ' ') goto yy531; + goto yy475; } } else { if (yych <= '9') { - if (yych <= '.') goto yy532; - if (yych <= '/') goto yy476; - goto yy534; + if (yych <= '.') goto yy531; + if (yych <= '/') goto yy475; + goto yy533; } else { - if (yych == 'I') goto yy565; - goto yy476; + if (yych == 'I') goto yy564; + goto yy475; } } -yy478: - YYDEBUG(478, *YYCURSOR); +yy477: + YYDEBUG(477, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= '\t') { - if (yych <= 0x08) goto yy476; - goto yy532; + if (yych <= 0x08) goto yy475; + goto yy531; } else { - if (yych == ' ') goto yy532; - goto yy476; + if (yych == ' ') goto yy531; + goto yy475; } } else { if (yych <= '9') { - if (yych <= '.') goto yy532; - if (yych <= '/') goto yy476; - goto yy534; + if (yych <= '.') goto yy531; + if (yych <= '/') goto yy475; + goto yy533; } else { - if (yych == 'I') goto yy564; - goto yy476; + if (yych == 'I') goto yy563; + goto yy475; } } -yy479: - YYDEBUG(479, *YYCURSOR); +yy478: + YYDEBUG(478, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'A') goto yy557; - if (yych <= 'T') goto yy57; - goto yy556; + if (yych == 'A') goto yy556; + if (yych <= 'T') goto yy56; + goto yy555; } else { if (yych <= 'a') { - if (yych <= '`') goto yy57; - goto yy557; + if (yych <= '`') goto yy56; + goto yy556; } else { - if (yych == 'u') goto yy556; - goto yy57; + if (yych == 'u') goto yy555; + goto yy56; } } -yy480: - YYDEBUG(480, *YYCURSOR); +yy479: + YYDEBUG(479, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'T') { if (yych <= 'L') { - if (yych == '.') goto yy485; - goto yy57; + if (yych == '.') goto yy484; + goto yy56; } else { - if (yych <= 'M') goto yy486; - if (yych == 'P') goto yy550; - goto yy57; + if (yych <= 'M') goto yy485; + if (yych == 'P') goto yy549; + goto yy56; } } else { if (yych <= 'o') { - if (yych <= 'U') goto yy549; - if (yych == 'm') goto yy486; - goto yy57; + if (yych <= 'U') goto yy548; + if (yych == 'm') goto yy485; + goto yy56; } else { - if (yych <= 'p') goto yy550; - if (yych == 'u') goto yy549; - goto yy57; + if (yych <= 'p') goto yy549; + if (yych == 'u') goto yy548; + goto yy56; } } +yy480: + YYDEBUG(480, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy543; + if (yych == 'c') goto yy543; + goto yy56; yy481: YYDEBUG(481, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy544; - if (yych == 'c') goto yy544; - goto yy57; + if (yych == 'O') goto yy529; + if (yych == 'o') goto yy529; + goto yy56; yy482: YYDEBUG(482, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy530; - if (yych == 'o') goto yy530; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy489; + if (yych <= '9') goto yy491; + goto yy56; yy483: YYDEBUG(483, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy490; - if (yych <= '9') goto yy492; - goto yy57; -yy484: - YYDEBUG(484, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'L') { - if (yych != '.') goto yy57; + if (yych != '.') goto yy56; } else { - if (yych <= 'M') goto yy486; - if (yych == 'm') goto yy486; - goto yy57; + if (yych <= 'M') goto yy485; + if (yych == 'm') goto yy485; + goto yy56; } +yy484: + YYDEBUG(484, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy485; + if (yych != 'm') goto yy56; yy485: YYDEBUG(485, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy486; - if (yych != 'm') goto yy57; -yy486: - YYDEBUG(486, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 0x1F) { - if (yych <= 0x00) goto yy488; - if (yych == '\t') goto yy488; - goto yy57; + if (yych <= 0x00) goto yy487; + if (yych == '\t') goto yy487; + goto yy56; } else { - if (yych <= ' ') goto yy488; - if (yych != '.') goto yy57; + if (yych <= ' ') goto yy487; + if (yych != '.') goto yy56; } - YYDEBUG(487, *YYCURSOR); + YYDEBUG(486, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '\t') { - if (yych <= 0x00) goto yy488; - if (yych <= 0x08) goto yy57; + if (yych <= 0x00) goto yy487; + if (yych <= 0x08) goto yy56; } else { - if (yych != ' ') goto yy57; + if (yych != ' ') goto yy56; } -yy488: - YYDEBUG(488, *YYCURSOR); +yy487: + YYDEBUG(487, *YYCURSOR); ++YYCURSOR; - YYDEBUG(489, *YYCURSOR); + YYDEBUG(488, *YYCURSOR); { DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12"); TIMELIB_INIT; @@ -9770,18 +9753,18 @@ yy488: TIMELIB_DEINIT; return TIMELIB_TIME12; } -yy490: - YYDEBUG(490, *YYCURSOR); +yy489: + YYDEBUG(489, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy493; + if (yych == '.') goto yy492; } else { - if (yych <= '9') goto yy507; - if (yych <= ':') goto yy493; + if (yych <= '9') goto yy506; + if (yych <= ':') goto yy492; } -yy491: - YYDEBUG(491, *YYCURSOR); +yy490: + YYDEBUG(490, *YYCURSOR); { int tz_not_found; DEBUG_OUTPUT("timeshort24 | timelong24 | iso8601long"); @@ -9806,315 +9789,315 @@ yy491: TIMELIB_DEINIT; return TIMELIB_TIME24_WITH_ZONE; } -yy492: - YYDEBUG(492, *YYCURSOR); +yy491: + YYDEBUG(491, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy493; - if (yych != ':') goto yy491; + if (yych == '.') goto yy492; + if (yych != ':') goto yy490; +yy492: + YYDEBUG(492, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy493; + if (yych <= '6') goto yy494; + if (yych <= '9') goto yy495; + goto yy56; yy493: YYDEBUG(493, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy494; - if (yych <= '6') goto yy495; - if (yych <= '9') goto yy496; - goto yy57; + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy496; + if (yych <= '/') goto yy490; + if (yych <= '9') goto yy499; + goto yy490; yy494: YYDEBUG(494, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy497; - if (yych <= '/') goto yy491; - if (yych <= '9') goto yy500; - goto yy491; + if (yych == '.') goto yy496; + if (yych == '0') goto yy499; + goto yy490; yy495: YYDEBUG(495, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy497; - if (yych == '0') goto yy500; - goto yy491; + if (yych != '.') goto yy490; yy496: YYDEBUG(496, *YYCURSOR); - yyaccept = 11; - yych = *(YYMARKER = ++YYCURSOR); - if (yych != '.') goto yy491; + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; yy497: YYDEBUG(497, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; -yy498: - YYDEBUG(498, *YYCURSOR); ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; + YYDEBUG(498, *YYCURSOR); + if (yych <= '/') goto yy490; + if (yych <= '9') goto yy497; + goto yy490; +yy499: YYDEBUG(499, *YYCURSOR); - if (yych <= '/') goto yy491; - if (yych <= '9') goto yy498; - goto yy491; -yy500: - YYDEBUG(500, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '@') { if (yych <= 0x1F) { - if (yych != '\t') goto yy491; + if (yych != '\t') goto yy490; } else { - if (yych <= ' ') goto yy501; - if (yych == '.') goto yy497; - goto yy491; + if (yych <= ' ') goto yy500; + if (yych == '.') goto yy496; + goto yy490; } } else { if (yych <= '`') { - if (yych <= 'A') goto yy503; - if (yych == 'P') goto yy503; - goto yy491; + if (yych <= 'A') goto yy502; + if (yych == 'P') goto yy502; + goto yy490; } else { - if (yych <= 'a') goto yy503; - if (yych == 'p') goto yy503; - goto yy491; + if (yych <= 'a') goto yy502; + if (yych == 'p') goto yy502; + goto yy490; } } -yy501: - YYDEBUG(501, *YYCURSOR); +yy500: + YYDEBUG(500, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); yych = *YYCURSOR; - YYDEBUG(502, *YYCURSOR); + YYDEBUG(501, *YYCURSOR); if (yych <= 'A') { if (yych <= 0x1F) { - if (yych == '\t') goto yy501; - goto yy57; + if (yych == '\t') goto yy500; + goto yy56; } else { - if (yych <= ' ') goto yy501; - if (yych <= '@') goto yy57; + if (yych <= ' ') goto yy500; + if (yych <= '@') goto yy56; } } else { if (yych <= '`') { - if (yych != 'P') goto yy57; + if (yych != 'P') goto yy56; } else { - if (yych <= 'a') goto yy503; - if (yych != 'p') goto yy57; + if (yych <= 'a') goto yy502; + if (yych != 'p') goto yy56; } } -yy503: - YYDEBUG(503, *YYCURSOR); +yy502: + YYDEBUG(502, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'L') { - if (yych != '.') goto yy57; + if (yych != '.') goto yy56; } else { - if (yych <= 'M') goto yy505; - if (yych == 'm') goto yy505; - goto yy57; + if (yych <= 'M') goto yy504; + if (yych == 'm') goto yy504; + goto yy56; } - YYDEBUG(504, *YYCURSOR); + YYDEBUG(503, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy505; - if (yych != 'm') goto yy57; -yy505: - YYDEBUG(505, *YYCURSOR); + if (yych == 'M') goto yy504; + if (yych != 'm') goto yy56; +yy504: + YYDEBUG(504, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 0x1F) { - if (yych <= 0x00) goto yy488; - if (yych == '\t') goto yy488; - goto yy57; + if (yych <= 0x00) goto yy487; + if (yych == '\t') goto yy487; + goto yy56; } else { - if (yych <= ' ') goto yy488; - if (yych != '.') goto yy57; + if (yych <= ' ') goto yy487; + if (yych != '.') goto yy56; } - YYDEBUG(506, *YYCURSOR); + YYDEBUG(505, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '\t') { - if (yych <= 0x00) goto yy488; - if (yych <= 0x08) goto yy57; - goto yy488; + if (yych <= 0x00) goto yy487; + if (yych <= 0x08) goto yy56; + goto yy487; } else { - if (yych == ' ') goto yy488; - goto yy57; + if (yych == ' ') goto yy487; + goto yy56; } -yy507: - YYDEBUG(507, *YYCURSOR); +yy506: + YYDEBUG(506, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ':') { if (yych <= ' ') { - if (yych == '\t') goto yy508; - if (yych <= 0x1F) goto yy491; + if (yych == '\t') goto yy507; + if (yych <= 0x1F) goto yy490; } else { - if (yych == '.') goto yy493; - if (yych <= '9') goto yy491; - goto yy511; + if (yych == '.') goto yy492; + if (yych <= '9') goto yy490; + goto yy510; } } else { if (yych <= 'P') { - if (yych == 'A') goto yy510; - if (yych <= 'O') goto yy491; - goto yy510; + if (yych == 'A') goto yy509; + if (yych <= 'O') goto yy490; + goto yy509; } else { if (yych <= 'a') { - if (yych <= '`') goto yy491; - goto yy510; + if (yych <= '`') goto yy490; + goto yy509; } else { - if (yych == 'p') goto yy510; - goto yy491; + if (yych == 'p') goto yy509; + goto yy490; } } } -yy508: - YYDEBUG(508, *YYCURSOR); +yy507: + YYDEBUG(507, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); yych = *YYCURSOR; - YYDEBUG(509, *YYCURSOR); + YYDEBUG(508, *YYCURSOR); if (yych <= 'A') { if (yych <= 0x1F) { - if (yych == '\t') goto yy508; - goto yy57; + if (yych == '\t') goto yy507; + goto yy56; } else { - if (yych <= ' ') goto yy508; - if (yych <= '@') goto yy57; + if (yych <= ' ') goto yy507; + if (yych <= '@') goto yy56; } } else { if (yych <= '`') { - if (yych != 'P') goto yy57; + if (yych != 'P') goto yy56; } else { - if (yych <= 'a') goto yy510; - if (yych != 'p') goto yy57; + if (yych <= 'a') goto yy509; + if (yych != 'p') goto yy56; } } -yy510: - YYDEBUG(510, *YYCURSOR); +yy509: + YYDEBUG(509, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'L') { - if (yych == '.') goto yy527; - goto yy57; + if (yych == '.') goto yy526; + goto yy56; } else { - if (yych <= 'M') goto yy528; - if (yych == 'm') goto yy528; - goto yy57; + if (yych <= 'M') goto yy527; + if (yych == 'm') goto yy527; + goto yy56; } +yy510: + YYDEBUG(510, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy511; + if (yych <= '6') goto yy512; + if (yych <= '9') goto yy495; + goto yy56; yy511: YYDEBUG(511, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy512; - if (yych <= '6') goto yy513; - if (yych <= '9') goto yy496; - goto yy57; + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy496; + if (yych <= '/') goto yy490; + if (yych <= '9') goto yy513; + goto yy490; yy512: YYDEBUG(512, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy497; - if (yych <= '/') goto yy491; - if (yych <= '9') goto yy514; - goto yy491; + if (yych == '.') goto yy496; + if (yych != '0') goto yy490; yy513: YYDEBUG(513, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy497; - if (yych != '0') goto yy491; -yy514: - YYDEBUG(514, *YYCURSOR); - yyaccept = 11; - yych = *(YYMARKER = ++YYCURSOR); if (yych <= ':') { if (yych <= ' ') { - if (yych == '\t') goto yy501; - if (yych <= 0x1F) goto yy491; - goto yy501; + if (yych == '\t') goto yy500; + if (yych <= 0x1F) goto yy490; + goto yy500; } else { - if (yych == '.') goto yy515; - if (yych <= '9') goto yy491; - goto yy516; + if (yych == '.') goto yy514; + if (yych <= '9') goto yy490; + goto yy515; } } else { if (yych <= 'P') { - if (yych == 'A') goto yy503; - if (yych <= 'O') goto yy491; - goto yy503; + if (yych == 'A') goto yy502; + if (yych <= 'O') goto yy490; + goto yy502; } else { if (yych <= 'a') { - if (yych <= '`') goto yy491; - goto yy503; + if (yych <= '`') goto yy490; + goto yy502; } else { - if (yych == 'p') goto yy503; - goto yy491; + if (yych == 'p') goto yy502; + goto yy490; } } } +yy514: + YYDEBUG(514, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy524; + goto yy56; yy515: YYDEBUG(515, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy525; - goto yy57; + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; yy516: YYDEBUG(516, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; -yy517: - YYDEBUG(517, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); yych = *YYCURSOR; - YYDEBUG(518, *YYCURSOR); + YYDEBUG(517, *YYCURSOR); if (yych <= 'O') { if (yych <= '9') { - if (yych <= '/') goto yy57; - goto yy517; + if (yych <= '/') goto yy56; + goto yy516; } else { - if (yych != 'A') goto yy57; + if (yych != 'A') goto yy56; } } else { if (yych <= 'a') { - if (yych <= 'P') goto yy519; - if (yych <= '`') goto yy57; + if (yych <= 'P') goto yy518; + if (yych <= '`') goto yy56; } else { - if (yych != 'p') goto yy57; + if (yych != 'p') goto yy56; } } -yy519: - YYDEBUG(519, *YYCURSOR); +yy518: + YYDEBUG(518, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'L') { - if (yych != '.') goto yy57; + if (yych != '.') goto yy56; } else { - if (yych <= 'M') goto yy521; - if (yych == 'm') goto yy521; - goto yy57; + if (yych <= 'M') goto yy520; + if (yych == 'm') goto yy520; + goto yy56; } - YYDEBUG(520, *YYCURSOR); + YYDEBUG(519, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy521; - if (yych != 'm') goto yy57; -yy521: - YYDEBUG(521, *YYCURSOR); + if (yych == 'M') goto yy520; + if (yych != 'm') goto yy56; +yy520: + YYDEBUG(520, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 0x1F) { - if (yych <= 0x00) goto yy523; - if (yych == '\t') goto yy523; - goto yy57; + if (yych <= 0x00) goto yy522; + if (yych == '\t') goto yy522; + goto yy56; } else { - if (yych <= ' ') goto yy523; - if (yych != '.') goto yy57; + if (yych <= ' ') goto yy522; + if (yych != '.') goto yy56; } - YYDEBUG(522, *YYCURSOR); + YYDEBUG(521, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '\t') { - if (yych <= 0x00) goto yy523; - if (yych <= 0x08) goto yy57; + if (yych <= 0x00) goto yy522; + if (yych <= 0x08) goto yy56; } else { - if (yych != ' ') goto yy57; + if (yych != ' ') goto yy56; } -yy523: - YYDEBUG(523, *YYCURSOR); +yy522: + YYDEBUG(522, *YYCURSOR); ++YYCURSOR; - YYDEBUG(524, *YYCURSOR); + YYDEBUG(523, *YYCURSOR); { DEBUG_OUTPUT("mssqltime"); TIMELIB_INIT; @@ -10133,111 +10116,111 @@ yy523: TIMELIB_DEINIT; return TIMELIB_TIME24_WITH_ZONE; } -yy525: - YYDEBUG(525, *YYCURSOR); +yy524: + YYDEBUG(524, *YYCURSOR); yyaccept = 11; YYMARKER = ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); yych = *YYCURSOR; - YYDEBUG(526, *YYCURSOR); + YYDEBUG(525, *YYCURSOR); if (yych <= 'O') { if (yych <= '9') { - if (yych <= '/') goto yy491; - goto yy525; + if (yych <= '/') goto yy490; + goto yy524; } else { - if (yych == 'A') goto yy519; - goto yy491; + if (yych == 'A') goto yy518; + goto yy490; } } else { if (yych <= 'a') { - if (yych <= 'P') goto yy519; - if (yych <= '`') goto yy491; - goto yy519; + if (yych <= 'P') goto yy518; + if (yych <= '`') goto yy490; + goto yy518; } else { - if (yych == 'p') goto yy519; - goto yy491; + if (yych == 'p') goto yy518; + goto yy490; } } +yy526: + YYDEBUG(526, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy527; + if (yych != 'm') goto yy56; yy527: YYDEBUG(527, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy528; - if (yych != 'm') goto yy57; -yy528: - YYDEBUG(528, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 0x1F) { - if (yych <= 0x00) goto yy488; - if (yych == '\t') goto yy488; - goto yy57; + if (yych <= 0x00) goto yy487; + if (yych == '\t') goto yy487; + goto yy56; } else { - if (yych <= ' ') goto yy488; - if (yych != '.') goto yy57; + if (yych <= ' ') goto yy487; + if (yych != '.') goto yy56; } - YYDEBUG(529, *YYCURSOR); + YYDEBUG(528, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '\t') { - if (yych <= 0x00) goto yy488; - if (yych <= 0x08) goto yy57; - goto yy488; + if (yych <= 0x00) goto yy487; + if (yych <= 0x08) goto yy56; + goto yy487; } else { - if (yych == ' ') goto yy488; - goto yy57; + if (yych == ' ') goto yy487; + goto yy56; } +yy529: + YYDEBUG(529, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'V') goto yy530; + if (yych != 'v') goto yy56; yy530: YYDEBUG(530, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'V') goto yy531; - if (yych != 'v') goto yy57; -yy531: - YYDEBUG(531, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych != '\t') goto yy476; + if (yych != '\t') goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; } } else { if (yych <= 'D') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'E') goto yy536; - if (yych == 'e') goto yy536; - goto yy476; + if (yych <= 'E') goto yy535; + if (yych == 'e') goto yy535; + goto yy475; } } -yy532: - YYDEBUG(532, *YYCURSOR); +yy531: + YYDEBUG(531, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4); yych = *YYCURSOR; -yy533: - YYDEBUG(533, *YYCURSOR); +yy532: + YYDEBUG(532, *YYCURSOR); if (yych <= ' ') { - if (yych == '\t') goto yy532; - if (yych <= 0x1F) goto yy57; - goto yy532; + if (yych == '\t') goto yy531; + if (yych <= 0x1F) goto yy56; + goto yy531; } else { if (yych <= '.') { - if (yych <= ',') goto yy57; - goto yy532; + if (yych <= ',') goto yy56; + goto yy531; } else { - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; } } +yy533: + YYDEBUG(533, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '/') goto yy534; + if (yych <= '9') goto yy540; yy534: YYDEBUG(534, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '/') goto yy535; - if (yych <= '9') goto yy541; -yy535: - YYDEBUG(535, *YYCURSOR); { int length = 0; DEBUG_OUTPUT("datefull"); @@ -10251,742 +10234,742 @@ yy535: TIMELIB_DEINIT; return TIMELIB_DATE_FULL; } +yy535: + YYDEBUG(535, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy536; + if (yych != 'm') goto yy56; yy536: YYDEBUG(536, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy537; - if (yych != 'm') goto yy57; + if (yych == 'B') goto yy537; + if (yych != 'b') goto yy56; yy537: YYDEBUG(537, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy538; - if (yych != 'b') goto yy57; + if (yych == 'E') goto yy538; + if (yych != 'e') goto yy56; yy538: YYDEBUG(538, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy539; - if (yych != 'e') goto yy57; + if (yych == 'R') goto yy539; + if (yych != 'r') goto yy56; yy539: YYDEBUG(539, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy540; - if (yych != 'r') goto yy57; -yy540: - YYDEBUG(540, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ' ') { - if (yych == '\t') goto yy532; - if (yych <= 0x1F) goto yy476; - goto yy532; + if (yych == '\t') goto yy531; + if (yych <= 0x1F) goto yy475; + goto yy531; } else { if (yych <= '.') { - if (yych <= ',') goto yy476; - goto yy532; + if (yych <= ',') goto yy475; + goto yy531; } else { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } } +yy540: + YYDEBUG(540, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy534; + if (yych >= ':') goto yy534; yy541: YYDEBUG(541, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy535; - if (yych >= ':') goto yy535; -yy542: + if (yych <= '/') goto yy534; + if (yych >= ':') goto yy534; YYDEBUG(542, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy535; - if (yych >= ':') goto yy535; + goto yy534; +yy543: YYDEBUG(543, *YYCURSOR); yych = *++YYCURSOR; - goto yy535; + if (yych == 'T') goto yy544; + if (yych != 't') goto yy56; yy544: YYDEBUG(544, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy545; - if (yych != 't') goto yy57; -yy545: - YYDEBUG(545, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + goto yy531; } } else { if (yych <= 'N') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'O') goto yy546; - if (yych != 'o') goto yy476; + if (yych <= 'O') goto yy545; + if (yych != 'o') goto yy475; } } +yy545: + YYDEBUG(545, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy546; + if (yych != 'b') goto yy56; yy546: YYDEBUG(546, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy547; - if (yych != 'b') goto yy57; + if (yych == 'E') goto yy547; + if (yych != 'e') goto yy56; yy547: YYDEBUG(547, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy548; - if (yych != 'e') goto yy57; + if (yych == 'R') goto yy539; + if (yych == 'r') goto yy539; + goto yy56; yy548: YYDEBUG(548, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy540; - if (yych == 'r') goto yy540; - goto yy57; + if (yych == 'G') goto yy552; + if (yych == 'g') goto yy552; + goto yy56; yy549: YYDEBUG(549, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'G') goto yy553; - if (yych == 'g') goto yy553; - goto yy57; + if (yych == 'R') goto yy550; + if (yych != 'r') goto yy56; yy550: YYDEBUG(550, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy551; - if (yych != 'r') goto yy57; -yy551: - YYDEBUG(551, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + goto yy531; } } else { if (yych <= 'H') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'I') goto yy552; - if (yych != 'i') goto yy476; + if (yych <= 'I') goto yy551; + if (yych != 'i') goto yy475; } } +yy551: + YYDEBUG(551, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy539; + if (yych == 'l') goto yy539; + goto yy56; yy552: YYDEBUG(552, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy540; - if (yych == 'l') goto yy540; - goto yy57; -yy553: - YYDEBUG(553, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + goto yy531; } } else { if (yych <= 'T') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'U') goto yy554; - if (yych != 'u') goto yy476; + if (yych <= 'U') goto yy553; + if (yych != 'u') goto yy475; } } +yy553: + YYDEBUG(553, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy554; + if (yych != 's') goto yy56; yy554: YYDEBUG(554, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy555; - if (yych != 's') goto yy57; + if (yych == 'T') goto yy539; + if (yych == 't') goto yy539; + goto yy56; yy555: YYDEBUG(555, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy540; - if (yych == 't') goto yy540; - goto yy57; -yy556: - YYDEBUG(556, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'N') { - if (yych == 'L') goto yy563; - if (yych <= 'M') goto yy57; - goto yy562; + if (yych == 'L') goto yy562; + if (yych <= 'M') goto yy56; + goto yy561; } else { if (yych <= 'l') { - if (yych <= 'k') goto yy57; - goto yy563; + if (yych <= 'k') goto yy56; + goto yy562; } else { - if (yych == 'n') goto yy562; - goto yy57; + if (yych == 'n') goto yy561; + goto yy56; } } +yy556: + YYDEBUG(556, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy557; + if (yych != 'n') goto yy56; yy557: YYDEBUG(557, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy558; - if (yych != 'n') goto yy57; -yy558: - YYDEBUG(558, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + goto yy531; } } else { if (yych <= 'T') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'U') goto yy559; - if (yych != 'u') goto yy476; + if (yych <= 'U') goto yy558; + if (yych != 'u') goto yy475; } } +yy558: + YYDEBUG(558, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy559; + if (yych != 'a') goto yy56; yy559: YYDEBUG(559, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy560; - if (yych != 'a') goto yy57; + if (yych == 'R') goto yy560; + if (yych != 'r') goto yy56; yy560: YYDEBUG(560, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy561; - if (yych != 'r') goto yy57; + if (yych == 'Y') goto yy539; + if (yych == 'y') goto yy539; + goto yy56; yy561: YYDEBUG(561, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy540; - if (yych == 'y') goto yy540; - goto yy57; -yy562: - YYDEBUG(562, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + goto yy531; } } else { if (yych <= 'D') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'E') goto yy540; - if (yych == 'e') goto yy540; - goto yy476; + if (yych <= 'E') goto yy539; + if (yych == 'e') goto yy539; + goto yy475; } } -yy563: - YYDEBUG(563, *YYCURSOR); +yy562: + YYDEBUG(562, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + goto yy531; } } else { if (yych <= 'X') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'Y') goto yy540; - if (yych == 'y') goto yy540; - goto yy476; + if (yych <= 'Y') goto yy539; + if (yych == 'y') goto yy539; + goto yy475; } } -yy564: - YYDEBUG(564, *YYCURSOR); +yy563: + YYDEBUG(563, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= '\t') { - if (yych <= 0x08) goto yy476; - goto yy532; + if (yych <= 0x08) goto yy475; + goto yy531; } else { - if (yych == ' ') goto yy532; - goto yy476; + if (yych == ' ') goto yy531; + goto yy475; } } else { if (yych <= '9') { - if (yych <= '.') goto yy532; - if (yych <= '/') goto yy476; - goto yy534; + if (yych <= '.') goto yy531; + if (yych <= '/') goto yy475; + goto yy533; } else { - if (yych == 'I') goto yy540; - goto yy476; + if (yych == 'I') goto yy539; + goto yy475; } } -yy565: - YYDEBUG(565, *YYCURSOR); +yy564: + YYDEBUG(564, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= '\t') { - if (yych <= 0x08) goto yy476; - goto yy532; + if (yych <= 0x08) goto yy475; + goto yy531; } else { - if (yych == ' ') goto yy532; - goto yy476; + if (yych == ' ') goto yy531; + goto yy475; } } else { if (yych <= '9') { - if (yych <= '.') goto yy532; - if (yych <= '/') goto yy476; - goto yy534; + if (yych <= '.') goto yy531; + if (yych <= '/') goto yy475; + goto yy533; } else { - if (yych != 'I') goto yy476; + if (yych != 'I') goto yy475; } } - YYDEBUG(566, *YYCURSOR); + YYDEBUG(565, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= '\t') { - if (yych <= 0x08) goto yy476; - goto yy532; + if (yych <= 0x08) goto yy475; + goto yy531; } else { - if (yych == ' ') goto yy532; - goto yy476; + if (yych == ' ') goto yy531; + goto yy475; } } else { if (yych <= '9') { - if (yych <= '.') goto yy532; - if (yych <= '/') goto yy476; - goto yy534; + if (yych <= '.') goto yy531; + if (yych <= '/') goto yy475; + goto yy533; } else { - if (yych == 'I') goto yy540; - goto yy476; + if (yych == 'I') goto yy539; + goto yy475; } } -yy567: - YYDEBUG(567, *YYCURSOR); +yy566: + YYDEBUG(566, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= '\t') { - if (yych <= 0x08) goto yy476; - goto yy532; + if (yych <= 0x08) goto yy475; + goto yy531; } else { - if (yych == ' ') goto yy532; - goto yy476; + if (yych == ' ') goto yy531; + goto yy475; } } else { if (yych <= '9') { - if (yych <= '.') goto yy532; - if (yych <= '/') goto yy476; - goto yy534; + if (yych <= '.') goto yy531; + if (yych <= '/') goto yy475; + goto yy533; } else { - if (yych == 'I') goto yy540; - goto yy476; + if (yych == 'I') goto yy539; + goto yy475; } } +yy567: + YYDEBUG(567, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ',') goto yy490; + if (yych <= '-') goto yy601; + goto yy600; + } else { + if (yych <= '/') goto yy490; + if (yych <= '9') goto yy614; + if (yych <= ':') goto yy492; + goto yy490; + } yy568: YYDEBUG(568, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= ',') goto yy491; - if (yych <= '-') goto yy602; - goto yy601; + if (yych <= '/') { + if (yych <= ',') goto yy490; + if (yych <= '-') goto yy601; + if (yych <= '.') goto yy600; + goto yy490; } else { - if (yych <= '/') goto yy491; - if (yych <= '9') goto yy615; - if (yych <= ':') goto yy493; - goto yy491; + if (yych <= '2') goto yy614; + if (yych <= '9') goto yy613; + if (yych <= ':') goto yy492; + goto yy490; } yy569: YYDEBUG(569, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= ',') goto yy491; - if (yych <= '-') goto yy602; - if (yych <= '.') goto yy601; - goto yy491; + if (yych <= '.') { + if (yych <= ',') goto yy490; + if (yych <= '-') goto yy601; + goto yy600; } else { - if (yych <= '2') goto yy615; - if (yych <= '9') goto yy614; - if (yych <= ':') goto yy493; - goto yy491; + if (yych <= '/') goto yy490; + if (yych <= '9') goto yy613; + if (yych <= ':') goto yy492; + goto yy490; } yy570: YYDEBUG(570, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { - if (yych <= ',') goto yy491; - if (yych <= '-') goto yy602; - goto yy601; + if (yych <= ',') goto yy490; + if (yych <= '-') goto yy601; + goto yy600; } else { - if (yych <= '/') goto yy491; - if (yych <= '9') goto yy614; - if (yych <= ':') goto yy493; - goto yy491; + if (yych == ':') goto yy492; + goto yy490; } yy571: YYDEBUG(571, *YYCURSOR); - yyaccept = 11; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= ',') goto yy491; - if (yych <= '-') goto yy602; - goto yy601; - } else { - if (yych == ':') goto yy493; - goto yy491; - } + yych = *++YYCURSOR; + if (yych == 'E') goto yy594; + if (yych == 'e') goto yy594; + goto yy56; yy572: YYDEBUG(572, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy595; - if (yych == 'e') goto yy595; - goto yy57; + if (yych == 'A') goto yy591; + if (yych == 'a') goto yy591; + goto yy56; yy573: YYDEBUG(573, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy592; - if (yych == 'a') goto yy592; - goto yy57; -yy574: - YYDEBUG(574, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'P') goto yy550; - if (yych <= 'T') goto yy57; - goto yy549; + if (yych == 'P') goto yy549; + if (yych <= 'T') goto yy56; + goto yy548; } else { if (yych <= 'p') { - if (yych <= 'o') goto yy57; - goto yy550; + if (yych <= 'o') goto yy56; + goto yy549; } else { - if (yych == 'u') goto yy549; - goto yy57; + if (yych == 'u') goto yy548; + goto yy56; } } +yy574: + YYDEBUG(574, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy584; + if (yych == 'e') goto yy584; + goto yy56; yy575: YYDEBUG(575, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy585; - if (yych == 'e') goto yy585; - goto yy57; + if (yych == 'E') goto yy578; + if (yych == 'e') goto yy578; + goto yy56; yy576: YYDEBUG(576, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy579; - if (yych == 'e') goto yy579; - goto yy57; -yy577: - YYDEBUG(577, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13); yych = *YYCURSOR; -yy578: - YYDEBUG(578, *YYCURSOR); +yy577: + YYDEBUG(577, *YYCURSOR); YYDEBUG(-1, yych); switch (yych) { case '\t': case ' ': case '-': - case '.': goto yy577; + case '.': goto yy576; case 'A': - case 'a': goto yy574; + case 'a': goto yy573; case 'D': - case 'd': goto yy576; + case 'd': goto yy575; case 'F': - case 'f': goto yy572; - case 'I': goto yy475; + case 'f': goto yy571; + case 'I': goto yy474; case 'J': - case 'j': goto yy479; + case 'j': goto yy478; case 'M': - case 'm': goto yy573; + case 'm': goto yy572; case 'N': - case 'n': goto yy482; + case 'n': goto yy481; case 'O': - case 'o': goto yy481; + case 'o': goto yy480; case 'S': - case 's': goto yy575; - case 'V': goto yy477; - case 'X': goto yy478; - default: goto yy57; + case 's': goto yy574; + case 'V': goto yy476; + case 'X': goto yy477; + default: goto yy56; } +yy578: + YYDEBUG(578, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy579; + if (yych != 'c') goto yy56; yy579: YYDEBUG(579, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy580; - if (yych != 'c') goto yy57; -yy580: - YYDEBUG(580, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + goto yy531; } } else { if (yych <= 'D') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'E') goto yy581; - if (yych != 'e') goto yy476; + if (yych <= 'E') goto yy580; + if (yych != 'e') goto yy475; } } +yy580: + YYDEBUG(580, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy581; + if (yych != 'm') goto yy56; yy581: YYDEBUG(581, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy582; - if (yych != 'm') goto yy57; + if (yych == 'B') goto yy582; + if (yych != 'b') goto yy56; yy582: YYDEBUG(582, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy583; - if (yych != 'b') goto yy57; + if (yych == 'E') goto yy583; + if (yych != 'e') goto yy56; yy583: YYDEBUG(583, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy584; - if (yych != 'e') goto yy57; + if (yych == 'R') goto yy539; + if (yych == 'r') goto yy539; + goto yy56; yy584: YYDEBUG(584, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy540; - if (yych == 'r') goto yy540; - goto yy57; + if (yych == 'P') goto yy585; + if (yych != 'p') goto yy56; yy585: YYDEBUG(585, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy586; - if (yych != 'p') goto yy57; -yy586: - YYDEBUG(586, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + goto yy531; } } else { if (yych <= 'S') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'T') goto yy587; - if (yych != 't') goto yy476; + if (yych <= 'T') goto yy586; + if (yych != 't') goto yy475; } } -yy587: - YYDEBUG(587, *YYCURSOR); +yy586: + YYDEBUG(586, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + goto yy531; } } else { if (yych <= 'D') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'E') goto yy588; - if (yych != 'e') goto yy476; + if (yych <= 'E') goto yy587; + if (yych != 'e') goto yy475; } } +yy587: + YYDEBUG(587, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy588; + if (yych != 'm') goto yy56; yy588: YYDEBUG(588, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy589; - if (yych != 'm') goto yy57; + if (yych == 'B') goto yy589; + if (yych != 'b') goto yy56; yy589: YYDEBUG(589, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy590; - if (yych != 'b') goto yy57; + if (yych == 'E') goto yy590; + if (yych != 'e') goto yy56; yy590: YYDEBUG(590, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy591; - if (yych != 'e') goto yy57; + if (yych == 'R') goto yy539; + if (yych == 'r') goto yy539; + goto yy56; yy591: YYDEBUG(591, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy540; - if (yych == 'r') goto yy540; - goto yy57; -yy592: - YYDEBUG(592, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'Y') { - if (yych == 'R') goto yy593; - if (yych <= 'X') goto yy57; - goto yy540; + if (yych == 'R') goto yy592; + if (yych <= 'X') goto yy56; + goto yy539; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy57; + if (yych <= 'q') goto yy56; } else { - if (yych == 'y') goto yy540; - goto yy57; + if (yych == 'y') goto yy539; + goto yy56; } } -yy593: - YYDEBUG(593, *YYCURSOR); +yy592: + YYDEBUG(592, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + goto yy531; } } else { if (yych <= 'B') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'C') goto yy594; - if (yych != 'c') goto yy476; + if (yych <= 'C') goto yy593; + if (yych != 'c') goto yy475; } } +yy593: + YYDEBUG(593, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy539; + if (yych == 'h') goto yy539; + goto yy56; yy594: YYDEBUG(594, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy540; - if (yych == 'h') goto yy540; - goto yy57; + if (yych == 'B') goto yy595; + if (yych != 'b') goto yy56; yy595: YYDEBUG(595, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy596; - if (yych != 'b') goto yy57; -yy596: - YYDEBUG(596, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + goto yy531; } } else { if (yych <= 'Q') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'R') goto yy597; - if (yych != 'r') goto yy476; + if (yych <= 'R') goto yy596; + if (yych != 'r') goto yy475; } } +yy596: + YYDEBUG(596, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy597; + if (yych != 'u') goto yy56; yy597: YYDEBUG(597, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy598; - if (yych != 'u') goto yy57; + if (yych == 'A') goto yy598; + if (yych != 'a') goto yy56; yy598: YYDEBUG(598, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy599; - if (yych != 'a') goto yy57; + if (yych == 'R') goto yy599; + if (yych != 'r') goto yy56; yy599: YYDEBUG(599, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy600; - if (yych != 'r') goto yy57; + if (yych == 'Y') goto yy539; + if (yych == 'y') goto yy539; + goto yy56; yy600: YYDEBUG(600, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy540; - if (yych == 'y') goto yy540; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy607; + if (yych <= '6') goto yy608; + if (yych <= '9') goto yy609; + goto yy56; yy601: YYDEBUG(601, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy608; - if (yych <= '6') goto yy609; - if (yych <= '9') goto yy610; - goto yy57; -yy602: + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; YYDEBUG(602, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; +yy603: YYDEBUG(603, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; yy604: YYDEBUG(604, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; -yy605: + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; YYDEBUG(605, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; - YYDEBUG(606, *YYCURSOR); ++YYCURSOR; - YYDEBUG(607, *YYCURSOR); + YYDEBUG(606, *YYCURSOR); { DEBUG_OUTPUT("pointed date YYYY"); TIMELIB_INIT; @@ -10997,41 +10980,41 @@ yy605: TIMELIB_DEINIT; return TIMELIB_DATE_FULL_POINTED; } +yy607: + YYDEBUG(607, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy496; + if (yych <= '/') goto yy490; + if (yych <= '9') goto yy612; + goto yy490; yy608: YYDEBUG(608, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy497; - if (yych <= '/') goto yy491; - if (yych <= '9') goto yy613; - goto yy491; + if (yych <= '/') { + if (yych == '.') goto yy496; + goto yy490; + } else { + if (yych <= '0') goto yy612; + if (yych <= '9') goto yy610; + goto yy490; + } yy609: YYDEBUG(609, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '.') goto yy497; - goto yy491; - } else { - if (yych <= '0') goto yy613; - if (yych <= '9') goto yy611; - goto yy491; - } + if (yych == '.') goto yy496; + if (yych <= '/') goto yy490; + if (yych >= ':') goto yy490; yy610: YYDEBUG(610, *YYCURSOR); - yyaccept = 11; + yyaccept = 12; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy497; - if (yych <= '/') goto yy491; - if (yych >= ':') goto yy491; + if (yych <= '/') goto yy611; + if (yych <= '9') goto yy604; yy611: YYDEBUG(611, *YYCURSOR); - yyaccept = 12; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy612; - if (yych <= '9') goto yy605; -yy612: - YYDEBUG(612, *YYCURSOR); { int length = 0; DEBUG_OUTPUT("pointed date YY"); @@ -11044,646 +11027,646 @@ yy612: TIMELIB_DEINIT; return TIMELIB_DATE_FULL_POINTED; } -yy613: - YYDEBUG(613, *YYCURSOR); +yy612: + YYDEBUG(612, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= ' ') { - if (yych == '\t') goto yy501; - if (yych <= 0x1F) goto yy491; - goto yy501; + if (yych == '\t') goto yy500; + if (yych <= 0x1F) goto yy490; + goto yy500; } else { - if (yych == '.') goto yy497; - if (yych <= '/') goto yy491; - goto yy605; + if (yych == '.') goto yy496; + if (yych <= '/') goto yy490; + goto yy604; } } else { if (yych <= 'P') { - if (yych == 'A') goto yy503; - if (yych <= 'O') goto yy491; - goto yy503; + if (yych == 'A') goto yy502; + if (yych <= 'O') goto yy490; + goto yy502; } else { if (yych <= 'a') { - if (yych <= '`') goto yy491; - goto yy503; + if (yych <= '`') goto yy490; + goto yy502; } else { - if (yych == 'p') goto yy503; - goto yy491; + if (yych == 'p') goto yy502; + goto yy490; } } } -yy614: - YYDEBUG(614, *YYCURSOR); +yy613: + YYDEBUG(613, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ':') { if (yych <= ' ') { - if (yych == '\t') goto yy508; - if (yych <= 0x1F) goto yy491; - goto yy508; + if (yych == '\t') goto yy507; + if (yych <= 0x1F) goto yy490; + goto yy507; } else { - if (yych == '.') goto yy493; - if (yych <= '9') goto yy491; - goto yy493; + if (yych == '.') goto yy492; + if (yych <= '9') goto yy490; + goto yy492; } } else { if (yych <= 'P') { - if (yych == 'A') goto yy510; - if (yych <= 'O') goto yy491; - goto yy510; + if (yych == 'A') goto yy509; + if (yych <= 'O') goto yy490; + goto yy509; } else { if (yych <= 'a') { - if (yych <= '`') goto yy491; - goto yy510; + if (yych <= '`') goto yy490; + goto yy509; } else { - if (yych == 'p') goto yy510; - goto yy491; + if (yych == 'p') goto yy509; + goto yy490; } } } -yy615: - YYDEBUG(615, *YYCURSOR); +yy614: + YYDEBUG(614, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ':') { if (yych <= ' ') { - if (yych == '\t') goto yy508; - if (yych <= 0x1F) goto yy491; - goto yy508; + if (yych == '\t') goto yy507; + if (yych <= 0x1F) goto yy490; + goto yy507; } else { if (yych <= '-') { - if (yych <= ',') goto yy491; - goto yy602; + if (yych <= ',') goto yy490; + goto yy601; } else { - if (yych <= '.') goto yy601; - if (yych <= '9') goto yy491; - goto yy493; + if (yych <= '.') goto yy600; + if (yych <= '9') goto yy490; + goto yy492; } } } else { if (yych <= 'P') { - if (yych == 'A') goto yy510; - if (yych <= 'O') goto yy491; - goto yy510; + if (yych == 'A') goto yy509; + if (yych <= 'O') goto yy490; + goto yy509; } else { if (yych <= 'a') { - if (yych <= '`') goto yy491; - goto yy510; + if (yych <= '`') goto yy490; + goto yy509; } else { - if (yych == 'p') goto yy510; - goto yy491; + if (yych == 'p') goto yy509; + goto yy490; } } } +yy615: + YYDEBUG(615, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '.') { + if (yych <= ',') goto yy56; + if (yych <= '-') goto yy654; + goto yy601; + } else { + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy617; + goto yy56; + } yy616: YYDEBUG(616, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '.') { - if (yych <= ',') goto yy57; - if (yych <= '-') goto yy655; - goto yy602; + if (yych <= ',') goto yy56; + if (yych <= '-') goto yy654; + goto yy601; } else { - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy618; - goto yy57; + if (yych <= '/') goto yy56; + if (yych >= '3') goto yy56; } yy617: YYDEBUG(617, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '.') { - if (yych <= ',') goto yy57; - if (yych <= '-') goto yy655; - goto yy602; - } else { - if (yych <= '/') goto yy57; - if (yych >= '3') goto yy57; - } + if (yych <= ',') goto yy56; + if (yych <= '-') goto yy654; + if (yych <= '.') goto yy601; + goto yy56; yy618: YYDEBUG(618, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= ',') goto yy57; - if (yych <= '-') goto yy655; - if (yych <= '.') goto yy602; - goto yy57; -yy619: - YYDEBUG(619, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'A') goto yy651; - if (yych <= 'T') goto yy57; - goto yy650; + if (yych == 'A') goto yy650; + if (yych <= 'T') goto yy56; + goto yy649; } else { if (yych <= 'a') { - if (yych <= '`') goto yy57; - goto yy651; + if (yych <= '`') goto yy56; + goto yy650; } else { - if (yych == 'u') goto yy650; - goto yy57; + if (yych == 'u') goto yy649; + goto yy56; } } +yy619: + YYDEBUG(619, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy647; + if (yych == 'e') goto yy647; + goto yy56; yy620: YYDEBUG(620, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy648; - if (yych == 'e') goto yy648; - goto yy57; + if (yych == 'A') goto yy644; + if (yych == 'a') goto yy644; + goto yy56; yy621: YYDEBUG(621, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy645; - if (yych == 'a') goto yy645; - goto yy57; -yy622: - YYDEBUG(622, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'P') goto yy642; - if (yych <= 'T') goto yy57; - goto yy641; + if (yych == 'P') goto yy641; + if (yych <= 'T') goto yy56; + goto yy640; } else { if (yych <= 'p') { - if (yych <= 'o') goto yy57; - goto yy642; + if (yych <= 'o') goto yy56; + goto yy641; } else { - if (yych == 'u') goto yy641; - goto yy57; + if (yych == 'u') goto yy640; + goto yy56; } } +yy622: + YYDEBUG(622, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy637; + if (yych == 'e') goto yy637; + goto yy56; yy623: YYDEBUG(623, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy638; - if (yych == 'e') goto yy638; - goto yy57; + if (yych == 'C') goto yy635; + if (yych == 'c') goto yy635; + goto yy56; yy624: YYDEBUG(624, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy636; - if (yych == 'c') goto yy636; - goto yy57; + if (yych == 'O') goto yy633; + if (yych == 'o') goto yy633; + goto yy56; yy625: YYDEBUG(625, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy634; - if (yych == 'o') goto yy634; - goto yy57; + if (yych == 'E') goto yy626; + if (yych != 'e') goto yy56; yy626: YYDEBUG(626, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy627; - if (yych != 'e') goto yy57; + if (yych == 'C') goto yy627; + if (yych != 'c') goto yy56; yy627: YYDEBUG(627, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy628; - if (yych != 'c') goto yy57; -yy628: - YYDEBUG(628, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - if (yych >= '.') goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + if (yych >= '.') goto yy531; } } else { if (yych <= 'D') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'E') goto yy581; - if (yych == 'e') goto yy581; - goto yy476; + if (yych <= 'E') goto yy580; + if (yych == 'e') goto yy580; + goto yy475; } } +yy628: + YYDEBUG(628, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy532; + if (yych <= '0') goto yy629; + if (yych <= '2') goto yy630; + if (yych <= '3') goto yy631; + goto yy532; yy629: YYDEBUG(629, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy533; - if (yych <= '0') goto yy630; - if (yych <= '2') goto yy631; - if (yych <= '3') goto yy632; - goto yy533; + if (yych <= '/') goto yy534; + if (yych <= '9') goto yy632; + goto yy534; yy630: YYDEBUG(630, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy535; - if (yych <= '9') goto yy633; - goto yy535; + if (yych <= '/') goto yy534; + if (yych <= '9') goto yy632; + goto yy534; yy631: YYDEBUG(631, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy535; - if (yych <= '9') goto yy633; - goto yy535; + if (yych <= '/') goto yy534; + if (yych <= '1') goto yy632; + if (yych <= '9') goto yy540; + goto yy534; yy632: YYDEBUG(632, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy535; - if (yych <= '1') goto yy633; + if (yych <= '/') goto yy534; if (yych <= '9') goto yy541; - goto yy535; + goto yy534; yy633: YYDEBUG(633, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy535; - if (yych <= '9') goto yy542; - goto yy535; + if (yych == 'V') goto yy634; + if (yych != 'v') goto yy56; yy634: YYDEBUG(634, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'V') goto yy635; - if (yych != 'v') goto yy57; -yy635: - YYDEBUG(635, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - if (yych <= '-') goto yy629; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + if (yych <= '-') goto yy628; + goto yy531; } } else { if (yych <= 'D') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'E') goto yy536; - if (yych == 'e') goto yy536; - goto yy476; + if (yych <= 'E') goto yy535; + if (yych == 'e') goto yy535; + goto yy475; } } +yy635: + YYDEBUG(635, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy636; + if (yych != 't') goto yy56; yy636: YYDEBUG(636, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy637; - if (yych != 't') goto yy57; -yy637: - YYDEBUG(637, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - if (yych <= '-') goto yy629; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + if (yych <= '-') goto yy628; + goto yy531; } } else { if (yych <= 'N') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'O') goto yy546; - if (yych == 'o') goto yy546; - goto yy476; + if (yych <= 'O') goto yy545; + if (yych == 'o') goto yy545; + goto yy475; } } +yy637: + YYDEBUG(637, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'P') goto yy638; + if (yych != 'p') goto yy56; yy638: YYDEBUG(638, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy639; - if (yych != 'p') goto yy57; -yy639: - YYDEBUG(639, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - if (yych <= '-') goto yy629; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + if (yych <= '-') goto yy628; + goto yy531; } } else { if (yych <= 'S') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'T') goto yy640; - if (yych != 't') goto yy476; + if (yych <= 'T') goto yy639; + if (yych != 't') goto yy475; } } -yy640: - YYDEBUG(640, *YYCURSOR); +yy639: + YYDEBUG(639, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - if (yych <= '-') goto yy629; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + if (yych <= '-') goto yy628; + goto yy531; } } else { if (yych <= 'D') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'E') goto yy588; - if (yych == 'e') goto yy588; - goto yy476; + if (yych <= 'E') goto yy587; + if (yych == 'e') goto yy587; + goto yy475; } } +yy640: + YYDEBUG(640, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy643; + if (yych == 'g') goto yy643; + goto yy56; yy641: YYDEBUG(641, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'G') goto yy644; - if (yych == 'g') goto yy644; - goto yy57; + if (yych == 'R') goto yy642; + if (yych != 'r') goto yy56; yy642: YYDEBUG(642, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy643; - if (yych != 'r') goto yy57; -yy643: - YYDEBUG(643, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - if (yych <= '-') goto yy629; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + if (yych <= '-') goto yy628; + goto yy531; } } else { if (yych <= 'H') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'I') goto yy552; - if (yych == 'i') goto yy552; - goto yy476; + if (yych <= 'I') goto yy551; + if (yych == 'i') goto yy551; + goto yy475; } } -yy644: - YYDEBUG(644, *YYCURSOR); +yy643: + YYDEBUG(643, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - if (yych <= '-') goto yy629; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + if (yych <= '-') goto yy628; + goto yy531; } } else { if (yych <= 'T') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'U') goto yy554; - if (yych == 'u') goto yy554; - goto yy476; + if (yych <= 'U') goto yy553; + if (yych == 'u') goto yy553; + goto yy475; } } -yy645: - YYDEBUG(645, *YYCURSOR); +yy644: + YYDEBUG(644, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'Y') { - if (yych == 'R') goto yy646; - if (yych <= 'X') goto yy57; - goto yy647; + if (yych == 'R') goto yy645; + if (yych <= 'X') goto yy56; + goto yy646; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy57; + if (yych <= 'q') goto yy56; } else { - if (yych == 'y') goto yy647; - goto yy57; + if (yych == 'y') goto yy646; + goto yy56; } } -yy646: - YYDEBUG(646, *YYCURSOR); +yy645: + YYDEBUG(645, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - if (yych <= '-') goto yy629; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + if (yych <= '-') goto yy628; + goto yy531; } } else { if (yych <= 'B') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'C') goto yy594; - if (yych == 'c') goto yy594; - goto yy476; + if (yych <= 'C') goto yy593; + if (yych == 'c') goto yy593; + goto yy475; } } -yy647: - YYDEBUG(647, *YYCURSOR); +yy646: + YYDEBUG(646, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= '\t') { - if (yych <= 0x08) goto yy476; - goto yy532; + if (yych <= 0x08) goto yy475; + goto yy531; } else { - if (yych == ' ') goto yy532; - goto yy476; + if (yych == ' ') goto yy531; + goto yy475; } } else { if (yych <= '.') { - if (yych <= '-') goto yy629; - goto yy532; + if (yych <= '-') goto yy628; + goto yy531; } else { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } } +yy647: + YYDEBUG(647, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy648; + if (yych != 'b') goto yy56; yy648: YYDEBUG(648, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy649; - if (yych != 'b') goto yy57; -yy649: - YYDEBUG(649, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - if (yych <= '-') goto yy629; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + if (yych <= '-') goto yy628; + goto yy531; } } else { if (yych <= 'Q') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'R') goto yy597; - if (yych == 'r') goto yy597; - goto yy476; + if (yych <= 'R') goto yy596; + if (yych == 'r') goto yy596; + goto yy475; } } -yy650: - YYDEBUG(650, *YYCURSOR); +yy649: + YYDEBUG(649, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'N') { - if (yych == 'L') goto yy654; - if (yych <= 'M') goto yy57; - goto yy653; + if (yych == 'L') goto yy653; + if (yych <= 'M') goto yy56; + goto yy652; } else { if (yych <= 'l') { - if (yych <= 'k') goto yy57; - goto yy654; + if (yych <= 'k') goto yy56; + goto yy653; } else { - if (yych == 'n') goto yy653; - goto yy57; + if (yych == 'n') goto yy652; + goto yy56; } } +yy650: + YYDEBUG(650, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy651; + if (yych != 'n') goto yy56; yy651: YYDEBUG(651, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy652; - if (yych != 'n') goto yy57; -yy652: - YYDEBUG(652, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - if (yych <= '-') goto yy629; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + if (yych <= '-') goto yy628; + goto yy531; } } else { if (yych <= 'T') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'U') goto yy559; - if (yych == 'u') goto yy559; - goto yy476; + if (yych <= 'U') goto yy558; + if (yych == 'u') goto yy558; + goto yy475; } } -yy653: - YYDEBUG(653, *YYCURSOR); +yy652: + YYDEBUG(652, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - if (yych <= '-') goto yy629; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + if (yych <= '-') goto yy628; + goto yy531; } } else { if (yych <= 'D') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'E') goto yy540; - if (yych == 'e') goto yy540; - goto yy476; + if (yych <= 'E') goto yy539; + if (yych == 'e') goto yy539; + goto yy475; } } -yy654: - YYDEBUG(654, *YYCURSOR); +yy653: + YYDEBUG(653, *YYCURSOR); yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy532; - goto yy476; + if (yych == '\t') goto yy531; + goto yy475; } else { - if (yych <= ' ') goto yy532; - if (yych <= ',') goto yy476; - if (yych <= '-') goto yy629; - goto yy532; + if (yych <= ' ') goto yy531; + if (yych <= ',') goto yy475; + if (yych <= '-') goto yy628; + goto yy531; } } else { if (yych <= 'X') { - if (yych <= '/') goto yy476; - if (yych <= '9') goto yy534; - goto yy476; + if (yych <= '/') goto yy475; + if (yych <= '9') goto yy533; + goto yy475; } else { - if (yych <= 'Y') goto yy540; - if (yych == 'y') goto yy540; - goto yy476; + if (yych <= 'Y') goto yy539; + if (yych == 'y') goto yy539; + goto yy475; } } +yy654: + YYDEBUG(654, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych <= '2') goto yy655; + if (yych <= '3') goto yy657; + if (yych <= '9') goto yy658; + goto yy56; yy655: YYDEBUG(655, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '2') goto yy656; - if (yych <= '3') goto yy658; - if (yych <= '9') goto yy659; - goto yy57; -yy656: - YYDEBUG(656, *YYCURSOR); yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { - if (yych <= '/') goto yy657; - if (yych <= '9') goto yy665; - if (yych >= 'n') goto yy661; + if (yych <= '/') goto yy656; + if (yych <= '9') goto yy664; + if (yych >= 'n') goto yy660; } else { if (yych <= 'r') { - if (yych >= 'r') goto yy662; + if (yych >= 'r') goto yy661; } else { - if (yych <= 's') goto yy660; - if (yych <= 't') goto yy663; + if (yych <= 's') goto yy659; + if (yych <= 't') goto yy662; } } -yy657: - YYDEBUG(657, *YYCURSOR); +yy656: + YYDEBUG(656, *YYCURSOR); { int length = 0; DEBUG_OUTPUT("gnudateshort"); @@ -11696,111 +11679,111 @@ yy657: TIMELIB_DEINIT; return TIMELIB_ISO_DATE; } -yy658: - YYDEBUG(658, *YYCURSOR); +yy657: + YYDEBUG(657, *YYCURSOR); yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { if (yych <= '1') { - if (yych <= '/') goto yy657; - goto yy665; + if (yych <= '/') goto yy656; + goto yy664; } else { - if (yych <= '9') goto yy604; - if (yych <= 'm') goto yy657; - goto yy661; + if (yych <= '9') goto yy603; + if (yych <= 'm') goto yy656; + goto yy660; } } else { if (yych <= 'r') { - if (yych <= 'q') goto yy657; - goto yy662; + if (yych <= 'q') goto yy656; + goto yy661; } else { - if (yych <= 's') goto yy660; - if (yych <= 't') goto yy663; - goto yy657; + if (yych <= 's') goto yy659; + if (yych <= 't') goto yy662; + goto yy656; } } -yy659: - YYDEBUG(659, *YYCURSOR); +yy658: + YYDEBUG(658, *YYCURSOR); yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { - if (yych <= '/') goto yy657; - if (yych <= '9') goto yy604; - if (yych <= 'm') goto yy657; - goto yy661; + if (yych <= '/') goto yy656; + if (yych <= '9') goto yy603; + if (yych <= 'm') goto yy656; + goto yy660; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy657; - goto yy662; + if (yych <= 'q') goto yy656; + goto yy661; } else { - if (yych <= 's') goto yy660; - if (yych <= 't') goto yy663; - goto yy657; + if (yych <= 's') goto yy659; + if (yych <= 't') goto yy662; + goto yy656; } } +yy659: + YYDEBUG(659, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 't') goto yy663; + goto yy56; yy660: YYDEBUG(660, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 't') goto yy664; - goto yy57; + if (yych == 'd') goto yy663; + goto yy56; yy661: YYDEBUG(661, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'd') goto yy664; - goto yy57; + if (yych == 'd') goto yy663; + goto yy56; yy662: YYDEBUG(662, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'd') goto yy664; - goto yy57; + if (yych != 'h') goto yy56; yy663: YYDEBUG(663, *YYCURSOR); yych = *++YYCURSOR; - if (yych != 'h') goto yy57; + goto yy656; yy664: YYDEBUG(664, *YYCURSOR); - yych = *++YYCURSOR; - goto yy657; -yy665: - YYDEBUG(665, *YYCURSOR); yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { - if (yych <= '/') goto yy657; - if (yych <= '9') goto yy605; - if (yych <= 'm') goto yy657; - goto yy661; + if (yych <= '/') goto yy656; + if (yych <= '9') goto yy604; + if (yych <= 'm') goto yy656; + goto yy660; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy657; - goto yy662; + if (yych <= 'q') goto yy656; + goto yy661; } else { - if (yych <= 's') goto yy660; - if (yych <= 't') goto yy663; - goto yy657; + if (yych <= 's') goto yy659; + if (yych <= 't') goto yy662; + goto yy656; } } -yy666: - YYDEBUG(666, *YYCURSOR); +yy665: + YYDEBUG(665, *YYCURSOR); yyaccept = 14; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { if (yych <= '/') { - if (yych >= '/') goto yy723; + if (yych >= '/') goto yy722; } else { - if (yych <= '9') goto yy669; - if (yych >= 'n') goto yy720; + if (yych <= '9') goto yy668; + if (yych >= 'n') goto yy719; } } else { if (yych <= 'r') { - if (yych >= 'r') goto yy721; + if (yych >= 'r') goto yy720; } else { - if (yych <= 's') goto yy719; - if (yych <= 't') goto yy722; + if (yych <= 's') goto yy718; + if (yych <= 't') goto yy721; } } -yy667: - YYDEBUG(667, *YYCURSOR); +yy666: + YYDEBUG(666, *YYCURSOR); { int length = 0; DEBUG_OUTPUT("americanshort | american"); @@ -11815,238 +11798,238 @@ yy667: TIMELIB_DEINIT; return TIMELIB_AMERICAN; } -yy668: - YYDEBUG(668, *YYCURSOR); +yy667: + YYDEBUG(667, *YYCURSOR); yyaccept = 14; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { if (yych <= '/') { - if (yych <= '.') goto yy667; - goto yy723; + if (yych <= '.') goto yy666; + goto yy722; } else { - if (yych <= '1') goto yy669; - if (yych <= 'm') goto yy667; - goto yy720; + if (yych <= '1') goto yy668; + if (yych <= 'm') goto yy666; + goto yy719; } } else { if (yych <= 'r') { - if (yych <= 'q') goto yy667; - goto yy721; + if (yych <= 'q') goto yy666; + goto yy720; } else { - if (yych <= 's') goto yy719; - if (yych <= 't') goto yy722; - goto yy667; + if (yych <= 's') goto yy718; + if (yych <= 't') goto yy721; + goto yy666; } } -yy669: - YYDEBUG(669, *YYCURSOR); +yy668: + YYDEBUG(668, *YYCURSOR); yyaccept = 14; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { - if (yych == '/') goto yy723; - if (yych <= 'm') goto yy667; - goto yy720; + if (yych == '/') goto yy722; + if (yych <= 'm') goto yy666; + goto yy719; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy667; - goto yy721; + if (yych <= 'q') goto yy666; + goto yy720; } else { - if (yych <= 's') goto yy719; - if (yych <= 't') goto yy722; - goto yy667; + if (yych <= 's') goto yy718; + if (yych <= 't') goto yy721; + goto yy666; } } -yy670: - YYDEBUG(670, *YYCURSOR); +yy669: + YYDEBUG(669, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'A') goto yy718; - if (yych <= 'T') goto yy57; - goto yy717; + if (yych == 'A') goto yy717; + if (yych <= 'T') goto yy56; + goto yy716; } else { if (yych <= 'a') { - if (yych <= '`') goto yy57; - goto yy718; + if (yych <= '`') goto yy56; + goto yy717; } else { - if (yych == 'u') goto yy717; - goto yy57; + if (yych == 'u') goto yy716; + goto yy56; } } +yy670: + YYDEBUG(670, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy715; + if (yych == 'e') goto yy715; + goto yy56; yy671: YYDEBUG(671, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy716; - if (yych == 'e') goto yy716; - goto yy57; + if (yych == 'A') goto yy714; + if (yych == 'a') goto yy714; + goto yy56; yy672: YYDEBUG(672, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy715; - if (yych == 'a') goto yy715; - goto yy57; -yy673: - YYDEBUG(673, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'P') goto yy714; - if (yych <= 'T') goto yy57; - goto yy713; + if (yych == 'P') goto yy713; + if (yych <= 'T') goto yy56; + goto yy712; } else { if (yych <= 'p') { - if (yych <= 'o') goto yy57; - goto yy714; + if (yych <= 'o') goto yy56; + goto yy713; } else { - if (yych == 'u') goto yy713; - goto yy57; + if (yych == 'u') goto yy712; + goto yy56; } } +yy673: + YYDEBUG(673, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy710; + if (yych == 'e') goto yy710; + goto yy56; yy674: YYDEBUG(674, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy711; - if (yych == 'e') goto yy711; - goto yy57; + if (yych == 'C') goto yy709; + if (yych == 'c') goto yy709; + goto yy56; yy675: YYDEBUG(675, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy710; - if (yych == 'c') goto yy710; - goto yy57; + if (yych == 'O') goto yy708; + if (yych == 'o') goto yy708; + goto yy56; yy676: YYDEBUG(676, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy709; - if (yych == 'o') goto yy709; - goto yy57; + if (yych == 'E') goto yy677; + if (yych != 'e') goto yy56; yy677: YYDEBUG(677, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy678; - if (yych != 'e') goto yy57; + if (yych == 'C') goto yy678; + if (yych != 'c') goto yy56; yy678: YYDEBUG(678, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy679; - if (yych != 'c') goto yy57; + if (yych != '/') goto yy56; yy679: YYDEBUG(679, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '/') goto yy57; -yy680: + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; YYDEBUG(680, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; YYDEBUG(681, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; YYDEBUG(682, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; YYDEBUG(683, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; + if (yych != ':') goto yy56; YYDEBUG(684, *YYCURSOR); yych = *++YYCURSOR; - if (yych != ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '1') goto yy685; + if (yych <= '2') goto yy686; + goto yy56; +yy685: YYDEBUG(685, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '1') goto yy686; - if (yych <= '2') goto yy687; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy687; + goto yy56; yy686: YYDEBUG(686, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy688; - goto yy57; + if (yych <= '/') goto yy56; + if (yych >= '5') goto yy56; yy687: YYDEBUG(687, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= '5') goto yy57; -yy688: + if (yych != ':') goto yy56; YYDEBUG(688, *YYCURSOR); yych = *++YYCURSOR; - if (yych != ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych >= '6') goto yy56; YYDEBUG(689, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= '6') goto yy57; + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; YYDEBUG(690, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; + if (yych != ':') goto yy56; YYDEBUG(691, *YYCURSOR); yych = *++YYCURSOR; - if (yych != ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy692; + if (yych <= '6') goto yy693; + goto yy56; +yy692: YYDEBUG(692, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy693; - if (yych <= '6') goto yy694; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy694; + goto yy56; yy693: YYDEBUG(693, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy695; - goto yy57; + if (yych != '0') goto yy56; yy694: YYDEBUG(694, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '0') goto yy57; + if (yych == '\t') goto yy695; + if (yych != ' ') goto yy56; yy695: YYDEBUG(695, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\t') goto yy696; - if (yych != ' ') goto yy57; -yy696: - YYDEBUG(696, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 9) YYFILL(9); yych = *YYCURSOR; - YYDEBUG(697, *YYCURSOR); + YYDEBUG(696, *YYCURSOR); if (yych <= '*') { if (yych <= '\t') { - if (yych <= 0x08) goto yy57; - goto yy696; + if (yych <= 0x08) goto yy56; + goto yy695; } else { - if (yych == ' ') goto yy696; - goto yy57; + if (yych == ' ') goto yy695; + goto yy56; } } else { if (yych <= '-') { - if (yych == ',') goto yy57; - goto yy699; + if (yych == ',') goto yy56; + goto yy698; } else { - if (yych != 'G') goto yy57; + if (yych != 'G') goto yy56; } } + YYDEBUG(697, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy706; + goto yy56; +yy698: YYDEBUG(698, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy707; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '1') goto yy699; + if (yych <= '2') goto yy701; + if (yych <= '9') goto yy702; + goto yy56; yy699: YYDEBUG(699, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '1') goto yy700; - if (yych <= '2') goto yy702; - if (yych <= '9') goto yy703; - goto yy57; + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '/') goto yy700; + if (yych <= '9') goto yy702; + if (yych <= ':') goto yy703; yy700: YYDEBUG(700, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '/') goto yy701; - if (yych <= '9') goto yy703; - if (yych <= ':') goto yy704; -yy701: - YYDEBUG(701, *YYCURSOR); { int tz_not_found; DEBUG_OUTPUT("clf"); @@ -12066,303 +12049,303 @@ yy701: TIMELIB_DEINIT; return TIMELIB_CLF; } -yy702: - YYDEBUG(702, *YYCURSOR); +yy701: + YYDEBUG(701, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '5') { - if (yych <= '/') goto yy701; - if (yych >= '5') goto yy705; + if (yych <= '/') goto yy700; + if (yych >= '5') goto yy704; } else { - if (yych <= '9') goto yy706; - if (yych <= ':') goto yy704; - goto yy701; + if (yych <= '9') goto yy705; + if (yych <= ':') goto yy703; + goto yy700; } +yy702: + YYDEBUG(702, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy700; + if (yych <= '5') goto yy704; + if (yych <= '9') goto yy705; + if (yych >= ';') goto yy700; yy703: YYDEBUG(703, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy701; - if (yych <= '5') goto yy705; - if (yych <= '9') goto yy706; - if (yych >= ';') goto yy701; + if (yych <= '/') goto yy700; + if (yych <= '5') goto yy704; + if (yych <= '9') goto yy705; + goto yy700; yy704: YYDEBUG(704, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy701; - if (yych <= '5') goto yy705; - if (yych <= '9') goto yy706; - goto yy701; + if (yych <= '/') goto yy700; + if (yych >= ':') goto yy700; yy705: YYDEBUG(705, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy701; - if (yych >= ':') goto yy701; + goto yy700; yy706: YYDEBUG(706, *YYCURSOR); yych = *++YYCURSOR; - goto yy701; -yy707: + if (yych != 'T') goto yy56; YYDEBUG(707, *YYCURSOR); yych = *++YYCURSOR; - if (yych != 'T') goto yy57; + if (yych == '+') goto yy698; + if (yych == '-') goto yy698; + goto yy56; +yy708: YYDEBUG(708, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '+') goto yy699; - if (yych == '-') goto yy699; - goto yy57; + if (yych == 'V') goto yy678; + if (yych == 'v') goto yy678; + goto yy56; yy709: YYDEBUG(709, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'V') goto yy679; - if (yych == 'v') goto yy679; - goto yy57; + if (yych == 'T') goto yy678; + if (yych == 't') goto yy678; + goto yy56; yy710: YYDEBUG(710, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy679; - if (yych == 't') goto yy679; - goto yy57; + if (yych == 'P') goto yy711; + if (yych != 'p') goto yy56; yy711: YYDEBUG(711, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy712; - if (yych != 'p') goto yy57; -yy712: - YYDEBUG(712, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'S') { - if (yych == '/') goto yy680; - goto yy57; + if (yych == '/') goto yy679; + goto yy56; } else { - if (yych <= 'T') goto yy679; - if (yych == 't') goto yy679; - goto yy57; + if (yych <= 'T') goto yy678; + if (yych == 't') goto yy678; + goto yy56; } +yy712: + YYDEBUG(712, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy678; + if (yych == 'g') goto yy678; + goto yy56; yy713: YYDEBUG(713, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'G') goto yy679; - if (yych == 'g') goto yy679; - goto yy57; + if (yych == 'R') goto yy678; + if (yych == 'r') goto yy678; + goto yy56; yy714: YYDEBUG(714, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy679; - if (yych == 'r') goto yy679; - goto yy57; -yy715: - YYDEBUG(715, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'Y') { - if (yych == 'R') goto yy679; - if (yych <= 'X') goto yy57; - goto yy679; + if (yych == 'R') goto yy678; + if (yych <= 'X') goto yy56; + goto yy678; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy57; - goto yy679; + if (yych <= 'q') goto yy56; + goto yy678; } else { - if (yych == 'y') goto yy679; - goto yy57; + if (yych == 'y') goto yy678; + goto yy56; } } +yy715: + YYDEBUG(715, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy678; + if (yych == 'b') goto yy678; + goto yy56; yy716: YYDEBUG(716, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy679; - if (yych == 'b') goto yy679; - goto yy57; -yy717: - YYDEBUG(717, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'N') { - if (yych == 'L') goto yy679; - if (yych <= 'M') goto yy57; - goto yy679; + if (yych == 'L') goto yy678; + if (yych <= 'M') goto yy56; + goto yy678; } else { if (yych <= 'l') { - if (yych <= 'k') goto yy57; - goto yy679; + if (yych <= 'k') goto yy56; + goto yy678; } else { - if (yych == 'n') goto yy679; - goto yy57; + if (yych == 'n') goto yy678; + goto yy56; } } +yy717: + YYDEBUG(717, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy678; + if (yych == 'n') goto yy678; + goto yy56; yy718: YYDEBUG(718, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy679; - if (yych == 'n') goto yy679; - goto yy57; + if (yych == 't') goto yy727; + goto yy56; yy719: YYDEBUG(719, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 't') goto yy728; - goto yy57; + if (yych == 'd') goto yy727; + goto yy56; yy720: YYDEBUG(720, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'd') goto yy728; - goto yy57; + if (yych == 'd') goto yy727; + goto yy56; yy721: YYDEBUG(721, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'd') goto yy728; - goto yy57; + if (yych == 'h') goto yy727; + goto yy56; yy722: YYDEBUG(722, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'h') goto yy728; - goto yy57; -yy723: + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; YYDEBUG(723, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; + if (yych <= '/') goto yy666; + if (yych >= ':') goto yy666; YYDEBUG(724, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy667; - if (yych >= ':') goto yy667; + if (yych <= '/') goto yy666; + if (yych >= ':') goto yy666; YYDEBUG(725, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy667; - if (yych >= ':') goto yy667; + if (yych <= '/') goto yy666; + if (yych >= ':') goto yy666; YYDEBUG(726, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy667; - if (yych >= ':') goto yy667; + goto yy666; +yy727: YYDEBUG(727, *YYCURSOR); - yych = *++YYCURSOR; - goto yy667; -yy728: - YYDEBUG(728, *YYCURSOR); yyaccept = 14; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '/') goto yy723; - goto yy667; -yy729: - YYDEBUG(729, *YYCURSOR); + if (yych == '/') goto yy722; + goto yy666; +yy728: + YYDEBUG(728, *YYCURSOR); yych = *++YYCURSOR; if (yych <= ',') { - if (yych == '\t') goto yy731; - goto yy578; + if (yych == '\t') goto yy730; + goto yy577; } else { - if (yych <= '-') goto yy732; - if (yych <= '.') goto yy731; - if (yych >= '0') goto yy578; + if (yych <= '-') goto yy731; + if (yych <= '.') goto yy730; + if (yych >= '0') goto yy577; } -yy730: - YYDEBUG(730, *YYCURSOR); +yy729: + YYDEBUG(729, *YYCURSOR); yych = *++YYCURSOR; YYDEBUG(-1, yych); switch (yych) { case 'A': - case 'a': goto yy673; + case 'a': goto yy672; case 'D': - case 'd': goto yy677; + case 'd': goto yy676; case 'F': - case 'f': goto yy671; + case 'f': goto yy670; case 'J': - case 'j': goto yy670; + case 'j': goto yy669; case 'M': - case 'm': goto yy672; + case 'm': goto yy671; case 'N': - case 'n': goto yy676; + case 'n': goto yy675; case 'O': - case 'o': goto yy675; + case 'o': goto yy674; case 'S': - case 's': goto yy674; - default: goto yy57; + case 's': goto yy673; + default: goto yy56; } +yy730: + YYDEBUG(730, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy577; + if (yych <= '0') goto yy735; + if (yych <= '1') goto yy736; + if (yych <= '9') goto yy737; + goto yy577; yy731: YYDEBUG(731, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy578; - if (yych <= '0') goto yy736; - if (yych <= '1') goto yy737; - if (yych <= '9') goto yy738; - goto yy578; + if (yych <= '/') goto yy577; + if (yych <= '0') goto yy732; + if (yych <= '1') goto yy733; + if (yych <= '9') goto yy734; + goto yy577; yy732: YYDEBUG(732, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy578; - if (yych <= '0') goto yy733; - if (yych <= '1') goto yy734; - if (yych <= '9') goto yy735; - goto yy578; + if (yych <= ',') goto yy56; + if (yych <= '.') goto yy601; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy734; + goto yy56; yy733: YYDEBUG(733, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= ',') goto yy57; - if (yych <= '.') goto yy602; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy735; - goto yy57; + if (yych <= ',') goto yy56; + if (yych <= '.') goto yy601; + if (yych <= '/') goto yy56; + if (yych >= '3') goto yy56; yy734: YYDEBUG(734, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= ',') goto yy57; - if (yych <= '.') goto yy602; - if (yych <= '/') goto yy57; - if (yych >= '3') goto yy57; + if (yych <= ',') goto yy56; + if (yych <= '.') goto yy601; + goto yy56; yy735: YYDEBUG(735, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= ',') goto yy57; - if (yych <= '.') goto yy602; - goto yy57; + if (yych <= '.') { + if (yych <= ',') goto yy56; + if (yych <= '-') goto yy601; + goto yy738; + } else { + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy737; + goto yy56; + } yy736: YYDEBUG(736, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '.') { - if (yych <= ',') goto yy57; - if (yych <= '-') goto yy602; - goto yy739; + if (yych <= ',') goto yy56; + if (yych <= '-') goto yy601; + goto yy738; } else { - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy738; - goto yy57; + if (yych <= '/') goto yy56; + if (yych >= '3') goto yy56; } yy737: YYDEBUG(737, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '.') { - if (yych <= ',') goto yy57; - if (yych <= '-') goto yy602; - goto yy739; - } else { - if (yych <= '/') goto yy57; - if (yych >= '3') goto yy57; - } + if (yych <= ',') goto yy56; + if (yych <= '-') goto yy601; + if (yych >= '/') goto yy56; yy738: YYDEBUG(738, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= ',') goto yy57; - if (yych <= '-') goto yy602; - if (yych >= '/') goto yy57; -yy739: + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; YYDEBUG(739, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy610; + goto yy56; +yy740: YYDEBUG(740, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy611; - goto yy57; + if (yych == '-') goto yy784; + if (yych <= '/') goto yy60; + if (yych <= '9') goto yy782; + goto yy60; yy741: YYDEBUG(741, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '-') goto yy785; - if (yych <= '/') goto yy61; - if (yych <= '9') goto yy783; - goto yy61; -yy742: - YYDEBUG(742, *YYCURSOR); - yych = *++YYCURSOR; YYDEBUG(-1, yych); switch (yych) { - case '0': goto yy751; - case '1': goto yy752; + case '0': goto yy750; + case '1': goto yy751; case '2': case '3': case '4': @@ -12370,253 +12353,253 @@ yy742: case '6': case '7': case '8': - case '9': goto yy753; + case '9': goto yy752; case 'A': - case 'a': goto yy746; + case 'a': goto yy745; case 'D': - case 'd': goto yy750; + case 'd': goto yy749; case 'F': - case 'f': goto yy744; + case 'f': goto yy743; case 'J': - case 'j': goto yy743; + case 'j': goto yy742; case 'M': - case 'm': goto yy745; + case 'm': goto yy744; case 'N': - case 'n': goto yy749; + case 'n': goto yy748; case 'O': - case 'o': goto yy748; + case 'o': goto yy747; case 'S': - case 's': goto yy747; - default: goto yy57; + case 's': goto yy746; + default: goto yy56; } -yy743: - YYDEBUG(743, *YYCURSOR); +yy742: + YYDEBUG(742, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'A') goto yy782; - if (yych <= 'T') goto yy57; - goto yy781; + if (yych == 'A') goto yy781; + if (yych <= 'T') goto yy56; + goto yy780; } else { if (yych <= 'a') { - if (yych <= '`') goto yy57; - goto yy782; + if (yych <= '`') goto yy56; + goto yy781; } else { - if (yych == 'u') goto yy781; - goto yy57; + if (yych == 'u') goto yy780; + goto yy56; } } +yy743: + YYDEBUG(743, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy779; + if (yych == 'e') goto yy779; + goto yy56; yy744: YYDEBUG(744, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy780; - if (yych == 'e') goto yy780; - goto yy57; + if (yych == 'A') goto yy778; + if (yych == 'a') goto yy778; + goto yy56; yy745: YYDEBUG(745, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy779; - if (yych == 'a') goto yy779; - goto yy57; -yy746: - YYDEBUG(746, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'P') goto yy778; - if (yych <= 'T') goto yy57; - goto yy777; + if (yych == 'P') goto yy777; + if (yych <= 'T') goto yy56; + goto yy776; } else { if (yych <= 'p') { - if (yych <= 'o') goto yy57; - goto yy778; + if (yych <= 'o') goto yy56; + goto yy777; } else { - if (yych == 'u') goto yy777; - goto yy57; + if (yych == 'u') goto yy776; + goto yy56; } } +yy746: + YYDEBUG(746, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy774; + if (yych == 'e') goto yy774; + goto yy56; yy747: YYDEBUG(747, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy775; - if (yych == 'e') goto yy775; - goto yy57; + if (yych == 'C') goto yy773; + if (yych == 'c') goto yy773; + goto yy56; yy748: YYDEBUG(748, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy774; - if (yych == 'c') goto yy774; - goto yy57; + if (yych == 'O') goto yy772; + if (yych == 'o') goto yy772; + goto yy56; yy749: YYDEBUG(749, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy773; - if (yych == 'o') goto yy773; - goto yy57; + if (yych == 'E') goto yy764; + if (yych == 'e') goto yy764; + goto yy56; yy750: YYDEBUG(750, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy765; - if (yych == 'e') goto yy765; - goto yy57; + if (yych == '-') goto yy753; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy757; + goto yy56; yy751: YYDEBUG(751, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '-') goto yy754; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy758; - goto yy57; + if (yych == '-') goto yy753; + if (yych <= '/') goto yy56; + if (yych <= '2') goto yy757; + goto yy56; yy752: YYDEBUG(752, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '-') goto yy754; - if (yych <= '/') goto yy57; - if (yych <= '2') goto yy758; - goto yy57; + if (yych != '-') goto yy56; yy753: YYDEBUG(753, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '-') goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '2') goto yy754; + if (yych <= '3') goto yy755; + if (yych <= '9') goto yy756; + goto yy56; yy754: YYDEBUG(754, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '2') goto yy755; - if (yych <= '3') goto yy756; - if (yych <= '9') goto yy757; - goto yy57; -yy755: - YYDEBUG(755, *YYCURSOR); yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { - if (yych <= '/') goto yy657; - if (yych <= '9') goto yy757; - if (yych <= 'm') goto yy657; - goto yy661; + if (yych <= '/') goto yy656; + if (yych <= '9') goto yy756; + if (yych <= 'm') goto yy656; + goto yy660; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy657; - goto yy662; + if (yych <= 'q') goto yy656; + goto yy661; } else { - if (yych <= 's') goto yy660; - if (yych <= 't') goto yy663; - goto yy657; + if (yych <= 's') goto yy659; + if (yych <= 't') goto yy662; + goto yy656; } } -yy756: - YYDEBUG(756, *YYCURSOR); +yy755: + YYDEBUG(755, *YYCURSOR); yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { - if (yych <= '/') goto yy657; - if (yych <= '1') goto yy757; - if (yych <= 'm') goto yy657; - goto yy661; + if (yych <= '/') goto yy656; + if (yych <= '1') goto yy756; + if (yych <= 'm') goto yy656; + goto yy660; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy657; - goto yy662; + if (yych <= 'q') goto yy656; + goto yy661; } else { - if (yych <= 's') goto yy660; - if (yych <= 't') goto yy663; - goto yy657; + if (yych <= 's') goto yy659; + if (yych <= 't') goto yy662; + goto yy656; } } -yy757: - YYDEBUG(757, *YYCURSOR); +yy756: + YYDEBUG(756, *YYCURSOR); yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'q') { - if (yych == 'n') goto yy661; - goto yy657; + if (yych == 'n') goto yy660; + goto yy656; } else { - if (yych <= 'r') goto yy662; - if (yych <= 's') goto yy660; - if (yych <= 't') goto yy663; - goto yy657; + if (yych <= 'r') goto yy661; + if (yych <= 's') goto yy659; + if (yych <= 't') goto yy662; + goto yy656; } -yy758: - YYDEBUG(758, *YYCURSOR); +yy757: + YYDEBUG(757, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '-') goto yy57; - YYDEBUG(759, *YYCURSOR); + if (yych != '-') goto yy56; + YYDEBUG(758, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '2') { - if (yych <= '/') goto yy57; - if (yych >= '1') goto yy761; + if (yych <= '/') goto yy56; + if (yych >= '1') goto yy760; } else { - if (yych <= '3') goto yy762; - if (yych <= '9') goto yy757; - goto yy57; + if (yych <= '3') goto yy761; + if (yych <= '9') goto yy756; + goto yy56; } - YYDEBUG(760, *YYCURSOR); + YYDEBUG(759, *YYCURSOR); yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { - if (yych <= '/') goto yy657; - if (yych <= '9') goto yy763; - if (yych <= 'm') goto yy657; - goto yy661; + if (yych <= '/') goto yy656; + if (yych <= '9') goto yy762; + if (yych <= 'm') goto yy656; + goto yy660; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy657; - goto yy662; + if (yych <= 'q') goto yy656; + goto yy661; } else { - if (yych <= 's') goto yy660; - if (yych <= 't') goto yy663; - goto yy657; + if (yych <= 's') goto yy659; + if (yych <= 't') goto yy662; + goto yy656; } } -yy761: - YYDEBUG(761, *YYCURSOR); +yy760: + YYDEBUG(760, *YYCURSOR); yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { - if (yych <= '/') goto yy657; - if (yych <= '9') goto yy763; - if (yych <= 'm') goto yy657; - goto yy661; + if (yych <= '/') goto yy656; + if (yych <= '9') goto yy762; + if (yych <= 'm') goto yy656; + goto yy660; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy657; - goto yy662; + if (yych <= 'q') goto yy656; + goto yy661; } else { - if (yych <= 's') goto yy660; - if (yych <= 't') goto yy663; - goto yy657; + if (yych <= 's') goto yy659; + if (yych <= 't') goto yy662; + goto yy656; } } -yy762: - YYDEBUG(762, *YYCURSOR); +yy761: + YYDEBUG(761, *YYCURSOR); yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { - if (yych <= '/') goto yy657; - if (yych <= '1') goto yy763; - if (yych <= 'm') goto yy657; - goto yy661; + if (yych <= '/') goto yy656; + if (yych <= '1') goto yy762; + if (yych <= 'm') goto yy656; + goto yy660; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy657; - goto yy662; + if (yych <= 'q') goto yy656; + goto yy661; } else { - if (yych <= 's') goto yy660; - if (yych <= 't') goto yy663; - goto yy657; + if (yych <= 's') goto yy659; + if (yych <= 't') goto yy662; + goto yy656; } } -yy763: - YYDEBUG(763, *YYCURSOR); +yy762: + YYDEBUG(762, *YYCURSOR); yyaccept = 15; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'q') { - if (yych == 'n') goto yy661; + if (yych == 'n') goto yy660; } else { - if (yych <= 'r') goto yy662; - if (yych <= 's') goto yy660; - if (yych <= 't') goto yy663; + if (yych <= 'r') goto yy661; + if (yych <= 's') goto yy659; + if (yych <= 't') goto yy662; } -yy764: - YYDEBUG(764, *YYCURSOR); +yy763: + YYDEBUG(763, *YYCURSOR); { int length = 0; DEBUG_OUTPUT("iso8601date2"); @@ -12629,44 +12612,44 @@ yy764: TIMELIB_DEINIT; return TIMELIB_ISO_DATE; } +yy764: + YYDEBUG(764, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy765; + if (yych != 'c') goto yy56; yy765: YYDEBUG(765, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy766; - if (yych != 'c') goto yy57; + if (yych != '-') goto yy56; yy766: YYDEBUG(766, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '-') goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '0') goto yy767; + if (yych <= '2') goto yy768; + if (yych <= '3') goto yy769; + goto yy56; yy767: YYDEBUG(767, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '0') goto yy768; - if (yych <= '2') goto yy769; - if (yych <= '3') goto yy770; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy770; + goto yy56; yy768: YYDEBUG(768, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy771; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy770; + goto yy56; yy769: YYDEBUG(769, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy771; - goto yy57; + if (yych <= '/') goto yy56; + if (yych >= '2') goto yy56; yy770: YYDEBUG(770, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= '2') goto yy57; -yy771: - YYDEBUG(771, *YYCURSOR); ++YYCURSOR; - YYDEBUG(772, *YYCURSOR); + YYDEBUG(771, *YYCURSOR); { int length = 0; DEBUG_OUTPUT("pgtextreverse"); @@ -12679,92 +12662,92 @@ yy771: TIMELIB_DEINIT; return TIMELIB_PG_TEXT; } +yy772: + YYDEBUG(772, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'V') goto yy765; + if (yych == 'v') goto yy765; + goto yy56; yy773: YYDEBUG(773, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'V') goto yy766; - if (yych == 'v') goto yy766; - goto yy57; + if (yych == 'T') goto yy765; + if (yych == 't') goto yy765; + goto yy56; yy774: YYDEBUG(774, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy766; - if (yych == 't') goto yy766; - goto yy57; + if (yych == 'P') goto yy775; + if (yych != 'p') goto yy56; yy775: YYDEBUG(775, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy776; - if (yych != 'p') goto yy57; -yy776: - YYDEBUG(776, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'S') { - if (yych == '-') goto yy767; - goto yy57; + if (yych == '-') goto yy766; + goto yy56; } else { - if (yych <= 'T') goto yy766; - if (yych == 't') goto yy766; - goto yy57; + if (yych <= 'T') goto yy765; + if (yych == 't') goto yy765; + goto yy56; } +yy776: + YYDEBUG(776, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy765; + if (yych == 'g') goto yy765; + goto yy56; yy777: YYDEBUG(777, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'G') goto yy766; - if (yych == 'g') goto yy766; - goto yy57; + if (yych == 'R') goto yy765; + if (yych == 'r') goto yy765; + goto yy56; yy778: YYDEBUG(778, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy766; - if (yych == 'r') goto yy766; - goto yy57; -yy779: - YYDEBUG(779, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'Y') { - if (yych == 'R') goto yy766; - if (yych <= 'X') goto yy57; - goto yy766; + if (yych == 'R') goto yy765; + if (yych <= 'X') goto yy56; + goto yy765; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy57; - goto yy766; + if (yych <= 'q') goto yy56; + goto yy765; } else { - if (yych == 'y') goto yy766; - goto yy57; + if (yych == 'y') goto yy765; + goto yy56; } } +yy779: + YYDEBUG(779, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy765; + if (yych == 'b') goto yy765; + goto yy56; yy780: YYDEBUG(780, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy766; - if (yych == 'b') goto yy766; - goto yy57; -yy781: - YYDEBUG(781, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'N') { - if (yych == 'L') goto yy766; - if (yych <= 'M') goto yy57; - goto yy766; + if (yych == 'L') goto yy765; + if (yych <= 'M') goto yy56; + goto yy765; } else { if (yych <= 'l') { - if (yych <= 'k') goto yy57; - goto yy766; + if (yych <= 'k') goto yy56; + goto yy765; } else { - if (yych == 'n') goto yy766; - goto yy57; + if (yych == 'n') goto yy765; + goto yy56; } } +yy781: + YYDEBUG(781, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy765; + if (yych == 'n') goto yy765; + goto yy56; yy782: YYDEBUG(782, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy766; - if (yych == 'n') goto yy766; - goto yy57; -yy783: - YYDEBUG(783, *YYCURSOR); yyaccept = 16; yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); @@ -12796,26 +12779,26 @@ yy783: case 's': case 't': case 'w': - case 'y': goto yy791; - case '-': goto yy788; - case '.': goto yy792; - case '/': goto yy789; - case '0': goto yy805; - case '1': goto yy806; - case '2': goto yy808; - case '3': goto yy809; + case 'y': goto yy790; + case '-': goto yy787; + case '.': goto yy791; + case '/': goto yy788; + case '0': goto yy804; + case '1': goto yy805; + case '2': goto yy807; + case '3': goto yy808; case '4': case '5': case '6': case '7': case '8': - case '9': goto yy55; - case ':': goto yy807; - case 'W': goto yy810; - default: goto yy784; + case '9': goto yy54; + case ':': goto yy806; + case 'W': goto yy809; + default: goto yy783; } -yy784: - YYDEBUG(784, *YYCURSOR); +yy783: + YYDEBUG(783, *YYCURSOR); { DEBUG_OUTPUT("year4"); TIMELIB_INIT; @@ -12823,13 +12806,13 @@ yy784: TIMELIB_DEINIT; return TIMELIB_CLF; } -yy785: - YYDEBUG(785, *YYCURSOR); +yy784: + YYDEBUG(784, *YYCURSOR); yych = *++YYCURSOR; YYDEBUG(-1, yych); switch (yych) { - case '0': goto yy786; - case '1': goto yy787; + case '0': goto yy785; + case '1': goto yy786; case '2': case '3': case '4': @@ -12837,46 +12820,46 @@ yy785: case '6': case '7': case '8': - case '9': goto yy753; + case '9': goto yy752; case 'A': - case 'a': goto yy746; + case 'a': goto yy745; case 'D': - case 'd': goto yy750; + case 'd': goto yy749; case 'F': - case 'f': goto yy744; + case 'f': goto yy743; case 'J': - case 'j': goto yy743; + case 'j': goto yy742; case 'M': - case 'm': goto yy745; + case 'm': goto yy744; case 'N': - case 'n': goto yy749; + case 'n': goto yy748; case 'O': - case 'o': goto yy748; + case 'o': goto yy747; case 'S': - case 's': goto yy747; - default: goto yy57; + case 's': goto yy746; + default: goto yy56; } +yy785: + YYDEBUG(785, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '-') goto yy753; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy752; + goto yy56; yy786: YYDEBUG(786, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '-') goto yy754; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy753; - goto yy57; + if (yych == '-') goto yy753; + if (yych <= '/') goto yy56; + if (yych <= '2') goto yy752; + goto yy56; yy787: YYDEBUG(787, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '-') goto yy754; - if (yych <= '/') goto yy57; - if (yych <= '2') goto yy753; - goto yy57; -yy788: - YYDEBUG(788, *YYCURSOR); - yych = *++YYCURSOR; YYDEBUG(-1, yych); switch (yych) { - case '0': goto yy973; - case '1': goto yy975; + case '0': goto yy972; + case '1': goto yy974; case '2': case '3': case '4': @@ -12884,95 +12867,95 @@ yy788: case '6': case '7': case '8': - case '9': goto yy976; + case '9': goto yy975; case 'A': - case 'a': goto yy967; + case 'a': goto yy966; case 'D': - case 'd': goto yy971; + case 'd': goto yy970; case 'F': - case 'f': goto yy965; + case 'f': goto yy964; case 'J': - case 'j': goto yy964; + case 'j': goto yy963; case 'M': - case 'm': goto yy966; + case 'm': goto yy965; case 'N': - case 'n': goto yy970; + case 'n': goto yy969; case 'O': - case 'o': goto yy969; + case 'o': goto yy968; case 'S': - case 's': goto yy968; - case 'W': goto yy972; - default: goto yy939; + case 's': goto yy967; + case 'W': goto yy971; + default: goto yy938; } +yy788: + YYDEBUG(788, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych <= '0') goto yy946; + if (yych <= '1') goto yy947; + if (yych <= '9') goto yy948; + goto yy56; yy789: YYDEBUG(789, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '0') goto yy947; - if (yych <= '1') goto yy948; - if (yych <= '9') goto yy949; - goto yy57; -yy790: - YYDEBUG(790, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11); yych = *YYCURSOR; -yy791: - YYDEBUG(791, *YYCURSOR); +yy790: + YYDEBUG(790, *YYCURSOR); YYDEBUG(-1, yych); switch (yych) { case '\t': - case ' ': goto yy790; + case ' ': goto yy789; case '-': - case '.': goto yy938; + case '.': goto yy937; case 'A': - case 'a': goto yy800; + case 'a': goto yy799; case 'D': - case 'd': goto yy804; + case 'd': goto yy803; case 'F': - case 'f': goto yy798; + case 'f': goto yy797; case 'H': - case 'h': goto yy64; - case 'I': goto yy793; + case 'h': goto yy63; + case 'I': goto yy792; case 'J': - case 'j': goto yy797; + case 'j': goto yy796; case 'M': - case 'm': goto yy799; + case 'm': goto yy798; case 'N': - case 'n': goto yy803; + case 'n': goto yy802; case 'O': - case 'o': goto yy802; + case 'o': goto yy801; case 'S': - case 's': goto yy801; + case 's': goto yy800; case 'T': - case 't': goto yy69; - case 'V': goto yy795; + case 't': goto yy68; + case 'V': goto yy794; case 'W': - case 'w': goto yy68; - case 'X': goto yy796; + case 'w': goto yy67; + case 'X': goto yy795; case 'Y': - case 'y': goto yy67; - default: goto yy57; + case 'y': goto yy66; + default: goto yy56; } +yy791: + YYDEBUG(791, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy938; + if (yych <= '0') goto yy930; + if (yych <= '2') goto yy931; + if (yych <= '3') goto yy932; + goto yy938; yy792: YYDEBUG(792, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy939; - if (yych <= '0') goto yy931; - if (yych <= '2') goto yy932; - if (yych <= '3') goto yy933; - goto yy939; -yy793: - YYDEBUG(793, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= 'U') { - if (yych == 'I') goto yy930; + if (yych == 'I') goto yy929; } else { - if (yych == 'W') goto yy794; - if (yych <= 'X') goto yy884; + if (yych == 'W') goto yy793; + if (yych <= 'X') goto yy883; } -yy794: - YYDEBUG(794, *YYCURSOR); +yy793: + YYDEBUG(793, *YYCURSOR); { int length = 0; DEBUG_OUTPUT("datenodayrev"); @@ -12985,220 +12968,220 @@ yy794: TIMELIB_DEINIT; return TIMELIB_DATE_NO_DAY; } +yy794: + YYDEBUG(794, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy927; + goto yy793; yy795: YYDEBUG(795, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy928; - goto yy794; + if (yych == 'I') goto yy926; + goto yy793; yy796: YYDEBUG(796, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy927; - goto yy794; -yy797: - YYDEBUG(797, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'A') goto yy920; - if (yych <= 'T') goto yy57; - goto yy919; + if (yych == 'A') goto yy919; + if (yych <= 'T') goto yy56; + goto yy918; } else { if (yych <= 'a') { - if (yych <= '`') goto yy57; - goto yy920; + if (yych <= '`') goto yy56; + goto yy919; } else { - if (yych == 'u') goto yy919; - goto yy57; + if (yych == 'u') goto yy918; + goto yy56; } } -yy798: - YYDEBUG(798, *YYCURSOR); +yy797: + YYDEBUG(797, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'R') { if (yych <= 'N') { - if (yych == 'E') goto yy913; - goto yy57; + if (yych == 'E') goto yy912; + goto yy56; } else { - if (yych <= 'O') goto yy99; - if (yych <= 'Q') goto yy57; - goto yy98; + if (yych <= 'O') goto yy98; + if (yych <= 'Q') goto yy56; + goto yy97; } } else { if (yych <= 'n') { - if (yych == 'e') goto yy913; - goto yy57; + if (yych == 'e') goto yy912; + goto yy56; } else { - if (yych <= 'o') goto yy99; - if (yych == 'r') goto yy98; - goto yy57; + if (yych <= 'o') goto yy98; + if (yych == 'r') goto yy97; + goto yy56; } } -yy799: - YYDEBUG(799, *YYCURSOR); +yy798: + YYDEBUG(798, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { if (yych <= 'H') { - if (yych == 'A') goto yy910; - goto yy57; + if (yych == 'A') goto yy909; + goto yy56; } else { - if (yych <= 'I') goto yy118; - if (yych <= 'N') goto yy57; - goto yy117; + if (yych <= 'I') goto yy117; + if (yych <= 'N') goto yy56; + goto yy116; } } else { if (yych <= 'h') { - if (yych == 'a') goto yy910; - goto yy57; + if (yych == 'a') goto yy909; + goto yy56; } else { - if (yych <= 'i') goto yy118; - if (yych == 'o') goto yy117; - goto yy57; + if (yych <= 'i') goto yy117; + if (yych == 'o') goto yy116; + goto yy56; } } -yy800: - YYDEBUG(800, *YYCURSOR); +yy799: + YYDEBUG(799, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'P') goto yy904; - if (yych <= 'T') goto yy57; - goto yy903; + if (yych == 'P') goto yy903; + if (yych <= 'T') goto yy56; + goto yy902; } else { if (yych <= 'p') { - if (yych <= 'o') goto yy57; - goto yy904; + if (yych <= 'o') goto yy56; + goto yy903; } else { - if (yych == 'u') goto yy903; - goto yy57; + if (yych == 'u') goto yy902; + goto yy56; } } -yy801: - YYDEBUG(801, *YYCURSOR); +yy800: + YYDEBUG(800, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { if (yych <= 'D') { - if (yych == 'A') goto yy127; - goto yy57; + if (yych == 'A') goto yy126; + goto yy56; } else { - if (yych <= 'E') goto yy896; - if (yych <= 'T') goto yy57; - goto yy126; + if (yych <= 'E') goto yy895; + if (yych <= 'T') goto yy56; + goto yy125; } } else { if (yych <= 'd') { - if (yych == 'a') goto yy127; - goto yy57; + if (yych == 'a') goto yy126; + goto yy56; } else { - if (yych <= 'e') goto yy896; - if (yych == 'u') goto yy126; - goto yy57; + if (yych <= 'e') goto yy895; + if (yych == 'u') goto yy125; + goto yy56; } } +yy801: + YYDEBUG(801, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy890; + if (yych == 'c') goto yy890; + goto yy56; yy802: YYDEBUG(802, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy891; - if (yych == 'c') goto yy891; - goto yy57; + if (yych == 'O') goto yy884; + if (yych == 'o') goto yy884; + goto yy56; yy803: YYDEBUG(803, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy885; - if (yych == 'o') goto yy885; - goto yy57; -yy804: - YYDEBUG(804, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'E') { - if (yych == 'A') goto yy114; - if (yych <= 'D') goto yy57; - goto yy878; + if (yych == 'A') goto yy113; + if (yych <= 'D') goto yy56; + goto yy877; } else { if (yych <= 'a') { - if (yych <= '`') goto yy57; - goto yy114; + if (yych <= '`') goto yy56; + goto yy113; } else { - if (yych == 'e') goto yy878; - goto yy57; + if (yych == 'e') goto yy877; + goto yy56; } } +yy804: + YYDEBUG(804, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy60; + if (yych <= '0') goto yy874; + if (yych <= '9') goto yy875; + goto yy60; yy805: YYDEBUG(805, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy61; - if (yych <= '0') goto yy875; - if (yych <= '9') goto yy876; - goto yy61; + if (yych <= '/') goto yy60; + if (yych <= '2') goto yy843; + if (yych <= '9') goto yy822; + goto yy60; yy806: YYDEBUG(806, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy61; - if (yych <= '2') goto yy844; - if (yych <= '9') goto yy823; - goto yy61; + if (yych <= '/') goto yy56; + if (yych <= '0') goto yy823; + if (yych <= '1') goto yy824; + goto yy56; yy807: YYDEBUG(807, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '0') goto yy824; - if (yych <= '1') goto yy825; - goto yy57; + if (yych <= '/') goto yy60; + if (yych <= '9') goto yy822; + goto yy60; yy808: YYDEBUG(808, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy61; - if (yych <= '9') goto yy823; - goto yy61; + if (yych <= '/') goto yy60; + if (yych <= '5') goto yy818; + if (yych <= '6') goto yy819; + if (yych <= '9') goto yy54; + goto yy60; yy809: YYDEBUG(809, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy61; - if (yych <= '5') goto yy819; - if (yych <= '6') goto yy820; - if (yych <= '9') goto yy55; - goto yy61; -yy810: - YYDEBUG(810, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= '5') { - if (yych <= '/') goto yy57; - if (yych <= '0') goto yy811; - if (yych <= '4') goto yy812; - goto yy813; + if (yych <= '/') goto yy56; + if (yych <= '0') goto yy810; + if (yych <= '4') goto yy811; + goto yy812; } else { if (yych <= 'E') { - if (yych <= 'D') goto yy57; - goto yy83; + if (yych <= 'D') goto yy56; + goto yy82; } else { - if (yych == 'e') goto yy83; - goto yy57; + if (yych == 'e') goto yy82; + goto yy56; } } +yy810: + YYDEBUG(810, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '0') goto yy56; + if (yych <= '9') goto yy813; + goto yy56; yy811: YYDEBUG(811, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '0') goto yy57; - if (yych <= '9') goto yy814; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy813; + goto yy56; yy812: YYDEBUG(812, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy814; - goto yy57; + if (yych <= '/') goto yy56; + if (yych >= '4') goto yy56; yy813: YYDEBUG(813, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= '4') goto yy57; -yy814: - YYDEBUG(814, *YYCURSOR); yyaccept = 17; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '-') goto yy816; - if (yych <= '/') goto yy815; - if (yych <= '7') goto yy817; -yy815: - YYDEBUG(815, *YYCURSOR); + if (yych == '-') goto yy815; + if (yych <= '/') goto yy814; + if (yych <= '7') goto yy816; +yy814: + YYDEBUG(814, *YYCURSOR); { timelib_sll w, d; DEBUG_OUTPUT("isoweek"); @@ -13216,15 +13199,15 @@ yy815: TIMELIB_DEINIT; return TIMELIB_ISO_WEEK; } +yy815: + YYDEBUG(815, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych >= '8') goto yy56; yy816: YYDEBUG(816, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= '8') goto yy57; -yy817: - YYDEBUG(817, *YYCURSOR); ++YYCURSOR; - YYDEBUG(818, *YYCURSOR); + YYDEBUG(817, *YYCURSOR); { timelib_sll w, d; DEBUG_OUTPUT("isoweekday"); @@ -13242,69 +13225,69 @@ yy817: TIMELIB_DEINIT; return TIMELIB_ISO_WEEK; } +yy818: + YYDEBUG(818, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy60; + if (yych <= '9') goto yy820; + goto yy60; yy819: YYDEBUG(819, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy61; - if (yych <= '9') goto yy821; - goto yy61; + if (yych <= '/') goto yy60; + if (yych <= '6') goto yy820; + if (yych <= '9') goto yy54; + goto yy60; yy820: YYDEBUG(820, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy61; - if (yych <= '6') goto yy821; - if (yych <= '9') goto yy55; - goto yy61; -yy821: - YYDEBUG(821, *YYCURSOR); yyaccept = 18; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 2) { - goto yy55; + goto yy54; } if (yych <= 'W') { if (yych <= 'F') { if (yych <= ' ') { - if (yych == '\t') goto yy61; - if (yych >= ' ') goto yy61; + if (yych == '\t') goto yy60; + if (yych >= ' ') goto yy60; } else { - if (yych == 'D') goto yy61; - if (yych >= 'F') goto yy61; + if (yych == 'D') goto yy60; + if (yych >= 'F') goto yy60; } } else { if (yych <= 'M') { - if (yych == 'H') goto yy61; - if (yych >= 'M') goto yy61; + if (yych == 'H') goto yy60; + if (yych >= 'M') goto yy60; } else { - if (yych <= 'R') goto yy822; - if (yych <= 'T') goto yy61; - if (yych >= 'W') goto yy61; + if (yych <= 'R') goto yy821; + if (yych <= 'T') goto yy60; + if (yych >= 'W') goto yy60; } } } else { if (yych <= 'h') { if (yych <= 'd') { - if (yych == 'Y') goto yy61; - if (yych >= 'd') goto yy61; + if (yych == 'Y') goto yy60; + if (yych >= 'd') goto yy60; } else { - if (yych == 'f') goto yy61; - if (yych >= 'h') goto yy61; + if (yych == 'f') goto yy60; + if (yych >= 'h') goto yy60; } } else { if (yych <= 't') { - if (yych == 'm') goto yy61; - if (yych >= 's') goto yy61; + if (yych == 'm') goto yy60; + if (yych >= 's') goto yy60; } else { if (yych <= 'w') { - if (yych >= 'w') goto yy61; + if (yych >= 'w') goto yy60; } else { - if (yych == 'y') goto yy61; + if (yych == 'y') goto yy60; } } } } -yy822: - YYDEBUG(822, *YYCURSOR); +yy821: + YYDEBUG(821, *YYCURSOR); { int length = 0; DEBUG_OUTPUT("pgydotd"); @@ -13317,108 +13300,108 @@ yy822: TIMELIB_DEINIT; return TIMELIB_PG_YEARDAY; } +yy822: + YYDEBUG(822, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy60; + if (yych <= '9') goto yy820; + goto yy60; yy823: YYDEBUG(823, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy61; - if (yych <= '9') goto yy821; - goto yy61; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy825; + goto yy56; yy824: YYDEBUG(824, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy826; - goto yy57; + if (yych <= '/') goto yy56; + if (yych >= '3') goto yy56; yy825: YYDEBUG(825, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= '3') goto yy57; -yy826: + if (yych != ':') goto yy56; YYDEBUG(826, *YYCURSOR); yych = *++YYCURSOR; - if (yych != ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '0') goto yy827; + if (yych <= '2') goto yy828; + if (yych <= '3') goto yy829; + goto yy56; +yy827: YYDEBUG(827, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '0') goto yy828; - if (yych <= '2') goto yy829; - if (yych <= '3') goto yy830; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy830; + goto yy56; yy828: YYDEBUG(828, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy831; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy830; + goto yy56; yy829: YYDEBUG(829, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy831; - goto yy57; + if (yych <= '/') goto yy56; + if (yych >= '2') goto yy56; yy830: YYDEBUG(830, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= '2') goto yy57; -yy831: + if (yych != ' ') goto yy56; YYDEBUG(831, *YYCURSOR); yych = *++YYCURSOR; - if (yych != ' ') goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '1') goto yy832; + if (yych <= '2') goto yy833; + goto yy56; +yy832: YYDEBUG(832, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '1') goto yy833; - if (yych <= '2') goto yy834; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy834; + goto yy56; yy833: YYDEBUG(833, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy835; - goto yy57; + if (yych <= '/') goto yy56; + if (yych >= '5') goto yy56; yy834: YYDEBUG(834, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= '5') goto yy57; -yy835: + if (yych != ':') goto yy56; YYDEBUG(835, *YYCURSOR); yych = *++YYCURSOR; - if (yych != ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych >= '6') goto yy56; YYDEBUG(836, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= '6') goto yy57; + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; YYDEBUG(837, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; + if (yych != ':') goto yy56; YYDEBUG(838, *YYCURSOR); yych = *++YYCURSOR; - if (yych != ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy839; + if (yych <= '6') goto yy840; + goto yy56; +yy839: YYDEBUG(839, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy840; - if (yych <= '6') goto yy841; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy841; + goto yy56; yy840: YYDEBUG(840, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy842; - goto yy57; + if (yych != '0') goto yy56; yy841: YYDEBUG(841, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '0') goto yy57; + ++YYCURSOR; yy842: YYDEBUG(842, *YYCURSOR); - ++YYCURSOR; -yy843: - YYDEBUG(843, *YYCURSOR); { int tz_not_found; DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx | exif"); @@ -13443,267 +13426,267 @@ yy843: TIMELIB_DEINIT; return TIMELIB_XMLRPC_SOAP; } -yy844: - YYDEBUG(844, *YYCURSOR); +yy843: + YYDEBUG(843, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '2') { - if (yych <= '/') goto yy61; - if (yych >= '1') goto yy846; + if (yych <= '/') goto yy60; + if (yych >= '1') goto yy845; } else { - if (yych <= '3') goto yy847; - if (yych <= '9') goto yy821; - goto yy61; + if (yych <= '3') goto yy846; + if (yych <= '9') goto yy820; + goto yy60; } -yy845: - YYDEBUG(845, *YYCURSOR); +yy844: + YYDEBUG(844, *YYCURSOR); yyaccept = 18; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == '\t') goto yy61; - if (yych <= 0x1F) goto yy822; - goto yy61; + if (yych == '\t') goto yy60; + if (yych <= 0x1F) goto yy821; + goto yy60; } else { - if (yych <= '/') goto yy822; - if (yych <= '9') goto yy848; - if (yych <= 'C') goto yy822; - goto yy61; + if (yych <= '/') goto yy821; + if (yych <= '9') goto yy847; + if (yych <= 'C') goto yy821; + goto yy60; } } else { if (yych <= 'H') { - if (yych == 'F') goto yy61; - if (yych <= 'G') goto yy822; - goto yy61; + if (yych == 'F') goto yy60; + if (yych <= 'G') goto yy821; + goto yy60; } else { if (yych <= 'M') { - if (yych <= 'L') goto yy822; - goto yy61; + if (yych <= 'L') goto yy821; + goto yy60; } else { - if (yych <= 'R') goto yy822; - if (yych <= 'T') goto yy61; - goto yy822; + if (yych <= 'R') goto yy821; + if (yych <= 'T') goto yy60; + goto yy821; } } } } else { if (yych <= 'h') { if (yych <= 'c') { - if (yych == 'X') goto yy822; - if (yych <= 'Y') goto yy61; - goto yy822; + if (yych == 'X') goto yy821; + if (yych <= 'Y') goto yy60; + goto yy821; } else { if (yych <= 'e') { - if (yych <= 'd') goto yy61; - goto yy822; + if (yych <= 'd') goto yy60; + goto yy821; } else { - if (yych == 'g') goto yy822; - goto yy61; + if (yych == 'g') goto yy821; + goto yy60; } } } else { if (yych <= 't') { - if (yych == 'm') goto yy61; - if (yych <= 'r') goto yy822; - goto yy61; + if (yych == 'm') goto yy60; + if (yych <= 'r') goto yy821; + goto yy60; } else { if (yych <= 'w') { - if (yych <= 'v') goto yy822; - goto yy61; + if (yych <= 'v') goto yy821; + goto yy60; } else { - if (yych == 'y') goto yy61; - goto yy822; + if (yych == 'y') goto yy60; + goto yy821; } } } } -yy846: - YYDEBUG(846, *YYCURSOR); +yy845: + YYDEBUG(845, *YYCURSOR); yyaccept = 18; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == '\t') goto yy61; - if (yych <= 0x1F) goto yy822; - goto yy61; + if (yych == '\t') goto yy60; + if (yych <= 0x1F) goto yy821; + goto yy60; } else { - if (yych <= '/') goto yy822; - if (yych <= '9') goto yy848; - if (yych <= 'C') goto yy822; - goto yy61; + if (yych <= '/') goto yy821; + if (yych <= '9') goto yy847; + if (yych <= 'C') goto yy821; + goto yy60; } } else { if (yych <= 'H') { - if (yych == 'F') goto yy61; - if (yych <= 'G') goto yy822; - goto yy61; + if (yych == 'F') goto yy60; + if (yych <= 'G') goto yy821; + goto yy60; } else { if (yych <= 'M') { - if (yych <= 'L') goto yy822; - goto yy61; + if (yych <= 'L') goto yy821; + goto yy60; } else { - if (yych <= 'R') goto yy822; - if (yych <= 'T') goto yy61; - goto yy822; + if (yych <= 'R') goto yy821; + if (yych <= 'T') goto yy60; + goto yy821; } } } } else { if (yych <= 'h') { if (yych <= 'c') { - if (yych == 'X') goto yy822; - if (yych <= 'Y') goto yy61; - goto yy822; + if (yych == 'X') goto yy821; + if (yych <= 'Y') goto yy60; + goto yy821; } else { if (yych <= 'e') { - if (yych <= 'd') goto yy61; - goto yy822; + if (yych <= 'd') goto yy60; + goto yy821; } else { - if (yych == 'g') goto yy822; - goto yy61; + if (yych == 'g') goto yy821; + goto yy60; } } } else { if (yych <= 't') { - if (yych == 'm') goto yy61; - if (yych <= 'r') goto yy822; - goto yy61; + if (yych == 'm') goto yy60; + if (yych <= 'r') goto yy821; + goto yy60; } else { if (yych <= 'w') { - if (yych <= 'v') goto yy822; - goto yy61; + if (yych <= 'v') goto yy821; + goto yy60; } else { - if (yych == 'y') goto yy61; - goto yy822; + if (yych == 'y') goto yy60; + goto yy821; } } } } -yy847: - YYDEBUG(847, *YYCURSOR); +yy846: + YYDEBUG(846, *YYCURSOR); yyaccept = 18; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == '\t') goto yy61; - if (yych <= 0x1F) goto yy822; - goto yy61; + if (yych == '\t') goto yy60; + if (yych <= 0x1F) goto yy821; + goto yy60; } else { if (yych <= '1') { - if (yych <= '/') goto yy822; + if (yych <= '/') goto yy821; } else { - if (yych <= '9') goto yy55; - if (yych <= 'C') goto yy822; - goto yy61; + if (yych <= '9') goto yy54; + if (yych <= 'C') goto yy821; + goto yy60; } } } else { if (yych <= 'H') { - if (yych == 'F') goto yy61; - if (yych <= 'G') goto yy822; - goto yy61; + if (yych == 'F') goto yy60; + if (yych <= 'G') goto yy821; + goto yy60; } else { if (yych <= 'M') { - if (yych <= 'L') goto yy822; - goto yy61; + if (yych <= 'L') goto yy821; + goto yy60; } else { - if (yych <= 'R') goto yy822; - if (yych <= 'T') goto yy61; - goto yy822; + if (yych <= 'R') goto yy821; + if (yych <= 'T') goto yy60; + goto yy821; } } } } else { if (yych <= 'h') { if (yych <= 'c') { - if (yych == 'X') goto yy822; - if (yych <= 'Y') goto yy61; - goto yy822; + if (yych == 'X') goto yy821; + if (yych <= 'Y') goto yy60; + goto yy821; } else { if (yych <= 'e') { - if (yych <= 'd') goto yy61; - goto yy822; + if (yych <= 'd') goto yy60; + goto yy821; } else { - if (yych == 'g') goto yy822; - goto yy61; + if (yych == 'g') goto yy821; + goto yy60; } } } else { if (yych <= 't') { - if (yych == 'm') goto yy61; - if (yych <= 'r') goto yy822; - goto yy61; + if (yych == 'm') goto yy60; + if (yych <= 'r') goto yy821; + goto yy60; } else { if (yych <= 'w') { - if (yych <= 'v') goto yy822; - goto yy61; + if (yych <= 'v') goto yy821; + goto yy60; } else { - if (yych == 'y') goto yy61; - goto yy822; + if (yych == 'y') goto yy60; + goto yy821; } } } } -yy848: - YYDEBUG(848, *YYCURSOR); +yy847: + YYDEBUG(847, *YYCURSOR); yyaccept = 19; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 2) { - goto yy55; + goto yy54; } if (yych <= 'W') { if (yych <= 'F') { if (yych <= ' ') { - if (yych == '\t') goto yy60; - if (yych >= ' ') goto yy60; + if (yych == '\t') goto yy59; + if (yych >= ' ') goto yy59; } else { - if (yych == 'D') goto yy65; - if (yych >= 'F') goto yy66; + if (yych == 'D') goto yy64; + if (yych >= 'F') goto yy65; } } else { if (yych <= 'M') { - if (yych == 'H') goto yy64; - if (yych >= 'M') goto yy63; + if (yych == 'H') goto yy63; + if (yych >= 'M') goto yy62; } else { if (yych <= 'S') { - if (yych >= 'S') goto yy62; + if (yych >= 'S') goto yy61; } else { - if (yych <= 'T') goto yy850; - if (yych >= 'W') goto yy68; + if (yych <= 'T') goto yy849; + if (yych >= 'W') goto yy67; } } } } else { if (yych <= 'l') { if (yych <= 'd') { - if (yych == 'Y') goto yy67; - if (yych >= 'd') goto yy65; + if (yych == 'Y') goto yy66; + if (yych >= 'd') goto yy64; } else { if (yych <= 'f') { - if (yych >= 'f') goto yy66; + if (yych >= 'f') goto yy65; } else { - if (yych == 'h') goto yy64; + if (yych == 'h') goto yy63; } } } else { if (yych <= 't') { - if (yych <= 'm') goto yy63; - if (yych <= 'r') goto yy849; - if (yych <= 's') goto yy62; - goto yy851; + if (yych <= 'm') goto yy62; + if (yych <= 'r') goto yy848; + if (yych <= 's') goto yy61; + goto yy850; } else { if (yych <= 'w') { - if (yych >= 'w') goto yy68; + if (yych >= 'w') goto yy67; } else { - if (yych == 'y') goto yy67; + if (yych == 'y') goto yy66; } } } } -yy849: - YYDEBUG(849, *YYCURSOR); +yy848: + YYDEBUG(848, *YYCURSOR); { DEBUG_OUTPUT("datenocolon"); TIMELIB_INIT; @@ -13714,925 +13697,925 @@ yy849: TIMELIB_DEINIT; return TIMELIB_DATE_NOCOLON; } -yy850: - YYDEBUG(850, *YYCURSOR); +yy849: + YYDEBUG(849, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'H') { if (yych <= '2') { - if (yych <= '/') goto yy57; - if (yych <= '1') goto yy865; - goto yy866; + if (yych <= '/') goto yy56; + if (yych <= '1') goto yy864; + goto yy865; } else { - if (yych <= '9') goto yy867; - if (yych <= 'G') goto yy57; - goto yy70; + if (yych <= '9') goto yy866; + if (yych <= 'G') goto yy56; + goto yy69; } } else { if (yych <= 'g') { - if (yych == 'U') goto yy71; - goto yy57; + if (yych == 'U') goto yy70; + goto yy56; } else { - if (yych <= 'h') goto yy70; - if (yych == 'u') goto yy71; - goto yy57; + if (yych <= 'h') goto yy69; + if (yych == 'u') goto yy70; + goto yy56; } } -yy851: - YYDEBUG(851, *YYCURSOR); +yy850: + YYDEBUG(850, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'H') { if (yych <= '2') { - if (yych <= '/') goto yy57; - if (yych >= '2') goto yy853; + if (yych <= '/') goto yy56; + if (yych >= '2') goto yy852; } else { - if (yych <= '9') goto yy854; - if (yych <= 'G') goto yy57; - goto yy70; + if (yych <= '9') goto yy853; + if (yych <= 'G') goto yy56; + goto yy69; } } else { if (yych <= 'g') { - if (yych == 'U') goto yy71; - goto yy57; + if (yych == 'U') goto yy70; + goto yy56; } else { - if (yych <= 'h') goto yy70; - if (yych == 'u') goto yy71; - goto yy57; + if (yych <= 'h') goto yy69; + if (yych == 'u') goto yy70; + goto yy56; } } + YYDEBUG(851, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy858; + if (yych <= '9') goto yy853; + goto yy56; +yy852: YYDEBUG(852, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy859; - if (yych <= '9') goto yy854; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '4') goto yy858; + if (yych <= '5') goto yy854; + goto yy56; yy853: YYDEBUG(853, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '4') goto yy859; - if (yych <= '5') goto yy855; - goto yy57; + if (yych <= '/') goto yy56; + if (yych >= '6') goto yy56; yy854: YYDEBUG(854, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= '6') goto yy57; + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; yy855: YYDEBUG(855, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy856; + if (yych <= '6') goto yy857; + goto yy56; yy856: YYDEBUG(856, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy857; - if (yych <= '6') goto yy858; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy841; + goto yy56; yy857: YYDEBUG(857, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy842; - goto yy57; + if (yych == '0') goto yy841; + goto yy56; yy858: YYDEBUG(858, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '0') goto yy842; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy859; + if (yych <= '9') goto yy855; + goto yy56; yy859: YYDEBUG(859, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; + if (yych <= '/') goto yy56; if (yych <= '5') goto yy860; - if (yych <= '9') goto yy856; - goto yy57; + if (yych <= '6') goto yy861; + if (yych <= '9') goto yy855; + goto yy56; yy860: YYDEBUG(860, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy861; - if (yych <= '6') goto yy862; - if (yych <= '9') goto yy856; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy862; + if (yych <= '6') goto yy863; + if (yych <= '9') goto yy841; + goto yy56; yy861: YYDEBUG(861, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy863; - if (yych <= '6') goto yy864; - if (yych <= '9') goto yy842; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '0') goto yy862; + if (yych <= '5') goto yy856; + if (yych <= '6') goto yy857; + goto yy56; yy862: YYDEBUG(862, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '0') goto yy863; - if (yych <= '5') goto yy857; - if (yych <= '6') goto yy858; - goto yy57; + if (yych <= '/') goto yy842; + if (yych <= '9') goto yy841; + goto yy842; yy863: YYDEBUG(863, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy843; - if (yych <= '9') goto yy842; - goto yy843; + if (yych == '0') goto yy841; + goto yy842; yy864: YYDEBUG(864, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '0') goto yy842; - goto yy843; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy873; + if (yych <= '9') goto yy866; + if (yych <= ':') goto yy867; + goto yy56; yy865: YYDEBUG(865, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy874; - if (yych <= '9') goto yy867; - if (yych <= ':') goto yy868; - goto yy57; -yy866: - YYDEBUG(866, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= '5') { - if (yych <= '/') goto yy57; - if (yych <= '4') goto yy874; - goto yy855; + if (yych <= '/') goto yy56; + if (yych <= '4') goto yy873; + goto yy854; } else { - if (yych == ':') goto yy868; - goto yy57; + if (yych == ':') goto yy867; + goto yy56; } +yy866: + YYDEBUG(866, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy854; + if (yych != ':') goto yy56; yy867: YYDEBUG(867, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy855; - if (yych != ':') goto yy57; -yy868: + if (yych <= '/') goto yy56; + if (yych >= '6') goto yy56; YYDEBUG(868, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= '6') goto yy57; + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; YYDEBUG(869, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; + if (yych != ':') goto yy56; YYDEBUG(870, *YYCURSOR); yych = *++YYCURSOR; - if (yych != ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy871; + if (yych <= '6') goto yy872; + goto yy56; +yy871: YYDEBUG(871, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy872; - if (yych <= '6') goto yy873; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy841; + goto yy56; yy872: YYDEBUG(872, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy842; - goto yy57; + if (yych == '0') goto yy841; + goto yy56; yy873: YYDEBUG(873, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '0') goto yy842; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy859; + if (yych <= '9') goto yy855; + if (yych <= ':') goto yy867; + goto yy56; yy874: YYDEBUG(874, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy860; - if (yych <= '9') goto yy856; - if (yych <= ':') goto yy868; - goto yy57; + if (yych <= '2') { + if (yych <= '/') goto yy60; + if (yych <= '0') goto yy876; + goto yy845; + } else { + if (yych <= '3') goto yy846; + if (yych <= '9') goto yy820; + goto yy60; + } yy875: YYDEBUG(875, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '2') { - if (yych <= '/') goto yy61; - if (yych <= '0') goto yy877; - goto yy846; + if (yych <= '/') goto yy60; + if (yych <= '0') goto yy844; + goto yy845; } else { - if (yych <= '3') goto yy847; - if (yych <= '9') goto yy821; - goto yy61; + if (yych <= '3') goto yy846; + if (yych <= '9') goto yy820; + goto yy60; } yy876: YYDEBUG(876, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '2') { - if (yych <= '/') goto yy61; - if (yych <= '0') goto yy845; - goto yy846; - } else { - if (yych <= '3') goto yy847; - if (yych <= '9') goto yy821; - goto yy61; - } + if (yych <= '/') goto yy60; + if (yych <= '9') goto yy847; + goto yy60; yy877: YYDEBUG(877, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy61; - if (yych <= '9') goto yy848; - goto yy61; + if (yych == 'C') goto yy878; + if (yych != 'c') goto yy56; yy878: YYDEBUG(878, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy879; - if (yych != 'c') goto yy57; -yy879: - YYDEBUG(879, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'E') goto yy880; - if (yych != 'e') goto yy794; + if (yych == 'E') goto yy879; + if (yych != 'e') goto yy793; +yy879: + YYDEBUG(879, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy880; + if (yych != 'm') goto yy56; yy880: YYDEBUG(880, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy881; - if (yych != 'm') goto yy57; + if (yych == 'B') goto yy881; + if (yych != 'b') goto yy56; yy881: YYDEBUG(881, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy882; - if (yych != 'b') goto yy57; + if (yych == 'E') goto yy882; + if (yych != 'e') goto yy56; yy882: YYDEBUG(882, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy883; - if (yych != 'e') goto yy57; + if (yych == 'R') goto yy883; + if (yych != 'r') goto yy56; yy883: YYDEBUG(883, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy884; - if (yych != 'r') goto yy57; + goto yy793; yy884: YYDEBUG(884, *YYCURSOR); yych = *++YYCURSOR; - goto yy794; + if (yych == 'V') goto yy885; + if (yych != 'v') goto yy56; yy885: YYDEBUG(885, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'V') goto yy886; - if (yych != 'v') goto yy57; -yy886: - YYDEBUG(886, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'E') goto yy887; - if (yych != 'e') goto yy794; + if (yych == 'E') goto yy886; + if (yych != 'e') goto yy793; +yy886: + YYDEBUG(886, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy887; + if (yych != 'm') goto yy56; yy887: YYDEBUG(887, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy888; - if (yych != 'm') goto yy57; + if (yych == 'B') goto yy888; + if (yych != 'b') goto yy56; yy888: YYDEBUG(888, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy889; - if (yych != 'b') goto yy57; + if (yych == 'E') goto yy889; + if (yych != 'e') goto yy56; yy889: YYDEBUG(889, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy890; - if (yych != 'e') goto yy57; + if (yych == 'R') goto yy883; + if (yych == 'r') goto yy883; + goto yy56; yy890: YYDEBUG(890, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy884; - if (yych == 'r') goto yy884; - goto yy57; + if (yych == 'T') goto yy891; + if (yych != 't') goto yy56; yy891: YYDEBUG(891, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy892; - if (yych != 't') goto yy57; -yy892: - YYDEBUG(892, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'O') goto yy893; - if (yych != 'o') goto yy794; + if (yych == 'O') goto yy892; + if (yych != 'o') goto yy793; +yy892: + YYDEBUG(892, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy893; + if (yych != 'b') goto yy56; yy893: YYDEBUG(893, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy894; - if (yych != 'b') goto yy57; + if (yych == 'E') goto yy894; + if (yych != 'e') goto yy56; yy894: YYDEBUG(894, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy895; - if (yych != 'e') goto yy57; + if (yych == 'R') goto yy883; + if (yych == 'r') goto yy883; + goto yy56; yy895: YYDEBUG(895, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy884; - if (yych == 'r') goto yy884; - goto yy57; -yy896: - YYDEBUG(896, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'P') { - if (yych == 'C') goto yy129; - if (yych <= 'O') goto yy57; + if (yych == 'C') goto yy128; + if (yych <= 'O') goto yy56; } else { if (yych <= 'c') { - if (yych <= 'b') goto yy57; - goto yy129; + if (yych <= 'b') goto yy56; + goto yy128; } else { - if (yych != 'p') goto yy57; + if (yych != 'p') goto yy56; } } +yy896: + YYDEBUG(896, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy897; + if (yych != 't') goto yy793; yy897: YYDEBUG(897, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy898; - if (yych != 't') goto yy794; -yy898: - YYDEBUG(898, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'E') goto yy899; - if (yych != 'e') goto yy794; + if (yych == 'E') goto yy898; + if (yych != 'e') goto yy793; +yy898: + YYDEBUG(898, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy899; + if (yych != 'm') goto yy56; yy899: YYDEBUG(899, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy900; - if (yych != 'm') goto yy57; + if (yych == 'B') goto yy900; + if (yych != 'b') goto yy56; yy900: YYDEBUG(900, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy901; - if (yych != 'b') goto yy57; + if (yych == 'E') goto yy901; + if (yych != 'e') goto yy56; yy901: YYDEBUG(901, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy902; - if (yych != 'e') goto yy57; + if (yych == 'R') goto yy883; + if (yych == 'r') goto yy883; + goto yy56; yy902: YYDEBUG(902, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy884; - if (yych == 'r') goto yy884; - goto yy57; + if (yych == 'G') goto yy906; + if (yych == 'g') goto yy906; + goto yy56; yy903: YYDEBUG(903, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'G') goto yy907; - if (yych == 'g') goto yy907; - goto yy57; + if (yych == 'R') goto yy904; + if (yych != 'r') goto yy56; yy904: YYDEBUG(904, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy905; - if (yych != 'r') goto yy57; -yy905: - YYDEBUG(905, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'I') goto yy906; - if (yych != 'i') goto yy794; + if (yych == 'I') goto yy905; + if (yych != 'i') goto yy793; +yy905: + YYDEBUG(905, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy883; + if (yych == 'l') goto yy883; + goto yy56; yy906: YYDEBUG(906, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy884; - if (yych == 'l') goto yy884; - goto yy57; -yy907: - YYDEBUG(907, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'U') goto yy908; - if (yych != 'u') goto yy794; + if (yych == 'U') goto yy907; + if (yych != 'u') goto yy793; +yy907: + YYDEBUG(907, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy908; + if (yych != 's') goto yy56; yy908: YYDEBUG(908, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy909; - if (yych != 's') goto yy57; + if (yych == 'T') goto yy883; + if (yych == 't') goto yy883; + goto yy56; yy909: YYDEBUG(909, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy884; - if (yych == 't') goto yy884; - goto yy57; -yy910: - YYDEBUG(910, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'Y') { - if (yych == 'R') goto yy911; - if (yych <= 'X') goto yy57; - goto yy884; + if (yych == 'R') goto yy910; + if (yych <= 'X') goto yy56; + goto yy883; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy57; + if (yych <= 'q') goto yy56; } else { - if (yych == 'y') goto yy884; - goto yy57; + if (yych == 'y') goto yy883; + goto yy56; } } -yy911: - YYDEBUG(911, *YYCURSOR); +yy910: + YYDEBUG(910, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'C') goto yy912; - if (yych != 'c') goto yy794; + if (yych == 'C') goto yy911; + if (yych != 'c') goto yy793; +yy911: + YYDEBUG(911, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy883; + if (yych == 'h') goto yy883; + goto yy56; yy912: YYDEBUG(912, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy884; - if (yych == 'h') goto yy884; - goto yy57; + if (yych == 'B') goto yy913; + if (yych != 'b') goto yy56; yy913: YYDEBUG(913, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy914; - if (yych != 'b') goto yy57; -yy914: - YYDEBUG(914, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'R') goto yy915; - if (yych != 'r') goto yy794; + if (yych == 'R') goto yy914; + if (yych != 'r') goto yy793; +yy914: + YYDEBUG(914, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy915; + if (yych != 'u') goto yy56; yy915: YYDEBUG(915, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy916; - if (yych != 'u') goto yy57; + if (yych == 'A') goto yy916; + if (yych != 'a') goto yy56; yy916: YYDEBUG(916, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy917; - if (yych != 'a') goto yy57; + if (yych == 'R') goto yy917; + if (yych != 'r') goto yy56; yy917: YYDEBUG(917, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy918; - if (yych != 'r') goto yy57; + if (yych == 'Y') goto yy883; + if (yych == 'y') goto yy883; + goto yy56; yy918: YYDEBUG(918, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy884; - if (yych == 'y') goto yy884; - goto yy57; -yy919: - YYDEBUG(919, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'N') { - if (yych == 'L') goto yy926; - if (yych <= 'M') goto yy57; - goto yy925; + if (yych == 'L') goto yy925; + if (yych <= 'M') goto yy56; + goto yy924; } else { if (yych <= 'l') { - if (yych <= 'k') goto yy57; - goto yy926; + if (yych <= 'k') goto yy56; + goto yy925; } else { - if (yych == 'n') goto yy925; - goto yy57; + if (yych == 'n') goto yy924; + goto yy56; } } +yy919: + YYDEBUG(919, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy920; + if (yych != 'n') goto yy56; yy920: YYDEBUG(920, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy921; - if (yych != 'n') goto yy57; -yy921: - YYDEBUG(921, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'U') goto yy922; - if (yych != 'u') goto yy794; + if (yych == 'U') goto yy921; + if (yych != 'u') goto yy793; +yy921: + YYDEBUG(921, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy922; + if (yych != 'a') goto yy56; yy922: YYDEBUG(922, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy923; - if (yych != 'a') goto yy57; + if (yych == 'R') goto yy923; + if (yych != 'r') goto yy56; yy923: YYDEBUG(923, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy924; - if (yych != 'r') goto yy57; + if (yych == 'Y') goto yy883; + if (yych == 'y') goto yy883; + goto yy56; yy924: YYDEBUG(924, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy884; - if (yych == 'y') goto yy884; - goto yy57; + if (yych == 'E') goto yy883; + if (yych == 'e') goto yy883; + goto yy793; yy925: YYDEBUG(925, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy884; - if (yych == 'e') goto yy884; - goto yy794; + if (yych == 'Y') goto yy883; + if (yych == 'y') goto yy883; + goto yy793; yy926: YYDEBUG(926, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy884; - if (yych == 'y') goto yy884; - goto yy794; + if (yych == 'I') goto yy883; + goto yy793; yy927: YYDEBUG(927, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy884; - goto yy794; -yy928: + if (yych != 'I') goto yy793; YYDEBUG(928, *YYCURSOR); yych = *++YYCURSOR; - if (yych != 'I') goto yy794; + if (yych == 'I') goto yy883; + goto yy793; +yy929: YYDEBUG(929, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy884; - goto yy794; + if (yych == 'I') goto yy883; + goto yy793; yy930: YYDEBUG(930, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy884; - goto yy794; + if (yych <= '/') goto yy56; + if (yych <= '0') goto yy945; + if (yych <= '9') goto yy944; + goto yy56; yy931: YYDEBUG(931, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '0') goto yy946; - if (yych <= '9') goto yy945; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy943; + goto yy56; yy932: YYDEBUG(932, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy944; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy941; + if (yych <= '6') goto yy940; + goto yy56; yy933: YYDEBUG(933, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy942; - if (yych <= '6') goto yy941; - goto yy57; + if (yych == 'E') goto yy912; + if (yych == 'e') goto yy912; + goto yy56; yy934: YYDEBUG(934, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy913; - if (yych == 'e') goto yy913; - goto yy57; + if (yych == 'A') goto yy909; + if (yych == 'a') goto yy909; + goto yy56; yy935: YYDEBUG(935, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy910; - if (yych == 'a') goto yy910; - goto yy57; + if (yych == 'E') goto yy939; + if (yych == 'e') goto yy939; + goto yy56; yy936: YYDEBUG(936, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy940; - if (yych == 'e') goto yy940; - goto yy57; + if (yych == 'E') goto yy877; + if (yych == 'e') goto yy877; + goto yy56; yy937: YYDEBUG(937, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy878; - if (yych == 'e') goto yy878; - goto yy57; -yy938: - YYDEBUG(938, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 9) YYFILL(9); yych = *YYCURSOR; -yy939: - YYDEBUG(939, *YYCURSOR); +yy938: + YYDEBUG(938, *YYCURSOR); YYDEBUG(-1, yych); switch (yych) { case '\t': case ' ': case '-': - case '.': goto yy938; + case '.': goto yy937; case 'A': - case 'a': goto yy800; + case 'a': goto yy799; case 'D': - case 'd': goto yy937; + case 'd': goto yy936; case 'F': - case 'f': goto yy934; - case 'I': goto yy793; + case 'f': goto yy933; + case 'I': goto yy792; case 'J': - case 'j': goto yy797; + case 'j': goto yy796; case 'M': - case 'm': goto yy935; + case 'm': goto yy934; case 'N': - case 'n': goto yy803; + case 'n': goto yy802; case 'O': - case 'o': goto yy802; + case 'o': goto yy801; case 'S': - case 's': goto yy936; - case 'V': goto yy795; - case 'X': goto yy796; - default: goto yy57; + case 's': goto yy935; + case 'V': goto yy794; + case 'X': goto yy795; + default: goto yy56; } +yy939: + YYDEBUG(939, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'P') goto yy896; + if (yych == 'p') goto yy896; + goto yy56; yy940: YYDEBUG(940, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy897; - if (yych == 'p') goto yy897; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '6') goto yy942; + goto yy56; yy941: YYDEBUG(941, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '6') goto yy943; - goto yy57; + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; yy942: YYDEBUG(942, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; + goto yy821; yy943: YYDEBUG(943, *YYCURSOR); yych = *++YYCURSOR; - goto yy822; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy942; + goto yy56; yy944: YYDEBUG(944, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy943; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy942; + goto yy56; yy945: YYDEBUG(945, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy943; - goto yy57; + if (yych <= '0') goto yy56; + if (yych <= '9') goto yy942; + goto yy56; yy946: YYDEBUG(946, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '0') goto yy57; - if (yych <= '9') goto yy943; - goto yy57; + if (yych <= '.') goto yy56; + if (yych <= '/') goto yy949; + if (yych <= '9') goto yy957; + goto yy56; yy947: YYDEBUG(947, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '.') goto yy57; - if (yych <= '/') goto yy950; - if (yych <= '9') goto yy958; - goto yy57; + if (yych <= '.') goto yy56; + if (yych <= '/') goto yy949; + if (yych <= '2') goto yy957; + goto yy56; yy948: YYDEBUG(948, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '.') goto yy57; - if (yych <= '/') goto yy950; - if (yych <= '2') goto yy958; - goto yy57; + if (yych != '/') goto yy56; yy949: YYDEBUG(949, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '/') goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '2') goto yy950; + if (yych <= '3') goto yy951; + if (yych <= '9') goto yy952; + goto yy56; yy950: YYDEBUG(950, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '2') goto yy951; - if (yych <= '3') goto yy952; - if (yych <= '9') goto yy953; - goto yy57; -yy951: - YYDEBUG(951, *YYCURSOR); yyaccept = 21; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { - if (yych <= '/') goto yy455; - if (yych <= '9') goto yy953; - if (yych <= 'm') goto yy455; - goto yy955; + if (yych <= '/') goto yy454; + if (yych <= '9') goto yy952; + if (yych <= 'm') goto yy454; + goto yy954; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy455; - goto yy956; + if (yych <= 'q') goto yy454; + goto yy955; } else { - if (yych <= 's') goto yy954; - if (yych <= 't') goto yy957; - goto yy455; + if (yych <= 's') goto yy953; + if (yych <= 't') goto yy956; + goto yy454; } } -yy952: - YYDEBUG(952, *YYCURSOR); +yy951: + YYDEBUG(951, *YYCURSOR); yyaccept = 21; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { - if (yych <= '/') goto yy455; - if (yych <= '1') goto yy953; - if (yych <= 'm') goto yy455; - goto yy955; + if (yych <= '/') goto yy454; + if (yych <= '1') goto yy952; + if (yych <= 'm') goto yy454; + goto yy954; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy455; - goto yy956; + if (yych <= 'q') goto yy454; + goto yy955; } else { - if (yych <= 's') goto yy954; - if (yych <= 't') goto yy957; - goto yy455; + if (yych <= 's') goto yy953; + if (yych <= 't') goto yy956; + goto yy454; } } -yy953: - YYDEBUG(953, *YYCURSOR); +yy952: + YYDEBUG(952, *YYCURSOR); yyaccept = 21; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'q') { - if (yych == 'n') goto yy955; - goto yy455; + if (yych == 'n') goto yy954; + goto yy454; } else { - if (yych <= 'r') goto yy956; - if (yych <= 's') goto yy954; - if (yych <= 't') goto yy957; - goto yy455; + if (yych <= 'r') goto yy955; + if (yych <= 's') goto yy953; + if (yych <= 't') goto yy956; + goto yy454; } +yy953: + YYDEBUG(953, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 't') goto yy453; + goto yy56; yy954: YYDEBUG(954, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 't') goto yy454; - goto yy57; + if (yych == 'd') goto yy453; + goto yy56; yy955: YYDEBUG(955, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'd') goto yy454; - goto yy57; + if (yych == 'd') goto yy453; + goto yy56; yy956: YYDEBUG(956, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'd') goto yy454; - goto yy57; + if (yych == 'h') goto yy453; + goto yy56; yy957: YYDEBUG(957, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'h') goto yy454; - goto yy57; -yy958: + if (yych != '/') goto yy56; YYDEBUG(958, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '/') goto yy57; - YYDEBUG(959, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= '2') { - if (yych <= '/') goto yy57; - if (yych >= '1') goto yy961; + if (yych <= '/') goto yy56; + if (yych >= '1') goto yy960; } else { - if (yych <= '3') goto yy962; - if (yych <= '9') goto yy953; - goto yy57; + if (yych <= '3') goto yy961; + if (yych <= '9') goto yy952; + goto yy56; } - YYDEBUG(960, *YYCURSOR); + YYDEBUG(959, *YYCURSOR); yyaccept = 21; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { - if (yych <= '/') goto yy455; - if (yych <= '9') goto yy963; - if (yych <= 'm') goto yy455; - goto yy955; + if (yych <= '/') goto yy454; + if (yych <= '9') goto yy962; + if (yych <= 'm') goto yy454; + goto yy954; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy455; - goto yy956; + if (yych <= 'q') goto yy454; + goto yy955; } else { - if (yych <= 's') goto yy954; - if (yych <= 't') goto yy957; - goto yy455; + if (yych <= 's') goto yy953; + if (yych <= 't') goto yy956; + goto yy454; } } -yy961: - YYDEBUG(961, *YYCURSOR); +yy960: + YYDEBUG(960, *YYCURSOR); yyaccept = 21; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { - if (yych <= '/') goto yy455; - if (yych <= '9') goto yy963; - if (yych <= 'm') goto yy455; - goto yy955; + if (yych <= '/') goto yy454; + if (yych <= '9') goto yy962; + if (yych <= 'm') goto yy454; + goto yy954; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy455; - goto yy956; + if (yych <= 'q') goto yy454; + goto yy955; } else { - if (yych <= 's') goto yy954; - if (yych <= 't') goto yy957; - goto yy455; + if (yych <= 's') goto yy953; + if (yych <= 't') goto yy956; + goto yy454; } } -yy962: - YYDEBUG(962, *YYCURSOR); +yy961: + YYDEBUG(961, *YYCURSOR); yyaccept = 21; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { - if (yych <= '/') goto yy455; - if (yych <= '1') goto yy963; - if (yych <= 'm') goto yy455; - goto yy955; + if (yych <= '/') goto yy454; + if (yych <= '1') goto yy962; + if (yych <= 'm') goto yy454; + goto yy954; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy455; - goto yy956; + if (yych <= 'q') goto yy454; + goto yy955; } else { - if (yych <= 's') goto yy954; - if (yych <= 't') goto yy957; - goto yy455; + if (yych <= 's') goto yy953; + if (yych <= 't') goto yy956; + goto yy454; } } -yy963: - YYDEBUG(963, *YYCURSOR); +yy962: + YYDEBUG(962, *YYCURSOR); yyaccept = 21; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { - if (yych == '/') goto yy454; - if (yych <= 'm') goto yy455; - goto yy955; + if (yych == '/') goto yy453; + if (yych <= 'm') goto yy454; + goto yy954; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy455; - goto yy956; + if (yych <= 'q') goto yy454; + goto yy955; } else { - if (yych <= 's') goto yy954; - if (yych <= 't') goto yy957; - goto yy455; + if (yych <= 's') goto yy953; + if (yych <= 't') goto yy956; + goto yy454; } } -yy964: - YYDEBUG(964, *YYCURSOR); +yy963: + YYDEBUG(963, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'A') goto yy1044; - if (yych <= 'T') goto yy57; - goto yy1043; + if (yych == 'A') goto yy1043; + if (yych <= 'T') goto yy56; + goto yy1042; } else { if (yych <= 'a') { - if (yych <= '`') goto yy57; - goto yy1044; + if (yych <= '`') goto yy56; + goto yy1043; } else { - if (yych == 'u') goto yy1043; - goto yy57; + if (yych == 'u') goto yy1042; + goto yy56; } } +yy964: + YYDEBUG(964, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1040; + if (yych == 'e') goto yy1040; + goto yy56; yy965: YYDEBUG(965, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy1041; - if (yych == 'e') goto yy1041; - goto yy57; + if (yych == 'A') goto yy1037; + if (yych == 'a') goto yy1037; + goto yy56; yy966: YYDEBUG(966, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy1038; - if (yych == 'a') goto yy1038; - goto yy57; -yy967: - YYDEBUG(967, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'P') goto yy1035; - if (yych <= 'T') goto yy57; - goto yy1034; + if (yych == 'P') goto yy1034; + if (yych <= 'T') goto yy56; + goto yy1033; } else { if (yych <= 'p') { - if (yych <= 'o') goto yy57; - goto yy1035; + if (yych <= 'o') goto yy56; + goto yy1034; } else { - if (yych == 'u') goto yy1034; - goto yy57; + if (yych == 'u') goto yy1033; + goto yy56; } } +yy967: + YYDEBUG(967, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1030; + if (yych == 'e') goto yy1030; + goto yy56; yy968: YYDEBUG(968, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy1031; - if (yych == 'e') goto yy1031; - goto yy57; + if (yych == 'C') goto yy1028; + if (yych == 'c') goto yy1028; + goto yy56; yy969: YYDEBUG(969, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy1029; - if (yych == 'c') goto yy1029; - goto yy57; + if (yych == 'O') goto yy1026; + if (yych == 'o') goto yy1026; + goto yy56; yy970: YYDEBUG(970, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy1027; - if (yych == 'o') goto yy1027; - goto yy57; + if (yych == 'E') goto yy1024; + if (yych == 'e') goto yy1024; + goto yy56; yy971: YYDEBUG(971, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy1025; - if (yych == 'e') goto yy1025; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '0') goto yy810; + if (yych <= '4') goto yy811; + if (yych <= '5') goto yy812; + goto yy56; yy972: YYDEBUG(972, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '0') goto yy811; - if (yych <= '4') goto yy812; - if (yych <= '5') goto yy813; - goto yy57; -yy973: - YYDEBUG(973, *YYCURSOR); yyaccept = 22; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '-') goto yy977; - if (yych <= '/') goto yy974; - if (yych <= '9') goto yy996; -yy974: - YYDEBUG(974, *YYCURSOR); + if (yych == '-') goto yy976; + if (yych <= '/') goto yy973; + if (yych <= '9') goto yy995; +yy973: + YYDEBUG(973, *YYCURSOR); { int length = 0; DEBUG_OUTPUT("gnudateshorter"); @@ -14645,716 +14628,716 @@ yy974: TIMELIB_DEINIT; return TIMELIB_ISO_DATE; } +yy974: + YYDEBUG(974, *YYCURSOR); + yyaccept = 22; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '-') goto yy976; + if (yych <= '/') goto yy973; + if (yych <= '2') goto yy995; + goto yy973; yy975: YYDEBUG(975, *YYCURSOR); yyaccept = 22; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '-') goto yy977; - if (yych <= '/') goto yy974; - if (yych <= '2') goto yy996; - goto yy974; + if (yych != '-') goto yy973; yy976: YYDEBUG(976, *YYCURSOR); - yyaccept = 22; - yych = *(YYMARKER = ++YYCURSOR); - if (yych != '-') goto yy974; + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych <= '2') goto yy977; + if (yych <= '3') goto yy978; + if (yych <= '9') goto yy979; + goto yy56; yy977: YYDEBUG(977, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '2') goto yy978; - if (yych <= '3') goto yy979; - if (yych <= '9') goto yy980; - goto yy57; -yy978: - YYDEBUG(978, *YYCURSOR); yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'm') { if (yych <= '9') { - if (yych <= '/') goto yy657; - goto yy980; + if (yych <= '/') goto yy656; + goto yy979; } else { - if (yych == 'T') goto yy985; - goto yy657; + if (yych == 'T') goto yy984; + goto yy656; } } else { if (yych <= 'r') { - if (yych <= 'n') goto yy982; - if (yych <= 'q') goto yy657; - goto yy983; + if (yych <= 'n') goto yy981; + if (yych <= 'q') goto yy656; + goto yy982; } else { - if (yych <= 's') goto yy981; - if (yych <= 't') goto yy984; - goto yy657; + if (yych <= 's') goto yy980; + if (yych <= 't') goto yy983; + goto yy656; } } -yy979: - YYDEBUG(979, *YYCURSOR); +yy978: + YYDEBUG(978, *YYCURSOR); yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'm') { if (yych <= '1') { - if (yych <= '/') goto yy657; + if (yych <= '/') goto yy656; } else { - if (yych == 'T') goto yy985; - goto yy657; + if (yych == 'T') goto yy984; + goto yy656; } } else { if (yych <= 'r') { - if (yych <= 'n') goto yy982; - if (yych <= 'q') goto yy657; - goto yy983; + if (yych <= 'n') goto yy981; + if (yych <= 'q') goto yy656; + goto yy982; } else { - if (yych <= 's') goto yy981; - if (yych <= 't') goto yy984; - goto yy657; + if (yych <= 's') goto yy980; + if (yych <= 't') goto yy983; + goto yy656; } } -yy980: - YYDEBUG(980, *YYCURSOR); +yy979: + YYDEBUG(979, *YYCURSOR); yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { - if (yych == 'T') goto yy985; - if (yych <= 'm') goto yy657; - goto yy982; + if (yych == 'T') goto yy984; + if (yych <= 'm') goto yy656; + goto yy981; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy657; - goto yy983; + if (yych <= 'q') goto yy656; + goto yy982; } else { - if (yych <= 's') goto yy981; - if (yych <= 't') goto yy984; - goto yy657; + if (yych <= 's') goto yy980; + if (yych <= 't') goto yy983; + goto yy656; } } +yy980: + YYDEBUG(980, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 't') goto yy994; + goto yy56; yy981: YYDEBUG(981, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 't') goto yy995; - goto yy57; + if (yych == 'd') goto yy994; + goto yy56; yy982: YYDEBUG(982, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'd') goto yy995; - goto yy57; + if (yych == 'd') goto yy994; + goto yy56; yy983: YYDEBUG(983, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'd') goto yy995; - goto yy57; + if (yych == 'h') goto yy994; + goto yy56; yy984: YYDEBUG(984, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'h') goto yy995; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '1') goto yy985; + if (yych <= '2') goto yy986; + if (yych <= '9') goto yy987; + goto yy56; yy985: YYDEBUG(985, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '1') goto yy986; - if (yych <= '2') goto yy987; - if (yych <= '9') goto yy988; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy987; + if (yych <= ':') goto yy988; + goto yy56; yy986: YYDEBUG(986, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy988; - if (yych <= ':') goto yy989; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '4') goto yy987; + if (yych == ':') goto yy988; + goto yy56; yy987: YYDEBUG(987, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '4') goto yy988; - if (yych == ':') goto yy989; - goto yy57; + if (yych != ':') goto yy56; yy988: YYDEBUG(988, *YYCURSOR); yych = *++YYCURSOR; - if (yych != ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy989; + if (yych <= '9') goto yy990; + goto yy56; yy989: YYDEBUG(989, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy990; - if (yych <= '9') goto yy991; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy990; + if (yych <= ':') goto yy991; + goto yy56; yy990: YYDEBUG(990, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy991; - if (yych <= ':') goto yy992; - goto yy57; + if (yych != ':') goto yy56; yy991: YYDEBUG(991, *YYCURSOR); yych = *++YYCURSOR; - if (yych != ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy992; + if (yych <= '6') goto yy993; + if (yych <= '9') goto yy841; + goto yy56; yy992: YYDEBUG(992, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy993; - if (yych <= '6') goto yy994; - if (yych <= '9') goto yy842; - goto yy57; + if (yych <= '/') goto yy842; + if (yych <= '9') goto yy841; + goto yy842; yy993: YYDEBUG(993, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy843; - if (yych <= '9') goto yy842; - goto yy843; + if (yych == '0') goto yy841; + goto yy842; yy994: YYDEBUG(994, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '0') goto yy842; - goto yy843; -yy995: - YYDEBUG(995, *YYCURSOR); yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'T') goto yy985; - goto yy657; -yy996: - YYDEBUG(996, *YYCURSOR); + if (yych == 'T') goto yy984; + goto yy656; +yy995: + YYDEBUG(995, *YYCURSOR); yyaccept = 22; yych = *(YYMARKER = ++YYCURSOR); - if (yych != '-') goto yy974; - YYDEBUG(997, *YYCURSOR); + if (yych != '-') goto yy973; + YYDEBUG(996, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '2') { - if (yych <= '/') goto yy57; - if (yych >= '1') goto yy999; + if (yych <= '/') goto yy56; + if (yych >= '1') goto yy998; } else { - if (yych <= '3') goto yy1000; - if (yych <= '9') goto yy980; - goto yy57; + if (yych <= '3') goto yy999; + if (yych <= '9') goto yy979; + goto yy56; } - YYDEBUG(998, *YYCURSOR); + YYDEBUG(997, *YYCURSOR); yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'm') { if (yych <= '9') { - if (yych <= '/') goto yy657; - goto yy1001; + if (yych <= '/') goto yy656; + goto yy1000; } else { - if (yych == 'T') goto yy985; - goto yy657; + if (yych == 'T') goto yy984; + goto yy656; } } else { if (yych <= 'r') { - if (yych <= 'n') goto yy982; - if (yych <= 'q') goto yy657; - goto yy983; + if (yych <= 'n') goto yy981; + if (yych <= 'q') goto yy656; + goto yy982; } else { - if (yych <= 's') goto yy981; - if (yych <= 't') goto yy984; - goto yy657; + if (yych <= 's') goto yy980; + if (yych <= 't') goto yy983; + goto yy656; } } -yy999: - YYDEBUG(999, *YYCURSOR); +yy998: + YYDEBUG(998, *YYCURSOR); yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'm') { if (yych <= '9') { - if (yych <= '/') goto yy657; - goto yy1001; + if (yych <= '/') goto yy656; + goto yy1000; } else { - if (yych == 'T') goto yy985; - goto yy657; + if (yych == 'T') goto yy984; + goto yy656; } } else { if (yych <= 'r') { - if (yych <= 'n') goto yy982; - if (yych <= 'q') goto yy657; - goto yy983; + if (yych <= 'n') goto yy981; + if (yych <= 'q') goto yy656; + goto yy982; } else { - if (yych <= 's') goto yy981; - if (yych <= 't') goto yy984; - goto yy657; + if (yych <= 's') goto yy980; + if (yych <= 't') goto yy983; + goto yy656; } } -yy1000: - YYDEBUG(1000, *YYCURSOR); +yy999: + YYDEBUG(999, *YYCURSOR); yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'm') { if (yych <= '1') { - if (yych <= '/') goto yy657; + if (yych <= '/') goto yy656; } else { - if (yych == 'T') goto yy985; - goto yy657; + if (yych == 'T') goto yy984; + goto yy656; } } else { if (yych <= 'r') { - if (yych <= 'n') goto yy982; - if (yych <= 'q') goto yy657; - goto yy983; + if (yych <= 'n') goto yy981; + if (yych <= 'q') goto yy656; + goto yy982; } else { - if (yych <= 's') goto yy981; - if (yych <= 't') goto yy984; - goto yy657; + if (yych <= 's') goto yy980; + if (yych <= 't') goto yy983; + goto yy656; } } -yy1001: - YYDEBUG(1001, *YYCURSOR); +yy1000: + YYDEBUG(1000, *YYCURSOR); yyaccept = 21; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { - if (yych == 'T') goto yy1002; - if (yych <= 'm') goto yy455; - goto yy982; + if (yych == 'T') goto yy1001; + if (yych <= 'm') goto yy454; + goto yy981; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy455; - goto yy983; + if (yych <= 'q') goto yy454; + goto yy982; } else { - if (yych <= 's') goto yy981; - if (yych <= 't') goto yy984; - goto yy455; + if (yych <= 's') goto yy980; + if (yych <= 't') goto yy983; + goto yy454; } } +yy1001: + YYDEBUG(1001, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych <= '1') goto yy1002; + if (yych <= '2') goto yy1003; + if (yych <= '9') goto yy987; + goto yy56; yy1002: YYDEBUG(1002, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '1') goto yy1003; - if (yych <= '2') goto yy1004; - if (yych <= '9') goto yy988; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy1004; + if (yych <= ':') goto yy988; + goto yy56; yy1003: YYDEBUG(1003, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy1005; - if (yych <= ':') goto yy989; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '4') goto yy1004; + if (yych == ':') goto yy988; + goto yy56; yy1004: YYDEBUG(1004, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '4') goto yy1005; - if (yych == ':') goto yy989; - goto yy57; -yy1005: + if (yych != ':') goto yy56; YYDEBUG(1005, *YYCURSOR); yych = *++YYCURSOR; - if (yych != ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy1006; + if (yych <= '9') goto yy990; + goto yy56; +yy1006: YYDEBUG(1006, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy1007; - if (yych <= '9') goto yy991; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy1007; + if (yych <= ':') goto yy991; + goto yy56; yy1007: YYDEBUG(1007, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy1008; - if (yych <= ':') goto yy992; - goto yy57; -yy1008: + if (yych != ':') goto yy56; YYDEBUG(1008, *YYCURSOR); yych = *++YYCURSOR; - if (yych != ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy1009; + if (yych <= '6') goto yy1010; + if (yych <= '9') goto yy841; + goto yy56; +yy1009: YYDEBUG(1009, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy1010; - if (yych <= '6') goto yy1011; - if (yych <= '9') goto yy842; - goto yy57; + if (yych <= '/') goto yy842; + if (yych <= '9') goto yy1011; + goto yy842; yy1010: YYDEBUG(1010, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy843; - if (yych <= '9') goto yy1012; - goto yy843; + if (yych != '0') goto yy842; yy1011: YYDEBUG(1011, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '0') goto yy843; -yy1012: - YYDEBUG(1012, *YYCURSOR); yyaccept = 23; yych = *(YYMARKER = ++YYCURSOR); - if (yych != '.') goto yy843; - YYDEBUG(1013, *YYCURSOR); + if (yych != '.') goto yy842; + YYDEBUG(1012, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; -yy1014: - YYDEBUG(1014, *YYCURSOR); + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; +yy1013: + YYDEBUG(1013, *YYCURSOR); yyaccept = 23; YYMARKER = ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 9) YYFILL(9); yych = *YYCURSOR; - YYDEBUG(1015, *YYCURSOR); + YYDEBUG(1014, *YYCURSOR); if (yych <= '-') { - if (yych == '+') goto yy1017; - if (yych <= ',') goto yy843; - goto yy1017; + if (yych == '+') goto yy1016; + if (yych <= ',') goto yy842; + goto yy1016; } else { if (yych <= '9') { - if (yych <= '/') goto yy843; - goto yy1014; + if (yych <= '/') goto yy842; + goto yy1013; } else { - if (yych != 'G') goto yy843; + if (yych != 'G') goto yy842; } } + YYDEBUG(1015, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy1022; + goto yy56; +yy1016: YYDEBUG(1016, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy1023; - goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '1') goto yy1017; + if (yych <= '2') goto yy1018; + if (yych <= '9') goto yy1019; + goto yy56; yy1017: YYDEBUG(1017, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '1') goto yy1018; - if (yych <= '2') goto yy1019; - if (yych <= '9') goto yy1020; - goto yy57; + if (yych <= '/') goto yy842; + if (yych <= '9') goto yy1019; + if (yych <= ':') goto yy1020; + goto yy842; yy1018: YYDEBUG(1018, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy843; - if (yych <= '9') goto yy1020; - if (yych <= ':') goto yy1021; - goto yy843; -yy1019: - YYDEBUG(1019, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= '5') { - if (yych <= '/') goto yy843; - if (yych >= '5') goto yy1022; + if (yych <= '/') goto yy842; + if (yych >= '5') goto yy1021; } else { - if (yych <= '9') goto yy842; - if (yych <= ':') goto yy1021; - goto yy843; + if (yych <= '9') goto yy841; + if (yych <= ':') goto yy1020; + goto yy842; } +yy1019: + YYDEBUG(1019, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy842; + if (yych <= '5') goto yy1021; + if (yych <= '9') goto yy841; + if (yych >= ';') goto yy842; yy1020: YYDEBUG(1020, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy843; - if (yych <= '5') goto yy1022; - if (yych <= '9') goto yy842; - if (yych >= ';') goto yy843; + if (yych <= '/') goto yy842; + if (yych <= '5') goto yy1021; + if (yych <= '9') goto yy841; + goto yy842; yy1021: YYDEBUG(1021, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy843; - if (yych <= '5') goto yy1022; - if (yych <= '9') goto yy842; - goto yy843; + if (yych <= '/') goto yy842; + if (yych <= '9') goto yy841; + goto yy842; yy1022: YYDEBUG(1022, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy843; - if (yych <= '9') goto yy842; - goto yy843; -yy1023: + if (yych != 'T') goto yy56; YYDEBUG(1023, *YYCURSOR); yych = *++YYCURSOR; - if (yych != 'T') goto yy57; + if (yych == '+') goto yy1016; + if (yych == '-') goto yy1016; + goto yy56; +yy1024: YYDEBUG(1024, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '+') goto yy1017; - if (yych == '-') goto yy1017; - goto yy57; + if (yych == 'C') goto yy1025; + if (yych != 'c') goto yy56; yy1025: YYDEBUG(1025, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy1026; - if (yych != 'c') goto yy57; -yy1026: - YYDEBUG(1026, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { - if (yych == '-') goto yy767; - goto yy794; + if (yych == '-') goto yy766; + goto yy793; } else { - if (yych <= 'E') goto yy880; - if (yych == 'e') goto yy880; - goto yy794; + if (yych <= 'E') goto yy879; + if (yych == 'e') goto yy879; + goto yy793; } +yy1026: + YYDEBUG(1026, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'V') goto yy1027; + if (yych != 'v') goto yy56; yy1027: YYDEBUG(1027, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'V') goto yy1028; - if (yych != 'v') goto yy57; -yy1028: - YYDEBUG(1028, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { - if (yych == '-') goto yy767; - goto yy794; + if (yych == '-') goto yy766; + goto yy793; } else { - if (yych <= 'E') goto yy887; - if (yych == 'e') goto yy887; - goto yy794; + if (yych <= 'E') goto yy886; + if (yych == 'e') goto yy886; + goto yy793; } +yy1028: + YYDEBUG(1028, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy1029; + if (yych != 't') goto yy56; yy1029: YYDEBUG(1029, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy1030; - if (yych != 't') goto yy57; -yy1030: - YYDEBUG(1030, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'N') { - if (yych == '-') goto yy767; - goto yy794; + if (yych == '-') goto yy766; + goto yy793; } else { - if (yych <= 'O') goto yy893; - if (yych == 'o') goto yy893; - goto yy794; + if (yych <= 'O') goto yy892; + if (yych == 'o') goto yy892; + goto yy793; } +yy1030: + YYDEBUG(1030, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'P') goto yy1031; + if (yych != 'p') goto yy56; yy1031: YYDEBUG(1031, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy1032; - if (yych != 'p') goto yy57; -yy1032: - YYDEBUG(1032, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { - if (yych == '-') goto yy767; - goto yy794; + if (yych == '-') goto yy766; + goto yy793; } else { - if (yych <= 'T') goto yy1033; - if (yych != 't') goto yy794; + if (yych <= 'T') goto yy1032; + if (yych != 't') goto yy793; } -yy1033: - YYDEBUG(1033, *YYCURSOR); +yy1032: + YYDEBUG(1032, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { - if (yych == '-') goto yy767; - goto yy794; + if (yych == '-') goto yy766; + goto yy793; } else { - if (yych <= 'E') goto yy899; - if (yych == 'e') goto yy899; - goto yy794; + if (yych <= 'E') goto yy898; + if (yych == 'e') goto yy898; + goto yy793; } +yy1033: + YYDEBUG(1033, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy1036; + if (yych == 'g') goto yy1036; + goto yy56; yy1034: YYDEBUG(1034, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'G') goto yy1037; - if (yych == 'g') goto yy1037; - goto yy57; + if (yych == 'R') goto yy1035; + if (yych != 'r') goto yy56; yy1035: YYDEBUG(1035, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy1036; - if (yych != 'r') goto yy57; -yy1036: - YYDEBUG(1036, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'H') { - if (yych == '-') goto yy767; - goto yy794; + if (yych == '-') goto yy766; + goto yy793; } else { - if (yych <= 'I') goto yy906; - if (yych == 'i') goto yy906; - goto yy794; + if (yych <= 'I') goto yy905; + if (yych == 'i') goto yy905; + goto yy793; } -yy1037: - YYDEBUG(1037, *YYCURSOR); +yy1036: + YYDEBUG(1036, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'T') { - if (yych == '-') goto yy767; - goto yy794; + if (yych == '-') goto yy766; + goto yy793; } else { - if (yych <= 'U') goto yy908; - if (yych == 'u') goto yy908; - goto yy794; + if (yych <= 'U') goto yy907; + if (yych == 'u') goto yy907; + goto yy793; } -yy1038: - YYDEBUG(1038, *YYCURSOR); +yy1037: + YYDEBUG(1037, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'Y') { - if (yych == 'R') goto yy1039; - if (yych <= 'X') goto yy57; - goto yy1040; + if (yych == 'R') goto yy1038; + if (yych <= 'X') goto yy56; + goto yy1039; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy57; + if (yych <= 'q') goto yy56; } else { - if (yych == 'y') goto yy1040; - goto yy57; + if (yych == 'y') goto yy1039; + goto yy56; } } -yy1039: - YYDEBUG(1039, *YYCURSOR); +yy1038: + YYDEBUG(1038, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'B') { - if (yych == '-') goto yy767; - goto yy794; + if (yych == '-') goto yy766; + goto yy793; } else { - if (yych <= 'C') goto yy912; - if (yych == 'c') goto yy912; - goto yy794; + if (yych <= 'C') goto yy911; + if (yych == 'c') goto yy911; + goto yy793; } -yy1040: - YYDEBUG(1040, *YYCURSOR); +yy1039: + YYDEBUG(1039, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '-') goto yy767; - goto yy794; + if (yych == '-') goto yy766; + goto yy793; +yy1040: + YYDEBUG(1040, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy1041; + if (yych != 'b') goto yy56; yy1041: YYDEBUG(1041, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy1042; - if (yych != 'b') goto yy57; -yy1042: - YYDEBUG(1042, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'Q') { - if (yych == '-') goto yy767; - goto yy794; + if (yych == '-') goto yy766; + goto yy793; } else { - if (yych <= 'R') goto yy915; - if (yych == 'r') goto yy915; - goto yy794; + if (yych <= 'R') goto yy914; + if (yych == 'r') goto yy914; + goto yy793; } -yy1043: - YYDEBUG(1043, *YYCURSOR); +yy1042: + YYDEBUG(1042, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'N') { - if (yych == 'L') goto yy1047; - if (yych <= 'M') goto yy57; - goto yy1046; + if (yych == 'L') goto yy1046; + if (yych <= 'M') goto yy56; + goto yy1045; } else { if (yych <= 'l') { - if (yych <= 'k') goto yy57; - goto yy1047; + if (yych <= 'k') goto yy56; + goto yy1046; } else { - if (yych == 'n') goto yy1046; - goto yy57; + if (yych == 'n') goto yy1045; + goto yy56; } } +yy1043: + YYDEBUG(1043, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy1044; + if (yych != 'n') goto yy56; yy1044: YYDEBUG(1044, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy1045; - if (yych != 'n') goto yy57; -yy1045: - YYDEBUG(1045, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'T') { - if (yych == '-') goto yy767; - goto yy794; + if (yych == '-') goto yy766; + goto yy793; } else { - if (yych <= 'U') goto yy922; - if (yych == 'u') goto yy922; - goto yy794; + if (yych <= 'U') goto yy921; + if (yych == 'u') goto yy921; + goto yy793; } -yy1046: - YYDEBUG(1046, *YYCURSOR); +yy1045: + YYDEBUG(1045, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { - if (yych == '-') goto yy767; - goto yy794; + if (yych == '-') goto yy766; + goto yy793; } else { - if (yych <= 'E') goto yy884; - if (yych == 'e') goto yy884; - goto yy794; + if (yych <= 'E') goto yy883; + if (yych == 'e') goto yy883; + goto yy793; } -yy1047: - YYDEBUG(1047, *YYCURSOR); +yy1046: + YYDEBUG(1046, *YYCURSOR); yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'X') { - if (yych == '-') goto yy767; - goto yy794; + if (yych == '-') goto yy766; + goto yy793; } else { - if (yych <= 'Y') goto yy884; - if (yych == 'y') goto yy884; - goto yy794; + if (yych <= 'Y') goto yy883; + if (yych == 'y') goto yy883; + goto yy793; } -yy1048: - YYDEBUG(1048, *YYCURSOR); +yy1047: + YYDEBUG(1047, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '.') { if (yych <= '\t') { - if (yych <= 0x08) goto yy578; - goto yy731; + if (yych <= 0x08) goto yy577; + goto yy730; } else { - if (yych <= ',') goto yy578; - if (yych <= '-') goto yy732; - goto yy731; + if (yych <= ',') goto yy577; + if (yych <= '-') goto yy731; + goto yy730; } } else { if (yych <= 'U') { - if (yych <= '/') goto yy730; - if (yych <= 'T') goto yy578; - goto yy78; + if (yych <= '/') goto yy729; + if (yych <= 'T') goto yy577; + goto yy77; } else { - if (yych == 'u') goto yy78; - goto yy578; + if (yych == 'u') goto yy77; + goto yy577; } } -yy1049: - YYDEBUG(1049, *YYCURSOR); +yy1048: + YYDEBUG(1048, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'P') { - if (yych == 'C') goto yy129; - if (yych <= 'O') goto yy57; - goto yy586; + if (yych == 'C') goto yy128; + if (yych <= 'O') goto yy56; + goto yy585; } else { if (yych <= 'c') { - if (yych <= 'b') goto yy57; - goto yy129; + if (yych <= 'b') goto yy56; + goto yy128; } else { - if (yych == 'p') goto yy586; - goto yy57; + if (yych == 'p') goto yy585; + goto yy56; } } -yy1050: - YYDEBUG(1050, *YYCURSOR); +yy1049: + YYDEBUG(1049, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '9') { if (yych <= ',') { - if (yych == '\t') goto yy1052; - goto yy1054; + if (yych == '\t') goto yy1051; + goto yy1053; } else { - if (yych <= '-') goto yy1051; - if (yych <= '.') goto yy731; - if (yych <= '/') goto yy730; - goto yy741; + if (yych <= '-') goto yy1050; + if (yych <= '.') goto yy730; + if (yych <= '/') goto yy729; + goto yy740; } } else { if (yych <= 'q') { - if (yych == 'n') goto yy470; - goto yy1054; + if (yych == 'n') goto yy469; + goto yy1053; } else { - if (yych <= 'r') goto yy471; - if (yych <= 's') goto yy464; - if (yych <= 't') goto yy468; - goto yy1054; + if (yych <= 'r') goto yy470; + if (yych <= 's') goto yy463; + if (yych <= 't') goto yy467; + goto yy1053; } } -yy1051: - YYDEBUG(1051, *YYCURSOR); +yy1050: + YYDEBUG(1050, *YYCURSOR); yych = *++YYCURSOR; YYDEBUG(-1, yych); switch (yych) { - case '0': goto yy1055; - case '1': goto yy1056; + case '0': goto yy1054; + case '1': goto yy1055; case '2': case '3': case '4': @@ -15362,246 +15345,246 @@ yy1051: case '6': case '7': case '8': - case '9': goto yy618; + case '9': goto yy617; case 'A': - case 'a': goto yy622; + case 'a': goto yy621; case 'D': - case 'd': goto yy626; + case 'd': goto yy625; case 'F': - case 'f': goto yy620; + case 'f': goto yy619; case 'J': - case 'j': goto yy619; + case 'j': goto yy618; case 'M': - case 'm': goto yy621; + case 'm': goto yy620; case 'N': - case 'n': goto yy625; + case 'n': goto yy624; case 'O': - case 'o': goto yy624; + case 'o': goto yy623; case 'S': - case 's': goto yy623; - default: goto yy578; + case 's': goto yy622; + default: goto yy577; } +yy1051: + YYDEBUG(1051, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy1053; + if (yych <= '0') goto yy735; + if (yych <= '1') goto yy736; + if (yych <= '9') goto yy737; + goto yy1053; yy1052: YYDEBUG(1052, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy1054; - if (yych <= '0') goto yy736; - if (yych <= '1') goto yy737; - if (yych <= '9') goto yy738; - goto yy1054; -yy1053: - YYDEBUG(1053, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13); yych = *YYCURSOR; -yy1054: - YYDEBUG(1054, *YYCURSOR); +yy1053: + YYDEBUG(1053, *YYCURSOR); YYDEBUG(-1, yych); switch (yych) { case '\t': - case ' ': goto yy1053; + case ' ': goto yy1052; case '-': - case '.': goto yy577; + case '.': goto yy576; case 'A': - case 'a': goto yy574; + case 'a': goto yy573; case 'D': - case 'd': goto yy466; + case 'd': goto yy465; case 'F': - case 'f': goto yy467; + case 'f': goto yy466; case 'H': - case 'h': goto yy64; - case 'I': goto yy475; + case 'h': goto yy63; + case 'I': goto yy474; case 'J': - case 'j': goto yy479; + case 'j': goto yy478; case 'M': - case 'm': goto yy465; + case 'm': goto yy464; case 'N': - case 'n': goto yy482; + case 'n': goto yy481; case 'O': - case 'o': goto yy481; + case 'o': goto yy480; case 'S': - case 's': goto yy463; + case 's': goto yy462; case 'T': - case 't': goto yy69; - case 'V': goto yy477; + case 't': goto yy68; + case 'V': goto yy476; case 'W': - case 'w': goto yy68; - case 'X': goto yy478; + case 'w': goto yy67; + case 'X': goto yy477; case 'Y': - case 'y': goto yy67; - default: goto yy57; + case 'y': goto yy66; + default: goto yy56; + } +yy1054: + YYDEBUG(1054, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '.') { + if (yych <= ',') goto yy56; + if (yych <= '-') goto yy654; + goto yy601; + } else { + if (yych <= '/') goto yy56; + if (yych <= '9') goto yy1056; + goto yy56; } yy1055: YYDEBUG(1055, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '.') { - if (yych <= ',') goto yy57; - if (yych <= '-') goto yy655; - goto yy602; + if (yych <= ',') goto yy56; + if (yych <= '-') goto yy654; + goto yy601; } else { - if (yych <= '/') goto yy57; - if (yych <= '9') goto yy1057; - goto yy57; + if (yych <= '/') goto yy56; + if (yych >= '3') goto yy56; } yy1056: YYDEBUG(1056, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '.') { - if (yych <= ',') goto yy57; - if (yych <= '-') goto yy655; - goto yy602; - } else { - if (yych <= '/') goto yy57; - if (yych >= '3') goto yy57; - } + if (yych <= ',') goto yy56; + if (yych <= '-') goto yy1057; + if (yych <= '.') goto yy601; + goto yy56; yy1057: YYDEBUG(1057, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= ',') goto yy57; - if (yych <= '-') goto yy1058; - if (yych <= '.') goto yy602; - goto yy57; -yy1058: - YYDEBUG(1058, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= '2') { - if (yych <= '/') goto yy57; - if (yych >= '1') goto yy1060; + if (yych <= '/') goto yy56; + if (yych >= '1') goto yy1059; } else { - if (yych <= '3') goto yy1061; - if (yych <= '9') goto yy659; - goto yy57; + if (yych <= '3') goto yy1060; + if (yych <= '9') goto yy658; + goto yy56; } - YYDEBUG(1059, *YYCURSOR); + YYDEBUG(1058, *YYCURSOR); yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { - if (yych <= '/') goto yy657; - if (yych <= '9') goto yy1062; - if (yych <= 'm') goto yy657; - goto yy661; + if (yych <= '/') goto yy656; + if (yych <= '9') goto yy1061; + if (yych <= 'm') goto yy656; + goto yy660; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy657; - goto yy662; + if (yych <= 'q') goto yy656; + goto yy661; } else { - if (yych <= 's') goto yy660; - if (yych <= 't') goto yy663; - goto yy657; + if (yych <= 's') goto yy659; + if (yych <= 't') goto yy662; + goto yy656; } } -yy1060: - YYDEBUG(1060, *YYCURSOR); +yy1059: + YYDEBUG(1059, *YYCURSOR); yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { - if (yych <= '/') goto yy657; - if (yych <= '9') goto yy1062; - if (yych <= 'm') goto yy657; - goto yy661; + if (yych <= '/') goto yy656; + if (yych <= '9') goto yy1061; + if (yych <= 'm') goto yy656; + goto yy660; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy657; - goto yy662; + if (yych <= 'q') goto yy656; + goto yy661; } else { - if (yych <= 's') goto yy660; - if (yych <= 't') goto yy663; - goto yy657; + if (yych <= 's') goto yy659; + if (yych <= 't') goto yy662; + goto yy656; } } -yy1061: - YYDEBUG(1061, *YYCURSOR); +yy1060: + YYDEBUG(1060, *YYCURSOR); yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { if (yych <= '1') { - if (yych <= '/') goto yy657; + if (yych <= '/') goto yy656; } else { - if (yych <= '9') goto yy604; - if (yych <= 'm') goto yy657; - goto yy661; + if (yych <= '9') goto yy603; + if (yych <= 'm') goto yy656; + goto yy660; } } else { if (yych <= 'r') { - if (yych <= 'q') goto yy657; - goto yy662; + if (yych <= 'q') goto yy656; + goto yy661; } else { - if (yych <= 's') goto yy660; - if (yych <= 't') goto yy663; - goto yy657; + if (yych <= 's') goto yy659; + if (yych <= 't') goto yy662; + goto yy656; } } -yy1062: - YYDEBUG(1062, *YYCURSOR); +yy1061: + YYDEBUG(1061, *YYCURSOR); yyaccept = 15; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'n') { - if (yych <= '/') goto yy764; - if (yych <= '9') goto yy605; - if (yych <= 'm') goto yy764; - goto yy661; + if (yych <= '/') goto yy763; + if (yych <= '9') goto yy604; + if (yych <= 'm') goto yy763; + goto yy660; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy764; - goto yy662; + if (yych <= 'q') goto yy763; + goto yy661; } else { - if (yych <= 's') goto yy660; - if (yych <= 't') goto yy663; - goto yy764; + if (yych <= 's') goto yy659; + if (yych <= 't') goto yy662; + goto yy763; } } -yy1063: - YYDEBUG(1063, *YYCURSOR); +yy1062: + YYDEBUG(1062, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '9') { if (yych <= '-') { - if (yych == '\t') goto yy1052; - if (yych <= ',') goto yy1054; - goto yy1051; + if (yych == '\t') goto yy1051; + if (yych <= ',') goto yy1053; + goto yy1050; } else { - if (yych <= '.') goto yy1064; - if (yych <= '/') goto yy730; - if (yych <= '5') goto yy1066; - goto yy741; + if (yych <= '.') goto yy1063; + if (yych <= '/') goto yy729; + if (yych <= '5') goto yy1065; + goto yy740; } } else { if (yych <= 'q') { - if (yych <= ':') goto yy1065; - if (yych == 'n') goto yy470; - goto yy1054; + if (yych <= ':') goto yy1064; + if (yych == 'n') goto yy469; + goto yy1053; } else { - if (yych <= 'r') goto yy471; - if (yych <= 's') goto yy464; - if (yych <= 't') goto yy468; - goto yy1054; + if (yych <= 'r') goto yy470; + if (yych <= 's') goto yy463; + if (yych <= 't') goto yy467; + goto yy1053; } } -yy1064: - YYDEBUG(1064, *YYCURSOR); +yy1063: + YYDEBUG(1063, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '1') { - if (yych <= '/') goto yy578; - if (yych <= '0') goto yy1088; - goto yy1089; + if (yych <= '/') goto yy577; + if (yych <= '0') goto yy1087; + goto yy1088; } else { - if (yych <= '5') goto yy1090; - if (yych <= '9') goto yy1091; - goto yy578; + if (yych <= '5') goto yy1089; + if (yych <= '9') goto yy1090; + goto yy577; } +yy1064: + YYDEBUG(1064, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy1082; + if (yych <= '9') goto yy1083; + goto yy56; yy1065: YYDEBUG(1065, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy1083; - if (yych <= '9') goto yy1084; - goto yy57; -yy1066: + if (yych == '-') goto yy784; + if (yych <= '/') goto yy60; + if (yych >= ':') goto yy60; YYDEBUG(1066, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy785; - if (yych <= '/') goto yy61; - if (yych >= ':') goto yy61; - YYDEBUG(1067, *YYCURSOR); yyaccept = 24; yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); @@ -15633,26 +15616,26 @@ yy1066: case 's': case 't': case 'w': - case 'y': goto yy791; - case '-': goto yy788; - case '.': goto yy792; - case '/': goto yy789; - case '0': goto yy1069; - case '1': goto yy1070; - case '2': goto yy1071; - case '3': goto yy1072; + case 'y': goto yy790; + case '-': goto yy787; + case '.': goto yy791; + case '/': goto yy788; + case '0': goto yy1068; + case '1': goto yy1069; + case '2': goto yy1070; + case '3': goto yy1071; case '4': - case '5': goto yy1073; - case '6': goto yy1074; + case '5': goto yy1072; + case '6': goto yy1073; case '7': case '8': - case '9': goto yy55; - case ':': goto yy807; - case 'W': goto yy810; - default: goto yy1068; + case '9': goto yy54; + case ':': goto yy806; + case 'W': goto yy809; + default: goto yy1067; } -yy1068: - YYDEBUG(1068, *YYCURSOR); +yy1067: + YYDEBUG(1067, *YYCURSOR); { DEBUG_OUTPUT("gnunocolon"); TIMELIB_INIT; @@ -15674,97 +15657,97 @@ yy1068: TIMELIB_DEINIT; return TIMELIB_GNU_NOCOLON; } +yy1068: + YYDEBUG(1068, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy60; + if (yych <= '0') goto yy1080; + if (yych <= '9') goto yy1081; + goto yy60; yy1069: YYDEBUG(1069, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy61; - if (yych <= '0') goto yy1081; - if (yych <= '9') goto yy1082; - goto yy61; + if (yych <= '/') goto yy60; + if (yych <= '2') goto yy1079; + if (yych <= '9') goto yy1078; + goto yy60; yy1070: YYDEBUG(1070, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy61; - if (yych <= '2') goto yy1080; - if (yych <= '9') goto yy1079; - goto yy61; + if (yych <= '/') goto yy60; + if (yych <= '9') goto yy1078; + goto yy60; yy1071: YYDEBUG(1071, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy61; - if (yych <= '9') goto yy1079; - goto yy61; + if (yych <= '/') goto yy60; + if (yych <= '5') goto yy1076; + if (yych <= '6') goto yy1077; + if (yych <= '9') goto yy1074; + goto yy60; yy1072: YYDEBUG(1072, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy61; - if (yych <= '5') goto yy1077; - if (yych <= '6') goto yy1078; - if (yych <= '9') goto yy1075; - goto yy61; + if (yych <= '/') goto yy60; + if (yych <= '9') goto yy1074; + goto yy60; yy1073: YYDEBUG(1073, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy61; - if (yych <= '9') goto yy1075; - goto yy61; + if (yych <= '/') goto yy60; + if (yych <= '0') goto yy1074; + if (yych <= '9') goto yy54; + goto yy60; yy1074: YYDEBUG(1074, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy61; - if (yych <= '0') goto yy1075; - if (yych <= '9') goto yy55; - goto yy61; -yy1075: - YYDEBUG(1075, *YYCURSOR); yyaccept = 25; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 2) { - goto yy55; + goto yy54; } if (yych <= 'W') { if (yych <= 'F') { if (yych <= ' ') { - if (yych == '\t') goto yy61; - if (yych >= ' ') goto yy61; + if (yych == '\t') goto yy60; + if (yych >= ' ') goto yy60; } else { - if (yych == 'D') goto yy61; - if (yych >= 'F') goto yy61; + if (yych == 'D') goto yy60; + if (yych >= 'F') goto yy60; } } else { if (yych <= 'M') { - if (yych == 'H') goto yy61; - if (yych >= 'M') goto yy61; + if (yych == 'H') goto yy60; + if (yych >= 'M') goto yy60; } else { - if (yych <= 'R') goto yy1076; - if (yych <= 'T') goto yy61; - if (yych >= 'W') goto yy61; + if (yych <= 'R') goto yy1075; + if (yych <= 'T') goto yy60; + if (yych >= 'W') goto yy60; } } } else { if (yych <= 'h') { if (yych <= 'd') { - if (yych == 'Y') goto yy61; - if (yych >= 'd') goto yy61; + if (yych == 'Y') goto yy60; + if (yych >= 'd') goto yy60; } else { - if (yych == 'f') goto yy61; - if (yych >= 'h') goto yy61; + if (yych == 'f') goto yy60; + if (yych >= 'h') goto yy60; } } else { if (yych <= 't') { - if (yych == 'm') goto yy61; - if (yych >= 's') goto yy61; + if (yych == 'm') goto yy60; + if (yych >= 's') goto yy60; } else { if (yych <= 'w') { - if (yych >= 'w') goto yy61; + if (yych >= 'w') goto yy60; } else { - if (yych == 'y') goto yy61; + if (yych == 'y') goto yy60; } } } } -yy1076: - YYDEBUG(1076, *YYCURSOR); +yy1075: + YYDEBUG(1075, *YYCURSOR); { int tz_not_found; DEBUG_OUTPUT("iso8601nocolon"); @@ -15783,903 +15766,903 @@ yy1076: TIMELIB_DEINIT; return TIMELIB_ISO_NOCOLON; } -yy1077: - YYDEBUG(1077, *YYCURSOR); +yy1076: + YYDEBUG(1076, *YYCURSOR); yyaccept = 25; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == '\t') goto yy61; - if (yych <= 0x1F) goto yy1076; - goto yy61; + if (yych == '\t') goto yy60; + if (yych <= 0x1F) goto yy1075; + goto yy60; } else { - if (yych <= '/') goto yy1076; - if (yych <= '9') goto yy821; - if (yych <= 'C') goto yy1076; - goto yy61; + if (yych <= '/') goto yy1075; + if (yych <= '9') goto yy820; + if (yych <= 'C') goto yy1075; + goto yy60; } } else { if (yych <= 'H') { - if (yych == 'F') goto yy61; - if (yych <= 'G') goto yy1076; - goto yy61; + if (yych == 'F') goto yy60; + if (yych <= 'G') goto yy1075; + goto yy60; } else { if (yych <= 'M') { - if (yych <= 'L') goto yy1076; - goto yy61; + if (yych <= 'L') goto yy1075; + goto yy60; } else { - if (yych <= 'R') goto yy1076; - if (yych <= 'T') goto yy61; - goto yy1076; + if (yych <= 'R') goto yy1075; + if (yych <= 'T') goto yy60; + goto yy1075; } } } } else { if (yych <= 'h') { if (yych <= 'c') { - if (yych == 'X') goto yy1076; - if (yych <= 'Y') goto yy61; - goto yy1076; + if (yych == 'X') goto yy1075; + if (yych <= 'Y') goto yy60; + goto yy1075; } else { if (yych <= 'e') { - if (yych <= 'd') goto yy61; - goto yy1076; + if (yych <= 'd') goto yy60; + goto yy1075; } else { - if (yych == 'g') goto yy1076; - goto yy61; + if (yych == 'g') goto yy1075; + goto yy60; } } } else { if (yych <= 't') { - if (yych == 'm') goto yy61; - if (yych <= 'r') goto yy1076; - goto yy61; + if (yych == 'm') goto yy60; + if (yych <= 'r') goto yy1075; + goto yy60; } else { if (yych <= 'w') { - if (yych <= 'v') goto yy1076; - goto yy61; + if (yych <= 'v') goto yy1075; + goto yy60; } else { - if (yych == 'y') goto yy61; - goto yy1076; + if (yych == 'y') goto yy60; + goto yy1075; } } } } -yy1078: - YYDEBUG(1078, *YYCURSOR); +yy1077: + YYDEBUG(1077, *YYCURSOR); yyaccept = 25; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == '\t') goto yy61; - if (yych <= 0x1F) goto yy1076; - goto yy61; + if (yych == '\t') goto yy60; + if (yych <= 0x1F) goto yy1075; + goto yy60; } else { if (yych <= '6') { - if (yych <= '/') goto yy1076; - goto yy821; + if (yych <= '/') goto yy1075; + goto yy820; } else { - if (yych <= '9') goto yy55; - if (yych <= 'C') goto yy1076; - goto yy61; + if (yych <= '9') goto yy54; + if (yych <= 'C') goto yy1075; + goto yy60; } } } else { if (yych <= 'H') { - if (yych == 'F') goto yy61; - if (yych <= 'G') goto yy1076; - goto yy61; + if (yych == 'F') goto yy60; + if (yych <= 'G') goto yy1075; + goto yy60; } else { if (yych <= 'M') { - if (yych <= 'L') goto yy1076; - goto yy61; + if (yych <= 'L') goto yy1075; + goto yy60; } else { - if (yych <= 'R') goto yy1076; - if (yych <= 'T') goto yy61; - goto yy1076; + if (yych <= 'R') goto yy1075; + if (yych <= 'T') goto yy60; + goto yy1075; } } } } else { if (yych <= 'h') { if (yych <= 'c') { - if (yych == 'X') goto yy1076; - if (yych <= 'Y') goto yy61; - goto yy1076; + if (yych == 'X') goto yy1075; + if (yych <= 'Y') goto yy60; + goto yy1075; } else { if (yych <= 'e') { - if (yych <= 'd') goto yy61; - goto yy1076; + if (yych <= 'd') goto yy60; + goto yy1075; } else { - if (yych == 'g') goto yy1076; - goto yy61; + if (yych == 'g') goto yy1075; + goto yy60; } } } else { if (yych <= 't') { - if (yych == 'm') goto yy61; - if (yych <= 'r') goto yy1076; - goto yy61; + if (yych == 'm') goto yy60; + if (yych <= 'r') goto yy1075; + goto yy60; } else { if (yych <= 'w') { - if (yych <= 'v') goto yy1076; - goto yy61; + if (yych <= 'v') goto yy1075; + goto yy60; } else { - if (yych == 'y') goto yy61; - goto yy1076; + if (yych == 'y') goto yy60; + goto yy1075; } } } } -yy1079: - YYDEBUG(1079, *YYCURSOR); +yy1078: + YYDEBUG(1078, *YYCURSOR); yyaccept = 25; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == '\t') goto yy61; - if (yych <= 0x1F) goto yy1076; - goto yy61; + if (yych == '\t') goto yy60; + if (yych <= 0x1F) goto yy1075; + goto yy60; } else { - if (yych <= '/') goto yy1076; - if (yych <= '9') goto yy821; - if (yych <= 'C') goto yy1076; - goto yy61; + if (yych <= '/') goto yy1075; + if (yych <= '9') goto yy820; + if (yych <= 'C') goto yy1075; + goto yy60; } } else { if (yych <= 'H') { - if (yych == 'F') goto yy61; - if (yych <= 'G') goto yy1076; - goto yy61; + if (yych == 'F') goto yy60; + if (yych <= 'G') goto yy1075; + goto yy60; } else { if (yych <= 'M') { - if (yych <= 'L') goto yy1076; - goto yy61; + if (yych <= 'L') goto yy1075; + goto yy60; } else { - if (yych <= 'R') goto yy1076; - if (yych <= 'T') goto yy61; - goto yy1076; + if (yych <= 'R') goto yy1075; + if (yych <= 'T') goto yy60; + goto yy1075; } } } } else { if (yych <= 'h') { if (yych <= 'c') { - if (yych == 'X') goto yy1076; - if (yych <= 'Y') goto yy61; - goto yy1076; + if (yych == 'X') goto yy1075; + if (yych <= 'Y') goto yy60; + goto yy1075; } else { if (yych <= 'e') { - if (yych <= 'd') goto yy61; - goto yy1076; + if (yych <= 'd') goto yy60; + goto yy1075; } else { - if (yych == 'g') goto yy1076; - goto yy61; + if (yych == 'g') goto yy1075; + goto yy60; } } } else { if (yych <= 't') { - if (yych == 'm') goto yy61; - if (yych <= 'r') goto yy1076; - goto yy61; + if (yych == 'm') goto yy60; + if (yych <= 'r') goto yy1075; + goto yy60; } else { if (yych <= 'w') { - if (yych <= 'v') goto yy1076; - goto yy61; + if (yych <= 'v') goto yy1075; + goto yy60; } else { - if (yych == 'y') goto yy61; - goto yy1076; + if (yych == 'y') goto yy60; + goto yy1075; } } } } -yy1080: - YYDEBUG(1080, *YYCURSOR); +yy1079: + YYDEBUG(1079, *YYCURSOR); yyaccept = 25; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'T') { if (yych <= '9') { if (yych <= ' ') { - if (yych == '\t') goto yy61; - if (yych <= 0x1F) goto yy1076; - goto yy61; + if (yych == '\t') goto yy60; + if (yych <= 0x1F) goto yy1075; + goto yy60; } else { if (yych <= '0') { - if (yych <= '/') goto yy1076; - goto yy845; + if (yych <= '/') goto yy1075; + goto yy844; } else { - if (yych <= '2') goto yy846; - if (yych <= '3') goto yy847; - goto yy821; + if (yych <= '2') goto yy845; + if (yych <= '3') goto yy846; + goto yy820; } } } else { if (yych <= 'G') { if (yych <= 'D') { - if (yych <= 'C') goto yy1076; - goto yy61; + if (yych <= 'C') goto yy1075; + goto yy60; } else { - if (yych == 'F') goto yy61; - goto yy1076; + if (yych == 'F') goto yy60; + goto yy1075; } } else { if (yych <= 'L') { - if (yych <= 'H') goto yy61; - goto yy1076; + if (yych <= 'H') goto yy60; + goto yy1075; } else { - if (yych <= 'M') goto yy61; - if (yych <= 'R') goto yy1076; - goto yy61; + if (yych <= 'M') goto yy60; + if (yych <= 'R') goto yy1075; + goto yy60; } } } } else { if (yych <= 'g') { if (yych <= 'Y') { - if (yych == 'W') goto yy61; - if (yych <= 'X') goto yy1076; - goto yy61; + if (yych == 'W') goto yy60; + if (yych <= 'X') goto yy1075; + goto yy60; } else { if (yych <= 'd') { - if (yych <= 'c') goto yy1076; - goto yy61; + if (yych <= 'c') goto yy1075; + goto yy60; } else { - if (yych == 'f') goto yy61; - goto yy1076; + if (yych == 'f') goto yy60; + goto yy1075; } } } else { if (yych <= 't') { if (yych <= 'l') { - if (yych <= 'h') goto yy61; - goto yy1076; + if (yych <= 'h') goto yy60; + goto yy1075; } else { - if (yych <= 'm') goto yy61; - if (yych <= 'r') goto yy1076; - goto yy61; + if (yych <= 'm') goto yy60; + if (yych <= 'r') goto yy1075; + goto yy60; } } else { if (yych <= 'w') { - if (yych <= 'v') goto yy1076; - goto yy61; + if (yych <= 'v') goto yy1075; + goto yy60; } else { - if (yych == 'y') goto yy61; - goto yy1076; + if (yych == 'y') goto yy60; + goto yy1075; } } } } -yy1081: - YYDEBUG(1081, *YYCURSOR); +yy1080: + YYDEBUG(1080, *YYCURSOR); yyaccept = 25; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'T') { if (yych <= '9') { if (yych <= ' ') { - if (yych == '\t') goto yy61; - if (yych <= 0x1F) goto yy1076; - goto yy61; + if (yych == '\t') goto yy60; + if (yych <= 0x1F) goto yy1075; + goto yy60; } else { if (yych <= '0') { - if (yych <= '/') goto yy1076; - goto yy877; + if (yych <= '/') goto yy1075; + goto yy876; } else { - if (yych <= '2') goto yy846; - if (yych <= '3') goto yy847; - goto yy821; + if (yych <= '2') goto yy845; + if (yych <= '3') goto yy846; + goto yy820; } } } else { if (yych <= 'G') { if (yych <= 'D') { - if (yych <= 'C') goto yy1076; - goto yy61; + if (yych <= 'C') goto yy1075; + goto yy60; } else { - if (yych == 'F') goto yy61; - goto yy1076; + if (yych == 'F') goto yy60; + goto yy1075; } } else { if (yych <= 'L') { - if (yych <= 'H') goto yy61; - goto yy1076; + if (yych <= 'H') goto yy60; + goto yy1075; } else { - if (yych <= 'M') goto yy61; - if (yych <= 'R') goto yy1076; - goto yy61; + if (yych <= 'M') goto yy60; + if (yych <= 'R') goto yy1075; + goto yy60; } } } } else { if (yych <= 'g') { if (yych <= 'Y') { - if (yych == 'W') goto yy61; - if (yych <= 'X') goto yy1076; - goto yy61; + if (yych == 'W') goto yy60; + if (yych <= 'X') goto yy1075; + goto yy60; } else { if (yych <= 'd') { - if (yych <= 'c') goto yy1076; - goto yy61; + if (yych <= 'c') goto yy1075; + goto yy60; } else { - if (yych == 'f') goto yy61; - goto yy1076; + if (yych == 'f') goto yy60; + goto yy1075; } } } else { if (yych <= 't') { if (yych <= 'l') { - if (yych <= 'h') goto yy61; - goto yy1076; + if (yych <= 'h') goto yy60; + goto yy1075; } else { - if (yych <= 'm') goto yy61; - if (yych <= 'r') goto yy1076; - goto yy61; + if (yych <= 'm') goto yy60; + if (yych <= 'r') goto yy1075; + goto yy60; } } else { if (yych <= 'w') { - if (yych <= 'v') goto yy1076; - goto yy61; + if (yych <= 'v') goto yy1075; + goto yy60; } else { - if (yych == 'y') goto yy61; - goto yy1076; + if (yych == 'y') goto yy60; + goto yy1075; } } } } -yy1082: - YYDEBUG(1082, *YYCURSOR); +yy1081: + YYDEBUG(1081, *YYCURSOR); yyaccept = 25; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'T') { if (yych <= '9') { if (yych <= ' ') { - if (yych == '\t') goto yy61; - if (yych <= 0x1F) goto yy1076; - goto yy61; + if (yych == '\t') goto yy60; + if (yych <= 0x1F) goto yy1075; + goto yy60; } else { if (yych <= '0') { - if (yych <= '/') goto yy1076; - goto yy845; + if (yych <= '/') goto yy1075; + goto yy844; } else { - if (yych <= '2') goto yy846; - if (yych <= '3') goto yy847; - goto yy821; + if (yych <= '2') goto yy845; + if (yych <= '3') goto yy846; + goto yy820; } } } else { if (yych <= 'G') { if (yych <= 'D') { - if (yych <= 'C') goto yy1076; - goto yy61; + if (yych <= 'C') goto yy1075; + goto yy60; } else { - if (yych == 'F') goto yy61; - goto yy1076; + if (yych == 'F') goto yy60; + goto yy1075; } } else { if (yych <= 'L') { - if (yych <= 'H') goto yy61; - goto yy1076; + if (yych <= 'H') goto yy60; + goto yy1075; } else { - if (yych <= 'M') goto yy61; - if (yych <= 'R') goto yy1076; - goto yy61; + if (yych <= 'M') goto yy60; + if (yych <= 'R') goto yy1075; + goto yy60; } } } } else { if (yych <= 'g') { if (yych <= 'Y') { - if (yych == 'W') goto yy61; - if (yych <= 'X') goto yy1076; - goto yy61; + if (yych == 'W') goto yy60; + if (yych <= 'X') goto yy1075; + goto yy60; } else { if (yych <= 'd') { - if (yych <= 'c') goto yy1076; - goto yy61; + if (yych <= 'c') goto yy1075; + goto yy60; } else { - if (yych == 'f') goto yy61; - goto yy1076; + if (yych == 'f') goto yy60; + goto yy1075; } } } else { if (yych <= 't') { if (yych <= 'l') { - if (yych <= 'h') goto yy61; - goto yy1076; + if (yych <= 'h') goto yy60; + goto yy1075; } else { - if (yych <= 'm') goto yy61; - if (yych <= 'r') goto yy1076; - goto yy61; + if (yych <= 'm') goto yy60; + if (yych <= 'r') goto yy1075; + goto yy60; } } else { if (yych <= 'w') { - if (yych <= 'v') goto yy1076; - goto yy61; + if (yych <= 'v') goto yy1075; + goto yy60; } else { - if (yych == 'y') goto yy61; - goto yy1076; + if (yych == 'y') goto yy60; + goto yy1075; } } } } -yy1083: - YYDEBUG(1083, *YYCURSOR); +yy1082: + YYDEBUG(1082, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '.') goto yy1085; - goto yy491; + if (yych == '.') goto yy1084; + goto yy490; } else { - if (yych <= '9') goto yy1084; - if (yych <= ':') goto yy1085; - goto yy491; + if (yych <= '9') goto yy1083; + if (yych <= ':') goto yy1084; + goto yy490; } -yy1084: - YYDEBUG(1084, *YYCURSOR); +yy1083: + YYDEBUG(1083, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy1085; - if (yych != ':') goto yy491; + if (yych == '.') goto yy1084; + if (yych != ':') goto yy490; +yy1084: + YYDEBUG(1084, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy1085; + if (yych <= '6') goto yy1086; + if (yych <= '9') goto yy495; + goto yy56; yy1085: YYDEBUG(1085, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy1086; - if (yych <= '6') goto yy1087; - if (yych <= '9') goto yy496; - goto yy57; + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy496; + if (yych <= '/') goto yy490; + if (yych <= '9') goto yy495; + goto yy490; yy1086: YYDEBUG(1086, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy497; - if (yych <= '/') goto yy491; - if (yych <= '9') goto yy496; - goto yy491; + if (yych == '.') goto yy496; + if (yych == '0') goto yy495; + goto yy490; yy1087: YYDEBUG(1087, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy497; - if (yych == '0') goto yy496; - goto yy491; + if (yych <= '.') { + if (yych <= ',') goto yy490; + if (yych <= '-') goto yy601; + goto yy1091; + } else { + if (yych <= '/') goto yy490; + if (yych <= '9') goto yy1090; + if (yych <= ':') goto yy1084; + goto yy490; + } yy1088: YYDEBUG(1088, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= ',') goto yy491; - if (yych <= '-') goto yy602; - goto yy1092; + if (yych <= '/') { + if (yych <= ',') goto yy490; + if (yych <= '-') goto yy601; + if (yych <= '.') goto yy1091; + goto yy490; } else { - if (yych <= '/') goto yy491; - if (yych <= '9') goto yy1091; - if (yych <= ':') goto yy1085; - goto yy491; + if (yych <= '2') goto yy1090; + if (yych <= '9') goto yy1083; + if (yych <= ':') goto yy1084; + goto yy490; } yy1089: YYDEBUG(1089, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= ',') goto yy491; - if (yych <= '-') goto yy602; - if (yych <= '.') goto yy1092; - goto yy491; + if (yych <= '.') { + if (yych <= ',') goto yy490; + if (yych <= '-') goto yy601; + goto yy1091; } else { - if (yych <= '2') goto yy1091; - if (yych <= '9') goto yy1084; - if (yych <= ':') goto yy1085; - goto yy491; + if (yych <= '/') goto yy490; + if (yych <= '9') goto yy1083; + if (yych <= ':') goto yy1084; + goto yy490; } yy1090: YYDEBUG(1090, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { - if (yych <= ',') goto yy491; - if (yych <= '-') goto yy602; - goto yy1092; + if (yych <= ',') goto yy490; + if (yych <= '-') goto yy601; } else { - if (yych <= '/') goto yy491; - if (yych <= '9') goto yy1084; - if (yych <= ':') goto yy1085; - goto yy491; + if (yych == ':') goto yy1084; + goto yy490; } yy1091: YYDEBUG(1091, *YYCURSOR); - yyaccept = 11; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= ',') goto yy491; - if (yych <= '-') goto yy602; - } else { - if (yych == ':') goto yy1085; - goto yy491; - } + yych = *++YYCURSOR; + if (yych <= '/') goto yy56; + if (yych <= '5') goto yy1092; + if (yych <= '6') goto yy1093; + if (yych <= '9') goto yy609; + goto yy56; yy1092: YYDEBUG(1092, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '5') goto yy1093; - if (yych <= '6') goto yy1094; - if (yych <= '9') goto yy610; - goto yy57; + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy496; + if (yych <= '/') goto yy490; + if (yych <= '9') goto yy1094; + goto yy490; yy1093: YYDEBUG(1093, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy497; - if (yych <= '/') goto yy491; - if (yych <= '9') goto yy1095; - goto yy491; + if (yych <= '/') { + if (yych == '.') goto yy496; + goto yy490; + } else { + if (yych <= '0') goto yy1094; + if (yych <= '9') goto yy610; + goto yy490; + } yy1094: YYDEBUG(1094, *YYCURSOR); yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '.') goto yy497; - goto yy491; - } else { - if (yych <= '0') goto yy1095; - if (yych <= '9') goto yy611; - goto yy491; - } + if (yych == '.') goto yy496; + if (yych <= '/') goto yy490; + if (yych <= '9') goto yy604; + goto yy490; yy1095: YYDEBUG(1095, *YYCURSOR); - yyaccept = 11; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy497; - if (yych <= '/') goto yy491; - if (yych <= '9') goto yy605; - goto yy491; + yych = *++YYCURSOR; + if (yych <= '9') { + if (yych <= '-') { + if (yych == '\t') goto yy459; + if (yych <= ',') goto yy461; + goto yy1050; + } else { + if (yych <= '.') goto yy473; + if (yych <= '/') goto yy471; + if (yych <= '5') goto yy1065; + goto yy740; + } + } else { + if (yych <= 'q') { + if (yych <= ':') goto yy482; + if (yych == 'n') goto yy469; + goto yy461; + } else { + if (yych <= 'r') goto yy470; + if (yych <= 's') goto yy463; + if (yych <= 't') goto yy467; + goto yy461; + } + } yy1096: YYDEBUG(1096, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '9') { if (yych <= '-') { - if (yych == '\t') goto yy460; - if (yych <= ',') goto yy462; - goto yy1051; + if (yych == '\t') goto yy1051; + if (yych <= ',') goto yy1053; + goto yy1050; } else { - if (yych <= '.') goto yy474; - if (yych <= '/') goto yy472; - if (yych <= '5') goto yy1066; - goto yy741; + if (yych <= '.') goto yy1063; + if (yych <= '/') goto yy471; + if (yych <= '5') goto yy1065; + goto yy740; } } else { if (yych <= 'q') { - if (yych <= ':') goto yy483; - if (yych == 'n') goto yy470; - goto yy462; + if (yych <= ':') goto yy1064; + if (yych == 'n') goto yy469; + goto yy1053; } else { - if (yych <= 'r') goto yy471; - if (yych <= 's') goto yy464; - if (yych <= 't') goto yy468; - goto yy462; + if (yych <= 'r') goto yy470; + if (yych <= 's') goto yy463; + if (yych <= 't') goto yy467; + goto yy1053; } } yy1097: YYDEBUG(1097, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '9') { - if (yych <= '-') { - if (yych == '\t') goto yy1052; - if (yych <= ',') goto yy1054; - goto yy1051; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '.') goto yy1064; - if (yych <= '/') goto yy472; - if (yych <= '5') goto yy1066; - goto yy741; + if (yych <= '@') goto yy3; + if (yych <= 'D') goto yy141; } } else { - if (yych <= 'q') { - if (yych <= ':') goto yy1065; - if (yych == 'n') goto yy470; - goto yy1054; + if (yych <= 'd') { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { - if (yych <= 'r') goto yy471; - if (yych <= 's') goto yy464; - if (yych <= 't') goto yy468; - goto yy1054; + if (yych <= 'e') goto yy1098; + if (yych <= 'z') goto yy141; + goto yy3; } } yy1098: YYDEBUG(1098, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'E') { + if (yych <= 'V') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'D') goto yy142; + if (yych <= '@') goto yy3; + if (yych <= 'U') goto yy142; } } else { - if (yych <= 'd') { + if (yych <= 'u') { if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; + if (yych <= '`') goto yy3; goto yy142; } else { - if (yych <= 'e') goto yy1099; + if (yych <= 'v') goto yy1099; if (yych <= 'z') goto yy142; - goto yy4; + goto yy3; } } yy1099: YYDEBUG(1099, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'V') { + if (yych <= 'I') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'U') goto yy143; + if (yych <= '@') goto yy3; + if (yych <= 'H') goto yy143; } } else { - if (yych <= 'u') { + if (yych <= 'h') { if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; + if (yych <= '`') goto yy3; goto yy143; } else { - if (yych <= 'v') goto yy1100; + if (yych <= 'i') goto yy1100; if (yych <= 'z') goto yy143; - goto yy4; + goto yy3; } } yy1100: YYDEBUG(1100, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'I') { + if (yych <= 'O') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'H') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'N') goto yy144; } } else { - if (yych <= 'h') { + if (yych <= 'n') { if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; + if (yych <= '`') goto yy3; goto yy144; } else { - if (yych <= 'i') goto yy1101; + if (yych <= 'o') goto yy1101; if (yych <= 'z') goto yy144; - goto yy4; + goto yy3; } } yy1101: YYDEBUG(1101, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; - } else { - if (yych <= '@') goto yy4; - if (yych <= 'N') goto yy145; - } - } else { - if (yych <= 'n') { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - goto yy145; - } else { - if (yych <= 'o') goto yy1102; - if (yych <= 'z') goto yy145; - goto yy4; - } - } -yy1102: - YYDEBUG(1102, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'T') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych <= 'U') goto yy1103; - if (yych != 'u') goto yy4; + if (yych <= 'U') goto yy1102; + if (yych != 'u') goto yy3; } +yy1102: + YYDEBUG(1102, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy1103; + if (yych != 's') goto yy56; yy1103: YYDEBUG(1103, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy1104; - if (yych != 's') goto yy57; + if (yych == '\t') goto yy1104; + if (yych != ' ') goto yy56; yy1104: YYDEBUG(1104, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\t') goto yy1105; - if (yych != ' ') goto yy57; -yy1105: - YYDEBUG(1105, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11); yych = *YYCURSOR; -yy1106: - YYDEBUG(1106, *YYCURSOR); +yy1105: + YYDEBUG(1105, *YYCURSOR); if (yych <= 'W') { if (yych <= 'F') { if (yych <= ' ') { - if (yych == '\t') goto yy1105; - if (yych <= 0x1F) goto yy57; - goto yy1105; + if (yych == '\t') goto yy1104; + if (yych <= 0x1F) goto yy56; + goto yy1104; } else { - if (yych == 'D') goto yy1110; - if (yych <= 'E') goto yy57; - goto yy1111; + if (yych == 'D') goto yy1109; + if (yych <= 'E') goto yy56; + goto yy1110; } } else { if (yych <= 'M') { - if (yych == 'H') goto yy1109; - if (yych <= 'L') goto yy57; - goto yy1108; + if (yych == 'H') goto yy1108; + if (yych <= 'L') goto yy56; + goto yy1107; } else { if (yych <= 'S') { - if (yych <= 'R') goto yy57; + if (yych <= 'R') goto yy56; } else { - if (yych <= 'T') goto yy1114; - if (yych <= 'V') goto yy57; - goto yy1113; + if (yych <= 'T') goto yy1113; + if (yych <= 'V') goto yy56; + goto yy1112; } } } } else { if (yych <= 'l') { if (yych <= 'd') { - if (yych == 'Y') goto yy1112; - if (yych <= 'c') goto yy57; - goto yy1110; + if (yych == 'Y') goto yy1111; + if (yych <= 'c') goto yy56; + goto yy1109; } else { if (yych <= 'f') { - if (yych <= 'e') goto yy57; - goto yy1111; + if (yych <= 'e') goto yy56; + goto yy1110; } else { - if (yych == 'h') goto yy1109; - goto yy57; + if (yych == 'h') goto yy1108; + goto yy56; } } } else { if (yych <= 't') { - if (yych <= 'm') goto yy1108; - if (yych <= 'r') goto yy57; - if (yych >= 't') goto yy1114; + if (yych <= 'm') goto yy1107; + if (yych <= 'r') goto yy56; + if (yych >= 't') goto yy1113; } else { if (yych <= 'w') { - if (yych <= 'v') goto yy57; - goto yy1113; + if (yych <= 'v') goto yy56; + goto yy1112; } else { - if (yych == 'y') goto yy1112; - goto yy57; + if (yych == 'y') goto yy1111; + goto yy56; } } } } -yy1107: - YYDEBUG(1107, *YYCURSOR); +yy1106: + YYDEBUG(1106, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { if (yych <= 'D') { - if (yych == 'A') goto yy1179; - goto yy57; + if (yych == 'A') goto yy1178; + goto yy56; } else { - if (yych <= 'E') goto yy1180; - if (yych <= 'T') goto yy57; - goto yy1178; + if (yych <= 'E') goto yy1179; + if (yych <= 'T') goto yy56; + goto yy1177; } } else { if (yych <= 'd') { - if (yych == 'a') goto yy1179; - goto yy57; + if (yych == 'a') goto yy1178; + goto yy56; } else { - if (yych <= 'e') goto yy1180; - if (yych == 'u') goto yy1178; - goto yy57; + if (yych <= 'e') goto yy1179; + if (yych == 'u') goto yy1177; + goto yy56; } } -yy1108: - YYDEBUG(1108, *YYCURSOR); +yy1107: + YYDEBUG(1107, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { - if (yych == 'I') goto yy1170; - if (yych <= 'N') goto yy57; - goto yy1169; + if (yych == 'I') goto yy1169; + if (yych <= 'N') goto yy56; + goto yy1168; } else { if (yych <= 'i') { - if (yych <= 'h') goto yy57; - goto yy1170; + if (yych <= 'h') goto yy56; + goto yy1169; } else { - if (yych == 'o') goto yy1169; - goto yy57; + if (yych == 'o') goto yy1168; + goto yy56; } } +yy1108: + YYDEBUG(1108, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy1166; + if (yych == 'o') goto yy1166; + goto yy56; yy1109: YYDEBUG(1109, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy1167; - if (yych == 'o') goto yy1167; - goto yy57; + if (yych == 'A') goto yy1165; + if (yych == 'a') goto yy1165; + goto yy56; yy1110: YYDEBUG(1110, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy1166; - if (yych == 'a') goto yy1166; - goto yy57; -yy1111: - YYDEBUG(1111, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'R') { - if (yych == 'O') goto yy1151; - if (yych <= 'Q') goto yy57; - goto yy1150; + if (yych == 'O') goto yy1150; + if (yych <= 'Q') goto yy56; + goto yy1149; } else { if (yych <= 'o') { - if (yych <= 'n') goto yy57; - goto yy1151; + if (yych <= 'n') goto yy56; + goto yy1150; } else { - if (yych == 'r') goto yy1150; - goto yy57; + if (yych == 'r') goto yy1149; + goto yy56; } } +yy1111: + YYDEBUG(1111, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1146; + if (yych == 'e') goto yy1146; + goto yy56; yy1112: YYDEBUG(1112, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy1147; - if (yych == 'e') goto yy1147; - goto yy57; + if (yych == 'E') goto yy1132; + if (yych == 'e') goto yy1132; + goto yy56; yy1113: YYDEBUG(1113, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy1133; - if (yych == 'e') goto yy1133; - goto yy57; -yy1114: - YYDEBUG(1114, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'H') goto yy1115; - if (yych <= 'T') goto yy57; - goto yy1116; + if (yych == 'H') goto yy1114; + if (yych <= 'T') goto yy56; + goto yy1115; } else { if (yych <= 'h') { - if (yych <= 'g') goto yy57; + if (yych <= 'g') goto yy56; } else { - if (yych == 'u') goto yy1116; - goto yy57; + if (yych == 'u') goto yy1115; + goto yy56; } } +yy1114: + YYDEBUG(1114, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy1127; + if (yych == 'u') goto yy1127; + goto yy56; yy1115: YYDEBUG(1115, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy1128; - if (yych == 'u') goto yy1128; - goto yy57; + if (yych == 'E') goto yy1116; + if (yych != 'e') goto yy56; yy1116: YYDEBUG(1116, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy1117; - if (yych != 'e') goto yy57; -yy1117: - YYDEBUG(1117, *YYCURSOR); yyaccept = 26; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ' ') { - if (yych == '\t') goto yy1119; - if (yych >= ' ') goto yy1119; + if (yych == '\t') goto yy1118; + if (yych >= ' ') goto yy1118; } else { if (yych <= 'S') { - if (yych >= 'S') goto yy1121; + if (yych >= 'S') goto yy1120; } else { - if (yych == 's') goto yy1121; + if (yych == 's') goto yy1120; } } -yy1118: - YYDEBUG(1118, *YYCURSOR); +yy1117: + YYDEBUG(1117, *YYCURSOR); { timelib_sll i; int behavior = 0; @@ -16695,56 +16678,56 @@ yy1118: TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -yy1119: - YYDEBUG(1119, *YYCURSOR); +yy1118: + YYDEBUG(1118, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; - YYDEBUG(1120, *YYCURSOR); + YYDEBUG(1119, *YYCURSOR); if (yych <= ' ') { - if (yych == '\t') goto yy1119; - if (yych <= 0x1F) goto yy57; - goto yy1119; + if (yych == '\t') goto yy1118; + if (yych <= 0x1F) goto yy56; + goto yy1118; } else { if (yych <= 'O') { - if (yych <= 'N') goto yy57; - goto yy1125; + if (yych <= 'N') goto yy56; + goto yy1124; } else { - if (yych == 'o') goto yy1125; - goto yy57; + if (yych == 'o') goto yy1124; + goto yy56; } } +yy1120: + YYDEBUG(1120, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy1121; + if (yych != 'd') goto yy56; yy1121: YYDEBUG(1121, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy1122; - if (yych != 'd') goto yy57; + if (yych == 'A') goto yy1122; + if (yych != 'a') goto yy56; yy1122: YYDEBUG(1122, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy1123; - if (yych != 'a') goto yy57; + if (yych == 'Y') goto yy1123; + if (yych != 'y') goto yy56; yy1123: YYDEBUG(1123, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy1124; - if (yych != 'y') goto yy57; -yy1124: - YYDEBUG(1124, *YYCURSOR); yyaccept = 26; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '\t') goto yy1119; - if (yych == ' ') goto yy1119; - goto yy1118; + if (yych == '\t') goto yy1118; + if (yych == ' ') goto yy1118; + goto yy1117; +yy1124: + YYDEBUG(1124, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'F') goto yy1125; + if (yych != 'f') goto yy56; yy1125: YYDEBUG(1125, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy1126; - if (yych != 'f') goto yy57; -yy1126: - YYDEBUG(1126, *YYCURSOR); ++YYCURSOR; - YYDEBUG(1127, *YYCURSOR); + YYDEBUG(1126, *YYCURSOR); { timelib_sll i; int behavior = 0; @@ -16765,113 +16748,113 @@ yy1126: TIMELIB_DEINIT; return TIMELIB_WEEK_DAY_OF_MONTH; } -yy1128: - YYDEBUG(1128, *YYCURSOR); +yy1127: + YYDEBUG(1127, *YYCURSOR); yyaccept = 26; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ' ') { - if (yych == '\t') goto yy1119; - if (yych <= 0x1F) goto yy1118; - goto yy1119; + if (yych == '\t') goto yy1118; + if (yych <= 0x1F) goto yy1117; + goto yy1118; } else { if (yych <= 'R') { - if (yych <= 'Q') goto yy1118; + if (yych <= 'Q') goto yy1117; } else { - if (yych != 'r') goto yy1118; + if (yych != 'r') goto yy1117; } } + YYDEBUG(1128, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy1129; + if (yych != 's') goto yy56; +yy1129: YYDEBUG(1129, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy1130; - if (yych != 's') goto yy57; + if (yych == 'D') goto yy1130; + if (yych != 'd') goto yy56; yy1130: YYDEBUG(1130, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy1131; - if (yych != 'd') goto yy57; + if (yych == 'A') goto yy1131; + if (yych != 'a') goto yy56; yy1131: YYDEBUG(1131, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy1132; - if (yych != 'a') goto yy57; + if (yych == 'Y') goto yy1123; + if (yych == 'y') goto yy1123; + goto yy56; yy1132: YYDEBUG(1132, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy1124; - if (yych == 'y') goto yy1124; - goto yy57; -yy1133: - YYDEBUG(1133, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'E') { - if (yych <= 'C') goto yy57; - if (yych <= 'D') goto yy1135; + if (yych <= 'C') goto yy56; + if (yych <= 'D') goto yy1134; } else { - if (yych <= 'c') goto yy57; - if (yych <= 'd') goto yy1135; - if (yych >= 'f') goto yy57; + if (yych <= 'c') goto yy56; + if (yych <= 'd') goto yy1134; + if (yych >= 'f') goto yy56; } - YYDEBUG(1134, *YYCURSOR); + YYDEBUG(1133, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'K') goto yy1141; - if (yych == 'k') goto yy1141; - goto yy57; -yy1135: - YYDEBUG(1135, *YYCURSOR); + if (yych == 'K') goto yy1140; + if (yych == 'k') goto yy1140; + goto yy56; +yy1134: + YYDEBUG(1134, *YYCURSOR); yyaccept = 26; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ' ') { - if (yych == '\t') goto yy1119; - if (yych <= 0x1F) goto yy1118; - goto yy1119; + if (yych == '\t') goto yy1118; + if (yych <= 0x1F) goto yy1117; + goto yy1118; } else { if (yych <= 'N') { - if (yych <= 'M') goto yy1118; + if (yych <= 'M') goto yy1117; } else { - if (yych != 'n') goto yy1118; + if (yych != 'n') goto yy1117; } } + YYDEBUG(1135, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1136; + if (yych != 'e') goto yy56; +yy1136: YYDEBUG(1136, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy1137; - if (yych != 'e') goto yy57; + if (yych == 'S') goto yy1137; + if (yych != 's') goto yy56; yy1137: YYDEBUG(1137, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy1138; - if (yych != 's') goto yy57; + if (yych == 'D') goto yy1138; + if (yych != 'd') goto yy56; yy1138: YYDEBUG(1138, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy1139; - if (yych != 'd') goto yy57; + if (yych == 'A') goto yy1139; + if (yych != 'a') goto yy56; yy1139: YYDEBUG(1139, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy1140; - if (yych != 'a') goto yy57; + if (yych == 'Y') goto yy1123; + if (yych == 'y') goto yy1123; + goto yy56; yy1140: YYDEBUG(1140, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy1124; - if (yych == 'y') goto yy1124; - goto yy57; -yy1141: - YYDEBUG(1141, *YYCURSOR); yyaccept = 27; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { - if (yych == 'D') goto yy1144; - if (yych >= 'S') goto yy1143; + if (yych == 'D') goto yy1143; + if (yych >= 'S') goto yy1142; } else { if (yych <= 'd') { - if (yych >= 'd') goto yy1144; + if (yych >= 'd') goto yy1143; } else { - if (yych == 's') goto yy1143; + if (yych == 's') goto yy1142; } } -yy1142: - YYDEBUG(1142, *YYCURSOR); +yy1141: + YYDEBUG(1141, *YYCURSOR); { timelib_sll i; int behavior = 0; @@ -16894,2682 +16877,2682 @@ yy1142: TIMELIB_DEINIT; return TIMELIB_RELATIVE; } +yy1142: + YYDEBUG(1142, *YYCURSOR); + yych = *++YYCURSOR; + goto yy1117; yy1143: YYDEBUG(1143, *YYCURSOR); yych = *++YYCURSOR; - goto yy1118; + if (yych == 'A') goto yy1144; + if (yych != 'a') goto yy56; yy1144: YYDEBUG(1144, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy1145; - if (yych != 'a') goto yy57; + if (yych == 'Y') goto yy1145; + if (yych != 'y') goto yy56; yy1145: YYDEBUG(1145, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy1146; - if (yych != 'y') goto yy57; + if (yych == 'S') goto yy1142; + if (yych == 's') goto yy1142; + goto yy1117; yy1146: YYDEBUG(1146, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy1143; - if (yych == 's') goto yy1143; - goto yy1118; + if (yych == 'A') goto yy1147; + if (yych != 'a') goto yy56; yy1147: YYDEBUG(1147, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy1148; - if (yych != 'a') goto yy57; + if (yych == 'R') goto yy1148; + if (yych != 'r') goto yy56; yy1148: YYDEBUG(1148, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy1149; - if (yych != 'r') goto yy57; + if (yych == 'S') goto yy1142; + if (yych == 's') goto yy1142; + goto yy1117; yy1149: YYDEBUG(1149, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy1143; - if (yych == 's') goto yy1143; - goto yy1118; + if (yych == 'I') goto yy1162; + if (yych == 'i') goto yy1162; + goto yy56; yy1150: YYDEBUG(1150, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy1163; - if (yych == 'i') goto yy1163; - goto yy57; + if (yych == 'R') goto yy1151; + if (yych != 'r') goto yy56; yy1151: YYDEBUG(1151, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy1152; - if (yych != 'r') goto yy57; + if (yych == 'T') goto yy1152; + if (yych != 't') goto yy56; yy1152: YYDEBUG(1152, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy1153; - if (yych != 't') goto yy57; -yy1153: - YYDEBUG(1153, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'N') { - if (yych == 'H') goto yy1155; - if (yych <= 'M') goto yy57; + if (yych == 'H') goto yy1154; + if (yych <= 'M') goto yy56; } else { if (yych <= 'h') { - if (yych <= 'g') goto yy57; - goto yy1155; + if (yych <= 'g') goto yy56; + goto yy1154; } else { - if (yych != 'n') goto yy57; + if (yych != 'n') goto yy56; } } + YYDEBUG(1153, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy1159; + if (yych == 'i') goto yy1159; + goto yy56; +yy1154: YYDEBUG(1154, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy1160; - if (yych == 'i') goto yy1160; - goto yy57; + if (yych == 'N') goto yy1155; + if (yych != 'n') goto yy56; yy1155: YYDEBUG(1155, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy1156; - if (yych != 'n') goto yy57; + if (yych == 'I') goto yy1156; + if (yych != 'i') goto yy56; yy1156: YYDEBUG(1156, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy1157; - if (yych != 'i') goto yy57; + if (yych == 'G') goto yy1157; + if (yych != 'g') goto yy56; yy1157: YYDEBUG(1157, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'G') goto yy1158; - if (yych != 'g') goto yy57; + if (yych == 'H') goto yy1158; + if (yych != 'h') goto yy56; yy1158: YYDEBUG(1158, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy1159; - if (yych != 'h') goto yy57; + if (yych == 'T') goto yy1148; + if (yych == 't') goto yy1148; + goto yy56; yy1159: YYDEBUG(1159, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy1149; - if (yych == 't') goto yy1149; - goto yy57; + if (yych == 'G') goto yy1160; + if (yych != 'g') goto yy56; yy1160: YYDEBUG(1160, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'G') goto yy1161; - if (yych != 'g') goto yy57; + if (yych == 'H') goto yy1161; + if (yych != 'h') goto yy56; yy1161: YYDEBUG(1161, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy1162; - if (yych != 'h') goto yy57; + if (yych == 'T') goto yy1148; + if (yych == 't') goto yy1148; + goto yy56; yy1162: YYDEBUG(1162, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy1149; - if (yych == 't') goto yy1149; - goto yy57; -yy1163: - YYDEBUG(1163, *YYCURSOR); yyaccept = 26; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ' ') { - if (yych == '\t') goto yy1119; - if (yych <= 0x1F) goto yy1118; - goto yy1119; + if (yych == '\t') goto yy1118; + if (yych <= 0x1F) goto yy1117; + goto yy1118; } else { if (yych <= 'D') { - if (yych <= 'C') goto yy1118; + if (yych <= 'C') goto yy1117; } else { - if (yych != 'd') goto yy1118; + if (yych != 'd') goto yy1117; } } + YYDEBUG(1163, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy1164; + if (yych != 'a') goto yy56; +yy1164: YYDEBUG(1164, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy1165; - if (yych != 'a') goto yy57; + if (yych == 'Y') goto yy1123; + if (yych == 'y') goto yy1123; + goto yy56; yy1165: YYDEBUG(1165, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy1124; - if (yych == 'y') goto yy1124; - goto yy57; + if (yych == 'Y') goto yy1148; + if (yych == 'y') goto yy1148; + goto yy56; yy1166: YYDEBUG(1166, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy1149; - if (yych == 'y') goto yy1149; - goto yy57; + if (yych == 'U') goto yy1167; + if (yych != 'u') goto yy56; yy1167: YYDEBUG(1167, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy1168; - if (yych != 'u') goto yy57; + if (yych == 'R') goto yy1148; + if (yych == 'r') goto yy1148; + goto yy56; yy1168: YYDEBUG(1168, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy1149; - if (yych == 'r') goto yy1149; - goto yy57; + if (yych == 'N') goto yy1173; + if (yych == 'n') goto yy1173; + goto yy56; yy1169: YYDEBUG(1169, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy1174; - if (yych == 'n') goto yy1174; - goto yy57; + if (yych == 'N') goto yy1170; + if (yych != 'n') goto yy56; yy1170: YYDEBUG(1170, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy1171; - if (yych != 'n') goto yy57; -yy1171: - YYDEBUG(1171, *YYCURSOR); yyaccept = 26; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'U') { - if (yych == 'S') goto yy1143; - if (yych <= 'T') goto yy1118; + if (yych == 'S') goto yy1142; + if (yych <= 'T') goto yy1117; } else { if (yych <= 's') { - if (yych <= 'r') goto yy1118; - goto yy1143; + if (yych <= 'r') goto yy1117; + goto yy1142; } else { - if (yych != 'u') goto yy1118; + if (yych != 'u') goto yy1117; } } + YYDEBUG(1171, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy1172; + if (yych != 't') goto yy56; +yy1172: YYDEBUG(1172, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy1173; - if (yych != 't') goto yy57; + if (yych == 'E') goto yy1148; + if (yych == 'e') goto yy1148; + goto yy56; yy1173: YYDEBUG(1173, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy1149; - if (yych == 'e') goto yy1149; - goto yy57; -yy1174: - YYDEBUG(1174, *YYCURSOR); yyaccept = 26; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { if (yych <= 0x1F) { - if (yych == '\t') goto yy1119; - goto yy1118; + if (yych == '\t') goto yy1118; + goto yy1117; } else { - if (yych <= ' ') goto yy1119; - if (yych <= 'C') goto yy1118; + if (yych <= ' ') goto yy1118; + if (yych <= 'C') goto yy1117; } } else { if (yych <= 'c') { - if (yych == 'T') goto yy1176; - goto yy1118; + if (yych == 'T') goto yy1175; + goto yy1117; } else { - if (yych <= 'd') goto yy1175; - if (yych == 't') goto yy1176; - goto yy1118; + if (yych <= 'd') goto yy1174; + if (yych == 't') goto yy1175; + goto yy1117; } } +yy1174: + YYDEBUG(1174, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy1176; + if (yych == 'a') goto yy1176; + goto yy56; yy1175: YYDEBUG(1175, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy1177; - if (yych == 'a') goto yy1177; - goto yy57; + if (yych == 'H') goto yy1148; + if (yych == 'h') goto yy1148; + goto yy56; yy1176: YYDEBUG(1176, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy1149; - if (yych == 'h') goto yy1149; - goto yy57; + if (yych == 'Y') goto yy1123; + if (yych == 'y') goto yy1123; + goto yy56; yy1177: YYDEBUG(1177, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy1124; - if (yych == 'y') goto yy1124; - goto yy57; + if (yych == 'N') goto yy1188; + if (yych == 'n') goto yy1188; + goto yy56; yy1178: YYDEBUG(1178, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy1189; - if (yych == 'n') goto yy1189; - goto yy57; + if (yych == 'T') goto yy1183; + if (yych == 't') goto yy1183; + goto yy56; yy1179: YYDEBUG(1179, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy1184; - if (yych == 't') goto yy1184; - goto yy57; + if (yych == 'C') goto yy1180; + if (yych != 'c') goto yy56; yy1180: YYDEBUG(1180, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy1181; - if (yych != 'c') goto yy57; -yy1181: - YYDEBUG(1181, *YYCURSOR); yyaccept = 26; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { - if (yych == 'O') goto yy1182; - if (yych <= 'R') goto yy1118; - goto yy1143; + if (yych == 'O') goto yy1181; + if (yych <= 'R') goto yy1117; + goto yy1142; } else { if (yych <= 'o') { - if (yych <= 'n') goto yy1118; + if (yych <= 'n') goto yy1117; } else { - if (yych == 's') goto yy1143; - goto yy1118; + if (yych == 's') goto yy1142; + goto yy1117; } } +yy1181: + YYDEBUG(1181, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy1182; + if (yych != 'n') goto yy56; yy1182: YYDEBUG(1182, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy1183; - if (yych != 'n') goto yy57; + if (yych == 'D') goto yy1148; + if (yych == 'd') goto yy1148; + goto yy56; yy1183: YYDEBUG(1183, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy1149; - if (yych == 'd') goto yy1149; - goto yy57; -yy1184: - YYDEBUG(1184, *YYCURSOR); yyaccept = 26; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ' ') { - if (yych == '\t') goto yy1119; - if (yych <= 0x1F) goto yy1118; - goto yy1119; + if (yych == '\t') goto yy1118; + if (yych <= 0x1F) goto yy1117; + goto yy1118; } else { if (yych <= 'U') { - if (yych <= 'T') goto yy1118; + if (yych <= 'T') goto yy1117; } else { - if (yych != 'u') goto yy1118; + if (yych != 'u') goto yy1117; } } + YYDEBUG(1184, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy1185; + if (yych != 'r') goto yy56; +yy1185: YYDEBUG(1185, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy1186; - if (yych != 'r') goto yy57; + if (yych == 'D') goto yy1186; + if (yych != 'd') goto yy56; yy1186: YYDEBUG(1186, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy1187; - if (yych != 'd') goto yy57; + if (yych == 'A') goto yy1187; + if (yych != 'a') goto yy56; yy1187: YYDEBUG(1187, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy1188; - if (yych != 'a') goto yy57; + if (yych == 'Y') goto yy1123; + if (yych == 'y') goto yy1123; + goto yy56; yy1188: YYDEBUG(1188, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy1124; - if (yych == 'y') goto yy1124; - goto yy57; -yy1189: - YYDEBUG(1189, *YYCURSOR); yyaccept = 26; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ' ') { - if (yych == '\t') goto yy1119; - if (yych <= 0x1F) goto yy1118; - goto yy1119; + if (yych == '\t') goto yy1118; + if (yych <= 0x1F) goto yy1117; + goto yy1118; } else { if (yych <= 'D') { - if (yych <= 'C') goto yy1118; + if (yych <= 'C') goto yy1117; } else { - if (yych != 'd') goto yy1118; + if (yych != 'd') goto yy1117; } } + YYDEBUG(1189, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy1190; + if (yych != 'a') goto yy56; +yy1190: YYDEBUG(1190, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy1191; - if (yych != 'a') goto yy57; + if (yych == 'Y') goto yy1123; + if (yych == 'y') goto yy1123; + goto yy56; yy1191: YYDEBUG(1191, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy1124; - if (yych == 'y') goto yy1124; - goto yy57; -yy1192: - YYDEBUG(1192, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { - if (yych <= 'E') goto yy1099; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'E') goto yy1098; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'd') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { - if (yych <= 'e') goto yy1193; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'e') goto yy1192; + if (yych <= 'z') goto yy146; + goto yy3; } } } -yy1193: - YYDEBUG(1193, *YYCURSOR); +yy1192: + YYDEBUG(1192, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'U') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy142; } } else { if (yych <= '_') { - if (yych <= 'V') goto yy1100; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'V') goto yy1099; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'u') { - if (yych <= '`') goto yy4; - goto yy151; + if (yych <= '`') goto yy3; + goto yy150; } else { - if (yych <= 'v') goto yy1194; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'v') goto yy1193; + if (yych <= 'z') goto yy150; + goto yy3; } } } -yy1194: - YYDEBUG(1194, *YYCURSOR); +yy1193: + YYDEBUG(1193, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'H') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { - if (yych <= 'I') goto yy1101; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'I') goto yy1100; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'h') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { - if (yych <= 'i') goto yy1195; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'i') goto yy1194; + if (yych <= 'z') goto yy151; + goto yy3; } } } -yy1195: - YYDEBUG(1195, *YYCURSOR); +yy1194: + YYDEBUG(1194, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'N') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } } else { if (yych <= '_') { - if (yych <= 'O') goto yy1102; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'O') goto yy1101; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'n') { - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '`') goto yy3; + goto yy152; } else { - if (yych <= 'o') goto yy1196; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 'o') goto yy1195; + if (yych <= 'z') goto yy152; + goto yy3; } } } -yy1196: - YYDEBUG(1196, *YYCURSOR); +yy1195: + YYDEBUG(1195, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'T') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '`') { - if (yych <= 'U') goto yy1103; - if (yych == '_') goto yy148; - goto yy4; + if (yych <= 'U') goto yy1102; + if (yych == '_') goto yy147; + goto yy3; } else { - if (yych == 'u') goto yy1197; - if (yych <= 'z') goto yy154; - goto yy4; + if (yych == 'u') goto yy1196; + if (yych <= 'z') goto yy153; + goto yy3; } } -yy1197: - YYDEBUG(1197, *YYCURSOR); +yy1196: + YYDEBUG(1196, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy1104; - if (yych != 's') goto yy155; - YYDEBUG(1198, *YYCURSOR); + if (yych == 'S') goto yy1103; + if (yych != 's') goto yy154; + YYDEBUG(1197, *YYCURSOR); yych = *++YYCURSOR; if (yybm[0+yych] & 16) { - goto yy154; + goto yy153; } if (yych <= ',') { if (yych <= '\t') { - if (yych <= 0x08) goto yy57; - goto yy1105; + if (yych <= 0x08) goto yy56; + goto yy1104; } else { - if (yych == ' ') goto yy1105; - goto yy57; + if (yych == ' ') goto yy1104; + goto yy56; } } else { if (yych <= '/') { - if (yych == '.') goto yy57; - goto yy148; + if (yych == '.') goto yy56; + goto yy147; } else { - if (yych == '_') goto yy148; - goto yy57; + if (yych == '_') goto yy147; + goto yy56; } } -yy1199: - YYDEBUG(1199, *YYCURSOR); +yy1198: + YYDEBUG(1198, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'G') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'F') goto yy142; - goto yy1213; + if (yych <= '@') goto yy3; + if (yych <= 'F') goto yy141; + goto yy1212; } } else { if (yych <= 'f') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { - if (yych <= 'g') goto yy1213; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'g') goto yy1212; + if (yych <= 'z') goto yy141; + goto yy3; } } -yy1200: - YYDEBUG(1200, *YYCURSOR); +yy1199: + YYDEBUG(1199, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'D') goto yy142; + if (yych <= '@') goto yy3; + if (yych <= 'D') goto yy141; } } else { if (yych <= 'd') { + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; + } else { + if (yych <= 'e') goto yy1200; + if (yych <= 'z') goto yy141; + goto yy3; + } + } +yy1200: + YYDEBUG(1200, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'V') { + if (yych <= ')') { + if (yych <= '(') goto yy3; + goto yy139; + } else { + if (yych <= '@') goto yy3; + if (yych <= 'U') goto yy142; + } + } else { + if (yych <= 'u') { if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; + if (yych <= '`') goto yy3; goto yy142; } else { - if (yych <= 'e') goto yy1201; + if (yych <= 'v') goto yy1201; if (yych <= 'z') goto yy142; - goto yy4; + goto yy3; } } yy1201: YYDEBUG(1201, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'V') { + if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'U') goto yy143; + if (yych <= '@') goto yy3; + if (yych <= 'D') goto yy143; } } else { - if (yych <= 'u') { + if (yych <= 'd') { if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; + if (yych <= '`') goto yy3; goto yy143; } else { - if (yych <= 'v') goto yy1202; + if (yych <= 'e') goto yy1202; if (yych <= 'z') goto yy143; - goto yy4; + goto yy3; } } yy1202: YYDEBUG(1202, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'E') { + if (yych <= 'N') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'D') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'M') goto yy144; } } else { - if (yych <= 'd') { + if (yych <= 'm') { if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; + if (yych <= '`') goto yy3; goto yy144; } else { - if (yych <= 'e') goto yy1203; + if (yych <= 'n') goto yy1203; if (yych <= 'z') goto yy144; - goto yy4; + goto yy3; } } yy1203: YYDEBUG(1203, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'N') { - if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; - } else { - if (yych <= '@') goto yy4; - if (yych <= 'M') goto yy145; - } - } else { - if (yych <= 'm') { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - goto yy145; - } else { - if (yych <= 'n') goto yy1204; - if (yych <= 'z') goto yy145; - goto yy4; - } - } -yy1204: - YYDEBUG(1204, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych <= 'T') goto yy1205; - if (yych != 't') goto yy4; + if (yych <= 'T') goto yy1204; + if (yych != 't') goto yy3; } +yy1204: + YYDEBUG(1204, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy1205; + if (yych != 'h') goto yy56; yy1205: YYDEBUG(1205, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy1206; - if (yych != 'h') goto yy57; + if (yych == '\t') goto yy1206; + if (yych != ' ') goto yy56; yy1206: YYDEBUG(1206, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\t') goto yy1207; - if (yych != ' ') goto yy57; -yy1207: - YYDEBUG(1207, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11); yych = *YYCURSOR; -yy1208: - YYDEBUG(1208, *YYCURSOR); +yy1207: + YYDEBUG(1207, *YYCURSOR); if (yych <= 'W') { if (yych <= 'F') { if (yych <= ' ') { - if (yych == '\t') goto yy1207; - if (yych <= 0x1F) goto yy57; - goto yy1207; + if (yych == '\t') goto yy1206; + if (yych <= 0x1F) goto yy56; + goto yy1206; } else { - if (yych == 'D') goto yy1110; - if (yych <= 'E') goto yy57; - goto yy1111; + if (yych == 'D') goto yy1109; + if (yych <= 'E') goto yy56; + goto yy1110; } } else { if (yych <= 'M') { - if (yych == 'H') goto yy1109; - if (yych <= 'L') goto yy57; - goto yy1108; + if (yych == 'H') goto yy1108; + if (yych <= 'L') goto yy56; + goto yy1107; } else { if (yych <= 'S') { - if (yych <= 'R') goto yy57; - goto yy1107; + if (yych <= 'R') goto yy56; + goto yy1106; } else { - if (yych <= 'T') goto yy1114; - if (yych <= 'V') goto yy57; + if (yych <= 'T') goto yy1113; + if (yych <= 'V') goto yy56; } } } } else { if (yych <= 'l') { if (yych <= 'd') { - if (yych == 'Y') goto yy1112; - if (yych <= 'c') goto yy57; - goto yy1110; + if (yych == 'Y') goto yy1111; + if (yych <= 'c') goto yy56; + goto yy1109; } else { if (yych <= 'f') { - if (yych <= 'e') goto yy57; - goto yy1111; + if (yych <= 'e') goto yy56; + goto yy1110; } else { - if (yych == 'h') goto yy1109; - goto yy57; + if (yych == 'h') goto yy1108; + goto yy56; } } } else { if (yych <= 't') { - if (yych <= 'm') goto yy1108; - if (yych <= 'r') goto yy57; - if (yych <= 's') goto yy1107; - goto yy1114; + if (yych <= 'm') goto yy1107; + if (yych <= 'r') goto yy56; + if (yych <= 's') goto yy1106; + goto yy1113; } else { if (yych <= 'w') { - if (yych <= 'v') goto yy57; + if (yych <= 'v') goto yy56; } else { - if (yych == 'y') goto yy1112; - goto yy57; + if (yych == 'y') goto yy1111; + goto yy56; } } } } - YYDEBUG(1209, *YYCURSOR); + YYDEBUG(1208, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy1210; - if (yych != 'e') goto yy57; -yy1210: - YYDEBUG(1210, *YYCURSOR); + if (yych == 'E') goto yy1209; + if (yych != 'e') goto yy56; +yy1209: + YYDEBUG(1209, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'E') { - if (yych <= 'C') goto yy57; - if (yych <= 'D') goto yy1135; + if (yych <= 'C') goto yy56; + if (yych <= 'D') goto yy1134; } else { - if (yych <= 'c') goto yy57; - if (yych <= 'd') goto yy1135; - if (yych >= 'f') goto yy57; + if (yych <= 'c') goto yy56; + if (yych <= 'd') goto yy1134; + if (yych >= 'f') goto yy56; } - YYDEBUG(1211, *YYCURSOR); + YYDEBUG(1210, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'K') goto yy1212; - if (yych != 'k') goto yy57; -yy1212: - YYDEBUG(1212, *YYCURSOR); + if (yych == 'K') goto yy1211; + if (yych != 'k') goto yy56; +yy1211: + YYDEBUG(1211, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'S') { - if (yych == 'D') goto yy1144; - if (yych <= 'R') goto yy57; - goto yy1143; + if (yych == 'D') goto yy1143; + if (yych <= 'R') goto yy56; + goto yy1142; } else { if (yych <= 'd') { - if (yych <= 'c') goto yy57; - goto yy1144; + if (yych <= 'c') goto yy56; + goto yy1143; } else { - if (yych == 's') goto yy1143; - goto yy57; + if (yych == 's') goto yy1142; + goto yy56; } } -yy1213: - YYDEBUG(1213, *YYCURSOR); +yy1212: + YYDEBUG(1212, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'H') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'G') goto yy143; + if (yych <= '@') goto yy3; + if (yych <= 'G') goto yy142; } } else { if (yych <= 'g') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy3; + goto yy142; } else { - if (yych <= 'h') goto yy1214; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 'h') goto yy1213; + if (yych <= 'z') goto yy142; + goto yy3; } } -yy1214: - YYDEBUG(1214, *YYCURSOR); +yy1213: + YYDEBUG(1213, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'T') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'S') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'S') goto yy143; } } else { if (yych <= 's') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { - if (yych <= 't') goto yy1215; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 't') goto yy1214; + if (yych <= 'z') goto yy143; + goto yy3; } } -yy1215: - YYDEBUG(1215, *YYCURSOR); +yy1214: + YYDEBUG(1214, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '@') { if (yych <= 0x1F) { - if (yych == '\t') goto yy1207; - goto yy4; + if (yych == '\t') goto yy1206; + goto yy3; } else { - if (yych <= ' ') goto yy1207; - if (yych == ')') goto yy140; - goto yy4; + if (yych <= ' ') goto yy1206; + if (yych == ')') goto yy139; + goto yy3; } } else { if (yych <= '`') { - if (yych == 'H') goto yy1216; - if (yych <= 'Z') goto yy145; - goto yy4; + if (yych == 'H') goto yy1215; + if (yych <= 'Z') goto yy144; + goto yy3; } else { - if (yych == 'h') goto yy1216; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych == 'h') goto yy1215; + if (yych <= 'z') goto yy144; + goto yy3; } } -yy1216: - YYDEBUG(1216, *YYCURSOR); +yy1215: + YYDEBUG(1215, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy1207; - goto yy4; + if (yych == '\t') goto yy1206; + goto yy3; } else { - if (yych <= ' ') goto yy1207; - if (yych == ')') goto yy140; - goto yy4; + if (yych <= ' ') goto yy1206; + if (yych == ')') goto yy139; + goto yy3; } -yy1217: - YYDEBUG(1217, *YYCURSOR); +yy1216: + YYDEBUG(1216, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'F') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { - if (yych <= 'G') goto yy1213; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'G') goto yy1212; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'f') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { - if (yych <= 'g') goto yy1225; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'g') goto yy1224; + if (yych <= 'z') goto yy146; + goto yy3; } } } -yy1218: - YYDEBUG(1218, *YYCURSOR); +yy1217: + YYDEBUG(1217, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { - if (yych <= 'E') goto yy1201; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'E') goto yy1200; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'd') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { - if (yych <= 'e') goto yy1219; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'e') goto yy1218; + if (yych <= 'z') goto yy146; + goto yy3; } } } -yy1219: - YYDEBUG(1219, *YYCURSOR); +yy1218: + YYDEBUG(1218, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'U') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy142; } } else { if (yych <= '_') { - if (yych <= 'V') goto yy1202; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'V') goto yy1201; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'u') { - if (yych <= '`') goto yy4; - goto yy151; + if (yych <= '`') goto yy3; + goto yy150; } else { - if (yych <= 'v') goto yy1220; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'v') goto yy1219; + if (yych <= 'z') goto yy150; + goto yy3; } } } -yy1220: - YYDEBUG(1220, *YYCURSOR); +yy1219: + YYDEBUG(1219, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { - if (yych <= 'E') goto yy1203; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'E') goto yy1202; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'd') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { - if (yych <= 'e') goto yy1221; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'e') goto yy1220; + if (yych <= 'z') goto yy151; + goto yy3; } } } -yy1221: - YYDEBUG(1221, *YYCURSOR); +yy1220: + YYDEBUG(1220, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'M') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } } else { if (yych <= '_') { - if (yych <= 'N') goto yy1204; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'N') goto yy1203; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'm') { - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '`') goto yy3; + goto yy152; } else { - if (yych <= 'n') goto yy1222; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 'n') goto yy1221; + if (yych <= 'z') goto yy152; + goto yy3; } } } -yy1222: - YYDEBUG(1222, *YYCURSOR); +yy1221: + YYDEBUG(1221, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '`') { - if (yych <= 'T') goto yy1205; - if (yych == '_') goto yy148; - goto yy4; + if (yych <= 'T') goto yy1204; + if (yych == '_') goto yy147; + goto yy3; } else { - if (yych == 't') goto yy1223; - if (yych <= 'z') goto yy154; - goto yy4; + if (yych == 't') goto yy1222; + if (yych <= 'z') goto yy153; + goto yy3; } } +yy1222: + YYDEBUG(1222, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy1205; + if (yych != 'h') goto yy154; yy1223: YYDEBUG(1223, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy1206; - if (yych != 'h') goto yy155; -yy1224: - YYDEBUG(1224, *YYCURSOR); - yych = *++YYCURSOR; if (yybm[0+yych] & 16) { - goto yy154; + goto yy153; } if (yych <= ',') { if (yych <= '\t') { - if (yych <= 0x08) goto yy57; - goto yy1207; + if (yych <= 0x08) goto yy56; + goto yy1206; } else { - if (yych == ' ') goto yy1207; - goto yy57; + if (yych == ' ') goto yy1206; + goto yy56; } } else { if (yych <= '/') { - if (yych == '.') goto yy57; - goto yy148; + if (yych == '.') goto yy56; + goto yy147; } else { - if (yych == '_') goto yy148; - goto yy57; + if (yych == '_') goto yy147; + goto yy56; } } -yy1225: - YYDEBUG(1225, *YYCURSOR); +yy1224: + YYDEBUG(1224, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'G') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy142; } } else { if (yych <= '_') { - if (yych <= 'H') goto yy1214; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'H') goto yy1213; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'g') { - if (yych <= '`') goto yy4; - goto yy151; + if (yych <= '`') goto yy3; + goto yy150; } else { - if (yych <= 'h') goto yy1226; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'h') goto yy1225; + if (yych <= 'z') goto yy150; + goto yy3; } } } -yy1226: - YYDEBUG(1226, *YYCURSOR); +yy1225: + YYDEBUG(1225, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { - if (yych <= 'T') goto yy1215; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'T') goto yy1214; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 's') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { - if (yych <= 't') goto yy1227; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 't') goto yy1226; + if (yych <= 'z') goto yy151; + goto yy3; } } } -yy1227: - YYDEBUG(1227, *YYCURSOR); +yy1226: + YYDEBUG(1226, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy4; - goto yy1207; + if (yych <= 0x08) goto yy3; + goto yy1206; } else { - if (yych == ' ') goto yy1207; - goto yy4; + if (yych == ' ') goto yy1206; + goto yy3; } } else { if (yych <= ',') { - if (yych <= ')') goto yy140; - goto yy4; + if (yych <= ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - goto yy148; + if (yych == '.') goto yy3; + goto yy147; } } } else { if (yych <= '^') { if (yych <= 'G') { - if (yych <= '@') goto yy4; - goto yy145; + if (yych <= '@') goto yy3; + goto yy144; } else { - if (yych <= 'H') goto yy1216; - if (yych <= 'Z') goto yy145; - goto yy4; + if (yych <= 'H') goto yy1215; + if (yych <= 'Z') goto yy144; + goto yy3; } } else { if (yych <= 'g') { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy3; + goto yy152; } else { - if (yych <= 'h') goto yy1228; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 'h') goto yy1227; + if (yych <= 'z') goto yy152; + goto yy3; } } } -yy1228: - YYDEBUG(1228, *YYCURSOR); +yy1227: + YYDEBUG(1227, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 16) { - goto yy154; + goto yy153; } if (yych <= ')') { if (yych <= 0x1F) { - if (yych == '\t') goto yy1207; - goto yy4; + if (yych == '\t') goto yy1206; + goto yy3; } else { - if (yych <= ' ') goto yy1207; - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= ' ') goto yy1206; + if (yych <= '(') goto yy3; + goto yy139; } } else { if (yych <= '.') { - if (yych == '-') goto yy148; - goto yy4; + if (yych == '-') goto yy147; + goto yy3; } else { - if (yych <= '/') goto yy148; - if (yych == '_') goto yy148; - goto yy4; + if (yych <= '/') goto yy147; + if (yych == '_') goto yy147; + goto yy3; } } -yy1229: - YYDEBUG(1229, *YYCURSOR); +yy1228: + YYDEBUG(1228, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'V') { if (yych <= 'B') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; + goto yy141; } else { if (yych <= 'O') { - if (yych <= 'C') goto yy1245; - goto yy142; + if (yych <= 'C') goto yy1244; + goto yy141; } else { - if (yych <= 'P') goto yy1247; - if (yych <= 'U') goto yy142; - goto yy1246; + if (yych <= 'P') goto yy1246; + if (yych <= 'U') goto yy141; + goto yy1245; } } } else { if (yych <= 'o') { if (yych <= '`') { - if (yych <= 'Z') goto yy142; - goto yy4; + if (yych <= 'Z') goto yy141; + goto yy3; } else { - if (yych == 'c') goto yy1245; - goto yy142; + if (yych == 'c') goto yy1244; + goto yy141; } } else { if (yych <= 'u') { - if (yych <= 'p') goto yy1247; - goto yy142; + if (yych <= 'p') goto yy1246; + goto yy141; } else { - if (yych <= 'v') goto yy1246; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'v') goto yy1245; + if (yych <= 'z') goto yy141; + goto yy3; } } } -yy1230: - YYDEBUG(1230, *YYCURSOR); +yy1229: + YYDEBUG(1229, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'T') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'S') goto yy142; - goto yy1240; + if (yych <= '@') goto yy3; + if (yych <= 'S') goto yy141; + goto yy1239; } } else { if (yych <= 's') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { - if (yych <= 't') goto yy1240; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 't') goto yy1239; + if (yych <= 'z') goto yy141; + goto yy3; } } -yy1231: - YYDEBUG(1231, *YYCURSOR); +yy1230: + YYDEBUG(1230, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'X') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'W') goto yy142; - goto yy1237; + if (yych <= '@') goto yy3; + if (yych <= 'W') goto yy141; + goto yy1236; } } else { if (yych <= 'w') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { - if (yych <= 'x') goto yy1237; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'x') goto yy1236; + if (yych <= 'z') goto yy141; + goto yy3; } } -yy1232: - YYDEBUG(1232, *YYCURSOR); +yy1231: + YYDEBUG(1231, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'N') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'M') goto yy142; + if (yych <= '@') goto yy3; + if (yych <= 'M') goto yy141; } } else { if (yych <= 'm') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { - if (yych <= 'n') goto yy1233; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'n') goto yy1232; + if (yych <= 'z') goto yy141; + goto yy3; } } -yy1233: - YYDEBUG(1233, *YYCURSOR); +yy1232: + YYDEBUG(1232, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'D') { if (yych <= ')') { - if (yych <= '(') goto yy167; - goto yy140; + if (yych <= '(') goto yy166; + goto yy139; } else { - if (yych <= '@') goto yy167; - if (yych <= 'C') goto yy143; + if (yych <= '@') goto yy166; + if (yych <= 'C') goto yy142; } } else { if (yych <= 'c') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy167; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy166; + goto yy142; } else { - if (yych <= 'd') goto yy1234; - if (yych <= 'z') goto yy143; - goto yy167; + if (yych <= 'd') goto yy1233; + if (yych <= 'z') goto yy142; + goto yy166; } } -yy1234: - YYDEBUG(1234, *YYCURSOR); +yy1233: + YYDEBUG(1233, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'A') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; } else { if (yych <= '`') { - if (yych <= 'Z') goto yy144; - goto yy4; + if (yych <= 'Z') goto yy143; + goto yy3; } else { - if (yych <= 'a') goto yy1235; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'a') goto yy1234; + if (yych <= 'z') goto yy143; + goto yy3; } } -yy1235: - YYDEBUG(1235, *YYCURSOR); +yy1234: + YYDEBUG(1234, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'Y') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'X') goto yy145; + if (yych <= '@') goto yy3; + if (yych <= 'X') goto yy144; } } else { if (yych <= 'x') { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - goto yy145; + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy3; + goto yy144; } else { - if (yych <= 'y') goto yy1236; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 'y') goto yy1235; + if (yych <= 'z') goto yy144; + goto yy3; } } +yy1235: + YYDEBUG(1235, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == ')') goto yy139; + goto yy166; yy1236: YYDEBUG(1236, *YYCURSOR); yych = *++YYCURSOR; - if (yych == ')') goto yy140; - goto yy167; -yy1237: - YYDEBUG(1237, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'T') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'S') goto yy143; + if (yych <= '@') goto yy3; + if (yych <= 'S') goto yy142; } } else { if (yych <= 's') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy3; + goto yy142; } else { - if (yych <= 't') goto yy1238; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 't') goto yy1237; + if (yych <= 'z') goto yy142; + goto yy3; } } -yy1238: - YYDEBUG(1238, *YYCURSOR); +yy1237: + YYDEBUG(1237, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'H') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'G') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'G') goto yy143; } } else { if (yych <= 'g') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { - if (yych <= 'h') goto yy1239; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'h') goto yy1238; + if (yych <= 'z') goto yy143; + goto yy3; } } -yy1239: - YYDEBUG(1239, *YYCURSOR); +yy1238: + YYDEBUG(1238, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy4; - goto yy1207; + if (yych <= 0x08) goto yy3; + goto yy1206; } else { - if (yych == ' ') goto yy1207; - goto yy4; + if (yych == ' ') goto yy1206; + goto yy3; } } else { if (yych <= 'Z') { - if (yych <= ')') goto yy140; - if (yych <= '@') goto yy4; - goto yy145; + if (yych <= ')') goto yy139; + if (yych <= '@') goto yy3; + goto yy144; } else { - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy144; + goto yy3; } } -yy1240: - YYDEBUG(1240, *YYCURSOR); +yy1239: + YYDEBUG(1239, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { if (yych <= ')') { - if (yych <= '(') goto yy167; - goto yy140; + if (yych <= '(') goto yy166; + goto yy139; } else { - if (yych <= '@') goto yy167; - if (yych <= 'T') goto yy143; + if (yych <= '@') goto yy166; + if (yych <= 'T') goto yy142; } } else { if (yych <= 't') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy167; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy166; + goto yy142; } else { - if (yych <= 'u') goto yy1241; - if (yych <= 'z') goto yy143; - goto yy167; + if (yych <= 'u') goto yy1240; + if (yych <= 'z') goto yy142; + goto yy166; } } -yy1241: - YYDEBUG(1241, *YYCURSOR); +yy1240: + YYDEBUG(1240, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'R') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'Q') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'Q') goto yy143; } } else { if (yych <= 'q') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { - if (yych <= 'r') goto yy1242; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'r') goto yy1241; + if (yych <= 'z') goto yy143; + goto yy3; } } -yy1242: - YYDEBUG(1242, *YYCURSOR); +yy1241: + YYDEBUG(1241, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'D') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'C') goto yy145; + if (yych <= '@') goto yy3; + if (yych <= 'C') goto yy144; } } else { if (yych <= 'c') { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - goto yy145; + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy3; + goto yy144; } else { - if (yych <= 'd') goto yy1243; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 'd') goto yy1242; + if (yych <= 'z') goto yy144; + goto yy3; } } -yy1243: - YYDEBUG(1243, *YYCURSOR); +yy1242: + YYDEBUG(1242, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '@') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych <= 'A') goto yy1244; - if (yych != 'a') goto yy4; + if (yych <= 'A') goto yy1243; + if (yych != 'a') goto yy3; } +yy1243: + YYDEBUG(1243, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy172; + if (yych == 'y') goto yy172; + goto yy56; yy1244: YYDEBUG(1244, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy173; - if (yych == 'y') goto yy173; - goto yy57; -yy1245: - YYDEBUG(1245, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'O') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'N') goto yy143; - goto yy1256; + if (yych <= '@') goto yy3; + if (yych <= 'N') goto yy142; + goto yy1255; } } else { if (yych <= 'n') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy3; + goto yy142; } else { - if (yych <= 'o') goto yy1256; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 'o') goto yy1255; + if (yych <= 'z') goto yy142; + goto yy3; } } -yy1246: - YYDEBUG(1246, *YYCURSOR); +yy1245: + YYDEBUG(1245, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'D') goto yy143; - goto yy1253; + if (yych <= '@') goto yy3; + if (yych <= 'D') goto yy142; + goto yy1252; } } else { if (yych <= 'd') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy3; + goto yy142; } else { - if (yych <= 'e') goto yy1253; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 'e') goto yy1252; + if (yych <= 'z') goto yy142; + goto yy3; } } -yy1247: - YYDEBUG(1247, *YYCURSOR); +yy1246: + YYDEBUG(1246, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= ',') { - if (yych <= ')') goto yy140; - goto yy194; + if (yych <= ')') goto yy139; + goto yy193; } else { - if (yych <= '-') goto yy197; - if (yych <= '.') goto yy196; - goto yy194; + if (yych <= '-') goto yy196; + if (yych <= '.') goto yy195; + goto yy193; } } } else { if (yych <= 'Z') { if (yych <= '@') { - if (yych <= '9') goto yy196; - goto yy194; + if (yych <= '9') goto yy195; + goto yy193; } else { - if (yych != 'T') goto yy143; + if (yych != 'T') goto yy142; } } else { if (yych <= 's') { - if (yych <= '`') goto yy194; - goto yy143; + if (yych <= '`') goto yy193; + goto yy142; } else { - if (yych <= 't') goto yy1248; - if (yych <= 'z') goto yy143; - goto yy194; + if (yych <= 't') goto yy1247; + if (yych <= 'z') goto yy142; + goto yy193; } } } -yy1248: - YYDEBUG(1248, *YYCURSOR); +yy1247: + YYDEBUG(1247, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= ',') { - if (yych <= ')') goto yy140; - goto yy194; + if (yych <= ')') goto yy139; + goto yy193; } else { - if (yych <= '-') goto yy197; - if (yych <= '.') goto yy196; - goto yy194; + if (yych <= '-') goto yy196; + if (yych <= '.') goto yy195; + goto yy193; } } } else { if (yych <= 'Z') { if (yych <= '@') { - if (yych <= '9') goto yy196; - goto yy194; + if (yych <= '9') goto yy195; + goto yy193; } else { - if (yych != 'E') goto yy144; + if (yych != 'E') goto yy143; } } else { if (yych <= 'd') { - if (yych <= '`') goto yy194; - goto yy144; + if (yych <= '`') goto yy193; + goto yy143; } else { - if (yych <= 'e') goto yy1249; - if (yych <= 'z') goto yy144; - goto yy194; + if (yych <= 'e') goto yy1248; + if (yych <= 'z') goto yy143; + goto yy193; } } } -yy1249: - YYDEBUG(1249, *YYCURSOR); +yy1248: + YYDEBUG(1248, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'M') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'L') goto yy145; + if (yych <= '@') goto yy3; + if (yych <= 'L') goto yy144; } } else { if (yych <= 'l') { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - goto yy145; + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy3; + goto yy144; } else { - if (yych <= 'm') goto yy1250; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 'm') goto yy1249; + if (yych <= 'z') goto yy144; + goto yy3; } } -yy1250: - YYDEBUG(1250, *YYCURSOR); +yy1249: + YYDEBUG(1249, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'A') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych <= 'B') goto yy1251; - if (yych != 'b') goto yy4; + if (yych <= 'B') goto yy1250; + if (yych != 'b') goto yy3; } +yy1250: + YYDEBUG(1250, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1251; + if (yych != 'e') goto yy56; yy1251: YYDEBUG(1251, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy1252; - if (yych != 'e') goto yy57; + if (yych == 'R') goto yy205; + if (yych == 'r') goto yy205; + goto yy56; yy1252: YYDEBUG(1252, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy206; - if (yych == 'r') goto yy206; - goto yy57; -yy1253: - YYDEBUG(1253, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'N') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'M') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'M') goto yy143; } } else { if (yych <= 'm') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { - if (yych <= 'n') goto yy1254; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'n') goto yy1253; + if (yych <= 'z') goto yy143; + goto yy3; } } -yy1254: - YYDEBUG(1254, *YYCURSOR); +yy1253: + YYDEBUG(1253, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'T') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'S') goto yy145; + if (yych <= '@') goto yy3; + if (yych <= 'S') goto yy144; } } else { if (yych <= 's') { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - goto yy145; + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy3; + goto yy144; } else { - if (yych <= 't') goto yy1255; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 't') goto yy1254; + if (yych <= 'z') goto yy144; + goto yy3; } } -yy1255: - YYDEBUG(1255, *YYCURSOR); +yy1254: + YYDEBUG(1254, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'G') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych <= 'H') goto yy1206; - if (yych == 'h') goto yy1206; - goto yy4; + if (yych <= 'H') goto yy1205; + if (yych == 'h') goto yy1205; + goto yy3; } -yy1256: - YYDEBUG(1256, *YYCURSOR); +yy1255: + YYDEBUG(1255, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'N') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'M') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'M') goto yy143; } } else { if (yych <= 'm') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { - if (yych <= 'n') goto yy1257; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'n') goto yy1256; + if (yych <= 'z') goto yy143; + goto yy3; } } -yy1257: - YYDEBUG(1257, *YYCURSOR); +yy1256: + YYDEBUG(1256, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'D') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'C') goto yy145; - goto yy1216; + if (yych <= '@') goto yy3; + if (yych <= 'C') goto yy144; + goto yy1215; } } else { if (yych <= 'c') { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - goto yy145; + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy3; + goto yy144; } else { - if (yych <= 'd') goto yy1216; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 'd') goto yy1215; + if (yych <= 'z') goto yy144; + goto yy3; } } -yy1258: - YYDEBUG(1258, *YYCURSOR); +yy1257: + YYDEBUG(1257, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'U') { if (yych <= '/') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - goto yy148; + if (yych == '.') goto yy3; + goto yy147; } } else { if (yych <= 'C') { - if (yych <= '@') goto yy4; - if (yych <= 'B') goto yy142; - goto yy1245; + if (yych <= '@') goto yy3; + if (yych <= 'B') goto yy141; + goto yy1244; } else { - if (yych == 'P') goto yy1247; - goto yy142; + if (yych == 'P') goto yy1246; + goto yy141; } } } else { if (yych <= 'b') { if (yych <= '^') { - if (yych <= 'V') goto yy1246; - if (yych <= 'Z') goto yy142; - goto yy4; + if (yych <= 'V') goto yy1245; + if (yych <= 'Z') goto yy141; + goto yy3; } else { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } } else { if (yych <= 'p') { - if (yych <= 'c') goto yy1274; - if (yych <= 'o') goto yy147; - goto yy1276; + if (yych <= 'c') goto yy1273; + if (yych <= 'o') goto yy146; + goto yy1275; } else { - if (yych == 'v') goto yy1275; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych == 'v') goto yy1274; + if (yych <= 'z') goto yy146; + goto yy3; } } } -yy1259: - YYDEBUG(1259, *YYCURSOR); +yy1258: + YYDEBUG(1258, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { - if (yych <= 'T') goto yy1240; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'T') goto yy1239; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 's') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { - if (yych <= 't') goto yy1269; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 't') goto yy1268; + if (yych <= 'z') goto yy146; + goto yy3; } } } -yy1260: - YYDEBUG(1260, *YYCURSOR); +yy1259: + YYDEBUG(1259, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'W') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { - if (yych <= 'X') goto yy1237; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'X') goto yy1236; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'w') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { - if (yych <= 'x') goto yy1266; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'x') goto yy1265; + if (yych <= 'z') goto yy146; + goto yy3; } } } -yy1261: - YYDEBUG(1261, *YYCURSOR); +yy1260: + YYDEBUG(1260, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'M') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { - if (yych <= 'N') goto yy1233; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'N') goto yy1232; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'm') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { - if (yych <= 'n') goto yy1262; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'n') goto yy1261; + if (yych <= 'z') goto yy146; + goto yy3; } } } -yy1262: - YYDEBUG(1262, *YYCURSOR); +yy1261: + YYDEBUG(1261, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'C') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy167; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy166; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy167; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy166; + goto yy142; } } else { if (yych <= '_') { - if (yych <= 'D') goto yy1234; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy167; - goto yy148; + if (yych <= 'D') goto yy1233; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy166; + goto yy147; } else { if (yych <= 'c') { - if (yych <= '`') goto yy167; - goto yy151; + if (yych <= '`') goto yy166; + goto yy150; } else { - if (yych <= 'd') goto yy1263; - if (yych <= 'z') goto yy151; - goto yy167; + if (yych <= 'd') goto yy1262; + if (yych <= 'z') goto yy150; + goto yy166; } } } -yy1263: - YYDEBUG(1263, *YYCURSOR); +yy1262: + YYDEBUG(1262, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '@') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '_') { - if (yych <= 'A') goto yy1235; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'A') goto yy1234; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { - if (yych <= '`') goto yy4; - if (yych <= 'a') goto yy1264; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'a') goto yy1263; + if (yych <= 'z') goto yy151; + goto yy3; } } -yy1264: - YYDEBUG(1264, *YYCURSOR); +yy1263: + YYDEBUG(1263, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'X') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } } else { if (yych <= '_') { - if (yych <= 'Y') goto yy1236; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Y') goto yy1235; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'x') { - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '`') goto yy3; + goto yy152; } else { - if (yych <= 'y') goto yy1265; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 'y') goto yy1264; + if (yych <= 'z') goto yy152; + goto yy3; } } } -yy1265: - YYDEBUG(1265, *YYCURSOR); +yy1264: + YYDEBUG(1264, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 16) { - goto yy154; + goto yy153; } if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy167; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy166; + goto yy147; } else { if (yych <= '/') { - if (yych <= '.') goto yy167; - goto yy148; + if (yych <= '.') goto yy166; + goto yy147; } else { - if (yych == '_') goto yy148; - goto yy167; + if (yych == '_') goto yy147; + goto yy166; } } -yy1266: - YYDEBUG(1266, *YYCURSOR); +yy1265: + YYDEBUG(1265, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy142; } } else { if (yych <= '_') { - if (yych <= 'T') goto yy1238; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'T') goto yy1237; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 's') { - if (yych <= '`') goto yy4; - goto yy151; + if (yych <= '`') goto yy3; + goto yy150; } else { - if (yych <= 't') goto yy1267; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 't') goto yy1266; + if (yych <= 'z') goto yy150; + goto yy3; } } } -yy1267: - YYDEBUG(1267, *YYCURSOR); +yy1266: + YYDEBUG(1266, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'G') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { - if (yych <= 'H') goto yy1239; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'H') goto yy1238; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'g') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { - if (yych <= 'h') goto yy1268; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'h') goto yy1267; + if (yych <= 'z') goto yy151; + goto yy3; } } } -yy1268: - YYDEBUG(1268, *YYCURSOR); +yy1267: + YYDEBUG(1267, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '-') { if (yych <= ' ') { - if (yych == '\t') goto yy1207; - if (yych <= 0x1F) goto yy4; - goto yy1207; + if (yych == '\t') goto yy1206; + if (yych <= 0x1F) goto yy3; + goto yy1206; } else { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } } else { if (yych <= 'Z') { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } else { if (yych <= '_') { - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= '^') goto yy3; + goto yy147; } else { - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy152; + goto yy3; } } } -yy1269: - YYDEBUG(1269, *YYCURSOR); +yy1268: + YYDEBUG(1268, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'T') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy167; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy166; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy167; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy166; + goto yy142; } } else { if (yych <= '_') { - if (yych <= 'U') goto yy1241; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy167; - goto yy148; + if (yych <= 'U') goto yy1240; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy166; + goto yy147; } else { if (yych <= 't') { - if (yych <= '`') goto yy167; - goto yy151; + if (yych <= '`') goto yy166; + goto yy150; } else { - if (yych <= 'u') goto yy1270; - if (yych <= 'z') goto yy151; - goto yy167; + if (yych <= 'u') goto yy1269; + if (yych <= 'z') goto yy150; + goto yy166; } } } -yy1270: - YYDEBUG(1270, *YYCURSOR); +yy1269: + YYDEBUG(1269, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'Q') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { - if (yych <= 'R') goto yy1242; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'R') goto yy1241; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'q') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { - if (yych <= 'r') goto yy1271; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'r') goto yy1270; + if (yych <= 'z') goto yy151; + goto yy3; } } } -yy1271: - YYDEBUG(1271, *YYCURSOR); +yy1270: + YYDEBUG(1270, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'C') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } } else { if (yych <= '_') { - if (yych <= 'D') goto yy1243; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'D') goto yy1242; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'c') { - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '`') goto yy3; + goto yy152; } else { - if (yych <= 'd') goto yy1272; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 'd') goto yy1271; + if (yych <= 'z') goto yy152; + goto yy3; } } } -yy1272: - YYDEBUG(1272, *YYCURSOR); +yy1271: + YYDEBUG(1271, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '@') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '_') { - if (yych <= 'A') goto yy1244; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'A') goto yy1243; + if (yych <= '^') goto yy3; + goto yy147; } else { - if (yych <= '`') goto yy4; - if (yych <= 'a') goto yy1273; - if (yych <= 'z') goto yy154; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'a') goto yy1272; + if (yych <= 'z') goto yy153; + goto yy3; } } +yy1272: + YYDEBUG(1272, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy172; + if (yych == 'y') goto yy185; + goto yy154; yy1273: YYDEBUG(1273, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy173; - if (yych == 'y') goto yy186; - goto yy155; -yy1274: - YYDEBUG(1274, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'N') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy142; } } else { if (yych <= '_') { - if (yych <= 'O') goto yy1256; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'O') goto yy1255; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'n') { - if (yych <= '`') goto yy4; - goto yy151; + if (yych <= '`') goto yy3; + goto yy150; } else { - if (yych <= 'o') goto yy1285; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'o') goto yy1284; + if (yych <= 'z') goto yy150; + goto yy3; } } } -yy1275: - YYDEBUG(1275, *YYCURSOR); +yy1274: + YYDEBUG(1274, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy142; } } else { if (yych <= '_') { - if (yych <= 'E') goto yy1253; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'E') goto yy1252; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'd') { - if (yych <= '`') goto yy4; - goto yy151; + if (yych <= '`') goto yy3; + goto yy150; } else { - if (yych <= 'e') goto yy1282; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'e') goto yy1281; + if (yych <= 'z') goto yy150; + goto yy3; } } } -yy1276: - YYDEBUG(1276, *YYCURSOR); +yy1275: + YYDEBUG(1275, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= '-') { - if (yych <= ')') goto yy140; - if (yych <= ',') goto yy194; - goto yy372; + if (yych <= ')') goto yy139; + if (yych <= ',') goto yy193; + goto yy371; } else { - if (yych == '/') goto yy148; - goto yy196; + if (yych == '/') goto yy147; + goto yy195; } } } else { if (yych <= '^') { if (yych <= 'S') { - if (yych <= '@') goto yy194; - goto yy143; + if (yych <= '@') goto yy193; + goto yy142; } else { - if (yych <= 'T') goto yy1248; - if (yych <= 'Z') goto yy143; - goto yy194; + if (yych <= 'T') goto yy1247; + if (yych <= 'Z') goto yy142; + goto yy193; } } else { if (yych <= 's') { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy194; - goto yy151; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy193; + goto yy150; } else { - if (yych <= 't') goto yy1277; - if (yych <= 'z') goto yy151; - goto yy194; + if (yych <= 't') goto yy1276; + if (yych <= 'z') goto yy150; + goto yy193; } } } -yy1277: - YYDEBUG(1277, *YYCURSOR); +yy1276: + YYDEBUG(1276, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= '-') { - if (yych <= ')') goto yy140; - if (yych <= ',') goto yy194; - goto yy372; + if (yych <= ')') goto yy139; + if (yych <= ',') goto yy193; + goto yy371; } else { - if (yych == '/') goto yy148; - goto yy196; + if (yych == '/') goto yy147; + goto yy195; } } } else { if (yych <= '^') { if (yych <= 'D') { - if (yych <= '@') goto yy194; - goto yy144; + if (yych <= '@') goto yy193; + goto yy143; } else { - if (yych <= 'E') goto yy1249; - if (yych <= 'Z') goto yy144; - goto yy194; + if (yych <= 'E') goto yy1248; + if (yych <= 'Z') goto yy143; + goto yy193; } } else { if (yych <= 'd') { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy194; - goto yy152; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy193; + goto yy151; } else { - if (yych <= 'e') goto yy1278; - if (yych <= 'z') goto yy152; - goto yy194; + if (yych <= 'e') goto yy1277; + if (yych <= 'z') goto yy151; + goto yy193; } } } -yy1278: - YYDEBUG(1278, *YYCURSOR); +yy1277: + YYDEBUG(1277, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'L') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } } else { if (yych <= '_') { - if (yych <= 'M') goto yy1250; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'M') goto yy1249; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'l') { - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '`') goto yy3; + goto yy152; } else { - if (yych <= 'm') goto yy1279; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 'm') goto yy1278; + if (yych <= 'z') goto yy152; + goto yy3; } } } -yy1279: - YYDEBUG(1279, *YYCURSOR); +yy1278: + YYDEBUG(1278, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'A') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '`') { - if (yych <= 'B') goto yy1251; - if (yych == '_') goto yy148; - goto yy4; + if (yych <= 'B') goto yy1250; + if (yych == '_') goto yy147; + goto yy3; } else { - if (yych == 'b') goto yy1280; - if (yych <= 'z') goto yy154; - goto yy4; + if (yych == 'b') goto yy1279; + if (yych <= 'z') goto yy153; + goto yy3; } } -yy1280: +yy1279: + YYDEBUG(1279, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1251; + if (yych != 'e') goto yy154; YYDEBUG(1280, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy1252; - if (yych != 'e') goto yy155; + if (yych == 'R') goto yy205; + if (yych == 'r') goto yy376; + goto yy154; +yy1281: YYDEBUG(1281, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy206; - if (yych == 'r') goto yy377; - goto yy155; -yy1282: - YYDEBUG(1282, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'M') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { - if (yych <= 'N') goto yy1254; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'N') goto yy1253; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'm') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { - if (yych <= 'n') goto yy1283; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'n') goto yy1282; + if (yych <= 'z') goto yy151; + goto yy3; } } } -yy1283: - YYDEBUG(1283, *YYCURSOR); +yy1282: + YYDEBUG(1282, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } } else { if (yych <= '_') { - if (yych <= 'T') goto yy1255; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'T') goto yy1254; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 's') { - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '`') goto yy3; + goto yy152; } else { - if (yych <= 't') goto yy1284; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 't') goto yy1283; + if (yych <= 'z') goto yy152; + goto yy3; } } } -yy1284: - YYDEBUG(1284, *YYCURSOR); +yy1283: + YYDEBUG(1283, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'G') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '`') { - if (yych <= 'H') goto yy1206; - if (yych == '_') goto yy148; - goto yy4; + if (yych <= 'H') goto yy1205; + if (yych == '_') goto yy147; + goto yy3; } else { - if (yych == 'h') goto yy1224; - if (yych <= 'z') goto yy154; - goto yy4; + if (yych == 'h') goto yy1223; + if (yych <= 'z') goto yy153; + goto yy3; } } -yy1285: - YYDEBUG(1285, *YYCURSOR); +yy1284: + YYDEBUG(1284, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'M') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { - if (yych <= 'N') goto yy1257; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'N') goto yy1256; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'm') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { - if (yych <= 'n') goto yy1286; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'n') goto yy1285; + if (yych <= 'z') goto yy151; + goto yy3; } } } -yy1286: - YYDEBUG(1286, *YYCURSOR); +yy1285: + YYDEBUG(1285, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'C') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } } else { if (yych <= '_') { - if (yych <= 'D') goto yy1216; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'D') goto yy1215; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'c') { - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '`') goto yy3; + goto yy152; } else { - if (yych <= 'd') goto yy1228; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 'd') goto yy1227; + if (yych <= 'z') goto yy152; + goto yy3; } } } -yy1287: - YYDEBUG(1287, *YYCURSOR); +yy1286: + YYDEBUG(1286, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'C') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'B') goto yy142; + if (yych <= '@') goto yy3; + if (yych <= 'B') goto yy141; } } else { if (yych <= 'b') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { - if (yych <= 'c') goto yy1288; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'c') goto yy1287; + if (yych <= 'z') goto yy141; + goto yy3; } } -yy1288: - YYDEBUG(1288, *YYCURSOR); +yy1287: + YYDEBUG(1287, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'K') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'J') goto yy143; + if (yych <= '@') goto yy3; + if (yych <= 'J') goto yy142; } } else { if (yych <= 'j') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy3; + goto yy142; } else { - if (yych <= 'k') goto yy1289; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 'k') goto yy1288; + if (yych <= 'z') goto yy142; + goto yy3; } } -yy1289: - YYDEBUG(1289, *YYCURSOR); +yy1288: + YYDEBUG(1288, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ')') { - if (yych == ' ') goto yy1290; - if (yych <= '(') goto yy4; - goto yy140; + if (yych == ' ') goto yy1289; + if (yych <= '(') goto yy3; + goto yy139; } else { if (yych <= 'Z') { - if (yych <= '@') goto yy4; - goto yy144; + if (yych <= '@') goto yy3; + goto yy143; } else { - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy143; + goto yy3; } } +yy1289: + YYDEBUG(1289, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy1290; + if (yych != 'o') goto yy56; yy1290: YYDEBUG(1290, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy1291; - if (yych != 'o') goto yy57; + if (yych == 'F') goto yy1291; + if (yych != 'f') goto yy56; yy1291: YYDEBUG(1291, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'F') goto yy1292; - if (yych != 'f') goto yy57; -yy1292: + if (yych != ' ') goto yy56; YYDEBUG(1292, *YYCURSOR); yych = *++YYCURSOR; - if (yych != ' ') goto yy57; + if (yych <= '/') goto yy56; + if (yych <= '1') goto yy1293; + if (yych <= '2') goto yy1295; + if (yych <= '9') goto yy1296; + goto yy56; +yy1293: YYDEBUG(1293, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych <= '1') goto yy1294; - if (yych <= '2') goto yy1296; - if (yych <= '9') goto yy1297; - goto yy57; -yy1294: - YYDEBUG(1294, *YYCURSOR); yyaccept = 28; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy1298; - if (yych <= '9') goto yy1297; - goto yy1298; -yy1295: - YYDEBUG(1295, *YYCURSOR); + if (yych <= '/') goto yy1297; + if (yych <= '9') goto yy1296; + goto yy1297; +yy1294: + YYDEBUG(1294, *YYCURSOR); { DEBUG_OUTPUT("backof | frontof"); TIMELIB_INIT; @@ -19591,294 +19574,309 @@ yy1295: TIMELIB_DEINIT; return TIMELIB_LF_DAY_OF_MONTH; } -yy1296: - YYDEBUG(1296, *YYCURSOR); +yy1295: + YYDEBUG(1295, *YYCURSOR); yyaccept = 28; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy1298; - if (yych >= '5') goto yy1298; -yy1297: - YYDEBUG(1297, *YYCURSOR); + if (yych <= '/') goto yy1297; + if (yych >= '5') goto yy1297; +yy1296: + YYDEBUG(1296, *YYCURSOR); yyaccept = 28; YYMARKER = ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); yych = *YYCURSOR; -yy1298: - YYDEBUG(1298, *YYCURSOR); +yy1297: + YYDEBUG(1297, *YYCURSOR); if (yych <= 'A') { if (yych <= 0x1F) { - if (yych == '\t') goto yy1297; - goto yy1295; + if (yych == '\t') goto yy1296; + goto yy1294; } else { - if (yych <= ' ') goto yy1297; - if (yych <= '@') goto yy1295; + if (yych <= ' ') goto yy1296; + if (yych <= '@') goto yy1294; } } else { if (yych <= '`') { - if (yych != 'P') goto yy1295; + if (yych != 'P') goto yy1294; } else { - if (yych <= 'a') goto yy1299; - if (yych != 'p') goto yy1295; + if (yych <= 'a') goto yy1298; + if (yych != 'p') goto yy1294; } } -yy1299: - YYDEBUG(1299, *YYCURSOR); +yy1298: + YYDEBUG(1298, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'L') { - if (yych != '.') goto yy57; + if (yych != '.') goto yy56; } else { - if (yych <= 'M') goto yy1301; - if (yych == 'm') goto yy1301; - goto yy57; + if (yych <= 'M') goto yy1300; + if (yych == 'm') goto yy1300; + goto yy56; } - YYDEBUG(1300, *YYCURSOR); + YYDEBUG(1299, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy1301; - if (yych != 'm') goto yy57; -yy1301: - YYDEBUG(1301, *YYCURSOR); + if (yych == 'M') goto yy1300; + if (yych != 'm') goto yy56; +yy1300: + YYDEBUG(1300, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 0x1F) { - if (yych <= 0x00) goto yy1303; - if (yych == '\t') goto yy1303; - goto yy57; + if (yych <= 0x00) goto yy1302; + if (yych == '\t') goto yy1302; + goto yy56; } else { - if (yych <= ' ') goto yy1303; - if (yych != '.') goto yy57; + if (yych <= ' ') goto yy1302; + if (yych != '.') goto yy56; } - YYDEBUG(1302, *YYCURSOR); + YYDEBUG(1301, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '\t') { - if (yych <= 0x00) goto yy1303; - if (yych <= 0x08) goto yy57; + if (yych <= 0x00) goto yy1302; + if (yych <= 0x08) goto yy56; } else { - if (yych != ' ') goto yy57; + if (yych != ' ') goto yy56; } +yy1302: + YYDEBUG(1302, *YYCURSOR); + yych = *++YYCURSOR; + goto yy1294; yy1303: YYDEBUG(1303, *YYCURSOR); - yych = *++YYCURSOR; - goto yy1295; -yy1304: - YYDEBUG(1304, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'B') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { - if (yych <= 'C') goto yy1288; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'C') goto yy1287; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'b') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { - if (yych <= 'c') goto yy1305; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'c') goto yy1304; + if (yych <= 'z') goto yy146; + goto yy3; } } } -yy1305: - YYDEBUG(1305, *YYCURSOR); +yy1304: + YYDEBUG(1304, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'J') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy142; } } else { if (yych <= '_') { - if (yych <= 'K') goto yy1289; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'K') goto yy1288; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'j') { - if (yych <= '`') goto yy4; - goto yy151; + if (yych <= '`') goto yy3; + goto yy150; } else { - if (yych <= 'k') goto yy1306; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'k') goto yy1305; + if (yych <= 'z') goto yy150; + goto yy3; } } } -yy1306: - YYDEBUG(1306, *YYCURSOR); +yy1305: + YYDEBUG(1305, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= '(') { - if (yych == ' ') goto yy1290; - goto yy4; + if (yych == ' ') goto yy1289; + goto yy3; } else { - if (yych <= ')') goto yy140; - if (yych == '-') goto yy148; - goto yy4; + if (yych <= ')') goto yy139; + if (yych == '-') goto yy147; + goto yy3; } } else { if (yych <= '^') { - if (yych <= '/') goto yy148; - if (yych <= '@') goto yy4; - if (yych <= 'Z') goto yy144; - goto yy4; + if (yych <= '/') goto yy147; + if (yych <= '@') goto yy3; + if (yych <= 'Z') goto yy143; + goto yy3; } else { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy151; + goto yy3; } } -yy1307: - YYDEBUG(1307, *YYCURSOR); +yy1306: + YYDEBUG(1306, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'S') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'R') goto yy142; + if (yych <= '@') goto yy3; + if (yych <= 'R') goto yy141; } } else { if (yych <= 'r') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { - if (yych <= 's') goto yy1308; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 's') goto yy1307; + if (yych <= 'z') goto yy141; + goto yy3; } } -yy1308: - YYDEBUG(1308, *YYCURSOR); +yy1307: + YYDEBUG(1307, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'T') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'S') goto yy143; + if (yych <= '@') goto yy3; + if (yych <= 'S') goto yy142; } } else { if (yych <= 's') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy3; + goto yy142; } else { - if (yych <= 't') goto yy1309; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 't') goto yy1308; + if (yych <= 'z') goto yy142; + goto yy3; } } -yy1309: - YYDEBUG(1309, *YYCURSOR); +yy1308: + YYDEBUG(1308, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy4; - goto yy1105; + if (yych <= 0x08) goto yy3; + goto yy1104; } else { - if (yych != ' ') goto yy4; + if (yych != ' ') goto yy3; } } else { if (yych <= 'Z') { - if (yych <= ')') goto yy140; - if (yych <= '@') goto yy4; - goto yy144; + if (yych <= ')') goto yy139; + if (yych <= '@') goto yy3; + goto yy143; } else { - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy143; + goto yy3; } } +yy1309: + YYDEBUG(1309, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy1310; + if (yych != 'd') goto yy1105; yy1310: YYDEBUG(1310, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy1311; - if (yych != 'd') goto yy1106; + if (yych == 'A') goto yy1311; + if (yych != 'a') goto yy56; yy1311: YYDEBUG(1311, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy1312; - if (yych != 'a') goto yy57; + if (yych == 'Y') goto yy1312; + if (yych != 'y') goto yy56; yy1312: YYDEBUG(1312, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy1313; - if (yych != 'y') goto yy57; -yy1313: - YYDEBUG(1313, *YYCURSOR); yyaccept = 26; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'R') { - if (yych != ' ') goto yy1118; + if (yych != ' ') goto yy1117; } else { - if (yych <= 'S') goto yy1143; - if (yych == 's') goto yy1143; - goto yy1118; + if (yych <= 'S') goto yy1142; + if (yych == 's') goto yy1142; + goto yy1117; } + YYDEBUG(1313, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy1314; + if (yych != 'o') goto yy56; +yy1314: YYDEBUG(1314, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy1315; - if (yych != 'o') goto yy57; + if (yych == 'F') goto yy1315; + if (yych != 'f') goto yy56; yy1315: YYDEBUG(1315, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy1316; - if (yych != 'f') goto yy57; -yy1316: + ++YYCURSOR; YYDEBUG(1316, *YYCURSOR); - yych = *++YYCURSOR; - goto yy2; + { + DEBUG_OUTPUT("firstdayof | lastdayof"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + + /* skip "last day of" or "first day of" */ + if (*ptr == 'l') { + s->time->relative.first_last_day_of = 2; + } else { + s->time->relative.first_last_day_of = 1; + } + + TIMELIB_DEINIT; + return TIMELIB_LF_DAY_OF_MONTH; + } yy1317: YYDEBUG(1317, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'R') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { - if (yych <= 'S') goto yy1308; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'S') goto yy1307; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'r') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { if (yych <= 's') goto yy1318; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'z') goto yy146; + goto yy3; } } } @@ -19888,28 +19886,28 @@ yy1318: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy142; } } else { if (yych <= '_') { - if (yych <= 'T') goto yy1309; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'T') goto yy1308; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 's') { - if (yych <= '`') goto yy4; - goto yy151; + if (yych <= '`') goto yy3; + goto yy150; } else { if (yych <= 't') goto yy1319; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'z') goto yy150; + goto yy3; } } } @@ -19919,27 +19917,27 @@ yy1319: yych = *(YYMARKER = ++YYCURSOR); if (yych <= '-') { if (yych <= ' ') { - if (yych == '\t') goto yy1105; - if (yych <= 0x1F) goto yy4; - goto yy1310; + if (yych == '\t') goto yy1104; + if (yych <= 0x1F) goto yy3; + goto yy1309; } else { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } } else { if (yych <= 'Z') { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } else { if (yych <= '_') { - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= '^') goto yy3; + goto yy147; } else { - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy151; + goto yy3; } } } @@ -19948,22 +19946,22 @@ yy1320: yych = *++YYCURSOR; if (yych <= 'B') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'A') goto yy142; + if (yych <= '@') goto yy3; + if (yych <= 'A') goto yy141; goto yy1356; } } else { if (yych <= 'a') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { if (yych <= 'b') goto yy1356; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'z') goto yy141; + goto yy3; } } yy1321: @@ -19971,23 +19969,23 @@ yy1321: yych = *++YYCURSOR; if (yych <= 'R') { if (yych <= '@') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { if (yych == 'F') goto yy1346; - if (yych <= 'Q') goto yy142; + if (yych <= 'Q') goto yy141; goto yy1345; } } else { if (yych <= 'f') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - if (yych <= 'e') goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + if (yych <= 'e') goto yy141; goto yy1346; } else { if (yych == 'r') goto yy1345; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'z') goto yy141; + goto yy3; } } yy1322: @@ -19995,22 +19993,22 @@ yy1322: yych = *++YYCURSOR; if (yych <= 'U') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'T') goto yy142; + if (yych <= '@') goto yy3; + if (yych <= 'T') goto yy141; goto yy1342; } } else { if (yych <= 't') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { if (yych <= 'u') goto yy1342; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'z') goto yy141; + goto yy3; } } yy1323: @@ -20018,22 +20016,22 @@ yy1323: yych = *++YYCURSOR; if (yych <= 'O') { if (yych <= '@') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { if (yych == 'I') goto yy1325; - if (yych <= 'N') goto yy142; + if (yych <= 'N') goto yy141; } } else { if (yych <= 'i') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - if (yych <= 'h') goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + if (yych <= 'h') goto yy141; goto yy1325; } else { if (yych == 'o') goto yy1324; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'z') goto yy141; + goto yy3; } } yy1324: @@ -20041,22 +20039,22 @@ yy1324: yych = *++YYCURSOR; if (yych <= 'N') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'M') goto yy143; + if (yych <= '@') goto yy3; + if (yych <= 'M') goto yy142; goto yy1328; } } else { if (yych <= 'm') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy3; + goto yy142; } else { if (yych <= 'n') goto yy1328; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 'z') goto yy142; + goto yy3; } } yy1325: @@ -20064,37 +20062,37 @@ yy1325: yych = *++YYCURSOR; if (yych <= 'D') { if (yych <= ')') { - if (yych <= '(') goto yy167; - goto yy140; + if (yych <= '(') goto yy166; + goto yy139; } else { - if (yych <= '@') goto yy167; - if (yych <= 'C') goto yy143; + if (yych <= '@') goto yy166; + if (yych <= 'C') goto yy142; } } else { if (yych <= 'c') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy167; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy166; + goto yy142; } else { if (yych <= 'd') goto yy1326; - if (yych <= 'z') goto yy143; - goto yy167; + if (yych <= 'z') goto yy142; + goto yy166; } } yy1326: YYDEBUG(1326, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'A') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; } else { if (yych <= '`') { - if (yych <= 'Z') goto yy144; - goto yy4; + if (yych <= 'Z') goto yy143; + goto yy3; } else { if (yych <= 'a') goto yy1327; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'z') goto yy143; + goto yy3; } } yy1327: @@ -20102,22 +20100,22 @@ yy1327: yych = *++YYCURSOR; if (yych <= 'Y') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'X') goto yy145; - goto yy1236; + if (yych <= '@') goto yy3; + if (yych <= 'X') goto yy144; + goto yy1235; } } else { if (yych <= 'x') { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - goto yy145; + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy3; + goto yy144; } else { - if (yych <= 'y') goto yy1236; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 'y') goto yy1235; + if (yych <= 'z') goto yy144; + goto yy3; } } yy1328: @@ -20125,21 +20123,21 @@ yy1328: yych = *++YYCURSOR; if (yych <= 'T') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'S') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'S') goto yy143; } } else { if (yych <= 's') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { if (yych <= 't') goto yy1329; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'z') goto yy143; + goto yy3; } } yy1329: @@ -20148,39 +20146,39 @@ yy1329: yych = *(YYMARKER = ++YYCURSOR); if (yych <= ')') { if (yych == ' ') goto yy1330; - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { if (yych <= 'Z') { - if (yych <= '@') goto yy4; - goto yy145; + if (yych <= '@') goto yy3; + goto yy144; } else { - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy144; + goto yy3; } } yy1330: YYDEBUG(1330, *YYCURSOR); yych = *++YYCURSOR; if (yych == 'O') goto yy1331; - if (yych != 'o') goto yy57; + if (yych != 'o') goto yy56; yy1331: YYDEBUG(1331, *YYCURSOR); yych = *++YYCURSOR; if (yych == 'F') goto yy1332; - if (yych != 'f') goto yy57; + if (yych != 'f') goto yy56; yy1332: YYDEBUG(1332, *YYCURSOR); yych = *++YYCURSOR; - if (yych != ' ') goto yy57; + if (yych != ' ') goto yy56; YYDEBUG(1333, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; + if (yych <= '/') goto yy56; if (yych <= '1') goto yy1334; if (yych <= '2') goto yy1335; if (yych <= '9') goto yy1336; - goto yy57; + goto yy56; yy1334: YYDEBUG(1334, *YYCURSOR); yyaccept = 28; @@ -20205,74 +20203,74 @@ yy1337: if (yych <= 'A') { if (yych <= 0x1F) { if (yych == '\t') goto yy1336; - goto yy1295; + goto yy1294; } else { if (yych <= ' ') goto yy1336; - if (yych <= '@') goto yy1295; + if (yych <= '@') goto yy1294; } } else { if (yych <= '`') { - if (yych != 'P') goto yy1295; + if (yych != 'P') goto yy1294; } else { if (yych <= 'a') goto yy1338; - if (yych != 'p') goto yy1295; + if (yych != 'p') goto yy1294; } } yy1338: YYDEBUG(1338, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'L') { - if (yych != '.') goto yy57; + if (yych != '.') goto yy56; } else { if (yych <= 'M') goto yy1340; if (yych == 'm') goto yy1340; - goto yy57; + goto yy56; } YYDEBUG(1339, *YYCURSOR); yych = *++YYCURSOR; if (yych == 'M') goto yy1340; - if (yych != 'm') goto yy57; + if (yych != 'm') goto yy56; yy1340: YYDEBUG(1340, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 0x1F) { - if (yych <= 0x00) goto yy1303; - if (yych == '\t') goto yy1303; - goto yy57; + if (yych <= 0x00) goto yy1302; + if (yych == '\t') goto yy1302; + goto yy56; } else { - if (yych <= ' ') goto yy1303; - if (yych != '.') goto yy57; + if (yych <= ' ') goto yy1302; + if (yych != '.') goto yy56; } YYDEBUG(1341, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '\t') { - if (yych <= 0x00) goto yy1303; - if (yych <= 0x08) goto yy57; - goto yy1303; + if (yych <= 0x00) goto yy1302; + if (yych <= 0x08) goto yy56; + goto yy1302; } else { - if (yych == ' ') goto yy1303; - goto yy57; + if (yych == ' ') goto yy1302; + goto yy56; } yy1342: YYDEBUG(1342, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'R') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'Q') goto yy143; + if (yych <= '@') goto yy3; + if (yych <= 'Q') goto yy142; } } else { if (yych <= 'q') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy3; + goto yy142; } else { if (yych <= 'r') goto yy1343; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 'z') goto yy142; + goto yy3; } } yy1343: @@ -20280,21 +20278,21 @@ yy1343: yych = *++YYCURSOR; if (yych <= 'T') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'S') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'S') goto yy143; } } else { if (yych <= 's') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { if (yych <= 't') goto yy1344; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'z') goto yy143; + goto yy3; } } yy1344: @@ -20302,22 +20300,22 @@ yy1344: yych = *++YYCURSOR; if (yych <= 'H') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'G') goto yy145; - goto yy1216; + if (yych <= '@') goto yy3; + if (yych <= 'G') goto yy144; + goto yy1215; } } else { if (yych <= 'g') { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - goto yy145; + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy3; + goto yy144; } else { - if (yych <= 'h') goto yy1216; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 'h') goto yy1215; + if (yych <= 'z') goto yy144; + goto yy3; } } yy1345: @@ -20325,22 +20323,22 @@ yy1345: yych = *++YYCURSOR; if (yych <= 'S') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'R') goto yy143; + if (yych <= '@') goto yy3; + if (yych <= 'R') goto yy142; goto yy1348; } } else { if (yych <= 'r') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy3; + goto yy142; } else { if (yych <= 's') goto yy1348; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 'z') goto yy142; + goto yy3; } } yy1346: @@ -20348,21 +20346,21 @@ yy1346: yych = *++YYCURSOR; if (yych <= 'T') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'S') goto yy143; + if (yych <= '@') goto yy3; + if (yych <= 'S') goto yy142; } } else { if (yych <= 's') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy3; + goto yy142; } else { if (yych <= 't') goto yy1347; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 'z') goto yy142; + goto yy3; } } yy1347: @@ -20370,22 +20368,22 @@ yy1347: yych = *++YYCURSOR; if (yych <= 'H') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'G') goto yy144; - goto yy1239; + if (yych <= '@') goto yy3; + if (yych <= 'G') goto yy143; + goto yy1238; } } else { if (yych <= 'g') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { - if (yych <= 'h') goto yy1239; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'h') goto yy1238; + if (yych <= 'z') goto yy143; + goto yy3; } } yy1348: @@ -20393,21 +20391,21 @@ yy1348: yych = *++YYCURSOR; if (yych <= 'T') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'S') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'S') goto yy143; } } else { if (yych <= 's') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { if (yych <= 't') goto yy1349; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'z') goto yy143; + goto yy3; } } yy1349: @@ -20416,58 +20414,58 @@ yy1349: yych = *(YYMARKER = ++YYCURSOR); if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy4; - goto yy1207; + if (yych <= 0x08) goto yy3; + goto yy1206; } else { - if (yych != ' ') goto yy4; + if (yych != ' ') goto yy3; } } else { if (yych <= 'Z') { - if (yych <= ')') goto yy140; - if (yych <= '@') goto yy4; - goto yy145; + if (yych <= ')') goto yy139; + if (yych <= '@') goto yy3; + goto yy144; } else { - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy144; + goto yy3; } } yy1350: YYDEBUG(1350, *YYCURSOR); yych = *++YYCURSOR; if (yych == 'D') goto yy1351; - if (yych != 'd') goto yy1208; + if (yych != 'd') goto yy1207; yy1351: YYDEBUG(1351, *YYCURSOR); yych = *++YYCURSOR; if (yych == 'A') goto yy1352; - if (yych != 'a') goto yy57; + if (yych != 'a') goto yy56; yy1352: YYDEBUG(1352, *YYCURSOR); yych = *++YYCURSOR; if (yych == 'Y') goto yy1353; - if (yych != 'y') goto yy57; + if (yych != 'y') goto yy56; yy1353: YYDEBUG(1353, *YYCURSOR); yyaccept = 26; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'R') { - if (yych != ' ') goto yy1118; + if (yych != ' ') goto yy1117; } else { - if (yych <= 'S') goto yy1143; - if (yych == 's') goto yy1143; - goto yy1118; + if (yych <= 'S') goto yy1142; + if (yych == 's') goto yy1142; + goto yy1117; } YYDEBUG(1354, *YYCURSOR); yych = *++YYCURSOR; if (yych == 'O') goto yy1355; - if (yych != 'o') goto yy57; + if (yych != 'o') goto yy56; yy1355: YYDEBUG(1355, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'F') goto yy1316; - if (yych == 'f') goto yy1316; - goto yy57; + if (yych == 'F') goto yy1315; + if (yych == 'f') goto yy1315; + goto yy56; yy1356: YYDEBUG(1356, *YYCURSOR); yyaccept = 5; @@ -20475,38 +20473,38 @@ yy1356: if (yych <= '/') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= ',') { - if (yych <= ')') goto yy140; - goto yy194; + if (yych <= ')') goto yy139; + goto yy193; } else { - if (yych <= '-') goto yy197; - if (yych <= '.') goto yy196; - goto yy194; + if (yych <= '-') goto yy196; + if (yych <= '.') goto yy195; + goto yy193; } } } else { if (yych <= 'Z') { if (yych <= '@') { - if (yych <= '9') goto yy196; - goto yy194; + if (yych <= '9') goto yy195; + goto yy193; } else { - if (yych != 'R') goto yy143; + if (yych != 'R') goto yy142; } } else { if (yych <= 'q') { - if (yych <= '`') goto yy194; - goto yy143; + if (yych <= '`') goto yy193; + goto yy142; } else { if (yych <= 'r') goto yy1357; - if (yych <= 'z') goto yy143; - goto yy194; + if (yych <= 'z') goto yy142; + goto yy193; } } } @@ -20515,37 +20513,37 @@ yy1357: yych = *++YYCURSOR; if (yych <= 'U') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'T') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'T') goto yy143; } } else { if (yych <= 't') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { if (yych <= 'u') goto yy1358; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'z') goto yy143; + goto yy3; } } yy1358: YYDEBUG(1358, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'A') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; } else { if (yych <= '`') { - if (yych <= 'Z') goto yy145; - goto yy4; + if (yych <= 'Z') goto yy144; + goto yy3; } else { if (yych <= 'a') goto yy1359; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 'z') goto yy144; + goto yy3; } } yy1359: @@ -20553,46 +20551,46 @@ yy1359: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'Q') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { if (yych <= 'R') goto yy1360; - if (yych != 'r') goto yy4; + if (yych != 'r') goto yy3; } yy1360: YYDEBUG(1360, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy206; - if (yych == 'y') goto yy206; - goto yy57; + if (yych == 'Y') goto yy205; + if (yych == 'y') goto yy205; + goto yy56; yy1361: YYDEBUG(1361, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'A') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { if (yych <= 'B') goto yy1356; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'a') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { if (yych <= 'b') goto yy1379; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'z') goto yy146; + goto yy3; } } } @@ -20603,38 +20601,38 @@ yy1362: if (yych <= 'Q') { if (yych <= '.') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych == '-') goto yy148; - goto yy4; + if (yych == '-') goto yy147; + goto yy3; } } else { if (yych <= '@') { - if (yych <= '/') goto yy148; - goto yy4; + if (yych <= '/') goto yy147; + goto yy3; } else { if (yych == 'F') goto yy1346; - goto yy142; + goto yy141; } } } else { if (yych <= '`') { if (yych <= 'Z') { if (yych <= 'R') goto yy1345; - goto yy142; + goto yy141; } else { - if (yych == '_') goto yy148; - goto yy4; + if (yych == '_') goto yy147; + goto yy3; } } else { if (yych <= 'q') { if (yych == 'f') goto yy1375; - goto yy147; + goto yy146; } else { if (yych <= 'r') goto yy1374; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'z') goto yy146; + goto yy3; } } } @@ -20644,28 +20642,28 @@ yy1363: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'T') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { if (yych <= 'U') goto yy1342; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 't') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { if (yych <= 'u') goto yy1371; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'z') goto yy146; + goto yy3; } } } @@ -20676,38 +20674,38 @@ yy1364: if (yych <= 'N') { if (yych <= '.') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych == '-') goto yy148; - goto yy4; + if (yych == '-') goto yy147; + goto yy3; } } else { if (yych <= '@') { - if (yych <= '/') goto yy148; - goto yy4; + if (yych <= '/') goto yy147; + goto yy3; } else { if (yych == 'I') goto yy1325; - goto yy142; + goto yy141; } } } else { if (yych <= '`') { if (yych <= 'Z') { if (yych <= 'O') goto yy1324; - goto yy142; + goto yy141; } else { - if (yych == '_') goto yy148; - goto yy4; + if (yych == '_') goto yy147; + goto yy3; } } else { if (yych <= 'n') { if (yych == 'i') goto yy1366; - goto yy147; + goto yy146; } else { if (yych <= 'o') goto yy1365; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'z') goto yy146; + goto yy3; } } } @@ -20717,28 +20715,28 @@ yy1365: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'M') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy142; } } else { if (yych <= '_') { if (yych <= 'N') goto yy1328; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'm') { - if (yych <= '`') goto yy4; - goto yy151; + if (yych <= '`') goto yy3; + goto yy150; } else { if (yych <= 'n') goto yy1369; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'z') goto yy150; + goto yy3; } } } @@ -20748,28 +20746,28 @@ yy1366: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'C') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy167; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy166; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy167; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy166; + goto yy142; } } else { if (yych <= '_') { if (yych <= 'D') goto yy1326; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy167; - goto yy148; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy166; + goto yy147; } else { if (yych <= 'c') { - if (yych <= '`') goto yy167; - goto yy151; + if (yych <= '`') goto yy166; + goto yy150; } else { if (yych <= 'd') goto yy1367; - if (yych <= 'z') goto yy151; - goto yy167; + if (yych <= 'z') goto yy150; + goto yy166; } } } @@ -20779,24 +20777,24 @@ yy1367: yych = *(YYMARKER = ++YYCURSOR); if (yych <= '@') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '_') { if (yych <= 'A') goto yy1327; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { - if (yych <= '`') goto yy4; + if (yych <= '`') goto yy3; if (yych <= 'a') goto yy1368; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'z') goto yy151; + goto yy3; } } yy1368: @@ -20805,28 +20803,28 @@ yy1368: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'X') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } } else { if (yych <= '_') { - if (yych <= 'Y') goto yy1236; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Y') goto yy1235; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'x') { - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '`') goto yy3; + goto yy152; } else { - if (yych <= 'y') goto yy1265; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 'y') goto yy1264; + if (yych <= 'z') goto yy152; + goto yy3; } } } @@ -20836,28 +20834,28 @@ yy1369: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { if (yych <= 'T') goto yy1329; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 's') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { if (yych <= 't') goto yy1370; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'z') goto yy151; + goto yy3; } } } @@ -20868,23 +20866,23 @@ yy1370: if (yych <= '.') { if (yych <= '(') { if (yych == ' ') goto yy1330; - goto yy4; + goto yy3; } else { - if (yych <= ')') goto yy140; - if (yych == '-') goto yy148; - goto yy4; + if (yych <= ')') goto yy139; + if (yych == '-') goto yy147; + goto yy3; } } else { if (yych <= '^') { - if (yych <= '/') goto yy148; - if (yych <= '@') goto yy4; - if (yych <= 'Z') goto yy145; - goto yy4; + if (yych <= '/') goto yy147; + if (yych <= '@') goto yy3; + if (yych <= 'Z') goto yy144; + goto yy3; } else { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy152; + goto yy3; } } yy1371: @@ -20893,28 +20891,28 @@ yy1371: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'Q') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy142; } } else { if (yych <= '_') { if (yych <= 'R') goto yy1343; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'q') { - if (yych <= '`') goto yy4; - goto yy151; + if (yych <= '`') goto yy3; + goto yy150; } else { if (yych <= 'r') goto yy1372; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'z') goto yy150; + goto yy3; } } } @@ -20924,28 +20922,28 @@ yy1372: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { if (yych <= 'T') goto yy1344; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 's') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { if (yych <= 't') goto yy1373; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'z') goto yy151; + goto yy3; } } } @@ -20955,28 +20953,28 @@ yy1373: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'G') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } } else { if (yych <= '_') { - if (yych <= 'H') goto yy1216; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'H') goto yy1215; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'g') { - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '`') goto yy3; + goto yy152; } else { - if (yych <= 'h') goto yy1228; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 'h') goto yy1227; + if (yych <= 'z') goto yy152; + goto yy3; } } } @@ -20986,28 +20984,28 @@ yy1374: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'R') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy142; } } else { if (yych <= '_') { if (yych <= 'S') goto yy1348; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'r') { - if (yych <= '`') goto yy4; - goto yy151; + if (yych <= '`') goto yy3; + goto yy150; } else { if (yych <= 's') goto yy1377; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'z') goto yy150; + goto yy3; } } } @@ -21017,28 +21015,28 @@ yy1375: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy142; } } else { if (yych <= '_') { if (yych <= 'T') goto yy1347; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 's') { - if (yych <= '`') goto yy4; - goto yy151; + if (yych <= '`') goto yy3; + goto yy150; } else { if (yych <= 't') goto yy1376; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'z') goto yy150; + goto yy3; } } } @@ -21048,28 +21046,28 @@ yy1376: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'G') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { - if (yych <= 'H') goto yy1239; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'H') goto yy1238; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'g') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { - if (yych <= 'h') goto yy1268; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'h') goto yy1267; + if (yych <= 'z') goto yy151; + goto yy3; } } } @@ -21079,28 +21077,28 @@ yy1377: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { if (yych <= 'T') goto yy1349; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 's') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { if (yych <= 't') goto yy1378; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'z') goto yy151; + goto yy3; } } } @@ -21110,27 +21108,27 @@ yy1378: yych = *(YYMARKER = ++YYCURSOR); if (yych <= '-') { if (yych <= ' ') { - if (yych == '\t') goto yy1207; - if (yych <= 0x1F) goto yy4; + if (yych == '\t') goto yy1206; + if (yych <= 0x1F) goto yy3; goto yy1350; } else { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } } else { if (yych <= 'Z') { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } else { if (yych <= '_') { - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= '^') goto yy3; + goto yy147; } else { - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy152; + goto yy3; } } } @@ -21141,41 +21139,41 @@ yy1379: if (yych <= '9') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= '-') { - if (yych <= ')') goto yy140; - if (yych <= ',') goto yy194; - goto yy372; + if (yych <= ')') goto yy139; + if (yych <= ',') goto yy193; + goto yy371; } else { - if (yych == '/') goto yy148; - goto yy196; + if (yych == '/') goto yy147; + goto yy195; } } } else { if (yych <= '^') { if (yych <= 'Q') { - if (yych <= '@') goto yy194; - goto yy143; + if (yych <= '@') goto yy193; + goto yy142; } else { if (yych <= 'R') goto yy1357; - if (yych <= 'Z') goto yy143; - goto yy194; + if (yych <= 'Z') goto yy142; + goto yy193; } } else { if (yych <= 'q') { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy194; - goto yy151; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy193; + goto yy150; } else { if (yych <= 'r') goto yy1380; - if (yych <= 'z') goto yy151; - goto yy194; + if (yych <= 'z') goto yy150; + goto yy193; } } } @@ -21185,28 +21183,28 @@ yy1380: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'T') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { if (yych <= 'U') goto yy1358; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 't') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { if (yych <= 'u') goto yy1381; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'z') goto yy151; + goto yy3; } } } @@ -21216,24 +21214,24 @@ yy1381: yych = *(YYMARKER = ++YYCURSOR); if (yych <= '@') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '_') { if (yych <= 'A') goto yy1359; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { - if (yych <= '`') goto yy4; + if (yych <= '`') goto yy3; if (yych <= 'a') goto yy1382; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 'z') goto yy152; + goto yy3; } } yy1382: @@ -21242,35 +21240,35 @@ yy1382: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'Q') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '`') { if (yych <= 'R') goto yy1360; - if (yych == '_') goto yy148; - goto yy4; + if (yych == '_') goto yy147; + goto yy3; } else { if (yych == 'r') goto yy1383; - if (yych <= 'z') goto yy154; - goto yy4; + if (yych <= 'z') goto yy153; + goto yy3; } } yy1383: YYDEBUG(1383, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy206; - if (yych == 'y') goto yy377; - goto yy155; + if (yych == 'Y') goto yy205; + if (yych == 'y') goto yy376; + goto yy154; yy1384: YYDEBUG(1384, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; yy1385: YYDEBUG(1385, *YYCURSOR); ++YYCURSOR; @@ -21310,22 +21308,22 @@ yy1388: yych = *++YYCURSOR; if (yych <= 'N') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'M') goto yy142; + if (yych <= '@') goto yy3; + if (yych <= 'M') goto yy141; goto yy1429; } } else { if (yych <= 'm') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { if (yych <= 'n') goto yy1429; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'z') goto yy141; + goto yy3; } } yy1389: @@ -21333,23 +21331,23 @@ yy1389: yych = *++YYCURSOR; if (yych <= 'U') { if (yych <= '@') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { if (yych == 'I') goto yy1421; - if (yych <= 'T') goto yy142; + if (yych <= 'T') goto yy141; goto yy1422; } } else { if (yych <= 'i') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - if (yych <= 'h') goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + if (yych <= 'h') goto yy141; goto yy1421; } else { if (yych == 'u') goto yy1422; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'z') goto yy141; + goto yy3; } } yy1390: @@ -21357,23 +21355,23 @@ yy1390: yych = *++YYCURSOR; if (yych <= 'M') { if (yych <= '@') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { if (yych == 'D') goto yy1410; - if (yych <= 'L') goto yy142; + if (yych <= 'L') goto yy141; goto yy1411; } } else { if (yych <= 'd') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - if (yych <= 'c') goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + if (yych <= 'c') goto yy141; goto yy1410; } else { if (yych == 'm') goto yy1411; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'z') goto yy141; + goto yy3; } } yy1391: @@ -21381,22 +21379,22 @@ yy1391: yych = *++YYCURSOR; if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'D') goto yy142; + if (yych <= '@') goto yy3; + if (yych <= 'D') goto yy141; goto yy1406; } } else { if (yych <= 'd') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { if (yych <= 'e') goto yy1406; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'z') goto yy141; + goto yy3; } } yy1392: @@ -21404,109 +21402,109 @@ yy1392: yych = *++YYCURSOR; if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'D') goto yy142; + if (yych <= '@') goto yy3; + if (yych <= 'D') goto yy141; goto yy1402; } } else { if (yych <= 'd') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { if (yych <= 'e') goto yy1402; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'z') goto yy141; + goto yy3; } } yy1393: YYDEBUG(1393, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '/') { - if (yych == '.') goto yy1065; - goto yy57; + if (yych == '.') goto yy1064; + goto yy56; } else { if (yych <= '9') goto yy1396; - if (yych <= ':') goto yy1065; - goto yy57; + if (yych <= ':') goto yy1064; + goto yy56; } yy1394: YYDEBUG(1394, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '/') { - if (yych == '.') goto yy1065; - goto yy57; + if (yych == '.') goto yy1064; + goto yy56; } else { if (yych <= '4') goto yy1396; - if (yych == ':') goto yy1065; - goto yy57; + if (yych == ':') goto yy1064; + goto yy56; } yy1395: YYDEBUG(1395, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '.') goto yy1065; - if (yych == ':') goto yy1065; - goto yy57; + if (yych == '.') goto yy1064; + if (yych == ':') goto yy1064; + goto yy56; yy1396: YYDEBUG(1396, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '/') { - if (yych == '.') goto yy1065; - goto yy57; + if (yych == '.') goto yy1064; + goto yy56; } else { if (yych <= '5') goto yy1397; - if (yych == ':') goto yy1065; - goto yy57; + if (yych == ':') goto yy1064; + goto yy56; } yy1397: YYDEBUG(1397, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; - if (yych >= ':') goto yy57; + if (yych <= '/') goto yy56; + if (yych >= ':') goto yy56; YYDEBUG(1398, *YYCURSOR); yyaccept = 24; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy1068; + if (yych <= '/') goto yy1067; if (yych <= '5') goto yy1399; if (yych <= '6') goto yy1400; - goto yy1068; + goto yy1067; yy1399: YYDEBUG(1399, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy57; + if (yych <= '/') goto yy56; if (yych <= '9') goto yy1401; - goto yy57; + goto yy56; yy1400: YYDEBUG(1400, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '0') goto yy57; + if (yych != '0') goto yy56; yy1401: YYDEBUG(1401, *YYCURSOR); yych = *++YYCURSOR; - goto yy1076; + goto yy1075; yy1402: YYDEBUG(1402, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'L') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'K') goto yy143; + if (yych <= '@') goto yy3; + if (yych <= 'K') goto yy142; } } else { if (yych <= 'k') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy3; + goto yy142; } else { if (yych <= 'l') goto yy1403; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 'z') goto yy142; + goto yy3; } } yy1403: @@ -21514,21 +21512,21 @@ yy1403: yych = *++YYCURSOR; if (yych <= 'F') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'E') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'E') goto yy143; } } else { if (yych <= 'e') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { if (yych <= 'f') goto yy1404; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'z') goto yy143; + goto yy3; } } yy1404: @@ -21536,21 +21534,21 @@ yy1404: yych = *++YYCURSOR; if (yych <= 'T') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'S') goto yy145; + if (yych <= '@') goto yy3; + if (yych <= 'S') goto yy144; } } else { if (yych <= 's') { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - goto yy145; + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy3; + goto yy144; } else { if (yych <= 't') goto yy1405; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 'z') goto yy144; + goto yy3; } } yy1405: @@ -21558,33 +21556,33 @@ yy1405: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'G') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych <= 'H') goto yy1206; - if (yych == 'h') goto yy1206; - goto yy4; + if (yych <= 'H') goto yy1205; + if (yych == 'h') goto yy1205; + goto yy3; } yy1406: YYDEBUG(1406, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'S') { if (yych <= ')') { - if (yych <= '(') goto yy167; - goto yy140; + if (yych <= '(') goto yy166; + goto yy139; } else { - if (yych <= '@') goto yy167; - if (yych <= 'R') goto yy143; + if (yych <= '@') goto yy166; + if (yych <= 'R') goto yy142; } } else { if (yych <= 'r') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy167; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy166; + goto yy142; } else { if (yych <= 's') goto yy1407; - if (yych <= 'z') goto yy143; - goto yy167; + if (yych <= 'z') goto yy142; + goto yy166; } } yy1407: @@ -21592,65 +21590,65 @@ yy1407: yych = *++YYCURSOR; if (yych <= 'D') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'C') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'C') goto yy143; } } else { if (yych <= 'c') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { if (yych <= 'd') goto yy1408; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'z') goto yy143; + goto yy3; } } yy1408: YYDEBUG(1408, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'A') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; } else { if (yych <= '`') { - if (yych <= 'Z') goto yy145; - goto yy4; + if (yych <= 'Z') goto yy144; + goto yy3; } else { if (yych <= 'a') goto yy1409; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 'z') goto yy144; + goto yy3; } } yy1409: YYDEBUG(1409, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'X') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych <= 'Y') goto yy173; - if (yych == 'y') goto yy173; - goto yy4; + if (yych <= 'Y') goto yy172; + if (yych == 'y') goto yy172; + goto yy3; } yy1410: YYDEBUG(1410, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'A') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; goto yy1418; } else { if (yych <= '`') { - if (yych <= 'Z') goto yy143; - goto yy4; + if (yych <= 'Z') goto yy142; + goto yy3; } else { if (yych <= 'a') goto yy1418; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 'z') goto yy142; + goto yy3; } } yy1411: @@ -21658,21 +21656,21 @@ yy1411: yych = *++YYCURSOR; if (yych <= 'O') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'N') goto yy143; + if (yych <= '@') goto yy3; + if (yych <= 'N') goto yy142; } } else { if (yych <= 'n') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy3; + goto yy142; } else { if (yych <= 'o') goto yy1412; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 'z') goto yy142; + goto yy3; } } yy1412: @@ -21680,21 +21678,21 @@ yy1412: yych = *++YYCURSOR; if (yych <= 'R') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'Q') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'Q') goto yy143; } } else { if (yych <= 'q') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { if (yych <= 'r') goto yy1413; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'z') goto yy143; + goto yy3; } } yy1413: @@ -21702,21 +21700,21 @@ yy1413: yych = *++YYCURSOR; if (yych <= 'R') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'Q') goto yy145; + if (yych <= '@') goto yy3; + if (yych <= 'Q') goto yy144; } } else { if (yych <= 'q') { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - goto yy145; + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy3; + goto yy144; } else { if (yych <= 'r') goto yy1414; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 'z') goto yy144; + goto yy3; } } yy1414: @@ -21724,17 +21722,17 @@ yy1414: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'N') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { if (yych <= 'O') goto yy1415; - if (yych != 'o') goto yy4; + if (yych != 'o') goto yy3; } yy1415: YYDEBUG(1415, *YYCURSOR); yych = *++YYCURSOR; if (yych == 'W') goto yy1416; - if (yych != 'w') goto yy57; + if (yych != 'w') goto yy56; yy1416: YYDEBUG(1416, *YYCURSOR); ++YYCURSOR; @@ -21755,32 +21753,32 @@ yy1418: yych = *++YYCURSOR; if (yych <= 'Y') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'X') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'X') goto yy143; } } else { if (yych <= 'x') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { if (yych <= 'y') goto yy1419; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'z') goto yy143; + goto yy3; } } yy1419: YYDEBUG(1419, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '@') { - if (yych == ')') goto yy140; + if (yych == ')') goto yy139; } else { - if (yych <= 'Z') goto yy145; + if (yych <= 'Z') goto yy144; if (yych <= '`') goto yy1420; - if (yych <= 'z') goto yy145; + if (yych <= 'z') goto yy144; } yy1420: YYDEBUG(1420, *YYCURSOR); @@ -21797,23 +21795,23 @@ yy1421: yych = *++YYCURSOR; if (yych <= 'S') { if (yych <= '@') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych <= 'Q') goto yy143; + if (yych <= 'Q') goto yy142; if (yych <= 'R') goto yy1427; goto yy1428; } } else { if (yych <= 'q') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy3; + goto yy142; } else { if (yych <= 'r') goto yy1427; if (yych <= 's') goto yy1428; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 'z') goto yy142; + goto yy3; } } yy1422: @@ -21821,21 +21819,21 @@ yy1422: yych = *++YYCURSOR; if (yych <= 'R') { if (yych <= ')') { - if (yych <= '(') goto yy167; - goto yy140; + if (yych <= '(') goto yy166; + goto yy139; } else { - if (yych <= '@') goto yy167; - if (yych <= 'Q') goto yy143; + if (yych <= '@') goto yy166; + if (yych <= 'Q') goto yy142; } } else { if (yych <= 'q') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy167; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy166; + goto yy142; } else { if (yych <= 'r') goto yy1423; - if (yych <= 'z') goto yy143; - goto yy167; + if (yych <= 'z') goto yy142; + goto yy166; } } yy1423: @@ -21843,21 +21841,21 @@ yy1423: yych = *++YYCURSOR; if (yych <= 'S') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'R') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'R') goto yy143; } } else { if (yych <= 'r') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { if (yych <= 's') goto yy1424; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'z') goto yy143; + goto yy3; } } yy1424: @@ -21865,21 +21863,21 @@ yy1424: yych = *++YYCURSOR; if (yych <= 'D') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'C') goto yy145; + if (yych <= '@') goto yy3; + if (yych <= 'C') goto yy144; } } else { if (yych <= 'c') { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - goto yy145; + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy3; + goto yy144; } else { if (yych <= 'd') goto yy1425; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 'z') goto yy144; + goto yy3; } } yy1425: @@ -21887,39 +21885,39 @@ yy1425: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '@') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { if (yych <= 'A') goto yy1426; - if (yych != 'a') goto yy4; + if (yych != 'a') goto yy3; } yy1426: YYDEBUG(1426, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy173; - if (yych == 'y') goto yy173; - goto yy57; + if (yych == 'Y') goto yy172; + if (yych == 'y') goto yy172; + goto yy56; yy1427: YYDEBUG(1427, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'D') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'C') goto yy144; - goto yy1239; + if (yych <= '@') goto yy3; + if (yych <= 'C') goto yy143; + goto yy1238; } } else { if (yych <= 'c') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { - if (yych <= 'd') goto yy1239; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'd') goto yy1238; + if (yych <= 'z') goto yy143; + goto yy3; } } yy1428: @@ -21928,21 +21926,21 @@ yy1428: yych = *(YYMARKER = ++YYCURSOR); if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy4; - goto yy1105; + if (yych <= 0x08) goto yy3; + goto yy1104; } else { - if (yych == ' ') goto yy1105; - goto yy4; + if (yych == ' ') goto yy1104; + goto yy3; } } else { if (yych <= 'Z') { - if (yych <= ')') goto yy140; - if (yych <= '@') goto yy4; - goto yy144; + if (yych <= ')') goto yy139; + if (yych <= '@') goto yy3; + goto yy143; } else { - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy143; + goto yy3; } } yy1429: @@ -21950,21 +21948,21 @@ yy1429: yych = *++YYCURSOR; if (yych <= 'T') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'S') goto yy143; + if (yych <= '@') goto yy3; + if (yych <= 'S') goto yy142; } } else { if (yych <= 's') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy3; + goto yy142; } else { if (yych <= 't') goto yy1430; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 'z') goto yy142; + goto yy3; } } yy1430: @@ -21972,22 +21970,22 @@ yy1430: yych = *++YYCURSOR; if (yych <= 'H') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'G') goto yy144; - goto yy1239; + if (yych <= '@') goto yy3; + if (yych <= 'G') goto yy143; + goto yy1238; } } else { if (yych <= 'g') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { - if (yych <= 'h') goto yy1239; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'h') goto yy1238; + if (yych <= 'z') goto yy143; + goto yy3; } } yy1431: @@ -21996,28 +21994,28 @@ yy1431: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'M') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { if (yych <= 'N') goto yy1429; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'm') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { if (yych <= 'n') goto yy1461; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'z') goto yy146; + goto yy3; } } } @@ -22028,38 +22026,38 @@ yy1432: if (yych <= 'T') { if (yych <= '.') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych == '-') goto yy148; - goto yy4; + if (yych == '-') goto yy147; + goto yy3; } } else { if (yych <= '@') { - if (yych <= '/') goto yy148; - goto yy4; + if (yych <= '/') goto yy147; + goto yy3; } else { if (yych == 'I') goto yy1421; - goto yy142; + goto yy141; } } } else { if (yych <= '`') { if (yych <= 'Z') { if (yych <= 'U') goto yy1422; - goto yy142; + goto yy141; } else { - if (yych == '_') goto yy148; - goto yy4; + if (yych == '_') goto yy147; + goto yy3; } } else { if (yych <= 't') { if (yych == 'i') goto yy1453; - goto yy147; + goto yy146; } else { if (yych <= 'u') goto yy1454; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'z') goto yy146; + goto yy3; } } } @@ -22070,38 +22068,38 @@ yy1433: if (yych <= 'L') { if (yych <= '.') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych == '-') goto yy148; - goto yy4; + if (yych == '-') goto yy147; + goto yy3; } } else { if (yych <= '@') { - if (yych <= '/') goto yy148; - goto yy4; + if (yych <= '/') goto yy147; + goto yy3; } else { if (yych == 'D') goto yy1410; - goto yy142; + goto yy141; } } } else { if (yych <= '`') { if (yych <= 'Z') { if (yych <= 'M') goto yy1411; - goto yy142; + goto yy141; } else { - if (yych == '_') goto yy148; - goto yy4; + if (yych == '_') goto yy147; + goto yy3; } } else { if (yych <= 'l') { if (yych == 'd') goto yy1444; - goto yy147; + goto yy146; } else { if (yych <= 'm') goto yy1445; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'z') goto yy146; + goto yy3; } } } @@ -22111,28 +22109,28 @@ yy1434: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { if (yych <= 'E') goto yy1406; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'd') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { if (yych <= 'e') goto yy1440; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'z') goto yy146; + goto yy3; } } } @@ -22142,28 +22140,28 @@ yy1435: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { if (yych <= 'E') goto yy1402; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'd') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { if (yych <= 'e') goto yy1436; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'z') goto yy146; + goto yy3; } } } @@ -22173,28 +22171,28 @@ yy1436: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'K') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy142; } } else { if (yych <= '_') { if (yych <= 'L') goto yy1403; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'k') { - if (yych <= '`') goto yy4; - goto yy151; + if (yych <= '`') goto yy3; + goto yy150; } else { if (yych <= 'l') goto yy1437; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'z') goto yy150; + goto yy3; } } } @@ -22204,28 +22202,28 @@ yy1437: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'E') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { if (yych <= 'F') goto yy1404; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'e') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { if (yych <= 'f') goto yy1438; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'z') goto yy151; + goto yy3; } } } @@ -22235,28 +22233,28 @@ yy1438: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } } else { if (yych <= '_') { if (yych <= 'T') goto yy1405; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 's') { - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '`') goto yy3; + goto yy152; } else { if (yych <= 't') goto yy1439; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 'z') goto yy152; + goto yy3; } } } @@ -22266,22 +22264,22 @@ yy1439: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'G') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '`') { - if (yych <= 'H') goto yy1206; - if (yych == '_') goto yy148; - goto yy4; + if (yych <= 'H') goto yy1205; + if (yych == '_') goto yy147; + goto yy3; } else { - if (yych == 'h') goto yy1224; - if (yych <= 'z') goto yy154; - goto yy4; + if (yych == 'h') goto yy1223; + if (yych <= 'z') goto yy153; + goto yy3; } } yy1440: @@ -22290,28 +22288,28 @@ yy1440: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'R') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy167; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy166; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy167; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy166; + goto yy142; } } else { if (yych <= '_') { if (yych <= 'S') goto yy1407; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy167; - goto yy148; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy166; + goto yy147; } else { if (yych <= 'r') { - if (yych <= '`') goto yy167; - goto yy151; + if (yych <= '`') goto yy166; + goto yy150; } else { if (yych <= 's') goto yy1441; - if (yych <= 'z') goto yy151; - goto yy167; + if (yych <= 'z') goto yy150; + goto yy166; } } } @@ -22321,28 +22319,28 @@ yy1441: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'C') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { if (yych <= 'D') goto yy1408; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'c') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { if (yych <= 'd') goto yy1442; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'z') goto yy151; + goto yy3; } } } @@ -22352,24 +22350,24 @@ yy1442: yych = *(YYMARKER = ++YYCURSOR); if (yych <= '@') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '_') { if (yych <= 'A') goto yy1409; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { - if (yych <= '`') goto yy4; + if (yych <= '`') goto yy3; if (yych <= 'a') goto yy1443; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 'z') goto yy152; + goto yy3; } } yy1443: @@ -22378,22 +22376,22 @@ yy1443: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'X') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '`') { - if (yych <= 'Y') goto yy173; - if (yych == '_') goto yy148; - goto yy4; + if (yych <= 'Y') goto yy172; + if (yych == '_') goto yy147; + goto yy3; } else { - if (yych == 'y') goto yy186; - if (yych <= 'z') goto yy154; - goto yy4; + if (yych == 'y') goto yy185; + if (yych <= 'z') goto yy153; + goto yy3; } } yy1444: @@ -22402,24 +22400,24 @@ yy1444: yych = *(YYMARKER = ++YYCURSOR); if (yych <= '@') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '_') { if (yych <= 'A') goto yy1418; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { - if (yych <= '`') goto yy4; + if (yych <= '`') goto yy3; if (yych <= 'a') goto yy1451; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'z') goto yy150; + goto yy3; } } yy1445: @@ -22428,28 +22426,28 @@ yy1445: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'N') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy142; } } else { if (yych <= '_') { if (yych <= 'O') goto yy1412; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'n') { - if (yych <= '`') goto yy4; - goto yy151; + if (yych <= '`') goto yy3; + goto yy150; } else { if (yych <= 'o') goto yy1446; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'z') goto yy150; + goto yy3; } } } @@ -22459,28 +22457,28 @@ yy1446: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'Q') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { if (yych <= 'R') goto yy1413; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'q') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { if (yych <= 'r') goto yy1447; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'z') goto yy151; + goto yy3; } } } @@ -22490,28 +22488,28 @@ yy1447: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'Q') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } } else { if (yych <= '_') { if (yych <= 'R') goto yy1414; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'q') { - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '`') goto yy3; + goto yy152; } else { if (yych <= 'r') goto yy1448; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 'z') goto yy152; + goto yy3; } } } @@ -22521,41 +22519,41 @@ yy1448: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'N') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '`') { if (yych <= 'O') goto yy1415; - if (yych == '_') goto yy148; - goto yy4; + if (yych == '_') goto yy147; + goto yy3; } else { if (yych == 'o') goto yy1449; - if (yych <= 'z') goto yy154; - goto yy4; + if (yych <= 'z') goto yy153; + goto yy3; } } yy1449: YYDEBUG(1449, *YYCURSOR); yych = *++YYCURSOR; if (yych == 'W') goto yy1416; - if (yych != 'w') goto yy155; + if (yych != 'w') goto yy154; YYDEBUG(1450, *YYCURSOR); yyaccept = 29; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 16) { - goto yy154; + goto yy153; } if (yych <= '.') { - if (yych == '-') goto yy148; + if (yych == '-') goto yy147; goto yy1417; } else { - if (yych <= '/') goto yy148; - if (yych == '_') goto yy148; + if (yych <= '/') goto yy147; + if (yych == '_') goto yy147; goto yy1417; } yy1451: @@ -22564,28 +22562,28 @@ yy1451: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'X') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { if (yych <= 'Y') goto yy1419; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'x') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { if (yych <= 'y') goto yy1452; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'z') goto yy151; + goto yy3; } } } @@ -22595,21 +22593,21 @@ yy1452: yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= ',') { - if (yych == ')') goto yy140; + if (yych == ')') goto yy139; goto yy1420; } else { if (yych == '.') goto yy1420; - goto yy148; + goto yy147; } } else { if (yych <= '^') { if (yych <= '@') goto yy1420; - if (yych <= 'Z') goto yy145; + if (yych <= 'Z') goto yy144; goto yy1420; } else { - if (yych <= '_') goto yy148; + if (yych <= '_') goto yy147; if (yych <= '`') goto yy1420; - if (yych <= 'z') goto yy153; + if (yych <= 'z') goto yy152; goto yy1420; } } @@ -22619,16 +22617,16 @@ yy1453: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'R') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { if (yych <= '/') { - if (yych <= '.') goto yy4; - goto yy148; + if (yych <= '.') goto yy3; + goto yy147; } else { - if (yych <= '@') goto yy4; - if (yych <= 'Q') goto yy143; + if (yych <= '@') goto yy3; + if (yych <= 'Q') goto yy142; goto yy1427; } } @@ -22636,19 +22634,19 @@ yy1453: if (yych <= '`') { if (yych <= 'Z') { if (yych <= 'S') goto yy1428; - goto yy143; + goto yy142; } else { - if (yych == '_') goto yy148; - goto yy4; + if (yych == '_') goto yy147; + goto yy3; } } else { if (yych <= 'r') { - if (yych <= 'q') goto yy151; + if (yych <= 'q') goto yy150; goto yy1459; } else { if (yych <= 's') goto yy1460; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'z') goto yy150; + goto yy3; } } } @@ -22658,28 +22656,28 @@ yy1454: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'Q') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy167; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy166; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy167; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy166; + goto yy142; } } else { if (yych <= '_') { if (yych <= 'R') goto yy1423; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy167; - goto yy148; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy166; + goto yy147; } else { if (yych <= 'q') { - if (yych <= '`') goto yy167; - goto yy151; + if (yych <= '`') goto yy166; + goto yy150; } else { if (yych <= 'r') goto yy1455; - if (yych <= 'z') goto yy151; - goto yy167; + if (yych <= 'z') goto yy150; + goto yy166; } } } @@ -22689,28 +22687,28 @@ yy1455: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'R') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { if (yych <= 'S') goto yy1424; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'r') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { if (yych <= 's') goto yy1456; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'z') goto yy151; + goto yy3; } } } @@ -22720,28 +22718,28 @@ yy1456: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'C') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } } else { if (yych <= '_') { if (yych <= 'D') goto yy1425; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'c') { - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '`') goto yy3; + goto yy152; } else { if (yych <= 'd') goto yy1457; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 'z') goto yy152; + goto yy3; } } } @@ -22751,59 +22749,59 @@ yy1457: yych = *(YYMARKER = ++YYCURSOR); if (yych <= '@') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '_') { if (yych <= 'A') goto yy1426; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= '^') goto yy3; + goto yy147; } else { - if (yych <= '`') goto yy4; + if (yych <= '`') goto yy3; if (yych <= 'a') goto yy1458; - if (yych <= 'z') goto yy154; - goto yy4; + if (yych <= 'z') goto yy153; + goto yy3; } } yy1458: YYDEBUG(1458, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy173; - if (yych == 'y') goto yy186; - goto yy155; + if (yych == 'Y') goto yy172; + if (yych == 'y') goto yy185; + goto yy154; yy1459: YYDEBUG(1459, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'C') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { - if (yych <= 'D') goto yy1239; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'D') goto yy1238; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'c') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { - if (yych <= 'd') goto yy1268; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'd') goto yy1267; + if (yych <= 'z') goto yy151; + goto yy3; } } } @@ -22813,27 +22811,27 @@ yy1460: yych = *(YYMARKER = ++YYCURSOR); if (yych <= '-') { if (yych <= ' ') { - if (yych == '\t') goto yy1105; - if (yych <= 0x1F) goto yy4; - goto yy1105; + if (yych == '\t') goto yy1104; + if (yych <= 0x1F) goto yy3; + goto yy1104; } else { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } } else { if (yych <= 'Z') { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } else { if (yych <= '_') { - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= '^') goto yy3; + goto yy147; } else { - if (yych <= '`') goto yy4; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= '`') goto yy3; + if (yych <= 'z') goto yy151; + goto yy3; } } } @@ -22843,28 +22841,28 @@ yy1461: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy142; } } else { if (yych <= '_') { if (yych <= 'T') goto yy1430; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 's') { - if (yych <= '`') goto yy4; - goto yy151; + if (yych <= '`') goto yy3; + goto yy150; } else { if (yych <= 't') goto yy1462; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'z') goto yy150; + goto yy3; } } } @@ -22874,28 +22872,28 @@ yy1462: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'G') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { - if (yych <= 'H') goto yy1239; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'H') goto yy1238; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'g') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { - if (yych <= 'h') goto yy1268; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'h') goto yy1267; + if (yych <= 'z') goto yy151; + goto yy3; } } } @@ -22904,23 +22902,23 @@ yy1463: yych = *++YYCURSOR; if (yych <= 'Y') { if (yych <= '@') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { if (yych == 'R') goto yy1475; - if (yych <= 'X') goto yy142; + if (yych <= 'X') goto yy141; goto yy1476; } } else { if (yych <= 'r') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - if (yych <= 'q') goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + if (yych <= 'q') goto yy141; goto yy1475; } else { if (yych == 'y') goto yy1476; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'z') goto yy141; + goto yy3; } } yy1464: @@ -22928,22 +22926,22 @@ yy1464: yych = *++YYCURSOR; if (yych <= 'D') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'C') goto yy142; + if (yych <= '@') goto yy3; + if (yych <= 'C') goto yy141; goto yy1469; } } else { if (yych <= 'c') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { if (yych <= 'd') goto yy1469; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'z') goto yy141; + goto yy3; } } yy1465: @@ -22951,21 +22949,21 @@ yy1465: yych = *++YYCURSOR; if (yych <= 'N') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'M') goto yy142; + if (yych <= '@') goto yy3; + if (yych <= 'M') goto yy141; } } else { if (yych <= 'm') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { if (yych <= 'n') goto yy1466; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'z') goto yy141; + goto yy3; } } yy1466: @@ -22973,37 +22971,37 @@ yy1466: yych = *++YYCURSOR; if (yych <= 'D') { if (yych <= ')') { - if (yych <= '(') goto yy167; - goto yy140; + if (yych <= '(') goto yy166; + goto yy139; } else { - if (yych <= '@') goto yy167; - if (yych <= 'C') goto yy143; + if (yych <= '@') goto yy166; + if (yych <= 'C') goto yy142; } } else { if (yych <= 'c') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy167; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy166; + goto yy142; } else { if (yych <= 'd') goto yy1467; - if (yych <= 'z') goto yy143; - goto yy167; + if (yych <= 'z') goto yy142; + goto yy166; } } yy1467: YYDEBUG(1467, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'A') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; } else { if (yych <= '`') { - if (yych <= 'Z') goto yy144; - goto yy4; + if (yych <= 'Z') goto yy143; + goto yy3; } else { if (yych <= 'a') goto yy1468; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'z') goto yy143; + goto yy3; } } yy1468: @@ -23011,22 +23009,22 @@ yy1468: yych = *++YYCURSOR; if (yych <= 'Y') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'X') goto yy145; - goto yy1236; + if (yych <= '@') goto yy3; + if (yych <= 'X') goto yy144; + goto yy1235; } } else { if (yych <= 'x') { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - goto yy145; + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy3; + goto yy144; } else { - if (yych <= 'y') goto yy1236; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 'y') goto yy1235; + if (yych <= 'z') goto yy144; + goto yy3; } } yy1469: @@ -23034,21 +23032,21 @@ yy1469: yych = *++YYCURSOR; if (yych <= 'N') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'M') goto yy143; + if (yych <= '@') goto yy3; + if (yych <= 'M') goto yy142; } } else { if (yych <= 'm') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy3; + goto yy142; } else { if (yych <= 'n') goto yy1470; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 'z') goto yy142; + goto yy3; } } yy1470: @@ -23056,21 +23054,21 @@ yy1470: yych = *++YYCURSOR; if (yych <= 'I') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'H') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'H') goto yy143; } } else { if (yych <= 'h') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { if (yych <= 'i') goto yy1471; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'z') goto yy143; + goto yy3; } } yy1471: @@ -23078,21 +23076,21 @@ yy1471: yych = *++YYCURSOR; if (yych <= 'G') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'F') goto yy145; + if (yych <= '@') goto yy3; + if (yych <= 'F') goto yy144; } } else { if (yych <= 'f') { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - goto yy145; + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy3; + goto yy144; } else { if (yych <= 'g') goto yy1472; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 'z') goto yy144; + goto yy3; } } yy1472: @@ -23100,17 +23098,17 @@ yy1472: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'G') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { if (yych <= 'H') goto yy1473; - if (yych != 'h') goto yy4; + if (yych != 'h') goto yy3; } yy1473: YYDEBUG(1473, *YYCURSOR); yych = *++YYCURSOR; if (yych == 'T') goto yy1474; - if (yych != 't') goto yy57; + if (yych != 't') goto yy56; yy1474: YYDEBUG(1474, *YYCURSOR); yych = *++YYCURSOR; @@ -23122,39 +23120,39 @@ yy1475: if (yych <= '/') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= ',') { - if (yych <= ')') goto yy140; - goto yy194; + if (yych <= ')') goto yy139; + goto yy193; } else { - if (yych <= '-') goto yy197; - if (yych <= '.') goto yy196; - goto yy194; + if (yych <= '-') goto yy196; + if (yych <= '.') goto yy195; + goto yy193; } } } else { if (yych <= 'Z') { if (yych <= '@') { - if (yych <= '9') goto yy196; - goto yy194; + if (yych <= '9') goto yy195; + goto yy193; } else { if (yych == 'C') goto yy1477; - goto yy143; + goto yy142; } } else { if (yych <= 'b') { - if (yych <= '`') goto yy194; - goto yy143; + if (yych <= '`') goto yy193; + goto yy142; } else { if (yych <= 'c') goto yy1477; - if (yych <= 'z') goto yy143; - goto yy194; + if (yych <= 'z') goto yy142; + goto yy193; } } } @@ -23164,24 +23162,24 @@ yy1476: yych = *(YYMARKER = ++YYCURSOR); if (yych <= '-') { if (yych <= ' ') { - if (yych == '\t') goto yy196; - if (yych <= 0x1F) goto yy194; - goto yy196; + if (yych == '\t') goto yy195; + if (yych <= 0x1F) goto yy193; + goto yy195; } else { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy194; - goto yy197; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy193; + goto yy196; } } else { if (yych <= '@') { - if (yych == '/') goto yy194; - if (yych <= '9') goto yy196; - goto yy194; + if (yych == '/') goto yy193; + if (yych <= '9') goto yy195; + goto yy193; } else { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy194; - if (yych <= 'z') goto yy143; - goto yy194; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy193; + if (yych <= 'z') goto yy142; + goto yy193; } } yy1477: @@ -23189,22 +23187,22 @@ yy1477: yych = *++YYCURSOR; if (yych <= 'H') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'G') goto yy144; - goto yy396; + if (yych <= '@') goto yy3; + if (yych <= 'G') goto yy143; + goto yy395; } } else { if (yych <= 'g') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { - if (yych <= 'h') goto yy396; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'h') goto yy395; + if (yych <= 'z') goto yy143; + goto yy3; } } yy1478: @@ -23214,38 +23212,38 @@ yy1478: if (yych <= 'X') { if (yych <= '.') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych == '-') goto yy148; - goto yy4; + if (yych == '-') goto yy147; + goto yy3; } } else { if (yych <= '@') { - if (yych <= '/') goto yy148; - goto yy4; + if (yych <= '/') goto yy147; + goto yy3; } else { if (yych == 'R') goto yy1475; - goto yy142; + goto yy141; } } } else { if (yych <= '`') { if (yych <= 'Z') { if (yych <= 'Y') goto yy1476; - goto yy142; + goto yy141; } else { - if (yych == '_') goto yy148; - goto yy4; + if (yych == '_') goto yy147; + goto yy3; } } else { if (yych <= 'x') { if (yych == 'r') goto yy1490; - goto yy147; + goto yy146; } else { if (yych <= 'y') goto yy1491; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'z') goto yy146; + goto yy3; } } } @@ -23255,28 +23253,28 @@ yy1479: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'C') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { if (yych <= 'D') goto yy1469; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'c') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { if (yych <= 'd') goto yy1484; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'z') goto yy146; + goto yy3; } } } @@ -23286,28 +23284,28 @@ yy1480: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'M') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { if (yych <= 'N') goto yy1466; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'm') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { if (yych <= 'n') goto yy1481; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'z') goto yy146; + goto yy3; } } } @@ -23317,28 +23315,28 @@ yy1481: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'C') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy167; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy166; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy167; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy166; + goto yy142; } } else { if (yych <= '_') { if (yych <= 'D') goto yy1467; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy167; - goto yy148; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy166; + goto yy147; } else { if (yych <= 'c') { - if (yych <= '`') goto yy167; - goto yy151; + if (yych <= '`') goto yy166; + goto yy150; } else { if (yych <= 'd') goto yy1482; - if (yych <= 'z') goto yy151; - goto yy167; + if (yych <= 'z') goto yy150; + goto yy166; } } } @@ -23348,24 +23346,24 @@ yy1482: yych = *(YYMARKER = ++YYCURSOR); if (yych <= '@') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '_') { if (yych <= 'A') goto yy1468; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { - if (yych <= '`') goto yy4; + if (yych <= '`') goto yy3; if (yych <= 'a') goto yy1483; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'z') goto yy151; + goto yy3; } } yy1483: @@ -23374,28 +23372,28 @@ yy1483: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'X') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } } else { if (yych <= '_') { - if (yych <= 'Y') goto yy1236; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Y') goto yy1235; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'x') { - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '`') goto yy3; + goto yy152; } else { - if (yych <= 'y') goto yy1265; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 'y') goto yy1264; + if (yych <= 'z') goto yy152; + goto yy3; } } } @@ -23405,28 +23403,28 @@ yy1484: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'M') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy142; } } else { if (yych <= '_') { if (yych <= 'N') goto yy1470; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'm') { - if (yych <= '`') goto yy4; - goto yy151; + if (yych <= '`') goto yy3; + goto yy150; } else { if (yych <= 'n') goto yy1485; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'z') goto yy150; + goto yy3; } } } @@ -23436,28 +23434,28 @@ yy1485: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'H') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { if (yych <= 'I') goto yy1471; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'h') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { if (yych <= 'i') goto yy1486; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'z') goto yy151; + goto yy3; } } } @@ -23467,28 +23465,28 @@ yy1486: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'F') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } } else { if (yych <= '_') { if (yych <= 'G') goto yy1472; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'f') { - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '`') goto yy3; + goto yy152; } else { if (yych <= 'g') goto yy1487; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 'z') goto yy152; + goto yy3; } } } @@ -23498,41 +23496,41 @@ yy1487: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'G') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '`') { if (yych <= 'H') goto yy1473; - if (yych == '_') goto yy148; - goto yy4; + if (yych == '_') goto yy147; + goto yy3; } else { if (yych == 'h') goto yy1488; - if (yych <= 'z') goto yy154; - goto yy4; + if (yych <= 'z') goto yy153; + goto yy3; } } yy1488: YYDEBUG(1488, *YYCURSOR); yych = *++YYCURSOR; if (yych == 'T') goto yy1474; - if (yych != 't') goto yy155; + if (yych != 't') goto yy154; YYDEBUG(1489, *YYCURSOR); yyaccept = 30; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 16) { - goto yy154; + goto yy153; } if (yych <= '.') { - if (yych == '-') goto yy148; + if (yych == '-') goto yy147; goto yy1420; } else { - if (yych <= '/') goto yy148; - if (yych == '_') goto yy148; + if (yych <= '/') goto yy147; + if (yych == '_') goto yy147; goto yy1420; } yy1490: @@ -23542,41 +23540,41 @@ yy1490: if (yych <= '9') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= '-') { - if (yych <= ')') goto yy140; - if (yych <= ',') goto yy194; - goto yy372; + if (yych <= ')') goto yy139; + if (yych <= ',') goto yy193; + goto yy371; } else { - if (yych == '/') goto yy148; - goto yy196; + if (yych == '/') goto yy147; + goto yy195; } } } else { if (yych <= '^') { if (yych <= 'B') { - if (yych <= '@') goto yy194; - goto yy143; + if (yych <= '@') goto yy193; + goto yy142; } else { if (yych <= 'C') goto yy1477; - if (yych <= 'Z') goto yy143; - goto yy194; + if (yych <= 'Z') goto yy142; + goto yy193; } } else { if (yych <= 'b') { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy194; - goto yy151; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy193; + goto yy150; } else { if (yych <= 'c') goto yy1492; - if (yych <= 'z') goto yy151; - goto yy194; + if (yych <= 'z') goto yy150; + goto yy193; } } } @@ -23586,33 +23584,33 @@ yy1491: yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= ' ') { - if (yych == '\t') goto yy196; - if (yych <= 0x1F) goto yy194; - goto yy196; + if (yych == '\t') goto yy195; + if (yych <= 0x1F) goto yy193; + goto yy195; } else { if (yych <= ')') { - if (yych <= '(') goto yy194; - goto yy140; + if (yych <= '(') goto yy193; + goto yy139; } else { - if (yych <= ',') goto yy194; - if (yych <= '-') goto yy372; - goto yy196; + if (yych <= ',') goto yy193; + if (yych <= '-') goto yy371; + goto yy195; } } } else { if (yych <= 'Z') { - if (yych <= '/') goto yy148; - if (yych <= '9') goto yy196; - if (yych <= '@') goto yy194; - goto yy143; + if (yych <= '/') goto yy147; + if (yych <= '9') goto yy195; + if (yych <= '@') goto yy193; + goto yy142; } else { if (yych <= '_') { - if (yych <= '^') goto yy194; - goto yy148; + if (yych <= '^') goto yy193; + goto yy147; } else { - if (yych <= '`') goto yy194; - if (yych <= 'z') goto yy151; - goto yy194; + if (yych <= '`') goto yy193; + if (yych <= 'z') goto yy150; + goto yy193; } } } @@ -23622,28 +23620,28 @@ yy1492: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'G') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { - if (yych <= 'H') goto yy396; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'H') goto yy395; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'g') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { - if (yych <= 'h') goto yy407; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'h') goto yy406; + if (yych <= 'z') goto yy151; + goto yy3; } } } @@ -23652,29 +23650,29 @@ yy1493: yych = *++YYCURSOR; if (yych <= 'W') { if (yych <= 'N') { - if (yych == ')') goto yy140; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == ')') goto yy139; + if (yych <= '@') goto yy3; + goto yy141; } else { if (yych <= 'O') goto yy1501; - if (yych <= 'U') goto yy142; + if (yych <= 'U') goto yy141; if (yych <= 'V') goto yy1502; goto yy1499; } } else { if (yych <= 'o') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - if (yych <= 'n') goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + if (yych <= 'n') goto yy141; goto yy1501; } else { if (yych <= 'v') { - if (yych <= 'u') goto yy142; + if (yych <= 'u') goto yy141; goto yy1502; } else { if (yych <= 'w') goto yy1499; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'z') goto yy141; + goto yy3; } } } @@ -23683,22 +23681,22 @@ yy1494: yych = *++YYCURSOR; if (yych <= 'X') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'W') goto yy142; + if (yych <= '@') goto yy3; + if (yych <= 'W') goto yy141; goto yy1498; } } else { if (yych <= 'w') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { if (yych <= 'x') goto yy1498; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'z') goto yy141; + goto yy3; } } yy1495: @@ -23706,21 +23704,21 @@ yy1495: yych = *++YYCURSOR; if (yych <= 'N') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'M') goto yy142; + if (yych <= '@') goto yy3; + if (yych <= 'M') goto yy141; } } else { if (yych <= 'm') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { if (yych <= 'n') goto yy1496; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'z') goto yy141; + goto yy3; } } yy1496: @@ -23728,21 +23726,21 @@ yy1496: yych = *++YYCURSOR; if (yych <= 'T') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'S') goto yy143; + if (yych <= '@') goto yy3; + if (yych <= 'S') goto yy142; } } else { if (yych <= 's') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy3; + goto yy142; } else { if (yych <= 't') goto yy1497; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 'z') goto yy142; + goto yy3; } } yy1497: @@ -23750,22 +23748,22 @@ yy1497: yych = *++YYCURSOR; if (yych <= 'H') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'G') goto yy144; - goto yy1239; + if (yych <= '@') goto yy3; + if (yych <= 'G') goto yy143; + goto yy1238; } } else { if (yych <= 'g') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { - if (yych <= 'h') goto yy1239; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'h') goto yy1238; + if (yych <= 'z') goto yy143; + goto yy3; } } yy1498: @@ -23773,33 +23771,33 @@ yy1498: yych = *++YYCURSOR; if (yych <= 'T') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'S') goto yy143; + if (yych <= '@') goto yy3; + if (yych <= 'S') goto yy142; goto yy1428; } } else { if (yych <= 's') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy3; + goto yy142; } else { if (yych <= 't') goto yy1428; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 'z') goto yy142; + goto yy3; } } yy1499: YYDEBUG(1499, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '@') { - if (yych == ')') goto yy140; + if (yych == ')') goto yy139; } else { - if (yych <= 'Z') goto yy143; + if (yych <= 'Z') goto yy142; if (yych <= '`') goto yy1500; - if (yych <= 'z') goto yy143; + if (yych <= 'z') goto yy142; } yy1500: YYDEBUG(1500, *YYCURSOR); @@ -23815,22 +23813,22 @@ yy1501: yych = *++YYCURSOR; if (yych <= 'N') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'M') goto yy143; + if (yych <= '@') goto yy3; + if (yych <= 'M') goto yy142; goto yy1507; } } else { if (yych <= 'm') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy3; + goto yy142; } else { if (yych <= 'n') goto yy1507; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 'z') goto yy142; + goto yy3; } } yy1502: @@ -23840,38 +23838,38 @@ yy1502: if (yych <= '/') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= ',') { - if (yych <= ')') goto yy140; - goto yy194; + if (yych <= ')') goto yy139; + goto yy193; } else { - if (yych <= '-') goto yy197; - if (yych <= '.') goto yy196; - goto yy194; + if (yych <= '-') goto yy196; + if (yych <= '.') goto yy195; + goto yy193; } } } else { if (yych <= 'Z') { if (yych <= '@') { - if (yych <= '9') goto yy196; - goto yy194; + if (yych <= '9') goto yy195; + goto yy193; } else { - if (yych != 'E') goto yy143; + if (yych != 'E') goto yy142; } } else { if (yych <= 'd') { - if (yych <= '`') goto yy194; - goto yy143; + if (yych <= '`') goto yy193; + goto yy142; } else { if (yych <= 'e') goto yy1503; - if (yych <= 'z') goto yy143; - goto yy194; + if (yych <= 'z') goto yy142; + goto yy193; } } } @@ -23880,21 +23878,21 @@ yy1503: yych = *++YYCURSOR; if (yych <= 'M') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'L') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'L') goto yy143; } } else { if (yych <= 'l') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { if (yych <= 'm') goto yy1504; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'z') goto yy143; + goto yy3; } } yy1504: @@ -23902,21 +23900,21 @@ yy1504: yych = *++YYCURSOR; if (yych <= 'B') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'A') goto yy145; + if (yych <= '@') goto yy3; + if (yych <= 'A') goto yy144; } } else { if (yych <= 'a') { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - goto yy145; + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy3; + goto yy144; } else { if (yych <= 'b') goto yy1505; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 'z') goto yy144; + goto yy3; } } yy1505: @@ -23924,27 +23922,27 @@ yy1505: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { if (yych <= 'E') goto yy1506; - if (yych != 'e') goto yy4; + if (yych != 'e') goto yy3; } yy1506: YYDEBUG(1506, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy206; - if (yych == 'r') goto yy206; - goto yy57; + if (yych == 'R') goto yy205; + if (yych == 'r') goto yy205; + goto yy56; yy1507: YYDEBUG(1507, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '@') { - if (yych == ')') goto yy140; + if (yych == ')') goto yy139; } else { - if (yych <= 'Z') goto yy144; + if (yych <= 'Z') goto yy143; if (yych <= '`') goto yy1508; - if (yych <= 'z') goto yy144; + if (yych <= 'z') goto yy143; } yy1508: YYDEBUG(1508, *YYCURSOR); @@ -23965,20 +23963,20 @@ yy1509: if (yych <= 'V') { if (yych <= '.') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych == '-') goto yy148; - goto yy4; + if (yych == '-') goto yy147; + goto yy3; } } else { if (yych <= 'N') { - if (yych <= '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych <= '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } else { if (yych <= 'O') goto yy1501; - if (yych <= 'U') goto yy142; + if (yych <= 'U') goto yy141; goto yy1502; } } @@ -23986,22 +23984,22 @@ yy1509: if (yych <= 'n') { if (yych <= '^') { if (yych <= 'W') goto yy1499; - if (yych <= 'Z') goto yy142; - goto yy4; + if (yych <= 'Z') goto yy141; + goto yy3; } else { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } } else { if (yych <= 'v') { if (yych <= 'o') goto yy1516; - if (yych <= 'u') goto yy147; + if (yych <= 'u') goto yy146; goto yy1517; } else { if (yych <= 'w') goto yy1515; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'z') goto yy146; + goto yy3; } } } @@ -24011,28 +24009,28 @@ yy1510: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'W') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { if (yych <= 'X') goto yy1498; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'w') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { if (yych <= 'x') goto yy1514; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'z') goto yy146; + goto yy3; } } } @@ -24042,28 +24040,28 @@ yy1511: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'M') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { if (yych <= 'N') goto yy1496; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'm') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { if (yych <= 'n') goto yy1512; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'z') goto yy146; + goto yy3; } } } @@ -24073,28 +24071,28 @@ yy1512: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy142; } } else { if (yych <= '_') { if (yych <= 'T') goto yy1497; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 's') { - if (yych <= '`') goto yy4; - goto yy151; + if (yych <= '`') goto yy3; + goto yy150; } else { if (yych <= 't') goto yy1513; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'z') goto yy150; + goto yy3; } } } @@ -24104,28 +24102,28 @@ yy1513: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'G') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { - if (yych <= 'H') goto yy1239; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'H') goto yy1238; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'g') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { - if (yych <= 'h') goto yy1268; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'h') goto yy1267; + if (yych <= 'z') goto yy151; + goto yy3; } } } @@ -24135,28 +24133,28 @@ yy1514: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy142; } } else { if (yych <= '_') { if (yych <= 'T') goto yy1428; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 's') { - if (yych <= '`') goto yy4; - goto yy151; + if (yych <= '`') goto yy3; + goto yy150; } else { if (yych <= 't') goto yy1460; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'z') goto yy150; + goto yy3; } } } @@ -24166,21 +24164,21 @@ yy1515: yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= ',') { - if (yych == ')') goto yy140; + if (yych == ')') goto yy139; goto yy1500; } else { if (yych == '.') goto yy1500; - goto yy148; + goto yy147; } } else { if (yych <= '^') { if (yych <= '@') goto yy1500; - if (yych <= 'Z') goto yy143; + if (yych <= 'Z') goto yy142; goto yy1500; } else { - if (yych <= '_') goto yy148; + if (yych <= '_') goto yy147; if (yych <= '`') goto yy1500; - if (yych <= 'z') goto yy151; + if (yych <= 'z') goto yy150; goto yy1500; } } @@ -24190,28 +24188,28 @@ yy1516: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'M') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy142; } } else { if (yych <= '_') { if (yych <= 'N') goto yy1507; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'm') { - if (yych <= '`') goto yy4; - goto yy151; + if (yych <= '`') goto yy3; + goto yy150; } else { if (yych <= 'n') goto yy1522; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'z') goto yy150; + goto yy3; } } } @@ -24222,41 +24220,41 @@ yy1517: if (yych <= '9') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy194; - goto yy196; + if (yych <= 0x08) goto yy193; + goto yy195; } else { - if (yych == ' ') goto yy196; - goto yy194; + if (yych == ' ') goto yy195; + goto yy193; } } else { if (yych <= '-') { - if (yych <= ')') goto yy140; - if (yych <= ',') goto yy194; - goto yy372; + if (yych <= ')') goto yy139; + if (yych <= ',') goto yy193; + goto yy371; } else { - if (yych == '/') goto yy148; - goto yy196; + if (yych == '/') goto yy147; + goto yy195; } } } else { if (yych <= '^') { if (yych <= 'D') { - if (yych <= '@') goto yy194; - goto yy143; + if (yych <= '@') goto yy193; + goto yy142; } else { if (yych <= 'E') goto yy1503; - if (yych <= 'Z') goto yy143; - goto yy194; + if (yych <= 'Z') goto yy142; + goto yy193; } } else { if (yych <= 'd') { - if (yych <= '_') goto yy148; - if (yych <= '`') goto yy194; - goto yy151; + if (yych <= '_') goto yy147; + if (yych <= '`') goto yy193; + goto yy150; } else { if (yych <= 'e') goto yy1518; - if (yych <= 'z') goto yy151; - goto yy194; + if (yych <= 'z') goto yy150; + goto yy193; } } } @@ -24266,28 +24264,28 @@ yy1518: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'L') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { if (yych <= 'M') goto yy1504; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'l') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { if (yych <= 'm') goto yy1519; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'z') goto yy151; + goto yy3; } } } @@ -24297,28 +24295,28 @@ yy1519: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'A') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } } else { if (yych <= '_') { if (yych <= 'B') goto yy1505; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'a') { - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '`') goto yy3; + goto yy152; } else { if (yych <= 'b') goto yy1520; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 'z') goto yy152; + goto yy3; } } } @@ -24328,51 +24326,51 @@ yy1520: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '`') { if (yych <= 'E') goto yy1506; - if (yych == '_') goto yy148; - goto yy4; + if (yych == '_') goto yy147; + goto yy3; } else { if (yych == 'e') goto yy1521; - if (yych <= 'z') goto yy154; - goto yy4; + if (yych <= 'z') goto yy153; + goto yy3; } } yy1521: YYDEBUG(1521, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy206; - if (yych == 'r') goto yy377; - goto yy155; + if (yych == 'R') goto yy205; + if (yych == 'r') goto yy376; + goto yy154; yy1522: YYDEBUG(1522, *YYCURSOR); yyaccept = 32; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= ',') { - if (yych == ')') goto yy140; + if (yych == ')') goto yy139; goto yy1508; } else { if (yych == '.') goto yy1508; - goto yy148; + goto yy147; } } else { if (yych <= '^') { if (yych <= '@') goto yy1508; - if (yych <= 'Z') goto yy144; + if (yych <= 'Z') goto yy143; goto yy1508; } else { - if (yych <= '_') goto yy148; + if (yych <= '_') goto yy147; if (yych <= '`') goto yy1508; - if (yych <= 'z') goto yy152; + if (yych <= 'z') goto yy151; goto yy1508; } } @@ -24381,21 +24379,21 @@ yy1523: yych = *++YYCURSOR; if (yych <= 'S') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'R') goto yy142; + if (yych <= '@') goto yy3; + if (yych <= 'R') goto yy141; } } else { if (yych <= 'r') { - if (yych <= 'Z') goto yy142; - if (yych <= '`') goto yy4; - goto yy142; + if (yych <= 'Z') goto yy141; + if (yych <= '`') goto yy3; + goto yy141; } else { if (yych <= 's') goto yy1524; - if (yych <= 'z') goto yy142; - goto yy4; + if (yych <= 'z') goto yy141; + goto yy3; } } yy1524: @@ -24403,21 +24401,21 @@ yy1524: yych = *++YYCURSOR; if (yych <= 'T') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'S') goto yy143; + if (yych <= '@') goto yy3; + if (yych <= 'S') goto yy142; } } else { if (yych <= 's') { - if (yych <= 'Z') goto yy143; - if (yych <= '`') goto yy4; - goto yy143; + if (yych <= 'Z') goto yy142; + if (yych <= '`') goto yy3; + goto yy142; } else { if (yych <= 't') goto yy1525; - if (yych <= 'z') goto yy143; - goto yy4; + if (yych <= 'z') goto yy142; + goto yy3; } } yy1525: @@ -24425,21 +24423,21 @@ yy1525: yych = *++YYCURSOR; if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'D') goto yy144; + if (yych <= '@') goto yy3; + if (yych <= 'D') goto yy143; } } else { if (yych <= 'd') { - if (yych <= 'Z') goto yy144; - if (yych <= '`') goto yy4; - goto yy144; + if (yych <= 'Z') goto yy143; + if (yych <= '`') goto yy3; + goto yy143; } else { if (yych <= 'e') goto yy1526; - if (yych <= 'z') goto yy144; - goto yy4; + if (yych <= 'z') goto yy143; + goto yy3; } } yy1526: @@ -24447,21 +24445,21 @@ yy1526: yych = *++YYCURSOR; if (yych <= 'R') { if (yych <= ')') { - if (yych <= '(') goto yy4; - goto yy140; + if (yych <= '(') goto yy3; + goto yy139; } else { - if (yych <= '@') goto yy4; - if (yych <= 'Q') goto yy145; + if (yych <= '@') goto yy3; + if (yych <= 'Q') goto yy144; } } else { if (yych <= 'q') { - if (yych <= 'Z') goto yy145; - if (yych <= '`') goto yy4; - goto yy145; + if (yych <= 'Z') goto yy144; + if (yych <= '`') goto yy3; + goto yy144; } else { if (yych <= 'r') goto yy1527; - if (yych <= 'z') goto yy145; - goto yy4; + if (yych <= 'z') goto yy144; + goto yy3; } } yy1527: @@ -24469,22 +24467,22 @@ yy1527: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'C') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { if (yych <= 'D') goto yy1528; - if (yych != 'd') goto yy4; + if (yych != 'd') goto yy3; } yy1528: YYDEBUG(1528, *YYCURSOR); yych = *++YYCURSOR; if (yych == 'A') goto yy1529; - if (yych != 'a') goto yy57; + if (yych != 'a') goto yy56; yy1529: YYDEBUG(1529, *YYCURSOR); yych = *++YYCURSOR; if (yych == 'Y') goto yy1530; - if (yych != 'y') goto yy57; + if (yych != 'y') goto yy56; yy1530: YYDEBUG(1530, *YYCURSOR); ++YYCURSOR; @@ -24506,28 +24504,28 @@ yy1532: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'R') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy142; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy141; } } else { if (yych <= '_') { if (yych <= 'S') goto yy1524; - if (yych <= 'Z') goto yy142; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy141; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'r') { - if (yych <= '`') goto yy4; - goto yy147; + if (yych <= '`') goto yy3; + goto yy146; } else { if (yych <= 's') goto yy1533; - if (yych <= 'z') goto yy147; - goto yy4; + if (yych <= 'z') goto yy146; + goto yy3; } } } @@ -24537,28 +24535,28 @@ yy1533: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy143; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy142; } } else { if (yych <= '_') { if (yych <= 'T') goto yy1525; - if (yych <= 'Z') goto yy143; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy142; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 's') { - if (yych <= '`') goto yy4; - goto yy151; + if (yych <= '`') goto yy3; + goto yy150; } else { if (yych <= 't') goto yy1534; - if (yych <= 'z') goto yy151; - goto yy4; + if (yych <= 'z') goto yy150; + goto yy3; } } } @@ -24568,28 +24566,28 @@ yy1534: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy144; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy143; } } else { if (yych <= '_') { if (yych <= 'E') goto yy1526; - if (yych <= 'Z') goto yy144; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy143; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'd') { - if (yych <= '`') goto yy4; - goto yy152; + if (yych <= '`') goto yy3; + goto yy151; } else { if (yych <= 'e') goto yy1535; - if (yych <= 'z') goto yy152; - goto yy4; + if (yych <= 'z') goto yy151; + goto yy3; } } } @@ -24599,28 +24597,28 @@ yy1535: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'Q') { if (yych <= '-') { - if (yych == ')') goto yy140; - if (yych <= ',') goto yy4; - goto yy148; + if (yych == ')') goto yy139; + if (yych <= ',') goto yy3; + goto yy147; } else { - if (yych == '/') goto yy148; - if (yych <= '@') goto yy4; - goto yy145; + if (yych == '/') goto yy147; + if (yych <= '@') goto yy3; + goto yy144; } } else { if (yych <= '_') { if (yych <= 'R') goto yy1527; - if (yych <= 'Z') goto yy145; - if (yych <= '^') goto yy4; - goto yy148; + if (yych <= 'Z') goto yy144; + if (yych <= '^') goto yy3; + goto yy147; } else { if (yych <= 'q') { - if (yych <= '`') goto yy4; - goto yy153; + if (yych <= '`') goto yy3; + goto yy152; } else { if (yych <= 'r') goto yy1536; - if (yych <= 'z') goto yy153; - goto yy4; + if (yych <= 'z') goto yy152; + goto yy3; } } } @@ -24630,45 +24628,45 @@ yy1536: yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'C') { if (yych <= ',') { - if (yych == ')') goto yy140; - goto yy4; + if (yych == ')') goto yy139; + goto yy3; } else { - if (yych == '.') goto yy4; - if (yych <= '/') goto yy148; - goto yy4; + if (yych == '.') goto yy3; + if (yych <= '/') goto yy147; + goto yy3; } } else { if (yych <= '`') { if (yych <= 'D') goto yy1528; - if (yych == '_') goto yy148; - goto yy4; + if (yych == '_') goto yy147; + goto yy3; } else { if (yych == 'd') goto yy1537; - if (yych <= 'z') goto yy154; - goto yy4; + if (yych <= 'z') goto yy153; + goto yy3; } } yy1537: YYDEBUG(1537, *YYCURSOR); yych = *++YYCURSOR; if (yych == 'A') goto yy1529; - if (yych != 'a') goto yy155; + if (yych != 'a') goto yy154; YYDEBUG(1538, *YYCURSOR); yych = *++YYCURSOR; if (yych == 'Y') goto yy1530; - if (yych != 'y') goto yy155; + if (yych != 'y') goto yy154; YYDEBUG(1539, *YYCURSOR); yyaccept = 33; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 16) { - goto yy154; + goto yy153; } if (yych <= '.') { - if (yych == '-') goto yy148; + if (yych == '-') goto yy147; goto yy1531; } else { - if (yych <= '/') goto yy148; - if (yych == '_') goto yy148; + if (yych <= '/') goto yy147; + if (yych == '_') goto yy147; goto yy1531; } } diff --git a/ext/date/lib/parse_date.re b/ext/date/lib/parse_date.re index 49f21d151..8ebdf4842 100644 --- a/ext/date/lib/parse_date.re +++ b/ext/date/lib/parse_date.re @@ -966,8 +966,8 @@ mssqltime = hour12 ":" minutelz ":" secondlz [:.] [0-9]+ meridian; isoweekday = year4 "-"? "W" weekofyear "-"? [0-7]; isoweek = year4 "-"? "W" weekofyear; exif = year4 ":" monthlz ":" daylz " " hour24lz ":" minutelz ":" secondlz; -firstdayof = 'first day of'?; -lastdayof = 'last day of'?; +firstdayof = 'first day of'; +lastdayof = 'last day of'; backof = 'back of ' hour24 space? meridian?; frontof = 'front of ' hour24 space? meridian?; diff --git a/ext/date/php_date.c b/ext/date/php_date.c index 595b0b040..4259bf0fc 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -50,7 +50,11 @@ static inline long long php_date_llabs( long long i ) { return i >= 0 ? i : -i; int st = snprintf(s, len, "%lld", i); \ s[st] = '\0'; \ } while (0); +#ifdef HAVE_ATOLL # define DATE_A64I(i, s) i = atoll(s) +#else +# define DATE_A64I(i, s) i = strtoll(s, NULL, 10) +#endif #endif /* {{{ arginfo */ diff --git a/ext/fileinfo/data_file.c b/ext/fileinfo/data_file.c index fba4edd90..15e0fa6a8 100644 --- a/ext/fileinfo/data_file.c +++ b/ext/fileinfo/data_file.c @@ -115198,7 +115198,7 @@ const unsigned char php_magic_database[2606480] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x1B, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5C, 0x73, 0x7B, 0x30, 0x2C, 0x31, 0x30, 0x30, 0x7D, 0x42, 0x45, 0x47, 0x49, 0x4E, 0x5C, 0x73, 0x7B, 0x30, 0x2C, 0x31, 0x30, 0x30, 0x7D, 0x5B, 0x7B, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, diff --git a/ext/fileinfo/libmagic/cdf.c b/ext/fileinfo/libmagic/cdf.c index 429f3b952..2c0a2d9df 100644 --- a/ext/fileinfo/libmagic/cdf.c +++ b/ext/fileinfo/libmagic/cdf.c @@ -820,7 +820,7 @@ cdf_read_property_info(const cdf_stream_t *sst, const cdf_header_t *h, q = (const uint8_t *)(const void *) ((const char *)(const void *)p + ofs - 2 * sizeof(uint32_t)); - if (q > e) { + if (q < p || q > e) { DPRINTF(("Ran of the end %p > %p\n", q, e)); goto out; } diff --git a/ext/fileinfo/libmagic/softmagic.c b/ext/fileinfo/libmagic/softmagic.c index 01e49778b..7e0c8560e 100644 --- a/ext/fileinfo/libmagic/softmagic.c +++ b/ext/fileinfo/libmagic/softmagic.c @@ -58,7 +58,7 @@ private int32_t mprint(struct magic_set *, struct magic *); private int32_t moffset(struct magic_set *, struct magic *); private void mdebug(uint32_t, const char *, size_t); private int mcopy(struct magic_set *, union VALUETYPE *, int, int, - const unsigned char *, uint32_t, size_t, size_t); + const unsigned char *, uint32_t, size_t, struct magic *); private int mconvert(struct magic_set *, struct magic *, int); private int print_sep(struct magic_set *, int); private int handle_annotation(struct magic_set *, struct magic *); @@ -1003,7 +1003,7 @@ mdebug(uint32_t offset, const char *str, size_t len) private int mcopy(struct magic_set *ms, union VALUETYPE *p, int type, int indir, - const unsigned char *s, uint32_t offset, size_t nbytes, size_t linecnt) + const unsigned char *s, uint32_t offset, size_t nbytes, struct magic *m) { /* * Note: FILE_SEARCH and FILE_REGEX do not actually copy @@ -1023,15 +1023,24 @@ mcopy(struct magic_set *ms, union VALUETYPE *p, int type, int indir, const char *last; /* end of search region */ const char *buf; /* start of search region */ const char *end; - size_t lines; + size_t lines, linecnt, bytecnt; + linecnt = m->str_range; + bytecnt = linecnt * 80; + + if (bytecnt == 0) { + bytecnt = 8192; + } + if (bytecnt > nbytes) { + bytecnt = nbytes; + } if (s == NULL) { ms->search.s_len = 0; ms->search.s = NULL; return 0; } buf = RCAST(const char *, s) + offset; - end = last = RCAST(const char *, s) + nbytes; + end = last = RCAST(const char *, s) + bytecnt; /* mget() guarantees buf <= last */ for (lines = linecnt, b = buf; lines && b < end && ((b = CAST(const char *, @@ -1044,7 +1053,7 @@ mcopy(struct magic_set *ms, union VALUETYPE *p, int type, int indir, b++; } if (lines) - last = RCAST(const char *, s) + nbytes; + last = RCAST(const char *, s) + bytecnt; ms->search.s = buf; ms->search.s_len = last - buf; @@ -1118,7 +1127,6 @@ mget(struct magic_set *ms, const unsigned char *s, struct magic *m, int *need_separator, int *returnval) { uint32_t soffset, offset = ms->offset; - uint32_t count = m->str_range; int rv, oneed_separator; char *sbuf, *rbuf; union VALUETYPE *p = &ms->ms_value; @@ -1130,13 +1138,12 @@ mget(struct magic_set *ms, const unsigned char *s, struct magic *m, } if (mcopy(ms, p, m->type, m->flag & INDIR, s, (uint32_t)(offset + o), - (uint32_t)nbytes, count) == -1) + (uint32_t)nbytes, m) == -1) return -1; if ((ms->flags & MAGIC_DEBUG) != 0) { fprintf(stderr, "mget(type=%d, flag=%x, offset=%u, o=%zu, " - "nbytes=%zu, count=%u)\n", m->type, m->flag, offset, o, - nbytes, count); + "nbytes=%zu)\n", m->type, m->flag, offset, o, nbytes); mdebug(offset, (char *)(void *)p, sizeof(union VALUETYPE)); } @@ -1627,7 +1634,7 @@ mget(struct magic_set *ms, const unsigned char *s, struct magic *m, if ((ms->flags & MAGIC_DEBUG) != 0) fprintf(stderr, "indirect +offs=%u\n", offset); } - if (mcopy(ms, p, m->type, 0, s, offset, nbytes, count) == -1) + if (mcopy(ms, p, m->type, 0, s, offset, nbytes, m) == -1) return -1; ms->offset = offset; @@ -2057,7 +2064,7 @@ magiccheck(struct magic_set *ms, struct magic *m) zval *retval; zval *subpats; char *haystack; - + MAKE_STD_ZVAL(retval); ALLOC_INIT_ZVAL(subpats); diff --git a/ext/fileinfo/magicdata.patch b/ext/fileinfo/magicdata.patch index 26d3bbb65..12fbd3ff5 100644 --- a/ext/fileinfo/magicdata.patch +++ b/ext/fileinfo/magicdata.patch @@ -1,4 +1,4 @@ -Patches applied to file sources tree before generating magic.mgc +Patches applied to file 5.14 sources tree before generating magic.mgc and before running create_data_file.php to create data_file.c. @@ -17,14 +17,6 @@ diff --git a/magic/Magdir/commands b/magic/Magdir/commands index 67c3eee..4a7d8dd 100644 --- a/magic/Magdir/commands +++ b/magic/Magdir/commands -@@ -1,6 +1,6 @@ - - #------------------------------------------------------------------------------ --# $File: commands,v 1.44 2013/02/05 15:20:47 christos Exp $ -+# $File: commands,v 1.45 2013/02/06 14:18:52 christos Exp $ - # commands: file(1) magic for various shells and interpreters - # - #0 string/w : shell archive or script for antique kernel text @@ -49,7 +49,7 @@ !:mime text/x-awk 0 string/wt #!\ /usr/bin/awk awk script text executable @@ -36,4 +28,56 @@ index 67c3eee..4a7d8dd 100644 0 string/wt #!\ /bin/rc Plan 9 rc shell script text executable -- 1.8.5.5 +From 0b478f445b6b7540b58af5d1fe583fa9e48fd745 Mon Sep 17 00:00:00 2001 +From: Christos Zoulas <christos@zoulas.com> +Date: Wed, 28 May 2014 19:52:36 +0000 +Subject: [PATCH] further optimize awk by not looking for the BEGIN regex until + we found the BEGIN (Jan Kaluza) + +--- + magic/Magdir/commands | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/magic/Magdir/commands b/magic/Magdir/commands +index bfffdef..26b2869 100644 +--- a/magic/Magdir/commands ++++ b/magic/Magdir/commands +@@ -49,7 +49,8 @@ + !:mime text/x-awk + 0 string/wt #!\ /usr/bin/awk awk script text executable + !:mime text/x-awk +-0 regex =^\\s{0,100}BEGIN\\s{0,100}[{] awk script text ++0 search/16384 BEGIN ++>0 regex =^\\s{0,100}BEGIN\\s{0,100}[{] awk script text + + # AT&T Bell Labs' Plan 9 shell + 0 string/wt #!\ /bin/rc Plan 9 rc shell script text executable +-- +2.0.3 + +From 71a8b6c0d758acb0f73e2e51421a711b5e9d6668 Mon Sep 17 00:00:00 2001 +From: Christos Zoulas <christos@zoulas.com> +Date: Fri, 30 May 2014 16:48:44 +0000 +Subject: [PATCH] Limit regex search for BEGIN to the first 4K of the file. + +--- + magic/Magdir/commands | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/magic/Magdir/commands b/magic/Magdir/commands +index 26b2869..bcd0f43 100644 +--- a/magic/Magdir/commands ++++ b/magic/Magdir/commands +@@ -49,8 +49,7 @@ + !:mime text/x-awk + 0 string/wt #!\ /usr/bin/awk awk script text executable + !:mime text/x-awk +-0 search/16384 BEGIN +->0 regex =^\\s{0,100}BEGIN\\s{0,100}[{] awk script text ++0 regex/4096 =^\\s{0,100}BEGIN\\s{0,100}[{] awk script text + + # AT&T Bell Labs' Plan 9 shell + 0 string/wt #!\ /bin/rc Plan 9 rc shell script text executable +-- +2.0.3 diff --git a/ext/fileinfo/tests/cve-2014-3538.phpt b/ext/fileinfo/tests/cve-2014-3538.phpt new file mode 100644 index 000000000..d6bc9c68c --- /dev/null +++ b/ext/fileinfo/tests/cve-2014-3538.phpt @@ -0,0 +1,35 @@ +--TEST-- +Bug #66731: file: extensive backtraking +--SKIPIF-- +<?php +if (!class_exists('finfo')) + die('skip no fileinfo extension'); +--FILE-- +<?php +$fd = __DIR__.'/cve-2014-3538.data'; + +file_put_contents($fd, + 'try:' . + str_repeat("\n", 1000000)); + +$fi = finfo_open(FILEINFO_NONE); +$t = microtime(true); +var_dump(finfo_file($fi, $fd)); +$t = microtime(true) - $t; +finfo_close($fi); +if ($t < 1) { + echo "Ok\n"; +} else { + printf("Failed, time=%.2f\n", $t); +} + +?> +Done +--CLEAN-- +<?php +@unlink(__DIR__.'/cve-2014-3538.data'); +?> +--EXPECTF-- +string(%d) "%s" +Ok +Done
\ No newline at end of file diff --git a/ext/gd/gd_ctx.c b/ext/gd/gd_ctx.c index bff691fad..eafbab589 100644 --- a/ext/gd/gd_ctx.c +++ b/ext/gd/gd_ctx.c @@ -124,6 +124,11 @@ static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type, RETURN_FALSE; } } else if (Z_TYPE_P(to_zval) == IS_STRING) { + if (CHECK_ZVAL_NULL_PATH(to_zval)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid 2nd parameter, filename must not contain null bytes"); + RETURN_FALSE; + } + stream = php_stream_open_wrapper(Z_STRVAL_P(to_zval), "wb", REPORT_ERRORS|IGNORE_PATH|IGNORE_URL_WIN, NULL); if (stream == NULL) { RETURN_FALSE; diff --git a/ext/gd/libgd/gdxpm.c b/ext/gd/libgd/gdxpm.c index 73f86e5df..b69414e60 100644 --- a/ext/gd/libgd/gdxpm.c +++ b/ext/gd/libgd/gdxpm.c @@ -31,12 +31,17 @@ gdImagePtr gdImageCreateFromXpm (char *filename) if (ret != XpmSuccess) { return 0; } + number = image.ncolors; + for(i = 0; i < number; i++) { + if (!image.colorTable[i].c_color) { + goto done; + } + } if (!(im = gdImageCreate(image.width, image.height))) { goto done; } - number = image.ncolors; colors = (int *) safe_emalloc(number, sizeof(int), 0); for (i = 0; i < number; i++) { switch (strlen (image.colorTable[i].c_color)) { diff --git a/ext/mysqli/tests/066.phpt b/ext/mysqli/tests/066.phpt index 91dfce507..a337e038c 100644 --- a/ext/mysqli/tests/066.phpt +++ b/ext/mysqli/tests/066.phpt @@ -12,6 +12,9 @@ require_once('skipifconnectfailure.inc'); /*** test mysqli_connect 127.0.0.1 ***/ $mysql = new my_mysqli($host, $user, $passwd, $db, $port, $socket); + if (!mysqli_query($mysql, "SET sql_mode=''")) + printf("[002] Cannot set SQL-Mode, [%d] %s\n", mysqli_errno($mysql), mysqli_error($mysql)); + $mysql->query("DROP TABLE IF EXISTS test_warnings"); $mysql->query("CREATE TABLE test_warnings (a int not null) ENGINE=myisam"); diff --git a/ext/odbc/php_odbc.c b/ext/odbc/php_odbc.c index 4d21b3a13..19f9fe4eb 100644 --- a/ext/odbc/php_odbc.c +++ b/ext/odbc/php_odbc.c @@ -780,6 +780,9 @@ PHP_MINIT_FUNCTION(odbc) REGISTER_LONG_CONSTANT("SQL_TYPE_DATE", SQL_TYPE_DATE, CONST_PERSISTENT | CONST_CS); REGISTER_LONG_CONSTANT("SQL_TYPE_TIME", SQL_TYPE_TIME, CONST_PERSISTENT | CONST_CS); REGISTER_LONG_CONSTANT("SQL_TYPE_TIMESTAMP", SQL_TYPE_TIMESTAMP, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("SQL_WCHAR", SQL_WCHAR, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("SQL_WVARCHAR", SQL_WVARCHAR, CONST_PERSISTENT | CONST_CS); + REGISTER_LONG_CONSTANT("SQL_WLONGVARCHAR", SQL_WLONGVARCHAR, CONST_PERSISTENT | CONST_CS); /* * SQLSpecialColumns values @@ -943,9 +946,13 @@ int odbc_bindcols(odbc_result *result TSRMLS_DC) { RETCODE rc; int i; - SQLSMALLINT colnamelen; /* Not used */ - SQLLEN displaysize; + SQLSMALLINT colnamelen; /* Not used */ + SQLLEN displaysize; + SQLUSMALLINT colfieldid; + int charextraalloc; + colfieldid = SQL_COLUMN_DISPLAY_SIZE; + charextraalloc = 0; result->values = (odbc_result_value *) safe_emalloc(sizeof(odbc_result_value), result->numcols, 0); result->longreadlen = ODBCG(defaultlrl); @@ -966,6 +973,9 @@ int odbc_bindcols(odbc_result *result TSRMLS_DC) case SQL_VARBINARY: case SQL_LONGVARBINARY: case SQL_LONGVARCHAR: +#if defined(ODBCVER) && (ODBCVER >= 0x0300) + case SQL_WLONGVARCHAR: +#endif result->values[i].value = NULL; break; @@ -976,15 +986,27 @@ int odbc_bindcols(odbc_result *result TSRMLS_DC) 27, &result->values[i].vallen); break; #endif /* HAVE_ADABAS */ + case SQL_CHAR: + case SQL_VARCHAR: +#if defined(ODBCVER) && (ODBCVER >= 0x0300) + case SQL_WCHAR: + case SQL_WVARCHAR: + colfieldid = SQL_DESC_OCTET_LENGTH; +#else + charextraalloc = 1; +#endif default: - rc = SQLColAttributes(result->stmt, (SQLUSMALLINT)(i+1), SQL_COLUMN_DISPLAY_SIZE, - NULL, 0, NULL, &displaysize); - displaysize = displaysize <= result->longreadlen ? displaysize : - result->longreadlen; + rc = SQLColAttributes(result->stmt, (SQLUSMALLINT)(i+1), colfieldid, + NULL, 0, NULL, &displaysize); /* Workaround for Oracle ODBC Driver bug (#50162) when fetching TIMESTAMP column */ if (result->values[i].coltype == SQL_TIMESTAMP) { displaysize += 3; } + + if (charextraalloc) { + /* Since we don't know the exact # of bytes, allocate extra */ + displaysize *= 4; + } result->values[i].value = (char *)emalloc(displaysize + 1); rc = SQLBindCol(result->stmt, (SQLUSMALLINT)(i+1), SQL_C_CHAR, result->values[i].value, displaysize + 1, &result->values[i].vallen); @@ -1725,6 +1747,9 @@ static void php_odbc_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type) sql_c_type = SQL_C_BINARY; } case SQL_LONGVARCHAR: +#if defined(ODBCVER) && (ODBCVER >= 0x0300) + case SQL_WLONGVARCHAR: +#endif if (IS_SQL_LONG(result->values[i].coltype) && result->longreadlen <= 0) { Z_STRVAL_P(tmp) = STR_EMPTY_ALLOC(); break; @@ -1876,7 +1901,11 @@ PHP_FUNCTION(odbc_fetch_into) break; } if (result->binmode == 1) sql_c_type = SQL_C_BINARY; + case SQL_LONGVARCHAR: +#if defined(ODBCVER) && (ODBCVER >= 0x0300) + case SQL_WLONGVARCHAR: +#endif if (IS_SQL_LONG(result->values[i].coltype) && result->longreadlen <= 0) { Z_STRVAL_P(tmp) = STR_EMPTY_ALLOC(); break; @@ -2095,6 +2124,9 @@ PHP_FUNCTION(odbc_result) break; } case SQL_LONGVARCHAR: +#if defined(ODBCVER) && (ODBCVER >= 0x0300) + case SQL_WLONGVARCHAR: +#endif if (IS_SQL_LONG(result->values[field_ind].coltype)) { if (result->longreadlen <= 0) { break; @@ -2132,7 +2164,11 @@ PHP_FUNCTION(odbc_result) } /* Reduce fieldlen by 1 if we have char data. One day we might have binary strings... */ - if (result->values[field_ind].coltype == SQL_LONGVARCHAR) { + if ((result->values[field_ind].coltype == SQL_LONGVARCHAR) +#if defined(ODBCVER) && (ODBCVER >= 0x0300) + || (result->values[field_ind].coltype == SQL_WLONGVARCHAR) +#endif + ) { fieldsize -= 1; } /* Don't duplicate result, saves one emalloc. @@ -2248,6 +2284,9 @@ PHP_FUNCTION(odbc_result_all) } if (result->binmode <= 1) sql_c_type = SQL_C_BINARY; case SQL_LONGVARCHAR: +#if defined(ODBCVER) && (ODBCVER >= 0x0300) + case SQL_WLONGVARCHAR: +#endif if (IS_SQL_LONG(result->values[i].coltype) && result->longreadlen <= 0) { php_printf("<td>Not printable</td>"); diff --git a/ext/odbc/php_odbc_includes.h b/ext/odbc/php_odbc_includes.h index a9b0acfa0..06113d962 100644 --- a/ext/odbc/php_odbc_includes.h +++ b/ext/odbc/php_odbc_includes.h @@ -115,6 +115,7 @@ PHP_FUNCTION(solid_fetch_prev); #endif #define ODBC_TYPE "unixODBC" +#undef ODBCVER #include <sql.h> #include <sqlext.h> #define HAVE_SQL_EXTENDED_FETCH 1 @@ -284,7 +285,11 @@ int odbc_bindcols(odbc_result *result TSRMLS_DC); void odbc_sql_error(ODBC_SQL_ERROR_PARAMS); +#if defined(ODBCVER) && (ODBCVER >= 0x0300) +#define IS_SQL_LONG(x) (x == SQL_LONGVARBINARY || x == SQL_LONGVARCHAR || x == SQL_WLONGVARCHAR) +#else #define IS_SQL_LONG(x) (x == SQL_LONGVARBINARY || x == SQL_LONGVARCHAR) +#endif #define IS_SQL_BINARY(x) (x == SQL_BINARY || x == SQL_VARBINARY || x == SQL_LONGVARBINARY) #ifdef ZTS diff --git a/ext/odbc/tests/bug60616.phpt b/ext/odbc/tests/bug60616.phpt new file mode 100644 index 000000000..937049a9b --- /dev/null +++ b/ext/odbc/tests/bug60616.phpt @@ -0,0 +1,69 @@ +--TEST-- +odbc_exec(): Getting accurate unicode data from query +--SKIPIF-- +<?php include 'skipif.inc'; ?> +--FILE-- +<?php + +// Test strings +mb_internal_encoding("EUC_JP"); +$euc_jp_base64 = 'pdal6aWkpcCl676uyqo='; +$euc_jp = base64_decode($euc_jp_base64); +$ascii = 'abcdefghijklmnopqrstuvwxyz;]=#0123456789'; + +include 'config.inc'; +ini_set("odbc.defaultlrl", 4); // Set artifically low + +$conn = odbc_connect($dsn, $user, $pass); + +odbc_exec($conn, 'CREATE DATABASE odbcTEST ENCODING=\'EUC_JP\''); + +odbc_exec($conn, 'CREATE TABLE FOO (ID INT, CHAR_COL CHAR(200), VARCHAR_COL VARCHAR(200), TEXT_COL TEXT)'); + +odbc_exec($conn, "INSERT INTO FOO(ID, CHAR_COL, VARCHAR_COL, TEXT_COL) VALUES (1, '$euc_jp', '$euc_jp', '$euc_jp')"); +odbc_exec($conn, "INSERT INTO FOO(ID, CHAR_COL, VARCHAR_COL, TEXT_COL) VALUES (2, '$ascii', '$ascii', '$ascii')"); + +$res = odbc_exec($conn, 'SELECT * FROM FOO ORDER BY ID ASC'); + +while(odbc_fetch_row($res)) { + $char_col = odbc_result($res, "CHAR_COL"); + $varchar_col = odbc_result($res, "VARCHAR_COL"); + $id = odbc_result($res, "ID"); + $text_col = ""; + while (($chunk=odbc_result($res, "TEXT_COL")) !== false) { + $text_col .= $chunk; + } + + if ($id == 1) { + $euc_jp_check = $euc_jp . str_repeat(" ", (200 - mb_strlen($euc_jp))); + if (strcmp($char_col, $euc_jp_check) == 0 && strcmp($varchar_col, $euc_jp) == 0 && + strcmp($text_col, $euc_jp) == 0) { + print "EUC-JP matched\n"; + } else { + print "EUC-JP mismatched\n"; + } + } else { + $ascii_check = $ascii . str_repeat(" ", (200 - strlen($ascii))); + if (strcmp($char_col, $ascii_check) == 0 && strcmp($varchar_col, $ascii) == 0 && + strcmp($text_col, $ascii) == 0) { + print "ASCII matched\n"; + } else { + print "ASCII mismatched\n"; + } + } +} + +?> +--EXPECT-- +EUC-JP matched +ASCII matched +--CLEAN-- +<?php +include 'config.inc'; + +$conn = odbc_connect($dsn, $user, $pass); + +odbc_exec($conn, 'DROP TABLE FOO'); +odbc_exec($conn, 'DROP DATABASE odbcTEST'); + +?> diff --git a/ext/odbc/tests/odbc_columns_001.phpt b/ext/odbc/tests/odbc_columns_001.phpt index f6da78e8e..fbbc3e2e0 100644 --- a/ext/odbc/tests/odbc_columns_001.phpt +++ b/ext/odbc/tests/odbc_columns_001.phpt @@ -24,9 +24,5 @@ resource(%d) of type (odbc result) bool(false) resource(%d) of type (odbc result) bool(false) - -Warning: odbc_columns(): SQL error: Failed to fetch error message, SQL state HY000 in SQLColumns in %s on line %d +resource(%d) of type (odbc result) bool(false) - -Warning: odbc_fetch_row() expects parameter 1 to be resource, boolean given in %s on line %d -NULL diff --git a/ext/odbc/tests/odbc_free_result_001.phpt b/ext/odbc/tests/odbc_free_result_001.phpt index 4fcd5cda2..970450141 100644 --- a/ext/odbc/tests/odbc_free_result_001.phpt +++ b/ext/odbc/tests/odbc_free_result_001.phpt @@ -12,7 +12,7 @@ $conn = odbc_connect($dsn, $user, $pass); odbc_exec($conn, 'CREATE DATABASE odbcTEST'); odbc_exec($conn, 'CREATE TABLE FOO (TEST INT)'); -odbc_exec($conn, 'ALTER TABLE FOO ADD PRIMARY KEY FOO(TEST)'); +odbc_exec($conn, 'ALTER TABLE FOO ADD PRIMARY KEY (TEST)'); odbc_exec($conn, 'INSERT INTO FOO VALUES (1)'); odbc_exec($conn, 'INSERT INTO FOO VALUES (2)'); diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index 0ec2a9a6b..05d946a54 100755 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -654,7 +654,7 @@ static time_t asn1_time_to_time_t(ASN1_UTCTIME * timestr TSRMLS_DC) /* {{{ */ return (time_t)-1; } - if (ASN1_STRING_length(timestr) != strlen(ASN1_STRING_data(timestr))) { + if (ASN1_STRING_length(timestr) != strlen((char *)ASN1_STRING_data(timestr))) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "illegal length in timestamp"); return (time_t)-1; } @@ -782,13 +782,13 @@ static int add_oid_section(struct php_x509_request * req TSRMLS_DC) /* {{{ */ req->config_filename, req->var, req->req_config TSRMLS_CC) == FAILURE) return FAILURE #define SET_OPTIONAL_STRING_ARG(key, varname, defval) \ - if (optional_args && zend_hash_find(Z_ARRVAL_P(optional_args), key, sizeof(key), (void**)&item) == SUCCESS) \ + if (optional_args && zend_hash_find(Z_ARRVAL_P(optional_args), key, sizeof(key), (void**)&item) == SUCCESS && Z_TYPE_PP(item) == IS_STRING) \ varname = Z_STRVAL_PP(item); \ else \ varname = defval #define SET_OPTIONAL_LONG_ARG(key, varname, defval) \ - if (optional_args && zend_hash_find(Z_ARRVAL_P(optional_args), key, sizeof(key), (void**)&item) == SUCCESS) \ + if (optional_args && zend_hash_find(Z_ARRVAL_P(optional_args), key, sizeof(key), (void**)&item) == SUCCESS && Z_TYPE_PP(item) == IS_LONG) \ varname = Z_LVAL_PP(item); \ else \ varname = defval @@ -847,7 +847,8 @@ static int php_openssl_parse_config(struct php_x509_request * req, zval * option } } - if (req->priv_key_encrypt && optional_args && zend_hash_find(Z_ARRVAL_P(optional_args), "encrypt_key_cipher", sizeof("encrypt_key_cipher"), (void**)&item) == SUCCESS) { + if (req->priv_key_encrypt && optional_args && zend_hash_find(Z_ARRVAL_P(optional_args), "encrypt_key_cipher", sizeof("encrypt_key_cipher"), (void**)&item) == SUCCESS + && Z_TYPE_PP(item) == IS_LONG) { long cipher_algo = Z_LVAL_PP(item); const EVP_CIPHER* cipher = php_openssl_get_evp_cipher_from_algo(cipher_algo); if (cipher == NULL) { @@ -1962,7 +1963,7 @@ PHP_FUNCTION(openssl_pkcs12_export_to_file) } /* parse extra config from args array, promote this to an extra function */ - if (args && zend_hash_find(Z_ARRVAL_P(args), "friendly_name", sizeof("friendly_name"), (void**)&item) == SUCCESS) + if (args && zend_hash_find(Z_ARRVAL_P(args), "friendly_name", sizeof("friendly_name"), (void**)&item) == SUCCESS && Z_TYPE_PP(item) == IS_STRING) friendly_name = Z_STRVAL_PP(item); /* certpbe (default RC2-40) keypbe (default 3DES) @@ -2040,7 +2041,7 @@ PHP_FUNCTION(openssl_pkcs12_export) } /* parse extra config from args array, promote this to an extra function */ - if (args && zend_hash_find(Z_ARRVAL_P(args), "friendly_name", sizeof("friendly_name"), (void**)&item) == SUCCESS) + if (args && zend_hash_find(Z_ARRVAL_P(args), "friendly_name", sizeof("friendly_name"), (void**)&item) == SUCCESS && Z_TYPE_PP(item) == IS_STRING) friendly_name = Z_STRVAL_PP(item); if (args && zend_hash_find(Z_ARRVAL_P(args), "extracerts", sizeof("extracerts"), (void**)&item) == SUCCESS) diff --git a/ext/openssl/tests/026.phpt b/ext/openssl/tests/026.phpt new file mode 100644 index 000000000..38d626d74 --- /dev/null +++ b/ext/openssl/tests/026.phpt @@ -0,0 +1,12 @@ +--TEST-- +Options type checks +--SKIPIF-- +<?php if (!extension_loaded("openssl")) print "skip"; ?> +--FILE-- +<?php +$x = openssl_pkey_new(); +$csr = openssl_csr_new(["countryName" => "DE"], $x, ["x509_extensions" => 0xDEADBEEF]); +?> +DONE +--EXPECT-- +DONE diff --git a/ext/readline/readline_cli.c b/ext/readline/readline_cli.c index c2bf8764c..9c27acb19 100644 --- a/ext/readline/readline_cli.c +++ b/ext/readline/readline_cli.c @@ -99,6 +99,9 @@ static size_t readline_shell_write(const char *str, uint str_length TSRMLS_DC) / static int readline_shell_ub_write(const char *str, uint str_length TSRMLS_DC) /* {{{ */ { + /* We just store the last char here and then pass back to the + caller (sapi_cli_single_write in sapi/cli) which will actually + write due to -1 return code */ php_last_char = str[str_length-1]; return -1; } @@ -587,6 +590,7 @@ static int readline_shell_run(TSRMLS_D) /* {{{ */ char *code = emalloc(size); char *prompt = cli_get_prompt("php", '>' TSRMLS_CC); char *history_file; + int history_lines_to_write = 0; if (PG(auto_prepend_file) && PG(auto_prepend_file)[0]) { zend_file_handle *prepend_file_p; @@ -651,6 +655,7 @@ static int readline_shell_run(TSRMLS_D) /* {{{ */ if (*line) { add_history(line); + history_lines_to_write += 1; } free(line); @@ -660,6 +665,15 @@ static int readline_shell_run(TSRMLS_D) /* {{{ */ continue; } + if (history_lines_to_write) { +#if HAVE_LIBEDIT + write_history(history_file); +#else + append_history(history_lines_to_write, history_file); +#endif + history_lines_to_write = 0; + } + zend_try { zend_eval_stringl(code, pos, NULL, "php shell code" TSRMLS_CC); } zend_end_try(); @@ -667,7 +681,7 @@ static int readline_shell_run(TSRMLS_D) /* {{{ */ pos = 0; if (!pager_pipe && php_last_char != '\0' && php_last_char != '\n') { - readline_shell_write("\n", 1 TSRMLS_CC); + php_write("\n", 1 TSRMLS_CC); } if (EG(exception)) { @@ -681,7 +695,6 @@ static int readline_shell_run(TSRMLS_D) /* {{{ */ php_last_char = '\0'; } - write_history(history_file); free(history_file); efree(code); efree(prompt); diff --git a/ext/session/session.c b/ext/session/session.c index 74a7f4a1d..306aba3a7 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -296,7 +296,8 @@ PHPAPI char *php_session_create_id(PS_CREATE_SID_ARGS) /* {{{ */ if (zend_hash_find(&EG(symbol_table), "_SERVER", sizeof("_SERVER"), (void **) &array) == SUCCESS && Z_TYPE_PP(array) == IS_ARRAY && - zend_hash_find(Z_ARRVAL_PP(array), "REMOTE_ADDR", sizeof("REMOTE_ADDR"), (void **) &token) == SUCCESS + zend_hash_find(Z_ARRVAL_PP(array), "REMOTE_ADDR", sizeof("REMOTE_ADDR"), (void **) &token) == SUCCESS && + Z_TYPE_PP(token) == IS_STRING ) { remote_addr = Z_STRVAL_PP(token); } @@ -1327,9 +1328,16 @@ PHPAPI const ps_serializer *_php_find_ps_serializer(char *name TSRMLS_DC) /* {{{ } /* }}} */ -#define PPID2SID \ - convert_to_string((*ppid)); \ - PS(id) = estrndup(Z_STRVAL_PP(ppid), Z_STRLEN_PP(ppid)) +static void ppid2sid(zval **ppid TSRMLS_DC) { + if (Z_TYPE_PP(ppid) != IS_STRING) { + PS(id) = NULL; + PS(send_cookie) = 1; + } else { + convert_to_string((*ppid)); + PS(id) = estrndup(Z_STRVAL_PP(ppid), Z_STRLEN_PP(ppid)); + PS(send_cookie) = 0; + } +} static void php_session_reset_id(TSRMLS_D) /* {{{ */ { @@ -1418,9 +1426,8 @@ PHPAPI void php_session_start(TSRMLS_D) /* {{{ */ Z_TYPE_PP(data) == IS_ARRAY && zend_hash_find(Z_ARRVAL_PP(data), PS(session_name), lensess + 1, (void **) &ppid) == SUCCESS ) { - PPID2SID; + ppid2sid(ppid TSRMLS_CC); PS(apply_trans_sid) = 0; - PS(send_cookie) = 0; PS(define_sid) = 0; } @@ -1429,8 +1436,7 @@ PHPAPI void php_session_start(TSRMLS_D) /* {{{ */ Z_TYPE_PP(data) == IS_ARRAY && zend_hash_find(Z_ARRVAL_PP(data), PS(session_name), lensess + 1, (void **) &ppid) == SUCCESS ) { - PPID2SID; - PS(send_cookie) = 0; + ppid2sid(ppid TSRMLS_CC); } if (!PS(use_only_cookies) && !PS(id) && @@ -1438,8 +1444,7 @@ PHPAPI void php_session_start(TSRMLS_D) /* {{{ */ Z_TYPE_PP(data) == IS_ARRAY && zend_hash_find(Z_ARRVAL_PP(data), PS(session_name), lensess + 1, (void **) &ppid) == SUCCESS ) { - PPID2SID; - PS(send_cookie) = 0; + ppid2sid(ppid TSRMLS_CC); } } diff --git a/ext/session/tests/bug66827.phpt b/ext/session/tests/bug66827.phpt new file mode 100644 index 000000000..4e1a4f7ae --- /dev/null +++ b/ext/session/tests/bug66827.phpt @@ -0,0 +1,12 @@ +--TEST-- +Bug #66827: Session raises E_NOTICE when session name variable is array. +--INI-- +--SKIPIF-- +<?php include('skipif.inc'); ?> +--FILE-- +<?php +$_COOKIE[session_name()] = array(); +session_start(); +echo 'OK'; +--EXPECTF-- +OK diff --git a/ext/spl/spl_array.c b/ext/spl/spl_array.c index bf034ab24..ec9ce217d 100644 --- a/ext/spl/spl_array.c +++ b/ext/spl/spl_array.c @@ -1745,6 +1745,7 @@ SPL_METHOD(Array, unserialize) const unsigned char *p, *s; php_unserialize_data_t var_hash; zval *pmembers, *pflags = NULL; + HashTable *aht; long flags; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &buf, &buf_len) == FAILURE) { @@ -1756,6 +1757,12 @@ SPL_METHOD(Array, unserialize) return; } + aht = spl_array_get_hash_table(intern, 0 TSRMLS_CC); + if (aht->nApplyCount > 0) { + zend_error(E_WARNING, "Modification of ArrayObject during sorting is prohibited"); + return; + } + /* storage */ s = p = (const unsigned char*)buf; PHP_VAR_UNSERIALIZE_INIT(var_hash); diff --git a/ext/spl/spl_dllist.c b/ext/spl/spl_dllist.c index d9a72c1bb..b5ddfc0f5 100644 --- a/ext/spl/spl_dllist.c +++ b/ext/spl/spl_dllist.c @@ -43,12 +43,10 @@ PHPAPI zend_class_entry *spl_ce_SplStack; #define SPL_LLIST_DELREF(elem) if(!--(elem)->rc) { \ efree(elem); \ - elem = NULL; \ } #define SPL_LLIST_CHECK_DELREF(elem) if((elem) && !--(elem)->rc) { \ efree(elem); \ - elem = NULL; \ } #define SPL_LLIST_ADDREF(elem) (elem)->rc++ @@ -916,6 +914,11 @@ SPL_METHOD(SplDoublyLinkedList, offsetUnset) llist->dtor(element TSRMLS_CC); } + if (intern->traverse_pointer == element) { + SPL_LLIST_DELREF(element); + intern->traverse_pointer = NULL; + } + zval_ptr_dtor((zval **)&element->data); element->data = NULL; diff --git a/ext/spl/tests/bug67538.phpt b/ext/spl/tests/bug67538.phpt new file mode 100644 index 000000000..b6f3848c3 --- /dev/null +++ b/ext/spl/tests/bug67538.phpt @@ -0,0 +1,17 @@ +--TEST-- +Bug #67538 (SPL Iterators use-after-free) +--FILE-- +<?php +$list = new SplDoublyLinkedList(); +$list->push('a'); +$list->push('b'); + +$list->rewind(); +$list->offsetUnset(0); +$list->push('b'); +$list->offsetUnset(0); +$list->next(); +echo "okey"; +?> +--EXPECTF-- +okey diff --git a/ext/spl/tests/bug67539.phpt b/ext/spl/tests/bug67539.phpt new file mode 100644 index 000000000..8bab2a8c2 --- /dev/null +++ b/ext/spl/tests/bug67539.phpt @@ -0,0 +1,15 @@ +--TEST-- +Bug #67539 (ArrayIterator use-after-free due to object change during sorting) +--FILE-- +<?php + +$it = new ArrayIterator(array_fill(0,2,'X'), 1 ); + +function badsort($a, $b) { + $GLOBALS['it']->unserialize($GLOBALS['it']->serialize()); + return TRUE; +} + +$it->uksort('badsort'); +--EXPECTF-- +Warning: Modification of ArrayObject during sorting is prohibited in %sbug67539.php on line %d diff --git a/ext/standard/array.c b/ext/standard/array.c index c2efca58f..06cac0e64 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -2020,7 +2020,7 @@ static void _phpi_pop(INTERNAL_FUNCTION_PARAMETERS, int off_the_end) if (should_rehash) { zend_hash_rehash(Z_ARRVAL_P(stack)); } - } else if (!key_len && index >= Z_ARRVAL_P(stack)->nNextFreeElement - 1) { + } else if (!key_len && Z_ARRVAL_P(stack)->nNextFreeElement > 0 && index >= Z_ARRVAL_P(stack)->nNextFreeElement - 1) { Z_ARRVAL_P(stack)->nNextFreeElement = Z_ARRVAL_P(stack)->nNextFreeElement - 1; } diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 4d4354d4a..9a9df3094 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -2309,8 +2309,9 @@ ZEND_BEGIN_ARG_INFO(arginfo_lcfirst, 0) ZEND_ARG_INFO(0, str) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_ucwords, 0) +ZEND_BEGIN_ARG_INFO_EX(arginfo_ucwords, 0, 0, 1) ZEND_ARG_INFO(0, str) + ZEND_ARG_INFO(0, delimiters) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_strtr, 0, 0, 2) diff --git a/ext/standard/dns.c b/ext/standard/dns.c index 214a7dc7e..0b5e69ca5 100644 --- a/ext/standard/dns.c +++ b/ext/standard/dns.c @@ -412,8 +412,14 @@ PHP_FUNCTION(dns_check_record) #if HAVE_FULL_DNS_FUNCS +#define CHECKCP(n) do { \ + if (cp + n > end) { \ + return NULL; \ + } \ +} while (0) + /* {{{ php_parserr */ -static u_char *php_parserr(u_char *cp, querybuf *answer, int type_to_fetch, int store, int raw, zval **subarray) +static u_char *php_parserr(u_char *cp, u_char *end, querybuf *answer, int type_to_fetch, int store, int raw, zval **subarray) { u_short type, class, dlen; u_long ttl; @@ -425,16 +431,18 @@ static u_char *php_parserr(u_char *cp, querybuf *answer, int type_to_fetch, int *subarray = NULL; - n = dn_expand(answer->qb2, answer->qb2+65536, cp, name, sizeof(name) - 2); + n = dn_expand(answer->qb2, end, cp, name, sizeof(name) - 2); if (n < 0) { return NULL; } cp += n; + CHECKCP(10); GETSHORT(type, cp); GETSHORT(class, cp); GETLONG(ttl, cp); GETSHORT(dlen, cp); + CHECKCP(dlen); if (type_to_fetch != T_ANY && type != type_to_fetch) { cp += dlen; return cp; @@ -461,12 +469,14 @@ static u_char *php_parserr(u_char *cp, querybuf *answer, int type_to_fetch, int switch (type) { case DNS_T_A: + CHECKCP(4); add_assoc_string(*subarray, "type", "A", 1); snprintf(name, sizeof(name), "%d.%d.%d.%d", cp[0], cp[1], cp[2], cp[3]); add_assoc_string(*subarray, "ip", name, 1); cp += dlen; break; case DNS_T_MX: + CHECKCP(2); add_assoc_string(*subarray, "type", "MX", 1); GETSHORT(n, cp); add_assoc_long(*subarray, "pri", n); @@ -485,7 +495,7 @@ static u_char *php_parserr(u_char *cp, querybuf *answer, int type_to_fetch, int if (type == DNS_T_PTR) { add_assoc_string(*subarray, "type", "PTR", 1); } - n = dn_expand(answer->qb2, answer->qb2+65536, cp, name, (sizeof name) - 2); + n = dn_expand(answer->qb2, end, cp, name, (sizeof name) - 2); if (n < 0) { return NULL; } @@ -495,18 +505,22 @@ static u_char *php_parserr(u_char *cp, querybuf *answer, int type_to_fetch, int case DNS_T_HINFO: /* See RFC 1010 for values */ add_assoc_string(*subarray, "type", "HINFO", 1); + CHECKCP(1); n = *cp & 0xFF; cp++; + CHECKCP(n); add_assoc_stringl(*subarray, "cpu", (char*)cp, n, 1); cp += n; + CHECKCP(1); n = *cp & 0xFF; cp++; + CHECKCP(n); add_assoc_stringl(*subarray, "os", (char*)cp, n, 1); cp += n; break; case DNS_T_TXT: { - int ll = 0; + int l1 = 0, l2 = 0; zval *entries = NULL; add_assoc_string(*subarray, "type", "TXT", 1); @@ -515,37 +529,41 @@ static u_char *php_parserr(u_char *cp, querybuf *answer, int type_to_fetch, int MAKE_STD_ZVAL(entries); array_init(entries); - while (ll < dlen) { - n = cp[ll]; - if ((ll + n) >= dlen) { + while (l1 < dlen) { + n = cp[l1]; + if ((l1 + n) >= dlen) { // Invalid chunk length, truncate - n = dlen - (ll + 1); + n = dlen - (l1 + 1); + } + if (n) { + memcpy(tp + l2 , cp + l1 + 1, n); + add_next_index_stringl(entries, cp + l1 + 1, n, 1); } - memcpy(tp + ll , cp + ll + 1, n); - add_next_index_stringl(entries, cp + ll + 1, n, 1); - ll = ll + n + 1; + l1 = l1 + n + 1; + l2 = l2 + n; } - tp[dlen] = '\0'; + tp[l2] = '\0'; cp += dlen; - add_assoc_stringl(*subarray, "txt", tp, (dlen>0)?dlen - 1:0, 0); + add_assoc_stringl(*subarray, "txt", tp, l2, 0); add_assoc_zval(*subarray, "entries", entries); } break; case DNS_T_SOA: add_assoc_string(*subarray, "type", "SOA", 1); - n = dn_expand(answer->qb2, answer->qb2+65536, cp, name, (sizeof name) -2); + n = dn_expand(answer->qb2, end, cp, name, (sizeof name) -2); if (n < 0) { return NULL; } cp += n; add_assoc_string(*subarray, "mname", name, 1); - n = dn_expand(answer->qb2, answer->qb2+65536, cp, name, (sizeof name) -2); + n = dn_expand(answer->qb2, end, cp, name, (sizeof name) -2); if (n < 0) { return NULL; } cp += n; add_assoc_string(*subarray, "rname", name, 1); + CHECKCP(5*4); GETLONG(n, cp); add_assoc_long(*subarray, "serial", n); GETLONG(n, cp); @@ -559,6 +577,7 @@ static u_char *php_parserr(u_char *cp, querybuf *answer, int type_to_fetch, int break; case DNS_T_AAAA: tp = (u_char*)name; + CHECKCP(8*2); for(i=0; i < 8; i++) { GETSHORT(s, cp); if (s != 0) { @@ -593,6 +612,7 @@ static u_char *php_parserr(u_char *cp, querybuf *answer, int type_to_fetch, int case DNS_T_A6: p = cp; add_assoc_string(*subarray, "type", "A6", 1); + CHECKCP(1); n = ((int)cp[0]) & 0xFF; cp++; add_assoc_long(*subarray, "masklen", n); @@ -628,6 +648,7 @@ static u_char *php_parserr(u_char *cp, querybuf *answer, int type_to_fetch, int cp++; } for (i = (n + 8) / 16; i < 8; i++) { + CHECKCP(2); GETSHORT(s, cp); if (s != 0) { if (tp > (u_char *)name) { @@ -657,7 +678,7 @@ static u_char *php_parserr(u_char *cp, querybuf *answer, int type_to_fetch, int tp[0] = '\0'; add_assoc_string(*subarray, "ipv6", name, 1); if (cp < p + dlen) { - n = dn_expand(answer->qb2, answer->qb2+65536, cp, name, (sizeof name) - 2); + n = dn_expand(answer->qb2, end, cp, name, (sizeof name) - 2); if (n < 0) { return NULL; } @@ -666,6 +687,7 @@ static u_char *php_parserr(u_char *cp, querybuf *answer, int type_to_fetch, int } break; case DNS_T_SRV: + CHECKCP(3*2); add_assoc_string(*subarray, "type", "SRV", 1); GETSHORT(n, cp); add_assoc_long(*subarray, "pri", n); @@ -673,7 +695,7 @@ static u_char *php_parserr(u_char *cp, querybuf *answer, int type_to_fetch, int add_assoc_long(*subarray, "weight", n); GETSHORT(n, cp); add_assoc_long(*subarray, "port", n); - n = dn_expand(answer->qb2, answer->qb2+65536, cp, name, (sizeof name) - 2); + n = dn_expand(answer->qb2, end, cp, name, (sizeof name) - 2); if (n < 0) { return NULL; } @@ -681,21 +703,35 @@ static u_char *php_parserr(u_char *cp, querybuf *answer, int type_to_fetch, int add_assoc_string(*subarray, "target", name, 1); break; case DNS_T_NAPTR: + CHECKCP(2*2); add_assoc_string(*subarray, "type", "NAPTR", 1); GETSHORT(n, cp); add_assoc_long(*subarray, "order", n); GETSHORT(n, cp); add_assoc_long(*subarray, "pref", n); + + CHECKCP(1); n = (cp[0] & 0xFF); - add_assoc_stringl(*subarray, "flags", (char*)++cp, n, 1); + cp++; + CHECKCP(n); + add_assoc_stringl(*subarray, "flags", (char*)cp, n, 1); cp += n; + + CHECKCP(1); n = (cp[0] & 0xFF); - add_assoc_stringl(*subarray, "services", (char*)++cp, n, 1); + cp++; + CHECKCP(n); + add_assoc_stringl(*subarray, "services", (char*)cp, n, 1); cp += n; + + CHECKCP(1); n = (cp[0] & 0xFF); - add_assoc_stringl(*subarray, "regex", (char*)++cp, n, 1); + cp++; + CHECKCP(n); + add_assoc_stringl(*subarray, "regex", (char*)cp, n, 1); cp += n; - n = dn_expand(answer->qb2, answer->qb2+65536, cp, name, (sizeof name) - 2); + + n = dn_expand(answer->qb2, end, cp, name, (sizeof name) - 2); if (n < 0) { return NULL; } @@ -888,7 +924,7 @@ PHP_FUNCTION(dns_get_record) while (an-- && cp && cp < end) { zval *retval; - cp = php_parserr(cp, &answer, type_to_fetch, store_results, raw, &retval); + cp = php_parserr(cp, end, &answer, type_to_fetch, store_results, raw, &retval); if (retval != NULL && store_results) { add_next_index_zval(return_value, retval); } @@ -901,7 +937,7 @@ PHP_FUNCTION(dns_get_record) while (ns-- > 0 && cp && cp < end) { zval *retval = NULL; - cp = php_parserr(cp, &answer, DNS_T_ANY, authns != NULL, raw, &retval); + cp = php_parserr(cp, end, &answer, DNS_T_ANY, authns != NULL, raw, &retval); if (retval != NULL) { add_next_index_zval(authns, retval); } @@ -913,7 +949,7 @@ PHP_FUNCTION(dns_get_record) while (ar-- > 0 && cp && cp < end) { zval *retval = NULL; - cp = php_parserr(cp, &answer, DNS_T_ANY, 1, raw, &retval); + cp = php_parserr(cp, end, &answer, DNS_T_ANY, 1, raw, &retval); if (retval != NULL) { add_next_index_zval(addtl, retval); } diff --git a/ext/standard/info.c b/ext/standard/info.c index 98b4a8098..786820866 100644 --- a/ext/standard/info.c +++ b/ext/standard/info.c @@ -600,6 +600,14 @@ PHPAPI char *php_get_uname(char mode) php_get_windows_cpu(wincpu, sizeof(wincpu)); dwBuild = (DWORD)(HIWORD(dwVersion)); + + /* Windows "version" 6.2 could be Windows 8/Windows Server 2012, but also Windows 8.1/Windows Server 2012 R2 */ + if (dwWindowsMajorVersion == 6 && dwWindowsMinorVersion == 2) { + if (strncmp(winver, "Windows 8.1", 11) == 0 || strncmp(winver, "Windows Server 2012 R2", 22) == 0) { + dwWindowsMinorVersion = 3; + } + } + snprintf(tmp_uname, sizeof(tmp_uname), "%s %s %d.%d build %d (%s) %s", "Windows NT", ComputerName, dwWindowsMajorVersion, dwWindowsMinorVersion, dwBuild, winver?winver:"unknown", wincpu); diff --git a/ext/standard/string.c b/ext/standard/string.c index 22b1957f1..7bc215987 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -2742,11 +2742,12 @@ PHP_FUNCTION(lcfirst) Uppercase the first character of every word in a string */ PHP_FUNCTION(ucwords) { - char *str; + char *str, *delims = " \t\r\n\f\v"; register char *r, *r_end; - int str_len; + int str_len, delims_len = 6; + char mask[256]; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &str, &str_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s", &str, &str_len, &delims, &delims_len) == FAILURE) { return; } @@ -2754,12 +2755,14 @@ PHP_FUNCTION(ucwords) RETURN_EMPTY_STRING(); } + php_charmask((unsigned char *)delims, delims_len, mask TSRMLS_CC); + ZVAL_STRINGL(return_value, str, str_len, 1); r = Z_STRVAL_P(return_value); *r = toupper((unsigned char) *r); for (r_end = r + Z_STRLEN_P(return_value) - 1; r < r_end; ) { - if (isspace((int) *(unsigned char *)r++)) { + if (mask[(unsigned char)*r++]) { *r = toupper((unsigned char) *r); } } diff --git a/ext/standard/tests/array/bug67693.phpt b/ext/standard/tests/array/bug67693.phpt new file mode 100644 index 000000000..516436c51 --- /dev/null +++ b/ext/standard/tests/array/bug67693.phpt @@ -0,0 +1,25 @@ +--TEST-- +Bug #67693 - incorrect push to empty array +--FILE-- +<?php + +$array = array(-1 => 0); + +array_pop($array); + +array_push($array, 0); +array_push($array, 0); + +var_dump($array); + +echo"\nDone"; +?> +--EXPECT-- +array(2) { + [0]=> + int(0) + [1]=> + int(0) +} + +Done diff --git a/ext/standard/tests/strings/ucwords_error.phpt b/ext/standard/tests/strings/ucwords_error.phpt index d79e569cc..a01c688c4 100644 --- a/ext/standard/tests/strings/ucwords_error.phpt +++ b/ext/standard/tests/strings/ucwords_error.phpt @@ -18,7 +18,7 @@ echo "\n-- Testing ucwords() function with more than expected no. of arguments - $str = 'string_val'; $extra_arg = 10; -var_dump( ucwords($str, $extra_arg) ); +var_dump( ucwords($str, $extra_arg, $extra_arg) ); // check if there were any changes made to $str var_dump($str); @@ -30,12 +30,12 @@ echo "Done\n"; -- Testing ucwords() function with Zero arguments -- -Warning: ucwords() expects exactly 1 parameter, 0 given in %s on line %d +Warning: ucwords() expects at least 1 parameter, 0 given in %s on line %d NULL -- Testing ucwords() function with more than expected no. of arguments -- -Warning: ucwords() expects exactly 1 parameter, 2 given in %s on line %d +Warning: ucwords() expects at most 2 parameters, 3 given in %s on line %d NULL string(10) "string_val" Done diff --git a/ext/standard/tests/strings/ucwords_variation5.phpt b/ext/standard/tests/strings/ucwords_variation5.phpt new file mode 100644 index 000000000..985df47c4 --- /dev/null +++ b/ext/standard/tests/strings/ucwords_variation5.phpt @@ -0,0 +1,25 @@ +--TEST-- +Test ucwords() function : usage variations - custom delimiters +--FILE-- +<?php +/* Prototype : string ucwords ( string $str ) + * Description: Uppercase the first character of each word in a string + * Source code: ext/standard/string.c +*/ + +echo "*** Testing ucwords() : usage variations ***\n"; + +var_dump(ucwords('testing-dashed-words', '-')); +var_dump(ucwords('test(braced)words', '()')); +var_dump(ucwords('testing empty delimiters', '')); +var_dump(ucwords('testing ranges', 'a..e')); + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing ucwords() : usage variations *** +string(%d) "Testing-Dashed-Words" +string(%d) "Test(Braced)Words" +string(%d) "Testing empty delimiters" +string(%d) "TeSting raNgeS" +Done diff --git a/main/network.c b/main/network.c index 59ce12ef2..5e44b0e6a 100644 --- a/main/network.c +++ b/main/network.c @@ -989,6 +989,7 @@ PHPAPI char *php_socket_strerror(long err, char *buf, size_t bufsize) buf = estrdup(errstr); } else { strncpy(buf, errstr, bufsize); + buf[bufsize?(bufsize-1):0] = 0; } return buf; #else @@ -1013,6 +1014,7 @@ PHPAPI char *php_socket_strerror(long err, char *buf, size_t bufsize) buf = estrdup(sysbuf); } else { strncpy(buf, sysbuf, bufsize); + buf[bufsize?(bufsize-1):0] = 0; } if (free_it) { diff --git a/main/php_version.h b/main/php_version.h index 7603271ce..8d3d5b9e6 100644 --- a/main/php_version.h +++ b/main/php_version.h @@ -2,8 +2,8 @@ /* edit configure.in to change version number */ #define PHP_MAJOR_VERSION 5 #define PHP_MINOR_VERSION 4 -#define PHP_RELEASE_VERSION 31 +#define PHP_RELEASE_VERSION 32 #define PHP_EXTRA_VERSION "" -#define PHP_VERSION "5.4.31" -#define PHP_VERSION_ID 50431 +#define PHP_VERSION "5.4.32" +#define PHP_VERSION_ID 50432 diff --git a/pear/install-pear-nozlib.phar b/pear/install-pear-nozlib.phar index cdd4ba1c8..cd9b7bc5b 100644 --- a/pear/install-pear-nozlib.phar +++ b/pear/install-pear-nozlib.phar @@ -1234,11 +1234,11 @@ if (extension_loaded('phar')) {if (isset($_SERVER) && isset($_SERVER['REQUEST_UR require_once 'phar://install-pear-nozlib.phar/index.php'; -__HALT_COMPILER(); - - -0¤/m - +__HALT_COMPILER(); + + +0¤/m + /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ /** @@ -1284,75 +1284,98 @@ require_once 'phar://install-pear-nozlib.phar/' . 'PEAR.php'; define('ARCHIVE_TAR_ATT_SEPARATOR', 90001); define('ARCHIVE_TAR_END_BLOCK', pack("a512", '')); +if (!function_exists('gzopen') && function_exists('gzopen64')) { + function gzopen($filename, $mode, $use_include_path = 0) + { + gzopen64($filename, $mode, $use_include_path); + } +} + +if (!function_exists('gztell') && function_exists('gztell64')) { + function gztell($zp) + { + gztell64($zp); + } +} + +if (!function_exists('gzseek') && function_exists('gzseek64')) { + function gzseek($zp, $offset, $whence = SEEK_SET) + { + gzseek64($zp, $offset, $whence); + } +} + /** -* Creates a (compressed) Tar archive -* -* @package Archive_Tar -* @author Vincent Blavet <vincent@phpconcept.net> -* @license http://www.opensource.org/licenses/bsd-license.php New BSD License -* @version $Revision$ -*/ + * Creates a (compressed) Tar archive + * + * @package Archive_Tar + * @author Vincent Blavet <vincent@phpconcept.net> + * @license http://www.opensource.org/licenses/bsd-license.php New BSD License + * @version $Revision$ + */ class Archive_Tar extends PEAR { /** - * @var string Name of the Tar - */ - var $_tarname=''; + * @var string Name of the Tar + */ + var $_tarname = ''; /** - * @var boolean if true, the Tar file will be gzipped - */ - var $_compress=false; + * @var boolean if true, the Tar file will be gzipped + */ + var $_compress = false; /** - * @var string Type of compression : 'none', 'gz' or 'bz2' - */ - var $_compress_type='none'; + * @var string Type of compression : 'none', 'gz', 'bz2' or 'lzma2' + */ + var $_compress_type = 'none'; /** - * @var string Explode separator - */ - var $_separator=' '; + * @var string Explode separator + */ + var $_separator = ' '; /** - * @var file descriptor - */ - var $_file=0; + * @var file descriptor + */ + var $_file = 0; /** - * @var string Local Tar name of a remote Tar (http:// or ftp://) - */ - var $_temp_tarname=''; + * @var string Local Tar name of a remote Tar (http:// or ftp://) + */ + var $_temp_tarname = ''; /** - * @var string regular expression for ignoring files or directories - */ - var $_ignore_regexp=''; + * @var string regular expression for ignoring files or directories + */ + var $_ignore_regexp = ''; /** * @var object PEAR_Error object */ - var $error_object=null; + var $error_object = null; // {{{ constructor /** - * Archive_Tar Class constructor. This flavour of the constructor only - * declare a new Archive_Tar object, identifying it by the name of the - * tar file. - * If the compress argument is set the tar will be read or created as a - * gzip or bz2 compressed TAR file. - * - * @param string $p_tarname The name of the tar archive to create - * @param string $p_compress can be null, 'gz' or 'bz2'. This - * parameter indicates if gzip or bz2 compression - * is required. For compatibility reason the - * boolean value 'true' means 'gz'. - * - * @access public - */ + * Archive_Tar Class constructor. This flavour of the constructor only + * declare a new Archive_Tar object, identifying it by the name of the + * tar file. + * If the compress argument is set the tar will be read or created as a + * gzip or bz2 compressed TAR file. + * + * @param string $p_tarname The name of the tar archive to create + * @param string $p_compress can be null, 'gz', 'bz2' or 'lzma2'. This + * parameter indicates if gzip, bz2 or lzma2 compression + * is required. For compatibility reason the + * boolean value 'true' means 'gz'. + * + * @access public + */ function Archive_Tar($p_tarname, $p_compress = null) { - $this->PEAR(); + if (version_compare(PHP_VERSION, '5.0.0', '<')) { + $this->PEAR(); + } $this->_compress = false; $this->_compress_type = 'none'; if (($p_compress === null) || ($p_compress == '')) { @@ -1368,6 +1391,9 @@ class Archive_Tar extends PEAR } elseif ($data == "BZ") { $this->_compress = true; $this->_compress_type = 'bz2'; + } elseif (file_get_contents($p_tarname, false, null, 1, 4) == '7zXZ') { + $this->_compress = true; + $this->_compress_type = 'lzma2'; } } } else { @@ -1377,42 +1403,67 @@ class Archive_Tar extends PEAR $this->_compress = true; $this->_compress_type = 'gz'; } elseif ((substr($p_tarname, -3) == 'bz2') || - (substr($p_tarname, -2) == 'bz')) { + (substr($p_tarname, -2) == 'bz') + ) { $this->_compress = true; $this->_compress_type = 'bz2'; + } else { + if (substr($p_tarname, -2) == 'xz') { + $this->_compress = true; + $this->_compress_type = 'lzma2'; + } } } } else { if (($p_compress === true) || ($p_compress == 'gz')) { $this->_compress = true; $this->_compress_type = 'gz'; - } else if ($p_compress == 'bz2') { - $this->_compress = true; - $this->_compress_type = 'bz2'; } else { - $this->_error("Unsupported compression type '$p_compress'\n". - "Supported types are 'gz' and 'bz2'.\n"); - return false; + if ($p_compress == 'bz2') { + $this->_compress = true; + $this->_compress_type = 'bz2'; + } else { + if ($p_compress == 'lzma2') { + $this->_compress = true; + $this->_compress_type = 'lzma2'; + } else { + $this->_error( + "Unsupported compression type '$p_compress'\n" . + "Supported types are 'gz', 'bz2' and 'lzma2'.\n" + ); + return false; + } + } } } $this->_tarname = $p_tarname; - if ($this->_compress) { // assert zlib or bz2 extension support - if ($this->_compress_type == 'gz') + if ($this->_compress) { // assert zlib or bz2 or xz extension support + if ($this->_compress_type == 'gz') { $extname = 'zlib'; - else if ($this->_compress_type == 'bz2') - $extname = 'bz2'; + } else { + if ($this->_compress_type == 'bz2') { + $extname = 'bz2'; + } else { + if ($this->_compress_type == 'lzma2') { + $extname = 'xz'; + } + } + } if (!extension_loaded($extname)) { PEAR::loadExtension($extname); } if (!extension_loaded($extname)) { - $this->_error("The extension '$extname' couldn't be found.\n". - "Please make sure your version of PHP was built ". - "with '$extname' support.\n"); + $this->_error( + "The extension '$extname' couldn't be found.\n" . + "Please make sure your version of PHP was built " . + "with '$extname' support.\n" + ); return false; } } } + // }}} // {{{ destructor @@ -1420,69 +1471,82 @@ class Archive_Tar extends PEAR { $this->_close(); // ----- Look for a local copy to delete - if ($this->_temp_tarname != '') + if ($this->_temp_tarname != '') { @unlink($this->_temp_tarname); + } $this->_PEAR(); } + + // }}} + + // {{{ PHP5-compatible destructor + function __destruct() + { + $this->_Archive_Tar(); + } + // }}} // {{{ create() /** - * This method creates the archive file and add the files / directories - * that are listed in $p_filelist. - * If a file with the same name exist and is writable, it is replaced - * by the new tar. - * The method return false and a PEAR error text. - * The $p_filelist parameter can be an array of string, each string - * representing a filename or a directory name with their path if - * needed. It can also be a single string with names separated by a - * single blank. - * For each directory added in the archive, the files and - * sub-directories are also added. - * See also createModify() method for more details. - * - * @param array $p_filelist An array of filenames and directory names, or a - * single string with names separated by a single - * blank space. - * - * @return true on success, false on error. - * @see createModify() - * @access public - */ + * This method creates the archive file and add the files / directories + * that are listed in $p_filelist. + * If a file with the same name exist and is writable, it is replaced + * by the new tar. + * The method return false and a PEAR error text. + * The $p_filelist parameter can be an array of string, each string + * representing a filename or a directory name with their path if + * needed. It can also be a single string with names separated by a + * single blank. + * For each directory added in the archive, the files and + * sub-directories are also added. + * See also createModify() method for more details. + * + * @param array $p_filelist An array of filenames and directory names, or a + * single string with names separated by a single + * blank space. + * + * @return true on success, false on error. + * @see createModify() + * @access public + */ function create($p_filelist) { return $this->createModify($p_filelist, '', ''); } + // }}} // {{{ add() /** - * This method add the files / directories that are listed in $p_filelist in - * the archive. If the archive does not exist it is created. - * The method return false and a PEAR error text. - * The files and directories listed are only added at the end of the archive, - * even if a file with the same name is already archived. - * See also createModify() method for more details. - * - * @param array $p_filelist An array of filenames and directory names, or a - * single string with names separated by a single - * blank space. - * - * @return true on success, false on error. - * @see createModify() - * @access public - */ + * This method add the files / directories that are listed in $p_filelist in + * the archive. If the archive does not exist it is created. + * The method return false and a PEAR error text. + * The files and directories listed are only added at the end of the archive, + * even if a file with the same name is already archived. + * See also createModify() method for more details. + * + * @param array $p_filelist An array of filenames and directory names, or a + * single string with names separated by a single + * blank space. + * + * @return true on success, false on error. + * @see createModify() + * @access public + */ function add($p_filelist) { return $this->addModify($p_filelist, '', ''); } + // }}} // {{{ extract() - function extract($p_path='', $p_preserve=false) + function extract($p_path = '', $p_preserve = false) { return $this->extractModify($p_path, '', $p_preserve); } + // }}} // {{{ listContent() @@ -1500,58 +1564,60 @@ class Archive_Tar extends PEAR return $v_list_detail; } + // }}} // {{{ createModify() /** - * This method creates the archive file and add the files / directories - * that are listed in $p_filelist. - * If the file already exists and is writable, it is replaced by the - * new tar. It is a create and not an add. If the file exists and is - * read-only or is a directory it is not replaced. The method return - * false and a PEAR error text. - * The $p_filelist parameter can be an array of string, each string - * representing a filename or a directory name with their path if - * needed. It can also be a single string with names separated by a - * single blank. - * The path indicated in $p_remove_dir will be removed from the - * memorized path of each file / directory listed when this path - * exists. By default nothing is removed (empty path '') - * The path indicated in $p_add_dir will be added at the beginning of - * the memorized path of each file / directory listed. However it can - * be set to empty ''. The adding of a path is done after the removing - * of path. - * The path add/remove ability enables the user to prepare an archive - * for extraction in a different path than the origin files are. - * See also addModify() method for file adding properties. - * - * @param array $p_filelist An array of filenames and directory names, - * or a single string with names separated by - * a single blank space. - * @param string $p_add_dir A string which contains a path to be added - * to the memorized path of each element in - * the list. - * @param string $p_remove_dir A string which contains a path to be - * removed from the memorized path of each - * element in the list, when relevant. - * - * @return boolean true on success, false on error. - * @access public - * @see addModify() - */ - function createModify($p_filelist, $p_add_dir, $p_remove_dir='') + * This method creates the archive file and add the files / directories + * that are listed in $p_filelist. + * If the file already exists and is writable, it is replaced by the + * new tar. It is a create and not an add. If the file exists and is + * read-only or is a directory it is not replaced. The method return + * false and a PEAR error text. + * The $p_filelist parameter can be an array of string, each string + * representing a filename or a directory name with their path if + * needed. It can also be a single string with names separated by a + * single blank. + * The path indicated in $p_remove_dir will be removed from the + * memorized path of each file / directory listed when this path + * exists. By default nothing is removed (empty path '') + * The path indicated in $p_add_dir will be added at the beginning of + * the memorized path of each file / directory listed. However it can + * be set to empty ''. The adding of a path is done after the removing + * of path. + * The path add/remove ability enables the user to prepare an archive + * for extraction in a different path than the origin files are. + * See also addModify() method for file adding properties. + * + * @param array $p_filelist An array of filenames and directory names, + * or a single string with names separated by + * a single blank space. + * @param string $p_add_dir A string which contains a path to be added + * to the memorized path of each element in + * the list. + * @param string $p_remove_dir A string which contains a path to be + * removed from the memorized path of each + * element in the list, when relevant. + * + * @return boolean true on success, false on error. + * @access public + * @see addModify() + */ + function createModify($p_filelist, $p_add_dir, $p_remove_dir = '') { $v_result = true; - if (!$this->_openWrite()) + if (!$this->_openWrite()) { return false; + } if ($p_filelist != '') { - if (is_array($p_filelist)) + if (is_array($p_filelist)) { $v_list = $p_filelist; - elseif (is_string($p_filelist)) + } elseif (is_string($p_filelist)) { $v_list = explode($this->_separator, $p_filelist); - else { + } else { $this->_cleanFile(); $this->_error('Invalid file list'); return false; @@ -1563,68 +1629,73 @@ class Archive_Tar extends PEAR if ($v_result) { $this->_writeFooter(); $this->_close(); - } else + } else { $this->_cleanFile(); + } return $v_result; } + // }}} // {{{ addModify() /** - * This method add the files / directories listed in $p_filelist at the - * end of the existing archive. If the archive does not yet exists it - * is created. - * The $p_filelist parameter can be an array of string, each string - * representing a filename or a directory name with their path if - * needed. It can also be a single string with names separated by a - * single blank. - * The path indicated in $p_remove_dir will be removed from the - * memorized path of each file / directory listed when this path - * exists. By default nothing is removed (empty path '') - * The path indicated in $p_add_dir will be added at the beginning of - * the memorized path of each file / directory listed. However it can - * be set to empty ''. The adding of a path is done after the removing - * of path. - * The path add/remove ability enables the user to prepare an archive - * for extraction in a different path than the origin files are. - * If a file/dir is already in the archive it will only be added at the - * end of the archive. There is no update of the existing archived - * file/dir. However while extracting the archive, the last file will - * replace the first one. This results in a none optimization of the - * archive size. - * If a file/dir does not exist the file/dir is ignored. However an - * error text is send to PEAR error. - * If a file/dir is not readable the file/dir is ignored. However an - * error text is send to PEAR error. - * - * @param array $p_filelist An array of filenames and directory - * names, or a single string with names - * separated by a single blank space. - * @param string $p_add_dir A string which contains a path to be - * added to the memorized path of each - * element in the list. - * @param string $p_remove_dir A string which contains a path to be - * removed from the memorized path of - * each element in the list, when - * relevant. - * - * @return true on success, false on error. - * @access public - */ - function addModify($p_filelist, $p_add_dir, $p_remove_dir='') + * This method add the files / directories listed in $p_filelist at the + * end of the existing archive. If the archive does not yet exists it + * is created. + * The $p_filelist parameter can be an array of string, each string + * representing a filename or a directory name with their path if + * needed. It can also be a single string with names separated by a + * single blank. + * The path indicated in $p_remove_dir will be removed from the + * memorized path of each file / directory listed when this path + * exists. By default nothing is removed (empty path '') + * The path indicated in $p_add_dir will be added at the beginning of + * the memorized path of each file / directory listed. However it can + * be set to empty ''. The adding of a path is done after the removing + * of path. + * The path add/remove ability enables the user to prepare an archive + * for extraction in a different path than the origin files are. + * If a file/dir is already in the archive it will only be added at the + * end of the archive. There is no update of the existing archived + * file/dir. However while extracting the archive, the last file will + * replace the first one. This results in a none optimization of the + * archive size. + * If a file/dir does not exist the file/dir is ignored. However an + * error text is send to PEAR error. + * If a file/dir is not readable the file/dir is ignored. However an + * error text is send to PEAR error. + * + * @param array $p_filelist An array of filenames and directory + * names, or a single string with names + * separated by a single blank space. + * @param string $p_add_dir A string which contains a path to be + * added to the memorized path of each + * element in the list. + * @param string $p_remove_dir A string which contains a path to be + * removed from the memorized path of + * each element in the list, when + * relevant. + * + * @return true on success, false on error. + * @access public + */ + function addModify($p_filelist, $p_add_dir, $p_remove_dir = '') { $v_result = true; - if (!$this->_isArchive()) - $v_result = $this->createModify($p_filelist, $p_add_dir, - $p_remove_dir); - else { - if (is_array($p_filelist)) + if (!$this->_isArchive()) { + $v_result = $this->createModify( + $p_filelist, + $p_add_dir, + $p_remove_dir + ); + } else { + if (is_array($p_filelist)) { $v_list = $p_filelist; - elseif (is_string($p_filelist)) + } elseif (is_string($p_filelist)) { $v_list = explode($this->_separator, $p_filelist); - else { + } else { $this->_error('Invalid file list'); return false; } @@ -1634,27 +1705,45 @@ class Archive_Tar extends PEAR return $v_result; } + // }}} // {{{ addString() /** - * This method add a single string as a file at the - * end of the existing archive. If the archive does not yet exists it - * is created. - * - * @param string $p_filename A string which contains the full - * filename path that will be associated - * with the string. - * @param string $p_string The content of the file added in - * the archive. - * @param int $p_datetime A custom date/time (unix timestamp) - * for the file (optional). - * - * @return true on success, false on error. - * @access public - */ - function addString($p_filename, $p_string, $p_datetime = false) + * This method add a single string as a file at the + * end of the existing archive. If the archive does not yet exists it + * is created. + * + * @param string $p_filename A string which contains the full + * filename path that will be associated + * with the string. + * @param string $p_string The content of the file added in + * the archive. + * @param int $p_datetime A custom date/time (unix timestamp) + * for the file (optional). + * @param array $p_params An array of optional params: + * stamp => the datetime (replaces + * datetime above if it exists) + * mode => the permissions on the + * file (600 by default) + * type => is this a link? See the + * tar specification for details. + * (default = regular file) + * uid => the user ID of the file + * (default = 0 = root) + * gid => the group ID of the file + * (default = 0 = root) + * + * @return true on success, false on error. + * @access public + */ + function addString($p_filename, $p_string, $p_datetime = false, $p_params = array()) { + $p_stamp = @$p_params["stamp"] ? $p_params["stamp"] : ($p_datetime ? $p_datetime : time()); + $p_mode = @$p_params["mode"] ? $p_params["mode"] : 0600; + $p_type = @$p_params["type"] ? $p_params["type"] : ""; + $p_uid = @$p_params["uid"] ? $p_params["uid"] : ""; + $p_gid = @$p_params["gid"] ? $p_params["gid"] : ""; $v_result = true; if (!$this->_isArchive()) { @@ -1664,11 +1753,12 @@ class Archive_Tar extends PEAR $this->_close(); } - if (!$this->_openAppend()) + if (!$this->_openAppend()) { return false; + } // Need to check the get back to the temporary file ? .... - $v_result = $this->_addString($p_filename, $p_string, $p_datetime); + $v_result = $this->_addString($p_filename, $p_string, $p_datetime, $p_params); $this->_writeFooter(); @@ -1676,69 +1766,77 @@ class Archive_Tar extends PEAR return $v_result; } + // }}} // {{{ extractModify() /** - * This method extract all the content of the archive in the directory - * indicated by $p_path. When relevant the memorized path of the - * files/dir can be modified by removing the $p_remove_path path at the - * beginning of the file/dir path. - * While extracting a file, if the directory path does not exists it is - * created. - * While extracting a file, if the file already exists it is replaced - * without looking for last modification date. - * While extracting a file, if the file already exists and is write - * protected, the extraction is aborted. - * While extracting a file, if a directory with the same name already - * exists, the extraction is aborted. - * While extracting a directory, if a file with the same name already - * exists, the extraction is aborted. - * While extracting a file/directory if the destination directory exist - * and is write protected, or does not exist but can not be created, - * the extraction is aborted. - * If after extraction an extracted file does not show the correct - * stored file size, the extraction is aborted. - * When the extraction is aborted, a PEAR error text is set and false - * is returned. However the result can be a partial extraction that may - * need to be manually cleaned. - * - * @param string $p_path The path of the directory where the - * files/dir need to by extracted. - * @param string $p_remove_path Part of the memorized path that can be - * removed if present at the beginning of - * the file/dir path. - * @param boolean $p_preserve Preserve user/group ownership of files - * - * @return boolean true on success, false on error. - * @access public - * @see extractList() - */ - function extractModify($p_path, $p_remove_path, $p_preserve=false) + * This method extract all the content of the archive in the directory + * indicated by $p_path. When relevant the memorized path of the + * files/dir can be modified by removing the $p_remove_path path at the + * beginning of the file/dir path. + * While extracting a file, if the directory path does not exists it is + * created. + * While extracting a file, if the file already exists it is replaced + * without looking for last modification date. + * While extracting a file, if the file already exists and is write + * protected, the extraction is aborted. + * While extracting a file, if a directory with the same name already + * exists, the extraction is aborted. + * While extracting a directory, if a file with the same name already + * exists, the extraction is aborted. + * While extracting a file/directory if the destination directory exist + * and is write protected, or does not exist but can not be created, + * the extraction is aborted. + * If after extraction an extracted file does not show the correct + * stored file size, the extraction is aborted. + * When the extraction is aborted, a PEAR error text is set and false + * is returned. However the result can be a partial extraction that may + * need to be manually cleaned. + * + * @param string $p_path The path of the directory where the + * files/dir need to by extracted. + * @param string $p_remove_path Part of the memorized path that can be + * removed if present at the beginning of + * the file/dir path. + * @param boolean $p_preserve Preserve user/group ownership of files + * + * @return boolean true on success, false on error. + * @access public + * @see extractList() + */ + function extractModify($p_path, $p_remove_path, $p_preserve = false) { $v_result = true; $v_list_detail = array(); if ($v_result = $this->_openRead()) { - $v_result = $this->_extractList($p_path, $v_list_detail, - "complete", 0, $p_remove_path, $p_preserve); + $v_result = $this->_extractList( + $p_path, + $v_list_detail, + "complete", + 0, + $p_remove_path, + $p_preserve + ); $this->_close(); } return $v_result; } + // }}} // {{{ extractInString() /** - * This method extract from the archive one file identified by $p_filename. - * The return value is a string with the file content, or NULL on error. - * - * @param string $p_filename The path of the file to extract in a string. - * - * @return a string with the file content or NULL. - * @access public - */ + * This method extract from the archive one file identified by $p_filename. + * The return value is a string with the file content, or NULL on error. + * + * @param string $p_filename The path of the file to extract in a string. + * + * @return a string with the file content or NULL. + * @access public + */ function extractInString($p_filename) { if ($this->_openRead()) { @@ -1750,65 +1848,73 @@ class Archive_Tar extends PEAR return $v_result; } + // }}} // {{{ extractList() /** - * This method extract from the archive only the files indicated in the - * $p_filelist. These files are extracted in the current directory or - * in the directory indicated by the optional $p_path parameter. - * If indicated the $p_remove_path can be used in the same way as it is - * used in extractModify() method. - * - * @param array $p_filelist An array of filenames and directory names, - * or a single string with names separated - * by a single blank space. - * @param string $p_path The path of the directory where the - * files/dir need to by extracted. - * @param string $p_remove_path Part of the memorized path that can be - * removed if present at the beginning of - * the file/dir path. - * @param boolean $p_preserve Preserve user/group ownership of files - * - * @return true on success, false on error. - * @access public - * @see extractModify() - */ - function extractList($p_filelist, $p_path='', $p_remove_path='', $p_preserve=false) + * This method extract from the archive only the files indicated in the + * $p_filelist. These files are extracted in the current directory or + * in the directory indicated by the optional $p_path parameter. + * If indicated the $p_remove_path can be used in the same way as it is + * used in extractModify() method. + * + * @param array $p_filelist An array of filenames and directory names, + * or a single string with names separated + * by a single blank space. + * @param string $p_path The path of the directory where the + * files/dir need to by extracted. + * @param string $p_remove_path Part of the memorized path that can be + * removed if present at the beginning of + * the file/dir path. + * @param boolean $p_preserve Preserve user/group ownership of files + * + * @return true on success, false on error. + * @access public + * @see extractModify() + */ + function extractList($p_filelist, $p_path = '', $p_remove_path = '', $p_preserve = false) { $v_result = true; $v_list_detail = array(); - if (is_array($p_filelist)) + if (is_array($p_filelist)) { $v_list = $p_filelist; - elseif (is_string($p_filelist)) + } elseif (is_string($p_filelist)) { $v_list = explode($this->_separator, $p_filelist); - else { + } else { $this->_error('Invalid string list'); return false; } if ($v_result = $this->_openRead()) { - $v_result = $this->_extractList($p_path, $v_list_detail, "partial", - $v_list, $p_remove_path, $p_preserve); + $v_result = $this->_extractList( + $p_path, + $v_list_detail, + "partial", + $v_list, + $p_remove_path, + $p_preserve + ); $this->_close(); } return $v_result; } + // }}} // {{{ setAttribute() /** - * This method set specific attributes of the archive. It uses a variable - * list of parameters, in the format attribute code + attribute values : - * $arch->setAttribute(ARCHIVE_TAR_ATT_SEPARATOR, ','); - * - * @param mixed $argv variable list of attributes and values - * - * @return true on success, false on error. - * @access public - */ + * This method set specific attributes of the archive. It uses a variable + * list of parameters, in the format attribute code + attribute values : + * $arch->setAttribute(ARCHIVE_TAR_ATT_SEPARATOR, ','); + * + * @param mixed $argv variable list of attributes and values + * + * @return true on success, false on error. + * @access public + */ function setAttribute() { $v_result = true; @@ -1819,30 +1925,32 @@ class Archive_Tar extends PEAR } // ----- Get the arguments - $v_att_list = &func_get_args(); + $v_att_list = & func_get_args(); // ----- Read the attributes - $i=0; - while ($i<$v_size) { + $i = 0; + while ($i < $v_size) { // ----- Look for next option switch ($v_att_list[$i]) { // ----- Look for options that request a string value case ARCHIVE_TAR_ATT_SEPARATOR : // ----- Check the number of parameters - if (($i+1) >= $v_size) { - $this->_error('Invalid number of parameters for ' - .'attribute ARCHIVE_TAR_ATT_SEPARATOR'); + if (($i + 1) >= $v_size) { + $this->_error( + 'Invalid number of parameters for ' + . 'attribute ARCHIVE_TAR_ATT_SEPARATOR' + ); return false; } // ----- Get the value - $this->_separator = $v_att_list[$i+1]; + $this->_separator = $v_att_list[$i + 1]; $i++; - break; + break; default : - $this->_error('Unknow attribute code '.$v_att_list[$i].''); + $this->_error('Unknow attribute code ' . $v_att_list[$i] . ''); return false; } @@ -1852,58 +1960,63 @@ class Archive_Tar extends PEAR return $v_result; } + // }}} // {{{ setIgnoreRegexp() /** - * This method sets the regular expression for ignoring files and directories - * at import, for example: - * $arch->setIgnoreRegexp("#CVS|\.svn#"); - * - * @param string $regexp regular expression defining which files or directories to ignore - * - * @access public - */ + * This method sets the regular expression for ignoring files and directories + * at import, for example: + * $arch->setIgnoreRegexp("#CVS|\.svn#"); + * + * @param string $regexp regular expression defining which files or directories to ignore + * + * @access public + */ function setIgnoreRegexp($regexp) { - $this->_ignore_regexp = $regexp; + $this->_ignore_regexp = $regexp; } + // }}} // {{{ setIgnoreList() /** - * This method sets the regular expression for ignoring all files and directories - * matching the filenames in the array list at import, for example: - * $arch->setIgnoreList(array('CVS', '.svn', 'bin/tool')); - * - * @param array $list a list of file or directory names to ignore - * - * @access public - */ + * This method sets the regular expression for ignoring all files and directories + * matching the filenames in the array list at import, for example: + * $arch->setIgnoreList(array('CVS', '.svn', 'bin/tool')); + * + * @param array $list a list of file or directory names to ignore + * + * @access public + */ function setIgnoreList($list) { - $regexp = str_replace(array('#', '.', '^', '$'), array('\#', '\.', '\^', '\$'), $list); - $regexp = '#/'.join('$|/', $list).'#'; - $this->setIgnoreRegexp($regexp); + $regexp = str_replace(array('#', '.', '^', '$'), array('\#', '\.', '\^', '\$'), $list); + $regexp = '#/' . join('$|/', $list) . '#'; + $this->setIgnoreRegexp($regexp); } + // }}} // {{{ _error() function _error($p_message) { - $this->error_object = &$this->raiseError($p_message); + $this->error_object = & $this->raiseError($p_message); } + // }}} // {{{ _warning() function _warning($p_message) { - $this->error_object = &$this->raiseError($p_message); + $this->error_object = & $this->raiseError($p_message); } + // }}} // {{{ _isArchive() - function _isArchive($p_filename=null) + function _isArchive($p_filename = null) { if ($p_filename == null) { $p_filename = $this->_tarname; @@ -1911,31 +2024,45 @@ class Archive_Tar extends PEAR clearstatcache(); return @is_file($p_filename) && !@is_link($p_filename); } + // }}} // {{{ _openWrite() function _openWrite() { - if ($this->_compress_type == 'gz' && function_exists('gzopen')) + if ($this->_compress_type == 'gz' && function_exists('gzopen')) { $this->_file = @gzopen($this->_tarname, "wb9"); - else if ($this->_compress_type == 'bz2' && function_exists('bzopen')) - $this->_file = @bzopen($this->_tarname, "w"); - else if ($this->_compress_type == 'none') - $this->_file = @fopen($this->_tarname, "wb"); - else { - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); - return false; + } else { + if ($this->_compress_type == 'bz2' && function_exists('bzopen')) { + $this->_file = @bzopen($this->_tarname, "w"); + } else { + if ($this->_compress_type == 'lzma2' && function_exists('xzopen')) { + $this->_file = @xzopen($this->_tarname, 'w'); + } else { + if ($this->_compress_type == 'none') { + $this->_file = @fopen($this->_tarname, "wb"); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + return false; + } + } + } } if ($this->_file == 0) { - $this->_error('Unable to open in write mode \'' - .$this->_tarname.'\''); + $this->_error( + 'Unable to open in write mode \'' + . $this->_tarname . '\'' + ); return false; } return true; } + // }}} // {{{ _openRead() @@ -1943,80 +2070,116 @@ class Archive_Tar extends PEAR { if (strtolower(substr($this->_tarname, 0, 7)) == 'http://') { - // ----- Look if a local copy need to be done - if ($this->_temp_tarname == '') { - $this->_temp_tarname = uniqid('tar').'.tmp'; - if (!$v_file_from = @fopen($this->_tarname, 'rb')) { - $this->_error('Unable to open in read mode \'' - .$this->_tarname.'\''); - $this->_temp_tarname = ''; - return false; - } - if (!$v_file_to = @fopen($this->_temp_tarname, 'wb')) { - $this->_error('Unable to open in write mode \'' - .$this->_temp_tarname.'\''); - $this->_temp_tarname = ''; - return false; - } - while ($v_data = @fread($v_file_from, 1024)) - @fwrite($v_file_to, $v_data); - @fclose($v_file_from); - @fclose($v_file_to); - } + // ----- Look if a local copy need to be done + if ($this->_temp_tarname == '') { + $this->_temp_tarname = uniqid('tar') . '.tmp'; + if (!$v_file_from = @fopen($this->_tarname, 'rb')) { + $this->_error( + 'Unable to open in read mode \'' + . $this->_tarname . '\'' + ); + $this->_temp_tarname = ''; + return false; + } + if (!$v_file_to = @fopen($this->_temp_tarname, 'wb')) { + $this->_error( + 'Unable to open in write mode \'' + . $this->_temp_tarname . '\'' + ); + $this->_temp_tarname = ''; + return false; + } + while ($v_data = @fread($v_file_from, 1024)) { + @fwrite($v_file_to, $v_data); + } + @fclose($v_file_from); + @fclose($v_file_to); + } - // ----- File to open if the local copy - $v_filename = $this->_temp_tarname; + // ----- File to open if the local copy + $v_filename = $this->_temp_tarname; - } else - // ----- File to open if the normal Tar file - $v_filename = $this->_tarname; + } else // ----- File to open if the normal Tar file + { + $v_filename = $this->_tarname; + } - if ($this->_compress_type == 'gz' && function_exists('gzopen')) + if ($this->_compress_type == 'gz' && function_exists('gzopen')) { $this->_file = @gzopen($v_filename, "rb"); - else if ($this->_compress_type == 'bz2' && function_exists('bzopen')) - $this->_file = @bzopen($v_filename, "r"); - else if ($this->_compress_type == 'none') - $this->_file = @fopen($v_filename, "rb"); - else { - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); - return false; + } else { + if ($this->_compress_type == 'bz2' && function_exists('bzopen')) { + $this->_file = @bzopen($v_filename, "r"); + } else { + if ($this->_compress_type == 'lzma2' && function_exists('xzopen')) { + $this->_file = @xzopen($v_filename, "r"); + } else { + if ($this->_compress_type == 'none') { + $this->_file = @fopen($v_filename, "rb"); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + return false; + } + } + } } if ($this->_file == 0) { - $this->_error('Unable to open in read mode \''.$v_filename.'\''); + $this->_error('Unable to open in read mode \'' . $v_filename . '\''); return false; } return true; } + // }}} // {{{ _openReadWrite() function _openReadWrite() { - if ($this->_compress_type == 'gz') + if ($this->_compress_type == 'gz') { $this->_file = @gzopen($this->_tarname, "r+b"); - else if ($this->_compress_type == 'bz2') { - $this->_error('Unable to open bz2 in read/write mode \'' - .$this->_tarname.'\' (limitation of bz2 extension)'); - return false; - } else if ($this->_compress_type == 'none') - $this->_file = @fopen($this->_tarname, "r+b"); - else { - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); - return false; + } else { + if ($this->_compress_type == 'bz2') { + $this->_error( + 'Unable to open bz2 in read/write mode \'' + . $this->_tarname . '\' (limitation of bz2 extension)' + ); + return false; + } else { + if ($this->_compress_type == 'lzma2') { + $this->_error( + 'Unable to open lzma2 in read/write mode \'' + . $this->_tarname . '\' (limitation of lzma2 extension)' + ); + return false; + } else { + if ($this->_compress_type == 'none') { + $this->_file = @fopen($this->_tarname, "r+b"); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + return false; + } + } + } } if ($this->_file == 0) { - $this->_error('Unable to open in read/write mode \'' - .$this->_tarname.'\''); + $this->_error( + 'Unable to open in read/write mode \'' + . $this->_tarname . '\'' + ); return false; } return true; } + // }}} // {{{ _close() @@ -2024,15 +2187,26 @@ class Archive_Tar extends PEAR { //if (isset($this->_file)) { if (is_resource($this->_file)) { - if ($this->_compress_type == 'gz') + if ($this->_compress_type == 'gz') { @gzclose($this->_file); - else if ($this->_compress_type == 'bz2') - @bzclose($this->_file); - else if ($this->_compress_type == 'none') - @fclose($this->_file); - else - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); + } else { + if ($this->_compress_type == 'bz2') { + @bzclose($this->_file); + } else { + if ($this->_compress_type == 'lzma2') { + @xzclose($this->_file); + } else { + if ($this->_compress_type == 'none') { + @fclose($this->_file); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + } + } + } + } $this->_file = 0; } @@ -2046,6 +2220,7 @@ class Archive_Tar extends PEAR return true; } + // }}} // {{{ _cleanFile() @@ -2066,276 +2241,367 @@ class Archive_Tar extends PEAR return true; } + // }}} // {{{ _writeBlock() - function _writeBlock($p_binary_data, $p_len=null) - { - if (is_resource($this->_file)) { - if ($p_len === null) { - if ($this->_compress_type == 'gz') - @gzputs($this->_file, $p_binary_data); - else if ($this->_compress_type == 'bz2') - @bzwrite($this->_file, $p_binary_data); - else if ($this->_compress_type == 'none') - @fputs($this->_file, $p_binary_data); - else - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); - } else { - if ($this->_compress_type == 'gz') - @gzputs($this->_file, $p_binary_data, $p_len); - else if ($this->_compress_type == 'bz2') - @bzwrite($this->_file, $p_binary_data, $p_len); - else if ($this->_compress_type == 'none') - @fputs($this->_file, $p_binary_data, $p_len); - else - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); + function _writeBlock($p_binary_data, $p_len = null) + { + if (is_resource($this->_file)) { + if ($p_len === null) { + if ($this->_compress_type == 'gz') { + @gzputs($this->_file, $p_binary_data); + } else { + if ($this->_compress_type == 'bz2') { + @bzwrite($this->_file, $p_binary_data); + } else { + if ($this->_compress_type == 'lzma2') { + @xzwrite($this->_file, $p_binary_data); + } else { + if ($this->_compress_type == 'none') { + @fputs($this->_file, $p_binary_data); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + } + } + } + } + } else { + if ($this->_compress_type == 'gz') { + @gzputs($this->_file, $p_binary_data, $p_len); + } else { + if ($this->_compress_type == 'bz2') { + @bzwrite($this->_file, $p_binary_data, $p_len); + } else { + if ($this->_compress_type == 'lzma2') { + @xzwrite($this->_file, $p_binary_data, $p_len); + } else { + if ($this->_compress_type == 'none') { + @fputs($this->_file, $p_binary_data, $p_len); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + } + } + } + } - } - } - return true; + } + } + return true; } + // }}} // {{{ _readBlock() function _readBlock() { - $v_block = null; - if (is_resource($this->_file)) { - if ($this->_compress_type == 'gz') - $v_block = @gzread($this->_file, 512); - else if ($this->_compress_type == 'bz2') - $v_block = @bzread($this->_file, 512); - else if ($this->_compress_type == 'none') - $v_block = @fread($this->_file, 512); - else - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); - } - return $v_block; + $v_block = null; + if (is_resource($this->_file)) { + if ($this->_compress_type == 'gz') { + $v_block = @gzread($this->_file, 512); + } else { + if ($this->_compress_type == 'bz2') { + $v_block = @bzread($this->_file, 512); + } else { + if ($this->_compress_type == 'lzma2') { + $v_block = @xzread($this->_file, 512); + } else { + if ($this->_compress_type == 'none') { + $v_block = @fread($this->_file, 512); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + } + } + } + } + } + return $v_block; } + // }}} // {{{ _jumpBlock() - function _jumpBlock($p_len=null) + function _jumpBlock($p_len = null) { - if (is_resource($this->_file)) { - if ($p_len === null) - $p_len = 1; + if (is_resource($this->_file)) { + if ($p_len === null) { + $p_len = 1; + } - if ($this->_compress_type == 'gz') { - @gzseek($this->_file, gztell($this->_file)+($p_len*512)); - } - else if ($this->_compress_type == 'bz2') { - // ----- Replace missing bztell() and bzseek() - for ($i=0; $i<$p_len; $i++) - $this->_readBlock(); - } else if ($this->_compress_type == 'none') - @fseek($this->_file, $p_len*512, SEEK_CUR); - else - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); - - } - return true; + if ($this->_compress_type == 'gz') { + @gzseek($this->_file, gztell($this->_file) + ($p_len * 512)); + } else { + if ($this->_compress_type == 'bz2') { + // ----- Replace missing bztell() and bzseek() + for ($i = 0; $i < $p_len; $i++) { + $this->_readBlock(); + } + } else { + if ($this->_compress_type == 'lzma2') { + // ----- Replace missing xztell() and xzseek() + for ($i = 0; $i < $p_len; $i++) { + $this->_readBlock(); + } + } else { + if ($this->_compress_type == 'none') { + @fseek($this->_file, $p_len * 512, SEEK_CUR); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + } + } + } + } + + } + return true; } + // }}} // {{{ _writeFooter() function _writeFooter() { - if (is_resource($this->_file)) { - // ----- Write the last 0 filled block for end of archive - $v_binary_data = pack('a1024', ''); - $this->_writeBlock($v_binary_data); - } - return true; + if (is_resource($this->_file)) { + // ----- Write the last 0 filled block for end of archive + $v_binary_data = pack('a1024', ''); + $this->_writeBlock($v_binary_data); + } + return true; } + // }}} // {{{ _addList() function _addList($p_list, $p_add_dir, $p_remove_dir) { - $v_result=true; - $v_header = array(); - - // ----- Remove potential windows directory separator - $p_add_dir = $this->_translateWinPath($p_add_dir); - $p_remove_dir = $this->_translateWinPath($p_remove_dir, false); - - if (!$this->_file) { - $this->_error('Invalid file descriptor'); - return false; - } + $v_result = true; + $v_header = array(); - if (sizeof($p_list) == 0) - return true; + // ----- Remove potential windows directory separator + $p_add_dir = $this->_translateWinPath($p_add_dir); + $p_remove_dir = $this->_translateWinPath($p_remove_dir, false); - foreach ($p_list as $v_filename) { - if (!$v_result) { - break; - } + if (!$this->_file) { + $this->_error('Invalid file descriptor'); + return false; + } - // ----- Skip the current tar name - if ($v_filename == $this->_tarname) - continue; + if (sizeof($p_list) == 0) { + return true; + } - if ($v_filename == '') - continue; + foreach ($p_list as $v_filename) { + if (!$v_result) { + break; + } - // ----- ignore files and directories matching the ignore regular expression - if ($this->_ignore_regexp && preg_match($this->_ignore_regexp, '/'.$v_filename)) { - $this->_warning("File '$v_filename' ignored"); - continue; - } + // ----- Skip the current tar name + if ($v_filename == $this->_tarname) { + continue; + } - if (!file_exists($v_filename) && !is_link($v_filename)) { - $this->_warning("File '$v_filename' does not exist"); - continue; - } + if ($v_filename == '') { + continue; + } - // ----- Add the file or directory header - if (!$this->_addFile($v_filename, $v_header, $p_add_dir, $p_remove_dir)) - return false; + // ----- ignore files and directories matching the ignore regular expression + if ($this->_ignore_regexp && preg_match($this->_ignore_regexp, '/' . $v_filename)) { + $this->_warning("File '$v_filename' ignored"); + continue; + } - if (@is_dir($v_filename) && !@is_link($v_filename)) { - if (!($p_hdir = opendir($v_filename))) { - $this->_warning("Directory '$v_filename' can not be read"); + if (!file_exists($v_filename) && !is_link($v_filename)) { + $this->_warning("File '$v_filename' does not exist"); continue; } - while (false !== ($p_hitem = readdir($p_hdir))) { - if (($p_hitem != '.') && ($p_hitem != '..')) { - if ($v_filename != ".") - $p_temp_list[0] = $v_filename.'/'.$p_hitem; - else - $p_temp_list[0] = $p_hitem; - $v_result = $this->_addList($p_temp_list, - $p_add_dir, - $p_remove_dir); - } + // ----- Add the file or directory header + if (!$this->_addFile($v_filename, $v_header, $p_add_dir, $p_remove_dir)) { + return false; } - unset($p_temp_list); - unset($p_hdir); - unset($p_hitem); + if (@is_dir($v_filename) && !@is_link($v_filename)) { + if (!($p_hdir = opendir($v_filename))) { + $this->_warning("Directory '$v_filename' can not be read"); + continue; + } + while (false !== ($p_hitem = readdir($p_hdir))) { + if (($p_hitem != '.') && ($p_hitem != '..')) { + if ($v_filename != ".") { + $p_temp_list[0] = $v_filename . '/' . $p_hitem; + } else { + $p_temp_list[0] = $p_hitem; + } + + $v_result = $this->_addList( + $p_temp_list, + $p_add_dir, + $p_remove_dir + ); + } + } + + unset($p_temp_list); + unset($p_hdir); + unset($p_hitem); + } } - } - return $v_result; + return $v_result; } + // }}} // {{{ _addFile() - function _addFile($p_filename, &$p_header, $p_add_dir, $p_remove_dir) - { - if (!$this->_file) { - $this->_error('Invalid file descriptor'); - return false; - } - - if ($p_filename == '') { - $this->_error('Invalid file name'); - return false; - } - - // ----- Calculate the stored filename - $p_filename = $this->_translateWinPath($p_filename, false);; - $v_stored_filename = $p_filename; - if (strcmp($p_filename, $p_remove_dir) == 0) { - return true; - } - if ($p_remove_dir != '') { - if (substr($p_remove_dir, -1) != '/') - $p_remove_dir .= '/'; - - if (substr($p_filename, 0, strlen($p_remove_dir)) == $p_remove_dir) - $v_stored_filename = substr($p_filename, strlen($p_remove_dir)); - } - $v_stored_filename = $this->_translateWinPath($v_stored_filename); - if ($p_add_dir != '') { - if (substr($p_add_dir, -1) == '/') - $v_stored_filename = $p_add_dir.$v_stored_filename; - else - $v_stored_filename = $p_add_dir.'/'.$v_stored_filename; - } - - $v_stored_filename = $this->_pathReduction($v_stored_filename); - - if ($this->_isArchive($p_filename)) { - if (($v_file = @fopen($p_filename, "rb")) == 0) { - $this->_warning("Unable to open file '".$p_filename - ."' in binary read mode"); - return true; - } + function _addFile($p_filename, &$p_header, $p_add_dir, $p_remove_dir, $v_stored_filename = null) + { + if (!$this->_file) { + $this->_error('Invalid file descriptor'); + return false; + } - if (!$this->_writeHeader($p_filename, $v_stored_filename)) - return false; + if ($p_filename == '') { + $this->_error('Invalid file name'); + return false; + } - while (($v_buffer = fread($v_file, 512)) != '') { - $v_binary_data = pack("a512", "$v_buffer"); - $this->_writeBlock($v_binary_data); - } + if (is_null($v_stored_filename)) { + // ----- Calculate the stored filename + $p_filename = $this->_translateWinPath($p_filename, false);; + $v_stored_filename = $p_filename; + + if (strcmp($p_filename, $p_remove_dir) == 0) { + return true; + } + + if ($p_remove_dir != '') { + if (substr($p_remove_dir, -1) != '/') { + $p_remove_dir .= '/'; + } - fclose($v_file); + if (substr($p_filename, 0, strlen($p_remove_dir)) == $p_remove_dir) { + $v_stored_filename = substr($p_filename, strlen($p_remove_dir)); + } + } - } else { - // ----- Only header for dir - if (!$this->_writeHeader($p_filename, $v_stored_filename)) - return false; - } + $v_stored_filename = $this->_translateWinPath($v_stored_filename); + if ($p_add_dir != '') { + if (substr($p_add_dir, -1) == '/') { + $v_stored_filename = $p_add_dir . $v_stored_filename; + } else { + $v_stored_filename = $p_add_dir . '/' . $v_stored_filename; + } + } - return true; + $v_stored_filename = $this->_pathReduction($v_stored_filename); + } + + if ($this->_isArchive($p_filename)) { + if (($v_file = @fopen($p_filename, "rb")) == 0) { + $this->_warning( + "Unable to open file '" . $p_filename + . "' in binary read mode" + ); + return true; + } + + if (!$this->_writeHeader($p_filename, $v_stored_filename)) { + return false; + } + + while (($v_buffer = fread($v_file, 512)) != '') { + $v_binary_data = pack("a512", "$v_buffer"); + $this->_writeBlock($v_binary_data); + } + + fclose($v_file); + + } else { + // ----- Only header for dir + if (!$this->_writeHeader($p_filename, $v_stored_filename)) { + return false; + } + } + + return true; } + // }}} // {{{ _addString() - function _addString($p_filename, $p_string, $p_datetime = false) - { - if (!$this->_file) { - $this->_error('Invalid file descriptor'); - return false; - } - - if ($p_filename == '') { - $this->_error('Invalid file name'); - return false; - } - - // ----- Calculate the stored filename - $p_filename = $this->_translateWinPath($p_filename, false);; - - // ----- If datetime is not specified, set current time - if ($p_datetime === false) { - $p_datetime = time(); - } - - if (!$this->_writeHeaderBlock($p_filename, strlen($p_string), - $p_datetime, 384, "", 0, 0)) - return false; - - $i=0; - while (($v_buffer = substr($p_string, (($i++)*512), 512)) != '') { - $v_binary_data = pack("a512", $v_buffer); - $this->_writeBlock($v_binary_data); - } - - return true; + function _addString($p_filename, $p_string, $p_datetime = false, $p_params = array()) + { + $p_stamp = @$p_params["stamp"] ? $p_params["stamp"] : ($p_datetime ? $p_datetime : time()); + $p_mode = @$p_params["mode"] ? $p_params["mode"] : 0600; + $p_type = @$p_params["type"] ? $p_params["type"] : ""; + $p_uid = @$p_params["uid"] ? $p_params["uid"] : 0; + $p_gid = @$p_params["gid"] ? $p_params["gid"] : 0; + if (!$this->_file) { + $this->_error('Invalid file descriptor'); + return false; + } + + if ($p_filename == '') { + $this->_error('Invalid file name'); + return false; + } + + // ----- Calculate the stored filename + $p_filename = $this->_translateWinPath($p_filename, false);; + + // ----- If datetime is not specified, set current time + if ($p_datetime === false) { + $p_datetime = time(); + } + + if (!$this->_writeHeaderBlock( + $p_filename, + strlen($p_string), + $p_stamp, + $p_mode, + $p_type, + $p_uid, + $p_gid + ) + ) { + return false; + } + + $i = 0; + while (($v_buffer = substr($p_string, (($i++) * 512), 512)) != '') { + $v_binary_data = pack("a512", $v_buffer); + $this->_writeBlock($v_binary_data); + } + + return true; } + // }}} // {{{ _writeHeader() function _writeHeader($p_filename, $p_stored_filename) { - if ($p_stored_filename == '') + if ($p_stored_filename == '') { $p_stored_filename = $p_filename; + } $v_reduce_filename = $this->_pathReduction($p_stored_filename); if (strlen($v_reduce_filename) > 99) { - if (!$this->_writeLongHeader($v_reduce_filename)) - return false; + if (!$this->_writeLongHeader($v_reduce_filename)) { + return false; + } } $v_info = lstat($p_filename); @@ -2348,34 +2614,31 @@ class Archive_Tar extends PEAR $v_linkname = ''; if (@is_link($p_filename)) { - $v_typeflag = '2'; - $v_linkname = readlink($p_filename); - $v_size = sprintf("%011s", DecOct(0)); + $v_typeflag = '2'; + $v_linkname = readlink($p_filename); + $v_size = sprintf("%011s", DecOct(0)); } elseif (@is_dir($p_filename)) { - $v_typeflag = "5"; - $v_size = sprintf("%011s", DecOct(0)); + $v_typeflag = "5"; + $v_size = sprintf("%011s", DecOct(0)); } else { - $v_typeflag = '0'; - clearstatcache(); - $v_size = sprintf("%011s", DecOct($v_info['size'])); + $v_typeflag = '0'; + clearstatcache(); + $v_size = sprintf("%011s", DecOct($v_info['size'])); } $v_magic = 'ustar '; $v_version = ' '; - - if (function_exists('posix_getpwuid')) - { - $userinfo = posix_getpwuid($v_info[4]); - $groupinfo = posix_getgrgid($v_info[5]); - - $v_uname = $userinfo['name']; - $v_gname = $groupinfo['name']; - } - else - { - $v_uname = ''; - $v_gname = ''; + + if (function_exists('posix_getpwuid')) { + $userinfo = posix_getpwuid($v_info[4]); + $groupinfo = posix_getgrgid($v_info[5]); + + $v_uname = $userinfo['name']; + $v_gname = $groupinfo['name']; + } else { + $v_uname = ''; + $v_gname = ''; } $v_devmajor = ''; @@ -2384,25 +2647,43 @@ class Archive_Tar extends PEAR $v_prefix = ''; - $v_binary_data_first = pack("a100a8a8a8a12a12", - $v_reduce_filename, $v_perms, $v_uid, - $v_gid, $v_size, $v_mtime); - $v_binary_data_last = pack("a1a100a6a2a32a32a8a8a155a12", - $v_typeflag, $v_linkname, $v_magic, - $v_version, $v_uname, $v_gname, - $v_devmajor, $v_devminor, $v_prefix, ''); + $v_binary_data_first = pack( + "a100a8a8a8a12a12", + $v_reduce_filename, + $v_perms, + $v_uid, + $v_gid, + $v_size, + $v_mtime + ); + $v_binary_data_last = pack( + "a1a100a6a2a32a32a8a8a155a12", + $v_typeflag, + $v_linkname, + $v_magic, + $v_version, + $v_uname, + $v_gname, + $v_devmajor, + $v_devminor, + $v_prefix, + '' + ); // ----- Calculate the checksum $v_checksum = 0; // ..... First part of the header - for ($i=0; $i<148; $i++) - $v_checksum += ord(substr($v_binary_data_first,$i,1)); + for ($i = 0; $i < 148; $i++) { + $v_checksum += ord(substr($v_binary_data_first, $i, 1)); + } // ..... Ignore the checksum value and replace it by ' ' (space) - for ($i=148; $i<156; $i++) + for ($i = 148; $i < 156; $i++) { $v_checksum += ord(' '); + } // ..... Last part of the header - for ($i=156, $j=0; $i<512; $i++, $j++) - $v_checksum += ord(substr($v_binary_data_last,$j,1)); + for ($i = 156, $j = 0; $i < 512; $i++, $j++) { + $v_checksum += ord(substr($v_binary_data_last, $j, 1)); + } // ----- Write the first 148 bytes of the header in the archive $this->_writeBlock($v_binary_data_first, 148); @@ -2417,23 +2698,31 @@ class Archive_Tar extends PEAR return true; } + // }}} // {{{ _writeHeaderBlock() - function _writeHeaderBlock($p_filename, $p_size, $p_mtime=0, $p_perms=0, - $p_type='', $p_uid=0, $p_gid=0) - { + function _writeHeaderBlock( + $p_filename, + $p_size, + $p_mtime = 0, + $p_perms = 0, + $p_type = '', + $p_uid = 0, + $p_gid = 0 + ) { $p_filename = $this->_pathReduction($p_filename); if (strlen($p_filename) > 99) { - if (!$this->_writeLongHeader($p_filename)) - return false; + if (!$this->_writeLongHeader($p_filename)) { + return false; + } } if ($p_type == "5") { - $v_size = sprintf("%011s", DecOct(0)); + $v_size = sprintf("%011s", DecOct(0)); } else { - $v_size = sprintf("%011s", DecOct($p_size)); + $v_size = sprintf("%011s", DecOct($p_size)); } $v_uid = sprintf("%07s", DecOct($p_uid)); @@ -2448,45 +2737,60 @@ class Archive_Tar extends PEAR $v_version = ' '; - if (function_exists('posix_getpwuid')) - { - $userinfo = posix_getpwuid($p_uid); - $groupinfo = posix_getgrgid($p_gid); - - $v_uname = $userinfo['name']; - $v_gname = $groupinfo['name']; - } - else - { - $v_uname = ''; - $v_gname = ''; + if (function_exists('posix_getpwuid')) { + $userinfo = posix_getpwuid($p_uid); + $groupinfo = posix_getgrgid($p_gid); + + $v_uname = $userinfo['name']; + $v_gname = $groupinfo['name']; + } else { + $v_uname = ''; + $v_gname = ''; } - + $v_devmajor = ''; $v_devminor = ''; $v_prefix = ''; - $v_binary_data_first = pack("a100a8a8a8a12A12", - $p_filename, $v_perms, $v_uid, $v_gid, - $v_size, $v_mtime); - $v_binary_data_last = pack("a1a100a6a2a32a32a8a8a155a12", - $p_type, $v_linkname, $v_magic, - $v_version, $v_uname, $v_gname, - $v_devmajor, $v_devminor, $v_prefix, ''); + $v_binary_data_first = pack( + "a100a8a8a8a12A12", + $p_filename, + $v_perms, + $v_uid, + $v_gid, + $v_size, + $v_mtime + ); + $v_binary_data_last = pack( + "a1a100a6a2a32a32a8a8a155a12", + $p_type, + $v_linkname, + $v_magic, + $v_version, + $v_uname, + $v_gname, + $v_devmajor, + $v_devminor, + $v_prefix, + '' + ); // ----- Calculate the checksum $v_checksum = 0; // ..... First part of the header - for ($i=0; $i<148; $i++) - $v_checksum += ord(substr($v_binary_data_first,$i,1)); + for ($i = 0; $i < 148; $i++) { + $v_checksum += ord(substr($v_binary_data_first, $i, 1)); + } // ..... Ignore the checksum value and replace it by ' ' (space) - for ($i=148; $i<156; $i++) + for ($i = 148; $i < 156; $i++) { $v_checksum += ord(' '); + } // ..... Last part of the header - for ($i=156, $j=0; $i<512; $i++, $j++) - $v_checksum += ord(substr($v_binary_data_last,$j,1)); + for ($i = 156, $j = 0; $i < 512; $i++, $j++) { + $v_checksum += ord(substr($v_binary_data_last, $j, 1)); + } // ----- Write the first 148 bytes of the header in the archive $this->_writeBlock($v_binary_data_first, 148); @@ -2501,6 +2805,7 @@ class Archive_Tar extends PEAR return true; } + // }}} // {{{ _writeLongHeader() @@ -2526,24 +2831,43 @@ class Archive_Tar extends PEAR $v_prefix = ''; - $v_binary_data_first = pack("a100a8a8a8a12a12", - '././@LongLink', 0, 0, 0, $v_size, 0); - $v_binary_data_last = pack("a1a100a6a2a32a32a8a8a155a12", - $v_typeflag, $v_linkname, $v_magic, - $v_version, $v_uname, $v_gname, - $v_devmajor, $v_devminor, $v_prefix, ''); + $v_binary_data_first = pack( + "a100a8a8a8a12a12", + '././@LongLink', + 0, + 0, + 0, + $v_size, + 0 + ); + $v_binary_data_last = pack( + "a1a100a6a2a32a32a8a8a155a12", + $v_typeflag, + $v_linkname, + $v_magic, + $v_version, + $v_uname, + $v_gname, + $v_devmajor, + $v_devminor, + $v_prefix, + '' + ); // ----- Calculate the checksum $v_checksum = 0; // ..... First part of the header - for ($i=0; $i<148; $i++) - $v_checksum += ord(substr($v_binary_data_first,$i,1)); + for ($i = 0; $i < 148; $i++) { + $v_checksum += ord(substr($v_binary_data_first, $i, 1)); + } // ..... Ignore the checksum value and replace it by ' ' (space) - for ($i=148; $i<156; $i++) + for ($i = 148; $i < 156; $i++) { $v_checksum += ord(' '); + } // ..... Last part of the header - for ($i=156, $j=0; $i<512; $i++, $j++) - $v_checksum += ord(substr($v_binary_data_last,$j,1)); + for ($i = 156, $j = 0; $i < 512; $i++, $j++) { + $v_checksum += ord(substr($v_binary_data_last, $j, 1)); + } // ----- Write the first 148 bytes of the header in the archive $this->_writeBlock($v_binary_data_first, 148); @@ -2557,27 +2881,28 @@ class Archive_Tar extends PEAR $this->_writeBlock($v_binary_data_last, 356); // ----- Write the filename as content of the block - $i=0; - while (($v_buffer = substr($p_filename, (($i++)*512), 512)) != '') { + $i = 0; + while (($v_buffer = substr($p_filename, (($i++) * 512), 512)) != '') { $v_binary_data = pack("a512", "$v_buffer"); $this->_writeBlock($v_binary_data); } return true; } + // }}} // {{{ _readHeader() function _readHeader($v_binary_data, &$v_header) { - if (strlen($v_binary_data)==0) { + if (strlen($v_binary_data) == 0) { $v_header['filename'] = ''; return true; } if (strlen($v_binary_data) != 512) { $v_header['filename'] = ''; - $this->_error('Invalid block size : '.strlen($v_binary_data)); + $this->_error('Invalid block size : ' . strlen($v_binary_data)); return false; } @@ -2587,23 +2912,26 @@ class Archive_Tar extends PEAR // ----- Calculate the checksum $v_checksum = 0; // ..... First part of the header - for ($i=0; $i<148; $i++) - $v_checksum+=ord(substr($v_binary_data,$i,1)); + for ($i = 0; $i < 148; $i++) { + $v_checksum += ord(substr($v_binary_data, $i, 1)); + } // ..... Ignore the checksum value and replace it by ' ' (space) - for ($i=148; $i<156; $i++) + for ($i = 148; $i < 156; $i++) { $v_checksum += ord(' '); + } // ..... Last part of the header - for ($i=156; $i<512; $i++) - $v_checksum+=ord(substr($v_binary_data,$i,1)); + for ($i = 156; $i < 512; $i++) { + $v_checksum += ord(substr($v_binary_data, $i, 1)); + } - if (version_compare(PHP_VERSION,"5.5.0-dev")<0) { + if (version_compare(PHP_VERSION, "5.5.0-dev") < 0) { $fmt = "a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/" . - "a8checksum/a1typeflag/a100link/a6magic/a2version/" . - "a32uname/a32gname/a8devmajor/a8devminor/a131prefix"; + "a8checksum/a1typeflag/a100link/a6magic/a2version/" . + "a32uname/a32gname/a8devmajor/a8devminor/a131prefix"; } else { $fmt = "Z100filename/Z8mode/Z8uid/Z8gid/Z12size/Z12mtime/" . - "Z8checksum/Z1typeflag/Z100link/Z6magic/Z2version/" . - "Z32uname/Z32gname/Z8devmajor/Z8devminor/Z131prefix"; + "Z8checksum/Z1typeflag/Z100link/Z6magic/Z2version/" . + "Z32uname/Z32gname/Z8devmajor/Z8devminor/Z131prefix"; } $v_data = unpack($fmt, $v_binary_data); @@ -2617,20 +2945,25 @@ class Archive_Tar extends PEAR $v_header['filename'] = ''; // ----- Look for last block (empty block) - if (($v_checksum == 256) && ($v_header['checksum'] == 0)) + if (($v_checksum == 256) && ($v_header['checksum'] == 0)) { return true; + } - $this->_error('Invalid checksum for file "'.$v_data['filename'] - .'" : '.$v_checksum.' calculated, ' - .$v_header['checksum'].' expected'); + $this->_error( + 'Invalid checksum for file "' . $v_data['filename'] + . '" : ' . $v_checksum . ' calculated, ' + . $v_header['checksum'] . ' expected' + ); return false; } // ----- Extract the properties $v_header['filename'] = $v_data['filename']; if ($this->_maliciousFilename($v_header['filename'])) { - $this->_error('Malicious .tar detected, file "' . $v_header['filename'] . - '" will not install in desired directory tree'); + $this->_error( + 'Malicious .tar detected, file "' . $v_header['filename'] . + '" will not install in desired directory tree' + ); return false; } $v_header['mode'] = OctDec(trim($v_data['mode'])); @@ -2639,7 +2972,7 @@ class Archive_Tar extends PEAR $v_header['size'] = OctDec(trim($v_data['size'])); $v_header['mtime'] = OctDec(trim($v_data['mtime'])); if (($v_header['typeflag'] = $v_data['typeflag']) == "5") { - $v_header['size'] = 0; + $v_header['size'] = 0; } $v_header['link'] = trim($v_data['link']); /* ----- All these fields are removed form the header because @@ -2654,6 +2987,7 @@ class Archive_Tar extends PEAR return true; } + // }}} // {{{ _maliciousFilename() @@ -2675,369 +3009,431 @@ class Archive_Tar extends PEAR } return false; } + // }}} // {{{ _readLongHeader() function _readLongHeader(&$v_header) { - $v_filename = ''; - $n = floor($v_header['size']/512); - for ($i=0; $i<$n; $i++) { - $v_content = $this->_readBlock(); - $v_filename .= $v_content; - } - if (($v_header['size'] % 512) != 0) { - $v_content = $this->_readBlock(); - $v_filename .= trim($v_content); - } - - // ----- Read the next header - $v_binary_data = $this->_readBlock(); - - if (!$this->_readHeader($v_binary_data, $v_header)) - return false; + $v_filename = ''; + $n = floor($v_header['size'] / 512); + for ($i = 0; $i < $n; $i++) { + $v_content = $this->_readBlock(); + $v_filename .= $v_content; + } + if (($v_header['size'] % 512) != 0) { + $v_content = $this->_readBlock(); + $v_filename .= trim($v_content); + } - $v_filename = trim($v_filename); - $v_header['filename'] = $v_filename; + // ----- Read the next header + $v_binary_data = $this->_readBlock(); + + if (!$this->_readHeader($v_binary_data, $v_header)) { + return false; + } + + $v_filename = trim($v_filename); + $v_header['filename'] = $v_filename; if ($this->_maliciousFilename($v_filename)) { - $this->_error('Malicious .tar detected, file "' . $v_filename . - '" will not install in desired directory tree'); + $this->_error( + 'Malicious .tar detected, file "' . $v_filename . + '" will not install in desired directory tree' + ); return false; - } + } - return true; + return true; } + // }}} // {{{ _extractInString() /** - * This method extract from the archive one file identified by $p_filename. - * The return value is a string with the file content, or null on error. - * - * @param string $p_filename The path of the file to extract in a string. - * - * @return a string with the file content or null. - * @access private - */ + * This method extract from the archive one file identified by $p_filename. + * The return value is a string with the file content, or null on error. + * + * @param string $p_filename The path of the file to extract in a string. + * + * @return a string with the file content or null. + * @access private + */ function _extractInString($p_filename) { $v_result_str = ""; - While (strlen($v_binary_data = $this->_readBlock()) != 0) - { - if (!$this->_readHeader($v_binary_data, $v_header)) - return null; + While (strlen($v_binary_data = $this->_readBlock()) != 0) { + if (!$this->_readHeader($v_binary_data, $v_header)) { + return null; + } - if ($v_header['filename'] == '') - continue; + if ($v_header['filename'] == '') { + continue; + } - // ----- Look for long filename - if ($v_header['typeflag'] == 'L') { - if (!$this->_readLongHeader($v_header)) - return null; - } + // ----- Look for long filename + if ($v_header['typeflag'] == 'L') { + if (!$this->_readLongHeader($v_header)) { + return null; + } + } - if ($v_header['filename'] == $p_filename) { - if ($v_header['typeflag'] == "5") { - $this->_error('Unable to extract in string a directory ' - .'entry {'.$v_header['filename'].'}'); - return null; - } else { - $n = floor($v_header['size']/512); - for ($i=0; $i<$n; $i++) { - $v_result_str .= $this->_readBlock(); - } - if (($v_header['size'] % 512) != 0) { - $v_content = $this->_readBlock(); - $v_result_str .= substr($v_content, 0, - ($v_header['size'] % 512)); - } - return $v_result_str; - } - } else { - $this->_jumpBlock(ceil(($v_header['size']/512))); - } + if ($v_header['filename'] == $p_filename) { + if ($v_header['typeflag'] == "5") { + $this->_error( + 'Unable to extract in string a directory ' + . 'entry {' . $v_header['filename'] . '}' + ); + return null; + } else { + $n = floor($v_header['size'] / 512); + for ($i = 0; $i < $n; $i++) { + $v_result_str .= $this->_readBlock(); + } + if (($v_header['size'] % 512) != 0) { + $v_content = $this->_readBlock(); + $v_result_str .= substr( + $v_content, + 0, + ($v_header['size'] % 512) + ); + } + return $v_result_str; + } + } else { + $this->_jumpBlock(ceil(($v_header['size'] / 512))); + } } return null; } + // }}} // {{{ _extractList() - function _extractList($p_path, &$p_list_detail, $p_mode, - $p_file_list, $p_remove_path, $p_preserve=false) - { - $v_result=true; - $v_nb = 0; - $v_extract_all = true; - $v_listing = false; - - $p_path = $this->_translateWinPath($p_path, false); - if ($p_path == '' || (substr($p_path, 0, 1) != '/' - && substr($p_path, 0, 3) != "../" && !strpos($p_path, ':'))) { - $p_path = "./".$p_path; - } - $p_remove_path = $this->_translateWinPath($p_remove_path); - - // ----- Look for path to remove format (should end by /) - if (($p_remove_path != '') && (substr($p_remove_path, -1) != '/')) - $p_remove_path .= '/'; - $p_remove_path_size = strlen($p_remove_path); - - switch ($p_mode) { - case "complete" : + function _extractList( + $p_path, + &$p_list_detail, + $p_mode, + $p_file_list, + $p_remove_path, + $p_preserve = false + ) { + $v_result = true; + $v_nb = 0; $v_extract_all = true; $v_listing = false; - break; - case "partial" : - $v_extract_all = false; - $v_listing = false; - break; - case "list" : - $v_extract_all = false; - $v_listing = true; - break; - default : - $this->_error('Invalid extract mode ('.$p_mode.')'); - return false; - } - clearstatcache(); + $p_path = $this->_translateWinPath($p_path, false); + if ($p_path == '' || (substr($p_path, 0, 1) != '/' + && substr($p_path, 0, 3) != "../" && !strpos($p_path, ':')) + ) { + $p_path = "./" . $p_path; + } + $p_remove_path = $this->_translateWinPath($p_remove_path); - while (strlen($v_binary_data = $this->_readBlock()) != 0) - { - $v_extract_file = FALSE; - $v_extraction_stopped = 0; + // ----- Look for path to remove format (should end by /) + if (($p_remove_path != '') && (substr($p_remove_path, -1) != '/')) { + $p_remove_path .= '/'; + } + $p_remove_path_size = strlen($p_remove_path); - if (!$this->_readHeader($v_binary_data, $v_header)) - return false; + switch ($p_mode) { + case "complete" : + $v_extract_all = true; + $v_listing = false; + break; + case "partial" : + $v_extract_all = false; + $v_listing = false; + break; + case "list" : + $v_extract_all = false; + $v_listing = true; + break; + default : + $this->_error('Invalid extract mode (' . $p_mode . ')'); + return false; + } - if ($v_header['filename'] == '') { - continue; - } - - // ----- Look for long filename - if ($v_header['typeflag'] == 'L') { - if (!$this->_readLongHeader($v_header)) - return false; - } - - if ((!$v_extract_all) && (is_array($p_file_list))) { - // ----- By default no unzip if the file is not found - $v_extract_file = false; - - for ($i=0; $i<sizeof($p_file_list); $i++) { - // ----- Look if it is a directory - if (substr($p_file_list[$i], -1) == '/') { - // ----- Look if the directory is in the filename path - if ((strlen($v_header['filename']) > strlen($p_file_list[$i])) - && (substr($v_header['filename'], 0, strlen($p_file_list[$i])) - == $p_file_list[$i])) { - $v_extract_file = true; - break; - } - } + clearstatcache(); - // ----- It is a file, so compare the file names - elseif ($p_file_list[$i] == $v_header['filename']) { - $v_extract_file = true; - break; - } - } - } else { - $v_extract_file = true; - } - - // ----- Look if this file need to be extracted - if (($v_extract_file) && (!$v_listing)) - { - if (($p_remove_path != '') - && (substr($v_header['filename'].'/', 0, $p_remove_path_size) - == $p_remove_path)) { - $v_header['filename'] = substr($v_header['filename'], - $p_remove_path_size); - if( $v_header['filename'] == '' ){ - continue; - } - } - if (($p_path != './') && ($p_path != '/')) { - while (substr($p_path, -1) == '/') - $p_path = substr($p_path, 0, strlen($p_path)-1); + while (strlen($v_binary_data = $this->_readBlock()) != 0) { + $v_extract_file = false; + $v_extraction_stopped = 0; - if (substr($v_header['filename'], 0, 1) == '/') - $v_header['filename'] = $p_path.$v_header['filename']; - else - $v_header['filename'] = $p_path.'/'.$v_header['filename']; - } - if (file_exists($v_header['filename'])) { - if ( (@is_dir($v_header['filename'])) - && ($v_header['typeflag'] == '')) { - $this->_error('File '.$v_header['filename'] - .' already exists as a directory'); - return false; - } - if ( ($this->_isArchive($v_header['filename'])) - && ($v_header['typeflag'] == "5")) { - $this->_error('Directory '.$v_header['filename'] - .' already exists as a file'); - return false; - } - if (!is_writeable($v_header['filename'])) { - $this->_error('File '.$v_header['filename'] - .' already exists and is write protected'); - return false; - } - if (filemtime($v_header['filename']) > $v_header['mtime']) { - // To be completed : An error or silent no replace ? - } - } + if (!$this->_readHeader($v_binary_data, $v_header)) { + return false; + } - // ----- Check the directory availability and create it if necessary - elseif (($v_result - = $this->_dirCheck(($v_header['typeflag'] == "5" - ?$v_header['filename'] - :dirname($v_header['filename'])))) != 1) { - $this->_error('Unable to create path for '.$v_header['filename']); - return false; - } + if ($v_header['filename'] == '') { + continue; + } - if ($v_extract_file) { - if ($v_header['typeflag'] == "5") { - if (!@file_exists($v_header['filename'])) { - if (!@mkdir($v_header['filename'], 0777)) { - $this->_error('Unable to create directory {' - .$v_header['filename'].'}'); + // ----- Look for long filename + if ($v_header['typeflag'] == 'L') { + if (!$this->_readLongHeader($v_header)) { return false; } } - } elseif ($v_header['typeflag'] == "2") { - if (@file_exists($v_header['filename'])) { - @unlink($v_header['filename']); - } - if (!@symlink($v_header['link'], $v_header['filename'])) { - $this->_error('Unable to extract symbolic link {' - .$v_header['filename'].'}'); - return false; - } - } else { - if (($v_dest_file = @fopen($v_header['filename'], "wb")) == 0) { - $this->_error('Error while opening {'.$v_header['filename'] - .'} in write binary mode'); - return false; - } else { - $n = floor($v_header['size']/512); - for ($i=0; $i<$n; $i++) { - $v_content = $this->_readBlock(); - fwrite($v_dest_file, $v_content, 512); - } - if (($v_header['size'] % 512) != 0) { - $v_content = $this->_readBlock(); - fwrite($v_dest_file, $v_content, ($v_header['size'] % 512)); - } - - @fclose($v_dest_file); - - if ($p_preserve) { - @chown($v_header['filename'], $v_header['uid']); - @chgrp($v_header['filename'], $v_header['gid']); - } - - // ----- Change the file mode, mtime - @touch($v_header['filename'], $v_header['mtime']); - if ($v_header['mode'] & 0111) { - // make file executable, obey umask - $mode = fileperms($v_header['filename']) | (~umask() & 0111); - @chmod($v_header['filename'], $mode); + + // ignore extended / pax headers + if ($v_header['typeflag'] == 'x' || $v_header['typeflag'] == 'g') { + $this->_jumpBlock(ceil(($v_header['size'] / 512))); + continue; } - } - // ----- Check the file size - clearstatcache(); - if (!is_file($v_header['filename'])) { - $this->_error('Extracted file '.$v_header['filename'] - .'does not exist. Archive may be corrupted.'); - return false; - } - - $filesize = filesize($v_header['filename']); - if ($filesize != $v_header['size']) { - $this->_error('Extracted file '.$v_header['filename'] - .' does not have the correct file size \'' - .$filesize - .'\' ('.$v_header['size'] - .' expected). Archive may be corrupted.'); - return false; - } - } - } else { - $this->_jumpBlock(ceil(($v_header['size']/512))); - } - } else { - $this->_jumpBlock(ceil(($v_header['size']/512))); - } + if ((!$v_extract_all) && (is_array($p_file_list))) { + // ----- By default no unzip if the file is not found + $v_extract_file = false; - /* TBC : Seems to be unused ... - if ($this->_compress) - $v_end_of_file = @gzeof($this->_file); - else - $v_end_of_file = @feof($this->_file); - */ + for ($i = 0; $i < sizeof($p_file_list); $i++) { + // ----- Look if it is a directory + if (substr($p_file_list[$i], -1) == '/') { + // ----- Look if the directory is in the filename path + if ((strlen($v_header['filename']) > strlen($p_file_list[$i])) + && (substr($v_header['filename'], 0, strlen($p_file_list[$i])) + == $p_file_list[$i]) + ) { + $v_extract_file = true; + break; + } + } // ----- It is a file, so compare the file names + elseif ($p_file_list[$i] == $v_header['filename']) { + $v_extract_file = true; + break; + } + } + } else { + $v_extract_file = true; + } - if ($v_listing || $v_extract_file || $v_extraction_stopped) { - // ----- Log extracted files - if (($v_file_dir = dirname($v_header['filename'])) - == $v_header['filename']) - $v_file_dir = ''; - if ((substr($v_header['filename'], 0, 1) == '/') && ($v_file_dir == '')) - $v_file_dir = '/'; + // ----- Look if this file need to be extracted + if (($v_extract_file) && (!$v_listing)) { + if (($p_remove_path != '') + && (substr($v_header['filename'] . '/', 0, $p_remove_path_size) + == $p_remove_path) + ) { + $v_header['filename'] = substr( + $v_header['filename'], + $p_remove_path_size + ); + if ($v_header['filename'] == '') { + continue; + } + } + if (($p_path != './') && ($p_path != '/')) { + while (substr($p_path, -1) == '/') { + $p_path = substr($p_path, 0, strlen($p_path) - 1); + } - $p_list_detail[$v_nb++] = $v_header; - if (is_array($p_file_list) && (count($p_list_detail) == count($p_file_list))) { - return true; + if (substr($v_header['filename'], 0, 1) == '/') { + $v_header['filename'] = $p_path . $v_header['filename']; + } else { + $v_header['filename'] = $p_path . '/' . $v_header['filename']; + } + } + if (file_exists($v_header['filename'])) { + if ((@is_dir($v_header['filename'])) + && ($v_header['typeflag'] == '') + ) { + $this->_error( + 'File ' . $v_header['filename'] + . ' already exists as a directory' + ); + return false; + } + if (($this->_isArchive($v_header['filename'])) + && ($v_header['typeflag'] == "5") + ) { + $this->_error( + 'Directory ' . $v_header['filename'] + . ' already exists as a file' + ); + return false; + } + if (!is_writeable($v_header['filename'])) { + $this->_error( + 'File ' . $v_header['filename'] + . ' already exists and is write protected' + ); + return false; + } + if (filemtime($v_header['filename']) > $v_header['mtime']) { + // To be completed : An error or silent no replace ? + } + } // ----- Check the directory availability and create it if necessary + elseif (($v_result + = $this->_dirCheck( + ($v_header['typeflag'] == "5" + ? $v_header['filename'] + : dirname($v_header['filename'])) + )) != 1 + ) { + $this->_error('Unable to create path for ' . $v_header['filename']); + return false; + } + + if ($v_extract_file) { + if ($v_header['typeflag'] == "5") { + if (!@file_exists($v_header['filename'])) { + if (!@mkdir($v_header['filename'], 0777)) { + $this->_error( + 'Unable to create directory {' + . $v_header['filename'] . '}' + ); + return false; + } + } + } elseif ($v_header['typeflag'] == "2") { + if (@file_exists($v_header['filename'])) { + @unlink($v_header['filename']); + } + if (!@symlink($v_header['link'], $v_header['filename'])) { + $this->_error( + 'Unable to extract symbolic link {' + . $v_header['filename'] . '}' + ); + return false; + } + } else { + if (($v_dest_file = @fopen($v_header['filename'], "wb")) == 0) { + $this->_error( + 'Error while opening {' . $v_header['filename'] + . '} in write binary mode' + ); + return false; + } else { + $n = floor($v_header['size'] / 512); + for ($i = 0; $i < $n; $i++) { + $v_content = $this->_readBlock(); + fwrite($v_dest_file, $v_content, 512); + } + if (($v_header['size'] % 512) != 0) { + $v_content = $this->_readBlock(); + fwrite($v_dest_file, $v_content, ($v_header['size'] % 512)); + } + + @fclose($v_dest_file); + + if ($p_preserve) { + @chown($v_header['filename'], $v_header['uid']); + @chgrp($v_header['filename'], $v_header['gid']); + } + + // ----- Change the file mode, mtime + @touch($v_header['filename'], $v_header['mtime']); + if ($v_header['mode'] & 0111) { + // make file executable, obey umask + $mode = fileperms($v_header['filename']) | (~umask() & 0111); + @chmod($v_header['filename'], $mode); + } + } + + // ----- Check the file size + clearstatcache(); + if (!is_file($v_header['filename'])) { + $this->_error( + 'Extracted file ' . $v_header['filename'] + . 'does not exist. Archive may be corrupted.' + ); + return false; + } + + $filesize = filesize($v_header['filename']); + if ($filesize != $v_header['size']) { + $this->_error( + 'Extracted file ' . $v_header['filename'] + . ' does not have the correct file size \'' + . $filesize + . '\' (' . $v_header['size'] + . ' expected). Archive may be corrupted.' + ); + return false; + } + } + } else { + $this->_jumpBlock(ceil(($v_header['size'] / 512))); + } + } else { + $this->_jumpBlock(ceil(($v_header['size'] / 512))); + } + + /* TBC : Seems to be unused ... + if ($this->_compress) + $v_end_of_file = @gzeof($this->_file); + else + $v_end_of_file = @feof($this->_file); + */ + + if ($v_listing || $v_extract_file || $v_extraction_stopped) { + // ----- Log extracted files + if (($v_file_dir = dirname($v_header['filename'])) + == $v_header['filename'] + ) { + $v_file_dir = ''; + } + if ((substr($v_header['filename'], 0, 1) == '/') && ($v_file_dir == '')) { + $v_file_dir = '/'; + } + + $p_list_detail[$v_nb++] = $v_header; + if (is_array($p_file_list) && (count($p_list_detail) == count($p_file_list))) { + return true; + } + } } - } - } return true; } + // }}} // {{{ _openAppend() function _openAppend() { - if (filesize($this->_tarname) == 0) - return $this->_openWrite(); + if (filesize($this->_tarname) == 0) { + return $this->_openWrite(); + } if ($this->_compress) { $this->_close(); - if (!@rename($this->_tarname, $this->_tarname.".tmp")) { - $this->_error('Error while renaming \''.$this->_tarname - .'\' to temporary file \''.$this->_tarname - .'.tmp\''); + if (!@rename($this->_tarname, $this->_tarname . ".tmp")) { + $this->_error( + 'Error while renaming \'' . $this->_tarname + . '\' to temporary file \'' . $this->_tarname + . '.tmp\'' + ); return false; } - if ($this->_compress_type == 'gz') - $v_temp_tar = @gzopen($this->_tarname.".tmp", "rb"); - elseif ($this->_compress_type == 'bz2') - $v_temp_tar = @bzopen($this->_tarname.".tmp", "r"); + if ($this->_compress_type == 'gz') { + $v_temp_tar = @gzopen($this->_tarname . ".tmp", "rb"); + } elseif ($this->_compress_type == 'bz2') { + $v_temp_tar = @bzopen($this->_tarname . ".tmp", "r"); + } elseif ($this->_compress_type == 'lzma2') { + $v_temp_tar = @xzopen($this->_tarname . ".tmp", "r"); + } + if ($v_temp_tar == 0) { - $this->_error('Unable to open file \''.$this->_tarname - .'.tmp\' in binary read mode'); - @rename($this->_tarname.".tmp", $this->_tarname); + $this->_error( + 'Unable to open file \'' . $this->_tarname + . '.tmp\' in binary read mode' + ); + @rename($this->_tarname . ".tmp", $this->_tarname); return false; } if (!$this->_openWrite()) { - @rename($this->_tarname.".tmp", $this->_tarname); + @rename($this->_tarname . ".tmp", $this->_tarname); return false; } if ($this->_compress_type == 'gz') { $end_blocks = 0; - + while (!@gzeof($v_temp_tar)) { $v_buffer = @gzread($v_temp_tar, 512); if ($v_buffer == ARCHIVE_TAR_END_BLOCK || strlen($v_buffer) == 0) { @@ -3056,10 +3452,9 @@ class Archive_Tar extends PEAR } @gzclose($v_temp_tar); - } - elseif ($this->_compress_type == 'bz2') { + } elseif ($this->_compress_type == 'bz2') { $end_blocks = 0; - + while (strlen($v_buffer = @bzread($v_temp_tar, 512)) > 0) { if ($v_buffer == ARCHIVE_TAR_END_BLOCK || strlen($v_buffer) == 0) { $end_blocks++; @@ -3077,18 +3472,41 @@ class Archive_Tar extends PEAR } @bzclose($v_temp_tar); + } elseif ($this->_compress_type == 'lzma2') { + $end_blocks = 0; + + while (strlen($v_buffer = @xzread($v_temp_tar, 512)) > 0) { + if ($v_buffer == ARCHIVE_TAR_END_BLOCK || strlen($v_buffer) == 0) { + $end_blocks++; + // do not copy end blocks, we will re-make them + // after appending + continue; + } elseif ($end_blocks > 0) { + for ($i = 0; $i < $end_blocks; $i++) { + $this->_writeBlock(ARCHIVE_TAR_END_BLOCK); + } + $end_blocks = 0; + } + $v_binary_data = pack("a512", $v_buffer); + $this->_writeBlock($v_binary_data); + } + + @xzclose($v_temp_tar); } - if (!@unlink($this->_tarname.".tmp")) { - $this->_error('Error while deleting temporary file \'' - .$this->_tarname.'.tmp\''); + if (!@unlink($this->_tarname . ".tmp")) { + $this->_error( + 'Error while deleting temporary file \'' + . $this->_tarname . '.tmp\'' + ); } } else { // ----- For not compressed tar, just add files before the last - // one or two 512 bytes block - if (!$this->_openReadWrite()) - return false; + // one or two 512 bytes block + if (!$this->_openReadWrite()) { + return false; + } clearstatcache(); $v_size = filesize($this->_tarname); @@ -3099,29 +3517,32 @@ class Archive_Tar extends PEAR fseek($this->_file, $v_size - 1024); if (fread($this->_file, 512) == ARCHIVE_TAR_END_BLOCK) { fseek($this->_file, $v_size - 1024); - } - elseif (fread($this->_file, 512) == ARCHIVE_TAR_END_BLOCK) { + } elseif (fread($this->_file, 512) == ARCHIVE_TAR_END_BLOCK) { fseek($this->_file, $v_size - 512); } } return true; } + // }}} // {{{ _append() - function _append($p_filelist, $p_add_dir='', $p_remove_dir='') + function _append($p_filelist, $p_add_dir = '', $p_remove_dir = '') { - if (!$this->_openAppend()) + if (!$this->_openAppend()) { return false; + } - if ($this->_addList($p_filelist, $p_add_dir, $p_remove_dir)) - $this->_writeFooter(); + if ($this->_addList($p_filelist, $p_add_dir, $p_remove_dir)) { + $this->_writeFooter(); + } $this->_close(); return true; } + // }}} // {{{ _dirCheck() @@ -3137,15 +3558,18 @@ class Archive_Tar extends PEAR function _dirCheck($p_dir) { clearstatcache(); - if ((@is_dir($p_dir)) || ($p_dir == '')) + if ((@is_dir($p_dir)) || ($p_dir == '')) { return true; + } $p_parent_dir = dirname($p_dir); if (($p_parent_dir != $p_dir) && ($p_parent_dir != '') && - (!$this->_dirCheck($p_parent_dir))) - return false; + (!$this->_dirCheck($p_parent_dir)) + ) { + return false; + } if (!@mkdir($p_dir, 0777)) { $this->_error("Unable to create directory '$p_dir'"); @@ -3180,58 +3604,63 @@ class Archive_Tar extends PEAR $v_list = explode('/', $p_dir); // ----- Study directories from last to first - for ($i=sizeof($v_list)-1; $i>=0; $i--) { + for ($i = sizeof($v_list) - 1; $i >= 0; $i--) { // ----- Look for current path if ($v_list[$i] == ".") { // ----- Ignore this directory // Should be the first $i=0, but no check is done - } - else if ($v_list[$i] == "..") { - // ----- Ignore it and ignore the $i-1 - $i--; - } - else if ( ($v_list[$i] == '') - && ($i!=(sizeof($v_list)-1)) - && ($i!=0)) { - // ----- Ignore only the double '//' in path, - // but not the first and last / } else { - $v_result = $v_list[$i].($i!=(sizeof($v_list)-1)?'/' - .$v_result:''); + if ($v_list[$i] == "..") { + // ----- Ignore it and ignore the $i-1 + $i--; + } else { + if (($v_list[$i] == '') + && ($i != (sizeof($v_list) - 1)) + && ($i != 0) + ) { + // ----- Ignore only the double '//' in path, + // but not the first and last / + } else { + $v_result = $v_list[$i] . ($i != (sizeof($v_list) - 1) ? '/' + . $v_result : ''); + } + } } } } - + if (defined('OS_WINDOWS') && OS_WINDOWS) { $v_result = strtr($v_result, '\\', '/'); } - + return $v_result; } // }}} // {{{ _translateWinPath() - function _translateWinPath($p_path, $p_remove_disk_letter=true) + function _translateWinPath($p_path, $p_remove_disk_letter = true) { - if (defined('OS_WINDOWS') && OS_WINDOWS) { - // ----- Look for potential disk letter - if ( ($p_remove_disk_letter) - && (($v_position = strpos($p_path, ':')) != false)) { - $p_path = substr($p_path, $v_position+1); - } - // ----- Change potential windows directory separator - if ((strpos($p_path, '\\') > 0) || (substr($p_path, 0,1) == '\\')) { - $p_path = strtr($p_path, '\\', '/'); - } - } - return $p_path; + if (defined('OS_WINDOWS') && OS_WINDOWS) { + // ----- Look for potential disk letter + if (($p_remove_disk_letter) + && (($v_position = strpos($p_path, ':')) != false) + ) { + $p_path = substr($p_path, $v_position + 1); + } + // ----- Change potential windows directory separator + if ((strpos($p_path, '\\') > 0) || (substr($p_path, 0, 1) == '\\')) { + $p_path = strtr($p_path, '\\', '/'); + } + } + return $p_path; } // }}} } + ?> -package.xml +package.xml <package packagerversion="1.9.4" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd"> <name>Archive_Tar</name> <channel>pear.php.net</channel> @@ -3264,25 +3693,29 @@ loaded. Bz2 compression is also supported with the bz2 extension loaded.</descri <email>stig@php.net</email> <active>no</active> </helper> - <date>2013-02-09</date> - <time>11:44:17</time> + <date>2014-08-04</date> + <time>13:23:07</time> <version> - <release>1.3.11</release> + <release>1.3.12</release> <api>1.3.1</api> </version> <stability> <release>stable</release> <api>stable</api> </stability> - <license uri="http://www.opensource.org/licenses/bsd-license.php">New BSD License</license> + <license uri="http://www.opensource.org/licenses/bsd-license.php">New BSD + License</license> <notes> -* Fix Bug #19746: Broken with PHP 5.5 [mrook] - * Implement Feature #11258: Custom date/time in files added on-the-fly [mrook] +* Fix Bug #19964: Memory leaking in Archive_Tar [mrook] + * Fix Bug #20246: Broken with php 5.5.9 [mrook] + * Fix Bug #20275: "pax_global_header" looks like a regular file [mrook] + * Implement Feature #19827: pass filename to _addFile function - downstream patch [mrook] + * Implement Feature #20132: Add custom mode/uid/gid to addString() [mrook] </notes> <contents> <dir name="/"> - <file baseinstalldir="/" md5sum="c6a0c1df229783f55d2c3e5e93c46d6e" name="Archive/Tar.php" role="php" /> - <file baseinstalldir="/" md5sum="29b03715377b18b1fafcff98a99cc9a7" name="docs/Archive_Tar.txt" role="doc" /> + <file baseinstalldir="/" md5sum="f3d77291fa3b22e11ecf65a0d6112d13" name="Archive/Tar.php" role="php" /> + <file baseinstalldir="/" md5sum="2fb90f0be7089a45c09a0d1182792419" name="docs/Archive_Tar.txt" role="doc" /> </dir> </contents> <compatible> @@ -3305,6 +3738,24 @@ loaded. Bz2 compression is also supported with the bz2 extension loaded.</descri <changelog> <release> <version> + <release>1.3.11</release> + <api>1.3.1</api> + </version> + <stability> + <release>stable</release> + <api>stable</api> + </stability> + <date>2013-02-09</date> + <license uri="http://www.opensource.org/licenses/bsd-license.php">New BSD + License</license> + <notes> +* Fix Bug #19746: Broken with PHP 5.5 [mrook] + * Implement Feature #11258: Custom date/time in files added on-the-fly + * [mrook] + </notes> + </release> + <release> + <version> <release>1.3.10</release> <api>1.3.1</api> </version> @@ -3621,7 +4072,7 @@ Windows bugfix: used wrong directory separators </release> </changelog> </package> - + /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ /** @@ -3667,75 +4118,98 @@ require_once 'PEAR.php'; define('ARCHIVE_TAR_ATT_SEPARATOR', 90001); define('ARCHIVE_TAR_END_BLOCK', pack("a512", '')); +if (!function_exists('gzopen') && function_exists('gzopen64')) { + function gzopen($filename, $mode, $use_include_path = 0) + { + gzopen64($filename, $mode, $use_include_path); + } +} + +if (!function_exists('gztell') && function_exists('gztell64')) { + function gztell($zp) + { + gztell64($zp); + } +} + +if (!function_exists('gzseek') && function_exists('gzseek64')) { + function gzseek($zp, $offset, $whence = SEEK_SET) + { + gzseek64($zp, $offset, $whence); + } +} + /** -* Creates a (compressed) Tar archive -* -* @package Archive_Tar -* @author Vincent Blavet <vincent@phpconcept.net> -* @license http://www.opensource.org/licenses/bsd-license.php New BSD License -* @version $Revision$ -*/ + * Creates a (compressed) Tar archive + * + * @package Archive_Tar + * @author Vincent Blavet <vincent@phpconcept.net> + * @license http://www.opensource.org/licenses/bsd-license.php New BSD License + * @version $Revision$ + */ class Archive_Tar extends PEAR { /** - * @var string Name of the Tar - */ - var $_tarname=''; + * @var string Name of the Tar + */ + var $_tarname = ''; /** - * @var boolean if true, the Tar file will be gzipped - */ - var $_compress=false; + * @var boolean if true, the Tar file will be gzipped + */ + var $_compress = false; /** - * @var string Type of compression : 'none', 'gz' or 'bz2' - */ - var $_compress_type='none'; + * @var string Type of compression : 'none', 'gz', 'bz2' or 'lzma2' + */ + var $_compress_type = 'none'; /** - * @var string Explode separator - */ - var $_separator=' '; + * @var string Explode separator + */ + var $_separator = ' '; /** - * @var file descriptor - */ - var $_file=0; + * @var file descriptor + */ + var $_file = 0; /** - * @var string Local Tar name of a remote Tar (http:// or ftp://) - */ - var $_temp_tarname=''; + * @var string Local Tar name of a remote Tar (http:// or ftp://) + */ + var $_temp_tarname = ''; /** - * @var string regular expression for ignoring files or directories - */ - var $_ignore_regexp=''; + * @var string regular expression for ignoring files or directories + */ + var $_ignore_regexp = ''; /** * @var object PEAR_Error object */ - var $error_object=null; + var $error_object = null; // {{{ constructor /** - * Archive_Tar Class constructor. This flavour of the constructor only - * declare a new Archive_Tar object, identifying it by the name of the - * tar file. - * If the compress argument is set the tar will be read or created as a - * gzip or bz2 compressed TAR file. - * - * @param string $p_tarname The name of the tar archive to create - * @param string $p_compress can be null, 'gz' or 'bz2'. This - * parameter indicates if gzip or bz2 compression - * is required. For compatibility reason the - * boolean value 'true' means 'gz'. - * - * @access public - */ + * Archive_Tar Class constructor. This flavour of the constructor only + * declare a new Archive_Tar object, identifying it by the name of the + * tar file. + * If the compress argument is set the tar will be read or created as a + * gzip or bz2 compressed TAR file. + * + * @param string $p_tarname The name of the tar archive to create + * @param string $p_compress can be null, 'gz', 'bz2' or 'lzma2'. This + * parameter indicates if gzip, bz2 or lzma2 compression + * is required. For compatibility reason the + * boolean value 'true' means 'gz'. + * + * @access public + */ function Archive_Tar($p_tarname, $p_compress = null) { - $this->PEAR(); + if (version_compare(PHP_VERSION, '5.0.0', '<')) { + $this->PEAR(); + } $this->_compress = false; $this->_compress_type = 'none'; if (($p_compress === null) || ($p_compress == '')) { @@ -3751,6 +4225,9 @@ class Archive_Tar extends PEAR } elseif ($data == "BZ") { $this->_compress = true; $this->_compress_type = 'bz2'; + } elseif (file_get_contents($p_tarname, false, null, 1, 4) == '7zXZ') { + $this->_compress = true; + $this->_compress_type = 'lzma2'; } } } else { @@ -3760,42 +4237,67 @@ class Archive_Tar extends PEAR $this->_compress = true; $this->_compress_type = 'gz'; } elseif ((substr($p_tarname, -3) == 'bz2') || - (substr($p_tarname, -2) == 'bz')) { + (substr($p_tarname, -2) == 'bz') + ) { $this->_compress = true; $this->_compress_type = 'bz2'; + } else { + if (substr($p_tarname, -2) == 'xz') { + $this->_compress = true; + $this->_compress_type = 'lzma2'; + } } } } else { if (($p_compress === true) || ($p_compress == 'gz')) { $this->_compress = true; $this->_compress_type = 'gz'; - } else if ($p_compress == 'bz2') { - $this->_compress = true; - $this->_compress_type = 'bz2'; } else { - $this->_error("Unsupported compression type '$p_compress'\n". - "Supported types are 'gz' and 'bz2'.\n"); - return false; + if ($p_compress == 'bz2') { + $this->_compress = true; + $this->_compress_type = 'bz2'; + } else { + if ($p_compress == 'lzma2') { + $this->_compress = true; + $this->_compress_type = 'lzma2'; + } else { + $this->_error( + "Unsupported compression type '$p_compress'\n" . + "Supported types are 'gz', 'bz2' and 'lzma2'.\n" + ); + return false; + } + } } } $this->_tarname = $p_tarname; - if ($this->_compress) { // assert zlib or bz2 extension support - if ($this->_compress_type == 'gz') + if ($this->_compress) { // assert zlib or bz2 or xz extension support + if ($this->_compress_type == 'gz') { $extname = 'zlib'; - else if ($this->_compress_type == 'bz2') - $extname = 'bz2'; + } else { + if ($this->_compress_type == 'bz2') { + $extname = 'bz2'; + } else { + if ($this->_compress_type == 'lzma2') { + $extname = 'xz'; + } + } + } if (!extension_loaded($extname)) { PEAR::loadExtension($extname); } if (!extension_loaded($extname)) { - $this->_error("The extension '$extname' couldn't be found.\n". - "Please make sure your version of PHP was built ". - "with '$extname' support.\n"); + $this->_error( + "The extension '$extname' couldn't be found.\n" . + "Please make sure your version of PHP was built " . + "with '$extname' support.\n" + ); return false; } } } + // }}} // {{{ destructor @@ -3803,69 +4305,82 @@ class Archive_Tar extends PEAR { $this->_close(); // ----- Look for a local copy to delete - if ($this->_temp_tarname != '') + if ($this->_temp_tarname != '') { @unlink($this->_temp_tarname); + } $this->_PEAR(); } + + // }}} + + // {{{ PHP5-compatible destructor + function __destruct() + { + $this->_Archive_Tar(); + } + // }}} // {{{ create() /** - * This method creates the archive file and add the files / directories - * that are listed in $p_filelist. - * If a file with the same name exist and is writable, it is replaced - * by the new tar. - * The method return false and a PEAR error text. - * The $p_filelist parameter can be an array of string, each string - * representing a filename or a directory name with their path if - * needed. It can also be a single string with names separated by a - * single blank. - * For each directory added in the archive, the files and - * sub-directories are also added. - * See also createModify() method for more details. - * - * @param array $p_filelist An array of filenames and directory names, or a - * single string with names separated by a single - * blank space. - * - * @return true on success, false on error. - * @see createModify() - * @access public - */ + * This method creates the archive file and add the files / directories + * that are listed in $p_filelist. + * If a file with the same name exist and is writable, it is replaced + * by the new tar. + * The method return false and a PEAR error text. + * The $p_filelist parameter can be an array of string, each string + * representing a filename or a directory name with their path if + * needed. It can also be a single string with names separated by a + * single blank. + * For each directory added in the archive, the files and + * sub-directories are also added. + * See also createModify() method for more details. + * + * @param array $p_filelist An array of filenames and directory names, or a + * single string with names separated by a single + * blank space. + * + * @return true on success, false on error. + * @see createModify() + * @access public + */ function create($p_filelist) { return $this->createModify($p_filelist, '', ''); } + // }}} // {{{ add() /** - * This method add the files / directories that are listed in $p_filelist in - * the archive. If the archive does not exist it is created. - * The method return false and a PEAR error text. - * The files and directories listed are only added at the end of the archive, - * even if a file with the same name is already archived. - * See also createModify() method for more details. - * - * @param array $p_filelist An array of filenames and directory names, or a - * single string with names separated by a single - * blank space. - * - * @return true on success, false on error. - * @see createModify() - * @access public - */ + * This method add the files / directories that are listed in $p_filelist in + * the archive. If the archive does not exist it is created. + * The method return false and a PEAR error text. + * The files and directories listed are only added at the end of the archive, + * even if a file with the same name is already archived. + * See also createModify() method for more details. + * + * @param array $p_filelist An array of filenames and directory names, or a + * single string with names separated by a single + * blank space. + * + * @return true on success, false on error. + * @see createModify() + * @access public + */ function add($p_filelist) { return $this->addModify($p_filelist, '', ''); } + // }}} // {{{ extract() - function extract($p_path='', $p_preserve=false) + function extract($p_path = '', $p_preserve = false) { return $this->extractModify($p_path, '', $p_preserve); } + // }}} // {{{ listContent() @@ -3883,58 +4398,60 @@ class Archive_Tar extends PEAR return $v_list_detail; } + // }}} // {{{ createModify() /** - * This method creates the archive file and add the files / directories - * that are listed in $p_filelist. - * If the file already exists and is writable, it is replaced by the - * new tar. It is a create and not an add. If the file exists and is - * read-only or is a directory it is not replaced. The method return - * false and a PEAR error text. - * The $p_filelist parameter can be an array of string, each string - * representing a filename or a directory name with their path if - * needed. It can also be a single string with names separated by a - * single blank. - * The path indicated in $p_remove_dir will be removed from the - * memorized path of each file / directory listed when this path - * exists. By default nothing is removed (empty path '') - * The path indicated in $p_add_dir will be added at the beginning of - * the memorized path of each file / directory listed. However it can - * be set to empty ''. The adding of a path is done after the removing - * of path. - * The path add/remove ability enables the user to prepare an archive - * for extraction in a different path than the origin files are. - * See also addModify() method for file adding properties. - * - * @param array $p_filelist An array of filenames and directory names, - * or a single string with names separated by - * a single blank space. - * @param string $p_add_dir A string which contains a path to be added - * to the memorized path of each element in - * the list. - * @param string $p_remove_dir A string which contains a path to be - * removed from the memorized path of each - * element in the list, when relevant. - * - * @return boolean true on success, false on error. - * @access public - * @see addModify() - */ - function createModify($p_filelist, $p_add_dir, $p_remove_dir='') + * This method creates the archive file and add the files / directories + * that are listed in $p_filelist. + * If the file already exists and is writable, it is replaced by the + * new tar. It is a create and not an add. If the file exists and is + * read-only or is a directory it is not replaced. The method return + * false and a PEAR error text. + * The $p_filelist parameter can be an array of string, each string + * representing a filename or a directory name with their path if + * needed. It can also be a single string with names separated by a + * single blank. + * The path indicated in $p_remove_dir will be removed from the + * memorized path of each file / directory listed when this path + * exists. By default nothing is removed (empty path '') + * The path indicated in $p_add_dir will be added at the beginning of + * the memorized path of each file / directory listed. However it can + * be set to empty ''. The adding of a path is done after the removing + * of path. + * The path add/remove ability enables the user to prepare an archive + * for extraction in a different path than the origin files are. + * See also addModify() method for file adding properties. + * + * @param array $p_filelist An array of filenames and directory names, + * or a single string with names separated by + * a single blank space. + * @param string $p_add_dir A string which contains a path to be added + * to the memorized path of each element in + * the list. + * @param string $p_remove_dir A string which contains a path to be + * removed from the memorized path of each + * element in the list, when relevant. + * + * @return boolean true on success, false on error. + * @access public + * @see addModify() + */ + function createModify($p_filelist, $p_add_dir, $p_remove_dir = '') { $v_result = true; - if (!$this->_openWrite()) + if (!$this->_openWrite()) { return false; + } if ($p_filelist != '') { - if (is_array($p_filelist)) + if (is_array($p_filelist)) { $v_list = $p_filelist; - elseif (is_string($p_filelist)) + } elseif (is_string($p_filelist)) { $v_list = explode($this->_separator, $p_filelist); - else { + } else { $this->_cleanFile(); $this->_error('Invalid file list'); return false; @@ -3946,68 +4463,73 @@ class Archive_Tar extends PEAR if ($v_result) { $this->_writeFooter(); $this->_close(); - } else + } else { $this->_cleanFile(); + } return $v_result; } + // }}} // {{{ addModify() /** - * This method add the files / directories listed in $p_filelist at the - * end of the existing archive. If the archive does not yet exists it - * is created. - * The $p_filelist parameter can be an array of string, each string - * representing a filename or a directory name with their path if - * needed. It can also be a single string with names separated by a - * single blank. - * The path indicated in $p_remove_dir will be removed from the - * memorized path of each file / directory listed when this path - * exists. By default nothing is removed (empty path '') - * The path indicated in $p_add_dir will be added at the beginning of - * the memorized path of each file / directory listed. However it can - * be set to empty ''. The adding of a path is done after the removing - * of path. - * The path add/remove ability enables the user to prepare an archive - * for extraction in a different path than the origin files are. - * If a file/dir is already in the archive it will only be added at the - * end of the archive. There is no update of the existing archived - * file/dir. However while extracting the archive, the last file will - * replace the first one. This results in a none optimization of the - * archive size. - * If a file/dir does not exist the file/dir is ignored. However an - * error text is send to PEAR error. - * If a file/dir is not readable the file/dir is ignored. However an - * error text is send to PEAR error. - * - * @param array $p_filelist An array of filenames and directory - * names, or a single string with names - * separated by a single blank space. - * @param string $p_add_dir A string which contains a path to be - * added to the memorized path of each - * element in the list. - * @param string $p_remove_dir A string which contains a path to be - * removed from the memorized path of - * each element in the list, when - * relevant. - * - * @return true on success, false on error. - * @access public - */ - function addModify($p_filelist, $p_add_dir, $p_remove_dir='') + * This method add the files / directories listed in $p_filelist at the + * end of the existing archive. If the archive does not yet exists it + * is created. + * The $p_filelist parameter can be an array of string, each string + * representing a filename or a directory name with their path if + * needed. It can also be a single string with names separated by a + * single blank. + * The path indicated in $p_remove_dir will be removed from the + * memorized path of each file / directory listed when this path + * exists. By default nothing is removed (empty path '') + * The path indicated in $p_add_dir will be added at the beginning of + * the memorized path of each file / directory listed. However it can + * be set to empty ''. The adding of a path is done after the removing + * of path. + * The path add/remove ability enables the user to prepare an archive + * for extraction in a different path than the origin files are. + * If a file/dir is already in the archive it will only be added at the + * end of the archive. There is no update of the existing archived + * file/dir. However while extracting the archive, the last file will + * replace the first one. This results in a none optimization of the + * archive size. + * If a file/dir does not exist the file/dir is ignored. However an + * error text is send to PEAR error. + * If a file/dir is not readable the file/dir is ignored. However an + * error text is send to PEAR error. + * + * @param array $p_filelist An array of filenames and directory + * names, or a single string with names + * separated by a single blank space. + * @param string $p_add_dir A string which contains a path to be + * added to the memorized path of each + * element in the list. + * @param string $p_remove_dir A string which contains a path to be + * removed from the memorized path of + * each element in the list, when + * relevant. + * + * @return true on success, false on error. + * @access public + */ + function addModify($p_filelist, $p_add_dir, $p_remove_dir = '') { $v_result = true; - if (!$this->_isArchive()) - $v_result = $this->createModify($p_filelist, $p_add_dir, - $p_remove_dir); - else { - if (is_array($p_filelist)) + if (!$this->_isArchive()) { + $v_result = $this->createModify( + $p_filelist, + $p_add_dir, + $p_remove_dir + ); + } else { + if (is_array($p_filelist)) { $v_list = $p_filelist; - elseif (is_string($p_filelist)) + } elseif (is_string($p_filelist)) { $v_list = explode($this->_separator, $p_filelist); - else { + } else { $this->_error('Invalid file list'); return false; } @@ -4017,27 +4539,45 @@ class Archive_Tar extends PEAR return $v_result; } + // }}} // {{{ addString() /** - * This method add a single string as a file at the - * end of the existing archive. If the archive does not yet exists it - * is created. - * - * @param string $p_filename A string which contains the full - * filename path that will be associated - * with the string. - * @param string $p_string The content of the file added in - * the archive. - * @param int $p_datetime A custom date/time (unix timestamp) - * for the file (optional). - * - * @return true on success, false on error. - * @access public - */ - function addString($p_filename, $p_string, $p_datetime = false) + * This method add a single string as a file at the + * end of the existing archive. If the archive does not yet exists it + * is created. + * + * @param string $p_filename A string which contains the full + * filename path that will be associated + * with the string. + * @param string $p_string The content of the file added in + * the archive. + * @param int $p_datetime A custom date/time (unix timestamp) + * for the file (optional). + * @param array $p_params An array of optional params: + * stamp => the datetime (replaces + * datetime above if it exists) + * mode => the permissions on the + * file (600 by default) + * type => is this a link? See the + * tar specification for details. + * (default = regular file) + * uid => the user ID of the file + * (default = 0 = root) + * gid => the group ID of the file + * (default = 0 = root) + * + * @return true on success, false on error. + * @access public + */ + function addString($p_filename, $p_string, $p_datetime = false, $p_params = array()) { + $p_stamp = @$p_params["stamp"] ? $p_params["stamp"] : ($p_datetime ? $p_datetime : time()); + $p_mode = @$p_params["mode"] ? $p_params["mode"] : 0600; + $p_type = @$p_params["type"] ? $p_params["type"] : ""; + $p_uid = @$p_params["uid"] ? $p_params["uid"] : ""; + $p_gid = @$p_params["gid"] ? $p_params["gid"] : ""; $v_result = true; if (!$this->_isArchive()) { @@ -4047,11 +4587,12 @@ class Archive_Tar extends PEAR $this->_close(); } - if (!$this->_openAppend()) + if (!$this->_openAppend()) { return false; + } // Need to check the get back to the temporary file ? .... - $v_result = $this->_addString($p_filename, $p_string, $p_datetime); + $v_result = $this->_addString($p_filename, $p_string, $p_datetime, $p_params); $this->_writeFooter(); @@ -4059,69 +4600,77 @@ class Archive_Tar extends PEAR return $v_result; } + // }}} // {{{ extractModify() /** - * This method extract all the content of the archive in the directory - * indicated by $p_path. When relevant the memorized path of the - * files/dir can be modified by removing the $p_remove_path path at the - * beginning of the file/dir path. - * While extracting a file, if the directory path does not exists it is - * created. - * While extracting a file, if the file already exists it is replaced - * without looking for last modification date. - * While extracting a file, if the file already exists and is write - * protected, the extraction is aborted. - * While extracting a file, if a directory with the same name already - * exists, the extraction is aborted. - * While extracting a directory, if a file with the same name already - * exists, the extraction is aborted. - * While extracting a file/directory if the destination directory exist - * and is write protected, or does not exist but can not be created, - * the extraction is aborted. - * If after extraction an extracted file does not show the correct - * stored file size, the extraction is aborted. - * When the extraction is aborted, a PEAR error text is set and false - * is returned. However the result can be a partial extraction that may - * need to be manually cleaned. - * - * @param string $p_path The path of the directory where the - * files/dir need to by extracted. - * @param string $p_remove_path Part of the memorized path that can be - * removed if present at the beginning of - * the file/dir path. - * @param boolean $p_preserve Preserve user/group ownership of files - * - * @return boolean true on success, false on error. - * @access public - * @see extractList() - */ - function extractModify($p_path, $p_remove_path, $p_preserve=false) + * This method extract all the content of the archive in the directory + * indicated by $p_path. When relevant the memorized path of the + * files/dir can be modified by removing the $p_remove_path path at the + * beginning of the file/dir path. + * While extracting a file, if the directory path does not exists it is + * created. + * While extracting a file, if the file already exists it is replaced + * without looking for last modification date. + * While extracting a file, if the file already exists and is write + * protected, the extraction is aborted. + * While extracting a file, if a directory with the same name already + * exists, the extraction is aborted. + * While extracting a directory, if a file with the same name already + * exists, the extraction is aborted. + * While extracting a file/directory if the destination directory exist + * and is write protected, or does not exist but can not be created, + * the extraction is aborted. + * If after extraction an extracted file does not show the correct + * stored file size, the extraction is aborted. + * When the extraction is aborted, a PEAR error text is set and false + * is returned. However the result can be a partial extraction that may + * need to be manually cleaned. + * + * @param string $p_path The path of the directory where the + * files/dir need to by extracted. + * @param string $p_remove_path Part of the memorized path that can be + * removed if present at the beginning of + * the file/dir path. + * @param boolean $p_preserve Preserve user/group ownership of files + * + * @return boolean true on success, false on error. + * @access public + * @see extractList() + */ + function extractModify($p_path, $p_remove_path, $p_preserve = false) { $v_result = true; $v_list_detail = array(); if ($v_result = $this->_openRead()) { - $v_result = $this->_extractList($p_path, $v_list_detail, - "complete", 0, $p_remove_path, $p_preserve); + $v_result = $this->_extractList( + $p_path, + $v_list_detail, + "complete", + 0, + $p_remove_path, + $p_preserve + ); $this->_close(); } return $v_result; } + // }}} // {{{ extractInString() /** - * This method extract from the archive one file identified by $p_filename. - * The return value is a string with the file content, or NULL on error. - * - * @param string $p_filename The path of the file to extract in a string. - * - * @return a string with the file content or NULL. - * @access public - */ + * This method extract from the archive one file identified by $p_filename. + * The return value is a string with the file content, or NULL on error. + * + * @param string $p_filename The path of the file to extract in a string. + * + * @return a string with the file content or NULL. + * @access public + */ function extractInString($p_filename) { if ($this->_openRead()) { @@ -4133,65 +4682,73 @@ class Archive_Tar extends PEAR return $v_result; } + // }}} // {{{ extractList() /** - * This method extract from the archive only the files indicated in the - * $p_filelist. These files are extracted in the current directory or - * in the directory indicated by the optional $p_path parameter. - * If indicated the $p_remove_path can be used in the same way as it is - * used in extractModify() method. - * - * @param array $p_filelist An array of filenames and directory names, - * or a single string with names separated - * by a single blank space. - * @param string $p_path The path of the directory where the - * files/dir need to by extracted. - * @param string $p_remove_path Part of the memorized path that can be - * removed if present at the beginning of - * the file/dir path. - * @param boolean $p_preserve Preserve user/group ownership of files - * - * @return true on success, false on error. - * @access public - * @see extractModify() - */ - function extractList($p_filelist, $p_path='', $p_remove_path='', $p_preserve=false) + * This method extract from the archive only the files indicated in the + * $p_filelist. These files are extracted in the current directory or + * in the directory indicated by the optional $p_path parameter. + * If indicated the $p_remove_path can be used in the same way as it is + * used in extractModify() method. + * + * @param array $p_filelist An array of filenames and directory names, + * or a single string with names separated + * by a single blank space. + * @param string $p_path The path of the directory where the + * files/dir need to by extracted. + * @param string $p_remove_path Part of the memorized path that can be + * removed if present at the beginning of + * the file/dir path. + * @param boolean $p_preserve Preserve user/group ownership of files + * + * @return true on success, false on error. + * @access public + * @see extractModify() + */ + function extractList($p_filelist, $p_path = '', $p_remove_path = '', $p_preserve = false) { $v_result = true; $v_list_detail = array(); - if (is_array($p_filelist)) + if (is_array($p_filelist)) { $v_list = $p_filelist; - elseif (is_string($p_filelist)) + } elseif (is_string($p_filelist)) { $v_list = explode($this->_separator, $p_filelist); - else { + } else { $this->_error('Invalid string list'); return false; } if ($v_result = $this->_openRead()) { - $v_result = $this->_extractList($p_path, $v_list_detail, "partial", - $v_list, $p_remove_path, $p_preserve); + $v_result = $this->_extractList( + $p_path, + $v_list_detail, + "partial", + $v_list, + $p_remove_path, + $p_preserve + ); $this->_close(); } return $v_result; } + // }}} // {{{ setAttribute() /** - * This method set specific attributes of the archive. It uses a variable - * list of parameters, in the format attribute code + attribute values : - * $arch->setAttribute(ARCHIVE_TAR_ATT_SEPARATOR, ','); - * - * @param mixed $argv variable list of attributes and values - * - * @return true on success, false on error. - * @access public - */ + * This method set specific attributes of the archive. It uses a variable + * list of parameters, in the format attribute code + attribute values : + * $arch->setAttribute(ARCHIVE_TAR_ATT_SEPARATOR, ','); + * + * @param mixed $argv variable list of attributes and values + * + * @return true on success, false on error. + * @access public + */ function setAttribute() { $v_result = true; @@ -4202,30 +4759,32 @@ class Archive_Tar extends PEAR } // ----- Get the arguments - $v_att_list = &func_get_args(); + $v_att_list = & func_get_args(); // ----- Read the attributes - $i=0; - while ($i<$v_size) { + $i = 0; + while ($i < $v_size) { // ----- Look for next option switch ($v_att_list[$i]) { // ----- Look for options that request a string value case ARCHIVE_TAR_ATT_SEPARATOR : // ----- Check the number of parameters - if (($i+1) >= $v_size) { - $this->_error('Invalid number of parameters for ' - .'attribute ARCHIVE_TAR_ATT_SEPARATOR'); + if (($i + 1) >= $v_size) { + $this->_error( + 'Invalid number of parameters for ' + . 'attribute ARCHIVE_TAR_ATT_SEPARATOR' + ); return false; } // ----- Get the value - $this->_separator = $v_att_list[$i+1]; + $this->_separator = $v_att_list[$i + 1]; $i++; - break; + break; default : - $this->_error('Unknow attribute code '.$v_att_list[$i].''); + $this->_error('Unknow attribute code ' . $v_att_list[$i] . ''); return false; } @@ -4235,58 +4794,63 @@ class Archive_Tar extends PEAR return $v_result; } + // }}} // {{{ setIgnoreRegexp() /** - * This method sets the regular expression for ignoring files and directories - * at import, for example: - * $arch->setIgnoreRegexp("#CVS|\.svn#"); - * - * @param string $regexp regular expression defining which files or directories to ignore - * - * @access public - */ + * This method sets the regular expression for ignoring files and directories + * at import, for example: + * $arch->setIgnoreRegexp("#CVS|\.svn#"); + * + * @param string $regexp regular expression defining which files or directories to ignore + * + * @access public + */ function setIgnoreRegexp($regexp) { - $this->_ignore_regexp = $regexp; + $this->_ignore_regexp = $regexp; } + // }}} // {{{ setIgnoreList() /** - * This method sets the regular expression for ignoring all files and directories - * matching the filenames in the array list at import, for example: - * $arch->setIgnoreList(array('CVS', '.svn', 'bin/tool')); - * - * @param array $list a list of file or directory names to ignore - * - * @access public - */ + * This method sets the regular expression for ignoring all files and directories + * matching the filenames in the array list at import, for example: + * $arch->setIgnoreList(array('CVS', '.svn', 'bin/tool')); + * + * @param array $list a list of file or directory names to ignore + * + * @access public + */ function setIgnoreList($list) { - $regexp = str_replace(array('#', '.', '^', '$'), array('\#', '\.', '\^', '\$'), $list); - $regexp = '#/'.join('$|/', $list).'#'; - $this->setIgnoreRegexp($regexp); + $regexp = str_replace(array('#', '.', '^', '$'), array('\#', '\.', '\^', '\$'), $list); + $regexp = '#/' . join('$|/', $list) . '#'; + $this->setIgnoreRegexp($regexp); } + // }}} // {{{ _error() function _error($p_message) { - $this->error_object = &$this->raiseError($p_message); + $this->error_object = & $this->raiseError($p_message); } + // }}} // {{{ _warning() function _warning($p_message) { - $this->error_object = &$this->raiseError($p_message); + $this->error_object = & $this->raiseError($p_message); } + // }}} // {{{ _isArchive() - function _isArchive($p_filename=null) + function _isArchive($p_filename = null) { if ($p_filename == null) { $p_filename = $this->_tarname; @@ -4294,31 +4858,45 @@ class Archive_Tar extends PEAR clearstatcache(); return @is_file($p_filename) && !@is_link($p_filename); } + // }}} // {{{ _openWrite() function _openWrite() { - if ($this->_compress_type == 'gz' && function_exists('gzopen')) + if ($this->_compress_type == 'gz' && function_exists('gzopen')) { $this->_file = @gzopen($this->_tarname, "wb9"); - else if ($this->_compress_type == 'bz2' && function_exists('bzopen')) - $this->_file = @bzopen($this->_tarname, "w"); - else if ($this->_compress_type == 'none') - $this->_file = @fopen($this->_tarname, "wb"); - else { - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); - return false; + } else { + if ($this->_compress_type == 'bz2' && function_exists('bzopen')) { + $this->_file = @bzopen($this->_tarname, "w"); + } else { + if ($this->_compress_type == 'lzma2' && function_exists('xzopen')) { + $this->_file = @xzopen($this->_tarname, 'w'); + } else { + if ($this->_compress_type == 'none') { + $this->_file = @fopen($this->_tarname, "wb"); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + return false; + } + } + } } if ($this->_file == 0) { - $this->_error('Unable to open in write mode \'' - .$this->_tarname.'\''); + $this->_error( + 'Unable to open in write mode \'' + . $this->_tarname . '\'' + ); return false; } return true; } + // }}} // {{{ _openRead() @@ -4326,80 +4904,116 @@ class Archive_Tar extends PEAR { if (strtolower(substr($this->_tarname, 0, 7)) == 'http://') { - // ----- Look if a local copy need to be done - if ($this->_temp_tarname == '') { - $this->_temp_tarname = uniqid('tar').'.tmp'; - if (!$v_file_from = @fopen($this->_tarname, 'rb')) { - $this->_error('Unable to open in read mode \'' - .$this->_tarname.'\''); - $this->_temp_tarname = ''; - return false; - } - if (!$v_file_to = @fopen($this->_temp_tarname, 'wb')) { - $this->_error('Unable to open in write mode \'' - .$this->_temp_tarname.'\''); - $this->_temp_tarname = ''; - return false; - } - while ($v_data = @fread($v_file_from, 1024)) - @fwrite($v_file_to, $v_data); - @fclose($v_file_from); - @fclose($v_file_to); - } + // ----- Look if a local copy need to be done + if ($this->_temp_tarname == '') { + $this->_temp_tarname = uniqid('tar') . '.tmp'; + if (!$v_file_from = @fopen($this->_tarname, 'rb')) { + $this->_error( + 'Unable to open in read mode \'' + . $this->_tarname . '\'' + ); + $this->_temp_tarname = ''; + return false; + } + if (!$v_file_to = @fopen($this->_temp_tarname, 'wb')) { + $this->_error( + 'Unable to open in write mode \'' + . $this->_temp_tarname . '\'' + ); + $this->_temp_tarname = ''; + return false; + } + while ($v_data = @fread($v_file_from, 1024)) { + @fwrite($v_file_to, $v_data); + } + @fclose($v_file_from); + @fclose($v_file_to); + } - // ----- File to open if the local copy - $v_filename = $this->_temp_tarname; + // ----- File to open if the local copy + $v_filename = $this->_temp_tarname; - } else - // ----- File to open if the normal Tar file - $v_filename = $this->_tarname; + } else // ----- File to open if the normal Tar file + { + $v_filename = $this->_tarname; + } - if ($this->_compress_type == 'gz' && function_exists('gzopen')) + if ($this->_compress_type == 'gz' && function_exists('gzopen')) { $this->_file = @gzopen($v_filename, "rb"); - else if ($this->_compress_type == 'bz2' && function_exists('bzopen')) - $this->_file = @bzopen($v_filename, "r"); - else if ($this->_compress_type == 'none') - $this->_file = @fopen($v_filename, "rb"); - else { - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); - return false; + } else { + if ($this->_compress_type == 'bz2' && function_exists('bzopen')) { + $this->_file = @bzopen($v_filename, "r"); + } else { + if ($this->_compress_type == 'lzma2' && function_exists('xzopen')) { + $this->_file = @xzopen($v_filename, "r"); + } else { + if ($this->_compress_type == 'none') { + $this->_file = @fopen($v_filename, "rb"); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + return false; + } + } + } } if ($this->_file == 0) { - $this->_error('Unable to open in read mode \''.$v_filename.'\''); + $this->_error('Unable to open in read mode \'' . $v_filename . '\''); return false; } return true; } + // }}} // {{{ _openReadWrite() function _openReadWrite() { - if ($this->_compress_type == 'gz') + if ($this->_compress_type == 'gz') { $this->_file = @gzopen($this->_tarname, "r+b"); - else if ($this->_compress_type == 'bz2') { - $this->_error('Unable to open bz2 in read/write mode \'' - .$this->_tarname.'\' (limitation of bz2 extension)'); - return false; - } else if ($this->_compress_type == 'none') - $this->_file = @fopen($this->_tarname, "r+b"); - else { - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); - return false; + } else { + if ($this->_compress_type == 'bz2') { + $this->_error( + 'Unable to open bz2 in read/write mode \'' + . $this->_tarname . '\' (limitation of bz2 extension)' + ); + return false; + } else { + if ($this->_compress_type == 'lzma2') { + $this->_error( + 'Unable to open lzma2 in read/write mode \'' + . $this->_tarname . '\' (limitation of lzma2 extension)' + ); + return false; + } else { + if ($this->_compress_type == 'none') { + $this->_file = @fopen($this->_tarname, "r+b"); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + return false; + } + } + } } if ($this->_file == 0) { - $this->_error('Unable to open in read/write mode \'' - .$this->_tarname.'\''); + $this->_error( + 'Unable to open in read/write mode \'' + . $this->_tarname . '\'' + ); return false; } return true; } + // }}} // {{{ _close() @@ -4407,15 +5021,26 @@ class Archive_Tar extends PEAR { //if (isset($this->_file)) { if (is_resource($this->_file)) { - if ($this->_compress_type == 'gz') + if ($this->_compress_type == 'gz') { @gzclose($this->_file); - else if ($this->_compress_type == 'bz2') - @bzclose($this->_file); - else if ($this->_compress_type == 'none') - @fclose($this->_file); - else - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); + } else { + if ($this->_compress_type == 'bz2') { + @bzclose($this->_file); + } else { + if ($this->_compress_type == 'lzma2') { + @xzclose($this->_file); + } else { + if ($this->_compress_type == 'none') { + @fclose($this->_file); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + } + } + } + } $this->_file = 0; } @@ -4429,6 +5054,7 @@ class Archive_Tar extends PEAR return true; } + // }}} // {{{ _cleanFile() @@ -4449,276 +5075,367 @@ class Archive_Tar extends PEAR return true; } + // }}} // {{{ _writeBlock() - function _writeBlock($p_binary_data, $p_len=null) - { - if (is_resource($this->_file)) { - if ($p_len === null) { - if ($this->_compress_type == 'gz') - @gzputs($this->_file, $p_binary_data); - else if ($this->_compress_type == 'bz2') - @bzwrite($this->_file, $p_binary_data); - else if ($this->_compress_type == 'none') - @fputs($this->_file, $p_binary_data); - else - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); - } else { - if ($this->_compress_type == 'gz') - @gzputs($this->_file, $p_binary_data, $p_len); - else if ($this->_compress_type == 'bz2') - @bzwrite($this->_file, $p_binary_data, $p_len); - else if ($this->_compress_type == 'none') - @fputs($this->_file, $p_binary_data, $p_len); - else - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); + function _writeBlock($p_binary_data, $p_len = null) + { + if (is_resource($this->_file)) { + if ($p_len === null) { + if ($this->_compress_type == 'gz') { + @gzputs($this->_file, $p_binary_data); + } else { + if ($this->_compress_type == 'bz2') { + @bzwrite($this->_file, $p_binary_data); + } else { + if ($this->_compress_type == 'lzma2') { + @xzwrite($this->_file, $p_binary_data); + } else { + if ($this->_compress_type == 'none') { + @fputs($this->_file, $p_binary_data); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + } + } + } + } + } else { + if ($this->_compress_type == 'gz') { + @gzputs($this->_file, $p_binary_data, $p_len); + } else { + if ($this->_compress_type == 'bz2') { + @bzwrite($this->_file, $p_binary_data, $p_len); + } else { + if ($this->_compress_type == 'lzma2') { + @xzwrite($this->_file, $p_binary_data, $p_len); + } else { + if ($this->_compress_type == 'none') { + @fputs($this->_file, $p_binary_data, $p_len); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + } + } + } + } - } - } - return true; + } + } + return true; } + // }}} // {{{ _readBlock() function _readBlock() { - $v_block = null; - if (is_resource($this->_file)) { - if ($this->_compress_type == 'gz') - $v_block = @gzread($this->_file, 512); - else if ($this->_compress_type == 'bz2') - $v_block = @bzread($this->_file, 512); - else if ($this->_compress_type == 'none') - $v_block = @fread($this->_file, 512); - else - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); - } - return $v_block; + $v_block = null; + if (is_resource($this->_file)) { + if ($this->_compress_type == 'gz') { + $v_block = @gzread($this->_file, 512); + } else { + if ($this->_compress_type == 'bz2') { + $v_block = @bzread($this->_file, 512); + } else { + if ($this->_compress_type == 'lzma2') { + $v_block = @xzread($this->_file, 512); + } else { + if ($this->_compress_type == 'none') { + $v_block = @fread($this->_file, 512); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + } + } + } + } + } + return $v_block; } + // }}} // {{{ _jumpBlock() - function _jumpBlock($p_len=null) + function _jumpBlock($p_len = null) { - if (is_resource($this->_file)) { - if ($p_len === null) - $p_len = 1; + if (is_resource($this->_file)) { + if ($p_len === null) { + $p_len = 1; + } - if ($this->_compress_type == 'gz') { - @gzseek($this->_file, gztell($this->_file)+($p_len*512)); - } - else if ($this->_compress_type == 'bz2') { - // ----- Replace missing bztell() and bzseek() - for ($i=0; $i<$p_len; $i++) - $this->_readBlock(); - } else if ($this->_compress_type == 'none') - @fseek($this->_file, $p_len*512, SEEK_CUR); - else - $this->_error('Unknown or missing compression type (' - .$this->_compress_type.')'); - - } - return true; + if ($this->_compress_type == 'gz') { + @gzseek($this->_file, gztell($this->_file) + ($p_len * 512)); + } else { + if ($this->_compress_type == 'bz2') { + // ----- Replace missing bztell() and bzseek() + for ($i = 0; $i < $p_len; $i++) { + $this->_readBlock(); + } + } else { + if ($this->_compress_type == 'lzma2') { + // ----- Replace missing xztell() and xzseek() + for ($i = 0; $i < $p_len; $i++) { + $this->_readBlock(); + } + } else { + if ($this->_compress_type == 'none') { + @fseek($this->_file, $p_len * 512, SEEK_CUR); + } else { + $this->_error( + 'Unknown or missing compression type (' + . $this->_compress_type . ')' + ); + } + } + } + } + + } + return true; } + // }}} // {{{ _writeFooter() function _writeFooter() { - if (is_resource($this->_file)) { - // ----- Write the last 0 filled block for end of archive - $v_binary_data = pack('a1024', ''); - $this->_writeBlock($v_binary_data); - } - return true; + if (is_resource($this->_file)) { + // ----- Write the last 0 filled block for end of archive + $v_binary_data = pack('a1024', ''); + $this->_writeBlock($v_binary_data); + } + return true; } + // }}} // {{{ _addList() function _addList($p_list, $p_add_dir, $p_remove_dir) { - $v_result=true; - $v_header = array(); - - // ----- Remove potential windows directory separator - $p_add_dir = $this->_translateWinPath($p_add_dir); - $p_remove_dir = $this->_translateWinPath($p_remove_dir, false); - - if (!$this->_file) { - $this->_error('Invalid file descriptor'); - return false; - } + $v_result = true; + $v_header = array(); - if (sizeof($p_list) == 0) - return true; + // ----- Remove potential windows directory separator + $p_add_dir = $this->_translateWinPath($p_add_dir); + $p_remove_dir = $this->_translateWinPath($p_remove_dir, false); - foreach ($p_list as $v_filename) { - if (!$v_result) { - break; - } + if (!$this->_file) { + $this->_error('Invalid file descriptor'); + return false; + } - // ----- Skip the current tar name - if ($v_filename == $this->_tarname) - continue; + if (sizeof($p_list) == 0) { + return true; + } - if ($v_filename == '') - continue; + foreach ($p_list as $v_filename) { + if (!$v_result) { + break; + } - // ----- ignore files and directories matching the ignore regular expression - if ($this->_ignore_regexp && preg_match($this->_ignore_regexp, '/'.$v_filename)) { - $this->_warning("File '$v_filename' ignored"); - continue; - } + // ----- Skip the current tar name + if ($v_filename == $this->_tarname) { + continue; + } - if (!file_exists($v_filename) && !is_link($v_filename)) { - $this->_warning("File '$v_filename' does not exist"); - continue; - } + if ($v_filename == '') { + continue; + } - // ----- Add the file or directory header - if (!$this->_addFile($v_filename, $v_header, $p_add_dir, $p_remove_dir)) - return false; + // ----- ignore files and directories matching the ignore regular expression + if ($this->_ignore_regexp && preg_match($this->_ignore_regexp, '/' . $v_filename)) { + $this->_warning("File '$v_filename' ignored"); + continue; + } - if (@is_dir($v_filename) && !@is_link($v_filename)) { - if (!($p_hdir = opendir($v_filename))) { - $this->_warning("Directory '$v_filename' can not be read"); + if (!file_exists($v_filename) && !is_link($v_filename)) { + $this->_warning("File '$v_filename' does not exist"); continue; } - while (false !== ($p_hitem = readdir($p_hdir))) { - if (($p_hitem != '.') && ($p_hitem != '..')) { - if ($v_filename != ".") - $p_temp_list[0] = $v_filename.'/'.$p_hitem; - else - $p_temp_list[0] = $p_hitem; - $v_result = $this->_addList($p_temp_list, - $p_add_dir, - $p_remove_dir); - } + // ----- Add the file or directory header + if (!$this->_addFile($v_filename, $v_header, $p_add_dir, $p_remove_dir)) { + return false; } - unset($p_temp_list); - unset($p_hdir); - unset($p_hitem); + if (@is_dir($v_filename) && !@is_link($v_filename)) { + if (!($p_hdir = opendir($v_filename))) { + $this->_warning("Directory '$v_filename' can not be read"); + continue; + } + while (false !== ($p_hitem = readdir($p_hdir))) { + if (($p_hitem != '.') && ($p_hitem != '..')) { + if ($v_filename != ".") { + $p_temp_list[0] = $v_filename . '/' . $p_hitem; + } else { + $p_temp_list[0] = $p_hitem; + } + + $v_result = $this->_addList( + $p_temp_list, + $p_add_dir, + $p_remove_dir + ); + } + } + + unset($p_temp_list); + unset($p_hdir); + unset($p_hitem); + } } - } - return $v_result; + return $v_result; } + // }}} // {{{ _addFile() - function _addFile($p_filename, &$p_header, $p_add_dir, $p_remove_dir) - { - if (!$this->_file) { - $this->_error('Invalid file descriptor'); - return false; - } - - if ($p_filename == '') { - $this->_error('Invalid file name'); - return false; - } - - // ----- Calculate the stored filename - $p_filename = $this->_translateWinPath($p_filename, false);; - $v_stored_filename = $p_filename; - if (strcmp($p_filename, $p_remove_dir) == 0) { - return true; - } - if ($p_remove_dir != '') { - if (substr($p_remove_dir, -1) != '/') - $p_remove_dir .= '/'; - - if (substr($p_filename, 0, strlen($p_remove_dir)) == $p_remove_dir) - $v_stored_filename = substr($p_filename, strlen($p_remove_dir)); - } - $v_stored_filename = $this->_translateWinPath($v_stored_filename); - if ($p_add_dir != '') { - if (substr($p_add_dir, -1) == '/') - $v_stored_filename = $p_add_dir.$v_stored_filename; - else - $v_stored_filename = $p_add_dir.'/'.$v_stored_filename; - } - - $v_stored_filename = $this->_pathReduction($v_stored_filename); - - if ($this->_isArchive($p_filename)) { - if (($v_file = @fopen($p_filename, "rb")) == 0) { - $this->_warning("Unable to open file '".$p_filename - ."' in binary read mode"); - return true; - } + function _addFile($p_filename, &$p_header, $p_add_dir, $p_remove_dir, $v_stored_filename = null) + { + if (!$this->_file) { + $this->_error('Invalid file descriptor'); + return false; + } - if (!$this->_writeHeader($p_filename, $v_stored_filename)) - return false; + if ($p_filename == '') { + $this->_error('Invalid file name'); + return false; + } - while (($v_buffer = fread($v_file, 512)) != '') { - $v_binary_data = pack("a512", "$v_buffer"); - $this->_writeBlock($v_binary_data); - } + if (is_null($v_stored_filename)) { + // ----- Calculate the stored filename + $p_filename = $this->_translateWinPath($p_filename, false);; + $v_stored_filename = $p_filename; - fclose($v_file); + if (strcmp($p_filename, $p_remove_dir) == 0) { + return true; + } - } else { - // ----- Only header for dir - if (!$this->_writeHeader($p_filename, $v_stored_filename)) - return false; - } + if ($p_remove_dir != '') { + if (substr($p_remove_dir, -1) != '/') { + $p_remove_dir .= '/'; + } - return true; + if (substr($p_filename, 0, strlen($p_remove_dir)) == $p_remove_dir) { + $v_stored_filename = substr($p_filename, strlen($p_remove_dir)); + } + } + + $v_stored_filename = $this->_translateWinPath($v_stored_filename); + if ($p_add_dir != '') { + if (substr($p_add_dir, -1) == '/') { + $v_stored_filename = $p_add_dir . $v_stored_filename; + } else { + $v_stored_filename = $p_add_dir . '/' . $v_stored_filename; + } + } + + $v_stored_filename = $this->_pathReduction($v_stored_filename); + } + + if ($this->_isArchive($p_filename)) { + if (($v_file = @fopen($p_filename, "rb")) == 0) { + $this->_warning( + "Unable to open file '" . $p_filename + . "' in binary read mode" + ); + return true; + } + + if (!$this->_writeHeader($p_filename, $v_stored_filename)) { + return false; + } + + while (($v_buffer = fread($v_file, 512)) != '') { + $v_binary_data = pack("a512", "$v_buffer"); + $this->_writeBlock($v_binary_data); + } + + fclose($v_file); + + } else { + // ----- Only header for dir + if (!$this->_writeHeader($p_filename, $v_stored_filename)) { + return false; + } + } + + return true; } + // }}} // {{{ _addString() - function _addString($p_filename, $p_string, $p_datetime = false) - { - if (!$this->_file) { - $this->_error('Invalid file descriptor'); - return false; - } - - if ($p_filename == '') { - $this->_error('Invalid file name'); - return false; - } - - // ----- Calculate the stored filename - $p_filename = $this->_translateWinPath($p_filename, false);; - - // ----- If datetime is not specified, set current time - if ($p_datetime === false) { - $p_datetime = time(); - } - - if (!$this->_writeHeaderBlock($p_filename, strlen($p_string), - $p_datetime, 384, "", 0, 0)) - return false; - - $i=0; - while (($v_buffer = substr($p_string, (($i++)*512), 512)) != '') { - $v_binary_data = pack("a512", $v_buffer); - $this->_writeBlock($v_binary_data); - } - - return true; + function _addString($p_filename, $p_string, $p_datetime = false, $p_params = array()) + { + $p_stamp = @$p_params["stamp"] ? $p_params["stamp"] : ($p_datetime ? $p_datetime : time()); + $p_mode = @$p_params["mode"] ? $p_params["mode"] : 0600; + $p_type = @$p_params["type"] ? $p_params["type"] : ""; + $p_uid = @$p_params["uid"] ? $p_params["uid"] : 0; + $p_gid = @$p_params["gid"] ? $p_params["gid"] : 0; + if (!$this->_file) { + $this->_error('Invalid file descriptor'); + return false; + } + + if ($p_filename == '') { + $this->_error('Invalid file name'); + return false; + } + + // ----- Calculate the stored filename + $p_filename = $this->_translateWinPath($p_filename, false);; + + // ----- If datetime is not specified, set current time + if ($p_datetime === false) { + $p_datetime = time(); + } + + if (!$this->_writeHeaderBlock( + $p_filename, + strlen($p_string), + $p_stamp, + $p_mode, + $p_type, + $p_uid, + $p_gid + ) + ) { + return false; + } + + $i = 0; + while (($v_buffer = substr($p_string, (($i++) * 512), 512)) != '') { + $v_binary_data = pack("a512", $v_buffer); + $this->_writeBlock($v_binary_data); + } + + return true; } + // }}} // {{{ _writeHeader() function _writeHeader($p_filename, $p_stored_filename) { - if ($p_stored_filename == '') + if ($p_stored_filename == '') { $p_stored_filename = $p_filename; + } $v_reduce_filename = $this->_pathReduction($p_stored_filename); if (strlen($v_reduce_filename) > 99) { - if (!$this->_writeLongHeader($v_reduce_filename)) - return false; + if (!$this->_writeLongHeader($v_reduce_filename)) { + return false; + } } $v_info = lstat($p_filename); @@ -4731,34 +5448,31 @@ class Archive_Tar extends PEAR $v_linkname = ''; if (@is_link($p_filename)) { - $v_typeflag = '2'; - $v_linkname = readlink($p_filename); - $v_size = sprintf("%011s", DecOct(0)); + $v_typeflag = '2'; + $v_linkname = readlink($p_filename); + $v_size = sprintf("%011s", DecOct(0)); } elseif (@is_dir($p_filename)) { - $v_typeflag = "5"; - $v_size = sprintf("%011s", DecOct(0)); + $v_typeflag = "5"; + $v_size = sprintf("%011s", DecOct(0)); } else { - $v_typeflag = '0'; - clearstatcache(); - $v_size = sprintf("%011s", DecOct($v_info['size'])); + $v_typeflag = '0'; + clearstatcache(); + $v_size = sprintf("%011s", DecOct($v_info['size'])); } $v_magic = 'ustar '; $v_version = ' '; - - if (function_exists('posix_getpwuid')) - { - $userinfo = posix_getpwuid($v_info[4]); - $groupinfo = posix_getgrgid($v_info[5]); - - $v_uname = $userinfo['name']; - $v_gname = $groupinfo['name']; - } - else - { - $v_uname = ''; - $v_gname = ''; + + if (function_exists('posix_getpwuid')) { + $userinfo = posix_getpwuid($v_info[4]); + $groupinfo = posix_getgrgid($v_info[5]); + + $v_uname = $userinfo['name']; + $v_gname = $groupinfo['name']; + } else { + $v_uname = ''; + $v_gname = ''; } $v_devmajor = ''; @@ -4767,25 +5481,43 @@ class Archive_Tar extends PEAR $v_prefix = ''; - $v_binary_data_first = pack("a100a8a8a8a12a12", - $v_reduce_filename, $v_perms, $v_uid, - $v_gid, $v_size, $v_mtime); - $v_binary_data_last = pack("a1a100a6a2a32a32a8a8a155a12", - $v_typeflag, $v_linkname, $v_magic, - $v_version, $v_uname, $v_gname, - $v_devmajor, $v_devminor, $v_prefix, ''); + $v_binary_data_first = pack( + "a100a8a8a8a12a12", + $v_reduce_filename, + $v_perms, + $v_uid, + $v_gid, + $v_size, + $v_mtime + ); + $v_binary_data_last = pack( + "a1a100a6a2a32a32a8a8a155a12", + $v_typeflag, + $v_linkname, + $v_magic, + $v_version, + $v_uname, + $v_gname, + $v_devmajor, + $v_devminor, + $v_prefix, + '' + ); // ----- Calculate the checksum $v_checksum = 0; // ..... First part of the header - for ($i=0; $i<148; $i++) - $v_checksum += ord(substr($v_binary_data_first,$i,1)); + for ($i = 0; $i < 148; $i++) { + $v_checksum += ord(substr($v_binary_data_first, $i, 1)); + } // ..... Ignore the checksum value and replace it by ' ' (space) - for ($i=148; $i<156; $i++) + for ($i = 148; $i < 156; $i++) { $v_checksum += ord(' '); + } // ..... Last part of the header - for ($i=156, $j=0; $i<512; $i++, $j++) - $v_checksum += ord(substr($v_binary_data_last,$j,1)); + for ($i = 156, $j = 0; $i < 512; $i++, $j++) { + $v_checksum += ord(substr($v_binary_data_last, $j, 1)); + } // ----- Write the first 148 bytes of the header in the archive $this->_writeBlock($v_binary_data_first, 148); @@ -4800,23 +5532,31 @@ class Archive_Tar extends PEAR return true; } + // }}} // {{{ _writeHeaderBlock() - function _writeHeaderBlock($p_filename, $p_size, $p_mtime=0, $p_perms=0, - $p_type='', $p_uid=0, $p_gid=0) - { + function _writeHeaderBlock( + $p_filename, + $p_size, + $p_mtime = 0, + $p_perms = 0, + $p_type = '', + $p_uid = 0, + $p_gid = 0 + ) { $p_filename = $this->_pathReduction($p_filename); if (strlen($p_filename) > 99) { - if (!$this->_writeLongHeader($p_filename)) - return false; + if (!$this->_writeLongHeader($p_filename)) { + return false; + } } if ($p_type == "5") { - $v_size = sprintf("%011s", DecOct(0)); + $v_size = sprintf("%011s", DecOct(0)); } else { - $v_size = sprintf("%011s", DecOct($p_size)); + $v_size = sprintf("%011s", DecOct($p_size)); } $v_uid = sprintf("%07s", DecOct($p_uid)); @@ -4831,45 +5571,60 @@ class Archive_Tar extends PEAR $v_version = ' '; - if (function_exists('posix_getpwuid')) - { - $userinfo = posix_getpwuid($p_uid); - $groupinfo = posix_getgrgid($p_gid); - - $v_uname = $userinfo['name']; - $v_gname = $groupinfo['name']; - } - else - { - $v_uname = ''; - $v_gname = ''; + if (function_exists('posix_getpwuid')) { + $userinfo = posix_getpwuid($p_uid); + $groupinfo = posix_getgrgid($p_gid); + + $v_uname = $userinfo['name']; + $v_gname = $groupinfo['name']; + } else { + $v_uname = ''; + $v_gname = ''; } - + $v_devmajor = ''; $v_devminor = ''; $v_prefix = ''; - $v_binary_data_first = pack("a100a8a8a8a12A12", - $p_filename, $v_perms, $v_uid, $v_gid, - $v_size, $v_mtime); - $v_binary_data_last = pack("a1a100a6a2a32a32a8a8a155a12", - $p_type, $v_linkname, $v_magic, - $v_version, $v_uname, $v_gname, - $v_devmajor, $v_devminor, $v_prefix, ''); + $v_binary_data_first = pack( + "a100a8a8a8a12A12", + $p_filename, + $v_perms, + $v_uid, + $v_gid, + $v_size, + $v_mtime + ); + $v_binary_data_last = pack( + "a1a100a6a2a32a32a8a8a155a12", + $p_type, + $v_linkname, + $v_magic, + $v_version, + $v_uname, + $v_gname, + $v_devmajor, + $v_devminor, + $v_prefix, + '' + ); // ----- Calculate the checksum $v_checksum = 0; // ..... First part of the header - for ($i=0; $i<148; $i++) - $v_checksum += ord(substr($v_binary_data_first,$i,1)); + for ($i = 0; $i < 148; $i++) { + $v_checksum += ord(substr($v_binary_data_first, $i, 1)); + } // ..... Ignore the checksum value and replace it by ' ' (space) - for ($i=148; $i<156; $i++) + for ($i = 148; $i < 156; $i++) { $v_checksum += ord(' '); + } // ..... Last part of the header - for ($i=156, $j=0; $i<512; $i++, $j++) - $v_checksum += ord(substr($v_binary_data_last,$j,1)); + for ($i = 156, $j = 0; $i < 512; $i++, $j++) { + $v_checksum += ord(substr($v_binary_data_last, $j, 1)); + } // ----- Write the first 148 bytes of the header in the archive $this->_writeBlock($v_binary_data_first, 148); @@ -4884,6 +5639,7 @@ class Archive_Tar extends PEAR return true; } + // }}} // {{{ _writeLongHeader() @@ -4909,24 +5665,43 @@ class Archive_Tar extends PEAR $v_prefix = ''; - $v_binary_data_first = pack("a100a8a8a8a12a12", - '././@LongLink', 0, 0, 0, $v_size, 0); - $v_binary_data_last = pack("a1a100a6a2a32a32a8a8a155a12", - $v_typeflag, $v_linkname, $v_magic, - $v_version, $v_uname, $v_gname, - $v_devmajor, $v_devminor, $v_prefix, ''); + $v_binary_data_first = pack( + "a100a8a8a8a12a12", + '././@LongLink', + 0, + 0, + 0, + $v_size, + 0 + ); + $v_binary_data_last = pack( + "a1a100a6a2a32a32a8a8a155a12", + $v_typeflag, + $v_linkname, + $v_magic, + $v_version, + $v_uname, + $v_gname, + $v_devmajor, + $v_devminor, + $v_prefix, + '' + ); // ----- Calculate the checksum $v_checksum = 0; // ..... First part of the header - for ($i=0; $i<148; $i++) - $v_checksum += ord(substr($v_binary_data_first,$i,1)); + for ($i = 0; $i < 148; $i++) { + $v_checksum += ord(substr($v_binary_data_first, $i, 1)); + } // ..... Ignore the checksum value and replace it by ' ' (space) - for ($i=148; $i<156; $i++) + for ($i = 148; $i < 156; $i++) { $v_checksum += ord(' '); + } // ..... Last part of the header - for ($i=156, $j=0; $i<512; $i++, $j++) - $v_checksum += ord(substr($v_binary_data_last,$j,1)); + for ($i = 156, $j = 0; $i < 512; $i++, $j++) { + $v_checksum += ord(substr($v_binary_data_last, $j, 1)); + } // ----- Write the first 148 bytes of the header in the archive $this->_writeBlock($v_binary_data_first, 148); @@ -4940,27 +5715,28 @@ class Archive_Tar extends PEAR $this->_writeBlock($v_binary_data_last, 356); // ----- Write the filename as content of the block - $i=0; - while (($v_buffer = substr($p_filename, (($i++)*512), 512)) != '') { + $i = 0; + while (($v_buffer = substr($p_filename, (($i++) * 512), 512)) != '') { $v_binary_data = pack("a512", "$v_buffer"); $this->_writeBlock($v_binary_data); } return true; } + // }}} // {{{ _readHeader() function _readHeader($v_binary_data, &$v_header) { - if (strlen($v_binary_data)==0) { + if (strlen($v_binary_data) == 0) { $v_header['filename'] = ''; return true; } if (strlen($v_binary_data) != 512) { $v_header['filename'] = ''; - $this->_error('Invalid block size : '.strlen($v_binary_data)); + $this->_error('Invalid block size : ' . strlen($v_binary_data)); return false; } @@ -4970,23 +5746,26 @@ class Archive_Tar extends PEAR // ----- Calculate the checksum $v_checksum = 0; // ..... First part of the header - for ($i=0; $i<148; $i++) - $v_checksum+=ord(substr($v_binary_data,$i,1)); + for ($i = 0; $i < 148; $i++) { + $v_checksum += ord(substr($v_binary_data, $i, 1)); + } // ..... Ignore the checksum value and replace it by ' ' (space) - for ($i=148; $i<156; $i++) + for ($i = 148; $i < 156; $i++) { $v_checksum += ord(' '); + } // ..... Last part of the header - for ($i=156; $i<512; $i++) - $v_checksum+=ord(substr($v_binary_data,$i,1)); + for ($i = 156; $i < 512; $i++) { + $v_checksum += ord(substr($v_binary_data, $i, 1)); + } - if (version_compare(PHP_VERSION,"5.5.0-dev")<0) { + if (version_compare(PHP_VERSION, "5.5.0-dev") < 0) { $fmt = "a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/" . - "a8checksum/a1typeflag/a100link/a6magic/a2version/" . - "a32uname/a32gname/a8devmajor/a8devminor/a131prefix"; + "a8checksum/a1typeflag/a100link/a6magic/a2version/" . + "a32uname/a32gname/a8devmajor/a8devminor/a131prefix"; } else { $fmt = "Z100filename/Z8mode/Z8uid/Z8gid/Z12size/Z12mtime/" . - "Z8checksum/Z1typeflag/Z100link/Z6magic/Z2version/" . - "Z32uname/Z32gname/Z8devmajor/Z8devminor/Z131prefix"; + "Z8checksum/Z1typeflag/Z100link/Z6magic/Z2version/" . + "Z32uname/Z32gname/Z8devmajor/Z8devminor/Z131prefix"; } $v_data = unpack($fmt, $v_binary_data); @@ -5000,20 +5779,25 @@ class Archive_Tar extends PEAR $v_header['filename'] = ''; // ----- Look for last block (empty block) - if (($v_checksum == 256) && ($v_header['checksum'] == 0)) + if (($v_checksum == 256) && ($v_header['checksum'] == 0)) { return true; + } - $this->_error('Invalid checksum for file "'.$v_data['filename'] - .'" : '.$v_checksum.' calculated, ' - .$v_header['checksum'].' expected'); + $this->_error( + 'Invalid checksum for file "' . $v_data['filename'] + . '" : ' . $v_checksum . ' calculated, ' + . $v_header['checksum'] . ' expected' + ); return false; } // ----- Extract the properties $v_header['filename'] = $v_data['filename']; if ($this->_maliciousFilename($v_header['filename'])) { - $this->_error('Malicious .tar detected, file "' . $v_header['filename'] . - '" will not install in desired directory tree'); + $this->_error( + 'Malicious .tar detected, file "' . $v_header['filename'] . + '" will not install in desired directory tree' + ); return false; } $v_header['mode'] = OctDec(trim($v_data['mode'])); @@ -5022,7 +5806,7 @@ class Archive_Tar extends PEAR $v_header['size'] = OctDec(trim($v_data['size'])); $v_header['mtime'] = OctDec(trim($v_data['mtime'])); if (($v_header['typeflag'] = $v_data['typeflag']) == "5") { - $v_header['size'] = 0; + $v_header['size'] = 0; } $v_header['link'] = trim($v_data['link']); /* ----- All these fields are removed form the header because @@ -5037,6 +5821,7 @@ class Archive_Tar extends PEAR return true; } + // }}} // {{{ _maliciousFilename() @@ -5058,369 +5843,431 @@ class Archive_Tar extends PEAR } return false; } + // }}} // {{{ _readLongHeader() function _readLongHeader(&$v_header) { - $v_filename = ''; - $n = floor($v_header['size']/512); - for ($i=0; $i<$n; $i++) { - $v_content = $this->_readBlock(); - $v_filename .= $v_content; - } - if (($v_header['size'] % 512) != 0) { - $v_content = $this->_readBlock(); - $v_filename .= trim($v_content); - } - - // ----- Read the next header - $v_binary_data = $this->_readBlock(); - - if (!$this->_readHeader($v_binary_data, $v_header)) - return false; + $v_filename = ''; + $n = floor($v_header['size'] / 512); + for ($i = 0; $i < $n; $i++) { + $v_content = $this->_readBlock(); + $v_filename .= $v_content; + } + if (($v_header['size'] % 512) != 0) { + $v_content = $this->_readBlock(); + $v_filename .= trim($v_content); + } - $v_filename = trim($v_filename); - $v_header['filename'] = $v_filename; + // ----- Read the next header + $v_binary_data = $this->_readBlock(); + + if (!$this->_readHeader($v_binary_data, $v_header)) { + return false; + } + + $v_filename = trim($v_filename); + $v_header['filename'] = $v_filename; if ($this->_maliciousFilename($v_filename)) { - $this->_error('Malicious .tar detected, file "' . $v_filename . - '" will not install in desired directory tree'); + $this->_error( + 'Malicious .tar detected, file "' . $v_filename . + '" will not install in desired directory tree' + ); return false; - } + } - return true; + return true; } + // }}} // {{{ _extractInString() /** - * This method extract from the archive one file identified by $p_filename. - * The return value is a string with the file content, or null on error. - * - * @param string $p_filename The path of the file to extract in a string. - * - * @return a string with the file content or null. - * @access private - */ + * This method extract from the archive one file identified by $p_filename. + * The return value is a string with the file content, or null on error. + * + * @param string $p_filename The path of the file to extract in a string. + * + * @return a string with the file content or null. + * @access private + */ function _extractInString($p_filename) { $v_result_str = ""; - While (strlen($v_binary_data = $this->_readBlock()) != 0) - { - if (!$this->_readHeader($v_binary_data, $v_header)) - return null; + While (strlen($v_binary_data = $this->_readBlock()) != 0) { + if (!$this->_readHeader($v_binary_data, $v_header)) { + return null; + } - if ($v_header['filename'] == '') - continue; + if ($v_header['filename'] == '') { + continue; + } - // ----- Look for long filename - if ($v_header['typeflag'] == 'L') { - if (!$this->_readLongHeader($v_header)) - return null; - } + // ----- Look for long filename + if ($v_header['typeflag'] == 'L') { + if (!$this->_readLongHeader($v_header)) { + return null; + } + } - if ($v_header['filename'] == $p_filename) { - if ($v_header['typeflag'] == "5") { - $this->_error('Unable to extract in string a directory ' - .'entry {'.$v_header['filename'].'}'); - return null; - } else { - $n = floor($v_header['size']/512); - for ($i=0; $i<$n; $i++) { - $v_result_str .= $this->_readBlock(); - } - if (($v_header['size'] % 512) != 0) { - $v_content = $this->_readBlock(); - $v_result_str .= substr($v_content, 0, - ($v_header['size'] % 512)); - } - return $v_result_str; - } - } else { - $this->_jumpBlock(ceil(($v_header['size']/512))); - } + if ($v_header['filename'] == $p_filename) { + if ($v_header['typeflag'] == "5") { + $this->_error( + 'Unable to extract in string a directory ' + . 'entry {' . $v_header['filename'] . '}' + ); + return null; + } else { + $n = floor($v_header['size'] / 512); + for ($i = 0; $i < $n; $i++) { + $v_result_str .= $this->_readBlock(); + } + if (($v_header['size'] % 512) != 0) { + $v_content = $this->_readBlock(); + $v_result_str .= substr( + $v_content, + 0, + ($v_header['size'] % 512) + ); + } + return $v_result_str; + } + } else { + $this->_jumpBlock(ceil(($v_header['size'] / 512))); + } } return null; } + // }}} // {{{ _extractList() - function _extractList($p_path, &$p_list_detail, $p_mode, - $p_file_list, $p_remove_path, $p_preserve=false) - { - $v_result=true; - $v_nb = 0; - $v_extract_all = true; - $v_listing = false; - - $p_path = $this->_translateWinPath($p_path, false); - if ($p_path == '' || (substr($p_path, 0, 1) != '/' - && substr($p_path, 0, 3) != "../" && !strpos($p_path, ':'))) { - $p_path = "./".$p_path; - } - $p_remove_path = $this->_translateWinPath($p_remove_path); - - // ----- Look for path to remove format (should end by /) - if (($p_remove_path != '') && (substr($p_remove_path, -1) != '/')) - $p_remove_path .= '/'; - $p_remove_path_size = strlen($p_remove_path); - - switch ($p_mode) { - case "complete" : + function _extractList( + $p_path, + &$p_list_detail, + $p_mode, + $p_file_list, + $p_remove_path, + $p_preserve = false + ) { + $v_result = true; + $v_nb = 0; $v_extract_all = true; $v_listing = false; - break; - case "partial" : - $v_extract_all = false; - $v_listing = false; - break; - case "list" : - $v_extract_all = false; - $v_listing = true; - break; - default : - $this->_error('Invalid extract mode ('.$p_mode.')'); - return false; - } - clearstatcache(); + $p_path = $this->_translateWinPath($p_path, false); + if ($p_path == '' || (substr($p_path, 0, 1) != '/' + && substr($p_path, 0, 3) != "../" && !strpos($p_path, ':')) + ) { + $p_path = "./" . $p_path; + } + $p_remove_path = $this->_translateWinPath($p_remove_path); - while (strlen($v_binary_data = $this->_readBlock()) != 0) - { - $v_extract_file = FALSE; - $v_extraction_stopped = 0; + // ----- Look for path to remove format (should end by /) + if (($p_remove_path != '') && (substr($p_remove_path, -1) != '/')) { + $p_remove_path .= '/'; + } + $p_remove_path_size = strlen($p_remove_path); - if (!$this->_readHeader($v_binary_data, $v_header)) - return false; + switch ($p_mode) { + case "complete" : + $v_extract_all = true; + $v_listing = false; + break; + case "partial" : + $v_extract_all = false; + $v_listing = false; + break; + case "list" : + $v_extract_all = false; + $v_listing = true; + break; + default : + $this->_error('Invalid extract mode (' . $p_mode . ')'); + return false; + } - if ($v_header['filename'] == '') { - continue; - } - - // ----- Look for long filename - if ($v_header['typeflag'] == 'L') { - if (!$this->_readLongHeader($v_header)) - return false; - } - - if ((!$v_extract_all) && (is_array($p_file_list))) { - // ----- By default no unzip if the file is not found - $v_extract_file = false; - - for ($i=0; $i<sizeof($p_file_list); $i++) { - // ----- Look if it is a directory - if (substr($p_file_list[$i], -1) == '/') { - // ----- Look if the directory is in the filename path - if ((strlen($v_header['filename']) > strlen($p_file_list[$i])) - && (substr($v_header['filename'], 0, strlen($p_file_list[$i])) - == $p_file_list[$i])) { - $v_extract_file = true; - break; - } - } + clearstatcache(); - // ----- It is a file, so compare the file names - elseif ($p_file_list[$i] == $v_header['filename']) { - $v_extract_file = true; - break; - } - } - } else { - $v_extract_file = true; - } - - // ----- Look if this file need to be extracted - if (($v_extract_file) && (!$v_listing)) - { - if (($p_remove_path != '') - && (substr($v_header['filename'].'/', 0, $p_remove_path_size) - == $p_remove_path)) { - $v_header['filename'] = substr($v_header['filename'], - $p_remove_path_size); - if( $v_header['filename'] == '' ){ - continue; - } - } - if (($p_path != './') && ($p_path != '/')) { - while (substr($p_path, -1) == '/') - $p_path = substr($p_path, 0, strlen($p_path)-1); + while (strlen($v_binary_data = $this->_readBlock()) != 0) { + $v_extract_file = false; + $v_extraction_stopped = 0; - if (substr($v_header['filename'], 0, 1) == '/') - $v_header['filename'] = $p_path.$v_header['filename']; - else - $v_header['filename'] = $p_path.'/'.$v_header['filename']; - } - if (file_exists($v_header['filename'])) { - if ( (@is_dir($v_header['filename'])) - && ($v_header['typeflag'] == '')) { - $this->_error('File '.$v_header['filename'] - .' already exists as a directory'); - return false; - } - if ( ($this->_isArchive($v_header['filename'])) - && ($v_header['typeflag'] == "5")) { - $this->_error('Directory '.$v_header['filename'] - .' already exists as a file'); - return false; - } - if (!is_writeable($v_header['filename'])) { - $this->_error('File '.$v_header['filename'] - .' already exists and is write protected'); - return false; - } - if (filemtime($v_header['filename']) > $v_header['mtime']) { - // To be completed : An error or silent no replace ? - } - } + if (!$this->_readHeader($v_binary_data, $v_header)) { + return false; + } - // ----- Check the directory availability and create it if necessary - elseif (($v_result - = $this->_dirCheck(($v_header['typeflag'] == "5" - ?$v_header['filename'] - :dirname($v_header['filename'])))) != 1) { - $this->_error('Unable to create path for '.$v_header['filename']); - return false; - } + if ($v_header['filename'] == '') { + continue; + } - if ($v_extract_file) { - if ($v_header['typeflag'] == "5") { - if (!@file_exists($v_header['filename'])) { - if (!@mkdir($v_header['filename'], 0777)) { - $this->_error('Unable to create directory {' - .$v_header['filename'].'}'); + // ----- Look for long filename + if ($v_header['typeflag'] == 'L') { + if (!$this->_readLongHeader($v_header)) { return false; } } - } elseif ($v_header['typeflag'] == "2") { - if (@file_exists($v_header['filename'])) { - @unlink($v_header['filename']); - } - if (!@symlink($v_header['link'], $v_header['filename'])) { - $this->_error('Unable to extract symbolic link {' - .$v_header['filename'].'}'); - return false; - } - } else { - if (($v_dest_file = @fopen($v_header['filename'], "wb")) == 0) { - $this->_error('Error while opening {'.$v_header['filename'] - .'} in write binary mode'); - return false; - } else { - $n = floor($v_header['size']/512); - for ($i=0; $i<$n; $i++) { - $v_content = $this->_readBlock(); - fwrite($v_dest_file, $v_content, 512); - } - if (($v_header['size'] % 512) != 0) { - $v_content = $this->_readBlock(); - fwrite($v_dest_file, $v_content, ($v_header['size'] % 512)); - } - - @fclose($v_dest_file); - - if ($p_preserve) { - @chown($v_header['filename'], $v_header['uid']); - @chgrp($v_header['filename'], $v_header['gid']); - } - - // ----- Change the file mode, mtime - @touch($v_header['filename'], $v_header['mtime']); - if ($v_header['mode'] & 0111) { - // make file executable, obey umask - $mode = fileperms($v_header['filename']) | (~umask() & 0111); - @chmod($v_header['filename'], $mode); + + // ignore extended / pax headers + if ($v_header['typeflag'] == 'x' || $v_header['typeflag'] == 'g') { + $this->_jumpBlock(ceil(($v_header['size'] / 512))); + continue; } - } - // ----- Check the file size - clearstatcache(); - if (!is_file($v_header['filename'])) { - $this->_error('Extracted file '.$v_header['filename'] - .'does not exist. Archive may be corrupted.'); - return false; - } - - $filesize = filesize($v_header['filename']); - if ($filesize != $v_header['size']) { - $this->_error('Extracted file '.$v_header['filename'] - .' does not have the correct file size \'' - .$filesize - .'\' ('.$v_header['size'] - .' expected). Archive may be corrupted.'); - return false; - } - } - } else { - $this->_jumpBlock(ceil(($v_header['size']/512))); - } - } else { - $this->_jumpBlock(ceil(($v_header['size']/512))); - } + if ((!$v_extract_all) && (is_array($p_file_list))) { + // ----- By default no unzip if the file is not found + $v_extract_file = false; - /* TBC : Seems to be unused ... - if ($this->_compress) - $v_end_of_file = @gzeof($this->_file); - else - $v_end_of_file = @feof($this->_file); - */ + for ($i = 0; $i < sizeof($p_file_list); $i++) { + // ----- Look if it is a directory + if (substr($p_file_list[$i], -1) == '/') { + // ----- Look if the directory is in the filename path + if ((strlen($v_header['filename']) > strlen($p_file_list[$i])) + && (substr($v_header['filename'], 0, strlen($p_file_list[$i])) + == $p_file_list[$i]) + ) { + $v_extract_file = true; + break; + } + } // ----- It is a file, so compare the file names + elseif ($p_file_list[$i] == $v_header['filename']) { + $v_extract_file = true; + break; + } + } + } else { + $v_extract_file = true; + } - if ($v_listing || $v_extract_file || $v_extraction_stopped) { - // ----- Log extracted files - if (($v_file_dir = dirname($v_header['filename'])) - == $v_header['filename']) - $v_file_dir = ''; - if ((substr($v_header['filename'], 0, 1) == '/') && ($v_file_dir == '')) - $v_file_dir = '/'; + // ----- Look if this file need to be extracted + if (($v_extract_file) && (!$v_listing)) { + if (($p_remove_path != '') + && (substr($v_header['filename'] . '/', 0, $p_remove_path_size) + == $p_remove_path) + ) { + $v_header['filename'] = substr( + $v_header['filename'], + $p_remove_path_size + ); + if ($v_header['filename'] == '') { + continue; + } + } + if (($p_path != './') && ($p_path != '/')) { + while (substr($p_path, -1) == '/') { + $p_path = substr($p_path, 0, strlen($p_path) - 1); + } - $p_list_detail[$v_nb++] = $v_header; - if (is_array($p_file_list) && (count($p_list_detail) == count($p_file_list))) { - return true; + if (substr($v_header['filename'], 0, 1) == '/') { + $v_header['filename'] = $p_path . $v_header['filename']; + } else { + $v_header['filename'] = $p_path . '/' . $v_header['filename']; + } + } + if (file_exists($v_header['filename'])) { + if ((@is_dir($v_header['filename'])) + && ($v_header['typeflag'] == '') + ) { + $this->_error( + 'File ' . $v_header['filename'] + . ' already exists as a directory' + ); + return false; + } + if (($this->_isArchive($v_header['filename'])) + && ($v_header['typeflag'] == "5") + ) { + $this->_error( + 'Directory ' . $v_header['filename'] + . ' already exists as a file' + ); + return false; + } + if (!is_writeable($v_header['filename'])) { + $this->_error( + 'File ' . $v_header['filename'] + . ' already exists and is write protected' + ); + return false; + } + if (filemtime($v_header['filename']) > $v_header['mtime']) { + // To be completed : An error or silent no replace ? + } + } // ----- Check the directory availability and create it if necessary + elseif (($v_result + = $this->_dirCheck( + ($v_header['typeflag'] == "5" + ? $v_header['filename'] + : dirname($v_header['filename'])) + )) != 1 + ) { + $this->_error('Unable to create path for ' . $v_header['filename']); + return false; + } + + if ($v_extract_file) { + if ($v_header['typeflag'] == "5") { + if (!@file_exists($v_header['filename'])) { + if (!@mkdir($v_header['filename'], 0777)) { + $this->_error( + 'Unable to create directory {' + . $v_header['filename'] . '}' + ); + return false; + } + } + } elseif ($v_header['typeflag'] == "2") { + if (@file_exists($v_header['filename'])) { + @unlink($v_header['filename']); + } + if (!@symlink($v_header['link'], $v_header['filename'])) { + $this->_error( + 'Unable to extract symbolic link {' + . $v_header['filename'] . '}' + ); + return false; + } + } else { + if (($v_dest_file = @fopen($v_header['filename'], "wb")) == 0) { + $this->_error( + 'Error while opening {' . $v_header['filename'] + . '} in write binary mode' + ); + return false; + } else { + $n = floor($v_header['size'] / 512); + for ($i = 0; $i < $n; $i++) { + $v_content = $this->_readBlock(); + fwrite($v_dest_file, $v_content, 512); + } + if (($v_header['size'] % 512) != 0) { + $v_content = $this->_readBlock(); + fwrite($v_dest_file, $v_content, ($v_header['size'] % 512)); + } + + @fclose($v_dest_file); + + if ($p_preserve) { + @chown($v_header['filename'], $v_header['uid']); + @chgrp($v_header['filename'], $v_header['gid']); + } + + // ----- Change the file mode, mtime + @touch($v_header['filename'], $v_header['mtime']); + if ($v_header['mode'] & 0111) { + // make file executable, obey umask + $mode = fileperms($v_header['filename']) | (~umask() & 0111); + @chmod($v_header['filename'], $mode); + } + } + + // ----- Check the file size + clearstatcache(); + if (!is_file($v_header['filename'])) { + $this->_error( + 'Extracted file ' . $v_header['filename'] + . 'does not exist. Archive may be corrupted.' + ); + return false; + } + + $filesize = filesize($v_header['filename']); + if ($filesize != $v_header['size']) { + $this->_error( + 'Extracted file ' . $v_header['filename'] + . ' does not have the correct file size \'' + . $filesize + . '\' (' . $v_header['size'] + . ' expected). Archive may be corrupted.' + ); + return false; + } + } + } else { + $this->_jumpBlock(ceil(($v_header['size'] / 512))); + } + } else { + $this->_jumpBlock(ceil(($v_header['size'] / 512))); + } + + /* TBC : Seems to be unused ... + if ($this->_compress) + $v_end_of_file = @gzeof($this->_file); + else + $v_end_of_file = @feof($this->_file); + */ + + if ($v_listing || $v_extract_file || $v_extraction_stopped) { + // ----- Log extracted files + if (($v_file_dir = dirname($v_header['filename'])) + == $v_header['filename'] + ) { + $v_file_dir = ''; + } + if ((substr($v_header['filename'], 0, 1) == '/') && ($v_file_dir == '')) { + $v_file_dir = '/'; + } + + $p_list_detail[$v_nb++] = $v_header; + if (is_array($p_file_list) && (count($p_list_detail) == count($p_file_list))) { + return true; + } + } } - } - } return true; } + // }}} // {{{ _openAppend() function _openAppend() { - if (filesize($this->_tarname) == 0) - return $this->_openWrite(); + if (filesize($this->_tarname) == 0) { + return $this->_openWrite(); + } if ($this->_compress) { $this->_close(); - if (!@rename($this->_tarname, $this->_tarname.".tmp")) { - $this->_error('Error while renaming \''.$this->_tarname - .'\' to temporary file \''.$this->_tarname - .'.tmp\''); + if (!@rename($this->_tarname, $this->_tarname . ".tmp")) { + $this->_error( + 'Error while renaming \'' . $this->_tarname + . '\' to temporary file \'' . $this->_tarname + . '.tmp\'' + ); return false; } - if ($this->_compress_type == 'gz') - $v_temp_tar = @gzopen($this->_tarname.".tmp", "rb"); - elseif ($this->_compress_type == 'bz2') - $v_temp_tar = @bzopen($this->_tarname.".tmp", "r"); + if ($this->_compress_type == 'gz') { + $v_temp_tar = @gzopen($this->_tarname . ".tmp", "rb"); + } elseif ($this->_compress_type == 'bz2') { + $v_temp_tar = @bzopen($this->_tarname . ".tmp", "r"); + } elseif ($this->_compress_type == 'lzma2') { + $v_temp_tar = @xzopen($this->_tarname . ".tmp", "r"); + } + if ($v_temp_tar == 0) { - $this->_error('Unable to open file \''.$this->_tarname - .'.tmp\' in binary read mode'); - @rename($this->_tarname.".tmp", $this->_tarname); + $this->_error( + 'Unable to open file \'' . $this->_tarname + . '.tmp\' in binary read mode' + ); + @rename($this->_tarname . ".tmp", $this->_tarname); return false; } if (!$this->_openWrite()) { - @rename($this->_tarname.".tmp", $this->_tarname); + @rename($this->_tarname . ".tmp", $this->_tarname); return false; } if ($this->_compress_type == 'gz') { $end_blocks = 0; - + while (!@gzeof($v_temp_tar)) { $v_buffer = @gzread($v_temp_tar, 512); if ($v_buffer == ARCHIVE_TAR_END_BLOCK || strlen($v_buffer) == 0) { @@ -5439,10 +6286,9 @@ class Archive_Tar extends PEAR } @gzclose($v_temp_tar); - } - elseif ($this->_compress_type == 'bz2') { + } elseif ($this->_compress_type == 'bz2') { $end_blocks = 0; - + while (strlen($v_buffer = @bzread($v_temp_tar, 512)) > 0) { if ($v_buffer == ARCHIVE_TAR_END_BLOCK || strlen($v_buffer) == 0) { $end_blocks++; @@ -5460,18 +6306,41 @@ class Archive_Tar extends PEAR } @bzclose($v_temp_tar); + } elseif ($this->_compress_type == 'lzma2') { + $end_blocks = 0; + + while (strlen($v_buffer = @xzread($v_temp_tar, 512)) > 0) { + if ($v_buffer == ARCHIVE_TAR_END_BLOCK || strlen($v_buffer) == 0) { + $end_blocks++; + // do not copy end blocks, we will re-make them + // after appending + continue; + } elseif ($end_blocks > 0) { + for ($i = 0; $i < $end_blocks; $i++) { + $this->_writeBlock(ARCHIVE_TAR_END_BLOCK); + } + $end_blocks = 0; + } + $v_binary_data = pack("a512", $v_buffer); + $this->_writeBlock($v_binary_data); + } + + @xzclose($v_temp_tar); } - if (!@unlink($this->_tarname.".tmp")) { - $this->_error('Error while deleting temporary file \'' - .$this->_tarname.'.tmp\''); + if (!@unlink($this->_tarname . ".tmp")) { + $this->_error( + 'Error while deleting temporary file \'' + . $this->_tarname . '.tmp\'' + ); } } else { // ----- For not compressed tar, just add files before the last - // one or two 512 bytes block - if (!$this->_openReadWrite()) - return false; + // one or two 512 bytes block + if (!$this->_openReadWrite()) { + return false; + } clearstatcache(); $v_size = filesize($this->_tarname); @@ -5482,29 +6351,32 @@ class Archive_Tar extends PEAR fseek($this->_file, $v_size - 1024); if (fread($this->_file, 512) == ARCHIVE_TAR_END_BLOCK) { fseek($this->_file, $v_size - 1024); - } - elseif (fread($this->_file, 512) == ARCHIVE_TAR_END_BLOCK) { + } elseif (fread($this->_file, 512) == ARCHIVE_TAR_END_BLOCK) { fseek($this->_file, $v_size - 512); } } return true; } + // }}} // {{{ _append() - function _append($p_filelist, $p_add_dir='', $p_remove_dir='') + function _append($p_filelist, $p_add_dir = '', $p_remove_dir = '') { - if (!$this->_openAppend()) + if (!$this->_openAppend()) { return false; + } - if ($this->_addList($p_filelist, $p_add_dir, $p_remove_dir)) - $this->_writeFooter(); + if ($this->_addList($p_filelist, $p_add_dir, $p_remove_dir)) { + $this->_writeFooter(); + } $this->_close(); return true; } + // }}} // {{{ _dirCheck() @@ -5520,15 +6392,18 @@ class Archive_Tar extends PEAR function _dirCheck($p_dir) { clearstatcache(); - if ((@is_dir($p_dir)) || ($p_dir == '')) + if ((@is_dir($p_dir)) || ($p_dir == '')) { return true; + } $p_parent_dir = dirname($p_dir); if (($p_parent_dir != $p_dir) && ($p_parent_dir != '') && - (!$this->_dirCheck($p_parent_dir))) - return false; + (!$this->_dirCheck($p_parent_dir)) + ) { + return false; + } if (!@mkdir($p_dir, 0777)) { $this->_error("Unable to create directory '$p_dir'"); @@ -5563,58 +6438,63 @@ class Archive_Tar extends PEAR $v_list = explode('/', $p_dir); // ----- Study directories from last to first - for ($i=sizeof($v_list)-1; $i>=0; $i--) { + for ($i = sizeof($v_list) - 1; $i >= 0; $i--) { // ----- Look for current path if ($v_list[$i] == ".") { // ----- Ignore this directory // Should be the first $i=0, but no check is done - } - else if ($v_list[$i] == "..") { - // ----- Ignore it and ignore the $i-1 - $i--; - } - else if ( ($v_list[$i] == '') - && ($i!=(sizeof($v_list)-1)) - && ($i!=0)) { - // ----- Ignore only the double '//' in path, - // but not the first and last / } else { - $v_result = $v_list[$i].($i!=(sizeof($v_list)-1)?'/' - .$v_result:''); + if ($v_list[$i] == "..") { + // ----- Ignore it and ignore the $i-1 + $i--; + } else { + if (($v_list[$i] == '') + && ($i != (sizeof($v_list) - 1)) + && ($i != 0) + ) { + // ----- Ignore only the double '//' in path, + // but not the first and last / + } else { + $v_result = $v_list[$i] . ($i != (sizeof($v_list) - 1) ? '/' + . $v_result : ''); + } + } } } } - + if (defined('OS_WINDOWS') && OS_WINDOWS) { $v_result = strtr($v_result, '\\', '/'); } - + return $v_result; } // }}} // {{{ _translateWinPath() - function _translateWinPath($p_path, $p_remove_disk_letter=true) + function _translateWinPath($p_path, $p_remove_disk_letter = true) { - if (defined('OS_WINDOWS') && OS_WINDOWS) { - // ----- Look for potential disk letter - if ( ($p_remove_disk_letter) - && (($v_position = strpos($p_path, ':')) != false)) { - $p_path = substr($p_path, $v_position+1); - } - // ----- Change potential windows directory separator - if ((strpos($p_path, '\\') > 0) || (substr($p_path, 0,1) == '\\')) { - $p_path = strtr($p_path, '\\', '/'); - } - } - return $p_path; + if (defined('OS_WINDOWS') && OS_WINDOWS) { + // ----- Look for potential disk letter + if (($p_remove_disk_letter) + && (($v_position = strpos($p_path, ':')) != false) + ) { + $p_path = substr($p_path, $v_position + 1); + } + // ----- Change potential windows directory separator + if ((strpos($p_path, '\\') > 0) || (substr($p_path, 0, 1) == '\\')) { + $p_path = strtr($p_path, '\\', '/'); + } + } + return $p_path; } // }}} } + ?> - + =================================== Last update : 2001-08-15 @@ -5909,7 +6789,7 @@ Sample 2 : How it works : Simply call the addModify() method with the right parameters. -Method : addString($p_filename, $p_string) +Method : addString($p_filename, $p_string, $p_datetime, $p_params) Description : This method add a single string as a file at the end of the existing archive. If the archive does not yet exists it @@ -5918,12 +6798,26 @@ Arguments : $p_filename : A string which contains the full filename path that will be associated with the string. $p_string : The content of the file added in the archive. + $p_datetime : (Optional) Timestamp of the file (default = now) + $p_params : (Optional) Various file metadata: + stamp - As above, timestamp of the file + mode - UNIX-style permissions (default 0600) + type - Is this a regular file or link (see TAR + format spec for how to create a hard/symlink) + uid - UNIX-style user ID (default 0 = root) + gid - UNIX-style group ID (default 0 = root) Return value : true on success, false on error. Sample 1 : $v_archive = & new Archive_Tar($p_filename); $v_archive->setErrorHandling(PEAR_ERROR_PRINT); $v_result = $v_archive->addString('data/test.txt', 'This is the text of the string'); + $v_result = $v_archive->addString( + 'data/test.sh', + "#!/bin/sh\necho 'Hello'", + time(), + array( "mode" => 0755, "uid" => 34 ) + ); Method : extract($p_path = "") @@ -6075,7 +6969,7 @@ How it works : Go through the archive and extract only the files present in the list. - + /* vim: set expandtab tabstop=4 shiftwidth=4: */ /** * PHP Version 5 @@ -7043,7 +7937,7 @@ if (!$a) { } $force = false; -$install_files = array('Archive_Tar' => 'phar://install-pear-nozlib.phar/Archive_Tar-1.3.11.tar', +$install_files = array('Archive_Tar' => 'phar://install-pear-nozlib.phar/Archive_Tar-1.3.12.tar', 'Console_Getopt' => 'phar://install-pear-nozlib.phar/Console_Getopt-1.3.1.tar', 'Structures_Graph' => 'phar://install-pear-nozlib.phar/Structures_Graph-1.0.4.tar', 'XML_Util' => 'phar://install-pear-nozlib.phar/XML_Util-1.2.3.tar', @@ -98892,4 +99786,4 @@ class XML_Util } } ?> - + diff --git a/sapi/litespeed/Makefile.frag b/sapi/litespeed/Makefile.frag index b70e5e870..767c2e5eb 100644 --- a/sapi/litespeed/Makefile.frag +++ b/sapi/litespeed/Makefile.frag @@ -4,6 +4,6 @@ $(SAPI_LITESPEED_PATH): $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_LITESPEED_OB $(BUILD_LITESPEED) install-litespeed: $(SAPI_LITESPEED_PATH) - @echo "Installing PHP LitSpeed binary: $(INSTALL_ROOT)$(bindir)/" + @echo "Installing PHP LiteSpeed binary: $(INSTALL_ROOT)$(bindir)/" @$(INSTALL) -m 0755 $(SAPI_LITESPEED_PATH) $(INSTALL_ROOT)$(bindir)/lsphp diff --git a/sapi/litespeed/lsapi_main.c b/sapi/litespeed/lsapi_main.c index 84e870d62..3413a423a 100644 --- a/sapi/litespeed/lsapi_main.c +++ b/sapi/litespeed/lsapi_main.c @@ -16,8 +16,6 @@ +----------------------------------------------------------------------+ */ -/* $Id$ */ - #include "php.h" #include "SAPI.h" #include "php_main.h" @@ -75,6 +73,7 @@ static int lsapi_mode = 1; static char *php_self = ""; static char *script_filename = ""; static int source_highlight = 0; +static int ignore_php_ini = 0; static char * argv0 = NULL; static int engine = 1; #ifdef ZTS @@ -289,7 +288,7 @@ static void sapi_lsapi_register_variables(zval *track_vars_array TSRMLS_DC) static int sapi_lsapi_read_post(char *buffer, uint count_bytes TSRMLS_DC) { if ( lsapi_mode ) { - return LSAPI_ReadReqBody( buffer, count_bytes ); + return LSAPI_ReadReqBody( buffer, (unsigned long long)count_bytes ); } else { return 0; } @@ -353,7 +352,14 @@ static int sapi_lsapi_send_headers(sapi_headers_struct *sapi_headers TSRMLS_DC) */ static void sapi_lsapi_log_message(char *message TSRMLS_DC) { + char buf[8192]; int len = strlen( message ); + if ( *(message + len - 1 ) != '\n' ) + { + snprintf( buf, 8191, "%s\n", message ); + message = buf; + ++len; + } LSAPI_Write_Stderr( message, len); } /* }}} */ @@ -364,7 +370,7 @@ static void sapi_lsapi_log_message(char *message TSRMLS_DC) static sapi_module_struct lsapi_sapi_module = { "litespeed", - "LiteSpeed V5.5", + "LiteSpeed V6.6", php_lsapi_startup, /* startup */ php_module_shutdown_wrapper, /* shutdown */ @@ -520,7 +526,7 @@ static int lsapi_module_main(int show_source TSRMLS_DC) } zend_try { php_request_shutdown(NULL); - *argv0 = 0; + memset( argv0, 0, 46 ); } zend_end_try(); return 0; } @@ -558,10 +564,12 @@ static void override_ini() } + static int processReq( TSRMLS_D ) { int ret = 0; zend_first_try { + /* avoid server_context==NULL checks */ SG(server_context) = (void *) 1; @@ -587,14 +595,16 @@ static void cli_usage( TSRMLS_D ) { static const char * usage = "Usage: php\n" - " php -[b|c|h|i|q|s|v|?] [<file>] [args...]\n" + " php -[b|c|n|h|i|q|s|v|?] [<file>] [args...]\n" " Run in LSAPI mode, only '-b', '-s' and '-c' are effective\n" " Run in Command Line Interpreter mode when parameters are specified\n" "\n" " -b <address:port>|<port> Bind Path for external LSAPI Server mode\n" " -c <path>|<file> Look for php.ini file in this directory\n" + " -n No php.ini file will be used\n" " -h This help\n" " -i PHP information\n" + " -l Syntax check\n" " -q Quiet-mode. Suppress HTTP Header output.\n" " -s Display colour syntax highlighted source.\n" " -v Version number\n" @@ -626,7 +636,7 @@ static int parse_opt( int argc, char * argv[], int *climode, fprintf( stderr, "TCP or socket address must be specified following '-b' option.\n"); return -1; } - *php_bind = *p++; + *php_bind = strdup(*p++); break; case 'c': @@ -635,16 +645,22 @@ static int parse_opt( int argc, char * argv[], int *climode, return -1; } - *php_ini_path = *p++; + *php_ini_path = strdup( *p++ ); break; case 's': source_highlight = 1; - break; + break; + case 'n': + ignore_php_ini = 1; + break; + case '?': + if ( *((*(p-1))+2) == 's' ) + exit( 99 ); case 'h': case 'i': + case 'l': case 'q': case 'v': - case '?': default: *climode = 1; break; @@ -674,7 +690,7 @@ static int cli_main( int argc, char * argv[] ) const char ** ini; char ** p = &argv[1]; char ** argend= &argv[argc]; - int ret = 0; + int ret = -1; int c; lsapi_mode = 0; /* enter CLI mode */ @@ -713,8 +729,8 @@ static int cli_main( int argc, char * argv[] ) php_end_ob_buffers(1 TSRMLS_CC); #endif php_request_shutdown( NULL ); + ret = 0; } - ret = 1; break; case 'v': if (php_request_startup(TSRMLS_C) != FAILURE) { @@ -729,25 +745,27 @@ static int cli_main( int argc, char * argv[] ) php_end_ob_buffers(1 TSRMLS_CC); #endif php_request_shutdown( NULL ); + ret = 0; } - ret = 1; break; case 'c': ++p; /* fall through */ case 's': break; - + case 'l': + source_highlight = 2; + break; case 'h': case '?': default: cli_usage(TSRMLS_C); - ret = 1; + ret = 0; break; } } - if ( !ret ) { + if ( ret == -1 ) { if ( *p ) { zend_file_handle file_handle = {0}; @@ -766,18 +784,30 @@ static int cli_main( int argc, char * argv[] ) fclose( file_handle.handle.fp ); ret = 2; } else { - if (source_highlight) { + if (source_highlight == 1) { zend_syntax_highlighter_ini syntax_highlighter_ini; php_get_highlight_struct(&syntax_highlighter_ini); highlight_file(SG(request_info).path_translated, &syntax_highlighter_ini TSRMLS_CC); + } else if (source_highlight == 2) { + file_handle.filename = *p; + file_handle.free_filename = 0; + file_handle.opened_path = NULL; + ret = php_lint_script(&file_handle TSRMLS_CC); + if (ret==SUCCESS) { + zend_printf("No syntax errors detected in %s\n", file_handle.filename); + } else { + zend_printf("Errors parsing %s\n", file_handle.filename); + } + } else { file_handle.filename = *p; file_handle.free_filename = 0; file_handle.opened_path = NULL; php_execute_script(&file_handle TSRMLS_CC); - } + ret = EG(exit_status); + } php_request_shutdown( NULL ); } @@ -858,7 +888,25 @@ void start_children( int children ) exit( 0 ); } - +void setArgv0( int argc, char * argv[] ) +{ + char * p; + int i; + argv0 = argv[0] + strlen( argv[0] ); + p = argv0; + while(( p > argv[0] )&&( p[-1] != '/')) + --p; + if ( p > argv[0] ) + { + memmove( argv[0], p, argv0 - p ); + memset( argv[0] + ( argv0 - p ), 0, p - argv[0] ); + argv0 = argv[0] + (argv0 - p); + } + for( i = 1; i < argc; ++i ) + { + memset( argv[i], 0, strlen( argv[i] ) ); + } +} #include <fcntl.h> int main( int argc, char * argv[] ) @@ -868,7 +916,6 @@ int main( int argc, char * argv[] ) char * php_ini_path = NULL; char * php_bind = NULL; - char * p; int n; int climode = 0; struct timeval tv_req_begin; @@ -894,8 +941,10 @@ int main( int argc, char * argv[] ) } if ( climode ) { lsapi_sapi_module.phpinfo_as_text = 1; + } else { + setArgv0(argc, argv ); } - argv0 = argv[0] + strlen( argv[0] ); + sapi_startup(&lsapi_sapi_module); #ifdef ZTS @@ -909,6 +958,9 @@ int main( int argc, char * argv[] ) #endif lsapi_sapi_module.executable_location = argv[0]; + + if ( ignore_php_ini ) + lsapi_sapi_module.php_ini_ignore = 1; if ( php_ini_path ) { lsapi_sapi_module.php_ini_path_override = php_ini_path; @@ -949,6 +1001,8 @@ int main( int argc, char * argv[] ) if ( php_bind ) { LSAPI_No_Check_ppid(); + free( php_bind ); + php_bind = NULL; } while( LSAPI_Prefork_Accept_r( &g_req ) >= 0 ) { @@ -986,27 +1040,23 @@ int main( int argc, char * argv[] ) /* LiteSpeed PHP module starts here */ -#if PHP_MAJOR_VERSION > 4 - /* {{{ arginfo */ ZEND_BEGIN_ARG_INFO(arginfo_litespeed__void, 0) ZEND_END_ARG_INFO() /* }}} */ -#else -#define arginfo_litespeed__void NULL -#endif - PHP_FUNCTION(litespeed_request_headers); PHP_FUNCTION(litespeed_response_headers); +PHP_FUNCTION(apache_get_modules); PHP_MINFO_FUNCTION(litespeed); zend_function_entry litespeed_functions[] = { - PHP_FE(litespeed_request_headers, arginfo_litespeed__void) - PHP_FE(litespeed_response_headers, arginfo_litespeed__void) - PHP_FALIAS(getallheaders, litespeed_request_headers, arginfo_litespeed__void) - PHP_FALIAS(apache_request_headers, litespeed_request_headers, arginfo_litespeed__void) + PHP_FE(litespeed_request_headers, arginfo_litespeed__void) + PHP_FE(litespeed_response_headers, arginfo_litespeed__void) + PHP_FE(apache_get_modules, arginfo_litespeed__void) + PHP_FALIAS(getallheaders, litespeed_request_headers, arginfo_litespeed__void) + PHP_FALIAS(apache_request_headers, litespeed_request_headers, arginfo_litespeed__void) PHP_FALIAS(apache_response_headers, litespeed_response_headers, arginfo_litespeed__void) {NULL, NULL, NULL} }; @@ -1055,8 +1105,7 @@ PHP_FUNCTION(litespeed_request_headers) } array_init(return_value); - if ( lsapi_mode ) - LSAPI_ForeachOrgHeader( add_associate_array, return_value ); + LSAPI_ForeachOrgHeader( add_associate_array, return_value ); } /* }}} */ @@ -1106,6 +1155,23 @@ PHP_FUNCTION(litespeed_response_headers) /* }}} */ +/* {{{ proto array apache_get_modules(void) + Fetch all loaded module names */ +PHP_FUNCTION(apache_get_modules) +{ + /* TODO: */ + if (ZEND_NUM_ARGS() > 0) { + WRONG_PARAM_COUNT; + } + array_init(return_value); + add_next_index_string(return_value, "mod_rewrite", 1); + add_next_index_string(return_value, "mod_mime", 1); + add_next_index_string(return_value, "mod_headers", 1); + add_next_index_string(return_value, "mod_expires", 1); +} +/* }}} */ + + /* * Local variables: * tab-width: 4 diff --git a/sapi/litespeed/lsapidef.h b/sapi/litespeed/lsapidef.h index 3bdadac1d..fb75d01a1 100644 --- a/sapi/litespeed/lsapidef.h +++ b/sapi/litespeed/lsapidef.h @@ -1,4 +1,3 @@ - /* +----------------------------------------------------------------------+ | PHP Version 5 | @@ -17,9 +16,8 @@ +----------------------------------------------------------------------+ */ - /* -Copyright (c) 2007, Lite Speed Technologies Inc. +Copyright (c) 2002-2014, Lite Speed Technologies Inc. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -113,12 +111,14 @@ enum #define LSAPI_RESP_END 5 #define LSAPI_STDERR_STREAM 6 #define LSAPI_REQ_RECEIVED 7 +#define LSAPI_CONN_CLOSE 8 +#define LSAPI_INTERNAL_ERROR 9 #define LSAPI_MAX_HEADER_LEN 65535 #define LSAPI_MAX_DATA_PACKET_LEN 16384 -#define LSAPI_RESP_HTTP_HEADER_MAX 4096 +#define LSAPI_RESP_HTTP_HEADER_MAX 32768 #define LSAPI_PACKET_HEADER_LEN 8 diff --git a/sapi/litespeed/lsapilib.c b/sapi/litespeed/lsapilib.c index 1bb16b326..786a3bd20 100644 --- a/sapi/litespeed/lsapilib.c +++ b/sapi/litespeed/lsapilib.c @@ -16,10 +16,8 @@ +----------------------------------------------------------------------+ */ -/* $Id$ */ - /* -Copyright (c) 2007, Lite Speed Technologies Inc. +Copyright (c) 2002-2014, Lite Speed Technologies Inc. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -50,17 +48,13 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include <lsapilib.h> #include <ctype.h> +#include <dlfcn.h> #include <errno.h> #include <fcntl.h> -#include <arpa/inet.h> -#include <netdb.h> -#include <netinet/in.h> -#include <netinet/tcp.h> -#include <sys/un.h> +#include <sys/stat.h> #include <signal.h> #include <stdlib.h> #include <stdio.h> @@ -71,8 +65,48 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include <sys/time.h> #include <sys/uio.h> #include <sys/wait.h> +#include <grp.h> +#include <pwd.h> #include <time.h> #include <unistd.h> +#include <arpa/inet.h> +#include <netdb.h> +#include <netinet/in.h> +#include <netinet/tcp.h> +#include <sys/un.h> + +#include "lsapilib.h" + +#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__) +#include <sys/prctl.h> +#endif + +#if defined(__FreeBSD__ ) || defined(__NetBSD__) || defined(__OpenBSD__) \ + || defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) +#include <sys/sysctl.h> +#endif + +#include <inttypes.h> +#ifndef uint32 +#define uint32 uint32_t +#endif + +struct lsapi_MD5Context { + uint32 buf[4]; + uint32 bits[2]; + unsigned char in[64]; +}; + +void lsapi_MD5Init(struct lsapi_MD5Context *context); +void lsapi_MD5Update(struct lsapi_MD5Context *context, unsigned char const *buf, + unsigned len); +void lsapi_MD5Final(unsigned char digest[16], struct lsapi_MD5Context *context); + +/* + * This is needed to make RSAREF happy on some MS-DOS compilers. + */ +typedef struct lsapi_MD5Context lsapi_MD5_CTX; + #define LSAPI_ST_REQ_HEADER 1 #define LSAPI_ST_REQ_BODY 2 @@ -83,12 +117,20 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define LSAPI_INIT_RESP_HEADER_LEN 4096 + static int g_inited = 0; static int g_running = 1; static int s_ppid; static int s_slow_req_msecs = 0; +static int s_keepListener = 0; +static int s_dump_debug_info = 0; +static int s_pid_dump_debug_info = 0; + LSAPI_Request g_req = { -1, -1 }; +static char s_pSecret[24]; + + void Flush_RespBuf_r( LSAPI_Request * pReq ); static const char *CGI_HEADERS[H_TRANSFER_ENCODING+1] = @@ -112,13 +154,13 @@ static const char *CGI_HEADERS[H_TRANSFER_ENCODING+1] = "HTTP_TRANSFER_ENCODING" }; -static int CGI_HEADER_LEN[H_TRANSFER_ENCODING+1] = { - 11, 19, 20, 20, 18, 15, 12, 14, 11, 12, 9, 11, 12, 15, 18, - 22, 13, 18, 13, 24, 15, 10, 20, 8, 22 -}; +static int CGI_HEADER_LEN[H_TRANSFER_ENCODING+1] = +{ 11, 19, 20, 20, 18, 15, 12, 14, 11, 12, 9, 11, 12, 15, 18, + 22, 13, 18, 13, 24, 15, 10, 20, 8, 22 }; -static const char *HTTP_HEADERS[H_TRANSFER_ENCODING+1] = { +static const char *HTTP_HEADERS[H_TRANSFER_ENCODING+1] = +{ "Accept", "Accept-Charset", "Accept-Encoding", "Accept-Language", "Authorization", @@ -138,8 +180,8 @@ static const char *HTTP_HEADERS[H_TRANSFER_ENCODING+1] = { "Transfer-Encoding" }; -static int HTTP_HEADER_LEN[H_TRANSFER_ENCODING+1] = { - 6, 14, 15, 15, 13, 10, 12, 14, 6, 7, 4, 6, 7, 10, /* user-agent */ +static int HTTP_HEADER_LEN[H_TRANSFER_ENCODING+1] = +{ 6, 14, 15, 15, 13, 10, 12, 14, 6, 7, 4, 6, 7, 10, //user-agent 13,17, 8, 13, 8, 19, 10, 5, 15, 3, 17 }; @@ -161,7 +203,8 @@ static void lsapi_signal(int signo, sighandler_t handler) sigaction(signo, NULL, &sa); - if (sa.sa_handler == SIG_DFL) { + if (sa.sa_handler == SIG_DFL) + { sigemptyset(&sa.sa_mask); sa.sa_flags = 0; sa.sa_handler = handler; @@ -170,6 +213,34 @@ static void lsapi_signal(int signo, sighandler_t handler) } +static int s_enable_core_dump = 0; +static void lsapi_enable_core_dump() +{ +#if defined(__FreeBSD__ ) || defined(__NetBSD__) || defined(__OpenBSD__) \ + || defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) + int mib[2]; + size_t len; + + len = 2; + if ( sysctlnametomib("kern.sugid_coredump", mib, &len) == 0 ) + { + len = sizeof(s_enable_core_dump); + if (sysctl(mib, 2, NULL, 0, &s_enable_core_dump, len) == -1) + perror( "sysctl: Failed to set 'kern.sugid_coredump', " + "core dump may not be available!"); + } + + +#endif + +#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__) + if (prctl(PR_SET_DUMPABLE, s_enable_core_dump,0,0,0) == -1) + perror( "prctl: Failed to set dumpable, " + "core dump may not be available!"); +#endif +} + + static inline void lsapi_buildPacketHeader( struct lsapi_packet_header * pHeader, char type, int len ) { @@ -200,75 +271,115 @@ static int lsapi_set_nblock( int fd, int nonblock ) return 0; } - static int lsapi_close( int fd ) { int ret; - while( 1 ) { + while( 1 ) + { ret = close( fd ); - if (( ret == -1 )&&( errno == EINTR )&&(g_running)) { + if (( ret == -1 )&&( errno == EINTR )&&(g_running)) continue; - } return ret; } } -static inline int lsapi_read( int fd, void * pBuf, int len ) +static inline ssize_t lsapi_read( int fd, void * pBuf, size_t len ) { - int ret; - while( 1 ) { + ssize_t ret; + while( 1 ) + { ret = read( fd, (char *)pBuf, len ); - if (( ret == -1 )&&( errno == EINTR )&&(g_running)) { + if (( ret == -1 )&&( errno == EINTR )&&(g_running)) continue; - } return ret; } } +/* +static int lsapi_write( int fd, const void * pBuf, int len ) +{ + int ret; + const char * pCur; + const char * pEnd; + if ( len == 0 ) + return 0; + pCur = (const char *)pBuf; + pEnd = pCur + len; + while( g_running && (pCur < pEnd) ) + { + ret = write( fd, pCur, pEnd - pCur ); + if ( ret >= 0) + pCur += ret; + else if (( ret == -1 )&&( errno != EINTR )) + return ret; + } + return pCur - (const char *)pBuf; +} +*/ static int lsapi_writev( int fd, struct iovec ** pVec, int count, int totalLen ) { int ret; int left = totalLen; int n = count; - while(( left > 0 )&&g_running ) { + while(( left > 0 )&&g_running ) + { ret = writev( fd, *pVec, n ); - if ( ret > 0 ) { + if ( ret > 0 ) + { left -= ret; - if (( left <= 0)||( !g_running )) { + if (( left <= 0)||( !g_running )) return totalLen - left; - } - while( ret > 0 ) { - if ( (*pVec)->iov_len <= ret ) { + while( ret > 0 ) + { + if ( (*pVec)->iov_len <= (unsigned int )ret ) + { ret -= (*pVec)->iov_len; ++(*pVec); - } else { + } + else + { (*pVec)->iov_base = (char *)(*pVec)->iov_base + ret; (*pVec)->iov_len -= ret; break; } } - } else if ( ret == -1 ) { - if ( errno == EAGAIN ) { - if ( totalLen - left > 0 ) { + } + else if ( ret == -1 ) + { + if ( errno == EAGAIN ) + { + if ( totalLen - left > 0 ) return totalLen - left; - } else { + else return -1; - } - } else { - if ( errno != EINTR ) { - return ret; - } } + else if ( errno != EINTR ) + return ret; } } return totalLen - left; } +/* +static int getTotalLen( struct iovec * pVec, int count ) +{ + struct iovec * pEnd = pVec + count; + int total = 0; + while( pVec < pEnd ) + { + total += pVec->iov_len; + ++pVec; + } + return total; +} +*/ + static inline int allocateBuf( LSAPI_Request * pReq, int size ) { char * pBuf = (char *)realloc( pReq->m_pReqBuf, size ); - if ( pBuf ) { + if ( pBuf ) + { pReq->m_pReqBuf = pBuf; pReq->m_reqBufSize = size; pReq->m_pHeader = (struct lsapi_req_header *)pReq->m_pReqBuf; @@ -282,9 +393,8 @@ static int allocateIovec( LSAPI_Request * pReq, int n ) { struct iovec * p = (struct iovec *)realloc( pReq->m_pIovec, sizeof(struct iovec) * n ); - if ( !p ) { + if ( !p ) return -1; - } pReq->m_pIovecToWrite = p + ( pReq->m_pIovecToWrite - pReq->m_pIovec ); pReq->m_pIovecCur = p + ( pReq->m_pIovecCur - pReq->m_pIovec ); pReq->m_pIovec = p; @@ -295,9 +405,8 @@ static int allocateIovec( LSAPI_Request * pReq, int n ) static int allocateRespHeaderBuf( LSAPI_Request * pReq, int size ) { char * p = (char *)realloc( pReq->m_pRespHeaderBuf, size ); - if ( !p ) { + if ( !p ) return -1; - } pReq->m_pRespHeaderBufPos = p + ( pReq->m_pRespHeaderBufPos - pReq->m_pRespHeaderBuf ); pReq->m_pRespHeaderBuf = p; pReq->m_pRespHeaderBufEnd = p + size; @@ -309,10 +418,10 @@ static inline int verifyHeader( struct lsapi_packet_header * pHeader, char pktTy { if (( LSAPI_VERSION_B0 != pHeader->m_versionB0 )|| ( LSAPI_VERSION_B1 != pHeader->m_versionB1 )|| - ( pktType != pHeader->m_type )) { + ( pktType != pHeader->m_type )) return -1; - } - if ( LSAPI_ENDIAN != (pHeader->m_flag & LSAPI_ENDIAN_BIT )) { + if ( LSAPI_ENDIAN != (pHeader->m_flag & LSAPI_ENDIAN_BIT )) + { register char b; b = pHeader->m_packetLen.m_bytes[0]; pHeader->m_packetLen.m_bytes[0] = pHeader->m_packetLen.m_bytes[3]; @@ -328,21 +437,20 @@ static int allocateEnvList( struct LSAPI_key_value_pair ** pEnvList, int *curSize, int newSize ) { struct LSAPI_key_value_pair * pBuf; - if ( *curSize >= newSize ) { + if ( *curSize >= newSize ) return 0; - } - if ( newSize > 8192 ) { + if ( newSize > 8192 ) return -1; - } pBuf = (struct LSAPI_key_value_pair *)realloc( *pEnvList, newSize * sizeof(struct LSAPI_key_value_pair) ); - if ( pBuf ) { + if ( pBuf ) + { *pEnvList = pBuf; *curSize = newSize; return 0; - } else { - return -1; } + else + return -1; } @@ -351,36 +459,32 @@ static inline int isPipe( int fd ) char achPeer[128]; socklen_t len = 128; if (( getpeername( fd, (struct sockaddr *)achPeer, &len ) != 0 )&& - ( errno == ENOTCONN )) { + ( errno == ENOTCONN )) return 0; - } else { + else return 1; - } } static int parseEnv( struct LSAPI_key_value_pair * pEnvList, int count, char **pBegin, char * pEnd ) { struct LSAPI_key_value_pair * pEnvEnd; - int keyLen = 0, valLen = 0; - if ( count > 8192 ) { + int keyLen = 0, valLen = 0; + if ( count > 8192 ) return -1; - } pEnvEnd = pEnvList + count; - while( pEnvList != pEnvEnd ) { - if ( pEnd - *pBegin < 4 ) { + while( pEnvList != pEnvEnd ) + { + if ( pEnd - *pBegin < 4 ) return -1; - } keyLen = *((unsigned char *)((*pBegin)++)); keyLen = (keyLen << 8) + *((unsigned char *)((*pBegin)++)); valLen = *((unsigned char *)((*pBegin)++)); valLen = (valLen << 8) + *((unsigned char *)((*pBegin)++)); - if ( *pBegin + keyLen + valLen > pEnd ) { + if ( *pBegin + keyLen + valLen > pEnd ) return -1; - } - if (( !keyLen )||( !valLen )) { + if (( !keyLen )||( !valLen )) return -1; - } pEnvList->pKey = *pBegin; *pBegin += keyLen; @@ -391,9 +495,8 @@ static int parseEnv( struct LSAPI_key_value_pair * pEnvList, int count, pEnvList->valLen = valLen - 1; ++pEnvList; } - if ( memcmp( *pBegin, "\0\0\0\0", 4 ) != 0 ) { + if ( memcmp( *pBegin, "\0\0\0\0", 4 ) != 0 ) return -1; - } *pBegin += 4; return 0; } @@ -428,8 +531,10 @@ static inline void fixEndian( LSAPI_Request * pReq ) static void fixHeaderIndexEndian( LSAPI_Request * pReq ) { int i; - for( i = 0; i < H_TRANSFER_ENCODING; ++i ) { - if ( pReq->m_pHeaderIndex->m_headerOff[i] ) { + for( i = 0; i < H_TRANSFER_ENCODING; ++i ) + { + if ( pReq->m_pHeaderIndex->m_headerOff[i] ) + { register char b; char * p = (char *)(&pReq->m_pHeaderIndex->m_headerLen[i]); b = p[0]; @@ -438,20 +543,434 @@ static void fixHeaderIndexEndian( LSAPI_Request * pReq ) swapIntEndian( &pReq->m_pHeaderIndex->m_headerOff[i] ); } } - if ( pReq->m_pHeader->m_cntUnknownHeaders > 0 ) { + if ( pReq->m_pHeader->m_cntUnknownHeaders > 0 ) + { struct lsapi_header_offset * pCur, *pEnd; pCur = pReq->m_pUnknownHeader; pEnd = pCur + pReq->m_pHeader->m_cntUnknownHeaders; - while( pCur < pEnd ) { + while( pCur < pEnd ) + { swapIntEndian( &pCur->nameOff ); swapIntEndian( &pCur->nameLen ); swapIntEndian( &pCur->valueOff ); swapIntEndian( &pCur->valueLen ); ++pCur; } - } + } +} + +static uid_t s_uid = 0; +static uid_t s_defaultUid; //web server need set this +static gid_t s_defaultGid; + +#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__) + +#define LSAPI_LVE_DISABLED 0 +#define LSAPI_LVE_ENABLED 1 +#define LSAPI_CAGEFS_ENABLED 2 +#define LSAPI_CAGEFS_NO_SUEXEC 3 +struct liblve; +static int s_enable_lve = LSAPI_LVE_DISABLED; +static struct liblve * s_lve = NULL; + +static void *s_liblve; +static int (*fp_lve_is_available)(void) = NULL; +static int (*fp_lve_instance_init)(struct liblve *) = NULL; +static int (*fp_lve_destroy)(struct liblve *) = NULL; +static int (*fp_lve_enter)(struct liblve *, uint32_t, int32_t, int32_t, uint32_t *) = NULL; +static int (*fp_lve_leave)(struct liblve *, uint32_t *) = NULL; +static int (*fp_lve_jail)( struct passwd *, char *) = NULL; +static int lsapi_load_lve_lib() +{ + s_liblve = dlopen("liblve.so.0", RTLD_LAZY); + if (s_liblve) + { + fp_lve_is_available = dlsym(s_liblve, "lve_is_available"); + if (dlerror() == NULL) + { + if ( !(*fp_lve_is_available)() ) + { + int uid = getuid(); + if ( uid ) + { + setreuid( s_uid, uid ); + if ( !(*fp_lve_is_available)() ) + s_enable_lve = 0; + setreuid( uid, s_uid ); + } + } + } + } + else + { + s_enable_lve = LSAPI_LVE_DISABLED; + } + return (s_liblve)? 0 : -1; +} + +static int init_lve_ex() +{ + int rc; + if ( !s_liblve ) + return -1; + fp_lve_instance_init = dlsym(s_liblve, "lve_instance_init"); + fp_lve_destroy = dlsym(s_liblve, "lve_destroy"); + fp_lve_enter = dlsym(s_liblve, "lve_enter"); + fp_lve_leave = dlsym(s_liblve, "lve_leave"); + if ( s_enable_lve >= LSAPI_CAGEFS_ENABLED ) + fp_lve_jail = dlsym(s_liblve, "jail" ); + + if ( s_lve == NULL ) + { + rc = (*fp_lve_instance_init)(NULL); + s_lve = malloc(rc); + } + rc = (*fp_lve_instance_init)(s_lve); + if (rc != 0) + { + perror( "LSAPI: Unable to initialize LVE" ); + free( s_lve ); + s_lve = NULL; + return -1; + } + return 0; + +} + +#endif + + + +static int readSecret( const char * pSecretFile ) +{ + struct stat st; + int fd = open( pSecretFile, O_RDONLY , 0600 ); + if ( fd == -1 ) + { + fprintf( stderr, "LSAPI: failed to open secret file: %s!\n", pSecretFile ); + return -1; + } + if ( fstat( fd, &st ) == -1 ) + { + fprintf( stderr, "LSAPI: failed to check state of file: %s!\n", pSecretFile ); + close( fd ); + return -1; + } +/* + if ( st.st_uid != s_uid ) + { + fprintf( stderr, "LSAPI: file owner check failure: %s!\n", pSecretFile ); + close( fd ); + return -1; + } +*/ + if ( st.st_mode & 0077 ) + { + fprintf( stderr, "LSAPI: file permission check failure: %s\n", pSecretFile ); + close( fd ); + return -1; + } + if ( read( fd, s_pSecret, 16 ) < 16 ) + { + fprintf( stderr, "LSAPI: failed to read secret from secret file: %s\n", pSecretFile ); + close( fd ); + return -1; + } + close( fd ); + return 0; +} + +int LSAPI_is_suEXEC_Daemon() +{ + if (( !s_uid )&&( s_pSecret[0] )) + return 1; + else + return 0; +} + +static int LSAPI_perror_r( LSAPI_Request * pReq, const char * pErr1, const char *pErr2 ) +{ + char achError[1024]; + int n = snprintf(achError, 1024, "%s:%s: %s\n", pErr1, (pErr2)?pErr2:"", strerror( errno ) ); + if ( pReq ) + LSAPI_Write_Stderr_r( pReq, achError, n ); + else + write( STDERR_FILENO, achError, n ); + return 0; +} + +static int lsapi_lve_error( LSAPI_Request * pReq ) +{ + static const char * headers[] = + { + "Cache-Control: private, no-cache, no-store, must-revalidate, max-age=0", + "Pragma: no-cache", + "Retry-After: 60", + "Content-Type: text/html", + NULL + }; + static const char achBody[] = + "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n" + "<HTML><HEAD>\n<TITLE>508 Resource Limit Is Reached</TITLE>\n" + "</HEAD><BODY>\n" "<H1>Resource Limit Is Reached</H1>\n" + "The website is temporarily unable to service your request as it exceeded resource limit.\n" + "Please try again later.\n" + "<HR>\n" + "</BODY></HTML>\n"; + + LSAPI_ErrResponse_r( pReq, 508, headers, achBody, sizeof( achBody ) - 1 ); + return 0; +} + +static int lsapi_enterLVE( LSAPI_Request * pReq, uid_t uid ) +{ +#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__) + if ( s_lve && uid ) //root user should not do that + { + uint32_t cookie; + int ret = -1; + ret = (*fp_lve_enter)(s_lve, uid, -1, -1, &cookie); + if ( ret < 0 ) + { + fprintf( stderr, "Pid (%d): enter LVE (%d) : ressult: %d !\n", getpid(), uid, ret ); + LSAPI_perror_r(pReq, "LSAPI: lve_enter() failure, reached resource limit.", NULL ); + lsapi_lve_error( pReq ); + return -1; + } + } +#endif + + return 0; +} + +static int lsapi_jailLVE( LSAPI_Request * pReq, uid_t uid, struct passwd * pw ) +{ + int ret = 0; +#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__) + char error_msg[1024] = ""; + ret = (*fp_lve_jail)( pw, error_msg ); + if ( ret < 0 ) + { + fprintf( stderr, "LSAPI (%d): LVE jail(%d) ressult: %d, error: %s !\n", + getpid(), uid, ret, error_msg ); + LSAPI_perror_r( pReq, "LSAPI: jail() failure.", NULL ); + return -1; + } +#endif + return ret; +} + + +#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__) +static int lsapi_initLVE() +{ + const char * pEnv; + if ( (pEnv = getenv( "LSAPI_LVE_ENABLE" ))!= NULL ) + { + s_enable_lve = atol( pEnv ); + pEnv = NULL; + } + else if ( (pEnv = getenv( "LVE_ENABLE" ))!= NULL ) + { + s_enable_lve = atol( pEnv ); + pEnv = NULL; + } + if ( s_enable_lve && !s_uid ) + { + lsapi_load_lve_lib(); + if ( s_enable_lve ) + { + return init_lve_ex(); + } + + } + return 0; +} +#endif + + +static int setUID_LVE(LSAPI_Request * pReq, uid_t uid, gid_t gid, const char * pChroot) +{ + int rv; + struct passwd * pw; + pw = getpwuid( uid ); +#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__) + if ( s_lve ) + { + if( lsapi_enterLVE( pReq, uid ) == -1 ) + return -1; + if ( pw && fp_lve_jail) + { + rv = lsapi_jailLVE( pReq, uid, pw ); + if ( rv == -1 ) + return -1; + if (( rv == 1 )&&(s_enable_lve == LSAPI_CAGEFS_NO_SUEXEC )) //this mode only use cageFS, does not use suEXEC + { + uid = s_defaultUid; + gid = s_defaultGid; + pw = getpwuid( uid ); + } + } + } +#endif + //if ( !uid || !gid ) //do not allow root + //{ + // return -1; + //} + +#if defined(__FreeBSD__ ) || defined(__NetBSD__) || defined(__OpenBSD__) \ + || defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) + if ( s_enable_core_dump ) + lsapi_enable_core_dump(); +#endif + + rv = setgid(gid); + if (rv == -1) + { + LSAPI_perror_r(pReq, "LSAPI: setgid()", NULL); + return -1; + } + if ( pw && (pw->pw_gid == gid )) + { + rv = initgroups( pw->pw_name, gid ); + if (rv == -1) + { + LSAPI_perror_r(pReq, "LSAPI: initgroups()", NULL); + return -1; + } + } + else + { + rv = setgroups(1, &gid); + if (rv == -1) + { + LSAPI_perror_r(pReq, "LSAPI: setgroups()", NULL); + } + } + if ( pChroot ) + { + rv = chroot( pChroot ); + if ( rv == -1 ) + { + LSAPI_perror_r(pReq, "LSAPI: chroot()", NULL); + return -1; + } + } + rv = setuid(uid); + if (rv == -1) + { + LSAPI_perror_r(pReq, "LSAPI: setuid()", NULL); + return -1; + } +#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__) + if ( s_enable_core_dump ) + lsapi_enable_core_dump(); +#endif + return 0; } +static int lsapi_suexec_auth( LSAPI_Request *pReq, + char * pAuth, int len, char * pUgid, int ugidLen ) +{ + lsapi_MD5_CTX md5ctx; + unsigned char achMD5[16]; + if ( len < 32 ) + return -1; + memmove( achMD5, pAuth + 16, 16 ); + memmove( pAuth + 16, s_pSecret, 16 ); + lsapi_MD5Init( &md5ctx ); + lsapi_MD5Update( &md5ctx, (unsigned char *)pAuth, 32 ); + lsapi_MD5Update( &md5ctx, (unsigned char *)pUgid, 8 ); + lsapi_MD5Final( (unsigned char *)pAuth + 16, &md5ctx); + if ( memcmp( achMD5, pAuth + 16, 16 ) == 0 ) + return 0; + return 1; +} + + +static int lsapi_changeUGid( LSAPI_Request * pReq ) +{ + int uid = s_defaultUid; + int gid = s_defaultGid; + const char * pChroot = NULL; + struct LSAPI_key_value_pair * pEnv; + struct LSAPI_key_value_pair * pAuth; + int i; + if ( s_uid ) + return 0; + //with special ID 0x00 + //authenticate the suEXEC request; + //first one should be MD5( nonce + lscgid secret ) + //remember to clear the secret after verification + //it should be set at the end of special env + i = pReq->m_pHeader->m_cntSpecialEnv - 1; + if ( i >= 0 ) + { + pEnv = pReq->m_pSpecialEnvList + i; + if (( *pEnv->pKey == '\000' )&& + ( strcmp( pEnv->pKey+1, "SUEXEC_AUTH" ) == 0 )) + { + --pReq->m_pHeader->m_cntSpecialEnv; + pAuth = pEnv--; + if (( *pEnv->pKey == '\000' )&& + ( strcmp( pEnv->pKey+1, "SUEXEC_UGID" ) == 0 )) + { + --pReq->m_pHeader->m_cntSpecialEnv; + uid = *(uint32_t *)pEnv->pValue; + gid = *(((uint32_t *)pEnv->pValue) + 1 ); + //fprintf( stderr, "LSAPI: SUEXEC_UGID set UID: %d, GID: %d\n", uid, gid ); + } + else + { + fprintf( stderr, "LSAPI: missing SUEXEC_UGID env, use default user!\n" ); + pEnv = NULL; + } + if ( pEnv&& lsapi_suexec_auth( pReq, pAuth->pValue, pAuth->valLen, pEnv->pValue, pEnv->valLen ) == 0 ) + { + //read UID, GID from specialEnv + + } + else + { + //authentication error + fprintf( stderr, "LSAPI: SUEXEC_AUTH authentication failed, use default user!\n" ); + uid = 0; + } + } + else + { + //fprintf( stderr, "LSAPI: no SUEXEC_AUTH env, use default user!\n" ); + } + } + + + if ( !uid ) + { + uid = s_defaultUid; + gid = s_defaultGid; + } + + //change uid + if ( setUID_LVE( pReq, uid, gid, pChroot ) == -1 ) + { + return -1; + } + + s_uid = uid; + + return 0; + +} + +static int parseContentLenFromHeader(LSAPI_Request * pReq) +{ + const char * pContentLen = LSAPI_GetHeader_r( pReq, H_CONTENT_LENGTH ); + if ( pContentLen ) + pReq->m_reqBodyLen = strtoll( pContentLen, NULL, 10 ); + return 0; +} + + static int parseRequest( LSAPI_Request * pReq, int totalLen ) { int shouldFixEndian; @@ -459,29 +978,28 @@ static int parseRequest( LSAPI_Request * pReq, int totalLen ) char * pEnd = pReq->m_pReqBuf + totalLen; shouldFixEndian = ( LSAPI_ENDIAN != ( pReq->m_pHeader->m_pktHeader.m_flag & LSAPI_ENDIAN_BIT ) ); - if ( shouldFixEndian ) { + if ( shouldFixEndian ) + { fixEndian( pReq ); } if ( (pReq->m_specialEnvListSize < pReq->m_pHeader->m_cntSpecialEnv )&& allocateEnvList( &pReq->m_pSpecialEnvList, - &pReq->m_specialEnvListSize, - pReq->m_pHeader->m_cntSpecialEnv ) == -1 ) { + &pReq->m_specialEnvListSize, + pReq->m_pHeader->m_cntSpecialEnv ) == -1 ) return -1; - } if ( (pReq->m_envListSize < pReq->m_pHeader->m_cntEnv )&& allocateEnvList( &pReq->m_pEnvList, &pReq->m_envListSize, - pReq->m_pHeader->m_cntEnv ) == -1 ) { + pReq->m_pHeader->m_cntEnv ) == -1 ) return -1; - } + if ( parseEnv( pReq->m_pSpecialEnvList, - pReq->m_pHeader->m_cntSpecialEnv, - &pBegin, pEnd ) == -1 ) { + pReq->m_pHeader->m_cntSpecialEnv, + &pBegin, pEnd ) == -1 ) return -1; - } if ( parseEnv( pReq->m_pEnvList, pReq->m_pHeader->m_cntEnv, - &pBegin, pEnd ) == -1 ) { + &pBegin, pEnd ) == -1 ) return -1; - } + pReq->m_pScriptFile = pReq->m_pReqBuf + pReq->m_pHeader->m_scriptFileOff; pReq->m_pScriptName = pReq->m_pReqBuf + pReq->m_pHeader->m_scriptNameOff; pReq->m_pQueryString = pReq->m_pReqBuf + pReq->m_pHeader->m_queryStringOff; @@ -497,90 +1015,183 @@ static int parseRequest( LSAPI_Request * pReq, int totalLen ) pReq->m_pHttpHeader = pBegin; pBegin += pReq->m_pHeader->m_httpHeaderLen; - if ( pBegin != pEnd ) { + if ( pBegin != pEnd ) + { + fprintf( stderr, "%d: request header does match total size, total: %d, real: %ld\n", getpid(), totalLen, + pBegin - pReq->m_pReqBuf ); return -1; } - - if ( shouldFixEndian ) { + if ( shouldFixEndian ) + { fixHeaderIndexEndian( pReq ); } - + pReq->m_reqBodyLen = pReq->m_pHeader->m_reqBodyLen; + if ( pReq->m_reqBodyLen == -2 ) + { + parseContentLenFromHeader(pReq); + } + return 0; } -static int s_accept_notify = 0; +//OPTIMIZATION +static char s_accept_notify = 0; +static char s_schedule_notify = 0; +static char s_notify_scheduled = 0; +static char s_notified_pid = 0; -static struct lsapi_packet_header ack = {'L', 'S', +static struct lsapi_packet_header s_ack = {'L', 'S', LSAPI_REQ_RECEIVED, LSAPI_ENDIAN, {LSAPI_PACKET_HEADER_LEN} }; -static inline int notify_req_received( int fd ) + + +static inline int write_req_received_notification( int fd ) { - if ( write( fd, &ack, LSAPI_PACKET_HEADER_LEN ) - < LSAPI_PACKET_HEADER_LEN ) { + if ( write( fd, &s_ack, LSAPI_PACKET_HEADER_LEN ) + < LSAPI_PACKET_HEADER_LEN ) return -1; + return 0; +} + +static void lsapi_sigalarm( int sig ) +{ + if ( s_notify_scheduled ) + { + s_notify_scheduled = 0; + if ( g_req.m_fd != -1 ) + write_req_received_notification( g_req.m_fd ); } +} + +static inline int lsapi_schedule_notify() +{ + if ( !s_notify_scheduled ) + { + alarm( 2 ); + s_notify_scheduled = 1; + } + return 0; +} + +static inline int notify_req_received( int fd ) +{ + if ( s_schedule_notify ) + return lsapi_schedule_notify(); + return write_req_received_notification( fd ); + +} + + +static inline int lsapi_notify_pid( int fd ) +{ + char achBuf[16]; + lsapi_buildPacketHeader( (struct lsapi_packet_header *)achBuf, LSAPI_STDERR_STREAM, + 8 + LSAPI_PACKET_HEADER_LEN ); + memmove( &achBuf[8], "\0PID", 4 ); + *((int *)&achBuf[12]) = getpid(); + + if ( write( fd, achBuf, 16 ) < 16 ) + return -1; return 0; } +static char s_conn_key_packet[16]; +static inline int init_conn_key( int fd ) +{ + struct lsapi_packet_header * pHeader = (struct lsapi_packet_header *)s_conn_key_packet; + struct timeval tv; + int i; + gettimeofday( &tv, NULL ); + srand( (tv.tv_sec % 0x1000 + tv.tv_usec) ^ rand() ); + for( i = 8; i < 16; ++i ) + { + s_conn_key_packet[i]=(int) (256.0*rand()/(RAND_MAX+1.0)); + } + lsapi_buildPacketHeader( pHeader, LSAPI_REQ_RECEIVED, + 8 + LSAPI_PACKET_HEADER_LEN ); + if ( write( fd, s_conn_key_packet, LSAPI_PACKET_HEADER_LEN+8 ) + < LSAPI_PACKET_HEADER_LEN+8 ) + return -1; + return 0; + + +} static int readReq( LSAPI_Request * pReq ) { int len; int packetLen; - if ( !pReq ) { + if ( !pReq ) return -1; - } - if ( pReq->m_reqBufSize < 8192 ) { - if ( allocateBuf( pReq, 8192 ) == -1 ) { + if ( pReq->m_reqBufSize < 8192 ) + { + if ( allocateBuf( pReq, 8192 ) == -1 ) return -1; - } } - while ( pReq->m_bufRead < LSAPI_PACKET_HEADER_LEN ) { + while ( pReq->m_bufRead < LSAPI_PACKET_HEADER_LEN ) + { len = lsapi_read( pReq->m_fd, pReq->m_pReqBuf, pReq->m_reqBufSize ); - if ( len <= 0 ) { + if ( len <= 0 ) return -1; - } pReq->m_bufRead += len; } pReq->m_reqState = LSAPI_ST_REQ_HEADER; packetLen = verifyHeader( &pReq->m_pHeader->m_pktHeader, LSAPI_BEGIN_REQUEST ); - if ( packetLen < 0 ) { + if ( packetLen < 0 ) + { + fprintf( stderr, "%d: packetLen < 0\n", getpid() ); return -1; } - if ( packetLen > LSAPI_MAX_HEADER_LEN ) { + if ( packetLen > LSAPI_MAX_HEADER_LEN ) + { + fprintf( stderr, "%d: packetLen > %d\n", getpid(), LSAPI_MAX_HEADER_LEN ); return -1; } - if ( packetLen + 1024 > pReq->m_reqBufSize ) { - if ( allocateBuf( pReq, packetLen + 1024 ) == -1 ) { + if ( packetLen + 1024 > pReq->m_reqBufSize ) + { + if ( allocateBuf( pReq, packetLen + 1024 ) == -1 ) return -1; - } } - while( packetLen > pReq->m_bufRead ) { + while( packetLen > pReq->m_bufRead ) + { len = lsapi_read( pReq->m_fd, pReq->m_pReqBuf + pReq->m_bufRead, packetLen - pReq->m_bufRead ); - if ( len <= 0 ) { + if ( len <= 0 ) return -1; - } pReq->m_bufRead += len; } - if ( parseRequest( pReq, packetLen ) < 0 ) { + if ( parseRequest( pReq, packetLen ) < 0 ) + { + fprintf( stderr, "%d: parseRequest error\n", getpid() ); return -1; } - pReq->m_bufProcessed = packetLen; + pReq->m_reqState = LSAPI_ST_REQ_BODY | LSAPI_ST_RESP_HEADER; - if ( !s_accept_notify ) + if ( !s_uid ) + if ( lsapi_changeUGid( pReq ) ) + return -1; + pReq->m_bufProcessed = packetLen; + + //OPTIMIZATION + if ( !s_accept_notify && !s_notified_pid ) return notify_req_received( pReq->m_fd ); else + { + s_notified_pid = 0; return 0; + } } int LSAPI_Init(void) { - if ( !g_inited ) { + if ( !g_inited ) + { + s_uid = geteuid(); + s_pSecret[0] = 0; lsapi_signal(SIGPIPE, lsapi_sigpipe); lsapi_signal(SIGUSR1, lsapi_siguser1); @@ -589,11 +1200,9 @@ int LSAPI_Init(void) #endif /* let STDOUT function as STDERR, just in case writing to STDOUT directly */ - dup2( 2, 1 ); - - if ( LSAPI_InitRequest( &g_req, LSAPI_SOCK_FILENO ) == -1 ) { + dup2( 2, 1 ); + if ( LSAPI_InitRequest( &g_req, LSAPI_SOCK_FILENO ) == -1 ) return -1; - } g_inited = 1; s_ppid = getppid(); } @@ -612,28 +1221,35 @@ int LSAPI_IsRunning(void) int LSAPI_InitRequest( LSAPI_Request * pReq, int fd ) { - if ( !pReq ) { + int newfd; + if ( !pReq ) return -1; - } memset( pReq, 0, sizeof( LSAPI_Request ) ); - if ( allocateIovec( pReq, 16 ) == -1 ) { + if ( allocateIovec( pReq, 16 ) == -1 ) return -1; - } pReq->m_pRespBuf = pReq->m_pRespBufPos = (char *)malloc( LSAPI_RESP_BUF_SIZE ); - if ( !pReq->m_pRespBuf ) { + if ( !pReq->m_pRespBuf ) return -1; - } pReq->m_pRespBufEnd = pReq->m_pRespBuf + LSAPI_RESP_BUF_SIZE; pReq->m_pIovecCur = pReq->m_pIovecToWrite = pReq->m_pIovec + 1; pReq->m_respPktHeaderEnd = &pReq->m_respPktHeader[5]; - if ( allocateRespHeaderBuf( pReq, LSAPI_INIT_RESP_HEADER_LEN ) == -1 ) { + if ( allocateRespHeaderBuf( pReq, LSAPI_INIT_RESP_HEADER_LEN ) == -1 ) return -1; - } - - if ( isPipe( fd ) ) { + + if ( fd == STDIN_FILENO ) + { + fd = dup( fd ); + newfd = open( "/dev/null", O_RDWR ); + dup2( newfd, STDIN_FILENO ); + } + + if ( isPipe( fd ) ) + { pReq->m_fdListen = -1; pReq->m_fd = fd; - } else { + } + else + { pReq->m_fdListen = fd; pReq->m_fd = -1; lsapi_set_nblock( fd, 1 ); @@ -659,42 +1275,48 @@ int LSAPI_Accept_r( LSAPI_Request * pReq ) socklen_t len; int nodelay = 1; - if ( !pReq ) { + if ( !pReq ) return -1; - } - if ( LSAPI_Finish_r( pReq ) == -1 ) { + if ( LSAPI_Finish_r( pReq ) == -1 ) return -1; - } - while( g_running ) { - if ( pReq->m_fd == -1 ) { - if ( pReq->m_fdListen != -1) { + lsapi_set_nblock( pReq->m_fdListen , 0 ); + while( g_running ) + { + if ( pReq->m_fd == -1 ) + { + if ( pReq->m_fdListen != -1) + { len = sizeof( achPeer ); pReq->m_fd = accept( pReq->m_fdListen, (struct sockaddr *)&achPeer, &len ); - if ( pReq->m_fd == -1 ) { - if (( errno == EINTR )||( errno == EAGAIN)) { + if ( pReq->m_fd == -1 ) + { + if (( errno == EINTR )||( errno == EAGAIN)) continue; - } else { + else return -1; - } - } else { + } + else + { lsapi_set_nblock( pReq->m_fd , 0 ); - if (((struct sockaddr *)&achPeer)->sa_family == AF_INET ) { + if (((struct sockaddr *)&achPeer)->sa_family == AF_INET ) + { setsockopt(pReq->m_fd, IPPROTO_TCP, TCP_NODELAY, - (char *)&nodelay, sizeof(nodelay)); + (char *)&nodelay, sizeof(nodelay)); } - + //init_conn_key( pReq->m_fd ); + //OPTIMIZATION if ( s_accept_notify ) - return notify_req_received( pReq->m_fd ); - + if ( notify_req_received( pReq->m_fd ) == -1 ) + return -1; } - } else { - return -1; } + else + return -1; } - if ( !readReq( pReq ) ) { + if ( !readReq( pReq ) ) break; - } + //abort(); lsapi_close( pReq->m_fd ); pReq->m_fd = -1; LSAPI_Reset_r( pReq ); @@ -708,15 +1330,18 @@ static struct lsapi_packet_header finish = {'L', 'S', int LSAPI_Finish_r( LSAPI_Request * pReq ) { /* finish req body */ - if ( !pReq ) { + if ( !pReq ) return -1; - } - if (pReq->m_reqState) { - if ( pReq->m_fd != -1 ) { - if ( pReq->m_reqState & LSAPI_ST_RESP_HEADER ) { + if (pReq->m_reqState) + { + if ( pReq->m_fd != -1 ) + { + if ( pReq->m_reqState & LSAPI_ST_RESP_HEADER ) + { LSAPI_FinalizeRespHeaders_r( pReq ); } - if ( pReq->m_pRespBufPos != pReq->m_pRespBuf ) { + if ( pReq->m_pRespBufPos != pReq->m_pRespBuf ) + { Flush_RespBuf_r( pReq ); } @@ -745,18 +1370,14 @@ void LSAPI_Reset_r( LSAPI_Request * pReq ) int LSAPI_Release_r( LSAPI_Request * pReq ) { - if ( pReq->m_pReqBuf ) { + if ( pReq->m_pReqBuf ) free( pReq->m_pReqBuf ); - } - if ( pReq->m_pSpecialEnvList ) { + if ( pReq->m_pSpecialEnvList ) free( pReq->m_pSpecialEnvList ); - } - if ( pReq->m_pEnvList ) { + if ( pReq->m_pEnvList ) free( pReq->m_pEnvList ); - } - if ( pReq->m_pRespHeaderBuf ) { + if ( pReq->m_pRespHeaderBuf ) free( pReq->m_pRespHeaderBuf ); - } return 0; } @@ -764,55 +1385,48 @@ int LSAPI_Release_r( LSAPI_Request * pReq ) char * LSAPI_GetHeader_r( LSAPI_Request * pReq, int headerIndex ) { int off; - if ( !pReq || ((unsigned int)headerIndex > H_TRANSFER_ENCODING) ) { + if ( !pReq || ((unsigned int)headerIndex > H_TRANSFER_ENCODING) ) return NULL; - } off = pReq->m_pHeaderIndex->m_headerOff[ headerIndex ]; - if ( !off ) { + if ( !off ) return NULL; - } - if ( *(pReq->m_pHttpHeader + off + - pReq->m_pHeaderIndex->m_headerLen[ headerIndex ]) ) { - *( pReq->m_pHttpHeader + off + - pReq->m_pHeaderIndex->m_headerLen[ headerIndex ]) = 0; - } + if ( *(pReq->m_pHttpHeader + off + + pReq->m_pHeaderIndex->m_headerLen[ headerIndex ]) ) + *( pReq->m_pHttpHeader + off + + pReq->m_pHeaderIndex->m_headerLen[ headerIndex ]) = 0; return pReq->m_pHttpHeader + off; } static int readBodyToReqBuf( LSAPI_Request * pReq ) { - int bodyLeft; - int len = pReq->m_bufRead - pReq->m_bufProcessed; - if ( len > 0 ) { + off_t bodyLeft; + ssize_t len = pReq->m_bufRead - pReq->m_bufProcessed; + if ( len > 0 ) return len; - } pReq->m_bufRead = pReq->m_bufProcessed = pReq->m_pHeader->m_pktHeader.m_packetLen.m_iLen; - bodyLeft = pReq->m_pHeader->m_reqBodyLen - pReq->m_reqBodyRead; + bodyLeft = pReq->m_reqBodyLen - pReq->m_reqBodyRead; len = pReq->m_reqBufSize - pReq->m_bufRead; - if ( len < 0 ) { + if ( len < 0 ) return -1; - } - if ( len > bodyLeft ) { + if ( len > bodyLeft ) len = bodyLeft; - } + len = lsapi_read( pReq->m_fd, pReq->m_pReqBuf + pReq->m_bufRead, len ); - if ( len > 0 ) { + if ( len > 0 ) pReq->m_bufRead += len; - } return len; } int LSAPI_ReqBodyGetChar_r( LSAPI_Request * pReq ) { - if (!pReq || (pReq->m_fd ==-1) ) { + if (!pReq || (pReq->m_fd ==-1) ) return EOF; - } - if ( pReq->m_bufProcessed >= pReq->m_bufRead ) { - if ( readBodyToReqBuf( pReq ) <= 0 ) { + if ( pReq->m_bufProcessed >= pReq->m_bufRead ) + { + if ( readBodyToReqBuf( pReq ) <= 0 ) return EOF; - } } ++pReq->m_reqBodyRead; return (unsigned char)*(pReq->m_pReqBuf + pReq->m_bufProcessed++); @@ -820,42 +1434,43 @@ int LSAPI_ReqBodyGetChar_r( LSAPI_Request * pReq ) -int LSAPI_ReqBodyGetLine_r( LSAPI_Request * pReq, char * pBuf, int bufLen, int *getLF ) +int LSAPI_ReqBodyGetLine_r( LSAPI_Request * pReq, char * pBuf, size_t bufLen, int *getLF ) { - int len; - int left; + ssize_t len; + ssize_t left; char * pBufEnd = pBuf + bufLen - 1; char * pBufCur = pBuf; char * pCur; char * p; - if (!pReq || (pReq->m_fd ==-1) ||( !pBuf )||(bufLen < 0 )|| !getLF ) { + if (!pReq || (pReq->m_fd ==-1) ||( !pBuf )||(bufLen < 0 )|| !getLF ) return -1; - } *getLF = 0; - while( (left = pBufEnd - pBufCur ) > 0 ) { + while( (left = pBufEnd - pBufCur ) > 0 ) + { len = pReq->m_bufRead - pReq->m_bufProcessed; - if ( len <= 0 ) { - if ( (len = readBodyToReqBuf( pReq )) <= 0 ) { + if ( len <= 0 ) + { + if ( (len = readBodyToReqBuf( pReq )) <= 0 ) + { *getLF = 1; break; } } - if ( len > left ) { + if ( len > left ) len = left; - } pCur = pReq->m_pReqBuf + pReq->m_bufProcessed; p = memchr( pCur, '\n', len ); - if ( p ) { + if ( p ) len = p - pCur + 1; - } memmove( pBufCur, pCur, len ); pBufCur += len; pReq->m_bufProcessed += len; pReq->m_reqBodyRead += len; - if ( p ) { + if ( p ) + { *getLF = 1; break; } @@ -866,48 +1481,47 @@ int LSAPI_ReqBodyGetLine_r( LSAPI_Request * pReq, char * pBuf, int bufLen, int * } -int LSAPI_ReadReqBody_r( LSAPI_Request * pReq, char * pBuf, int bufLen ) +ssize_t LSAPI_ReadReqBody_r( LSAPI_Request * pReq, char * pBuf, size_t bufLen ) { - int len; - int total; + ssize_t len; + off_t total; /* char *pOldBuf = pBuf; */ - if (!pReq || (pReq->m_fd ==-1) || ( !pBuf )||(bufLen < 0 )) { + if (!pReq || (pReq->m_fd ==-1) || ( !pBuf )||(bufLen < 0 )) return -1; - } - total = pReq->m_pHeader->m_reqBodyLen - pReq->m_reqBodyRead; + + total = pReq->m_reqBodyLen - pReq->m_reqBodyRead; - if ( total <= 0 ) { + if ( total <= 0 ) return 0; - } - if ( total < bufLen ) { + if ( total < bufLen ) bufLen = total; - } total = 0; len = pReq->m_bufRead - pReq->m_bufProcessed; - if ( len > 0 ) { - if ( len > bufLen ) { + if ( len > 0 ) + { + if ( len > bufLen ) len = bufLen; - } memmove( pBuf, pReq->m_pReqBuf + pReq->m_bufProcessed, len ); pReq->m_bufProcessed += len; total += len; pBuf += len; bufLen -= len; } - while( bufLen > 0 ) { + while( bufLen > 0 ) + { len = lsapi_read( pReq->m_fd, pBuf, bufLen ); - if ( len > 0 ) { + if ( len > 0 ) + { total += len; pBuf += len; bufLen -= len; - } else { - if ( len <= 0 ) { - if ( !total) { - return -1; - } - break; - } + } + else if ( len <= 0 ) + { + if ( !total) + return -1; + break; } } pReq->m_reqBodyRead += total; @@ -916,37 +1530,52 @@ int LSAPI_ReadReqBody_r( LSAPI_Request * pReq, char * pBuf, int bufLen ) } -int LSAPI_Write_r( LSAPI_Request * pReq, const char * pBuf, int len ) +ssize_t LSAPI_Write_r( LSAPI_Request * pReq, const char * pBuf, size_t len ) { struct lsapi_packet_header * pHeader; const char * pEnd; const char * p; - int bufLen; - int toWrite; - int packetLen; + ssize_t bufLen; + ssize_t toWrite; + ssize_t packetLen; + int skip = 0; - if ( !pReq || !pBuf || (pReq->m_fd == -1) ) { + if ( !pReq || !pBuf || (pReq->m_fd == -1) ) return -1; + if ( pReq->m_reqState & LSAPI_ST_RESP_HEADER ) + { + LSAPI_FinalizeRespHeaders_r( pReq ); +/* + if ( *pBuf == '\r' ) + { + ++skip; + } + if ( *pBuf == '\n' ) + { + ++skip; + } +*/ } - if ( len < pReq->m_pRespBufEnd - pReq->m_pRespBufPos ) { - memmove( pReq->m_pRespBufPos, pBuf, len ); - pReq->m_pRespBufPos += len; + pReq->m_reqState |= LSAPI_ST_RESP_BODY; + + if ( (len - skip) < pReq->m_pRespBufEnd - pReq->m_pRespBufPos ) + { + memmove( pReq->m_pRespBufPos, pBuf + skip, len - skip ); + pReq->m_pRespBufPos += len - skip; return len; } - if ( pReq->m_reqState & LSAPI_ST_RESP_HEADER ) { - LSAPI_FinalizeRespHeaders_r( pReq ); - } - pReq->m_reqState |= LSAPI_ST_RESP_BODY; pHeader = pReq->m_respPktHeader; - p = pBuf; + p = pBuf + skip; pEnd = pBuf + len; bufLen = pReq->m_pRespBufPos - pReq->m_pRespBuf; - while( ( toWrite = pEnd - p ) > 0 ) { + while( ( toWrite = pEnd - p ) > 0 ) + { packetLen = toWrite + bufLen; - if ( LSAPI_MAX_DATA_PACKET_LEN < packetLen) { + if ( LSAPI_MAX_DATA_PACKET_LEN < packetLen) + { packetLen = LSAPI_MAX_DATA_PACKET_LEN; toWrite = packetLen - bufLen; } @@ -959,7 +1588,8 @@ int LSAPI_Write_r( LSAPI_Request * pReq, const char * pBuf, int len ) pReq->m_pIovecCur->iov_len = LSAPI_PACKET_HEADER_LEN; ++pReq->m_pIovecCur; ++pHeader; - if ( bufLen > 0 ) { + if ( bufLen > 0 ) + { pReq->m_pIovecCur->iov_base = (void *)pReq->m_pRespBuf; pReq->m_pIovecCur->iov_len = bufLen; pReq->m_pRespBufPos = pReq->m_pRespBuf; @@ -972,21 +1602,108 @@ int LSAPI_Write_r( LSAPI_Request * pReq, const char * pBuf, int len ) ++pReq->m_pIovecCur; p += toWrite; - if ( pHeader >= pReq->m_respPktHeaderEnd - 1) { - if ( LSAPI_Flush_r( pReq ) == -1 ) { + if ( pHeader >= pReq->m_respPktHeaderEnd - 1) + { + if ( LSAPI_Flush_r( pReq ) == -1 ) return -1; - } pHeader = pReq->m_respPktHeader; } } - if ( pHeader != pReq->m_respPktHeader ) { - if ( LSAPI_Flush_r( pReq ) == -1 ) { + if ( pHeader != pReq->m_respPktHeader ) + if ( LSAPI_Flush_r( pReq ) == -1 ) return -1; - } - } return p - pBuf; } +#if defined(__FreeBSD__ ) || defined(__NetBSD__) || defined(__OpenBSD__) +ssize_t gsendfile( int fdOut, int fdIn, off_t* off, size_t size ) +{ + ssize_t ret; + off_t written; + ret = sendfile( fdIn, fdOut, *off, size, NULL, &written, 0 ); + if ( written > 0 ) + { + ret = written; + *off += ret; + } + return ret; +} +#endif + +#if defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) +ssize_t gsendfile( int fdOut, int fdIn, off_t* off, size_t size ) +{ + ssize_t ret; + off_t len = size; + ret = sendfile( fdIn, fdOut, *off, &len, NULL, 0 ); + if (( ret == 0 )&&( len > 0 )) + { + ret = len; + *off += len; + } + return ret; +} +#endif + +#if defined(sun) || defined(__sun) +#include <sys/sendfile.h> +ssize_t gsendfile( int fdOut, int fdIn, off_t *off, size_t size ) +{ + int n = 0 ; + sendfilevec_t vec[1]; + + vec[n].sfv_fd = fdIn; + vec[n].sfv_flag = 0; + vec[n].sfv_off = *off; + vec[n].sfv_len = size; + ++n; + + size_t written; + ssize_t ret = sendfilev( fdOut, vec, n, &written ); + if (( !ret )||( errno == EAGAIN )) + ret = written; + if ( ret > 0 ) + *off += ret; + return ret; +} +#endif + +#if defined(linux) || defined(__linux) || defined(__linux__) || \ + defined(__gnu_linux__) +#include <sys/sendfile.h> +#define gsendfile sendfile +#endif +#if defined(HPUX) +ssize_t gsendfile( int fdOut, int fdIn, off_t * off, size_t size ) +{ + return sendfile( fdOut, fdIn, off, size, NULL, 0 ); +} +#endif + +ssize_t LSAPI_sendfile_r( LSAPI_Request * pReq, int fdIn, off_t* off, size_t size ) +{ + struct lsapi_packet_header * pHeader = pReq->m_respPktHeader; + if ( !pReq || (pReq->m_fd == -1) || fdIn == -1 ) + return -1; + if ( pReq->m_reqState & LSAPI_ST_RESP_HEADER ) + { + LSAPI_FinalizeRespHeaders_r( pReq ); + } + pReq->m_reqState |= LSAPI_ST_RESP_BODY; + + LSAPI_Flush_r(pReq); + + lsapi_buildPacketHeader( pHeader, LSAPI_RESP_STREAM, + size + LSAPI_PACKET_HEADER_LEN ); + + + if (write(pReq->m_fd, (const char *) pHeader, LSAPI_PACKET_HEADER_LEN ) != LSAPI_PACKET_HEADER_LEN) + return -1; + + return gsendfile( pReq->m_fd, fdIn, off, size ); +} + + void Flush_RespBuf_r( LSAPI_Request * pReq ) { struct lsapi_packet_header * pHeader = pReq->m_respPktHeader; @@ -1000,7 +1717,8 @@ void Flush_RespBuf_r( LSAPI_Request * pReq ) pReq->m_pIovecCur->iov_len = LSAPI_PACKET_HEADER_LEN; ++pReq->m_pIovecCur; ++pHeader; - if ( bufLen > 0 ) { + if ( bufLen > 0 ) + { pReq->m_pIovecCur->iov_base = (void *)pReq->m_pRespBuf; pReq->m_pIovecCur->iov_len = bufLen; pReq->m_pRespBufPos = pReq->m_pRespBuf; @@ -1016,32 +1734,35 @@ int LSAPI_Flush_r( LSAPI_Request * pReq ) { int ret = 0; int n; - if ( !pReq ) { + if ( !pReq ) return -1; - } n = pReq->m_pIovecCur - pReq->m_pIovecToWrite; - if (( 0 == n )&&( pReq->m_pRespBufPos == pReq->m_pRespBuf )) { + if (( 0 == n )&&( pReq->m_pRespBufPos == pReq->m_pRespBuf )) return 0; - } - if ( pReq->m_fd == -1 ) { + if ( pReq->m_fd == -1 ) + { pReq->m_pRespBufPos = pReq->m_pRespBuf; pReq->m_totalLen = 0; pReq->m_pIovecCur = pReq->m_pIovecToWrite = pReq->m_pIovec; return -1; } - if ( pReq->m_reqState & LSAPI_ST_RESP_HEADER ) { + if ( pReq->m_reqState & LSAPI_ST_RESP_HEADER ) + { LSAPI_FinalizeRespHeaders_r( pReq ); } - if ( pReq->m_pRespBufPos != pReq->m_pRespBuf ) { + if ( pReq->m_pRespBufPos != pReq->m_pRespBuf ) + { Flush_RespBuf_r( pReq ); } n = pReq->m_pIovecCur - pReq->m_pIovecToWrite; - if ( n > 0 ) { + if ( n > 0 ) + { ret = lsapi_writev( pReq->m_fd, &pReq->m_pIovecToWrite, n, pReq->m_totalLen ); - if ( ret < pReq->m_totalLen ) { + if ( ret < pReq->m_totalLen ) + { lsapi_close( pReq->m_fd ); pReq->m_fd = -1; ret = -1; @@ -1053,32 +1774,33 @@ int LSAPI_Flush_r( LSAPI_Request * pReq ) } -int LSAPI_Write_Stderr_r( LSAPI_Request * pReq, const char * pBuf, int len ) +ssize_t LSAPI_Write_Stderr_r( LSAPI_Request * pReq, const char * pBuf, size_t len ) { struct lsapi_packet_header header; const char * pEnd; const char * p; - int packetLen; - int totalLen; + ssize_t packetLen; + ssize_t totalLen; int ret; struct iovec iov[2]; struct iovec *pIov; - if ( !pReq ) { + if ( !pReq ) return -1; - } - if (( pReq->m_fd == -1 )||(pReq->m_fd == pReq->m_fdListen )) { + if (( pReq->m_fd == -1 )||(pReq->m_fd == pReq->m_fdListen )) return write( 2, pBuf, len ); - } - if ( pReq->m_pRespBufPos != pReq->m_pRespBuf ) { + if ( pReq->m_pRespBufPos != pReq->m_pRespBuf ) + { LSAPI_Flush_r( pReq ); } p = pBuf; pEnd = pBuf + len; - while( ( packetLen = pEnd - p ) > 0 ) { - if ( LSAPI_MAX_DATA_PACKET_LEN < packetLen) { + while( ( packetLen = pEnd - p ) > 0 ) + { + if ( LSAPI_MAX_DATA_PACKET_LEN < packetLen) + { packetLen = LSAPI_MAX_DATA_PACKET_LEN; } @@ -1095,7 +1817,8 @@ int LSAPI_Write_Stderr_r( LSAPI_Request * pReq, const char * pBuf, int len ) pIov = iov; ret = lsapi_writev( pReq->m_fd, &pIov, 2, totalLen ); - if ( ret < totalLen ) { + if ( ret < totalLen ) + { lsapi_close( pReq->m_fd ); pReq->m_fd = -1; ret = -1; @@ -1107,14 +1830,16 @@ int LSAPI_Write_Stderr_r( LSAPI_Request * pReq, const char * pBuf, int len ) static char * GetHeaderVar( LSAPI_Request * pReq, const char * name ) { int i; - for( i = 0; i < H_TRANSFER_ENCODING; ++i ) { - if ( pReq->m_pHeaderIndex->m_headerOff[i] ) { - if ( strcmp( name, CGI_HEADERS[i] ) == 0 ) { + for( i = 0; i < H_TRANSFER_ENCODING; ++i ) + { + if ( pReq->m_pHeaderIndex->m_headerOff[i] ) + { + if ( strcmp( name, CGI_HEADERS[i] ) == 0 ) return pReq->m_pHttpHeader + pReq->m_pHeaderIndex->m_headerOff[i]; - } } } - if ( pReq->m_pHeader->m_cntUnknownHeaders > 0 ) { + if ( pReq->m_pHeader->m_cntUnknownHeaders > 0 ) + { const char *p; char *pKey; char *pKeyEnd; @@ -1122,22 +1847,22 @@ static char * GetHeaderVar( LSAPI_Request * pReq, const char * name ) struct lsapi_header_offset * pCur, *pEnd; pCur = pReq->m_pUnknownHeader; pEnd = pCur + pReq->m_pHeader->m_cntUnknownHeaders; - while( pCur < pEnd ) { + while( pCur < pEnd ) + { pKey = pReq->m_pHttpHeader + pCur->nameOff; keyLen = pCur->nameLen; pKeyEnd = pKey + keyLen; p = &name[5]; - while(( pKey < pKeyEnd )&&( *p )) { + while(( pKey < pKeyEnd )&&( *p )) + { char ch = toupper( *pKey ); - if ((ch != *p )||(( *p == '_' )&&( ch != '-'))) { + if ((ch != *p )||(( *p == '_' )&&( ch != '-'))) break; - } ++p; ++pKey; } - if (( pKey == pKeyEnd )&& (!*p )) { + if (( pKey == pKeyEnd )&& (!*p )) return pReq->m_pHttpHeader + pCur->valueOff; - } ++pCur; } } @@ -1149,21 +1874,35 @@ char * LSAPI_GetEnv_r( LSAPI_Request * pReq, const char * name ) { struct LSAPI_key_value_pair * pBegin = pReq->m_pEnvList; struct LSAPI_key_value_pair * pEnd = pBegin + pReq->m_pHeader->m_cntEnv; - if ( !pReq || !name ) { + if ( !pReq || !name ) return NULL; - } - if ( strncmp( name, "HTTP_", 5 ) == 0 ) { + if ( strncmp( name, "HTTP_", 5 ) == 0 ) + { return GetHeaderVar( pReq, name ); } - while( pBegin < pEnd ) { - if ( strcmp( name, pBegin->pKey ) == 0 ) { + while( pBegin < pEnd ) + { + if ( strcmp( name, pBegin->pKey ) == 0 ) return pBegin->pValue; - } ++pBegin; } return NULL; } +struct _headerInfo +{ + const char * _name; + int _nameLen; + const char * _value; + int _valueLen; +}; + +int compareValueLocation(const void * v1, const void *v2 ) +{ + return ((const struct _headerInfo *)v1)->_value - + ((const struct _headerInfo *)v2)->_value; +} + int LSAPI_ForeachOrgHeader_r( LSAPI_Request * pReq, LSAPI_CB_EnvHandler fn, void * arg ) { @@ -1172,43 +1911,67 @@ int LSAPI_ForeachOrgHeader_r( LSAPI_Request * pReq, char * pValue; int ret; int count = 0; - if ( !pReq || !fn ) { + struct _headerInfo headers[512]; + if ( !pReq || !fn ) return -1; - } - for( i = 0; i < H_TRANSFER_ENCODING; ++i ) { - if ( pReq->m_pHeaderIndex->m_headerOff[i] ) { + + for( i = 0; i < H_TRANSFER_ENCODING; ++i ) + { + if ( pReq->m_pHeaderIndex->m_headerOff[i] ) + { len = pReq->m_pHeaderIndex->m_headerLen[i]; pValue = pReq->m_pHttpHeader + pReq->m_pHeaderIndex->m_headerOff[i]; *(pValue + len ) = 0; - ret = (*fn)( HTTP_HEADERS[i], HTTP_HEADER_LEN[i], - pValue, len, arg ); + headers[count]._name = HTTP_HEADERS[i]; + headers[count]._nameLen = HTTP_HEADER_LEN[i]; + headers[count]._value = pValue; + headers[count]._valueLen = len; ++count; - if ( ret <= 0 ) { - return ret; - } + + //ret = (*fn)( HTTP_HEADERS[i], HTTP_HEADER_LEN[i], + // pValue, len, arg ); + //if ( ret <= 0 ) + // return ret; } } - if ( pReq->m_pHeader->m_cntUnknownHeaders > 0 ) { + if ( pReq->m_pHeader->m_cntUnknownHeaders > 0 ) + { char *pKey; int keyLen; struct lsapi_header_offset * pCur, *pEnd; pCur = pReq->m_pUnknownHeader; pEnd = pCur + pReq->m_pHeader->m_cntUnknownHeaders; - while( pCur < pEnd ) { + while( pCur < pEnd ) + { pKey = pReq->m_pHttpHeader + pCur->nameOff; keyLen = pCur->nameLen; + *(pKey + keyLen ) = 0; pValue = pReq->m_pHttpHeader + pCur->valueOff; *(pValue + pCur->valueLen ) = 0; - ret = (*fn)( pKey, keyLen, - pValue, pCur->valueLen, arg ); - if ( ret <= 0 ) { - return ret; - } + headers[count]._name = pKey; + headers[count]._nameLen = keyLen; + headers[count]._value = pValue; + headers[count]._valueLen = pCur->valueLen; + ++count; + if ( count == 512 ) + break; + //ret = (*fn)( pKey, keyLen, + // pValue, pCur->valueLen, arg ); + //if ( ret <= 0 ) + // return ret; ++pCur; } } - return count + pReq->m_pHeader->m_cntUnknownHeaders; + qsort( headers, count, sizeof( struct _headerInfo ), compareValueLocation ); + for( i = 0; i < count; ++i ) + { + ret = (*fn)( headers[i]._name, headers[i]._nameLen, + headers[i]._value, headers[i]._valueLen, arg ); + if ( ret <= 0 ) + return ret; + } + return count; } @@ -1221,23 +1984,24 @@ int LSAPI_ForeachHeader_r( LSAPI_Request * pReq, char * pValue; int ret; int count = 0; - if ( !pReq || !fn ) { + if ( !pReq || !fn ) return -1; - } - for( i = 0; i < H_TRANSFER_ENCODING; ++i ) { - if ( pReq->m_pHeaderIndex->m_headerOff[i] ) { + for( i = 0; i < H_TRANSFER_ENCODING; ++i ) + { + if ( pReq->m_pHeaderIndex->m_headerOff[i] ) + { len = pReq->m_pHeaderIndex->m_headerLen[i]; pValue = pReq->m_pHttpHeader + pReq->m_pHeaderIndex->m_headerOff[i]; *(pValue + len ) = 0; ret = (*fn)( CGI_HEADERS[i], CGI_HEADER_LEN[i], pValue, len, arg ); ++count; - if ( ret <= 0 ) { + if ( ret <= 0 ) return ret; - } } } - if ( pReq->m_pHeader->m_cntUnknownHeaders > 0 ) { + if ( pReq->m_pHeader->m_cntUnknownHeaders > 0 ) + { char achHeaderName[256]; char *p; char *pKey; @@ -1246,24 +2010,23 @@ int LSAPI_ForeachHeader_r( LSAPI_Request * pReq, struct lsapi_header_offset * pCur, *pEnd; pCur = pReq->m_pUnknownHeader; pEnd = pCur + pReq->m_pHeader->m_cntUnknownHeaders; - while( pCur < pEnd ) { + while( pCur < pEnd ) + { pKey = pReq->m_pHttpHeader + pCur->nameOff; keyLen = pCur->nameLen; - if ( keyLen > 250 ) { + if ( keyLen > 250 ) keyLen = 250; - } - pKeyEnd = pKey + keyLen; memcpy( achHeaderName, "HTTP_", 5 ); p = &achHeaderName[5]; - while( pKey < pKeyEnd ) { + while( pKey < pKeyEnd ) + { char ch = *pKey++; - if ( ch == '-' ) { + if ( ch == '-' ) *p++ = '_'; - } else { + else *p++ = toupper( ch ); - } } *p = 0; keyLen += 5; @@ -1272,9 +2035,8 @@ int LSAPI_ForeachHeader_r( LSAPI_Request * pReq, *(pValue + pCur->valueLen ) = 0; ret = (*fn)( achHeaderName, keyLen, pValue, pCur->valueLen, arg ); - if ( ret <= 0 ) { + if ( ret <= 0 ) return ret; - } ++pCur; } } @@ -1287,15 +2049,14 @@ static int EnvForeach( struct LSAPI_key_value_pair * pEnv, { struct LSAPI_key_value_pair * pEnd = pEnv + n; int ret; - if ( !pEnv || !fn ) { + if ( !pEnv || !fn ) return -1; - } - while( pEnv < pEnd ) { + while( pEnv < pEnd ) + { ret = (*fn)( pEnv->pKey, pEnv->keyLen, pEnv->pValue, pEnv->valLen, arg ); - if ( ret <= 0 ) { + if ( ret <= 0 ) return ret; - } ++pEnv; } return n; @@ -1306,10 +2067,10 @@ static int EnvForeach( struct LSAPI_key_value_pair * pEnv, int LSAPI_ForeachEnv_r( LSAPI_Request * pReq, LSAPI_CB_EnvHandler fn, void * arg ) { - if ( !pReq || !fn ) { + if ( !pReq || !fn ) return -1; - } - if ( pReq->m_pHeader->m_cntEnv > 0 ) { + if ( pReq->m_pHeader->m_cntEnv > 0 ) + { return EnvForeach( pReq->m_pEnvList, pReq->m_pHeader->m_cntEnv, fn, arg ); } @@ -1321,10 +2082,10 @@ int LSAPI_ForeachEnv_r( LSAPI_Request * pReq, int LSAPI_ForeachSpecialEnv_r( LSAPI_Request * pReq, LSAPI_CB_EnvHandler fn, void * arg ) { - if ( !pReq || !fn ) { + if ( !pReq || !fn ) return -1; - } - if ( pReq->m_pHeader->m_cntSpecialEnv > 0 ) { + if ( pReq->m_pHeader->m_cntSpecialEnv > 0 ) + { return EnvForeach( pReq->m_pSpecialEnvList, pReq->m_pHeader->m_cntSpecialEnv, fn, arg ); @@ -1337,14 +2098,13 @@ int LSAPI_ForeachSpecialEnv_r( LSAPI_Request * pReq, int LSAPI_FinalizeRespHeaders_r( LSAPI_Request * pReq ) { - if ( !pReq || !pReq->m_pIovec ) { + if ( !pReq || !pReq->m_pIovec ) return -1; - } - if ( !( pReq->m_reqState & LSAPI_ST_RESP_HEADER ) ) { + if ( !( pReq->m_reqState & LSAPI_ST_RESP_HEADER ) ) return 0; - } pReq->m_reqState &= ~LSAPI_ST_RESP_HEADER; - if ( pReq->m_pRespHeaderBufPos > pReq->m_pRespHeaderBuf ) { + if ( pReq->m_pRespHeaderBufPos > pReq->m_pRespHeaderBuf ) + { pReq->m_pIovecCur->iov_base = (void *)pReq->m_pRespHeaderBuf; pReq->m_pIovecCur->iov_len = pReq->m_pRespHeaderBufPos - pReq->m_pRespHeaderBuf; pReq->m_totalLen += pReq->m_pIovecCur->iov_len; @@ -1363,25 +2123,87 @@ int LSAPI_FinalizeRespHeaders_r( LSAPI_Request * pReq ) } - - -int LSAPI_AppendRespHeader_r( LSAPI_Request * pReq, char * pBuf, int len ) +int LSAPI_AppendRespHeader2_r( LSAPI_Request * pReq, const char * pHeaderName, + const char * pHeaderValue ) { - if ( !pReq || !pBuf || len <= 0 || len > LSAPI_RESP_HTTP_HEADER_MAX ) { + int nameLen, valLen, len; + if ( !pReq || !pHeaderName || !pHeaderValue ) return -1; + if ( pReq->m_reqState & LSAPI_ST_RESP_BODY ) + return -1; + if ( pReq->m_respHeader.m_respInfo.m_cntHeaders >= LSAPI_MAX_RESP_HEADERS ) + return -1; + nameLen = strlen( pHeaderName ); + valLen = strlen( pHeaderValue ); + if ( nameLen == 0 ) + return -1; + while( nameLen > 0 ) + { + char ch = *(pHeaderName + nameLen - 1 ); + if (( ch == '\n' )||( ch == '\r' )) + --nameLen; + else + break; } - if ( pReq->m_reqState & LSAPI_ST_RESP_BODY ) { + if ( nameLen <= 0 ) + return 0; + while( valLen > 0 ) + { + char ch = *(pHeaderValue + valLen - 1 ); + if (( ch == '\n' )||( ch == '\r' )) + --valLen; + else + break; + } + len = nameLen + valLen + 1; + if ( len > LSAPI_RESP_HTTP_HEADER_MAX ) return -1; + + if ( pReq->m_pRespHeaderBufPos + len + 1 > pReq->m_pRespHeaderBufEnd ) + { + int newlen = pReq->m_pRespHeaderBufPos + len + 4096 - pReq->m_pRespHeaderBuf; + newlen -= newlen % 4096; + if ( allocateRespHeaderBuf( pReq, newlen ) == -1 ) + return -1; } - if ( pReq->m_respHeader.m_respInfo.m_cntHeaders >= LSAPI_MAX_RESP_HEADERS ) { + memmove( pReq->m_pRespHeaderBufPos, pHeaderName, nameLen ); + pReq->m_pRespHeaderBufPos += nameLen; + *pReq->m_pRespHeaderBufPos++ = ':'; + memmove( pReq->m_pRespHeaderBufPos, pHeaderValue, valLen ); + pReq->m_pRespHeaderBufPos += valLen; + *pReq->m_pRespHeaderBufPos++ = 0; + ++len; /* add one byte padding for \0 */ + pReq->m_respHeaderLen[pReq->m_respHeader.m_respInfo.m_cntHeaders] = len; + ++pReq->m_respHeader.m_respInfo.m_cntHeaders; + return 0; +} + + + +int LSAPI_AppendRespHeader_r( LSAPI_Request * pReq, const char * pBuf, int len ) +{ + if ( !pReq || !pBuf || len <= 0 || len > LSAPI_RESP_HTTP_HEADER_MAX ) + return -1; + if ( pReq->m_reqState & LSAPI_ST_RESP_BODY ) + return -1; + if ( pReq->m_respHeader.m_respInfo.m_cntHeaders >= LSAPI_MAX_RESP_HEADERS ) return -1; + while( len > 0 ) + { + char ch = *(pBuf + len - 1 ); + if (( ch == '\n' )||( ch == '\r' )) + --len; + else + break; } - if ( pReq->m_pRespHeaderBufPos + len + 1 > pReq->m_pRespHeaderBufEnd ) { + if ( len <= 0 ) + return 0; + if ( pReq->m_pRespHeaderBufPos + len + 1 > pReq->m_pRespHeaderBufEnd ) + { int newlen = pReq->m_pRespHeaderBufPos + len + 4096 - pReq->m_pRespHeaderBuf; newlen -= newlen % 4096; - if ( allocateRespHeaderBuf( pReq, newlen ) == -1 ) { + if ( allocateRespHeaderBuf( pReq, newlen ) == -1 ) return -1; - } } memmove( pReq->m_pRespHeaderBufPos, pBuf, len ); pReq->m_pRespHeaderBufPos += len; @@ -1400,7 +2222,8 @@ int LSAPI_CreateListenSock2( const struct sockaddr * pServerAddr, int backlog ) int flag = 1; int addr_len; - switch( pServerAddr->sa_family ) { + switch( pServerAddr->sa_family ) + { case AF_INET: addr_len = 16; break; @@ -1416,20 +2239,20 @@ int LSAPI_CreateListenSock2( const struct sockaddr * pServerAddr, int backlog ) } fd = socket( pServerAddr->sa_family, SOCK_STREAM, 0 ); - if ( fd == -1 ) { + if ( fd == -1 ) return -1; - } fcntl( fd, F_SETFD, FD_CLOEXEC ); if(setsockopt( fd, SOL_SOCKET, SO_REUSEADDR, - (char *)( &flag ), sizeof(flag)) == 0) { + (char *)( &flag ), sizeof(flag)) == 0) + { ret = bind( fd, pServerAddr, addr_len ); - if ( !ret ) { + if ( !ret ) + { ret = listen( fd, backlog ); - if ( !ret ) { + if ( !ret ) return fd; - } } } @@ -1449,17 +2272,16 @@ int LSAPI_ParseSockAddr( const char * pBind, struct sockaddr * pAddr ) int doAddrInfo = 0; int port; - if ( !pBind ) { + if ( !pBind ) return -1; - } - while( isspace( *pBind ) ) { + while( isspace( *pBind ) ) ++pBind; - } strncpy( achAddr, pBind, 256 ); - switch( *p ) { + switch( *p ) + { case '/': pAddr->sa_family = AF_UNIX; strncpy( ((struct sockaddr_un *)pAddr)->sun_path, p, @@ -1474,7 +2296,8 @@ int LSAPI_ParseSockAddr( const char * pBind, struct sockaddr * pAddr ) return -1; *pEnd++ = 0; - if ( *p == '*' ) { + if ( *p == '*' ) + { strcpy( achAddr, "::" ); p = achAddr; } @@ -1484,35 +2307,35 @@ int LSAPI_ParseSockAddr( const char * pBind, struct sockaddr * pAddr ) default: pAddr->sa_family = AF_INET; pEnd = strchr( p, ':' ); - if ( !pEnd ) { + if ( !pEnd ) return -1; - } *pEnd++ = 0; doAddrInfo = 0; - if ( *p == '*' ) { + if ( *p == '*' ) + { ((struct sockaddr_in *)pAddr)->sin_addr.s_addr = htonl(INADDR_ANY); - } else { - if (!strcasecmp( p, "localhost" ) ) { - ((struct sockaddr_in *)pAddr)->sin_addr.s_addr = htonl( INADDR_LOOPBACK ); - } else { - ((struct sockaddr_in *)pAddr)->sin_addr.s_addr = inet_addr( p ); - if ( ((struct sockaddr_in *)pAddr)->sin_addr.s_addr == INADDR_BROADCAST) { - doAddrInfo = 1; - } + } + else if (!strcasecmp( p, "localhost" ) ) + ((struct sockaddr_in *)pAddr)->sin_addr.s_addr = htonl( INADDR_LOOPBACK ); + else + { + ((struct sockaddr_in *)pAddr)->sin_addr.s_addr = inet_addr( p ); + if ( ((struct sockaddr_in *)pAddr)->sin_addr.s_addr == INADDR_BROADCAST) + { + doAddrInfo = 1; } } break; } - if ( *pEnd == ':' ) { + if ( *pEnd == ':' ) ++pEnd; - } port = atoi( pEnd ); - if (( port <= 0 )||( port > 65535 )) { + if (( port <= 0 )||( port > 65535 )) return -1; - } - if ( doAddrInfo ) { + if ( doAddrInfo ) + { memset(&hints, 0, sizeof(hints)); @@ -1520,7 +2343,8 @@ int LSAPI_ParseSockAddr( const char * pBind, struct sockaddr * pAddr ) hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; - if ( getaddrinfo(p, NULL, &hints, &res) ) { + if ( getaddrinfo(p, NULL, &hints, &res) ) + { return -1; } @@ -1528,11 +2352,10 @@ int LSAPI_ParseSockAddr( const char * pBind, struct sockaddr * pAddr ) freeaddrinfo(res); } - if ( pAddr->sa_family == AF_INET ) { + if ( pAddr->sa_family == AF_INET ) ((struct sockaddr_in *)pAddr)->sin_port = htons( port ); - } else { + else ((struct sockaddr_in6 *)pAddr)->sin6_port = htons( port ); - } return 0; } @@ -1543,7 +2366,8 @@ int LSAPI_CreateListenSock( const char * pBind, int backlog ) int ret; int fd = -1; ret = LSAPI_ParseSockAddr( pBind, (struct sockaddr *)serverAddr ); - if ( !ret ) { + if ( !ret ) + { fd = LSAPI_CreateListenSock2( (struct sockaddr *)serverAddr, backlog ); } return fd; @@ -1554,9 +2378,11 @@ static fn_select_t g_fnSelect = select; typedef struct _lsapi_child_status { int m_pid; + long m_tmStart; volatile short m_iKillSent; volatile short m_inProcess; + volatile int m_iReqCounter; volatile long m_tmWaitBegin; volatile long m_tmReqBegin; @@ -1579,6 +2405,8 @@ typedef struct _lsapi_prefork_server int m_iAvoidFork; lsapi_child_status * m_pChildrenStatus; + lsapi_child_status * m_pChildrenStatusCur; + lsapi_child_status * m_pChildrenStatusEnd; }lsapi_prefork_server; @@ -1586,43 +2414,42 @@ static lsapi_prefork_server * g_prefork_server = NULL; int LSAPI_Init_Prefork_Server( int max_children, fn_select_t fp, int avoidFork ) { - if ( g_prefork_server ) { + int pid; + if ( g_prefork_server ) return 0; - } - if ( max_children <= 1 ) { + if ( max_children <= 1 ) return -1; - } - if ( max_children >= 10000) { + if ( max_children >= 10000) max_children = 10000; - } g_prefork_server = (lsapi_prefork_server *)malloc( sizeof( lsapi_prefork_server ) ); - if ( !g_prefork_server ) { + if ( !g_prefork_server ) return -1; - } memset( g_prefork_server, 0, sizeof( lsapi_prefork_server ) ); - if ( fp != NULL ) { + if ( fp != NULL ) g_fnSelect = fp; - } s_ppid = getppid(); + pid = getpid(); + setpgid( pid, pid ); g_prefork_server->m_iAvoidFork = avoidFork; g_prefork_server->m_iMaxChildren = max_children; g_prefork_server->m_iExtraChildren = ( avoidFork ) ? 0 : (max_children / 3) ; g_prefork_server->m_iMaxIdleChildren = ( avoidFork ) ? (max_children + 1) : (max_children / 3); + if ( g_prefork_server->m_iMaxIdleChildren == 0 ) + g_prefork_server->m_iMaxIdleChildren = 1; g_prefork_server->m_iChildrenMaxIdleTime = 300; - g_prefork_server->m_iMaxReqProcessTime = 300; + g_prefork_server->m_iMaxReqProcessTime = 3600; return 0; } void LSAPI_Set_Server_fd( int fd ) { - if( g_prefork_server ) { + if( g_prefork_server ) g_prefork_server->m_fd = fd; - } } @@ -1635,14 +2462,17 @@ static int lsapi_accept( int fdListen ) len = sizeof( achPeer ); fd = accept( fdListen, (struct sockaddr *)&achPeer, &len ); - if ( fd != -1 ) { - if (((struct sockaddr *)&achPeer)->sa_family == AF_INET ) { + if ( fd != -1 ) + { + if (((struct sockaddr *)&achPeer)->sa_family == AF_INET ) + { setsockopt( fd, IPPROTO_TCP, TCP_NODELAY, (char *)&nodelay, sizeof(nodelay)); } - if ( s_accept_notify ) - notify_req_received( fd ); + //OPTIMIZATION + //if ( s_accept_notify ) + // notify_req_received( fd ); } return fd; @@ -1665,9 +2495,13 @@ static void lsapi_cleanup(int signal) static lsapi_child_status * find_child_status( int pid ) { lsapi_child_status * pStatus = g_prefork_server->m_pChildrenStatus; - lsapi_child_status * pEnd = g_prefork_server->m_pChildrenStatus + g_prefork_server->m_iMaxChildren * 2; - while( pStatus < pEnd ) { - if ( pStatus->m_pid == pid ) { + lsapi_child_status * pEnd = g_prefork_server->m_pChildrenStatusEnd; + while( pStatus < pEnd ) + { + if ( pStatus->m_pid == pid ) + { + if ( pStatus + 1 > g_prefork_server->m_pChildrenStatusCur ) + g_prefork_server->m_pChildrenStatusCur = pStatus + 1; return pStatus; } ++pStatus; @@ -1681,17 +2515,35 @@ static void lsapi_sigchild( int signal ) { int status, pid; lsapi_child_status * child_status; - while( 1 ) { + while( 1 ) + { pid = waitpid( -1, &status, WNOHANG|WUNTRACED ); - if ( pid <= 0 ) { + if ( pid <= 0 ) + { break; } + if ( WIFSIGNALED( status )) + { + int sig_num = WTERMSIG( status ); + int dump = WCOREDUMP( status ); + fprintf( stderr, "Child process with pid: %d was killed by signal: %d, core dump: %d\n", pid, sig_num, dump ); + } + if ( pid == s_pid_dump_debug_info ) + { + pid = 0; + continue; + } child_status = find_child_status( pid ); - if ( child_status ) { + if ( child_status ) + { child_status->m_pid = 0; + --g_prefork_server->m_iCurChildren; + } - --g_prefork_server->m_iCurChildren; } + while(( g_prefork_server->m_pChildrenStatusCur > g_prefork_server->m_pChildrenStatus ) + &&( g_prefork_server->m_pChildrenStatusCur[-1].m_pid == 0 )) + --g_prefork_server->m_pChildrenStatusCur; } @@ -1700,80 +2552,116 @@ static int lsapi_init_children_status() int size = 4096; char * pBuf; - size = g_prefork_server->m_iMaxChildren * sizeof( lsapi_child_status ) * 2; + size = (g_prefork_server->m_iMaxChildren + g_prefork_server->m_iExtraChildren ) * sizeof( lsapi_child_status ) * 2; size = (size + 4095 ) / 4096 * 4096; pBuf =( char*) mmap( NULL, size, PROT_READ | PROT_WRITE, MAP_ANON | MAP_SHARED, -1, 0 ); - if ( pBuf == MAP_FAILED ) { + if ( pBuf == MAP_FAILED ) + { perror( "Anonymous mmap() failed" ); return -1; } memset( pBuf, 0, size ); - g_prefork_server->m_pChildrenStatus = (lsapi_child_status *)pBuf; + g_prefork_server->m_pChildrenStatus = (lsapi_child_status *)pBuf; + g_prefork_server->m_pChildrenStatusCur = (lsapi_child_status *)pBuf; + g_prefork_server->m_pChildrenStatusEnd = (lsapi_child_status *)pBuf + size / sizeof( lsapi_child_status ); return 0; } +static void dump_debug_info( lsapi_child_status * pStatus, long tmCur ) +{ + char achCmd[1024]; + if ( s_pid_dump_debug_info ) + { + if ( kill( s_pid_dump_debug_info, 0 ) == 0 ) + return; + } + s_pid_dump_debug_info = fork(); + + fprintf( stderr, "[%s] Possible runaway process, PPID: %d, PID: %d, reqCount: %d, process time: %ld, checkpoint time: %ld, start time: %ld\n", + ctime(&tmCur), getpid(), pStatus->m_pid, pStatus->m_iReqCounter, + tmCur - pStatus->m_tmReqBegin, tmCur - pStatus->m_tmLastCheckPoint, tmCur - pStatus->m_tmStart ); + snprintf( achCmd, 1024, "gdb --batch -ex \"attach %d\" -ex \"set height 0\" -ex \"bt\" >&2;PATH=$PATH:/usr/sbin lsof -p %d >&2", pStatus->m_pid, pStatus->m_pid ); + if ( system( achCmd ) == -1 ) + perror( "system()" ); + exit( 0 ); +} + static void lsapi_check_child_status( long tmCur ) { int idle = 0; int tobekilled; int dying = 0; + int count = 0; lsapi_child_status * pStatus = g_prefork_server->m_pChildrenStatus; - lsapi_child_status * pEnd = g_prefork_server->m_pChildrenStatus + g_prefork_server->m_iMaxChildren * 2; - while( pStatus < pEnd ) { - tobekilled = pStatus->m_iKillSent; - if ( pStatus->m_pid != 0 ) { - if ( !tobekilled ) { - if ( !pStatus->m_inProcess ) { - - if (( g_prefork_server->m_iCurChildren - dying > g_prefork_server->m_iMaxChildren)|| - ( idle >= g_prefork_server->m_iMaxIdleChildren )) { - - tobekilled = 1; - } else { - if (( s_max_idle_secs> 0)&&(tmCur - pStatus->m_tmWaitBegin > s_max_idle_secs + 5 )) { - tobekilled = 1; - } - } - if ( !tobekilled ) { - ++idle; - } - } else { - if ( tmCur - pStatus->m_tmReqBegin > - g_prefork_server->m_iMaxReqProcessTime ) { - tobekilled = 1; - } + lsapi_child_status * pEnd = g_prefork_server->m_pChildrenStatusCur; + while( pStatus < pEnd ) + { + tobekilled = 0; + if ( pStatus->m_pid != 0 ) + { + ++count; + if ( !pStatus->m_inProcess ) + { + + if (( g_prefork_server->m_iCurChildren - dying > g_prefork_server->m_iMaxChildren)|| + ( idle > g_prefork_server->m_iMaxIdleChildren )) + { + ++pStatus->m_iKillSent; + //tobekilled = SIGUSR1; } - } else { - if ( pStatus->m_inProcess ) { - tobekilled = pStatus->m_iKillSent = 0; + else + { + if (( s_max_idle_secs> 0)&&(tmCur - pStatus->m_tmWaitBegin > s_max_idle_secs + 5 )) + { + ++pStatus->m_iKillSent; + //tobekilled = SIGUSR1; + } } + if ( !tobekilled ) + ++idle; } - if ( tobekilled ) { - tobekilled = 0; - if ( pStatus->m_iKillSent > 5 ) { - tobekilled = SIGKILL; - } else { - if ( pStatus->m_iKillSent == 3 ) { + else + { + if ( tmCur - pStatus->m_tmReqBegin > + g_prefork_server->m_iMaxReqProcessTime ) + { + if (( ( pStatus->m_iKillSent % 5 ) == 0 )&&( s_dump_debug_info )) + dump_debug_info( pStatus, tmCur ); + if ( pStatus->m_iKillSent > 5 ) + { + tobekilled = SIGKILL; + fprintf( stderr, "Force killing runaway process PID: %d with SIGKILL\n", pStatus->m_pid ); + } + else + { tobekilled = SIGTERM; - } else { - if ( pStatus->m_iKillSent == 1 ) { - tobekilled = SIGUSR1; - } + fprintf( stderr, "Killing runaway process PID: %d with SIGTERM\n", pStatus->m_pid ); } } - if ( tobekilled ) { - kill( pStatus->m_pid, tobekilled ); + } + if ( tobekilled ) + { + if (( kill( pStatus->m_pid, tobekilled ) == -1 )&&( errno == ESRCH )) + { + pStatus->m_pid = 0; + --count; + } + else + { + ++pStatus->m_iKillSent; + ++dying; } - ++pStatus->m_iKillSent; - ++dying; } - - } else { - ++dying; } ++pStatus; } + if ( abs( g_prefork_server->m_iCurChildren - count ) > 1 ) + { + fprintf( stderr, "Children tracking is wrong: PID: %d, Cur Childen: %d, count: %d, idle: %d, dying: %d\n", getpid(), + g_prefork_server->m_iCurChildren, count, idle, dying ); + + } } static int lsapi_all_children_must_die() @@ -1784,14 +2672,14 @@ static int lsapi_all_children_must_die() g_prefork_server->m_iMaxIdleChildren = -1; maxWait = 15; - while( g_prefork_server->m_iCurChildren && (sec < maxWait) ) { + while( g_prefork_server->m_iCurChildren && (sec < maxWait) ) + { lsapi_check_child_status(time(NULL)); sleep( 1 ); sec++; } - if ( g_prefork_server->m_iCurChildren != 0 ) { + if ( g_prefork_server->m_iCurChildren != 0 ) kill( -getpgrp(), SIGKILL ); - } return 0; } @@ -1810,13 +2698,17 @@ static int lsapi_prefork_server_accept( lsapi_prefork_server * pServer, LSAPI_Re fd_set readfds; struct timeval timeout; + sigset_t mask; + sigset_t orig_mask; + lsapi_init_children_status(); setsid(); act.sa_flags = 0; act.sa_handler = lsapi_sigchild; - if( sigaction( SIGCHLD, &act, &old_child ) ) { + if( sigaction( SIGCHLD, &act, &old_child ) ) + { perror( "Can't set signal handler for SIGCHILD" ); return -1; } @@ -1827,36 +2719,38 @@ static int lsapi_prefork_server_accept( lsapi_prefork_server * pServer, LSAPI_Re if( sigaction( SIGTERM, &act, &old_term ) || sigaction( SIGINT, &act, &old_int ) || sigaction( SIGUSR1, &act, &old_usr1 ) || - sigaction( SIGQUIT, &act, &old_quit )) { + sigaction( SIGQUIT, &act, &old_quit )) + { perror( "Can't set signals" ); return -1; } s_stop = 0; - while( !s_stop ) { - if ( ret ) { - curTime = time( NULL ); - } else { - ++curTime; - } - if (curTime != lastTime ) { + while( !s_stop ) + { + curTime = time( NULL ); + if (curTime != lastTime ) + { lastTime = curTime; - if (s_ppid && (getppid() != s_ppid )) { + if (s_ppid && (getppid() != s_ppid )) break; - } lsapi_check_child_status(curTime ); - if (pServer->m_iServerMaxIdle) { - if ( pServer->m_iCurChildren <= 0 ) { + if (pServer->m_iServerMaxIdle) + { + if ( pServer->m_iCurChildren <= 0 ) + { ++wait_secs; - if ( wait_secs > pServer->m_iServerMaxIdle ) { + if ( wait_secs > pServer->m_iServerMaxIdle ) return -1; - } - } else { - wait_secs = 0; } + else + wait_secs = 0; } } - if ( pServer->m_iCurChildren >= (pServer->m_iMaxChildren + pServer->m_iExtraChildren ) ) { + if ( pServer->m_iCurChildren >= (pServer->m_iMaxChildren + pServer->m_iExtraChildren ) ) + { + fprintf( stderr, "Reached max children process limit: %d, extra: %d, current: %d, please increase LSAPI_CHILDREN.\n", + pServer->m_iMaxChildren, pServer->m_iExtraChildren, pServer->m_iCurChildren ); usleep( 100000 ); continue; } @@ -1864,77 +2758,116 @@ static int lsapi_prefork_server_accept( lsapi_prefork_server * pServer, LSAPI_Re FD_ZERO( &readfds ); FD_SET( pServer->m_fd, &readfds ); timeout.tv_sec = 1; timeout.tv_usec = 0; - if ((ret = (*g_fnSelect)(pServer->m_fd+1, &readfds, NULL, NULL, &timeout)) == 1 ) { - if ( pServer->m_iCurChildren >= 0 ) { + if ((ret = (*g_fnSelect)(pServer->m_fd+1, &readfds, NULL, NULL, &timeout)) == 1 ) + { + /* + if ( pServer->m_iCurChildren >= 0 ) + { usleep( 10 ); FD_ZERO( &readfds ); FD_SET( pServer->m_fd, &readfds ); timeout.tv_sec = 0; timeout.tv_usec = 0; - if ( (*g_fnSelect)(pServer->m_fd+1, &readfds, NULL, NULL, &timeout) == 0 ) { - continue; - } - } - } else { - if ( ret == -1 ) { - if ( errno == EINTR ) { + if ( (*g_fnSelect)(pServer->m_fd+1, &readfds, NULL, NULL, &timeout) == 0 ) continue; - } - /* perror( "select()" ); */ - break; - } else { + }*/ + } + else if ( ret == -1 ) + { + if ( errno == EINTR ) continue; - } + /* perror( "select()" ); */ + break; + } + else + { + continue; } pReq->m_fd = lsapi_accept( pServer->m_fd ); - if ( pReq->m_fd != -1 ) { + if ( pReq->m_fd != -1 ) + { child_status = find_child_status( 0 ); + if ( child_status ) + memset( child_status, 0, sizeof( *child_status ) ); + + sigemptyset( &mask ); + sigaddset( &mask, SIGCHLD ); + + if ( sigprocmask(SIG_BLOCK, &mask, &orig_mask) < 0 ) + { + perror( "sigprocmask(SIG_BLOCK) to block SIGCHLD" ); + } + pid = fork(); - if ( !pid ) { + + if ( !pid ) + { + if (sigprocmask(SIG_SETMASK, &orig_mask, NULL) < 0) + perror( "sigprocmask( SIG_SETMASK ) to restore SIGMASK in child" ); g_prefork_server = NULL; s_ppid = getppid(); s_req_processed = 0; s_pChildStatus = child_status; - child_status->m_iKillSent = 0; lsapi_set_nblock( pReq->m_fd, 0 ); - + if ( pReq->m_fdListen != -1 ) + { + close( pReq->m_fdListen ); + pReq->m_fdListen = -1; + } /* don't catch our signals */ sigaction( SIGCHLD, &old_child, 0 ); sigaction( SIGTERM, &old_term, 0 ); sigaction( SIGQUIT, &old_quit, 0 ); sigaction( SIGINT, &old_int, 0 ); sigaction( SIGUSR1, &old_usr1, 0 ); + //init_conn_key( pReq->m_fd ); + lsapi_notify_pid( pReq->m_fd ); + s_notified_pid = 1; + //if ( s_accept_notify ) + // return notify_req_received( pReq->m_fd ); return 0; - } else { - if ( pid == -1 ) { - perror( "fork() failed, please increase process limit" ); - } else { - ++pServer->m_iCurChildren; - if ( child_status ) { - child_status->m_pid = pid; - child_status->m_iKillSent = 0; - child_status->m_tmWaitBegin = time(NULL); - } + } + else if ( pid == -1 ) + { + perror( "fork() failed, please increase process limit" ); + } + else + { + ++pServer->m_iCurChildren; + if ( child_status ) + { + child_status->m_pid = pid; + child_status->m_tmWaitBegin = curTime; + child_status->m_tmStart = curTime; } } close( pReq->m_fd ); pReq->m_fd = -1; - } else { - if (( errno == EINTR )||( errno == EAGAIN)) { + if (sigprocmask(SIG_SETMASK, &orig_mask, NULL) < 0) + perror( "sigprocmask( SIG_SETMASK ) to restore SIGMASK" ); + + } + else + { + if (( errno == EINTR )||( errno == EAGAIN)) continue; - } perror( "accept() failed" ); return -1; } } sigaction( SIGUSR1, &old_usr1, 0 ); - kill( -getpgrp(), SIGUSR1 ); - lsapi_all_children_must_die(); /* Sorry, children ;-) */ + //kill( -getpgrp(), SIGUSR1 ); + //lsapi_all_children_must_die(); /* Sorry, children ;-) */ return -1; } +void lsapi_error( const char * pMessage, int err_no ) +{ + fprintf( stderr, "%d: %s, errno: %d (%s)\n", getpid(), pMessage, err_no, strerror( err_no ) ); +} + int LSAPI_Prefork_Accept_r( LSAPI_Request * pReq ) { int fd; @@ -1946,88 +2879,105 @@ int LSAPI_Prefork_Accept_r( LSAPI_Request * pReq ) LSAPI_Finish_r( pReq ); - if ( g_prefork_server ) { - if ( g_prefork_server->m_fd != -1 ) { - if ( lsapi_prefork_server_accept( g_prefork_server, pReq ) == -1 ) { + if ( g_prefork_server ) + { + if ( g_prefork_server->m_fd != -1 ) + if ( lsapi_prefork_server_accept( g_prefork_server, pReq ) == -1 ) return -1; - } - } } - if ( s_req_processed >= s_max_reqs ) { + if ( s_req_processed >= s_max_reqs ) return -1; - } - if ( s_pChildStatus ) { + if ( s_pChildStatus ) + { s_pChildStatus->m_tmWaitBegin = time( NULL ); } + - while( g_running ) { - if ( pReq->m_fd != -1 ) { + while( g_running ) + { + if ( pReq->m_fd != -1 ) + { fd = pReq->m_fd; - } else { - if ( pReq->m_fdListen != -1 ) { - fd = pReq->m_fdListen; - } else { - return -1; - } + } + else if ( pReq->m_fdListen != -1 ) + fd = pReq->m_fdListen; + else + { + break; } wait_secs = 0; - while( 1 ) { - if ( !g_running ) { + while( 1 ) + { + if ( !g_running ) return -1; - } - if (( s_pChildStatus )&&( s_pChildStatus->m_iKillSent )) { + if ((s_req_processed)&&( s_pChildStatus )&&( s_pChildStatus->m_iKillSent )) return -1; - } FD_ZERO( &readfds ); FD_SET( fd, &readfds ); timeout.tv_sec = 1; timeout.tv_usec = 0; ret = (*g_fnSelect)(fd+1, &readfds, NULL, NULL, &timeout); - if ( ret == 0 ) { - if ( s_pChildStatus ) { + if ( ret == 0 ) + { + if ( s_pChildStatus ) + { s_pChildStatus->m_inProcess = 0; } ++wait_secs; - if (( s_max_idle_secs > 0 )&&(wait_secs >= s_max_idle_secs )) { + if (( s_max_idle_secs > 0 )&&(wait_secs >= s_max_idle_secs )) return -1; - } - if ( s_ppid &&( getppid() != s_ppid)) { + if ( s_ppid &&( getppid() != s_ppid)) return -1; - } - } else { - if ( ret == -1 ) { - if ( errno == EINTR ) { - continue; - } else { - return -1; - } - } else { - if ( ret >= 1 ) { - if (( s_pChildStatus )&&( s_pChildStatus->m_iKillSent )) { - return -1; + } + else if ( ret == -1 ) + { + if ( errno == EINTR ) + continue; + else + return -1; + } + else if ( ret >= 1 ) + { + if (s_req_processed && ( s_pChildStatus )&&( s_pChildStatus->m_iKillSent )) + return -1; + if ( fd == pReq->m_fdListen ) + { + pReq->m_fd = lsapi_accept( pReq->m_fdListen ); + if ( pReq->m_fd != -1 ) + { + fd = pReq->m_fd; + lsapi_set_nblock( fd, 0 ); + //init_conn_key( pReq->m_fd ); + if ( !s_keepListener ) + { + close( pReq->m_fdListen ); + pReq->m_fdListen = -1; } - if ( fd == pReq->m_fdListen ) { - pReq->m_fd = lsapi_accept( pReq->m_fdListen ); - if ( pReq->m_fd != -1 ) { - fd = pReq->m_fd; - lsapi_set_nblock( fd, 0 ); - } else { - if (( errno == EINTR )||( errno == EAGAIN)) { - continue; - } + if ( s_accept_notify ) + if ( notify_req_received( pReq->m_fd ) == -1 ) return -1; - } - } else { - break; - } + } + else + { + if (( errno == EINTR )||( errno == EAGAIN)) + continue; + lsapi_error( "lsapi_accept() error", errno ); + return -1; } } + else + break; } } - if ( !readReq( pReq ) ) { - if ( s_pChildStatus ) { + + if ( !readReq( pReq ) ) + { + if ( s_pChildStatus ) + { + s_pChildStatus->m_iKillSent = 0; s_pChildStatus->m_inProcess = 1; + ++s_pChildStatus->m_iReqCounter; s_pChildStatus->m_tmReqBegin = s_pChildStatus->m_tmLastCheckPoint = time(NULL); } ++s_req_processed; @@ -2042,61 +2992,53 @@ int LSAPI_Prefork_Accept_r( LSAPI_Request * pReq ) } void LSAPI_Set_Max_Reqs( int reqs ) -{ - s_max_reqs = reqs; -} +{ s_max_reqs = reqs; } void LSAPI_Set_Max_Idle( int secs ) -{ - s_max_idle_secs = secs; -} +{ s_max_idle_secs = secs; } void LSAPI_Set_Max_Children( int maxChildren ) { - if ( g_prefork_server ) { + if ( g_prefork_server ) g_prefork_server->m_iMaxChildren = maxChildren; - } } void LSAPI_Set_Extra_Children( int extraChildren ) { - if (( g_prefork_server )&&( extraChildren >= 0 )) { + if (( g_prefork_server )&&( extraChildren >= 0 )) g_prefork_server->m_iExtraChildren = extraChildren; - } } void LSAPI_Set_Max_Process_Time( int secs ) { - if (( g_prefork_server )&&( secs > 0 )) { + if (( g_prefork_server )&&( secs > 0 )) g_prefork_server->m_iMaxReqProcessTime = secs; - } } void LSAPI_Set_Max_Idle_Children( int maxIdleChld ) { - if (( g_prefork_server )&&( maxIdleChld > 0 )) { + if (( g_prefork_server )&&( maxIdleChld > 0 )) g_prefork_server->m_iMaxIdleChildren = maxIdleChld; - } } void LSAPI_Set_Server_Max_Idle_Secs( int serverMaxIdle ) { - if ( g_prefork_server ) { + if ( g_prefork_server ) g_prefork_server->m_iServerMaxIdle = serverMaxIdle; - } } void LSAPI_Set_Slow_Req_Msecs( int msecs ) { - s_slow_req_msecs = msecs; + s_slow_req_msecs = msecs; } int LSAPI_Get_Slow_Req_Msecs() { - return s_slow_req_msecs; + return s_slow_req_msecs; } + void LSAPI_No_Check_ppid() { s_ppid = 0; @@ -2115,113 +3057,421 @@ static void unset_lsapi_envs() #else env = environ; #endif - while( env != NULL && *env != NULL ) { - if ( !strncmp(*env, "LSAPI_", 6) || - !strncmp( *env, "PHP_LSAPI_", 10 ) ) { + while( env != NULL && *env != NULL ) + { + if (!strncmp(*env, "LSAPI_", 6) || !strncmp( *env, "PHP_LSAPI_", 10 ) + || (!strncmp( *env, "PHPRC=", 6 )&&(!s_uid))) + { char ** del = env; - do { + do *del = del[1]; - } while( *del++ ); - } else { - ++env; + while( *del++ ); } + else + ++env; } } -void LSAPI_Init_Env_Parameters( fn_select_t fp ) +static int lsapi_initSuEXEC() +{ + int i; + struct passwd * pw; + s_defaultUid = 0; + s_defaultGid = 0; + if ( s_uid == 0 ) + { + const char * p = getenv( "LSAPI_DEFAULT_UID" ); + if ( p ) + { + i = atoi( p ); + if ( i > 0 ) + s_defaultUid = i; + } + p = getenv( "LSAPI_DEFAULT_GID" ); + if ( p ) + { + i = atoi( p ); + if ( i > 0 ) + s_defaultGid = i; + } + p = getenv( "LSAPI_SECRET" ); + if (( !p )||( readSecret(p) == -1 )) + return -1; + if ( g_prefork_server ) + { + if ( g_prefork_server->m_iMaxChildren < 100 ) + g_prefork_server->m_iMaxChildren = 100; + if ( g_prefork_server->m_iExtraChildren < 1000 ) + g_prefork_server->m_iExtraChildren = 1000; + } + } + if ( !s_defaultUid || !s_defaultGid ) + { + pw = getpwnam( "nobody" ); + if ( !s_defaultUid ) + s_defaultUid = pw->pw_uid; + if ( !s_defaultGid ) + s_defaultGid = pw->pw_gid; + } + return 0; +} + + +int LSAPI_Init_Env_Parameters( fn_select_t fp ) { const char *p; int n; int avoidFork = 0; p = getenv( "PHP_LSAPI_MAX_REQUESTS" ); - if ( !p ) { + if ( !p ) p = getenv( "LSAPI_MAX_REQS" ); - } - if ( p ) { + if ( p ) + { n = atoi( p ); - if ( n > 0 ) { + if ( n > 0 ) LSAPI_Set_Max_Reqs( n ); - } } p = getenv( "LSAPI_AVOID_FORK" ); - if ( p ) { + if ( p ) + { avoidFork = atoi( p ); } p = getenv( "LSAPI_ACCEPT_NOTIFY" ); - if ( p ) { + if ( p ) + { s_accept_notify = atoi( p ); - } + } p = getenv( "LSAPI_SLOW_REQ_MSECS" ); - if ( p ) { + if ( p ) + { n = atoi( p ); LSAPI_Set_Slow_Req_Msecs( n ); - } - + } #if defined( RLIMIT_CORE ) p = getenv( "LSAPI_ALLOW_CORE_DUMP" ); - if ( !p ) { + if ( !p ) + { struct rlimit limit = { 0, 0 }; setrlimit( RLIMIT_CORE, &limit ); } -#endif + else + s_enable_core_dump = 1; + +#endif p = getenv( "LSAPI_MAX_IDLE" ); - if ( p ) { + if ( p ) + { n = atoi( p ); LSAPI_Set_Max_Idle( n ); } - if ( LSAPI_Is_Listen() ) { + p = getenv( "LSAPI_KEEP_LISTEN" ); + if ( p ) + { + n = atoi( p ); + s_keepListener = n; + } + + + if ( LSAPI_Is_Listen() ) + { n = 0; p = getenv( "PHP_LSAPI_CHILDREN" ); - if ( !p ) { + if ( !p ) p = getenv( "LSAPI_CHILDREN" ); - } - if ( p ) { + if ( p ) n = atoi( p ); - } - if ( n > 1 ) { + if ( n > 1 ) + { LSAPI_Init_Prefork_Server( n, fp, avoidFork ); LSAPI_Set_Server_fd( g_req.m_fdListen ); } p = getenv( "LSAPI_EXTRA_CHILDREN" ); - if ( p ) { + if ( p ) LSAPI_Set_Extra_Children( atoi( p ) ); - } p = getenv( "LSAPI_MAX_IDLE_CHILDREN" ); - if ( p ) { + if ( p ) LSAPI_Set_Max_Idle_Children( atoi( p ) ); - } + p = getenv( "LSAPI_PGRP_MAX_IDLE" ); - if ( p ) { + if ( p ) + { LSAPI_Set_Server_Max_Idle_Secs( atoi( p ) ); } p = getenv( "LSAPI_MAX_PROCESS_TIME" ); - if ( p ) { + if ( p ) LSAPI_Set_Max_Process_Time( atoi( p ) ); - } - if ( getenv( "LSAPI_PPID_NO_CHECK" ) ) { + + if ( getenv( "LSAPI_PPID_NO_CHECK" ) ) + { LSAPI_No_Check_ppid(); } + + p = getenv( "LSAPI_DUMP_DEBUG_INFO" ); + if ( p ) + s_dump_debug_info = atoi( p ); + + if ( lsapi_initSuEXEC() == -1 ) + return -1; +#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__) + lsapi_initLVE(); +#endif } unset_lsapi_envs(); + return 0; } +int LSAPI_ErrResponse_r( LSAPI_Request * pReq, int code, const char ** pRespHeaders, + const char * pBody, int bodyLen ) +{ + LSAPI_SetRespStatus_r( pReq, code ); + if ( pRespHeaders ) + { + while( *pRespHeaders ) + { + LSAPI_AppendRespHeader_r( pReq, *pRespHeaders, strlen( *pRespHeaders ) ); + ++pRespHeaders; + } + } + if ( pBody &&( bodyLen > 0 )) + { + LSAPI_Write_r( pReq, pBody, bodyLen ); + } + LSAPI_Finish_r( pReq ); + return 0; +} + + +static void lsapi_MD5Transform(uint32 buf[4], uint32 const in[16]); + +/* + * Note: this code is harmless on little-endian machines. + */ +static void byteReverse(unsigned char *buf, unsigned longs) +{ + uint32 t; + do { + t = (uint32) ((unsigned) buf[3] << 8 | buf[2]) << 16 | + ((unsigned) buf[1] << 8 | buf[0]); + *(uint32 *) buf = t; + buf += 4; + } while (--longs); +} + +/* + * Start MD5 accumulation. Set bit count to 0 and buffer to mysterious + * initialization constants. + */ +void lsapi_MD5Init(struct lsapi_MD5Context *ctx) +{ + ctx->buf[0] = 0x67452301; + ctx->buf[1] = 0xefcdab89; + ctx->buf[2] = 0x98badcfe; + ctx->buf[3] = 0x10325476; + + ctx->bits[0] = 0; + ctx->bits[1] = 0; +} + +/* + * Update context to reflect the concatenation of another buffer full + * of bytes. + */ +void lsapi_MD5Update(struct lsapi_MD5Context *ctx, unsigned char const *buf, unsigned len) +{ + register uint32 t; + + /* Update bitcount */ + + t = ctx->bits[0]; + if ((ctx->bits[0] = t + ((uint32) len << 3)) < t) + ctx->bits[1]++; /* Carry from low to high */ + ctx->bits[1] += len >> 29; + + t = (t >> 3) & 0x3f; /* Bytes already in shsInfo->data */ + + /* Handle any leading odd-sized chunks */ + + if (t) { + unsigned char *p = (unsigned char *) ctx->in + t; + + t = 64 - t; + if (len < t) { + memmove(p, buf, len); + return; + } + memmove(p, buf, t); + byteReverse(ctx->in, 16); + lsapi_MD5Transform(ctx->buf, (uint32 *) ctx->in); + buf += t; + len -= t; + } + /* Process data in 64-byte chunks */ + + while (len >= 64) { + memmove(ctx->in, buf, 64); + byteReverse(ctx->in, 16); + lsapi_MD5Transform(ctx->buf, (uint32 *) ctx->in); + buf += 64; + len -= 64; + } + + /* Handle any remaining bytes of data. */ + + memmove(ctx->in, buf, len); +} + /* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 fdm=marker - * vim<600: sw=4 ts=4 + * Final wrapup - pad to 64-byte boundary with the bit pattern + * 1 0* (64-bit count of bits processed, MSB-first) */ +void lsapi_MD5Final(unsigned char digest[16], struct lsapi_MD5Context *ctx) +{ + unsigned int count; + unsigned char *p; + + /* Compute number of bytes mod 64 */ + count = (ctx->bits[0] >> 3) & 0x3F; + + /* Set the first char of padding to 0x80. This is safe since there is + always at least one byte free */ + p = ctx->in + count; + *p++ = 0x80; + + /* Bytes of padding needed to make 64 bytes */ + count = 64 - 1 - count; + /* Pad out to 56 mod 64 */ + if (count < 8) { + /* Two lots of padding: Pad the first block to 64 bytes */ + memset(p, 0, count); + byteReverse(ctx->in, 16); + lsapi_MD5Transform(ctx->buf, (uint32 *) ctx->in); + + /* Now fill the next block with 56 bytes */ + memset(ctx->in, 0, 56); + } else { + /* Pad block to 56 bytes */ + memset(p, 0, count - 8); + } + byteReverse(ctx->in, 14); + + /* Append length in bits and transform */ + ((uint32 *) ctx->in)[14] = ctx->bits[0]; + ((uint32 *) ctx->in)[15] = ctx->bits[1]; + + lsapi_MD5Transform(ctx->buf, (uint32 *) ctx->in); + byteReverse((unsigned char *) ctx->buf, 4); + memmove(digest, ctx->buf, 16); + memset(ctx, 0, sizeof(ctx)); /* In case it's sensitive */ +} + +/* The four core functions - F1 is optimized somewhat */ + +/* #define F1(x, y, z) (x & y | ~x & z) */ +#define F1(x, y, z) (z ^ (x & (y ^ z))) +#define F2(x, y, z) F1(z, x, y) +#define F3(x, y, z) (x ^ y ^ z) +#define F4(x, y, z) (y ^ (x | ~z)) + +/* This is the central step in the MD5 algorithm. */ +#define MD5STEP(f, w, x, y, z, data, s) \ + ( w += f(x, y, z) + data, w = w<<s | w>>(32-s), w += x ) + +/* + * The core of the MD5 algorithm, this alters an existing MD5 hash to + * reflect the addition of 16 longwords of new data. MD5Update blocks + * the data and converts bytes into longwords for this routine. + */ +static void lsapi_MD5Transform(uint32 buf[4], uint32 const in[16]) +{ + register uint32 a, b, c, d; + + a = buf[0]; + b = buf[1]; + c = buf[2]; + d = buf[3]; + + MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7); + MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12); + MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17); + MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22); + MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7); + MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12); + MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17); + MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22); + MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7); + MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12); + MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17); + MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22); + MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7); + MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12); + MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17); + MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22); + + MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5); + MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9); + MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14); + MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20); + MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5); + MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9); + MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14); + MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20); + MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5); + MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9); + MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14); + MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20); + MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5); + MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9); + MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14); + MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20); + + MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4); + MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11); + MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16); + MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23); + MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4); + MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11); + MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16); + MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23); + MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4); + MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11); + MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16); + MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23); + MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4); + MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11); + MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16); + MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23); + + MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6); + MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10); + MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15); + MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21); + MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6); + MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10); + MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15); + MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21); + MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6); + MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10); + MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15); + MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21); + MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6); + MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10); + MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15); + MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21); + + buf[0] += a; + buf[1] += b; + buf[2] += c; + buf[3] += d; +} diff --git a/sapi/litespeed/lsapilib.h b/sapi/litespeed/lsapilib.h index 45934ad46..cae1863c7 100644 --- a/sapi/litespeed/lsapilib.h +++ b/sapi/litespeed/lsapilib.h @@ -1,4 +1,3 @@ - /* +----------------------------------------------------------------------+ | PHP Version 5 | @@ -18,7 +17,7 @@ */ /* -Copyright (c) 2007, Lite Speed Technologies Inc. +Copyright (c) 2002-2014, Lite Speed Technologies Inc. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -50,7 +49,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - #ifndef _LSAPILIB_H_ #define _LSAPILIB_H_ @@ -118,7 +116,8 @@ typedef struct lsapi_request char * m_pRequestMethod; int m_totalLen; int m_reqState; - int m_reqBodyRead; + off_t m_reqBodyLen; + off_t m_reqBodyRead; int m_bufProcessed; int m_bufRead; @@ -126,6 +125,7 @@ typedef struct lsapi_request struct lsapi_resp_header m_respHeader; short m_respHeaderLen[LSAPI_MAX_RESP_HEADERS]; + void * m_pAppData; }LSAPI_Request; @@ -170,22 +170,30 @@ int LSAPI_ForeachSpecialEnv_r( LSAPI_Request * pReq, char * LSAPI_GetEnv_r( LSAPI_Request * pReq, const char * name ); -int LSAPI_ReadReqBody_r( LSAPI_Request * pReq, char * pBuf, int len ); +ssize_t LSAPI_ReadReqBody_r( LSAPI_Request * pReq, char * pBuf, size_t len ); int LSAPI_ReqBodyGetChar_r( LSAPI_Request * pReq ); -int LSAPI_ReqBodyGetLine_r( LSAPI_Request * pReq, char * pBuf, int bufLen, int *getLF ); +int LSAPI_ReqBodyGetLine_r( LSAPI_Request * pReq, char * pBuf, size_t bufLen, int *getLF ); int LSAPI_FinalizeRespHeaders_r( LSAPI_Request * pReq ); -int LSAPI_Write_r( LSAPI_Request * pReq, const char * pBuf, int len ); +ssize_t LSAPI_Write_r( LSAPI_Request * pReq, const char * pBuf, size_t len ); + +ssize_t LSAPI_sendfile_r( LSAPI_Request * pReq, int fdIn, off_t* off, size_t size ); -int LSAPI_Write_Stderr_r( LSAPI_Request * pReq, const char * pBuf, int len ); +ssize_t LSAPI_Write_Stderr_r( LSAPI_Request * pReq, const char * pBuf, size_t len ); int LSAPI_Flush_r( LSAPI_Request * pReq ); -int LSAPI_AppendRespHeader_r( LSAPI_Request * pHeader, char * pBuf, int len ); +int LSAPI_AppendRespHeader_r( LSAPI_Request * pReq, const char * pBuf, int len ); + +int LSAPI_AppendRespHeader2_r( LSAPI_Request * pReq, const char * pHeaderName, + const char * pHeaderValue ); + +int LSAPI_ErrResponse_r( LSAPI_Request * pReq, int code, const char ** pRespHeaders, + const char * pBody, int bodyLen ); static inline int LSAPI_SetRespStatus_r( LSAPI_Request * pReq, int code ) { @@ -195,6 +203,21 @@ static inline int LSAPI_SetRespStatus_r( LSAPI_Request * pReq, int code ) return 0; } +static inline int LSAPI_SetAppData_r( LSAPI_Request * pReq, void * data ) +{ + if ( !pReq ) + return -1; + pReq->m_pAppData = data; + return 0; +} + +static inline void * LSAPI_GetAppData_r( LSAPI_Request * pReq ) +{ + if ( !pReq ) + return NULL; + return pReq->m_pAppData; +} + static inline char * LSAPI_GetQueryString_r( LSAPI_Request * pReq ) { if ( pReq ) @@ -228,21 +251,22 @@ static inline char * LSAPI_GetRequestMethod_r( LSAPI_Request * pReq) -static inline int LSAPI_GetReqBodyLen_r( LSAPI_Request * pReq ) +static inline off_t LSAPI_GetReqBodyLen_r( LSAPI_Request * pReq ) { if ( pReq ) - return pReq->m_pHeader->m_reqBodyLen; + return pReq->m_reqBodyLen; return -1; } -static inline int LSAPI_GetReqBodyRemain_r( LSAPI_Request * pReq ) +static inline off_t LSAPI_GetReqBodyRemain_r( LSAPI_Request * pReq ) { if ( pReq ) - return pReq->m_pHeader->m_reqBodyLen - pReq->m_reqBodyRead; + return pReq->m_reqBodyLen - pReq->m_reqBodyRead; return -1; } + int LSAPI_Is_Listen(void); static inline int LSAPI_Accept( void ) @@ -282,13 +306,13 @@ static inline char * LSAPI_GetScriptName() static inline char * LSAPI_GetRequestMethod() { return LSAPI_GetRequestMethod_r( &g_req ); } -static inline int LSAPI_GetReqBodyLen() +static inline off_t LSAPI_GetReqBodyLen() { return LSAPI_GetReqBodyLen_r( &g_req ); } -static inline int LSAPI_GetReqBodyRemain() +static inline off_t LSAPI_GetReqBodyRemain() { return LSAPI_GetReqBodyRemain_r( &g_req ); } -static inline int LSAPI_ReadReqBody( char * pBuf, int len ) +static inline ssize_t LSAPI_ReadReqBody( char * pBuf, size_t len ) { return LSAPI_ReadReqBody_r( &g_req, pBuf, len ); } static inline int LSAPI_ReqBodyGetChar() @@ -302,10 +326,15 @@ static inline int LSAPI_ReqBodyGetLine( char * pBuf, int len, int *getLF ) static inline int LSAPI_FinalizeRespHeaders(void) { return LSAPI_FinalizeRespHeaders_r( &g_req ); } -static inline int LSAPI_Write( const char * pBuf, int len ) +static inline ssize_t LSAPI_Write( const char * pBuf, ssize_t len ) { return LSAPI_Write_r( &g_req, pBuf, len ); } -static inline int LSAPI_Write_Stderr( const char * pBuf, int len ) +static inline ssize_t LSAPI_sendfile( int fdIn, off_t* off, size_t size ) +{ + return LSAPI_sendfile_r(&g_req, fdIn, off, size ); +} + +static inline ssize_t LSAPI_Write_Stderr( const char * pBuf, ssize_t len ) { return LSAPI_Write_Stderr_r( &g_req, pBuf, len ); } static inline int LSAPI_Flush() @@ -317,6 +346,9 @@ static inline int LSAPI_AppendRespHeader( char * pBuf, int len ) static inline int LSAPI_SetRespStatus( int code ) { return LSAPI_SetRespStatus_r( &g_req, code ); } +static inline int LSAPI_ErrResponse( int code, const char ** pRespHeaders, const char * pBody, int bodyLen ) +{ return LSAPI_ErrResponse_r( &g_req, code, pRespHeaders, pBody, bodyLen ); } + int LSAPI_IsRunning(void); int LSAPI_CreateListenSock( const char * pBind, int backlog ); @@ -341,12 +373,13 @@ void LSAPI_Set_Server_Max_Idle_Secs( int serverMaxIdle ); void LSAPI_Set_Max_Process_Time( int secs ); -void LSAPI_Init_Env_Parameters( fn_select_t fp ); +int LSAPI_Init_Env_Parameters( fn_select_t fp ); void LSAPI_Set_Slow_Req_Msecs( int msecs ); int LSAPI_Get_Slow_Req_Msecs( ); +int LSAPI_is_suEXEC_Daemon(); #if defined (c_plusplus) || defined (__cplusplus) } diff --git a/sapi/milter/Makefile.frag b/sapi/milter/Makefile.frag index 26200a196..f193f56b0 100644 --- a/sapi/milter/Makefile.frag +++ b/sapi/milter/Makefile.frag @@ -1,8 +1,8 @@ milter: $(SAPI_MILTER_PATH) -$(SAPI_MILTER_PATH): $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_SAPI_OBJS) +$(SAPI_MILTER_PATH): $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_MILTER_OBJS) $(BUILD_MILTER) install-milter: $(SAPI_MILTER_PATH) - @$(INSTALL) -m 0755 $(SAPI_MILTER_PATH) $(bindir)/php-milter + @$(INSTALL) -m 0755 $(SAPI_MILTER_PATH) $(INSTALL_ROOT)$(bindir)/php-milter diff --git a/sapi/milter/config.m4 b/sapi/milter/config.m4 index 48c7a5d80..db9c4c5b4 100644 --- a/sapi/milter/config.m4 +++ b/sapi/milter/config.m4 @@ -22,10 +22,10 @@ if test "$PHP_MILTER" != "no"; then SAPI_MILTER_PATH=sapi/milter/php-milter PHP_BUILD_THREAD_SAFE - PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/sapi/milter/Makefile.frag) + PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/sapi/milter/Makefile.frag,$abs_srcdir/sapi/milter,sapi/milter) PHP_SELECT_SAPI(milter, program, php_milter.c getopt.c,,'$(SAPI_MILTER_PATH)') PHP_ADD_LIBRARY_WITH_PATH(milter, $MILTERPATH,) - BUILD_MILTER="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_MILTER_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_MILTER_PATH)" + BUILD_MILTER="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_MILTER_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_MILTER_PATH)" PHP_SUBST(SAPI_MILTER_PATH) PHP_SUBST(BUILD_MILTER) fi diff --git a/sapi/milter/php_milter.c b/sapi/milter/php_milter.c index 432fd806c..4a1170723 100644 --- a/sapi/milter/php_milter.c +++ b/sapi/milter/php_milter.c @@ -525,6 +525,10 @@ static sfsistat mlfi_close(SMFICTX *ctx) int status; TSRMLS_FETCH(); + if (!SG(sapi_started) && SUCCESS != php_request_startup(TSRMLS_C)) { + return ret; + } + /* call userland */ INIT_ZVAL(function_name); ZVAL_STRING(&function_name, "milter_close", 0); @@ -550,7 +554,7 @@ static sfsistat mlfi_close(SMFICTX *ctx) /* {{{ Milter entry struct */ -struct smfiDesc smfilter = { +static struct smfiDesc smfilter = { "php-milter", /* filter name */ SMFI_VERSION, /* version code -- leave untouched */ 0, /* flags */ @@ -1015,6 +1019,7 @@ int main(int argc, char *argv[]) tsrm_startup(1, 1, 0, NULL); + tsrm_ls = ts_resource(0); sapi_startup(&milter_sapi_module); while ((c=ap_php_getopt(argc, argv, OPTSTRING))!=-1) { @@ -1032,7 +1037,6 @@ int main(int argc, char *argv[]) milter_sapi_module.executable_location = argv[0]; - tsrm_ls = ts_resource(0); sapi_module.startup(&milter_sapi_module); diff --git a/win32/build/Makefile b/win32/build/Makefile index e2d62545b..53cb52ada 100644 --- a/win32/build/Makefile +++ b/win32/build/Makefile @@ -183,7 +183,7 @@ msi-installer: dist # need to redirect, since INSTALL is a file in the root... install: really-install install-sdk -build-lib: +build-lib: build-ext-libs @if not exist $(BUILD_DIR_DEV)\lib mkdir $(BUILD_DIR_DEV)\lib >nul @copy $(BUILD_DIR)\$(PHPLIB) $(BUILD_DIR_DEV)\lib /y >nul diff --git a/win32/build/Makefile.phpize b/win32/build/Makefile.phpize index 17cfc90fb..1f92f7716 100644 --- a/win32/build/Makefile.phpize +++ b/win32/build/Makefile.phpize @@ -5,10 +5,8 @@ MT="$(MT)" PHPSDK_DIR=$(PHP_DIR)
PHPLIB=$(PHPSDK_DIR)\lib\$(PHPLIB)
-LDFLAGS=/libpath:"$(PHPSDK_DIR)\lib\;$(PHPSDK_DIR)"
-
-CFLAGS=/nologo /FD $(BASE_INCLUDES) /D _WINDOWS /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D_USE_32BIT_TIME_T=1 /D ZEND_WIN32_FORCE_INLINE /GF /D ZEND_DEBUG=0 /D ZTS=1 /D FD_SETSIZE=256
-CFLAGS_PHP=/D _USRDLL /D PHP5DLLTS_EXPORTS /D PHP_EXPORTS /D TSRM_EXPORTS /D SAPI_EXPORTS /D WINVER=0x500 /D COMPILE_DL_AJAXMIN
+LDFLAGS=$(LDFLAGS) /libpath:"$(PHPSDK_DIR)\lib\;$(PHPSDK_DIR)"
+BUILD_DIR_DEV=$(PHPSDK_DIR)
all: $(EXT_TARGETS) $(PECL_TARGETS)
@@ -36,3 +34,5 @@ _VC_MANIFEST_EMBED_EXE= if exist $@.manifest $(MT) -nologo -manifest $@.manifest _VC_MANIFEST_EMBED_DLL= if exist $@.manifest $(MT) -nologo -manifest $@.manifest -outputresource:$@;2
!endif
+install: build-headers build-bins
+
diff --git a/win32/build/config.w32.phpize.in b/win32/build/config.w32.phpize.in index b8bf45ea5..a544aac85 100644 --- a/win32/build/config.w32.phpize.in +++ b/win32/build/config.w32.phpize.in @@ -105,6 +105,11 @@ if (PHP_DEBUG == "yes" && PHP_DEBUG_PACK == "yes") { ERROR("Use of both --enable-debug and --enable-debug-pack not allowed.");
}
+if (PHP_PREFIX == '') {
+ PHP_PREFIX = "C:\\php";
+ if (PHP_DEBUG == "yes")
+ PHP_PREFIX += "\\debug";
+}
DEFINE('PHP_PREFIX', PHP_PREFIX);
DEFINE("BASE_INCLUDES", "/I " + PHP_DIR + "/include /I " + PHP_DIR + "/include/main /I " + PHP_DIR + "/include/Zend /I " + PHP_DIR + "/include/TSRM /I " + PHP_DIR + "/include/ext ");
diff --git a/win32/build/confutils.js b/win32/build/confutils.js index 490f86457..8da760406 100644 --- a/win32/build/confutils.js +++ b/win32/build/confutils.js @@ -1022,6 +1022,11 @@ function is_pgo_desired(mod) {
var varname = "PHP_" + mod.toUpperCase() + "_PGO";
+ /* XXX enable PGO in phpize mode */
+ if (MODE_PHPIZE) {
+ return false;
+ }
+
/* don't disable if there's no mention of the varname */
if (eval("typeof " + varname + " == 'undefined'")) {
return true;
@@ -1163,11 +1168,6 @@ function ADD_EXTENSION_DEP(extname, dependson, optional) var dep_present = false;
var dep_shared = false;
- if (MODE_PHPIZE) {
- ext_deps_js = file_get_contents(PHP_DIR + "\\script\\ext_deps.js");
- eval(ext_deps_js);
- }
-
try {
dep_present = eval("PHP_" + DEP);
@@ -1201,9 +1201,14 @@ function ADD_EXTENSION_DEP(extname, dependson, optional) ERROR("static " + extname + " cannot depend on shared " + dependson);
}
- ADD_FLAG("LDFLAGS_" + EXT, "/libpath:$(BUILD_DIR)");
ADD_FLAG("LIBS_" + EXT, "php_" + dependson + ".lib");
- ADD_FLAG("DEPS_" + EXT, "$(BUILD_DIR)\\php_" + dependson + ".lib");
+ if (MODE_PHPIZE) {
+ ADD_FLAG("LDFLAGS_" + EXT, "/libpath:$(BUILD_DIR_DEV)\\lib");
+ ADD_FLAG("DEPS_" + EXT, "$(BUILD_DIR_DEV)\\lib\\php_" + dependson + ".lib");
+ } else {
+ ADD_FLAG("LDFLAGS_" + EXT, "/libpath:$(BUILD_DIR)");
+ ADD_FLAG("DEPS_" + EXT, "$(BUILD_DIR)\\php_" + dependson + ".lib");
+ }
} else {
@@ -1339,6 +1344,9 @@ function EXTENSION(extname, file_list, shared, cflags, dllname, obj_dir) DEFINE('CFLAGS_' + EXT + '_OBJ', '$(CFLAGS_PHP) $(CFLAGS_' + EXT + ')');
}
+ if (MODE_PHPIZE && FSO.FileExists(PHP_DIR + "/include/main/config.pickle.h")) {
+ cflags = "/FI main/config.pickle.h " + cflags;
+ }
ADD_FLAG("CFLAGS_" + EXT, cflags);
if (PHP_DSP != "no") {
@@ -1498,7 +1506,7 @@ function output_as_table(header, ar_out) var min = new Array(l);
var max = new Array(l);
- if (l != ar_out[0].length) {
+ if (!!ar_out[0] && l != ar_out[0].length) {
STDOUT.WriteLine("Invalid header argument, can't output the table " + l + " " + ar_out[0].length );
return;
}
@@ -1636,6 +1644,9 @@ function generate_files() generate_internal_functions();
generate_config_h();
generate_phpize();
+ } else {
+ generate_config_pickle_h();
+ generate_ext_pickle();
}
STDOUT.WriteLine("Done.");
STDOUT.WriteBlankLines(1);
@@ -1648,6 +1659,140 @@ function generate_files() }
}
+function generate_ext_pickle()
+{
+ var content;
+ var DEPS = null;
+ var dest;
+ var deps_lines = new Array();
+
+ var build_var_name = function(name) {
+ return "PHP_" + name.toUpperCase();
+ }
+
+ STDOUT.WriteLine("Generating pickle deps");
+ dest = PHP_DIR + "/script/";
+
+ if (!FSO.FolderExists(dest)) {
+ FSO.CreateFolder(dest);
+ }
+
+ if (FSO.FileExists(dest + "/ext_pickle.js")) {
+ DEPS = FSO.OpenTextFile(dest + "/ext_pickle.js", 1);
+
+ while (!DEPS.AtEndOfStream) {
+ var ln = DEPS.ReadLine();
+ var found = false;
+
+ for (var i in extensions_enabled) {
+ var reg0 = new RegExp(build_var_name(extensions_enabled[i][0]) + "\s*=.+", "g");
+ var reg1 = new RegExp(build_var_name(extensions_enabled[i][0]) + "_SHARED" + "\s*=.+", "g");
+
+ if (ln.match(reg1) || ln.match(reg0)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ deps_lines.push(ln);
+ }
+ }
+ }
+
+ for (var i in extensions_enabled) {
+ deps_lines.push(build_var_name(extensions_enabled[i][0]) + "=true;");
+ deps_lines.push(build_var_name(extensions_enabled[i][0]) + "_SHARED=" + (extensions_enabled[i][1] == 'shared' ? 'true' : 'false') + ";");
+ }
+
+ if (!!DEPS) {
+ DEPS.Close();
+ DEPS = null;
+ }
+
+ /* Replace the ext_pickle.js with the new content */
+ DEPS = FSO.CreateTextFile(dest + "/ext_pickle.js", true);
+
+ for (var j in deps_lines) {
+ DEPS.WriteLine(deps_lines[j]);
+ }
+
+ DEPS.Close();
+}
+
+function generate_config_pickle_h()
+{
+ var outfile = null;
+ var lines = new Array();
+ var keys = (new VBArray(configure_hdr.Keys())).toArray();
+ dest = PHP_DIR + "/include/main";
+
+ var ignore_key = function(key) {
+ var ignores = [ "CONFIGURE_COMMAND", "PHP_COMPILER_ID", "COMPILER", "ARCHITECTURE", "HAVE_STRNLEN", "PHP_DIR" ];
+
+ for (var k in ignores) {
+ if (ignores[k] == key) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+
+ STDOUT.WriteLine("Generating main/config.pickle.h");
+
+ if (FSO.FileExists(dest + "/config.pickle.h")) {
+ outfile = FSO.OpenTextFile(dest + "/config.pickle.h", 1);
+
+ while (!outfile.AtEndOfStream) {
+ var found = false;
+ var ln = outfile.ReadLine();
+
+ for (var i in keys) {
+ var reg = new RegExp("#define[\s ]+" + keys[i] + "[\s ]*.*", "g");
+
+ if (ln.match(reg)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ lines.push(ln);
+ }
+ }
+ }
+
+ for (var i in keys) {
+ var item = configure_hdr.Item(keys[i]);
+
+ if (ignore_key(keys[i])) {
+ continue;
+ }
+
+ /* XXX fix comment handling */
+ /*if (!lines[j].match(/^#define.+/g)) {
+ continue;
+ }*/
+
+ lines.push("#define " + keys[i] + " " + item[0]);
+ }
+
+ if (outfile) {
+ outfile.Close();
+ outfile = null;
+ }
+
+ outfile = FSO.CreateTextFile(dest + "/config.pickle.h", true);
+
+ for (var k in lines) {
+ outfile.WriteLine(lines[k]);
+ }
+
+ outfile.Close();
+}
+
function generate_config_h()
{
var infile, outfile;
@@ -1721,6 +1866,7 @@ function generate_phpize() var MF = FSO.CreateTextFile(dest + "/phpize.js", true);
var DEPS = FSO.CreateTextFile(dest + "/ext_deps.js", true);
+
prefix = get_define("PHP_PREFIX");
prefix = prefix.replace(new RegExp("/", "g"), "\\");
prefix = prefix.replace(new RegExp("\\\\", "g"), "\\\\");
@@ -1800,13 +1946,38 @@ function generate_makefile() }
}
MF.WriteLine(" @for %D in ($(INSTALL_HEADERS_DIR)) do @copy %D*.h $(BUILD_DIR_DEV)\\include\\%D /y >nul");
+ if (MODE_PHPIZE) {
+ MF.WriteBlankLines(1);
+ MF.WriteLine("build-bins:");
+ for (var i in extensions_enabled) {
+ var lib = "php_" + extensions_enabled[i][0] + ".lib";
+ var dll = "php_" + extensions_enabled[i][0] + ".dll";
+ MF.WriteLine(" @copy $(BUILD_DIR)\\" + lib + " $(BUILD_DIR_DEV)\\lib");
+ MF.WriteLine(" @copy $(BUILD_DIR)\\" + dll + " $(PHP_PREFIX)");
+ }
+ } else {
+ MF.WriteBlankLines(1);
+ MF.WriteLine("build-ext-libs:");
+ MF.WriteLine(" @if not exist $(BUILD_DIR_DEV)\\lib mkdir $(BUILD_DIR_DEV)\\lib >nul");
+ for (var i in extensions_enabled) {
+ var lib;
+
+ lib = "php_" + extensions_enabled[i][0] + "*.lib";
+
+ if ('shared' == extensions_enabled[i][1]) {
+ MF.WriteLine(" @if exist $(BUILD_DIR)\\" + lib + " copy $(BUILD_DIR)\\" + lib + " $(BUILD_DIR_DEV)\\lib");
+ }
+ }
+ }
TF.Close();
MF.WriteBlankLines(2);
MFO.Close();
TF = FSO.OpenTextFile("Makefile.objects", 1);
- MF.Write(TF.ReadAll());
+ if (!TF.AtEndOfStream) {
+ MF.Write(TF.ReadAll());
+ }
TF.Close();
MF.Close();
diff --git a/win32/build/phpize.js.in b/win32/build/phpize.js.in index 4813ec0b5..c99dece61 100644 --- a/win32/build/phpize.js.in +++ b/win32/build/phpize.js.in @@ -40,9 +40,13 @@ function ERROR(msg) function file_get_contents(filename)
{
+ var t = "";
var F = FSO.OpenTextFile(filename, 1);
- var t = F.ReadAll();
- F.Close();
+
+ if (!F.AtEndOfStream) {
+ t = F.ReadAll();
+ F.Close();
+ }
return t;
}
@@ -208,6 +212,12 @@ STDOUT.WriteLine(PHP_DIR); C.WriteLine("/* This file automatically generated from script/confutils.js */");
C.WriteLine("var MODE_PHPIZE = true;");
C.WriteLine("var PHP_DIR = " + '"' + PHP_DIR.replace(new RegExp('(["\\\\])', "g"), '\\$1') + '"');
+C.WriteLine("var PHP_PREFIX = " + '"' + PHP_PREFIX.replace(new RegExp('(["\\\\])', "g"), '\\$1') + '"');
+
+C.Write(file_get_contents(PHP_DIR + "//script//ext_deps.js"));
+if (FSO.FileExists(PHP_DIR + "/script/ext_pickle.js")) {
+ C.Write(file_get_contents(PHP_DIR + "//script//ext_pickle.js"));
+}
C.Write(file_get_contents(PHP_DIR + "/script/confutils.js"));
C.Write(file_get_contents(PHP_DIR + "/script/config.phpize.js"));
|
