From 2b873f1b574e77d2790232351142d30c85cc816f Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Fri, 6 Feb 2009 10:19:16 +0000 Subject: [PATCH] - config parser changed. Gives some syntax errors closer to where they occurred. Does not enforce a space after keyword anymore. Does not allow literal newlines inside quoted strings anymore. git-svn-id: file:///svn/unbound/trunk@1460 be551aaa-1e26-0410-a405-d3ace91eadb9 --- doc/Changelog | 3 + util/configlexer.c | 1996 +++++++++++++++++++++--------------------- util/configlexer.lex | 247 +++--- 3 files changed, 1158 insertions(+), 1088 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index 6c1602533..1c7deee71 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -3,6 +3,9 @@ - iana portlist updated. - fixup EOL in include directive (reported by Paul Wouters). You can no longer specify newlines in the names of included files. + - config parser changed. Gives some syntax errors closer to where they + occurred. Does not enforce a space after keyword anymore. + Does not allow literal newlines inside quoted strings anymore. 5 February 2009: Wouter - ldns 1.5.0 rc as tarball included. diff --git a/util/configlexer.c b/util/configlexer.c index e2d5203bc..392bbcb53 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -361,8 +361,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 111 -#define YY_END_OF_BUFFER 112 +#define YY_NUM_RULES 113 +#define YY_END_OF_BUFFER 114 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -370,121 +370,123 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1025] = +static yyconst flex_int16_t yy_accept[1046] = { 0, 1, 1, 95, 95, 99, 99, 103, 103, 107, 107, - 112, 110, 1, 93, 94, 2, 98, 111, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 95, 96, 111, - 97, 111, 99, 100, 101, 111, 106, 103, 104, 105, - 111, 107, 108, 109, 111, 110, 0, 1, 2, 2, - 2, 2, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 95, 0, + 1, 1, 114, 111, 1, 93, 93, 112, 111, 112, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 95, + 96, 97, 113, 99, 100, 101, 113, 106, 103, 104, + 105, 113, 113, 107, 108, 109, 113, 110, 1, 94, + 110, 98, 113, 110, 111, 0, 1, 0, 111, 0, + 2, 0, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 99, 0, 106, 0, 103, 107, 0, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 111, 111, 111, 111, 111, 111, 111, 111, 95, 0, + 99, 0, 106, 0, 103, 107, 0, 110, 0, 110, + 0, 110, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 110, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 50, 110, 110, 110, 110, 110, 6, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 110, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 50, 111, + 111, 111, 111, 111, 6, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 110, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 110, 110, 110, 110, 110, 110, 110, 110, 20, 110, - 110, 110, 110, 12, 13, 110, 15, 14, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 3, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 102, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 23, 110, 110, 110, 110, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 110, 111, 111, 20, 111, 111, + 111, 111, 12, 13, 111, 15, 14, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 3, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 110, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 110, 110, 110, 24, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 63, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 62, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 21, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 111, 111, 111, 111, 111, 102, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 23, 111, 111, 111, 111, + 111, 111, 111, 24, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 63, 102, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 62, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 22, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 17, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 51, 52, 110, 49, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 5, 110, - 110, 110, 110, 110, 110, 110, 110, 65, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 80, - 79, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 111, 111, 111, 111, 111, 111, 111, 21, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 22, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 17, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 51, 52, 111, 49, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 5, + 111, 111, 111, 111, 111, 111, 111, 111, 65, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 110, 110, 110, 110, 25, 110, 110, 110, 110, 53, - 110, 110, 110, 110, 110, 78, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 42, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 4, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 88, 110, 16, 110, - 110, 55, 56, 54, 110, 110, 110, 110, 110, 61, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 80, 79, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 25, 111, 111, 111, 111, + 53, 111, 111, 111, 111, 111, 78, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 42, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 4, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 69, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 31, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 60, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 64, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 71, 110, 110, 110, 110, 59, 110, 86, 110, 110, + 111, 111, 111, 111, 111, 111, 111, 88, 111, 16, + 111, 111, 55, 56, 54, 111, 111, 111, 111, 111, + 61, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 69, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 31, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 60, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 64, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 32, 33, 110, 38, 74, 110, 81, 110, - 27, 110, 76, 110, 110, 110, 110, 110, 7, 110, - 48, 85, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 66, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 75, 26, 28, 110, 110, 110, 110, - 110, 47, 110, 110, 110, 89, 110, 110, 110, 110, - 110, 110, 45, 110, 110, 110, 110, 110, 110, 91, - 110, 110, 110, 110, 110, 110, 110, 11, 110, 110, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 71, 111, 111, 111, 111, 59, 111, 86, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 32, 33, 111, 38, 74, 111, 81, + 111, 27, 111, 76, 111, 111, 111, 111, 111, 7, + 111, 48, 85, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 66, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 75, 26, 28, 111, 111, 111, + 111, 111, 47, 111, 111, 111, 89, 111, 111, 111, - 110, 110, 110, 110, 10, 110, 110, 29, 110, 90, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 92, 87, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 34, 110, 110, 110, 110, 110, 30, 110, 110, - 110, 67, 68, 110, 110, 110, 70, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 18, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 84, 110, 110, 110, 110, 110, 110, 19, 110, - 9, 110, 110, 82, 39, 110, 110, 110, 73, 57, - 110, 110, 41, 44, 40, 110, 35, 110, 8, 110, + 111, 111, 111, 45, 111, 111, 111, 111, 111, 111, + 91, 111, 111, 111, 111, 111, 111, 111, 11, 111, + 111, 111, 111, 111, 111, 10, 111, 111, 29, 111, + 90, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 92, 87, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 34, 111, 111, 111, 111, 111, 30, 111, + 111, 111, 67, 68, 111, 111, 111, 70, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 18, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 84, 111, 111, 111, 111, 111, 111, 19, - 110, 72, 110, 110, 110, 36, 110, 83, 110, 110, - 58, 43, 37, 110, 110, 110, 110, 46, 110, 110, - 110, 110, 77, 0 + 111, 9, 111, 111, 82, 39, 111, 111, 111, 73, + 57, 111, 111, 41, 44, 40, 111, 35, 111, 8, + 111, 111, 72, 111, 111, 111, 36, 111, 83, 111, + 111, 58, 43, 37, 111, 111, 111, 111, 46, 111, + 111, 111, 111, 77, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -521,724 +523,732 @@ static yyconst flex_int32_t yy_ec[256] = static yyconst flex_int32_t yy_meta[40] = { 0, - 1, 2, 3, 4, 5, 1, 6, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 3, 3, 4, 1, 5, 1, 1, 1, + 1, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[1036] = +static yyconst flex_int16_t yy_base[1060] = { 0, 0, 0, 37, 40, 44, 51, 63, 75, 56, 68, - 2098, 2084, 50, 2099, 2099, 82, 2099, 89, 33, 84, - 79, 62, 72, 89, 93, 95, 96, 100, 102, 103, - 49, 105, 111, 113, 127, 122, 130, 2083, 2099, 2099, - 2099, 146, 2082, 2099, 2099, 115, 2081, 2091, 2099, 2099, - 155, 2079, 2099, 2099, 148, 2078, 159, 163, 0, 166, - 0, 0, 159, 161, 125, 154, 163, 112, 170, 167, - 171, 172, 169, 174, 177, 175, 176, 185, 178, 184, - 119, 186, 195, 196, 198, 199, 200, 205, 204, 203, - 206, 210, 207, 212, 213, 215, 214, 221, 2077, 236, + 87, 108, 2026, 2012, 50, 2115, 2115, 2115, 129, 94, + 33, 124, 94, 49, 74, 61, 91, 92, 110, 111, + 112, 133, 50, 135, 137, 136, 145, 143, 159, 2010, + 2115, 2115, 122, 2009, 2115, 2115, 157, 2008, 2018, 2115, + 2115, 2115, 176, 1873, 2115, 2115, 180, 1729, 180, 2115, + 185, 2115, 189, 90, 1646, 195, 199, 1586, 206, 1428, + 2115, 1276, 158, 190, 122, 116, 191, 182, 207, 199, + 203, 208, 210, 211, 212, 147, 213, 217, 223, 222, + 228, 230, 231, 225, 235, 233, 234, 236, 240, 242, - 2076, 238, 2075, 246, 2085, 2073, 250, 243, 244, 230, - 234, 246, 255, 256, 253, 249, 257, 259, 266, 263, - 267, 268, 262, 274, 283, 281, 271, 291, 288, 294, - 295, 296, 298, 279, 297, 300, 301, 302, 305, 306, - 308, 309, 311, 312, 322, 323, 329, 314, 320, 324, - 328, 332, 336, 341, 61, 334, 344, 350, 338, 355, - 353, 362, 343, 345, 351, 359, 361, 365, 367, 368, - 369, 371, 372, 382, 373, 384, 385, 386, 388, 389, - 391, 397, 393, 394, 396, 403, 402, 406, 408, 409, - 410, 429, 415, 414, 416, 425, 417, 418, 419, 427, + 246, 247, 252, 250, 253, 254, 72, 256, 1212, 266, + 1161, 269, 764, 286, 752, 374, 274, 307, 290, 296, + 211, 269, 262, 283, 289, 273, 292, 299, 305, 295, + 298, 302, 303, 301, 312, 310, 311, 313, 322, 329, + 331, 318, 340, 336, 343, 347, 344, 346, 334, 323, + 348, 349, 350, 353, 356, 357, 358, 360, 361, 371, + 372, 368, 320, 364, 373, 377, 380, 381, 385, 390, + 388, 382, 393, 395, 394, 400, 402, 410, 403, 406, + 409, 411, 413, 414, 415, 416, 420, 421, 432, 425, + 436, 430, 437, 440, 442, 443, 438, 451, 445, 448, - 442, 451, 434, 436, 440, 446, 453, 455, 457, 458, - 459, 461, 465, 462, 472, 473, 480, 464, 478, 481, - 484, 2072, 486, 482, 488, 489, 492, 2071, 490, 494, - 493, 500, 491, 497, 505, 507, 517, 508, 514, 511, - 518, 520, 525, 523, 524, 529, 526, 532, 538, 530, - 540, 541, 544, 548, 549, 555, 557, 563, 561, 565, - 566, 568, 574, 573, 570, 567, 576, 578, 582, 579, - 588, 586, 591, 593, 601, 597, 599, 604, 600, 606, - 608, 609, 610, 616, 612, 620, 630, 613, 627, 619, - 618, 626, 637, 638, 640, 642, 635, 643, 645, 646, + 454, 460, 456, 457, 459, 464, 462, 484, 466, 469, + 468, 471, 475, 472, 479, 482, 474, 480, 506, 491, + 493, 496, 497, 495, 505, 507, 508, 510, 515, 523, + 520, 522, 530, 533, 525, 534, 521, 535, 2115, 540, + 532, 538, 543, 544, 2115, 545, 549, 547, 562, 548, + 550, 559, 551, 563, 561, 572, 564, 576, 578, 570, + 579, 574, 583, 580, 586, 587, 595, 584, 603, 592, + 594, 605, 600, 607, 611, 617, 615, 619, 616, 620, + 627, 625, 623, 626, 630, 631, 636, 632, 642, 638, + 643, 649, 655, 634, 653, 657, 658, 652, 651, 659, - 649, 650, 652, 648, 656, 659, 660, 667, 2070, 669, - 661, 670, 671, 2069, 2068, 421, 2067, 2066, 672, 680, - 687, 677, 674, 683, 685, 681, 689, 695, 696, 698, - 693, 703, 714, 702, 719, 704, 716, 712, 721, 709, - 723, 724, 726, 735, 733, 732, 737, 739, 2065, 734, - 740, 741, 745, 747, 749, 748, 756, 753, 752, 758, - 759, 763, 765, 769, 767, 768, 773, 775, 776, 223, - 794, 777, 780, 778, 779, 787, 788, 790, 786, 806, - 808, 801, 811, 812, 816, 2064, 822, 818, 819, 820, - 823, 826, 824, 827, 830, 2063, 834, 832, 836, 840, + 661, 667, 668, 671, 680, 672, 678, 673, 676, 681, + 689, 685, 683, 690, 691, 693, 697, 698, 699, 701, + 703, 700, 702, 709, 714, 713, 720, 2115, 722, 715, + 724, 725, 2115, 2115, 726, 2115, 2115, 727, 734, 744, + 730, 728, 736, 738, 742, 752, 739, 757, 747, 745, + 759, 768, 755, 772, 773, 760, 774, 775, 777, 779, + 778, 781, 791, 787, 788, 792, 794, 2115, 789, 796, + 799, 801, 803, 806, 807, 809, 811, 808, 813, 814, + 816, 822, 826, 820, 828, 824, 831, 833, 834, 835, + 860, 836, 839, 842, 843, 845, 847, 852, 846, 850, - 839, 842, 851, 2062, 852, 850, 854, 855, 857, 859, - 860, 861, 866, 867, 868, 870, 869, 871, 881, 883, - 877, 885, 887, 888, 893, 890, 891, 894, 2061, 895, - 901, 898, 897, 899, 905, 907, 915, 912, 916, 918, - 917, 920, 926, 927, 921, 928, 929, 931, 933, 932, - 934, 2060, 939, 938, 935, 945, 959, 944, 956, 960, - 962, 963, 964, 970, 971, 968, 972, 969, 975, 974, - 980, 981, 984, 986, 988, 990, 996, 998, 1001, 1003, - 991, 999, 1005, 1008, 1012, 1014, 2059, 1020, 1022, 1024, - 1016, 1023, 1028, 1029, 1030, 1033, 1031, 1034, 1035, 1037, + 857, 867, 868, 853, 878, 2115, 879, 880, 870, 881, + 885, 884, 886, 887, 888, 2115, 895, 892, 896, 898, + 899, 904, 911, 2115, 912, 900, 909, 914, 918, 919, + 922, 920, 921, 926, 927, 928, 931, 935, 942, 945, + 936, 944, 930, 947, 952, 950, 953, 954, 2115, 149, + 955, 963, 959, 956, 957, 960, 966, 973, 967, 974, + 975, 976, 978, 977, 984, 986, 987, 988, 990, 989, + 991, 993, 2115, 998, 1001, 994, 1010, 1018, 1003, 1024, + 1020, 1022, 1023, 1007, 1031, 1033, 1029, 1032, 1030, 1038, + 1035, 1040, 1041, 1043, 1045, 1047, 1049, 1053, 1056, 1057, - 2058, 1041, 1038, 1039, 1043, 1044, 1046, 1045, 1047, 1053, - 1061, 1062, 1052, 1069, 1056, 1072, 1074, 1080, 1081, 1082, - 2057, 1084, 1073, 1091, 1088, 1094, 1101, 1085, 1095, 1097, - 1098, 1099, 1102, 1103, 1105, 1107, 1108, 1109, 1120, 1110, - 1112, 1127, 1130, 2056, 2055, 1134, 2054, 1128, 1124, 1126, - 1135, 1137, 1142, 1136, 1143, 1138, 1146, 1145, 2053, 1147, - 1148, 1153, 550, 1154, 1160, 1157, 1161, 2052, 1158, 1162, - 1169, 1166, 1171, 1174, 1175, 1182, 1178, 1172, 1176, 1185, - 1186, 1188, 1194, 1192, 1193, 1195, 1199, 1197, 1202, 2051, - 2050, 1198, 1203, 1208, 1210, 1226, 1224, 1211, 1215, 1225, + 1059, 1061, 1065, 1064, 1066, 1070, 1067, 2115, 1080, 1082, + 1083, 1079, 1071, 1086, 1087, 1089, 1092, 1093, 1091, 1095, + 1096, 2115, 1102, 1098, 1099, 1103, 1100, 1106, 1105, 1108, + 1113, 1115, 1116, 1112, 1126, 1128, 1129, 1131, 1137, 1138, + 1139, 2115, 1141, 1134, 1149, 1152, 1154, 1147, 1145, 1155, + 1156, 1157, 1158, 1159, 1162, 1165, 1163, 1168, 1169, 1171, + 1173, 1179, 1187, 1188, 2115, 2115, 1185, 2115, 997, 1186, + 1190, 1191, 1192, 1194, 1197, 1202, 1195, 1200, 1205, 2115, + 1198, 1208, 1209, 417, 1213, 1219, 1210, 1220, 2115, 1222, + 1211, 1231, 1221, 1223, 1233, 1235, 1242, 1244, 1234, 1225, - 1227, 1229, 1232, 1230, 2049, 1239, 1240, 1236, 1246, 2048, - 1237, 1238, 1244, 1250, 1251, 2047, 1252, 1253, 1254, 1260, - 1258, 1261, 1262, 1273, 1270, 1271, 1275, 1278, 1279, 1284, - 1285, 1286, 1291, 1293, 1295, 1296, 2046, 1302, 1287, 1303, - 1300, 1308, 1309, 1301, 1310, 1311, 1312, 1314, 1316, 1317, - 1319, 1321, 1324, 1322, 1326, 1323, 1329, 2045, 1336, 1343, - 1334, 1337, 1346, 1347, 1340, 1350, 1352, 1353, 1357, 1359, - 1365, 1368, 1366, 1364, 1375, 1371, 1377, 1372, 1379, 1380, - 1382, 1385, 1386, 1388, 1389, 1387, 2044, 1391, 2043, 1398, - 1400, 2042, 2041, 2040, 1406, 1390, 1404, 1411, 1415, 2039, + 1237, 1246, 1248, 1255, 1247, 1251, 1253, 1254, 1256, 1259, + 2115, 2115, 1263, 1258, 1264, 1270, 1283, 1281, 1262, 1284, + 1285, 1286, 1287, 1288, 1290, 2115, 1296, 1298, 1295, 1304, + 2115, 1294, 1292, 1299, 1306, 1309, 2115, 1311, 1312, 1314, + 1315, 1317, 1321, 1323, 1329, 1325, 1328, 1332, 1334, 1330, + 1341, 1347, 1343, 1345, 1349, 1351, 1352, 2115, 1358, 1354, + 1361, 1357, 1360, 1367, 1364, 1365, 1366, 1368, 1369, 1370, + 1373, 1371, 1377, 1380, 1375, 1392, 1379, 1381, 2115, 1394, + 1400, 1387, 1402, 1398, 1404, 1406, 1408, 1410, 1411, 1412, + 1414, 1422, 1424, 1430, 1426, 1434, 1431, 1432, 1415, 1442, - 1408, 1416, 1412, 1418, 1419, 1420, 1421, 1422, 1424, 1423, - 1426, 1435, 1427, 1438, 1437, 1440, 1441, 1447, 1448, 1454, - 1450, 1451, 1452, 1457, 1462, 1458, 1460, 1463, 1459, 1461, - 1475, 2038, 1478, 1464, 1473, 1486, 1483, 1480, 1487, 1488, - 1495, 2037, 1496, 1498, 1500, 1490, 1503, 1506, 1504, 1507, - 1509, 1511, 1512, 1513, 2036, 1514, 1516, 1518, 1520, 1523, - 1536, 1525, 1540, 1542, 1527, 1544, 2035, 1545, 1548, 1530, - 1552, 1515, 1553, 1554, 1555, 1561, 1558, 1563, 1565, 1566, - 1567, 1569, 1570, 1572, 1573, 1574, 1576, 1579, 1587, 1580, - 2034, 1583, 1586, 1590, 1599, 2033, 1596, 2032, 1597, 1601, + 1435, 1439, 1445, 1441, 1448, 1446, 1449, 2115, 1450, 2115, + 1454, 1456, 2115, 2115, 2115, 1464, 1460, 1467, 1461, 1470, + 2115, 1471, 1472, 1474, 1475, 1476, 1478, 1479, 1480, 1481, + 1482, 1483, 1493, 1485, 1497, 1496, 1499, 1503, 1489, 1505, + 1514, 1510, 1512, 1506, 1516, 1517, 1513, 1518, 1519, 1521, + 1523, 1527, 2115, 1534, 1524, 1535, 1537, 1538, 1542, 1546, + 1543, 1552, 2115, 1545, 1556, 1557, 1553, 1559, 1562, 1560, + 1563, 1567, 1568, 1569, 1570, 2115, 1571, 1572, 1577, 1578, + 1584, 1588, 1580, 1595, 1597, 1573, 1599, 2115, 1600, 1602, + 1603, 1607, 1608, 1604, 1609, 1613, 1616, 1611, 1618, 1620, - 1605, 1598, 1607, 1609, 1611, 1612, 1618, 1614, 1616, 1619, - 1615, 1625, 2031, 2030, 1621, 2029, 2028, 1634, 2027, 1636, - 2026, 1638, 2025, 1644, 1640, 1626, 1628, 1643, 2024, 1646, - 2023, 2022, 1647, 1649, 1653, 1655, 1656, 1657, 1659, 1660, - 1661, 1662, 1664, 1665, 1666, 1667, 1670, 1676, 1679, 1678, - 2021, 1680, 1685, 1688, 1689, 1690, 1693, 1691, 1695, 1701, - 1699, 1700, 1702, 2017, 2013, 2012, 1703, 1712, 1705, 1706, - 1711, 2011, 1717, 1713, 1725, 2007, 1726, 1718, 1728, 1730, - 1731, 1733, 2006, 1734, 1738, 1739, 1742, 1746, 1748, 2002, - 1750, 1751, 1753, 1752, 1758, 1759, 1762, 2001, 1754, 1764, + 1621, 1623, 1625, 1627, 1628, 1631, 1633, 1634, 1635, 1645, + 1638, 2115, 1639, 1641, 1651, 1658, 2115, 1654, 2115, 1657, + 1656, 1663, 1664, 1667, 1655, 1665, 1669, 1676, 1672, 1673, + 1677, 1679, 1681, 2115, 2115, 1690, 2115, 2115, 1693, 2115, + 1695, 2115, 1697, 2115, 1703, 1699, 1686, 1684, 1704, 2115, + 1708, 2115, 2115, 1705, 1711, 1712, 1715, 1716, 1701, 1718, + 1720, 1721, 1722, 1724, 1725, 1726, 1727, 1731, 1735, 1736, + 1738, 2115, 1739, 1745, 1749, 1743, 1748, 1751, 1750, 1754, + 1760, 1756, 1759, 1762, 2115, 2115, 2115, 1763, 1765, 1773, + 1764, 1770, 2115, 1775, 1776, 1781, 2115, 1784, 1777, 1787, - 1766, 1768, 1770, 1769, 2000, 1772, 1775, 1994, 1780, 1966, - 1776, 1784, 1786, 1791, 1793, 1782, 1787, 1799, 1798, 1802, - 1965, 1964, 1795, 1803, 1804, 1805, 1807, 1808, 1809, 1810, - 1813, 1963, 1815, 1816, 1825, 1822, 1820, 1962, 1827, 1830, - 1831, 1960, 1959, 1832, 1838, 1840, 1958, 1841, 1843, 1844, - 1848, 1845, 1850, 1852, 1853, 1851, 1854, 1864, 1865, 1957, - 1867, 1855, 1857, 1872, 1881, 1868, 1874, 1876, 1883, 1885, - 1878, 1956, 1888, 1890, 1892, 1895, 1898, 1900, 1954, 1901, - 1953, 1905, 1906, 1952, 1951, 1907, 1909, 1912, 1817, 1720, - 1910, 1914, 1669, 1630, 1537, 1920, 1456, 1921, 1264, 1923, + 1786, 1789, 1680, 2115, 1790, 1792, 1793, 1800, 1802, 1804, + 2115, 1806, 1807, 1809, 1808, 1813, 1820, 1814, 2115, 1810, + 1816, 1825, 1818, 1826, 1828, 2115, 1830, 1831, 2115, 1837, + 2115, 1832, 1840, 1842, 1847, 1849, 1838, 1843, 1855, 1854, + 1858, 2115, 2115, 1851, 1859, 1860, 1861, 1863, 1864, 1865, + 1866, 1869, 2115, 1871, 1872, 1881, 1878, 1876, 2115, 1883, + 1886, 1887, 2115, 2115, 1888, 1894, 1896, 2115, 1897, 1899, + 1900, 1904, 1901, 1906, 1908, 1909, 1907, 1910, 1920, 1921, + 2115, 1923, 1911, 1913, 1928, 1937, 1924, 1930, 1932, 1939, + 1941, 1934, 2115, 1944, 1946, 1948, 1951, 1954, 1956, 2115, - 1913, 1204, 1916, 1927, 1932, 1077, 1936, 993, 1929, 1937, - 904, 783, 700, 1939, 1924, 1946, 1933, 628, 1940, 1947, - 1948, 1950, 584, 2099, 1980, 1986, 1992, 1998, 154, 2004, - 2010, 2016, 62, 2021, 2027 + 1957, 2115, 1961, 1962, 2115, 2115, 1963, 1965, 1968, 2115, + 2115, 1966, 1970, 2115, 2115, 2115, 1976, 2115, 1977, 2115, + 1979, 1969, 2115, 1972, 1983, 1988, 2115, 1992, 2115, 1985, + 1993, 2115, 2115, 2115, 1995, 1980, 2002, 1989, 2115, 1996, + 2003, 2004, 2006, 2115, 2115, 2036, 2042, 2048, 2054, 2060, + 94, 2066, 2072, 2078, 2084, 2090, 2096, 2102, 2108 } ; -static yyconst flex_int16_t yy_def[1036] = +static yyconst flex_int16_t yy_def[1060] = { 0, - 1024, 1, 1025, 1025, 1026, 1026, 1027, 1027, 1028, 1028, - 1024, 1029, 1024, 1024, 1024, 1030, 1024, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1031, 1024, 1024, - 1024, 1031, 1032, 1024, 1024, 1032, 1033, 1024, 1024, 1024, - 1033, 1034, 1024, 1024, 1034, 1029, 1029, 1024, 1035, 1030, - 1035, 1030, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1031, 1031, + 1045, 1, 1046, 1046, 1047, 1047, 1048, 1048, 1049, 1049, + 1050, 1050, 1045, 1051, 1045, 1045, 1045, 1045, 1052, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1053, + 1045, 1045, 1053, 1054, 1045, 1045, 1054, 1055, 1045, 1045, + 1045, 1045, 1055, 1056, 1045, 1045, 1056, 1057, 1045, 1045, + 1058, 1045, 1057, 1057, 1051, 1051, 1045, 1059, 1052, 1059, + 1045, 1052, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1032, 1032, 1033, 1033, 1024, 1034, 1034, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1053, 1053, + 1054, 1054, 1055, 1055, 1045, 1056, 1056, 1057, 1057, 1058, + 1058, 1057, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1057, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1057, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, 1051, + 1051, 1051, 1051, 1051, 1045, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1057, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1057, 1051, 1051, 1045, 1051, 1051, + 1051, 1051, 1045, 1045, 1051, 1045, 1045, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1057, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, + 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, 1057, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1045, 1045, 1051, 1045, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1045, 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1051, 1051, 1051, + 1045, 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1045, + 1051, 1051, 1045, 1045, 1045, 1051, 1051, 1051, 1051, 1051, + 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1045, 1051, 1051, 1051, 1051, 1045, 1051, 1045, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1045, 1045, 1051, 1045, 1045, 1051, 1045, + 1051, 1045, 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1045, + 1051, 1045, 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1051, 1051, 1045, 1045, 1045, 1051, 1051, 1051, + 1051, 1051, 1045, 1051, 1051, 1051, 1045, 1051, 1051, 1051, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, + 1051, 1051, 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1051, + 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1045, 1051, + 1051, 1051, 1051, 1051, 1051, 1045, 1051, 1051, 1045, 1051, + 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1045, 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1045, 1051, + 1051, 1051, 1045, 1045, 1051, 1051, 1051, 1045, 1051, 1051, + 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, + 1051, 1051, 1045, 1051, 1051, 1051, 1051, 1051, 1051, 1045, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 0, 1024, 1024, 1024, 1024, 1024, 1024, - 1024, 1024, 1024, 1024, 1024 + 1051, 1045, 1051, 1051, 1045, 1045, 1051, 1051, 1051, 1045, + 1045, 1051, 1051, 1045, 1045, 1045, 1051, 1045, 1051, 1045, + 1051, 1051, 1045, 1051, 1051, 1051, 1045, 1051, 1045, 1051, + 1051, 1045, 1045, 1045, 1051, 1051, 1051, 1051, 1045, 1051, + 1051, 1051, 1051, 1045, 0, 1045, 1045, 1045, 1045, 1045, + 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045 } ; -static yyconst flex_int16_t yy_nxt[2139] = +static yyconst flex_int16_t yy_nxt[2155] = { 0, - 12, 13, 14, 14, 15, 16, 17, 12, 12, 12, - 12, 12, 18, 19, 12, 20, 21, 22, 23, 12, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 12, - 33, 34, 35, 36, 37, 12, 12, 12, 12, 39, - 40, 41, 39, 40, 41, 57, 44, 40, 63, 42, - 45, 58, 42, 44, 40, 59, 46, 45, 53, 53, - 54, 57, 103, 46, 48, 49, 49, 50, 55, 40, - 53, 53, 54, 57, 57, 51, 48, 49, 49, 50, - 55, 40, 84, 61, 57, 61, 61, 51, 61, 202, - 56, 57, 56, 56, 62, 56, 57, 64, 70, 71, + 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, + 14, 18, 20, 21, 14, 22, 23, 24, 25, 14, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 14, + 35, 36, 37, 38, 39, 14, 14, 14, 14, 41, + 41, 42, 41, 41, 42, 66, 45, 45, 73, 43, + 46, 67, 43, 45, 45, 68, 47, 46, 55, 55, + 56, 66, 66, 47, 49, 50, 50, 51, 57, 52, + 55, 55, 56, 66, 82, 53, 49, 50, 50, 51, + 57, 52, 83, 94, 66, 80, 66, 53, 59, 16, + 16, 60, 61, 62, 65, 65, 161, 65, 65, 63, - 67, 57, 72, 68, 65, 57, 69, 57, 57, 74, - 73, 66, 57, 77, 57, 57, 81, 57, 101, 75, - 82, 101, 76, 57, 57, 57, 85, 78, 88, 79, - 91, 57, 86, 80, 57, 87, 83, 57, 89, 57, - 93, 90, 57, 97, 129, 92, 113, 98, 95, 99, - 99, 106, 106, 96, 56, 110, 103, 94, 103, 103, - 56, 103, 56, 56, 58, 56, 57, 61, 59, 61, - 61, 57, 61, 57, 108, 57, 109, 114, 62, 57, - 111, 57, 57, 57, 57, 118, 57, 57, 57, 57, - 57, 119, 120, 112, 127, 121, 57, 57, 57, 115, + 65, 81, 119, 66, 66, 65, 66, 84, 64, 59, + 16, 16, 60, 61, 62, 77, 122, 85, 78, 86, + 63, 79, 66, 66, 66, 109, 109, 87, 66, 64, + 70, 71, 70, 70, 66, 70, 66, 74, 88, 89, + 70, 72, 126, 90, 75, 66, 91, 66, 66, 66, + 92, 76, 125, 101, 98, 66, 95, 66, 103, 66, + 111, 119, 96, 111, 99, 97, 93, 100, 102, 105, + 66, 66, 107, 123, 106, 104, 108, 113, 138, 113, + 113, 67, 113, 116, 116, 68, 70, 71, 70, 70, + 118, 70, 118, 118, 66, 118, 65, 121, 65, 65, - 125, 116, 117, 128, 126, 130, 123, 57, 57, 122, - 57, 57, 57, 124, 133, 57, 57, 57, 57, 57, - 131, 135, 57, 140, 57, 57, 57, 57, 132, 134, - 136, 137, 145, 57, 138, 57, 139, 142, 146, 99, - 99, 101, 57, 141, 101, 143, 57, 103, 144, 103, - 103, 147, 103, 106, 106, 57, 57, 150, 57, 431, - 148, 57, 153, 152, 149, 57, 151, 57, 57, 57, - 159, 57, 154, 161, 57, 57, 162, 155, 57, 57, - 57, 169, 156, 57, 160, 167, 57, 164, 157, 158, - 165, 57, 163, 57, 168, 57, 170, 166, 173, 171, + 67, 65, 66, 66, 68, 124, 65, 70, 71, 70, + 70, 66, 70, 71, 129, 66, 128, 70, 72, 66, + 66, 127, 66, 66, 66, 66, 133, 135, 134, 66, + 136, 130, 140, 131, 66, 66, 141, 66, 132, 142, + 66, 143, 66, 66, 137, 66, 66, 66, 66, 145, + 139, 148, 66, 144, 66, 150, 146, 147, 66, 66, + 155, 151, 66, 149, 66, 66, 66, 152, 66, 109, + 109, 160, 111, 153, 66, 111, 154, 116, 116, 164, + 156, 119, 157, 158, 163, 66, 162, 113, 159, 113, + 113, 118, 113, 118, 118, 66, 118, 70, 71, 70, - 57, 175, 176, 57, 172, 174, 57, 57, 57, 57, - 57, 179, 57, 57, 57, 177, 178, 57, 57, 183, - 57, 57, 186, 57, 57, 189, 57, 181, 187, 190, - 192, 180, 57, 182, 57, 57, 57, 196, 185, 184, - 57, 57, 188, 193, 57, 195, 57, 199, 57, 200, - 57, 197, 191, 57, 201, 57, 57, 57, 198, 204, - 194, 203, 57, 57, 206, 57, 205, 57, 207, 209, - 208, 57, 213, 57, 57, 210, 212, 57, 211, 57, - 57, 57, 216, 57, 57, 57, 220, 221, 223, 215, - 218, 214, 217, 222, 57, 219, 57, 57, 57, 228, + 70, 66, 70, 165, 66, 167, 169, 66, 121, 168, + 66, 66, 175, 66, 66, 66, 166, 66, 177, 119, + 178, 170, 66, 66, 66, 66, 171, 179, 183, 185, + 66, 172, 119, 176, 66, 66, 180, 173, 174, 181, + 182, 66, 186, 66, 211, 184, 66, 189, 66, 187, + 191, 188, 66, 190, 192, 66, 66, 196, 66, 66, + 66, 66, 66, 193, 194, 66, 195, 199, 66, 66, + 66, 202, 66, 66, 205, 197, 66, 203, 206, 208, + 66, 198, 209, 66, 66, 66, 117, 200, 201, 66, + 213, 204, 66, 66, 66, 212, 216, 66, 217, 210, - 57, 57, 229, 57, 231, 57, 57, 227, 57, 57, - 235, 233, 226, 224, 57, 57, 225, 234, 57, 236, - 57, 57, 57, 230, 239, 232, 57, 57, 57, 57, - 57, 57, 250, 57, 238, 248, 241, 57, 237, 57, - 240, 57, 247, 242, 243, 252, 57, 249, 57, 251, - 375, 253, 57, 254, 57, 244, 245, 246, 57, 255, - 256, 257, 261, 57, 259, 57, 258, 57, 260, 57, - 57, 57, 269, 57, 57, 267, 57, 57, 264, 266, - 270, 263, 268, 262, 57, 57, 272, 273, 274, 271, - 57, 265, 57, 57, 57, 275, 57, 277, 57, 278, + 66, 207, 66, 218, 214, 66, 66, 66, 221, 220, + 215, 222, 66, 224, 66, 66, 219, 226, 66, 225, + 223, 66, 66, 66, 230, 66, 66, 66, 66, 66, + 233, 646, 66, 66, 229, 227, 239, 66, 232, 228, + 234, 235, 66, 231, 66, 236, 237, 238, 66, 66, + 66, 240, 66, 245, 66, 66, 246, 66, 248, 241, + 66, 244, 242, 66, 243, 250, 66, 252, 66, 66, + 247, 66, 66, 253, 66, 251, 66, 249, 66, 256, + 119, 66, 268, 66, 66, 255, 66, 66, 258, 254, + 265, 66, 66, 264, 66, 257, 66, 273, 259, 260, - 57, 57, 57, 57, 57, 57, 57, 286, 280, 57, - 281, 284, 57, 285, 276, 279, 282, 57, 289, 57, - 57, 287, 283, 57, 294, 290, 57, 297, 288, 57, - 57, 299, 57, 291, 295, 57, 57, 57, 57, 293, - 296, 57, 57, 292, 57, 307, 304, 300, 298, 301, - 57, 309, 57, 57, 302, 308, 57, 305, 303, 306, - 57, 57, 57, 312, 625, 310, 314, 57, 315, 57, - 316, 311, 317, 57, 313, 57, 318, 57, 57, 57, - 57, 321, 57, 319, 320, 57, 57, 323, 57, 322, - 57, 57, 330, 325, 57, 331, 57, 327, 57, 324, + 272, 266, 267, 66, 269, 66, 270, 66, 66, 66, + 261, 262, 263, 279, 271, 274, 275, 66, 66, 66, + 66, 277, 66, 276, 278, 280, 285, 66, 282, 284, + 287, 281, 66, 66, 66, 66, 286, 66, 288, 289, + 291, 283, 66, 290, 66, 66, 66, 66, 295, 292, + 66, 293, 66, 296, 294, 66, 66, 66, 298, 66, + 66, 66, 66, 66, 299, 297, 302, 303, 300, 304, + 312, 66, 307, 66, 66, 66, 66, 301, 305, 308, + 313, 306, 66, 311, 66, 315, 66, 309, 66, 317, + 66, 66, 66, 314, 319, 66, 66, 310, 66, 119, - 57, 332, 328, 57, 326, 57, 329, 333, 336, 57, - 335, 57, 57, 57, 338, 337, 57, 340, 57, 339, - 57, 57, 57, 345, 57, 57, 343, 344, 57, 334, - 57, 57, 57, 346, 342, 347, 341, 348, 57, 57, - 57, 349, 57, 351, 355, 350, 352, 57, 353, 57, - 57, 356, 57, 354, 57, 57, 357, 57, 57, 358, - 57, 57, 57, 359, 57, 362, 363, 364, 57, 365, - 361, 57, 57, 57, 360, 369, 371, 367, 366, 57, - 370, 57, 57, 57, 57, 368, 57, 377, 376, 57, - 373, 372, 57, 57, 383, 57, 386, 57, 374, 57, + 322, 316, 326, 325, 66, 318, 66, 66, 321, 327, + 320, 323, 66, 324, 328, 66, 329, 66, 333, 66, + 331, 330, 334, 66, 335, 332, 336, 66, 66, 66, + 337, 66, 66, 338, 340, 66, 339, 66, 66, 66, + 342, 341, 66, 66, 66, 349, 66, 344, 66, 350, + 66, 346, 356, 351, 66, 66, 347, 345, 343, 352, + 348, 66, 355, 66, 66, 66, 354, 66, 357, 66, + 66, 66, 358, 66, 364, 359, 362, 361, 363, 66, + 66, 353, 360, 66, 66, 66, 366, 367, 66, 365, + 66, 368, 66, 66, 370, 66, 374, 66, 375, 376, - 387, 57, 388, 378, 384, 57, 379, 57, 57, 390, - 57, 380, 57, 391, 57, 57, 57, 381, 382, 397, - 385, 57, 389, 393, 57, 392, 57, 394, 57, 395, - 396, 57, 399, 57, 398, 57, 57, 404, 57, 401, - 402, 400, 405, 403, 57, 57, 57, 57, 406, 57, - 408, 57, 57, 57, 409, 411, 412, 57, 407, 57, - 57, 57, 410, 418, 57, 57, 414, 416, 57, 419, - 57, 57, 413, 415, 417, 57, 422, 57, 424, 57, - 57, 57, 421, 420, 425, 57, 429, 57, 57, 57, - 57, 57, 57, 427, 441, 57, 423, 426, 57, 57, + 371, 66, 66, 66, 369, 66, 372, 377, 373, 66, + 66, 66, 66, 66, 66, 66, 382, 381, 383, 378, + 384, 66, 380, 386, 379, 66, 119, 66, 389, 391, + 385, 388, 66, 390, 66, 387, 66, 66, 66, 66, + 66, 397, 66, 396, 393, 392, 66, 403, 66, 406, + 66, 66, 394, 115, 66, 395, 66, 66, 404, 66, + 398, 407, 411, 399, 66, 408, 409, 66, 400, 66, + 410, 66, 66, 405, 401, 402, 114, 412, 418, 413, + 66, 414, 415, 416, 66, 66, 66, 66, 417, 66, + 66, 66, 424, 66, 419, 420, 422, 423, 425, 66, - 57, 442, 57, 430, 439, 428, 57, 438, 443, 432, - 446, 433, 440, 57, 437, 434, 445, 435, 57, 447, - 57, 449, 436, 57, 57, 448, 444, 452, 57, 453, - 57, 57, 57, 454, 57, 57, 57, 450, 57, 57, - 457, 459, 57, 451, 57, 456, 57, 458, 57, 463, - 455, 57, 57, 464, 57, 467, 461, 465, 468, 460, - 466, 462, 57, 57, 57, 469, 57, 57, 470, 57, - 473, 57, 57, 57, 474, 476, 475, 471, 57, 57, - 57, 57, 57, 57, 482, 480, 472, 481, 484, 57, - 485, 477, 479, 57, 483, 57, 487, 57, 478, 57, + 66, 66, 426, 66, 66, 428, 66, 421, 66, 429, + 431, 66, 432, 66, 427, 66, 438, 430, 66, 66, + 66, 66, 434, 66, 436, 66, 66, 439, 66, 435, + 433, 442, 66, 437, 66, 444, 66, 441, 66, 440, + 66, 445, 449, 66, 450, 119, 66, 66, 66, 443, + 446, 66, 462, 447, 66, 66, 448, 66, 66, 66, + 463, 451, 66, 468, 66, 66, 459, 464, 460, 66, + 467, 452, 66, 458, 469, 453, 461, 454, 466, 66, + 66, 455, 66, 456, 472, 465, 474, 470, 457, 473, + 66, 66, 66, 66, 471, 475, 66, 66, 66, 66, - 57, 490, 57, 57, 486, 57, 57, 57, 495, 57, - 57, 57, 492, 57, 489, 496, 57, 57, 488, 57, - 491, 494, 499, 497, 57, 498, 501, 57, 57, 57, - 57, 493, 57, 57, 500, 504, 506, 503, 57, 57, - 57, 57, 502, 57, 57, 57, 57, 57, 505, 512, - 57, 57, 509, 507, 508, 515, 57, 57, 517, 511, - 513, 510, 519, 523, 514, 516, 520, 518, 57, 522, - 521, 57, 57, 524, 57, 57, 57, 528, 529, 525, - 57, 57, 57, 57, 57, 530, 57, 57, 531, 526, - 532, 536, 57, 57, 527, 533, 57, 534, 57, 535, + 66, 476, 478, 480, 66, 479, 477, 66, 66, 484, + 66, 66, 66, 485, 482, 486, 66, 488, 489, 481, + 487, 66, 483, 66, 66, 490, 66, 492, 491, 494, + 66, 66, 66, 66, 66, 495, 496, 497, 66, 66, + 66, 493, 66, 66, 501, 502, 503, 66, 66, 505, + 498, 500, 506, 499, 66, 508, 66, 66, 504, 66, + 511, 509, 66, 507, 66, 66, 66, 66, 66, 66, + 516, 66, 66, 510, 513, 66, 517, 520, 66, 66, + 512, 515, 518, 519, 522, 66, 66, 66, 66, 66, + 66, 514, 525, 521, 527, 524, 66, 523, 66, 66, - 57, 537, 57, 57, 540, 57, 538, 544, 57, 545, - 57, 57, 539, 57, 547, 57, 541, 57, 546, 549, - 57, 543, 550, 548, 57, 542, 57, 554, 57, 555, - 552, 556, 57, 553, 57, 57, 57, 557, 551, 559, - 57, 57, 57, 57, 563, 57, 57, 57, 567, 57, - 57, 57, 568, 57, 558, 57, 57, 57, 57, 57, - 572, 560, 561, 562, 57, 57, 564, 566, 57, 570, - 576, 574, 565, 57, 57, 571, 569, 573, 575, 578, - 577, 57, 579, 581, 57, 57, 57, 584, 585, 57, - 580, 583, 57, 57, 57, 586, 57, 57, 589, 591, + 66, 66, 66, 66, 528, 66, 66, 526, 533, 66, + 66, 529, 632, 66, 536, 66, 534, 530, 532, 66, + 531, 538, 66, 535, 537, 541, 539, 540, 543, 542, + 66, 544, 66, 545, 66, 66, 66, 548, 549, 546, + 550, 66, 66, 66, 66, 66, 551, 66, 552, 547, + 66, 553, 66, 66, 557, 66, 554, 66, 555, 66, + 556, 66, 558, 561, 565, 66, 559, 566, 66, 66, + 568, 66, 560, 66, 567, 562, 66, 66, 66, 66, + 564, 571, 66, 66, 563, 570, 574, 575, 573, 576, + 577, 66, 66, 569, 66, 66, 572, 580, 66, 66, - 57, 587, 590, 57, 588, 582, 57, 57, 593, 57, - 57, 57, 592, 57, 57, 57, 594, 57, 601, 57, - 57, 57, 57, 602, 57, 598, 595, 606, 596, 597, - 600, 605, 57, 603, 608, 599, 57, 609, 57, 57, - 57, 604, 57, 611, 607, 610, 57, 57, 57, 57, - 57, 612, 614, 616, 57, 57, 618, 57, 57, 57, - 57, 619, 620, 613, 615, 57, 57, 627, 617, 57, - 57, 626, 57, 57, 57, 630, 621, 622, 57, 629, - 623, 57, 632, 57, 57, 624, 57, 57, 57, 628, - 57, 635, 636, 637, 57, 638, 633, 57, 57, 631, + 578, 66, 579, 66, 66, 66, 584, 66, 66, 588, + 66, 66, 66, 589, 66, 66, 593, 66, 66, 581, + 66, 582, 583, 585, 66, 66, 587, 66, 66, 591, + 597, 595, 586, 599, 598, 592, 590, 594, 66, 596, + 66, 66, 600, 66, 605, 606, 66, 601, 604, 66, + 66, 66, 607, 66, 614, 602, 610, 66, 608, 66, + 611, 66, 603, 612, 66, 609, 66, 66, 66, 66, + 66, 66, 613, 112, 66, 66, 615, 66, 622, 623, + 66, 66, 626, 66, 619, 66, 616, 617, 618, 621, + 627, 66, 620, 624, 629, 630, 631, 66, 66, 66, - 57, 644, 639, 634, 57, 57, 57, 57, 640, 57, - 57, 57, 642, 643, 57, 57, 57, 641, 649, 652, - 57, 650, 57, 57, 645, 646, 648, 57, 647, 654, - 651, 656, 655, 657, 653, 658, 57, 57, 57, 57, - 660, 57, 57, 659, 57, 664, 666, 667, 57, 57, - 57, 57, 57, 662, 668, 661, 57, 671, 57, 663, - 665, 669, 57, 57, 57, 57, 57, 670, 672, 677, - 57, 678, 57, 57, 57, 673, 57, 679, 674, 680, - 683, 675, 57, 57, 676, 57, 682, 57, 681, 687, - 57, 57, 690, 686, 684, 689, 57, 57, 57, 57, + 66, 625, 66, 66, 66, 637, 66, 66, 635, 66, + 66, 628, 66, 633, 66, 639, 641, 66, 640, 636, + 66, 66, 66, 66, 110, 66, 648, 634, 643, 638, + 647, 66, 66, 66, 66, 66, 642, 66, 650, 651, + 644, 645, 649, 66, 653, 66, 66, 66, 652, 66, + 656, 654, 657, 658, 66, 655, 66, 661, 66, 66, + 66, 659, 665, 66, 660, 66, 66, 66, 66, 662, + 66, 66, 663, 664, 66, 66, 66, 670, 71, 666, + 671, 669, 66, 667, 673, 675, 668, 672, 676, 674, + 678, 677, 679, 66, 680, 66, 66, 66, 66, 66, - 688, 685, 692, 57, 693, 57, 694, 57, 57, 696, - 698, 695, 57, 57, 57, 57, 701, 697, 691, 700, - 57, 57, 57, 57, 57, 702, 57, 703, 57, 57, - 710, 57, 704, 57, 57, 57, 57, 699, 57, 715, - 712, 57, 705, 706, 707, 713, 57, 708, 57, 57, - 719, 711, 57, 718, 709, 57, 721, 717, 57, 57, - 714, 716, 57, 722, 57, 57, 720, 724, 723, 57, - 726, 57, 730, 733, 727, 731, 57, 57, 57, 732, - 57, 725, 735, 57, 57, 729, 739, 57, 734, 57, - 728, 57, 57, 737, 57, 736, 742, 57, 57, 57, + 66, 685, 66, 687, 66, 688, 66, 66, 66, 681, + 66, 66, 683, 689, 692, 682, 66, 684, 66, 690, + 686, 66, 693, 66, 66, 691, 66, 66, 698, 66, + 694, 699, 700, 66, 695, 66, 704, 66, 701, 696, + 66, 66, 66, 697, 66, 708, 66, 703, 702, 705, + 707, 709, 710, 66, 711, 66, 713, 66, 706, 66, + 714, 66, 715, 66, 66, 717, 66, 716, 719, 66, + 66, 721, 66, 66, 722, 712, 66, 66, 66, 66, + 66, 66, 66, 66, 718, 66, 731, 66, 723, 66, + 724, 66, 66, 66, 720, 725, 733, 726, 727, 66, - 57, 57, 57, 57, 743, 744, 741, 745, 746, 738, - 57, 748, 57, 751, 740, 747, 57, 753, 57, 752, - 57, 750, 749, 57, 57, 754, 755, 57, 57, 757, - 57, 57, 57, 57, 57, 57, 57, 765, 57, 57, - 756, 764, 759, 760, 761, 758, 767, 57, 762, 57, - 57, 770, 57, 57, 763, 769, 766, 771, 772, 57, - 57, 775, 57, 57, 57, 768, 57, 776, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 773, 778, 782, - 774, 779, 777, 780, 783, 57, 781, 57, 784, 786, - 57, 785, 57, 787, 790, 57, 788, 791, 57, 57, + 728, 734, 729, 732, 66, 736, 66, 740, 730, 738, + 66, 739, 66, 735, 66, 743, 66, 737, 66, 741, + 66, 742, 66, 66, 66, 744, 66, 66, 747, 751, + 71, 752, 748, 745, 66, 753, 66, 754, 66, 746, + 750, 756, 66, 66, 66, 749, 66, 66, 758, 760, + 755, 66, 759, 66, 66, 757, 763, 66, 66, 764, + 66, 66, 66, 762, 766, 765, 66, 769, 66, 761, + 767, 772, 66, 66, 768, 775, 66, 771, 770, 66, + 774, 776, 66, 66, 66, 778, 66, 66, 66, 773, + 66, 66, 66, 66, 66, 66, 786, 66, 785, 780, - 57, 789, 57, 794, 792, 795, 796, 57, 57, 798, - 57, 793, 57, 799, 800, 57, 57, 797, 57, 57, - 801, 57, 802, 57, 57, 57, 57, 57, 57, 809, - 57, 803, 57, 812, 813, 57, 807, 57, 804, 57, - 805, 810, 57, 811, 806, 824, 808, 814, 57, 57, - 815, 816, 57, 817, 57, 819, 57, 57, 818, 821, - 57, 822, 820, 823, 57, 57, 57, 57, 827, 826, - 57, 825, 829, 57, 831, 57, 832, 57, 57, 57, - 834, 57, 57, 828, 57, 57, 57, 836, 57, 830, - 838, 57, 57, 835, 842, 57, 843, 840, 57, 57, + 781, 66, 782, 777, 788, 66, 783, 779, 66, 66, + 791, 66, 784, 787, 790, 66, 792, 66, 66, 794, + 793, 796, 66, 789, 66, 66, 66, 797, 66, 66, + 66, 66, 799, 66, 803, 66, 66, 795, 801, 66, + 800, 802, 804, 798, 805, 808, 66, 66, 812, 66, + 66, 807, 809, 806, 66, 66, 811, 66, 66, 813, + 816, 810, 815, 817, 66, 66, 818, 819, 66, 66, + 820, 66, 66, 814, 66, 66, 822, 821, 823, 66, + 66, 66, 66, 66, 66, 66, 830, 824, 71, 66, + 66, 833, 66, 828, 825, 834, 66, 831, 826, 835, - 841, 839, 57, 846, 833, 837, 847, 845, 57, 57, - 57, 57, 849, 57, 852, 844, 851, 57, 850, 57, - 848, 57, 853, 57, 57, 857, 57, 57, 57, 856, - 57, 57, 858, 57, 863, 861, 860, 57, 57, 862, - 57, 854, 57, 855, 859, 864, 57, 865, 57, 866, - 57, 867, 57, 868, 869, 57, 57, 872, 57, 57, - 871, 57, 870, 874, 873, 57, 876, 57, 57, 57, - 875, 57, 57, 57, 57, 883, 57, 57, 57, 57, - 877, 57, 57, 879, 880, 881, 884, 878, 57, 890, - 57, 57, 57, 888, 882, 887, 889, 57, 892, 886, + 66, 827, 832, 829, 839, 836, 837, 66, 838, 66, + 840, 66, 66, 842, 66, 66, 66, 841, 844, 66, + 66, 66, 846, 66, 847, 66, 848, 850, 66, 852, + 66, 853, 66, 66, 843, 66, 855, 66, 845, 66, + 66, 849, 851, 66, 857, 66, 66, 66, 859, 856, + 66, 66, 863, 66, 864, 861, 862, 66, 66, 854, + 860, 858, 866, 66, 867, 868, 66, 66, 66, 66, + 66, 865, 870, 871, 872, 66, 66, 66, 869, 66, + 873, 66, 874, 878, 66, 66, 877, 875, 66, 66, + 879, 66, 66, 66, 881, 883, 66, 876, 66, 882, - 57, 57, 57, 57, 885, 57, 898, 57, 899, 893, - 891, 57, 57, 57, 57, 57, 905, 57, 57, 894, - 895, 896, 897, 57, 57, 57, 900, 904, 908, 57, - 57, 901, 57, 906, 902, 903, 910, 57, 57, 911, - 57, 907, 57, 57, 909, 57, 57, 914, 915, 913, - 57, 57, 912, 916, 57, 918, 919, 921, 57, 922, - 57, 917, 57, 57, 57, 57, 57, 923, 925, 920, - 57, 57, 928, 926, 57, 924, 57, 932, 57, 927, - 57, 57, 57, 929, 57, 930, 935, 57, 57, 933, - 934, 938, 57, 936, 57, 931, 57, 940, 57, 57, + 937, 880, 66, 884, 885, 66, 886, 66, 887, 66, + 888, 66, 889, 66, 890, 66, 66, 66, 891, 893, + 66, 892, 894, 66, 66, 895, 897, 66, 66, 896, + 66, 899, 66, 66, 66, 904, 66, 66, 66, 66, + 898, 119, 900, 66, 901, 902, 905, 66, 66, 911, + 66, 66, 909, 910, 903, 66, 908, 66, 913, 907, + 66, 66, 66, 66, 906, 919, 66, 920, 66, 912, + 914, 66, 66, 915, 66, 66, 66, 66, 916, 917, + 925, 918, 66, 921, 926, 66, 929, 66, 66, 66, + 922, 927, 931, 66, 923, 924, 66, 932, 66, 66, - 937, 941, 942, 57, 943, 57, 946, 57, 939, 947, - 57, 57, 944, 945, 57, 57, 57, 57, 948, 57, - 57, 57, 57, 950, 953, 57, 949, 57, 57, 57, - 958, 956, 57, 952, 57, 951, 960, 57, 961, 57, - 954, 962, 57, 57, 57, 957, 959, 955, 963, 966, - 57, 967, 57, 57, 964, 57, 57, 57, 969, 972, - 57, 968, 57, 57, 57, 57, 57, 57, 965, 57, - 976, 971, 975, 973, 970, 979, 57, 57, 981, 57, - 57, 974, 980, 984, 57, 978, 57, 982, 57, 977, - 57, 983, 985, 57, 989, 57, 990, 57, 987, 986, + 928, 66, 66, 935, 66, 66, 936, 930, 934, 939, + 940, 933, 66, 942, 66, 943, 66, 938, 66, 66, + 66, 66, 66, 944, 946, 66, 66, 941, 66, 947, + 66, 945, 66, 949, 948, 950, 953, 66, 66, 954, + 66, 951, 66, 66, 66, 956, 955, 952, 959, 66, + 66, 957, 66, 961, 66, 66, 958, 962, 963, 66, + 964, 66, 967, 66, 960, 968, 66, 66, 965, 966, + 66, 66, 66, 66, 969, 66, 66, 66, 66, 971, + 974, 66, 970, 66, 66, 117, 979, 977, 66, 973, + 66, 972, 981, 66, 982, 66, 975, 983, 66, 66, - 57, 993, 57, 994, 57, 992, 995, 57, 988, 991, - 57, 997, 57, 57, 998, 996, 999, 57, 57, 57, - 1002, 57, 57, 1000, 57, 57, 57, 1001, 57, 1003, - 1005, 1006, 57, 57, 1008, 57, 57, 1007, 1011, 57, - 1009, 57, 1004, 1012, 57, 57, 1010, 1013, 57, 57, - 1015, 57, 57, 1014, 1019, 1016, 1017, 1018, 57, 57, - 57, 1023, 57, 57, 57, 57, 57, 1020, 57, 57, - 57, 57, 57, 1021, 57, 57, 57, 57, 57, 1022, - 38, 38, 38, 38, 38, 38, 43, 43, 43, 43, - 43, 43, 47, 47, 47, 47, 47, 47, 52, 52, + 66, 978, 980, 976, 984, 987, 66, 988, 66, 66, + 985, 66, 66, 66, 990, 993, 66, 989, 66, 66, + 66, 66, 66, 66, 986, 66, 997, 992, 996, 994, + 991, 1000, 66, 66, 1002, 66, 66, 995, 1001, 1005, + 66, 999, 66, 1003, 66, 998, 66, 1004, 1006, 66, + 1010, 66, 1011, 66, 1008, 1007, 66, 1014, 66, 1015, + 66, 1013, 1016, 66, 1009, 1012, 66, 1018, 66, 66, + 1019, 1017, 1020, 66, 66, 66, 1023, 66, 66, 1021, + 66, 66, 66, 1022, 66, 1024, 1026, 1027, 66, 66, + 1029, 66, 66, 1028, 1032, 66, 1030, 66, 1025, 1033, - 52, 52, 52, 52, 60, 60, 57, 60, 60, 60, - 99, 99, 57, 57, 57, 99, 101, 101, 57, 57, - 101, 106, 106, 57, 57, 57, 106, 61, 61, 57, - 61, 61, 61, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 107, 105, 104, 102, 100, - 57, 107, 105, 104, 102, 100, 57, 1024, 11, 1024, + 66, 66, 1031, 1034, 66, 66, 1036, 66, 66, 1035, + 1040, 1037, 1038, 1039, 66, 66, 66, 1044, 66, 115, + 114, 112, 110, 1041, 66, 1045, 1045, 1045, 1045, 1042, + 1045, 1045, 1045, 1045, 1045, 1043, 40, 40, 40, 40, + 40, 40, 44, 44, 44, 44, 44, 44, 48, 48, + 48, 48, 48, 48, 54, 54, 54, 54, 54, 54, + 58, 58, 58, 58, 58, 58, 69, 69, 69, 69, + 69, 69, 109, 109, 1045, 1045, 109, 109, 111, 111, + 1045, 111, 1045, 111, 113, 1045, 1045, 1045, 1045, 113, + 116, 116, 1045, 1045, 116, 116, 118, 1045, 1045, 1045, - 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, - 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, - 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, - 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024 + 1045, 118, 120, 120, 120, 120, 120, 120, 70, 70, + 70, 70, 70, 70, 13, 1045, 1045, 1045, 1045, 1045, + 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, + 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, + 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, + 1045, 1045, 1045, 1045 } ; -static yyconst flex_int16_t yy_chk[2139] = +static yyconst flex_int16_t yy_chk[2155] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 3, 3, 4, 4, 4, 19, 5, 5, 19, 3, - 5, 13, 4, 6, 6, 13, 5, 6, 9, 9, - 9, 31, 1033, 6, 7, 7, 7, 7, 9, 7, - 10, 10, 10, 155, 22, 7, 8, 8, 8, 8, - 10, 8, 31, 16, 23, 16, 16, 8, 16, 155, - 18, 21, 18, 18, 16, 18, 20, 20, 22, 23, + 3, 3, 4, 4, 4, 21, 5, 5, 21, 3, + 5, 15, 4, 6, 6, 15, 5, 6, 9, 9, + 9, 24, 33, 6, 7, 7, 7, 7, 9, 7, + 10, 10, 10, 26, 26, 7, 8, 8, 8, 8, + 10, 8, 26, 33, 107, 24, 25, 8, 11, 11, + 11, 11, 11, 11, 1051, 20, 107, 20, 20, 11, - 21, 24, 24, 21, 20, 25, 21, 26, 27, 25, - 24, 20, 28, 27, 29, 30, 30, 32, 46, 25, - 30, 46, 26, 33, 68, 34, 32, 28, 33, 29, - 34, 81, 32, 29, 36, 32, 30, 65, 33, 35, - 35, 33, 37, 37, 81, 34, 68, 37, 36, 42, - 42, 55, 55, 36, 1029, 65, 51, 35, 51, 51, - 57, 51, 57, 57, 58, 57, 66, 60, 58, 60, - 60, 63, 60, 64, 63, 67, 64, 69, 60, 70, - 66, 73, 69, 71, 72, 73, 74, 76, 77, 75, - 79, 74, 75, 67, 79, 75, 80, 78, 82, 70, + 20, 25, 64, 27, 28, 20, 23, 27, 11, 12, + 12, 12, 12, 12, 12, 23, 64, 27, 23, 28, + 12, 23, 29, 30, 31, 43, 43, 29, 76, 12, + 19, 19, 19, 19, 75, 19, 22, 22, 30, 31, + 19, 19, 76, 31, 22, 32, 32, 34, 36, 35, + 32, 22, 75, 36, 35, 38, 34, 37, 37, 86, + 47, 450, 34, 47, 35, 34, 32, 35, 36, 38, + 73, 39, 39, 73, 38, 37, 39, 53, 86, 53, + 53, 59, 53, 57, 57, 59, 61, 61, 61, 61, + 63, 61, 63, 63, 78, 63, 66, 61, 66, 66, - 78, 71, 72, 80, 78, 82, 76, 83, 84, 75, - 85, 86, 87, 77, 85, 90, 89, 88, 91, 93, - 83, 87, 92, 92, 94, 95, 97, 96, 84, 86, - 88, 89, 96, 98, 90, 370, 91, 93, 97, 100, - 100, 102, 110, 92, 102, 94, 111, 104, 95, 104, - 104, 98, 104, 107, 107, 108, 109, 110, 112, 370, - 108, 116, 113, 112, 109, 115, 111, 113, 114, 117, - 115, 118, 114, 117, 123, 120, 118, 114, 119, 121, - 122, 124, 114, 127, 116, 122, 124, 120, 114, 114, - 120, 134, 119, 126, 123, 125, 125, 121, 128, 126, + 67, 66, 74, 77, 67, 74, 66, 69, 69, 69, + 69, 80, 69, 121, 79, 81, 78, 69, 69, 79, + 82, 77, 83, 84, 85, 87, 83, 85, 84, 88, + 85, 80, 88, 81, 90, 89, 88, 94, 82, 89, + 91, 90, 92, 93, 85, 96, 97, 95, 98, 92, + 87, 95, 99, 91, 100, 97, 93, 94, 101, 102, + 102, 98, 104, 96, 103, 105, 106, 99, 108, 110, + 110, 106, 112, 100, 123, 112, 101, 117, 117, 123, + 102, 122, 103, 104, 122, 126, 108, 114, 105, 114, + 114, 119, 114, 119, 119, 124, 119, 120, 120, 120, - 129, 130, 131, 128, 127, 129, 130, 131, 132, 135, - 133, 134, 136, 137, 138, 132, 133, 139, 140, 138, - 141, 142, 141, 143, 144, 144, 148, 136, 142, 145, - 146, 135, 149, 137, 145, 146, 150, 149, 140, 139, - 151, 147, 143, 147, 152, 148, 156, 152, 153, 153, - 159, 150, 145, 154, 154, 163, 157, 164, 151, 157, - 147, 156, 158, 165, 159, 161, 158, 160, 160, 162, - 161, 166, 166, 167, 162, 163, 165, 168, 164, 169, - 170, 171, 169, 172, 173, 175, 173, 173, 175, 168, - 171, 167, 170, 174, 174, 172, 176, 177, 178, 179, + 120, 125, 120, 124, 127, 126, 128, 130, 120, 127, + 131, 128, 130, 134, 132, 133, 125, 129, 132, 118, + 133, 129, 136, 137, 135, 138, 129, 134, 137, 139, + 142, 129, 163, 131, 139, 150, 135, 129, 129, 135, + 136, 140, 140, 141, 163, 138, 149, 143, 144, 141, + 145, 142, 143, 144, 146, 145, 147, 150, 148, 146, + 151, 152, 153, 147, 148, 154, 149, 153, 155, 156, + 157, 156, 158, 159, 159, 151, 164, 157, 160, 161, + 162, 152, 162, 160, 161, 165, 116, 154, 155, 166, + 165, 158, 167, 168, 172, 164, 168, 169, 169, 162, - 179, 180, 180, 181, 182, 183, 184, 178, 185, 182, - 186, 184, 177, 176, 187, 186, 176, 185, 188, 187, - 189, 190, 191, 181, 190, 183, 194, 193, 195, 197, - 198, 199, 196, 316, 189, 194, 191, 196, 188, 200, - 190, 192, 193, 192, 192, 198, 203, 195, 204, 197, - 316, 199, 205, 200, 201, 192, 192, 192, 206, 201, - 202, 202, 206, 202, 204, 207, 203, 208, 205, 209, - 210, 211, 213, 212, 214, 211, 218, 213, 209, 210, - 214, 208, 212, 207, 215, 216, 216, 217, 218, 215, - 219, 209, 217, 220, 224, 219, 221, 221, 223, 223, + 171, 160, 170, 170, 166, 173, 175, 174, 173, 172, + 167, 174, 176, 176, 177, 179, 171, 178, 180, 177, + 175, 181, 178, 182, 182, 183, 184, 185, 186, 584, + 185, 584, 187, 188, 181, 179, 190, 190, 184, 180, + 186, 187, 192, 183, 189, 188, 189, 189, 191, 193, + 197, 191, 194, 195, 195, 196, 196, 199, 198, 192, + 200, 194, 192, 198, 193, 200, 201, 202, 203, 204, + 197, 205, 202, 203, 207, 201, 206, 199, 209, 206, + 211, 210, 213, 212, 214, 205, 217, 213, 207, 204, + 210, 215, 218, 209, 216, 206, 208, 218, 208, 208, - 225, 226, 229, 233, 227, 231, 230, 232, 225, 234, - 226, 230, 232, 231, 220, 224, 227, 235, 235, 236, - 238, 233, 229, 240, 237, 235, 239, 239, 234, 237, - 241, 241, 242, 235, 237, 244, 245, 243, 247, 236, - 238, 246, 250, 235, 248, 249, 246, 242, 240, 243, - 249, 251, 251, 252, 244, 250, 253, 247, 245, 248, - 254, 255, 563, 254, 563, 252, 256, 256, 257, 257, - 258, 253, 259, 259, 255, 258, 260, 260, 261, 266, - 262, 263, 265, 261, 262, 264, 263, 265, 267, 264, - 268, 270, 270, 267, 269, 271, 1023, 269, 272, 266, + 217, 211, 212, 220, 214, 221, 215, 224, 222, 223, + 208, 208, 208, 223, 216, 219, 219, 225, 219, 226, + 227, 221, 228, 220, 222, 224, 228, 229, 226, 227, + 230, 225, 231, 237, 232, 230, 229, 235, 231, 232, + 234, 226, 233, 233, 241, 234, 236, 238, 238, 235, + 242, 236, 240, 240, 237, 243, 244, 246, 242, 248, + 250, 247, 251, 253, 243, 241, 247, 248, 244, 249, + 254, 252, 252, 255, 249, 254, 257, 246, 250, 252, + 254, 251, 260, 253, 256, 256, 262, 252, 258, 258, + 259, 261, 264, 255, 260, 263, 268, 252, 265, 266, - 271, 272, 269, 273, 268, 274, 269, 273, 275, 276, - 274, 277, 279, 275, 277, 276, 278, 279, 280, 278, - 281, 282, 283, 284, 285, 288, 282, 283, 284, 273, - 291, 290, 286, 285, 281, 286, 280, 287, 292, 289, - 1018, 287, 287, 289, 293, 288, 290, 297, 291, 293, - 294, 294, 295, 292, 296, 298, 295, 299, 300, 296, - 304, 301, 302, 297, 303, 300, 301, 302, 305, 303, - 299, 306, 307, 311, 298, 307, 310, 305, 304, 308, - 308, 310, 312, 313, 319, 306, 323, 320, 319, 322, - 312, 311, 320, 326, 322, 324, 325, 325, 313, 321, + 263, 257, 267, 266, 270, 259, 271, 267, 262, 268, + 261, 264, 273, 265, 269, 269, 270, 272, 274, 274, + 272, 271, 275, 275, 276, 273, 277, 277, 279, 276, + 278, 278, 280, 279, 281, 283, 280, 282, 284, 281, + 283, 282, 285, 286, 288, 288, 294, 285, 287, 289, + 290, 287, 294, 290, 289, 291, 287, 286, 284, 291, + 287, 292, 293, 299, 298, 295, 292, 293, 295, 296, + 297, 300, 296, 301, 302, 297, 300, 299, 301, 302, + 303, 291, 298, 304, 306, 308, 304, 305, 309, 303, + 307, 305, 305, 310, 307, 313, 311, 312, 312, 313, - 326, 327, 327, 321, 323, 331, 321, 328, 329, 329, - 330, 321, 1013, 330, 334, 332, 336, 321, 321, 336, - 324, 340, 328, 332, 338, 331, 333, 333, 337, 334, - 335, 335, 338, 339, 337, 341, 342, 343, 343, 340, - 341, 339, 344, 342, 346, 345, 350, 344, 345, 347, - 347, 348, 351, 352, 348, 350, 351, 353, 346, 354, - 356, 355, 348, 357, 359, 358, 353, 355, 357, 358, - 360, 361, 352, 354, 356, 362, 361, 363, 363, 365, - 366, 364, 360, 359, 364, 367, 368, 368, 369, 372, - 374, 375, 373, 366, 376, 1012, 362, 365, 379, 376, + 308, 311, 314, 315, 306, 316, 309, 314, 310, 317, + 318, 319, 322, 320, 323, 321, 319, 318, 320, 315, + 321, 324, 317, 323, 316, 326, 325, 330, 326, 329, + 322, 325, 327, 327, 329, 324, 331, 332, 335, 338, + 342, 339, 341, 338, 331, 330, 339, 341, 343, 344, + 344, 347, 332, 115, 345, 335, 340, 350, 342, 349, + 340, 345, 349, 340, 346, 346, 347, 353, 340, 348, + 348, 351, 356, 343, 340, 340, 113, 350, 356, 351, + 352, 352, 353, 354, 354, 355, 357, 358, 355, 359, + 361, 360, 362, 362, 357, 358, 360, 361, 363, 364, - 377, 377, 378, 369, 374, 367, 371, 373, 377, 371, - 379, 371, 375, 382, 372, 371, 378, 371, 380, 380, - 381, 382, 371, 383, 384, 381, 377, 385, 385, 387, - 388, 389, 390, 388, 387, 391, 393, 383, 392, 394, - 391, 393, 395, 384, 398, 390, 397, 392, 399, 398, - 389, 401, 400, 399, 402, 402, 395, 400, 403, 394, - 401, 397, 406, 403, 405, 405, 407, 408, 405, 409, - 408, 410, 411, 412, 409, 411, 410, 406, 413, 414, - 415, 417, 416, 418, 417, 415, 407, 416, 419, 421, - 420, 412, 414, 419, 418, 420, 422, 422, 413, 423, + 365, 369, 364, 363, 366, 366, 367, 359, 370, 367, + 369, 371, 370, 372, 365, 373, 376, 367, 374, 375, + 378, 376, 372, 377, 374, 379, 380, 377, 381, 373, + 371, 380, 384, 375, 382, 382, 386, 379, 383, 378, + 385, 383, 387, 387, 388, 388, 389, 390, 392, 381, + 384, 393, 396, 385, 394, 395, 386, 396, 399, 397, + 397, 389, 400, 400, 398, 404, 393, 397, 394, 401, + 399, 390, 391, 392, 401, 391, 395, 391, 398, 402, + 403, 391, 409, 391, 404, 397, 407, 402, 391, 405, + 405, 407, 408, 410, 403, 408, 412, 411, 413, 414, - 424, 425, 426, 427, 421, 425, 428, 430, 431, 433, - 432, 434, 427, 431, 424, 432, 1011, 435, 423, 436, - 426, 430, 435, 433, 438, 434, 437, 437, 439, 441, - 440, 428, 442, 445, 436, 440, 442, 439, 443, 444, - 446, 447, 438, 448, 450, 449, 451, 455, 441, 448, - 454, 453, 445, 443, 444, 451, 458, 456, 454, 447, - 449, 446, 456, 459, 450, 453, 457, 455, 459, 458, - 457, 457, 460, 460, 461, 462, 463, 464, 465, 461, - 466, 468, 464, 465, 467, 466, 470, 469, 467, 462, - 468, 469, 471, 472, 463, 468, 473, 468, 474, 468, + 415, 409, 411, 413, 418, 412, 410, 417, 419, 418, + 420, 421, 426, 419, 415, 420, 422, 422, 423, 414, + 421, 427, 417, 423, 425, 425, 428, 426, 425, 428, + 429, 430, 432, 433, 431, 429, 430, 431, 434, 435, + 436, 427, 443, 437, 435, 436, 437, 438, 441, 439, + 432, 434, 440, 433, 439, 442, 442, 440, 438, 444, + 445, 443, 446, 441, 445, 447, 448, 451, 454, 455, + 452, 453, 456, 444, 447, 452, 453, 456, 457, 459, + 446, 451, 454, 455, 458, 458, 460, 461, 462, 464, + 463, 448, 461, 457, 463, 460, 465, 459, 466, 467, - 475, 470, 476, 481, 473, 1008, 471, 477, 477, 478, - 478, 482, 472, 479, 480, 480, 474, 483, 479, 482, - 484, 476, 483, 481, 485, 475, 486, 488, 491, 489, - 485, 490, 488, 486, 489, 492, 490, 491, 484, 493, - 493, 494, 495, 497, 497, 496, 498, 499, 502, 500, - 503, 504, 502, 502, 492, 505, 506, 508, 507, 509, - 506, 494, 495, 496, 513, 510, 498, 500, 515, 504, - 510, 508, 499, 511, 512, 505, 503, 507, 509, 512, - 511, 514, 513, 515, 516, 523, 517, 518, 519, 1006, - 514, 517, 518, 519, 520, 520, 522, 528, 524, 525, + 468, 470, 469, 471, 464, 472, 476, 462, 469, 569, + 474, 465, 569, 475, 472, 479, 470, 466, 468, 484, + 467, 475, 477, 471, 474, 478, 476, 477, 479, 478, + 478, 480, 481, 481, 482, 483, 480, 484, 485, 482, + 486, 487, 489, 485, 488, 486, 487, 491, 488, 483, + 490, 489, 492, 493, 490, 494, 489, 495, 489, 496, + 489, 497, 491, 494, 498, 498, 492, 499, 499, 500, + 501, 501, 493, 502, 500, 495, 504, 503, 505, 507, + 497, 504, 506, 513, 496, 503, 507, 509, 506, 510, + 511, 512, 509, 502, 510, 511, 505, 514, 514, 515, - 525, 522, 524, 524, 523, 516, 526, 529, 527, 530, - 531, 532, 526, 527, 533, 534, 528, 535, 535, 536, - 537, 538, 540, 536, 541, 532, 529, 540, 530, 531, - 534, 539, 539, 537, 542, 533, 549, 543, 550, 542, - 548, 538, 543, 548, 541, 546, 546, 551, 554, 552, - 556, 549, 551, 553, 553, 555, 555, 558, 557, 560, - 561, 556, 557, 550, 552, 562, 564, 565, 554, 566, - 569, 564, 565, 567, 570, 569, 558, 560, 572, 567, - 561, 571, 571, 573, 578, 562, 574, 575, 579, 566, - 577, 574, 575, 576, 576, 577, 572, 580, 581, 570, + 512, 516, 513, 519, 517, 518, 518, 520, 521, 523, + 524, 525, 527, 523, 523, 526, 527, 529, 528, 515, + 530, 516, 517, 519, 534, 531, 521, 532, 533, 525, + 531, 529, 520, 533, 532, 526, 524, 528, 535, 530, + 536, 537, 534, 538, 539, 540, 544, 535, 538, 539, + 540, 541, 541, 543, 548, 536, 545, 549, 543, 548, + 545, 545, 537, 546, 546, 544, 547, 550, 551, 552, + 553, 554, 547, 111, 555, 557, 549, 556, 556, 557, + 558, 559, 560, 560, 553, 561, 550, 551, 552, 555, + 561, 562, 554, 558, 563, 564, 567, 567, 570, 563, - 582, 583, 578, 573, 584, 585, 583, 586, 579, 588, - 592, 587, 581, 582, 589, 593, 1002, 580, 588, 592, - 594, 588, 595, 598, 584, 585, 587, 599, 586, 594, - 589, 595, 594, 596, 593, 597, 597, 600, 596, 601, - 599, 602, 604, 598, 603, 603, 606, 607, 608, 611, - 612, 606, 607, 601, 608, 600, 613, 611, 609, 602, - 604, 609, 614, 615, 617, 618, 619, 609, 612, 618, - 621, 619, 620, 622, 623, 613, 999, 620, 614, 621, - 624, 615, 625, 626, 617, 624, 623, 627, 622, 628, - 628, 629, 631, 627, 625, 630, 630, 631, 632, 639, + 564, 559, 571, 572, 573, 574, 574, 577, 572, 575, + 581, 562, 578, 570, 576, 576, 578, 579, 577, 573, + 582, 583, 587, 591, 109, 585, 586, 571, 581, 575, + 585, 586, 588, 593, 590, 594, 579, 600, 588, 590, + 582, 583, 587, 592, 592, 595, 599, 596, 591, 601, + 595, 593, 596, 597, 597, 594, 598, 600, 602, 605, + 603, 598, 604, 606, 599, 607, 608, 604, 609, 601, + 614, 610, 602, 603, 619, 613, 615, 609, 72, 605, + 609, 608, 616, 606, 613, 615, 607, 610, 615, 614, + 617, 616, 618, 618, 619, 617, 620, 621, 622, 623, - 629, 626, 633, 633, 634, 634, 635, 635, 636, 638, - 640, 636, 641, 644, 638, 640, 643, 639, 632, 642, - 642, 643, 645, 646, 647, 644, 648, 644, 649, 650, - 650, 651, 644, 652, 654, 656, 653, 641, 655, 655, - 652, 657, 645, 646, 647, 653, 661, 648, 659, 662, - 660, 651, 665, 659, 649, 660, 662, 657, 663, 664, - 654, 656, 666, 663, 667, 668, 661, 665, 664, 669, - 667, 670, 671, 673, 668, 672, 674, 671, 673, 672, - 672, 666, 675, 676, 678, 670, 679, 675, 674, 677, - 669, 679, 680, 677, 681, 676, 682, 682, 683, 686, + 624, 624, 625, 627, 633, 628, 632, 629, 627, 620, + 628, 634, 622, 629, 632, 621, 630, 623, 635, 630, + 625, 636, 633, 638, 639, 630, 640, 641, 639, 642, + 634, 640, 641, 643, 635, 644, 645, 646, 642, 636, + 647, 645, 650, 638, 648, 649, 649, 644, 643, 646, + 648, 650, 651, 651, 652, 653, 654, 654, 647, 652, + 655, 655, 656, 656, 657, 659, 660, 657, 661, 662, + 659, 663, 663, 661, 664, 653, 665, 666, 667, 664, + 668, 669, 670, 672, 660, 671, 671, 675, 665, 673, + 665, 677, 674, 678, 662, 665, 673, 666, 667, 682, - 684, 685, 696, 688, 683, 684, 681, 685, 686, 678, - 690, 690, 691, 695, 680, 688, 697, 697, 695, 696, - 701, 691, 690, 698, 703, 698, 699, 699, 702, 702, - 704, 705, 706, 707, 708, 710, 709, 710, 711, 713, - 701, 709, 704, 705, 706, 703, 712, 712, 707, 715, - 714, 715, 716, 717, 708, 714, 711, 716, 717, 718, - 719, 720, 721, 722, 723, 713, 720, 721, 997, 724, - 726, 729, 727, 730, 725, 728, 734, 718, 723, 726, - 719, 724, 722, 725, 727, 735, 725, 731, 728, 730, - 733, 729, 738, 731, 735, 737, 733, 736, 736, 739, + 668, 674, 669, 672, 676, 676, 680, 681, 670, 678, + 684, 680, 681, 675, 683, 684, 685, 677, 686, 682, + 687, 683, 688, 689, 690, 685, 691, 699, 688, 692, + 70, 693, 689, 686, 692, 693, 693, 694, 695, 687, + 691, 696, 694, 697, 698, 690, 696, 701, 698, 700, + 695, 702, 699, 704, 700, 697, 703, 703, 706, 704, + 705, 707, 709, 702, 706, 705, 711, 711, 712, 701, + 707, 716, 717, 719, 709, 719, 716, 712, 711, 718, + 718, 720, 720, 722, 723, 723, 724, 725, 726, 717, + 727, 728, 729, 730, 731, 732, 731, 734, 730, 725, - 740, 734, 746, 739, 737, 740, 741, 741, 743, 744, - 744, 738, 745, 745, 746, 747, 749, 743, 748, 750, - 747, 751, 748, 752, 753, 754, 756, 772, 757, 756, - 758, 749, 759, 759, 760, 760, 753, 762, 750, 765, - 751, 757, 770, 758, 752, 772, 754, 761, 761, 995, - 762, 763, 763, 764, 764, 766, 766, 768, 765, 769, - 769, 770, 768, 771, 771, 773, 774, 775, 775, 774, - 777, 773, 776, 776, 778, 778, 779, 779, 780, 781, - 781, 782, 783, 775, 784, 785, 786, 783, 787, 777, - 785, 788, 790, 782, 789, 792, 790, 787, 793, 789, + 726, 739, 727, 722, 733, 733, 728, 724, 736, 735, + 736, 737, 729, 732, 735, 738, 737, 740, 744, 739, + 738, 741, 742, 734, 743, 747, 741, 742, 745, 746, + 748, 749, 744, 750, 747, 751, 755, 740, 746, 752, + 745, 746, 748, 743, 749, 752, 754, 756, 757, 757, + 758, 751, 754, 750, 759, 761, 756, 764, 760, 758, + 761, 755, 760, 762, 762, 767, 764, 765, 765, 766, + 766, 768, 770, 759, 769, 771, 768, 767, 769, 772, + 773, 774, 775, 777, 778, 786, 777, 770, 68, 779, + 780, 780, 783, 774, 771, 781, 781, 778, 772, 782, - 788, 786, 794, 794, 780, 784, 795, 793, 797, 799, - 802, 795, 799, 800, 802, 792, 801, 801, 800, 803, - 797, 804, 803, 805, 806, 807, 808, 811, 809, 806, - 807, 810, 808, 815, 815, 811, 810, 812, 826, 812, - 827, 804, 994, 805, 809, 818, 818, 820, 820, 822, - 822, 824, 825, 825, 826, 828, 824, 830, 830, 833, - 828, 834, 827, 834, 833, 835, 836, 836, 837, 838, - 835, 839, 840, 841, 842, 843, 843, 844, 845, 846, - 837, 993, 847, 839, 840, 841, 844, 838, 848, 850, - 850, 849, 852, 848, 842, 847, 849, 853, 853, 846, + 782, 773, 779, 775, 786, 783, 784, 784, 785, 785, + 787, 787, 789, 790, 790, 791, 794, 789, 792, 792, + 793, 795, 794, 798, 795, 796, 796, 797, 797, 799, + 799, 800, 800, 801, 791, 802, 802, 803, 793, 804, + 805, 796, 798, 806, 804, 807, 808, 809, 806, 803, + 811, 813, 810, 814, 811, 808, 809, 810, 65, 801, + 807, 805, 814, 815, 815, 816, 818, 825, 821, 820, + 816, 813, 820, 821, 822, 822, 823, 826, 818, 824, + 823, 827, 824, 828, 829, 830, 827, 825, 828, 831, + 829, 832, 903, 833, 831, 833, 848, 826, 847, 832, - 854, 855, 856, 858, 845, 857, 859, 859, 860, 854, - 852, 861, 862, 860, 863, 867, 869, 869, 870, 855, - 856, 857, 858, 871, 868, 874, 861, 868, 873, 873, - 878, 862, 990, 870, 863, 867, 875, 875, 877, 877, - 879, 871, 880, 881, 874, 882, 884, 880, 881, 879, - 885, 886, 878, 882, 887, 885, 886, 888, 888, 889, - 889, 884, 891, 892, 894, 893, 899, 891, 893, 887, - 895, 896, 896, 894, 897, 892, 900, 901, 901, 895, - 902, 904, 903, 897, 906, 899, 904, 907, 911, 902, - 903, 909, 909, 906, 916, 900, 912, 912, 913, 917, + 903, 830, 836, 836, 839, 839, 841, 841, 843, 843, + 845, 846, 846, 859, 847, 845, 849, 854, 848, 851, + 851, 849, 854, 855, 856, 855, 857, 857, 858, 856, + 860, 859, 861, 862, 863, 864, 864, 865, 866, 867, + 858, 58, 860, 868, 861, 862, 865, 869, 870, 871, + 871, 873, 869, 870, 863, 876, 868, 874, 874, 867, + 877, 875, 879, 878, 866, 880, 880, 881, 882, 873, + 875, 883, 881, 876, 884, 888, 891, 889, 877, 878, + 889, 879, 892, 882, 890, 890, 894, 894, 895, 899, + 883, 891, 896, 896, 884, 888, 898, 898, 901, 900, - 907, 913, 914, 914, 915, 915, 918, 923, 911, 919, - 919, 918, 916, 917, 920, 924, 925, 926, 920, 927, - 928, 929, 930, 924, 927, 931, 923, 933, 934, 989, - 933, 930, 937, 926, 936, 925, 935, 935, 936, 939, - 928, 937, 940, 941, 944, 931, 934, 929, 939, 944, - 945, 945, 946, 948, 940, 949, 950, 952, 948, 951, - 951, 946, 953, 956, 954, 955, 957, 962, 941, 963, - 955, 950, 954, 952, 949, 958, 958, 959, 961, 961, - 966, 953, 959, 964, 964, 957, 967, 962, 968, 956, - 971, 963, 965, 965, 969, 969, 970, 970, 967, 966, + 892, 902, 905, 901, 906, 907, 902, 895, 900, 906, + 907, 899, 908, 909, 909, 910, 910, 905, 912, 913, + 915, 914, 920, 912, 914, 916, 918, 908, 921, 915, + 923, 913, 917, 917, 916, 918, 922, 922, 924, 923, + 925, 920, 927, 928, 932, 925, 924, 921, 930, 930, + 937, 927, 933, 933, 934, 938, 928, 934, 935, 935, + 936, 936, 939, 944, 932, 940, 940, 939, 937, 938, + 941, 945, 946, 947, 941, 948, 949, 950, 951, 945, + 948, 952, 944, 954, 955, 54, 954, 951, 958, 947, + 957, 946, 956, 956, 957, 960, 949, 958, 961, 962, - 973, 974, 974, 975, 975, 973, 976, 976, 968, 971, - 977, 978, 978, 980, 980, 977, 982, 982, 983, 986, - 987, 987, 991, 983, 988, 1001, 992, 986, 1003, 988, - 992, 996, 996, 998, 1000, 1000, 1015, 998, 1004, 1004, - 1001, 1009, 991, 1005, 1005, 1017, 1003, 1007, 1007, 1010, - 1010, 1014, 1019, 1009, 1017, 1014, 1015, 1016, 1016, 1020, - 1021, 1022, 1022, 985, 984, 981, 979, 1019, 972, 960, - 947, 943, 942, 1020, 938, 932, 922, 921, 910, 1021, - 1025, 1025, 1025, 1025, 1025, 1025, 1026, 1026, 1026, 1026, - 1026, 1026, 1027, 1027, 1027, 1027, 1027, 1027, 1028, 1028, + 965, 952, 955, 950, 960, 965, 966, 966, 967, 969, + 961, 970, 971, 973, 969, 972, 972, 967, 974, 977, + 975, 976, 978, 983, 962, 984, 976, 971, 975, 973, + 970, 979, 979, 980, 982, 982, 987, 974, 980, 985, + 985, 978, 988, 983, 989, 977, 992, 984, 986, 986, + 990, 990, 991, 991, 988, 987, 994, 995, 995, 996, + 996, 994, 997, 997, 989, 992, 998, 999, 999, 1001, + 1001, 998, 1003, 1003, 1004, 1007, 1008, 1008, 1012, 1004, + 1009, 1022, 1013, 1007, 1024, 1009, 1013, 1017, 1017, 1019, + 1021, 1021, 1036, 1019, 1025, 1025, 1022, 1030, 1012, 1026, - 1028, 1028, 1028, 1028, 1030, 1030, 908, 1030, 1030, 1030, - 1031, 1031, 905, 898, 890, 1031, 1032, 1032, 883, 876, - 1032, 1034, 1034, 872, 866, 865, 1034, 1035, 1035, 864, - 1035, 1035, 1035, 851, 832, 831, 829, 823, 821, 819, - 817, 816, 814, 813, 798, 796, 791, 767, 755, 742, - 732, 700, 694, 693, 692, 689, 687, 658, 637, 616, - 610, 605, 591, 590, 568, 559, 547, 545, 544, 521, - 501, 487, 452, 429, 404, 396, 386, 349, 318, 317, - 315, 314, 309, 228, 222, 106, 105, 103, 101, 99, - 56, 52, 48, 47, 43, 38, 12, 11, 1024, 1024, + 1026, 1038, 1024, 1028, 1028, 1031, 1031, 1035, 1040, 1030, + 1038, 1035, 1036, 1037, 1037, 1041, 1042, 1043, 1043, 49, + 48, 44, 40, 1040, 14, 13, 0, 0, 0, 1041, + 0, 0, 0, 0, 0, 1042, 1046, 1046, 1046, 1046, + 1046, 1046, 1047, 1047, 1047, 1047, 1047, 1047, 1048, 1048, + 1048, 1048, 1048, 1048, 1049, 1049, 1049, 1049, 1049, 1049, + 1050, 1050, 1050, 1050, 1050, 1050, 1052, 1052, 1052, 1052, + 1052, 1052, 1053, 1053, 0, 0, 1053, 1053, 1054, 1054, + 0, 1054, 0, 1054, 1055, 0, 0, 0, 0, 1055, + 1056, 1056, 0, 0, 1056, 1056, 1057, 0, 0, 0, - 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, - 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, - 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, - 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024 + 0, 1057, 1058, 1058, 1058, 1058, 1058, 1058, 1059, 1059, + 1059, 1059, 1059, 1059, 1045, 1045, 1045, 1045, 1045, 1045, + 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, + 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, + 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, + 1045, 1045, 1045, 1045 } ; static yy_state_type yy_last_accepting_state; @@ -1285,7 +1295,13 @@ void ub_c_error(const char *message); #define LEXOUT(s) #endif -#define YDOUT LEXOUT(("v(%s )", yytext)) +/** A parser variable, this is a statement in the config file which is + * of the form variable: value1 value2 ... nargs is the number of values. */ +#define YDVAR(nargs, var) \ + num_args=(nargs); \ + LEXOUT(("v(%s%d) ", yytext, num_args)); \ + if(num_args > 0) { BEGIN(val); } \ + return (var); struct inc_state { char* filename; @@ -1294,6 +1310,8 @@ struct inc_state { static struct inc_state parse_stack[MAXINCLUDES]; static YY_BUFFER_STATE include_stack[MAXINCLUDES]; static int config_include_stack_ptr = 0; +static int inc_prev = 0; +static int num_args = 0; static void config_start_include(const char* filename) { @@ -1346,7 +1364,7 @@ static void config_end_include(void) #endif #define YY_NO_INPUT 1 -#line 92 "util/configlexer.lex" +#line 100 "util/configlexer.lex" #ifndef YY_NO_UNPUT #define YY_NO_UNPUT 1 #endif @@ -1354,13 +1372,14 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 1357 "" +#line 1375 "" #define INITIAL 0 #define quotedstring 1 #define singlequotedstr 2 #define include 3 #define include_quoted 4 +#define val 5 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way @@ -1538,9 +1557,9 @@ YY_DECL register char *yy_cp, *yy_bp; register int yy_act; -#line 111 "util/configlexer.lex" +#line 120 "util/configlexer.lex" -#line 1543 "" +#line 1562 "" if ( !(yy_init) ) { @@ -1599,13 +1618,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1025 ) + if ( yy_current_state >= 1046 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 2099 ); + while ( yy_base[yy_current_state] != 2115 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1631,500 +1650,507 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 112 "util/configlexer.lex" -{ LEXOUT(("SP ")); /* ignore */ } +#line 121 "util/configlexer.lex" +{ + LEXOUT(("SP ")); /* ignore */ } YY_BREAK case 2: +*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +(yy_c_buf_p) = yy_cp -= 1; +YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 113 "util/configlexer.lex" -{ LEXOUT(("comment(%s) ", yytext)); /* ignore */ } +#line 123 "util/configlexer.lex" +{ + LEXOUT(("comment(%s) ", yytext)); /* ignore */ } YY_BREAK case 3: YY_RULE_SETUP -#line 114 "util/configlexer.lex" -{ YDOUT; return VAR_SERVER;} +#line 125 "util/configlexer.lex" +{ YDVAR(0, VAR_SERVER) } YY_BREAK case 4: YY_RULE_SETUP -#line 115 "util/configlexer.lex" -{ YDOUT; return VAR_NUM_THREADS;} +#line 126 "util/configlexer.lex" +{ YDVAR(1, VAR_NUM_THREADS) } YY_BREAK case 5: YY_RULE_SETUP -#line 116 "util/configlexer.lex" -{ YDOUT; return VAR_VERBOSITY;} +#line 127 "util/configlexer.lex" +{ YDVAR(1, VAR_VERBOSITY) } YY_BREAK case 6: YY_RULE_SETUP -#line 117 "util/configlexer.lex" -{ YDOUT; return VAR_PORT;} +#line 128 "util/configlexer.lex" +{ YDVAR(1, VAR_PORT) } YY_BREAK case 7: YY_RULE_SETUP -#line 118 "util/configlexer.lex" -{ YDOUT; return VAR_OUTGOING_RANGE;} +#line 129 "util/configlexer.lex" +{ YDVAR(1, VAR_OUTGOING_RANGE) } YY_BREAK case 8: YY_RULE_SETUP -#line 119 "util/configlexer.lex" -{ YDOUT; return VAR_OUTGOING_PORT_PERMIT;} +#line 130 "util/configlexer.lex" +{ YDVAR(1, VAR_OUTGOING_PORT_PERMIT) } YY_BREAK case 9: YY_RULE_SETUP -#line 120 "util/configlexer.lex" -{ YDOUT; return VAR_OUTGOING_PORT_AVOID;} +#line 131 "util/configlexer.lex" +{ YDVAR(1, VAR_OUTGOING_PORT_AVOID) } YY_BREAK case 10: YY_RULE_SETUP -#line 121 "util/configlexer.lex" -{ YDOUT; return VAR_OUTGOING_NUM_TCP;} +#line 132 "util/configlexer.lex" +{ YDVAR(1, VAR_OUTGOING_NUM_TCP) } YY_BREAK case 11: YY_RULE_SETUP -#line 122 "util/configlexer.lex" -{ YDOUT; return VAR_INCOMING_NUM_TCP;} +#line 133 "util/configlexer.lex" +{ YDVAR(1, VAR_INCOMING_NUM_TCP) } YY_BREAK case 12: YY_RULE_SETUP -#line 123 "util/configlexer.lex" -{ YDOUT; return VAR_DO_IP4;} +#line 134 "util/configlexer.lex" +{ YDVAR(1, VAR_DO_IP4) } YY_BREAK case 13: YY_RULE_SETUP -#line 124 "util/configlexer.lex" -{ YDOUT; return VAR_DO_IP6;} +#line 135 "util/configlexer.lex" +{ YDVAR(1, VAR_DO_IP6) } YY_BREAK case 14: YY_RULE_SETUP -#line 125 "util/configlexer.lex" -{ YDOUT; return VAR_DO_UDP;} +#line 136 "util/configlexer.lex" +{ YDVAR(1, VAR_DO_UDP) } YY_BREAK case 15: YY_RULE_SETUP -#line 126 "util/configlexer.lex" -{ YDOUT; return VAR_DO_TCP;} +#line 137 "util/configlexer.lex" +{ YDVAR(1, VAR_DO_TCP) } YY_BREAK case 16: YY_RULE_SETUP -#line 127 "util/configlexer.lex" -{ YDOUT; return VAR_DO_DAEMONIZE;} +#line 138 "util/configlexer.lex" +{ YDVAR(1, VAR_DO_DAEMONIZE) } YY_BREAK case 17: YY_RULE_SETUP -#line 128 "util/configlexer.lex" -{ YDOUT; return VAR_INTERFACE;} +#line 139 "util/configlexer.lex" +{ YDVAR(1, VAR_INTERFACE) } YY_BREAK case 18: YY_RULE_SETUP -#line 129 "util/configlexer.lex" -{ YDOUT; return VAR_OUTGOING_INTERFACE;} +#line 140 "util/configlexer.lex" +{ YDVAR(1, VAR_OUTGOING_INTERFACE) } YY_BREAK case 19: YY_RULE_SETUP -#line 130 "util/configlexer.lex" -{ YDOUT; return VAR_INTERFACE_AUTOMATIC;} +#line 141 "util/configlexer.lex" +{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) } YY_BREAK case 20: YY_RULE_SETUP -#line 131 "util/configlexer.lex" -{ YDOUT; return VAR_CHROOT;} +#line 142 "util/configlexer.lex" +{ YDVAR(1, VAR_CHROOT) } YY_BREAK case 21: YY_RULE_SETUP -#line 132 "util/configlexer.lex" -{ YDOUT; return VAR_USERNAME;} +#line 143 "util/configlexer.lex" +{ YDVAR(1, VAR_USERNAME) } YY_BREAK case 22: YY_RULE_SETUP -#line 133 "util/configlexer.lex" -{ YDOUT; return VAR_DIRECTORY;} +#line 144 "util/configlexer.lex" +{ YDVAR(1, VAR_DIRECTORY) } YY_BREAK case 23: YY_RULE_SETUP -#line 134 "util/configlexer.lex" -{ YDOUT; return VAR_LOGFILE;} +#line 145 "util/configlexer.lex" +{ YDVAR(1, VAR_LOGFILE) } YY_BREAK case 24: YY_RULE_SETUP -#line 135 "util/configlexer.lex" -{ YDOUT; return VAR_PIDFILE;} +#line 146 "util/configlexer.lex" +{ YDVAR(1, VAR_PIDFILE) } YY_BREAK case 25: YY_RULE_SETUP -#line 136 "util/configlexer.lex" -{ YDOUT; return VAR_ROOT_HINTS;} +#line 147 "util/configlexer.lex" +{ YDVAR(1, VAR_ROOT_HINTS) } YY_BREAK case 26: YY_RULE_SETUP -#line 137 "util/configlexer.lex" -{ YDOUT; return VAR_MSG_BUFFER_SIZE;} +#line 148 "util/configlexer.lex" +{ YDVAR(1, VAR_MSG_BUFFER_SIZE) } YY_BREAK case 27: YY_RULE_SETUP -#line 138 "util/configlexer.lex" -{ YDOUT; return VAR_MSG_CACHE_SIZE;} +#line 149 "util/configlexer.lex" +{ YDVAR(1, VAR_MSG_CACHE_SIZE) } YY_BREAK case 28: YY_RULE_SETUP -#line 139 "util/configlexer.lex" -{ YDOUT; return VAR_MSG_CACHE_SLABS;} +#line 150 "util/configlexer.lex" +{ YDVAR(1, VAR_MSG_CACHE_SLABS) } YY_BREAK case 29: YY_RULE_SETUP -#line 140 "util/configlexer.lex" -{ YDOUT; return VAR_RRSET_CACHE_SIZE;} +#line 151 "util/configlexer.lex" +{ YDVAR(1, VAR_RRSET_CACHE_SIZE) } YY_BREAK case 30: YY_RULE_SETUP -#line 141 "util/configlexer.lex" -{ YDOUT; return VAR_RRSET_CACHE_SLABS;} +#line 152 "util/configlexer.lex" +{ YDVAR(1, VAR_RRSET_CACHE_SLABS) } YY_BREAK case 31: YY_RULE_SETUP -#line 142 "util/configlexer.lex" -{ YDOUT; return VAR_CACHE_MAX_TTL;} +#line 153 "util/configlexer.lex" +{ YDVAR(1, VAR_CACHE_MAX_TTL) } YY_BREAK case 32: YY_RULE_SETUP -#line 143 "util/configlexer.lex" -{ YDOUT; return VAR_INFRA_HOST_TTL;} +#line 154 "util/configlexer.lex" +{ YDVAR(1, VAR_INFRA_HOST_TTL) } YY_BREAK case 33: YY_RULE_SETUP -#line 144 "util/configlexer.lex" -{ YDOUT; return VAR_INFRA_LAME_TTL;} +#line 155 "util/configlexer.lex" +{ YDVAR(1, VAR_INFRA_LAME_TTL) } YY_BREAK case 34: YY_RULE_SETUP -#line 145 "util/configlexer.lex" -{ YDOUT; return VAR_INFRA_CACHE_SLABS;} +#line 156 "util/configlexer.lex" +{ YDVAR(1, VAR_INFRA_CACHE_SLABS) } YY_BREAK case 35: YY_RULE_SETUP -#line 146 "util/configlexer.lex" -{ YDOUT; return VAR_INFRA_CACHE_NUMHOSTS;} +#line 157 "util/configlexer.lex" +{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } YY_BREAK case 36: YY_RULE_SETUP -#line 147 "util/configlexer.lex" -{ YDOUT; return VAR_INFRA_CACHE_LAME_SIZE;} +#line 158 "util/configlexer.lex" +{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } YY_BREAK case 37: YY_RULE_SETUP -#line 148 "util/configlexer.lex" -{ YDOUT; return VAR_NUM_QUERIES_PER_THREAD;} +#line 159 "util/configlexer.lex" +{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } YY_BREAK case 38: YY_RULE_SETUP -#line 149 "util/configlexer.lex" -{ YDOUT; return VAR_JOSTLE_TIMEOUT;} +#line 160 "util/configlexer.lex" +{ YDVAR(1, VAR_JOSTLE_TIMEOUT) } YY_BREAK case 39: YY_RULE_SETUP -#line 150 "util/configlexer.lex" -{ YDOUT; return VAR_TARGET_FETCH_POLICY;} +#line 161 "util/configlexer.lex" +{ YDVAR(1, VAR_TARGET_FETCH_POLICY) } YY_BREAK case 40: YY_RULE_SETUP -#line 151 "util/configlexer.lex" -{ YDOUT; return VAR_HARDEN_SHORT_BUFSIZE;} +#line 162 "util/configlexer.lex" +{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } YY_BREAK case 41: YY_RULE_SETUP -#line 152 "util/configlexer.lex" -{ YDOUT; return VAR_HARDEN_LARGE_QUERIES;} +#line 163 "util/configlexer.lex" +{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } YY_BREAK case 42: YY_RULE_SETUP -#line 153 "util/configlexer.lex" -{ YDOUT; return VAR_HARDEN_GLUE;} +#line 164 "util/configlexer.lex" +{ YDVAR(1, VAR_HARDEN_GLUE) } YY_BREAK case 43: YY_RULE_SETUP -#line 154 "util/configlexer.lex" -{ YDOUT; return VAR_HARDEN_DNNSEC_STRIPPED;} +#line 165 "util/configlexer.lex" +{ YDVAR(1, VAR_HARDEN_DNNSEC_STRIPPED) } YY_BREAK case 44: YY_RULE_SETUP -#line 155 "util/configlexer.lex" -{ YDOUT; return VAR_HARDEN_REFERRAL_PATH;} +#line 166 "util/configlexer.lex" +{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } YY_BREAK case 45: YY_RULE_SETUP -#line 156 "util/configlexer.lex" -{ YDOUT; return VAR_USE_CAPS_FOR_ID;} +#line 167 "util/configlexer.lex" +{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } YY_BREAK case 46: YY_RULE_SETUP -#line 157 "util/configlexer.lex" -{ YDOUT; return VAR_UNWANTED_REPLY_THRESHOLD;} +#line 168 "util/configlexer.lex" +{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } YY_BREAK case 47: YY_RULE_SETUP -#line 158 "util/configlexer.lex" -{ YDOUT; return VAR_PRIVATE_ADDRESS;} +#line 169 "util/configlexer.lex" +{ YDVAR(1, VAR_PRIVATE_ADDRESS) } YY_BREAK case 48: YY_RULE_SETUP -#line 159 "util/configlexer.lex" -{ YDOUT; return VAR_PRIVATE_DOMAIN;} +#line 170 "util/configlexer.lex" +{ YDVAR(1, VAR_PRIVATE_DOMAIN) } YY_BREAK case 49: YY_RULE_SETUP -#line 160 "util/configlexer.lex" -{ YDOUT; return VAR_STUB_ZONE;} +#line 171 "util/configlexer.lex" +{ YDVAR(0, VAR_STUB_ZONE) } YY_BREAK case 50: YY_RULE_SETUP -#line 161 "util/configlexer.lex" -{ YDOUT; return VAR_NAME;} +#line 172 "util/configlexer.lex" +{ YDVAR(1, VAR_NAME) } YY_BREAK case 51: YY_RULE_SETUP -#line 162 "util/configlexer.lex" -{ YDOUT; return VAR_STUB_ADDR;} +#line 173 "util/configlexer.lex" +{ YDVAR(1, VAR_STUB_ADDR) } YY_BREAK case 52: YY_RULE_SETUP -#line 163 "util/configlexer.lex" -{ YDOUT; return VAR_STUB_HOST;} +#line 174 "util/configlexer.lex" +{ YDVAR(1, VAR_STUB_HOST) } YY_BREAK case 53: YY_RULE_SETUP -#line 164 "util/configlexer.lex" -{ YDOUT; return VAR_STUB_PRIME;} +#line 175 "util/configlexer.lex" +{ YDVAR(1, VAR_STUB_PRIME) } YY_BREAK case 54: YY_RULE_SETUP -#line 165 "util/configlexer.lex" -{ YDOUT; return VAR_FORWARD_ZONE;} +#line 176 "util/configlexer.lex" +{ YDVAR(0, VAR_FORWARD_ZONE) } YY_BREAK case 55: YY_RULE_SETUP -#line 166 "util/configlexer.lex" -{ YDOUT; return VAR_FORWARD_ADDR;} +#line 177 "util/configlexer.lex" +{ YDVAR(1, VAR_FORWARD_ADDR) } YY_BREAK case 56: YY_RULE_SETUP -#line 167 "util/configlexer.lex" -{ YDOUT; return VAR_FORWARD_HOST;} +#line 178 "util/configlexer.lex" +{ YDVAR(1, VAR_FORWARD_HOST) } YY_BREAK case 57: YY_RULE_SETUP -#line 168 "util/configlexer.lex" -{ YDOUT; return VAR_DO_NOT_QUERY_ADDRESS;} +#line 179 "util/configlexer.lex" +{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } YY_BREAK case 58: YY_RULE_SETUP -#line 169 "util/configlexer.lex" -{ YDOUT; return VAR_DO_NOT_QUERY_LOCALHOST;} +#line 180 "util/configlexer.lex" +{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } YY_BREAK case 59: YY_RULE_SETUP -#line 170 "util/configlexer.lex" -{ YDOUT; return VAR_ACCESS_CONTROL;} +#line 181 "util/configlexer.lex" +{ YDVAR(2, VAR_ACCESS_CONTROL) } YY_BREAK case 60: YY_RULE_SETUP -#line 171 "util/configlexer.lex" -{ YDOUT; return VAR_HIDE_IDENTITY;} +#line 182 "util/configlexer.lex" +{ YDVAR(1, VAR_HIDE_IDENTITY) } YY_BREAK case 61: YY_RULE_SETUP -#line 172 "util/configlexer.lex" -{ YDOUT; return VAR_HIDE_VERSION;} +#line 183 "util/configlexer.lex" +{ YDVAR(1, VAR_HIDE_VERSION) } YY_BREAK case 62: YY_RULE_SETUP -#line 173 "util/configlexer.lex" -{ YDOUT; return VAR_IDENTITY;} +#line 184 "util/configlexer.lex" +{ YDVAR(1, VAR_IDENTITY) } YY_BREAK case 63: YY_RULE_SETUP -#line 174 "util/configlexer.lex" -{ YDOUT; return VAR_VERSION;} +#line 185 "util/configlexer.lex" +{ YDVAR(1, VAR_VERSION) } YY_BREAK case 64: YY_RULE_SETUP -#line 175 "util/configlexer.lex" -{ YDOUT; return VAR_MODULE_CONF;} +#line 186 "util/configlexer.lex" +{ YDVAR(1, VAR_MODULE_CONF) } YY_BREAK case 65: YY_RULE_SETUP -#line 176 "util/configlexer.lex" -{ YDOUT; return VAR_DLV_ANCHOR;} +#line 187 "util/configlexer.lex" +{ YDVAR(1, VAR_DLV_ANCHOR) } YY_BREAK case 66: YY_RULE_SETUP -#line 177 "util/configlexer.lex" -{ YDOUT; return VAR_DLV_ANCHOR_FILE;} +#line 188 "util/configlexer.lex" +{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } YY_BREAK case 67: YY_RULE_SETUP -#line 178 "util/configlexer.lex" -{ YDOUT; return VAR_TRUST_ANCHOR_FILE;} +#line 189 "util/configlexer.lex" +{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } YY_BREAK case 68: YY_RULE_SETUP -#line 179 "util/configlexer.lex" -{ YDOUT; return VAR_TRUSTED_KEYS_FILE;} +#line 190 "util/configlexer.lex" +{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } YY_BREAK case 69: YY_RULE_SETUP -#line 180 "util/configlexer.lex" -{ YDOUT; return VAR_TRUST_ANCHOR;} +#line 191 "util/configlexer.lex" +{ YDVAR(1, VAR_TRUST_ANCHOR) } YY_BREAK case 70: YY_RULE_SETUP -#line 181 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_OVERRIDE_DATE;} +#line 192 "util/configlexer.lex" +{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } YY_BREAK case 71: YY_RULE_SETUP -#line 182 "util/configlexer.lex" -{ YDOUT; return VAR_BOGUS_TTL;} +#line 193 "util/configlexer.lex" +{ YDVAR(1, VAR_BOGUS_TTL) } YY_BREAK case 72: YY_RULE_SETUP -#line 183 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_CLEAN_ADDITIONAL;} +#line 194 "util/configlexer.lex" +{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } YY_BREAK case 73: YY_RULE_SETUP -#line 184 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_PERMISSIVE_MODE;} +#line 195 "util/configlexer.lex" +{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } YY_BREAK case 74: YY_RULE_SETUP -#line 185 "util/configlexer.lex" -{ YDOUT; return VAR_KEY_CACHE_SIZE;} +#line 196 "util/configlexer.lex" +{ YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 75: YY_RULE_SETUP -#line 186 "util/configlexer.lex" -{ YDOUT; return VAR_KEY_CACHE_SLABS;} +#line 197 "util/configlexer.lex" +{ YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 76: YY_RULE_SETUP -#line 187 "util/configlexer.lex" -{ YDOUT; return VAR_NEG_CACHE_SIZE;} +#line 198 "util/configlexer.lex" +{ YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 77: YY_RULE_SETUP -#line 188 "util/configlexer.lex" -{ YDOUT; return VAR_VAL_NSEC3_KEYSIZE_ITERATIONS;} +#line 199 "util/configlexer.lex" +{ + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 78: YY_RULE_SETUP -#line 189 "util/configlexer.lex" -{ YDOUT; return VAR_USE_SYSLOG;} +#line 201 "util/configlexer.lex" +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 79: YY_RULE_SETUP -#line 190 "util/configlexer.lex" -{ YDOUT; return VAR_LOCAL_ZONE;} +#line 202 "util/configlexer.lex" +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 80: YY_RULE_SETUP -#line 191 "util/configlexer.lex" -{ YDOUT; return VAR_LOCAL_DATA;} +#line 203 "util/configlexer.lex" +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 81: YY_RULE_SETUP -#line 192 "util/configlexer.lex" -{ YDOUT; return VAR_LOCAL_DATA_PTR;} +#line 204 "util/configlexer.lex" +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 82: YY_RULE_SETUP -#line 193 "util/configlexer.lex" -{ YDOUT; return VAR_STATISTICS_INTERVAL;} +#line 205 "util/configlexer.lex" +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 83: YY_RULE_SETUP -#line 194 "util/configlexer.lex" -{ YDOUT; return VAR_STATISTICS_CUMULATIVE;} +#line 206 "util/configlexer.lex" +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 84: YY_RULE_SETUP -#line 195 "util/configlexer.lex" -{ YDOUT; return VAR_EXTENDED_STATISTICS;} +#line 207 "util/configlexer.lex" +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 85: YY_RULE_SETUP -#line 196 "util/configlexer.lex" -{ YDOUT; return VAR_REMOTE_CONTROL; } +#line 208 "util/configlexer.lex" +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 86: YY_RULE_SETUP -#line 197 "util/configlexer.lex" -{ YDOUT; return VAR_CONTROL_ENABLE; } +#line 209 "util/configlexer.lex" +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 87: YY_RULE_SETUP -#line 198 "util/configlexer.lex" -{ YDOUT; return VAR_CONTROL_INTERFACE; } +#line 210 "util/configlexer.lex" +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 88: YY_RULE_SETUP -#line 199 "util/configlexer.lex" -{ YDOUT; return VAR_CONTROL_PORT; } +#line 211 "util/configlexer.lex" +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 89: YY_RULE_SETUP -#line 200 "util/configlexer.lex" -{ YDOUT; return VAR_SERVER_KEY_FILE; } +#line 212 "util/configlexer.lex" +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 90: YY_RULE_SETUP -#line 201 "util/configlexer.lex" -{ YDOUT; return VAR_SERVER_CERT_FILE; } +#line 213 "util/configlexer.lex" +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 91: YY_RULE_SETUP -#line 202 "util/configlexer.lex" -{ YDOUT; return VAR_CONTROL_KEY_FILE; } +#line 214 "util/configlexer.lex" +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 92: YY_RULE_SETUP -#line 203 "util/configlexer.lex" -{ YDOUT; return VAR_CONTROL_CERT_FILE; } +#line 215 "util/configlexer.lex" +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 93: /* rule 93 can match eol */ YY_RULE_SETUP -#line 204 "util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +#line 216 "util/configlexer.lex" +{ LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ case 94: YY_RULE_SETUP -#line 207 "util/configlexer.lex" +#line 219 "util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 208 "util/configlexer.lex" +#line 220 "util/configlexer.lex" { yyerror("EOF inside quoted string"); - BEGIN(INITIAL); + if(--num_args == 0) { BEGIN(INITIAL); } } YY_BREAK case 95: YY_RULE_SETUP -#line 212 "util/configlexer.lex" +#line 224 "util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK case 96: /* rule 96 can match eol */ YY_RULE_SETUP -#line 213 "util/configlexer.lex" -{ cfg_parser->line++; yymore(); } +#line 225 "util/configlexer.lex" +{ yyerror("newline inside quoted string, no end \""); + cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK case 97: YY_RULE_SETUP -#line 214 "util/configlexer.lex" +#line 227 "util/configlexer.lex" { LEXOUT(("QE ")); - BEGIN(INITIAL); + if(--num_args == 0) { BEGIN(INITIAL); } yytext[yyleng - 1] = '\0'; yylval.str = strdup(yytext); if(!yylval.str) @@ -2135,33 +2161,34 @@ YY_RULE_SETUP /* Single Quoted strings. Strip leading and ending quotes */ case 98: YY_RULE_SETUP -#line 225 "util/configlexer.lex" +#line 238 "util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 226 "util/configlexer.lex" +#line 239 "util/configlexer.lex" { yyerror("EOF inside quoted string"); - BEGIN(INITIAL); + if(--num_args == 0) { BEGIN(INITIAL); } } YY_BREAK case 99: YY_RULE_SETUP -#line 230 "util/configlexer.lex" +#line 243 "util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK case 100: /* rule 100 can match eol */ YY_RULE_SETUP -#line 231 "util/configlexer.lex" -{ cfg_parser->line++; yymore(); } +#line 244 "util/configlexer.lex" +{ yyerror("newline inside quoted string, no end '"); + cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK case 101: YY_RULE_SETUP -#line 232 "util/configlexer.lex" +#line 246 "util/configlexer.lex" { LEXOUT(("SQE ")); - BEGIN(INITIAL); + if(--num_args == 0) { BEGIN(INITIAL); } yytext[yyleng - 1] = '\0'; yylval.str = strdup(yytext); if(!yylval.str) @@ -2172,72 +2199,74 @@ YY_RULE_SETUP /* include: directive */ case 102: YY_RULE_SETUP -#line 243 "util/configlexer.lex" -{ LEXOUT(("v(%s) ", yytext)); BEGIN(include); } +#line 257 "util/configlexer.lex" +{ + LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 244 "util/configlexer.lex" +#line 259 "util/configlexer.lex" { yyerror("EOF inside include directive"); - BEGIN(INITIAL); + BEGIN(inc_prev); } YY_BREAK case 103: YY_RULE_SETUP -#line 248 "util/configlexer.lex" +#line 263 "util/configlexer.lex" { LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 104: /* rule 104 can match eol */ YY_RULE_SETUP -#line 249 "util/configlexer.lex" +#line 264 "util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 105: YY_RULE_SETUP -#line 250 "util/configlexer.lex" +#line 265 "util/configlexer.lex" { LEXOUT(("IQS ")); BEGIN(include_quoted); } YY_BREAK case 106: YY_RULE_SETUP -#line 251 "util/configlexer.lex" +#line 266 "util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include(yytext); - BEGIN(INITIAL); + BEGIN(inc_prev); } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 256 "util/configlexer.lex" +#line 271 "util/configlexer.lex" { yyerror("EOF inside quoted string"); - BEGIN(INITIAL); + BEGIN(inc_prev); } YY_BREAK case 107: YY_RULE_SETUP -#line 260 "util/configlexer.lex" +#line 275 "util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK case 108: /* rule 108 can match eol */ YY_RULE_SETUP -#line 261 "util/configlexer.lex" -{ yyerror("EOL before \" in include name"); - cfg_parser->line++; BEGIN(INITIAL); } +#line 276 "util/configlexer.lex" +{ yyerror("newline before \" in include name"); + cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK case 109: YY_RULE_SETUP -#line 263 "util/configlexer.lex" +#line 278 "util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; config_start_include(yytext); - BEGIN(INITIAL); + BEGIN(inc_prev); } YY_BREAK case YY_STATE_EOF(INITIAL): -#line 269 "util/configlexer.lex" +case YY_STATE_EOF(val): +#line 284 "util/configlexer.lex" { yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ if (config_include_stack_ptr == 0) { @@ -2250,16 +2279,31 @@ case YY_STATE_EOF(INITIAL): YY_BREAK case 110: YY_RULE_SETUP -#line 279 "util/configlexer.lex" +#line 294 "util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); + if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING; } YY_BREAK case 111: YY_RULE_SETUP -#line 282 "util/configlexer.lex" +#line 298 "util/configlexer.lex" +{ + ub_c_error_msg("unknown keyword '%s'", yytext); + } + YY_BREAK +case 112: +YY_RULE_SETUP +#line 301 "util/configlexer.lex" +{ + ub_c_error_msg("stray '%s'", yytext); + } + YY_BREAK +case 113: +YY_RULE_SETUP +#line 305 "util/configlexer.lex" ECHO; YY_BREAK -#line 2262 "" +#line 2306 "" case YY_END_OF_BUFFER: { @@ -2549,7 +2593,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1025 ) + if ( yy_current_state >= 1046 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2577,11 +2621,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1025 ) + if ( yy_current_state >= 1046 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 1024); + yy_is_jam = (yy_current_state == 1045); return yy_is_jam ? 0 : yy_current_state; } @@ -3218,7 +3262,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 282 "util/configlexer.lex" +#line 305 "util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 23864637f..2dc1335ab 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -25,7 +25,13 @@ void ub_c_error(const char *message); #define LEXOUT(s) #endif -#define YDOUT LEXOUT(("v(%s )", yytext)) +/** A parser variable, this is a statement in the config file which is + * of the form variable: value1 value2 ... nargs is the number of values. */ +#define YDVAR(nargs, var) \ + num_args=(nargs); \ + LEXOUT(("v(%s%d) ", yytext, num_args)); \ + if(num_args > 0) { BEGIN(val); } \ + return (var); struct inc_state { char* filename; @@ -34,6 +40,8 @@ struct inc_state { static struct inc_state parse_stack[MAXINCLUDES]; static YY_BUFFER_STATE include_stack[MAXINCLUDES]; static int config_include_stack_ptr = 0; +static int inc_prev = 0; +static int num_args = 0; static void config_start_include(const char* filename) { @@ -100,120 +108,125 @@ static void config_end_include(void) SPACE [ \t] LETTER [a-zA-Z] UNQUOTEDLETTER [^\'\"\n\r \t\\]|\\. +UNQUOTEDLETTER_NOCOLON [^\:\'\"\n\r \t\\]|\\. NEWLINE [\r\n] COMMENT \# COLON \: DQANY [^\"\n\r\\]|\\. SQANY [^\'\n\r\\]|\\. -%x quotedstring singlequotedstr include include_quoted +%x quotedstring singlequotedstr include include_quoted val %% -{SPACE}* { LEXOUT(("SP ")); /* ignore */ } -{SPACE}*{COMMENT}.* { LEXOUT(("comment(%s) ", yytext)); /* ignore */ } -server{COLON} { YDOUT; return VAR_SERVER;} -num-threads{COLON} { YDOUT; return VAR_NUM_THREADS;} -verbosity{COLON} { YDOUT; return VAR_VERBOSITY;} -port{COLON} { YDOUT; return VAR_PORT;} -outgoing-range{COLON} { YDOUT; return VAR_OUTGOING_RANGE;} -outgoing-port-permit{COLON} { YDOUT; return VAR_OUTGOING_PORT_PERMIT;} -outgoing-port-avoid{COLON} { YDOUT; return VAR_OUTGOING_PORT_AVOID;} -outgoing-num-tcp{COLON} { YDOUT; return VAR_OUTGOING_NUM_TCP;} -incoming-num-tcp{COLON} { YDOUT; return VAR_INCOMING_NUM_TCP;} -do-ip4{COLON} { YDOUT; return VAR_DO_IP4;} -do-ip6{COLON} { YDOUT; return VAR_DO_IP6;} -do-udp{COLON} { YDOUT; return VAR_DO_UDP;} -do-tcp{COLON} { YDOUT; return VAR_DO_TCP;} -do-daemonize{COLON} { YDOUT; return VAR_DO_DAEMONIZE;} -interface{COLON} { YDOUT; return VAR_INTERFACE;} -outgoing-interface{COLON} { YDOUT; return VAR_OUTGOING_INTERFACE;} -interface-automatic{COLON} { YDOUT; return VAR_INTERFACE_AUTOMATIC;} -chroot{COLON} { YDOUT; return VAR_CHROOT;} -username{COLON} { YDOUT; return VAR_USERNAME;} -directory{COLON} { YDOUT; return VAR_DIRECTORY;} -logfile{COLON} { YDOUT; return VAR_LOGFILE;} -pidfile{COLON} { YDOUT; return VAR_PIDFILE;} -root-hints{COLON} { YDOUT; return VAR_ROOT_HINTS;} -msg-buffer-size{COLON} { YDOUT; return VAR_MSG_BUFFER_SIZE;} -msg-cache-size{COLON} { YDOUT; return VAR_MSG_CACHE_SIZE;} -msg-cache-slabs{COLON} { YDOUT; return VAR_MSG_CACHE_SLABS;} -rrset-cache-size{COLON} { YDOUT; return VAR_RRSET_CACHE_SIZE;} -rrset-cache-slabs{COLON} { YDOUT; return VAR_RRSET_CACHE_SLABS;} -cache-max-ttl{COLON} { YDOUT; return VAR_CACHE_MAX_TTL;} -infra-host-ttl{COLON} { YDOUT; return VAR_INFRA_HOST_TTL;} -infra-lame-ttl{COLON} { YDOUT; return VAR_INFRA_LAME_TTL;} -infra-cache-slabs{COLON} { YDOUT; return VAR_INFRA_CACHE_SLABS;} -infra-cache-numhosts{COLON} { YDOUT; return VAR_INFRA_CACHE_NUMHOSTS;} -infra-cache-lame-size{COLON} { YDOUT; return VAR_INFRA_CACHE_LAME_SIZE;} -num-queries-per-thread{COLON} { YDOUT; return VAR_NUM_QUERIES_PER_THREAD;} -jostle-timeout{COLON} { YDOUT; return VAR_JOSTLE_TIMEOUT;} -target-fetch-policy{COLON} { YDOUT; return VAR_TARGET_FETCH_POLICY;} -harden-short-bufsize{COLON} { YDOUT; return VAR_HARDEN_SHORT_BUFSIZE;} -harden-large-queries{COLON} { YDOUT; return VAR_HARDEN_LARGE_QUERIES;} -harden-glue{COLON} { YDOUT; return VAR_HARDEN_GLUE;} -harden-dnssec-stripped{COLON} { YDOUT; return VAR_HARDEN_DNNSEC_STRIPPED;} -harden-referral-path{COLON} { YDOUT; return VAR_HARDEN_REFERRAL_PATH;} -use-caps-for-id{COLON} { YDOUT; return VAR_USE_CAPS_FOR_ID;} -unwanted-reply-threshold{COLON} { YDOUT; return VAR_UNWANTED_REPLY_THRESHOLD;} -private-address{COLON} { YDOUT; return VAR_PRIVATE_ADDRESS;} -private-domain{COLON} { YDOUT; return VAR_PRIVATE_DOMAIN;} -stub-zone{COLON} { YDOUT; return VAR_STUB_ZONE;} -name{COLON} { YDOUT; return VAR_NAME;} -stub-addr{COLON} { YDOUT; return VAR_STUB_ADDR;} -stub-host{COLON} { YDOUT; return VAR_STUB_HOST;} -stub-prime{COLON} { YDOUT; return VAR_STUB_PRIME;} -forward-zone{COLON} { YDOUT; return VAR_FORWARD_ZONE;} -forward-addr{COLON} { YDOUT; return VAR_FORWARD_ADDR;} -forward-host{COLON} { YDOUT; return VAR_FORWARD_HOST;} -do-not-query-address{COLON} { YDOUT; return VAR_DO_NOT_QUERY_ADDRESS;} -do-not-query-localhost{COLON} { YDOUT; return VAR_DO_NOT_QUERY_LOCALHOST;} -access-control{COLON} { YDOUT; return VAR_ACCESS_CONTROL;} -hide-identity{COLON} { YDOUT; return VAR_HIDE_IDENTITY;} -hide-version{COLON} { YDOUT; return VAR_HIDE_VERSION;} -identity{COLON} { YDOUT; return VAR_IDENTITY;} -version{COLON} { YDOUT; return VAR_VERSION;} -module-config{COLON} { YDOUT; return VAR_MODULE_CONF;} -dlv-anchor{COLON} { YDOUT; return VAR_DLV_ANCHOR;} -dlv-anchor-file{COLON} { YDOUT; return VAR_DLV_ANCHOR_FILE;} -trust-anchor-file{COLON} { YDOUT; return VAR_TRUST_ANCHOR_FILE;} -trusted-keys-file{COLON} { YDOUT; return VAR_TRUSTED_KEYS_FILE;} -trust-anchor{COLON} { YDOUT; return VAR_TRUST_ANCHOR;} -val-override-date{COLON} { YDOUT; return VAR_VAL_OVERRIDE_DATE;} -val-bogus-ttl{COLON} { YDOUT; return VAR_BOGUS_TTL;} -val-clean-additional{COLON} { YDOUT; return VAR_VAL_CLEAN_ADDITIONAL;} -val-permissive-mode{COLON} { YDOUT; return VAR_VAL_PERMISSIVE_MODE;} -key-cache-size{COLON} { YDOUT; return VAR_KEY_CACHE_SIZE;} -key-cache-slabs{COLON} { YDOUT; return VAR_KEY_CACHE_SLABS;} -neg-cache-size{COLON} { YDOUT; return VAR_NEG_CACHE_SIZE;} -val-nsec3-keysize-iterations{COLON} { YDOUT; return VAR_VAL_NSEC3_KEYSIZE_ITERATIONS;} -use-syslog{COLON} { YDOUT; return VAR_USE_SYSLOG;} -local-zone{COLON} { YDOUT; return VAR_LOCAL_ZONE;} -local-data{COLON} { YDOUT; return VAR_LOCAL_DATA;} -local-data-ptr{COLON} { YDOUT; return VAR_LOCAL_DATA_PTR;} -statistics-interval{COLON} { YDOUT; return VAR_STATISTICS_INTERVAL;} -statistics-cumulative{COLON} { YDOUT; return VAR_STATISTICS_CUMULATIVE;} -extended-statistics{COLON} { YDOUT; return VAR_EXTENDED_STATISTICS;} -remote-control{COLON} { YDOUT; return VAR_REMOTE_CONTROL; } -control-enable{COLON} { YDOUT; return VAR_CONTROL_ENABLE; } -control-interface{COLON} { YDOUT; return VAR_CONTROL_INTERFACE; } -control-port{COLON} { YDOUT; return VAR_CONTROL_PORT; } -server-key-file{COLON} { YDOUT; return VAR_SERVER_KEY_FILE; } -server-cert-file{COLON} { YDOUT; return VAR_SERVER_CERT_FILE; } -control-key-file{COLON} { YDOUT; return VAR_CONTROL_KEY_FILE; } -control-cert-file{COLON} { YDOUT; return VAR_CONTROL_CERT_FILE; } -{NEWLINE} { LEXOUT(("NL\n")); cfg_parser->line++;} +{SPACE}* { + LEXOUT(("SP ")); /* ignore */ } +{SPACE}*{COMMENT}.*$ { + LEXOUT(("comment(%s) ", yytext)); /* ignore */ } +server{COLON} { YDVAR(0, VAR_SERVER) } +num-threads{COLON} { YDVAR(1, VAR_NUM_THREADS) } +verbosity{COLON} { YDVAR(1, VAR_VERBOSITY) } +port{COLON} { YDVAR(1, VAR_PORT) } +outgoing-range{COLON} { YDVAR(1, VAR_OUTGOING_RANGE) } +outgoing-port-permit{COLON} { YDVAR(1, VAR_OUTGOING_PORT_PERMIT) } +outgoing-port-avoid{COLON} { YDVAR(1, VAR_OUTGOING_PORT_AVOID) } +outgoing-num-tcp{COLON} { YDVAR(1, VAR_OUTGOING_NUM_TCP) } +incoming-num-tcp{COLON} { YDVAR(1, VAR_INCOMING_NUM_TCP) } +do-ip4{COLON} { YDVAR(1, VAR_DO_IP4) } +do-ip6{COLON} { YDVAR(1, VAR_DO_IP6) } +do-udp{COLON} { YDVAR(1, VAR_DO_UDP) } +do-tcp{COLON} { YDVAR(1, VAR_DO_TCP) } +do-daemonize{COLON} { YDVAR(1, VAR_DO_DAEMONIZE) } +interface{COLON} { YDVAR(1, VAR_INTERFACE) } +outgoing-interface{COLON} { YDVAR(1, VAR_OUTGOING_INTERFACE) } +interface-automatic{COLON} { YDVAR(1, VAR_INTERFACE_AUTOMATIC) } +chroot{COLON} { YDVAR(1, VAR_CHROOT) } +username{COLON} { YDVAR(1, VAR_USERNAME) } +directory{COLON} { YDVAR(1, VAR_DIRECTORY) } +logfile{COLON} { YDVAR(1, VAR_LOGFILE) } +pidfile{COLON} { YDVAR(1, VAR_PIDFILE) } +root-hints{COLON} { YDVAR(1, VAR_ROOT_HINTS) } +msg-buffer-size{COLON} { YDVAR(1, VAR_MSG_BUFFER_SIZE) } +msg-cache-size{COLON} { YDVAR(1, VAR_MSG_CACHE_SIZE) } +msg-cache-slabs{COLON} { YDVAR(1, VAR_MSG_CACHE_SLABS) } +rrset-cache-size{COLON} { YDVAR(1, VAR_RRSET_CACHE_SIZE) } +rrset-cache-slabs{COLON} { YDVAR(1, VAR_RRSET_CACHE_SLABS) } +cache-max-ttl{COLON} { YDVAR(1, VAR_CACHE_MAX_TTL) } +infra-host-ttl{COLON} { YDVAR(1, VAR_INFRA_HOST_TTL) } +infra-lame-ttl{COLON} { YDVAR(1, VAR_INFRA_LAME_TTL) } +infra-cache-slabs{COLON} { YDVAR(1, VAR_INFRA_CACHE_SLABS) } +infra-cache-numhosts{COLON} { YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } +infra-cache-lame-size{COLON} { YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } +num-queries-per-thread{COLON} { YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } +jostle-timeout{COLON} { YDVAR(1, VAR_JOSTLE_TIMEOUT) } +target-fetch-policy{COLON} { YDVAR(1, VAR_TARGET_FETCH_POLICY) } +harden-short-bufsize{COLON} { YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } +harden-large-queries{COLON} { YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } +harden-glue{COLON} { YDVAR(1, VAR_HARDEN_GLUE) } +harden-dnssec-stripped{COLON} { YDVAR(1, VAR_HARDEN_DNNSEC_STRIPPED) } +harden-referral-path{COLON} { YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } +use-caps-for-id{COLON} { YDVAR(1, VAR_USE_CAPS_FOR_ID) } +unwanted-reply-threshold{COLON} { YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } +private-address{COLON} { YDVAR(1, VAR_PRIVATE_ADDRESS) } +private-domain{COLON} { YDVAR(1, VAR_PRIVATE_DOMAIN) } +stub-zone{COLON} { YDVAR(0, VAR_STUB_ZONE) } +name{COLON} { YDVAR(1, VAR_NAME) } +stub-addr{COLON} { YDVAR(1, VAR_STUB_ADDR) } +stub-host{COLON} { YDVAR(1, VAR_STUB_HOST) } +stub-prime{COLON} { YDVAR(1, VAR_STUB_PRIME) } +forward-zone{COLON} { YDVAR(0, VAR_FORWARD_ZONE) } +forward-addr{COLON} { YDVAR(1, VAR_FORWARD_ADDR) } +forward-host{COLON} { YDVAR(1, VAR_FORWARD_HOST) } +do-not-query-address{COLON} { YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } +do-not-query-localhost{COLON} { YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } +access-control{COLON} { YDVAR(2, VAR_ACCESS_CONTROL) } +hide-identity{COLON} { YDVAR(1, VAR_HIDE_IDENTITY) } +hide-version{COLON} { YDVAR(1, VAR_HIDE_VERSION) } +identity{COLON} { YDVAR(1, VAR_IDENTITY) } +version{COLON} { YDVAR(1, VAR_VERSION) } +module-config{COLON} { YDVAR(1, VAR_MODULE_CONF) } +dlv-anchor{COLON} { YDVAR(1, VAR_DLV_ANCHOR) } +dlv-anchor-file{COLON} { YDVAR(1, VAR_DLV_ANCHOR_FILE) } +trust-anchor-file{COLON} { YDVAR(1, VAR_TRUST_ANCHOR_FILE) } +trusted-keys-file{COLON} { YDVAR(1, VAR_TRUSTED_KEYS_FILE) } +trust-anchor{COLON} { YDVAR(1, VAR_TRUST_ANCHOR) } +val-override-date{COLON} { YDVAR(1, VAR_VAL_OVERRIDE_DATE) } +val-bogus-ttl{COLON} { YDVAR(1, VAR_BOGUS_TTL) } +val-clean-additional{COLON} { YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } +val-permissive-mode{COLON} { YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } +key-cache-size{COLON} { YDVAR(1, VAR_KEY_CACHE_SIZE) } +key-cache-slabs{COLON} { YDVAR(1, VAR_KEY_CACHE_SLABS) } +neg-cache-size{COLON} { YDVAR(1, VAR_NEG_CACHE_SIZE) } +val-nsec3-keysize-iterations{COLON} { + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } +use-syslog{COLON} { YDVAR(1, VAR_USE_SYSLOG) } +local-zone{COLON} { YDVAR(2, VAR_LOCAL_ZONE) } +local-data{COLON} { YDVAR(1, VAR_LOCAL_DATA) } +local-data-ptr{COLON} { YDVAR(1, VAR_LOCAL_DATA_PTR) } +statistics-interval{COLON} { YDVAR(1, VAR_STATISTICS_INTERVAL) } +statistics-cumulative{COLON} { YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +extended-statistics{COLON} { YDVAR(1, VAR_EXTENDED_STATISTICS) } +remote-control{COLON} { YDVAR(0, VAR_REMOTE_CONTROL) } +control-enable{COLON} { YDVAR(1, VAR_CONTROL_ENABLE) } +control-interface{COLON} { YDVAR(1, VAR_CONTROL_INTERFACE) } +control-port{COLON} { YDVAR(1, VAR_CONTROL_PORT) } +server-key-file{COLON} { YDVAR(1, VAR_SERVER_KEY_FILE) } +server-cert-file{COLON} { YDVAR(1, VAR_SERVER_CERT_FILE) } +control-key-file{COLON} { YDVAR(1, VAR_CONTROL_KEY_FILE) } +control-cert-file{COLON} { YDVAR(1, VAR_CONTROL_CERT_FILE) } +{NEWLINE} { LEXOUT(("NL\n")); cfg_parser->line++; } /* Quoted strings. Strip leading and ending quotes */ -\" { BEGIN(quotedstring); LEXOUT(("QS ")); } +\" { BEGIN(quotedstring); LEXOUT(("QS ")); } <> { yyerror("EOF inside quoted string"); - BEGIN(INITIAL); + if(--num_args == 0) { BEGIN(INITIAL); } } {DQANY}* { LEXOUT(("STR(%s) ", yytext)); yymore(); } -\n { cfg_parser->line++; yymore(); } +{NEWLINE} { yyerror("newline inside quoted string, no end \""); + cfg_parser->line++; BEGIN(INITIAL); } \" { LEXOUT(("QE ")); - BEGIN(INITIAL); + if(--num_args == 0) { BEGIN(INITIAL); } yytext[yyleng - 1] = '\0'; yylval.str = strdup(yytext); if(!yylval.str) @@ -222,16 +235,17 @@ control-cert-file{COLON} { YDOUT; return VAR_CONTROL_CERT_FILE; } } /* Single Quoted strings. Strip leading and ending quotes */ -\' { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } +\' { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } <> { yyerror("EOF inside quoted string"); - BEGIN(INITIAL); + if(--num_args == 0) { BEGIN(INITIAL); } } {SQANY}* { LEXOUT(("STR(%s) ", yytext)); yymore(); } -\n { cfg_parser->line++; yymore(); } +{NEWLINE} { yyerror("newline inside quoted string, no end '"); + cfg_parser->line++; BEGIN(INITIAL); } \' { LEXOUT(("SQE ")); - BEGIN(INITIAL); + if(--num_args == 0) { BEGIN(INITIAL); } yytext[yyleng - 1] = '\0'; yylval.str = strdup(yytext); if(!yylval.str) @@ -240,10 +254,11 @@ control-cert-file{COLON} { YDOUT; return VAR_CONTROL_CERT_FILE; } } /* include: directive */ -include{COLON} { LEXOUT(("v(%s) ", yytext)); BEGIN(include); } +include{COLON} { + LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } <> { yyerror("EOF inside include directive"); - BEGIN(INITIAL); + BEGIN(inc_prev); } {SPACE}* { LEXOUT(("ISP ")); /* ignore */ } {NEWLINE} { LEXOUT(("NL\n")); cfg_parser->line++;} @@ -251,22 +266,22 @@ include{COLON} { LEXOUT(("v(%s) ", yytext)); BEGIN(include); } {UNQUOTEDLETTER}* { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include(yytext); - BEGIN(INITIAL); + BEGIN(inc_prev); } <> { yyerror("EOF inside quoted string"); - BEGIN(INITIAL); + BEGIN(inc_prev); } {DQANY}* { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } -{NEWLINE} { yyerror("EOL before \" in include name"); - cfg_parser->line++; BEGIN(INITIAL); } +{NEWLINE} { yyerror("newline before \" in include name"); + cfg_parser->line++; BEGIN(inc_prev); } \" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; config_start_include(yytext); - BEGIN(INITIAL); + BEGIN(inc_prev); } -<> { +<> { yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ if (config_include_stack_ptr == 0) { yyterminate(); @@ -276,7 +291,15 @@ include{COLON} { LEXOUT(("v(%s) ", yytext)); BEGIN(include); } } } -{UNQUOTEDLETTER}* { LEXOUT(("unquotedstr(%s) ", yytext)); +{UNQUOTEDLETTER}* { LEXOUT(("unquotedstr(%s) ", yytext)); + if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING; } +{UNQUOTEDLETTER_NOCOLON}* { + ub_c_error_msg("unknown keyword '%s'", yytext); + } +. { + ub_c_error_msg("stray '%s'", yytext); + } + %%