github.com/bingoohuang/gg@v0.0.0-20240325092523-45da7dee9335/pkg/sqlparse/sqlparser/sql.go (about) 1 // Code generated by goyacc -o sql.go sql.y. DO NOT EDIT. 2 3 //line sql.y:18 4 package sqlparser 5 6 import __yyfmt__ "fmt" 7 8 //line sql.y:18 9 10 func setParseTree(yylex interface{}, stmt Statement) { 11 yylex.(*Tokenizer).ParseTree = stmt 12 } 13 14 func setAllowComments(yylex interface{}, allow bool) { 15 yylex.(*Tokenizer).AllowComments = allow 16 } 17 18 func incNesting(yylex interface{}) bool { 19 yylex.(*Tokenizer).nesting++ 20 if yylex.(*Tokenizer).nesting == 200 { 21 return true 22 } 23 return false 24 } 25 26 func decNesting(yylex interface{}) { 27 yylex.(*Tokenizer).nesting-- 28 } 29 30 func forceEOF(yylex interface{}) { 31 yylex.(*Tokenizer).ForceEOF = true 32 } 33 34 //line sql.y:46 35 type yySymType struct { 36 yys int 37 empty struct{} 38 statement Statement 39 selStmt SelectStatement 40 ins *Insert 41 byt byte 42 bytes []byte 43 bytes2 [][]byte 44 str string 45 selectExprs SelectExprs 46 selectExpr SelectExpr 47 columns Columns 48 colName *ColName 49 tableExprs TableExprs 50 tableExpr TableExpr 51 tableName TableName 52 tableNames TableNames 53 indexHints *IndexHints 54 expr Expr 55 exprs Exprs 56 boolVal BoolVal 57 colTuple ColTuple 58 values Values 59 valTuple ValTuple 60 subquery *Subquery 61 whens []*When 62 when *When 63 orderBy OrderBy 64 order *Order 65 limit *Limit 66 updateExprs UpdateExprs 67 updateExpr *UpdateExpr 68 colIdent ColIdent 69 colIdents []ColIdent 70 tableIdent TableIdent 71 convertType *ConvertType 72 aliasedTableName *AliasedTableExpr 73 } 74 75 const LEX_ERROR = 57346 76 const UNION = 57347 77 const SELECT = 57348 78 const INSERT = 57349 79 const UPDATE = 57350 80 const DELETE = 57351 81 const FROM = 57352 82 const WHERE = 57353 83 const GROUP = 57354 84 const HAVING = 57355 85 const ORDER = 57356 86 const BY = 57357 87 const LIMIT = 57358 88 const OFFSET = 57359 89 const FOR = 57360 90 const ALL = 57361 91 const DISTINCT = 57362 92 const AS = 57363 93 const EXISTS = 57364 94 const ASC = 57365 95 const DESC = 57366 96 const INTO = 57367 97 const DUPLICATE = 57368 98 const KEY = 57369 99 const DEFAULT = 57370 100 const SET = 57371 101 const LOCK = 57372 102 const VALUES = 57373 103 const LAST_INSERT_ID = 57374 104 const NEXT = 57375 105 const VALUE = 57376 106 const SHARE = 57377 107 const MODE = 57378 108 const SQL_NO_CACHE = 57379 109 const SQL_CACHE = 57380 110 const JOIN = 57381 111 const STRAIGHT_JOIN = 57382 112 const LEFT = 57383 113 const RIGHT = 57384 114 const INNER = 57385 115 const OUTER = 57386 116 const CROSS = 57387 117 const NATURAL = 57388 118 const USE = 57389 119 const FORCE = 57390 120 const ON = 57391 121 const ID = 57392 122 const HEX = 57393 123 const STRING = 57394 124 const INTEGRAL = 57395 125 const FLOAT = 57396 126 const HEXNUM = 57397 127 const VALUE_ARG = 57398 128 const LIST_ARG = 57399 129 const COMMENT = 57400 130 const NULL = 57401 131 const TRUE = 57402 132 const FALSE = 57403 133 const OR = 57404 134 const AND = 57405 135 const NOT = 57406 136 const BETWEEN = 57407 137 const CASE = 57408 138 const WHEN = 57409 139 const THEN = 57410 140 const ELSE = 57411 141 const END = 57412 142 const LE = 57413 143 const GE = 57414 144 const NE = 57415 145 const NULL_SAFE_EQUAL = 57416 146 const IS = 57417 147 const LIKE = 57418 148 const REGEXP = 57419 149 const IN = 57420 150 const SHIFT_LEFT = 57421 151 const SHIFT_RIGHT = 57422 152 const DIV = 57423 153 const MOD = 57424 154 const UNARY = 57425 155 const COLLATE = 57426 156 const BINARY = 57427 157 const INTERVAL = 57428 158 const JSON_EXTRACT_OP = 57429 159 const JSON_UNQUOTE_EXTRACT_OP = 57430 160 const CREATE = 57431 161 const ALTER = 57432 162 const DROP = 57433 163 const RENAME = 57434 164 const ANALYZE = 57435 165 const TABLE = 57436 166 const INDEX = 57437 167 const VIEW = 57438 168 const TO = 57439 169 const IGNORE = 57440 170 const IF = 57441 171 const UNIQUE = 57442 172 const USING = 57443 173 const SHOW = 57444 174 const DESCRIBE = 57445 175 const EXPLAIN = 57446 176 const DATE = 57447 177 const ESCAPE = 57448 178 const REPAIR = 57449 179 const OPTIMIZE = 57450 180 const TRUNCATE = 57451 181 const DATABASES = 57452 182 const TABLES = 57453 183 const VITESS_KEYSPACES = 57454 184 const VITESS_SHARDS = 57455 185 const VSCHEMA_TABLES = 57456 186 const INTEGER = 57457 187 const CHARACTER = 57458 188 const CURRENT_TIMESTAMP = 57459 189 const DATABASE = 57460 190 const CURRENT_DATE = 57461 191 const CURRENT_TIME = 57462 192 const LOCALTIME = 57463 193 const LOCALTIMESTAMP = 57464 194 const UTC_DATE = 57465 195 const UTC_TIME = 57466 196 const UTC_TIMESTAMP = 57467 197 const REPLACE = 57468 198 const CONVERT = 57469 199 const CAST = 57470 200 const GROUP_CONCAT = 57471 201 const SEPARATOR = 57472 202 const MATCH = 57473 203 const AGAINST = 57474 204 const BOOLEAN = 57475 205 const LANGUAGE = 57476 206 const WITH = 57477 207 const QUERY = 57478 208 const EXPANSION = 57479 209 const UNUSED = 57480 210 211 var yyToknames = [...]string{ 212 "$end", 213 "error", 214 "$unk", 215 "LEX_ERROR", 216 "UNION", 217 "SELECT", 218 "INSERT", 219 "UPDATE", 220 "DELETE", 221 "FROM", 222 "WHERE", 223 "GROUP", 224 "HAVING", 225 "ORDER", 226 "BY", 227 "LIMIT", 228 "OFFSET", 229 "FOR", 230 "ALL", 231 "DISTINCT", 232 "AS", 233 "EXISTS", 234 "ASC", 235 "DESC", 236 "INTO", 237 "DUPLICATE", 238 "KEY", 239 "DEFAULT", 240 "SET", 241 "LOCK", 242 "VALUES", 243 "LAST_INSERT_ID", 244 "NEXT", 245 "VALUE", 246 "SHARE", 247 "MODE", 248 "SQL_NO_CACHE", 249 "SQL_CACHE", 250 "JOIN", 251 "STRAIGHT_JOIN", 252 "LEFT", 253 "RIGHT", 254 "INNER", 255 "OUTER", 256 "CROSS", 257 "NATURAL", 258 "USE", 259 "FORCE", 260 "ON", 261 "'('", 262 "','", 263 "')'", 264 "ID", 265 "HEX", 266 "STRING", 267 "INTEGRAL", 268 "FLOAT", 269 "HEXNUM", 270 "VALUE_ARG", 271 "LIST_ARG", 272 "COMMENT", 273 "NULL", 274 "TRUE", 275 "FALSE", 276 "OR", 277 "AND", 278 "NOT", 279 "'!'", 280 "BETWEEN", 281 "CASE", 282 "WHEN", 283 "THEN", 284 "ELSE", 285 "END", 286 "'='", 287 "'<'", 288 "'>'", 289 "LE", 290 "GE", 291 "NE", 292 "NULL_SAFE_EQUAL", 293 "IS", 294 "LIKE", 295 "REGEXP", 296 "IN", 297 "'|'", 298 "'&'", 299 "SHIFT_LEFT", 300 "SHIFT_RIGHT", 301 "'+'", 302 "'-'", 303 "'*'", 304 "'/'", 305 "DIV", 306 "'%'", 307 "MOD", 308 "'^'", 309 "'~'", 310 "UNARY", 311 "COLLATE", 312 "BINARY", 313 "INTERVAL", 314 "'.'", 315 "JSON_EXTRACT_OP", 316 "JSON_UNQUOTE_EXTRACT_OP", 317 "CREATE", 318 "ALTER", 319 "DROP", 320 "RENAME", 321 "ANALYZE", 322 "TABLE", 323 "INDEX", 324 "VIEW", 325 "TO", 326 "IGNORE", 327 "IF", 328 "UNIQUE", 329 "USING", 330 "SHOW", 331 "DESCRIBE", 332 "EXPLAIN", 333 "DATE", 334 "ESCAPE", 335 "REPAIR", 336 "OPTIMIZE", 337 "TRUNCATE", 338 "DATABASES", 339 "TABLES", 340 "VITESS_KEYSPACES", 341 "VITESS_SHARDS", 342 "VSCHEMA_TABLES", 343 "INTEGER", 344 "CHARACTER", 345 "CURRENT_TIMESTAMP", 346 "DATABASE", 347 "CURRENT_DATE", 348 "CURRENT_TIME", 349 "LOCALTIME", 350 "LOCALTIMESTAMP", 351 "UTC_DATE", 352 "UTC_TIME", 353 "UTC_TIMESTAMP", 354 "REPLACE", 355 "CONVERT", 356 "CAST", 357 "GROUP_CONCAT", 358 "SEPARATOR", 359 "MATCH", 360 "AGAINST", 361 "BOOLEAN", 362 "LANGUAGE", 363 "WITH", 364 "QUERY", 365 "EXPANSION", 366 "UNUSED", 367 "';'", 368 } 369 370 var yyStatenames = [...]string{} 371 372 const yyEofCode = 1 373 const yyErrCode = 2 374 const yyInitialStackSize = 16 375 376 //line yacctab:1 377 var yyExca = [...]int{ 378 -1, 1, 379 1, -1, 380 -2, 0, 381 -1, 3, 382 5, 21, 383 -2, 4, 384 -1, 219, 385 103, 335, 386 -2, 331, 387 -1, 220, 388 103, 336, 389 -2, 332, 390 -1, 441, 391 5, 21, 392 -2, 286, 393 -1, 477, 394 103, 338, 395 -2, 334, 396 -1, 585, 397 5, 22, 398 -2, 168, 399 -1, 648, 400 5, 22, 401 -2, 287, 402 -1, 687, 403 5, 21, 404 -2, 289, 405 -1, 731, 406 5, 22, 407 -2, 290, 408 } 409 410 const yyPrivate = 57344 411 412 const yyLast = 3726 413 414 var yyAct = [...]int{ 415 235, 220, 400, 573, 674, 341, 692, 574, 469, 42, 416 673, 248, 343, 537, 540, 345, 214, 321, 188, 618, 417 611, 506, 295, 301, 215, 59, 554, 476, 272, 570, 418 87, 180, 237, 41, 325, 197, 758, 181, 753, 246, 419 757, 748, 756, 310, 86, 752, 677, 322, 3, 747, 420 209, 180, 180, 204, 46, 203, 180, 709, 250, 225, 421 481, 462, 464, 216, 488, 333, 530, 202, 531, 182, 422 183, 184, 185, 186, 48, 49, 50, 51, 486, 180, 423 230, 180, 222, 78, 187, 180, 349, 738, 369, 368, 424 378, 379, 371, 372, 373, 374, 375, 376, 377, 370, 425 346, 213, 380, 491, 39, 224, 332, 530, 207, 531, 426 77, 588, 78, 600, 532, 380, 587, 627, 586, 602, 427 223, 412, 234, 226, 530, 355, 531, 83, 227, 463, 428 228, 357, 356, 79, 233, 533, 80, 81, 82, 373, 429 374, 375, 376, 377, 370, 716, 743, 380, 358, 698, 430 539, 651, 622, 746, 739, 532, 592, 485, 487, 484, 431 369, 368, 378, 379, 371, 372, 373, 374, 375, 376, 432 377, 370, 532, 334, 380, 399, 533, 390, 391, 337, 433 329, 358, 357, 356, 628, 542, 701, 704, 370, 681, 434 229, 380, 679, 533, 489, 629, 360, 612, 336, 358, 435 555, 297, 634, 180, 601, 490, 599, 555, 357, 356, 436 180, 180, 339, 180, 371, 372, 373, 374, 375, 376, 437 377, 370, 513, 180, 380, 358, 59, 356, 180, 59, 438 359, 180, 39, 348, 180, 726, 511, 512, 510, 357, 439 356, 298, 509, 358, 357, 356, 499, 501, 502, 299, 440 303, 500, 306, 604, 605, 606, 358, 744, 427, 428, 441 722, 358, 330, 340, 664, 735, 236, 207, 718, 236, 442 616, 236, 338, 232, 650, 236, 236, 347, 545, 236, 443 350, 308, 236, 353, 369, 368, 378, 379, 371, 372, 444 373, 374, 375, 376, 377, 370, 231, 643, 380, 430, 445 357, 356, 59, 470, 388, 43, 571, 180, 335, 545, 446 180, 180, 180, 180, 18, 335, 429, 358, 646, 216, 447 308, 180, 458, 459, 444, 180, 616, 425, 180, 39, 448 593, 180, 470, 180, 180, 431, 18, 439, 616, 440, 449 59, 437, 616, 308, 478, 468, 581, 216, 180, 471, 450 475, 180, 441, 477, 180, 59, 443, 466, 39, 494, 451 473, 465, 456, 446, 445, 448, 447, 207, 207, 207, 452 207, 460, 335, 307, 271, 240, 296, 571, 352, 453, 453 39, 584, 207, 472, 454, 529, 76, 583, 451, 194, 454 207, 450, 507, 452, 449, 308, 16, 482, 18, 59, 455 492, 546, 755, 493, 178, 414, 415, 416, 417, 418, 456 419, 420, 544, 59, 557, 477, 18, 37, 20, 21, 457 751, 270, 508, 686, 210, 210, 218, 603, 361, 210, 458 534, 535, 552, 39, 30, 201, 559, 198, 199, 22, 459 568, 192, 39, 495, 59, 57, 567, 749, 562, 723, 460 460, 216, 210, 580, 210, 684, 572, 29, 210, 401, 461 39, 585, 563, 302, 644, 455, 410, 316, 317, 575, 462 479, 613, 351, 217, 238, 320, 300, 195, 196, 589, 463 591, 302, 189, 59, 59, 729, 239, 190, 595, 43, 464 577, 369, 368, 378, 379, 371, 372, 373, 374, 375, 465 376, 377, 370, 728, 566, 380, 262, 261, 263, 264, 466 265, 266, 565, 712, 267, 470, 23, 24, 26, 25, 467 27, 596, 474, 713, 354, 45, 47, 331, 40, 28, 468 31, 32, 607, 1, 33, 34, 35, 84, 614, 507, 469 319, 324, 496, 497, 59, 503, 504, 617, 625, 626, 470 480, 53, 630, 38, 547, 548, 598, 636, 551, 637, 471 638, 639, 640, 597, 483, 221, 180, 564, 578, 508, 472 426, 294, 558, 727, 560, 561, 210, 647, 648, 649, 473 633, 711, 632, 210, 327, 409, 210, 569, 401, 553, 474 652, 549, 550, 249, 59, 180, 210, 273, 36, 180, 475 498, 210, 645, 260, 210, 659, 257, 210, 658, 259, 476 258, 296, 432, 438, 362, 641, 667, 247, 241, 461, 477 206, 59, 304, 311, 309, 212, 205, 642, 708, 663, 478 737, 668, 436, 675, 36, 544, 662, 672, 477, 669, 479 676, 678, 193, 19, 660, 180, 344, 208, 661, 344, 480 671, 682, 59, 59, 685, 44, 590, 59, 59, 59, 481 200, 683, 59, 694, 695, 15, 696, 14, 13, 12, 482 11, 691, 10, 699, 700, 575, 705, 706, 9, 703, 483 210, 8, 218, 210, 210, 210, 210, 7, 243, 615, 484 714, 6, 5, 717, 457, 719, 720, 687, 210, 4, 485 59, 327, 207, 631, 467, 191, 210, 210, 17, 725, 486 218, 659, 467, 2, 0, 575, 731, 0, 59, 0, 487 59, 210, 433, 734, 210, 216, 0, 210, 736, 217, 488 730, 624, 741, 0, 0, 0, 715, 0, 745, 742, 489 0, 635, 0, 0, 0, 750, 312, 315, 316, 317, 490 313, 0, 314, 318, 754, 0, 582, 217, 0, 344, 491 344, 0, 401, 0, 0, 0, 0, 653, 654, 0, 492 0, 0, 0, 543, 467, 344, 0, 0, 543, 543, 493 0, 0, 543, 312, 315, 316, 317, 313, 0, 314, 494 318, 36, 0, 0, 0, 0, 543, 543, 543, 543, 495 0, 0, 0, 0, 0, 0, 323, 0, 0, 0, 496 0, 543, 18, 0, 218, 0, 0, 0, 0, 536, 497 680, 344, 342, 67, 0, 342, 0, 0, 0, 0, 498 0, 0, 62, 556, 0, 0, 0, 0, 75, 0, 499 0, 71, 66, 389, 369, 368, 378, 379, 371, 372, 500 373, 374, 375, 376, 377, 370, 39, 0, 380, 58, 501 0, 217, 0, 0, 579, 0, 0, 710, 398, 0, 502 0, 402, 403, 404, 405, 406, 407, 408, 0, 411, 503 413, 413, 413, 413, 413, 413, 413, 413, 421, 422, 504 423, 424, 0, 0, 0, 0, 0, 0, 0, 0, 505 0, 0, 442, 594, 344, 0, 208, 208, 208, 208, 506 0, 0, 0, 543, 740, 401, 0, 0, 0, 177, 507 0, 323, 0, 0, 0, 0, 0, 543, 61, 208, 508 70, 68, 72, 0, 0, 0, 342, 0, 64, 210, 509 392, 393, 394, 395, 396, 397, 0, 0, 0, 0, 510 0, 342, 0, 0, 0, 60, 0, 65, 74, 69, 511 63, 73, 0, 0, 620, 0, 0, 0, 210, 0, 512 0, 0, 210, 0, 0, 0, 0, 0, 0, 18, 513 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 514 67, 543, 0, 0, 0, 0, 0, 467, 543, 62, 515 402, 0, 0, 0, 0, 75, 0, 0, 71, 66, 516 0, 0, 0, 0, 344, 0, 0, 0, 210, 0, 517 0, 0, 0, 39, 0, 0, 179, 378, 379, 371, 518 372, 373, 374, 375, 376, 377, 370, 0, 576, 380, 519 36, 620, 0, 0, 344, 0, 0, 0, 0, 0, 520 0, 505, 0, 0, 514, 515, 516, 517, 518, 519, 521 520, 521, 522, 523, 524, 525, 526, 527, 528, 0, 522 0, 0, 689, 690, 67, 0, 0, 693, 693, 693, 523 342, 0, 344, 62, 0, 0, 177, 0, 218, 75, 524 0, 0, 71, 66, 0, 61, 0, 70, 68, 72, 525 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 526 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 527 344, 0, 60, 0, 65, 74, 69, 63, 73, 0, 528 0, 0, 0, 0, 0, 217, 0, 0, 732, 0, 529 733, 0, 623, 369, 368, 378, 379, 371, 372, 373, 530 374, 375, 376, 377, 370, 0, 67, 380, 0, 0, 531 619, 0, 0, 0, 0, 62, 0, 0, 0, 0, 532 177, 75, 0, 0, 71, 66, 0, 0, 0, 61, 533 0, 70, 68, 72, 655, 656, 657, 0, 0, 64, 534 0, 0, 58, 0, 621, 0, 0, 0, 0, 0, 535 608, 609, 610, 0, 357, 356, 60, 0, 65, 74, 536 69, 63, 73, 0, 0, 0, 0, 0, 0, 0, 537 0, 358, 368, 378, 379, 371, 372, 373, 374, 375, 538 376, 377, 370, 0, 0, 380, 0, 0, 0, 0, 539 0, 208, 0, 0, 576, 0, 0, 688, 0, 0, 540 0, 0, 177, 0, 0, 0, 0, 0, 342, 0, 541 0, 61, 0, 70, 68, 72, 0, 0, 0, 0, 542 0, 64, 702, 0, 0, 707, 0, 0, 0, 0, 543 0, 0, 0, 0, 576, 0, 36, 0, 60, 0, 544 65, 74, 69, 63, 73, 0, 0, 0, 0, 0, 545 0, 665, 666, 166, 153, 127, 168, 105, 119, 176, 546 120, 121, 147, 93, 135, 67, 117, 0, 108, 89, 547 114, 90, 106, 129, 62, 132, 104, 155, 138, 174, 548 75, 142, 0, 71, 66, 0, 0, 131, 160, 133, 549 152, 126, 148, 98, 141, 169, 118, 145, 0, 0, 550 0, 58, 0, 697, 0, 0, 0, 0, 0, 0, 551 144, 165, 116, 146, 88, 143, 0, 91, 94, 175, 552 163, 111, 112, 0, 0, 0, 0, 0, 0, 0, 553 130, 134, 149, 124, 0, 0, 0, 0, 0, 0, 554 721, 0, 109, 0, 140, 0, 724, 0, 95, 92, 555 128, 0, 0, 0, 97, 0, 110, 150, 0, 161, 556 125, 177, 164, 123, 122, 167, 170, 159, 107, 115, 557 61, 113, 70, 68, 72, 103, 162, 156, 157, 158, 558 64, 0, 101, 102, 99, 100, 136, 137, 171, 172, 559 173, 151, 96, 0, 0, 154, 139, 60, 0, 65, 560 74, 69, 63, 73, 166, 153, 127, 168, 105, 119, 561 176, 120, 121, 147, 93, 135, 67, 117, 0, 108, 562 89, 114, 90, 106, 129, 62, 132, 104, 155, 138, 563 174, 75, 142, 0, 71, 66, 0, 0, 131, 160, 564 133, 152, 126, 148, 98, 141, 169, 118, 145, 39, 565 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 566 0, 144, 165, 116, 146, 88, 143, 0, 91, 94, 567 175, 163, 111, 112, 0, 0, 0, 0, 0, 0, 568 0, 130, 134, 149, 124, 0, 0, 0, 0, 0, 569 0, 0, 0, 109, 0, 140, 0, 0, 0, 95, 570 92, 128, 0, 0, 0, 97, 0, 110, 150, 0, 571 161, 125, 177, 164, 123, 122, 167, 170, 159, 107, 572 115, 61, 113, 70, 68, 72, 103, 162, 156, 157, 573 158, 64, 0, 101, 102, 99, 100, 136, 137, 171, 574 172, 173, 151, 96, 0, 0, 154, 139, 60, 0, 575 65, 74, 69, 63, 73, 166, 153, 127, 168, 105, 576 119, 176, 120, 121, 147, 93, 135, 67, 117, 0, 577 108, 89, 114, 90, 106, 129, 62, 132, 104, 155, 578 138, 174, 75, 142, 0, 71, 66, 0, 0, 131, 579 160, 133, 152, 126, 148, 98, 141, 169, 118, 145, 580 0, 0, 0, 219, 0, 0, 0, 0, 0, 0, 581 0, 0, 144, 165, 116, 146, 88, 143, 0, 91, 582 94, 175, 163, 111, 112, 0, 0, 0, 0, 0, 583 0, 0, 130, 134, 149, 124, 0, 0, 0, 0, 584 0, 0, 670, 0, 109, 0, 140, 0, 0, 0, 585 95, 92, 128, 0, 0, 0, 97, 0, 110, 150, 586 0, 161, 125, 177, 164, 123, 122, 167, 170, 159, 587 107, 115, 61, 113, 70, 68, 72, 103, 162, 156, 588 157, 158, 64, 0, 101, 102, 99, 100, 136, 137, 589 171, 172, 173, 151, 96, 0, 0, 154, 139, 60, 590 0, 65, 74, 69, 63, 73, 166, 153, 127, 168, 591 105, 119, 176, 120, 121, 147, 93, 135, 67, 117, 592 0, 108, 89, 114, 90, 106, 129, 62, 132, 104, 593 155, 138, 174, 75, 142, 0, 71, 66, 0, 0, 594 131, 160, 133, 152, 126, 148, 98, 141, 169, 118, 595 145, 0, 0, 0, 58, 0, 0, 0, 0, 0, 596 0, 0, 0, 144, 165, 116, 146, 88, 143, 0, 597 91, 94, 175, 163, 111, 112, 0, 0, 0, 0, 598 0, 0, 0, 130, 134, 149, 124, 0, 0, 0, 599 0, 0, 0, 0, 0, 109, 0, 140, 0, 0, 600 0, 95, 92, 128, 0, 0, 0, 97, 0, 110, 601 150, 0, 161, 125, 177, 164, 123, 122, 167, 170, 602 159, 107, 115, 61, 113, 70, 68, 72, 103, 162, 603 156, 157, 158, 64, 0, 101, 102, 99, 100, 136, 604 137, 171, 172, 173, 151, 96, 0, 0, 154, 139, 605 60, 0, 65, 74, 69, 63, 73, 166, 153, 127, 606 168, 105, 119, 176, 120, 121, 147, 93, 135, 67, 607 117, 0, 108, 89, 114, 90, 106, 129, 62, 132, 608 104, 155, 138, 174, 75, 142, 0, 71, 66, 0, 609 0, 131, 160, 133, 152, 126, 148, 98, 141, 169, 610 118, 145, 0, 0, 0, 219, 0, 0, 0, 0, 611 0, 0, 0, 0, 144, 165, 116, 146, 88, 143, 612 0, 91, 94, 175, 163, 111, 112, 0, 0, 0, 613 0, 0, 0, 0, 130, 134, 149, 124, 0, 0, 614 0, 0, 0, 0, 0, 0, 109, 0, 140, 0, 615 0, 0, 95, 92, 128, 0, 0, 0, 97, 0, 616 110, 150, 0, 161, 125, 177, 164, 123, 122, 167, 617 170, 159, 107, 115, 61, 113, 70, 68, 72, 103, 618 162, 156, 157, 158, 64, 0, 101, 102, 99, 100, 619 136, 137, 171, 172, 173, 151, 96, 0, 0, 154, 620 139, 60, 0, 65, 74, 69, 63, 73, 166, 153, 621 127, 168, 105, 119, 176, 120, 121, 147, 93, 135, 622 67, 117, 0, 108, 89, 114, 90, 106, 129, 62, 623 132, 104, 155, 138, 174, 75, 142, 0, 71, 66, 624 0, 0, 131, 160, 133, 152, 126, 148, 98, 141, 625 169, 118, 145, 0, 0, 0, 179, 0, 0, 0, 626 0, 0, 0, 0, 0, 144, 165, 116, 146, 88, 627 143, 0, 91, 94, 175, 163, 111, 112, 0, 0, 628 0, 0, 0, 0, 0, 130, 134, 149, 124, 0, 629 0, 0, 0, 0, 0, 0, 0, 109, 0, 140, 630 0, 0, 0, 95, 92, 128, 0, 0, 0, 97, 631 0, 110, 150, 0, 161, 125, 177, 164, 123, 122, 632 167, 170, 159, 107, 115, 61, 113, 70, 68, 72, 633 103, 162, 156, 157, 158, 64, 0, 101, 102, 99, 634 100, 136, 137, 171, 172, 173, 151, 96, 0, 0, 635 154, 139, 60, 0, 65, 74, 69, 63, 73, 166, 636 153, 127, 168, 105, 119, 176, 120, 121, 147, 93, 637 135, 67, 117, 0, 108, 89, 114, 90, 106, 129, 638 62, 132, 104, 155, 138, 174, 75, 142, 0, 71, 639 66, 0, 0, 131, 160, 133, 152, 126, 148, 98, 640 141, 169, 118, 145, 0, 0, 0, 85, 0, 0, 641 0, 0, 0, 0, 0, 0, 144, 165, 116, 146, 642 88, 143, 0, 91, 94, 175, 163, 111, 112, 0, 643 0, 0, 0, 0, 0, 0, 130, 134, 149, 124, 644 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 645 140, 0, 0, 0, 95, 92, 128, 0, 0, 0, 646 97, 0, 110, 150, 0, 161, 125, 177, 164, 123, 647 122, 167, 170, 159, 107, 115, 61, 113, 70, 68, 648 72, 103, 162, 156, 157, 158, 64, 0, 101, 102, 649 99, 100, 136, 137, 171, 172, 173, 151, 96, 0, 650 0, 154, 139, 60, 0, 65, 74, 69, 63, 73, 651 67, 0, 0, 538, 0, 245, 0, 0, 0, 62, 652 0, 244, 0, 0, 281, 75, 0, 0, 71, 66, 653 0, 0, 0, 0, 274, 275, 0, 0, 0, 0, 654 0, 0, 0, 39, 0, 0, 219, 262, 261, 263, 655 264, 265, 266, 0, 0, 267, 268, 269, 0, 0, 656 242, 255, 0, 280, 0, 0, 0, 0, 0, 0, 657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 658 0, 0, 0, 252, 253, 541, 0, 0, 0, 292, 659 0, 254, 0, 0, 251, 256, 0, 0, 0, 0, 660 0, 0, 0, 0, 0, 0, 177, 0, 0, 290, 661 0, 0, 0, 0, 0, 61, 0, 70, 68, 72, 662 0, 0, 0, 0, 0, 64, 0, 282, 291, 288, 663 289, 286, 287, 285, 284, 283, 293, 276, 277, 279, 664 0, 278, 60, 0, 65, 74, 69, 63, 73, 67, 665 0, 0, 0, 0, 245, 0, 0, 0, 62, 0, 666 244, 0, 0, 281, 75, 0, 0, 71, 66, 0, 667 0, 0, 0, 274, 275, 0, 0, 0, 0, 0, 668 0, 0, 39, 0, 0, 219, 262, 261, 263, 264, 669 265, 266, 0, 0, 267, 268, 269, 0, 0, 242, 670 255, 0, 280, 0, 0, 0, 0, 0, 0, 0, 671 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 672 0, 0, 252, 253, 541, 0, 0, 0, 292, 0, 673 254, 0, 0, 251, 256, 0, 0, 0, 0, 0, 674 0, 0, 0, 0, 0, 177, 0, 0, 290, 0, 675 0, 0, 0, 0, 61, 0, 70, 68, 72, 0, 676 0, 0, 0, 0, 64, 0, 282, 291, 288, 289, 677 286, 287, 285, 284, 283, 293, 276, 277, 279, 0, 678 278, 60, 0, 65, 74, 69, 63, 73, 67, 0, 679 0, 0, 0, 245, 0, 0, 0, 62, 0, 244, 680 0, 0, 281, 75, 0, 0, 71, 66, 0, 0, 681 0, 0, 274, 275, 0, 0, 0, 0, 0, 0, 682 0, 39, 0, 236, 219, 262, 261, 263, 264, 265, 683 266, 0, 0, 267, 268, 269, 0, 0, 242, 255, 684 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 685 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686 0, 252, 253, 0, 0, 0, 0, 292, 0, 254, 687 0, 0, 251, 256, 0, 0, 0, 0, 0, 0, 688 0, 0, 0, 0, 177, 0, 0, 290, 0, 0, 689 0, 0, 0, 61, 0, 70, 68, 72, 0, 0, 690 0, 0, 0, 64, 0, 282, 291, 288, 289, 286, 691 287, 285, 284, 283, 293, 276, 277, 279, 18, 278, 692 60, 0, 65, 74, 69, 63, 73, 0, 0, 67, 693 0, 0, 0, 0, 245, 0, 0, 0, 62, 0, 694 244, 0, 0, 281, 75, 0, 0, 71, 66, 0, 695 0, 0, 0, 274, 275, 0, 0, 0, 0, 0, 696 0, 0, 39, 0, 0, 219, 262, 261, 263, 264, 697 265, 266, 0, 0, 267, 268, 269, 0, 0, 242, 698 255, 0, 280, 0, 0, 0, 0, 0, 0, 0, 699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 700 0, 0, 252, 253, 0, 0, 0, 0, 292, 0, 701 254, 0, 0, 251, 256, 0, 0, 0, 0, 0, 702 0, 0, 0, 0, 0, 177, 0, 0, 290, 0, 703 0, 0, 0, 0, 61, 0, 70, 68, 72, 0, 704 0, 0, 0, 0, 64, 0, 282, 291, 288, 289, 705 286, 287, 285, 284, 283, 293, 276, 277, 279, 0, 706 278, 60, 0, 65, 74, 69, 63, 73, 67, 0, 707 0, 0, 0, 245, 0, 0, 0, 62, 0, 244, 708 0, 0, 281, 75, 0, 0, 71, 66, 0, 0, 709 0, 0, 274, 275, 0, 0, 0, 0, 0, 0, 710 0, 39, 0, 0, 219, 262, 261, 263, 264, 265, 711 266, 0, 0, 267, 268, 269, 0, 0, 242, 255, 712 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 713 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 714 0, 252, 253, 0, 0, 0, 0, 292, 0, 254, 715 0, 0, 251, 256, 0, 0, 0, 0, 0, 0, 716 0, 0, 0, 0, 177, 0, 0, 290, 0, 0, 717 0, 0, 0, 61, 0, 70, 68, 72, 0, 0, 718 0, 0, 0, 64, 0, 282, 291, 288, 289, 286, 719 287, 285, 284, 283, 293, 276, 277, 279, 67, 278, 720 60, 0, 65, 74, 69, 63, 73, 62, 0, 0, 721 0, 0, 281, 75, 0, 0, 71, 66, 0, 0, 722 0, 0, 274, 275, 0, 0, 0, 0, 0, 0, 723 0, 39, 0, 0, 219, 262, 261, 263, 264, 265, 724 266, 0, 0, 267, 268, 269, 0, 0, 67, 255, 725 0, 280, 0, 0, 0, 0, 0, 62, 0, 0, 726 0, 0, 0, 75, 0, 0, 71, 66, 0, 0, 727 0, 252, 253, 0, 0, 0, 0, 292, 0, 254, 728 0, 0, 251, 256, 58, 0, 0, 0, 0, 0, 729 0, 0, 0, 0, 177, 0, 55, 290, 0, 0, 730 0, 0, 0, 61, 0, 70, 68, 72, 0, 0, 731 0, 0, 0, 64, 0, 282, 291, 288, 289, 286, 732 287, 285, 284, 283, 293, 276, 277, 279, 67, 278, 733 60, 0, 65, 74, 69, 63, 73, 62, 0, 0, 734 0, 0, 52, 75, 54, 0, 71, 66, 56, 0, 735 0, 0, 0, 61, 0, 70, 68, 72, 0, 0, 736 0, 0, 0, 64, 58, 0, 0, 434, 0, 0, 737 435, 0, 67, 0, 0, 0, 326, 0, 0, 0, 738 60, 62, 65, 74, 69, 63, 73, 75, 0, 0, 739 71, 66, 0, 0, 0, 0, 0, 0, 0, 0, 740 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 741 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 742 0, 0, 0, 67, 177, 0, 0, 0, 0, 0, 743 0, 0, 62, 61, 0, 70, 68, 72, 75, 0, 744 0, 71, 66, 64, 0, 0, 0, 0, 0, 0, 745 0, 0, 0, 0, 0, 0, 39, 0, 0, 179, 746 60, 0, 65, 74, 69, 63, 73, 67, 177, 0, 747 0, 0, 0, 0, 0, 0, 62, 61, 0, 70, 748 68, 72, 75, 0, 0, 71, 66, 64, 0, 0, 749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 750 0, 0, 0, 58, 60, 621, 65, 74, 69, 63, 751 73, 0, 0, 0, 0, 0, 0, 0, 67, 177, 752 0, 0, 0, 0, 0, 0, 0, 62, 61, 0, 753 70, 68, 72, 75, 67, 0, 71, 66, 64, 0, 754 0, 0, 305, 62, 0, 0, 0, 0, 0, 75, 755 0, 0, 71, 66, 179, 60, 328, 65, 74, 69, 756 63, 73, 0, 177, 211, 0, 0, 0, 0, 0, 757 179, 67, 61, 0, 70, 68, 72, 0, 0, 0, 758 62, 0, 64, 0, 0, 0, 75, 0, 0, 71, 759 66, 0, 0, 0, 0, 0, 0, 0, 0, 60, 760 0, 65, 74, 69, 63, 73, 0, 179, 0, 0, 761 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 762 0, 0, 0, 61, 0, 70, 68, 72, 0, 67, 763 177, 0, 0, 64, 0, 0, 0, 0, 62, 61, 764 0, 70, 68, 72, 75, 0, 0, 71, 66, 64, 765 60, 0, 65, 74, 69, 63, 73, 0, 0, 0, 766 0, 0, 0, 0, 0, 58, 60, 177, 65, 74, 767 69, 63, 73, 0, 67, 0, 61, 0, 70, 68, 768 72, 0, 0, 62, 0, 0, 64, 0, 0, 75, 769 0, 0, 71, 66, 0, 0, 0, 0, 0, 0, 770 0, 0, 0, 60, 0, 65, 74, 69, 63, 73, 771 219, 67, 0, 0, 0, 0, 0, 0, 0, 0, 772 62, 0, 0, 0, 0, 177, 75, 0, 0, 71, 773 66, 0, 0, 0, 61, 0, 70, 68, 72, 0, 774 0, 0, 0, 0, 64, 0, 0, 179, 0, 0, 775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 776 0, 60, 0, 65, 74, 69, 63, 73, 0, 0, 777 177, 0, 0, 0, 0, 0, 0, 0, 0, 61, 778 0, 70, 68, 72, 0, 0, 0, 0, 0, 64, 779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 780 0, 0, 0, 0, 0, 0, 60, 177, 65, 74, 781 69, 63, 73, 0, 0, 0, 61, 0, 70, 68, 782 72, 0, 0, 0, 0, 0, 64, 0, 0, 0, 783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784 0, 0, 364, 60, 367, 65, 74, 69, 63, 73, 785 381, 382, 383, 384, 385, 386, 387, 0, 365, 366, 786 363, 369, 368, 378, 379, 371, 372, 373, 374, 375, 787 376, 377, 370, 0, 0, 380, 788 } 789 790 var yyPact = [...]int{ 791 410, -1000, -123, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 792 -1000, -1000, -1000, -1000, -1000, -1000, 475, 520, -1000, -1000, 793 -1000, -1000, -1000, 3081, -3, 22, 25, 16, 2204, 3544, 794 -1000, -1000, -1000, -1000, -1000, -1000, 330, -1000, -1000, -1000, 795 -1000, -1000, 466, 472, 383, 458, 400, -1000, -32, 3256, 796 3404, 3507, -34, 8, 3544, -84, -1000, -1000, -1000, -1000, 797 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 798 -1000, -1000, -1000, -1000, -1000, -1000, 12, 3544, -1000, 3544, 799 -36, 243, -36, 3544, -1000, -1000, -1000, -1000, -1000, -1000, 800 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 801 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 802 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 803 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 804 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 805 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 806 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 807 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 808 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 809 -1000, -1000, -1000, -1000, -1000, -1000, -1000, 224, 456, 2901, 810 2901, 475, -1000, 330, -1000, -1000, -1000, 443, -1000, -1000, 811 189, 3367, 344, 744, -1000, -1000, -1000, 454, 973, 3205, 812 77, 3544, 55, -1000, 264, -1000, 123, -1000, 76, -1000, 813 -1000, 3544, 145, 210, 1449, -13, 3544, 1449, -28, 3544, 814 450, 329, 3544, -1000, -1000, -1000, -1000, -1000, 516, 40, 815 179, -1000, 2901, 3625, -1000, 279, -1000, -1000, 73, -1000, 816 -1000, 3031, 3031, 3031, 3031, 3031, 3031, -1000, -1000, -1000, 817 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 818 279, 72, -1000, 2762, 279, 279, 279, 279, 279, 279, 819 2901, 279, 279, 279, 279, 279, 279, 279, 279, 279, 820 279, 279, 279, 279, 276, -1000, 235, 466, 224, 400, 821 3161, 301, -1000, -1000, 308, 3544, -1000, 3507, 3256, 3256, 822 3256, 3256, -1000, 355, 352, -1000, 349, 340, 426, 3544, 823 -1000, 230, 224, 973, 14, -1000, 3351, -1000, -1000, 2053, 824 504, 3256, 3544, -1000, -1000, 3507, 2901, 1902, 1449, 448, 825 -58, -1000, -1000, -1000, -1000, -1000, 3544, 50, -1000, 3544, 826 -1000, -1000, 3544, 1449, -1000, 408, 2901, 2901, 184, 2901, 827 2901, 99, 3031, 182, 153, 3031, 3031, 3031, 3031, 3031, 828 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031, 829 71, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 330, 830 452, 452, 15, 15, 15, 15, 15, 1057, 2343, 1902, 831 227, 143, 2762, 2482, 2482, 2901, 2901, 2482, 461, 136, 832 143, 3462, -1000, 224, -1000, -1000, -1000, -1000, -1000, -1000, 833 -1000, 2482, 2482, 2482, 2482, 2901, -1000, -1000, -1000, 456, 834 -1000, 461, 494, -1000, 415, 409, 2482, -1000, 328, 3507, 835 279, -1000, 806, -1000, 321, 744, 297, 707, -1000, -1000, 836 -1000, -1000, 348, -1000, 342, -1000, -1000, -1000, -1000, -1000, 837 224, -1000, 6, 4, -1, -1000, -1000, -1000, -1000, 475, 838 2901, 292, -1000, -1000, 143, -1000, 53, -1000, -1000, -1000, 839 281, 3462, 1449, -1000, 92, -1000, -1000, -1000, -1000, -1000, 840 -1000, -1000, -1000, -1000, -1000, 391, 99, 161, -1000, -1000, 841 191, -1000, -1000, 143, 143, 758, -1000, -1000, -1000, -1000, 842 182, 3031, 3031, 3031, 74, 758, 405, 939, 1135, 15, 843 47, 47, 91, 91, 91, 91, 91, 124, 124, -1000, 844 -1000, -1000, -1000, -1000, -1000, -1000, -1000, 224, 2482, 275, 845 -1000, -1000, 1139, 49, 279, 2901, -1000, 219, 219, 66, 846 174, 219, 2482, 129, -1000, 2901, 224, -1000, 219, 224, 847 219, 219, -1000, -1000, 3544, -1000, -1000, -1000, -1000, 287, 848 -1000, 438, 257, 267, -1000, -1000, 2621, 224, 223, 48, 849 475, 2901, 2901, -1000, -1000, -1000, 279, 279, 279, 466, 850 143, -1000, 1751, 3544, -1000, -1000, -1000, 3544, -1000, -1000, 851 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 74, 758, 852 198, -1000, 3031, 3031, -1000, 219, 2482, -1000, -1000, 3300, 853 -1000, -1000, 1600, 2482, 143, -1000, -1000, 71, 71, 71, 854 -103, 291, 118, -1000, 2901, 117, -1000, -1000, -1000, -1000, 855 -1000, -1000, 504, 3256, 428, -1000, 279, -1000, -1000, 392, 856 3462, 3462, 466, 143, 143, 3462, 3462, 3462, -1000, -1000, 857 1449, -1000, -1000, -1000, 3031, 758, 758, -1000, -1000, -1000, 858 -1000, 46, 224, 224, 54, 224, 224, 279, -90, -1000, 859 143, 2901, 501, 269, 515, -1000, 279, -1000, 330, 42, 860 -1000, -1000, 217, -1000, 217, 217, -1000, 758, 1298, -1000, 861 -1000, -1000, 204, -1000, 420, -1000, -1000, 3031, 224, 180, 862 143, 490, 470, 3507, 267, 224, 3462, -1000, 3462, -1000, 863 -1000, -1000, 214, 71, 2, -1000, -1000, -1000, 2901, 2901, 864 264, -1000, -1000, -1000, 13, 201, -1000, 224, 3, -112, 865 143, 258, -1000, 418, 224, -1000, 384, -106, -116, 71, 866 -1000, -1000, 366, -1000, -1000, -110, -113, -118, -1000, 867 } 868 869 var yyPgo = [...]int{ 870 0, 713, 47, 396, 708, 705, 699, 692, 691, 687, 871 681, 678, 672, 670, 669, 668, 667, 665, 54, 660, 872 655, 643, 23, 632, 35, 630, 628, 20, 150, 13, 873 14, 185, 627, 17, 55, 53, 626, 625, 624, 43, 874 623, 50, 622, 620, 619, 6, 8, 618, 617, 614, 875 613, 39, 688, 612, 610, 609, 606, 603, 600, 21, 876 2, 3, 28, 7, 593, 58, 11, 589, 26, 585, 877 582, 581, 573, 9, 571, 22, 570, 18, 32, 568, 878 29, 16, 24, 567, 386, 190, 565, 564, 563, 556, 879 551, 550, 15, 1, 421, 12, 19, 547, 374, 27, 880 34, 541, 540, 37, 5, 4, 10, 537, 533, 528, 881 597, 0, 527, 526, 121, 882 } 883 884 var yyR1 = [...]int{ 885 0, 108, 109, 109, 1, 1, 1, 1, 1, 1, 886 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 887 3, 4, 4, 5, 5, 6, 6, 21, 21, 7, 888 8, 8, 112, 112, 37, 37, 9, 10, 10, 10, 889 10, 11, 11, 11, 11, 12, 13, 13, 13, 14, 890 107, 107, 107, 15, 16, 17, 17, 17, 17, 17, 891 17, 113, 18, 19, 19, 20, 20, 20, 24, 24, 892 24, 22, 22, 23, 23, 29, 29, 28, 28, 30, 893 30, 30, 30, 97, 97, 97, 96, 96, 32, 32, 894 33, 33, 34, 34, 35, 35, 35, 43, 36, 36, 895 36, 36, 102, 102, 101, 101, 101, 100, 100, 38, 896 38, 38, 38, 39, 39, 39, 39, 40, 40, 42, 897 42, 41, 41, 44, 44, 44, 44, 45, 45, 46, 898 46, 31, 31, 31, 31, 31, 31, 31, 48, 48, 899 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 900 58, 58, 58, 58, 58, 58, 49, 49, 49, 49, 901 49, 49, 49, 27, 27, 59, 59, 59, 65, 60, 902 60, 105, 105, 105, 105, 52, 52, 52, 52, 52, 903 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 904 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 905 52, 52, 52, 52, 52, 56, 56, 56, 54, 54, 906 54, 54, 54, 54, 54, 54, 54, 55, 55, 55, 907 55, 55, 55, 55, 55, 114, 114, 57, 57, 57, 908 57, 25, 25, 25, 25, 25, 106, 106, 106, 106, 909 106, 106, 106, 106, 69, 69, 26, 26, 67, 67, 910 68, 70, 70, 66, 66, 66, 51, 51, 51, 51, 911 51, 51, 51, 53, 53, 53, 71, 71, 72, 72, 912 73, 73, 74, 74, 75, 76, 76, 76, 77, 77, 913 77, 77, 78, 78, 78, 50, 50, 50, 50, 50, 914 50, 79, 79, 79, 79, 80, 80, 61, 61, 63, 915 63, 62, 64, 81, 81, 82, 83, 83, 85, 85, 916 86, 86, 84, 84, 87, 87, 87, 87, 87, 87, 917 87, 88, 88, 88, 89, 89, 90, 90, 90, 91, 918 91, 94, 94, 95, 95, 98, 98, 99, 99, 92, 919 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 920 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 921 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 922 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 923 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 924 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 925 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 926 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 927 92, 92, 92, 92, 92, 92, 92, 92, 93, 93, 928 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 929 93, 93, 93, 93, 93, 110, 111, 103, 104, 104, 930 104, 931 } 932 933 var yyR2 = [...]int{ 934 0, 2, 0, 1, 1, 1, 1, 1, 1, 1, 935 1, 1, 1, 1, 1, 1, 1, 4, 6, 7, 936 10, 1, 3, 1, 3, 6, 7, 1, 1, 8, 937 7, 6, 1, 1, 1, 3, 3, 5, 8, 4, 938 6, 6, 7, 7, 4, 5, 4, 5, 5, 3, 939 1, 1, 1, 3, 2, 2, 2, 2, 2, 2, 940 2, 0, 2, 0, 2, 1, 2, 2, 0, 1, 941 1, 0, 1, 0, 1, 0, 1, 1, 3, 1, 942 2, 3, 5, 0, 1, 2, 1, 1, 0, 2, 943 1, 3, 1, 1, 1, 3, 3, 3, 3, 5, 944 5, 3, 0, 1, 0, 1, 2, 1, 1, 1, 945 2, 2, 1, 2, 3, 2, 3, 2, 2, 2, 946 1, 1, 3, 0, 5, 5, 5, 1, 3, 0, 947 2, 1, 3, 3, 2, 3, 1, 1, 1, 1, 948 3, 3, 4, 4, 5, 3, 4, 5, 6, 2, 949 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 950 1, 1, 1, 0, 2, 1, 1, 1, 3, 1, 951 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 952 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 953 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 954 3, 1, 1, 1, 1, 4, 5, 6, 4, 4, 955 6, 6, 6, 9, 7, 5, 4, 2, 2, 2, 956 2, 2, 2, 2, 2, 0, 2, 4, 4, 4, 957 4, 0, 3, 4, 7, 3, 1, 2, 4, 5, 958 7, 2, 4, 6, 0, 1, 0, 2, 1, 2, 959 4, 0, 2, 1, 3, 5, 1, 1, 1, 1, 960 1, 1, 1, 1, 2, 2, 0, 3, 0, 2, 961 0, 3, 1, 3, 2, 0, 1, 1, 0, 2, 962 4, 4, 0, 2, 4, 2, 1, 3, 5, 4, 963 6, 1, 3, 3, 5, 0, 5, 1, 3, 1, 964 2, 3, 1, 1, 3, 3, 1, 1, 0, 2, 965 0, 3, 0, 1, 1, 1, 1, 1, 1, 1, 966 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 967 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 968 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 969 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 970 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 971 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 972 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 973 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 974 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 975 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 976 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 977 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 978 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 979 1, 980 } 981 982 var yyChk = [...]int{ 983 -1000, -108, -1, -2, -6, -7, -8, -9, -10, -11, 984 -12, -13, -14, -15, -16, -17, -3, -4, 6, -21, 985 8, 9, 29, 106, 107, 109, 108, 110, 119, 47, 986 24, 120, 121, 124, 125, 126, -110, 7, 143, 50, 987 -109, 156, -73, 14, -20, 5, -18, -113, -18, -18, 988 -18, -18, 111, -90, 113, 65, 117, -94, 53, -93, 989 149, 122, 26, 154, 132, 151, 36, 17, 125, 153, 990 124, 35, 126, 155, 152, 32, -84, 113, 115, 111, 991 111, 112, 113, 111, -107, 53, -92, -93, 66, 21, 992 23, 69, 101, 15, 70, 100, 144, 106, 45, 136, 993 137, 134, 135, 127, 28, 9, 24, 120, 20, 94, 994 108, 73, 74, 123, 22, 121, 64, 18, 48, 10, 995 12, 13, 116, 115, 85, 112, 43, 7, 102, 25, 996 82, 39, 27, 41, 83, 16, 138, 139, 30, 148, 997 96, 46, 33, 67, 62, 49, 65, 14, 44, 84, 998 109, 143, 42, 6, 147, 29, 129, 130, 131, 119, 999 40, 111, 128, 72, 114, 63, 5, 117, 8, 47, 1000 118, 140, 141, 142, 31, 71, 11, 113, -98, 53, 1001 -93, -103, -103, -103, -103, -103, -103, -2, -77, 16, 1002 15, -5, -3, -110, 6, 19, 20, -24, 37, 38, 1003 -19, -84, -33, -34, -35, -36, -43, -65, -110, -41, 1004 -98, 10, -37, -41, -81, -82, -66, -94, -98, 53, 1005 -93, -86, 116, 112, -41, 143, 111, -41, -41, -85, 1006 116, 53, -85, -41, -103, -111, 52, -78, 18, 30, 1007 -31, -47, 67, -52, 28, 22, -51, -48, -66, -64, 1008 -65, 101, 90, 91, 98, 68, 102, -56, -54, -55, 1009 -57, 55, 54, 56, 57, 58, 59, 62, 63, 64, 1010 -94, -98, -62, -110, 41, 42, 144, 145, 148, 146, 1011 70, 31, 134, 142, 141, 140, 138, 139, 136, 137, 1012 116, 135, 96, 143, -74, -75, -31, -73, -2, -18, 1013 33, -22, 20, 61, -42, 25, -41, 29, 51, -38, 1014 -39, -40, 39, 43, 45, 40, 41, 42, 46, -102, 1015 21, -33, -2, -110, -101, -100, 21, -98, 55, 103, 1016 -41, -112, 51, 10, 118, 51, 75, 103, -41, 67, 1017 53, -104, -110, -95, -94, -92, 113, -41, -104, 114, 1018 -41, 22, 49, -41, 8, 85, 66, 65, 82, 51, 1019 17, -31, -49, 85, 67, 83, 84, 69, 87, 86, 1020 97, 90, 91, 92, 93, 94, 95, 96, 88, 89, 1021 100, 75, 76, 77, 78, 79, 80, 81, -65, -110, 1022 104, 105, -52, -52, -52, -52, -52, -52, -110, 103, 1023 -60, -31, -110, -110, -110, -110, -110, -110, -110, -69, 1024 -31, -110, -114, -110, -114, -114, -114, -114, -114, -114, 1025 -114, -110, -110, -110, -110, 51, -76, 23, 24, -77, 1026 -111, -24, -53, -94, 56, 59, -23, 40, -50, 29, 1027 31, -2, -110, -41, -81, -34, -35, -34, -35, 39, 1028 39, 39, 44, 39, 44, 39, -39, -98, -111, -111, 1029 -2, -44, 47, 115, 48, -100, -99, -98, -92, -46, 1030 11, -33, -41, -82, -31, -95, -99, -92, -104, 22, 1031 -91, 118, -41, -87, 109, 107, 28, 108, 14, 144, 1032 155, 53, -41, -41, -104, 35, -31, -31, -58, 62, 1033 67, 63, 64, -31, -31, -52, -59, -62, -65, 60, 1034 85, 83, 84, 69, -52, -52, -52, -52, -52, -52, 1035 -52, -52, -52, -52, -52, -52, -52, -52, -52, -105, 1036 53, 55, 101, 122, -51, -51, -94, -29, 20, -28, 1037 -30, 92, -31, -98, -95, 51, -111, -28, -28, -31, 1038 -31, -28, -22, -67, -68, 71, -94, -111, -28, -29, 1039 -28, -28, -75, -78, -83, 18, 10, 31, 31, -28, 1040 -80, 49, -81, -61, -63, -62, -110, -2, -79, -94, 1041 -46, 49, 49, 39, 39, -111, 112, 112, 112, -73, 1042 -31, -46, 103, 49, -94, -104, -103, -88, -89, 114, 1043 21, 112, 27, 36, 62, 63, 64, -59, -52, -52, 1044 -52, -27, 123, 66, -111, -28, 51, -97, -96, 21, 1045 -94, 55, 103, -110, -31, -111, -111, 51, 118, 21, 1046 -111, -28, -70, -68, 73, -31, -111, -111, -111, -111, 1047 -111, -41, -32, 10, 26, -80, 51, -111, -111, -111, 1048 51, 103, -73, -31, -31, -110, -110, -110, -77, -95, 1049 -41, -41, -103, -27, 66, -52, -52, -111, -30, -96, 1050 92, -99, -29, -106, -105, -105, -106, 149, -73, 74, 1051 -31, 72, -46, -33, 27, -63, 31, -2, -110, -94, 1052 -94, -77, -45, -94, -45, -45, -104, -52, 103, -111, 1053 -111, 132, -110, -105, 133, -111, -111, -110, -26, 147, 1054 -31, -71, 12, 8, -61, -2, 103, -111, 51, -111, 1055 -111, 92, 56, 29, -52, -111, 55, -72, 13, 15, 1056 -81, -111, -94, -94, -111, 51, -105, -25, 85, 152, 1057 -31, -60, -105, 133, 56, -111, 150, 46, 153, 29, 1058 -111, 36, 151, 154, -105, 36, 152, 153, 154, 1059 } 1060 1061 var yyDef = [...]int{ 1062 0, -2, 2, -2, 5, 6, 7, 8, 9, 10, 1063 11, 12, 13, 14, 15, 16, 270, 0, 61, 61, 1064 61, 61, 61, 326, 312, 0, 0, 0, 0, 0, 1065 447, 447, 447, 447, 447, 447, 0, 27, 28, 445, 1066 1, 3, 278, 0, 0, 65, 68, 63, 312, 0, 1067 0, 0, 310, 0, 442, 0, 327, 328, 331, 332, 1068 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 1069 438, 439, 440, 441, 443, 444, 0, 0, 313, 0, 1070 308, 0, 308, 0, 447, 50, 51, 52, 339, 340, 1071 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 1072 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 1073 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 1074 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 1075 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 1076 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 1077 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 1078 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 1079 421, 422, 423, 424, 425, 426, 427, 442, 54, 335, 1080 336, 55, 56, 57, 58, 59, 60, 21, 282, 0, 1081 0, 270, 23, 0, 61, 66, 67, 71, 69, 70, 1082 62, 0, 0, 90, 92, 93, 94, 102, 0, 104, 1083 121, 0, 0, 34, 36, 303, 0, 253, 0, -2, 1084 -2, 0, 0, 0, 448, 0, 0, 448, 0, 0, 1085 0, 0, 0, 49, 53, 22, 446, 17, 0, 0, 1086 279, 131, 0, 136, 137, 0, 175, 176, 177, 178, 1087 179, 0, 0, 0, 0, 0, 0, 201, 202, 203, 1088 204, 256, 257, 258, 259, 260, 261, 262, 138, 139, 1089 253, 0, 302, 0, 0, 0, 0, 0, 0, 0, 1090 244, 0, 225, 225, 225, 225, 225, 225, 225, 225, 1091 0, 0, 0, 0, 271, 272, 275, 278, 21, 68, 1092 0, 73, 72, 64, 0, 0, 120, 0, 0, 0, 1093 0, 0, 109, 0, 0, 112, 0, 0, 0, 0, 1094 103, 0, 21, 0, 123, 105, 0, 107, 108, 0, 1095 129, 0, 0, 32, 33, 0, 0, 0, 448, 0, 1096 329, 39, 449, 450, 333, 334, 0, 0, 44, 0, 1097 46, 309, 0, 448, 283, 0, 0, 0, 0, 0, 1098 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 1099 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1100 0, 156, 157, 158, 159, 160, 161, 162, 149, 0, 1101 0, 0, 195, 196, 197, 198, 199, 0, 75, 0, 1102 0, 169, 0, 0, 0, 0, 0, 0, 71, 0, 1103 245, 0, 217, 0, 218, 219, 220, 221, 222, 223, 1104 224, 0, 75, 0, 0, 0, 274, 276, 277, 282, 1105 24, 71, 0, 263, 0, 0, 0, 74, 295, 0, 1106 0, -2, 0, 119, 129, 91, 98, 0, 101, 110, 1107 111, 113, 0, 115, 0, 117, 118, 95, 96, 168, 1108 21, 97, 0, 0, 0, 106, 122, 337, 338, 270, 1109 0, 129, 35, 304, 305, 254, 0, -2, 37, 311, 1110 0, 0, 448, 447, 321, 314, 315, 316, 317, 318, 1111 319, 320, 45, 47, 48, 0, 132, 133, 135, 150, 1112 0, 152, 154, 280, 281, 140, 141, 165, 166, 167, 1113 0, 0, 0, 0, 163, 145, 0, 180, 181, 182, 1114 183, 184, 185, 186, 187, 188, 189, 190, 191, 194, 1115 171, 172, 173, 174, 192, 193, 200, 0, 0, 76, 1116 77, 79, 83, 0, 254, 0, 301, 0, 0, 0, 1117 0, 0, 0, 251, 248, 0, 0, 226, 0, 0, 1118 0, 0, 273, 18, 0, 306, 307, 264, 265, 88, 1119 25, 0, 295, 285, 297, 299, 0, 21, 0, 291, 1120 270, 0, 0, 114, 116, -2, 0, 0, 0, 278, 1121 130, 31, 0, 0, 330, 40, 41, 0, 447, 322, 1122 323, 324, 325, 284, 151, 153, 155, 142, 163, 146, 1123 0, 143, 0, 0, 205, 0, 0, 80, 84, 0, 1124 86, 87, 0, 75, 170, 208, 209, 0, 0, 0, 1125 0, 270, 0, 249, 0, 0, 216, 227, 228, 229, 1126 230, 19, 129, 0, 0, 26, 0, 300, -2, 0, 1127 0, 0, 278, 99, 100, 0, 0, 0, 30, 255, 1128 448, 42, 43, 144, 0, 164, 147, 206, 78, 85, 1129 81, 0, 0, 0, 236, 0, 0, 0, 246, 215, 1130 252, 0, 266, 89, 0, 298, 0, -2, 0, 293, 1131 292, 29, 0, 127, 0, 0, 38, 148, 0, 207, 1132 210, 237, 0, 241, 0, 212, 211, 0, 0, 0, 1133 250, 268, 0, 0, 288, 21, 0, 124, 0, 125, 1134 126, 82, 0, 0, 231, 214, 247, 20, 0, 0, 1135 296, -2, 294, 128, 238, 0, 242, 0, 0, 0, 1136 269, 267, 239, 0, 0, 213, 0, 0, 0, 0, 1137 243, 232, 0, 235, 240, 233, 0, 0, 234, 1138 } 1139 1140 var yyTok1 = [...]int{ 1141 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1142 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1143 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1144 3, 3, 3, 68, 3, 3, 3, 95, 87, 3, 1145 50, 52, 92, 90, 51, 91, 103, 93, 3, 3, 1146 3, 3, 3, 3, 3, 3, 3, 3, 3, 156, 1147 76, 75, 77, 3, 3, 3, 3, 3, 3, 3, 1148 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1149 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1150 3, 3, 3, 3, 97, 3, 3, 3, 3, 3, 1151 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1152 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1153 3, 3, 3, 3, 86, 3, 98, 1154 } 1155 1156 var yyTok2 = [...]int{ 1157 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1158 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 1159 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 1160 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 1161 42, 43, 44, 45, 46, 47, 48, 49, 53, 54, 1162 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1163 65, 66, 67, 69, 70, 71, 72, 73, 74, 78, 1164 79, 80, 81, 82, 83, 84, 85, 88, 89, 94, 1165 96, 99, 100, 101, 102, 104, 105, 106, 107, 108, 1166 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 1167 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 1168 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 1169 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 1170 149, 150, 151, 152, 153, 154, 155, 1171 } 1172 1173 var yyTok3 = [...]int{ 1174 0, 1175 } 1176 1177 var yyErrorMessages = [...]struct { 1178 state int 1179 token int 1180 msg string 1181 }{} 1182 1183 //line yaccpar:1 1184 1185 /* parser for yacc output */ 1186 1187 var ( 1188 yyDebug = 0 1189 yyErrorVerbose = false 1190 ) 1191 1192 type yyLexer interface { 1193 Lex(lval *yySymType) int 1194 Error(s string) 1195 } 1196 1197 type yyParser interface { 1198 Parse(yyLexer) int 1199 Lookahead() int 1200 } 1201 1202 type yyParserImpl struct { 1203 lval yySymType 1204 stack [yyInitialStackSize]yySymType 1205 char int 1206 } 1207 1208 func (p *yyParserImpl) Lookahead() int { 1209 return p.char 1210 } 1211 1212 func yyNewParser() yyParser { 1213 return &yyParserImpl{} 1214 } 1215 1216 const yyFlag = -1000 1217 1218 func yyTokname(c int) string { 1219 if c >= 1 && c-1 < len(yyToknames) { 1220 if yyToknames[c-1] != "" { 1221 return yyToknames[c-1] 1222 } 1223 } 1224 return __yyfmt__.Sprintf("tok-%v", c) 1225 } 1226 1227 func yyStatname(s int) string { 1228 if s >= 0 && s < len(yyStatenames) { 1229 if yyStatenames[s] != "" { 1230 return yyStatenames[s] 1231 } 1232 } 1233 return __yyfmt__.Sprintf("state-%v", s) 1234 } 1235 1236 func yyErrorMessage(state, lookAhead int) string { 1237 const TOKSTART = 4 1238 1239 if !yyErrorVerbose { 1240 return "syntax error" 1241 } 1242 1243 for _, e := range yyErrorMessages { 1244 if e.state == state && e.token == lookAhead { 1245 return "syntax error: " + e.msg 1246 } 1247 } 1248 1249 res := "syntax error: unexpected " + yyTokname(lookAhead) 1250 1251 // To match Bison, suggest at most four expected tokens. 1252 expected := make([]int, 0, 4) 1253 1254 // Look for shiftable tokens. 1255 base := yyPact[state] 1256 for tok := TOKSTART; tok-1 < len(yyToknames); tok++ { 1257 if n := base + tok; n >= 0 && n < yyLast && yyChk[yyAct[n]] == tok { 1258 if len(expected) == cap(expected) { 1259 return res 1260 } 1261 expected = append(expected, tok) 1262 } 1263 } 1264 1265 if yyDef[state] == -2 { 1266 i := 0 1267 for yyExca[i] != -1 || yyExca[i+1] != state { 1268 i += 2 1269 } 1270 1271 // Look for tokens that we accept or reduce. 1272 for i += 2; yyExca[i] >= 0; i += 2 { 1273 tok := yyExca[i] 1274 if tok < TOKSTART || yyExca[i+1] == 0 { 1275 continue 1276 } 1277 if len(expected) == cap(expected) { 1278 return res 1279 } 1280 expected = append(expected, tok) 1281 } 1282 1283 // If the default action is to accept or reduce, give up. 1284 if yyExca[i+1] != 0 { 1285 return res 1286 } 1287 } 1288 1289 for i, tok := range expected { 1290 if i == 0 { 1291 res += ", expecting " 1292 } else { 1293 res += " or " 1294 } 1295 res += yyTokname(tok) 1296 } 1297 return res 1298 } 1299 1300 func yylex1(lex yyLexer, lval *yySymType) (char, token int) { 1301 token = 0 1302 char = lex.Lex(lval) 1303 if char <= 0 { 1304 token = yyTok1[0] 1305 goto out 1306 } 1307 if char < len(yyTok1) { 1308 token = yyTok1[char] 1309 goto out 1310 } 1311 if char >= yyPrivate { 1312 if char < yyPrivate+len(yyTok2) { 1313 token = yyTok2[char-yyPrivate] 1314 goto out 1315 } 1316 } 1317 for i := 0; i < len(yyTok3); i += 2 { 1318 token = yyTok3[i+0] 1319 if token == char { 1320 token = yyTok3[i+1] 1321 goto out 1322 } 1323 } 1324 1325 out: 1326 if token == 0 { 1327 token = yyTok2[1] /* unknown char */ 1328 } 1329 if yyDebug >= 3 { 1330 __yyfmt__.Printf("lex %s(%d)\n", yyTokname(token), uint(char)) 1331 } 1332 return char, token 1333 } 1334 1335 func yyParse(yylex yyLexer) int { 1336 return yyNewParser().Parse(yylex) 1337 } 1338 1339 func (yyrcvr *yyParserImpl) Parse(yylex yyLexer) int { 1340 var yyn int 1341 var yyVAL yySymType 1342 var yyDollar []yySymType 1343 _ = yyDollar // silence set and not used 1344 yyS := yyrcvr.stack[:] 1345 1346 Nerrs := 0 /* number of errors */ 1347 Errflag := 0 /* error recovery flag */ 1348 yystate := 0 1349 yyrcvr.char = -1 1350 yytoken := -1 // yyrcvr.char translated into internal numbering 1351 defer func() { 1352 // Make sure we report no lookahead when not parsing. 1353 yystate = -1 1354 yyrcvr.char = -1 1355 yytoken = -1 1356 }() 1357 yyp := -1 1358 goto yystack 1359 1360 ret0: 1361 return 0 1362 1363 ret1: 1364 return 1 1365 1366 yystack: 1367 /* put a state and value onto the stack */ 1368 if yyDebug >= 4 { 1369 __yyfmt__.Printf("char %v in %v\n", yyTokname(yytoken), yyStatname(yystate)) 1370 } 1371 1372 yyp++ 1373 if yyp >= len(yyS) { 1374 nyys := make([]yySymType, len(yyS)*2) 1375 copy(nyys, yyS) 1376 yyS = nyys 1377 } 1378 yyS[yyp] = yyVAL 1379 yyS[yyp].yys = yystate 1380 1381 yynewstate: 1382 yyn = yyPact[yystate] 1383 if yyn <= yyFlag { 1384 goto yydefault /* simple state */ 1385 } 1386 if yyrcvr.char < 0 { 1387 yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval) 1388 } 1389 yyn += yytoken 1390 if yyn < 0 || yyn >= yyLast { 1391 goto yydefault 1392 } 1393 yyn = yyAct[yyn] 1394 if yyChk[yyn] == yytoken { /* valid shift */ 1395 yyrcvr.char = -1 1396 yytoken = -1 1397 yyVAL = yyrcvr.lval 1398 yystate = yyn 1399 if Errflag > 0 { 1400 Errflag-- 1401 } 1402 goto yystack 1403 } 1404 1405 yydefault: 1406 /* default state action */ 1407 yyn = yyDef[yystate] 1408 if yyn == -2 { 1409 if yyrcvr.char < 0 { 1410 yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval) 1411 } 1412 1413 /* look through exception table */ 1414 xi := 0 1415 for { 1416 if yyExca[xi+0] == -1 && yyExca[xi+1] == yystate { 1417 break 1418 } 1419 xi += 2 1420 } 1421 for xi += 2; ; xi += 2 { 1422 yyn = yyExca[xi+0] 1423 if yyn < 0 || yyn == yytoken { 1424 break 1425 } 1426 } 1427 yyn = yyExca[xi+1] 1428 if yyn < 0 { 1429 goto ret0 1430 } 1431 } 1432 if yyn == 0 { 1433 /* error ... attempt to resume parsing */ 1434 switch Errflag { 1435 case 0: /* brand new error */ 1436 yylex.Error(yyErrorMessage(yystate, yytoken)) 1437 Nerrs++ 1438 if yyDebug >= 1 { 1439 __yyfmt__.Printf("%s", yyStatname(yystate)) 1440 __yyfmt__.Printf(" saw %s\n", yyTokname(yytoken)) 1441 } 1442 fallthrough 1443 1444 case 1, 2: /* incompletely recovered error ... try again */ 1445 Errflag = 3 1446 1447 /* find a state where "error" is a legal shift action */ 1448 for yyp >= 0 { 1449 yyn = yyPact[yyS[yyp].yys] + yyErrCode 1450 if yyn >= 0 && yyn < yyLast { 1451 yystate = yyAct[yyn] /* simulate a shift of "error" */ 1452 if yyChk[yystate] == yyErrCode { 1453 goto yystack 1454 } 1455 } 1456 1457 /* the current p has no shift on "error", pop stack */ 1458 if yyDebug >= 2 { 1459 __yyfmt__.Printf("error recovery pops state %d\n", yyS[yyp].yys) 1460 } 1461 yyp-- 1462 } 1463 /* there is no state on the stack with an error shift ... abort */ 1464 goto ret1 1465 1466 case 3: /* no shift yet; clobber input char */ 1467 if yyDebug >= 2 { 1468 __yyfmt__.Printf("error recovery discards %s\n", yyTokname(yytoken)) 1469 } 1470 if yytoken == yyEofCode { 1471 goto ret1 1472 } 1473 yyrcvr.char = -1 1474 yytoken = -1 1475 goto yynewstate /* try again in the same state */ 1476 } 1477 } 1478 1479 /* reduction by production yyn */ 1480 if yyDebug >= 2 { 1481 __yyfmt__.Printf("reduce %v in:\n\t%v\n", yyn, yyStatname(yystate)) 1482 } 1483 1484 yynt := yyn 1485 yypt := yyp 1486 _ = yypt // guard against "declared and not used" 1487 1488 yyp -= yyR2[yyn] 1489 // yyp is now the index of $0. Perform the default action. Iff the 1490 // reduced production is ε, $1 is possibly out of range. 1491 if yyp+1 >= len(yyS) { 1492 nyys := make([]yySymType, len(yyS)*2) 1493 copy(nyys, yyS) 1494 yyS = nyys 1495 } 1496 yyVAL = yyS[yyp+1] 1497 1498 /* consult goto table to find next state */ 1499 yyn = yyR1[yyn] 1500 yyg := yyPgo[yyn] 1501 yyj := yyg + yyS[yyp].yys + 1 1502 1503 if yyj >= yyLast { 1504 yystate = yyAct[yyg] 1505 } else { 1506 yystate = yyAct[yyj] 1507 if yyChk[yystate] != -yyn { 1508 yystate = yyAct[yyg] 1509 } 1510 } 1511 // dummy call; replaced with literal code 1512 switch yynt { 1513 1514 case 1: 1515 yyDollar = yyS[yypt-2 : yypt+1] 1516 //line sql.y:216 1517 { 1518 setParseTree(yylex, yyDollar[1].statement) 1519 } 1520 case 2: 1521 yyDollar = yyS[yypt-0 : yypt+1] 1522 //line sql.y:221 1523 { 1524 } 1525 case 3: 1526 yyDollar = yyS[yypt-1 : yypt+1] 1527 //line sql.y:222 1528 { 1529 } 1530 case 4: 1531 yyDollar = yyS[yypt-1 : yypt+1] 1532 //line sql.y:226 1533 { 1534 yyVAL.statement = yyDollar[1].selStmt 1535 } 1536 case 17: 1537 yyDollar = yyS[yypt-4 : yypt+1] 1538 //line sql.y:244 1539 { 1540 sel := yyDollar[1].selStmt.(*Select) 1541 sel.OrderBy = yyDollar[2].orderBy 1542 sel.Limit = yyDollar[3].limit 1543 sel.Lock = yyDollar[4].str 1544 yyVAL.selStmt = sel 1545 } 1546 case 18: 1547 yyDollar = yyS[yypt-6 : yypt+1] 1548 //line sql.y:252 1549 { 1550 yyVAL.selStmt = &Union{Type: yyDollar[2].str, Left: yyDollar[1].selStmt, Right: yyDollar[3].selStmt, OrderBy: yyDollar[4].orderBy, Limit: yyDollar[5].limit, Lock: yyDollar[6].str} 1551 } 1552 case 19: 1553 yyDollar = yyS[yypt-7 : yypt+1] 1554 //line sql.y:256 1555 { 1556 yyVAL.selStmt = &Select{Comments: Comments(yyDollar[2].bytes2), Cache: yyDollar[3].str, SelectExprs: SelectExprs{Nextval{Expr: yyDollar[5].expr}}, From: TableExprs{&AliasedTableExpr{Expr: yyDollar[7].tableName}}} 1557 } 1558 case 20: 1559 yyDollar = yyS[yypt-10 : yypt+1] 1560 //line sql.y:263 1561 { 1562 yyVAL.selStmt = &Select{Comments: Comments(yyDollar[2].bytes2), Cache: yyDollar[3].str, Distinct: yyDollar[4].str, Hints: yyDollar[5].str, SelectExprs: yyDollar[6].selectExprs, From: yyDollar[7].tableExprs, Where: NewWhere(WhereStr, yyDollar[8].expr), GroupBy: GroupBy(yyDollar[9].exprs), Having: NewWhere(HavingStr, yyDollar[10].expr)} 1563 } 1564 case 21: 1565 yyDollar = yyS[yypt-1 : yypt+1] 1566 //line sql.y:269 1567 { 1568 yyVAL.selStmt = yyDollar[1].selStmt 1569 } 1570 case 22: 1571 yyDollar = yyS[yypt-3 : yypt+1] 1572 //line sql.y:273 1573 { 1574 yyVAL.selStmt = &ParenSelect{Select: yyDollar[2].selStmt} 1575 } 1576 case 23: 1577 yyDollar = yyS[yypt-1 : yypt+1] 1578 //line sql.y:279 1579 { 1580 yyVAL.selStmt = yyDollar[1].selStmt 1581 } 1582 case 24: 1583 yyDollar = yyS[yypt-3 : yypt+1] 1584 //line sql.y:283 1585 { 1586 yyVAL.selStmt = &ParenSelect{Select: yyDollar[2].selStmt} 1587 } 1588 case 25: 1589 yyDollar = yyS[yypt-6 : yypt+1] 1590 //line sql.y:290 1591 { 1592 // insert_data returns a *Insert pre-filled with Columns & Values 1593 ins := yyDollar[5].ins 1594 ins.Action = yyDollar[1].str 1595 ins.Comments = yyDollar[2].bytes2 1596 ins.Ignore = yyDollar[3].str 1597 ins.Table = yyDollar[4].tableName 1598 ins.OnDup = OnDup(yyDollar[6].updateExprs) 1599 yyVAL.statement = ins 1600 } 1601 case 26: 1602 yyDollar = yyS[yypt-7 : yypt+1] 1603 //line sql.y:301 1604 { 1605 cols := make(Columns, 0, len(yyDollar[6].updateExprs)) 1606 vals := make(ValTuple, 0, len(yyDollar[7].updateExprs)) 1607 for _, updateList := range yyDollar[6].updateExprs { 1608 cols = append(cols, updateList.Name.Name) 1609 vals = append(vals, updateList.Expr) 1610 } 1611 yyVAL.statement = &Insert{Action: yyDollar[1].str, Comments: Comments(yyDollar[2].bytes2), Ignore: yyDollar[3].str, Table: yyDollar[4].tableName, Columns: cols, Rows: Values{vals}, OnDup: OnDup(yyDollar[7].updateExprs)} 1612 } 1613 case 27: 1614 yyDollar = yyS[yypt-1 : yypt+1] 1615 //line sql.y:313 1616 { 1617 yyVAL.str = InsertStr 1618 } 1619 case 28: 1620 yyDollar = yyS[yypt-1 : yypt+1] 1621 //line sql.y:317 1622 { 1623 yyVAL.str = ReplaceStr 1624 } 1625 case 29: 1626 yyDollar = yyS[yypt-8 : yypt+1] 1627 //line sql.y:323 1628 { 1629 yyVAL.statement = &Update{Comments: Comments(yyDollar[2].bytes2), TableExprs: yyDollar[3].tableExprs, Exprs: yyDollar[5].updateExprs, Where: NewWhere(WhereStr, yyDollar[6].expr), OrderBy: yyDollar[7].orderBy, Limit: yyDollar[8].limit} 1630 } 1631 case 30: 1632 yyDollar = yyS[yypt-7 : yypt+1] 1633 //line sql.y:329 1634 { 1635 yyVAL.statement = &Delete{Comments: Comments(yyDollar[2].bytes2), TableExprs: TableExprs{&AliasedTableExpr{Expr: yyDollar[4].tableName}}, Where: NewWhere(WhereStr, yyDollar[5].expr), OrderBy: yyDollar[6].orderBy, Limit: yyDollar[7].limit} 1636 } 1637 case 31: 1638 yyDollar = yyS[yypt-6 : yypt+1] 1639 //line sql.y:333 1640 { 1641 yyVAL.statement = &Delete{Comments: Comments(yyDollar[2].bytes2), Targets: yyDollar[3].tableNames, TableExprs: yyDollar[5].tableExprs, Where: NewWhere(WhereStr, yyDollar[6].expr)} 1642 } 1643 case 32: 1644 yyDollar = yyS[yypt-1 : yypt+1] 1645 //line sql.y:338 1646 { 1647 } 1648 case 33: 1649 yyDollar = yyS[yypt-1 : yypt+1] 1650 //line sql.y:339 1651 { 1652 } 1653 case 34: 1654 yyDollar = yyS[yypt-1 : yypt+1] 1655 //line sql.y:343 1656 { 1657 yyVAL.tableNames = TableNames{yyDollar[1].tableName} 1658 } 1659 case 35: 1660 yyDollar = yyS[yypt-3 : yypt+1] 1661 //line sql.y:347 1662 { 1663 yyVAL.tableNames = append(yyVAL.tableNames, yyDollar[3].tableName) 1664 } 1665 case 36: 1666 yyDollar = yyS[yypt-3 : yypt+1] 1667 //line sql.y:353 1668 { 1669 yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Exprs: yyDollar[3].updateExprs} 1670 } 1671 case 37: 1672 yyDollar = yyS[yypt-5 : yypt+1] 1673 //line sql.y:359 1674 { 1675 yyVAL.statement = &DDL{Action: CreateStr, NewName: yyDollar[4].tableName} 1676 } 1677 case 38: 1678 yyDollar = yyS[yypt-8 : yypt+1] 1679 //line sql.y:363 1680 { 1681 // Change this to an alter statement 1682 yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[7].tableName, NewName: yyDollar[7].tableName} 1683 } 1684 case 39: 1685 yyDollar = yyS[yypt-4 : yypt+1] 1686 //line sql.y:368 1687 { 1688 yyVAL.statement = &DDL{Action: CreateStr, NewName: yyDollar[3].tableName.ToViewName()} 1689 } 1690 case 40: 1691 yyDollar = yyS[yypt-6 : yypt+1] 1692 //line sql.y:372 1693 { 1694 yyVAL.statement = &DDL{Action: CreateStr, NewName: yyDollar[5].tableName.ToViewName()} 1695 } 1696 case 41: 1697 yyDollar = yyS[yypt-6 : yypt+1] 1698 //line sql.y:378 1699 { 1700 yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} 1701 } 1702 case 42: 1703 yyDollar = yyS[yypt-7 : yypt+1] 1704 //line sql.y:382 1705 { 1706 // Change this to a rename statement 1707 yyVAL.statement = &DDL{Action: RenameStr, Table: yyDollar[4].tableName, NewName: yyDollar[7].tableName} 1708 } 1709 case 43: 1710 yyDollar = yyS[yypt-7 : yypt+1] 1711 //line sql.y:387 1712 { 1713 // Rename an index can just be an alter 1714 yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} 1715 } 1716 case 44: 1717 yyDollar = yyS[yypt-4 : yypt+1] 1718 //line sql.y:392 1719 { 1720 yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName.ToViewName(), NewName: yyDollar[3].tableName.ToViewName()} 1721 } 1722 case 45: 1723 yyDollar = yyS[yypt-5 : yypt+1] 1724 //line sql.y:398 1725 { 1726 yyVAL.statement = &DDL{Action: RenameStr, Table: yyDollar[3].tableName, NewName: yyDollar[5].tableName} 1727 } 1728 case 46: 1729 yyDollar = yyS[yypt-4 : yypt+1] 1730 //line sql.y:404 1731 { 1732 var exists bool 1733 if yyDollar[3].byt != 0 { 1734 exists = true 1735 } 1736 yyVAL.statement = &DDL{Action: DropStr, Table: yyDollar[4].tableName, IfExists: exists} 1737 } 1738 case 47: 1739 yyDollar = yyS[yypt-5 : yypt+1] 1740 //line sql.y:412 1741 { 1742 // Change this to an alter statement 1743 yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[5].tableName, NewName: yyDollar[5].tableName} 1744 } 1745 case 48: 1746 yyDollar = yyS[yypt-5 : yypt+1] 1747 //line sql.y:417 1748 { 1749 var exists bool 1750 if yyDollar[3].byt != 0 { 1751 exists = true 1752 } 1753 yyVAL.statement = &DDL{Action: DropStr, Table: yyDollar[4].tableName.ToViewName(), IfExists: exists} 1754 } 1755 case 49: 1756 yyDollar = yyS[yypt-3 : yypt+1] 1757 //line sql.y:427 1758 { 1759 yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName, NewName: yyDollar[3].tableName} 1760 } 1761 case 50: 1762 yyDollar = yyS[yypt-1 : yypt+1] 1763 //line sql.y:433 1764 { 1765 yyVAL.str = ShowUnsupportedStr 1766 } 1767 case 51: 1768 yyDollar = yyS[yypt-1 : yypt+1] 1769 //line sql.y:437 1770 { 1771 switch v := string(yyDollar[1].bytes); v { 1772 case ShowDatabasesStr, ShowTablesStr, ShowKeyspacesStr, ShowShardsStr, ShowVSchemaTablesStr: 1773 yyVAL.str = v 1774 default: 1775 yyVAL.str = ShowUnsupportedStr 1776 } 1777 } 1778 case 52: 1779 yyDollar = yyS[yypt-1 : yypt+1] 1780 //line sql.y:446 1781 { 1782 yyVAL.str = ShowUnsupportedStr 1783 } 1784 case 53: 1785 yyDollar = yyS[yypt-3 : yypt+1] 1786 //line sql.y:452 1787 { 1788 yyVAL.statement = &Show{Type: yyDollar[2].str} 1789 } 1790 case 54: 1791 yyDollar = yyS[yypt-2 : yypt+1] 1792 //line sql.y:458 1793 { 1794 yyVAL.statement = &Use{DBName: yyDollar[2].tableIdent} 1795 } 1796 case 55: 1797 yyDollar = yyS[yypt-2 : yypt+1] 1798 //line sql.y:464 1799 { 1800 yyVAL.statement = &OtherRead{} 1801 } 1802 case 56: 1803 yyDollar = yyS[yypt-2 : yypt+1] 1804 //line sql.y:468 1805 { 1806 yyVAL.statement = &OtherRead{} 1807 } 1808 case 57: 1809 yyDollar = yyS[yypt-2 : yypt+1] 1810 //line sql.y:472 1811 { 1812 yyVAL.statement = &OtherRead{} 1813 } 1814 case 58: 1815 yyDollar = yyS[yypt-2 : yypt+1] 1816 //line sql.y:476 1817 { 1818 yyVAL.statement = &OtherAdmin{} 1819 } 1820 case 59: 1821 yyDollar = yyS[yypt-2 : yypt+1] 1822 //line sql.y:480 1823 { 1824 yyVAL.statement = &OtherAdmin{} 1825 } 1826 case 60: 1827 yyDollar = yyS[yypt-2 : yypt+1] 1828 //line sql.y:484 1829 { 1830 yyVAL.statement = &OtherAdmin{} 1831 } 1832 case 61: 1833 yyDollar = yyS[yypt-0 : yypt+1] 1834 //line sql.y:489 1835 { 1836 setAllowComments(yylex, true) 1837 } 1838 case 62: 1839 yyDollar = yyS[yypt-2 : yypt+1] 1840 //line sql.y:493 1841 { 1842 yyVAL.bytes2 = yyDollar[2].bytes2 1843 setAllowComments(yylex, false) 1844 } 1845 case 63: 1846 yyDollar = yyS[yypt-0 : yypt+1] 1847 //line sql.y:499 1848 { 1849 yyVAL.bytes2 = nil 1850 } 1851 case 64: 1852 yyDollar = yyS[yypt-2 : yypt+1] 1853 //line sql.y:503 1854 { 1855 yyVAL.bytes2 = append(yyDollar[1].bytes2, yyDollar[2].bytes) 1856 } 1857 case 65: 1858 yyDollar = yyS[yypt-1 : yypt+1] 1859 //line sql.y:509 1860 { 1861 yyVAL.str = UnionStr 1862 } 1863 case 66: 1864 yyDollar = yyS[yypt-2 : yypt+1] 1865 //line sql.y:513 1866 { 1867 yyVAL.str = UnionAllStr 1868 } 1869 case 67: 1870 yyDollar = yyS[yypt-2 : yypt+1] 1871 //line sql.y:517 1872 { 1873 yyVAL.str = UnionDistinctStr 1874 } 1875 case 68: 1876 yyDollar = yyS[yypt-0 : yypt+1] 1877 //line sql.y:522 1878 { 1879 yyVAL.str = "" 1880 } 1881 case 69: 1882 yyDollar = yyS[yypt-1 : yypt+1] 1883 //line sql.y:526 1884 { 1885 yyVAL.str = SQLNoCacheStr 1886 } 1887 case 70: 1888 yyDollar = yyS[yypt-1 : yypt+1] 1889 //line sql.y:530 1890 { 1891 yyVAL.str = SQLCacheStr 1892 } 1893 case 71: 1894 yyDollar = yyS[yypt-0 : yypt+1] 1895 //line sql.y:535 1896 { 1897 yyVAL.str = "" 1898 } 1899 case 72: 1900 yyDollar = yyS[yypt-1 : yypt+1] 1901 //line sql.y:539 1902 { 1903 yyVAL.str = DistinctStr 1904 } 1905 case 73: 1906 yyDollar = yyS[yypt-0 : yypt+1] 1907 //line sql.y:544 1908 { 1909 yyVAL.str = "" 1910 } 1911 case 74: 1912 yyDollar = yyS[yypt-1 : yypt+1] 1913 //line sql.y:548 1914 { 1915 yyVAL.str = StraightJoinHint 1916 } 1917 case 75: 1918 yyDollar = yyS[yypt-0 : yypt+1] 1919 //line sql.y:553 1920 { 1921 yyVAL.selectExprs = nil 1922 } 1923 case 76: 1924 yyDollar = yyS[yypt-1 : yypt+1] 1925 //line sql.y:557 1926 { 1927 yyVAL.selectExprs = yyDollar[1].selectExprs 1928 } 1929 case 77: 1930 yyDollar = yyS[yypt-1 : yypt+1] 1931 //line sql.y:563 1932 { 1933 yyVAL.selectExprs = SelectExprs{yyDollar[1].selectExpr} 1934 } 1935 case 78: 1936 yyDollar = yyS[yypt-3 : yypt+1] 1937 //line sql.y:567 1938 { 1939 yyVAL.selectExprs = append(yyVAL.selectExprs, yyDollar[3].selectExpr) 1940 } 1941 case 79: 1942 yyDollar = yyS[yypt-1 : yypt+1] 1943 //line sql.y:573 1944 { 1945 yyVAL.selectExpr = &StarExpr{} 1946 } 1947 case 80: 1948 yyDollar = yyS[yypt-2 : yypt+1] 1949 //line sql.y:577 1950 { 1951 yyVAL.selectExpr = &AliasedExpr{Expr: yyDollar[1].expr, As: yyDollar[2].colIdent} 1952 } 1953 case 81: 1954 yyDollar = yyS[yypt-3 : yypt+1] 1955 //line sql.y:581 1956 { 1957 yyVAL.selectExpr = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} 1958 } 1959 case 82: 1960 yyDollar = yyS[yypt-5 : yypt+1] 1961 //line sql.y:585 1962 { 1963 yyVAL.selectExpr = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} 1964 } 1965 case 83: 1966 yyDollar = yyS[yypt-0 : yypt+1] 1967 //line sql.y:590 1968 { 1969 yyVAL.colIdent = ColIdent{} 1970 } 1971 case 84: 1972 yyDollar = yyS[yypt-1 : yypt+1] 1973 //line sql.y:594 1974 { 1975 yyVAL.colIdent = yyDollar[1].colIdent 1976 } 1977 case 85: 1978 yyDollar = yyS[yypt-2 : yypt+1] 1979 //line sql.y:598 1980 { 1981 yyVAL.colIdent = yyDollar[2].colIdent 1982 } 1983 case 87: 1984 yyDollar = yyS[yypt-1 : yypt+1] 1985 //line sql.y:605 1986 { 1987 yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) 1988 } 1989 case 88: 1990 yyDollar = yyS[yypt-0 : yypt+1] 1991 //line sql.y:610 1992 { 1993 yyVAL.tableExprs = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} 1994 } 1995 case 89: 1996 yyDollar = yyS[yypt-2 : yypt+1] 1997 //line sql.y:614 1998 { 1999 yyVAL.tableExprs = yyDollar[2].tableExprs 2000 } 2001 case 90: 2002 yyDollar = yyS[yypt-1 : yypt+1] 2003 //line sql.y:620 2004 { 2005 yyVAL.tableExprs = TableExprs{yyDollar[1].tableExpr} 2006 } 2007 case 91: 2008 yyDollar = yyS[yypt-3 : yypt+1] 2009 //line sql.y:624 2010 { 2011 yyVAL.tableExprs = append(yyVAL.tableExprs, yyDollar[3].tableExpr) 2012 } 2013 case 94: 2014 yyDollar = yyS[yypt-1 : yypt+1] 2015 //line sql.y:634 2016 { 2017 yyVAL.tableExpr = yyDollar[1].aliasedTableName 2018 } 2019 case 95: 2020 yyDollar = yyS[yypt-3 : yypt+1] 2021 //line sql.y:638 2022 { 2023 yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery, As: yyDollar[3].tableIdent} 2024 } 2025 case 96: 2026 yyDollar = yyS[yypt-3 : yypt+1] 2027 //line sql.y:642 2028 { 2029 yyVAL.tableExpr = &ParenTableExpr{Exprs: yyDollar[2].tableExprs} 2030 } 2031 case 97: 2032 yyDollar = yyS[yypt-3 : yypt+1] 2033 //line sql.y:648 2034 { 2035 yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHints} 2036 } 2037 case 98: 2038 yyDollar = yyS[yypt-3 : yypt+1] 2039 //line sql.y:661 2040 { 2041 yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} 2042 } 2043 case 99: 2044 yyDollar = yyS[yypt-5 : yypt+1] 2045 //line sql.y:665 2046 { 2047 yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, On: yyDollar[5].expr} 2048 } 2049 case 100: 2050 yyDollar = yyS[yypt-5 : yypt+1] 2051 //line sql.y:669 2052 { 2053 yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, On: yyDollar[5].expr} 2054 } 2055 case 101: 2056 yyDollar = yyS[yypt-3 : yypt+1] 2057 //line sql.y:673 2058 { 2059 yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} 2060 } 2061 case 102: 2062 yyDollar = yyS[yypt-0 : yypt+1] 2063 //line sql.y:678 2064 { 2065 yyVAL.empty = struct{}{} 2066 } 2067 case 103: 2068 yyDollar = yyS[yypt-1 : yypt+1] 2069 //line sql.y:680 2070 { 2071 yyVAL.empty = struct{}{} 2072 } 2073 case 104: 2074 yyDollar = yyS[yypt-0 : yypt+1] 2075 //line sql.y:683 2076 { 2077 yyVAL.tableIdent = NewTableIdent("") 2078 } 2079 case 105: 2080 yyDollar = yyS[yypt-1 : yypt+1] 2081 //line sql.y:687 2082 { 2083 yyVAL.tableIdent = yyDollar[1].tableIdent 2084 } 2085 case 106: 2086 yyDollar = yyS[yypt-2 : yypt+1] 2087 //line sql.y:691 2088 { 2089 yyVAL.tableIdent = yyDollar[2].tableIdent 2090 } 2091 case 108: 2092 yyDollar = yyS[yypt-1 : yypt+1] 2093 //line sql.y:698 2094 { 2095 yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) 2096 } 2097 case 109: 2098 yyDollar = yyS[yypt-1 : yypt+1] 2099 //line sql.y:704 2100 { 2101 yyVAL.str = JoinStr 2102 } 2103 case 110: 2104 yyDollar = yyS[yypt-2 : yypt+1] 2105 //line sql.y:708 2106 { 2107 yyVAL.str = JoinStr 2108 } 2109 case 111: 2110 yyDollar = yyS[yypt-2 : yypt+1] 2111 //line sql.y:712 2112 { 2113 yyVAL.str = JoinStr 2114 } 2115 case 112: 2116 yyDollar = yyS[yypt-1 : yypt+1] 2117 //line sql.y:716 2118 { 2119 yyVAL.str = StraightJoinStr 2120 } 2121 case 113: 2122 yyDollar = yyS[yypt-2 : yypt+1] 2123 //line sql.y:722 2124 { 2125 yyVAL.str = LeftJoinStr 2126 } 2127 case 114: 2128 yyDollar = yyS[yypt-3 : yypt+1] 2129 //line sql.y:726 2130 { 2131 yyVAL.str = LeftJoinStr 2132 } 2133 case 115: 2134 yyDollar = yyS[yypt-2 : yypt+1] 2135 //line sql.y:730 2136 { 2137 yyVAL.str = RightJoinStr 2138 } 2139 case 116: 2140 yyDollar = yyS[yypt-3 : yypt+1] 2141 //line sql.y:734 2142 { 2143 yyVAL.str = RightJoinStr 2144 } 2145 case 117: 2146 yyDollar = yyS[yypt-2 : yypt+1] 2147 //line sql.y:740 2148 { 2149 yyVAL.str = NaturalJoinStr 2150 } 2151 case 118: 2152 yyDollar = yyS[yypt-2 : yypt+1] 2153 //line sql.y:744 2154 { 2155 if yyDollar[2].str == LeftJoinStr { 2156 yyVAL.str = NaturalLeftJoinStr 2157 } else { 2158 yyVAL.str = NaturalRightJoinStr 2159 } 2160 } 2161 case 119: 2162 yyDollar = yyS[yypt-2 : yypt+1] 2163 //line sql.y:754 2164 { 2165 yyVAL.tableName = yyDollar[2].tableName 2166 } 2167 case 120: 2168 yyDollar = yyS[yypt-1 : yypt+1] 2169 //line sql.y:758 2170 { 2171 yyVAL.tableName = yyDollar[1].tableName 2172 } 2173 case 121: 2174 yyDollar = yyS[yypt-1 : yypt+1] 2175 //line sql.y:764 2176 { 2177 yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} 2178 } 2179 case 122: 2180 yyDollar = yyS[yypt-3 : yypt+1] 2181 //line sql.y:768 2182 { 2183 yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} 2184 } 2185 case 123: 2186 yyDollar = yyS[yypt-0 : yypt+1] 2187 //line sql.y:773 2188 { 2189 yyVAL.indexHints = nil 2190 } 2191 case 124: 2192 yyDollar = yyS[yypt-5 : yypt+1] 2193 //line sql.y:777 2194 { 2195 yyVAL.indexHints = &IndexHints{Type: UseStr, Indexes: yyDollar[4].colIdents} 2196 } 2197 case 125: 2198 yyDollar = yyS[yypt-5 : yypt+1] 2199 //line sql.y:781 2200 { 2201 yyVAL.indexHints = &IndexHints{Type: IgnoreStr, Indexes: yyDollar[4].colIdents} 2202 } 2203 case 126: 2204 yyDollar = yyS[yypt-5 : yypt+1] 2205 //line sql.y:785 2206 { 2207 yyVAL.indexHints = &IndexHints{Type: ForceStr, Indexes: yyDollar[4].colIdents} 2208 } 2209 case 127: 2210 yyDollar = yyS[yypt-1 : yypt+1] 2211 //line sql.y:791 2212 { 2213 yyVAL.colIdents = []ColIdent{yyDollar[1].colIdent} 2214 } 2215 case 128: 2216 yyDollar = yyS[yypt-3 : yypt+1] 2217 //line sql.y:795 2218 { 2219 yyVAL.colIdents = append(yyDollar[1].colIdents, yyDollar[3].colIdent) 2220 } 2221 case 129: 2222 yyDollar = yyS[yypt-0 : yypt+1] 2223 //line sql.y:800 2224 { 2225 yyVAL.expr = nil 2226 } 2227 case 130: 2228 yyDollar = yyS[yypt-2 : yypt+1] 2229 //line sql.y:804 2230 { 2231 yyVAL.expr = yyDollar[2].expr 2232 } 2233 case 131: 2234 yyDollar = yyS[yypt-1 : yypt+1] 2235 //line sql.y:810 2236 { 2237 yyVAL.expr = yyDollar[1].expr 2238 } 2239 case 132: 2240 yyDollar = yyS[yypt-3 : yypt+1] 2241 //line sql.y:814 2242 { 2243 yyVAL.expr = &AndExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} 2244 } 2245 case 133: 2246 yyDollar = yyS[yypt-3 : yypt+1] 2247 //line sql.y:818 2248 { 2249 yyVAL.expr = &OrExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} 2250 } 2251 case 134: 2252 yyDollar = yyS[yypt-2 : yypt+1] 2253 //line sql.y:822 2254 { 2255 yyVAL.expr = &NotExpr{Expr: yyDollar[2].expr} 2256 } 2257 case 135: 2258 yyDollar = yyS[yypt-3 : yypt+1] 2259 //line sql.y:826 2260 { 2261 yyVAL.expr = &IsExpr{Operator: yyDollar[3].str, Expr: yyDollar[1].expr} 2262 } 2263 case 136: 2264 yyDollar = yyS[yypt-1 : yypt+1] 2265 //line sql.y:830 2266 { 2267 yyVAL.expr = yyDollar[1].expr 2268 } 2269 case 137: 2270 yyDollar = yyS[yypt-1 : yypt+1] 2271 //line sql.y:834 2272 { 2273 yyVAL.expr = &Default{} 2274 } 2275 case 138: 2276 yyDollar = yyS[yypt-1 : yypt+1] 2277 //line sql.y:840 2278 { 2279 yyVAL.boolVal = BoolVal(true) 2280 } 2281 case 139: 2282 yyDollar = yyS[yypt-1 : yypt+1] 2283 //line sql.y:844 2284 { 2285 yyVAL.boolVal = BoolVal(false) 2286 } 2287 case 140: 2288 yyDollar = yyS[yypt-3 : yypt+1] 2289 //line sql.y:850 2290 { 2291 yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: yyDollar[2].str, Right: yyDollar[3].expr} 2292 } 2293 case 141: 2294 yyDollar = yyS[yypt-3 : yypt+1] 2295 //line sql.y:854 2296 { 2297 yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: InStr, Right: yyDollar[3].colTuple} 2298 } 2299 case 142: 2300 yyDollar = yyS[yypt-4 : yypt+1] 2301 //line sql.y:858 2302 { 2303 yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotInStr, Right: yyDollar[4].colTuple} 2304 } 2305 case 143: 2306 yyDollar = yyS[yypt-4 : yypt+1] 2307 //line sql.y:862 2308 { 2309 yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: LikeStr, Right: yyDollar[3].expr, Escape: yyDollar[4].expr} 2310 } 2311 case 144: 2312 yyDollar = yyS[yypt-5 : yypt+1] 2313 //line sql.y:866 2314 { 2315 yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotLikeStr, Right: yyDollar[4].expr, Escape: yyDollar[5].expr} 2316 } 2317 case 145: 2318 yyDollar = yyS[yypt-3 : yypt+1] 2319 //line sql.y:870 2320 { 2321 yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: RegexpStr, Right: yyDollar[3].expr} 2322 } 2323 case 146: 2324 yyDollar = yyS[yypt-4 : yypt+1] 2325 //line sql.y:874 2326 { 2327 yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotRegexpStr, Right: yyDollar[4].expr} 2328 } 2329 case 147: 2330 yyDollar = yyS[yypt-5 : yypt+1] 2331 //line sql.y:878 2332 { 2333 yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: BetweenStr, From: yyDollar[3].expr, To: yyDollar[5].expr} 2334 } 2335 case 148: 2336 yyDollar = yyS[yypt-6 : yypt+1] 2337 //line sql.y:882 2338 { 2339 yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: NotBetweenStr, From: yyDollar[4].expr, To: yyDollar[6].expr} 2340 } 2341 case 149: 2342 yyDollar = yyS[yypt-2 : yypt+1] 2343 //line sql.y:886 2344 { 2345 yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery} 2346 } 2347 case 150: 2348 yyDollar = yyS[yypt-1 : yypt+1] 2349 //line sql.y:892 2350 { 2351 yyVAL.str = IsNullStr 2352 } 2353 case 151: 2354 yyDollar = yyS[yypt-2 : yypt+1] 2355 //line sql.y:896 2356 { 2357 yyVAL.str = IsNotNullStr 2358 } 2359 case 152: 2360 yyDollar = yyS[yypt-1 : yypt+1] 2361 //line sql.y:900 2362 { 2363 yyVAL.str = IsTrueStr 2364 } 2365 case 153: 2366 yyDollar = yyS[yypt-2 : yypt+1] 2367 //line sql.y:904 2368 { 2369 yyVAL.str = IsNotTrueStr 2370 } 2371 case 154: 2372 yyDollar = yyS[yypt-1 : yypt+1] 2373 //line sql.y:908 2374 { 2375 yyVAL.str = IsFalseStr 2376 } 2377 case 155: 2378 yyDollar = yyS[yypt-2 : yypt+1] 2379 //line sql.y:912 2380 { 2381 yyVAL.str = IsNotFalseStr 2382 } 2383 case 156: 2384 yyDollar = yyS[yypt-1 : yypt+1] 2385 //line sql.y:918 2386 { 2387 yyVAL.str = EqualStr 2388 } 2389 case 157: 2390 yyDollar = yyS[yypt-1 : yypt+1] 2391 //line sql.y:922 2392 { 2393 yyVAL.str = LessThanStr 2394 } 2395 case 158: 2396 yyDollar = yyS[yypt-1 : yypt+1] 2397 //line sql.y:926 2398 { 2399 yyVAL.str = GreaterThanStr 2400 } 2401 case 159: 2402 yyDollar = yyS[yypt-1 : yypt+1] 2403 //line sql.y:930 2404 { 2405 yyVAL.str = LessEqualStr 2406 } 2407 case 160: 2408 yyDollar = yyS[yypt-1 : yypt+1] 2409 //line sql.y:934 2410 { 2411 yyVAL.str = GreaterEqualStr 2412 } 2413 case 161: 2414 yyDollar = yyS[yypt-1 : yypt+1] 2415 //line sql.y:938 2416 { 2417 yyVAL.str = NotEqualStr 2418 } 2419 case 162: 2420 yyDollar = yyS[yypt-1 : yypt+1] 2421 //line sql.y:942 2422 { 2423 yyVAL.str = NullSafeEqualStr 2424 } 2425 case 163: 2426 yyDollar = yyS[yypt-0 : yypt+1] 2427 //line sql.y:947 2428 { 2429 yyVAL.expr = nil 2430 } 2431 case 164: 2432 yyDollar = yyS[yypt-2 : yypt+1] 2433 //line sql.y:951 2434 { 2435 yyVAL.expr = yyDollar[2].expr 2436 } 2437 case 165: 2438 yyDollar = yyS[yypt-1 : yypt+1] 2439 //line sql.y:957 2440 { 2441 yyVAL.colTuple = yyDollar[1].valTuple 2442 } 2443 case 166: 2444 yyDollar = yyS[yypt-1 : yypt+1] 2445 //line sql.y:961 2446 { 2447 yyVAL.colTuple = yyDollar[1].subquery 2448 } 2449 case 167: 2450 yyDollar = yyS[yypt-1 : yypt+1] 2451 //line sql.y:965 2452 { 2453 yyVAL.colTuple = ListArg(yyDollar[1].bytes) 2454 } 2455 case 168: 2456 yyDollar = yyS[yypt-3 : yypt+1] 2457 //line sql.y:971 2458 { 2459 yyVAL.subquery = &Subquery{yyDollar[2].selStmt} 2460 } 2461 case 169: 2462 yyDollar = yyS[yypt-1 : yypt+1] 2463 //line sql.y:977 2464 { 2465 yyVAL.exprs = Exprs{yyDollar[1].expr} 2466 } 2467 case 170: 2468 yyDollar = yyS[yypt-3 : yypt+1] 2469 //line sql.y:981 2470 { 2471 yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) 2472 } 2473 case 171: 2474 yyDollar = yyS[yypt-1 : yypt+1] 2475 //line sql.y:987 2476 { 2477 yyVAL.str = string(yyDollar[1].bytes) 2478 } 2479 case 172: 2480 yyDollar = yyS[yypt-1 : yypt+1] 2481 //line sql.y:991 2482 { 2483 yyVAL.str = string(yyDollar[1].bytes) 2484 } 2485 case 173: 2486 yyDollar = yyS[yypt-1 : yypt+1] 2487 //line sql.y:995 2488 { 2489 yyVAL.str = string(yyDollar[1].bytes) 2490 } 2491 case 174: 2492 yyDollar = yyS[yypt-1 : yypt+1] 2493 //line sql.y:999 2494 { 2495 yyVAL.str = string(yyDollar[1].bytes) 2496 } 2497 case 175: 2498 yyDollar = yyS[yypt-1 : yypt+1] 2499 //line sql.y:1005 2500 { 2501 yyVAL.expr = yyDollar[1].expr 2502 } 2503 case 176: 2504 yyDollar = yyS[yypt-1 : yypt+1] 2505 //line sql.y:1009 2506 { 2507 yyVAL.expr = yyDollar[1].boolVal 2508 } 2509 case 177: 2510 yyDollar = yyS[yypt-1 : yypt+1] 2511 //line sql.y:1013 2512 { 2513 yyVAL.expr = yyDollar[1].colName 2514 } 2515 case 178: 2516 yyDollar = yyS[yypt-1 : yypt+1] 2517 //line sql.y:1017 2518 { 2519 yyVAL.expr = yyDollar[1].expr 2520 } 2521 case 179: 2522 yyDollar = yyS[yypt-1 : yypt+1] 2523 //line sql.y:1021 2524 { 2525 yyVAL.expr = yyDollar[1].subquery 2526 } 2527 case 180: 2528 yyDollar = yyS[yypt-3 : yypt+1] 2529 //line sql.y:1025 2530 { 2531 yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} 2532 } 2533 case 181: 2534 yyDollar = yyS[yypt-3 : yypt+1] 2535 //line sql.y:1029 2536 { 2537 yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} 2538 } 2539 case 182: 2540 yyDollar = yyS[yypt-3 : yypt+1] 2541 //line sql.y:1033 2542 { 2543 yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} 2544 } 2545 case 183: 2546 yyDollar = yyS[yypt-3 : yypt+1] 2547 //line sql.y:1037 2548 { 2549 yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} 2550 } 2551 case 184: 2552 yyDollar = yyS[yypt-3 : yypt+1] 2553 //line sql.y:1041 2554 { 2555 yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} 2556 } 2557 case 185: 2558 yyDollar = yyS[yypt-3 : yypt+1] 2559 //line sql.y:1045 2560 { 2561 yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} 2562 } 2563 case 186: 2564 yyDollar = yyS[yypt-3 : yypt+1] 2565 //line sql.y:1049 2566 { 2567 yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} 2568 } 2569 case 187: 2570 yyDollar = yyS[yypt-3 : yypt+1] 2571 //line sql.y:1053 2572 { 2573 yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr} 2574 } 2575 case 188: 2576 yyDollar = yyS[yypt-3 : yypt+1] 2577 //line sql.y:1057 2578 { 2579 yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} 2580 } 2581 case 189: 2582 yyDollar = yyS[yypt-3 : yypt+1] 2583 //line sql.y:1061 2584 { 2585 yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} 2586 } 2587 case 190: 2588 yyDollar = yyS[yypt-3 : yypt+1] 2589 //line sql.y:1065 2590 { 2591 yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr} 2592 } 2593 case 191: 2594 yyDollar = yyS[yypt-3 : yypt+1] 2595 //line sql.y:1069 2596 { 2597 yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} 2598 } 2599 case 192: 2600 yyDollar = yyS[yypt-3 : yypt+1] 2601 //line sql.y:1073 2602 { 2603 yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} 2604 } 2605 case 193: 2606 yyDollar = yyS[yypt-3 : yypt+1] 2607 //line sql.y:1077 2608 { 2609 yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} 2610 } 2611 case 194: 2612 yyDollar = yyS[yypt-3 : yypt+1] 2613 //line sql.y:1081 2614 { 2615 yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} 2616 } 2617 case 195: 2618 yyDollar = yyS[yypt-2 : yypt+1] 2619 //line sql.y:1085 2620 { 2621 yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} 2622 } 2623 case 196: 2624 yyDollar = yyS[yypt-2 : yypt+1] 2625 //line sql.y:1089 2626 { 2627 if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { 2628 yyVAL.expr = num 2629 } else { 2630 yyVAL.expr = &UnaryExpr{Operator: UPlusStr, Expr: yyDollar[2].expr} 2631 } 2632 } 2633 case 197: 2634 yyDollar = yyS[yypt-2 : yypt+1] 2635 //line sql.y:1097 2636 { 2637 if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { 2638 // Handle double negative 2639 if num.Val[0] == '-' { 2640 num.Val = num.Val[1:] 2641 yyVAL.expr = num 2642 } else { 2643 yyVAL.expr = NewIntVal(append([]byte("-"), num.Val...)) 2644 } 2645 } else { 2646 yyVAL.expr = &UnaryExpr{Operator: UMinusStr, Expr: yyDollar[2].expr} 2647 } 2648 } 2649 case 198: 2650 yyDollar = yyS[yypt-2 : yypt+1] 2651 //line sql.y:1111 2652 { 2653 yyVAL.expr = &UnaryExpr{Operator: TildaStr, Expr: yyDollar[2].expr} 2654 } 2655 case 199: 2656 yyDollar = yyS[yypt-2 : yypt+1] 2657 //line sql.y:1115 2658 { 2659 yyVAL.expr = &UnaryExpr{Operator: BangStr, Expr: yyDollar[2].expr} 2660 } 2661 case 200: 2662 yyDollar = yyS[yypt-3 : yypt+1] 2663 //line sql.y:1119 2664 { 2665 // This rule prevents the usage of INTERVAL 2666 // as a function. If support is needed for that, 2667 // we'll need to revisit this. The solution 2668 // will be non-trivial because of grammar conflicts. 2669 yyVAL.expr = &IntervalExpr{Expr: yyDollar[2].expr, Unit: yyDollar[3].colIdent} 2670 } 2671 case 205: 2672 yyDollar = yyS[yypt-4 : yypt+1] 2673 //line sql.y:1137 2674 { 2675 yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprs} 2676 } 2677 case 206: 2678 yyDollar = yyS[yypt-5 : yypt+1] 2679 //line sql.y:1141 2680 { 2681 yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprs} 2682 } 2683 case 207: 2684 yyDollar = yyS[yypt-6 : yypt+1] 2685 //line sql.y:1145 2686 { 2687 yyVAL.expr = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprs} 2688 } 2689 case 208: 2690 yyDollar = yyS[yypt-4 : yypt+1] 2691 //line sql.y:1155 2692 { 2693 yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs} 2694 } 2695 case 209: 2696 yyDollar = yyS[yypt-4 : yypt+1] 2697 //line sql.y:1159 2698 { 2699 yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs} 2700 } 2701 case 210: 2702 yyDollar = yyS[yypt-6 : yypt+1] 2703 //line sql.y:1163 2704 { 2705 yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} 2706 } 2707 case 211: 2708 yyDollar = yyS[yypt-6 : yypt+1] 2709 //line sql.y:1167 2710 { 2711 yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} 2712 } 2713 case 212: 2714 yyDollar = yyS[yypt-6 : yypt+1] 2715 //line sql.y:1171 2716 { 2717 yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str} 2718 } 2719 case 213: 2720 yyDollar = yyS[yypt-9 : yypt+1] 2721 //line sql.y:1175 2722 { 2723 yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str} 2724 } 2725 case 214: 2726 yyDollar = yyS[yypt-7 : yypt+1] 2727 //line sql.y:1179 2728 { 2729 yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str} 2730 } 2731 case 215: 2732 yyDollar = yyS[yypt-5 : yypt+1] 2733 //line sql.y:1183 2734 { 2735 yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr} 2736 } 2737 case 216: 2738 yyDollar = yyS[yypt-4 : yypt+1] 2739 //line sql.y:1187 2740 { 2741 yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colIdent} 2742 } 2743 case 217: 2744 yyDollar = yyS[yypt-2 : yypt+1] 2745 //line sql.y:1197 2746 { 2747 yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")} 2748 } 2749 case 218: 2750 yyDollar = yyS[yypt-2 : yypt+1] 2751 //line sql.y:1201 2752 { 2753 yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")} 2754 } 2755 case 219: 2756 yyDollar = yyS[yypt-2 : yypt+1] 2757 //line sql.y:1205 2758 { 2759 yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")} 2760 } 2761 case 220: 2762 yyDollar = yyS[yypt-2 : yypt+1] 2763 //line sql.y:1209 2764 { 2765 yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")} 2766 } 2767 case 221: 2768 yyDollar = yyS[yypt-2 : yypt+1] 2769 //line sql.y:1214 2770 { 2771 yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")} 2772 } 2773 case 222: 2774 yyDollar = yyS[yypt-2 : yypt+1] 2775 //line sql.y:1219 2776 { 2777 yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")} 2778 } 2779 case 223: 2780 yyDollar = yyS[yypt-2 : yypt+1] 2781 //line sql.y:1224 2782 { 2783 yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")} 2784 } 2785 case 224: 2786 yyDollar = yyS[yypt-2 : yypt+1] 2787 //line sql.y:1229 2788 { 2789 yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")} 2790 } 2791 case 227: 2792 yyDollar = yyS[yypt-4 : yypt+1] 2793 //line sql.y:1243 2794 { 2795 yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs} 2796 } 2797 case 228: 2798 yyDollar = yyS[yypt-4 : yypt+1] 2799 //line sql.y:1247 2800 { 2801 yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs} 2802 } 2803 case 229: 2804 yyDollar = yyS[yypt-4 : yypt+1] 2805 //line sql.y:1251 2806 { 2807 yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs} 2808 } 2809 case 230: 2810 yyDollar = yyS[yypt-4 : yypt+1] 2811 //line sql.y:1255 2812 { 2813 yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs} 2814 } 2815 case 231: 2816 yyDollar = yyS[yypt-0 : yypt+1] 2817 //line sql.y:1261 2818 { 2819 yyVAL.str = "" 2820 } 2821 case 232: 2822 yyDollar = yyS[yypt-3 : yypt+1] 2823 //line sql.y:1265 2824 { 2825 yyVAL.str = BooleanModeStr 2826 } 2827 case 233: 2828 yyDollar = yyS[yypt-4 : yypt+1] 2829 //line sql.y:1269 2830 { 2831 yyVAL.str = NaturalLanguageModeStr 2832 } 2833 case 234: 2834 yyDollar = yyS[yypt-7 : yypt+1] 2835 //line sql.y:1273 2836 { 2837 yyVAL.str = NaturalLanguageModeWithQueryExpansionStr 2838 } 2839 case 235: 2840 yyDollar = yyS[yypt-3 : yypt+1] 2841 //line sql.y:1277 2842 { 2843 yyVAL.str = QueryExpansionStr 2844 } 2845 case 236: 2846 yyDollar = yyS[yypt-1 : yypt+1] 2847 //line sql.y:1284 2848 { 2849 yyVAL.convertType = &ConvertType{Type: yyDollar[1].str} 2850 } 2851 case 237: 2852 yyDollar = yyS[yypt-2 : yypt+1] 2853 //line sql.y:1288 2854 { 2855 yyVAL.convertType = &ConvertType{Type: yyDollar[1].str} 2856 } 2857 case 238: 2858 yyDollar = yyS[yypt-4 : yypt+1] 2859 //line sql.y:1292 2860 { 2861 yyVAL.convertType = &ConvertType{Type: yyDollar[1].str, Length: NewIntVal(yyDollar[3].bytes)} 2862 } 2863 case 239: 2864 yyDollar = yyS[yypt-5 : yypt+1] 2865 //line sql.y:1296 2866 { 2867 yyVAL.convertType = &ConvertType{Type: yyDollar[1].str, Length: NewIntVal(yyDollar[3].bytes), Charset: yyDollar[5].str} 2868 } 2869 case 240: 2870 yyDollar = yyS[yypt-7 : yypt+1] 2871 //line sql.y:1300 2872 { 2873 yyVAL.convertType = &ConvertType{Type: yyDollar[1].str, Length: NewIntVal(yyDollar[3].bytes), Charset: yyDollar[7].str, Operator: CharacterSetStr} 2874 } 2875 case 241: 2876 yyDollar = yyS[yypt-2 : yypt+1] 2877 //line sql.y:1304 2878 { 2879 yyVAL.convertType = &ConvertType{Type: yyDollar[1].str, Charset: yyDollar[2].str} 2880 } 2881 case 242: 2882 yyDollar = yyS[yypt-4 : yypt+1] 2883 //line sql.y:1308 2884 { 2885 yyVAL.convertType = &ConvertType{Type: yyDollar[1].str, Charset: yyDollar[4].str, Operator: CharacterSetStr} 2886 } 2887 case 243: 2888 yyDollar = yyS[yypt-6 : yypt+1] 2889 //line sql.y:1312 2890 { 2891 yyVAL.convertType = &ConvertType{Type: yyDollar[1].str, Length: NewIntVal(yyDollar[3].bytes), Scale: NewIntVal(yyDollar[5].bytes)} 2892 } 2893 case 244: 2894 yyDollar = yyS[yypt-0 : yypt+1] 2895 //line sql.y:1317 2896 { 2897 yyVAL.expr = nil 2898 } 2899 case 245: 2900 yyDollar = yyS[yypt-1 : yypt+1] 2901 //line sql.y:1321 2902 { 2903 yyVAL.expr = yyDollar[1].expr 2904 } 2905 case 246: 2906 yyDollar = yyS[yypt-0 : yypt+1] 2907 //line sql.y:1326 2908 { 2909 yyVAL.str = string("") 2910 } 2911 case 247: 2912 yyDollar = yyS[yypt-2 : yypt+1] 2913 //line sql.y:1330 2914 { 2915 yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'" 2916 } 2917 case 248: 2918 yyDollar = yyS[yypt-1 : yypt+1] 2919 //line sql.y:1336 2920 { 2921 yyVAL.whens = []*When{yyDollar[1].when} 2922 } 2923 case 249: 2924 yyDollar = yyS[yypt-2 : yypt+1] 2925 //line sql.y:1340 2926 { 2927 yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when) 2928 } 2929 case 250: 2930 yyDollar = yyS[yypt-4 : yypt+1] 2931 //line sql.y:1346 2932 { 2933 yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr} 2934 } 2935 case 251: 2936 yyDollar = yyS[yypt-0 : yypt+1] 2937 //line sql.y:1351 2938 { 2939 yyVAL.expr = nil 2940 } 2941 case 252: 2942 yyDollar = yyS[yypt-2 : yypt+1] 2943 //line sql.y:1355 2944 { 2945 yyVAL.expr = yyDollar[2].expr 2946 } 2947 case 253: 2948 yyDollar = yyS[yypt-1 : yypt+1] 2949 //line sql.y:1361 2950 { 2951 yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} 2952 } 2953 case 254: 2954 yyDollar = yyS[yypt-3 : yypt+1] 2955 //line sql.y:1365 2956 { 2957 yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} 2958 } 2959 case 255: 2960 yyDollar = yyS[yypt-5 : yypt+1] 2961 //line sql.y:1369 2962 { 2963 yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} 2964 } 2965 case 256: 2966 yyDollar = yyS[yypt-1 : yypt+1] 2967 //line sql.y:1375 2968 { 2969 yyVAL.expr = NewStrVal(yyDollar[1].bytes) 2970 } 2971 case 257: 2972 yyDollar = yyS[yypt-1 : yypt+1] 2973 //line sql.y:1379 2974 { 2975 yyVAL.expr = NewHexVal(yyDollar[1].bytes) 2976 } 2977 case 258: 2978 yyDollar = yyS[yypt-1 : yypt+1] 2979 //line sql.y:1383 2980 { 2981 yyVAL.expr = NewIntVal(yyDollar[1].bytes) 2982 } 2983 case 259: 2984 yyDollar = yyS[yypt-1 : yypt+1] 2985 //line sql.y:1387 2986 { 2987 yyVAL.expr = NewFloatVal(yyDollar[1].bytes) 2988 } 2989 case 260: 2990 yyDollar = yyS[yypt-1 : yypt+1] 2991 //line sql.y:1391 2992 { 2993 yyVAL.expr = NewHexNum(yyDollar[1].bytes) 2994 } 2995 case 261: 2996 yyDollar = yyS[yypt-1 : yypt+1] 2997 //line sql.y:1395 2998 { 2999 v := NewValArg(yyDollar[1].bytes) 3000 v.Seq = yylex.(*Tokenizer).posVarIndex 3001 yyVAL.expr = v 3002 } 3003 case 262: 3004 yyDollar = yyS[yypt-1 : yypt+1] 3005 //line sql.y:1401 3006 { 3007 yyVAL.expr = &NullVal{} 3008 } 3009 case 263: 3010 yyDollar = yyS[yypt-1 : yypt+1] 3011 //line sql.y:1407 3012 { 3013 // TODO(sougou): Deprecate this construct. 3014 if yyDollar[1].colIdent.Lowered() != "value" { 3015 yylex.Error("expecting value after next") 3016 return 1 3017 } 3018 yyVAL.expr = NewIntVal([]byte("1")) 3019 } 3020 case 264: 3021 yyDollar = yyS[yypt-2 : yypt+1] 3022 //line sql.y:1416 3023 { 3024 yyVAL.expr = NewIntVal(yyDollar[1].bytes) 3025 } 3026 case 265: 3027 yyDollar = yyS[yypt-2 : yypt+1] 3028 //line sql.y:1420 3029 { 3030 v := NewValArg(yyDollar[1].bytes) 3031 v.Seq = yylex.(*Tokenizer).posVarIndex 3032 yyVAL.expr = v 3033 } 3034 case 266: 3035 yyDollar = yyS[yypt-0 : yypt+1] 3036 //line sql.y:1427 3037 { 3038 yyVAL.exprs = nil 3039 } 3040 case 267: 3041 yyDollar = yyS[yypt-3 : yypt+1] 3042 //line sql.y:1431 3043 { 3044 yyVAL.exprs = yyDollar[3].exprs 3045 } 3046 case 268: 3047 yyDollar = yyS[yypt-0 : yypt+1] 3048 //line sql.y:1436 3049 { 3050 yyVAL.expr = nil 3051 } 3052 case 269: 3053 yyDollar = yyS[yypt-2 : yypt+1] 3054 //line sql.y:1440 3055 { 3056 yyVAL.expr = yyDollar[2].expr 3057 } 3058 case 270: 3059 yyDollar = yyS[yypt-0 : yypt+1] 3060 //line sql.y:1445 3061 { 3062 yyVAL.orderBy = nil 3063 } 3064 case 271: 3065 yyDollar = yyS[yypt-3 : yypt+1] 3066 //line sql.y:1449 3067 { 3068 yyVAL.orderBy = yyDollar[3].orderBy 3069 } 3070 case 272: 3071 yyDollar = yyS[yypt-1 : yypt+1] 3072 //line sql.y:1455 3073 { 3074 yyVAL.orderBy = OrderBy{yyDollar[1].order} 3075 } 3076 case 273: 3077 yyDollar = yyS[yypt-3 : yypt+1] 3078 //line sql.y:1459 3079 { 3080 yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order) 3081 } 3082 case 274: 3083 yyDollar = yyS[yypt-2 : yypt+1] 3084 //line sql.y:1465 3085 { 3086 yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str} 3087 } 3088 case 275: 3089 yyDollar = yyS[yypt-0 : yypt+1] 3090 //line sql.y:1470 3091 { 3092 yyVAL.str = AscScr 3093 } 3094 case 276: 3095 yyDollar = yyS[yypt-1 : yypt+1] 3096 //line sql.y:1474 3097 { 3098 yyVAL.str = AscScr 3099 } 3100 case 277: 3101 yyDollar = yyS[yypt-1 : yypt+1] 3102 //line sql.y:1478 3103 { 3104 yyVAL.str = DescScr 3105 } 3106 case 278: 3107 yyDollar = yyS[yypt-0 : yypt+1] 3108 //line sql.y:1483 3109 { 3110 yyVAL.limit = nil 3111 } 3112 case 279: 3113 yyDollar = yyS[yypt-2 : yypt+1] 3114 //line sql.y:1487 3115 { 3116 yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr} 3117 } 3118 case 280: 3119 yyDollar = yyS[yypt-4 : yypt+1] 3120 //line sql.y:1491 3121 { 3122 yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr} 3123 } 3124 case 281: 3125 yyDollar = yyS[yypt-4 : yypt+1] 3126 //line sql.y:1495 3127 { 3128 yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr} 3129 } 3130 case 282: 3131 yyDollar = yyS[yypt-0 : yypt+1] 3132 //line sql.y:1500 3133 { 3134 yyVAL.str = "" 3135 } 3136 case 283: 3137 yyDollar = yyS[yypt-2 : yypt+1] 3138 //line sql.y:1504 3139 { 3140 yyVAL.str = ForUpdateStr 3141 } 3142 case 284: 3143 yyDollar = yyS[yypt-4 : yypt+1] 3144 //line sql.y:1508 3145 { 3146 yyVAL.str = ShareModeStr 3147 } 3148 case 285: 3149 yyDollar = yyS[yypt-2 : yypt+1] 3150 //line sql.y:1521 3151 { 3152 yyVAL.ins = &Insert{Rows: yyDollar[2].values} 3153 } 3154 case 286: 3155 yyDollar = yyS[yypt-1 : yypt+1] 3156 //line sql.y:1525 3157 { 3158 yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt} 3159 } 3160 case 287: 3161 yyDollar = yyS[yypt-3 : yypt+1] 3162 //line sql.y:1529 3163 { 3164 // Drop the redundant parenthesis. 3165 yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt} 3166 } 3167 case 288: 3168 yyDollar = yyS[yypt-5 : yypt+1] 3169 //line sql.y:1534 3170 { 3171 yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values} 3172 } 3173 case 289: 3174 yyDollar = yyS[yypt-4 : yypt+1] 3175 //line sql.y:1538 3176 { 3177 yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt} 3178 } 3179 case 290: 3180 yyDollar = yyS[yypt-6 : yypt+1] 3181 //line sql.y:1542 3182 { 3183 // Drop the redundant parenthesis. 3184 yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt} 3185 } 3186 case 291: 3187 yyDollar = yyS[yypt-1 : yypt+1] 3188 //line sql.y:1549 3189 { 3190 yyVAL.columns = Columns{yyDollar[1].colIdent} 3191 } 3192 case 292: 3193 yyDollar = yyS[yypt-3 : yypt+1] 3194 //line sql.y:1553 3195 { 3196 yyVAL.columns = Columns{yyDollar[3].colIdent} 3197 } 3198 case 293: 3199 yyDollar = yyS[yypt-3 : yypt+1] 3200 //line sql.y:1557 3201 { 3202 yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) 3203 } 3204 case 294: 3205 yyDollar = yyS[yypt-5 : yypt+1] 3206 //line sql.y:1561 3207 { 3208 yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent) 3209 } 3210 case 295: 3211 yyDollar = yyS[yypt-0 : yypt+1] 3212 //line sql.y:1566 3213 { 3214 yyVAL.updateExprs = nil 3215 } 3216 case 296: 3217 yyDollar = yyS[yypt-5 : yypt+1] 3218 //line sql.y:1570 3219 { 3220 yyVAL.updateExprs = yyDollar[5].updateExprs 3221 } 3222 case 297: 3223 yyDollar = yyS[yypt-1 : yypt+1] 3224 //line sql.y:1576 3225 { 3226 yyVAL.values = Values{yyDollar[1].valTuple} 3227 } 3228 case 298: 3229 yyDollar = yyS[yypt-3 : yypt+1] 3230 //line sql.y:1580 3231 { 3232 yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple) 3233 } 3234 case 299: 3235 yyDollar = yyS[yypt-1 : yypt+1] 3236 //line sql.y:1586 3237 { 3238 yyVAL.valTuple = yyDollar[1].valTuple 3239 } 3240 case 300: 3241 yyDollar = yyS[yypt-2 : yypt+1] 3242 //line sql.y:1590 3243 { 3244 yyVAL.valTuple = ValTuple{} 3245 } 3246 case 301: 3247 yyDollar = yyS[yypt-3 : yypt+1] 3248 //line sql.y:1596 3249 { 3250 yyVAL.valTuple = ValTuple(yyDollar[2].exprs) 3251 } 3252 case 302: 3253 yyDollar = yyS[yypt-1 : yypt+1] 3254 //line sql.y:1602 3255 { 3256 if len(yyDollar[1].valTuple) == 1 { 3257 yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]} 3258 } else { 3259 yyVAL.expr = yyDollar[1].valTuple 3260 } 3261 } 3262 case 303: 3263 yyDollar = yyS[yypt-1 : yypt+1] 3264 //line sql.y:1612 3265 { 3266 yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr} 3267 } 3268 case 304: 3269 yyDollar = yyS[yypt-3 : yypt+1] 3270 //line sql.y:1616 3271 { 3272 yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr) 3273 } 3274 case 305: 3275 yyDollar = yyS[yypt-3 : yypt+1] 3276 //line sql.y:1622 3277 { 3278 yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr} 3279 } 3280 case 308: 3281 yyDollar = yyS[yypt-0 : yypt+1] 3282 //line sql.y:1631 3283 { 3284 yyVAL.byt = 0 3285 } 3286 case 309: 3287 yyDollar = yyS[yypt-2 : yypt+1] 3288 //line sql.y:1633 3289 { 3290 yyVAL.byt = 1 3291 } 3292 case 310: 3293 yyDollar = yyS[yypt-0 : yypt+1] 3294 //line sql.y:1636 3295 { 3296 yyVAL.empty = struct{}{} 3297 } 3298 case 311: 3299 yyDollar = yyS[yypt-3 : yypt+1] 3300 //line sql.y:1638 3301 { 3302 yyVAL.empty = struct{}{} 3303 } 3304 case 312: 3305 yyDollar = yyS[yypt-0 : yypt+1] 3306 //line sql.y:1641 3307 { 3308 yyVAL.str = "" 3309 } 3310 case 313: 3311 yyDollar = yyS[yypt-1 : yypt+1] 3312 //line sql.y:1643 3313 { 3314 yyVAL.str = IgnoreStr 3315 } 3316 case 314: 3317 yyDollar = yyS[yypt-1 : yypt+1] 3318 //line sql.y:1647 3319 { 3320 yyVAL.empty = struct{}{} 3321 } 3322 case 315: 3323 yyDollar = yyS[yypt-1 : yypt+1] 3324 //line sql.y:1649 3325 { 3326 yyVAL.empty = struct{}{} 3327 } 3328 case 316: 3329 yyDollar = yyS[yypt-1 : yypt+1] 3330 //line sql.y:1651 3331 { 3332 yyVAL.empty = struct{}{} 3333 } 3334 case 317: 3335 yyDollar = yyS[yypt-1 : yypt+1] 3336 //line sql.y:1653 3337 { 3338 yyVAL.empty = struct{}{} 3339 } 3340 case 318: 3341 yyDollar = yyS[yypt-1 : yypt+1] 3342 //line sql.y:1655 3343 { 3344 yyVAL.empty = struct{}{} 3345 } 3346 case 319: 3347 yyDollar = yyS[yypt-1 : yypt+1] 3348 //line sql.y:1657 3349 { 3350 yyVAL.empty = struct{}{} 3351 } 3352 case 320: 3353 yyDollar = yyS[yypt-1 : yypt+1] 3354 //line sql.y:1659 3355 { 3356 yyVAL.empty = struct{}{} 3357 } 3358 case 321: 3359 yyDollar = yyS[yypt-0 : yypt+1] 3360 //line sql.y:1662 3361 { 3362 yyVAL.empty = struct{}{} 3363 } 3364 case 322: 3365 yyDollar = yyS[yypt-1 : yypt+1] 3366 //line sql.y:1664 3367 { 3368 yyVAL.empty = struct{}{} 3369 } 3370 case 323: 3371 yyDollar = yyS[yypt-1 : yypt+1] 3372 //line sql.y:1666 3373 { 3374 yyVAL.empty = struct{}{} 3375 } 3376 case 324: 3377 yyDollar = yyS[yypt-1 : yypt+1] 3378 //line sql.y:1670 3379 { 3380 yyVAL.empty = struct{}{} 3381 } 3382 case 325: 3383 yyDollar = yyS[yypt-1 : yypt+1] 3384 //line sql.y:1672 3385 { 3386 yyVAL.empty = struct{}{} 3387 } 3388 case 326: 3389 yyDollar = yyS[yypt-0 : yypt+1] 3390 //line sql.y:1675 3391 { 3392 yyVAL.empty = struct{}{} 3393 } 3394 case 327: 3395 yyDollar = yyS[yypt-1 : yypt+1] 3396 //line sql.y:1677 3397 { 3398 yyVAL.empty = struct{}{} 3399 } 3400 case 328: 3401 yyDollar = yyS[yypt-1 : yypt+1] 3402 //line sql.y:1679 3403 { 3404 yyVAL.empty = struct{}{} 3405 } 3406 case 329: 3407 yyDollar = yyS[yypt-0 : yypt+1] 3408 //line sql.y:1682 3409 { 3410 yyVAL.empty = struct{}{} 3411 } 3412 case 330: 3413 yyDollar = yyS[yypt-2 : yypt+1] 3414 //line sql.y:1684 3415 { 3416 yyVAL.empty = struct{}{} 3417 } 3418 case 331: 3419 yyDollar = yyS[yypt-1 : yypt+1] 3420 //line sql.y:1688 3421 { 3422 yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) 3423 } 3424 case 332: 3425 yyDollar = yyS[yypt-1 : yypt+1] 3426 //line sql.y:1692 3427 { 3428 yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) 3429 } 3430 case 334: 3431 yyDollar = yyS[yypt-1 : yypt+1] 3432 //line sql.y:1699 3433 { 3434 yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) 3435 } 3436 case 335: 3437 yyDollar = yyS[yypt-1 : yypt+1] 3438 //line sql.y:1705 3439 { 3440 yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) 3441 } 3442 case 336: 3443 yyDollar = yyS[yypt-1 : yypt+1] 3444 //line sql.y:1709 3445 { 3446 yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) 3447 } 3448 case 338: 3449 yyDollar = yyS[yypt-1 : yypt+1] 3450 //line sql.y:1716 3451 { 3452 yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) 3453 } 3454 case 445: 3455 yyDollar = yyS[yypt-1 : yypt+1] 3456 //line sql.y:1847 3457 { 3458 if incNesting(yylex) { 3459 yylex.Error("max nesting level reached") 3460 return 1 3461 } 3462 } 3463 case 446: 3464 yyDollar = yyS[yypt-1 : yypt+1] 3465 //line sql.y:1856 3466 { 3467 decNesting(yylex) 3468 } 3469 case 447: 3470 yyDollar = yyS[yypt-0 : yypt+1] 3471 //line sql.y:1861 3472 { 3473 forceEOF(yylex) 3474 } 3475 case 448: 3476 yyDollar = yyS[yypt-0 : yypt+1] 3477 //line sql.y:1866 3478 { 3479 forceEOF(yylex) 3480 } 3481 case 449: 3482 yyDollar = yyS[yypt-1 : yypt+1] 3483 //line sql.y:1870 3484 { 3485 forceEOF(yylex) 3486 } 3487 case 450: 3488 yyDollar = yyS[yypt-1 : yypt+1] 3489 //line sql.y:1874 3490 { 3491 forceEOF(yylex) 3492 } 3493 } 3494 goto yystack /* stack new state and value */ 3495 }