github.com/mithrandie/csvq@v1.18.1/lib/parser/parser.go (about) 1 // Code generated by goyacc -o lib/parser/parser.go -v lib/parser/parser.output lib/parser/parser.y. DO NOT EDIT. 2 3 //line lib/parser/parser.y:2 4 package parser 5 6 import __yyfmt__ "fmt" 7 8 //line lib/parser/parser.y:2 9 10 import ( 11 "strconv" 12 "strings" 13 14 "github.com/mithrandie/csvq/lib/value" 15 ) 16 17 //line lib/parser/parser.y:12 18 type yySymType struct { 19 yys int 20 program []Statement 21 statement Statement 22 queryexpr QueryExpression 23 queryexprs []QueryExpression 24 expression Expression 25 expressions []Expression 26 identifier Identifier 27 table Table 28 variable Variable 29 variables []Variable 30 varassign VariableAssignment 31 varassigns []VariableAssignment 32 envvar EnvironmentVariable 33 flag Flag 34 updateset UpdateSet 35 updatesets []UpdateSet 36 columndef ColumnDefault 37 columndefs []ColumnDefault 38 elseif []ElseIf 39 elseexpr Else 40 casewhen []CaseWhen 41 caseelse CaseElse 42 fetchpos FetchPosition 43 replaceval ReplaceValue 44 replacevals []ReplaceValue 45 token Token 46 bool bool 47 } 48 49 const IDENTIFIER = 57346 50 const STRING = 57347 51 const INTEGER = 57348 52 const FLOAT = 57349 53 const BOOLEAN = 57350 54 const TERNARY = 57351 55 const DATETIME = 57352 56 const VARIABLE = 57353 57 const FLAG = 57354 58 const ENVIRONMENT_VARIABLE = 57355 59 const RUNTIME_INFORMATION = 57356 60 const EXTERNAL_COMMAND = 57357 61 const PLACEHOLDER = 57358 62 const CONSTANT = 57359 63 const TABLE_FUNCTION = 57360 64 const URL = 57361 65 const SELECT = 57362 66 const FROM = 57363 67 const UPDATE = 57364 68 const SET = 57365 69 const UNSET = 57366 70 const DELETE = 57367 71 const WHERE = 57368 72 const INSERT = 57369 73 const INTO = 57370 74 const VALUES = 57371 75 const REPLACE = 57372 76 const AS = 57373 77 const DUAL = 57374 78 const STDIN = 57375 79 const RECURSIVE = 57376 80 const CREATE = 57377 81 const ADD = 57378 82 const DROP = 57379 83 const ALTER = 57380 84 const TABLE = 57381 85 const FIRST = 57382 86 const LAST = 57383 87 const AFTER = 57384 88 const BEFORE = 57385 89 const DEFAULT = 57386 90 const RENAME = 57387 91 const TO = 57388 92 const VIEW = 57389 93 const ORDER = 57390 94 const GROUP = 57391 95 const HAVING = 57392 96 const BY = 57393 97 const ASC = 57394 98 const DESC = 57395 99 const LIMIT = 57396 100 const OFFSET = 57397 101 const PERCENT = 57398 102 const JOIN = 57399 103 const INNER = 57400 104 const OUTER = 57401 105 const LEFT = 57402 106 const RIGHT = 57403 107 const FULL = 57404 108 const CROSS = 57405 109 const ON = 57406 110 const USING = 57407 111 const NATURAL = 57408 112 const LATERAL = 57409 113 const UNION = 57410 114 const INTERSECT = 57411 115 const EXCEPT = 57412 116 const ALL = 57413 117 const ANY = 57414 118 const EXISTS = 57415 119 const IN = 57416 120 const AND = 57417 121 const OR = 57418 122 const NOT = 57419 123 const BETWEEN = 57420 124 const LIKE = 57421 125 const IS = 57422 126 const NULL = 57423 127 const DISTINCT = 57424 128 const WITH = 57425 129 const RANGE = 57426 130 const UNBOUNDED = 57427 131 const PRECEDING = 57428 132 const FOLLOWING = 57429 133 const CURRENT = 57430 134 const ROW = 57431 135 const CASE = 57432 136 const IF = 57433 137 const ELSEIF = 57434 138 const WHILE = 57435 139 const WHEN = 57436 140 const THEN = 57437 141 const ELSE = 57438 142 const DO = 57439 143 const END = 57440 144 const DECLARE = 57441 145 const CURSOR = 57442 146 const FOR = 57443 147 const FETCH = 57444 148 const OPEN = 57445 149 const CLOSE = 57446 150 const DISPOSE = 57447 151 const PREPARE = 57448 152 const NEXT = 57449 153 const PRIOR = 57450 154 const ABSOLUTE = 57451 155 const RELATIVE = 57452 156 const SEPARATOR = 57453 157 const PARTITION = 57454 158 const OVER = 57455 159 const COMMIT = 57456 160 const ROLLBACK = 57457 161 const CONTINUE = 57458 162 const BREAK = 57459 163 const EXIT = 57460 164 const ECHO = 57461 165 const PRINT = 57462 166 const PRINTF = 57463 167 const SOURCE = 57464 168 const EXECUTE = 57465 169 const CHDIR = 57466 170 const PWD = 57467 171 const RELOAD = 57468 172 const REMOVE = 57469 173 const SYNTAX = 57470 174 const TRIGGER = 57471 175 const FUNCTION = 57472 176 const AGGREGATE = 57473 177 const BEGIN = 57474 178 const RETURN = 57475 179 const IGNORE = 57476 180 const WITHIN = 57477 181 const VAR = 57478 182 const SHOW = 57479 183 const TIES = 57480 184 const NULLS = 57481 185 const ROWS = 57482 186 const ONLY = 57483 187 const CSV = 57484 188 const JSON = 57485 189 const JSONL = 57486 190 const FIXED = 57487 191 const LTSV = 57488 192 const CSV_INLINE = 57489 193 const JSON_INLINE = 57490 194 const JSON_TABLE = 57491 195 const JSON_ROW = 57492 196 const SUBSTRING = 57493 197 const COUNT = 57494 198 const JSON_OBJECT = 57495 199 const AGGREGATE_FUNCTION = 57496 200 const LIST_FUNCTION = 57497 201 const ANALYTIC_FUNCTION = 57498 202 const FUNCTION_NTH = 57499 203 const FUNCTION_WITH_INS = 57500 204 const COMPARISON_OP = 57501 205 const STRING_OP = 57502 206 const SUBSTITUTION_OP = 57503 207 const UMINUS = 57504 208 const UPLUS = 57505 209 210 var yyToknames = [...]string{ 211 "$end", 212 "error", 213 "$unk", 214 "IDENTIFIER", 215 "STRING", 216 "INTEGER", 217 "FLOAT", 218 "BOOLEAN", 219 "TERNARY", 220 "DATETIME", 221 "VARIABLE", 222 "FLAG", 223 "ENVIRONMENT_VARIABLE", 224 "RUNTIME_INFORMATION", 225 "EXTERNAL_COMMAND", 226 "PLACEHOLDER", 227 "CONSTANT", 228 "TABLE_FUNCTION", 229 "URL", 230 "SELECT", 231 "FROM", 232 "UPDATE", 233 "SET", 234 "UNSET", 235 "DELETE", 236 "WHERE", 237 "INSERT", 238 "INTO", 239 "VALUES", 240 "REPLACE", 241 "AS", 242 "DUAL", 243 "STDIN", 244 "RECURSIVE", 245 "CREATE", 246 "ADD", 247 "DROP", 248 "ALTER", 249 "TABLE", 250 "FIRST", 251 "LAST", 252 "AFTER", 253 "BEFORE", 254 "DEFAULT", 255 "RENAME", 256 "TO", 257 "VIEW", 258 "ORDER", 259 "GROUP", 260 "HAVING", 261 "BY", 262 "ASC", 263 "DESC", 264 "LIMIT", 265 "OFFSET", 266 "PERCENT", 267 "JOIN", 268 "INNER", 269 "OUTER", 270 "LEFT", 271 "RIGHT", 272 "FULL", 273 "CROSS", 274 "ON", 275 "USING", 276 "NATURAL", 277 "LATERAL", 278 "UNION", 279 "INTERSECT", 280 "EXCEPT", 281 "ALL", 282 "ANY", 283 "EXISTS", 284 "IN", 285 "AND", 286 "OR", 287 "NOT", 288 "BETWEEN", 289 "LIKE", 290 "IS", 291 "NULL", 292 "DISTINCT", 293 "WITH", 294 "RANGE", 295 "UNBOUNDED", 296 "PRECEDING", 297 "FOLLOWING", 298 "CURRENT", 299 "ROW", 300 "CASE", 301 "IF", 302 "ELSEIF", 303 "WHILE", 304 "WHEN", 305 "THEN", 306 "ELSE", 307 "DO", 308 "END", 309 "DECLARE", 310 "CURSOR", 311 "FOR", 312 "FETCH", 313 "OPEN", 314 "CLOSE", 315 "DISPOSE", 316 "PREPARE", 317 "NEXT", 318 "PRIOR", 319 "ABSOLUTE", 320 "RELATIVE", 321 "SEPARATOR", 322 "PARTITION", 323 "OVER", 324 "COMMIT", 325 "ROLLBACK", 326 "CONTINUE", 327 "BREAK", 328 "EXIT", 329 "ECHO", 330 "PRINT", 331 "PRINTF", 332 "SOURCE", 333 "EXECUTE", 334 "CHDIR", 335 "PWD", 336 "RELOAD", 337 "REMOVE", 338 "SYNTAX", 339 "TRIGGER", 340 "FUNCTION", 341 "AGGREGATE", 342 "BEGIN", 343 "RETURN", 344 "IGNORE", 345 "WITHIN", 346 "VAR", 347 "SHOW", 348 "TIES", 349 "NULLS", 350 "ROWS", 351 "ONLY", 352 "CSV", 353 "JSON", 354 "JSONL", 355 "FIXED", 356 "LTSV", 357 "CSV_INLINE", 358 "JSON_INLINE", 359 "JSON_TABLE", 360 "JSON_ROW", 361 "SUBSTRING", 362 "COUNT", 363 "JSON_OBJECT", 364 "AGGREGATE_FUNCTION", 365 "LIST_FUNCTION", 366 "ANALYTIC_FUNCTION", 367 "FUNCTION_NTH", 368 "FUNCTION_WITH_INS", 369 "COMPARISON_OP", 370 "STRING_OP", 371 "SUBSTITUTION_OP", 372 "UMINUS", 373 "UPLUS", 374 "';'", 375 "'='", 376 "'-'", 377 "'+'", 378 "'*'", 379 "'/'", 380 "'%'", 381 "'!'", 382 "'('", 383 "')'", 384 "','", 385 "'.'", 386 } 387 388 var yyStatenames = [...]string{} 389 390 const yyEofCode = 1 391 const yyErrCode = 2 392 const yyInitialStackSize = 16 393 394 //line lib/parser/parser.y:2837 395 396 func SetDebugLevel(level int, verbose bool) { 397 yyDebug = level 398 yyErrorVerbose = verbose 399 } 400 401 func Parse(s string, sourceFile string, forPrepared bool, ansiQuotes bool) ([]Statement, int, error) { 402 l := new(Lexer) 403 l.Init(s, sourceFile, forPrepared, ansiQuotes) 404 yyParse(l) 405 return l.program, l.HolderNumber(), l.err 406 } 407 408 //line yacctab:1 409 var yyExca = [...]int{ 410 -1, 0, 411 1, 1, 412 -2, 221, 413 -1, 1, 414 1, -1, 415 -2, 0, 416 -1, 21, 417 1, 26, 418 92, 26, 419 94, 26, 420 96, 26, 421 98, 26, 422 164, 26, 423 -2, 240, 424 -1, 27, 425 68, 189, 426 69, 189, 427 70, 189, 428 -2, 201, 429 -1, 35, 430 1, 78, 431 92, 78, 432 94, 78, 433 96, 78, 434 98, 78, 435 164, 78, 436 -2, 253, 437 -1, 61, 438 68, 190, 439 69, 190, 440 70, 190, 441 -2, 245, 442 -1, 123, 443 22, 221, 444 25, 221, 445 27, 221, 446 -2, 1, 447 -1, 137, 448 68, 189, 449 69, 189, 450 70, 189, 451 -2, 201, 452 -1, 177, 453 1, 123, 454 92, 123, 455 94, 123, 456 96, 123, 457 98, 123, 458 164, 123, 459 -2, 234, 460 -1, 178, 461 1, 164, 462 92, 164, 463 94, 164, 464 96, 164, 465 98, 164, 466 164, 164, 467 -2, 240, 468 -1, 183, 469 1, 157, 470 92, 157, 471 94, 157, 472 96, 157, 473 98, 157, 474 164, 157, 475 -2, 240, 476 -1, 184, 477 1, 158, 478 92, 158, 479 94, 158, 480 96, 158, 481 98, 158, 482 164, 158, 483 -2, 240, 484 -1, 185, 485 1, 159, 486 92, 159, 487 94, 159, 488 96, 159, 489 98, 159, 490 164, 159, 491 -2, 240, 492 -1, 186, 493 1, 162, 494 92, 162, 495 94, 162, 496 96, 162, 497 98, 162, 498 164, 162, 499 -2, 234, 500 -1, 187, 501 1, 163, 502 92, 163, 503 94, 163, 504 96, 163, 505 98, 163, 506 164, 163, 507 -2, 240, 508 -1, 190, 509 1, 170, 510 92, 170, 511 94, 170, 512 96, 170, 513 98, 170, 514 164, 170, 515 -2, 234, 516 -1, 191, 517 1, 171, 518 92, 171, 519 94, 171, 520 96, 171, 521 98, 171, 522 164, 171, 523 -2, 240, 524 -1, 257, 525 92, 1, 526 96, 1, 527 98, 1, 528 -2, 221, 529 -1, 282, 530 172, 362, 531 -2, 489, 532 -1, 283, 533 172, 363, 534 -2, 490, 535 -1, 284, 536 172, 364, 537 -2, 491, 538 -1, 285, 539 172, 365, 540 -2, 492, 541 -1, 286, 542 172, 366, 543 -2, 493, 544 -1, 297, 545 57, 510, 546 -2, 425, 547 -1, 334, 548 4, 145, 549 138, 145, 550 139, 145, 551 140, 145, 552 142, 145, 553 143, 145, 554 144, 145, 555 145, 145, 556 146, 145, 557 -2, 240, 558 -1, 335, 559 4, 146, 560 138, 146, 561 139, 146, 562 140, 146, 563 142, 146, 564 143, 146, 565 144, 146, 566 145, 146, 567 146, 146, 568 -2, 240, 569 -1, 345, 570 1, 175, 571 92, 175, 572 94, 175, 573 96, 175, 574 98, 175, 575 164, 175, 576 -2, 240, 577 -1, 352, 578 98, 4, 579 -2, 221, 580 -1, 371, 581 74, 0, 582 78, 0, 583 79, 0, 584 80, 0, 585 159, 0, 586 165, 0, 587 -2, 281, 588 -1, 372, 589 74, 0, 590 78, 0, 591 79, 0, 592 80, 0, 593 159, 0, 594 165, 0, 595 -2, 283, 596 -1, 381, 597 74, 0, 598 78, 0, 599 79, 0, 600 80, 0, 601 159, 0, 602 165, 0, 603 -2, 293, 604 -1, 420, 605 98, 1, 606 -2, 221, 607 -1, 427, 608 1, 211, 609 55, 211, 610 83, 211, 611 92, 211, 612 94, 211, 613 96, 211, 614 98, 211, 615 101, 211, 616 141, 211, 617 164, 211, 618 173, 211, 619 -2, 240, 620 -1, 428, 621 1, 216, 622 92, 216, 623 94, 216, 624 96, 216, 625 98, 216, 626 101, 216, 627 102, 216, 628 164, 216, 629 173, 216, 630 -2, 240, 631 -1, 459, 632 68, 190, 633 69, 190, 634 70, 190, 635 -2, 382, 636 -1, 480, 637 1, 80, 638 92, 80, 639 94, 80, 640 96, 80, 641 98, 80, 642 164, 80, 643 -2, 240, 644 -1, 481, 645 1, 81, 646 92, 81, 647 94, 81, 648 96, 81, 649 98, 81, 650 164, 81, 651 -2, 234, 652 -1, 482, 653 1, 82, 654 92, 82, 655 94, 82, 656 96, 82, 657 98, 82, 658 164, 82, 659 -2, 240, 660 -1, 483, 661 1, 83, 662 92, 83, 663 94, 83, 664 96, 83, 665 98, 83, 666 164, 83, 667 -2, 234, 668 -1, 484, 669 1, 150, 670 92, 150, 671 94, 150, 672 96, 150, 673 98, 150, 674 164, 150, 675 -2, 234, 676 -1, 485, 677 1, 151, 678 92, 151, 679 94, 151, 680 96, 151, 681 98, 151, 682 164, 151, 683 -2, 240, 684 -1, 486, 685 1, 152, 686 92, 152, 687 94, 152, 688 96, 152, 689 98, 152, 690 164, 152, 691 -2, 234, 692 -1, 487, 693 1, 153, 694 92, 153, 695 94, 153, 696 96, 153, 697 98, 153, 698 164, 153, 699 -2, 240, 700 -1, 490, 701 1, 118, 702 92, 118, 703 94, 118, 704 96, 118, 705 98, 118, 706 164, 118, 707 174, 118, 708 -2, 240, 709 -1, 495, 710 1, 423, 711 92, 423, 712 94, 423, 713 96, 423, 714 98, 423, 715 164, 423, 716 -2, 240, 717 -1, 502, 718 1, 176, 719 92, 176, 720 94, 176, 721 96, 176, 722 98, 176, 723 164, 176, 724 -2, 240, 725 -1, 534, 726 74, 0, 727 78, 0, 728 79, 0, 729 80, 0, 730 159, 0, 731 165, 0, 732 -2, 294, 733 -1, 560, 734 98, 1, 735 -2, 221, 736 -1, 567, 737 94, 1, 738 96, 1, 739 98, 1, 740 -2, 221, 741 -1, 597, 742 173, 358, 743 174, 358, 744 -2, 234, 745 -1, 615, 746 57, 510, 747 -2, 385, 748 -1, 655, 749 22, 221, 750 25, 221, 751 27, 221, 752 -2, 4, 753 -1, 658, 754 98, 4, 755 -2, 221, 756 -1, 659, 757 98, 4, 758 -2, 221, 759 -1, 684, 760 173, 263, 761 174, 263, 762 -2, 190, 763 -1, 760, 764 92, 4, 765 96, 4, 766 98, 4, 767 -2, 221, 768 -1, 765, 769 98, 4, 770 -2, 221, 771 -1, 766, 772 98, 4, 773 -2, 221, 774 -1, 792, 775 92, 1, 776 96, 1, 777 98, 1, 778 -2, 221, 779 -1, 829, 780 20, 521, 781 83, 521, 782 172, 521, 783 -2, 87, 784 -1, 837, 785 1, 95, 786 92, 95, 787 94, 95, 788 96, 95, 789 98, 95, 790 164, 95, 791 -2, 234, 792 -1, 838, 793 1, 96, 794 92, 96, 795 94, 96, 796 96, 96, 797 98, 96, 798 164, 96, 799 -2, 240, 800 -1, 842, 801 98, 6, 802 -2, 221, 803 -1, 848, 804 173, 129, 805 174, 129, 806 -2, 240, 807 -1, 853, 808 98, 4, 809 -2, 221, 810 -1, 923, 811 98, 6, 812 -2, 221, 813 -1, 924, 814 98, 6, 815 -2, 221, 816 -1, 928, 817 98, 4, 818 -2, 221, 819 -1, 932, 820 94, 4, 821 96, 4, 822 98, 4, 823 -2, 221, 824 -1, 973, 825 22, 221, 826 25, 221, 827 27, 221, 828 -2, 6, 829 -1, 980, 830 164, 62, 831 -2, 240, 832 -1, 1014, 833 92, 6, 834 96, 6, 835 98, 6, 836 -2, 221, 837 -1, 1017, 838 98, 8, 839 -2, 221, 840 -1, 1024, 841 98, 6, 842 -2, 221, 843 -1, 1027, 844 92, 4, 845 96, 4, 846 98, 4, 847 -2, 221, 848 -1, 1041, 849 98, 6, 850 -2, 221, 851 -1, 1066, 852 98, 6, 853 -2, 221, 854 -1, 1070, 855 94, 6, 856 96, 6, 857 98, 6, 858 -2, 221, 859 -1, 1072, 860 22, 221, 861 25, 221, 862 27, 221, 863 -2, 8, 864 -1, 1075, 865 98, 8, 866 -2, 221, 867 -1, 1076, 868 98, 8, 869 -2, 221, 870 -1, 1095, 871 92, 8, 872 96, 8, 873 98, 8, 874 -2, 221, 875 -1, 1100, 876 98, 8, 877 -2, 221, 878 -1, 1101, 879 98, 8, 880 -2, 221, 881 -1, 1112, 882 92, 6, 883 96, 6, 884 98, 6, 885 -2, 221, 886 -1, 1117, 887 98, 8, 888 -2, 221, 889 -1, 1132, 890 98, 8, 891 -2, 221, 892 -1, 1136, 893 94, 8, 894 96, 8, 895 98, 8, 896 -2, 221, 897 -1, 1156, 898 92, 8, 899 96, 8, 900 98, 8, 901 -2, 221, 902 } 903 904 const yyPrivate = 57344 905 906 const yyLast = 4162 907 908 var yyAct = [...]int{ 909 126, 61, 1131, 1096, 1130, 1065, 1104, 1043, 1064, 511, 910 927, 429, 503, 761, 1015, 203, 926, 68, 813, 623, 911 311, 132, 559, 863, 204, 734, 739, 265, 682, 143, 912 643, 939, 301, 862, 626, 510, 26, 646, 292, 605, 913 645, 589, 614, 697, 266, 262, 146, 494, 861, 639, 914 99, 156, 156, 573, 159, 488, 610, 263, 275, 135, 915 740, 444, 558, 364, 509, 25, 449, 448, 296, 367, 916 289, 273, 85, 84, 188, 61, 550, 358, 1, 27, 917 247, 211, 236, 72, 153, 235, 337, 303, 255, 1018, 918 236, 112, 78, 528, 202, 197, 235, 215, 1054, 353, 919 343, 250, 236, 901, 902, 235, 111, 80, 137, 80, 920 903, 904, 887, 888, 753, 754, 80, 517, 1061, 157, 921 122, 165, 710, 711, 61, 1037, 61, 833, 822, 786, 922 134, 21, 181, 452, 80, 453, 454, 455, 447, 751, 923 750, 450, 112, 959, 747, 143, 258, 731, 728, 305, 924 727, 712, 80, 261, 124, 80, 80, 707, 80, 26, 925 80, 905, 653, 294, 884, 295, 650, 103, 580, 270, 926 79, 526, 79, 354, 178, 442, 194, 179, 180, 79, 927 183, 184, 185, 187, 436, 191, 194, 362, 25, 354, 928 317, 1036, 291, 236, 708, 1034, 235, 79, 354, 354, 929 143, 290, 256, 1033, 1032, 196, 112, 201, 452, 342, 930 453, 454, 455, 447, 1030, 79, 450, 354, 79, 79, 931 357, 79, 356, 79, 380, 113, 114, 115, 274, 116, 932 117, 118, 119, 120, 80, 122, 140, 913, 312, 142, 933 315, 139, 1012, 121, 141, 1011, 380, 380, 627, 451, 934 1010, 80, 316, 1009, 21, 1005, 196, 1000, 61, 144, 935 586, 144, 599, 505, 3, 379, 524, 998, 144, 227, 936 226, 228, 229, 230, 378, 997, 113, 114, 115, 137, 937 116, 117, 118, 119, 120, 996, 144, 360, 361, 305, 938 121, 995, 297, 26, 971, 952, 405, 406, 432, 950, 939 1050, 373, 398, 459, 144, 334, 335, 144, 144, 144, 940 144, 150, 379, 80, 79, 949, 938, 925, 433, 889, 941 886, 859, 25, 619, 345, 835, 127, 35, 832, 642, 942 443, 829, 826, 810, 394, 156, 416, 399, 400, 401, 943 113, 114, 115, 803, 116, 117, 118, 119, 120, 785, 944 768, 749, 746, 61, 730, 709, 675, 440, 674, 143, 945 434, 143, 143, 673, 672, 501, 670, 636, 548, 600, 946 515, 547, 295, 546, 633, 439, 541, 380, 539, 553, 947 61, 537, 477, 380, 380, 463, 144, 3, 21, 625, 948 499, 500, 417, 493, 350, 424, 464, 112, 427, 428, 949 197, 551, 473, 587, 1049, 351, 217, 525, 380, 552, 950 552, 552, 227, 226, 228, 229, 230, 349, 103, 961, 951 953, 61, 951, 496, 497, 947, 937, 533, 907, 498, 952 893, 871, 869, 535, 536, 143, 868, 867, 520, 865, 953 520, 520, 305, 839, 523, 782, 530, 529, 780, 779, 954 35, 519, 305, 521, 522, 149, 26, 770, 549, 480, 955 482, 485, 487, 490, 713, 144, 685, 662, 490, 495, 956 544, 622, 585, 495, 495, 479, 143, 502, 143, 601, 957 228, 229, 230, 21, 617, 25, 554, 555, 478, 462, 958 438, 437, 556, 154, 149, 260, 648, 595, 254, 563, 959 244, 290, 243, 465, 242, 604, 241, 652, 593, 295, 960 602, 240, 239, 603, 238, 237, 331, 613, 612, 1072, 961 973, 3, 655, 476, 274, 123, 249, 318, 194, 629, 962 657, 113, 114, 115, 411, 116, 117, 118, 119, 120, 963 574, 699, 591, 329, 1060, 783, 578, 781, 701, 145, 964 798, 21, 684, 679, 1024, 924, 778, 923, 842, 677, 965 877, 61, 570, 875, 259, 630, 776, 864, 61, 596, 966 426, 1101, 624, 575, 680, 663, 632, 634, 777, 154, 967 678, 320, 775, 687, 35, 103, 774, 380, 143, 771, 968 664, 745, 700, 621, 676, 458, 26, 579, 666, 698, 969 669, 1004, 683, 26, 962, 584, 412, 705, 245, 305, 970 305, 475, 686, 425, 246, 704, 225, 305, 1155, 1145, 971 714, 161, 690, 1140, 576, 25, 1139, 143, 718, 571, 972 1134, 1120, 25, 1119, 319, 330, 706, 683, 656, 691, 973 1111, 715, 729, 1087, 716, 1079, 695, 703, 1071, 726, 974 172, 173, 1068, 742, 1026, 1023, 61, 1022, 984, 61, 975 61, 972, 328, 143, 321, 322, 936, 935, 759, 930, 976 725, 763, 764, 856, 160, 732, 855, 791, 689, 35, 977 162, 654, 380, 564, 3, 562, 1133, 1100, 271, 1076, 978 1132, 21, 692, 1075, 624, 1067, 1017, 766, 21, 1066, 979 696, 757, 765, 659, 163, 929, 755, 624, 658, 928, 980 1132, 561, 352, 1117, 310, 560, 248, 170, 171, 174, 981 175, 305, 1066, 305, 305, 305, 1041, 928, 305, 624, 982 853, 560, 784, 809, 422, 420, 1156, 1136, 112, 1112, 983 624, 794, 797, 802, 615, 804, 1095, 35, 811, 805, 984 796, 828, 793, 812, 1070, 816, 1027, 1014, 28, 932, 985 617, 61, 792, 760, 567, 461, 61, 61, 648, 847, 986 823, 808, 648, 851, 257, 1158, 1114, 1097, 857, 858, 987 1029, 490, 1016, 795, 495, 850, 21, 380, 844, 21, 988 21, 845, 846, 61, 762, 418, 264, 841, 1152, 1151, 989 1138, 393, 395, 873, 143, 1137, 873, 402, 403, 404, 990 1093, 991, 990, 872, 591, 878, 876, 934, 933, 305, 991 624, 305, 305, 305, 3, 758, 1159, 143, 26, 874, 992 1133, 3, 1067, 199, 883, 894, 895, 683, 624, 891, 993 882, 143, 929, 61, 830, 831, 561, 1154, 1128, 1110, 994 1057, 896, 1025, 897, 61, 617, 880, 25, 909, 825, 995 910, 790, 314, 1149, 908, 900, 931, 1091, 1105, 1105, 996 1084, 881, 113, 114, 115, 838, 116, 117, 118, 119, 997 120, 472, 988, 848, 199, 380, 693, 35, 911, 1127, 998 143, 21, 1109, 854, 35, 873, 21, 21, 1125, 1126, 999 305, 719, 721, 199, 955, 948, 380, 1153, 1124, 143, 1000 1108, 956, 1107, 957, 942, 964, 944, 945, 946, 788, 1001 109, 216, 249, 21, 61, 61, 424, 969, 467, 61, 1002 1123, 681, 965, 61, 968, 683, 359, 978, 143, 977, 1003 975, 986, 1082, 963, 985, 989, 979, 1142, 1103, 1083, 1004 1106, 1106, 1085, 376, 1055, 1019, 683, 375, 377, 538, 1005 380, 518, 994, 408, 542, 543, 545, 407, 355, 628, 1006 410, 409, 209, 21, 61, 383, 382, 873, 890, 999, 1007 827, 1007, 35, 338, 21, 35, 35, 1002, 1006, 208, 1008 209, 210, 110, 814, 815, 1021, 332, 1020, 611, 821, 1009 1001, 724, 594, 1028, 452, 1031, 453, 454, 455, 447, 1010 683, 723, 450, 143, 624, 61, 817, 819, 61, 452, 1011 615, 453, 454, 455, 609, 61, 608, 1051, 61, 452, 1012 268, 453, 454, 267, 268, 993, 941, 143, 380, 607, 1013 1058, 269, 61, 606, 870, 445, 136, 940, 974, 744, 1014 743, 339, 976, 980, 21, 21, 3, 752, 741, 21, 1015 987, 199, 380, 21, 800, 801, 1063, 61, 624, 1080, 1016 1074, 61, 152, 61, 1088, 151, 61, 61, 69, 112, 1017 1094, 415, 1051, 1098, 1099, 1051, 1051, 35, 683, 214, 1018 1086, 983, 35, 35, 627, 860, 61, 735, 736, 737, 1019 738, 61, 61, 1115, 21, 1051, 915, 1113, 1121, 1122, 1020 1051, 1051, 683, 61, 898, 615, 164, 166, 61, 35, 1021 849, 843, 840, 748, 651, 1135, 491, 1051, 287, 272, 1022 1143, 293, 148, 61, 1035, 1144, 1146, 61, 199, 147, 1023 1147, 435, 1051, 920, 1150, 21, 1051, 1042, 21, 1008, 1024 702, 568, 148, 441, 1157, 21, 341, 61, 21, 340, 1025 854, 981, 982, 1161, 1160, 336, 1051, 104, 471, 35, 1026 107, 5, 21, 107, 104, 103, 207, 492, 1073, 313, 1027 35, 468, 469, 213, 71, 70, 155, 915, 915, 1116, 1028 470, 1040, 852, 199, 419, 10, 9, 21, 1090, 590, 1029 8, 21, 7, 21, 421, 65, 21, 21, 365, 299, 1030 298, 1013, 304, 113, 114, 115, 306, 116, 117, 118, 1031 119, 120, 276, 281, 920, 920, 21, 1141, 1118, 1102, 1032 1081, 21, 21, 1059, 199, 64, 199, 915, 94, 63, 1033 62, 67, 59, 21, 66, 1042, 198, 919, 21, 60, 1034 35, 35, 1039, 799, 581, 35, 430, 58, 212, 35, 1035 86, 577, 1056, 21, 1148, 572, 569, 21, 6, 20, 1036 19, 73, 169, 17, 920, 647, 807, 644, 915, 1069, 1037 16, 1045, 489, 15, 14, 133, 11, 21, 915, 1118, 1038 18, 13, 12, 1046, 916, 1044, 112, 198, 392, 914, 1039 35, 506, 504, 4, 1089, 915, 2, 0, 1092, 0, 1040 199, 0, 0, 0, 189, 920, 198, 0, 0, 0, 1041 0, 0, 0, 0, 0, 920, 0, 0, 919, 919, 1042 915, 0, 29, 0, 915, 195, 1045, 0, 0, 1045, 1043 1045, 35, 920, 0, 35, 0, 199, 0, 233, 234, 1044 1129, 35, 0, 0, 35, 0, 0, 0, 0, 1045, 1045 0, 138, 251, 252, 1045, 1045, 0, 920, 35, 0, 1046 0, 920, 112, 0, 0, 0, 915, 0, 919, 0, 1047 0, 1045, 0, 0, 0, 199, 195, 0, 0, 0, 1048 0, 0, 133, 35, 0, 0, 1045, 35, 0, 35, 1049 1045, 122, 35, 35, 0, 0, 0, 200, 0, 0, 1050 189, 0, 0, 920, 0, 0, 0, 0, 0, 919, 1051 1045, 199, 35, 0, 0, 0, 0, 35, 35, 919, 1052 113, 114, 115, 0, 116, 117, 118, 119, 120, 35, 1053 0, 0, 0, 0, 35, 0, 919, 0, 0, 0, 1054 0, 0, 0, 958, 112, 347, 0, 0, 200, 35, 1055 369, 0, 0, 35, 0, 0, 0, 966, 0, 967, 1056 0, 919, 0, 0, 198, 919, 366, 200, 370, 371, 1057 372, 457, 374, 35, 0, 381, 0, 384, 385, 386, 1058 387, 388, 389, 390, 0, 0, 0, 189, 396, 366, 1059 0, 0, 0, 189, 189, 189, 113, 114, 115, 0, 1060 116, 117, 118, 119, 120, 413, 0, 919, 0, 0, 1061 0, 189, 0, 0, 0, 423, 0, 0, 0, 0, 1062 431, 452, 200, 453, 454, 455, 447, 814, 815, 450, 1063 0, 0, 0, 0, 0, 0, 112, 0, 0, 0, 1064 0, 198, 0, 0, 446, 0, 0, 0, 0, 0, 1065 279, 278, 199, 288, 0, 0, 0, 89, 0, 0, 1066 0, 0, 0, 0, 0, 280, 0, 189, 0, 474, 1067 0, 0, 0, 0, 0, 199, 0, 0, 113, 114, 1068 115, 0, 116, 117, 118, 119, 120, 0, 0, 199, 1069 112, 0, 158, 0, 0, 189, 588, 167, 168, 0, 1070 176, 177, 0, 0, 279, 278, 182, 0, 0, 0, 1071 186, 0, 190, 0, 192, 193, 0, 0, 300, 280, 1072 0, 0, 0, 0, 0, 200, 532, 0, 534, 0, 1073 189, 0, 0, 0, 0, 0, 0, 637, 199, 641, 1074 0, 0, 0, 0, 0, 189, 0, 0, 0, 0, 1075 189, 189, 189, 616, 0, 0, 0, 199, 0, 0, 1076 0, 0, 0, 0, 0, 0, 253, 0, 0, 423, 1077 113, 114, 115, 565, 116, 117, 118, 119, 120, 0, 1078 0, 200, 0, 200, 200, 0, 199, 0, 189, 540, 1079 0, 0, 0, 0, 0, 0, 0, 0, 277, 0, 1080 277, 0, 200, 0, 0, 0, 277, 0, 277, 0, 1081 277, 0, 0, 198, 0, 0, 0, 0, 323, 324, 1082 326, 327, 0, 0, 113, 114, 115, 333, 282, 283, 1083 284, 285, 286, 307, 308, 309, 0, 0, 0, 0, 1084 0, 0, 223, 232, 231, 222, 221, 224, 220, 198, 1085 0, 0, 0, 0, 0, 0, 112, 200, 302, 133, 1086 0, 199, 0, 0, 107, 0, 112, 0, 0, 0, 1087 0, 363, 0, 368, 0, 0, 0, 366, 0, 0, 1088 279, 278, 667, 0, 0, 199, 0, 112, 733, 0, 1089 0, 671, 0, 391, 0, 280, 368, 0, 200, 0, 1090 200, 279, 278, 80, 0, 0, 0, 0, 688, 0, 1091 0, 0, 0, 414, 0, 300, 280, 694, 0, 0, 1092 0, 0, 0, 0, 767, 0, 0, 218, 217, 0, 1093 277, 431, 0, 219, 227, 226, 228, 229, 230, 0, 1094 0, 0, 344, 0, 0, 277, 277, 0, 223, 232, 1095 231, 222, 221, 224, 220, 0, 456, 717, 189, 0, 1096 277, 0, 0, 460, 0, 0, 79, 0, 0, 0, 1097 0, 466, 0, 0, 200, 0, 0, 0, 223, 232, 1098 231, 222, 221, 224, 220, 0, 481, 483, 484, 486, 1099 113, 114, 115, 0, 116, 117, 118, 119, 120, 277, 1100 113, 114, 115, 0, 116, 117, 118, 119, 120, 0, 1101 200, 514, 0, 516, 0, 0, 0, 0, 112, 769, 1102 392, 113, 114, 115, 0, 282, 283, 284, 285, 286, 1103 307, 308, 309, 218, 217, 0, 787, 0, 0, 219, 1104 227, 226, 228, 229, 230, 0, 0, 348, 344, 200, 1105 0, 0, 0, 112, 0, 302, 0, 0, 0, 806, 1106 0, 0, 189, 218, 217, 885, 112, 279, 278, 219, 1107 227, 226, 228, 229, 230, 112, 0, 0, 879, 0, 1108 0, 300, 280, 0, 0, 200, 0, 0, 906, 279, 1109 278, 0, 834, 592, 277, 325, 597, 0, 0, 277, 1110 277, 0, 912, 300, 280, 0, 0, 0, 0, 277, 1111 0, 0, 0, 423, 0, 618, 899, 460, 0, 620, 1112 0, 0, 0, 592, 866, 0, 631, 592, 592, 635, 1113 0, 0, 0, 638, 640, 0, 0, 649, 820, 0, 1114 0, 0, 223, 232, 231, 222, 221, 224, 220, 0, 1115 0, 960, 113, 114, 115, 0, 116, 117, 118, 119, 1116 120, 112, 0, 0, 0, 892, 0, 0, 103, 773, 1117 970, 0, 0, 0, 0, 660, 661, 0, 0, 112, 1118 0, 0, 0, 640, 368, 665, 391, 113, 114, 115, 1119 0, 282, 283, 284, 285, 286, 307, 308, 309, 992, 1120 113, 114, 115, 0, 116, 117, 118, 119, 120, 113, 1121 114, 115, 0, 282, 283, 284, 285, 286, 307, 308, 1122 309, 302, 0, 0, 0, 0, 200, 218, 217, 0, 1123 954, 0, 0, 219, 227, 226, 228, 229, 230, 189, 1124 0, 772, 0, 302, 0, 592, 0, 0, 0, 200, 1125 0, 0, 0, 189, 0, 189, 0, 0, 592, 0, 1126 0, 0, 0, 200, 0, 0, 277, 277, 0, 133, 1127 0, 0, 0, 0, 1038, 0, 0, 0, 0, 0, 1128 592, 0, 0, 640, 0, 0, 0, 0, 631, 0, 1129 0, 592, 189, 0, 0, 113, 114, 115, 1062, 116, 1130 117, 118, 119, 120, 0, 0, 0, 0, 0, 756, 1131 0, 0, 200, 113, 114, 115, 0, 116, 117, 118, 1132 119, 120, 0, 0, 0, 0, 0, 0, 112, 0, 1133 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, 1134 0, 0, 279, 278, 431, 0, 0, 0, 0, 0, 1135 0, 0, 0, 0, 0, 0, 300, 280, 223, 232, 1136 200, 222, 221, 224, 220, 592, 0, 423, 0, 0, 1137 277, 592, 0, 0, 0, 0, 0, 0, 0, 0, 1138 0, 277, 277, 0, 0, 277, 824, 0, 0, 592, 1139 0, 818, 0, 0, 0, 592, 592, 0, 0, 133, 1140 0, 836, 837, 0, 0, 640, 0, 0, 112, 81, 1141 82, 83, 0, 109, 0, 103, 107, 104, 105, 22, 1142 75, 106, 0, 0, 80, 0, 0, 37, 38, 0, 1143 0, 0, 0, 0, 30, 200, 0, 122, 0, 31, 1144 46, 0, 32, 218, 217, 0, 0, 0, 423, 219, 1145 227, 226, 228, 229, 230, 0, 0, 0, 0, 200, 1146 0, 0, 113, 114, 115, 0, 282, 283, 284, 285, 1147 286, 307, 308, 309, 0, 0, 0, 100, 0, 277, 1148 277, 101, 0, 0, 0, 110, 112, 79, 0, 0, 1149 0, 631, 0, 0, 1048, 1047, 302, 921, 0, 0, 1150 279, 278, 0, 34, 108, 0, 41, 39, 40, 36, 1151 42, 0, 0, 0, 300, 280, 0, 0, 44, 45, 1152 512, 513, 0, 49, 50, 51, 52, 43, 54, 55, 1153 56, 47, 53, 57, 0, 0, 0, 922, 0, 0, 1154 33, 48, 113, 114, 115, 0, 116, 117, 118, 119, 1155 120, 640, 0, 0, 121, 90, 93, 91, 92, 95, 1156 96, 97, 98, 0, 0, 592, 0, 0, 0, 0, 1157 87, 88, 0, 0, 0, 102, 74, 0, 0, 0, 1158 0, 0, 0, 112, 81, 82, 83, 0, 109, 0, 1159 103, 107, 104, 105, 22, 75, 106, 0, 0, 80, 1160 0, 0, 37, 38, 0, 0, 0, 0, 0, 30, 1161 0, 0, 122, 0, 31, 46, 0, 32, 0, 592, 1162 113, 114, 115, 0, 282, 283, 284, 285, 286, 307, 1163 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, 1164 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1165 0, 0, 100, 0, 302, 0, 101, 0, 0, 112, 1166 110, 0, 79, 0, 0, 0, 0, 0, 0, 508, 1167 507, 0, 76, 279, 278, 0, 1052, 1053, 34, 108, 1168 0, 41, 39, 40, 36, 42, 0, 0, 280, 0, 1169 0, 0, 0, 44, 45, 512, 513, 77, 49, 50, 1170 51, 52, 43, 54, 55, 56, 47, 53, 57, 0, 1171 0, 0, 1077, 1078, 0, 33, 48, 113, 114, 115, 1172 0, 116, 117, 118, 119, 120, 0, 0, 0, 121, 1173 90, 93, 91, 92, 95, 96, 97, 98, 0, 0, 1174 0, 0, 0, 0, 0, 87, 88, 0, 0, 0, 1175 102, 74, 112, 81, 82, 83, 0, 109, 0, 103, 1176 107, 104, 105, 22, 75, 106, 0, 0, 80, 0, 1177 0, 37, 38, 0, 0, 0, 0, 0, 30, 0, 1178 0, 122, 0, 31, 46, 0, 32, 0, 0, 0, 1179 0, 0, 0, 113, 114, 115, 0, 282, 283, 284, 1180 285, 286, 0, 0, 0, 0, 0, 0, 0, 0, 1181 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1182 0, 100, 0, 0, 0, 101, 0, 0, 0, 110, 1183 0, 79, 0, 0, 0, 0, 0, 0, 918, 917, 1184 0, 921, 0, 0, 0, 0, 0, 34, 108, 0, 1185 41, 39, 40, 36, 42, 0, 0, 0, 0, 0, 1186 0, 0, 44, 45, 0, 0, 0, 49, 50, 51, 1187 52, 43, 54, 55, 56, 47, 53, 57, 0, 0, 1188 0, 922, 0, 0, 33, 48, 113, 114, 115, 0, 1189 116, 117, 118, 119, 120, 0, 0, 0, 121, 90, 1190 93, 91, 92, 95, 96, 97, 98, 0, 0, 0, 1191 0, 0, 0, 0, 87, 88, 0, 0, 0, 102, 1192 74, 112, 81, 82, 83, 0, 109, 0, 103, 107, 1193 104, 105, 22, 75, 106, 0, 0, 80, 0, 0, 1194 37, 38, 0, 0, 0, 0, 0, 30, 0, 0, 1195 122, 0, 31, 46, 0, 32, 0, 0, 0, 0, 1196 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1198 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1199 100, 0, 0, 0, 101, 0, 0, 0, 110, 0, 1200 79, 0, 0, 0, 0, 0, 0, 24, 23, 0, 1201 76, 0, 0, 0, 0, 0, 34, 108, 0, 41, 1202 39, 40, 36, 42, 0, 0, 0, 0, 0, 0, 1203 0, 44, 45, 0, 0, 77, 49, 50, 51, 52, 1204 43, 54, 55, 56, 47, 53, 57, 0, 0, 0, 1205 0, 0, 0, 33, 48, 113, 114, 115, 0, 116, 1206 117, 118, 119, 120, 0, 0, 0, 121, 90, 93, 1207 91, 92, 95, 96, 97, 98, 0, 0, 0, 0, 1208 0, 0, 0, 87, 88, 0, 0, 0, 102, 74, 1209 112, 81, 82, 83, 0, 109, 0, 103, 107, 104, 1210 105, 0, 75, 106, 0, 0, 0, 0, 0, 0, 1211 0, 0, 0, 0, 0, 0, 129, 0, 0, 122, 1212 223, 232, 231, 222, 221, 224, 220, 0, 0, 0, 1213 0, 112, 81, 82, 83, 0, 109, 0, 103, 107, 1214 104, 105, 0, 75, 106, 279, 278, 0, 0, 0, 1215 0, 0, 0, 0, 0, 0, 0, 129, 0, 100, 1216 598, 0, 0, 101, 0, 0, 0, 110, 0, 0, 1217 0, 0, 0, 0, 0, 0, 131, 128, 0, 0, 1218 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 1219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1220 100, 0, 0, 0, 101, 218, 217, 0, 110, 0, 1221 0, 219, 227, 226, 228, 229, 230, 131, 128, 0, 1222 557, 0, 130, 0, 113, 114, 115, 108, 116, 117, 1223 118, 119, 120, 0, 0, 0, 121, 90, 93, 91, 1224 92, 95, 96, 97, 98, 223, 232, 231, 222, 221, 1225 224, 220, 87, 88, 369, 0, 0, 102, 74, 397, 1226 0, 0, 0, 130, 0, 113, 114, 115, 0, 116, 1227 117, 118, 119, 120, 0, 0, 0, 121, 90, 93, 1228 91, 92, 95, 96, 97, 98, 0, 0, 0, 0, 1229 0, 0, 0, 87, 88, 0, 0, 0, 102, 74, 1230 112, 81, 82, 83, 0, 109, 0, 103, 107, 104, 1231 105, 0, 75, 106, 0, 0, 80, 0, 0, 0, 1232 0, 0, 0, 0, 0, 0, 129, 0, 0, 122, 1233 218, 217, 0, 0, 0, 0, 219, 227, 226, 228, 1234 229, 230, 0, 0, 0, 344, 0, 0, 0, 0, 1235 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1236 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 1237 0, 0, 0, 101, 0, 0, 0, 110, 0, 79, 1238 0, 0, 0, 0, 0, 0, 131, 128, 0, 0, 1239 0, 0, 112, 81, 82, 83, 108, 109, 0, 103, 1240 107, 104, 105, 0, 75, 106, 0, 0, 0, 0, 1241 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 1242 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 1243 0, 0, 130, 0, 113, 114, 115, 0, 116, 117, 1244 118, 119, 120, 0, 0, 0, 121, 90, 93, 91, 1245 92, 95, 96, 97, 98, 0, 0, 0, 0, 0, 1246 0, 100, 87, 88, 0, 101, 0, 102, 74, 110, 1247 0, 0, 0, 0, 0, 0, 0, 0, 131, 128, 1248 0, 0, 0, 0, 0, 0, 0, 206, 108, 112, 1249 81, 82, 83, 0, 109, 0, 103, 107, 104, 105, 1250 0, 75, 106, 0, 0, 0, 0, 0, 0, 0, 1251 0, 0, 0, 0, 0, 129, 0, 0, 122, 0, 1252 0, 0, 0, 0, 205, 0, 113, 114, 115, 0, 1253 116, 117, 118, 119, 120, 0, 0, 0, 121, 90, 1254 93, 91, 92, 95, 96, 97, 98, 0, 0, 0, 1255 0, 0, 0, 0, 87, 88, 0, 0, 100, 102, 1256 74, 0, 101, 0, 0, 0, 110, 0, 0, 0, 1257 0, 0, 0, 0, 0, 131, 128, 0, 0, 0, 1258 0, 112, 81, 82, 83, 108, 109, 0, 103, 107, 1259 104, 105, 0, 75, 106, 0, 0, 0, 0, 0, 1260 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 1261 122, 0, 223, 232, 231, 222, 221, 224, 220, 0, 1262 0, 130, 0, 113, 114, 115, 0, 116, 117, 118, 1263 119, 120, 0, 0, 0, 121, 90, 93, 91, 92, 1264 95, 96, 97, 98, 0, 0, 0, 0, 0, 0, 1265 100, 87, 88, 369, 101, 0, 102, 74, 110, 216, 1266 0, 0, 0, 0, 0, 0, 0, 131, 128, 0, 1267 0, 0, 0, 112, 81, 82, 83, 108, 109, 0, 1268 103, 107, 104, 105, 0, 75, 106, 0, 0, 0, 1269 0, 0, 0, 0, 0, 0, 0, 218, 217, 129, 1270 0, 0, 122, 219, 227, 226, 228, 229, 230, 0, 1271 0, 1003, 0, 130, 0, 113, 114, 115, 0, 116, 1272 117, 118, 119, 120, 0, 0, 0, 121, 90, 93, 1273 91, 92, 95, 96, 97, 98, 0, 0, 0, 0, 1274 0, 0, 100, 87, 88, 0, 101, 0, 102, 74, 1275 110, 0, 0, 0, 0, 0, 0, 0, 0, 131, 1276 128, 0, 0, 0, 0, 112, 81, 82, 83, 108, 1277 109, 0, 103, 107, 104, 105, 0, 75, 106, 0, 1278 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1279 0, 129, 0, 0, 122, 0, 223, 232, 231, 222, 1280 221, 224, 220, 0, 0, 130, 0, 113, 114, 115, 1281 0, 116, 117, 118, 119, 120, 112, 0, 0, 121, 1282 90, 93, 91, 92, 95, 96, 97, 98, 0, 0, 1283 279, 278, 0, 0, 100, 87, 88, 0, 101, 0, 1284 102, 74, 110, 0, 300, 280, 0, 0, 0, 0, 1285 0, 131, 128, 0, 0, 0, 0, 112, 81, 346, 1286 83, 108, 109, 0, 103, 107, 104, 105, 0, 75, 1287 106, 0, 0, 0, 0, 0, 0, 0, 0, 722, 1288 0, 218, 217, 129, 0, 0, 122, 219, 227, 226, 1289 228, 229, 230, 0, 0, 943, 0, 130, 0, 113, 1290 114, 115, 0, 116, 117, 118, 119, 120, 112, 0, 1291 0, 121, 90, 93, 91, 92, 95, 96, 97, 98, 1292 0, 0, 279, 278, 0, 0, 100, 87, 88, 0, 1293 101, 0, 102, 125, 110, 0, 300, 280, 0, 0, 1294 0, 0, 0, 131, 128, 0, 0, 0, 0, 0, 1295 113, 114, 115, 108, 282, 283, 284, 285, 286, 307, 1296 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, 1297 0, 720, 223, 232, 231, 222, 221, 224, 220, 0, 1298 0, 0, 0, 0, 302, 0, 0, 0, 0, 130, 1299 0, 113, 114, 115, 0, 116, 117, 118, 119, 120, 1300 0, 0, 0, 121, 90, 93, 91, 92, 95, 96, 1301 97, 98, 582, 583, 0, 0, 0, 0, 0, 87, 1302 88, 0, 0, 0, 102, 74, 0, 0, 0, 0, 1303 0, 0, 0, 0, 223, 232, 231, 222, 221, 224, 1304 220, 0, 113, 114, 115, 0, 282, 283, 284, 285, 1305 286, 307, 308, 309, 0, 0, 0, 218, 217, 527, 1306 0, 0, 0, 219, 227, 226, 228, 229, 230, 0, 1307 0, 789, 0, 0, 0, 0, 302, 223, 232, 231, 1308 222, 221, 224, 220, 0, 0, 0, 0, 0, 223, 1309 232, 231, 222, 221, 224, 220, 0, 418, 0, 0, 1310 0, 0, 223, 232, 231, 222, 221, 224, 220, 0, 1311 566, 0, 0, 0, 0, 0, 0, 0, 223, 218, 1312 217, 222, 221, 224, 220, 219, 227, 226, 228, 229, 1313 230, 223, 232, 231, 222, 221, 224, 220, 0, 0, 1314 0, 0, 0, 223, 668, 231, 222, 221, 224, 220, 1315 0, 0, 0, 0, 0, 223, 531, 231, 222, 221, 1316 224, 220, 218, 217, 0, 0, 0, 0, 219, 227, 1317 226, 228, 229, 230, 218, 217, 0, 0, 0, 0, 1318 219, 227, 226, 228, 229, 230, 0, 218, 217, 0, 1319 0, 0, 0, 219, 227, 226, 228, 229, 230, 0, 1320 0, 0, 0, 218, 217, 0, 0, 0, 0, 219, 1321 227, 226, 228, 229, 230, 0, 218, 217, 0, 0, 1322 0, 0, 219, 227, 226, 228, 229, 230, 218, 217, 1323 0, 0, 0, 0, 219, 227, 226, 228, 229, 230, 1324 218, 217, 0, 0, 0, 0, 219, 227, 226, 228, 1325 229, 230, 1326 } 1327 1328 var yyPact = [...]int{ 1329 2827, -1000, 361, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1330 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1331 -1000, -1000, -1000, 3671, 3579, -1000, -1000, 998, 214, 1111, 1332 283, 1036, 1033, 407, 2067, -1000, 574, 1161, 1154, 2085, 1333 2085, 610, 2085, 3579, -1000, -1000, 3579, 3579, 1762, 3579, 1334 3579, 3579, 3579, 3579, 3579, -1000, 2085, 2085, -1000, -1000, 1335 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 367, -1000, 1336 -1000, -1000, -1000, -1000, 3206, -1000, 3298, 1170, 921, 1055, 1337 839, -1000, -1000, -1000, -1000, -1000, 3967, 3579, 3579, -90, 1338 343, 342, 340, 339, -1000, 334, 332, 330, 328, 449, 1339 137, 3579, 3579, -1000, -1000, -1000, -1000, -1000, 2085, -1000, 1340 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1341 -1000, 326, -87, 2827, 679, 3206, -1000, -1000, 323, 322, 1342 321, 3579, 702, 3967, -1000, 979, 990, 998, 1111, 1101, 1343 2565, 1100, 1542, -1000, 136, 1131, 1105, 1164, 2392, 3579, 1344 2565, 771, 2565, -1000, 839, 16, 366, -1000, 534, -1000, 1345 2085, 1972, 2085, 2085, 497, 470, -1000, 931, -1000, 2085, 1346 -1000, -1000, -1000, -1000, 3579, 3579, 1144, 21, 918, 1005, 1347 1138, -1000, 1135, -1000, -1000, 35, -90, -1000, -1000, 3081, 1348 -90, -1000, -1000, 3763, 3579, 1784, 244, 221, 232, 293, 1349 1131, 615, 25, 894, 1164, 321, -1000, -1000, 865, 865, 1350 865, -1000, 13, 2085, -1000, 3395, -1000, 3579, 3579, 3579, 1351 845, 3579, 879, 93, 3579, 904, 3579, 3579, 3579, 3579, 1352 3579, 3579, 3579, -1000, -1000, 1924, 3487, 3579, 2996, 839, 1353 839, 839, 3579, 3579, 3579, 93, 93, 889, 899, -1000, 1354 -1000, 3954, -1000, 454, 3579, 1075, -1000, 2827, 221, 219, 1355 3579, 701, 639, 638, 3579, 512, 468, 3579, 3579, 3579, 1356 979, 1131, 2565, 1118, 10, -1000, -1000, -1000, -1000, 319, 1357 -1000, 318, -1000, -1000, -1000, -1000, -1000, 2565, 2392, 1132, 1358 1, 1105, 996, 3579, -1000, -1, -1000, 75, 1450, -1000, 1359 -1000, -1000, 1793, -1000, -1000, 734, 317, -1000, -1000, -1000, 1360 212, -1000, 331, 2085, 851, 1145, 3579, 1164, 3579, 510, 1361 351, 316, 303, -1000, -1000, -1000, -1000, -1000, 3579, 3579, 1362 3579, 3579, 3579, 1098, -1000, -1000, 1172, 3579, 3579, 1158, 1363 1158, 2565, 3579, 3579, 3579, -1000, 3579, 3967, -1000, -1000, 1364 -1000, -1000, 2489, 2085, 1164, 2085, 43, 887, 293, -1000, 1365 293, 293, 1055, 235, -1000, -3, 3938, -1000, -82, -1000, 1366 103, 246, 246, 911, 3991, 3579, 93, 3579, -1000, 3206, 1367 -1000, 246, 93, 93, 312, 312, -1000, -1000, -1000, 2194, 1368 3954, -1000, -1000, 208, 3579, 205, 1678, -1000, 203, 3579, 1369 3395, 3579, 200, 198, 195, -1000, -1000, 93, 229, 229, 1370 229, 845, -1000, 2956, -1000, -1000, 619, -1000, 3579, 587, 1371 2827, 585, 3579, 3925, 669, 1129, 522, 484, 457, -1000, 1372 -6, 3870, 504, 1105, 231, 1368, 2565, 3579, 3037, 197, 1373 1105, 2392, 1772, 996, 993, 988, 3967, 969, 967, 939, 1374 961, 1596, -1000, -1000, -1000, -1000, -1000, 2085, 150, 734, 1375 -1000, 2085, 3579, -1000, 299, 1368, 217, 896, 393, 202, 1376 1368, 2085, 194, -1000, 3967, 138, 2085, 136, 156, 2085, 1377 -1000, -90, -1000, -90, -90, -1000, -90, -1000, -1000, -8, 1378 1093, 1164, -1000, -1000, -1000, -12, -1000, -1000, -1000, -1000, 1379 -1000, -1000, -1000, 583, 358, -1000, -1000, 3671, 3579, -1000, 1380 -1000, -1000, -1000, -1000, 611, -1000, 606, 2085, 2085, 903, 1381 -1000, -1000, 903, -1000, 295, 2085, 3395, 2085, 1292, -1000, 1382 -1000, 3579, 3979, -1000, 246, -1000, -1000, 487, 193, -1000, 1383 3579, -1000, 191, 190, 185, 183, 481, 446, 440, 856, 1384 -1000, 140, -1000, 294, -1000, -1000, 509, 3579, 580, 635, 1385 2827, 3579, 796, -1000, -1000, 3967, 3579, 2827, -1000, 3579, 1386 -1000, -1000, 458, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1387 3579, 409, -1000, -1000, 1128, 996, 93, 87, -1000, 1131, 1388 -17, 29, -79, -1000, 182, -51, -23, -90, -87, 292, 1389 1368, -1000, 1105, -1000, 993, -1000, 3579, 3579, 3814, 3722, 1390 954, -1000, 944, 939, -1000, 946, 137, -24, -1000, -1000, 1391 -1000, -26, 1368, 181, -27, 2085, 136, -1000, -1000, 1057, 1392 2085, 1014, -1000, 1368, 1004, 1003, 478, -1000, -1000, 179, 1393 -30, -1000, 1092, 178, -34, -1000, -1000, -35, 1013, -59, 1394 3579, 2085, -1000, 3579, 732, 2489, 668, 700, 2489, 2489, 1395 605, 600, 136, 177, -1000, -1000, -1000, 3954, 3579, 285, 1396 476, 1978, 473, 469, 453, 443, 277, 276, 408, 273, 1397 406, 93, 176, -45, -1000, 3579, -1000, 835, 3808, 770, 1398 579, -1000, 667, -1000, 3913, 689, 484, 975, -1000, 412, 1399 -1000, 1024, -1000, 993, -1000, 170, 1105, 1368, 3579, -1000, 1400 -1000, 3579, 1772, 1368, 160, -1000, 998, 3967, -1000, 971, 1401 137, 1473, 137, 2234, 1981, 942, -46, 1596, 3579, 159, 1402 915, 1368, 158, -1000, -1000, -1000, -1000, 1368, 1368, 155, 1403 -47, 3579, 152, 2085, 3579, 271, 1091, 2085, 426, 1090, 1404 1164, 1164, 3579, 1089, 1164, -1000, -1000, -1000, -1000, -1000, 1405 2489, 634, 3579, 578, 575, 2489, 2489, 148, 1064, 3954, 1406 455, 267, -1000, 3579, 265, 264, 260, 995, 259, 455, 1407 455, 450, 455, 447, -1000, -1000, 93, 1814, -1000, -1000, 1408 -1000, 765, 2827, -1000, -1000, 3579, 458, -1000, -1000, -1000, 1409 -1000, -1000, 998, 135, -1000, -1000, 3967, 147, -61, 146, 1410 913, 979, -1000, -1000, 3579, 258, 929, 1473, 137, 971, 1411 137, 1959, 1596, -1000, -70, -63, 132, 256, -1000, 1063, 1412 -1000, -1000, 1057, 2085, 3967, -1000, -1000, -90, -1000, 455, 1413 136, -1000, 2658, 425, -1000, -1000, -1000, 1013, -1000, 423, 1414 144, 613, 571, 2489, 664, 725, 724, 569, 568, -1000, 1415 254, 143, -1000, 999, 985, 455, 3632, 455, 455, 455, 1416 253, 455, 142, 998, 126, 250, 122, 248, -1000, 3579, 1417 -1000, 754, -1000, 979, 93, -1000, -1000, -1000, 3579, 114, 1418 247, 503, 3967, 2085, -1000, -1000, 929, -1000, 971, 137, 1419 -1000, -1000, 3579, -1000, 3579, 93, -1000, 1368, 136, -1000, 1420 -1000, 121, -1000, 563, 356, -1000, -1000, 3671, 3579, -1000, 1421 -1000, 3298, 3579, 2658, 2658, 1060, 560, 631, 2489, 3579, 1422 792, -1000, 2489, -1000, -1000, 719, 718, 136, -1000, -1000, 1423 984, 3579, 118, -1000, 112, 102, 94, 998, 84, -1000, 1424 -1000, 455, -1000, 455, 3448, -1000, 500, -1000, 82, 93, 1425 -1000, 1368, 1127, 80, -1000, -1000, 77, 72, -1000, 69, 1426 -1000, -1000, -1000, 2658, 662, 688, 599, 15, 881, 1164, 1427 -1000, 559, 557, 422, 761, 556, -1000, 661, -1000, 686, 1428 -1000, -1000, 41, 3579, -1000, -1000, -1000, -1000, -1000, 31, 1429 -1000, 30, 22, -1000, 1112, -1000, -1000, 18, -1000, -1000, 1430 -1000, -1000, 96, -1000, 2658, 630, 3579, 2314, 2085, 2085, 1431 24, 880, -1000, -1000, 2658, -1000, 759, 2489, -1000, 3579, 1432 -1000, 404, -1000, -1000, -1000, -1000, 89, 93, -1000, 603, 1433 554, 2658, 659, 550, 355, -1000, -1000, 3671, 3579, -1000, 1434 -1000, -1000, 596, 592, 2085, 2085, 547, -1000, 750, -1000, 1435 864, 93, -1000, -1000, 545, 626, 2658, 3579, 777, -1000, 1436 2658, 717, 2314, 651, 683, 2314, 2314, 590, 474, -1000, 1437 -1000, -1000, 863, 826, 824, 803, -1000, 758, 542, -1000, 1438 644, -1000, 682, -1000, -1000, 2314, 617, 3579, 535, 533, 1439 2314, 2314, 855, 822, -1000, 812, 800, -1000, -1000, -1000, 1440 -1000, 757, 2658, -1000, 3579, 594, 532, 2314, 642, 712, 1441 707, 528, 525, 862, -1000, -1000, -1000, -1000, -1000, 740, 1442 521, 614, 2314, 3579, 773, -1000, 2314, -1000, -1000, 706, 1443 705, -1000, 820, -1000, -1000, 756, 520, -1000, 641, -1000, 1444 681, -1000, -1000, -1000, -1000, 735, 2314, -1000, 3579, -1000, 1445 738, -1000, 1446 } 1447 1448 var yyPgo = [...]int{ 1449 0, 78, 12, 237, 7, 263, 9, 1306, 64, 24, 1450 35, 1303, 1302, 1301, 1299, 404, 300, 1295, 1294, 1293, 1451 1292, 1291, 1290, 1286, 60, 26, 25, 1284, 1283, 1282, 1452 55, 1280, 37, 1277, 1275, 40, 30, 1273, 1272, 1271, 1453 1270, 1269, 1171, 1268, 79, 92, 1332, 549, 46, 38, 1454 61, 39, 31, 27, 43, 1266, 1265, 53, 1261, 44, 1455 758, 1258, 81, 1257, 73, 72, 106, 1260, 130, 69, 1456 50, 28, 11, 1256, 1254, 1253, 0, 1249, 76, 1244, 1457 1242, 1241, 564, 1240, 1239, 1238, 1235, 33, 48, 23, 1458 1233, 1230, 6, 1229, 1227, 58, 1223, 1222, 1216, 1212, 1459 87, 70, 71, 1210, 32, 42, 292, 1209, 18, 1208, 1460 1205, 21, 57, 1204, 19, 20, 47, 68, 49, 63, 1461 1202, 1200, 1199, 41, 1196, 1195, 22, 62, 10, 16, 1462 5, 8, 2, 4, 45, 1194, 13, 1192, 14, 1191, 1463 3, 1189, 1567, 17, 15, 326, 1186, 84, 1078, 1185, 1464 1184, 83, 97, 80, 67, 56, 66, 77, 1183, 34, 1465 616, 1179, 1466 } 1467 1468 var yyR1 = [...]int{ 1469 0, 1, 1, 1, 2, 2, 3, 3, 4, 4, 1470 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1471 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 1472 7, 7, 8, 8, 8, 8, 8, 9, 9, 10, 1473 10, 12, 12, 11, 11, 11, 11, 11, 13, 13, 1474 13, 13, 13, 13, 14, 14, 15, 15, 15, 15, 1475 15, 16, 16, 17, 17, 18, 18, 18, 18, 18, 1476 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 1477 21, 21, 21, 21, 21, 22, 22, 23, 23, 23, 1478 23, 23, 23, 23, 23, 23, 23, 24, 24, 25, 1479 25, 26, 26, 26, 26, 26, 27, 27, 27, 27, 1480 27, 27, 27, 28, 28, 28, 28, 28, 29, 29, 1481 30, 30, 31, 31, 31, 31, 32, 33, 33, 34, 1482 35, 35, 36, 36, 36, 37, 37, 37, 37, 37, 1483 38, 38, 38, 38, 38, 38, 38, 39, 39, 39, 1484 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 1485 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 1486 40, 40, 40, 40, 41, 41, 41, 42, 42, 42, 1487 42, 43, 43, 43, 43, 44, 44, 44, 44, 45, 1488 45, 46, 47, 48, 48, 49, 49, 50, 50, 51, 1489 51, 52, 52, 53, 53, 53, 54, 54, 54, 55, 1490 55, 56, 56, 57, 57, 57, 58, 58, 58, 59, 1491 59, 60, 60, 61, 61, 62, 62, 63, 63, 63, 1492 63, 63, 64, 65, 66, 66, 66, 66, 66, 67, 1493 67, 67, 68, 68, 68, 68, 68, 68, 68, 68, 1494 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 1495 68, 69, 70, 70, 70, 71, 71, 72, 72, 73, 1496 73, 74, 74, 74, 75, 75, 76, 77, 78, 78, 1497 78, 79, 79, 79, 79, 79, 79, 79, 79, 79, 1498 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 1499 80, 80, 80, 80, 80, 80, 80, 81, 81, 81, 1500 81, 82, 82, 83, 83, 83, 83, 83, 83, 83, 1501 83, 84, 84, 84, 84, 84, 84, 85, 85, 86, 1502 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 1503 86, 87, 88, 88, 89, 89, 90, 90, 91, 91, 1504 91, 92, 92, 92, 93, 93, 94, 94, 95, 95, 1505 95, 95, 96, 96, 96, 96, 96, 98, 98, 98, 1506 97, 97, 97, 97, 99, 99, 99, 99, 100, 100, 1507 103, 103, 104, 104, 104, 105, 105, 105, 105, 106, 1508 106, 106, 106, 106, 106, 106, 107, 107, 107, 107, 1509 107, 107, 107, 107, 107, 107, 108, 108, 109, 109, 1510 109, 109, 110, 111, 111, 112, 112, 113, 113, 114, 1511 114, 115, 115, 116, 116, 117, 117, 101, 101, 102, 1512 102, 118, 118, 119, 119, 120, 120, 120, 120, 121, 1513 122, 123, 123, 124, 124, 124, 124, 124, 124, 124, 1514 124, 125, 125, 126, 126, 127, 127, 128, 128, 129, 1515 129, 130, 130, 131, 131, 132, 132, 133, 133, 134, 1516 134, 135, 135, 136, 136, 137, 137, 138, 138, 139, 1517 139, 140, 140, 141, 141, 142, 142, 142, 142, 142, 1518 142, 142, 142, 142, 143, 144, 144, 145, 146, 146, 1519 147, 147, 148, 149, 150, 151, 152, 152, 153, 153, 1520 154, 154, 155, 155, 156, 156, 156, 157, 157, 158, 1521 158, 159, 159, 160, 160, 161, 161, 1522 } 1523 1524 var yyR2 = [...]int{ 1525 0, 0, 1, 3, 0, 3, 0, 3, 0, 3, 1526 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1527 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1528 1, 1, 6, 8, 8, 9, 9, 1, 1, 1, 1529 2, 1, 1, 7, 8, 6, 1, 1, 7, 8, 1530 6, 1, 1, 1, 1, 1, 6, 8, 8, 9, 1531 9, 1, 2, 1, 1, 7, 8, 6, 1, 1, 1532 7, 8, 6, 1, 1, 1, 2, 2, 1, 2, 1533 4, 4, 4, 4, 2, 1, 1, 7, 9, 6, 1534 6, 8, 5, 7, 7, 7, 7, 1, 3, 1, 1535 3, 0, 1, 1, 2, 2, 5, 5, 2, 4, 1536 2, 3, 5, 6, 8, 5, 3, 3, 1, 3, 1537 1, 3, 4, 2, 4, 3, 1, 1, 3, 3, 1538 1, 3, 1, 1, 3, 9, 10, 10, 12, 3, 1539 0, 1, 1, 1, 1, 2, 2, 5, 6, 3, 1540 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 1541 4, 4, 2, 2, 2, 4, 1, 2, 2, 4, 1542 2, 2, 1, 2, 2, 3, 4, 3, 5, 4, 1543 6, 8, 10, 9, 11, 5, 4, 4, 4, 1, 1544 1, 3, 2, 0, 2, 0, 2, 0, 3, 0, 1545 2, 0, 3, 1, 6, 5, 0, 1, 2, 1, 1546 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1547 3, 0, 2, 6, 9, 1, 3, 1, 1, 1, 1548 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1549 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1550 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1551 1, 1, 3, 1, 6, 1, 3, 1, 3, 2, 1552 4, 0, 1, 1, 1, 1, 3, 3, 3, 1, 1553 6, 3, 3, 3, 3, 4, 4, 5, 6, 6, 1554 3, 4, 4, 3, 4, 4, 4, 4, 4, 2, 1555 3, 3, 3, 3, 3, 2, 2, 3, 3, 2, 1556 2, 0, 1, 4, 4, 6, 8, 3, 4, 4, 1557 4, 5, 5, 5, 5, 5, 1, 5, 10, 8, 1558 9, 9, 9, 9, 9, 9, 8, 8, 10, 8, 1559 10, 2, 1, 5, 0, 3, 2, 5, 2, 2, 1560 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1561 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1562 4, 6, 6, 8, 6, 8, 6, 8, 1, 1, 1563 1, 1, 1, 2, 3, 1, 2, 3, 4, 1, 1564 2, 3, 1, 1, 1, 3, 4, 5, 6, 5, 1565 6, 5, 6, 7, 6, 7, 2, 4, 1, 3, 1566 1, 3, 5, 0, 1, 4, 5, 0, 2, 1, 1567 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 1568 3, 1, 3, 1, 3, 6, 9, 5, 8, 7, 1569 3, 1, 3, 10, 13, 9, 12, 9, 12, 8, 1570 11, 5, 6, 4, 5, 0, 2, 4, 5, 0, 1571 2, 4, 5, 0, 2, 4, 5, 0, 2, 4, 1572 5, 0, 2, 4, 5, 0, 2, 4, 5, 0, 1573 2, 4, 5, 0, 2, 1, 1, 1, 1, 1, 1574 1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 1575 1, 3, 1, 1, 1, 1, 0, 1, 0, 1, 1576 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1577 1, 0, 1, 1, 1, 0, 3, 1578 } 1579 1580 var yyChk = [...]int{ 1581 -1000, -1, -7, -5, -11, -42, -43, -120, -121, -124, 1582 -125, -23, -20, -21, -27, -28, -31, -37, -22, -40, 1583 -41, -68, 15, 91, 90, -8, -10, -44, -60, -46, 1584 30, 35, 38, 136, 99, -145, 105, 23, 24, 103, 1585 104, 102, 106, 123, 114, 115, 36, 127, 137, 119, 1586 120, 121, 122, 128, 124, 125, 126, 129, -63, -80, 1587 -77, -76, -83, -84, -86, -110, -79, -81, -143, -148, 1588 -149, -150, -151, -39, 172, 16, 93, 118, -45, 83, 1589 20, 5, 6, 7, -64, -65, -67, 166, 167, -142, 1590 151, 153, 154, 152, -85, 155, 156, 157, 158, -70, 1591 73, 77, 171, 11, 13, 14, 17, 12, 100, 9, 1592 81, -66, 4, 138, 139, 140, 142, 143, 144, 145, 1593 146, 150, 33, 164, -68, 172, -76, -145, 91, 30, 1594 136, 90, -111, -67, -68, -52, 48, -44, -46, 27, 1595 22, 30, 25, -76, 172, -47, -48, 28, 21, 172, 1596 28, 39, 39, -147, 172, -146, -143, -147, -142, -143, 1597 100, 47, 106, 130, -148, -151, -148, -142, -142, -38, 1598 107, 108, 40, 41, 109, 110, -142, -142, -68, -68, 1599 -68, -151, -142, -68, -68, -68, -142, -68, -115, -67, 1600 -142, -68, -142, -142, 161, -67, -68, -115, -42, -60, 1601 -46, -68, -143, -144, -9, 136, 99, 6, 68, 69, 1602 70, -62, -61, -158, 34, -152, 82, 160, 159, 165, 1603 80, 78, 77, 74, 79, -160, 167, 166, 168, 169, 1604 170, 76, 75, -67, -67, 175, 172, 172, 172, 172, 1605 172, 172, 172, 172, 172, 159, 165, -153, -160, 77, 1606 -76, -67, -67, -142, 172, 175, -1, 95, -115, -82, 1607 172, -111, -134, -112, 94, -53, -59, 54, 55, 51, 1608 -52, -47, 28, -102, -100, -95, -97, -142, 19, 18, 1609 33, -96, 142, 143, 144, 145, 146, 28, 21, -101, 1610 -95, -48, -49, 26, -144, -143, -117, -106, -103, -107, 1611 32, -104, 172, -100, -99, -76, -98, 147, 148, 149, 1612 -82, -115, -100, -161, 91, -100, -152, 174, 161, 100, 1613 47, 130, 131, -142, -142, 33, -142, -142, 165, 46, 1614 165, 46, 65, -142, -68, -68, 21, 65, 65, 46, 1615 21, 21, 174, 65, 174, -68, 6, -67, 173, 173, 1616 173, 173, 97, 74, 174, 74, -143, -144, -157, 71, 1617 -157, -157, 174, -142, -119, -109, -67, -69, -142, 168, 1618 -67, -67, -67, -153, -67, 78, 74, 79, -70, 172, 1619 -76, -67, 72, 71, -67, -67, -67, -67, -67, -67, 1620 -67, -142, 6, -82, -152, -82, -67, 173, -119, -152, 1621 -152, -152, -82, -82, -82, -70, -70, 78, 74, 72, 1622 71, 80, 152, -67, -142, 6, -1, 173, 94, -135, 1623 96, -113, 96, -67, -68, 101, 102, -68, -68, -72, 1624 -73, -67, -53, -48, -100, 23, 174, 172, 172, -100, 1625 -117, 21, 174, -49, -50, 49, -67, 63, -154, -156, 1626 66, 174, 58, 60, 61, 62, -142, 31, -106, -76, 1627 -142, 31, 172, 173, 65, 172, -142, 77, 36, 37, 1628 45, 23, -82, -147, -67, 101, 172, 31, 172, 172, 1629 -68, -142, -68, -142, -142, -68, -142, -68, -30, -29, 1630 -68, 28, 5, -30, -116, -68, -151, -151, -100, -116, 1631 -116, -115, -68, -2, -12, -5, -13, 91, 90, -8, 1632 -10, -6, 116, 117, -142, -144, -142, 74, 74, -45, 1633 -44, -45, -45, -62, 31, 172, 174, 31, 175, -64, 1634 -65, 75, -67, -70, -67, -70, -70, 173, -82, 173, 1635 21, 173, -82, -82, -69, -82, 173, 173, 173, -70, 1636 -78, 172, -76, 150, -78, -78, -153, 174, -127, -126, 1637 96, 92, 98, -1, 98, -67, 95, 95, 22, -55, 1638 40, 107, -56, -57, 56, 89, 140, -58, 89, 140, 1639 174, -74, 52, 53, 101, -49, 29, 172, -42, -123, 1640 -122, -66, -142, -102, -82, -95, -68, -142, 33, 65, 1641 172, -49, -117, -101, -50, -51, 50, 51, 57, 57, 1642 -155, 59, -154, -156, -105, -106, 67, -104, -142, 173, 1643 -142, -68, 172, -114, -66, 172, -159, 31, 73, -24, 1644 172, -142, -66, 172, -66, -142, 173, -42, -142, -118, 1645 -142, -42, 173, -36, -33, -35, -32, -34, -143, -142, 1646 174, 31, -144, 174, 98, 164, -68, -111, 97, 97, 1647 -142, -142, 172, -118, -119, -142, -69, -67, 75, 113, 1648 173, -67, 173, 173, 173, 173, 113, 113, 134, 113, 1649 134, 75, -71, -70, -76, 172, 103, 74, -67, 98, 1650 -127, -1, -68, 90, -67, -1, -68, -54, 141, 83, 1651 -72, 139, 22, -50, -71, -114, -48, 174, 165, 173, 1652 173, 174, 174, 172, -114, -49, -51, -67, -115, -106, 1653 67, -106, 67, 57, 57, -155, -104, 174, 174, -114, 1654 173, 174, -118, -42, -26, 40, 41, 42, 43, -25, 1655 -24, 44, -114, 46, 46, 113, 173, 174, 31, 173, 1656 174, 174, 44, 173, 174, -30, -142, -116, 93, -2, 1657 95, -136, 94, -2, -2, 97, 97, -42, 173, -67, 1658 172, 113, 173, 101, 113, 113, 113, 135, 113, 172, 1659 172, 139, 172, 139, -70, 173, 174, -67, 84, 173, 1660 91, 98, 95, -112, -134, 94, -57, -59, 138, -75, 1661 40, 41, -51, 173, -49, -123, -67, -82, -95, -114, 1662 173, -52, -104, -108, 64, 65, -104, -106, 67, -106, 1663 67, 57, 174, -105, -142, -68, 173, 65, -114, 173, 1664 -66, -66, 173, 174, -67, 173, -142, -142, -68, 172, 1665 31, -118, 132, 31, -32, -35, -35, -143, -68, 31, 1666 -36, -2, -137, 96, -68, 98, 98, -2, -2, 173, 1667 31, -88, -87, -89, 112, 172, -67, 172, 172, 172, 1668 49, 172, -87, -89, -88, 113, -87, 113, -71, 174, 1669 91, -1, -54, -52, 29, -42, 173, 173, 174, 173, 1670 65, -53, -67, 172, -108, -108, -104, -104, -106, 67, 1671 -105, 173, 174, 173, 174, 29, -42, 172, -159, -26, 1672 -25, -88, -42, -3, -14, -5, -18, 91, 90, -15, 1673 -16, 93, 133, 132, 132, 173, -129, -128, 96, 92, 1674 98, -2, 95, 93, 93, 98, 98, 172, 173, -52, 1675 48, 51, -88, 173, -88, -88, -88, 172, -87, 173, 1676 173, 172, 173, 172, -67, -126, -53, -71, -82, 29, 1677 -42, 172, 101, -118, -108, -104, -82, -82, -71, -114, 1678 -42, 173, 98, 164, -68, -111, -68, -143, -144, -9, 1679 -68, -3, -3, 31, 98, -129, -2, -68, 90, -2, 1680 93, 93, -42, 51, -115, 173, 173, 173, 173, -52, 1681 173, -88, -87, 173, 101, 173, -71, -114, 22, 173, 1682 173, 173, 173, -3, 95, -138, 94, 97, 74, 74, 1683 -143, -144, 98, 98, 132, 91, 98, 95, -136, 94, 1684 173, -72, 173, 173, 173, 22, 173, 29, -42, -3, 1685 -139, 96, -68, -4, -17, -5, -19, 91, 90, -15, 1686 -16, -6, -142, -142, 74, 74, -3, 91, -2, -90, 1687 140, 29, -42, -71, -131, -130, 96, 92, 98, -3, 1688 95, 98, 164, -68, -111, 97, 97, -142, -142, 98, 1689 -128, -91, 78, 85, 6, 88, -71, 98, -131, -3, 1690 -68, 90, -3, 93, -4, 95, -140, 94, -4, -4, 1691 97, 97, -93, 85, -92, 6, 88, 86, 86, 89, 1692 91, 98, 95, -138, 94, -4, -141, 96, -68, 98, 1693 98, -4, -4, 75, 86, 86, 87, 89, 91, -3, 1694 -133, -132, 96, 92, 98, -4, 95, 93, 93, 98, 1695 98, -94, 85, -92, -130, 98, -133, -4, -68, 90, 1696 -4, 93, 93, 87, 91, 98, 95, -140, 94, 91, 1697 -4, -132, 1698 } 1699 1700 var yyDef = [...]int{ 1701 -2, -2, 2, 30, 31, 10, 11, 12, 13, 14, 1702 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 1703 25, -2, 27, 0, 413, 46, 47, -2, 0, 193, 1704 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 1705 0, 140, 0, 0, 85, 86, 0, 0, 0, 0, 1706 0, 0, 0, 166, 0, 172, 0, 0, 242, 243, 1707 244, -2, 246, 247, 248, 249, 250, 251, 252, 254, 1708 255, 256, 257, 258, 0, 260, 0, 39, 0, 519, 1709 506, 227, 228, 229, 230, 231, 0, 0, 0, 234, 1710 0, 0, 0, 0, 326, 0, 0, 0, 0, 508, 1711 0, 0, 0, 494, 502, 503, 504, 505, 0, 232, 1712 233, 239, 485, 486, 487, 488, 489, 490, 491, 492, 1713 493, 0, 0, -2, 240, 311, 245, 253, 0, 0, 1714 0, 413, 0, 414, 240, 219, 0, -2, 193, 0, 1715 0, 0, 0, 190, 0, 193, 195, 0, 0, 311, 1716 0, 525, 0, 76, 506, 500, 498, 77, 0, 79, 1717 0, 0, 0, 0, 0, 0, 84, 108, 110, 0, 1718 141, 142, 143, 144, 0, 0, 0, -2, -2, 240, 1719 240, 156, 168, -2, -2, -2, -2, -2, 167, 421, 1720 -2, -2, 173, 174, 0, 0, 240, 0, 0, 0, 1721 193, 240, 252, 0, 0, 37, 38, 40, 517, 517, 1722 517, 222, 225, 0, 520, 0, 507, 0, 523, 524, 1723 508, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1724 0, 0, 0, 305, 306, 0, 311, 311, 0, 506, 1725 506, 506, 311, 311, 311, 523, 524, 0, 0, 509, 1726 299, 309, 310, 0, 0, 0, 3, -2, 0, 0, 1727 311, 0, 471, 417, 0, 177, 203, 0, 0, 0, 1728 219, 193, 0, 0, 429, 378, 379, 358, 359, 0, 1729 361, 0, -2, -2, -2, -2, -2, 0, 0, 0, 1730 427, 195, 197, 0, 192, 495, 194, -2, 389, 392, 1731 393, 394, 0, 380, 381, 382, 0, 367, 368, 369, 1732 0, 312, 0, 0, 0, 0, 311, 0, 0, 0, 1733 0, 0, 0, 111, 116, 117, 125, 139, 0, 0, 1734 0, 0, 0, 0, -2, -2, 0, 0, 0, 0, 1735 0, 0, 0, 0, 0, -2, 228, 497, 241, 259, 1736 262, 276, -2, 0, 0, 0, 0, 0, 0, 518, 1737 0, 0, 519, 0, 191, 433, 408, 410, 234, 261, 1738 277, -2, -2, 0, 0, 0, 0, 0, 290, 0, 1739 263, -2, 0, 0, 300, 301, 302, 303, 304, 307, 1740 308, 235, 237, 0, 311, 0, 421, 317, 0, 311, 1741 311, 311, 0, 0, 0, 282, 284, 0, 0, 0, 1742 0, 508, 149, 0, 236, 238, 455, 319, 0, 0, 1743 -2, 0, 0, 0, 240, 0, 0, -2, -2, 202, 1744 267, 271, 179, 195, 0, 0, 0, 311, 0, 0, 1745 195, 0, 0, 197, 199, 0, 196, 0, 0, 512, 1746 510, 0, 511, 514, 515, 516, 390, 0, 510, -2, 1747 383, 0, 0, 320, 0, 0, 521, 0, 0, 0, 1748 0, 0, 0, 501, 499, 0, 0, 0, 0, 0, 1749 -2, -2, -2, -2, -2, -2, -2, -2, 109, 120, 1750 -2, 0, 122, 124, 165, -2, 154, 155, 169, 160, 1751 161, 422, -2, 0, 0, 41, 42, 0, 413, 51, 1752 52, 53, 28, 29, 0, 496, 0, 0, 0, 186, 1753 189, 187, 188, 226, 0, 0, 0, 0, 0, 285, 1754 286, 0, 0, 291, -2, 295, 297, 313, 0, 314, 1755 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, 1756 292, 0, 279, 0, 296, 298, 0, 0, 0, 455, 1757 -2, 0, 0, 472, 412, 418, 0, -2, 178, 0, 1758 209, 210, 206, 212, 213, 214, 215, 220, 217, 218, 1759 0, 269, 272, 273, 0, 197, 0, 0, 437, 193, 1760 441, 0, 234, 430, 0, 0, 240, -2, 361, 0, 1761 0, 451, 195, 428, 199, 185, 0, 0, 0, 0, 1762 0, 513, 0, 512, 426, -2, 0, 394, 391, 395, 1763 384, 240, 0, 0, 419, 0, 0, 522, 526, 101, 1764 0, 97, 92, 0, 0, 0, 323, 106, 107, 0, 1765 431, 115, 0, 0, 132, 133, 127, 130, 126, 0, 1766 0, 0, 112, 0, 0, -2, 240, 0, -2, -2, 1767 0, 0, 0, 0, 434, 409, 411, 287, 0, 0, 1768 321, 0, 322, 324, 325, 327, 0, 0, 0, 0, 1769 0, 0, 0, 265, -2, 0, 147, 0, 0, 0, 1770 0, 456, 240, 45, 415, 469, 240, 219, 207, 0, 1771 268, 0, 180, 199, 435, 0, 195, 0, 0, 360, 1772 370, 311, 0, 0, 0, 452, 201, 200, 198, 396, 1773 0, 510, 0, 0, 0, 0, 386, 0, 0, 0, 1774 0, 0, 0, 89, 90, 102, 103, 0, 0, 0, 1775 99, 0, 0, 0, 0, 0, 113, 0, 0, 0, 1776 0, 0, 0, 0, 0, 121, 119, 424, 32, 5, 1777 -2, 475, 0, 0, 0, -2, -2, 0, 0, 288, 1778 344, 0, 315, 0, 0, 0, 0, 0, 0, 344, 1779 344, 0, 344, 0, 289, 278, 0, 0, 148, 264, 1780 43, 0, -2, 416, 470, 0, 206, 205, 208, 270, 1781 274, 275, 201, 0, 439, 442, 440, 0, 0, 0, 1782 0, 219, 401, 397, 0, 0, 0, 510, 0, 399, 1783 0, 0, 0, 387, 234, 240, 0, 0, 420, -2, 1784 104, 105, 101, 0, 98, 93, 94, -2, -2, 344, 1785 0, 432, -2, 0, 128, 134, 131, 0, -2, 0, 1786 0, 459, 0, -2, 240, 0, 0, 0, 0, 223, 1787 0, 0, 342, 201, 0, 344, 0, 344, 344, 344, 1788 0, 344, 0, 201, 0, 0, 0, 0, 266, 0, 1789 44, 453, 204, 219, 0, 438, 371, 372, 311, 0, 1790 0, 181, 406, 0, 402, 398, 0, 404, 400, 0, 1791 388, 374, 311, 376, 311, 0, 449, 0, 0, 91, 1792 100, 0, 114, 0, 0, 54, 55, 0, 413, 68, 1793 69, 0, 61, -2, -2, 0, 0, 459, -2, 0, 1794 0, 476, -2, 33, 34, 0, 0, 0, 329, 341, 1795 0, 0, 0, 316, 0, 0, 0, 201, 0, 336, 1796 337, 344, 339, 344, 0, 454, 183, 436, 0, 0, 1797 445, 0, 0, 0, 403, 405, 0, 0, 447, 0, 1798 88, 332, 135, -2, 240, 0, 240, 252, 0, 0, 1799 -2, 0, 0, 0, 0, 0, 460, 240, 50, 473, 1800 35, 36, 0, 0, 345, 330, 331, 333, 334, 0, 1801 335, 0, 0, 280, 0, 373, 443, 0, 182, 407, 1802 375, 377, 0, 7, -2, 479, 0, -2, 0, 0, 1803 0, 0, 136, 137, -2, 48, 0, -2, 474, 0, 1804 224, 202, 328, 338, 340, 184, 0, 0, 450, 463, 1805 0, -2, 240, 0, 0, 63, 64, 0, 413, 73, 1806 74, 75, 0, 0, 0, 0, 0, 49, 457, 343, 1807 0, 0, 446, 448, 0, 463, -2, 0, 0, 480, 1808 -2, 0, -2, 240, 0, -2, -2, 0, 0, 138, 1809 458, 346, 0, 0, 0, 0, 444, 0, 0, 464, 1810 240, 67, 477, 56, 9, -2, 483, 0, 0, 0, 1811 -2, -2, 0, 0, 355, 0, 0, 348, 349, 350, 1812 65, 0, -2, 478, 0, 467, 0, -2, 240, 0, 1813 0, 0, 0, 0, 354, 351, 352, 353, 66, 461, 1814 0, 467, -2, 0, 0, 484, -2, 57, 58, 0, 1815 0, 347, 0, 357, 462, 0, 0, 468, 240, 72, 1816 481, 59, 60, 356, 70, 0, -2, 482, 0, 71, 1817 465, 466, 1818 } 1819 1820 var yyTok1 = [...]int{ 1821 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1822 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1823 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1824 3, 3, 3, 171, 3, 3, 3, 170, 3, 3, 1825 172, 173, 168, 167, 174, 166, 175, 169, 3, 3, 1826 3, 3, 3, 3, 3, 3, 3, 3, 3, 164, 1827 3, 165, 1828 } 1829 1830 var yyTok2 = [...]int{ 1831 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1832 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 1833 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 1834 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 1835 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 1836 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 1837 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 1838 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 1839 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 1840 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 1841 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 1842 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 1843 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 1844 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 1845 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 1846 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 1847 162, 163, 1848 } 1849 1850 var yyTok3 = [...]int{ 1851 0, 1852 } 1853 1854 var yyErrorMessages = [...]struct { 1855 state int 1856 token int 1857 msg string 1858 }{} 1859 1860 //line yaccpar:1 1861 1862 /* parser for yacc output */ 1863 1864 var ( 1865 yyDebug = 0 1866 yyErrorVerbose = false 1867 ) 1868 1869 type yyLexer interface { 1870 Lex(lval *yySymType) int 1871 Error(s string) 1872 } 1873 1874 type yyParser interface { 1875 Parse(yyLexer) int 1876 Lookahead() int 1877 } 1878 1879 type yyParserImpl struct { 1880 lval yySymType 1881 stack [yyInitialStackSize]yySymType 1882 char int 1883 } 1884 1885 func (p *yyParserImpl) Lookahead() int { 1886 return p.char 1887 } 1888 1889 func yyNewParser() yyParser { 1890 return &yyParserImpl{} 1891 } 1892 1893 const yyFlag = -1000 1894 1895 func yyTokname(c int) string { 1896 if c >= 1 && c-1 < len(yyToknames) { 1897 if yyToknames[c-1] != "" { 1898 return yyToknames[c-1] 1899 } 1900 } 1901 return __yyfmt__.Sprintf("tok-%v", c) 1902 } 1903 1904 func yyStatname(s int) string { 1905 if s >= 0 && s < len(yyStatenames) { 1906 if yyStatenames[s] != "" { 1907 return yyStatenames[s] 1908 } 1909 } 1910 return __yyfmt__.Sprintf("state-%v", s) 1911 } 1912 1913 func yyErrorMessage(state, lookAhead int) string { 1914 const TOKSTART = 4 1915 1916 if !yyErrorVerbose { 1917 return "syntax error" 1918 } 1919 1920 for _, e := range yyErrorMessages { 1921 if e.state == state && e.token == lookAhead { 1922 return "syntax error: " + e.msg 1923 } 1924 } 1925 1926 res := "syntax error: unexpected " + yyTokname(lookAhead) 1927 1928 // To match Bison, suggest at most four expected tokens. 1929 expected := make([]int, 0, 4) 1930 1931 // Look for shiftable tokens. 1932 base := yyPact[state] 1933 for tok := TOKSTART; tok-1 < len(yyToknames); tok++ { 1934 if n := base + tok; n >= 0 && n < yyLast && yyChk[yyAct[n]] == tok { 1935 if len(expected) == cap(expected) { 1936 return res 1937 } 1938 expected = append(expected, tok) 1939 } 1940 } 1941 1942 if yyDef[state] == -2 { 1943 i := 0 1944 for yyExca[i] != -1 || yyExca[i+1] != state { 1945 i += 2 1946 } 1947 1948 // Look for tokens that we accept or reduce. 1949 for i += 2; yyExca[i] >= 0; i += 2 { 1950 tok := yyExca[i] 1951 if tok < TOKSTART || yyExca[i+1] == 0 { 1952 continue 1953 } 1954 if len(expected) == cap(expected) { 1955 return res 1956 } 1957 expected = append(expected, tok) 1958 } 1959 1960 // If the default action is to accept or reduce, give up. 1961 if yyExca[i+1] != 0 { 1962 return res 1963 } 1964 } 1965 1966 for i, tok := range expected { 1967 if i == 0 { 1968 res += ", expecting " 1969 } else { 1970 res += " or " 1971 } 1972 res += yyTokname(tok) 1973 } 1974 return res 1975 } 1976 1977 func yylex1(lex yyLexer, lval *yySymType) (char, token int) { 1978 token = 0 1979 char = lex.Lex(lval) 1980 if char <= 0 { 1981 token = yyTok1[0] 1982 goto out 1983 } 1984 if char < len(yyTok1) { 1985 token = yyTok1[char] 1986 goto out 1987 } 1988 if char >= yyPrivate { 1989 if char < yyPrivate+len(yyTok2) { 1990 token = yyTok2[char-yyPrivate] 1991 goto out 1992 } 1993 } 1994 for i := 0; i < len(yyTok3); i += 2 { 1995 token = yyTok3[i+0] 1996 if token == char { 1997 token = yyTok3[i+1] 1998 goto out 1999 } 2000 } 2001 2002 out: 2003 if token == 0 { 2004 token = yyTok2[1] /* unknown char */ 2005 } 2006 if yyDebug >= 3 { 2007 __yyfmt__.Printf("lex %s(%d)\n", yyTokname(token), uint(char)) 2008 } 2009 return char, token 2010 } 2011 2012 func yyParse(yylex yyLexer) int { 2013 return yyNewParser().Parse(yylex) 2014 } 2015 2016 func (yyrcvr *yyParserImpl) Parse(yylex yyLexer) int { 2017 var yyn int 2018 var yyVAL yySymType 2019 var yyDollar []yySymType 2020 _ = yyDollar // silence set and not used 2021 yyS := yyrcvr.stack[:] 2022 2023 Nerrs := 0 /* number of errors */ 2024 Errflag := 0 /* error recovery flag */ 2025 yystate := 0 2026 yyrcvr.char = -1 2027 yytoken := -1 // yyrcvr.char translated into internal numbering 2028 defer func() { 2029 // Make sure we report no lookahead when not parsing. 2030 yystate = -1 2031 yyrcvr.char = -1 2032 yytoken = -1 2033 }() 2034 yyp := -1 2035 goto yystack 2036 2037 ret0: 2038 return 0 2039 2040 ret1: 2041 return 1 2042 2043 yystack: 2044 /* put a state and value onto the stack */ 2045 if yyDebug >= 4 { 2046 __yyfmt__.Printf("char %v in %v\n", yyTokname(yytoken), yyStatname(yystate)) 2047 } 2048 2049 yyp++ 2050 if yyp >= len(yyS) { 2051 nyys := make([]yySymType, len(yyS)*2) 2052 copy(nyys, yyS) 2053 yyS = nyys 2054 } 2055 yyS[yyp] = yyVAL 2056 yyS[yyp].yys = yystate 2057 2058 yynewstate: 2059 yyn = yyPact[yystate] 2060 if yyn <= yyFlag { 2061 goto yydefault /* simple state */ 2062 } 2063 if yyrcvr.char < 0 { 2064 yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval) 2065 } 2066 yyn += yytoken 2067 if yyn < 0 || yyn >= yyLast { 2068 goto yydefault 2069 } 2070 yyn = yyAct[yyn] 2071 if yyChk[yyn] == yytoken { /* valid shift */ 2072 yyrcvr.char = -1 2073 yytoken = -1 2074 yyVAL = yyrcvr.lval 2075 yystate = yyn 2076 if Errflag > 0 { 2077 Errflag-- 2078 } 2079 goto yystack 2080 } 2081 2082 yydefault: 2083 /* default state action */ 2084 yyn = yyDef[yystate] 2085 if yyn == -2 { 2086 if yyrcvr.char < 0 { 2087 yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval) 2088 } 2089 2090 /* look through exception table */ 2091 xi := 0 2092 for { 2093 if yyExca[xi+0] == -1 && yyExca[xi+1] == yystate { 2094 break 2095 } 2096 xi += 2 2097 } 2098 for xi += 2; ; xi += 2 { 2099 yyn = yyExca[xi+0] 2100 if yyn < 0 || yyn == yytoken { 2101 break 2102 } 2103 } 2104 yyn = yyExca[xi+1] 2105 if yyn < 0 { 2106 goto ret0 2107 } 2108 } 2109 if yyn == 0 { 2110 /* error ... attempt to resume parsing */ 2111 switch Errflag { 2112 case 0: /* brand new error */ 2113 yylex.Error(yyErrorMessage(yystate, yytoken)) 2114 Nerrs++ 2115 if yyDebug >= 1 { 2116 __yyfmt__.Printf("%s", yyStatname(yystate)) 2117 __yyfmt__.Printf(" saw %s\n", yyTokname(yytoken)) 2118 } 2119 fallthrough 2120 2121 case 1, 2: /* incompletely recovered error ... try again */ 2122 Errflag = 3 2123 2124 /* find a state where "error" is a legal shift action */ 2125 for yyp >= 0 { 2126 yyn = yyPact[yyS[yyp].yys] + yyErrCode 2127 if yyn >= 0 && yyn < yyLast { 2128 yystate = yyAct[yyn] /* simulate a shift of "error" */ 2129 if yyChk[yystate] == yyErrCode { 2130 goto yystack 2131 } 2132 } 2133 2134 /* the current p has no shift on "error", pop stack */ 2135 if yyDebug >= 2 { 2136 __yyfmt__.Printf("error recovery pops state %d\n", yyS[yyp].yys) 2137 } 2138 yyp-- 2139 } 2140 /* there is no state on the stack with an error shift ... abort */ 2141 goto ret1 2142 2143 case 3: /* no shift yet; clobber input char */ 2144 if yyDebug >= 2 { 2145 __yyfmt__.Printf("error recovery discards %s\n", yyTokname(yytoken)) 2146 } 2147 if yytoken == yyEofCode { 2148 goto ret1 2149 } 2150 yyrcvr.char = -1 2151 yytoken = -1 2152 goto yynewstate /* try again in the same state */ 2153 } 2154 } 2155 2156 /* reduction by production yyn */ 2157 if yyDebug >= 2 { 2158 __yyfmt__.Printf("reduce %v in:\n\t%v\n", yyn, yyStatname(yystate)) 2159 } 2160 2161 yynt := yyn 2162 yypt := yyp 2163 _ = yypt // guard against "declared and not used" 2164 2165 yyp -= yyR2[yyn] 2166 // yyp is now the index of $0. Perform the default action. Iff the 2167 // reduced production is ε, $1 is possibly out of range. 2168 if yyp+1 >= len(yyS) { 2169 nyys := make([]yySymType, len(yyS)*2) 2170 copy(nyys, yyS) 2171 yyS = nyys 2172 } 2173 yyVAL = yyS[yyp+1] 2174 2175 /* consult goto table to find next state */ 2176 yyn = yyR1[yyn] 2177 yyg := yyPgo[yyn] 2178 yyj := yyg + yyS[yyp].yys + 1 2179 2180 if yyj >= yyLast { 2181 yystate = yyAct[yyg] 2182 } else { 2183 yystate = yyAct[yyj] 2184 if yyChk[yystate] != -yyn { 2185 yystate = yyAct[yyg] 2186 } 2187 } 2188 // dummy call; replaced with literal code 2189 switch yynt { 2190 2191 case 1: 2192 yyDollar = yyS[yypt-0 : yypt+1] 2193 //line lib/parser/parser.y:254 2194 { 2195 yyVAL.program = nil 2196 yylex.(*Lexer).program = yyVAL.program 2197 } 2198 case 2: 2199 yyDollar = yyS[yypt-1 : yypt+1] 2200 //line lib/parser/parser.y:259 2201 { 2202 yyVAL.program = []Statement{yyDollar[1].statement} 2203 yylex.(*Lexer).program = yyVAL.program 2204 } 2205 case 3: 2206 yyDollar = yyS[yypt-3 : yypt+1] 2207 //line lib/parser/parser.y:264 2208 { 2209 yyVAL.program = append([]Statement{yyDollar[1].statement}, yyDollar[3].program...) 2210 yylex.(*Lexer).program = yyVAL.program 2211 } 2212 case 4: 2213 yyDollar = yyS[yypt-0 : yypt+1] 2214 //line lib/parser/parser.y:271 2215 { 2216 yyVAL.program = nil 2217 } 2218 case 5: 2219 yyDollar = yyS[yypt-3 : yypt+1] 2220 //line lib/parser/parser.y:275 2221 { 2222 yyVAL.program = append([]Statement{yyDollar[1].statement}, yyDollar[3].program...) 2223 } 2224 case 6: 2225 yyDollar = yyS[yypt-0 : yypt+1] 2226 //line lib/parser/parser.y:281 2227 { 2228 yyVAL.program = nil 2229 } 2230 case 7: 2231 yyDollar = yyS[yypt-3 : yypt+1] 2232 //line lib/parser/parser.y:285 2233 { 2234 yyVAL.program = append([]Statement{yyDollar[1].statement}, yyDollar[3].program...) 2235 } 2236 case 8: 2237 yyDollar = yyS[yypt-0 : yypt+1] 2238 //line lib/parser/parser.y:291 2239 { 2240 yyVAL.program = nil 2241 } 2242 case 9: 2243 yyDollar = yyS[yypt-3 : yypt+1] 2244 //line lib/parser/parser.y:295 2245 { 2246 yyVAL.program = append([]Statement{yyDollar[1].statement}, yyDollar[3].program...) 2247 } 2248 case 10: 2249 yyDollar = yyS[yypt-1 : yypt+1] 2250 //line lib/parser/parser.y:301 2251 { 2252 yyVAL.statement = yyDollar[1].queryexpr 2253 } 2254 case 11: 2255 yyDollar = yyS[yypt-1 : yypt+1] 2256 //line lib/parser/parser.y:305 2257 { 2258 yyVAL.statement = yyDollar[1].queryexpr 2259 } 2260 case 12: 2261 yyDollar = yyS[yypt-1 : yypt+1] 2262 //line lib/parser/parser.y:309 2263 { 2264 yyVAL.statement = yyDollar[1].expression 2265 } 2266 case 13: 2267 yyDollar = yyS[yypt-1 : yypt+1] 2268 //line lib/parser/parser.y:313 2269 { 2270 yyVAL.statement = yyDollar[1].expression 2271 } 2272 case 14: 2273 yyDollar = yyS[yypt-1 : yypt+1] 2274 //line lib/parser/parser.y:317 2275 { 2276 yyVAL.statement = yyDollar[1].expression 2277 } 2278 case 15: 2279 yyDollar = yyS[yypt-1 : yypt+1] 2280 //line lib/parser/parser.y:321 2281 { 2282 yyVAL.statement = yyDollar[1].expression 2283 } 2284 case 16: 2285 yyDollar = yyS[yypt-1 : yypt+1] 2286 //line lib/parser/parser.y:325 2287 { 2288 yyVAL.statement = yyDollar[1].statement 2289 } 2290 case 17: 2291 yyDollar = yyS[yypt-1 : yypt+1] 2292 //line lib/parser/parser.y:329 2293 { 2294 yyVAL.statement = yyDollar[1].statement 2295 } 2296 case 18: 2297 yyDollar = yyS[yypt-1 : yypt+1] 2298 //line lib/parser/parser.y:333 2299 { 2300 yyVAL.statement = yyDollar[1].statement 2301 } 2302 case 19: 2303 yyDollar = yyS[yypt-1 : yypt+1] 2304 //line lib/parser/parser.y:337 2305 { 2306 yyVAL.statement = yyDollar[1].statement 2307 } 2308 case 20: 2309 yyDollar = yyS[yypt-1 : yypt+1] 2310 //line lib/parser/parser.y:341 2311 { 2312 yyVAL.statement = yyDollar[1].statement 2313 } 2314 case 21: 2315 yyDollar = yyS[yypt-1 : yypt+1] 2316 //line lib/parser/parser.y:345 2317 { 2318 yyVAL.statement = yyDollar[1].statement 2319 } 2320 case 22: 2321 yyDollar = yyS[yypt-1 : yypt+1] 2322 //line lib/parser/parser.y:349 2323 { 2324 yyVAL.statement = yyDollar[1].statement 2325 } 2326 case 23: 2327 yyDollar = yyS[yypt-1 : yypt+1] 2328 //line lib/parser/parser.y:353 2329 { 2330 yyVAL.statement = yyDollar[1].statement 2331 } 2332 case 24: 2333 yyDollar = yyS[yypt-1 : yypt+1] 2334 //line lib/parser/parser.y:357 2335 { 2336 yyVAL.statement = yyDollar[1].statement 2337 } 2338 case 25: 2339 yyDollar = yyS[yypt-1 : yypt+1] 2340 //line lib/parser/parser.y:361 2341 { 2342 yyVAL.statement = yyDollar[1].statement 2343 } 2344 case 26: 2345 yyDollar = yyS[yypt-1 : yypt+1] 2346 //line lib/parser/parser.y:365 2347 { 2348 yyVAL.statement = yyDollar[1].queryexpr 2349 } 2350 case 27: 2351 yyDollar = yyS[yypt-1 : yypt+1] 2352 //line lib/parser/parser.y:369 2353 { 2354 yyVAL.statement = ExternalCommand{BaseExpr: NewBaseExpr(yyDollar[1].token), Command: yyDollar[1].token.Literal} 2355 } 2356 case 28: 2357 yyDollar = yyS[yypt-1 : yypt+1] 2358 //line lib/parser/parser.y:375 2359 { 2360 yyVAL.statement = FlowControl{Token: yyDollar[1].token.Token} 2361 } 2362 case 29: 2363 yyDollar = yyS[yypt-1 : yypt+1] 2364 //line lib/parser/parser.y:379 2365 { 2366 yyVAL.statement = FlowControl{Token: yyDollar[1].token.Token} 2367 } 2368 case 30: 2369 yyDollar = yyS[yypt-1 : yypt+1] 2370 //line lib/parser/parser.y:385 2371 { 2372 yyVAL.statement = yyDollar[1].statement 2373 } 2374 case 31: 2375 yyDollar = yyS[yypt-1 : yypt+1] 2376 //line lib/parser/parser.y:389 2377 { 2378 yyVAL.statement = yyDollar[1].statement 2379 } 2380 case 32: 2381 yyDollar = yyS[yypt-6 : yypt+1] 2382 //line lib/parser/parser.y:395 2383 { 2384 yyVAL.statement = While{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program} 2385 } 2386 case 33: 2387 yyDollar = yyS[yypt-8 : yypt+1] 2388 //line lib/parser/parser.y:399 2389 { 2390 yyVAL.statement = WhileInCursor{Variables: []Variable{yyDollar[2].variable}, Cursor: yyDollar[4].identifier, Statements: yyDollar[6].program} 2391 } 2392 case 34: 2393 yyDollar = yyS[yypt-8 : yypt+1] 2394 //line lib/parser/parser.y:403 2395 { 2396 yyVAL.statement = WhileInCursor{Variables: yyDollar[2].variables, Cursor: yyDollar[4].identifier, Statements: yyDollar[6].program} 2397 } 2398 case 35: 2399 yyDollar = yyS[yypt-9 : yypt+1] 2400 //line lib/parser/parser.y:407 2401 { 2402 yyVAL.statement = WhileInCursor{WithDeclaration: true, Variables: []Variable{yyDollar[3].variable}, Cursor: yyDollar[5].identifier, Statements: yyDollar[7].program} 2403 } 2404 case 36: 2405 yyDollar = yyS[yypt-9 : yypt+1] 2406 //line lib/parser/parser.y:411 2407 { 2408 yyVAL.statement = WhileInCursor{WithDeclaration: true, Variables: yyDollar[3].variables, Cursor: yyDollar[5].identifier, Statements: yyDollar[7].program} 2409 } 2410 case 37: 2411 yyDollar = yyS[yypt-1 : yypt+1] 2412 //line lib/parser/parser.y:417 2413 { 2414 yyVAL.token = yyDollar[1].token 2415 } 2416 case 38: 2417 yyDollar = yyS[yypt-1 : yypt+1] 2418 //line lib/parser/parser.y:421 2419 { 2420 yyVAL.token = yyDollar[1].token 2421 } 2422 case 39: 2423 yyDollar = yyS[yypt-1 : yypt+1] 2424 //line lib/parser/parser.y:427 2425 { 2426 yyVAL.statement = Exit{} 2427 } 2428 case 40: 2429 yyDollar = yyS[yypt-2 : yypt+1] 2430 //line lib/parser/parser.y:431 2431 { 2432 yyVAL.statement = Exit{Code: value.NewIntegerFromString(yyDollar[2].token.Literal)} 2433 } 2434 case 41: 2435 yyDollar = yyS[yypt-1 : yypt+1] 2436 //line lib/parser/parser.y:437 2437 { 2438 yyVAL.statement = yyDollar[1].statement 2439 } 2440 case 42: 2441 yyDollar = yyS[yypt-1 : yypt+1] 2442 //line lib/parser/parser.y:441 2443 { 2444 yyVAL.statement = yyDollar[1].statement 2445 } 2446 case 43: 2447 yyDollar = yyS[yypt-7 : yypt+1] 2448 //line lib/parser/parser.y:447 2449 { 2450 yyVAL.statement = If{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program, Else: yyDollar[5].elseexpr} 2451 } 2452 case 44: 2453 yyDollar = yyS[yypt-8 : yypt+1] 2454 //line lib/parser/parser.y:451 2455 { 2456 yyVAL.statement = If{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program, ElseIf: yyDollar[5].elseif, Else: yyDollar[6].elseexpr} 2457 } 2458 case 45: 2459 yyDollar = yyS[yypt-6 : yypt+1] 2460 //line lib/parser/parser.y:455 2461 { 2462 yyVAL.statement = Case{Value: yyDollar[2].queryexpr, When: yyDollar[3].casewhen, Else: yyDollar[4].caseelse} 2463 } 2464 case 46: 2465 yyDollar = yyS[yypt-1 : yypt+1] 2466 //line lib/parser/parser.y:459 2467 { 2468 yyVAL.statement = yyDollar[1].statement 2469 } 2470 case 47: 2471 yyDollar = yyS[yypt-1 : yypt+1] 2472 //line lib/parser/parser.y:463 2473 { 2474 yyVAL.statement = yyDollar[1].statement 2475 } 2476 case 48: 2477 yyDollar = yyS[yypt-7 : yypt+1] 2478 //line lib/parser/parser.y:469 2479 { 2480 yyVAL.statement = If{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program, Else: yyDollar[5].elseexpr} 2481 } 2482 case 49: 2483 yyDollar = yyS[yypt-8 : yypt+1] 2484 //line lib/parser/parser.y:473 2485 { 2486 yyVAL.statement = If{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program, ElseIf: yyDollar[5].elseif, Else: yyDollar[6].elseexpr} 2487 } 2488 case 50: 2489 yyDollar = yyS[yypt-6 : yypt+1] 2490 //line lib/parser/parser.y:477 2491 { 2492 yyVAL.statement = Case{Value: yyDollar[2].queryexpr, When: yyDollar[3].casewhen, Else: yyDollar[4].caseelse} 2493 } 2494 case 51: 2495 yyDollar = yyS[yypt-1 : yypt+1] 2496 //line lib/parser/parser.y:481 2497 { 2498 yyVAL.statement = yyDollar[1].statement 2499 } 2500 case 52: 2501 yyDollar = yyS[yypt-1 : yypt+1] 2502 //line lib/parser/parser.y:485 2503 { 2504 yyVAL.statement = yyDollar[1].statement 2505 } 2506 case 53: 2507 yyDollar = yyS[yypt-1 : yypt+1] 2508 //line lib/parser/parser.y:489 2509 { 2510 yyVAL.statement = yyDollar[1].statement 2511 } 2512 case 54: 2513 yyDollar = yyS[yypt-1 : yypt+1] 2514 //line lib/parser/parser.y:495 2515 { 2516 yyVAL.statement = yyDollar[1].statement 2517 } 2518 case 55: 2519 yyDollar = yyS[yypt-1 : yypt+1] 2520 //line lib/parser/parser.y:499 2521 { 2522 yyVAL.statement = yyDollar[1].statement 2523 } 2524 case 56: 2525 yyDollar = yyS[yypt-6 : yypt+1] 2526 //line lib/parser/parser.y:505 2527 { 2528 yyVAL.statement = While{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program} 2529 } 2530 case 57: 2531 yyDollar = yyS[yypt-8 : yypt+1] 2532 //line lib/parser/parser.y:509 2533 { 2534 yyVAL.statement = WhileInCursor{Variables: []Variable{yyDollar[2].variable}, Cursor: yyDollar[4].identifier, Statements: yyDollar[6].program} 2535 } 2536 case 58: 2537 yyDollar = yyS[yypt-8 : yypt+1] 2538 //line lib/parser/parser.y:513 2539 { 2540 yyVAL.statement = WhileInCursor{Variables: yyDollar[2].variables, Cursor: yyDollar[4].identifier, Statements: yyDollar[6].program} 2541 } 2542 case 59: 2543 yyDollar = yyS[yypt-9 : yypt+1] 2544 //line lib/parser/parser.y:517 2545 { 2546 yyVAL.statement = WhileInCursor{WithDeclaration: true, Variables: []Variable{yyDollar[3].variable}, Cursor: yyDollar[5].identifier, Statements: yyDollar[7].program} 2547 } 2548 case 60: 2549 yyDollar = yyS[yypt-9 : yypt+1] 2550 //line lib/parser/parser.y:521 2551 { 2552 yyVAL.statement = WhileInCursor{WithDeclaration: true, Variables: yyDollar[3].variables, Cursor: yyDollar[5].identifier, Statements: yyDollar[7].program} 2553 } 2554 case 61: 2555 yyDollar = yyS[yypt-1 : yypt+1] 2556 //line lib/parser/parser.y:527 2557 { 2558 yyVAL.statement = Return{Value: NewNullValue()} 2559 } 2560 case 62: 2561 yyDollar = yyS[yypt-2 : yypt+1] 2562 //line lib/parser/parser.y:531 2563 { 2564 yyVAL.statement = Return{Value: yyDollar[2].queryexpr} 2565 } 2566 case 63: 2567 yyDollar = yyS[yypt-1 : yypt+1] 2568 //line lib/parser/parser.y:537 2569 { 2570 yyVAL.statement = yyDollar[1].statement 2571 } 2572 case 64: 2573 yyDollar = yyS[yypt-1 : yypt+1] 2574 //line lib/parser/parser.y:541 2575 { 2576 yyVAL.statement = yyDollar[1].statement 2577 } 2578 case 65: 2579 yyDollar = yyS[yypt-7 : yypt+1] 2580 //line lib/parser/parser.y:547 2581 { 2582 yyVAL.statement = If{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program, Else: yyDollar[5].elseexpr} 2583 } 2584 case 66: 2585 yyDollar = yyS[yypt-8 : yypt+1] 2586 //line lib/parser/parser.y:551 2587 { 2588 yyVAL.statement = If{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program, ElseIf: yyDollar[5].elseif, Else: yyDollar[6].elseexpr} 2589 } 2590 case 67: 2591 yyDollar = yyS[yypt-6 : yypt+1] 2592 //line lib/parser/parser.y:555 2593 { 2594 yyVAL.statement = Case{Value: yyDollar[2].queryexpr, When: yyDollar[3].casewhen, Else: yyDollar[4].caseelse} 2595 } 2596 case 68: 2597 yyDollar = yyS[yypt-1 : yypt+1] 2598 //line lib/parser/parser.y:559 2599 { 2600 yyVAL.statement = yyDollar[1].statement 2601 } 2602 case 69: 2603 yyDollar = yyS[yypt-1 : yypt+1] 2604 //line lib/parser/parser.y:563 2605 { 2606 yyVAL.statement = yyDollar[1].statement 2607 } 2608 case 70: 2609 yyDollar = yyS[yypt-7 : yypt+1] 2610 //line lib/parser/parser.y:569 2611 { 2612 yyVAL.statement = If{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program, Else: yyDollar[5].elseexpr} 2613 } 2614 case 71: 2615 yyDollar = yyS[yypt-8 : yypt+1] 2616 //line lib/parser/parser.y:573 2617 { 2618 yyVAL.statement = If{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program, ElseIf: yyDollar[5].elseif, Else: yyDollar[6].elseexpr} 2619 } 2620 case 72: 2621 yyDollar = yyS[yypt-6 : yypt+1] 2622 //line lib/parser/parser.y:577 2623 { 2624 yyVAL.statement = Case{Value: yyDollar[2].queryexpr, When: yyDollar[3].casewhen, Else: yyDollar[4].caseelse} 2625 } 2626 case 73: 2627 yyDollar = yyS[yypt-1 : yypt+1] 2628 //line lib/parser/parser.y:581 2629 { 2630 yyVAL.statement = yyDollar[1].statement 2631 } 2632 case 74: 2633 yyDollar = yyS[yypt-1 : yypt+1] 2634 //line lib/parser/parser.y:585 2635 { 2636 yyVAL.statement = yyDollar[1].statement 2637 } 2638 case 75: 2639 yyDollar = yyS[yypt-1 : yypt+1] 2640 //line lib/parser/parser.y:589 2641 { 2642 yyVAL.statement = yyDollar[1].statement 2643 } 2644 case 76: 2645 yyDollar = yyS[yypt-2 : yypt+1] 2646 //line lib/parser/parser.y:595 2647 { 2648 yyVAL.statement = VariableDeclaration{Assignments: yyDollar[2].varassigns} 2649 } 2650 case 77: 2651 yyDollar = yyS[yypt-2 : yypt+1] 2652 //line lib/parser/parser.y:599 2653 { 2654 yyVAL.statement = VariableDeclaration{Assignments: yyDollar[2].varassigns} 2655 } 2656 case 78: 2657 yyDollar = yyS[yypt-1 : yypt+1] 2658 //line lib/parser/parser.y:603 2659 { 2660 yyVAL.statement = yyDollar[1].queryexpr 2661 } 2662 case 79: 2663 yyDollar = yyS[yypt-2 : yypt+1] 2664 //line lib/parser/parser.y:607 2665 { 2666 yyVAL.statement = DisposeVariable{Variable: yyDollar[2].variable} 2667 } 2668 case 80: 2669 yyDollar = yyS[yypt-4 : yypt+1] 2670 //line lib/parser/parser.y:613 2671 { 2672 yyVAL.statement = SetEnvVar{EnvVar: yyDollar[2].envvar, Value: yyDollar[4].queryexpr} 2673 } 2674 case 81: 2675 yyDollar = yyS[yypt-4 : yypt+1] 2676 //line lib/parser/parser.y:617 2677 { 2678 yyVAL.statement = SetEnvVar{EnvVar: yyDollar[2].envvar, Value: yyDollar[4].identifier} 2679 } 2680 case 82: 2681 yyDollar = yyS[yypt-4 : yypt+1] 2682 //line lib/parser/parser.y:621 2683 { 2684 yyVAL.statement = SetEnvVar{EnvVar: yyDollar[2].envvar, Value: yyDollar[4].queryexpr} 2685 } 2686 case 83: 2687 yyDollar = yyS[yypt-4 : yypt+1] 2688 //line lib/parser/parser.y:625 2689 { 2690 yyVAL.statement = SetEnvVar{EnvVar: yyDollar[2].envvar, Value: yyDollar[4].identifier} 2691 } 2692 case 84: 2693 yyDollar = yyS[yypt-2 : yypt+1] 2694 //line lib/parser/parser.y:629 2695 { 2696 yyVAL.statement = UnsetEnvVar{EnvVar: yyDollar[2].envvar} 2697 } 2698 case 85: 2699 yyDollar = yyS[yypt-1 : yypt+1] 2700 //line lib/parser/parser.y:635 2701 { 2702 yyVAL.statement = TransactionControl{BaseExpr: NewBaseExpr(yyDollar[1].token), Token: yyDollar[1].token.Token} 2703 } 2704 case 86: 2705 yyDollar = yyS[yypt-1 : yypt+1] 2706 //line lib/parser/parser.y:639 2707 { 2708 yyVAL.statement = TransactionControl{BaseExpr: NewBaseExpr(yyDollar[1].token), Token: yyDollar[1].token.Token} 2709 } 2710 case 87: 2711 yyDollar = yyS[yypt-7 : yypt+1] 2712 //line lib/parser/parser.y:645 2713 { 2714 yyVAL.statement = CreateTable{Table: yyDollar[4].identifier, Fields: yyDollar[6].queryexprs, IfNotExists: yyDollar[3].bool} 2715 } 2716 case 88: 2717 yyDollar = yyS[yypt-9 : yypt+1] 2718 //line lib/parser/parser.y:649 2719 { 2720 yyVAL.statement = CreateTable{Table: yyDollar[4].identifier, Fields: yyDollar[6].queryexprs, Query: yyDollar[9].queryexpr, IfNotExists: yyDollar[3].bool} 2721 } 2722 case 89: 2723 yyDollar = yyS[yypt-6 : yypt+1] 2724 //line lib/parser/parser.y:653 2725 { 2726 yyVAL.statement = CreateTable{Table: yyDollar[4].identifier, Query: yyDollar[6].queryexpr, IfNotExists: yyDollar[3].bool} 2727 } 2728 case 90: 2729 yyDollar = yyS[yypt-6 : yypt+1] 2730 //line lib/parser/parser.y:657 2731 { 2732 yyVAL.statement = AddColumns{Table: yyDollar[3].queryexpr, Columns: []ColumnDefault{yyDollar[5].columndef}, Position: yyDollar[6].expression} 2733 } 2734 case 91: 2735 yyDollar = yyS[yypt-8 : yypt+1] 2736 //line lib/parser/parser.y:661 2737 { 2738 yyVAL.statement = AddColumns{Table: yyDollar[3].queryexpr, Columns: yyDollar[6].columndefs, Position: yyDollar[8].expression} 2739 } 2740 case 92: 2741 yyDollar = yyS[yypt-5 : yypt+1] 2742 //line lib/parser/parser.y:665 2743 { 2744 yyVAL.statement = DropColumns{Table: yyDollar[3].queryexpr, Columns: []QueryExpression{yyDollar[5].queryexpr}} 2745 } 2746 case 93: 2747 yyDollar = yyS[yypt-7 : yypt+1] 2748 //line lib/parser/parser.y:669 2749 { 2750 yyVAL.statement = DropColumns{Table: yyDollar[3].queryexpr, Columns: yyDollar[6].queryexprs} 2751 } 2752 case 94: 2753 yyDollar = yyS[yypt-7 : yypt+1] 2754 //line lib/parser/parser.y:673 2755 { 2756 yyVAL.statement = RenameColumn{Table: yyDollar[3].queryexpr, Old: yyDollar[5].queryexpr, New: yyDollar[7].identifier} 2757 } 2758 case 95: 2759 yyDollar = yyS[yypt-7 : yypt+1] 2760 //line lib/parser/parser.y:677 2761 { 2762 yyVAL.statement = SetTableAttribute{BaseExpr: NewBaseExpr(yyDollar[1].token), Table: yyDollar[3].queryexpr, Attribute: yyDollar[5].identifier, Value: yyDollar[7].identifier} 2763 } 2764 case 96: 2765 yyDollar = yyS[yypt-7 : yypt+1] 2766 //line lib/parser/parser.y:681 2767 { 2768 yyVAL.statement = SetTableAttribute{BaseExpr: NewBaseExpr(yyDollar[1].token), Table: yyDollar[3].queryexpr, Attribute: yyDollar[5].identifier, Value: yyDollar[7].queryexpr} 2769 } 2770 case 97: 2771 yyDollar = yyS[yypt-1 : yypt+1] 2772 //line lib/parser/parser.y:687 2773 { 2774 yyVAL.columndef = ColumnDefault{Column: yyDollar[1].identifier} 2775 } 2776 case 98: 2777 yyDollar = yyS[yypt-3 : yypt+1] 2778 //line lib/parser/parser.y:691 2779 { 2780 yyVAL.columndef = ColumnDefault{Column: yyDollar[1].identifier, Value: yyDollar[3].queryexpr} 2781 } 2782 case 99: 2783 yyDollar = yyS[yypt-1 : yypt+1] 2784 //line lib/parser/parser.y:697 2785 { 2786 yyVAL.columndefs = []ColumnDefault{yyDollar[1].columndef} 2787 } 2788 case 100: 2789 yyDollar = yyS[yypt-3 : yypt+1] 2790 //line lib/parser/parser.y:701 2791 { 2792 yyVAL.columndefs = append([]ColumnDefault{yyDollar[1].columndef}, yyDollar[3].columndefs...) 2793 } 2794 case 101: 2795 yyDollar = yyS[yypt-0 : yypt+1] 2796 //line lib/parser/parser.y:707 2797 { 2798 yyVAL.expression = nil 2799 } 2800 case 102: 2801 yyDollar = yyS[yypt-1 : yypt+1] 2802 //line lib/parser/parser.y:711 2803 { 2804 yyVAL.expression = ColumnPosition{Position: yyDollar[1].token} 2805 } 2806 case 103: 2807 yyDollar = yyS[yypt-1 : yypt+1] 2808 //line lib/parser/parser.y:715 2809 { 2810 yyVAL.expression = ColumnPosition{Position: yyDollar[1].token} 2811 } 2812 case 104: 2813 yyDollar = yyS[yypt-2 : yypt+1] 2814 //line lib/parser/parser.y:719 2815 { 2816 yyVAL.expression = ColumnPosition{Position: yyDollar[1].token, Column: yyDollar[2].queryexpr} 2817 } 2818 case 105: 2819 yyDollar = yyS[yypt-2 : yypt+1] 2820 //line lib/parser/parser.y:723 2821 { 2822 yyVAL.expression = ColumnPosition{Position: yyDollar[1].token, Column: yyDollar[2].queryexpr} 2823 } 2824 case 106: 2825 yyDollar = yyS[yypt-5 : yypt+1] 2826 //line lib/parser/parser.y:729 2827 { 2828 yyVAL.statement = CursorDeclaration{Cursor: yyDollar[2].identifier, Query: yyDollar[5].queryexpr.(SelectQuery)} 2829 } 2830 case 107: 2831 yyDollar = yyS[yypt-5 : yypt+1] 2832 //line lib/parser/parser.y:733 2833 { 2834 yyVAL.statement = CursorDeclaration{Cursor: yyDollar[2].identifier, Statement: yyDollar[5].identifier} 2835 } 2836 case 108: 2837 yyDollar = yyS[yypt-2 : yypt+1] 2838 //line lib/parser/parser.y:737 2839 { 2840 yyVAL.statement = OpenCursor{Cursor: yyDollar[2].identifier} 2841 } 2842 case 109: 2843 yyDollar = yyS[yypt-4 : yypt+1] 2844 //line lib/parser/parser.y:741 2845 { 2846 yyVAL.statement = OpenCursor{Cursor: yyDollar[2].identifier, Values: yyDollar[4].replacevals} 2847 } 2848 case 110: 2849 yyDollar = yyS[yypt-2 : yypt+1] 2850 //line lib/parser/parser.y:745 2851 { 2852 yyVAL.statement = CloseCursor{Cursor: yyDollar[2].identifier} 2853 } 2854 case 111: 2855 yyDollar = yyS[yypt-3 : yypt+1] 2856 //line lib/parser/parser.y:749 2857 { 2858 yyVAL.statement = DisposeCursor{Cursor: yyDollar[3].identifier} 2859 } 2860 case 112: 2861 yyDollar = yyS[yypt-5 : yypt+1] 2862 //line lib/parser/parser.y:753 2863 { 2864 yyVAL.statement = FetchCursor{Position: yyDollar[2].fetchpos, Cursor: yyDollar[3].identifier, Variables: yyDollar[5].variables} 2865 } 2866 case 113: 2867 yyDollar = yyS[yypt-6 : yypt+1] 2868 //line lib/parser/parser.y:759 2869 { 2870 yyVAL.statement = ViewDeclaration{View: yyDollar[2].identifier, Fields: yyDollar[5].queryexprs} 2871 } 2872 case 114: 2873 yyDollar = yyS[yypt-8 : yypt+1] 2874 //line lib/parser/parser.y:763 2875 { 2876 yyVAL.statement = ViewDeclaration{View: yyDollar[2].identifier, Fields: yyDollar[5].queryexprs, Query: yyDollar[8].queryexpr} 2877 } 2878 case 115: 2879 yyDollar = yyS[yypt-5 : yypt+1] 2880 //line lib/parser/parser.y:767 2881 { 2882 yyVAL.statement = ViewDeclaration{View: yyDollar[2].identifier, Query: yyDollar[5].queryexpr} 2883 } 2884 case 116: 2885 yyDollar = yyS[yypt-3 : yypt+1] 2886 //line lib/parser/parser.y:771 2887 { 2888 yyVAL.statement = DisposeView{View: yyDollar[3].identifier} 2889 } 2890 case 117: 2891 yyDollar = yyS[yypt-3 : yypt+1] 2892 //line lib/parser/parser.y:775 2893 { 2894 yyVAL.statement = DisposeView{View: Stdin{BaseExpr: NewBaseExpr(yyDollar[3].token)}} 2895 } 2896 case 118: 2897 yyDollar = yyS[yypt-1 : yypt+1] 2898 //line lib/parser/parser.y:781 2899 { 2900 yyVAL.replaceval = ReplaceValue{Value: yyDollar[1].queryexpr} 2901 } 2902 case 119: 2903 yyDollar = yyS[yypt-3 : yypt+1] 2904 //line lib/parser/parser.y:785 2905 { 2906 yyVAL.replaceval = ReplaceValue{Value: yyDollar[1].queryexpr, Name: yyDollar[3].identifier} 2907 } 2908 case 120: 2909 yyDollar = yyS[yypt-1 : yypt+1] 2910 //line lib/parser/parser.y:791 2911 { 2912 yyVAL.replacevals = []ReplaceValue{yyDollar[1].replaceval} 2913 } 2914 case 121: 2915 yyDollar = yyS[yypt-3 : yypt+1] 2916 //line lib/parser/parser.y:795 2917 { 2918 yyVAL.replacevals = append([]ReplaceValue{yyDollar[1].replaceval}, yyDollar[3].replacevals...) 2919 } 2920 case 122: 2921 yyDollar = yyS[yypt-4 : yypt+1] 2922 //line lib/parser/parser.y:801 2923 { 2924 yyVAL.statement = StatementPreparation{Name: yyDollar[2].identifier, Statement: value.NewString(yyDollar[4].token.Literal)} 2925 } 2926 case 123: 2927 yyDollar = yyS[yypt-2 : yypt+1] 2928 //line lib/parser/parser.y:805 2929 { 2930 yyVAL.statement = ExecuteStatement{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[2].identifier} 2931 } 2932 case 124: 2933 yyDollar = yyS[yypt-4 : yypt+1] 2934 //line lib/parser/parser.y:809 2935 { 2936 yyVAL.statement = ExecuteStatement{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[2].identifier, Values: yyDollar[4].replacevals} 2937 } 2938 case 125: 2939 yyDollar = yyS[yypt-3 : yypt+1] 2940 //line lib/parser/parser.y:813 2941 { 2942 yyVAL.statement = DisposeStatement{Name: yyDollar[3].identifier} 2943 } 2944 case 126: 2945 yyDollar = yyS[yypt-1 : yypt+1] 2946 //line lib/parser/parser.y:819 2947 { 2948 yyVAL.varassign = VariableAssignment{Variable: yyDollar[1].variable} 2949 } 2950 case 127: 2951 yyDollar = yyS[yypt-1 : yypt+1] 2952 //line lib/parser/parser.y:825 2953 { 2954 yyVAL.varassigns = []VariableAssignment{yyDollar[1].varassign} 2955 } 2956 case 128: 2957 yyDollar = yyS[yypt-3 : yypt+1] 2958 //line lib/parser/parser.y:829 2959 { 2960 yyVAL.varassigns = append(yyDollar[1].varassigns, yyDollar[3].varassign) 2961 } 2962 case 129: 2963 yyDollar = yyS[yypt-3 : yypt+1] 2964 //line lib/parser/parser.y:835 2965 { 2966 yyVAL.varassign = VariableAssignment{Variable: yyDollar[1].variable, Value: yyDollar[3].queryexpr} 2967 } 2968 case 130: 2969 yyDollar = yyS[yypt-1 : yypt+1] 2970 //line lib/parser/parser.y:841 2971 { 2972 yyVAL.varassigns = []VariableAssignment{yyDollar[1].varassign} 2973 } 2974 case 131: 2975 yyDollar = yyS[yypt-3 : yypt+1] 2976 //line lib/parser/parser.y:845 2977 { 2978 yyVAL.varassigns = append([]VariableAssignment{yyDollar[1].varassign}, yyDollar[3].varassigns...) 2979 } 2980 case 132: 2981 yyDollar = yyS[yypt-1 : yypt+1] 2982 //line lib/parser/parser.y:851 2983 { 2984 yyVAL.varassigns = yyDollar[1].varassigns 2985 } 2986 case 133: 2987 yyDollar = yyS[yypt-1 : yypt+1] 2988 //line lib/parser/parser.y:855 2989 { 2990 yyVAL.varassigns = yyDollar[1].varassigns 2991 } 2992 case 134: 2993 yyDollar = yyS[yypt-3 : yypt+1] 2994 //line lib/parser/parser.y:859 2995 { 2996 yyVAL.varassigns = append(yyDollar[1].varassigns, yyDollar[3].varassigns...) 2997 } 2998 case 135: 2999 yyDollar = yyS[yypt-9 : yypt+1] 3000 //line lib/parser/parser.y:865 3001 { 3002 yyVAL.statement = FunctionDeclaration{Name: yyDollar[2].identifier, Statements: yyDollar[8].program} 3003 } 3004 case 136: 3005 yyDollar = yyS[yypt-10 : yypt+1] 3006 //line lib/parser/parser.y:869 3007 { 3008 yyVAL.statement = FunctionDeclaration{Name: yyDollar[2].identifier, Parameters: yyDollar[5].varassigns, Statements: yyDollar[9].program} 3009 } 3010 case 137: 3011 yyDollar = yyS[yypt-10 : yypt+1] 3012 //line lib/parser/parser.y:873 3013 { 3014 yyVAL.statement = AggregateDeclaration{Name: yyDollar[2].identifier, Cursor: yyDollar[5].identifier, Statements: yyDollar[9].program} 3015 } 3016 case 138: 3017 yyDollar = yyS[yypt-12 : yypt+1] 3018 //line lib/parser/parser.y:877 3019 { 3020 yyVAL.statement = AggregateDeclaration{Name: yyDollar[2].identifier, Cursor: yyDollar[5].identifier, Parameters: yyDollar[7].varassigns, Statements: yyDollar[11].program} 3021 } 3022 case 139: 3023 yyDollar = yyS[yypt-3 : yypt+1] 3024 //line lib/parser/parser.y:881 3025 { 3026 yyVAL.statement = DisposeFunction{Name: yyDollar[3].identifier} 3027 } 3028 case 140: 3029 yyDollar = yyS[yypt-0 : yypt+1] 3030 //line lib/parser/parser.y:887 3031 { 3032 yyVAL.fetchpos = FetchPosition{} 3033 } 3034 case 141: 3035 yyDollar = yyS[yypt-1 : yypt+1] 3036 //line lib/parser/parser.y:891 3037 { 3038 yyVAL.fetchpos = FetchPosition{Position: yyDollar[1].token} 3039 } 3040 case 142: 3041 yyDollar = yyS[yypt-1 : yypt+1] 3042 //line lib/parser/parser.y:895 3043 { 3044 yyVAL.fetchpos = FetchPosition{Position: yyDollar[1].token} 3045 } 3046 case 143: 3047 yyDollar = yyS[yypt-1 : yypt+1] 3048 //line lib/parser/parser.y:899 3049 { 3050 yyVAL.fetchpos = FetchPosition{Position: yyDollar[1].token} 3051 } 3052 case 144: 3053 yyDollar = yyS[yypt-1 : yypt+1] 3054 //line lib/parser/parser.y:903 3055 { 3056 yyVAL.fetchpos = FetchPosition{Position: yyDollar[1].token} 3057 } 3058 case 145: 3059 yyDollar = yyS[yypt-2 : yypt+1] 3060 //line lib/parser/parser.y:907 3061 { 3062 yyVAL.fetchpos = FetchPosition{BaseExpr: NewBaseExpr(yyDollar[1].token), Position: yyDollar[1].token, Number: yyDollar[2].queryexpr} 3063 } 3064 case 146: 3065 yyDollar = yyS[yypt-2 : yypt+1] 3066 //line lib/parser/parser.y:911 3067 { 3068 yyVAL.fetchpos = FetchPosition{BaseExpr: NewBaseExpr(yyDollar[1].token), Position: yyDollar[1].token, Number: yyDollar[2].queryexpr} 3069 } 3070 case 147: 3071 yyDollar = yyS[yypt-5 : yypt+1] 3072 //line lib/parser/parser.y:917 3073 { 3074 yyVAL.queryexpr = CursorStatus{Cursor: yyDollar[2].identifier, Negation: yyDollar[4].token, Type: yyDollar[5].token} 3075 } 3076 case 148: 3077 yyDollar = yyS[yypt-6 : yypt+1] 3078 //line lib/parser/parser.y:921 3079 { 3080 yyVAL.queryexpr = CursorStatus{Cursor: yyDollar[2].identifier, Negation: yyDollar[4].token, Type: yyDollar[6].token} 3081 } 3082 case 149: 3083 yyDollar = yyS[yypt-3 : yypt+1] 3084 //line lib/parser/parser.y:925 3085 { 3086 yyVAL.queryexpr = CursorAttrebute{Cursor: yyDollar[2].identifier, Attrebute: yyDollar[3].token} 3087 } 3088 case 150: 3089 yyDollar = yyS[yypt-4 : yypt+1] 3090 //line lib/parser/parser.y:931 3091 { 3092 yyVAL.statement = SetFlag{BaseExpr: NewBaseExpr(yyDollar[1].token), Flag: yyDollar[2].flag, Value: yyDollar[4].identifier} 3093 } 3094 case 151: 3095 yyDollar = yyS[yypt-4 : yypt+1] 3096 //line lib/parser/parser.y:935 3097 { 3098 yyVAL.statement = SetFlag{BaseExpr: NewBaseExpr(yyDollar[1].token), Flag: yyDollar[2].flag, Value: yyDollar[4].queryexpr} 3099 } 3100 case 152: 3101 yyDollar = yyS[yypt-4 : yypt+1] 3102 //line lib/parser/parser.y:939 3103 { 3104 yyVAL.statement = SetFlag{BaseExpr: NewBaseExpr(yyDollar[1].token), Flag: yyDollar[2].flag, Value: yyDollar[4].identifier} 3105 } 3106 case 153: 3107 yyDollar = yyS[yypt-4 : yypt+1] 3108 //line lib/parser/parser.y:943 3109 { 3110 yyVAL.statement = SetFlag{BaseExpr: NewBaseExpr(yyDollar[1].token), Flag: yyDollar[2].flag, Value: yyDollar[4].queryexpr} 3111 } 3112 case 154: 3113 yyDollar = yyS[yypt-4 : yypt+1] 3114 //line lib/parser/parser.y:947 3115 { 3116 yyVAL.statement = AddFlagElement{BaseExpr: NewBaseExpr(yyDollar[1].token), Flag: yyDollar[4].flag, Value: yyDollar[2].queryexpr} 3117 } 3118 case 155: 3119 yyDollar = yyS[yypt-4 : yypt+1] 3120 //line lib/parser/parser.y:951 3121 { 3122 yyVAL.statement = RemoveFlagElement{BaseExpr: NewBaseExpr(yyDollar[1].token), Flag: yyDollar[4].flag, Value: yyDollar[2].queryexpr} 3123 } 3124 case 156: 3125 yyDollar = yyS[yypt-2 : yypt+1] 3126 //line lib/parser/parser.y:955 3127 { 3128 yyVAL.statement = ShowFlag{BaseExpr: NewBaseExpr(yyDollar[1].token), Flag: yyDollar[2].flag} 3129 } 3130 case 157: 3131 yyDollar = yyS[yypt-2 : yypt+1] 3132 //line lib/parser/parser.y:959 3133 { 3134 yyVAL.statement = Echo{Value: yyDollar[2].queryexpr} 3135 } 3136 case 158: 3137 yyDollar = yyS[yypt-2 : yypt+1] 3138 //line lib/parser/parser.y:963 3139 { 3140 yyVAL.statement = Print{Value: yyDollar[2].queryexpr} 3141 } 3142 case 159: 3143 yyDollar = yyS[yypt-2 : yypt+1] 3144 //line lib/parser/parser.y:967 3145 { 3146 yyVAL.statement = Printf{BaseExpr: NewBaseExpr(yyDollar[1].token), Format: yyDollar[2].queryexpr} 3147 } 3148 case 160: 3149 yyDollar = yyS[yypt-4 : yypt+1] 3150 //line lib/parser/parser.y:971 3151 { 3152 yyVAL.statement = Printf{BaseExpr: NewBaseExpr(yyDollar[1].token), Format: yyDollar[2].queryexpr, Values: yyDollar[4].queryexprs} 3153 } 3154 case 161: 3155 yyDollar = yyS[yypt-4 : yypt+1] 3156 //line lib/parser/parser.y:975 3157 { 3158 yyVAL.statement = Printf{BaseExpr: NewBaseExpr(yyDollar[1].token), Format: yyDollar[2].queryexpr, Values: yyDollar[4].queryexprs} 3159 } 3160 case 162: 3161 yyDollar = yyS[yypt-2 : yypt+1] 3162 //line lib/parser/parser.y:979 3163 { 3164 yyVAL.statement = Source{BaseExpr: NewBaseExpr(yyDollar[1].token), FilePath: yyDollar[2].identifier} 3165 } 3166 case 163: 3167 yyDollar = yyS[yypt-2 : yypt+1] 3168 //line lib/parser/parser.y:983 3169 { 3170 yyVAL.statement = Source{BaseExpr: NewBaseExpr(yyDollar[1].token), FilePath: yyDollar[2].queryexpr} 3171 } 3172 case 164: 3173 yyDollar = yyS[yypt-2 : yypt+1] 3174 //line lib/parser/parser.y:987 3175 { 3176 yyVAL.statement = Execute{BaseExpr: NewBaseExpr(yyDollar[1].token), Statements: yyDollar[2].queryexpr} 3177 } 3178 case 165: 3179 yyDollar = yyS[yypt-4 : yypt+1] 3180 //line lib/parser/parser.y:991 3181 { 3182 yyVAL.statement = Execute{BaseExpr: NewBaseExpr(yyDollar[1].token), Statements: yyDollar[2].queryexpr, Values: yyDollar[4].queryexprs} 3183 } 3184 case 166: 3185 yyDollar = yyS[yypt-1 : yypt+1] 3186 //line lib/parser/parser.y:995 3187 { 3188 yyVAL.statement = Syntax{BaseExpr: NewBaseExpr(yyDollar[1].token)} 3189 } 3190 case 167: 3191 yyDollar = yyS[yypt-2 : yypt+1] 3192 //line lib/parser/parser.y:999 3193 { 3194 yyVAL.statement = Syntax{BaseExpr: NewBaseExpr(yyDollar[1].token), Keywords: yyDollar[2].queryexprs} 3195 } 3196 case 168: 3197 yyDollar = yyS[yypt-2 : yypt+1] 3198 //line lib/parser/parser.y:1003 3199 { 3200 yyVAL.statement = ShowObjects{BaseExpr: NewBaseExpr(yyDollar[1].token), Type: yyDollar[2].identifier} 3201 } 3202 case 169: 3203 yyDollar = yyS[yypt-4 : yypt+1] 3204 //line lib/parser/parser.y:1007 3205 { 3206 yyVAL.statement = ShowFields{BaseExpr: NewBaseExpr(yyDollar[1].token), Type: yyDollar[2].identifier, Table: yyDollar[4].queryexpr} 3207 } 3208 case 170: 3209 yyDollar = yyS[yypt-2 : yypt+1] 3210 //line lib/parser/parser.y:1011 3211 { 3212 yyVAL.statement = Chdir{BaseExpr: NewBaseExpr(yyDollar[1].token), DirPath: yyDollar[2].identifier} 3213 } 3214 case 171: 3215 yyDollar = yyS[yypt-2 : yypt+1] 3216 //line lib/parser/parser.y:1015 3217 { 3218 yyVAL.statement = Chdir{BaseExpr: NewBaseExpr(yyDollar[1].token), DirPath: yyDollar[2].queryexpr} 3219 } 3220 case 172: 3221 yyDollar = yyS[yypt-1 : yypt+1] 3222 //line lib/parser/parser.y:1019 3223 { 3224 yyVAL.statement = Pwd{BaseExpr: NewBaseExpr(yyDollar[1].token)} 3225 } 3226 case 173: 3227 yyDollar = yyS[yypt-2 : yypt+1] 3228 //line lib/parser/parser.y:1023 3229 { 3230 yyVAL.statement = Reload{BaseExpr: NewBaseExpr(yyDollar[1].token), Type: yyDollar[2].identifier} 3231 } 3232 case 174: 3233 yyDollar = yyS[yypt-2 : yypt+1] 3234 //line lib/parser/parser.y:1029 3235 { 3236 yyVAL.statement = Trigger{BaseExpr: NewBaseExpr(yyDollar[1].token), Event: yyDollar[2].identifier} 3237 } 3238 case 175: 3239 yyDollar = yyS[yypt-3 : yypt+1] 3240 //line lib/parser/parser.y:1033 3241 { 3242 yyVAL.statement = Trigger{BaseExpr: NewBaseExpr(yyDollar[1].token), Event: yyDollar[2].identifier, Message: yyDollar[3].queryexpr} 3243 } 3244 case 176: 3245 yyDollar = yyS[yypt-4 : yypt+1] 3246 //line lib/parser/parser.y:1037 3247 { 3248 yyVAL.statement = Trigger{BaseExpr: NewBaseExpr(yyDollar[1].token), Event: yyDollar[2].identifier, Message: yyDollar[4].queryexpr, Code: value.NewIntegerFromString(yyDollar[3].token.Literal)} 3249 } 3250 case 177: 3251 yyDollar = yyS[yypt-3 : yypt+1] 3252 //line lib/parser/parser.y:1043 3253 { 3254 yyVAL.queryexpr = SelectQuery{ 3255 SelectEntity: yyDollar[1].queryexpr, 3256 OrderByClause: yyDollar[2].queryexpr, 3257 LimitClause: yyDollar[3].queryexpr, 3258 } 3259 } 3260 case 178: 3261 yyDollar = yyS[yypt-5 : yypt+1] 3262 //line lib/parser/parser.y:1051 3263 { 3264 yyVAL.queryexpr = SelectQuery{ 3265 SelectEntity: yyDollar[1].queryexpr, 3266 OrderByClause: yyDollar[2].queryexpr, 3267 LimitClause: yyDollar[3].queryexpr, 3268 Context: yyDollar[5].token, 3269 } 3270 } 3271 case 179: 3272 yyDollar = yyS[yypt-4 : yypt+1] 3273 //line lib/parser/parser.y:1060 3274 { 3275 yyVAL.queryexpr = SelectQuery{ 3276 WithClause: yyDollar[1].queryexpr, 3277 SelectEntity: yyDollar[2].queryexpr, 3278 OrderByClause: yyDollar[3].queryexpr, 3279 LimitClause: yyDollar[4].queryexpr, 3280 } 3281 } 3282 case 180: 3283 yyDollar = yyS[yypt-6 : yypt+1] 3284 //line lib/parser/parser.y:1069 3285 { 3286 yyVAL.queryexpr = SelectQuery{ 3287 WithClause: yyDollar[1].queryexpr, 3288 SelectEntity: yyDollar[2].queryexpr, 3289 OrderByClause: yyDollar[3].queryexpr, 3290 LimitClause: yyDollar[4].queryexpr, 3291 Context: yyDollar[6].token, 3292 } 3293 } 3294 case 181: 3295 yyDollar = yyS[yypt-8 : yypt+1] 3296 //line lib/parser/parser.y:1081 3297 { 3298 yyVAL.queryexpr = SelectQuery{ 3299 SelectEntity: SelectEntity{ 3300 SelectClause: yyDollar[1].queryexpr, 3301 IntoClause: yyDollar[2].queryexpr, 3302 FromClause: yyDollar[3].queryexpr, 3303 WhereClause: yyDollar[4].queryexpr, 3304 GroupByClause: yyDollar[5].queryexpr, 3305 HavingClause: yyDollar[6].queryexpr, 3306 }, 3307 OrderByClause: yyDollar[7].queryexpr, 3308 LimitClause: yyDollar[8].queryexpr, 3309 } 3310 } 3311 case 182: 3312 yyDollar = yyS[yypt-10 : yypt+1] 3313 //line lib/parser/parser.y:1096 3314 { 3315 yyVAL.queryexpr = SelectQuery{ 3316 SelectEntity: SelectEntity{ 3317 SelectClause: yyDollar[1].queryexpr, 3318 IntoClause: yyDollar[2].queryexpr, 3319 FromClause: yyDollar[3].queryexpr, 3320 WhereClause: yyDollar[4].queryexpr, 3321 GroupByClause: yyDollar[5].queryexpr, 3322 HavingClause: yyDollar[6].queryexpr, 3323 }, 3324 OrderByClause: yyDollar[7].queryexpr, 3325 LimitClause: yyDollar[8].queryexpr, 3326 Context: yyDollar[10].token, 3327 } 3328 } 3329 case 183: 3330 yyDollar = yyS[yypt-9 : yypt+1] 3331 //line lib/parser/parser.y:1112 3332 { 3333 yyVAL.queryexpr = SelectQuery{ 3334 WithClause: yyDollar[1].queryexpr, 3335 SelectEntity: SelectEntity{ 3336 SelectClause: yyDollar[2].queryexpr, 3337 IntoClause: yyDollar[3].queryexpr, 3338 FromClause: yyDollar[4].queryexpr, 3339 WhereClause: yyDollar[5].queryexpr, 3340 GroupByClause: yyDollar[6].queryexpr, 3341 HavingClause: yyDollar[7].queryexpr, 3342 }, 3343 OrderByClause: yyDollar[8].queryexpr, 3344 LimitClause: yyDollar[9].queryexpr, 3345 } 3346 } 3347 case 184: 3348 yyDollar = yyS[yypt-11 : yypt+1] 3349 //line lib/parser/parser.y:1128 3350 { 3351 yyVAL.queryexpr = SelectQuery{ 3352 WithClause: yyDollar[1].queryexpr, 3353 SelectEntity: SelectEntity{ 3354 SelectClause: yyDollar[2].queryexpr, 3355 IntoClause: yyDollar[3].queryexpr, 3356 FromClause: yyDollar[4].queryexpr, 3357 WhereClause: yyDollar[5].queryexpr, 3358 GroupByClause: yyDollar[6].queryexpr, 3359 HavingClause: yyDollar[7].queryexpr, 3360 }, 3361 OrderByClause: yyDollar[8].queryexpr, 3362 LimitClause: yyDollar[9].queryexpr, 3363 Context: yyDollar[11].token, 3364 } 3365 } 3366 case 185: 3367 yyDollar = yyS[yypt-5 : yypt+1] 3368 //line lib/parser/parser.y:1147 3369 { 3370 yyVAL.queryexpr = SelectEntity{ 3371 SelectClause: yyDollar[1].queryexpr, 3372 FromClause: yyDollar[2].queryexpr, 3373 WhereClause: yyDollar[3].queryexpr, 3374 GroupByClause: yyDollar[4].queryexpr, 3375 HavingClause: yyDollar[5].queryexpr, 3376 } 3377 } 3378 case 186: 3379 yyDollar = yyS[yypt-4 : yypt+1] 3380 //line lib/parser/parser.y:1157 3381 { 3382 yyVAL.queryexpr = SelectSet{ 3383 LHS: yyDollar[1].queryexpr, 3384 Operator: yyDollar[2].token, 3385 All: yyDollar[3].token, 3386 RHS: yyDollar[4].queryexpr, 3387 } 3388 } 3389 case 187: 3390 yyDollar = yyS[yypt-4 : yypt+1] 3391 //line lib/parser/parser.y:1166 3392 { 3393 yyVAL.queryexpr = SelectSet{ 3394 LHS: yyDollar[1].queryexpr, 3395 Operator: yyDollar[2].token, 3396 All: yyDollar[3].token, 3397 RHS: yyDollar[4].queryexpr, 3398 } 3399 } 3400 case 188: 3401 yyDollar = yyS[yypt-4 : yypt+1] 3402 //line lib/parser/parser.y:1175 3403 { 3404 yyVAL.queryexpr = SelectSet{ 3405 LHS: yyDollar[1].queryexpr, 3406 Operator: yyDollar[2].token, 3407 All: yyDollar[3].token, 3408 RHS: yyDollar[4].queryexpr, 3409 } 3410 } 3411 case 189: 3412 yyDollar = yyS[yypt-1 : yypt+1] 3413 //line lib/parser/parser.y:1186 3414 { 3415 yyVAL.queryexpr = yyDollar[1].queryexpr 3416 } 3417 case 190: 3418 yyDollar = yyS[yypt-1 : yypt+1] 3419 //line lib/parser/parser.y:1190 3420 { 3421 yyVAL.queryexpr = yyDollar[1].queryexpr 3422 } 3423 case 191: 3424 yyDollar = yyS[yypt-3 : yypt+1] 3425 //line lib/parser/parser.y:1196 3426 { 3427 yyVAL.queryexpr = SelectClause{BaseExpr: NewBaseExpr(yyDollar[1].token), Distinct: yyDollar[2].token, Fields: yyDollar[3].queryexprs} 3428 } 3429 case 192: 3430 yyDollar = yyS[yypt-2 : yypt+1] 3431 //line lib/parser/parser.y:1202 3432 { 3433 yyVAL.queryexpr = IntoClause{Variables: yyDollar[2].variables} 3434 } 3435 case 193: 3436 yyDollar = yyS[yypt-0 : yypt+1] 3437 //line lib/parser/parser.y:1208 3438 { 3439 yyVAL.queryexpr = nil 3440 } 3441 case 194: 3442 yyDollar = yyS[yypt-2 : yypt+1] 3443 //line lib/parser/parser.y:1212 3444 { 3445 yyVAL.queryexpr = FromClause{Tables: yyDollar[2].queryexprs} 3446 } 3447 case 195: 3448 yyDollar = yyS[yypt-0 : yypt+1] 3449 //line lib/parser/parser.y:1218 3450 { 3451 yyVAL.queryexpr = nil 3452 } 3453 case 196: 3454 yyDollar = yyS[yypt-2 : yypt+1] 3455 //line lib/parser/parser.y:1222 3456 { 3457 yyVAL.queryexpr = WhereClause{Filter: yyDollar[2].queryexpr} 3458 } 3459 case 197: 3460 yyDollar = yyS[yypt-0 : yypt+1] 3461 //line lib/parser/parser.y:1228 3462 { 3463 yyVAL.queryexpr = nil 3464 } 3465 case 198: 3466 yyDollar = yyS[yypt-3 : yypt+1] 3467 //line lib/parser/parser.y:1232 3468 { 3469 yyVAL.queryexpr = GroupByClause{Items: yyDollar[3].queryexprs} 3470 } 3471 case 199: 3472 yyDollar = yyS[yypt-0 : yypt+1] 3473 //line lib/parser/parser.y:1238 3474 { 3475 yyVAL.queryexpr = nil 3476 } 3477 case 200: 3478 yyDollar = yyS[yypt-2 : yypt+1] 3479 //line lib/parser/parser.y:1242 3480 { 3481 yyVAL.queryexpr = HavingClause{Filter: yyDollar[2].queryexpr} 3482 } 3483 case 201: 3484 yyDollar = yyS[yypt-0 : yypt+1] 3485 //line lib/parser/parser.y:1248 3486 { 3487 yyVAL.queryexpr = nil 3488 } 3489 case 202: 3490 yyDollar = yyS[yypt-3 : yypt+1] 3491 //line lib/parser/parser.y:1252 3492 { 3493 yyVAL.queryexpr = OrderByClause{Items: yyDollar[3].queryexprs} 3494 } 3495 case 203: 3496 yyDollar = yyS[yypt-1 : yypt+1] 3497 //line lib/parser/parser.y:1258 3498 { 3499 if yyDollar[1].queryexpr == nil { 3500 yyVAL.queryexpr = yyDollar[1].queryexpr 3501 } else { 3502 yyVAL.queryexpr = LimitClause{BaseExpr: yyDollar[1].queryexpr.(OffsetClause).BaseExpr, OffsetClause: yyDollar[1].queryexpr} 3503 } 3504 } 3505 case 204: 3506 yyDollar = yyS[yypt-6 : yypt+1] 3507 //line lib/parser/parser.y:1266 3508 { 3509 var base *BaseExpr 3510 if yyDollar[1].queryexpr == nil { 3511 base = NewBaseExpr(yyDollar[2].token) 3512 } else { 3513 base = yyDollar[1].queryexpr.(OffsetClause).BaseExpr 3514 } 3515 yyVAL.queryexpr = LimitClause{BaseExpr: base, Type: yyDollar[2].token, Position: yyDollar[3].token, Value: yyDollar[4].queryexpr, Unit: yyDollar[5].token, Restriction: yyDollar[6].token, OffsetClause: yyDollar[1].queryexpr} 3516 } 3517 case 205: 3518 yyDollar = yyS[yypt-5 : yypt+1] 3519 //line lib/parser/parser.y:1276 3520 { 3521 yyVAL.queryexpr = LimitClause{BaseExpr: NewBaseExpr(yyDollar[1].token), Type: yyDollar[1].token, Value: yyDollar[2].queryexpr, Unit: yyDollar[3].token, Restriction: yyDollar[4].token, OffsetClause: yyDollar[5].queryexpr} 3522 } 3523 case 206: 3524 yyDollar = yyS[yypt-0 : yypt+1] 3525 //line lib/parser/parser.y:1282 3526 { 3527 yyVAL.token = Token{} 3528 } 3529 case 207: 3530 yyDollar = yyS[yypt-1 : yypt+1] 3531 //line lib/parser/parser.y:1286 3532 { 3533 yyVAL.token = yyDollar[1].token 3534 } 3535 case 208: 3536 yyDollar = yyS[yypt-2 : yypt+1] 3537 //line lib/parser/parser.y:1290 3538 { 3539 yyVAL.token = yyDollar[2].token 3540 } 3541 case 209: 3542 yyDollar = yyS[yypt-1 : yypt+1] 3543 //line lib/parser/parser.y:1296 3544 { 3545 yyVAL.token = yyDollar[1].token 3546 } 3547 case 210: 3548 yyDollar = yyS[yypt-1 : yypt+1] 3549 //line lib/parser/parser.y:1300 3550 { 3551 yyVAL.token = yyDollar[1].token 3552 } 3553 case 211: 3554 yyDollar = yyS[yypt-0 : yypt+1] 3555 //line lib/parser/parser.y:1306 3556 { 3557 yyVAL.token = Token{} 3558 } 3559 case 212: 3560 yyDollar = yyS[yypt-1 : yypt+1] 3561 //line lib/parser/parser.y:1310 3562 { 3563 yyVAL.token = yyDollar[1].token 3564 } 3565 case 213: 3566 yyDollar = yyS[yypt-1 : yypt+1] 3567 //line lib/parser/parser.y:1316 3568 { 3569 yyVAL.token = yyDollar[1].token 3570 } 3571 case 214: 3572 yyDollar = yyS[yypt-1 : yypt+1] 3573 //line lib/parser/parser.y:1320 3574 { 3575 yyVAL.token = yyDollar[1].token 3576 } 3577 case 215: 3578 yyDollar = yyS[yypt-1 : yypt+1] 3579 //line lib/parser/parser.y:1324 3580 { 3581 yyVAL.token = yyDollar[1].token 3582 } 3583 case 216: 3584 yyDollar = yyS[yypt-0 : yypt+1] 3585 //line lib/parser/parser.y:1330 3586 { 3587 yyVAL.token = Token{} 3588 } 3589 case 217: 3590 yyDollar = yyS[yypt-1 : yypt+1] 3591 //line lib/parser/parser.y:1334 3592 { 3593 yyVAL.token = yyDollar[1].token 3594 } 3595 case 218: 3596 yyDollar = yyS[yypt-1 : yypt+1] 3597 //line lib/parser/parser.y:1338 3598 { 3599 yyVAL.token = yyDollar[1].token 3600 } 3601 case 219: 3602 yyDollar = yyS[yypt-0 : yypt+1] 3603 //line lib/parser/parser.y:1344 3604 { 3605 yyVAL.queryexpr = nil 3606 } 3607 case 220: 3608 yyDollar = yyS[yypt-3 : yypt+1] 3609 //line lib/parser/parser.y:1348 3610 { 3611 yyVAL.queryexpr = OffsetClause{BaseExpr: NewBaseExpr(yyDollar[1].token), Value: yyDollar[2].queryexpr, Unit: yyDollar[3].token} 3612 } 3613 case 221: 3614 yyDollar = yyS[yypt-0 : yypt+1] 3615 //line lib/parser/parser.y:1354 3616 { 3617 yyVAL.queryexpr = nil 3618 } 3619 case 222: 3620 yyDollar = yyS[yypt-2 : yypt+1] 3621 //line lib/parser/parser.y:1358 3622 { 3623 yyVAL.queryexpr = WithClause{InlineTables: yyDollar[2].queryexprs} 3624 } 3625 case 223: 3626 yyDollar = yyS[yypt-6 : yypt+1] 3627 //line lib/parser/parser.y:1364 3628 { 3629 yyVAL.queryexpr = InlineTable{Recursive: yyDollar[1].token, Name: yyDollar[2].identifier, Query: yyDollar[5].queryexpr.(SelectQuery)} 3630 } 3631 case 224: 3632 yyDollar = yyS[yypt-9 : yypt+1] 3633 //line lib/parser/parser.y:1368 3634 { 3635 yyVAL.queryexpr = InlineTable{Recursive: yyDollar[1].token, Name: yyDollar[2].identifier, Fields: yyDollar[4].queryexprs, Query: yyDollar[8].queryexpr.(SelectQuery)} 3636 } 3637 case 225: 3638 yyDollar = yyS[yypt-1 : yypt+1] 3639 //line lib/parser/parser.y:1374 3640 { 3641 yyVAL.queryexprs = []QueryExpression{yyDollar[1].queryexpr} 3642 } 3643 case 226: 3644 yyDollar = yyS[yypt-3 : yypt+1] 3645 //line lib/parser/parser.y:1378 3646 { 3647 yyVAL.queryexprs = append([]QueryExpression{yyDollar[1].queryexpr}, yyDollar[3].queryexprs...) 3648 } 3649 case 227: 3650 yyDollar = yyS[yypt-1 : yypt+1] 3651 //line lib/parser/parser.y:1384 3652 { 3653 yyVAL.queryexpr = NewStringValue(yyDollar[1].token.Literal) 3654 } 3655 case 228: 3656 yyDollar = yyS[yypt-1 : yypt+1] 3657 //line lib/parser/parser.y:1388 3658 { 3659 i, err := strconv.ParseInt(yyDollar[1].token.Literal, 10, 64) 3660 if err != nil { 3661 yyVAL.queryexpr = NewFloatValueFromString(yyDollar[1].token.Literal) 3662 } else { 3663 iv := NewIntegerValue(i) 3664 iv.Literal = yyDollar[1].token.Literal 3665 yyVAL.queryexpr = iv 3666 } 3667 } 3668 case 229: 3669 yyDollar = yyS[yypt-1 : yypt+1] 3670 //line lib/parser/parser.y:1399 3671 { 3672 yyVAL.queryexpr = NewFloatValueFromString(yyDollar[1].token.Literal) 3673 } 3674 case 230: 3675 yyDollar = yyS[yypt-1 : yypt+1] 3676 //line lib/parser/parser.y:1403 3677 { 3678 yyVAL.queryexpr = yyDollar[1].queryexpr 3679 } 3680 case 231: 3681 yyDollar = yyS[yypt-1 : yypt+1] 3682 //line lib/parser/parser.y:1407 3683 { 3684 yyVAL.queryexpr = yyDollar[1].queryexpr 3685 } 3686 case 232: 3687 yyDollar = yyS[yypt-1 : yypt+1] 3688 //line lib/parser/parser.y:1413 3689 { 3690 yyVAL.queryexpr = NewTernaryValueFromString(yyDollar[1].token.Literal) 3691 } 3692 case 233: 3693 yyDollar = yyS[yypt-1 : yypt+1] 3694 //line lib/parser/parser.y:1419 3695 { 3696 yyVAL.queryexpr = NewNullValue() 3697 } 3698 case 234: 3699 yyDollar = yyS[yypt-1 : yypt+1] 3700 //line lib/parser/parser.y:1425 3701 { 3702 yyVAL.queryexpr = FieldReference{BaseExpr: yyDollar[1].identifier.BaseExpr, Column: yyDollar[1].identifier} 3703 } 3704 case 235: 3705 yyDollar = yyS[yypt-3 : yypt+1] 3706 //line lib/parser/parser.y:1429 3707 { 3708 yyVAL.queryexpr = FieldReference{BaseExpr: yyDollar[1].identifier.BaseExpr, View: yyDollar[1].identifier, Column: yyDollar[3].identifier} 3709 } 3710 case 236: 3711 yyDollar = yyS[yypt-3 : yypt+1] 3712 //line lib/parser/parser.y:1433 3713 { 3714 yyVAL.queryexpr = FieldReference{BaseExpr: NewBaseExpr(yyDollar[1].token), View: Identifier{BaseExpr: NewBaseExpr(yyDollar[1].token), Literal: yyDollar[1].token.Literal}, Column: yyDollar[3].identifier} 3715 } 3716 case 237: 3717 yyDollar = yyS[yypt-3 : yypt+1] 3718 //line lib/parser/parser.y:1437 3719 { 3720 yyVAL.queryexpr = ColumnNumber{BaseExpr: yyDollar[1].identifier.BaseExpr, View: yyDollar[1].identifier, Number: value.NewIntegerFromString(yyDollar[3].token.Literal)} 3721 } 3722 case 238: 3723 yyDollar = yyS[yypt-3 : yypt+1] 3724 //line lib/parser/parser.y:1441 3725 { 3726 yyVAL.queryexpr = ColumnNumber{BaseExpr: NewBaseExpr(yyDollar[1].token), View: Identifier{BaseExpr: NewBaseExpr(yyDollar[1].token), Literal: yyDollar[1].token.Literal}, Number: value.NewIntegerFromString(yyDollar[3].token.Literal)} 3727 } 3728 case 239: 3729 yyDollar = yyS[yypt-1 : yypt+1] 3730 //line lib/parser/parser.y:1447 3731 { 3732 yyVAL.queryexpr = yyDollar[1].queryexpr 3733 } 3734 case 240: 3735 yyDollar = yyS[yypt-1 : yypt+1] 3736 //line lib/parser/parser.y:1451 3737 { 3738 yyVAL.queryexpr = yyDollar[1].queryexpr 3739 } 3740 case 241: 3741 yyDollar = yyS[yypt-3 : yypt+1] 3742 //line lib/parser/parser.y:1455 3743 { 3744 yyVAL.queryexpr = Parentheses{Expr: yyDollar[2].queryexpr} 3745 } 3746 case 242: 3747 yyDollar = yyS[yypt-1 : yypt+1] 3748 //line lib/parser/parser.y:1461 3749 { 3750 yyVAL.queryexpr = yyDollar[1].queryexpr 3751 } 3752 case 243: 3753 yyDollar = yyS[yypt-1 : yypt+1] 3754 //line lib/parser/parser.y:1465 3755 { 3756 yyVAL.queryexpr = yyDollar[1].queryexpr 3757 } 3758 case 244: 3759 yyDollar = yyS[yypt-1 : yypt+1] 3760 //line lib/parser/parser.y:1469 3761 { 3762 yyVAL.queryexpr = yyDollar[1].queryexpr 3763 } 3764 case 245: 3765 yyDollar = yyS[yypt-1 : yypt+1] 3766 //line lib/parser/parser.y:1473 3767 { 3768 yyVAL.queryexpr = yyDollar[1].queryexpr 3769 } 3770 case 246: 3771 yyDollar = yyS[yypt-1 : yypt+1] 3772 //line lib/parser/parser.y:1477 3773 { 3774 yyVAL.queryexpr = yyDollar[1].queryexpr 3775 } 3776 case 247: 3777 yyDollar = yyS[yypt-1 : yypt+1] 3778 //line lib/parser/parser.y:1481 3779 { 3780 yyVAL.queryexpr = yyDollar[1].queryexpr 3781 } 3782 case 248: 3783 yyDollar = yyS[yypt-1 : yypt+1] 3784 //line lib/parser/parser.y:1485 3785 { 3786 yyVAL.queryexpr = yyDollar[1].queryexpr 3787 } 3788 case 249: 3789 yyDollar = yyS[yypt-1 : yypt+1] 3790 //line lib/parser/parser.y:1489 3791 { 3792 yyVAL.queryexpr = yyDollar[1].queryexpr 3793 } 3794 case 250: 3795 yyDollar = yyS[yypt-1 : yypt+1] 3796 //line lib/parser/parser.y:1493 3797 { 3798 yyVAL.queryexpr = yyDollar[1].queryexpr 3799 } 3800 case 251: 3801 yyDollar = yyS[yypt-1 : yypt+1] 3802 //line lib/parser/parser.y:1497 3803 { 3804 yyVAL.queryexpr = yyDollar[1].queryexpr 3805 } 3806 case 252: 3807 yyDollar = yyS[yypt-1 : yypt+1] 3808 //line lib/parser/parser.y:1501 3809 { 3810 yyVAL.queryexpr = yyDollar[1].variable 3811 } 3812 case 253: 3813 yyDollar = yyS[yypt-1 : yypt+1] 3814 //line lib/parser/parser.y:1505 3815 { 3816 yyVAL.queryexpr = yyDollar[1].queryexpr 3817 } 3818 case 254: 3819 yyDollar = yyS[yypt-1 : yypt+1] 3820 //line lib/parser/parser.y:1509 3821 { 3822 yyVAL.queryexpr = yyDollar[1].envvar 3823 } 3824 case 255: 3825 yyDollar = yyS[yypt-1 : yypt+1] 3826 //line lib/parser/parser.y:1513 3827 { 3828 yyVAL.queryexpr = yyDollar[1].queryexpr 3829 } 3830 case 256: 3831 yyDollar = yyS[yypt-1 : yypt+1] 3832 //line lib/parser/parser.y:1517 3833 { 3834 yyVAL.queryexpr = yyDollar[1].queryexpr 3835 } 3836 case 257: 3837 yyDollar = yyS[yypt-1 : yypt+1] 3838 //line lib/parser/parser.y:1521 3839 { 3840 yyVAL.queryexpr = yyDollar[1].flag 3841 } 3842 case 258: 3843 yyDollar = yyS[yypt-1 : yypt+1] 3844 //line lib/parser/parser.y:1525 3845 { 3846 yyVAL.queryexpr = yyDollar[1].queryexpr 3847 } 3848 case 259: 3849 yyDollar = yyS[yypt-3 : yypt+1] 3850 //line lib/parser/parser.y:1529 3851 { 3852 yyVAL.queryexpr = Parentheses{Expr: yyDollar[2].queryexpr} 3853 } 3854 case 260: 3855 yyDollar = yyS[yypt-1 : yypt+1] 3856 //line lib/parser/parser.y:1533 3857 { 3858 name := "" 3859 if yyDollar[1].token.Literal[0] == ':' { 3860 name = yyDollar[1].token.Literal[1:] 3861 } 3862 yyVAL.queryexpr = Placeholder{BaseExpr: NewBaseExpr(yyDollar[1].token), Literal: yyDollar[1].token.Literal, Ordinal: yyDollar[1].token.HolderOrdinal, Name: name} 3863 } 3864 case 261: 3865 yyDollar = yyS[yypt-1 : yypt+1] 3866 //line lib/parser/parser.y:1543 3867 { 3868 yyVAL.queryexpr = AllColumns{BaseExpr: NewBaseExpr(yyDollar[1].token)} 3869 } 3870 case 262: 3871 yyDollar = yyS[yypt-3 : yypt+1] 3872 //line lib/parser/parser.y:1549 3873 { 3874 yyVAL.queryexpr = RowValue{BaseExpr: NewBaseExpr(yyDollar[1].token), Value: ValueList{Values: yyDollar[2].queryexprs}} 3875 } 3876 case 263: 3877 yyDollar = yyS[yypt-1 : yypt+1] 3878 //line lib/parser/parser.y:1553 3879 { 3880 yyVAL.queryexpr = RowValue{BaseExpr: yyDollar[1].queryexpr.GetBaseExpr(), Value: yyDollar[1].queryexpr} 3881 } 3882 case 264: 3883 yyDollar = yyS[yypt-6 : yypt+1] 3884 //line lib/parser/parser.y:1557 3885 { 3886 yyVAL.queryexpr = RowValue{BaseExpr: NewBaseExpr(yyDollar[1].token), Value: JsonQuery{JsonQuery: yyDollar[1].token, Query: yyDollar[3].queryexpr, JsonText: yyDollar[5].queryexpr}} 3887 } 3888 case 265: 3889 yyDollar = yyS[yypt-1 : yypt+1] 3890 //line lib/parser/parser.y:1563 3891 { 3892 yyVAL.queryexprs = []QueryExpression{yyDollar[1].queryexpr} 3893 } 3894 case 266: 3895 yyDollar = yyS[yypt-3 : yypt+1] 3896 //line lib/parser/parser.y:1567 3897 { 3898 yyVAL.queryexprs = append([]QueryExpression{yyDollar[1].queryexpr}, yyDollar[3].queryexprs...) 3899 } 3900 case 267: 3901 yyDollar = yyS[yypt-1 : yypt+1] 3902 //line lib/parser/parser.y:1573 3903 { 3904 yyVAL.queryexprs = []QueryExpression{yyDollar[1].queryexpr} 3905 } 3906 case 268: 3907 yyDollar = yyS[yypt-3 : yypt+1] 3908 //line lib/parser/parser.y:1577 3909 { 3910 yyVAL.queryexprs = append([]QueryExpression{yyDollar[1].queryexpr}, yyDollar[3].queryexprs...) 3911 } 3912 case 269: 3913 yyDollar = yyS[yypt-2 : yypt+1] 3914 //line lib/parser/parser.y:1583 3915 { 3916 yyVAL.queryexpr = OrderItem{Value: yyDollar[1].queryexpr, Direction: yyDollar[2].token} 3917 } 3918 case 270: 3919 yyDollar = yyS[yypt-4 : yypt+1] 3920 //line lib/parser/parser.y:1587 3921 { 3922 yyVAL.queryexpr = OrderItem{Value: yyDollar[1].queryexpr, Direction: yyDollar[2].token, NullsPosition: yyDollar[4].token} 3923 } 3924 case 271: 3925 yyDollar = yyS[yypt-0 : yypt+1] 3926 //line lib/parser/parser.y:1593 3927 { 3928 yyVAL.token = Token{} 3929 } 3930 case 272: 3931 yyDollar = yyS[yypt-1 : yypt+1] 3932 //line lib/parser/parser.y:1597 3933 { 3934 yyVAL.token = yyDollar[1].token 3935 } 3936 case 273: 3937 yyDollar = yyS[yypt-1 : yypt+1] 3938 //line lib/parser/parser.y:1601 3939 { 3940 yyVAL.token = yyDollar[1].token 3941 } 3942 case 274: 3943 yyDollar = yyS[yypt-1 : yypt+1] 3944 //line lib/parser/parser.y:1607 3945 { 3946 yyVAL.token = yyDollar[1].token 3947 } 3948 case 275: 3949 yyDollar = yyS[yypt-1 : yypt+1] 3950 //line lib/parser/parser.y:1611 3951 { 3952 yyVAL.token = yyDollar[1].token 3953 } 3954 case 276: 3955 yyDollar = yyS[yypt-3 : yypt+1] 3956 //line lib/parser/parser.y:1617 3957 { 3958 yyVAL.queryexpr = Subquery{BaseExpr: NewBaseExpr(yyDollar[1].token), Query: yyDollar[2].queryexpr.(SelectQuery)} 3959 } 3960 case 277: 3961 yyDollar = yyS[yypt-3 : yypt+1] 3962 //line lib/parser/parser.y:1623 3963 { 3964 var item1 []QueryExpression 3965 var item2 []QueryExpression 3966 3967 c1, ok := yyDollar[1].queryexpr.(Concat) 3968 if ok { 3969 item1 = c1.Items 3970 } else { 3971 item1 = []QueryExpression{yyDollar[1].queryexpr} 3972 } 3973 3974 c2, ok := yyDollar[3].queryexpr.(Concat) 3975 if ok { 3976 item2 = c2.Items 3977 } else { 3978 item2 = []QueryExpression{yyDollar[3].queryexpr} 3979 } 3980 3981 yyVAL.queryexpr = Concat{Items: append(item1, item2...)} 3982 } 3983 case 278: 3984 yyDollar = yyS[yypt-3 : yypt+1] 3985 //line lib/parser/parser.y:1646 3986 { 3987 yyVAL.queryexpr = RowValueList{RowValues: yyDollar[2].queryexprs} 3988 } 3989 case 279: 3990 yyDollar = yyS[yypt-1 : yypt+1] 3991 //line lib/parser/parser.y:1650 3992 { 3993 yyVAL.queryexpr = yyDollar[1].queryexpr 3994 } 3995 case 280: 3996 yyDollar = yyS[yypt-6 : yypt+1] 3997 //line lib/parser/parser.y:1654 3998 { 3999 yyVAL.queryexpr = JsonQuery{BaseExpr: NewBaseExpr(yyDollar[1].token), JsonQuery: yyDollar[1].token, Query: yyDollar[3].queryexpr, JsonText: yyDollar[5].queryexpr} 4000 } 4001 case 281: 4002 yyDollar = yyS[yypt-3 : yypt+1] 4003 //line lib/parser/parser.y:1660 4004 { 4005 yyVAL.queryexpr = Comparison{LHS: yyDollar[1].queryexpr, Operator: yyDollar[2].token, RHS: yyDollar[3].queryexpr} 4006 } 4007 case 282: 4008 yyDollar = yyS[yypt-3 : yypt+1] 4009 //line lib/parser/parser.y:1664 4010 { 4011 yyVAL.queryexpr = Comparison{LHS: yyDollar[1].queryexpr, Operator: yyDollar[2].token, RHS: yyDollar[3].queryexpr} 4012 } 4013 case 283: 4014 yyDollar = yyS[yypt-3 : yypt+1] 4015 //line lib/parser/parser.y:1668 4016 { 4017 yyVAL.queryexpr = Comparison{LHS: yyDollar[1].queryexpr, Operator: yyDollar[2].token, RHS: yyDollar[3].queryexpr} 4018 } 4019 case 284: 4020 yyDollar = yyS[yypt-3 : yypt+1] 4021 //line lib/parser/parser.y:1672 4022 { 4023 yyVAL.queryexpr = Comparison{LHS: yyDollar[1].queryexpr, Operator: yyDollar[2].token, RHS: yyDollar[3].queryexpr} 4024 } 4025 case 285: 4026 yyDollar = yyS[yypt-4 : yypt+1] 4027 //line lib/parser/parser.y:1676 4028 { 4029 yyVAL.queryexpr = Is{LHS: yyDollar[1].queryexpr, RHS: yyDollar[4].queryexpr, Negation: yyDollar[3].token} 4030 } 4031 case 286: 4032 yyDollar = yyS[yypt-4 : yypt+1] 4033 //line lib/parser/parser.y:1680 4034 { 4035 yyVAL.queryexpr = Is{LHS: yyDollar[1].queryexpr, RHS: yyDollar[4].queryexpr, Negation: yyDollar[3].token} 4036 } 4037 case 287: 4038 yyDollar = yyS[yypt-5 : yypt+1] 4039 //line lib/parser/parser.y:1684 4040 { 4041 yyVAL.queryexpr = Between{LHS: yyDollar[1].queryexpr, Low: yyDollar[3].queryexpr, High: yyDollar[5].queryexpr} 4042 } 4043 case 288: 4044 yyDollar = yyS[yypt-6 : yypt+1] 4045 //line lib/parser/parser.y:1688 4046 { 4047 yyVAL.queryexpr = Between{LHS: yyDollar[1].queryexpr, Low: yyDollar[4].queryexpr, High: yyDollar[6].queryexpr, Negation: yyDollar[2].token} 4048 } 4049 case 289: 4050 yyDollar = yyS[yypt-6 : yypt+1] 4051 //line lib/parser/parser.y:1692 4052 { 4053 yyVAL.queryexpr = Between{LHS: yyDollar[1].queryexpr, Low: yyDollar[4].queryexpr, High: yyDollar[6].queryexpr, Negation: yyDollar[2].token} 4054 } 4055 case 290: 4056 yyDollar = yyS[yypt-3 : yypt+1] 4057 //line lib/parser/parser.y:1696 4058 { 4059 yyVAL.queryexpr = In{LHS: yyDollar[1].queryexpr, Values: yyDollar[3].queryexpr} 4060 } 4061 case 291: 4062 yyDollar = yyS[yypt-4 : yypt+1] 4063 //line lib/parser/parser.y:1700 4064 { 4065 yyVAL.queryexpr = In{LHS: yyDollar[1].queryexpr, Values: yyDollar[4].queryexpr, Negation: yyDollar[2].token} 4066 } 4067 case 292: 4068 yyDollar = yyS[yypt-4 : yypt+1] 4069 //line lib/parser/parser.y:1704 4070 { 4071 yyVAL.queryexpr = In{LHS: yyDollar[1].queryexpr, Values: yyDollar[4].queryexpr, Negation: yyDollar[2].token} 4072 } 4073 case 293: 4074 yyDollar = yyS[yypt-3 : yypt+1] 4075 //line lib/parser/parser.y:1708 4076 { 4077 yyVAL.queryexpr = Like{LHS: yyDollar[1].queryexpr, Pattern: yyDollar[3].queryexpr} 4078 } 4079 case 294: 4080 yyDollar = yyS[yypt-4 : yypt+1] 4081 //line lib/parser/parser.y:1712 4082 { 4083 yyVAL.queryexpr = Like{LHS: yyDollar[1].queryexpr, Pattern: yyDollar[4].queryexpr, Negation: yyDollar[2].token} 4084 } 4085 case 295: 4086 yyDollar = yyS[yypt-4 : yypt+1] 4087 //line lib/parser/parser.y:1716 4088 { 4089 yyVAL.queryexpr = Any{LHS: yyDollar[1].queryexpr, Operator: yyDollar[2].token, Values: yyDollar[4].queryexpr} 4090 } 4091 case 296: 4092 yyDollar = yyS[yypt-4 : yypt+1] 4093 //line lib/parser/parser.y:1720 4094 { 4095 yyVAL.queryexpr = Any{LHS: yyDollar[1].queryexpr, Operator: yyDollar[2].token, Values: yyDollar[4].queryexpr} 4096 } 4097 case 297: 4098 yyDollar = yyS[yypt-4 : yypt+1] 4099 //line lib/parser/parser.y:1724 4100 { 4101 yyVAL.queryexpr = All{LHS: yyDollar[1].queryexpr, Operator: yyDollar[2].token, Values: yyDollar[4].queryexpr} 4102 } 4103 case 298: 4104 yyDollar = yyS[yypt-4 : yypt+1] 4105 //line lib/parser/parser.y:1728 4106 { 4107 yyVAL.queryexpr = All{LHS: yyDollar[1].queryexpr, Operator: yyDollar[2].token, Values: yyDollar[4].queryexpr} 4108 } 4109 case 299: 4110 yyDollar = yyS[yypt-2 : yypt+1] 4111 //line lib/parser/parser.y:1732 4112 { 4113 yyVAL.queryexpr = Exists{Query: yyDollar[2].queryexpr.(Subquery)} 4114 } 4115 case 300: 4116 yyDollar = yyS[yypt-3 : yypt+1] 4117 //line lib/parser/parser.y:1738 4118 { 4119 yyVAL.queryexpr = Arithmetic{BaseExpr: NewBaseExpr(yyDollar[2].token), LHS: yyDollar[1].queryexpr, Operator: yyDollar[2].token, RHS: yyDollar[3].queryexpr} 4120 } 4121 case 301: 4122 yyDollar = yyS[yypt-3 : yypt+1] 4123 //line lib/parser/parser.y:1742 4124 { 4125 yyVAL.queryexpr = Arithmetic{BaseExpr: NewBaseExpr(yyDollar[2].token), LHS: yyDollar[1].queryexpr, Operator: yyDollar[2].token, RHS: yyDollar[3].queryexpr} 4126 } 4127 case 302: 4128 yyDollar = yyS[yypt-3 : yypt+1] 4129 //line lib/parser/parser.y:1746 4130 { 4131 yyVAL.queryexpr = Arithmetic{BaseExpr: NewBaseExpr(yyDollar[2].token), LHS: yyDollar[1].queryexpr, Operator: yyDollar[2].token, RHS: yyDollar[3].queryexpr} 4132 } 4133 case 303: 4134 yyDollar = yyS[yypt-3 : yypt+1] 4135 //line lib/parser/parser.y:1750 4136 { 4137 yyVAL.queryexpr = Arithmetic{BaseExpr: NewBaseExpr(yyDollar[2].token), LHS: yyDollar[1].queryexpr, Operator: yyDollar[2].token, RHS: yyDollar[3].queryexpr} 4138 } 4139 case 304: 4140 yyDollar = yyS[yypt-3 : yypt+1] 4141 //line lib/parser/parser.y:1754 4142 { 4143 yyVAL.queryexpr = Arithmetic{BaseExpr: NewBaseExpr(yyDollar[2].token), LHS: yyDollar[1].queryexpr, Operator: yyDollar[2].token, RHS: yyDollar[3].queryexpr} 4144 } 4145 case 305: 4146 yyDollar = yyS[yypt-2 : yypt+1] 4147 //line lib/parser/parser.y:1758 4148 { 4149 yyVAL.queryexpr = UnaryArithmetic{Operand: yyDollar[2].queryexpr, Operator: yyDollar[1].token} 4150 } 4151 case 306: 4152 yyDollar = yyS[yypt-2 : yypt+1] 4153 //line lib/parser/parser.y:1762 4154 { 4155 yyVAL.queryexpr = UnaryArithmetic{Operand: yyDollar[2].queryexpr, Operator: yyDollar[1].token} 4156 } 4157 case 307: 4158 yyDollar = yyS[yypt-3 : yypt+1] 4159 //line lib/parser/parser.y:1768 4160 { 4161 yyVAL.queryexpr = Logic{LHS: yyDollar[1].queryexpr, Operator: yyDollar[2].token, RHS: yyDollar[3].queryexpr} 4162 } 4163 case 308: 4164 yyDollar = yyS[yypt-3 : yypt+1] 4165 //line lib/parser/parser.y:1772 4166 { 4167 yyVAL.queryexpr = Logic{LHS: yyDollar[1].queryexpr, Operator: yyDollar[2].token, RHS: yyDollar[3].queryexpr} 4168 } 4169 case 309: 4170 yyDollar = yyS[yypt-2 : yypt+1] 4171 //line lib/parser/parser.y:1776 4172 { 4173 yyVAL.queryexpr = UnaryLogic{Operand: yyDollar[2].queryexpr, Operator: yyDollar[1].token} 4174 } 4175 case 310: 4176 yyDollar = yyS[yypt-2 : yypt+1] 4177 //line lib/parser/parser.y:1780 4178 { 4179 yyVAL.queryexpr = UnaryLogic{Operand: yyDollar[2].queryexpr, Operator: yyDollar[1].token} 4180 } 4181 case 311: 4182 yyDollar = yyS[yypt-0 : yypt+1] 4183 //line lib/parser/parser.y:1786 4184 { 4185 yyVAL.queryexprs = nil 4186 } 4187 case 312: 4188 yyDollar = yyS[yypt-1 : yypt+1] 4189 //line lib/parser/parser.y:1790 4190 { 4191 yyVAL.queryexprs = yyDollar[1].queryexprs 4192 } 4193 case 313: 4194 yyDollar = yyS[yypt-4 : yypt+1] 4195 //line lib/parser/parser.y:1796 4196 { 4197 yyVAL.queryexpr = Function{BaseExpr: yyDollar[1].identifier.BaseExpr, Name: yyDollar[1].identifier.Literal, Args: yyDollar[3].queryexprs} 4198 } 4199 case 314: 4200 yyDollar = yyS[yypt-4 : yypt+1] 4201 //line lib/parser/parser.y:1800 4202 { 4203 yyVAL.queryexpr = Function{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Args: yyDollar[3].queryexprs} 4204 } 4205 case 315: 4206 yyDollar = yyS[yypt-6 : yypt+1] 4207 //line lib/parser/parser.y:1804 4208 { 4209 yyVAL.queryexpr = Function{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Args: []QueryExpression{yyDollar[3].queryexpr, yyDollar[5].queryexpr}, From: yyDollar[4].token} 4210 } 4211 case 316: 4212 yyDollar = yyS[yypt-8 : yypt+1] 4213 //line lib/parser/parser.y:1808 4214 { 4215 yyVAL.queryexpr = Function{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Args: []QueryExpression{yyDollar[3].queryexpr, yyDollar[5].queryexpr, yyDollar[7].queryexpr}, From: yyDollar[4].token, For: yyDollar[6].token} 4216 } 4217 case 317: 4218 yyDollar = yyS[yypt-3 : yypt+1] 4219 //line lib/parser/parser.y:1812 4220 { 4221 yyVAL.queryexpr = Function{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal} 4222 } 4223 case 318: 4224 yyDollar = yyS[yypt-4 : yypt+1] 4225 //line lib/parser/parser.y:1816 4226 { 4227 yyVAL.queryexpr = Function{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Args: yyDollar[3].queryexprs} 4228 } 4229 case 319: 4230 yyDollar = yyS[yypt-4 : yypt+1] 4231 //line lib/parser/parser.y:1820 4232 { 4233 yyVAL.queryexpr = Function{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Args: yyDollar[3].queryexprs} 4234 } 4235 case 320: 4236 yyDollar = yyS[yypt-4 : yypt+1] 4237 //line lib/parser/parser.y:1824 4238 { 4239 yyVAL.queryexpr = Function{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Args: yyDollar[3].queryexprs} 4240 } 4241 case 321: 4242 yyDollar = yyS[yypt-5 : yypt+1] 4243 //line lib/parser/parser.y:1831 4244 { 4245 yyVAL.queryexpr = AggregateFunction{BaseExpr: yyDollar[1].identifier.BaseExpr, Name: yyDollar[1].identifier.Literal, Distinct: yyDollar[3].token, Args: yyDollar[4].queryexprs} 4246 } 4247 case 322: 4248 yyDollar = yyS[yypt-5 : yypt+1] 4249 //line lib/parser/parser.y:1835 4250 { 4251 yyVAL.queryexpr = AggregateFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Distinct: yyDollar[3].token, Args: yyDollar[4].queryexprs} 4252 } 4253 case 323: 4254 yyDollar = yyS[yypt-5 : yypt+1] 4255 //line lib/parser/parser.y:1839 4256 { 4257 yyVAL.queryexpr = AggregateFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Distinct: yyDollar[3].token, Args: yyDollar[4].queryexprs} 4258 } 4259 case 324: 4260 yyDollar = yyS[yypt-5 : yypt+1] 4261 //line lib/parser/parser.y:1843 4262 { 4263 yyVAL.queryexpr = AggregateFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Distinct: yyDollar[3].token, Args: yyDollar[4].queryexprs} 4264 } 4265 case 325: 4266 yyDollar = yyS[yypt-5 : yypt+1] 4267 //line lib/parser/parser.y:1847 4268 { 4269 yyVAL.queryexpr = AggregateFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Distinct: yyDollar[3].token, Args: []QueryExpression{yyDollar[4].queryexpr}} 4270 } 4271 case 326: 4272 yyDollar = yyS[yypt-1 : yypt+1] 4273 //line lib/parser/parser.y:1851 4274 { 4275 yyVAL.queryexpr = yyDollar[1].queryexpr 4276 } 4277 case 327: 4278 yyDollar = yyS[yypt-5 : yypt+1] 4279 //line lib/parser/parser.y:1857 4280 { 4281 yyVAL.queryexpr = ListFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Distinct: yyDollar[3].token, Args: yyDollar[4].queryexprs} 4282 } 4283 case 328: 4284 yyDollar = yyS[yypt-10 : yypt+1] 4285 //line lib/parser/parser.y:1861 4286 { 4287 yyVAL.queryexpr = ListFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Distinct: yyDollar[3].token, Args: yyDollar[4].queryexprs, OrderBy: yyDollar[9].queryexpr} 4288 } 4289 case 329: 4290 yyDollar = yyS[yypt-8 : yypt+1] 4291 //line lib/parser/parser.y:1867 4292 { 4293 yyVAL.queryexpr = AnalyticFunction{BaseExpr: yyDollar[1].identifier.BaseExpr, Name: yyDollar[1].identifier.Literal, Args: yyDollar[3].queryexprs, AnalyticClause: yyDollar[7].queryexpr.(AnalyticClause)} 4294 } 4295 case 330: 4296 yyDollar = yyS[yypt-9 : yypt+1] 4297 //line lib/parser/parser.y:1871 4298 { 4299 yyVAL.queryexpr = AnalyticFunction{BaseExpr: yyDollar[1].identifier.BaseExpr, Name: yyDollar[1].identifier.Literal, Distinct: yyDollar[3].token, Args: yyDollar[4].queryexprs, AnalyticClause: yyDollar[8].queryexpr.(AnalyticClause)} 4300 } 4301 case 331: 4302 yyDollar = yyS[yypt-9 : yypt+1] 4303 //line lib/parser/parser.y:1875 4304 { 4305 yyVAL.queryexpr = AnalyticFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Distinct: yyDollar[3].token, Args: yyDollar[4].queryexprs, AnalyticClause: yyDollar[8].queryexpr.(AnalyticClause)} 4306 } 4307 case 332: 4308 yyDollar = yyS[yypt-9 : yypt+1] 4309 //line lib/parser/parser.y:1879 4310 { 4311 yyVAL.queryexpr = AnalyticFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Distinct: yyDollar[3].token, Args: yyDollar[4].queryexprs, AnalyticClause: yyDollar[8].queryexpr.(AnalyticClause)} 4312 } 4313 case 333: 4314 yyDollar = yyS[yypt-9 : yypt+1] 4315 //line lib/parser/parser.y:1883 4316 { 4317 yyVAL.queryexpr = AnalyticFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Distinct: yyDollar[3].token, Args: yyDollar[4].queryexprs, AnalyticClause: yyDollar[8].queryexpr.(AnalyticClause)} 4318 } 4319 case 334: 4320 yyDollar = yyS[yypt-9 : yypt+1] 4321 //line lib/parser/parser.y:1887 4322 { 4323 yyVAL.queryexpr = AnalyticFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Distinct: yyDollar[3].token, Args: []QueryExpression{yyDollar[4].queryexpr}, AnalyticClause: yyDollar[8].queryexpr.(AnalyticClause)} 4324 } 4325 case 335: 4326 yyDollar = yyS[yypt-9 : yypt+1] 4327 //line lib/parser/parser.y:1891 4328 { 4329 yyVAL.queryexpr = AnalyticFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Distinct: yyDollar[3].token, Args: yyDollar[4].queryexprs, AnalyticClause: yyDollar[8].queryexpr.(AnalyticClause)} 4330 } 4331 case 336: 4332 yyDollar = yyS[yypt-8 : yypt+1] 4333 //line lib/parser/parser.y:1895 4334 { 4335 yyVAL.queryexpr = AnalyticFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Args: yyDollar[3].queryexprs, AnalyticClause: yyDollar[7].queryexpr.(AnalyticClause)} 4336 } 4337 case 337: 4338 yyDollar = yyS[yypt-8 : yypt+1] 4339 //line lib/parser/parser.y:1899 4340 { 4341 yyVAL.queryexpr = AnalyticFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Args: yyDollar[3].queryexprs, AnalyticClause: yyDollar[7].queryexpr.(AnalyticClause)} 4342 } 4343 case 338: 4344 yyDollar = yyS[yypt-10 : yypt+1] 4345 //line lib/parser/parser.y:1903 4346 { 4347 yyVAL.queryexpr = AnalyticFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Args: yyDollar[3].queryexprs, IgnoreType: yyDollar[6].token, AnalyticClause: yyDollar[9].queryexpr.(AnalyticClause)} 4348 } 4349 case 339: 4350 yyDollar = yyS[yypt-8 : yypt+1] 4351 //line lib/parser/parser.y:1907 4352 { 4353 yyVAL.queryexpr = AnalyticFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Args: yyDollar[3].queryexprs, AnalyticClause: yyDollar[7].queryexpr.(AnalyticClause)} 4354 } 4355 case 340: 4356 yyDollar = yyS[yypt-10 : yypt+1] 4357 //line lib/parser/parser.y:1911 4358 { 4359 yyVAL.queryexpr = AnalyticFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Args: yyDollar[3].queryexprs, IgnoreType: yyDollar[6].token, AnalyticClause: yyDollar[9].queryexpr.(AnalyticClause)} 4360 } 4361 case 341: 4362 yyDollar = yyS[yypt-2 : yypt+1] 4363 //line lib/parser/parser.y:1917 4364 { 4365 yyVAL.queryexpr = AnalyticClause{PartitionClause: yyDollar[1].queryexpr, OrderByClause: yyDollar[2].queryexpr} 4366 } 4367 case 342: 4368 yyDollar = yyS[yypt-1 : yypt+1] 4369 //line lib/parser/parser.y:1923 4370 { 4371 yyVAL.queryexpr = yyDollar[1].queryexpr 4372 } 4373 case 343: 4374 yyDollar = yyS[yypt-5 : yypt+1] 4375 //line lib/parser/parser.y:1927 4376 { 4377 yyVAL.queryexpr = AnalyticClause{PartitionClause: yyDollar[1].queryexpr, OrderByClause: OrderByClause{Items: yyDollar[4].queryexprs}, WindowingClause: yyDollar[5].queryexpr} 4378 } 4379 case 344: 4380 yyDollar = yyS[yypt-0 : yypt+1] 4381 //line lib/parser/parser.y:1933 4382 { 4383 yyVAL.queryexpr = nil 4384 } 4385 case 345: 4386 yyDollar = yyS[yypt-3 : yypt+1] 4387 //line lib/parser/parser.y:1937 4388 { 4389 yyVAL.queryexpr = PartitionClause{Values: yyDollar[3].queryexprs} 4390 } 4391 case 346: 4392 yyDollar = yyS[yypt-2 : yypt+1] 4393 //line lib/parser/parser.y:1943 4394 { 4395 yyVAL.queryexpr = WindowingClause{FrameLow: yyDollar[2].queryexpr} 4396 } 4397 case 347: 4398 yyDollar = yyS[yypt-5 : yypt+1] 4399 //line lib/parser/parser.y:1947 4400 { 4401 yyVAL.queryexpr = WindowingClause{FrameLow: yyDollar[3].queryexpr, FrameHigh: yyDollar[5].queryexpr} 4402 } 4403 case 348: 4404 yyDollar = yyS[yypt-2 : yypt+1] 4405 //line lib/parser/parser.y:1953 4406 { 4407 yyVAL.queryexpr = WindowFramePosition{Direction: yyDollar[2].token, Unbounded: yyDollar[1].token} 4408 } 4409 case 349: 4410 yyDollar = yyS[yypt-2 : yypt+1] 4411 //line lib/parser/parser.y:1957 4412 { 4413 i, _ := strconv.Atoi(yyDollar[1].token.Literal) 4414 yyVAL.queryexpr = WindowFramePosition{Direction: yyDollar[2].token, Offset: i} 4415 } 4416 case 350: 4417 yyDollar = yyS[yypt-2 : yypt+1] 4418 //line lib/parser/parser.y:1962 4419 { 4420 yyVAL.queryexpr = WindowFramePosition{Direction: yyDollar[1].token} 4421 } 4422 case 351: 4423 yyDollar = yyS[yypt-2 : yypt+1] 4424 //line lib/parser/parser.y:1968 4425 { 4426 i, _ := strconv.Atoi(yyDollar[1].token.Literal) 4427 yyVAL.queryexpr = WindowFramePosition{Direction: yyDollar[2].token, Offset: i} 4428 } 4429 case 352: 4430 yyDollar = yyS[yypt-2 : yypt+1] 4431 //line lib/parser/parser.y:1973 4432 { 4433 i, _ := strconv.Atoi(yyDollar[1].token.Literal) 4434 yyVAL.queryexpr = WindowFramePosition{Direction: yyDollar[2].token, Offset: i} 4435 } 4436 case 353: 4437 yyDollar = yyS[yypt-2 : yypt+1] 4438 //line lib/parser/parser.y:1978 4439 { 4440 yyVAL.queryexpr = WindowFramePosition{Direction: yyDollar[1].token} 4441 } 4442 case 354: 4443 yyDollar = yyS[yypt-2 : yypt+1] 4444 //line lib/parser/parser.y:1984 4445 { 4446 yyVAL.queryexpr = WindowFramePosition{Direction: yyDollar[2].token, Unbounded: yyDollar[1].token} 4447 } 4448 case 355: 4449 yyDollar = yyS[yypt-1 : yypt+1] 4450 //line lib/parser/parser.y:1988 4451 { 4452 yyVAL.queryexpr = yyDollar[1].queryexpr 4453 } 4454 case 356: 4455 yyDollar = yyS[yypt-2 : yypt+1] 4456 //line lib/parser/parser.y:1994 4457 { 4458 yyVAL.queryexpr = WindowFramePosition{Direction: yyDollar[2].token, Unbounded: yyDollar[1].token} 4459 } 4460 case 357: 4461 yyDollar = yyS[yypt-1 : yypt+1] 4462 //line lib/parser/parser.y:1998 4463 { 4464 yyVAL.queryexpr = yyDollar[1].queryexpr 4465 } 4466 case 358: 4467 yyDollar = yyS[yypt-1 : yypt+1] 4468 //line lib/parser/parser.y:2004 4469 { 4470 yyVAL.queryexpr = yyDollar[1].identifier 4471 } 4472 case 359: 4473 yyDollar = yyS[yypt-1 : yypt+1] 4474 //line lib/parser/parser.y:2008 4475 { 4476 yyVAL.queryexpr = Url{BaseExpr: NewBaseExpr(yyDollar[1].token), Raw: yyDollar[1].token.Literal} 4477 } 4478 case 360: 4479 yyDollar = yyS[yypt-4 : yypt+1] 4480 //line lib/parser/parser.y:2012 4481 { 4482 yyVAL.queryexpr = TableFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Args: yyDollar[3].queryexprs} 4483 } 4484 case 361: 4485 yyDollar = yyS[yypt-1 : yypt+1] 4486 //line lib/parser/parser.y:2016 4487 { 4488 yyVAL.queryexpr = Stdin{BaseExpr: NewBaseExpr(yyDollar[1].token)} 4489 } 4490 case 362: 4491 yyDollar = yyS[yypt-1 : yypt+1] 4492 //line lib/parser/parser.y:2022 4493 { 4494 yyVAL.token = yyDollar[1].token 4495 } 4496 case 363: 4497 yyDollar = yyS[yypt-1 : yypt+1] 4498 //line lib/parser/parser.y:2026 4499 { 4500 yyVAL.token = yyDollar[1].token 4501 } 4502 case 364: 4503 yyDollar = yyS[yypt-1 : yypt+1] 4504 //line lib/parser/parser.y:2030 4505 { 4506 yyVAL.token = yyDollar[1].token 4507 } 4508 case 365: 4509 yyDollar = yyS[yypt-1 : yypt+1] 4510 //line lib/parser/parser.y:2034 4511 { 4512 yyVAL.token = yyDollar[1].token 4513 } 4514 case 366: 4515 yyDollar = yyS[yypt-1 : yypt+1] 4516 //line lib/parser/parser.y:2038 4517 { 4518 yyVAL.token = yyDollar[1].token 4519 } 4520 case 367: 4521 yyDollar = yyS[yypt-1 : yypt+1] 4522 //line lib/parser/parser.y:2044 4523 { 4524 yyVAL.token = yyDollar[1].token 4525 } 4526 case 368: 4527 yyDollar = yyS[yypt-1 : yypt+1] 4528 //line lib/parser/parser.y:2048 4529 { 4530 yyVAL.token = yyDollar[1].token 4531 } 4532 case 369: 4533 yyDollar = yyS[yypt-1 : yypt+1] 4534 //line lib/parser/parser.y:2052 4535 { 4536 yyVAL.token = yyDollar[1].token 4537 } 4538 case 370: 4539 yyDollar = yyS[yypt-4 : yypt+1] 4540 //line lib/parser/parser.y:2058 4541 { 4542 yyVAL.queryexpr = FormatSpecifiedFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Type: yyDollar[1].token, Path: yyDollar[3].queryexpr, Args: nil} 4543 } 4544 case 371: 4545 yyDollar = yyS[yypt-6 : yypt+1] 4546 //line lib/parser/parser.y:2062 4547 { 4548 yyVAL.queryexpr = FormatSpecifiedFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Type: yyDollar[1].token, Path: yyDollar[3].queryexpr, Args: yyDollar[5].queryexprs} 4549 } 4550 case 372: 4551 yyDollar = yyS[yypt-6 : yypt+1] 4552 //line lib/parser/parser.y:2066 4553 { 4554 yyVAL.queryexpr = FormatSpecifiedFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Type: yyDollar[1].token, FormatElement: yyDollar[3].queryexpr, Path: yyDollar[5].queryexpr, Args: nil} 4555 } 4556 case 373: 4557 yyDollar = yyS[yypt-8 : yypt+1] 4558 //line lib/parser/parser.y:2070 4559 { 4560 yyVAL.queryexpr = FormatSpecifiedFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Type: yyDollar[1].token, FormatElement: yyDollar[3].queryexpr, Path: yyDollar[5].queryexpr, Args: yyDollar[7].queryexprs} 4561 } 4562 case 374: 4563 yyDollar = yyS[yypt-6 : yypt+1] 4564 //line lib/parser/parser.y:2076 4565 { 4566 yyVAL.queryexpr = FormatSpecifiedFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Type: yyDollar[1].token, FormatElement: yyDollar[3].queryexpr, Path: yyDollar[5].identifier, Args: nil} 4567 } 4568 case 375: 4569 yyDollar = yyS[yypt-8 : yypt+1] 4570 //line lib/parser/parser.y:2080 4571 { 4572 yyVAL.queryexpr = FormatSpecifiedFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Type: yyDollar[1].token, FormatElement: yyDollar[3].queryexpr, Path: yyDollar[5].identifier, Args: yyDollar[7].queryexprs} 4573 } 4574 case 376: 4575 yyDollar = yyS[yypt-6 : yypt+1] 4576 //line lib/parser/parser.y:2084 4577 { 4578 yyVAL.queryexpr = FormatSpecifiedFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Type: yyDollar[1].token, FormatElement: yyDollar[3].queryexpr, Path: yyDollar[5].queryexpr, Args: nil} 4579 } 4580 case 377: 4581 yyDollar = yyS[yypt-8 : yypt+1] 4582 //line lib/parser/parser.y:2088 4583 { 4584 yyVAL.queryexpr = FormatSpecifiedFunction{BaseExpr: NewBaseExpr(yyDollar[1].token), Type: yyDollar[1].token, FormatElement: yyDollar[3].queryexpr, Path: yyDollar[5].queryexpr, Args: yyDollar[7].queryexprs} 4585 } 4586 case 378: 4587 yyDollar = yyS[yypt-1 : yypt+1] 4588 //line lib/parser/parser.y:2094 4589 { 4590 yyVAL.queryexpr = yyDollar[1].queryexpr 4591 } 4592 case 379: 4593 yyDollar = yyS[yypt-1 : yypt+1] 4594 //line lib/parser/parser.y:2098 4595 { 4596 yyVAL.queryexpr = yyDollar[1].queryexpr 4597 } 4598 case 380: 4599 yyDollar = yyS[yypt-1 : yypt+1] 4600 //line lib/parser/parser.y:2104 4601 { 4602 yyVAL.queryexpr = yyDollar[1].queryexpr 4603 } 4604 case 381: 4605 yyDollar = yyS[yypt-1 : yypt+1] 4606 //line lib/parser/parser.y:2108 4607 { 4608 yyVAL.queryexpr = yyDollar[1].queryexpr 4609 } 4610 case 382: 4611 yyDollar = yyS[yypt-1 : yypt+1] 4612 //line lib/parser/parser.y:2114 4613 { 4614 yyVAL.table = Table{Object: yyDollar[1].queryexpr} 4615 } 4616 case 383: 4617 yyDollar = yyS[yypt-2 : yypt+1] 4618 //line lib/parser/parser.y:2118 4619 { 4620 yyVAL.table = Table{Object: yyDollar[1].queryexpr, Alias: yyDollar[2].identifier} 4621 } 4622 case 384: 4623 yyDollar = yyS[yypt-3 : yypt+1] 4624 //line lib/parser/parser.y:2122 4625 { 4626 yyVAL.table = Table{Object: yyDollar[1].queryexpr, As: yyDollar[2].token, Alias: yyDollar[3].identifier} 4627 } 4628 case 385: 4629 yyDollar = yyS[yypt-1 : yypt+1] 4630 //line lib/parser/parser.y:2128 4631 { 4632 yyVAL.queryexprs = []QueryExpression{yyDollar[1].queryexpr} 4633 } 4634 case 386: 4635 yyDollar = yyS[yypt-2 : yypt+1] 4636 //line lib/parser/parser.y:2132 4637 { 4638 yyDollar[2].table.Lateral = yyDollar[1].token 4639 yyDollar[2].table.BaseExpr = NewBaseExpr(yyDollar[1].token) 4640 yyVAL.queryexprs = []QueryExpression{yyDollar[2].table} 4641 } 4642 case 387: 4643 yyDollar = yyS[yypt-3 : yypt+1] 4644 //line lib/parser/parser.y:2138 4645 { 4646 yyVAL.queryexprs = append([]QueryExpression{yyDollar[1].table}, yyDollar[3].queryexprs...) 4647 } 4648 case 388: 4649 yyDollar = yyS[yypt-4 : yypt+1] 4650 //line lib/parser/parser.y:2142 4651 { 4652 yyDollar[2].table.Lateral = yyDollar[1].token 4653 yyDollar[2].table.BaseExpr = NewBaseExpr(yyDollar[1].token) 4654 yyVAL.queryexprs = append([]QueryExpression{yyDollar[2].table}, yyDollar[4].queryexprs...) 4655 } 4656 case 389: 4657 yyDollar = yyS[yypt-1 : yypt+1] 4658 //line lib/parser/parser.y:2150 4659 { 4660 yyVAL.queryexpr = Table{Object: yyDollar[1].queryexpr} 4661 } 4662 case 390: 4663 yyDollar = yyS[yypt-2 : yypt+1] 4664 //line lib/parser/parser.y:2154 4665 { 4666 yyVAL.queryexpr = Table{Object: yyDollar[1].queryexpr, Alias: yyDollar[2].identifier} 4667 } 4668 case 391: 4669 yyDollar = yyS[yypt-3 : yypt+1] 4670 //line lib/parser/parser.y:2158 4671 { 4672 yyVAL.queryexpr = Table{Object: yyDollar[1].queryexpr, As: yyDollar[2].token, Alias: yyDollar[3].identifier} 4673 } 4674 case 392: 4675 yyDollar = yyS[yypt-1 : yypt+1] 4676 //line lib/parser/parser.y:2162 4677 { 4678 yyVAL.queryexpr = Table{Object: yyDollar[1].queryexpr} 4679 } 4680 case 393: 4681 yyDollar = yyS[yypt-1 : yypt+1] 4682 //line lib/parser/parser.y:2166 4683 { 4684 yyVAL.queryexpr = Table{Object: Dual{}} 4685 } 4686 case 394: 4687 yyDollar = yyS[yypt-1 : yypt+1] 4688 //line lib/parser/parser.y:2170 4689 { 4690 yyVAL.queryexpr = yyDollar[1].table 4691 } 4692 case 395: 4693 yyDollar = yyS[yypt-3 : yypt+1] 4694 //line lib/parser/parser.y:2174 4695 { 4696 yyVAL.queryexpr = Parentheses{Expr: yyDollar[2].queryexpr} 4697 } 4698 case 396: 4699 yyDollar = yyS[yypt-4 : yypt+1] 4700 //line lib/parser/parser.y:2180 4701 { 4702 yyVAL.queryexpr = Join{Table: yyDollar[1].queryexpr, JoinTable: yyDollar[4].queryexpr, JoinType: yyDollar[2].token, Condition: nil} 4703 } 4704 case 397: 4705 yyDollar = yyS[yypt-5 : yypt+1] 4706 //line lib/parser/parser.y:2184 4707 { 4708 yyVAL.queryexpr = Join{Table: yyDollar[1].queryexpr, JoinTable: yyDollar[4].queryexpr, JoinType: yyDollar[2].token, Condition: yyDollar[5].queryexpr} 4709 } 4710 case 398: 4711 yyDollar = yyS[yypt-6 : yypt+1] 4712 //line lib/parser/parser.y:2188 4713 { 4714 yyVAL.queryexpr = Join{Table: yyDollar[1].queryexpr, JoinTable: yyDollar[5].queryexpr, JoinType: yyDollar[3].token, Direction: yyDollar[2].token, Condition: yyDollar[6].queryexpr} 4715 } 4716 case 399: 4717 yyDollar = yyS[yypt-5 : yypt+1] 4718 //line lib/parser/parser.y:2192 4719 { 4720 yyVAL.queryexpr = Join{Table: yyDollar[1].queryexpr, JoinTable: yyDollar[5].queryexpr, JoinType: yyDollar[3].token, Natural: yyDollar[2].token} 4721 } 4722 case 400: 4723 yyDollar = yyS[yypt-6 : yypt+1] 4724 //line lib/parser/parser.y:2196 4725 { 4726 yyVAL.queryexpr = Join{Table: yyDollar[1].queryexpr, JoinTable: yyDollar[6].queryexpr, JoinType: yyDollar[4].token, Direction: yyDollar[3].token, Natural: yyDollar[2].token} 4727 } 4728 case 401: 4729 yyDollar = yyS[yypt-5 : yypt+1] 4730 //line lib/parser/parser.y:2200 4731 { 4732 yyDollar[5].table.Lateral = yyDollar[4].token 4733 yyDollar[5].table.BaseExpr = NewBaseExpr(yyDollar[4].token) 4734 yyVAL.queryexpr = Join{Table: yyDollar[1].queryexpr, JoinTable: yyDollar[5].table, JoinType: yyDollar[2].token, Condition: nil} 4735 } 4736 case 402: 4737 yyDollar = yyS[yypt-6 : yypt+1] 4738 //line lib/parser/parser.y:2206 4739 { 4740 yyDollar[5].table.Lateral = yyDollar[4].token 4741 yyDollar[5].table.BaseExpr = NewBaseExpr(yyDollar[4].token) 4742 yyVAL.queryexpr = Join{Table: yyDollar[1].queryexpr, JoinTable: yyDollar[5].table, JoinType: yyDollar[2].token, Condition: yyDollar[6].queryexpr} 4743 } 4744 case 403: 4745 yyDollar = yyS[yypt-7 : yypt+1] 4746 //line lib/parser/parser.y:2212 4747 { 4748 yyDollar[6].table.Lateral = yyDollar[5].token 4749 yyDollar[6].table.BaseExpr = NewBaseExpr(yyDollar[5].token) 4750 yyVAL.queryexpr = Join{Table: yyDollar[1].queryexpr, JoinTable: yyDollar[6].table, JoinType: yyDollar[3].token, Direction: yyDollar[2].token, Condition: yyDollar[7].queryexpr} 4751 } 4752 case 404: 4753 yyDollar = yyS[yypt-6 : yypt+1] 4754 //line lib/parser/parser.y:2218 4755 { 4756 yyDollar[6].table.Lateral = yyDollar[5].token 4757 yyDollar[6].table.BaseExpr = NewBaseExpr(yyDollar[5].token) 4758 yyVAL.queryexpr = Join{Table: yyDollar[1].queryexpr, JoinTable: yyDollar[6].table, JoinType: yyDollar[3].token, Natural: yyDollar[2].token} 4759 } 4760 case 405: 4761 yyDollar = yyS[yypt-7 : yypt+1] 4762 //line lib/parser/parser.y:2224 4763 { 4764 yyDollar[7].table.Lateral = yyDollar[6].token 4765 yyDollar[7].table.BaseExpr = NewBaseExpr(yyDollar[6].token) 4766 yyVAL.queryexpr = Join{Table: yyDollar[1].queryexpr, JoinTable: yyDollar[7].table, JoinType: yyDollar[4].token, Direction: yyDollar[3].token, Natural: yyDollar[2].token} 4767 } 4768 case 406: 4769 yyDollar = yyS[yypt-2 : yypt+1] 4770 //line lib/parser/parser.y:2232 4771 { 4772 yyVAL.queryexpr = JoinCondition{On: yyDollar[2].queryexpr} 4773 } 4774 case 407: 4775 yyDollar = yyS[yypt-4 : yypt+1] 4776 //line lib/parser/parser.y:2236 4777 { 4778 yyVAL.queryexpr = JoinCondition{Using: yyDollar[3].queryexprs} 4779 } 4780 case 408: 4781 yyDollar = yyS[yypt-1 : yypt+1] 4782 //line lib/parser/parser.y:2242 4783 { 4784 yyVAL.queryexpr = Field{Object: yyDollar[1].queryexpr} 4785 } 4786 case 409: 4787 yyDollar = yyS[yypt-3 : yypt+1] 4788 //line lib/parser/parser.y:2246 4789 { 4790 yyVAL.queryexpr = Field{Object: yyDollar[1].queryexpr, As: yyDollar[2].token, Alias: yyDollar[3].identifier} 4791 } 4792 case 410: 4793 yyDollar = yyS[yypt-1 : yypt+1] 4794 //line lib/parser/parser.y:2250 4795 { 4796 yyVAL.queryexpr = Field{Object: yyDollar[1].queryexpr} 4797 } 4798 case 411: 4799 yyDollar = yyS[yypt-3 : yypt+1] 4800 //line lib/parser/parser.y:2254 4801 { 4802 yyVAL.queryexpr = Field{Object: FieldReference{BaseExpr: yyDollar[1].identifier.BaseExpr, View: yyDollar[1].identifier, Column: yyDollar[3].queryexpr}} 4803 } 4804 case 412: 4805 yyDollar = yyS[yypt-5 : yypt+1] 4806 //line lib/parser/parser.y:2260 4807 { 4808 yyVAL.queryexpr = CaseExpr{Value: yyDollar[2].queryexpr, When: yyDollar[3].queryexprs, Else: yyDollar[4].queryexpr} 4809 } 4810 case 413: 4811 yyDollar = yyS[yypt-0 : yypt+1] 4812 //line lib/parser/parser.y:2266 4813 { 4814 yyVAL.queryexpr = nil 4815 } 4816 case 414: 4817 yyDollar = yyS[yypt-1 : yypt+1] 4818 //line lib/parser/parser.y:2270 4819 { 4820 yyVAL.queryexpr = yyDollar[1].queryexpr 4821 } 4822 case 415: 4823 yyDollar = yyS[yypt-4 : yypt+1] 4824 //line lib/parser/parser.y:2276 4825 { 4826 yyVAL.queryexprs = []QueryExpression{CaseExprWhen{Condition: yyDollar[2].queryexpr, Result: yyDollar[4].queryexpr}} 4827 } 4828 case 416: 4829 yyDollar = yyS[yypt-5 : yypt+1] 4830 //line lib/parser/parser.y:2280 4831 { 4832 yyVAL.queryexprs = append([]QueryExpression{CaseExprWhen{Condition: yyDollar[2].queryexpr, Result: yyDollar[4].queryexpr}}, yyDollar[5].queryexprs...) 4833 } 4834 case 417: 4835 yyDollar = yyS[yypt-0 : yypt+1] 4836 //line lib/parser/parser.y:2286 4837 { 4838 yyVAL.queryexpr = nil 4839 } 4840 case 418: 4841 yyDollar = yyS[yypt-2 : yypt+1] 4842 //line lib/parser/parser.y:2290 4843 { 4844 yyVAL.queryexpr = CaseExprElse{Result: yyDollar[2].queryexpr} 4845 } 4846 case 419: 4847 yyDollar = yyS[yypt-1 : yypt+1] 4848 //line lib/parser/parser.y:2296 4849 { 4850 yyVAL.queryexprs = []QueryExpression{yyDollar[1].queryexpr} 4851 } 4852 case 420: 4853 yyDollar = yyS[yypt-3 : yypt+1] 4854 //line lib/parser/parser.y:2300 4855 { 4856 yyVAL.queryexprs = append([]QueryExpression{yyDollar[1].queryexpr}, yyDollar[3].queryexprs...) 4857 } 4858 case 421: 4859 yyDollar = yyS[yypt-1 : yypt+1] 4860 //line lib/parser/parser.y:2306 4861 { 4862 yyVAL.queryexprs = []QueryExpression{yyDollar[1].queryexpr} 4863 } 4864 case 422: 4865 yyDollar = yyS[yypt-3 : yypt+1] 4866 //line lib/parser/parser.y:2310 4867 { 4868 yyVAL.queryexprs = append([]QueryExpression{yyDollar[1].queryexpr}, yyDollar[3].queryexprs...) 4869 } 4870 case 423: 4871 yyDollar = yyS[yypt-1 : yypt+1] 4872 //line lib/parser/parser.y:2316 4873 { 4874 yyVAL.queryexprs = []QueryExpression{yyDollar[1].queryexpr} 4875 } 4876 case 424: 4877 yyDollar = yyS[yypt-3 : yypt+1] 4878 //line lib/parser/parser.y:2320 4879 { 4880 yyVAL.queryexprs = append([]QueryExpression{yyDollar[1].queryexpr}, yyDollar[3].queryexprs...) 4881 } 4882 case 425: 4883 yyDollar = yyS[yypt-1 : yypt+1] 4884 //line lib/parser/parser.y:2326 4885 { 4886 yyVAL.queryexprs = []QueryExpression{yyDollar[1].queryexpr} 4887 } 4888 case 426: 4889 yyDollar = yyS[yypt-3 : yypt+1] 4890 //line lib/parser/parser.y:2330 4891 { 4892 yyVAL.queryexprs = append([]QueryExpression{yyDollar[1].queryexpr}, yyDollar[3].queryexprs...) 4893 } 4894 case 427: 4895 yyDollar = yyS[yypt-1 : yypt+1] 4896 //line lib/parser/parser.y:2336 4897 { 4898 yyVAL.queryexprs = []QueryExpression{Table{Object: yyDollar[1].queryexpr}} 4899 } 4900 case 428: 4901 yyDollar = yyS[yypt-3 : yypt+1] 4902 //line lib/parser/parser.y:2340 4903 { 4904 yyVAL.queryexprs = append([]QueryExpression{Table{Object: yyDollar[1].queryexpr}}, yyDollar[3].queryexprs...) 4905 } 4906 case 429: 4907 yyDollar = yyS[yypt-1 : yypt+1] 4908 //line lib/parser/parser.y:2346 4909 { 4910 yyVAL.queryexprs = []QueryExpression{Table{Object: yyDollar[1].queryexpr}} 4911 } 4912 case 430: 4913 yyDollar = yyS[yypt-3 : yypt+1] 4914 //line lib/parser/parser.y:2350 4915 { 4916 yyVAL.queryexprs = append([]QueryExpression{Table{Object: yyDollar[1].queryexpr}}, yyDollar[3].queryexprs...) 4917 } 4918 case 431: 4919 yyDollar = yyS[yypt-1 : yypt+1] 4920 //line lib/parser/parser.y:2356 4921 { 4922 yyVAL.queryexprs = []QueryExpression{yyDollar[1].identifier} 4923 } 4924 case 432: 4925 yyDollar = yyS[yypt-3 : yypt+1] 4926 //line lib/parser/parser.y:2360 4927 { 4928 yyVAL.queryexprs = append([]QueryExpression{yyDollar[1].identifier}, yyDollar[3].queryexprs...) 4929 } 4930 case 433: 4931 yyDollar = yyS[yypt-1 : yypt+1] 4932 //line lib/parser/parser.y:2366 4933 { 4934 yyVAL.queryexprs = []QueryExpression{yyDollar[1].queryexpr} 4935 } 4936 case 434: 4937 yyDollar = yyS[yypt-3 : yypt+1] 4938 //line lib/parser/parser.y:2370 4939 { 4940 yyVAL.queryexprs = append([]QueryExpression{yyDollar[1].queryexpr}, yyDollar[3].queryexprs...) 4941 } 4942 case 435: 4943 yyDollar = yyS[yypt-6 : yypt+1] 4944 //line lib/parser/parser.y:2376 4945 { 4946 yyVAL.expression = InsertQuery{WithClause: yyDollar[1].queryexpr, Table: Table{Object: yyDollar[4].queryexpr}, ValuesList: yyDollar[6].queryexprs} 4947 } 4948 case 436: 4949 yyDollar = yyS[yypt-9 : yypt+1] 4950 //line lib/parser/parser.y:2380 4951 { 4952 yyVAL.expression = InsertQuery{WithClause: yyDollar[1].queryexpr, Table: Table{Object: yyDollar[4].queryexpr}, Fields: yyDollar[6].queryexprs, ValuesList: yyDollar[9].queryexprs} 4953 } 4954 case 437: 4955 yyDollar = yyS[yypt-5 : yypt+1] 4956 //line lib/parser/parser.y:2384 4957 { 4958 yyVAL.expression = InsertQuery{WithClause: yyDollar[1].queryexpr, Table: Table{Object: yyDollar[4].queryexpr}, Query: yyDollar[5].queryexpr.(SelectQuery)} 4959 } 4960 case 438: 4961 yyDollar = yyS[yypt-8 : yypt+1] 4962 //line lib/parser/parser.y:2388 4963 { 4964 yyVAL.expression = InsertQuery{WithClause: yyDollar[1].queryexpr, Table: Table{Object: yyDollar[4].queryexpr}, Fields: yyDollar[6].queryexprs, Query: yyDollar[8].queryexpr.(SelectQuery)} 4965 } 4966 case 439: 4967 yyDollar = yyS[yypt-7 : yypt+1] 4968 //line lib/parser/parser.y:2394 4969 { 4970 yyVAL.expression = UpdateQuery{WithClause: yyDollar[1].queryexpr, Tables: yyDollar[3].queryexprs, SetList: yyDollar[5].updatesets, FromClause: yyDollar[6].queryexpr, WhereClause: yyDollar[7].queryexpr} 4971 } 4972 case 440: 4973 yyDollar = yyS[yypt-3 : yypt+1] 4974 //line lib/parser/parser.y:2400 4975 { 4976 yyVAL.updateset = UpdateSet{Field: yyDollar[1].queryexpr, Value: yyDollar[3].queryexpr} 4977 } 4978 case 441: 4979 yyDollar = yyS[yypt-1 : yypt+1] 4980 //line lib/parser/parser.y:2406 4981 { 4982 yyVAL.updatesets = []UpdateSet{yyDollar[1].updateset} 4983 } 4984 case 442: 4985 yyDollar = yyS[yypt-3 : yypt+1] 4986 //line lib/parser/parser.y:2410 4987 { 4988 yyVAL.updatesets = append([]UpdateSet{yyDollar[1].updateset}, yyDollar[3].updatesets...) 4989 } 4990 case 443: 4991 yyDollar = yyS[yypt-10 : yypt+1] 4992 //line lib/parser/parser.y:2416 4993 { 4994 yyVAL.expression = ReplaceQuery{WithClause: yyDollar[1].queryexpr, Table: Table{Object: yyDollar[4].queryexpr}, Keys: yyDollar[7].queryexprs, ValuesList: yyDollar[10].queryexprs} 4995 } 4996 case 444: 4997 yyDollar = yyS[yypt-13 : yypt+1] 4998 //line lib/parser/parser.y:2420 4999 { 5000 yyVAL.expression = ReplaceQuery{WithClause: yyDollar[1].queryexpr, Table: Table{Object: yyDollar[4].queryexpr}, Fields: yyDollar[6].queryexprs, Keys: yyDollar[10].queryexprs, ValuesList: yyDollar[13].queryexprs} 5001 } 5002 case 445: 5003 yyDollar = yyS[yypt-9 : yypt+1] 5004 //line lib/parser/parser.y:2424 5005 { 5006 yyVAL.expression = ReplaceQuery{WithClause: yyDollar[1].queryexpr, Table: Table{Object: yyDollar[4].queryexpr}, Keys: yyDollar[7].queryexprs, Query: yyDollar[9].queryexpr.(SelectQuery)} 5007 } 5008 case 446: 5009 yyDollar = yyS[yypt-12 : yypt+1] 5010 //line lib/parser/parser.y:2428 5011 { 5012 yyVAL.expression = ReplaceQuery{WithClause: yyDollar[1].queryexpr, Table: Table{Object: yyDollar[4].queryexpr}, Fields: yyDollar[6].queryexprs, Keys: yyDollar[10].queryexprs, Query: yyDollar[12].queryexpr.(SelectQuery)} 5013 } 5014 case 447: 5015 yyDollar = yyS[yypt-9 : yypt+1] 5016 //line lib/parser/parser.y:2432 5017 { 5018 yyVAL.expression = ReplaceQuery{Table: Table{Object: yyDollar[3].queryexpr}, Keys: yyDollar[6].queryexprs, ValuesList: yyDollar[9].queryexprs} 5019 } 5020 case 448: 5021 yyDollar = yyS[yypt-12 : yypt+1] 5022 //line lib/parser/parser.y:2436 5023 { 5024 yyVAL.expression = ReplaceQuery{Table: Table{Object: yyDollar[3].queryexpr}, Fields: yyDollar[5].queryexprs, Keys: yyDollar[9].queryexprs, ValuesList: yyDollar[12].queryexprs} 5025 } 5026 case 449: 5027 yyDollar = yyS[yypt-8 : yypt+1] 5028 //line lib/parser/parser.y:2440 5029 { 5030 yyVAL.expression = ReplaceQuery{Table: Table{Object: yyDollar[3].queryexpr}, Keys: yyDollar[6].queryexprs, Query: yyDollar[8].queryexpr.(SelectQuery)} 5031 } 5032 case 450: 5033 yyDollar = yyS[yypt-11 : yypt+1] 5034 //line lib/parser/parser.y:2444 5035 { 5036 yyVAL.expression = ReplaceQuery{Table: Table{Object: yyDollar[3].queryexpr}, Fields: yyDollar[5].queryexprs, Keys: yyDollar[9].queryexprs, Query: yyDollar[11].queryexpr.(SelectQuery)} 5037 } 5038 case 451: 5039 yyDollar = yyS[yypt-5 : yypt+1] 5040 //line lib/parser/parser.y:2450 5041 { 5042 yyVAL.expression = DeleteQuery{BaseExpr: NewBaseExpr(yyDollar[2].token), WithClause: yyDollar[1].queryexpr, FromClause: FromClause{Tables: yyDollar[4].queryexprs}, WhereClause: yyDollar[5].queryexpr} 5043 } 5044 case 452: 5045 yyDollar = yyS[yypt-6 : yypt+1] 5046 //line lib/parser/parser.y:2454 5047 { 5048 yyVAL.expression = DeleteQuery{BaseExpr: NewBaseExpr(yyDollar[2].token), WithClause: yyDollar[1].queryexpr, Tables: yyDollar[3].queryexprs, FromClause: FromClause{Tables: yyDollar[5].queryexprs}, WhereClause: yyDollar[6].queryexpr} 5049 } 5050 case 453: 5051 yyDollar = yyS[yypt-4 : yypt+1] 5052 //line lib/parser/parser.y:2460 5053 { 5054 yyVAL.elseif = []ElseIf{{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program}} 5055 } 5056 case 454: 5057 yyDollar = yyS[yypt-5 : yypt+1] 5058 //line lib/parser/parser.y:2464 5059 { 5060 yyVAL.elseif = append([]ElseIf{{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program}}, yyDollar[5].elseif...) 5061 } 5062 case 455: 5063 yyDollar = yyS[yypt-0 : yypt+1] 5064 //line lib/parser/parser.y:2470 5065 { 5066 yyVAL.elseexpr = Else{} 5067 } 5068 case 456: 5069 yyDollar = yyS[yypt-2 : yypt+1] 5070 //line lib/parser/parser.y:2474 5071 { 5072 yyVAL.elseexpr = Else{Statements: yyDollar[2].program} 5073 } 5074 case 457: 5075 yyDollar = yyS[yypt-4 : yypt+1] 5076 //line lib/parser/parser.y:2480 5077 { 5078 yyVAL.elseif = []ElseIf{{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program}} 5079 } 5080 case 458: 5081 yyDollar = yyS[yypt-5 : yypt+1] 5082 //line lib/parser/parser.y:2484 5083 { 5084 yyVAL.elseif = append([]ElseIf{{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program}}, yyDollar[5].elseif...) 5085 } 5086 case 459: 5087 yyDollar = yyS[yypt-0 : yypt+1] 5088 //line lib/parser/parser.y:2490 5089 { 5090 yyVAL.elseexpr = Else{} 5091 } 5092 case 460: 5093 yyDollar = yyS[yypt-2 : yypt+1] 5094 //line lib/parser/parser.y:2494 5095 { 5096 yyVAL.elseexpr = Else{Statements: yyDollar[2].program} 5097 } 5098 case 461: 5099 yyDollar = yyS[yypt-4 : yypt+1] 5100 //line lib/parser/parser.y:2500 5101 { 5102 yyVAL.elseif = []ElseIf{{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program}} 5103 } 5104 case 462: 5105 yyDollar = yyS[yypt-5 : yypt+1] 5106 //line lib/parser/parser.y:2504 5107 { 5108 yyVAL.elseif = append([]ElseIf{{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program}}, yyDollar[5].elseif...) 5109 } 5110 case 463: 5111 yyDollar = yyS[yypt-0 : yypt+1] 5112 //line lib/parser/parser.y:2510 5113 { 5114 yyVAL.elseexpr = Else{} 5115 } 5116 case 464: 5117 yyDollar = yyS[yypt-2 : yypt+1] 5118 //line lib/parser/parser.y:2514 5119 { 5120 yyVAL.elseexpr = Else{Statements: yyDollar[2].program} 5121 } 5122 case 465: 5123 yyDollar = yyS[yypt-4 : yypt+1] 5124 //line lib/parser/parser.y:2520 5125 { 5126 yyVAL.elseif = []ElseIf{{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program}} 5127 } 5128 case 466: 5129 yyDollar = yyS[yypt-5 : yypt+1] 5130 //line lib/parser/parser.y:2524 5131 { 5132 yyVAL.elseif = append([]ElseIf{{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program}}, yyDollar[5].elseif...) 5133 } 5134 case 467: 5135 yyDollar = yyS[yypt-0 : yypt+1] 5136 //line lib/parser/parser.y:2530 5137 { 5138 yyVAL.elseexpr = Else{} 5139 } 5140 case 468: 5141 yyDollar = yyS[yypt-2 : yypt+1] 5142 //line lib/parser/parser.y:2534 5143 { 5144 yyVAL.elseexpr = Else{Statements: yyDollar[2].program} 5145 } 5146 case 469: 5147 yyDollar = yyS[yypt-4 : yypt+1] 5148 //line lib/parser/parser.y:2540 5149 { 5150 yyVAL.casewhen = []CaseWhen{{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program}} 5151 } 5152 case 470: 5153 yyDollar = yyS[yypt-5 : yypt+1] 5154 //line lib/parser/parser.y:2544 5155 { 5156 yyVAL.casewhen = append([]CaseWhen{{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program}}, yyDollar[5].casewhen...) 5157 } 5158 case 471: 5159 yyDollar = yyS[yypt-0 : yypt+1] 5160 //line lib/parser/parser.y:2550 5161 { 5162 yyVAL.caseelse = CaseElse{} 5163 } 5164 case 472: 5165 yyDollar = yyS[yypt-2 : yypt+1] 5166 //line lib/parser/parser.y:2554 5167 { 5168 yyVAL.caseelse = CaseElse{Statements: yyDollar[2].program} 5169 } 5170 case 473: 5171 yyDollar = yyS[yypt-4 : yypt+1] 5172 //line lib/parser/parser.y:2560 5173 { 5174 yyVAL.casewhen = []CaseWhen{{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program}} 5175 } 5176 case 474: 5177 yyDollar = yyS[yypt-5 : yypt+1] 5178 //line lib/parser/parser.y:2564 5179 { 5180 yyVAL.casewhen = append([]CaseWhen{{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program}}, yyDollar[5].casewhen...) 5181 } 5182 case 475: 5183 yyDollar = yyS[yypt-0 : yypt+1] 5184 //line lib/parser/parser.y:2570 5185 { 5186 yyVAL.caseelse = CaseElse{} 5187 } 5188 case 476: 5189 yyDollar = yyS[yypt-2 : yypt+1] 5190 //line lib/parser/parser.y:2574 5191 { 5192 yyVAL.caseelse = CaseElse{Statements: yyDollar[2].program} 5193 } 5194 case 477: 5195 yyDollar = yyS[yypt-4 : yypt+1] 5196 //line lib/parser/parser.y:2580 5197 { 5198 yyVAL.casewhen = []CaseWhen{{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program}} 5199 } 5200 case 478: 5201 yyDollar = yyS[yypt-5 : yypt+1] 5202 //line lib/parser/parser.y:2584 5203 { 5204 yyVAL.casewhen = append([]CaseWhen{{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program}}, yyDollar[5].casewhen...) 5205 } 5206 case 479: 5207 yyDollar = yyS[yypt-0 : yypt+1] 5208 //line lib/parser/parser.y:2590 5209 { 5210 yyVAL.caseelse = CaseElse{} 5211 } 5212 case 480: 5213 yyDollar = yyS[yypt-2 : yypt+1] 5214 //line lib/parser/parser.y:2594 5215 { 5216 yyVAL.caseelse = CaseElse{Statements: yyDollar[2].program} 5217 } 5218 case 481: 5219 yyDollar = yyS[yypt-4 : yypt+1] 5220 //line lib/parser/parser.y:2600 5221 { 5222 yyVAL.casewhen = []CaseWhen{{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program}} 5223 } 5224 case 482: 5225 yyDollar = yyS[yypt-5 : yypt+1] 5226 //line lib/parser/parser.y:2604 5227 { 5228 yyVAL.casewhen = append([]CaseWhen{{Condition: yyDollar[2].queryexpr, Statements: yyDollar[4].program}}, yyDollar[5].casewhen...) 5229 } 5230 case 483: 5231 yyDollar = yyS[yypt-0 : yypt+1] 5232 //line lib/parser/parser.y:2610 5233 { 5234 yyVAL.caseelse = CaseElse{} 5235 } 5236 case 484: 5237 yyDollar = yyS[yypt-2 : yypt+1] 5238 //line lib/parser/parser.y:2614 5239 { 5240 yyVAL.caseelse = CaseElse{Statements: yyDollar[2].program} 5241 } 5242 case 485: 5243 yyDollar = yyS[yypt-1 : yypt+1] 5244 //line lib/parser/parser.y:2620 5245 { 5246 yyVAL.identifier = Identifier{BaseExpr: NewBaseExpr(yyDollar[1].token), Literal: yyDollar[1].token.Literal, Quoted: yyDollar[1].token.Quoted} 5247 } 5248 case 486: 5249 yyDollar = yyS[yypt-1 : yypt+1] 5250 //line lib/parser/parser.y:2624 5251 { 5252 yyVAL.identifier = Identifier{BaseExpr: NewBaseExpr(yyDollar[1].token), Literal: yyDollar[1].token.Literal, Quoted: yyDollar[1].token.Quoted} 5253 } 5254 case 487: 5255 yyDollar = yyS[yypt-1 : yypt+1] 5256 //line lib/parser/parser.y:2628 5257 { 5258 yyVAL.identifier = Identifier{BaseExpr: NewBaseExpr(yyDollar[1].token), Literal: yyDollar[1].token.Literal, Quoted: yyDollar[1].token.Quoted} 5259 } 5260 case 488: 5261 yyDollar = yyS[yypt-1 : yypt+1] 5262 //line lib/parser/parser.y:2632 5263 { 5264 yyVAL.identifier = Identifier{BaseExpr: NewBaseExpr(yyDollar[1].token), Literal: yyDollar[1].token.Literal, Quoted: yyDollar[1].token.Quoted} 5265 } 5266 case 489: 5267 yyDollar = yyS[yypt-1 : yypt+1] 5268 //line lib/parser/parser.y:2636 5269 { 5270 yyVAL.identifier = Identifier{BaseExpr: NewBaseExpr(yyDollar[1].token), Literal: yyDollar[1].token.Literal, Quoted: yyDollar[1].token.Quoted} 5271 } 5272 case 490: 5273 yyDollar = yyS[yypt-1 : yypt+1] 5274 //line lib/parser/parser.y:2640 5275 { 5276 yyVAL.identifier = Identifier{BaseExpr: NewBaseExpr(yyDollar[1].token), Literal: yyDollar[1].token.Literal, Quoted: yyDollar[1].token.Quoted} 5277 } 5278 case 491: 5279 yyDollar = yyS[yypt-1 : yypt+1] 5280 //line lib/parser/parser.y:2644 5281 { 5282 yyVAL.identifier = Identifier{BaseExpr: NewBaseExpr(yyDollar[1].token), Literal: yyDollar[1].token.Literal, Quoted: yyDollar[1].token.Quoted} 5283 } 5284 case 492: 5285 yyDollar = yyS[yypt-1 : yypt+1] 5286 //line lib/parser/parser.y:2648 5287 { 5288 yyVAL.identifier = Identifier{BaseExpr: NewBaseExpr(yyDollar[1].token), Literal: yyDollar[1].token.Literal, Quoted: yyDollar[1].token.Quoted} 5289 } 5290 case 493: 5291 yyDollar = yyS[yypt-1 : yypt+1] 5292 //line lib/parser/parser.y:2652 5293 { 5294 yyVAL.identifier = Identifier{BaseExpr: NewBaseExpr(yyDollar[1].token), Literal: yyDollar[1].token.Literal, Quoted: yyDollar[1].token.Quoted} 5295 } 5296 case 494: 5297 yyDollar = yyS[yypt-1 : yypt+1] 5298 //line lib/parser/parser.y:2658 5299 { 5300 yyVAL.variable = Variable{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal} 5301 } 5302 case 495: 5303 yyDollar = yyS[yypt-1 : yypt+1] 5304 //line lib/parser/parser.y:2664 5305 { 5306 yyVAL.variables = []Variable{yyDollar[1].variable} 5307 } 5308 case 496: 5309 yyDollar = yyS[yypt-3 : yypt+1] 5310 //line lib/parser/parser.y:2668 5311 { 5312 yyVAL.variables = append([]Variable{yyDollar[1].variable}, yyDollar[3].variables...) 5313 } 5314 case 497: 5315 yyDollar = yyS[yypt-3 : yypt+1] 5316 //line lib/parser/parser.y:2674 5317 { 5318 yyVAL.queryexpr = VariableSubstitution{Variable: yyDollar[1].variable, Value: yyDollar[3].queryexpr} 5319 } 5320 case 498: 5321 yyDollar = yyS[yypt-1 : yypt+1] 5322 //line lib/parser/parser.y:2680 5323 { 5324 yyVAL.varassign = VariableAssignment{Variable: yyDollar[1].variable} 5325 } 5326 case 499: 5327 yyDollar = yyS[yypt-3 : yypt+1] 5328 //line lib/parser/parser.y:2684 5329 { 5330 yyVAL.varassign = VariableAssignment{Variable: yyDollar[1].variable, Value: yyDollar[3].queryexpr} 5331 } 5332 case 500: 5333 yyDollar = yyS[yypt-1 : yypt+1] 5334 //line lib/parser/parser.y:2690 5335 { 5336 yyVAL.varassigns = []VariableAssignment{yyDollar[1].varassign} 5337 } 5338 case 501: 5339 yyDollar = yyS[yypt-3 : yypt+1] 5340 //line lib/parser/parser.y:2694 5341 { 5342 yyVAL.varassigns = append([]VariableAssignment{yyDollar[1].varassign}, yyDollar[3].varassigns...) 5343 } 5344 case 502: 5345 yyDollar = yyS[yypt-1 : yypt+1] 5346 //line lib/parser/parser.y:2700 5347 { 5348 yyVAL.envvar = EnvironmentVariable{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal, Quoted: yyDollar[1].token.Quoted} 5349 } 5350 case 503: 5351 yyDollar = yyS[yypt-1 : yypt+1] 5352 //line lib/parser/parser.y:2706 5353 { 5354 yyVAL.queryexpr = RuntimeInformation{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal} 5355 } 5356 case 504: 5357 yyDollar = yyS[yypt-1 : yypt+1] 5358 //line lib/parser/parser.y:2712 5359 { 5360 items := strings.Split(yyDollar[1].token.Literal, ConstantDelimiter) 5361 space := "" 5362 if 0 < len(items) { 5363 space = items[0] 5364 } 5365 name := "" 5366 if 1 < len(items) { 5367 name = items[1] 5368 } 5369 5370 yyVAL.queryexpr = Constant{BaseExpr: NewBaseExpr(yyDollar[1].token), Space: space, Name: name} 5371 } 5372 case 505: 5373 yyDollar = yyS[yypt-1 : yypt+1] 5374 //line lib/parser/parser.y:2728 5375 { 5376 yyVAL.flag = Flag{BaseExpr: NewBaseExpr(yyDollar[1].token), Name: yyDollar[1].token.Literal} 5377 } 5378 case 506: 5379 yyDollar = yyS[yypt-0 : yypt+1] 5380 //line lib/parser/parser.y:2734 5381 { 5382 yyVAL.token = Token{} 5383 } 5384 case 507: 5385 yyDollar = yyS[yypt-1 : yypt+1] 5386 //line lib/parser/parser.y:2738 5387 { 5388 yyVAL.token = yyDollar[1].token 5389 } 5390 case 508: 5391 yyDollar = yyS[yypt-0 : yypt+1] 5392 //line lib/parser/parser.y:2744 5393 { 5394 yyVAL.token = Token{} 5395 } 5396 case 509: 5397 yyDollar = yyS[yypt-1 : yypt+1] 5398 //line lib/parser/parser.y:2748 5399 { 5400 yyVAL.token = yyDollar[1].token 5401 } 5402 case 510: 5403 yyDollar = yyS[yypt-0 : yypt+1] 5404 //line lib/parser/parser.y:2754 5405 { 5406 yyVAL.token = Token{} 5407 } 5408 case 511: 5409 yyDollar = yyS[yypt-1 : yypt+1] 5410 //line lib/parser/parser.y:2758 5411 { 5412 yyVAL.token = yyDollar[1].token 5413 } 5414 case 512: 5415 yyDollar = yyS[yypt-0 : yypt+1] 5416 //line lib/parser/parser.y:2764 5417 { 5418 yyVAL.token = Token{} 5419 } 5420 case 513: 5421 yyDollar = yyS[yypt-1 : yypt+1] 5422 //line lib/parser/parser.y:2768 5423 { 5424 yyVAL.token = yyDollar[1].token 5425 } 5426 case 514: 5427 yyDollar = yyS[yypt-1 : yypt+1] 5428 //line lib/parser/parser.y:2774 5429 { 5430 yyVAL.token = yyDollar[1].token 5431 } 5432 case 515: 5433 yyDollar = yyS[yypt-1 : yypt+1] 5434 //line lib/parser/parser.y:2778 5435 { 5436 yyVAL.token = yyDollar[1].token 5437 } 5438 case 516: 5439 yyDollar = yyS[yypt-1 : yypt+1] 5440 //line lib/parser/parser.y:2782 5441 { 5442 yyVAL.token = yyDollar[1].token 5443 } 5444 case 517: 5445 yyDollar = yyS[yypt-0 : yypt+1] 5446 //line lib/parser/parser.y:2788 5447 { 5448 yyVAL.token = Token{} 5449 } 5450 case 518: 5451 yyDollar = yyS[yypt-1 : yypt+1] 5452 //line lib/parser/parser.y:2792 5453 { 5454 yyVAL.token = yyDollar[1].token 5455 } 5456 case 519: 5457 yyDollar = yyS[yypt-0 : yypt+1] 5458 //line lib/parser/parser.y:2798 5459 { 5460 yyVAL.token = Token{} 5461 } 5462 case 520: 5463 yyDollar = yyS[yypt-1 : yypt+1] 5464 //line lib/parser/parser.y:2802 5465 { 5466 yyVAL.token = yyDollar[1].token 5467 } 5468 case 521: 5469 yyDollar = yyS[yypt-0 : yypt+1] 5470 //line lib/parser/parser.y:2808 5471 { 5472 yyVAL.token = Token{} 5473 } 5474 case 522: 5475 yyDollar = yyS[yypt-1 : yypt+1] 5476 //line lib/parser/parser.y:2812 5477 { 5478 yyVAL.token = yyDollar[1].token 5479 } 5480 case 523: 5481 yyDollar = yyS[yypt-1 : yypt+1] 5482 //line lib/parser/parser.y:2818 5483 { 5484 yyVAL.token = yyDollar[1].token 5485 } 5486 case 524: 5487 yyDollar = yyS[yypt-1 : yypt+1] 5488 //line lib/parser/parser.y:2822 5489 { 5490 yyDollar[1].token.Token = COMPARISON_OP 5491 yyVAL.token = yyDollar[1].token 5492 } 5493 case 525: 5494 yyDollar = yyS[yypt-0 : yypt+1] 5495 //line lib/parser/parser.y:2829 5496 { 5497 yyVAL.bool = false 5498 } 5499 case 526: 5500 yyDollar = yyS[yypt-3 : yypt+1] 5501 //line lib/parser/parser.y:2833 5502 { 5503 yyVAL.bool = true 5504 } 5505 } 5506 goto yystack /* stack new state and value */ 5507 }