From 77eb5b5b508d4346428409a6b0e75ead41d11ee9 Mon Sep 17 00:00:00 2001 From: hagihala Date: Thu, 22 Dec 2016 11:52:18 +0900 Subject: [PATCH 1/2] Add lb_algo options ipvsadm(8) manual says that lblcr, sed, and nq schedulers are supported in addition to the ones listed in keepalived.conf(5) manual. Newer kernel also has fo (3.18+) and ovf (4.3+) schedulers. see: https://github.com/torvalds/linux/commits/master/net/netfilter/ipvs/Kconfig --- parser/lexer.go | 5 +++++ parser/parser.go.y | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/parser/lexer.go b/parser/lexer.go index fe9109d..639858b 100644 --- a/parser/lexer.go +++ b/parser/lexer.go @@ -115,9 +115,14 @@ var SYMBOL_TABLES = map[string]int{ "wrr": WRR, "lc": LC, "wlc": WLC, + "fo": FO, + "ovf": OVF, "lblc": LBLC, + "lblcr": LBLCR, "sh": SH, "dh": DH, + "sed": SED, + "nq": NQ, "NAT": NAT, "DR": DR, "TUN": TUN, diff --git a/parser/parser.go.y b/parser/parser.go.y index abbcd5e..0d96712 100644 --- a/parser/parser.go.y +++ b/parser/parser.go.y @@ -22,7 +22,7 @@ package parser %token SCRIPT INTERVAL TIMEOUT WEIGHT FALL RISE %token VIRTUAL_SERVER_GROUP %token VIRTUAL_SERVER -%token DELAY_LOOP LB_ALGO LB_KIND LVS_SCHED LVS_METHOD RR WRR LC WLC LBLC SH DH NAT DR TUN PERSISTENCE_TIMEOUT PROTOCOL TCP UDP SORRY_SERVER REAL_SERVER FWMARK INHIBIT_ON_FAILURE TCP_CHECK HTTP_GET SSL_GET SMTP_CHECK MISC_CHECK URL PATH DIGEST STATUS_CODE CONNECT_TIMEOUT CONNECT_PORT CONNECT_IP BINDTO BIND_PORT RETRY HELO_NAME MISC_PATH MISC_TIMEOUT WARMUP MISC_DYNAMIC NB_GET_RETRY DELAY_BEFORE_RETRY VIRTUALHOST ALPHA OMEGA QUORUM HYSTERESIS QUORUM_UP QUORUM_DOWN, +%token DELAY_LOOP LB_ALGO LB_KIND LVS_SCHED LVS_METHOD RR WRR LC WLC FO OVF LBLC LBLCR SH DH SED NQ NAT DR TUN PERSISTENCE_TIMEOUT PROTOCOL TCP UDP SORRY_SERVER REAL_SERVER FWMARK INHIBIT_ON_FAILURE TCP_CHECK HTTP_GET SSL_GET SMTP_CHECK MISC_CHECK URL PATH DIGEST STATUS_CODE CONNECT_TIMEOUT CONNECT_PORT CONNECT_IP BINDTO BIND_PORT RETRY HELO_NAME MISC_PATH MISC_TIMEOUT WARMUP MISC_DYNAMIC NB_GET_RETRY DELAY_BEFORE_RETRY VIRTUALHOST ALPHA OMEGA QUORUM HYSTERESIS QUORUM_UP QUORUM_DOWN, %% @@ -266,9 +266,14 @@ lb_algo: { } | WRR { } | LC { } | WLC { } +| FO { } +| OVF { } | LBLC { } +| LBLCR { } | SH { } | DH { } +| SED { } +| NQ { } lb_kind: { } | NAT { } From c2ff308a23bfb88a1745cbc0df78cfb9cbe965ab Mon Sep 17 00:00:00 2001 From: hagihala Date: Thu, 22 Dec 2016 12:04:05 +0900 Subject: [PATCH 2/2] Updated auto-generated parser.go --- parser/parser.go | 564 +++++++++++++++++++++++++---------------------- 1 file changed, 302 insertions(+), 262 deletions(-) diff --git a/parser/parser.go b/parser/parser.go index 9bf0a05..b575652 100644 --- a/parser/parser.go +++ b/parser/parser.go @@ -113,49 +113,54 @@ const RR = 57444 const WRR = 57445 const LC = 57446 const WLC = 57447 -const LBLC = 57448 -const SH = 57449 -const DH = 57450 -const NAT = 57451 -const DR = 57452 -const TUN = 57453 -const PERSISTENCE_TIMEOUT = 57454 -const PROTOCOL = 57455 -const TCP = 57456 -const UDP = 57457 -const SORRY_SERVER = 57458 -const REAL_SERVER = 57459 -const FWMARK = 57460 -const INHIBIT_ON_FAILURE = 57461 -const TCP_CHECK = 57462 -const HTTP_GET = 57463 -const SSL_GET = 57464 -const SMTP_CHECK = 57465 -const MISC_CHECK = 57466 -const URL = 57467 -const PATH = 57468 -const DIGEST = 57469 -const STATUS_CODE = 57470 -const CONNECT_TIMEOUT = 57471 -const CONNECT_PORT = 57472 -const CONNECT_IP = 57473 -const BINDTO = 57474 -const BIND_PORT = 57475 -const RETRY = 57476 -const HELO_NAME = 57477 -const MISC_PATH = 57478 -const MISC_TIMEOUT = 57479 -const WARMUP = 57480 -const MISC_DYNAMIC = 57481 -const NB_GET_RETRY = 57482 -const DELAY_BEFORE_RETRY = 57483 -const VIRTUALHOST = 57484 -const ALPHA = 57485 -const OMEGA = 57486 -const QUORUM = 57487 -const HYSTERESIS = 57488 -const QUORUM_UP = 57489 -const QUORUM_DOWN = 57490 +const FO = 57448 +const OVF = 57449 +const LBLC = 57450 +const LBLCR = 57451 +const SH = 57452 +const DH = 57453 +const SED = 57454 +const NQ = 57455 +const NAT = 57456 +const DR = 57457 +const TUN = 57458 +const PERSISTENCE_TIMEOUT = 57459 +const PROTOCOL = 57460 +const TCP = 57461 +const UDP = 57462 +const SORRY_SERVER = 57463 +const REAL_SERVER = 57464 +const FWMARK = 57465 +const INHIBIT_ON_FAILURE = 57466 +const TCP_CHECK = 57467 +const HTTP_GET = 57468 +const SSL_GET = 57469 +const SMTP_CHECK = 57470 +const MISC_CHECK = 57471 +const URL = 57472 +const PATH = 57473 +const DIGEST = 57474 +const STATUS_CODE = 57475 +const CONNECT_TIMEOUT = 57476 +const CONNECT_PORT = 57477 +const CONNECT_IP = 57478 +const BINDTO = 57479 +const BIND_PORT = 57480 +const RETRY = 57481 +const HELO_NAME = 57482 +const MISC_PATH = 57483 +const MISC_TIMEOUT = 57484 +const WARMUP = 57485 +const MISC_DYNAMIC = 57486 +const NB_GET_RETRY = 57487 +const DELAY_BEFORE_RETRY = 57488 +const VIRTUALHOST = 57489 +const ALPHA = 57490 +const OMEGA = 57491 +const QUORUM = 57492 +const HYSTERESIS = 57493 +const QUORUM_UP = 57494 +const QUORUM_DOWN = 57495 var yyToknames = [...]string{ "$end", @@ -263,9 +268,14 @@ var yyToknames = [...]string{ "WRR", "LC", "WLC", + "FO", + "OVF", "LBLC", + "LBLCR", "SH", "DH", + "SED", + "NQ", "NAT", "DR", "TUN", @@ -313,7 +323,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line parser/parser.go.y:361 +//line parser/parser.go.y:366 //line yacctab:1 var yyExca = [...]int{ @@ -322,135 +332,137 @@ var yyExca = [...]int{ -2, 0, -1, 19, 14, 126, - -2, 278, + -2, 283, -1, 201, 15, 118, -2, 119, } -const yyNprod = 291 +const yyNprod = 296 const yyPrivate = 57344 var yyTokenNames []string var yyStates []string -const yyLast = 527 +const yyLast = 532 var yyAct = [...]int{ - 400, 458, 453, 63, 412, 398, 389, 382, 363, 328, - 324, 207, 320, 307, 313, 305, 30, 181, 303, 182, - 205, 200, 300, 33, 272, 183, 264, 54, 173, 135, - 391, 326, 59, 359, 392, 393, 143, 455, 456, 457, - 34, 35, 64, 396, 217, 394, 395, 385, 384, 95, - 60, 216, 386, 34, 35, 215, 387, 54, 214, 388, - 105, 414, 415, 416, 417, 115, 116, 280, 281, 118, - 119, 120, 401, 34, 35, 74, 203, 127, 466, 32, - 131, 133, 76, 77, 365, 460, 60, 411, 447, 202, - 434, 107, 212, 114, 69, 68, 72, 433, 410, 407, - 406, 408, 409, 61, 425, 62, 65, 66, 67, 70, - 71, 366, 367, 368, 369, 370, 371, 327, 418, 73, - 273, 274, 275, 411, 108, 109, 110, 111, 112, 184, - 185, 186, 187, 188, 410, 407, 406, 408, 409, 403, - 405, 351, 352, 402, 189, 190, 404, 381, 191, 192, - 52, 130, 436, 12, 229, 230, 265, 266, 267, 268, - 269, 270, 271, 31, 126, 373, 219, 13, 14, 15, - 16, 137, 17, 37, 193, 194, 195, 196, 197, 198, - 199, 226, 357, 204, 175, 176, 177, 178, 179, 180, - 354, 34, 35, 312, 349, 282, 283, 322, 323, 138, - 261, 240, 241, 253, 104, 202, 34, 35, 64, 60, - 212, 347, 87, 277, 276, 343, 262, 338, 336, 334, - 294, 289, 260, 290, 252, 18, 225, 295, 34, 35, - 55, 244, 20, 19, 218, 304, 34, 35, 312, 245, - 427, 311, 311, 464, 129, 308, 309, 139, 140, 141, - 113, 142, 315, 310, 103, 89, 86, 462, 449, 319, - 69, 68, 72, 88, 463, 450, 101, 380, 379, 61, - 378, 62, 65, 66, 67, 70, 71, 377, 376, 361, - 360, 246, 243, 57, 58, 73, 239, 33, 238, 237, - 56, 316, 231, 220, 85, 81, 80, 79, 317, 208, - 332, 209, 210, 34, 35, 213, 78, 211, 304, 90, - 311, 25, 24, 23, 342, 22, 100, 96, 311, 34, - 35, 346, 339, 337, 335, 34, 35, 212, 315, 344, - 34, 35, 134, 440, 350, 353, 355, 348, 330, 358, - 39, 40, 45, 46, 47, 48, 49, 50, 41, 42, - 43, 44, 51, 34, 35, 132, 34, 35, 128, 34, - 35, 117, 333, 234, 465, 233, 34, 35, 345, 123, - 372, 124, 341, 374, 340, 302, 288, 287, 284, 254, - 251, 250, 249, 248, 247, 397, 232, 228, 224, 452, - 223, 419, 222, 221, 122, 121, 106, 426, 99, 98, - 83, 36, 28, 27, 26, 435, 451, 446, 445, 444, - 441, 442, 443, 439, 438, 437, 432, 431, 448, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 430, 459, 162, 163, - 164, 429, 428, 424, 423, 422, 421, 420, 375, 362, - 356, 331, 299, 298, 297, 296, 293, 461, 292, 291, - 459, 467, 165, 166, 167, 168, 169, 170, 171, 172, - 286, 285, 278, 263, 259, 258, 257, 256, 255, 242, - 236, 235, 227, 125, 102, 97, 94, 93, 92, 91, - 84, 82, 1, 53, 206, 21, 314, 306, 413, 399, - 454, 390, 383, 364, 279, 29, 201, 174, 329, 325, - 321, 318, 144, 301, 136, 75, 38, 11, 10, 9, - 8, 7, 6, 5, 4, 3, 2, + 405, 463, 458, 63, 417, 403, 394, 387, 368, 333, + 329, 207, 325, 312, 318, 310, 30, 181, 308, 182, + 205, 200, 305, 33, 277, 183, 264, 54, 173, 390, + 389, 143, 59, 135, 391, 460, 461, 462, 392, 285, + 286, 393, 364, 34, 35, 64, 217, 406, 396, 95, + 60, 331, 397, 398, 278, 279, 280, 54, 34, 35, + 105, 401, 216, 399, 400, 115, 116, 215, 214, 118, + 119, 120, 419, 420, 421, 422, 52, 127, 76, 77, + 131, 133, 34, 35, 32, 203, 60, 356, 357, 202, + 74, 471, 212, 114, 107, 327, 328, 69, 68, 72, + 465, 137, 452, 416, 240, 241, 61, 439, 62, 65, + 66, 67, 70, 71, 415, 412, 411, 413, 414, 408, + 410, 438, 73, 407, 430, 423, 409, 416, 370, 138, + 104, 386, 184, 185, 186, 187, 188, 332, 415, 412, + 411, 413, 414, 175, 176, 177, 178, 179, 180, 34, + 35, 317, 189, 190, 229, 230, 191, 192, 378, 37, + 371, 372, 373, 374, 375, 376, 130, 126, 362, 359, + 219, 354, 352, 31, 441, 12, 226, 139, 140, 141, + 348, 142, 193, 194, 195, 196, 197, 198, 199, 13, + 14, 15, 16, 343, 17, 287, 288, 204, 87, 341, + 261, 339, 299, 253, 321, 202, 294, 260, 252, 60, + 212, 322, 225, 282, 281, 218, 262, 244, 34, 35, + 64, 129, 113, 295, 103, 245, 89, 300, 108, 109, + 110, 111, 112, 86, 88, 309, 34, 35, 317, 432, + 385, 316, 316, 467, 34, 35, 55, 18, 384, 454, + 468, 101, 320, 383, 20, 19, 455, 469, 382, 324, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 69, 68, 72, 381, 366, 365, 246, 243, + 239, 61, 238, 62, 65, 66, 67, 70, 71, 237, + 313, 314, 33, 231, 220, 85, 81, 73, 315, 57, + 58, 80, 79, 78, 25, 337, 56, 24, 23, 22, + 34, 35, 134, 309, 100, 316, 34, 35, 132, 347, + 34, 35, 128, 316, 34, 35, 351, 344, 342, 340, + 90, 445, 212, 320, 349, 34, 35, 117, 335, 355, + 358, 360, 353, 350, 363, 39, 40, 45, 46, 47, + 48, 49, 50, 41, 42, 43, 44, 51, 208, 346, + 209, 210, 34, 35, 213, 338, 211, 470, 345, 34, + 35, 96, 307, 34, 35, 377, 293, 234, 379, 233, + 123, 292, 124, 289, 254, 251, 250, 249, 248, 247, + 402, 232, 228, 224, 457, 223, 424, 222, 221, 122, + 121, 106, 431, 99, 98, 83, 36, 28, 27, 26, + 440, 456, 451, 450, 449, 446, 447, 448, 444, 443, + 442, 437, 436, 453, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 435, 464, 162, 163, 164, 434, 433, 429, 428, + 427, 426, 425, 380, 367, 361, 336, 304, 303, 302, + 301, 298, 466, 297, 296, 464, 472, 165, 166, 167, + 168, 169, 170, 171, 172, 291, 290, 283, 263, 259, + 258, 257, 256, 255, 242, 236, 235, 227, 125, 102, + 97, 94, 93, 92, 91, 84, 82, 1, 53, 206, + 21, 319, 311, 418, 404, 459, 395, 388, 369, 284, + 29, 201, 174, 334, 330, 326, 323, 144, 306, 136, + 75, 38, 11, 10, 9, 8, 7, 6, 5, 4, + 3, 2, } var yyPact = [...]int{ - 137, -1000, 137, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 301, 299, 298, 297, 398, 397, 396, 45, - 395, -1000, 323, 220, 198, 10, 292, 283, 282, 281, - -1000, 487, 394, 486, -1000, -1000, 280, 241, 323, 249, - 302, 485, 484, 483, 482, 311, 481, 393, 392, 308, - 257, 480, 239, 220, -1000, -1000, 317, 390, 59, 235, - 198, 317, 351, -1000, -1000, 317, 317, 317, 389, 388, - 365, 479, 59, 348, 229, 10, 345, 322, 165, 383, - 95, 32, -1000, -1000, -1000, 65, -1000, -1000, 295, -1000, + 159, -1000, 159, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 295, 294, 293, 290, 403, 402, 401, 50, + 400, -1000, 328, 236, 210, 6, 289, 288, 287, 282, + -1000, 492, 399, 491, -1000, -1000, 281, 218, 328, 220, + 323, 490, 489, 488, 487, 365, 486, 398, 397, 306, + 242, 485, 209, 236, -1000, -1000, 316, 395, 163, 207, + 210, 316, 327, -1000, -1000, 316, 316, 316, 394, 393, + 376, 484, 163, 312, 206, 6, 308, 302, 95, 388, + 54, 35, -1000, -1000, -1000, 74, -1000, -1000, 354, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -19, -22, -26, -33, 219, 165, -1000, 279, 387, - 386, 384, 382, 211, 383, -1000, 478, -1000, -1000, 381, - 317, 317, 278, 380, 359, -1000, 477, 476, 275, 274, - 272, 148, 475, -1000, 268, 225, 267, -1000, 378, 377, - 376, 375, 374, 209, 95, 373, 474, 473, 472, 471, - 470, 207, 32, 198, 469, 54, 11, 54, 11, 468, - -47, 317, 317, 372, -1000, -1000, 467, 466, 371, 370, - 206, 65, 455, 454, 452, 205, 295, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 451, 450, 449, 448, -1000, -1000, - 369, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 317, -1000, -1000, -1000, -1000, -1000, 183, 228, 32, - -1000, -1000, -1000, 139, -1000, 25, 332, -1000, -1000, -1000, + -1000, -9, -10, -15, -31, 200, 95, -1000, 280, 392, + 391, 389, 387, 197, 388, -1000, 483, -1000, -1000, 386, + 316, 316, 279, 385, 373, -1000, 482, 481, 275, 268, + 266, 51, 480, -1000, 265, 211, 264, -1000, 383, 382, + 381, 380, 379, 193, 54, 378, 479, 478, 477, 476, + 475, 192, 35, 210, 474, 158, -60, 158, -60, 473, + -80, 316, 316, 377, -1000, -1000, 472, 471, 375, 370, + 191, 74, 460, 459, 457, 187, 354, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 456, 455, 454, 453, -1000, -1000, + 366, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 316, -1000, -1000, -1000, -1000, -1000, 228, 141, 35, + -1000, -1000, -1000, 37, -1000, 45, 332, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 447, 358, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 452, 361, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 204, 369, -1000, 203, 317, 202, 183, -1000, 368, 366, - 317, -1000, -1000, 200, 228, -1000, 362, 317, 196, 32, - 179, 139, 81, 295, 175, 25, -1000, 446, 167, 332, - -59, -1000, 266, 265, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 186, 366, -1000, 184, 316, + 178, 228, -1000, 362, 353, 316, -1000, -1000, 165, 141, + -1000, 337, 316, 157, 35, 156, 37, 27, 354, 154, + 45, -1000, 451, 153, 332, -50, -1000, 263, 262, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 445, - -8, -8, -1000, 150, -8, 444, -1000, 264, 263, 256, - 254, 253, 132, -1000, -1000, -1000, -82, -95, -95, 5, - -75, -1000, 103, -82, 443, 442, 441, 440, 439, 89, - -95, 226, 438, 437, 432, 413, 412, 82, 75, 5, - -1000, 138, 411, 410, 409, 327, 317, 407, 317, 405, - 404, 403, 73, -75, 252, 402, 385, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -89, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -31, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 70, -89, 251, 231, 360, 63, -31, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 450, 36, 36, -1000, 143, 36, + 449, -1000, 261, 244, 239, 234, 226, 116, -1000, -1000, + -1000, -105, -82, -82, -20, -69, -1000, 110, -105, 448, + 447, 446, 445, 444, 109, -82, 225, 443, 442, 437, + 418, 417, 106, 92, -20, -1000, 160, 416, 415, 414, + 325, 316, 412, 316, 410, 409, 408, 87, -69, 243, + 407, 390, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -96, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 4, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 85, -96, + 237, 245, 363, 76, 4, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, } var yyPgo = [...]int{ - 0, 492, 526, 525, 524, 523, 522, 521, 520, 519, - 518, 517, 173, 516, 20, 3, 150, 32, 75, 515, - 29, 514, 22, 513, 36, 512, 18, 15, 14, 511, - 12, 10, 9, 510, 11, 509, 508, 28, 507, 19, - 17, 25, 21, 506, 505, 16, 26, 24, 504, 8, - 503, 7, 6, 5, 4, 502, 501, 2, 500, 499, - 0, 1, 498, 497, 496, 13, 494, 493, 91, + 0, 497, 531, 530, 529, 528, 527, 526, 525, 524, + 523, 522, 159, 521, 20, 3, 76, 32, 90, 520, + 33, 519, 22, 518, 31, 517, 18, 15, 14, 516, + 12, 10, 9, 515, 11, 514, 513, 28, 512, 19, + 17, 25, 21, 511, 510, 16, 26, 24, 509, 8, + 508, 7, 6, 5, 4, 507, 506, 2, 505, 504, + 0, 1, 503, 502, 501, 13, 499, 498, 94, } var yyR1 = [...]int{ @@ -475,15 +487,15 @@ var yyR1 = [...]int{ 58, 58, 53, 53, 59, 59, 59, 59, 59, 59, 59, 61, 61, 60, 60, 60, 60, 60, 60, 60, 54, 54, 62, 62, 62, 62, 62, 62, 46, 46, - 46, 46, 46, 46, 46, 46, 47, 47, 47, 47, - 48, 48, 48, 27, 27, 28, 28, 63, 63, 63, - 63, 64, 64, 64, 14, 14, 66, 16, 16, 67, - 67, 67, 67, 67, 67, 17, 17, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 19, 19, 19, 19, 19, 68, - 68, 68, 68, 68, 68, 65, 65, 65, 15, 15, - 15, 45, 45, 45, 34, 34, 34, 34, 34, 34, - 34, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 47, 47, 47, 47, 48, 48, 48, 27, 27, + 28, 28, 63, 63, 63, 63, 64, 64, 64, 14, + 14, 66, 16, 16, 67, 67, 67, 67, 67, 67, + 17, 17, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, + 19, 19, 19, 19, 68, 68, 68, 68, 68, 68, + 65, 65, 65, 15, 15, 15, 45, 45, 45, 34, + 34, 34, 34, 34, 34, 34, } var yyR2 = [...]int{ @@ -508,22 +520,22 @@ var yyR2 = [...]int{ 2, 2, 2, 1, 0, 1, 4, 2, 2, 2, 2, 2, 1, 0, 2, 2, 2, 2, 2, 2, 2, 1, 0, 2, 2, 2, 2, 1, 0, 1, - 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, - 0, 1, 1, 2, 1, 2, 1, 1, 2, 2, - 2, 1, 2, 2, 2, 1, 1, 2, 1, 0, - 1, 1, 2, 2, 2, 2, 1, 0, 2, 2, - 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 0, 4, 4, 4, 4, 0, - 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, - 1, 0, 1, 2, 0, 1, 1, 1, 1, 1, - 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 1, 1, 1, 0, 1, 1, 2, 1, + 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, + 1, 1, 2, 1, 0, 1, 1, 2, 2, 2, + 2, 1, 0, 2, 2, 2, 1, 1, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, + 4, 4, 4, 4, 0, 1, 1, 1, 1, 1, + 0, 1, 1, 0, 1, 1, 0, 1, 2, 0, + 1, 1, 1, 1, 1, 1, } var yyChk = [...]int{ -1000, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11, 16, 30, 31, 32, 33, 35, 88, 96, 95, -1, 14, 14, 14, 14, 6, 6, 6, -44, - -45, 118, 34, -15, 8, 9, 6, -12, -13, 17, + -45, 123, 34, -15, 8, 9, 6, -12, -13, 17, 18, 25, 26, 27, 28, 19, 20, 21, 22, 23, 24, 29, -16, -67, -15, 10, 70, 63, 64, -17, -41, 71, 73, -15, 10, 74, 75, 76, 63, 62, @@ -538,85 +550,87 @@ var yyChk = [...]int{ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 55, 56, 57, 79, 80, 81, 82, 83, 84, 85, 86, -37, -38, 89, 90, 91, 92, 93, - 94, -40, -39, -41, 97, 98, 99, 100, 101, 112, - 113, 116, 117, 142, 143, 144, 145, 146, 147, 148, - -42, -43, -15, 11, 118, -14, -66, -34, 4, 6, + 94, -40, -39, -41, 97, 98, 99, 100, 101, 117, + 118, 121, 122, 147, 148, 149, 150, 151, 152, 153, + -42, -43, -15, 11, 123, -14, -66, -34, 4, 6, 7, 12, -15, 10, 77, 77, 77, 77, 15, -20, 14, 6, 6, 6, 6, 15, -24, 4, 6, -15, -15, 14, 6, 6, 4, 4, 4, 14, 14, 14, 53, 54, 4, 14, 6, 14, 14, 6, 6, 6, 6, 6, 15, -37, 6, 4, 4, 4, 4, 4, 15, -40, -17, 4, -46, 102, 103, 104, 105, 106, - 107, 108, -47, 109, 110, 111, -46, -47, 4, -48, - 114, 115, -15, -15, 6, 4, 4, 6, 6, 15, - -42, 4, 4, 4, 15, -14, 4, 4, 4, 4, - -22, -23, 6, -26, -15, -27, -63, -65, 62, 63, - 70, -15, 10, -28, -64, -65, 63, 70, -29, -39, - -30, -33, 58, 59, -31, -35, 6, 92, -32, -36, - 6, 4, -45, 4, 15, -22, 15, -26, 15, -27, - 6, 6, -15, 15, -28, 6, -15, 15, -40, 15, - -30, 60, 61, -34, 15, -31, 4, 15, -32, 92, - 14, 14, 4, -49, -50, 92, 119, 120, 121, 122, - 123, 124, -49, 15, -49, 4, 14, 14, 14, 14, - 14, 15, -51, -55, 130, 129, 134, 138, 141, -52, - -56, 125, 129, 130, 140, 141, 138, -52, -53, -59, - -60, 67, 138, 134, 141, 135, 131, 130, 132, 133, - 129, 118, -54, -62, 136, 137, 138, 139, 15, -51, - 4, 4, 4, 4, 4, 15, -52, 14, 4, 4, - 4, 4, 4, 15, 15, -53, 14, 4, 4, 4, - 6, -15, 4, -15, 4, 4, 4, 15, -54, 6, - 13, 4, 4, -57, -58, 126, 127, 128, -61, -60, - 15, -57, 6, 13, 12, 4, 15, -61, + 107, 108, 109, 110, 111, 112, 113, -47, 114, 115, + 116, -46, -47, 4, -48, 119, 120, -15, -15, 6, + 4, 4, 6, 6, 15, -42, 4, 4, 4, 15, + -14, 4, 4, 4, 4, -22, -23, 6, -26, -15, + -27, -63, -65, 62, 63, 70, -15, 10, -28, -64, + -65, 63, 70, -29, -39, -30, -33, 58, 59, -31, + -35, 6, 92, -32, -36, 6, 4, -45, 4, 15, + -22, 15, -26, 15, -27, 6, 6, -15, 15, -28, + 6, -15, 15, -40, 15, -30, 60, 61, -34, 15, + -31, 4, 15, -32, 92, 14, 14, 4, -49, -50, + 92, 124, 125, 126, 127, 128, 129, -49, 15, -49, + 4, 14, 14, 14, 14, 14, 15, -51, -55, 135, + 134, 139, 143, 146, -52, -56, 130, 134, 135, 145, + 146, 143, -52, -53, -59, -60, 67, 143, 139, 146, + 140, 136, 135, 137, 138, 134, 123, -54, -62, 141, + 142, 143, 144, 15, -51, 4, 4, 4, 4, 4, + 15, -52, 14, 4, 4, 4, 4, 4, 15, 15, + -53, 14, 4, 4, 4, 6, -15, 4, -15, 4, + 4, 4, 15, -54, 6, 13, 4, 4, -57, -58, + 131, 132, 133, -61, -60, 15, -57, 6, 13, 12, + 4, 15, -61, } var yyDef = [...]int{ 3, -2, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, -2, - 0, 1, 16, 239, 247, 264, 0, 0, 0, 0, - 127, 0, 0, 282, 279, 280, 0, 0, 15, 0, - 0, 0, 0, 0, 0, 278, 0, 0, 0, 0, - 0, 0, 0, 238, 240, 241, 278, 0, 269, 0, - 246, 278, 278, 251, 252, 278, 278, 278, 0, 0, - 0, 0, 269, 278, 0, 36, 278, 278, 40, 53, - 105, 130, 128, 129, 283, 119, 13, 14, 278, 18, + 0, 1, 16, 244, 252, 269, 0, 0, 0, 0, + 127, 0, 0, 287, 284, 285, 0, 0, 15, 0, + 0, 0, 0, 0, 0, 283, 0, 0, 0, 0, + 0, 0, 0, 243, 245, 246, 283, 0, 274, 0, + 251, 283, 283, 256, 257, 283, 283, 283, 0, 0, + 0, 0, 274, 283, 0, 36, 283, 283, 40, 53, + 105, 130, 128, 129, 288, 119, 13, 14, 283, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 237, 242, 243, 244, 270, 271, - 272, 273, 274, 33, 245, 248, 249, 250, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 34, + 29, 30, 31, 32, 242, 247, 248, 249, 275, 276, + 277, 278, 279, 33, 250, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 34, 35, 0, 0, 0, 0, 0, 39, 41, 0, 0, 0, 0, 0, 0, 52, 54, 0, 56, 57, 0, - 278, 278, 0, 0, 0, 65, 0, 0, 0, 0, + 283, 283, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, - 0, 0, 125, 115, 0, 208, 216, 208, 216, 0, - 220, 278, 278, 0, 142, 143, 0, 0, 0, 0, - 0, -2, 0, 0, 0, 0, 235, 236, 285, 286, - 287, 288, 289, 290, 0, 0, 0, 0, 37, 38, + 0, 0, 125, 115, 0, 208, 221, 208, 221, 0, + 225, 283, 283, 0, 142, 143, 0, 0, 0, 0, + 0, -2, 0, 0, 0, 0, 240, 241, 290, 291, + 292, 293, 294, 295, 0, 0, 0, 0, 37, 38, 0, 43, 44, 45, 46, 50, 51, 55, 58, 59, - 60, 278, 62, 63, 64, 66, 67, 275, 275, 130, + 60, 283, 62, 63, 64, 66, 67, 280, 280, 130, 71, 72, 73, 87, 76, 0, 99, 80, 81, 82, 83, 84, 102, 103, 106, 107, 108, 109, 110, 111, 123, 124, 114, 131, 132, 209, 210, 211, 212, 213, - 214, 215, 133, 217, 218, 219, 134, 135, 136, 137, - 221, 222, 0, 278, 141, 144, 145, 146, 147, 116, - 117, 120, 121, 122, 17, 234, 265, 267, 266, 268, - 0, 48, 49, 0, 96, 0, 224, 227, 0, 0, - 278, 276, 277, 0, 226, 231, 0, 278, 0, 113, - 0, 86, 0, 278, 0, 92, 93, 0, 0, 98, - 100, 138, 0, 0, 42, 47, 61, 95, 68, 223, - 228, 229, 230, 69, 225, 232, 233, 70, 112, 75, - 85, 88, 89, 90, 77, 91, 94, 78, 97, 0, - 150, 150, 101, 0, 149, 0, 152, 0, 0, 0, - 0, 0, 0, 139, 148, 151, 160, 168, 168, 184, - 202, 140, 0, 159, 0, 0, 0, 0, 0, 0, - 167, 0, 0, 0, 0, 0, 0, 0, 0, 183, - 185, 0, 0, 0, 0, 0, 278, 0, 278, 0, - 0, 0, 0, 201, 0, 0, 0, 207, 153, 158, - 161, 162, 163, 164, 165, 154, 166, 177, 170, 171, - 172, 173, 174, 155, 156, 182, 193, 187, 188, 189, - 190, 194, 195, 196, 197, 198, 199, 157, 200, 203, - 204, 205, 206, 0, 176, 0, 0, 0, 0, 192, - 169, 175, 178, 179, 180, 181, 186, 191, + 214, 215, 216, 217, 218, 219, 220, 133, 222, 223, + 224, 134, 135, 136, 137, 226, 227, 0, 283, 141, + 144, 145, 146, 147, 116, 117, 120, 121, 122, 17, + 239, 270, 272, 271, 273, 0, 48, 49, 0, 96, + 0, 229, 232, 0, 0, 283, 281, 282, 0, 231, + 236, 0, 283, 0, 113, 0, 86, 0, 283, 0, + 92, 93, 0, 0, 98, 100, 138, 0, 0, 42, + 47, 61, 95, 68, 228, 233, 234, 235, 69, 230, + 237, 238, 70, 112, 75, 85, 88, 89, 90, 77, + 91, 94, 78, 97, 0, 150, 150, 101, 0, 149, + 0, 152, 0, 0, 0, 0, 0, 0, 139, 148, + 151, 160, 168, 168, 184, 202, 140, 0, 159, 0, + 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, + 0, 0, 0, 0, 183, 185, 0, 0, 0, 0, + 0, 283, 0, 283, 0, 0, 0, 0, 201, 0, + 0, 0, 207, 153, 158, 161, 162, 163, 164, 165, + 154, 166, 177, 170, 171, 172, 173, 174, 155, 156, + 182, 193, 187, 188, 189, 190, 194, 195, 196, 197, + 198, 199, 157, 200, 203, 204, 205, 206, 0, 176, + 0, 0, 0, 0, 192, 169, 175, 178, 179, 180, + 181, 186, 191, } var yyTok1 = [...]int{ @@ -638,7 +652,8 @@ var yyTok2 = [...]int{ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, } var yyTok3 = [...]int{ 0, @@ -1747,43 +1762,53 @@ yydefault: { } case 216: - yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.go.y:273 + yyDollar = yyS[yypt-1 : yypt+1] + //line parser/parser.go.y:272 { } case 217: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.go.y:274 + //line parser/parser.go.y:273 { } case 218: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.go.y:275 + //line parser/parser.go.y:274 { } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.go.y:276 + //line parser/parser.go.y:275 { } case 220: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser/parser.go.y:276 + { + } + case 221: yyDollar = yyS[yypt-0 : yypt+1] //line parser/parser.go.y:278 { } - case 221: + case 222: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.go.y:279 { } - case 222: + case 223: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.go.y:280 { } case 224: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.go.y:282 + //line parser/parser.go.y:281 + { + } + case 225: + yyDollar = yyS[yypt-0 : yypt+1] + //line parser/parser.go.y:283 { } case 226: @@ -1793,87 +1818,102 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.go.y:286 - { - } - case 228: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.go.y:287 + //line parser/parser.go.y:285 { } case 229: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.go.y:288 + yyDollar = yyS[yypt-1 : yypt+1] + //line parser/parser.go.y:287 { } - case 230: - yyDollar = yyS[yypt-2 : yypt+1] + case 231: + yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.go.y:289 { } - case 231: + case 232: yyDollar = yyS[yypt-1 : yypt+1] //line parser/parser.go.y:291 { } - case 232: + case 233: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.go.y:292 { } - case 233: + case 234: yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.go.y:293 { } case 235: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.go.y:295 + yyDollar = yyS[yypt-2 : yypt+1] + //line parser/parser.go.y:294 { } case 236: yyDollar = yyS[yypt-1 : yypt+1] + //line parser/parser.go.y:296 + { + } + case 237: + yyDollar = yyS[yypt-2 : yypt+1] //line parser/parser.go.y:297 { } - case 239: - yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.go.y:301 + case 238: + yyDollar = yyS[yypt-2 : yypt+1] + //line parser/parser.go.y:298 + { + } + case 240: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser/parser.go.y:300 { } - case 247: + case 241: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser/parser.go.y:302 + { + } + case 244: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.go.y:310 + //line parser/parser.go.y:306 { } - case 264: + case 252: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.go.y:328 + //line parser/parser.go.y:315 { } case 269: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.go.y:334 + //line parser/parser.go.y:333 + { + } + case 274: + yyDollar = yyS[yypt-0 : yypt+1] + //line parser/parser.go.y:339 { } - case 275: + case 280: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.go.y:341 + //line parser/parser.go.y:346 { } - case 278: + case 283: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.go.y:345 + //line parser/parser.go.y:350 { } - case 281: + case 286: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.go.y:349 + //line parser/parser.go.y:354 { } - case 284: + case 289: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.go.y:353 + //line parser/parser.go.y:358 { } }