From 35d2046918462fa9236c15d07bc716502bf5a20a Mon Sep 17 00:00:00 2001 From: Daniel Salzman <daniel.salzman@nic.cz> Date: Wed, 29 May 2013 10:28:11 +0200 Subject: [PATCH] zscanner: fix bad EUI separator warning refs #2388 Change-Id: Ib4b047618d84a3e0e38e809fcef748bff21fa5cc --- src/common/errcode.c | 1 + src/common/errcode.h | 1 + src/zscanner/scanner.c | 1214 +++++++++++++------------- src/zscanner/scanner_body.rl | 10 +- src/zscanner/test/cases/43_EUI48.out | 2 +- src/zscanner/test/cases/44_EUI64.out | 2 +- src/zscanner/test/processing.c | 1 + 7 files changed, 627 insertions(+), 604 deletions(-) diff --git a/src/common/errcode.c b/src/common/errcode.c index b9d588ae33..238639b732 100644 --- a/src/common/errcode.c +++ b/src/common/errcode.c @@ -148,6 +148,7 @@ const error_table_t knot_error_msgs[] = { { ZSCANNER_EBAD_EUI_LENGTH, "Bad EUI length." }, { ZSCANNER_EBAD_L64_LENGTH, "Bad 64-bit locator." }, { ZSCANNER_EBAD_CHAR_COLON, "Missing colon character." }, + { ZSCANNER_EBAD_CHAR_DASH, "Missing dash character." }, /* Encoding errors. */ { KNOT_BASE64_ESIZE, "Invalid base64 string length." }, diff --git a/src/common/errcode.h b/src/common/errcode.h index 29444af2c8..b85f6cb492 100644 --- a/src/common/errcode.h +++ b/src/common/errcode.h @@ -162,6 +162,7 @@ enum knot_error { ZSCANNER_EBAD_EUI_LENGTH, ZSCANNER_EBAD_L64_LENGTH, ZSCANNER_EBAD_CHAR_COLON, + ZSCANNER_EBAD_CHAR_DASH, /* Encoding errors. */ KNOT_BASE64_ESIZE, diff --git a/src/zscanner/scanner.c b/src/zscanner/scanner.c index ccd44b59e8..dd2d5a8c88 100644 --- a/src/zscanner/scanner.c +++ b/src/zscanner/scanner.c @@ -119,12 +119,12 @@ static const short _zone_scanner_actions[] = { 223, 1, 224, 1, 225, 1, 227, 1, 229, 1, 230, 1, 231, 1, 232, 1, 239, 1, 240, 1, 245, 1, 247, 1, - 251, 1, 254, 1, 255, 1, 256, 1, - 257, 1, 259, 1, 260, 1, 261, 1, - 262, 1, 264, 2, 0, 44, 2, 1, - 0, 2, 1, 27, 2, 1, 260, 2, - 1, 303, 2, 2, 27, 2, 2, 262, - 2, 3, 27, 2, 3, 262, 2, 4, + 252, 1, 255, 1, 256, 1, 257, 1, + 258, 1, 260, 1, 261, 1, 262, 1, + 263, 1, 265, 2, 0, 44, 2, 1, + 0, 2, 1, 27, 2, 1, 261, 2, + 1, 304, 2, 2, 27, 2, 2, 263, + 2, 3, 27, 2, 3, 263, 2, 4, 65, 2, 4, 69, 2, 5, 6, 2, 9, 10, 2, 12, 13, 2, 14, 10, 2, 14, 11, 2, 15, 20, 2, 15, @@ -136,26 +136,26 @@ static const short _zone_scanner_actions[] = { 2, 23, 3, 2, 23, 24, 2, 23, 228, 2, 25, 21, 2, 26, 1, 2, 26, 2, 2, 26, 3, 2, 26, 85, - 2, 26, 262, 2, 27, 1, 2, 27, + 2, 26, 263, 2, 27, 1, 2, 27, 2, 2, 27, 3, 2, 28, 4, 2, - 28, 259, 2, 28, 264, 2, 29, 21, + 28, 260, 2, 28, 265, 2, 29, 21, 2, 30, 0, 2, 30, 1, 2, 30, 2, 2, 30, 3, 2, 30, 24, 2, 31, 36, 2, 32, 31, 2, 33, 65, - 2, 33, 245, 2, 33, 259, 2, 33, - 264, 2, 37, 233, 2, 37, 234, 2, + 2, 33, 245, 2, 33, 260, 2, 33, + 265, 2, 37, 233, 2, 37, 234, 2, 37, 235, 2, 37, 236, 2, 37, 237, 2, 37, 238, 2, 40, 0, 2, 40, 1, 2, 40, 2, 2, 40, 3, 2, 41, 0, 2, 41, 1, 2, 41, 2, 2, 41, 3, 2, 41, 24, 2, 42, 0, 2, 42, 1, 2, 42, 2, 2, - 42, 3, 2, 43, 258, 2, 44, 1, + 42, 3, 2, 43, 259, 2, 44, 1, 2, 44, 2, 2, 44, 3, 2, 51, 2, 2, 51, 3, 2, 51, 42, 2, 51, 85, 2, 52, 53, 2, 54, 1, 2, 54, 2, 2, 54, 3, 2, 55, - 259, 2, 56, 0, 2, 57, 58, 2, + 260, 2, 56, 0, 2, 57, 58, 2, 59, 60, 2, 61, 0, 2, 61, 56, 2, 67, 19, 2, 71, 63, 2, 72, 2, 2, 72, 3, 2, 73, 4, 2, @@ -163,11 +163,11 @@ static const short _zone_scanner_actions[] = { 2, 80, 27, 2, 82, 83, 2, 84, 1, 2, 84, 2, 2, 84, 3, 2, 85, 1, 2, 85, 2, 2, 85, 3, - 2, 85, 262, 2, 86, 87, 2, 88, - 259, 2, 89, 90, 2, 91, 92, 2, + 2, 85, 263, 2, 86, 87, 2, 88, + 260, 2, 89, 90, 2, 91, 92, 2, 93, 94, 2, 93, 95, 2, 93, 96, - 2, 97, 98, 2, 99, 259, 2, 102, - 259, 2, 103, 0, 2, 119, 259, 2, + 2, 97, 98, 2, 99, 260, 2, 102, + 260, 2, 103, 0, 2, 119, 260, 2, 121, 0, 2, 122, 0, 2, 123, 0, 2, 124, 0, 2, 125, 0, 2, 126, 0, 2, 127, 0, 2, 128, 0, 2, @@ -177,7 +177,7 @@ static const short _zone_scanner_actions[] = { 137, 0, 2, 138, 0, 2, 139, 0, 2, 140, 0, 2, 141, 0, 2, 142, 0, 2, 143, 0, 2, 144, 0, 2, - 145, 259, 2, 146, 259, 2, 147, 259, + 145, 260, 2, 146, 260, 2, 147, 260, 2, 148, 1, 2, 148, 2, 2, 148, 3, 2, 149, 1, 2, 149, 2, 2, 149, 3, 2, 150, 1, 2, 150, 2, @@ -273,46 +273,46 @@ static const short _zone_scanner_actions[] = { 232, 2, 2, 232, 3, 2, 239, 1, 2, 239, 2, 2, 239, 3, 2, 240, 1, 2, 240, 2, 2, 240, 3, 2, - 243, 0, 2, 244, 259, 2, 246, 100, - 2, 250, 100, 2, 259, 4, 2, 260, - 1, 2, 260, 27, 2, 262, 2, 2, - 262, 3, 2, 263, 260, 2, 264, 4, - 2, 264, 259, 2, 265, 258, 2, 266, - 258, 2, 267, 258, 2, 268, 258, 2, - 269, 258, 2, 270, 258, 2, 271, 258, - 2, 272, 258, 2, 273, 258, 2, 274, - 258, 2, 275, 258, 2, 276, 258, 2, - 277, 258, 2, 278, 258, 2, 279, 258, - 2, 280, 258, 2, 281, 258, 2, 282, - 258, 2, 283, 258, 2, 284, 258, 2, - 285, 258, 2, 286, 258, 2, 287, 258, - 2, 288, 258, 2, 289, 258, 2, 290, - 258, 2, 291, 258, 2, 292, 258, 2, - 293, 258, 2, 294, 258, 2, 295, 258, - 2, 296, 258, 2, 297, 258, 2, 298, - 258, 2, 299, 258, 2, 300, 258, 2, - 301, 258, 2, 302, 258, 2, 303, 1, + 243, 0, 2, 244, 260, 2, 246, 100, + 2, 251, 100, 2, 260, 4, 2, 261, + 1, 2, 261, 27, 2, 263, 2, 2, + 263, 3, 2, 264, 261, 2, 265, 4, + 2, 265, 260, 2, 266, 259, 2, 267, + 259, 2, 268, 259, 2, 269, 259, 2, + 270, 259, 2, 271, 259, 2, 272, 259, + 2, 273, 259, 2, 274, 259, 2, 275, + 259, 2, 276, 259, 2, 277, 259, 2, + 278, 259, 2, 279, 259, 2, 280, 259, + 2, 281, 259, 2, 282, 259, 2, 283, + 259, 2, 284, 259, 2, 285, 259, 2, + 286, 259, 2, 287, 259, 2, 288, 259, + 2, 289, 259, 2, 290, 259, 2, 291, + 259, 2, 292, 259, 2, 293, 259, 2, + 294, 259, 2, 295, 259, 2, 296, 259, + 2, 297, 259, 2, 298, 259, 2, 299, + 259, 2, 300, 259, 2, 301, 259, 2, + 302, 259, 2, 303, 259, 2, 304, 1, 3, 0, 44, 1, 3, 0, 44, 2, 3, 0, 44, 3, 3, 1, 77, 0, 3, 1, 103, 0, 3, 1, 226, 0, - 3, 1, 243, 0, 3, 1, 260, 27, - 3, 1, 260, 303, 3, 1, 262, 303, - 3, 1, 303, 27, 3, 7, 1, 8, + 3, 1, 243, 0, 3, 1, 261, 27, + 3, 1, 261, 304, 3, 1, 263, 304, + 3, 1, 304, 27, 3, 7, 1, 8, 3, 11, 17, 0, 3, 16, 75, 2, 3, 16, 75, 3, 3, 19, 9, 10, 3, 23, 1, 0, 3, 23, 24, 1, 3, 23, 24, 2, 3, 23, 24, 3, 3, 26, 1, 85, 3, 26, 2, 85, - 3, 26, 2, 262, 3, 26, 3, 85, - 3, 26, 3, 262, 3, 26, 85, 262, - 3, 26, 263, 260, 3, 26, 265, 258, - 3, 28, 81, 4, 3, 28, 259, 4, - 3, 28, 264, 4, 3, 28, 264, 259, + 3, 26, 2, 263, 3, 26, 3, 85, + 3, 26, 3, 263, 3, 26, 85, 263, + 3, 26, 264, 261, 3, 26, 266, 259, + 3, 28, 81, 4, 3, 28, 260, 4, + 3, 28, 265, 4, 3, 28, 265, 260, 3, 30, 1, 0, 3, 30, 24, 1, 3, 30, 24, 2, 3, 30, 24, 3, - 3, 30, 24, 228, 3, 32, 31, 260, - 3, 33, 145, 259, 3, 33, 147, 259, - 3, 33, 264, 4, 3, 33, 264, 259, + 3, 30, 24, 228, 3, 32, 31, 261, + 3, 33, 145, 260, 3, 33, 147, 260, + 3, 33, 265, 4, 3, 33, 265, 260, 3, 35, 37, 233, 3, 35, 37, 234, 3, 35, 37, 235, 3, 35, 37, 236, 3, 35, 37, 237, 3, 35, 37, 238, @@ -326,10 +326,10 @@ static const short _zone_scanner_actions[] = { 3, 37, 237, 3, 3, 37, 238, 1, 3, 37, 238, 2, 3, 37, 238, 3, 3, 41, 24, 1, 3, 41, 24, 2, - 3, 41, 24, 3, 3, 43, 258, 1, - 3, 43, 258, 2, 3, 43, 258, 3, - 3, 43, 258, 260, 3, 45, 33, 65, - 3, 45, 33, 259, 3, 45, 33, 264, + 3, 41, 24, 3, 3, 43, 259, 1, + 3, 43, 259, 2, 3, 43, 259, 3, + 3, 43, 259, 261, 3, 45, 33, 65, + 3, 45, 33, 260, 3, 45, 33, 265, 3, 50, 32, 31, 3, 51, 42, 0, 3, 51, 42, 1, 3, 51, 42, 2, 3, 51, 42, 3, 3, 51, 85, 1, @@ -340,16 +340,16 @@ static const short _zone_scanner_actions[] = { 3, 77, 0, 1, 3, 80, 25, 21, 3, 80, 27, 1, 3, 80, 27, 2, 3, 80, 27, 3, 3, 82, 25, 21, - 3, 82, 83, 260, 3, 85, 2, 262, - 3, 85, 3, 262, 3, 88, 99, 259, - 3, 88, 145, 259, 3, 89, 90, 0, + 3, 82, 83, 261, 3, 85, 2, 263, + 3, 85, 3, 263, 3, 88, 99, 260, + 3, 88, 145, 260, 3, 89, 90, 0, 3, 89, 90, 1, 3, 89, 90, 2, 3, 89, 90, 3, 3, 91, 92, 0, 3, 91, 92, 1, 3, 91, 92, 2, 3, 91, 92, 3, 3, 97, 98, 0, 3, 97, 98, 1, 3, 97, 98, 2, 3, 97, 98, 3, 3, 102, 104, 245, - 3, 102, 253, 259, 3, 145, 146, 259, + 3, 102, 254, 260, 3, 145, 146, 260, 3, 186, 226, 0, 3, 187, 226, 0, 3, 188, 226, 0, 3, 189, 226, 0, 3, 190, 226, 0, 3, 191, 226, 0, @@ -371,197 +371,197 @@ static const short _zone_scanner_actions[] = { 3, 222, 226, 0, 3, 223, 226, 0, 3, 224, 226, 0, 3, 225, 226, 0, 3, 242, 32, 31, 3, 247, 248, 0, - 3, 247, 249, 0, 3, 251, 252, 0, - 3, 253, 102, 259, 3, 259, 4, 81, - 3, 260, 25, 21, 3, 260, 303, 1, - 3, 262, 303, 1, 3, 264, 259, 4, - 3, 265, 258, 1, 3, 265, 258, 2, - 3, 265, 258, 3, 3, 265, 258, 260, - 3, 265, 258, 262, 3, 266, 258, 1, - 3, 266, 258, 2, 3, 266, 258, 3, - 3, 266, 258, 260, 3, 267, 258, 1, - 3, 267, 258, 2, 3, 267, 258, 3, - 3, 267, 258, 260, 3, 268, 258, 1, - 3, 268, 258, 2, 3, 268, 258, 3, - 3, 268, 258, 260, 3, 269, 258, 1, - 3, 269, 258, 2, 3, 269, 258, 3, - 3, 269, 258, 260, 3, 270, 258, 1, - 3, 270, 258, 2, 3, 270, 258, 3, - 3, 270, 258, 260, 3, 271, 258, 1, - 3, 271, 258, 2, 3, 271, 258, 3, - 3, 271, 258, 260, 3, 272, 258, 1, - 3, 272, 258, 2, 3, 272, 258, 3, - 3, 272, 258, 260, 3, 273, 258, 1, - 3, 273, 258, 2, 3, 273, 258, 3, - 3, 273, 258, 260, 3, 274, 258, 1, - 3, 274, 258, 2, 3, 274, 258, 3, - 3, 274, 258, 260, 3, 275, 258, 1, - 3, 275, 258, 2, 3, 275, 258, 3, - 3, 275, 258, 260, 3, 276, 258, 1, - 3, 276, 258, 2, 3, 276, 258, 3, - 3, 276, 258, 260, 3, 277, 258, 1, - 3, 277, 258, 2, 3, 277, 258, 3, - 3, 277, 258, 260, 3, 278, 258, 1, - 3, 278, 258, 2, 3, 278, 258, 3, - 3, 278, 258, 260, 3, 279, 258, 1, - 3, 279, 258, 2, 3, 279, 258, 3, - 3, 279, 258, 260, 3, 280, 258, 1, - 3, 280, 258, 2, 3, 280, 258, 3, - 3, 280, 258, 260, 3, 281, 258, 1, - 3, 281, 258, 2, 3, 281, 258, 3, - 3, 281, 258, 260, 3, 282, 258, 1, - 3, 282, 258, 2, 3, 282, 258, 3, - 3, 282, 258, 260, 3, 283, 258, 1, - 3, 283, 258, 2, 3, 283, 258, 3, - 3, 283, 258, 260, 3, 284, 258, 1, - 3, 284, 258, 2, 3, 284, 258, 3, - 3, 284, 258, 260, 3, 285, 258, 1, - 3, 285, 258, 2, 3, 285, 258, 3, - 3, 285, 258, 260, 3, 286, 258, 1, - 3, 286, 258, 2, 3, 286, 258, 3, - 3, 286, 258, 260, 3, 287, 258, 1, - 3, 287, 258, 2, 3, 287, 258, 3, - 3, 287, 258, 260, 3, 288, 258, 1, - 3, 288, 258, 2, 3, 288, 258, 3, - 3, 288, 258, 260, 3, 289, 258, 1, - 3, 289, 258, 2, 3, 289, 258, 3, - 3, 289, 258, 260, 3, 290, 258, 1, - 3, 290, 258, 2, 3, 290, 258, 3, - 3, 290, 258, 260, 3, 291, 258, 1, - 3, 291, 258, 2, 3, 291, 258, 3, - 3, 291, 258, 260, 3, 292, 258, 1, - 3, 292, 258, 2, 3, 292, 258, 3, - 3, 292, 258, 260, 3, 293, 258, 1, - 3, 293, 258, 2, 3, 293, 258, 3, - 3, 293, 258, 260, 3, 294, 258, 1, - 3, 294, 258, 2, 3, 294, 258, 3, - 3, 294, 258, 260, 3, 295, 258, 1, - 3, 295, 258, 2, 3, 295, 258, 3, - 3, 295, 258, 260, 3, 296, 258, 1, - 3, 296, 258, 2, 3, 296, 258, 3, - 3, 296, 258, 260, 3, 297, 258, 1, - 3, 297, 258, 2, 3, 297, 258, 3, - 3, 297, 258, 260, 3, 298, 258, 1, - 3, 298, 258, 2, 3, 298, 258, 3, - 3, 298, 258, 260, 3, 299, 258, 1, - 3, 299, 258, 2, 3, 299, 258, 3, - 3, 299, 258, 260, 3, 300, 258, 1, - 3, 300, 258, 2, 3, 300, 258, 3, - 3, 300, 258, 260, 3, 301, 258, 1, - 3, 301, 258, 2, 3, 301, 258, 3, - 3, 301, 258, 260, 3, 302, 258, 1, - 3, 302, 258, 2, 3, 302, 258, 3, - 3, 302, 258, 260, 3, 303, 1, 27, - 4, 5, 7, 1, 8, 4, 14, 11, - 17, 0, 4, 16, 68, 0, 1, 4, - 26, 1, 262, 303, 4, 26, 1, 263, - 260, 4, 26, 1, 265, 258, 4, 26, - 2, 85, 262, 4, 26, 2, 263, 260, - 4, 26, 2, 265, 258, 4, 26, 3, - 85, 262, 4, 26, 3, 263, 260, 4, - 26, 3, 265, 258, 4, 26, 265, 258, - 260, 4, 26, 265, 258, 262, 4, 28, - 33, 264, 4, 4, 28, 45, 33, 264, - 4, 28, 264, 259, 4, 4, 32, 31, - 25, 21, 4, 33, 264, 259, 4, 4, - 35, 32, 31, 36, 4, 35, 37, 233, - 1, 4, 35, 37, 233, 2, 4, 35, - 37, 233, 3, 4, 35, 37, 234, 1, - 4, 35, 37, 234, 2, 4, 35, 37, - 234, 3, 4, 35, 37, 235, 1, 4, - 35, 37, 235, 2, 4, 35, 37, 235, - 3, 4, 35, 37, 236, 1, 4, 35, - 37, 236, 2, 4, 35, 37, 236, 3, - 4, 35, 37, 237, 1, 4, 35, 37, - 237, 2, 4, 35, 37, 237, 3, 4, - 35, 37, 238, 1, 4, 35, 37, 238, - 2, 4, 35, 37, 238, 3, 4, 37, - 235, 243, 0, 4, 37, 236, 243, 0, - 4, 37, 237, 243, 0, 4, 37, 238, - 243, 0, 4, 38, 34, 32, 31, 4, - 39, 34, 32, 31, 4, 43, 258, 1, - 260, 4, 45, 33, 4, 65, 4, 51, - 50, 32, 31, 4, 51, 64, 0, 1, - 4, 67, 19, 9, 10, 4, 72, 77, - 0, 1, 4, 74, 19, 9, 10, 4, - 82, 83, 25, 21, 4, 85, 1, 262, - 303, 4, 88, 145, 146, 259, 4, 89, - 90, 1, 0, 4, 91, 92, 1, 0, - 4, 97, 98, 1, 0, 4, 186, 1, - 226, 0, 4, 187, 1, 226, 0, 4, - 188, 1, 226, 0, 4, 189, 1, 226, - 0, 4, 190, 1, 226, 0, 4, 191, - 1, 226, 0, 4, 192, 1, 226, 0, - 4, 193, 1, 226, 0, 4, 194, 1, - 226, 0, 4, 195, 1, 226, 0, 4, - 196, 1, 226, 0, 4, 197, 1, 226, - 0, 4, 198, 1, 226, 0, 4, 199, - 1, 226, 0, 4, 200, 1, 226, 0, - 4, 201, 1, 226, 0, 4, 202, 1, - 226, 0, 4, 203, 1, 226, 0, 4, - 204, 1, 226, 0, 4, 205, 1, 226, - 0, 4, 206, 1, 226, 0, 4, 207, - 1, 226, 0, 4, 208, 1, 226, 0, - 4, 209, 1, 226, 0, 4, 210, 1, - 226, 0, 4, 211, 1, 226, 0, 4, - 212, 1, 226, 0, 4, 213, 1, 226, - 0, 4, 214, 1, 226, 0, 4, 215, - 1, 226, 0, 4, 216, 1, 226, 0, - 4, 217, 1, 226, 0, 4, 218, 1, - 226, 0, 4, 219, 1, 226, 0, 4, - 220, 1, 226, 0, 4, 221, 1, 226, - 0, 4, 222, 1, 226, 0, 4, 223, - 1, 226, 0, 4, 224, 1, 226, 0, - 4, 225, 1, 226, 0, 4, 265, 258, - 1, 260, 4, 265, 258, 2, 262, 4, - 265, 258, 3, 262, 4, 265, 258, 262, - 260, 4, 266, 258, 1, 260, 4, 267, - 258, 1, 260, 4, 268, 258, 1, 260, - 4, 269, 258, 1, 260, 4, 270, 258, - 1, 260, 4, 271, 258, 1, 260, 4, - 272, 258, 1, 260, 4, 273, 258, 1, - 260, 4, 274, 258, 1, 260, 4, 275, - 258, 1, 260, 4, 276, 258, 1, 260, - 4, 277, 258, 1, 260, 4, 278, 258, - 1, 260, 4, 279, 258, 1, 260, 4, - 280, 258, 1, 260, 4, 281, 258, 1, - 260, 4, 282, 258, 1, 260, 4, 283, - 258, 1, 260, 4, 284, 258, 1, 260, - 4, 285, 258, 1, 260, 4, 286, 258, - 1, 260, 4, 287, 258, 1, 260, 4, - 288, 258, 1, 260, 4, 289, 258, 1, - 260, 4, 290, 258, 1, 260, 4, 291, - 258, 1, 260, 4, 292, 258, 1, 260, - 4, 293, 258, 1, 260, 4, 294, 258, - 1, 260, 4, 295, 258, 1, 260, 4, - 296, 258, 1, 260, 4, 297, 258, 1, - 260, 4, 298, 258, 1, 260, 4, 299, - 258, 1, 260, 4, 300, 258, 1, 260, - 4, 301, 258, 1, 260, 4, 302, 258, - 1, 260, 5, 16, 75, 77, 0, 1, - 5, 26, 1, 85, 262, 303, 5, 26, - 1, 265, 258, 260, 5, 26, 2, 265, - 258, 262, 5, 26, 3, 265, 258, 262, - 5, 26, 265, 258, 262, 260, 5, 28, - 33, 264, 259, 4, 5, 32, 31, 260, - 25, 21, 5, 35, 37, 235, 243, 0, - 5, 35, 37, 236, 243, 0, 5, 35, - 37, 237, 243, 0, 5, 35, 37, 238, - 243, 0, 5, 37, 235, 1, 243, 0, - 5, 37, 236, 1, 243, 0, 5, 37, - 237, 1, 243, 0, 5, 37, 238, 1, - 243, 0, 5, 45, 33, 264, 259, 4, - 5, 82, 83, 260, 25, 21, 5, 241, - 38, 34, 32, 31, 5, 265, 258, 1, - 262, 303, 6, 26, 1, 265, 258, 262, - 303, 6, 28, 45, 33, 264, 259, 4, - 6, 35, 37, 235, 1, 243, 0, 6, - 35, 37, 236, 1, 243, 0, 6, 35, - 37, 237, 1, 243, 0, 6, 35, 37, - 238, 1, 243, 0, 6, 265, 258, 1, - 262, 260, 303, 6, 265, 258, 262, 260, - 303, 1, 7, 26, 1, 265, 258, 262, - 260, 303 + 3, 247, 249, 0, 3, 250, 102, 260, + 3, 252, 253, 0, 3, 254, 102, 260, + 3, 260, 4, 81, 3, 261, 25, 21, + 3, 261, 304, 1, 3, 263, 304, 1, + 3, 265, 260, 4, 3, 266, 259, 1, + 3, 266, 259, 2, 3, 266, 259, 3, + 3, 266, 259, 261, 3, 266, 259, 263, + 3, 267, 259, 1, 3, 267, 259, 2, + 3, 267, 259, 3, 3, 267, 259, 261, + 3, 268, 259, 1, 3, 268, 259, 2, + 3, 268, 259, 3, 3, 268, 259, 261, + 3, 269, 259, 1, 3, 269, 259, 2, + 3, 269, 259, 3, 3, 269, 259, 261, + 3, 270, 259, 1, 3, 270, 259, 2, + 3, 270, 259, 3, 3, 270, 259, 261, + 3, 271, 259, 1, 3, 271, 259, 2, + 3, 271, 259, 3, 3, 271, 259, 261, + 3, 272, 259, 1, 3, 272, 259, 2, + 3, 272, 259, 3, 3, 272, 259, 261, + 3, 273, 259, 1, 3, 273, 259, 2, + 3, 273, 259, 3, 3, 273, 259, 261, + 3, 274, 259, 1, 3, 274, 259, 2, + 3, 274, 259, 3, 3, 274, 259, 261, + 3, 275, 259, 1, 3, 275, 259, 2, + 3, 275, 259, 3, 3, 275, 259, 261, + 3, 276, 259, 1, 3, 276, 259, 2, + 3, 276, 259, 3, 3, 276, 259, 261, + 3, 277, 259, 1, 3, 277, 259, 2, + 3, 277, 259, 3, 3, 277, 259, 261, + 3, 278, 259, 1, 3, 278, 259, 2, + 3, 278, 259, 3, 3, 278, 259, 261, + 3, 279, 259, 1, 3, 279, 259, 2, + 3, 279, 259, 3, 3, 279, 259, 261, + 3, 280, 259, 1, 3, 280, 259, 2, + 3, 280, 259, 3, 3, 280, 259, 261, + 3, 281, 259, 1, 3, 281, 259, 2, + 3, 281, 259, 3, 3, 281, 259, 261, + 3, 282, 259, 1, 3, 282, 259, 2, + 3, 282, 259, 3, 3, 282, 259, 261, + 3, 283, 259, 1, 3, 283, 259, 2, + 3, 283, 259, 3, 3, 283, 259, 261, + 3, 284, 259, 1, 3, 284, 259, 2, + 3, 284, 259, 3, 3, 284, 259, 261, + 3, 285, 259, 1, 3, 285, 259, 2, + 3, 285, 259, 3, 3, 285, 259, 261, + 3, 286, 259, 1, 3, 286, 259, 2, + 3, 286, 259, 3, 3, 286, 259, 261, + 3, 287, 259, 1, 3, 287, 259, 2, + 3, 287, 259, 3, 3, 287, 259, 261, + 3, 288, 259, 1, 3, 288, 259, 2, + 3, 288, 259, 3, 3, 288, 259, 261, + 3, 289, 259, 1, 3, 289, 259, 2, + 3, 289, 259, 3, 3, 289, 259, 261, + 3, 290, 259, 1, 3, 290, 259, 2, + 3, 290, 259, 3, 3, 290, 259, 261, + 3, 291, 259, 1, 3, 291, 259, 2, + 3, 291, 259, 3, 3, 291, 259, 261, + 3, 292, 259, 1, 3, 292, 259, 2, + 3, 292, 259, 3, 3, 292, 259, 261, + 3, 293, 259, 1, 3, 293, 259, 2, + 3, 293, 259, 3, 3, 293, 259, 261, + 3, 294, 259, 1, 3, 294, 259, 2, + 3, 294, 259, 3, 3, 294, 259, 261, + 3, 295, 259, 1, 3, 295, 259, 2, + 3, 295, 259, 3, 3, 295, 259, 261, + 3, 296, 259, 1, 3, 296, 259, 2, + 3, 296, 259, 3, 3, 296, 259, 261, + 3, 297, 259, 1, 3, 297, 259, 2, + 3, 297, 259, 3, 3, 297, 259, 261, + 3, 298, 259, 1, 3, 298, 259, 2, + 3, 298, 259, 3, 3, 298, 259, 261, + 3, 299, 259, 1, 3, 299, 259, 2, + 3, 299, 259, 3, 3, 299, 259, 261, + 3, 300, 259, 1, 3, 300, 259, 2, + 3, 300, 259, 3, 3, 300, 259, 261, + 3, 301, 259, 1, 3, 301, 259, 2, + 3, 301, 259, 3, 3, 301, 259, 261, + 3, 302, 259, 1, 3, 302, 259, 2, + 3, 302, 259, 3, 3, 302, 259, 261, + 3, 303, 259, 1, 3, 303, 259, 2, + 3, 303, 259, 3, 3, 303, 259, 261, + 3, 304, 1, 27, 4, 5, 7, 1, + 8, 4, 14, 11, 17, 0, 4, 16, + 68, 0, 1, 4, 26, 1, 263, 304, + 4, 26, 1, 264, 261, 4, 26, 1, + 266, 259, 4, 26, 2, 85, 263, 4, + 26, 2, 264, 261, 4, 26, 2, 266, + 259, 4, 26, 3, 85, 263, 4, 26, + 3, 264, 261, 4, 26, 3, 266, 259, + 4, 26, 266, 259, 261, 4, 26, 266, + 259, 263, 4, 28, 33, 265, 4, 4, + 28, 45, 33, 265, 4, 28, 265, 260, + 4, 4, 32, 31, 25, 21, 4, 33, + 265, 260, 4, 4, 35, 32, 31, 36, + 4, 35, 37, 233, 1, 4, 35, 37, + 233, 2, 4, 35, 37, 233, 3, 4, + 35, 37, 234, 1, 4, 35, 37, 234, + 2, 4, 35, 37, 234, 3, 4, 35, + 37, 235, 1, 4, 35, 37, 235, 2, + 4, 35, 37, 235, 3, 4, 35, 37, + 236, 1, 4, 35, 37, 236, 2, 4, + 35, 37, 236, 3, 4, 35, 37, 237, + 1, 4, 35, 37, 237, 2, 4, 35, + 37, 237, 3, 4, 35, 37, 238, 1, + 4, 35, 37, 238, 2, 4, 35, 37, + 238, 3, 4, 37, 235, 243, 0, 4, + 37, 236, 243, 0, 4, 37, 237, 243, + 0, 4, 37, 238, 243, 0, 4, 38, + 34, 32, 31, 4, 39, 34, 32, 31, + 4, 43, 259, 1, 261, 4, 45, 33, + 4, 65, 4, 51, 50, 32, 31, 4, + 51, 64, 0, 1, 4, 67, 19, 9, + 10, 4, 72, 77, 0, 1, 4, 74, + 19, 9, 10, 4, 82, 83, 25, 21, + 4, 85, 1, 263, 304, 4, 88, 145, + 146, 260, 4, 89, 90, 1, 0, 4, + 91, 92, 1, 0, 4, 97, 98, 1, + 0, 4, 186, 1, 226, 0, 4, 187, + 1, 226, 0, 4, 188, 1, 226, 0, + 4, 189, 1, 226, 0, 4, 190, 1, + 226, 0, 4, 191, 1, 226, 0, 4, + 192, 1, 226, 0, 4, 193, 1, 226, + 0, 4, 194, 1, 226, 0, 4, 195, + 1, 226, 0, 4, 196, 1, 226, 0, + 4, 197, 1, 226, 0, 4, 198, 1, + 226, 0, 4, 199, 1, 226, 0, 4, + 200, 1, 226, 0, 4, 201, 1, 226, + 0, 4, 202, 1, 226, 0, 4, 203, + 1, 226, 0, 4, 204, 1, 226, 0, + 4, 205, 1, 226, 0, 4, 206, 1, + 226, 0, 4, 207, 1, 226, 0, 4, + 208, 1, 226, 0, 4, 209, 1, 226, + 0, 4, 210, 1, 226, 0, 4, 211, + 1, 226, 0, 4, 212, 1, 226, 0, + 4, 213, 1, 226, 0, 4, 214, 1, + 226, 0, 4, 215, 1, 226, 0, 4, + 216, 1, 226, 0, 4, 217, 1, 226, + 0, 4, 218, 1, 226, 0, 4, 219, + 1, 226, 0, 4, 220, 1, 226, 0, + 4, 221, 1, 226, 0, 4, 222, 1, + 226, 0, 4, 223, 1, 226, 0, 4, + 224, 1, 226, 0, 4, 225, 1, 226, + 0, 4, 266, 259, 1, 261, 4, 266, + 259, 2, 263, 4, 266, 259, 3, 263, + 4, 266, 259, 263, 261, 4, 267, 259, + 1, 261, 4, 268, 259, 1, 261, 4, + 269, 259, 1, 261, 4, 270, 259, 1, + 261, 4, 271, 259, 1, 261, 4, 272, + 259, 1, 261, 4, 273, 259, 1, 261, + 4, 274, 259, 1, 261, 4, 275, 259, + 1, 261, 4, 276, 259, 1, 261, 4, + 277, 259, 1, 261, 4, 278, 259, 1, + 261, 4, 279, 259, 1, 261, 4, 280, + 259, 1, 261, 4, 281, 259, 1, 261, + 4, 282, 259, 1, 261, 4, 283, 259, + 1, 261, 4, 284, 259, 1, 261, 4, + 285, 259, 1, 261, 4, 286, 259, 1, + 261, 4, 287, 259, 1, 261, 4, 288, + 259, 1, 261, 4, 289, 259, 1, 261, + 4, 290, 259, 1, 261, 4, 291, 259, + 1, 261, 4, 292, 259, 1, 261, 4, + 293, 259, 1, 261, 4, 294, 259, 1, + 261, 4, 295, 259, 1, 261, 4, 296, + 259, 1, 261, 4, 297, 259, 1, 261, + 4, 298, 259, 1, 261, 4, 299, 259, + 1, 261, 4, 300, 259, 1, 261, 4, + 301, 259, 1, 261, 4, 302, 259, 1, + 261, 4, 303, 259, 1, 261, 5, 16, + 75, 77, 0, 1, 5, 26, 1, 85, + 263, 304, 5, 26, 1, 266, 259, 261, + 5, 26, 2, 266, 259, 263, 5, 26, + 3, 266, 259, 263, 5, 26, 266, 259, + 263, 261, 5, 28, 33, 265, 260, 4, + 5, 32, 31, 261, 25, 21, 5, 35, + 37, 235, 243, 0, 5, 35, 37, 236, + 243, 0, 5, 35, 37, 237, 243, 0, + 5, 35, 37, 238, 243, 0, 5, 37, + 235, 1, 243, 0, 5, 37, 236, 1, + 243, 0, 5, 37, 237, 1, 243, 0, + 5, 37, 238, 1, 243, 0, 5, 45, + 33, 265, 260, 4, 5, 82, 83, 261, + 25, 21, 5, 241, 38, 34, 32, 31, + 5, 266, 259, 1, 263, 304, 6, 26, + 1, 266, 259, 263, 304, 6, 28, 45, + 33, 265, 260, 4, 6, 35, 37, 235, + 1, 243, 0, 6, 35, 37, 236, 1, + 243, 0, 6, 35, 37, 237, 1, 243, + 0, 6, 35, 37, 238, 1, 243, 0, + 6, 266, 259, 1, 263, 261, 304, 6, + 266, 259, 263, 261, 304, 1, 7, 26, + 1, 266, 259, 263, 261, 304 }; static const short _zone_scanner_cond_offsets[] = { @@ -3838,55 +3838,55 @@ static const short _zone_scanner_indicies[] = { 3136, 3136, 2275, 3137, 3137, 3137, 2275, 3138, 3138, 3138, 2275, 3140, 3134, 3140, 3140, 3140, 3139, 3128, 3129, 69, 3141, 3141, 3141, 2275, - 3142, 3142, 3142, 2275, 3143, 2275, 3144, 3144, - 3144, 2275, 3145, 3145, 3145, 2275, 3146, 3143, - 3146, 3146, 3146, 2275, 3147, 3147, 3147, 2275, - 3148, 3148, 3148, 2275, 3149, 2275, 3150, 3150, - 3150, 2275, 3151, 3151, 3151, 2275, 3152, 3149, - 3152, 3152, 3152, 2275, 3154, 3154, 3155, 3156, - 3157, 3158, 3158, 3158, 19, 20, 3159, 3160, - 3158, 3158, 3158, 3153, 3161, 3161, 3162, 3163, - 3164, 3165, 67, 3166, 3165, 19, 20, 3167, - 3168, 121, 122, 3169, 3170, 67, 67, 3165, - 67, 3165, 67, 3165, 67, 697, 3172, 3172, - 3155, 3173, 3174, 3158, 3175, 3176, 3177, 3178, - 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, - 3187, 3188, 3158, 3158, 3175, 3176, 3177, 3178, - 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, - 3187, 3188, 19, 20, 3189, 3190, 3158, 3158, - 3158, 3171, 3172, 3172, 3155, 3173, 3174, 3158, - 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, - 3201, 3202, 3203, 3204, 3205, 3206, 3158, 3158, - 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, - 3201, 3202, 3203, 3204, 3205, 3206, 19, 20, - 3189, 3190, 3158, 3192, 3158, 3158, 3191, 3208, - 3208, 3209, 3210, 3211, 3212, 3212, 3212, 3213, - 3214, 3215, 3216, 3212, 3212, 3212, 3207, 3154, - 3154, 3155, 3217, 3218, 3158, 3193, 3194, 3195, - 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, - 3204, 3205, 3206, 3158, 3158, 3193, 3194, 3195, - 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, - 3204, 3205, 3206, 19, 20, 3219, 3160, 3158, - 3192, 3158, 3158, 3191, 3220, 3220, 3155, 3221, - 3222, 3158, 3158, 3158, 88, 89, 3223, 3224, - 3158, 3158, 3158, 697, 3225, 3225, 3162, 3226, - 3227, 3165, 67, 3166, 3165, 88, 89, 3223, - 3228, 96, 97, 3223, 3229, 67, 67, 3165, - 67, 3165, 67, 3165, 67, 697, 3161, 3161, - 3162, 3163, 3164, 3165, 67, 3232, 3233, 3234, - 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, - 3243, 3244, 3245, 3166, 3165, 3232, 3233, 3234, - 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, - 3243, 3244, 3245, 19, 20, 3167, 3168, 121, - 122, 3169, 3170, 67, 67, 3165, 3231, 67, - 3165, 67, 3165, 67, 3230, 3225, 3225, 3162, - 3226, 3227, 3165, 67, 3232, 3233, 3234, 3235, + 3142, 3142, 3142, 2275, 3144, 3143, 3145, 3145, + 3145, 2275, 3146, 3146, 3146, 2275, 3147, 3144, + 3147, 3147, 3147, 3143, 3148, 3148, 3148, 2275, + 3149, 3149, 3149, 2275, 3150, 3143, 3151, 3151, + 3151, 2275, 3152, 3152, 3152, 2275, 3153, 3150, + 3153, 3153, 3153, 3143, 3155, 3155, 3156, 3157, + 3158, 3159, 3159, 3159, 19, 20, 3160, 3161, + 3159, 3159, 3159, 3154, 3162, 3162, 3163, 3164, + 3165, 3166, 67, 3167, 3166, 19, 20, 3168, + 3169, 121, 122, 3170, 3171, 67, 67, 3166, + 67, 3166, 67, 3166, 67, 697, 3173, 3173, + 3156, 3174, 3175, 3159, 3176, 3177, 3178, 3179, + 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, + 3188, 3189, 3159, 3159, 3176, 3177, 3178, 3179, + 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, + 3188, 3189, 19, 20, 3190, 3191, 3159, 3159, + 3159, 3172, 3173, 3173, 3156, 3174, 3175, 3159, + 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, + 3202, 3203, 3204, 3205, 3206, 3207, 3159, 3159, + 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, + 3202, 3203, 3204, 3205, 3206, 3207, 19, 20, + 3190, 3191, 3159, 3193, 3159, 3159, 3192, 3209, + 3209, 3210, 3211, 3212, 3213, 3213, 3213, 3214, + 3215, 3216, 3217, 3213, 3213, 3213, 3208, 3155, + 3155, 3156, 3218, 3219, 3159, 3194, 3195, 3196, + 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, + 3205, 3206, 3207, 3159, 3159, 3194, 3195, 3196, + 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, + 3205, 3206, 3207, 19, 20, 3220, 3161, 3159, + 3193, 3159, 3159, 3192, 3221, 3221, 3156, 3222, + 3223, 3159, 3159, 3159, 88, 89, 3224, 3225, + 3159, 3159, 3159, 697, 3226, 3226, 3163, 3227, + 3228, 3166, 67, 3167, 3166, 88, 89, 3224, + 3229, 96, 97, 3224, 3230, 67, 67, 3166, + 67, 3166, 67, 3166, 67, 697, 3162, 3162, + 3163, 3164, 3165, 3166, 67, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, - 3244, 3245, 3166, 3165, 3232, 3233, 3234, 3235, + 3244, 3245, 3246, 3167, 3166, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, - 3244, 3245, 88, 89, 3246, 3228, 96, 97, - 3246, 3229, 67, 67, 3165, 3231, 67, 3165, - 67, 3165, 67, 3230, 619, 619, 619, 820, + 3244, 3245, 3246, 19, 20, 3168, 3169, 121, + 122, 3170, 3171, 67, 67, 3166, 3232, 67, + 3166, 67, 3166, 67, 3231, 3226, 3226, 3163, + 3227, 3228, 3166, 67, 3233, 3234, 3235, 3236, + 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, + 3245, 3246, 3167, 3166, 3233, 3234, 3235, 3236, + 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, + 3245, 3246, 88, 89, 3247, 3229, 96, 97, + 3247, 3230, 67, 67, 3166, 3232, 67, 3166, + 67, 3166, 67, 3231, 619, 619, 619, 820, 817, 820, 819, 820, 817, 821, 817, 816, 619, 619, 619, 957, 957, 958, 959, 927, 929, 930, 928, 960, 961, 928, 928, 928, @@ -4331,20 +4331,20 @@ static const short _zone_scanner_trans_targs[] = { 1033, 1032, 1034, 1141, 1033, 1036, 1037, 1037, 1037, 1036, 1037, 1047, 1037, 1037, 1037, 1038, 1037, 1047, 1039, 1040, 1041, 0, 1042, 1043, - 1044, 1045, 1046, 0, 1142, 1049, 1050, 1051, - 1052, 1053, 1143, 1055, 1056, 1057, 1058, 1059, - 1144, 0, 1, 139, 1, 1, 147, 1065, - 243, 14, 180, 14, 14, 190, 209, 1068, - 223, 1069, 226, 0, 129, 129, 129, 157, - 230, 231, 232, 233, 245, 235, 236, 237, - 238, 239, 240, 241, 242, 1063, 244, 0, - 150, 157, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 0, - 1, 139, 1, 1, 147, 1060, 138, 1065, - 243, 1, 1, 1065, 161, 161, 161, 1065, - 162, 165, 165, 165, 179, 213, 0, 191, - 194, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 1065 + 1044, 1045, 1046, 0, 1142, 1049, 1050, 0, + 1051, 1052, 1053, 1143, 1055, 1056, 1057, 1058, + 1059, 1144, 0, 1, 139, 1, 1, 147, + 1065, 243, 14, 180, 14, 14, 190, 209, + 1068, 223, 1069, 226, 0, 129, 129, 129, + 157, 230, 231, 232, 233, 245, 235, 236, + 237, 238, 239, 240, 241, 242, 1063, 244, + 0, 150, 157, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, + 0, 1, 139, 1, 1, 147, 1060, 138, + 1065, 243, 1, 1, 1065, 161, 161, 161, + 1065, 162, 165, 165, 165, 179, 213, 0, + 191, 194, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 1065 }; static const short _zone_scanner_trans_actions[] = { @@ -4355,177 +4355,177 @@ static const short _zone_scanner_trans_actions[] = { 57, 671, 101, 345, 0, 5, 7, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 3, 0, 1592, - 1595, 2380, 2384, 0, 0, 0, 2376, 1595, - 2388, 3477, 2388, 339, 0, 337, 5, 7, + 1595, 2384, 2388, 0, 0, 0, 2380, 1595, + 2392, 3481, 2392, 339, 0, 337, 5, 7, 0, 3, 0, 339, 356, 339, 1571, 343, - 1580, 1583, 2368, 343, 9, 0, 5, 7, + 1580, 1583, 2372, 343, 9, 0, 5, 7, 1709, 0, 1586, 341, 0, 5, 7, 0, - 2364, 339, 339, 359, 0, 3082, 5, 7, + 2368, 339, 339, 359, 0, 3086, 5, 7, 1860, 2096, 2096, 2096, 2096, 2096, 2096, 2096, 2096, 2096, 2096, 2096, 2096, 2096, 2096, 3, - 0, 1574, 339, 356, 339, 3778, 680, 2100, - 2104, 3252, 680, 1589, 0, 5, 7, 359, - 0, 0, 0, 0, 0, 1649, 2672, 2676, - 2668, 1649, 2680, 3582, 2680, 0, 5, 7, - 0, 0, 0, 1601, 2416, 2420, 2412, 1601, - 2424, 3502, 2424, 0, 0, 0, 0, 0, - 0, 1676, 2816, 2820, 2812, 1676, 2824, 3627, - 2824, 0, 0, 0, 0, 1652, 2688, 2692, - 2684, 1652, 2696, 3587, 2696, 0, 0, 0, - 1673, 2800, 2804, 2796, 1673, 2808, 3622, 2808, - 1658, 2720, 2724, 2716, 1658, 2728, 3597, 2728, - 0, 0, 0, 0, 0, 1703, 2960, 2964, - 2956, 1703, 2968, 3672, 2968, 0, 1706, 2976, - 2980, 2972, 1706, 2984, 3677, 2984, 0, 0, - 0, 0, 1610, 2464, 2468, 2460, 1610, 2472, - 3517, 2472, 0, 0, 99, 665, 668, 662, + 0, 1574, 339, 356, 339, 3782, 680, 2100, + 2104, 3256, 680, 1589, 0, 5, 7, 359, + 0, 0, 0, 0, 0, 1649, 2676, 2680, + 2672, 1649, 2684, 3586, 2684, 0, 5, 7, + 0, 0, 0, 1601, 2420, 2424, 2416, 1601, + 2428, 3506, 2428, 0, 0, 0, 0, 0, + 0, 1676, 2820, 2824, 2816, 1676, 2828, 3631, + 2828, 0, 0, 0, 0, 1652, 2692, 2696, + 2688, 1652, 2700, 3591, 2700, 0, 0, 0, + 1673, 2804, 2808, 2800, 1673, 2812, 3626, 2812, + 1658, 2724, 2728, 2720, 1658, 2732, 3601, 2732, + 0, 0, 0, 0, 0, 1703, 2964, 2968, + 2960, 1703, 2972, 3676, 2972, 0, 1706, 2980, + 2984, 2976, 1706, 2988, 3681, 2988, 0, 0, + 0, 0, 1610, 2468, 2472, 2464, 1610, 2476, + 3521, 2476, 0, 0, 99, 665, 668, 662, 99, 0, 5, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 1664, 2752, 2756, 2748, 1664, 2760, - 3607, 2760, 0, 0, 0, 1631, 2576, 2580, - 2572, 1631, 2584, 3552, 2584, 1646, 2656, 2660, - 2652, 1646, 2664, 3577, 2664, 0, 0, 0, - 0, 0, 1694, 2912, 2916, 2908, 1694, 2920, - 3657, 2920, 0, 1697, 2928, 2932, 2924, 1697, - 2936, 3662, 2936, 0, 1637, 2608, 2612, 2604, - 1637, 2616, 3562, 2616, 1700, 2944, 2948, 2940, - 1700, 2952, 3667, 2952, 0, 0, 0, 0, - 0, 1613, 2480, 2484, 2476, 1613, 2488, 3522, - 2488, 1616, 2496, 2500, 2492, 1616, 2504, 3527, - 2504, 0, 0, 0, 0, 0, 0, 1643, - 2640, 2644, 2636, 1643, 2648, 3572, 2648, 0, - 1691, 2896, 2900, 2892, 1691, 2904, 3652, 2904, - 1598, 2400, 2404, 0, 2396, 1598, 2408, 3497, - 2408, 0, 1670, 2784, 2788, 0, 2780, 1670, - 2792, 3617, 2792, 1679, 2832, 2836, 0, 2828, - 1679, 2840, 3632, 2840, 0, 0, 0, 0, - 1682, 2848, 2852, 2844, 1682, 2856, 3637, 2856, - 0, 0, 1607, 2448, 2452, 2444, 1607, 2456, - 3512, 2456, 0, 0, 0, 1622, 2528, 2532, - 2524, 1622, 2536, 3537, 2536, 0, 0, 0, - 1667, 2768, 2772, 2764, 1667, 2776, 3612, 2776, - 1628, 2560, 2564, 2556, 1628, 2568, 3547, 2568, - 0, 0, 0, 0, 0, 1604, 2432, 2436, - 2428, 1604, 2440, 3507, 2440, 0, 1688, 2880, - 2884, 2876, 1688, 2888, 3647, 2888, 0, 1640, - 2624, 2628, 2620, 1640, 2632, 3567, 2632, 0, - 0, 0, 1661, 2736, 2740, 2732, 1661, 2744, - 3602, 2744, 0, 0, 0, 0, 0, 1685, - 2864, 2868, 2860, 1685, 2872, 3642, 2872, 0, - 1619, 2512, 2516, 2508, 1619, 2520, 3532, 2520, + 0, 0, 1664, 2756, 2760, 2752, 1664, 2764, + 3611, 2764, 0, 0, 0, 1631, 2580, 2584, + 2576, 1631, 2588, 3556, 2588, 1646, 2660, 2664, + 2656, 1646, 2668, 3581, 2668, 0, 0, 0, + 0, 0, 1694, 2916, 2920, 2912, 1694, 2924, + 3661, 2924, 0, 1697, 2932, 2936, 2928, 1697, + 2940, 3666, 2940, 0, 1637, 2612, 2616, 2608, + 1637, 2620, 3566, 2620, 1700, 2948, 2952, 2944, + 1700, 2956, 3671, 2956, 0, 0, 0, 0, + 0, 1613, 2484, 2488, 2480, 1613, 2492, 3526, + 2492, 1616, 2500, 2504, 2496, 1616, 2508, 3531, + 2508, 0, 0, 0, 0, 0, 0, 1643, + 2644, 2648, 2640, 1643, 2652, 3576, 2652, 0, + 1691, 2900, 2904, 2896, 1691, 2908, 3656, 2908, + 1598, 2404, 2408, 0, 2400, 1598, 2412, 3501, + 2412, 0, 1670, 2788, 2792, 0, 2784, 1670, + 2796, 3621, 2796, 1679, 2836, 2840, 0, 2832, + 1679, 2844, 3636, 2844, 0, 0, 0, 0, + 1682, 2852, 2856, 2848, 1682, 2860, 3641, 2860, + 0, 0, 1607, 2452, 2456, 2448, 1607, 2460, + 3516, 2460, 0, 0, 0, 1622, 2532, 2536, + 2528, 1622, 2540, 3541, 2540, 0, 0, 0, + 1667, 2772, 2776, 2768, 1667, 2780, 3616, 2780, + 1628, 2564, 2568, 2560, 1628, 2572, 3551, 2572, + 0, 0, 0, 0, 0, 1604, 2436, 2440, + 2432, 1604, 2444, 3511, 2444, 0, 1688, 2884, + 2888, 2880, 1688, 2892, 3651, 2892, 0, 1640, + 2628, 2632, 2624, 1640, 2636, 3571, 2636, 0, + 0, 0, 1661, 2740, 2744, 2736, 1661, 2748, + 3606, 2748, 0, 0, 0, 0, 0, 1685, + 2868, 2872, 2864, 1685, 2876, 3646, 2876, 0, + 1619, 2516, 2520, 2512, 1619, 2524, 3536, 2524, 0, 0, 518, 506, 1876, 578, 1992, 1996, - 41, 1988, 578, 2000, 3212, 2000, 0, 5, + 41, 1988, 578, 2000, 3216, 2000, 0, 5, 7, 3, 0, 0, 99, 665, 668, 662, 99, 0, 5, 7, 506, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 3, 0, 101, 674, 677, 41, 55, 53, 51, 0, 57, 671, 101, 2016, 41, 55, 53, 51, 0, 57, 599, - 2040, 2044, 3222, 2036, 599, 93, 89, 89, + 2040, 2044, 3226, 2036, 599, 93, 89, 89, 89, 0, 0, 0, 0, 0, 0, 87, 37, 33, 455, 458, 452, 33, 0, 5, - 7, 3, 0, 0, 3067, 461, 1796, 1804, + 7, 3, 0, 0, 3071, 461, 1796, 1804, 1792, 461, 0, 5, 7, 3, 0, 2016, 41, 55, 53, 51, 0, 57, 599, 2040, - 2044, 3222, 2036, 599, 1836, 1820, 3032, 3047, - 3017, 1820, 3694, 3052, 0, 5, 7, 3, - 0, 356, 339, 2372, 2392, 3482, 3487, 3796, - 2392, 3851, 3492, 3844, 3492, 0, 5, 7, + 2044, 3226, 2036, 599, 1836, 1820, 3036, 3051, + 3021, 1820, 3698, 3056, 0, 5, 7, 3, + 0, 356, 339, 2376, 2396, 3486, 3491, 3800, + 2396, 3855, 3496, 3848, 3496, 0, 5, 7, 1744, 0, 5, 7, 359, 0, 0, 5, - 7, 0, 5, 7, 0, 339, 359, 2356, + 7, 0, 5, 7, 0, 339, 359, 2360, 0, 0, 0, 0, 0, 79, 0, 0, - 75, 1828, 464, 1800, 1808, 3007, 464, 3809, - 1812, 3022, 3037, 3688, 1812, 0, 5, 7, - 359, 0, 3072, 3057, 3700, 3706, 3802, 3057, - 3858, 3712, 0, 5, 7, 1744, 1816, 479, - 3027, 3042, 3012, 1816, 343, 365, 371, 1748, + 75, 1828, 464, 1800, 1808, 3011, 464, 3813, + 1812, 3026, 3041, 3692, 1812, 0, 5, 7, + 359, 0, 3076, 3061, 3704, 3710, 3806, 3061, + 3862, 3716, 0, 5, 7, 1744, 1816, 479, + 3031, 3046, 3016, 1816, 343, 365, 371, 1748, 343, 343, 1580, 1583, 0, 5, 7, 0, - 5, 7, 0, 0, 1634, 2592, 2596, 2588, - 1634, 2600, 3557, 2600, 0, 0, 0, 1625, - 2544, 2548, 2540, 1625, 2552, 3542, 2552, 0, - 1655, 2704, 2708, 2700, 1655, 2712, 3592, 2712, + 5, 7, 0, 0, 1634, 2596, 2600, 2592, + 1634, 2604, 3561, 2604, 0, 0, 0, 1625, + 2548, 2552, 2544, 1625, 2556, 3546, 2556, 0, + 1655, 2708, 2712, 2704, 1655, 2716, 3596, 2716, 0, 5, 7, 0, 5, 7, 0, 5, - 7, 0, 5, 7, 482, 380, 2992, 11, + 7, 0, 5, 7, 482, 380, 2996, 11, 1756, 27, 1772, 1772, 25, 0, 419, 1760, 17, 404, 383, 383, 13, 15, 0, 386, - 395, 19, 19, 2997, 389, 392, 21, 416, + 395, 19, 19, 3001, 389, 392, 21, 416, 620, 65, 0, 0, 1, 617, 623, 2052, 69, 69, 626, 629, 2048, 71, 65, 0, 0, 67, 623, 69, 69, 629, 71, 71, 73, 0, 5, 7, 3, 0, 509, 506, - 3217, 0, 5, 7, 41, 55, 53, 51, + 3221, 0, 5, 7, 41, 55, 53, 51, 0, 57, 2056, 0, 374, 2016, 2004, 41, 55, 53, 51, 0, 57, 59, 590, 593, - 3222, 3227, 59, 77, 0, 5, 7, 3, - 0, 3232, 3232, 632, 2060, 17, 377, 23, - 407, 410, 383, 383, 13, 3002, 23, 0, + 3226, 3231, 59, 77, 0, 5, 7, 3, + 0, 3236, 3236, 632, 2060, 17, 377, 23, + 407, 410, 383, 383, 13, 3006, 23, 0, 5, 7, 2064, 0, 15, 0, 386, 398, 19, 19, 389, 392, 21, 0, 5, 7, 3, 0, 635, 83, 644, 81, 638, 641, - 3237, 81, 81, 650, 0, 5, 7, 3242, - 3242, 647, 2068, 2072, 0, 0, 85, 17, - 413, 1764, 1768, 383, 383, 13, 3682, 413, + 3241, 81, 81, 650, 0, 5, 7, 3246, + 3246, 647, 2068, 2072, 0, 0, 85, 17, + 413, 1764, 1768, 383, 383, 13, 3686, 413, 0, 5, 7, 15, 0, 386, 401, 19, 19, 389, 392, 21, 1724, 0, 5, 7, 3, 0, 125, 117, 119, 121, 0, 123, 0, 5, 7, 3, 0, 1, 350, 1, - 309, 307, 1496, 1499, 1493, 307, 2332, 3472, + 309, 307, 1496, 1499, 1493, 307, 2332, 3476, 2332, 0, 5, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1502, 1732, 1502, 231, 1154, 1157, 0, 0, 0, 1151, 231, 2180, - 3282, 2180, 0, 0, 257, 1271, 1274, 1268, - 257, 2232, 3347, 2232, 0, 0, 0, 0, - 267, 1316, 1319, 1313, 267, 2252, 3372, 2252, + 3286, 2180, 0, 0, 257, 1271, 1274, 1268, + 257, 2232, 3351, 2232, 0, 0, 0, 0, + 267, 1316, 1319, 1313, 267, 2252, 3376, 2252, 0, 0, 0, 235, 1172, 1175, 1169, 235, - 2188, 3292, 2188, 0, 0, 0, 0, 0, - 0, 285, 1397, 1400, 1394, 285, 2288, 3417, + 2188, 3296, 2188, 0, 0, 0, 0, 0, + 0, 285, 1397, 1400, 1394, 285, 2288, 3421, 2288, 0, 0, 0, 0, 269, 1325, 1328, - 1322, 269, 2256, 3377, 2256, 0, 0, 0, - 283, 1388, 1391, 1385, 283, 2284, 3412, 2284, - 273, 1343, 1346, 1340, 273, 2264, 3387, 2264, + 1322, 269, 2256, 3381, 2256, 0, 0, 0, + 283, 1388, 1391, 1385, 283, 2284, 3416, 2284, + 273, 1343, 1346, 1340, 273, 2264, 3391, 2264, 0, 0, 0, 0, 0, 303, 1478, 1481, - 1475, 303, 2324, 3462, 2324, 0, 305, 1487, - 1490, 1484, 305, 2328, 3467, 2328, 0, 0, + 1475, 303, 2324, 3466, 2324, 0, 305, 1487, + 1490, 1484, 305, 2328, 3471, 2328, 0, 0, 0, 0, 241, 1199, 1202, 1196, 241, 2200, - 3307, 2200, 0, 0, 0, 0, 0, 0, - 0, 277, 1361, 1364, 1358, 277, 2272, 3397, + 3311, 2200, 0, 0, 0, 0, 0, 0, + 0, 277, 1361, 1364, 1358, 277, 2272, 3401, 2272, 0, 0, 0, 255, 1262, 1265, 1259, - 255, 2228, 3342, 2228, 265, 1307, 1310, 1304, - 265, 2248, 3367, 2248, 0, 0, 0, 0, - 0, 297, 1451, 1454, 1448, 297, 2312, 3447, + 255, 2228, 3346, 2228, 265, 1307, 1310, 1304, + 265, 2248, 3371, 2248, 0, 0, 0, 0, + 0, 297, 1451, 1454, 1448, 297, 2312, 3451, 2312, 0, 299, 1460, 1463, 1457, 299, 2316, - 3452, 2316, 0, 259, 1280, 1283, 1277, 259, - 2236, 3352, 2236, 301, 1469, 1472, 1466, 301, - 2320, 3457, 2320, 0, 0, 0, 0, 0, - 243, 1208, 1211, 1205, 243, 2204, 3312, 2204, - 245, 1217, 1220, 1214, 245, 2208, 3317, 2208, + 3456, 2316, 0, 259, 1280, 1283, 1277, 259, + 2236, 3356, 2236, 301, 1469, 1472, 1466, 301, + 2320, 3461, 2320, 0, 0, 0, 0, 0, + 243, 1208, 1211, 1205, 243, 2204, 3316, 2204, + 245, 1217, 1220, 1214, 245, 2208, 3321, 2208, 0, 0, 0, 0, 0, 0, 263, 1298, - 1301, 1295, 263, 2244, 3362, 2244, 0, 295, - 1442, 1445, 1439, 295, 2308, 3442, 2308, 233, - 1163, 1166, 0, 1160, 233, 2184, 3287, 2184, + 1301, 1295, 263, 2244, 3366, 2244, 0, 295, + 1442, 1445, 1439, 295, 2308, 3446, 2308, 233, + 1163, 1166, 0, 1160, 233, 2184, 3291, 2184, 0, 281, 1379, 1382, 0, 1376, 281, 2280, - 3407, 2280, 287, 1406, 1409, 0, 1403, 287, - 2292, 3422, 2292, 0, 0, 0, 0, 289, - 1415, 1418, 1412, 289, 2296, 3427, 2296, 0, - 0, 239, 1190, 1193, 1187, 239, 2196, 3302, + 3411, 2280, 287, 1406, 1409, 0, 1403, 287, + 2292, 3426, 2292, 0, 0, 0, 0, 289, + 1415, 1418, 1412, 289, 2296, 3431, 2296, 0, + 0, 239, 1190, 1193, 1187, 239, 2196, 3306, 2196, 0, 0, 0, 249, 1235, 1238, 1232, - 249, 2216, 3327, 2216, 0, 0, 0, 279, - 1370, 1373, 1367, 279, 2276, 3402, 2276, 253, - 1253, 1256, 1250, 253, 2224, 3337, 2224, 0, + 249, 2216, 3331, 2216, 0, 0, 0, 279, + 1370, 1373, 1367, 279, 2276, 3406, 2276, 253, + 1253, 1256, 1250, 253, 2224, 3341, 2224, 0, 0, 0, 0, 0, 237, 1181, 1184, 1178, - 237, 2192, 3297, 2192, 0, 293, 1433, 1436, - 1430, 293, 2304, 3437, 2304, 0, 261, 1289, - 1292, 1286, 261, 2240, 3357, 2240, 0, 0, - 0, 275, 1352, 1355, 1349, 275, 2268, 3392, + 237, 2192, 3301, 2192, 0, 293, 1433, 1436, + 1430, 293, 2304, 3441, 2304, 0, 261, 1289, + 1292, 1286, 261, 2240, 3361, 2240, 0, 0, + 0, 275, 1352, 1355, 1349, 275, 2268, 3396, 2268, 0, 0, 0, 0, 0, 291, 1424, - 1427, 1421, 291, 2300, 3432, 2300, 0, 247, - 1226, 1229, 1223, 247, 2212, 3322, 2212, 0, + 1427, 1421, 291, 2300, 3436, 2300, 0, 247, + 1226, 1229, 1223, 247, 2212, 3326, 2212, 0, 0, 506, 229, 1145, 1148, 41, 1142, 229, - 2176, 3277, 2176, 0, 0, 0, 251, 1244, - 1247, 1241, 251, 2220, 3332, 2220, 0, 271, - 1334, 1337, 1331, 271, 2260, 3382, 2260, 323, + 2176, 3281, 2176, 0, 0, 0, 251, 1244, + 1247, 1241, 251, 2220, 3336, 2220, 0, 271, + 1334, 1337, 1331, 271, 2260, 3386, 2260, 323, 0, 5, 7, 3, 0, 512, 506, 49, 584, 587, 41, 581, 49, 2164, 0, 5, 7, 113, 3, 0, 115, 0, 5, 7, @@ -4568,11 +4568,11 @@ static const short _zone_scanner_trans_actions[] = { 57, 569, 47, 0, 5, 7, 506, 3, 0, 566, 41, 55, 53, 51, 0, 57, 2016, 41, 55, 53, 51, 0, 57, 2020, - 3222, 2016, 41, 55, 53, 51, 0, 57, - 596, 2028, 2032, 3222, 2024, 596, 2016, 41, + 3226, 2016, 41, 55, 53, 51, 0, 57, + 596, 2028, 2032, 3226, 2024, 596, 2016, 41, 55, 53, 51, 0, 57, 596, 2028, 2032, - 3222, 2024, 596, 2016, 41, 55, 53, 51, - 0, 57, 596, 2028, 2032, 3222, 2024, 596, + 3226, 2024, 596, 2016, 41, 55, 53, 51, + 0, 57, 596, 2028, 2032, 3226, 2024, 596, 422, 31, 437, 440, 434, 31, 422, 0, 5, 7, 3, 0, 431, 485, 500, 1848, 1852, 1844, 500, 0, 5, 7, 485, 3, @@ -4583,33 +4583,33 @@ static const short _zone_scanner_trans_actions[] = { 1, 683, 2132, 103, 1562, 2336, 311, 1508, 1511, 41, 1505, 311, 0, 5, 7, 506, 0, 0, 3, 0, 315, 1526, 1529, 41, - 1523, 315, 0, 5, 7, 3207, 3, 0, + 1523, 315, 0, 5, 7, 3211, 3, 0, 521, 1908, 1912, 0, 41, 1904, 521, 0, 5, 7, 3, 0, 0, 5, 7, 3, 0, 506, 313, 1517, 1520, 41, 1514, 313, 0, 5, 7, 506, 0, 0, 3, 0, 317, 1535, 1538, 41, 1532, 317, 0, 5, - 7, 3207, 3, 0, 524, 1920, 1924, 0, + 7, 3211, 3, 0, 524, 1920, 1924, 0, 41, 1916, 524, 0, 5, 7, 3, 0, - 0, 5, 7, 3, 0, 0, 3202, 3790, + 0, 5, 7, 3, 0, 0, 3206, 3794, 527, 1932, 1936, 0, 41, 527, 1928, 527, - 3182, 3754, 3182, 0, 5, 7, 3202, 3, + 3186, 3758, 3186, 0, 5, 7, 3206, 3, 0, 1559, 1736, 1559, 530, 1944, 1948, 0, - 41, 530, 1940, 530, 3187, 3760, 3187, 0, - 5, 7, 3202, 3, 0, 1736, 1559, 533, - 1956, 1960, 0, 41, 533, 1952, 533, 3192, - 3766, 3192, 0, 5, 7, 3202, 3, 0, + 41, 530, 1940, 530, 3191, 3764, 3191, 0, + 5, 7, 3206, 3, 0, 1736, 1559, 533, + 1956, 1960, 0, 41, 533, 1952, 533, 3196, + 3770, 3196, 0, 5, 7, 3206, 3, 0, 1736, 1559, 536, 1968, 1972, 0, 41, 1964, - 536, 3197, 3772, 3197, 0, 5, 7, 3, - 0, 1736, 1559, 1900, 3172, 3177, 3087, 3167, - 1900, 3748, 3837, 3748, 503, 1896, 3157, 3162, - 3087, 1896, 3152, 1896, 3742, 3830, 3742, 503, - 1892, 3142, 3147, 3087, 1892, 3137, 1892, 3736, - 3823, 3736, 503, 1888, 3127, 3132, 3087, 1888, - 3122, 1888, 3730, 3816, 3730, 503, 321, 1553, - 1556, 1550, 321, 1884, 3112, 3117, 3087, 3107, + 536, 3201, 3776, 3201, 0, 5, 7, 3, + 0, 1736, 1559, 1900, 3176, 3181, 3091, 3171, + 1900, 3752, 3841, 3752, 503, 1896, 3161, 3166, + 3091, 1896, 3156, 1896, 3746, 3834, 3746, 503, + 1892, 3146, 3151, 3091, 1892, 3141, 1892, 3740, + 3827, 3740, 503, 1888, 3131, 3136, 3091, 1888, + 3126, 1888, 3734, 3820, 3734, 503, 321, 1553, + 1556, 1550, 321, 1884, 3116, 3121, 3091, 3111, 1884, 503, 319, 1544, 1547, 1541, 319, 1880, - 3097, 3102, 3087, 3092, 1880, 503, 506, 45, + 3101, 3106, 3091, 3096, 1880, 503, 506, 45, 557, 560, 41, 554, 45, 0, 5, 7, 506, 3, 0, 45, 557, 560, 41, 554, 45, 0, 5, 7, 506, 3, 0, 563, @@ -4628,7 +4628,7 @@ static const short _zone_scanner_trans_actions[] = { 1, 707, 0, 695, 5, 7, 698, 701, 3, 0, 1, 350, 1, 109, 111, 0, 2108, 683, 103, 105, 506, 704, 2156, 2160, - 41, 2152, 704, 2148, 3272, 2148, 0, 683, + 41, 2152, 704, 2148, 3276, 2148, 0, 683, 103, 107, 506, 45, 557, 560, 41, 554, 45, 0, 5, 7, 333, 3, 0, 0, 5, 7, 3, 0, 506, 43, 545, 548, @@ -4648,15 +4648,15 @@ static const short _zone_scanner_trans_actions[] = { 3, 0, 350, 1, 3, 0, 350, 1, 794, 127, 0, 5, 7, 3, 0, 506, 43, 545, 548, 41, 542, 43, 2112, 0, - 5, 7, 683, 3, 0, 3257, 103, 689, + 5, 7, 683, 3, 0, 3261, 103, 689, 2124, 2128, 689, 2124, 2128, 689, 2124, 2128, - 2116, 2120, 689, 3262, 2116, 2120, 689, 3262, - 2116, 2120, 689, 3262, 2116, 0, 5, 7, + 2116, 2120, 689, 3266, 2116, 2120, 689, 3266, + 2116, 2120, 689, 3266, 2116, 0, 5, 7, 3, 0, 506, 43, 545, 548, 41, 542, 43, 0, 5, 7, 683, 3, 0, 103, 692, 2140, 2144, 692, 2140, 2144, 692, 2140, - 2144, 2132, 2136, 692, 3267, 2132, 2136, 692, - 3267, 2132, 2136, 692, 3267, 2132, 0, 5, + 2144, 2132, 2136, 692, 3271, 2132, 2136, 692, + 3271, 2132, 2136, 692, 3271, 2132, 0, 5, 7, 3, 0, 506, 43, 545, 548, 41, 542, 43, 0, 5, 7, 485, 3, 0, 39, 494, 497, 39, 494, 497, 39, 494, @@ -4740,25 +4740,25 @@ static const short _zone_scanner_trans_actions[] = { 683, 3, 0, 2116, 103, 506, 45, 557, 560, 41, 554, 45, 0, 5, 7, 1568, 3, 0, 115, 113, 115, 2168, 327, 113, - 115, 113, 115, 2352, 2348, 1565, 115, 325, - 113, 115, 2340, 1565, 115, 325, 113, 115, - 2344, 476, 35, 0, 470, 473, 449, 467, - 35, 35, 339, 362, 368, 2360, 449, 353, - 35, 1740, 1577, 1832, 35, 362, 368, 2092, + 115, 113, 115, 2356, 2352, 1565, 115, 2348, + 325, 113, 115, 2340, 1565, 115, 325, 113, + 115, 2344, 476, 35, 0, 470, 473, 449, + 467, 35, 35, 339, 362, 368, 2364, 449, + 353, 35, 1740, 1577, 1832, 35, 362, 368, 2092, 2092, 2092, 2092, 2092, 2092, 2092, 2092, - 2092, 2092, 2092, 2092, 2092, 353, 35, 3062, - 3077, 3247, 3247, 3247, 3247, 3247, 3247, 3247, - 3247, 3247, 3247, 3247, 3247, 3247, 3247, 1824, - 656, 91, 2084, 2088, 2076, 653, 91, 2080, - 656, 362, 368, 353, 35, 362, 368, 2988, - 35, 35, 362, 368, 35, 1577, 3718, 3724, - 3784, 3784, 3784, 3784, 3784, 3784, 3784, 3784, - 3784, 3784, 3784, 3784, 3784, 3784, 1752 + 2092, 2092, 2092, 2092, 2092, 2092, 353, 35, + 3066, 3081, 3251, 3251, 3251, 3251, 3251, 3251, + 3251, 3251, 3251, 3251, 3251, 3251, 3251, 3251, + 1824, 656, 91, 2084, 2088, 2076, 653, 91, + 2080, 656, 362, 368, 353, 35, 362, 368, + 2992, 35, 35, 362, 368, 35, 1577, 3722, + 3728, 3788, 3788, 3788, 3788, 3788, 3788, 3788, + 3788, 3788, 3788, 3788, 3788, 3788, 3788, 1752 }; static const short _zone_scanner_eof_actions[] = { 0, 1872, 2012, 345, 1592, 337, 1571, 9, - 9, 337, 1571, 337, 1571, 1571, 3082, 3778, + 9, 337, 1571, 337, 1571, 1571, 3086, 3782, 1589, 345, 345, 345, 1592, 1571, 345, 345, 345, 1592, 345, 345, 345, 345, 1592, 345, 345, 345, 1592, 345, 345, 345, 1592, 1592, @@ -4775,15 +4775,15 @@ static const short _zone_scanner_eof_actions[] = { 345, 1592, 345, 1592, 345, 345, 518, 1876, 345, 1872, 345, 345, 518, 2012, 2012, 2012, 2012, 345, 9, 93, 93, 93, 93, 93, - 93, 93, 93, 37, 518, 0, 3067, 518, - 345, 2012, 2012, 2012, 345, 1836, 1876, 2372, - 1571, 1872, 9, 1571, 9, 3082, 2372, 2372, - 2372, 2372, 2372, 2372, 2372, 2372, 2372, 2372, - 2372, 2372, 2372, 1571, 2356, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 1828, 3809, - 1872, 1589, 3072, 3082, 3072, 3072, 3072, 3072, - 3072, 3072, 3072, 3072, 3072, 3072, 3072, 3072, - 3072, 479, 3082, 1571, 9, 1571, 345, 345, + 93, 93, 93, 37, 518, 0, 3071, 518, + 345, 2012, 2012, 2012, 345, 1836, 1876, 2376, + 1571, 1872, 9, 1571, 9, 3086, 2376, 2376, + 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, + 2376, 2376, 2376, 1571, 2360, 93, 93, 93, + 93, 93, 93, 93, 93, 93, 1828, 3813, + 1872, 1589, 3076, 3086, 3076, 3076, 3076, 3076, + 3076, 3076, 3076, 3076, 3076, 3076, 3076, 3076, + 3076, 479, 3086, 1571, 9, 1571, 345, 345, 1592, 345, 345, 345, 1592, 345, 1592, 1571, 1571, 9, 1571, 1571, 337, 1571, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, @@ -4791,7 +4791,7 @@ static const short _zone_scanner_eof_actions[] = { 0, 27, 27, 27, 27, 395, 395, 395, 395, 27, 27, 620, 620, 2052, 2052, 2052, 2052, 620, 67, 2052, 2052, 2052, 2052, 73, - 509, 3217, 374, 374, 3217, 2004, 3217, 73, + 509, 3221, 374, 374, 3221, 2004, 3221, 73, 77, 77, 77, 377, 377, 377, 77, 398, 398, 398, 398, 377, 77, 0, 83, 644, 650, 85, 650, 9, 9, 85, 401, 401, @@ -4856,8 +4856,8 @@ static const short _zone_scanner_eof_actions[] = { 515, 515, 515, 515, 710, 710, 710, 710, 337, 337, 515, 515, 791, 791, 1864, 1864, 791, 2172, 794, 794, 794, 794, 794, 794, - 794, 791, 791, 791, 1864, 1864, 2112, 3257, - 791, 791, 791, 1864, 1864, 2112, 3257, 791, + 794, 791, 791, 791, 1864, 1864, 2112, 3261, + 791, 791, 791, 1864, 1864, 2112, 3261, 791, 791, 791, 1864, 1864, 791, 2172, 791, 791, 337, 797, 797, 337, 337, 515, 515, 515, 515, 614, 614, 614, 614, 515, 515, 337, @@ -4887,9 +4887,9 @@ static const short _zone_scanner_eof_actions[] = { 337, 515, 515, 515, 515, 515, 515, 710, 710, 710, 710, 337, 337, 337, 515, 515, 686, 686, 337, 515, 515, 710, 710, 710, - 710, 2168, 710, 710, 710, 710, 2352, 337, - 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 0, 0, 0, 0, + 710, 2168, 710, 710, 710, 710, 2356, 337, + 710, 710, 2348, 710, 710, 2348, 710, 710, + 2348, 710, 710, 2348, 0, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7115,19 +7115,26 @@ _match: } break; case 250: -#line 1544 "zscanner/scanner_body.rl" +#line 1535 "zscanner/scanner_body.rl" { - s->item_length = 0; + SCANNER_WARNING(ZSCANNER_EBAD_CHAR_DASH); + p--; {cs = 247; goto _again;} } break; case 251: -#line 1547 "zscanner/scanner_body.rl" +#line 1550 "zscanner/scanner_body.rl" { - s->item_length++; + s->item_length = 0; } break; case 252: -#line 1550 "zscanner/scanner_body.rl" +#line 1553 "zscanner/scanner_body.rl" + { + s->item_length++; + } + break; + case 253: +#line 1556 "zscanner/scanner_body.rl" { if (s->item_length != 4) { SCANNER_WARNING(ZSCANNER_EBAD_L64_LENGTH); @@ -7135,52 +7142,52 @@ _match: } } break; - case 253: -#line 1556 "zscanner/scanner_body.rl" + case 254: +#line 1562 "zscanner/scanner_body.rl" { SCANNER_WARNING(ZSCANNER_EBAD_CHAR_COLON); p--; {cs = 247; goto _again;} } break; - case 254: -#line 1569 "zscanner/scanner_body.rl" + case 255: +#line 1575 "zscanner/scanner_body.rl" { SCANNER_WARNING(ZSCANNER_EBAD_ALGORITHM); p--; {cs = 247; goto _again;} } break; - case 255: -#line 1573 "zscanner/scanner_body.rl" + case 256: +#line 1579 "zscanner/scanner_body.rl" { SCANNER_WARNING(ZSCANNER_EBAD_CERT_TYPE); p--; {cs = 247; goto _again;} } break; - case 256: -#line 1595 "zscanner/scanner_body.rl" + case 257: +#line 1601 "zscanner/scanner_body.rl" { p--; {stack[top++] = cs; cs = 457; goto _again;} } break; - case 257: -#line 1610 "zscanner/scanner_body.rl" + case 258: +#line 1616 "zscanner/scanner_body.rl" { p--; {stack[top++] = cs; cs = 552; goto _again;} } break; - case 258: -#line 1614 "zscanner/scanner_body.rl" + case 259: +#line 1620 "zscanner/scanner_body.rl" { s->r_data_blocks[0] = 0; s->r_data_blocks_count = 0; rdata_tail = s->r_data; } break; - case 259: -#line 1619 "zscanner/scanner_body.rl" + case 260: +#line 1625 "zscanner/scanner_body.rl" { SCANNER_WARNING(ZSCANNER_EBAD_RDATA); p--; {cs = 247; goto _again;} } break; - case 260: -#line 1737 "zscanner/scanner_body.rl" + case 261: +#line 1743 "zscanner/scanner_body.rl" { p--; switch (s->r_type) { @@ -7255,8 +7262,8 @@ _match: } } break; - case 261: -#line 1810 "zscanner/scanner_body.rl" + case 262: +#line 1816 "zscanner/scanner_body.rl" { switch (s->r_type) { // Next types must not have empty rdata. @@ -7305,178 +7312,178 @@ _match: } } break; - case 262: -#line 1858 "zscanner/scanner_body.rl" + case 263: +#line 1864 "zscanner/scanner_body.rl" { s->r_data_blocks[++(s->r_data_blocks_count)] = (uint16_t)(rdata_tail - s->r_data); } break; - case 263: -#line 1866 "zscanner/scanner_body.rl" + case 264: +#line 1872 "zscanner/scanner_body.rl" { p--; } break; - case 264: -#line 1873 "zscanner/scanner_body.rl" + case 265: +#line 1879 "zscanner/scanner_body.rl" { SCANNER_WARNING(ZSCANNER_EUNSUPPORTED_TYPE); p--; {cs = 247; goto _again;} } break; - case 265: -#line 1879 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_A; } - break; case 266: -#line 1880 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_NS; } +#line 1885 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_A; } break; case 267: -#line 1881 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_CNAME; } +#line 1886 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_NS; } break; case 268: -#line 1882 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_SOA; } +#line 1887 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_CNAME; } break; case 269: -#line 1883 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_PTR; } +#line 1888 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_SOA; } break; case 270: -#line 1884 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_HINFO; } +#line 1889 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_PTR; } break; case 271: -#line 1885 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_MINFO; } +#line 1890 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_HINFO; } break; case 272: -#line 1886 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_MX; } +#line 1891 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_MINFO; } break; case 273: -#line 1887 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_TXT; } +#line 1892 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_MX; } break; case 274: -#line 1888 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_RP; } +#line 1893 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_TXT; } break; case 275: -#line 1889 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_AFSDB; } +#line 1894 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_RP; } break; case 276: -#line 1890 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_RT; } +#line 1895 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_AFSDB; } break; case 277: -#line 1891 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_KEY; } +#line 1896 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_RT; } break; case 278: -#line 1892 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_AAAA; } +#line 1897 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_KEY; } break; case 279: -#line 1893 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_LOC; } +#line 1898 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_AAAA; } break; case 280: -#line 1894 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_SRV; } +#line 1899 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_LOC; } break; case 281: -#line 1895 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_NAPTR; } +#line 1900 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_SRV; } break; case 282: -#line 1896 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_KX; } +#line 1901 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_NAPTR; } break; case 283: -#line 1897 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_CERT; } +#line 1902 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_KX; } break; case 284: -#line 1898 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_DNAME; } +#line 1903 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_CERT; } break; case 285: -#line 1899 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_APL; } +#line 1904 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_DNAME; } break; case 286: -#line 1900 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_DS; } +#line 1905 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_APL; } break; case 287: -#line 1901 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_SSHFP; } +#line 1906 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_DS; } break; case 288: -#line 1902 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_IPSECKEY; } +#line 1907 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_SSHFP; } break; case 289: -#line 1903 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_RRSIG; } +#line 1908 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_IPSECKEY; } break; case 290: -#line 1904 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_NSEC; } +#line 1909 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_RRSIG; } break; case 291: -#line 1905 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_DNSKEY; } +#line 1910 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_NSEC; } break; case 292: -#line 1906 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_DHCID; } +#line 1911 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_DNSKEY; } break; case 293: -#line 1907 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_NSEC3; } +#line 1912 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_DHCID; } break; case 294: -#line 1908 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } +#line 1913 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_NSEC3; } break; case 295: -#line 1909 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_TLSA; } +#line 1914 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_NSEC3PARAM; } break; case 296: -#line 1910 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_SPF; } +#line 1915 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_TLSA; } break; case 297: -#line 1911 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_NID; } +#line 1916 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_SPF; } break; case 298: -#line 1912 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_L32; } +#line 1917 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_NID; } break; case 299: -#line 1913 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_L64; } +#line 1918 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_L32; } break; case 300: -#line 1914 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_LP; } +#line 1919 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_L64; } break; case 301: -#line 1915 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_EUI48; } +#line 1920 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_LP; } break; case 302: -#line 1916 "zscanner/scanner_body.rl" - { s->r_type = KNOT_RRTYPE_EUI64; } +#line 1921 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_EUI48; } break; case 303: #line 1922 "zscanner/scanner_body.rl" + { s->r_type = KNOT_RRTYPE_EUI64; } + break; + case 304: +#line 1928 "zscanner/scanner_body.rl" { if (rdata_tail - s->r_data > UINT16_MAX) { SCANNER_WARNING(ZSCANNER_ERDATA_OVERFLOW); @@ -7487,7 +7494,7 @@ _match: s->process_record(s); } break; -#line 7491 "zscanner/scanner.c" +#line 7498 "zscanner/scanner.c" } } @@ -7699,42 +7706,49 @@ _again: p--; {cs = 247; goto _again;} } break; - case 253: -#line 1556 "zscanner/scanner_body.rl" + case 250: +#line 1535 "zscanner/scanner_body.rl" { - SCANNER_WARNING(ZSCANNER_EBAD_CHAR_COLON); + SCANNER_WARNING(ZSCANNER_EBAD_CHAR_DASH); p--; {cs = 247; goto _again;} } break; case 254: -#line 1569 "zscanner/scanner_body.rl" +#line 1562 "zscanner/scanner_body.rl" { - SCANNER_WARNING(ZSCANNER_EBAD_ALGORITHM); + SCANNER_WARNING(ZSCANNER_EBAD_CHAR_COLON); p--; {cs = 247; goto _again;} } break; case 255: -#line 1573 "zscanner/scanner_body.rl" +#line 1575 "zscanner/scanner_body.rl" + { + SCANNER_WARNING(ZSCANNER_EBAD_ALGORITHM); + p--; {cs = 247; goto _again;} + } + break; + case 256: +#line 1579 "zscanner/scanner_body.rl" { SCANNER_WARNING(ZSCANNER_EBAD_CERT_TYPE); p--; {cs = 247; goto _again;} } break; - case 259: -#line 1619 "zscanner/scanner_body.rl" + case 260: +#line 1625 "zscanner/scanner_body.rl" { SCANNER_WARNING(ZSCANNER_EBAD_RDATA); p--; {cs = 247; goto _again;} } break; - case 264: -#line 1873 "zscanner/scanner_body.rl" + case 265: +#line 1879 "zscanner/scanner_body.rl" { SCANNER_WARNING(ZSCANNER_EUNSUPPORTED_TYPE); p--; {cs = 247; goto _again;} } break; -#line 7738 "zscanner/scanner.c" +#line 7752 "zscanner/scanner.c" } } } diff --git a/src/zscanner/scanner_body.rl b/src/zscanner/scanner_body.rl index 5c571931eb..adf2d7cf2d 100644 --- a/src/zscanner/scanner_body.rl +++ b/src/zscanner/scanner_body.rl @@ -1532,11 +1532,17 @@ fhold; fgoto err_line; } } + action _eui_sep_error { + SCANNER_WARNING(ZSCANNER_EBAD_CHAR_DASH); + fhold; fgoto err_line; + } - eui48 = (hex_char %_eui_count . ('-' . hex_char %_eui_count)+ + eui48 = (hex_char %_eui_count . + ('-' >!_eui_sep_error . hex_char %_eui_count)+ ) $!_hex_char_error >_eui_init %_eui48_exit; - eui64 = (hex_char %_eui_count . ('-' . hex_char %_eui_count)+ + eui64 = (hex_char %_eui_count . + ('-' >!_eui_sep_error . hex_char %_eui_count)+ ) $!_hex_char_error >_eui_init %_eui64_exit; # END diff --git a/src/zscanner/test/cases/43_EUI48.out b/src/zscanner/test/cases/43_EUI48.out index 547413b09f..29f6bdbb84 100644 --- a/src/zscanner/test/cases/43_EUI48.out +++ b/src/zscanner/test/cases/43_EUI48.out @@ -54,7 +54,7 @@ WARNG=ZSCANNER_EBAD_EUI_LENGTH ------ WARNG=ZSCANNER_EBAD_HEX_CHAR ------ -WARNG=ZSCANNER_EBAD_HEX_CHAR +WARNG=ZSCANNER_EBAD_CHAR_DASH ------ WARNG=ZSCANNER_EBAD_HEX_CHAR ------ diff --git a/src/zscanner/test/cases/44_EUI64.out b/src/zscanner/test/cases/44_EUI64.out index b917d3b971..745ba09bd5 100644 --- a/src/zscanner/test/cases/44_EUI64.out +++ b/src/zscanner/test/cases/44_EUI64.out @@ -54,7 +54,7 @@ WARNG=ZSCANNER_EBAD_EUI_LENGTH ------ WARNG=ZSCANNER_EBAD_HEX_CHAR ------ -WARNG=ZSCANNER_EBAD_HEX_CHAR +WARNG=ZSCANNER_EBAD_CHAR_DASH ------ WARNG=ZSCANNER_EBAD_HEX_CHAR ------ diff --git a/src/zscanner/test/processing.c b/src/zscanner/test/processing.c index 37da9df208..6c6e15e879 100644 --- a/src/zscanner/test/processing.c +++ b/src/zscanner/test/processing.c @@ -81,6 +81,7 @@ const char *error_names[] = { ERROR_CODE_TO_STRING(ZSCANNER_EBAD_EUI_LENGTH), ERROR_CODE_TO_STRING(ZSCANNER_EBAD_L64_LENGTH), ERROR_CODE_TO_STRING(ZSCANNER_EBAD_CHAR_COLON), + ERROR_CODE_TO_STRING(ZSCANNER_EBAD_CHAR_DASH), }; #define ERROR_CODE_NAME(code) error_names[code - ZSCANNER_UNCOVERED_STATE] -- GitLab